On a previous blog post -
Projecting Process Activity (Allocation) with Unassigned Items using View, it was discussed that unassigned sender records create business events and can be processed further in the My Events application. This is made possible when Event Handling is set to ‘Management’ which triggers the creation of such events coming from a prior execution of a Direct Allocation function.
For those who would prefer a different direction in dealing with unassigned items, perhaps setting the Event Handling to ‘Logging’ would be the first thing that comes to mind - No business event is created, no unassigned item needs to be processed further.
Now these main questions are raised:
- Since unassigned items will not be processed, is there a way to convert its corresponding error message during run time to messages indicating a successful run?
- How can we easily identify upfront those Sender records which were not allocated or even flag those Receiver records with corresponding Sender entries?
With SAP Profitability and Performance Management, this alternate approach is possible. Allow me to highlight the prerequisites in detail on this blog post.
Consider the following Allocation Header settings and data for our sample scenario:
Sender Table
Product
(ZE_PROD) |
Channel
(ZE_CHNL) |
Customer
(ZE_CUST) |
Amount
(ZE_AMT) |
Financial Period
(ZE_FINPR) |
238 |
92H2 |
AA |
300 |
1 |
224 |
92H2 |
DD |
200 |
2 |
238 |
92H2 |
AA |
400 |
3 |
224 |
92H2 |
DD |
400 |
4 |
239 |
92H3 |
CC |
1000 |
5 |
Receiver Table
Product
(ZE_PROD) |
Coverage
(ZE_CVRG) |
Channel
(ZE_CHNL) |
Customer
(ZE_CUST) |
Distribution Rate
(ZE_DRBRT) |
224 |
6981 |
92H2 |
DD |
60 |
224 |
6982 |
92H2 |
DD |
40 |
238 |
6985 |
92H2 |
DD |
55 |
238 |
6986 |
92H2 |
DD |
45 |
238 |
6989 |
92H2 |
AA |
20 |
238 |
6990 |
92H2 |
AA |
80 |
Prerequisites
1. Result Handling = set to ‘Include all data’
We can tell that this row from the Sender Table will be the unassigned item.
Also, we have receivers which will not get any allocation since there is no relevant sender.
Given the settings that we have for this scenario, unassigned items as well as those receivers without a relevant sender will be excluded from the Allocation function Result List.
Let us switch Result Handling from ‘Include enriched data’ to ‘Include all data’.
Notice now that the only system message that we have is that which indicates a successful run. More importantly, no error is displayed since we have decided to include the unassigned items in our result as shown below.
But still, the 2 orphaned receiver rows mentioned earlier were not displayed?
2. Suppress Initial Results = set to ‘No’
By definition, when this setting is set to ‘Yes’, entries containing only their initial values are excluded from the result. However, when switching Suppress Initial Results = ‘No’, we allow all entries to be displayed.
Notice that aside from the unassigned item, the 2 orphaned receivers are displayed as well.
Now that both of them are displayed, is there a way to tag the rows according to their nature so they can be easily identified?
3. Display technical field FS_PER_MSG_TEXT_
This field referred to as a “technical field” along with the other FS_PER* fields are available in the Result List of all other functions and not specific only to Allocation. It may not be visible by default, but it can be displayed at any given time by following the steps.
- Choose the Personalize button from the Result List
- Choose FS_PER_MSG_TEXT_ from the Available Columns, choose the Add Item button and press OK
Given our results earlier, our unassigned item is tagged as
S=Unassigned Items and our 2 receivers as
I=No Sender.
At this stage, we have managed to meet our desired behavior:
- No unassigned item error message during function execution
- Unassigned items and orphaned receivers are displayed in the result
- Displayed a visible tagging of the abovementioned entries by using the FS_PER_MSG_TEXT_ technical field
However:
- Filtering data directly from a technical field is not possible
Filtering an Environment field
Filtering a Technical field
- It also cannot be used directly in another function which will use this allocation function as an input because a technical field will not be visible for selection.
Considering the scale of our scenario, we only have 1 unassigned item which is somewhat easy to notice. In a business setting where quite a number of unassigned items can be generated, the following section is key to further manage such large volume of records with numerous unassigned items.
4. Creation of an Explicit View
Prior to configuration, an environment Characteristic field MSG_TXT has to be created, with FS_PER_MSG_TEXT as the Formula. This way, the content of the technical field FS_PER_MSG_TEXT_ is available in a ‘regular’ environment field, hence addressing the limitations that we have cited earlier when using technical fields directly.
As the View Type is set to ‘Explicit Fields’, all fields are declared in the Signature tab – Action section.
Finally in the Output tab,
S=Unassigned Items is maintained as the Selection Condition for the MSG_TXT field.
Running the Explicit View function now shows a result containing only the unassigned items and this completely fulfills our desired expected behavior for this scenario.
I hope I was able to provide you a whole new take on direct allocations and a fresh perspective in dealing with unassigned items. Feel free to like and share if you find the blog post helpful. In case of questions, you can raise them here in the
SAP Community Questions section link.
Thanks a lot for your time. Cheers!