cancel
Showing results for 
Search instead for 
Did you mean: 

Rule ID GRAC_MSMP_DETOUR_RULE_SODVOL belongs to which functional module.

Former Member
0 Kudos

Hi Experts,

Need your help on this.

The Rule ID GRAC_MSMP_DETOUR_RULE_SODVOL belongs to which functional module.

& how to debug this rule related functional module by t-code SE37 or some other method

Accepted Solutions (0)

Answers (1)

Answers (1)

Colleen
Advisor
Advisor
0 Kudos

Which process type is the GRAC_MSMP_DETOUR_RULE_SODVOL for?

For UAR I have Rule GRAC_MSMP_DETOUR_SODVIOL - SOD violation check routing rule ( Process Type : SAP_GRAC_AR)

I have checked table GRFNMWCNRULEID in my system and cannot see the role you mention

If the role is a Function Module based, then as you mentioned, SE37 would be used. You can put a external break point in it and debug like any other ABAP code.

Former Member
0 Kudos

Hi Colleen Lee

Details is as follows: -

PROCESS_TYPE--> SAP_GRAC_AR

RULE_KIND-->R

RULE_TYPE-->F

RULE_ID-->GRAC_MSMP_DETOUR_SODVIOL

Its for UAR

So this rule id belongs to which function module.

Apologies for mistake.

Colleen
Advisor
Advisor
0 Kudos

HI Sachin

I'm not sure what you are expecting for why you need to debug this..

The Rule Id is the Function.

Rule Type  F --> SE37 Function Module

Rule Type  B or E --> BRF+ or FDT_WORKBENCH Rule

Rule Type C --> SE24 ABAP Class

So you should go to SE37 and enter the Rule ID as the Function Id - GRAC_MSMP_DETOUR_SODVIOL

If you do not have a development background, I would recommend you leverage your development team to assist you in debugging for whatever reason.

At the end of the day, the functional module is returning the Result

Code - declares the rule_result

     CONSTANTS gc_detour_path TYPE grfn_mw_s_routing      rule_result VALUE 'SODVIOL_DETOUR_PATH'.

At the bottom of the code it sets the value

IF lv_detour = abap_true. " AND ls_provlineitm-approval_status <> grac0_approval_action-reject .
           ls_result_routing-line_item_key = <ls_lineitem_rule>-itemnum."ls_provlineitm-itemnum .
           ls_result_routing-rule_result = gc_detour_path .

In the MSMP the Rule Results Table for the Rule contains the value SODVIOL_DETOUR_PATH

You would then need to use Maintain Route Mapping in MSMP to tell the workflow which Path to take for this result set.

Simply put, this Function Module is returning the value SODVIOL_DETOUR_PATH which is used in the MSMP for Route Mappings to Path.


Former Member
0 Kudos

Thanks Colleen Lee for help.

My Requirement is as follows

CASE 1: When a request comes Role Owner Check for  SoD if there is no SoD then it go security.

CASE 2: When a request comes Role Owner Check for  SoD if there is  SoD then it go Local Owner which are Fixed in Location wise.

Case 1 works perfectly with help of function module.

Case 2 it always return 1 value whatever the condition[ for e.g if in condition group is A then it goes to Group A but if in condition is B then always goes for A ].

As it code have to check request belongs to which location but here right now it put always First Line item Value.

So i need to change this thing by creating a custom code.\

Any suggestion on this.

Colleen
Advisor
Advisor
0 Kudos

Hi Sachin

Based on what you are saying, If you want to have two different route results for CASE 1 and CASE 2 then you will either need to look at BRF+ rules or Build own Function Module to map to stages (return two different rules which map to it).

Former Member
0 Kudos

Hi Colleen Lee

In Current SAP Standard functional module work for CASE 1 & For Case 2 it works for only first value in the line. I go in deeper & get one thing the result for CASE 2 always pick first value what ever is the condition.It never look in 2,3......so on values.

i am looking for by which condition it pick only first value.

Looking for your help in this.