Skip to Content
0
Former Member
May 16, 2008 at 08:57 AM

how to use BAPI in series?

604 Views

Dear experts:

when i use ['BAPI_BUS2054_CREATE_MULTI'] to create the WBS, the message type occurs s, means the wbs has been created sucessfully. but when i use [BAPI_BUS2054_SET_STATUS] to get the status, it tell me that wbs is not exist, anyone can tell me why.thanks.

CALL FUNCTION 'BAPI_PS_INITIALIZATION'.

CALL FUNCTION 'BAPI_BUS2054_CREATE_MULTI'

EXPORTING

i_project_definition = l_project

TABLES

it_wbs_element = lt_wbs_table

et_return = lt_message

extensionin = lt_extensionin

extensionout = lt_extensionout.

  • ENDTRY.

LOOP AT lt_message WHERE type = 'E'

OR type = 'I'.

gt_log-messagetype = 'E'.

gt_log-zmenum = c_create_menum_error.

gt_log-zdate = sy-datum.

gt_log-ztime = sy-uzeit.

gt_log-zmessage = lt_message-message.

APPEND gt_log.

ENDLOOP.

IF sy-subrc = 0.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

ELSE.

gt_log-messagetype = 'S'.

gt_log-zmenum = c_create_menum_ok.

gt_log-zdate = sy-datum.

gt_log-ztime = sy-uzeit.

gt_log-zmessage = 'WBS created'.

APPEND gt_log.

CALL FUNCTION 'BAPI_PS_PRECOMMIT'.

CALL FUNCTION 'BAPI_PS_INITIALIZATION'.

CALL FUNCTION 'BAPI_BUS2054_SET_STATUS'

  • IMPORTING

  • RETURN =

TABLES

i_wbs_system_status = lt_system_satus

  • i_wbs_user_status = lt_user_satus

e_result = lt_message_status.

LOOP AT lt_message_status WHERE message_type = 'E'

OR message_type = 'I'.

gt_log-messagetype = 'E'.

gt_log-zmenum = c_create_menum_error.

gt_log-zdate = sy-datum.

gt_log-ztime = sy-uzeit.

gt_log-zmessage = lt_message_status-message_text.

APPEND gt_log.

ENDLOOP.

IF sy-subrc = 0.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

ELSE.

gt_log-messagetype = 'S'.

gt_log-zmenum = c_create_menum_ok.

gt_log-zdate = sy-datum.

gt_log-ztime = sy-uzeit.

gt_log-zmessage = 'WBS updated status'

APPEND gt_log.

CALL FUNCTION 'BAPI_PS_PRECOMMIT'.

  • CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

ENDIF.

ENDIF.

Monson