Skip to Content
0
Jul 03, 2020 at 10:32 AM

Workflow not going to next Agent

935 Views

Hello All,

I configured flexible workflow for purchasing document and implemented BADI for PO release.

Even with example code ( below), PO is getting released by first level approver and not giving subsequent agent any chance to review. Please let me know how can all level steps be followed? Here is sample code:

DATA:

ls_badi_approver TYPE if_mmpur_workflow_agents_v2=>bd_mmpur_s_badi_approver,

lt_badi_approver TYPE if_mmpur_workflow_agents_v2=>bd_mmpur_t_badi_approver,

ls_previous_approver TYPE if_mmpur_workflow_agents_v2=>bd_mmpur_s_previous_approver,

ls_new_approver TYPE if_mmpur_workflow_agents_v2=>bd_mmpur_s_badi_approver.

* define the list of BADI approvers

* ----- Approval Level 1

ls_badi_approver-businessuser = 'CB9980000016'.

ls_badi_approver-approvallevel = 1.

APPEND ls_badi_approver TO lt_badi_approver.

* ----- Approval Level 2

ls_badi_approver-businessuser = 'CB9980000134'.

ls_badi_approver-approvallevel = 2.

APPEND ls_badi_approver TO lt_badi_approver.

* remove the previous approvers from the list of BAdI approvers

LOOP AT previousapproverlist INTO ls_previous_approver.

READ TABLE lt_badi_approver INTO ls_badi_approver

WITH KEY businessuser = ls_previous_approver-businessuser.

CHECK sy-subrc = 0.

DELETE lt_badi_approver WHERE approvallevel = ls_badi_approver-approvallevel.

ENDLOOP.

* determine the next approval level and appropriate approvers

READ TABLE lt_badi_approver INTO ls_badi_approver INDEX 1.

LOOP AT lt_badi_approver INTO ls_new_approver

WHERE approvallevel = ls_badi_approver-approvallevel.

APPEND ls_new_approver-businessuser TO approverlist.

ENDLOOP.

Regards,

Aayush