Waiting too long for approvals? How about setting deadlines in advance?
A user story
Suzy works as a configuration expert in a company that has a workflow for journal entry verification. Depending on the business requirements, Suzy defines workflows with the necessary verification and authorization so that journal entries are reviewed by the designated processors before they are posted to the general ledger.
She’s very good at configuring workflows, and everything was going smoothly until this week. Now, some accountants are complaining that the posting process is blocked, and some journal entries can’t be successfully posted. Suzy tries to figure out why, and she investigates the requesters’ worklist and finds out that all the blocked journal entries with the Submitted status are waiting for Stella, the assigned processor, to approve. Suzy emails Stella, but the autoreply shows that Stella is on leave for something urgent and she won’t be back for a few days. Lenny is her substitute for journal entry processing, but obviously it’s impossible for the workflow itself to know what’s going on and to change the processor in the system automatically. Suzy can think of a workaround, but it isn’t straightforward:
- She calls the requesters to withdraw their journal entries in the waiting list.
- She goes to the Manage Teams and Responsibilities For Journal Entry Verification – In General Ledger app and replaces Stella’s name with Lenny’s in the group.
- She specifies Lenny’s name in the impacted workflow.
- After the workflow is activated, she asks the requesters to resubmit their journal entries for approval.
Obviously, Suzy isn’t at all satisfied with this approach, because she’d have to remember to change Lenny back to Stella in the system again later, and these changes impact quite a few people. Unable to think of a better solution herself, she calls the SAP consulting contact and wants to know if there is a better way to deal with this issue. Luckily for Suzy, it turns out that there is. She doesn’t need to change the processor names repeatedly as long as she uses the ‘setting deadlines’ feature which has been available as of SAP S/4HANA Cloud 2208. Suzy is very pleased to hear the news.
What’s the deadline setting for?
With a deadline setting in a workflow, the system can calculate the time the verification workflow spends on journal entries. When the deadline is reached but the journal entries are still waiting for approval, the system behaves in one of the following ways, based on your configuration:
- Another processor (for example, Lenny in the user story) starts to receive the journal entries that are waiting for approval in their inbox.
Tip: You may consider choosing an always-available processor as the substitute, for example, the system administrator.
- The deadline is reached, and the waiting journal entries are given Overdue status in the processor’s inbox. These journal entries can be filtered and processed as a high priority when the processor (Stella in the user story) becomes available again to verify them.
But the key thing is to remember to set a deadline as a precaution before the workflow is activated, especially when you can see that there might be some instability in the processor assignment.
How do you set deadlines in a workflow?
The deadline setting is available in the Verify step of a workflow. It’s highly recommended to configure deadline handling before the workflow is triggered. It’s simple to set up, and you do the configuration in the Deadlines section of your Verify Step.
To do this:
- Choose or create a workflow in the Manage Workflows for Journal Entry Verification – In General Ledger
- In Edit mode, go to the Verify step and locate the Deadlines section.
- Choose Create. A Create Deadline dialog box pops up.
- Choose when you want the deadline calculations to start:
- When the workflow starts
- When the verify step starts
- Give a time constraint.
- Choose one of the following actions when a deadline is reached:
- Forward to other processors
- Set the status to ‘Overdue’
- Save your changes.
That’s all you need to do in the Manage Workflows for Journal Entry Verification – In General Ledger app if you chose the ‘Set the status to Overdue’ option, but there are a few more steps if you chose to forward journal entries to substitute processors. To forward journal entries, it is a must to define the substitute processors by implementing the Verify general journal entries / currency adjustments workflow agent determine (FIN_WF_AGENT) BAdI:
- Open the Custom Logic app as the administrator.
- On the Custom Logic page, choose Create.
- Provide values for the following fields:
- Business Context: Journal Entry Verification in General Ledger
- BAdI Description: Verify general journal entries / currency adjustments workflow agent determine
- Implementation Description
- Implementation ID
- In the Filter section, create the following filters: workflow_id = WS02800046; step_id = Verify
Note: For a workflow of currency adjustment verification, specify the filter as workflow_id = WS78500019.
- Replace the logic with the following sample coding:
"Sample Implementation "THIS IS A SAMPLE IMPLEMENTATION. PLEASE USE YOUR OWN LOGIC TO DETERMINE AGENTS AND PASS TO 'AGENTS'. LOOP AT old_agent INTO DATA(lv_old_agent). " Customer's own logic to determine new agent " based on old agent DATA(lv_new_agent) = 'CB9980000138'. APPEND lv_new_agent TO new_agent. ENDLOOP.
Note: In this sample, you assign the next processor with a user ID.
At last, Save and publish this BAdI implementation.
Now you don’t need to worry about the processor blocking a workflow, because you have a plan B for the system to trigger if the problem arises.
For more information about configuration in a workflow, please explore more on the SAP Help Portal.