I’ve got a custom AWE process, and when I try to add an Ad Hoc reviewer , I click the + button, pick a person, and everything looks fine. But when I click the standard Save button, the Ad Hoc approver disappears. On the other hand, if I click the Approve button, the process moves forward and saves the Ad Hoc reviewer.
I got this to work. If you look at the class EOAW_CORE:ENGINE:AppInst you can see this comment.
/** Has this approval process instance been saved? The process is automatically saved upon launch (and upon approve/deny, etc.–see SaveAdHocs(), below), but may also be saved by calling the Save() method explicitly. This can be necessary when users add ad-hoc approvers while previewing the process, for instance. */
At first I tried
import EOAW_CORE:LaunchManager;
import EOAW_CORE:ApprovalManager;
Declare Function createStatusMonitor PeopleCode EOAW_MON_WRK.EOAW_FC_HANDLER FieldFormula;
Component string &c_apprAction;
Component EOAW_CORE:LaunchManager &c_aweLaunchManager;
Component EOAW_CORE:ApprovalManager &c_aweApprManager;
If (L_MINOR_APP_FRM.L_MINOR_ACTV.Value = "Y") Then
Local Record &headerRec = GetRecord(Record.L_MINOR_APP_FRM);
Local boolean &isApprover;
Local number &resp;
Evaluate &c_apprAction
When "A"
&c_aweApprManager.AddComments(%OperatorId, &headerRec, L_MINOR_APP_WRK.COMMENTS.Value);
&c_aweApprManager.DoApprove(&headerRec);
L_MINOR_APP_WRK.COMMENTS.Visible = False;
L_MINOR_APP_FRM.L_MIN_CRDNTR_CNFRM.DisplayOnly = True;
Break;
When "D"
&c_aweApprManager.AddComments(%OperatorId, &headerRec, L_MINOR_APP_WRK.COMMENTS.Value);
&c_aweApprManager.DoDeny(&headerRec);
L_MINOR_APP_WRK.COMMENTS.Visible = False;
L_MINOR_APP_FRM.L_MIN_CRDNTR_CNFRM.DisplayOnly = True;
Break;
When "S"
&c_aweApprManager.AddComments(%OperatorId, &headerRec, L_MINOR_APP_WRK.COMMENTS.Value);
L_MINOR_APP_FRM.L_MIN_CRDNTR_CNFRM.DisplayOnly = True;
L_MINOR_APP_WRK.COMMENTS.Visible = False;
If &c_aweApprManager.hasAppInst Then
&c_aweApprManager.the_inst.Save();
End-If;
Break;
End-Evaluate;
If &c_aweApprManager.hasAppInst Then
&isApprover = &c_aweApprManager.hasPending;
createStatusMonitor(&c_aweApprManager.the_inst, "D", Null, False);
L_MINOR_APP_WRK.DENIAL_BTN.DisplayOnly = True;
L_MINOR_APP_WRK.APPROVE_BTN.DisplayOnly = True;
L_MINOR_APP_WRK.SAVEBTN.DisplayOnly = True;
End-If;
End-If;
No comments:
Post a Comment