on 2014 Dec 01 2:31 PM
Hello colleagues,
Not so many time ago I posted my problem with functional area usage on the second stage of my workflow.
I closed the thread with link to the note http://service.sap.com/sap/support/notes/1890452
However, the question is in my bucket list. I've tried different methods to make FAs work: DB lookups, table operations, Cases and Rules.
None of them works, could you tell me please, is my situation unique?
Has anyone done this before? Could you give a clue for my issue?
I've also tried to use different docs (thanks for the authors)
but I couldn't apply them to resolve the problem
Help others by sharing your knowledge.
AnswerRequest clarification before answering.
Hi Artem,
If I understand your requirement correctly, what you are trying to achieve is that you want to create a agent rule for determining the approvers of your roles with Functional Area as key field.
So, your roles have one to one mapping of Functional Area or Multiple Functional Areas maintained ?
Provide some more details about your requirement so that easy to help you.
Regards,
Madhu.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Madhu,
You are right, I'm trying to create an agent rule that determines approvers by their functional areas. In our concept one role has one functional area.
As I posted previously, I tried to use decision table like:
FA1=Approver1
FA2=Approver2
If it worked I got a working solution, but due to restrictions with FA I have this issue.
Regards,
Artem
Hi Artem,
I am able to determine agents based on Functional Area. Below is the logic. First create BRF+ agent rule (Not LineItem by LineItem) and then do below steps. I am not able to attach screenshots, will try to create a document and will update the link here. Meanwhile you can try with this logic.
1. Change the Function to event mode
2. Maintain Result data object under signature as GRFN_MW_T_AGENT_ID
3. Create a ruleset and in the ruleset create a rule to update the agent ID after processing Loop which loops through each entry in request line item
4. Create a loop for processing each line item included in the request.
5. Then create a Table Operation. In this table operation Since your role has only one Functional area value maintained, just fetch the First row and return the result in to Functional Area field which is part of structure GRAC_S_API_ROLE_FUNC_AREA
6. Then Create a Rule (rule 1) to change the value of Functional Area after processing the Table operation created above.
7. Now in your Loop process the rule (rule 1) created in step - 3
8. Now create a decision table with Functional Area as Input Agent Id as output. Then create another rule (rule 2) to change agent ID in agent ID structure after processing each entry in Decision table.
9. Now create another rule (rule 3) in your loop for inserting the values into Agent ID table from Agent Id structure.
Regards,
Madhu.
Hi Madhu,
I tried to follow similar steps using the link, but I messed up with the logic. Now the same situation with your steps, because so many questions are rising
I see the following algorithm:
Select FA from the first line of the role in the request
Case: FA=1 then Approver 1
FA=2 then Approver 2
FA=n then approver N
Take next line if it wasn't the last
How to make this realization for this logic in terms of BRF tools?
The same situation with your steps.
Could you clarify some of them please?
3. Create a ruleset and in the ruleset create a rule to update the agent ID after processing Loop which loops through each entry in request line item
Should I assign ACTION to the rule?
4. Create a loop for processing each line item included in the request.
What structure should I use and what type? GRAC_T_REQUEST_RULE_LINE?
6. Then Create a Rule (rule 1) to change the value of Functional Area after processing the Table operation created above.
I tried here to select newly create TO to assign it to "if clause", but I can't find it. And I don't understand the logic. My TO returns me FA of the role in a request, then "if" what? What I get in the "then clause": If TO then {action|object|value|expression|rule}?
7. I get this:
So, your steps are valuable, but I have mess in my head
Hope you can help me out.
Thank you in advance
Regards,
Artem
Hi Madhu,
Thank you for the very detailed document! Great work! 5 stars!
But I have one problem with ruleset activation
Everything seems to be done right. If you have faced with the same problem, please advice what should I do.
Regards,
Artem
Hi Madhu,
Some of them activated,
Ruleset cannot be activated due to the error
What's interesting, after this fail I repeated one-to-one as you described in the blog. And it works, but I don't know why my ruleset cannot be activated. Maybe because I use the same objects within the same application?
Regards,
Artem
Yes, I created in different application and all objects were activated. But I don't understand why I get the error. I don't think that is because of the same names for DTs so they have IDs. As I understand my collection of the object doesn't conflict with the concept of the application.
From the help
A BRFplus application object is a container of different BRFplus objects. You can think of the BRFplus application as a reflection of a particular system functionality that you want to enhance by some business rules modeled with BRFplus. It is then recommended to collect all the BRFplus objects that contribute to a given system functionality in one BRFplus application.
So, my application logically combine all objects of the access request processes.
IMHO it's a strange situation
By the way, following your steps I found a bug (or feature )
Here it is
When I tried to create DT for the rule in the loop I couldn't get "Create" function in the menu
To resolve the issue I chose "recommended function" and then added the second rule, and only then I got "Create" (after this I deleted the first rule)
Regards,
Artem
Hi Madu,
I've tested my path configuration. Seems that there is something wrong with the agent.
The system gets me "Failed to determine the agent"
My path is determed depending on req.type, so I first I chose new account, the request contained role and system. When I got the error I thought that was because I hadn't created the rule for the system. So that I created a request without system, just change change account via role assignment, but the system gave me the same error.
Here is the logic of the path:
Could you try to check the work of the function in your environment please?
Regards,
Artem
Hi Artem,
As first check can you remove the entry with [*] in your decision table and maintain only other 2 entries.
Once this is done, simulate your function and give the input role name with different functional areas and check if the simulation output is proper.
Please do these checks and let me know.
Regards,
Madhu.
Hi Artem,
I have simulated in my system and I am able to get the Agent details correctly. I am confused on where you might be facing issue. Since you confirmed you removed your [*] entry from your decision table. Please activate all expressions in your application and try to simulate again.
Regards,
Madhu.
Hi Artem,
I think the issue is in your rule 3. Please share your Rule 3 screenshot and also Simulation output of Rule 3.
If possible can you please share your Function, Ruleset, Rule, Loop, DT and Table Operation Screenshots.
I can check and can help you where exactly it was wrong.
Regards,
Madhu.
Hi Artem
Did you filled the table in SPRO settings for BRM where Approvers are filled in with their respective Functional Area. and mapped it to the Condition Group?
Regards'
Pradeep
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Artem
Below are the few steps which needs to be done to fulfil your requirements.
1.Create a custom BRF+ for Agents using Functional Area as the Role Attribute .
2.BRF+ should be line by line item type where you mention for each Function Area 1 Approver amd result type should be Condition Group.
3.Now Map this Condition Groups with Actual Approver/Role Owners in SPRO settings under Business Role Management,where there is a table which you need to fill in with each Condition Groups and Approvers for that Function Area.
I don't have the system in front of me otherwise I could have given you the exact configuration too.I will try to find out a system to give you the name of the configuration.
Hope this helps .
Regards
Pradeep
Hi Pradeep,
As I've understood following your steps I will get a function with a decision table, where one of the condition column will be FA. But here is the problem described in the note 1890452, we can't use FA in a decision table, instead we have to use table operations.
So that I can't move further step 2 of your algorithm.
Now I try to find out how to use table operation applying to my issue.
Regards,
Artem
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.