SAP CRM WEBCLIENT UI


This blog is to add New Date Fields as Context Attribute to the UI component. There are some objects of the object model for business transaction which cannot be enhanced using EEWB/AET. For such cases SAP provides an alternative enhancement option. 

This Document explains how to add new Date Fields as context attribute to the UI component. 

  1. Define Date Types
  2. Extend Model for Business Transactions with New Relations
  3. Create Context Attributes
  4. Change the super class to CL_CRM_UIU_BT_DATE_CN of the Z context node’s class
  5. Modify the ON_NEW_FOCUS as below.
  6. Modify the GET_XXX of the newly added attribute to remove NOT BOUND text in the field
  7. Modify the GET_I_XXX of the newly added attribute to make the field editable if required.
  8. Add the new Date Fields attribute to WEB UI View Configuration from the component work bench
  9. Result
     

Define Date Types

For Duration Field

Extend Model for Business Transactions with New Relations

    

For Duration field

 Create Context Node in Component work bench


Change the super class to CL_CRM_UIU_BT_DATE_CN of the Z context node’s class


Check for the errors(Remove the extra Base_Entity_Name attribute from the class) and activate

Now you can observe the new date attribute has been added to the node

Modify the ON_NEW_FOCUS as below.

Pass the’ I ‘for Item, ‘H’ for Header

Pass the Date Type defined in the date profile

Pass the category as T for Dates. 

Add the new field to the UI Config 

For Date field

For Duration field


 Results 

Applies to:

 SAP CRM WEB UI version 6.0 and 7.0 or more  

Summary 

This blog explains the prerequisite settings to navigation to the CRM UI Component from hyper link(i.e Click here to open the Request in Mail form or smart form). More focus is given to UI Component’s Design layer Object Type and UI Action to give edit or display  authorization.

Business Scenario: Need to open the UI Component deirectly by clicling the hyper link in the Mail form or Smart Form. So we need to insert the URL script into the Mail form body or Smart Form body.

Chand Shaik is Techno Functional Consultant in the area of SAP CRM and SAP Portal. He have started with SAP in 2004 coming from a web development background (JAVA). His experience ranges from Web Dynpro Java, Enterprise Portal, CRM ABAP, CRM BSP and BOL, CR580 and to functional skills in SAP. He has done several projects at different SAP customers. Currently working as a SAP CRM Consultant with TCS.

Example URL in Mail Form

http://XYZ.com:<PortNo>/sap/bc/bsp/sap/crm_ui_start/default.htm?crm-object-type=ICCMP_BT_SVT&crm-object-action=C&saprole=ZHRC_AGN_GEN&crm-object-value=%SAP_ZMAIL_FORM_ATTR-GUID

Another example is:

http://xyz.com:<PortNo>/sap/bc/bsp/sap/crm_ui_start/default.htm?crm-object-type=BP_ACCOUNT&crm-object-action=B&crm-object-value=2&crm-object-keyname=PARTNER

Syntax of the Hyper Link:-

VARIABLE1/sap/bc/bsp/sap/crm_ui_start/default.htm?VARIABLE2&VARIABLE3&VARIABLE4&VARIABLE5&VARIABLE6

Mandatory:

