cancel
Showing results for 
Search instead for 
Did you mean: 

back to the past

former_member182655
Contributor
0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

madhusap
Active Contributor

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.

former_member182655
Contributor
0 Kudos

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

madhusap
Active Contributor
0 Kudos

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.

former_member182655
Contributor
0 Kudos

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

madhusap
Active Contributor
0 Kudos

Hi Artem,

Please check my blog post for your scenario. Hope this helps

Regards,

Madhu.

former_member182655
Contributor
0 Kudos

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

madhusap
Active Contributor
0 Kudos

Hi Artem,

Share the error screenshot. I didn't face any issue. Function, Loop, Table operation, DT all these are activated?

Regards,

Madhu.

former_member182655
Contributor
0 Kudos

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

madhusap
Active Contributor
0 Kudos

Hi Artem,

From your screenshot I can see that you are maintaining various functions, DTs under single application

Can you create this agent rule as separate application and try ?

Regards,

Madhu.

former_member182655
Contributor
0 Kudos

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

madhusap
Active Contributor
0 Kudos

Artem,

So, finally is it working or still any issue?

Are you able to determine approvers now based on FA?

Regards,

Madhu.

former_member182655
Contributor
0 Kudos

Hi Madhu,

I haven't tested the process, but yesterday I tried to simulate the function. The result was not positive I'll try to test the process with assigned function today and then share the result.

former_member182655
Contributor
0 Kudos

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

madhusap
Active Contributor
0 Kudos

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.

former_member182655
Contributor
0 Kudos

I added * to check whether the function works or not. Now I've removed *, but it still doesn't work

Here is my simulation parameters for the function

Result:

Regards,

Artem

madhusap
Active Contributor
0 Kudos

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.

former_member182655
Contributor
0 Kudos

Hi Madhu,

I don't why the function doesn't return the correct result. During its work the function gives me correct userid.

I posted screens of values with the data only, the other values are empty.

Are they ok?

Regards,

Artem

madhusap
Active Contributor
0 Kudos

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.

former_member182655
Contributor
0 Kudos

Hi Madhu,

Here it is

Do you have the same?

Regards,

Artem

former_member182655
Contributor
0 Kudos

Hi Madhu,

The issue is resolved. I recreated all my functions in different applications, so now your solution of FA's owner determination works in simulation mode. Hope it will work within my MSMP.

Regards,

Artem

madhusap
Active Contributor
0 Kudos

Artem,

That's great news

Yeah it should work with MSMP as well. Let me know if any issues..

Regards,

Madhu.

Answers (1)

Answers (1)

Former Member
0 Kudos

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

former_member182655
Contributor
0 Kudos

Hi Pradeep,

Do you mean "Assign Condition Groups to BRFplus Functions" in SPRO?

I need an agent rule for role assignment process, not for role creating process. Sorry for poor description.

Regards,

Artem

Former Member
0 Kudos

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

former_member182655
Contributor
0 Kudos

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