Skip to Content

CRM 40 to 52: CUSTOMER_H Fields


After upgrading our sandbox from CRM 40 to CRM 52 we wanted to display some custom fields created in CRM 40 in the CRM 52 web client.  The area which we needed to do this was for some Business Transaction CUSTOMER_H fields that were generated by the EEWB.  In order to do this we found the SAP Note 1037548, which explained this procedure.  We also read note 1122248 to understand how to deal with the setup of enhancements.  We will assume you have looked at the available documentation for CRM web client enhancements.   

What’s Not Covered Here

  • Configuring your system for component enhancements
  • Creating a custom business role
  • Create a custom config key

Part 1: Determine what and where to enhance

Identify the screen that needs to the new fields

For this example we are going to use the create appointment details screen. 

Determine Technical Location of Screen

To do this we hit F2 in one of the fields on the screen.  This gives us the key details of what we need to enhance.  The dialog box below shows we need to enhance the component BT126H_APPT, view AppEditDetailsEF.

Part 2: Make fields available

Prepare component for enhancement

We now need to enhance the component to add in our CUSTOMER_H fields.  We open the component up in transaction BSP_WD_CMPWB.

Once opened we choose enhance component.  We will store our new component in the BSP application ZBT126H_APPT.

Prepare view for enhancement

Now the component is ready for enhancement, we need to prepare the view.  We will right click on the view AppEditDetailsEF, and choose Enhance.  This now allows us to enhance the context of the view so we can display our new fields.

Create new context code

In the structure of the view we will enhance the context.  The context does not contain a node for BTCUSTOMERH, which is where our EEWB CUSTOMER_H fields live.  We therefore need to create a new context node for BTCUSTOMERH

Once we hit create the wizard appears.  We will now create the context node through this tool.  We will need to enter BTCUSTOMERH as the node name.  The node is a model node that corresponds to the BOL Entity BTCustomerH.  The standard BOL model has a node for CUSTOMER_H that is named BTCustomerH.

We add the model attributes from CUSTOMER_H that we wish to display on the screen.  This will also generate methods in the new context node, if we want to override the default display/retrieval properties for that attribute.

We can just hit continue for the steps: ADD Value Attributes and Create Links to Custom Controller for now.  We Now need to created the link between CUSTOMER_H and the Business Transaction Administration Header Segment.

The higher level node we choose will be BTADMINH.  The relationship will be BTHeaderCustExt.  We will want to choose always create instance.  If we don’t choose this option, then the CUSTOMER_H will not save/display properly. 

Now the wizard is finished we review the configuration and hit complete.

After generation we will see a brand new context node in the application.

Part 3: Add fields to screen

Now that the fields are available to the view we need to add them to our screen.

Copy existing Configuration

The recommended practice is to copy the standard delivered configuration to a Z-configuration.  This is achieved by hitting the copy configuration button on the configuration tab.

We use our role config key that will be assigned to our custom business role.

Now the field will be available in the list of available fields and we add it through the normal UI tool configuration process

Add new field to screen

You can see below the field has been added to the configuration.  We make sure we save the configuration and now we are ready to see the new field.

End Result

We login under a user that has our custom business role assigned to our role configuration key.  The new field appears in the screen below.


The migration of our EEWB CUSTOMER_H to the new webclient UI was very easy.  This should provide some relief for those of us migrating from CRM 40.

You must be Logged on to comment or reply to a post.
  • Stephen,
    I am still on CRM 5.0 IC Web,but after reading your blog I feel like I am already there on CRM 5.2 UI development.

    As you said in your previous blog it ispretty much based on CRM 5.0


    • Hi Stephen,

      thank you for sharing. That made it quite easy to get our Opportunity Enhancements from 4.0 and 5.0 back visible in CRM 7.0.

      Best regards

  • Hi Stephen,
    Thanks for your blog!
    I tried to read the SAP notes you mentioned but SAP note 1037548 doesn’t seem to exist in the Support Portal. Can you check the number of the note?
    Thank you for your help,
    • It should be note 1037748 instead.  do a search for CUSTOMER_H in service marketplace and sort the notes by date descending, if you can’t find this note.

  • Hi! You gave me a great help with this tutor. But i’m having the following problem. I tried to add some new fields into EmployeeDetails view of the BP_EMPL component (successfully), but when displaying the view it doesnt show the values of the newly added fields, however if i try to modify it (click the Edit button), it shows (!!!).

    What could cause this?

    • For your view does the edit/display mode have separate configurations or represented by separate views?

      If it is a dependent node, then you need to make sure it is always “initialized” to the parent when you added to the relationship block.

      Take care,


      • Hi Stephen

        The problem is solved. The trick was that when choosing “available fields”, e.g. Birthplace, there were several, but among them, there was only one field that actually displayed the values.

        Thanks a lot

  • Hi Stephen,

    Great Blog. I tried the method in this weblog for CUSTOMER_I with no success.
    I enhanced view BT115QIT_SLSQ/Items -> add BTCustomerI into the context node and was hoping the custom fields to be avaialble for the configuration however it’s not showing there 🙁
    Do you know any idea on how to add customer fields into Item tables?



    • This technique will not work for the Item tables.  It will work for the item details screen, where BTADMINI context node is present as single node non-table type field.

      You could extend the context node and create virtual attributes that have “get/set” methods that retrieve the data.  Look at the REQDELDATE attribute to see an example.

  • Hi Stephen

       When I try to enhance a view, I get the message ‘Page, controller, or MIME Search.htm already exists in application BT111S_OPPT’. How can I remedy this situation?

    Thanks and regards,

    • When you clicked on enhance component, did you choose a “Z-application” i.e ZBT111S_OPPT as the storage location.

      Another guess is did you display the view with the enhancement set entered?

      Take care,


      • Hi

           I did choose the Z enhancement set. Is this what you mean? Also, I displayed the view with the enhancement set chosen. It still doesn’t work.


  • This is a great blog. I was searching for the information for long.

    I have one query though. We have done technical upgrade from CRM 4.0 to CRM 7.0 and none of the transactions which we had created in CRM 4.0 can be searched or displayed in WebClient UI after upgrade. Only the transaction which have been created after upgrade can be searched and displayed in the UI.
    Any idea what can we do to rectify this issue.


  • Very nice blog!

    Helped me.

    I had a problem, we do added some fields to CUSTOMER_H tables from “create field” button in configuration mode.

    This was done in our DEV system, after we imported to Prod don’t know why but our  view context didn’t have a BTCUSTOMERH this is strange… so only this Blog helped.

    Anyone know why this can happen?

    Regards Dan

  • Hi I have been doing the procedure you described and given me wrong, I extend View: IUICMD / SearchAccount, and place fields of Table DFKKBPTAXNUM

    TAXTYPE -> BPTAXTYPE (Data Elem.) -> Type tax identification number

    TAXNUM -> BPTAXNUM (Data Elem.) -> NIF for business partner

    and I really am a bit lost in this component and broaden views, not if I have to play some BOL and GENIL,

    Also I have to perform searches of these fields, and is not exactly implementing the methods,

    I appreciate any help you can give me,

    Best Regards,