Skip to Content

Introduction

                         SAP Master Data Governance software helps organizations govern financial, material, customer, or supplier master data from its creation in a business application through its replication to target applications to ensure data quality and regulatory compliance across the enterprise

Scope

              

                        Assume the Customer  wants to communicate with an external non SAP system which has the Weight details of every material. Now in MDG if the weight is provided differently than the external system, then a warning message should pop up with the exact weight. This can be accomplished through BRF+.

Pre Requisites

                         You have already set up the required RFC destinations for communicating with the external system. In our case I will be using a excel sheet which has the material number and the weight. Then we use a  Java Server which acts as an external system. I have created RFC destination and will be communicating to this RFC destination. Assumption is that The Material Number is stored differently in the external system with ‘-MDG’ concatenated to it. Extend  your Data Model with 2 more additional fields so that they could hold the values of the Weight in External system and the result.

/wp-content/uploads/2012/08/1_131485.jpg

Function Module

                 

                         Create a Function Module which would communicate with the external System and gets back the value of the weight of the given Material. The Function Module, basically, gets the Material Number and the current weight in MDG as Input and returns the Weight and the Result from the External System.

Source Code:

*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(IV_MATERIAL_NUMBER) TYPE  CHAR50 OPTIONAL
*"     VALUE(IV_GROSSWEIGHT) TYPE  STRING OPTIONAL
*"  EXPORTING
*"     VALUE(EV_Result) TYPE  STRING
*"     VALUE(EV_WEIGHT) TYPE  STRING
*"----------------------------------------------------------------------
  data: lv_weight type string.
  shift iv_material_number left deleting leading '0'.
  concatenate iv_material_number '-MDG' into iv_material_number.
  call function 'ZEXTERNAL' destination 'ZEXTERNAL'
    exporting
      iv_material_number    = iv_material_number
    importing
      ev_weight             = lv_weight
    exceptions
      communication_failure = 1
      system_failure        = 2
      resource_failure      = 3
      others                = 4.
  if lv_weight is not initial.
    if lv_weight = iv_grossweight.
      ev_result = 'True'.
    else.
      ev_result = 'False'.
      ev_weight = lv_weight.
    endif.
  else.
    ev_result = 'True'.
  endif.

  clear: iv_material_number,
         iv_grossweight.

BRF+:

        

        Open the Rules, by starting transaction code ‘USMD_RULE’ and Providing ‘MM’ as the Data Model.

/wp-content/uploads/2012/08/1_131485.jpg

Now expand Trigger Function and right click on Check entity and select Create Object node->Create Function. The Check function entity should have the following Name format: CHECK_<Entity Name>.

Since our check is involved with Unit Of Measure Entity, I have named it as CHECK_UNITOFMSR.

/wp-content/uploads/2012/08/1_131485.jpg

Go to Assigned rule set and create a Rules set for calling the External System and the Function Module.

Click Insert Rule-> Create New, if the rule does not exist already.

Provide a Initial condition like, if Unit Of Measure is Initial or not.

Then Assign an Action of type Call Procedure by Clicking ADD->Perform Action->Create

/wp-content/uploads/2012/08/1_131485.jpg

Now Click Create and Navigate to Object.

Now Provide the Values as below and provide you Function Module Name which has to be called and Press Enter. The Import Variable and Export Variable are automatically fetched.

/wp-content/uploads/2012/08/1_131485.jpg

Now Click ‘ADD Parameter’ and map the Values to your Context.

Click the Parameter you want to map and Click Show Details.

/wp-content/uploads/2012/08/1_131485.jpg

Now Select the Icon that you see on Assigned Value Column and Select ‘Select Context Parameter’. It

Displays all the available Context parameters from the Data Model and your Entity type  ‘Material’ and ‘UOM’ since you have added it to the Signature.

Repeat this for all the Parameters. Your final set up should look something like this:

/wp-content/uploads/2012/08/1_131485.jpg

   In My scenario, I have mapped the Export Parameters of Gross Weight to EV_WEIGHT and the Result, either True or False to the other EV_WEIGHT.

Now Activate this Rule and Click Back and then Activate the Rule Set as well. Now we have to go back and Create another Rule set which can display the Error Message based on the Result returned from this Rules Set. This can be done in the same Rule Set as well. But for explanation Purpose, I have Created another RuleSet.

/wp-content/uploads/2012/08/1_131485.jpg

Now in the new Ruleset, provide initial condition as Checking the Result whether it is false and then displaying a message.

/wp-content/uploads/2012/08/1_131485.jpg

Follow the same steps as before to Create and Action of type Message and Provide the Message Number, if you have create one already or Provide a Hard Coded text.

/wp-content/uploads/2012/08/1_131485.jpg

Test

                         In the excel sheet, I have maintained a Material number R128-MDG which has a weight of 90.000 in the external system. The Same Material is known as R128 in MDG and has a weight of 0.5. so when I press check, it gives me a warning message.

/wp-content/uploads/2012/08/1_131485.jpg

Now if I change the data in the excel or in MDG, I don’t get this error since it is real time.

/wp-content/uploads/2012/08/1_131485.jpg

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply