Skip to main content

I am trying to create an approval map where if an employee belongs to a Purchase Approval Group then the PO is automatically approved by the Owner of the PO document.  

I thought the way this worked was fairly simple; but apparently Acumatica does NOT work this way.  So I am looking for help to understand how to make this work.  
Below is the logic in the Rule for the Condition I have set.

Step Conditions:
     If No Approver Found: Reject Document
     Execute Step: If No Approvers Found at Previous Steps

Rule Condition:
    EMPLOYEE          Workgroup     Equals      Purchasing Approval Group

Rule Actions: 
         Approver:  EMPLOYEE FROM DOCUMENT
         Employee: ((Document.EmployeeID.Selected))
         On Approval : Complete Step

Again, what I WANT to happen is to reject all PO's that reach this step, except for the ones created by an employee in the workgroup Purchase Approval Group.

But this does not appear to be the way that Acumatica works.

What am I missing?

Thank you in advance

I posted this a week ago and have received no response.

So am I the only person and company ever to have this particular set of criteria?  

I am bit surprised by that.


Please let me know if any of these work out.

Idea #1

((Document.EmployeeID.Selected)) doesn’t result in an EmployeeID. Just use ((Document.EmployeeID)), which is the PO Owner (creator).

Idea #2

I don’t have a PO Approval map, because Edit / Create / Delete permission is limited to our purchasing department. Using custom access rights and roles in “Access Rights by Role” will sidestep your issue by only allowing approved PO writers access to modify a PO.

Idea #3

You may have more success in Approval Maps if the approve and the reject steps are separated. For my company, the Bills approval map has a final catch-all step without any criteria, and every bill goes to one workgroup. If no workgroup or employee is assigned, your final it will be rejected by default.

Step 1, named “PO Approval”
     If No Approver Found: Go to next step
     Execute Step: If No Approvers Found at Previous Steps

Rule Condition:
    EMPLOYEE          Workgroup     Equals      Purchasing Approval Group

Rule Actions: 
         Approver:  EMPLOYEE FROM DOCUMENT
         Employee: ((Document.EmployeeID)) <---- Exclude “Selected”
         On Approval : Complete Step

 

Step 2, named “PO Rejection”
     If No Approver Found: Reject
     Execute Step: If No Approvers Found at Previous Steps

Rule Condition:
    None - leave blank

Rule Actions: 
         None - leave blank


This new topic could be related:

 


I just spent 4 weeks figuring this out. The SQL for Approvals for the “Employee” field when using “Employee from Document” is expecting a username value from Users.username. I have a custom field in Employee that uses 

rPXDBString(255)]
5PXUIField(DisplayName="Approver")]
"PXSelector(typeof(Users.username),SubstituteKey = typeof(Users.fullName))]

Everything works great now!


Thank you for sharing this with the community @kgawryluk80 !


Reply