Sheldon,
Acredito que com um BAPI ou WAPI FMs, você precisa declarar um COMMIT WORK no final.
-Peter
Avalados por :
Olá,
Preciso executar uma etapa de decisão de um item de trabalho por meio de código. Para isso, encontrei a FM SAP_WAPI_DECISION_COMPLETE . Isso funcionou bem quando executado via SE37 e em um relatório. Não só completou o item de trabalho, mas também alterou o estado do meu documento.
DATA : bbpex_follow_act_reject TYPE zfollowing_action VALUE 'REJEITAR' ,
bbpex_follow_act_approve TYPE zfollowing_action VALUE 'APROVAR' .
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 .
CHAMAR FUNÇÃO 'SAP_WAPI_DECISION_COMPLETE'
EXPORTANDO
workitem_id = iv_wiid
language = sy-langu
user = sy-uname
decision_key = lv_decision_key
do_commit = 'X' " Campo de caixa de seleção
IMPORTANDO
return_code = return_code
new_status = new_status.
No entanto, quando executei via um método da minha classe. Apenas completou o item de trabalho e não alterou o estado do documento.
Você poderia lançar alguma luz sobre esse problema? Ou há uma alternativa para executar um item de trabalho?
Revisei o registro e obtive um erro como o anexo.
Obrigado e cumprimentos,
Sheldon Rodrigues.
Sheldon,
Acredito que com um BAPI ou WAPI FMs, você precisa declarar um COMMIT WORK no final.
-Peter
Olá,
Se o fluxo de trabalho for concluído sem usar o SAP_WAPI_DECISION_COMPLETE, então qual nome de usuário aparece como aquele que executou a etapa que conclui o documento? Se for WF-BATCH, então posso entender por que você está recebendo um erro. Talvez você possa tentar inserir uma etapa de espera fictícia após a decisão do usuário.
Saudações,
Rick Bakker / hanabi technology
°Olá Sheldon!
Altere o código da seguinte forma:
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 o código ajude você a inferir a resposta para sua pergunta.
Saudações,
S.Suresh.
Olá,
Realizei uma pesquisa adicional sobre a mensagem de erro que estava recebendo. Estava tentando executar um relatório para o usuário WF-BATCH semelhante ao RBBP_OFFLINE_EVAL, para um cenário de aprovação offline.
Notei que através do programa, meu sy-uname era WF-BATCH. Mas quando o módulo de função 'SAP_WAPI_DECISION_COMPLETE' era executado, mudava para o SY-UNAME do executor do item de trabalho. Portanto, o erro no registro TRFC do item de trabalho.
Em modo de depuração dentro do FM 'SAP_WAPI_DECISION_COMPLETE', alterei sy-uname para o executor, e uma vez fora do FM, alterei novamente sy-uname para WF-BATCH. Não apenas o item de trabalho foi concluído com sucesso, mas também o estado do documento foi alterado.
Anexo uma captura de tela mostrando a mudança em sy-uname dentro do FM.
Minha suposição é que provavelmente estava tentando ser outro usuário, por exemplo, WF-BATCH, e tentando executar o item de trabalho da pessoa X, o que acredito que não deveria ser possível. Alguém poderia apoiar minha hipótese e lançar alguma luz sobre o problema?
Obrigado e cumprimentos,
Sheldon Rodrigues.
changein_syuname.PNGcontacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute