Cambiar status a un elemento pep
al efectuar un cierre de proyecto , tengo el siguiente codigo :
FORM f_c_e5 USING p_posid.
DATA: BEGIN OF lt_user OCCURS 0.
INCLUDE STRUCTURE bapi_wbs_mnt_user_status.
DATA: END OF lt_user.
REFRESH lt_user.
CLEAR lt_user.
* Fija el estatus en cierre ECONOMICO
lt_user-set_user_status = c_e5.
lt_user-wbs_element = p_posid.
APPEND lt_user.
CLEAR lt_user.
* Cambia el status de usuario
CALL FUNCTION 'BAPI_PS_INITIALIZATION'.
CALL FUNCTION 'BAPI_BUS2054_SET_STATUS'
TABLES
i_wbs_user_status = lt_user.
IF sy-subrc <> 0.
it_error-icon = '@0A@'.
it_error-pspid = it_proyecto-posid.
WRITE it_proyecto-posid TO it_error-pspnr.
it_error-desc = it_message-msgv1.
APPEND it_error.
ELSE.
ENDIF.
CALL FUNCTION 'BAPI_PS_PRECOMMIT'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
.
ENDFORM. " f_c_e5
El caso es que me da un dump : MESSAGE_TYPE_X
FORM chk_precommit.
DATA: chk_precommit_ok TYPE c,
chk_error type c.
CALL FUNCTION 'PS_FLAG_GET_GLOBA
IMPORTING
e_precommit_ok = chk_p
e_error = chk_e
IF chk_precommit_ok = space.
* Precommit wurde noch nicht auf
MESSAGE x030(cnif_pi).
ELSEIF chk_precommit_ok <> 'Y'.
* Precommit wurde nicht erfolgre
MESSAGE x033(cnif_pi).
elseif not chk_error is initial.
* At least one single BAPI faile
MESSAGE x056(cnif_pi).
ENDIF.
El error es que no se hizo el precommit correctamente.
Alguien sabe por donde pueden ir los tiros ?
|