Skip to Content
Technical Articles
Author's profile photo Andi Mauersberger

SAP S/4HANA Business Partner Field Enhancement

In most of my Business Partner workshops I was asked the question: How shall we handle our Z-Fields from Customer/Vendor Master Data in Business Partner transaction.

Short Answer: You have to rebuild the fields in Business Partner transaction.

In this Cookbook I’ll guide you step by step to implement a Z-Field from table KNA1 into Business Partner transaction.

How to add a bunch of Z-Fields on a custom tab in BP transaction, you can learn at blog post SAP S/4HANA BP screen enhancement with custom tab written by Badrinath Ravi.


Purpose and target

The purpose of this document is to describe how to implement a BDT enhancement. A field from table KNA1 has to be re-implemented in Business Partner transaction as well to ensure availability in SAP S/4HANA.

Remark: This procedure can be used for all the single fields from Customer or Vendor tables. This Cookbook is not made for fields related to Table Controls as of partner assignment for example from KNVP.

Foundation for this document is SAP note

2309153 – BP_CVI: Guideline Version 1.14 for customer enhancements in CVI (customer/vendor integration) in SAP S/4HANA releases

Target audience: Functional expert, Development expert

Version: SAP S/4HANA On premise 1610 and higher

There is a field in table KNA1 which was available in XDxx transaction.

In case you are adding this field completely new, don’t forget to mark for Change Document at Data Element level to track changes at this field.











This field has to be re-implemented in SAP S/4HANA to be available in transaction Business Partner with customer role.


Determine Area in Business Partner transaction where to place the new field

In this example the field should be placed in customer role, tab (Screen) ‘Customer: General Data’, Section ’ Additional General Data’

  1. Run transaction BP and navigate to role ‘Customer’->tab ‘Customer: General Data ’New field should be placed directly below the field ‘Plant’. To determine screen control settings of BDT, place the cursor into field plant and enter OK-Code BDT_ANALYZER into transaction field
  2. BDT_ANALYZER is starting and gives information about screen control. For later assignment of new view the following information is important:Navigate to
    Section CVIC45- Additional General Data
    and open folder viewsNote down section number (for example CVIC45)
  3. To get View details navigate into view CVIC62 by clicking on name CVIC62Note down
    Application: CVIC
    Differentiation Type: 0
    Data Set: CVIC11


Create Technical Objects


Create Function Group

  1. Run Object Navigator with transaction SE80

Create PBO Function Module

  1. From context menu of new Function Group choose Create-> Function Module
  2. Enter name, Function Group and Short Text of new Function Module
  3. Enter Coding
    function z_cvic_bupa_pbo_zvic01.
    *"*"Local Interface:
        lt_kna1         type table of kna1,
        table_name_kna1 type fsbp_table_name value 'KNA1'.
    * step 1: request data from xo for dynpro structure
          i_table_name = table_name_kna1
          e_data_table = lt_kna1[]
      if lt_kna1[] is initial.
        clear gs_kna1.
        read table lt_kna1 into gs_kna1 index 1.

    Save and activate

Create PAI Function Module

  1. From context menu of new Function Group choose Create-> Function Module
  2. Enter name, Function Group and Short Text of new Function Module
  3. Enter Coding
    FUNCTION z_cvic_bupa_pai_zvic01.
    *"*"Local Interface:
    DATA: false   TYPE boole-boole  VALUE ' ',
          lt_kna1 TYPE TABLE OF kna1,
          table_name_kna1 TYPE fsbp_table_name VALUE 'KNA1'.
    FIELD-SYMBOLS:  <kna1>  LIKE LINE OF lt_kna1.
      CHECK cvi_bdt_adapter=>is_direct_input_active( ) = false.
    * step 1: update xo memory from technical screen structure
          i_table_name = table_name_kna1
          e_data_table = lt_kna1[]
      IF lt_kna1[] IS INITIAL.
        IF gs_kna1 IS NOT INITIAL.
          gs_kna1-kunnr = cvi_bdt_adapter=>get_current_customer( ).
          APPEND gs_kna1 TO lt_kna1.
        READ TABLE lt_kna1 ASSIGNING <kna1> INDEX 1.
        <kna1>-zcust = gs_kna1-zcust.
       i_table_name = table_name_kna1
       i_data_new   = lt_kna1[]
       i_validate   = false
    * step 2: check fields
      CHECK cvi_bdt_adapter=>get_activity( ) <> cvi_bdt_adapter=>activity_display.
    *   SPACE to implement own PAI checks

    Save and activate.

