Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
AmitKrSingh
Product and Topic Expert
Product and Topic Expert
0 Kudos
657

Introduction


In this blog post, we will learn how to configure Data Block in BP transaction code to block access of certain business partner records using API.

Attribute based authorizations are dynamic determination mechanism which determines whether a user is authorized to access specific data sets which can be based on the context attributes of the user and data (for example, price of certain sensitive materials are masked).

The end result will appear as:


Prerequisite


UI Data Protection Masking for SAP S/4HANA is a solution that allows you to protect restricted and sensitive data values at field level by masking, clearing, or disabling fields for those users who are not authorized to view or edit this data.

Product “UI data protection masking for SAP S/4HANA” is used in this scenario to protect sensitive data at field level and must be installed in the S/4HANA system.

The product is a cross-application product which can be used to mask/protect any field in SAP GUISAPUI5/SAP FioriCRM Web Client UI, and Web Dynpro ABAP.

Let’s begin


Configuration to achieve data block


Logical Attribute is a functional modelling of how any attribute such as Social Security NumberBank Account NumberAmountsPricing informationQuantity etc. should behave with masking.

Configure Logical Attribute – Follow the given path:


SPRO -> SAP NetWeaver -> UI Data Protection Masking for SAP S/4HANA -> Maintain Metadata Configuration -> Maintain Logical Attributes
BP Number


Configure Value Range

Value Ranges are a set of pre-populated values which can be used to derive the context under which an action should be executed.
Follow the given path:

SPRO -> SAP NetWeaver -> UI Data Protection Masking for SAP S/4HANA -> Maintain Metadata Configuration -> Maintain Attributes and Ranges for Policy – Follow below mentioned steps:
Range of Blocked BP


  • Click on “New Entries” button

  • Enter “Value Range” as “VR_BLOCKED_BP

  • Select “Application Module” as “F Financial accounting

  • Enter “Description” as “Range of Blocked BP

  • Click on “Save” button



Enter entries in “VR_BLOCKED_BP” Value Range


  • Execute Transaction Code “/UISM/V_RANGE

  • Click on “VR_BLOCKED_BP” Value Range

  • Click on “Display<- -> Change” button

  • Click on “Add New Entry” button

  • Add following entries under “Include Value” tab and click on “Save” button


Value                   Description

0000000012        Food for You








Maintain Technical Address


In this step, we will associate the Technical Address of the fields to be masked with the Logical Attributes.

You can get the Technical Address of a GUI field by pressing “F1” on the field.


Follow the given path:

SPRO -> SAP NetWeaver -> UI Data Protection Masking for SAP S/4HANA -> Maintain Metadata Configuration -> Maintain Technical Address
Follow below mentioned steps:

Under “Data Element Field Mapping”, maintain technical address for following fields.
BP Number


  • Enter “Data Element” as “BU_PARTNER

  • Enter “Logical Attribute” as “LA_BP_DATABLOCK

  • Enter “Description” as “Data Block in BP

  • Click on “Save” button

  • Click on “Mass Configuration” button which is required to generate technical addresses for Module Pool Programs



Policy Configuration


Policy is a combination of rules and actions which are defined in one or more blocks. The actions are executed on a sensitive entity (field to be protected) which has to be assigned to a Policy. The conditions are based on contextual attributes which help derive the context.

Context Attributes are logical attributes which are used in designing the rules of a policy. They are mapped to fields which are used to derive the context under which an action is to be executed on a sensitive entity.

Sensitive Entities are logical attributes which are sensitive and need to be protected from unauthorized access.
Follow the given path:

SPRO -> SAP NetWeaver -> UI Data Protection Masking for SAP S/4HANA -> Data Protection Configuration -> Maintain Policy Details for Attribute based Authorizations – Follow below mentioned steps:

  • Click on “New Entries” button

  • Enter “Policy Name” as “POL_BLOCK_BP

  • Select “Type” as “Data Blocking

  • Select “Application Module” as “F Financial Accounting

  • Enter “Description” as “Policy to Block BP

  • Click on “Save” button



Write following logic into Policy


Maintain Data Blocking Configuration


Here, we will define how masking will behave with the logical attribute that we created in above step.
Follow the given path:

SPRO -> SAP NetWeaver -> UI Data Protection Masking for SAP S/4HANA -> Data Protection Configuration -> Maintain Data Blocking Configuration
Follow below mentioned steps:


  • Click on “New Entries” button

  • Enter “Sensitive Entity” as “LA_BP_DATABLOCK” and press “Enter” key. “Description” and “Application Module” will get populated in corresponding fields

  • Check “Enable Configuration” check-box

  • Select “Attribute Based Authorization” option

  • Enter “Policy Name” as “POL_BLOCK_BP

  • Enter “Message Class” as “/UISM/UI

  • Enter “Message Number” as “902

  • Click on “Save” button



API Implementation


UI Data Protection Masking for SAP S/4HANA" solution provides an API which can be employed to completely block access to a Business transaction within SAP. The API can also be used to suppress some records from a list.

The below approach needs to be followed to implement Data Block API:

  1. Developer need to analyze the business transaction to find a relevant enhancement option ( E.g. BAdI, Customer Exit, User Exit or Implicit enhancement Point, etc.) where UI Data Protection Data Block API can be called.

  2. Call the Data Blocking API in interception point by  passing the data reference of the key information which needs to be blocked/suppressed.

  3. Optionally, pass the underlying Table name-Field name of the key information.

  4. The API will return an Indicator and message in case the authorization fails.

  5. Raise a relevant message if Indicator is ‘Blocked’ or ‘Suppressed’.


Sample code is given below –



Conclusion


In this blog post, we have learnt how Data Blocking is achieved in transaction BP for blocking access of certain business partner records using API.