cancel
Showing results for 
Search instead for 
Did you mean: 

Decision Table does not return appropriate result set???

former_member184114
Active Contributor
0 Kudos

Dear All,

I followed on SCN and built BRF+ rule accordingly. However, I have a small variation in my requirement. Instead of critical role level, I used Role Connector as the base condition.

I generated all the expressions, function and ruleset appropriately. While I simulating the function, I added a row and then under "Line Item" column, I entered a connector name manually. After that, when I simulated, this function does not fetch the desired resultset!

It is evident that some condition is definitely not met. I am not sure how and where to maintain the connector (ROLE_CONNECTOR) in the newly added row.

Can anybody please advise me to resolve this issue?

Actually, I am trying to determine a result based upon the line items in an Access Request. If I have connector line item ONLY, then it should fetch result A. Else if an Access Request has both Roles and System entries, it should fetch result B.

Can anybody please advise how to achieve this?

Regards,

Faisal

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Try using a condition: If Role_name is "initial" - then Result A (this would be true if you only have System as line-item), Else result B (this would be true for anyother case, ofcourse when the Role Name is found in the line-item).

All the best!

former_member184114
Active Contributor
0 Kudos

Dear Manik,

Thanks for your reply.

I did as you suggested. However, still get NO result!

Below is the line item and result screen shots:

result:

can you please advise?

Regards,

Faisal

former_member184114
Active Contributor
0 Kudos

Hi Manik,

It seems now it is giving me desired result!

However, I would like to know more about the "Comparison Operations" and their behavior. May you please help me get good understanding of this?

Though I have followed your suggestion, I still have to understand the logic and system behavior.

Please advise.

Regards,

Faisal

former_member184114
Active Contributor
0 Kudos

Hi Manik,

When I simulate the Function, it is giving me desired result.

I have configured MSMP workflow accordingly. Now when I add system ONLY, workflow is successfully getting executed and request is getting closed properly.

However, when I add Role and System, MSMP workflow is getting failed! It says:

"No match found in Decision Table"

I am not sure if I simulate the BRF+ Function, it is successfully but when I raise and submit request with Role and System, MSMP WF is getting failed.

Any advise please?

Regards,

Faisal

Former Member
0 Kudos

Can you please share the snapshot of your BRF Dec. table?

There is only one entry in this Dec table. This would be applicable majorly via the following:

Keep the agent as standard Role Owner agent, and configure a detour with this brf rule logic and this should work.
Anything, let me know.

Former Member
0 Kudos

Nice and Quick solution.

former_member184114
Active Contributor
0 Kudos

Dear Manik,

Thanks for your reply.

Let me tell you how I have designed my solution.

I have used below elements:

1.  Expression: Decision Table (INT_DEC_TABLE)

2.  Expression: Loop (LOOP_REQUEST)

3.  Expression: Table Operation (Operation_Table)

4.  Function: INIT_RULE

5.  Rule Set: INIT_RULESET

I have used above elements based upon my understanding:

