Sheldon,
Creo que con un BAPI o WAPI FMs, necesitas declarar un COMMIT WORK al final.
-Peter
Avalados por :
Hola,
Tengo que ejecutar un paso de decisión de un ítem de trabajo a través de código. Para ello encontré la FM SAP_WAPI_DECISION_COMPLETE . Esto funciona bien cuando se ejecuta a través de SE37 y cuando lo ejecuté en un informe. No solo completó el ítem de trabajo, sino que también cambió el estado de mi documento.
DATA : bbpex_follow_act_reject TYPE zfollowing_action VALUE 'RECHAZAR' ,
bbpex_follow_act_approve TYPE zfollowing_action VALUE 'APROBAR' .
DATA : lv_decision_key TYPE swr_decikey ,
return_code LIKE sy - subrc ,
new_status TYPE sww_wistat .
IF Lv_decision EQ bbpex_follow_act_approve .
lv_decision_key = '0001' .
ELSE .
lv_decision_key = '0002' .
ENDIF .
CALL FUNCTION 'SAP_WAPI_DECISION_COMPLETE'
EXPORTING
workitem_id = iv_wiid
language = sy-langu
user = sy-uname
decision_key = lv_decision_key
do_commit = 'X' " Campo de casilla de verificación
IMPORTING
return_code = return_code
new_status = new_status.
Sin embargo, cuando lo ejecuté a través de un método de mi clase. Solo completó el ítem de trabajo y no cambió el estado del documento.
¿Podrías arrojar algo de luz sobre este problema? ¿O hay una alternativa para ejecutar un ítem de trabajo?
Revisé el registro y obtuve un error como el adjunto.
Gracias y saludos,
Sheldon Rodrigues.
Sheldon,
Creo que con un BAPI o WAPI FMs, necesitas declarar un COMMIT WORK al final.
-Peter
Hola,
Si el flujo de trabajo se completa sin utilizar SAP_WAPI_DECISION_COMPLETE, ¿entonces qué nombre de usuario aparece como el que ejecutó el paso que completa el documento? Si es WF-BATCH, entonces puedo entender por qué estás obteniendo un error. Tal vez podrías intentar insertar un paso de espera ficticio después de la decisión del usuario.
Saludos,
Rick Bakker / hanabi technology
¡Hola Sheldon!
Cambia el código de la siguiente manera:
CALL FUNCTION 'SAP_WAPI_DECISION_COMPLETE' EXPORTING workitem_id = lv_workitem_id language = sy-langu decision_key = lv_decision_key do_commit = 'X' IMPORTING return_code = lv_return_code new_status = new_status.
Espero que el código te ayude a inferir la respuesta a tu pregunta.
Saludos,
S.Suresh.
Hola,
Realicé una investigación adicional sobre el mensaje de error que estaba recibiendo. Estaba intentando ejecutar un informe para el usuario WF-BATCH similar a RBBP_OFFLINE_EVAL, para un escenario de aprobación sin conexión.
Pude notar que a través del programa, mi sy-uname era WF-BATCH. Pero cuando se ejecutaba el módulo de función 'SAP_WAPI_DECISION_COMPLETE', cambiaba al SY-UNAME del ejecutor del ítem de trabajo. Por lo tanto, el error en el registro TRFC del ítem de trabajo.
En modo de depuración dentro del FM 'SAP_WAPI_DECISION_COMPLETE', cambié sy-uname a ejecutor, y una vez fuera del FM, volví a cambiar sy-uname a WF-BATCH. No solo se completó exitosamente el ítem de trabajo, sino que también cambió el estado del documento.
Adjunto una captura de pantalla donde se muestra el cambio en sy-uname dentro del FM.
Mi suposición es que probablemente estaba intentando ser otro usuario, por ejemplo, WF-BATCH, y tratando de ejecutar el ítem de trabajo de la persona X, lo cual creo que no debería ser posible. ¿Alguien podría respaldar mi hipótesis y arrojar algo de luz sobre el problema?
Gracias y saludos,
Sheldon Rodrigues.
changein_syuname.PNGcontacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute