Skip to Content
Technical Articles
Author's profile photo Vinita Kasliwal

SAP BP TCODE HIDE ROLE IN DROPDOWN

1. SAP transaction BP – Hide the BP roles in Dropdown

Using BP transactions could be for customers, vendors, and a lot of other Business partners(internal and external) in the system. SAP has a set of predefined roles for each of the business partners which can be seen as a dropdown as below. Using the technical objects and config in SAP BP Tcode you can hide roles in the dropdown

  1. How the screen looks currently
  2. Config based control
  3. Conditional restriction for dropdown
  4. Other BADIs which can be used

Please read on to find more below

1.1. SAP BP Tcode roles in Dropdown

Below is the screenshot of how the roles look like currently. When you click on display it only shows the role assigned to the BP  but clicking on change or create gives a whole drop-down list as seen below

 

1.2. Config based Control

Below is the config point.

SPRO->Cross-application Components ->Sap Bussiness Partner ->Bussiness Partner -> Basic Settings -> Business Partner Roles -> Define BP Roles

Refer note which has the screenshot explaining this setting

2813078 - How to hide BP role/BP role grouping on BP screen

 

1.3. Conditional Restriction for the dropdown

Conditional Viewing of roles based on predefined business condition example role assigned to the user

We can add custom logic based on which we can define

Check the class CL_IM_VKK_BUPA_ROLES_REMOVE  and method

IF_BUPA_BLOCK_ROLES_REMOVE~REMOVE_ROLES_FROM_DROPDOWN

I created a user exit for this method as a Post exit

Logic as below:

  1. Read the specific BP being opened by the user
  2. Restrict for a specific BP grouping or number range
  3. Get the roles for the user and check for the role combination which you want to show/hide a specific tab
  4. Based on the condition hide/ show the specific item in the dropdown menu
*lv_string1 = IV_PARTNER_NUMBER+0(1). 
Select single partner_guid from but000 into ls_but000 where partner_guid = IV_PARTNER_GUID . 
  if sy-subrc EQ 0 and iv_partner_number+0(1) NE 'E'. 
*You can also use partner grouping instead of number range in below  
      IF ( iv_partner_number+0(1) = '0' AND  ( iv_partner_number+4(1) = '9' OR iv_partner_number+4(1) = '7' ) ) . " M01 

        CALL FUNCTION 'BAPI_USER_GET_DETAIL' 
          EXPORTING 
            username       = sy-uname 
          TABLES 
            activitygroups = lt_groups 
            return         = lt_return          . 
 
        DATA: lv_string       TYPE string, 
              lv_delete_roles TYPE xfeld. 
 
        lv_string = 'ZVENDOR_ROLE'. 
* convert retrieved value to range table 
* Add your condition here; 
* if else endif.  Below is the condition based on restricting on role
        LOOP AT lt_roles INTO DATA(ls_role). 
          READ TABLE lt_groups INTO ls_group WITH KEY agr_name = ls_role. 
          IF sy-subrc EQ 0.  " Vendor matching role exist 
            lv_delete_roles = 'X'.  "so delete the other roles 
            EXIT. 
          ENDIF. 
        ENDLOOP. 
         IF  lv_delete_roles IS NOT INITIAL. 
          FIELD-SYMBOLS: <fs_struct> TYPE any. 
          FIELD-SYMBOLS <fv_value> TYPE any. 
          DATA: lv_tabix TYPE sy-tabix. 
           LOOP AT it_possible_roles ASSIGNING <fs_struct>  . 
            lv_tabix = sy-tabix. 
            ASSIGN COMPONENT  'ROLE' OF STRUCTURE <fs_struct> TO <fv_value. 
            IF   <fv_value> IS ASSIGNED AND  ( ( <fv_value> =  '000000' ) OR ( <fv_value> = 'FLVN00' ) OR ( <fv_value> = 'FLVN01' ) ) . 
            ELSE. 
 
              DELETE it_possible_roles INDEX lv_tabix.. 
*              DELETE gt_partner_role_values INDEX lv_tabix. 
            ENDIF. 
          ENDLOOP. 
        ENDIF. 
*ENDiF. 
      ENDIF. 

 

1.4. Other BADIs which can be used

You could also use one of the BADIs below but I was not able to make them work for the specific requirement I had.

  • BUPA_BLOCK_ROLES_REMOVE
  • BUPA_ROLE_CHECK –
  • BUPA_ROLES_UPDATE  - Only run specific to a BP when the Vendor Loads.

 

Thank you for reading please share your comments/ Feedback

 

Please note the original article was posted here:

https://peritossolutions.com/sap/sap-bp-tcode-hide-role-in-dropdown/

 

Assigned Tags

      1 Comment
      You must be Logged on to comment or reply to a post.
      Author's profile photo Siegfried Weber
      Siegfried Weber

      Hi Vinita,

      Is there a possibility to restrict the displayed roles when a BP is created (depending on the grouping)?

      Kind regards

      Sigi