on 2011 Jul 21 12:38 PM
Hi All,
I have a question. We are having a weared problem. We have srm 5.0 workflow which workd thorough a customised matrix. We found situations where approver determination was failing.
We finally found out the situation when approval fails. Its in Bus4101 and the method 'nextdynamicapproverget'. This doesnt return any approver in the fm BBP_WFL_DIN_APPR_BY_RULE_GET. It only sets the flag 'no_further_approval_needed'.
So we have a unique scenario here where it can cause and unexpected result. Suppose we have 2 level approval determination for a shopping cart. Approval list is filled as soon as the Workflow is triggered. Now its waiting for person 1 to approve.
Suppose it waited for 10 days. in the mean time we update the matrix in a way that it became 3 level approval process. So after the first approval it again goes to the step method agin 'nextdynamicapprovalget'. Its gets the flag 'nofurtherapprovalneeded', the value of this flag was supposed to be 'X' after the second approval.
But now since the matrix was changed as I mentioned. the 'X' value of the flag is changed to ' ' . So it will now go for the third step. But the workflow initial had only 2 steps of approvers and now as per the new matrix and the new flag result it became a three step approval system AND THIS IS without the third approver in the workflow.
And we know in Bus4101 the method 'nextdynamicapprovalget' and the fm BBP_WFL_DIN_APPR_BY_RULE_GET doent get the list of approvers and only flag.
So finally the mail is going to everyone. I know we can handle such situations in a rule. But first of all my question is this standard BUS4101 is having some defect if you look at it from my angle.
Looking for a solution with minimum chages. please advise.
Request clarification before answering.
A correction to the scenario of the question above:-
IF approverlist[] IS INITIAL.
CALL FUNCTION 'BBP_WFL_DIN_APPR_BY_RULE_GET'
EXPORTING
IV_TASK = task
IV_OBJECT_ID = lv_object_id
IV_GUID = lv_guid
IV_OBJECT_TYPE = lv_object_type
IV_ACTUAL_APPROVAL_INDEX = 0
IMPORTING
EV_NO_FURTHER_APPROVAL = lv_no_further_approval
ENDIF. " approverlist[] IS INITIAL
The fm in Bus4101 is for if approvallist[] is initial. So I am now changing the assumption of the scenario above. Suppose when the cart is triggered on day1. And its waiting for approval ( for some customised step). We have a customised step which is not for approval but just t6o accept the policy.
And it waited from day 1 till day 10. And now around day 8 the matrix changes from no approval needed to 2 approvals needed.
Thanks,
AC.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.