Saturday, 6 November 2021

AWE Ad Hoc Approver is disappearing

 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