Product Information
How to Create Workflows that Require Multilevel Approval
When you start reading this blog, I believe you’ve already had a general idea of setting up workflows for journal entry or currency adjustment verification. The Manage Workflows for Journal Entry Verification – In General Ledger app provides flexible configuration choices to meet your business requirements. To simplify the steps of setting up a workflow for journal entry verification, you need to assign some business catalogs to corresponding user roles, create a workflow with specified conditions, and define team members as verifiers. If you’d like to review the detailed steps, you can always visit the SAP Help Portal topics that are listed at the end of this blog, and welcome to feedback us directly by clicking the blue area in the lower right corner of each topic page.
In some situations, you may need advanced configuration to meet your business requirements. For example, you need more than one group of approvers to verify journal entries for different company codes, amounts to be posted, and so on. The questions that first come to the mind could be, for example:
- How many workflows should I create?
- How to fill in the start conditions to trigger a workflow?
- How do I configure the verify steps?
Before you try to deal with these questions, let’s fully understand the scenarios requiring approvers of multiple groups. Normally in a business world, the groups are connected with an organization hierarchy. For example, you want two levels of approvers to verify journal entries when the amount exceeds a threshold that you can specify as a start condition to trigger the workflow.
Example 1
Let’s assume your corporate runs company code 1000 and 2000, and you, as the system admin, want to set up workflows for journal entry verification for the two companies. You decide to assign groups of verifiers and hope they receive system notifications to verify journal entries with respective amounts.
Company Code 1000:
Amount Threshold Range | Verifier Group |
Less than 50K EURO | No approval needed |
50K – 100K EURO | Level 1 Approver |
Great than 100K EURO | Level 2 Approver |
Company Code 2000:
Amount Threshold Range | Verifier Group |
Less than 20K EURO | No approval needed |
20K – 80K EURO | Level 1 Approver |
Greater than 80K EURO | Level 2 Approver |
As you see from the table, journal entries that fall in a certain amount range are supposed to be verified by a specific group. What is worth noting is that only one group of verifiers can receive the system notification that new journal entries are waiting for verification, which means, a workflow requires to assign Level 1 Approver, Level 2 Approver, or Level 3 Approver when the amount is below the lower threshold, between two thresholds, or above the upper threshold. As two different companies, they use the different amount thresholds, and this indicates that the start conditions of amount thresholds require multiple workflows.
Clearly as shown in the graphic, this example requires three workflows to be created, because you need to specify three times the trigger amount for each company. In the screen below, you can see the key settings of workflow 1. In the Start Condition, for Threshold Amount in Global Currency, you enter the upper threshold amounts, one for company 1000, the other for company 2000.
Workflow 1
Now, you copy Workflow 1 and create two more workflows with the following start conditions:
Workflow 2
Workflow 3
In the verify steps of workflow 1 and 2, you specify the group of verifiers for each workflow.
After you finish creating the three workflows, the next step is to manage your workflows. Please pay attention when you give order numbers to the workflows. Make sure that the workflow with the higher threshold amount is given the smaller order number, because this guarantees the workflow can be triggered first among all workflows when the start conditions are met. In this example, you give order number 1, 2, and 3 respectively to workflow 1, workflow 2, and workflow 3. Please also remember that workflow 1 has the highest threshold amount, for both the companies.
Everything looks clear and easy, doesn’t it? However, you could meet a bit more difficult situation sometimes. What if two groups are required to verify a journal entry for certain conditions, for example, the threshold amount? Let’s say a journal entry with over 100K EURO can’t be posted without getting approval from both a senior accountant and a manager. In such a case, you need to set up an approver sequence in a workflow.
Example 2
This time we take only company code 1000 for example and focus more on the approval sequence based on the submitted journal entry amount. In this example, you want Level 2 Approver to verify when the journal entry amount exceeds 100K EURO, and you want both Level 2 and Level 3 to verify when the amount exceeds 200K EURO.
Amount Threshold Range | Verifier Group |
Less than 50K EURO | No approval needed |
50k – 100K EURO | Level 1 Approver |
100K – 200K EURO | Level 2 Approver |
Great than 200K EURO | Level 2 and 3 Approvers |
Compared with Example 1, the biggest difference you can tell is that two groups of verifiers are required for a journal entry with amount over 200K: Level 2 and Level 3 Approvers. If you transform the business requirements to configuration in the Manage Workflows for Journal Entry Verification – In General Ledger app, you may be surprised to find you can combine the last two lines in the table to one workflow if you set the start condition as threshold amount greater than 100K EURO. In other words, only one workflow is needed to set up to cover the case where amount greater than 100 K EURO can be verified while leaving the approver sequence setup in the verify step of the workflow.
Like Example 1, this example requires three workflows to be created, each with a start condition on the threshold amount. In this way, the corresponding workflow can be triggered based on the journal entry amount to be verified. To detail the key configuration in the app, please refer to the following screenshots.
Workflow A
This workflow is for the highest threshold amount 100K EURO, instead of 200K EURO. In the start condition of this workflow, you specify the company code and the threshold amount for 100K EURO.
To differentiate the verifiers for amount that exceeds 200K EURO, you can assign the group of verifiers as well as step conditions in the Verify step. In this example, you create two verify steps and a post step for Workflow A:
In the Verify 1 step, you assign group 2 (consisting of Level 2 Approvers roles) without setting any step condition. This means all journal entries with amount over 100K EURO will be sent to group 2 verifiers. In the Verify 2 step, you assign group 3 (consisting of Level 3 Approvers roles) plus a step condition that the amount must be equal to or greater than 200 K EURO. This is a crucial step condition to trigger the Verify 2 step, because group 3 will be notified of the journal entry only when this step condition is met. Here is the configuration screen for the Verify 2 step:
The start conditions for Workflow B and Workflow C are very similar to Workflow 1 and Workflow 2 in Example 1. You can specify the company code and the threshold amount for each workflow. Please refer to the following key settings:
Workflow B
Workflow C
After you create the three workflows, it’s time to go to the Manage Workflows page and set the workflow order numbers: Workflow A < Workflow B < Workflow C. Why do we do this? As explained in Example 1, such a workflow order makes sure that only Workflow 1 is triggered when the start conditions of the three workflows are met at the same time.
When we look back and sort our thoughts of creating and organizing workflows, we can find the flexible workflow configuration can meet various business requirements. The Manage Workflows for Journal Entry Verification – In General Ledger app, along with the Manage Teams and Responsibilities for Journal Entry Verification – In General Ledger app, provides you with all kinds of key fields that help you shape workflows to satisfy your business needs. Here are some key points about creating workflows for multilevel approval after you go through the two examples above:
- Create multiple workflows depending on how many start conditions are needed.
- Even if the start conditions are different, you can still consider having one workflow for multiple company codes.
- You specify the start condition to trigger a workflow, and you can set up an approval sequence by using the verify steps in the workflow.
- Don’t forget to give appropriate orders to the workflows and make sure they can be triggered as you expect when their start conditions are met for one business scenario.
- To create workflows as few as possible, try to use consistent currencies for company codes when you define conditions to trigger a workflow or a verify step. In these examples, the global currency is used for defining the threshold amounts.
For more information about journal entry verification and how to enable workflows, you can always find the information on the SAP S/4HANA Help Portal:
Thanks for sharing Alice. Great Post.
I have a couple of questions in this workflow process. Do you have any experience or working that scenarios ?
1. There is a requirement to select multiple approver (No group) for a journal entry. Meaning the submitter of the journal entry should get an option to select the approver in the workflow. Either the line manager as the default 1st level approver or the submitter can select who would be his/her approver.
2. How the proxy process will work in case of the absence of approver ?
Thanks
Hi Priyadarshan,
Thanks for your questions. I consulted the team expert and provide the following answers.
Re the first question: A submitter is not allowed to choose approvers for now. All the approver assignment are done in the Manage Teams and Responsibilities For Journal Entry Verification - In General Ledger app by the admin.
Re the second question: Yes, you can manage your substitutes during a period of time. Here is a topic where you can find more about how to do: Create and Manage Substitution Rules - SAP Help Portal
In addition, we are planning a new feature, probably with CE 2208. Users can configure to set a deadline for a journal entry, After the deadline is met, the system marks the workflow as overdue or sends a system notification to another processor. Please stay tuned for the new feature.
Dear Alice,
This documentation is very nice and detailed, but I am missing tow pieces of information:
Thanks a lot for your feedback.
Patrick
Hi Patrick,
Re: your questions
Any other questions, please let me know.
Alice
Hi Alice,
Thanks for sharing, I found your post extremely detailed and helpful.
I have a question arising from my client requirement.
I am going to create a multilevel approval workflow, where the approvers are not defined in the Manage teams and Responsibilities app, but are dynamically determined based on the Management level (this is going to be done by integrating the SAP HR logic).
In some cases, the user determined for the first level approver may coincide with the user determined for the second level approver, and/or the user determined for the second level approver may coincide with the user determined for the third level approver.
My question is: is it possible to create a logic (or a precondition or an exception) by which the workflow can identify the case of coincident approver users and stop the workflow after the first (or second) decision step? And how this can be done?
For instance:
Two level approval workflow. The first step goes to the first level approver and the user determined as first level approver approves the sales document. Then:
Thank you for your feedback
Lorenzo
Hi Lorenzo,
I forwarded your question to the dev team last week. It seems to be a question worthy further discussion. Just let you know the experts are investing on it. Please stay tuned for updates.
Hi Lorenzo,
Please refer to this blog first about how to understand the BAdI for Journal Entry Verification in General Ledger. You need to add one more workflow condition with the Providing additional conditions BAdI first. Then you can implement the logic to check whether the approval user in the second level is the same as the first level in Value evaluation BAdI. It could return false when they are the same as each other. As a result, the workflow can stop, and the document is approved automatically.
More Flexible Conditions to Trigger a Workflow | SAP Blogs
Any questions, welcome to contact us.
Best Regards,
-Jiang.
Thanks you so much for this blog.
Alice Ying can we set up a workflow with 2 verify steps.
Steps as:
Regards,
Bhawesh
Hi Bhawsh,
I guess you are referring to a simple case without an approval sequence. As you said, you can set threshold amounts in a verify step of one workflow. For more information, please see the help topics on the SAP help portal:
Hello Alice,
Have you been able to deploy this functionnality ? is there a sap note available please ?
"In addition, we are planning a new feature, probably with CE 2208. Users can configure to set a deadline for a journal entry, After the deadline is met, the system marks the workflow as overdue or sends a system notification to another processor. Please stay tuned for the new feature."
BR,
Mehdi
Hi Mehdi,
Yes, the "deadline" feature was rolled out with What's New 2208. Please search for the feature in the What's New Viewer for more details.
BR,
Alice
Thank you Alice for the response.
Is this feature available for the purchase requisition flexible workflow too please ?
BR,
Mehdi
Hi Mehdi,
It's out of my reach, but I found the WN topic mentioning deadline setting with CE 2208: Enhancements in Manage Workflows for Purchase Contracts. Is that what you are looking for?
Best,
Alice
Hello
Thanks for the documentation. I have to program the Methode IF_MMPUR_WORKFLOW_AGENTS_V2~GET_APPROVERS in the BADI MMPUR_WORKFLOW_AGENTS_V2 to get the agent (Approver) for Multilevel. The down Level (Level 1, step1) is the Supervisor of the creator, Level 2(Step2) is the Supervisor of the Superviser of the creator etc...
The question is, how to get the Supervisor?
Thanks and best regards.
Wissem
Hi Wissem,
This blog is about verifying journal entries. The BADI you mentioned is for MM area? Sorry I am not able to answer questions for this BADI. Please contact MM team for further help.
Best,
Alice
Thanks for your answer. I found the Solution 🙂 Thats why i want to write here maybe somewone will need it one day.
Folowing Information can help you to get what you need:
Class: CL_RSM_BADI_IMPL_TEAM.
Interface: IF_RSM_TEAM_HIERARCHY
and the most important ist the table HRP1001, here you can find the responsable of a employer with Paramerter ObjectID, A or B in feld RSIGN and RSIGN 003 or 776 etc.. Then you can find the the result of Parent/Child Team or the ID of the responsable in the Feld SOBID (Table HRP1001).
Best,
Wissem Ouni
Great. Thanks!