Skip to Content
0
Former Member
Sep 10, 2010 at 04:06 AM

Error when create project definition and 2 wbs by bapi BAPI_PROJECT_MAINTAI

160 Views

Hello everyone,

I have to create project definition and 2 wbs, I use function BAPI_PROJECT_MAINTAI but I have the error:

"WBS element 0033.3332.01.R already exists" but that wbs it's created.

This is my code.

data:
         I_WBS_ELEMENT_TABLE type BAPI_WBS_ELEMENT occurs 0 with header line,
         I_WBS_ELEMENT_TABLE_UPDATE type BAPI_WBS_ELEMENT_UPDATE occurs 0 with header line,
         I_PROJECT_DEFINITION like BAPI_PROJECT_DEFINITION,
         I_PROJECT_DEFINITION_UPD like BAPI_PROJECT_DEFINITION_UP,
         I_METHOD_PROJECT type BAPI_METHOD_PROJECT occurs 0 with header line,
        E_MESSAGE_TABLE like BAPI_METH_MESSAGE occurs 0 with header line,
        RETURN type BAPIRETURN1,
        lv_index    LIKE bapi_method_project-refnumber.
lv_index = 1.
I_METHOD_PROJECT-OBJECTTYPE = 'ProjectDefinition'.
I_METHOD_PROJECT-METHOD = 'Create'.
I_METHOD_PROJECT-OBJECTKEY = '0033.3332'.
I_METHOD_PROJECT-REFNUMBER = lv_index.
append I_METHOD_PROJECT.
lv_index = lv_index + 1.
I_METHOD_PROJECT-OBJECTTYPE = 'WBS-Element'.
I_METHOD_PROJECT-METHOD = 'Create'.
I_METHOD_PROJECT-OBJECTKEY = '0033.3332.01'.
I_METHOD_PROJECT-REFNUMBER = lv_index.
append I_METHOD_PROJECT.

lv_index = lv_index + 1.
clear I_METHOD_PROJECT.
I_METHOD_PROJECT-OBJECTTYPE = 'WBS-Element'.
I_METHOD_PROJECT-METHOD = 'Create'.
I_METHOD_PROJECT-OBJECTKEY = '0033.3332.01.R'.
I_METHOD_PROJECT-REFNUMBER = lv_index.
append I_METHOD_PROJECT.

clear I_METHOD_PROJECT.
I_METHOD_PROJECT-OBJECTTYPE = space.
I_METHOD_PROJECT-METHOD = 'Save'.
I_METHOD_PROJECT-OBJECTKEY = space.
I_METHOD_PROJECT-REFNUMBER = space.
append I_METHOD_PROJECT.

I_PROJECT_DEFINITION-PROJECT_DEFINITION = '0033.3332'.
I_PROJECT_DEFINITION-DESCRIPTION = 'Training project'.
I_PROJECT_DEFINITION-PROJECT_PROFILE = 'ZAF0001'.
I_PROJECT_DEFINITION-COMP_CODE = '0033'.
I_PROJECT_DEFINITION-RESPONSIBLE_NO                  = 1.
I_PROJECT_DEFINITION-APPLICANT_NO                    = 1.
I_PROJECT_DEFINITION-PLANT  = '033A'.

I_WBS_ELEMENT_TABLE-PROJECT_DEFINITION              = '0033.3332'.
I_WBS_ELEMENT_TABLE-WBS_ELEMENT                     =  '0033.3332.01'.
I_WBS_ELEMENT_TABLE-DESCRIPTION                     = 'WBS 1'.
I_WBS_ELEMENT_TABLE-RESPONSIBLE_NO                  = 1.
I_WBS_ELEMENT_TABLE-APPLICANT_NO                    = 1.
I_WBS_ELEMENT_TABLE-COMP_CODE                       = '0033'.
I_WBS_ELEMENT_TABLE-PROFIT_CTR                      = '0033A99999'.
I_WBS_ELEMENT_TABLE-PLANT  = '033A'.
append i_wbs_element_table.

clear I_WBS_ELEMENT_TABLE.
I_WBS_ELEMENT_TABLE-PROJECT_DEFINITION              = '0033.3332'.
I_WBS_ELEMENT_TABLE-WBS_ELEMENT                     =  '0033.3332.01.R'.
I_WBS_ELEMENT_TABLE-DESCRIPTION                     = 'WBS 2'.
I_WBS_ELEMENT_TABLE-RESPONSIBLE_NO                  = 1.
I_WBS_ELEMENT_TABLE-APPLICANT_NO                    = 1.
I_WBS_ELEMENT_TABLE-COMP_CODE                       = '0033'.
I_WBS_ELEMENT_TABLE-PROFIT_CTR                      = '0033A99999'.
I_WBS_ELEMENT_TABLE-PLANT  = '033A'.
append i_wbs_element_table.

PERFORM fill_update_flags USING    'BAPI_PROJECT_DEFINITION_UP'
                          CHANGING I_PROJECT_DEFINITION_UPD.
PERFORM fill_update_flags USING    'BAPI_WBS_ELEMENT_UPDATE'
                          CHANGING I_WBS_ELEMENT_TABLE_UPDATE.

append I_WBS_ELEMENT_TABLE_UPDATE.
append I_WBS_ELEMENT_TABLE_UPDATE.
CALL FUNCTION 'BAPI_PROJECT_MAINTAIN'
  EXPORTING
    I_PROJECT_DEFINITION               = I_PROJECT_DEFINITION
    I_PROJECT_DEFINITION_UPD           = I_PROJECT_DEFINITION_UPD
  TABLES
    I_METHOD_PROJECT                   = I_METHOD_PROJECT
    I_WBS_ELEMENT_TABLE_UPDATE         = I_WBS_ELEMENT_TABLE_UPDATE[]
    I_WBS_ELEMENT_TABLE                = I_WBS_ELEMENT_TABLE[]
   E_MESSAGE_TABLE                    = E_MESSAGE_TABLE
          .
write: / 'Finish'.
*&---------------------------------------------------------------------*
*&      Form  FILL_UPDATE_FLAGS
*&---------------------------------------------------------------------*
FORM fill_update_flags USING    value(p_ddic_name)
                       CHANGING p_struc_upd.
  

  DATA: lt_dd03l LIKE dd03l OCCURS 0,
        ls_dd03l LIKE dd03l.
  DATA: s(40), c(40), sc(80) TYPE c.
  FIELD-SYMBOLS: <s>, <c>, <sc> TYPE ANY.

  TRANSLATE p_ddic_name TO UPPER CASE.
  SELECT * FROM dd03l INTO TABLE lt_dd03l WHERE tabname = p_ddic_name.
  s = 'P_STRUC_UPD'.
  ASSIGN (s) TO <s>.
  LOOP AT lt_dd03l INTO ls_dd03l.
    ASSIGN ls_dd03l-fieldname TO <c>.
    ASSIGN COMPONENT <c> OF STRUCTURE <s> TO <sc>.
    <sc> = 'X'.
  ENDLOOP.

ENDFORM.                    " FILL_UPDATE_FLAGS

Please help me!

Thank you!

Edited by: kishan P on Sep 10, 2010 9:37 AM