Create Technical Screen

  1. From context menu of new Function Group choose Create-> Function Module
  2. Enter screen number
  3. Enter screen attributes
    Short Text and type Subscreen
  4. Navigate to Layout (Screen Painter)
  5. Create Text Field ‘End-Customers’
  6. Accept dictionary reference proposal
  7. Create Input field at position 25
  8. Define Field as NUMC via double click at field!!! Pay attention to field format. This must fit to format of field in table KNA1. !!!
  9. Activate the new object and close Screen PainterNavigate to screen Flow Logic
  10. Assign PBO Module
  11. Create PBO Module with double click at pbo
    Enter sub routine pbo
  12. Create sub routine pbo with double click at pbo
    Enter coding

    *& Form PBO
    *& text
    *& -->  p1        text
    *& <--  p2        text
    FORM pbo .
      call FUNCTION 'BUS_PBO'.


  13. Assign PAI Module
  14. Create PAI Module with double click at paiEnter sub routine pai
  15. Create sub routine pai with double click at paiEnter coding
    *& Form PAI
    *& text
    *& -->  p1        text
    *& <--  p2        text
    FORM pai .
      call FUNCTION 'BUS_PAI'.


Extend Complex Interface CVIS_EI_EXTERN

To ensure data transportation from Business Partner to Customer master data the complex interface of CVI has to extended by the additional field.

  1. Open ABAP Dictionary run transaction SE11 and enter data type CVIS_EI_EXTERN
  2. Use forward navigation to reach customer’s central data using double click

  3. Both structures DATA and DATAX needs to get an append
  4. Create append to DATA structure typeNavigate into structure with double click
  5. Create Append structure ZKNA1_ENH
  6. Add structure component and component type as definition in KNA1
  7. Save and Activate changes
  8. Navigate back to Structure CMDS_EI_CMD_CENTRAL
  9. Create append to DATAX structure typeNavigate into structure CMDS_EI_VMD_CENTRAL_DATA_XFLAG with double click
  10. Create an Append Structure ZKNA1_ENHX
  11. Add structure component ZCUST component type BAPIUPDATE
  12. Save and activate changes
  13. Leave transaction SE11

Customizing settings in BDT

Create Field Group

  1. Open BDT menu using BUPT in OK-Code field
  2. Navigate to Screen Layout section and open Field Groups
  3. Create a new Field Group in Customer Name space
  4. Create Field Group 600
    Function Module CVIC_BUPA_EVENT_FMOD2_ENH is used to determine field control (mandatory, hidden, …) from customizing
  5. Assign fields from technical screen to field groupSave your changes

Create View

  1. Navigate to Screen Layout section and open Views
  2. Create a new View and take Values from Chapter ‘Determine Area in BP transaction where to place the new field’. Use technical screen program name and number from chapter ‘Create Technical Screen’ Use PBO and PAI function module names from chapters ‘Create PAI Function Module’ and ‘Create PBO Function Module’
  3. Assign Field Group to View
  4. Save your changes


Assign View to Section

  1. Navigate to Screen Layout section and open Sections
  2. Position Cursor on Section determined in Chapter ‘Determine Area in BP transaction where to place the new field’
  3. Mark Section and choose Section->View Assignment from navigation tree
  4. Choose New Entries
  5. Enter data for new assignmentUse View number from Chapter ‘Create View’ Save the data



  1. Start Transaction BP
  2. Search for a customer
  3. Display the customer
  4. Select role ‘Customer’
  5. Navigate to tab ‘Customer: General Data’


With this guidance you are able to implement additional fields at Business Partner transaction on your own.

Fiori App Extension

To Extent Fiori Apps please have a look at following blog posts:

Create Custom fields for Business Partner SAP Fiori screens in SAP S/4HANA

