📘 Comprehensive Guide: Enhancing SAP S/4HANA Business Partner with a Custom Tab
This guide provides a complete, end-to-end process for consultants, key users, and end-users on how to enhance the SAP S/4HANA Business Partner (BP) master data screen. We will walk through the technical steps to add a new, custom tabulation (tab) that displays and saves custom fields, based on the specific “FID” bank details example from your document.
Business Goal: The standard SAP Business Partner screen needs to capture additional, company-specific bank information that is not available in the standard fields. In this case, we need to add a new tab called “Bank details (FID)” to store indicators for “Customer Account Type” and “Vendor Account Type”.
This guide is broken into three parts:
The End-User Experience: What the final result looks like.The “How-To” Build Guide: A detailed, step-by-step tutorial for consultants and key users on how to implement this enhancement.The Test Plan: A practical, real-world business case to validate the solution.The End-User Experience (The “What”) 🧑💼
As an end-user (such as a Master Data Steward or Finance Clerk), your interaction with the system is simple. When you open the Maintain Business Partner app (or BP transaction), you will see the enhancement directly on the screen.
Business Process: Maintaining FID Bank Data
Access Business Partner: You open the Manage Business Partner Master Data Fiori app or run transaction BP.Find BP: You search for and open a Business Partner, for example, 1009 (F-LYON).View Custom Tab: In the “General Data” for the BP, you will see a new tab labeled “Bank details (FID)” alongside the standard tabs like “Address” and “Payment Transactions”.View Data: Clicking this tab displays the custom bank information, including the standard bank details and the new custom fields, such as “Indicator: Customer Account Type” and “Indicator: Vendor Account Type”.Edit Data: In change mode, you can edit these fields (e.g., check a box) just like any standard field. When you save the Business Partner, this custom information is saved with it.The “How-To” Build Guide (The “How”) 🛠️
This section is for Consultants and Key Users. We will build the enhancement shown in your documents from start to finish.
2.1 Concepts: How BP Enhancement Works (The BDT)
To add new tabs or fields to the BP transaction, SAP provides a standard framework called the Business Data Toolset (BDT). Think of the BP screen not as one single program, but as a collection of building blocks.
Data Set: A logical grouping of data (e.g., “Bank Details”).View: A single subscreen (dynpro) that displays data. This is what you create in the Screen Painter.Section: A container that holds one or more “Views.”Screen: A container that holds one or more “Sections.” This is what appears as a Tab.Screen Sequence: Defines the order of all “Screens” (Tabs) for a specific BP role or view (like “General Data”).
Our goal is to create our own custom View, Section, and Screen, and then add our new Screen (Tab) to the standard Screen Sequence.
2.2 The Build Process: Step-by-Step
Here is the complete process to replicate the “Bank details (FID)” enhancement.
Step 1: Create the Data Model (The Foundation)
First, we need a place to store our new custom data.
Go to Transaction SE11 (ABAP Dictionary).Create a Custom Table: Create a transparent table named ZBUT0BK.Description: “BP: Bank Details (FID)”Fields:MANDT (Key)PARTNER (Key) (Type BU_PARTNER)BUKRS (Key) (Type BUKRS)BKVID (Key) (Type BU_BKVID)ZZXDEBI: “Indicator: Customer Account Type” (Type XFELD)ZZXKRED: “Indicator: Vendor Account Type” (Type XFELD)Note: This table will hold our custom indicators, linked to the BP’s main bank data key. Your document also shows these fields appended to BUT0BK, which is necessary so the standard bank data structure (used by the screen) is aware of them.
Step 2: Create the Screen (The User Interface)
Next, we create the actual screen (dynpro) that the user will see.
Go to SE80 or SE38 to create a new Function Group (e.g., ZUD0). SAPLZUD0 is the program name for this function group.Go to SE51 (Screen Painter).Create Screen:Program: SAPLZUD0Screen number: 1500Design the Layout:Use the graphical editor to design the layout. You will likely add a Table Control (like GT_BUT0BK in the doc) to display multiple bank entries.Add fields from your program’s global data (see Step 3) for your custom fields (e.g., GT_BUT0BK-ZZXDEBI, GT_BUT0BK-ZZXKRED).Write the Flow Logic:The flow logic connects the screen to your ABAP code. Your document shows the following logic:
ABAP
PROCESS BEFORE OUTPUT.
* MODULE PBO_1500.
LOOP AT GT_BUT0BK WITH CONTROL TCTRL_BUT0BK CURSOR GV_BK_LINACT.
MODULE GT_BUT0BK_INIT.
ENDLOOP.
MODULE TCTRL_PBO.
MODULE SEPA_MANADATE_PBO.
PROCESS AFTER INPUT.
* MODULE PAI.
LOOP AT GT_BUT0BK.
MODULE GT_BUT0BK_MODIFY.
ENDLOOP.
MODULE BANK_DETAILS_CURSOR_GET.
MODULE GT_BUT0BK_LINACT_DETERMINE.
MODULE GT_BUT0BK_MARK_SINGLE.
Step 3: Create the Logic (The “Engine”)
This ABAP code defines what happens during BDT events (e.g., loading or saving data).
Go to SE37 (Function Builder).Create BDT Event Function Modules:ZUP_BUPA_PBC_MISC (Before screen callup): Loads data from the database.ZUP_BUPA_PBO_MISC (Before Output): Prepares data for display.ZUP_BUPA_PAI_MISC (After Entry): Saves data from the screen.Add Code to ZUP_BUPA_PBC_MISC:This FM calls a FORM routine (e.g., BUP500_PBC) inside your function group LZUD0F00 (an include in SAPLZUD0).Key Logic (from your doc): This code reads both the standard bank data and your custom Z-table data, combining them into a single internal table (GT_BUT0BK) for the screen.
ABAP
*… (Inside FORM BUP500_PBC) …
* Get the current BP number
CHECK CVI_BDT_ADAPTER=>IS_DIRECT_INPUT_ACTIVE( ) = ABAP_FALSE.
CHECK CVI_BDT_ADAPTER=>GET_CURRENT_BP( ) IS NOT INITIAL.
CLEAR GV_PARTNER.
CALL METHOD CVI_BDT_ADAPTER=>GET_CURRENT_BP
RECEIVING
R_PARTNER = GV_PARTNER. [cite: 105, 106]
* Fill table control table GT_BUT0BK from standard table
SELECT * FROM BUT0BK INTO CORRESPONDING FIELDS OF TABLE XBUT0BK
WHERE PARTNER = GV_PARTNER. [cite: 106]
*… (Logic to move XBUT0BK to GT_BUT0BK) …
REFRESH GT_BUT0BK.
LOOP AT XBUT0BK.
CLEAR GT_BUT0BK.
MOVE-CORRESPONDING XBUT0BK TO GT_BUT0BK. [cite: 108]
* Now read custom Z-table data for this entry
READ TABLE GT_ZBUT0BK INTO GS_ZBUT0BK
WITH KEY PARTNER = XBUT0BK-PARTNER.
*… (add BKVID and BUKRS to key if needed) … [cite: 109]
IF SY-SUBRC = 0.
GT_BUT0BK-ZZBUKRS = GS_ZBUT0BK-BUKRS.
GT_BUT0BK-ZZXDEBI = GS_ZBUT0BK-ZZXDEBI. [cite: 110]
GT_BUT0BK-ZZXKRED = GS_ZBUT0BK-ZZXKRED. [cite: 111]
ENDIF.
APPEND GT_BUT0BK.
ENDLOOP.
Note: You must also create the ZUP_BUPA_PAI_MISC logic to update/modify/insert entries in your ZBUT0BK table when the user saves.
Step 4: Configure BDT (The “Wiring”)
Now we use the BDT BUS* transactions (via SM30 or directly) to connect all our objects.
BUS23 (Data Sets):Create Data Set ZUF020 (“Bank Details (FID)”).BUS2 (Field Groups):Create Field Group 6009 (“Bank Details (FID)”).Assign your fields (e.g., BUT0BK-BKVID, GT_BUT0BK-ZZXDEBI, GT_BUT0BK-ZZXKRED) to this group. This links the fields to the field group for screen control.BUS3 (Views):This is the most critical step. Create View ZUF500 (“Bank Details”).Application: BUPData Set: ZUF020Subscreen: Program SAPLZUD0, Screen 1500Function Modules:Before screen callup: ZUP_BUPA_PBC_MISCBefore Output: ZUP_BUPA_PBO_MISCAfter Entry: ZUP_BUPA_PAI_MISCBUS4 (Sections):Create Section ZUF500 (“BP Bank Details”).Assign your View ZUF500 to this section.BUS5 (Screens):Create Screen ZUF500 (“Bank details (FID)”).Set Screen Type to “Data Screen” and Screen origin to “BDT”.Assign your Section ZUF500 to this screen.BUS6 (Screen Sequences):Find the standard Screen Sequence BUP001 (“General Data”).Go to “Screen Sequence -> Screens”.Add a new entry: your Screen ZUF500 (“Bank details (FID)”). This adds your custom screen as a new tab to the “General Data” view.BUSD (BP Views):Select BP View 000000 (“Business Partner (General)”).Go to “BP View -> Data Sets”.Add a new entry: your Data Set ZUF020 (“Bank Details (FID)”). This links your data to the main BP application.
Step 5: Configure Field Control (The “Permissions”)
Finally, we must make our new fields visible.
Go to SPRO: Cross-Application Components -> SAP Business Partner -> Business Partner -> Basic Settings -> Field Groupings -> Configure Field Attributes per Client.Configure Attributes:Select the activity “Configure Field Attributes for Each Client”.Find your new Field Group 6009 (“Bank Details (FID)”).Set its status to “Opt. entry” (Optional entry).Also, ensure the standard “Bank Details” field group (e.g., 9) is set to “Opt. entry” or “Display” so the standard bank data is visible.Save your changes.The Test Plan (The “Verification”) 🧪
Now, let’s test the complete solution with a practical business case.
3.1 Business Case
A Finance Clerk needs to maintain special “FID” bank indicators for Business Partner 1009 (F-LYON). This BP already has standard bank details. The clerk must verify the new tab, confirm it loads the correct data, and ensure that changes are saved correctly to the custom table ZBUT0BK.
3.2 Master Data & Test Data Preparation
Business Partner: Ensure BP 1009 exists in the system.Standard Bank Data: Ensure BP 1009 has at least one bank detail entry in table BUT0BK. (Example: IBAN FR2714508… ).Custom Bank Data:Go to transaction SM30.Enter table/view ZBUT0BK and click “Maintain”.Create a new entry matching the BP’s bank data:Partner: 1009CoCd: 0001 (or the relevant Company Code from BUT0BK)Customer: X (Set this indicator)Vendor: (Leave blank)Save the entry.
3.3 Test Procedure
Test Step #
Test Step Name
Instruction
Expected Result
Pass/Fail
1
Log On & Access BP
Log on as a Master Data Steward. Open the Maintain Business Partner app (or BP transaction).
The Maintain Business Partner screen appears.
2
Find Business Partner
Find and open BP 1009.
BP 1009 (F-LYON) is displayed.
3
Verify Custom Tab
Ensure you are in the “General Data” role (e.g., 000000). Look at the row of tabs.
A new tab “Bank details (FID)” is visible.
4
Verify Data Load (PBC)
Click the “Bank details (FID)” tab.
The screen displays the bank data for BP 1009. The custom checkbox “Indicator: Customer Account Type” is checked (from our SM30 data). The “Vendor” checkbox is unchecked.
5
Verify Field Control (SPRO)
Click the “Change” button to enter edit mode.
The custom fields (“Customer,” “Vendor”) are ready for input (not grayed out), confirming the “Opt. entry” setting.
6
Verify Data Change (PAI)
Check the “Indicator: Vendor Account Type” box. Click Save.
The Business Partner is saved without errors.
7
Verify Data Persistence (UI)
Re-open BP 1009 in display mode and navigate back to the “Bank details (FID)” tab.
Both checkboxes (“Customer” and “Vendor”) are now checked. The change was saved.
8
Verify Data Persistence (DB)
Go to SE16N. Open table ZBUT0BK. Enter PARTNER = 1009. Execute.
The record for BP 1009 is displayed. The fields ZZXDEBI and ZZXKRED are both set to ‘X’.
Export to Sheets
Conclusion
You have successfully enhanced the SAP S/4HANA Business Partner master data. By following the standard Business Data Toolset (BDT) framework, you have created an upgrade-safe custom tab. This process involved:
Creating the Data Model (ZBUT0BK).Building the UI (SE51) and Logic (SE37).Wiring everything together using the BDT (BUS* transactions).Setting field permissions (SPRO).
This enhancement provides a flexible way to meet specific business requirements directly within the standard master data transaction, ensuring a seamless experience for your end-users.
SAP S/4HANA BP screen enhancement with custom tabulation
I will add some custom fields to an additional tabulation:
[Custom fields attached on table BUT0BK and ZBUT0BK tables needs to place on Business Partner custom tab for updates]
Steps –
BUS23
BUS4
BUS5
BUS6
Screen is attached to BUP001 General Data
BUS3
Program Name SAPLZUD0
Screen number 1500
Before screen callup ZUP_BUPA_PBC_MISC
Before Output ZUP_BUPA_PBO_MISC
After Entry ZUP_BUPA_PAI_MISC
BUS2
BUSD – Data Set attached to standard Business Role
Screen Painter Concepts
The Screen Painter is a ABAP Workbench tool that allows you to create screens for your transactions. You use it both to create the screen itself, with fields and other graphical elements, and to write the flow logic behind the screen.
Note
In older documentation, screens are sometimes referred to as dynpros. This is short for “Dynamic Program”, and means the combination of the screen and its accompanying flow logic.
Screen Painter Architecture
You use the Screen Painter to create and maintain all elements of a screen. These are:
Screen Attributes
Describe a screen object in the R/3 System. Screen attributes include the program the screen belongs to and the screen type.
Screen layout
Screen elements are the parts of a screen with which the user interacts. Screen elements include checkboxes and radio buttons.
Elements
Correspond to screen elements. Fields are defined in the ABAP Dictionary or in your program.
Flow logic
Controls the flow of your program.
Two Screen Painter Modes
The Screen Painter has a layout editor that you use to design your screen layout. It works in two modes:
Graphical mode andAlphanumeric mode .
Both modes offer the same functions but use different interfaces. In graphical mode, you use a drag and drop interface similar to a drawing tool. In alphanumeric mode, you use your keyboard and menus.
Graphical mode is available only on MS Windows 95, MS Windows NT, and Unix/Motif platforms.
To activate the graphical mode, choose Utilities Settings in the Screen Painter, then select the Graphical layout editor option.
Creating a Screen: Basics
Create a screen in an existing program and define its attributes.Design the screen layout and define the attributes of the elements.Write the flow logic.
Basic Principles
Uses predefined elements with links to the ABAP Dictionary or program.Supports forwards navigation.Supports complex elements: Table Control and Tabstrip Control, and Custom Container.Cut/ Copy/ Paste ( Graph. fullscreen)Undo/ Redo ( Graph. fullscreen)
Before screen callup ZUP_BUPA_PBC_MISC
CHECK CVI_BDT_ADAPTER=>IS_DIRECT_INPUT_ACTIVE( ) = ABAP_FALSE.
CHECK CVI_BDT_ADAPTER=>GET_CURRENT_BP( ) IS NOT INITIAL.
CLEAR GV_PARTNER.
CALL METHOD CVI_BDT_ADAPTER=>GET_CURRENT_BP
RECEIVING
R_PARTNER = GV_PARTNER.
*—— fill table control table GT_BUT0BK from table ——————-
SELECT * FROM BUT0BK INTO CORRESPONDING FIELDS OF TABLE XBUT0BK
WHERE PARTNER = GV_PARTNER.
REFRESH GT_ZBUT0BK.
SELECT * FROM ZBUT0BK INTO CORRESPONDING FIELDS OF TABLE GT_ZBUT0BK
WHERE PARTNER = GV_PARTNER.
*—— fill table control table GT_BUT0BK from table ——————-
*—— XBUT0BK ——————————————————–
REFRESH GT_BUT0BK.
LOOP AT XBUT0BK.
CLEAR GT_BUT0BK.
MOVE-CORRESPONDING XBUT0BK TO GT_BUT0BK.
READ TABLE GT_ZBUT0BK INTO GS_ZBUT0BK WITH KEY PARTNER = XBUT0BK–PARTNER.
IF SY–SUBRC = 0.
GT_BUT0BK–ZZBUKRS = GS_ZBUT0BK–BUKRS.
GT_BUT0BK–ZZXDEBI =G S_ZBUT0BK–ZZXDEBI.
GT_BUT0BK–ZZXKRED = GS_ZBUT0BK–ZZXKRED.
ENDIF.
Before Output ZUP_BUPA_PBO_MISC
After Entry ZUP_BUPA_PAI_MISC
BP Screen–
Configure Field Attributes per Client
In this activity you define which fields at field group level in master record maintenance (for example BUPA for SAP Business Partner and BUPR for Business Partner Relationships)
Require an entry (required entry)Are ready for input (optional entry)Are displayed (display)Are hidden (hide),
depending on the application object.
This definition is linked with the field status of the other criteria. The status of the field in the input screen for master data is derived from this link.
Activities
Check the attributes delivered, and change if necessary.
📘 Comprehensive Guide: Enhancing SAP S/4HANA Business Partner with a Custom TabThis guide provides a complete, end-to-end process for consultants, key users, and end-users on how to enhance the SAP S/4HANA Business Partner (BP) master data screen. We will walk through the technical steps to add a new, custom tabulation (tab) that displays and saves custom fields, based on the specific “FID” bank details example from your document.Business Goal: The standard SAP Business Partner screen needs to capture additional, company-specific bank information that is not available in the standard fields. In this case, we need to add a new tab called “Bank details (FID)” to store indicators for “Customer Account Type” and “Vendor Account Type”.This guide is broken into three parts:The End-User Experience: What the final result looks like.The “How-To” Build Guide: A detailed, step-by-step tutorial for consultants and key users on how to implement this enhancement.The Test Plan: A practical, real-world business case to validate the solution.The End-User Experience (The “What”) 🧑💼As an end-user (such as a Master Data Steward or Finance Clerk), your interaction with the system is simple. When you open the Maintain Business Partner app (or BP transaction), you will see the enhancement directly on the screen.Business Process: Maintaining FID Bank DataAccess Business Partner: You open the Manage Business Partner Master Data Fiori app or run transaction BP.Find BP: You search for and open a Business Partner, for example, 1009 (F-LYON).View Custom Tab: In the “General Data” for the BP, you will see a new tab labeled “Bank details (FID)” alongside the standard tabs like “Address” and “Payment Transactions”.View Data: Clicking this tab displays the custom bank information, including the standard bank details and the new custom fields, such as “Indicator: Customer Account Type” and “Indicator: Vendor Account Type”.Edit Data: In change mode, you can edit these fields (e.g., check a box) just like any standard field. When you save the Business Partner, this custom information is saved with it.The “How-To” Build Guide (The “How”) 🛠️This section is for Consultants and Key Users. We will build the enhancement shown in your documents from start to finish.2.1 Concepts: How BP Enhancement Works (The BDT)To add new tabs or fields to the BP transaction, SAP provides a standard framework called the Business Data Toolset (BDT). Think of the BP screen not as one single program, but as a collection of building blocks.Data Set: A logical grouping of data (e.g., “Bank Details”).View: A single subscreen (dynpro) that displays data. This is what you create in the Screen Painter.Section: A container that holds one or more “Views.”Screen: A container that holds one or more “Sections.” This is what appears as a Tab.Screen Sequence: Defines the order of all “Screens” (Tabs) for a specific BP role or view (like “General Data”).Our goal is to create our own custom View, Section, and Screen, and then add our new Screen (Tab) to the standard Screen Sequence.2.2 The Build Process: Step-by-StepHere is the complete process to replicate the “Bank details (FID)” enhancement.Step 1: Create the Data Model (The Foundation)First, we need a place to store our new custom data.Go to Transaction SE11 (ABAP Dictionary).Create a Custom Table: Create a transparent table named ZBUT0BK.Description: “BP: Bank Details (FID)”Fields:MANDT (Key)PARTNER (Key) (Type BU_PARTNER)BUKRS (Key) (Type BUKRS)BKVID (Key) (Type BU_BKVID)ZZXDEBI: “Indicator: Customer Account Type” (Type XFELD)ZZXKRED: “Indicator: Vendor Account Type” (Type XFELD)Note: This table will hold our custom indicators, linked to the BP’s main bank data key. Your document also shows these fields appended to BUT0BK, which is necessary so the standard bank data structure (used by the screen) is aware of them.Step 2: Create the Screen (The User Interface)Next, we create the actual screen (dynpro) that the user will see.Go to SE80 or SE38 to create a new Function Group (e.g., ZUD0). SAPLZUD0 is the program name for this function group.Go to SE51 (Screen Painter).Create Screen:Program: SAPLZUD0Screen number: 1500Design the Layout:Use the graphical editor to design the layout. You will likely add a Table Control (like GT_BUT0BK in the doc) to display multiple bank entries.Add fields from your program’s global data (see Step 3) for your custom fields (e.g., GT_BUT0BK-ZZXDEBI, GT_BUT0BK-ZZXKRED).Write the Flow Logic:The flow logic connects the screen to your ABAP code. Your document shows the following logic:ABAPPROCESS BEFORE OUTPUT.* MODULE PBO_1500. LOOP AT GT_BUT0BK WITH CONTROL TCTRL_BUT0BK CURSOR GV_BK_LINACT. MODULE GT_BUT0BK_INIT. ENDLOOP. MODULE TCTRL_PBO. MODULE SEPA_MANADATE_PBO. PROCESS AFTER INPUT.* MODULE PAI. LOOP AT GT_BUT0BK. MODULE GT_BUT0BK_MODIFY. ENDLOOP. MODULE BANK_DETAILS_CURSOR_GET. MODULE GT_BUT0BK_LINACT_DETERMINE. MODULE GT_BUT0BK_MARK_SINGLE.Step 3: Create the Logic (The “Engine”)This ABAP code defines what happens during BDT events (e.g., loading or saving data).Go to SE37 (Function Builder).Create BDT Event Function Modules:ZUP_BUPA_PBC_MISC (Before screen callup): Loads data from the database.ZUP_BUPA_PBO_MISC (Before Output): Prepares data for display.ZUP_BUPA_PAI_MISC (After Entry): Saves data from the screen.Add Code to ZUP_BUPA_PBC_MISC:This FM calls a FORM routine (e.g., BUP500_PBC) inside your function group LZUD0F00 (an include in SAPLZUD0).Key Logic (from your doc): This code reads both the standard bank data and your custom Z-table data, combining them into a single internal table (GT_BUT0BK) for the screen.ABAP*… (Inside FORM BUP500_PBC) …* Get the current BP numberCHECK CVI_BDT_ADAPTER=>IS_DIRECT_INPUT_ACTIVE( ) = ABAP_FALSE.CHECK CVI_BDT_ADAPTER=>GET_CURRENT_BP( ) IS NOT INITIAL.CLEAR GV_PARTNER.CALL METHOD CVI_BDT_ADAPTER=>GET_CURRENT_BP RECEIVING R_PARTNER = GV_PARTNER. [cite: 105, 106] * Fill table control table GT_BUT0BK from standard tableSELECT * FROM BUT0BK INTO CORRESPONDING FIELDS OF TABLE XBUT0BK WHERE PARTNER = GV_PARTNER. [cite: 106] *… (Logic to move XBUT0BK to GT_BUT0BK) …REFRESH GT_BUT0BK.LOOP AT XBUT0BK. CLEAR GT_BUT0BK. MOVE-CORRESPONDING XBUT0BK TO GT_BUT0BK. [cite: 108] * Now read custom Z-table data for this entry READ TABLE GT_ZBUT0BK INTO GS_ZBUT0BK WITH KEY PARTNER = XBUT0BK-PARTNER. *… (add BKVID and BUKRS to key if needed) … [cite: 109] IF SY-SUBRC = 0. GT_BUT0BK-ZZBUKRS = GS_ZBUT0BK-BUKRS. GT_BUT0BK-ZZXDEBI = GS_ZBUT0BK-ZZXDEBI. [cite: 110] GT_BUT0BK-ZZXKRED = GS_ZBUT0BK-ZZXKRED. [cite: 111] ENDIF. APPEND GT_BUT0BK.ENDLOOP.Note: You must also create the ZUP_BUPA_PAI_MISC logic to update/modify/insert entries in your ZBUT0BK table when the user saves.Step 4: Configure BDT (The “Wiring”)Now we use the BDT BUS* transactions (via SM30 or directly) to connect all our objects.BUS23 (Data Sets):Create Data Set ZUF020 (“Bank Details (FID)”).BUS2 (Field Groups):Create Field Group 6009 (“Bank Details (FID)”).Assign your fields (e.g., BUT0BK-BKVID, GT_BUT0BK-ZZXDEBI, GT_BUT0BK-ZZXKRED) to this group. This links the fields to the field group for screen control.BUS3 (Views):This is the most critical step. Create View ZUF500 (“Bank Details”).Application: BUPData Set: ZUF020Subscreen: Program SAPLZUD0, Screen 1500Function Modules:Before screen callup: ZUP_BUPA_PBC_MISCBefore Output: ZUP_BUPA_PBO_MISCAfter Entry: ZUP_BUPA_PAI_MISCBUS4 (Sections):Create Section ZUF500 (“BP Bank Details”).Assign your View ZUF500 to this section.BUS5 (Screens):Create Screen ZUF500 (“Bank details (FID)”).Set Screen Type to “Data Screen” and Screen origin to “BDT”.Assign your Section ZUF500 to this screen.BUS6 (Screen Sequences):Find the standard Screen Sequence BUP001 (“General Data”).Go to “Screen Sequence -> Screens”.Add a new entry: your Screen ZUF500 (“Bank details (FID)”). This adds your custom screen as a new tab to the “General Data” view.BUSD (BP Views):Select BP View 000000 (“Business Partner (General)”).Go to “BP View -> Data Sets”.Add a new entry: your Data Set ZUF020 (“Bank Details (FID)”). This links your data to the main BP application.Step 5: Configure Field Control (The “Permissions”)Finally, we must make our new fields visible.Go to SPRO: Cross-Application Components -> SAP Business Partner -> Business Partner -> Basic Settings -> Field Groupings -> Configure Field Attributes per Client.Configure Attributes:Select the activity “Configure Field Attributes for Each Client”.Find your new Field Group 6009 (“Bank Details (FID)”).Set its status to “Opt. entry” (Optional entry).Also, ensure the standard “Bank Details” field group (e.g., 9) is set to “Opt. entry” or “Display” so the standard bank data is visible.Save your changes.The Test Plan (The “Verification”) 🧪Now, let’s test the complete solution with a practical business case.3.1 Business CaseA Finance Clerk needs to maintain special “FID” bank indicators for Business Partner 1009 (F-LYON). This BP already has standard bank details. The clerk must verify the new tab, confirm it loads the correct data, and ensure that changes are saved correctly to the custom table ZBUT0BK.3.2 Master Data & Test Data PreparationBusiness Partner: Ensure BP 1009 exists in the system.Standard Bank Data: Ensure BP 1009 has at least one bank detail entry in table BUT0BK. (Example: IBAN FR2714508… ).Custom Bank Data:Go to transaction SM30.Enter table/view ZBUT0BK and click “Maintain”.Create a new entry matching the BP’s bank data:Partner: 1009CoCd: 0001 (or the relevant Company Code from BUT0BK)Customer: X (Set this indicator)Vendor: (Leave blank)Save the entry.3.3 Test ProcedureTest Step #Test Step NameInstructionExpected ResultPass/Fail1Log On & Access BPLog on as a Master Data Steward. Open the Maintain Business Partner app (or BP transaction).The Maintain Business Partner screen appears. 2Find Business PartnerFind and open BP 1009.BP 1009 (F-LYON) is displayed. 3Verify Custom TabEnsure you are in the “General Data” role (e.g., 000000). Look at the row of tabs.A new tab “Bank details (FID)” is visible. 4Verify Data Load (PBC)Click the “Bank details (FID)” tab.The screen displays the bank data for BP 1009. The custom checkbox “Indicator: Customer Account Type” is checked (from our SM30 data). The “Vendor” checkbox is unchecked. 5Verify Field Control (SPRO)Click the “Change” button to enter edit mode.The custom fields (“Customer,” “Vendor”) are ready for input (not grayed out), confirming the “Opt. entry” setting. 6Verify Data Change (PAI)Check the “Indicator: Vendor Account Type” box. Click Save.The Business Partner is saved without errors. 7Verify Data Persistence (UI)Re-open BP 1009 in display mode and navigate back to the “Bank details (FID)” tab.Both checkboxes (“Customer” and “Vendor”) are now checked. The change was saved. 8Verify Data Persistence (DB)Go to SE16N. Open table ZBUT0BK. Enter PARTNER = 1009. Execute.The record for BP 1009 is displayed. The fields ZZXDEBI and ZZXKRED are both set to ‘X’. Export to SheetsConclusionYou have successfully enhanced the SAP S/4HANA Business Partner master data. By following the standard Business Data Toolset (BDT) framework, you have created an upgrade-safe custom tab. This process involved:Creating the Data Model (ZBUT0BK).Building the UI (SE51) and Logic (SE37).Wiring everything together using the BDT (BUS* transactions).Setting field permissions (SPRO).This enhancement provides a flexible way to meet specific business requirements directly within the standard master data transaction, ensuring a seamless experience for your end-users. SAP S/4HANA BP screen enhancement with custom tabulation I will add some custom fields to an additional tabulation:[Custom fields attached on table BUT0BK and ZBUT0BK tables needs to place on Business Partner custom tab for updates] Steps – BUS23 BUS4 BUS5 BUS6 Screen is attached to BUP001 General DataBUS3 Program Name SAPLZUD0Screen number 1500 Before screen callup ZUP_BUPA_PBC_MISCBefore Output ZUP_BUPA_PBO_MISCAfter Entry ZUP_BUPA_PAI_MISCBUS2 BUSD – Data Set attached to standard Business Role Screen Painter ConceptsThe Screen Painter is a ABAP Workbench tool that allows you to create screens for your transactions. You use it both to create the screen itself, with fields and other graphical elements, and to write the flow logic behind the screen.NoteIn older documentation, screens are sometimes referred to as dynpros. This is short for “Dynamic Program”, and means the combination of the screen and its accompanying flow logic.Screen Painter ArchitectureYou use the Screen Painter to create and maintain all elements of a screen. These are:Screen AttributesDescribe a screen object in the R/3 System. Screen attributes include the program the screen belongs to and the screen type.Screen layoutScreen elements are the parts of a screen with which the user interacts. Screen elements include checkboxes and radio buttons.ElementsCorrespond to screen elements. Fields are defined in the ABAP Dictionary or in your program.Flow logicControls the flow of your program.Two Screen Painter ModesThe Screen Painter has a layout editor that you use to design your screen layout. It works in two modes:Graphical mode andAlphanumeric mode .Both modes offer the same functions but use different interfaces. In graphical mode, you use a drag and drop interface similar to a drawing tool. In alphanumeric mode, you use your keyboard and menus.Graphical mode is available only on MS Windows 95, MS Windows NT, and Unix/Motif platforms.To activate the graphical mode, choose Utilities Settings in the Screen Painter, then select the Graphical layout editor option.Creating a Screen: BasicsCreate a screen in an existing program and define its attributes.Design the screen layout and define the attributes of the elements.Write the flow logic.Basic PrinciplesUses predefined elements with links to the ABAP Dictionary or program.Supports forwards navigation.Supports complex elements: Table Control and Tabstrip Control, and Custom Container.Cut/ Copy/ Paste ( Graph. fullscreen)Undo/ Redo ( Graph. fullscreen) Before screen callup ZUP_BUPA_PBC_MISC CHECK CVI_BDT_ADAPTER=>IS_DIRECT_INPUT_ACTIVE( ) = ABAP_FALSE. CHECK CVI_BDT_ADAPTER=>GET_CURRENT_BP( ) IS NOT INITIAL. CLEAR GV_PARTNER. CALL METHOD CVI_BDT_ADAPTER=>GET_CURRENT_BP RECEIVING R_PARTNER = GV_PARTNER.*—— fill table control table GT_BUT0BK from table ——————- SELECT * FROM BUT0BK INTO CORRESPONDING FIELDS OF TABLE XBUT0BK WHERE PARTNER = GV_PARTNER. REFRESH GT_ZBUT0BK. SELECT * FROM ZBUT0BK INTO CORRESPONDING FIELDS OF TABLE GT_ZBUT0BK WHERE PARTNER = GV_PARTNER.*—— fill table control table GT_BUT0BK from table ——————-*—— XBUT0BK ——————————————————– REFRESH GT_BUT0BK. LOOP AT XBUT0BK. CLEAR GT_BUT0BK. MOVE-CORRESPONDING XBUT0BK TO GT_BUT0BK. READ TABLE GT_ZBUT0BK INTO GS_ZBUT0BK WITH KEY PARTNER = XBUT0BK-PARTNER. IF SY-SUBRC = 0. GT_BUT0BK-ZZBUKRS = GS_ZBUT0BK-BUKRS. GT_BUT0BK-ZZXDEBI =G S_ZBUT0BK-ZZXDEBI. GT_BUT0BK-ZZXKRED = GS_ZBUT0BK-ZZXKRED. ENDIF.Before Output ZUP_BUPA_PBO_MISCAfter Entry ZUP_BUPA_PAI_MISC BP Screen– Configure Field Attributes per ClientIn this activity you define which fields at field group level in master record maintenance (for example BUPA for SAP Business Partner and BUPR for Business Partner Relationships)Require an entry (required entry)Are ready for input (optional entry)Are displayed (display)Are hidden (hide),depending on the application object.This definition is linked with the field status of the other criteria. The status of the field in the input screen for master data is derived from this link.ActivitiesCheck the attributes delivered, and change if necessary. Read More Technology Blog Posts by Members articles
#SAP
#SAPTechnologyblog