Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Error when create project definition and 2 wbs by bapi BAPI_PROJECT_MAINTAI

Former Member
0 Likes
1,542

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

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

6 REPLIES 6
Read only

Former Member
0 Likes
1,324

Anybody help me please!

Thank you.

Read only

Former Member
0 Likes
1,324

Hi,

Example has been provided in the function module documentation for the same. You have to maintain WBS hierarchy.

For the error, Check in table PRPS if there is an entry already exists for the POSID = '0033.3332.01.R'.

Hope it helps.

Sujay

Read only

0 Likes
1,324

There is no row in PRPS have "0033.3332.01.R". When create WBS don't have to create WBS hierarchy. The WBS will be same lever, I think so.

Thank you for reply.

Read only

Former Member
0 Likes
1,324

Hi,

Sorry to disappoint you but the error is thrown when you have the WBS element already existing in table.

If there are more than 1 WBS being created, I believe we have to maintain WBS hierarchy.

Hope it helps.

Sujay

Read only

0 Likes
1,324

Hi,

I've tested if we create 2 wbs with out project definition it is ok so the error it's WBS element already existing in table or the wbs hierarchy, if we create 1 wbs and project definition it is ok. But when create 2 wbs and project definition it is error.

Thank you.

Read only

0 Likes
1,324

Hi,

Please try creating the project definition and then call the FM again to create the WBS.

http://help.sap.com/erp2005_ehp_04/helpdata/EN/4c/226a7246e611d189470000e829fbbd/frameset.htm

Hope it helps.

Sujay