01-08-2024 11:20 AM
Hello everyone,
I'm trying to create WBS element by using 'BAPI_BUS2054_CREATE_MULTI' function module. If the project is containing level 2 WBS element, I'm trying to create level-2, level-3 WBS Elements. Then it is working fine. If the project is not containing level 2, I'm trying to create level 2 WBS element newly, then automatically it is creating in level 1.
My code:
ls_wbs_elmnt_cr-wbs_element = <lfs_wbs_janus_data>-pspnr.
ls_wbs_elmnt_cr-description = <lfs_wbs_janus_data>-post1.
ls_wbs_elmnt_cr-company_code = <lfs_wbs_janus_data>-bukrs.
ls_wbs_elmnt_cr-business_area = ls_wbs_elmnt_get-bus_area.
ls_wbs_elmnt_cr-controlling_area = ls_wbs_elmnt_get-co_area.
ls_wbs_elmnt_cr-funct_loc = ls_wbs_elmnt_get-functional_location.
ls_wbs_elmnt_cr-interest_prof = ls_wbs_elmnt_get-int_profile.
ls_wbs_elmnt_cr-func_area = ls_wbs_elmnt_get-func_area.
ls_wbs_elmnt_cr-responsible_no = ls_wbs_elmnt_get-responsible_no.
ls_wbs_elmnt_cr-applicant_no = ls_wbs_elmnt_get-applicant_no.
ls_wbs_elmnt_cr-calendar = ls_wbs_elmnt_get-calendar.
ls_wbs_elmnt_cr-currency = ls_wbs_elmnt_get-currency.
ls_wbs_elmnt_cr-currency_iso = ls_wbs_elmnt_get-currency_iso.
ls_wbs_elmnt_cr-objectclass = ls_wbs_elmnt_get-objectclass.
ls_wbs_elmnt_cr-profit_ctr = <lfs_wbs_janus_data>-prctr.
ls_wbs_elmnt_cr-proj_type = <lfs_wbs_config>-prart.
ls_wbs_elmnt_cr-priority = <lfs_wbs_config>-psprt.
ls_wbs_elmnt_cr-wbs_account_assignment_element = <lfs_wbs_config>-belkz.
ls_wbs_elmnt_cr-wbs_billing_element = <lfs_wbs_config>-fakkz.
ls_wbs_elmnt_cr-wbs_summarization = <lfs_wbs_config>-clasf.
ls_wbs_elmnt_cr-request_cctr = <lfs_wbs_config>-akstl.
ls_wbs_elmnt_cr-respsbl_cctr = <lfs_wbs_config>-fkstl.
**logic for level = 2 --> fill WBS_left(mandatory) and WBS_up should be empty
* if WBS_LEFT is empty, automatically WBS element will create in level 1
**logic for level = 3 --> fill WBS_up and WBS_left will be optional.
** if provide WBS_left, New WBS_element will create after the WBS_left element
IF <lfs_wbs_janus_data>-stufe = lc_2.
CLEAR lv_no_of_rec.
DESCRIBE TABLE lt_wbs_elmnt_get LINES lv_no_of_rec.
READ TABLE lt_wbs_elmnt_get INTO ls_wbs_elmnt_get INDEX lv_no_of_rec.
IF sy-subrc = 0.
CONDENSE ls_wbs_elmnt_get-wbs_element.
ls_wbs_elmnt_cr-wbs_left = ls_wbs_elmnt_get-wbs_element+0(17). "last sub project
ENDIF.
ELSEIF <lfs_wbs_janus_data>-stufe = lc_3.
ls_wbs_elmnt_cr-wbs_up = <lfs_wbs_janus_data>-up.
ENDIF.
APPEND ls_wbs_elmnt_cr TO lt_wbs_elmnt_cr.
CALL FUNCTION 'BAPI_PS_INITIALIZATION' .
CLEAR: lt_return.
CALL FUNCTION 'BAPI_BUS2054_CREATE_MULTI'
EXPORTING
i_project_definition = <lfs_wbs_janus_data>-project
TABLES
it_wbs_element = lt_wbs_elmnt_cr
et_return = lt_return.
CALL FUNCTION 'BAPI_PS_PRECOMMIT'
TABLES
et_return = lt_return.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = abap_true.
Example - 1
Level WBS Element Description
1 AM-CN-24141 Testing
2 AM-CN-24141-LSC01 Testing
If I try to create level 2 or level 3 WBS Elements, it is creating as expected.
_________________________________________________________________
Example - 2
Level WBS Element Description
1 AM-CN-24141 Testing
If I try to create level 2 WBS element, it is creating under level 1 only.
Where can I pass the hierarchy here...
Thanks & Regards
Sathish Reddy
01-08-2024 12:07 PM
Read KBA 1934899 - Error in BAPI_BUS2054_CREATE_MULTI execution which suggest to call BAPI for each level separately.
01-08-2024 12:07 PM
Read KBA 1934899 - Error in BAPI_BUS2054_CREATE_MULTI execution which suggest to call BAPI for each level separately.
01-08-2024 2:52 PM
Hi Raymon Giuseppi
The link is not opening. Can you please post it once again...
01-08-2024 4:29 PM
If you don't have a S-id you cannot read Notes & KBA, ask your admin.
01-09-2024 2:18 AM
Thank you for responding.
Now it is working..
I've written the code like this.
e_wbs_hierarchie_table = lt_wbs_hierarchy.
DELETE lt_wbs_hierarchy WHERE up <> <lfs_wbs_janus_data>-project.
IF lt_wbs_hierarchy IS INITIAL.ENDIF.
Thank you Raymon Giuseppi..