SAP Fiori for SAP S/4HANA – How to extend a SAP Fiori app in SAP S/4HANA

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Jānis B
      Jānis B

      Hmm, back to the BP bare-bones... Whatever happened to the "Easy Enhancement Workbench, (no less)" 🙂

      FUNCTION z_cvic_bupa_pai_zvic01.
      *"*"Local Interface:
      " No, please - no... NO! NOOOOOOOO! 
      " Please, all this stuff goes so nicely into a (local) singleton... It costs what -
      " 5, 10, or maybe 15 minutes more to extract it..? To set up a good example to 
      " immitate, for programmers, likely acting upon only «gefährliches Halbwissen»,
      " who might have to maintain, or worse still - copy this x times... :)
      DATA: false   TYPE boole-boole  VALUE ' ',
            lt_kna1 TYPE TABLE OF kna1,
            table_name_kna1 TYPE fsbp_table_name VALUE 'KNA1'.
      * step 2: check fields
        CHECK cvi_bdt_adapter=>get_activity( ) <> cvi_bdt_adapter=>activity_display.
      *   SPACE to implement own PAI checks
      " No, please, no - just noooooooo! :)


      Author's profile photo Ashish Gupta
      Ashish Gupta

      Hi Andi,

      I have a question around BP datasets missing in ERP SAP_APPL 617 Sp 0018. I see that a lot of standard Customer and Vendor fields are missing from the datasets / field groups / views and are not available on the BP. Is there any add_on / Note / SP which can help with the bringing this content into the our environment?

      Author's profile photo Mireille Hill
      Mireille Hill

      Hi Andi,

      is there a cookbook also to do the same for BP IC Web Client views? How can I add KNA1 fields to the BP master data table BUT000? In our current project, the SAP GUI is no longer used by the IC agents, they use the IC Web Client instead.



      Author's profile photo jyothir aditya k
      jyothir aditya k

      how can we implement the same using in-app extensibility ? any pointer please

      Author's profile photo Andi Mauersberger
      Andi Mauersberger
      Blog Post Author

      Hi jyothir,

      please have a look into

      Best Regards


      Author's profile photo Mohinder Singh Chouhan
      Mohinder Singh Chouhan

      Hi Andi,

      Nice blog.

      Point 2 is not clear, "Create a new ViewTake Values from Chapter ‘Determine Area in BP transaction where to place the new field’" . From where are you referring these chapters.









      Author's profile photo Andi Mauersberger
      Andi Mauersberger
      Blog Post Author

      Hi Mohinder,

      Application is a given one due to customer integration.

      Dataset is given by the other views closed to the place of new view.

      Best Regards


      Author's profile photo Indro Ruslim
      Indro Ruslim

      Hi Experts,


      I have some problem here, i already enhanced custom field following all of step above, but when i change / update data with existing BP, the data from custom field can not be change. Please help.

      Thank you,


      Author's profile photo Stefan Gstöttenmayr
      Stefan Gstöttenmayr

      Hello Andi,

      I tried to implement z-fields following your guide ahead. But I get an error when creating PBO / PAI function modules as the global structure gs_kna1 is not available. And as the function modules do not have any import parameters I am wondering how this can work. Can you please advice?

      Thanks in advance,

      best regards, Stefan

      Author's profile photo Steffen Mallwitz
      Steffen Mallwitz

      Just go in that function group to the “Includes” section in the object list.

      There must be a “TOP-Include”. In that top-include you can declare these structures.


      DATA declarations in top-include



      Author's profile photo Karuna Killedar
      Karuna Killedar

      Hi Andi,

      I have created a custom field in BP transaction against Company code > Customer: Payment Transaction screen .  I have done all the configuration through BUPT. Issue is that the custom field is not getting saved in KNB1 table.(KNB1 table is enhanced with custom field)


      Could you please help me .




      Author's profile photo Ömer Ekşi
      Ömer Ekşi

      Hi Andi,

      Thanks for your effors. It was a very enlightening article. I also adapted it for the KNVV table and succeeded.



      Author's profile photo Vadivuckarasi Devaraj
      Vadivuckarasi Devaraj

      Hi Andi Mauersberger,

      Thanks for wonder document. It helped me a lot to add a field in BP.




      Author's profile photo Lukasz Dippel
      Lukasz Dippel

      Hello Andi, please look at my question here.

      CVI between BP and Customer. | SAP Community

      Thank you.

      Author's profile photo Yogesh Bagul
      Yogesh Bagul

      Andi Mauersberger

      Thank you for details step. I would like to update the custom field in table UKMBP_CMS (SAP Credit Management: Credit Master Data for Partner) in BP transaction. I have added field on screen and tried but no luck to get it update.

      Do you have any input on this how to update the credit profile tab custom fields.

      Your response will be highly appreciated.

      Thanks in Advanced,


      Thanks & Regards,

      Yogesh Bagul