All the line items will be searched with the help of Expression: Loop (LOOP_REQUEST) and each time, it will return Boolean with the help of   Expression: Table Operation (Operation_Table) . Finally, based upon the Boolean value, appropriate result set will be determined with the help of Expression: Decision Table (INT_DEC_TABLE.

Please correct me if need be.

Below are the screen shots of these elements.

Expression: Decision Table (INT_DEC_TABLE):



Expression: Loop (LOOP_REQUEST)




Expression: Table Operation (Operation_Table)




Function: INIT_RULE




Rule Set: INIT_RULESET



Should I go by the above solution to achieve my business requirement?

When I am simulating, I am getting expected results. However, when I try to submit a request with "Role" and "System" line items, I get below error:

Rule SAP_GRC_ACCESS_REQUEST/B/123456....: No result retrieved for Line-item '0002'

Request submit failed; error in MSMP submit method


I am not sure why the same error is not shown at the time of simulation. It is showing ONLY at runtime.

Please advise.


Regads,

Faisal

madhusap
Active Contributor
0 Kudos

Hi Faisal,

During Simulation you will not get the error because you pass the input parameters manually, but during real time execution whether input data is being sent correctly or not we need to check.

I will try to simulate the same  and will check if I can help you.

Regards,

Madhu.

former_member184114
Active Contributor
0 Kudos

Hi Madhu,

Thanks for your time.

Would be waiting for your input.

Regards,

Faisal

madhusap
Active Contributor
0 Kudos

Hi Faisal,

I checked your scenario. Below is my observation

1. ROLE_NAME Is Initial means Role Name is Empty. So did you check by Changing the ROLE_NAME to IS NOT INITIAL and tried?

2. When I tried, I didn't use Loop or Table Operation as I first wanted to know whether any value related to role LineItem is being passed to my decision table or not.

3. I created a decision table with Connector and Role Name as my condition columns.

Req.Type (1 or2) - Connector (Not Initial) and Role Name (Initial) - Go to Path ONLY SYSTEM

Req.Type (1 or2) - Connector (Not Initial) and Role Name (NOT Initial) - Go to Path SYSTEM and ROLES

What I observed is ROLE NAME is always INITIAL. I tried with ROLE Connector and all Role related fields and everything is always empty as no value is being passed related to the role LineItem.

so, If my request contains only SYSTEM LineItem

Req.Type (1 or2) - Connector (Not Initial) and Role Name (Initial) - Go to Path ONLY SYSTEM

This condition is getting satisfied and going to SYSTEM path

so, If my request contains both SYSTEM and ROLE LineItems

Req.Type (1 or2) - Connector (Not Initial) and Role Name (NOT Initial) - Go to Path SYSTEM and Roles

Here System is going to Path ONLY SYSTEM

Role LineItem is going to Path SYSTEM and Roles

Basically what I observed is none of the Role related attribute values are coming up and they are always empty I have debug and found that Please raise to SAP this as issue

Regards,

Madhu.

former_member184114
Active Contributor
0 Kudos

Madhu,

Thanks for so nice explanation and taking out some time to test this

It is really appreciated!

Secondly, I have not yet tested using single decision table. That is why I has asked about the approach.

I think we need to make use of 'Loop' expression here as application has to loop through all the line items till the end and pass the boolean value accordingly. This is ONLY my belief!

I think I should raise an Incident with SAP for this issue what I am facing.

I will update this post when I am done.

Regards,

Faisal

madhusap
Active Contributor
0 Kudos

Hi Faisal,

Issue is mainly because ROLE LINE ITEM related attributes are not being passed to BRF+ application.

So, we cannot define any condition using Role name or Role Type or Role Connector or Role GUID.

So, your requirement is :

System + Role -> Go to Path 1

System -> Go to Path 2

To achieve your requirement for sure you need some information about the Role LineItem to be passed to BRF+ application. We need to raise this to SAP to get this fixed.

Regards,

Madhu.

former_member184114
Active Contributor
0 Kudos

Madhu,

Yes, I noticed that while simulating it is working fine and giving the desired result. It is only at truntime it is giving me this error.

Regards,

Faisal

former_member204479
Active Participant
0 Kudos

Hi Faisal,

If your initiator is a BRF plus flat rule (line item by line item) then by default it repeats for each line item and thus a "Loop" is not required here.

Try having only a decision table with columns as:

Role_ConnectorConnectorTrig Value
SYS1<blank>PATH1
<blank>SYS1PATH2
SYS2<blank>PATH3
<blank>SYS2PATH4

This would ensure, for role line item the role connector input would be considered and for the system line item the connector input would be considered. Trig values can be as per your requirement.

EDIT: Instead of <blank> you might also use pattern '*' so that anything on the other field would not make any difference.

Thanks

Sammukh

former_member204479
Active Participant
0 Kudos

Hi Madhu,

One observation on your screen shot. The PROV_ACTION here is 001 which is "Create User" for a system line item, therefore the role details will be blank.

For prov actions Assign, Retain and Remove the role details will be populated.

Let me know if you observe the same

Thanks

Sammukh

former_member184114
Active Contributor
0 Kudos

Hi Sammukh,

Tthanks for ur input. I will try to use ur configuration and check.

May you please let me know when do we use loop expressions? Any example would be a great help.

Regards,

Faisal

former_member204479
Active Participant
0 Kudos

Hi Faisal,

Loops can be considered for scenarios like;

- user defaults rule

- agents rule for a stage where you might want each role to go to a different approver based on certain condition

Based on the complexity of conditions a loop might be used. Also note that loops are not only restricted for request line items. They can be used to run through reference tables within brfplus applications or repeat till a certain condition is true / false. Just like any loop statement we might use in programming languages.

Thanks

Sammukh

madhusap
Active Contributor
0 Kudos

Hi Faisal,

Sorry for earlier reply.

I was debugging only with my first lineitem and hence issue with role attributes.

Below is my observation:

Only System LineItem - Goes to Path 1

System + Role LineItem - Goes to both Path 1 and Path 2

As First LineItem System satisfies Path 1

And Second LineItem Role satisfies Path 2

If we need to control request with System + Role to go only to Path 2, then we need to read all the LineItems once from the request rather than LineItem by LineItem and then should build our logic on top of that.

Sammukh,

Thanks for letting me know about where I was missing the role line item during debugging.

Regards,

Madhu.

former_member184114
Active Contributor
0 Kudos

Hi Sammukh,

I created a BRF plus flat rule (line item by line item) and created a decision table (with ROLE_CONNECTOR and CONNECTOR columns) ONLY as suggested.

I tried to simulate the function. I could find the CONNECTOR field but I could not find ROLE_CONNECTOR field to select the connector from!

I could find all 37 fields as "Context Values" (belonging to Request Header)  but "ROLE_CONNECTOR"!

May I know how do I pass ROLE_CONNECTOR information?

Regards,

Faisal

former_member204479
Active Participant
0 Kudos

Hi Faisal,

Please see the simulation screen capture below:

Also please check if you have following in your Context of the function:

Thanks,

Sammukh

former_member184114
Active Contributor
0 Kudos

Hi Sammukh,

Thanks again for your reply.

Yes, I have Request Line context attached with my function. Please see below:

Below is my Decision Table with columns:

However, when I simulate it, I still DONT see the Role Connector field! Please see below:

Request Header (above)

Access Request Line Item

Can you please advise what I am missing?

Regards,

Faisal

madhusap
Active Contributor
0 Kudos

Hi Faisal,

Field I have highlighted is the ROLE_CONNECTOR.

My screen for your reference:

Regards,

Madhu.

former_member204479
Active Participant
0 Kudos

Hi Faisal

As Madhu mentioned that is the field for role connector. I assume you are in simple view mode in brf plus and thus are seeing labels of the fields. So you see "system" both for role connector as well as connector fields.

Thanks

Sammukh

former_member184114
Active Contributor
0 Kudos

Hi Sammukh,

Thanks for updating me. I understand this now.

Regards,

Faisal

former_member184114
Active Contributor
0 Kudos

Hi Madhu,

Thanks for your reply.

Now I got it 🙂

May I know how I can get the technical field names displayed?

Regards,

Faisal

former_member204479
Active Participant
0 Kudos

Hi Faisal,

To see the technical names you can try putting the brfplus view to expert mode.

Below are screens to show them:

EDIT: Missed one point - In the personlization screen above - check the Show technical names etc check boxes as required.

Thanks

Sammukh

former_member184114
Active Contributor
0 Kudos

Hi Sammukh,

When I am simulating it, desired result is fetched. However, at runtime, I am getting below error:

May you please advise?

Regards,

Faisal

former_member204479
Active Participant
0 Kudos

Hi Faisal,

Please share the screen for the decision table once.

Thanks

Sammukh

former_member184114
Active Contributor
0 Kudos

Dear Sammukh,

Sorry for the delay as I was away from SCN.

Please find below Decision Table:

Here, my logic uses upon only one system (ABCCLNT800) for testing purpose. However, the idea is to fetch appropriate rule set based upon the system or role line items.

Please advise.

Regards,

Faisal

former_member184114
Active Contributor
0 Kudos

Dear Sammukh,

I changed the condition in ROLE_CONNECTOR column and now it is working fine and does not give any error. Below is the decision table:

Thanks for your nice help 🙂

Regards,

Faisal

Answers (0)