VARIABLE1 = System URL (http://dev.xyz.com:<PortNo> OR http://qual.xyz.com: <PortNo>  OR http://prod.xyzcom: <PortNo>)

VARIABLE2 = UI Component’s Design layer Object Type ( crm-object-type=ICCMP_BT_SVT)

Optional:

VARIABLE3 = UI Action to to give edit or display  authorization (crm-object-action=C). By dafault, it’s “Display” (B).

VARIABLE4 =  Business Role (saprole=ZHRC_AGN_GEN). By default it’s taken from the user, who use this URL.

VARIABLE5 = Request value (crm-object-value=%SAP_ZMAIL_FORM_ATTR-GUID).

VARIABLE6 = Request key name (crm-object-keyname=PARTNER). It’s a key name for the query parameter, which takes the value from VARIABLE5.

 Steps requeried to prepare Hyper Link:- 

1.        System URL 

2.        UI Component’s Design layer Object Type in Design Layer 

3.        Provide naviagation to UI component and provide UI Action(edit or display authorization) in Navigation Profile 

4.        Business Role 

5.        Request value (e.g. GUID)

6.        Request key name

Step 1 : System URL 

Development Server : http://dev.xyz.com:8002
Quality Server          : http://qual.xyz.com:8002

Production Server    :  http://prod.xyz.com:8003

From ABAP code first part of the url (not to be confused with VARIABLE1) could be retrieved with the following code:

DATA: 	lr_appl_model TYPE REF TO if_bsp_wd_appl_model,
	lv_1st_part_url TYPE string.

cl_bsp_wd_appl_model=>get_appl_model(
	EXPORTING
	  iv_bsp_appl   = 'CRM_UI_START'
	  iv_model_type = 'CL_BSP_WD_APPL_MODEL_RTTI' 
	RECEIVING
	  rv_model	= lr_appl_model
	EXCEPTIONS
	  OTHERS	= 1 ).

lv_1st_part_url = lr_appl_model->get_start_url( ).

Step 2 : UI Component’s Design layer Object Type in Design Layer 

Make sure the Object Type entry is availbale for your CRM UI component in the view BSPDLCV_OBJ_TYPE. This is table for all the elements of crm-object-type (like CRM_SRQM_INCIDENT,BP_ACCOUNT, BT126_APPT,  BP_CONTACT etc) in SAP CRM

To find the exsitng design object or copy the existing design object to view BSPDLCV_OBJ_TYPE using SM30 transaction

Please use the SPRO configuration to edit the BSPDLCV_OBJ_TYPE view as shown below.

Find or Copying SAP Design Objects

You can copy existing SAP design objects or create new entry in Customizing for Customer Relationship Management, at  UI Framework ->UI Framework Definition->Design Layer->Copy SAP Design Object .

Here you can see existing UI Oject Types mapped to SAP CRM design objects which is actually refers BOL Object Name and then BOL Attributes
To identify the UI Object Type of UI Component present or not. Please use the F2 pop-up on UI Component.  

Make sure the Object Type entry(which you have found in the F2 technical details for your UI Component) is available in the below table

If the Object Type entry is not available in the below table then you have to create UI Oject Type entry for your UI Component.

You have to create the new entry of UI Object Type for your UI Component with GenIL Component Name, BOL Object Name and BOR Object Type 

Step 3 : Provide naviagation to UI component and provide UI Action(edit or display authorization) in Navigation Profile 

Open the Navigation Bar Profile

 Select the required Navigation Bar profile of the Business role and double click on the Define generic Mapping at left side.


If the entry is not available for the Object type in the below table. You have to create new entry for the UI Object Type with Target ID

Parameter crm-object-action, we can fill with A for search, B for Display C for Edit and D for Create. Same parameter value have to be pass to crm-object-action in the URL.

4. Business Role

Find out the right Business Role.

You can see the Business Role name on WEB UI or using transaction code CRMC_UI_PROFILE 

5.Request value (e.g. GUID)

For GUID attribute in the Mail Form, you can create your own Z structure with the fields that you want to use in the email forms. And you need to maintain this structure with ERMS attributes context at SPRO.

Customer Relationship Management->Marketing Marketing Planning and Campaign Management->Personalized Mail->Maintain Attribute Contexts for Mail Forms.

6. Request key name

The request key name defines which parameter is used for query service of the object type. For example, it could be PARNER or PARTNER_GUID for object type BP_ACCOUNT. You can find appropriate parameter’s name in transaction GENIL_BOL_BROWSER.

Final Hyper Link to be added to Mail Form:-

http://XYZ.com:<PortNo>/sap/bc/bsp/sap/crm_ui_start/default.htm?crm-object-type=ICCMP_BT_SVT&crm-object-action=C&saprole=ZHRC_AGN_GEN&crm-object-value=%SAP_ZMAIL_FORM_ATTR-GUID

Generated link to be ready to open the UI Component :-

http://xyz.com:<PortNo> /sap/bc/bsp/sap/crm_ui_start/default.htm?crm-object-type=ICCMP_BT_SVT&crm-object-action=C&saprole=ZHRC_AGN_GEN&crm-object-value=4ABC3BC03014017BE10080000A016970 

 This URL opens the service ticket

http://XYZ.com:<PortNo>/sap/bc/bsp/sap/crm_ui_start/default.htm?crm-object-type=BP_ACCOUNT&crm-object-action=B&crm-object-value=2&crm-object-keyname=PARTNER

This URL opens the partner with ID 2.

TIP:

Even if paramater crm-object-keyname is optional, it’s obligatory to use it for some objects. For example, for business partners.

<!–

–>

Follow

Get every new post delivered to your Inbox.