You are on page 1of 271

Cookbook

Best Practice for S/4HANA Utilities for customer


engagement 2022
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

TABLE OF CONTENTS
INTRODUCTION ............................................................................................................................................... 5
REFERENCE MATERIAL ................................................................................................................................. 6
SAP Help Portal ............................................................................................................................................. 6
SAP Support Portal ....................................................................................................................................... 6
System Documentation ................................................................................................................................. 6
ENABLE ENTERPRISE EDITION .................................................................................................................... 7
ENHANCED IDENTIFICATION SCREEN ........................................................................................................ 7
Confirmation in the Identification Screen ................................................................................................... 8
Customizing of Business Partner Free Text Search ................................................................................ 13
Type-Ahead at Premise Free Text Search ................................................................................................ 14
Object Detail Views...................................................................................................................................... 14
PREMISE OVERVIEW .................................................................................................................................... 16
Switch Mask ................................................................................................................................................. 16
Navigation .................................................................................................................................................... 19
Edit ................................................................................................................................................................ 21
View mode .................................................................................................................................................... 22
View layout ................................................................................................................................................... 23
View format .................................................................................................................................................. 24
Installation .................................................................................................................................................... 24
Installation Billing Periods ........................................................................................................................ 24
Installation Billing Rate .............................................................................................................................. 25
Installation Fact .......................................................................................................................................... 26
Installation History ..................................................................................................................................... 26
Market location / Metering location ........................................................................................................... 27
MANAGING MASTER DATA ......................................................................................................................... 28
Business Partner Creation ......................................................................................................................... 28
Related Business Partner ........................................................................................................................... 30
Related Business Partner Template .......................................................................................................... 31
Country-specific name display .................................................................................................................. 36
Address Display Print Format .................................................................................................................... 38
Utilities Contract Account .......................................................................................................................... 40
Contract Account Settings ........................................................................................................................ 42
Technical Objects - Master Data Template ............................................................................................... 50
Point of Delivery Time Reference .............................................................................................................. 51
INTERACTION RECORD................................................................................................................................ 52
Customizing Subject Profile ....................................................................................................................... 52
Creation of Subject Profile ......................................................................................................................... 53
Code Groups and Code Group Profiles ................................................................................................... 54
Define Item Types for Searches ................................................................................................................ 55
Clarification Case ....................................................................................................................................... 56
Integration of Business Partner Contact .................................................................................................. 58
Approach ..................................................................................................................................................... 58
Customizing ................................................................................................................................................ 59
Important Function Module and Package ................................................................................................ 59
Linkage Table between Contract and IR .................................................................................................. 60
METER READING ........................................................................................................................................... 60

Introduction Page 2 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Meter Reading Correction ........................................................................................................................... 60


Meter Reading History Issue ...................................................................................................................... 61
FAST MOVE IN/OUT ....................................................................................................................................... 61
BOL TREE ....................................................................................................................................................... 63
Configuration: Presentation of Nodes and Columns ............................................................................... 63
Profiles and Profile Groups ....................................................................................................................... 63
Customizing ................................................................................................................................................ 64
Changing Object Views .............................................................................................................................. 64
BOL Tree Customizing Examples .............................................................................................................. 64
Sorting .......................................................................................................................................................... 66
Filtering ......................................................................................................................................................... 72
Object Finding .............................................................................................................................................. 78
Selection Mode ............................................................................................................................................ 82
BUSINESS LAYER FOR BOL/GENIL ............................................................................................................ 85
Customizing ................................................................................................................................................. 87
BL Object ...................................................................................................................................................... 89
BL Object Text Case .................................................................................................................................... 91
BL Object Method ........................................................................................................................................ 91
BL Object Package Assignment ................................................................................................................ 92
BL Object Attribute ...................................................................................................................................... 92
Determination Of Editability And Mandatory Field Checking Of Attributes ......................................... 92
Derivation Of Texts To Attributes / Property Text ................................................................................... 93
Icon Calculation .......................................................................................................................................... 94
Definition Of Reference/Navigation Properties Of Attributes (Link) ..................................................... 95
UI Presentation ............................................................................................................................................ 95
Field/Attribute Identifier ............................................................................................................................. 96
BL Object Attributes Calculation (Attribute Calculation) ........................................................................ 97
Attribute Conversion ................................................................................................................................... 97
Foreign Relation Check ............................................................................................................................ 100
BL Query ..................................................................................................................................................... 100
Parameter .................................................................................................................................................. 101
Attribute Conversion ................................................................................................................................ 102
BL Relation ................................................................................................................................................. 102
Required Field Check ............................................................................................................................... 104
Key Assignment........................................................................................................................................ 105
Parameter .................................................................................................................................................. 107
Business Layer External Method ............................................................................................................. 108
Access To Meta Data (Utilitiesmeta) ........................................................................................................ 108
ONE-CLICK ACTIONS.................................................................................................................................. 109
One Click Action Transaction Types ....................................................................................................... 110
Action Profiles ........................................................................................................................................... 125
Refresh Action ........................................................................................................................................... 150
Resolution Of The Parameter Values ...................................................................................................... 152
VALUE CALCULATION FOR BOL TREES, ONE CLICK ACTIONS AND SUMMARY TEXTS ................. 152
BuildIn Attributes....................................................................................................................................... 153
BuildIn Methods ......................................................................................................................................... 154
CURRENTLY SUPPORTED BUSINESS OBJECTS ................................................................................... 164
NAVIGATION TO FIORI APPS ..................................................................................................................... 165
FORMS .......................................................................................................................................................... 166

Introduction Page 3 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Customizing of Forms ............................................................................................................................... 168


Action Profiles in Forms ........................................................................................................................... 171
Standard Forms ......................................................................................................................................... 172
Product Search and Billing Simulation ................................................................................................... 183
Forms for Installation, Device and Register ........................................................................................... 183
UI5 Forms ................................................................................................................................................... 185
BILLING OVERVIEW AND BILL CORRECTION ......................................................................................... 190
SALES CONTRACT MANAGEMENT .......................................................................................................... 191
UI Configuration with Guided Processes ................................................................................................ 194
Utilities Sales Contract Overview Configuration ................................................................................... 194
UI Process ................................................................................................................................................. 194
Integration with Sales Contract Management ........................................................................................ 214
Integration of IS-U Contracts into Utilities Sales Contract Management ........................................... 214
Sales Contract Creation for Existing IS-U Contracts ............................................................................ 217
Business Event Enablement .................................................................................................................... 219
Business Event Customizing .................................................................................................................. 220
Business Event Implementation (Abstract Entity) ................................................................................ 222
Business Event Integration into Processes .......................................................................................... 224
Limitations to Sales Contract Management ............................................................................................ 225
FI-CA ............................................................................................................................................................. 225
Budget Billing Plan and Payment Plan / Scheme ................................................................................... 225
Payment Data ............................................................................................................................................. 225
FI-CA Invoice .............................................................................................................................................. 226
FI-CA Billing Document ............................................................................................................................ 227
Utilities Invoice .......................................................................................................................................... 228
S/4HANA SERVICE ORDER ........................................................................................................................ 229
INTEGRATION OF S4/HANA SERVICE REQUEST .................................................................................... 233
INTEGRATION OF S4/HANA MAINTENANCE SERVICE ORDER (MSO) ................................................. 238
CREATION OF S/4HANA SERVICE ORDER/REQUEST ............................................................................ 241
ENHANCEMENT CONCEPT ........................................................................................................................ 244
Extend Fields ............................................................................................................................................. 245
Extend CDS View ....................................................................................................................................... 246
Extend Utilities Sales Contract ................................................................................................................ 247
Extend BOL Tree........................................................................................................................................ 250
Extend UI Process ..................................................................................................................................... 261
AUTHORIZATION CONCEPT ...................................................................................................................... 261
Authorization Object for Utilities Sales Contract Management ............................................................ 263
SECURITY ..................................................................................................................................................... 266
End of Purpose (Blocking) Process ........................................................................................................ 266
Blocking the Business Partner ............................................................................................................... 267
Ending the Interaction Record ................................................................................................................ 267
Ending the Utilities Sales Contract ......................................................................................................... 269

Introduction Page 4 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

INTRODUCTION
SAP S/4HANA Utilities for customer engagement is a simplified version of SAP CRM embedded into SAP
S/4HANA. While its first versions were technically delivered as an add-on (as software component S4CRM).
It has been fully embedded into S/4HANA with the 1909 release.

***Note: With Release 1909 the Customizing node of Customer Management was moved under SAP Utilities
and renamed to Customer Engagement. If you are missing Customizing entries under SAP Utilities please
see Customizing node Service.

Within SAP S/4HANA Utilities for customer engagement, the S/4HANA Interaction Center serves as central
entry point for customer service specialists of a utility company, allowing them to access numerous industry
processes and functions. Technically the Interaction Center leverages SAP’s proven CRM Web UI
Framework technology, and new UI themes offer a harmonized Fiori user experience following SAP Fiori
user interface strategy.

This guide focuses on best practices for SAP S/4HANA Utilities for customer engagement. It incorporates
questions and feedback received so far from the first implementation projects at utility companies in various
regions.

Introduction Page 5 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

REFERENCE MATERIAL

SAP Help Portal


There are various documentations published on the SAP Help Portal. To access all the relevant information,
you need to be locked in with your user account. Component-based documentation for all functions and
processes that are supported by this product can be found here:
• Overview SAP for Utilities
• Feature Scope Description
• Product Assistance
• Other Cookbooks. Guidelines and How To Guides

SAP Support Portal


The SAP Support Portal offers support tools, services, applications, as well as related documentation and
community content. Simplification Items can be found here.

System Documentation
For each IMG activity, there is documentation available directly in the SAP S/4HANA system, and in many
cases as well F1 help documentation for single attributes of the customizing table.
The information in this guide complements the system documentation. Therefore, we strongly recommend to
always read the available system documentation as well. As a general rule, in order to avoid duplication of
documentation, we did not copy the system documentation into this guide.

Reference Material Page 6 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

ENABLE ENTERPRISE EDITION


If you have licensed SAP S/4HANA Utilities for customer engagement, enterprise edition, you also need to
activate the feature IU_CMS4_ENTERPRISE_EDITION. The enterprise edition enables the user to access all
customer engagement functions in S/4HANA Utilities. Therefore SAP S/4HANA Utilities for customer
engagement, basic edition for Customer Interaction Center provides a limited set of functions and screens.
For a detailed overview about the functions provided in the basic edition for Customer Interaction Center and
the enterprise edition see Licenses for Customer Engagement in the SAP Help Portal.
• Start Transaction CRM_ISU_FEATURE
• Click on Feature Activation

• Select Edit

• Set Enterprise edition on True

• Click Save

• Click Activate

ENHANCED IDENTIFICATION SCREEN


For customer using the Lean Identification Screen as of version CRM7 and release 1709, support can no
longer be guaranteed. Therefore, it is highly recommended to use from now on the Enhanced Identification

Enable Enterprise Edition Page 7 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Screen. The functionality of the old Lean Screen is completely covered by the Enhanced Identification
Screen. Moreover, the enhanced screen offers an extended range of functions such as:
• Harmonization of old IS-U objects to Utilities objects
• Improved search performance
• Various searches for business and technical objects
• Free text search for business and technical objects
• Creating the business partner with standard views from the CM-core
• Creation of technical objects (contract account, premise, point of delivery)
• Display of search results in the BOL tree (display of different objects in the result list with options on one
click actions).

Confirmation in the Identification Screen


It is possible to search and confirm the following data in the Identification screen:
• Business partner (BP)
• Contract accounts (CA)
• Premise (PRM)

Confirmation of Business Partners


Whether the automatic search for technical objects is executed can be customized in the Identification
profile: CRMC_IU_MD_PROF → AUTO_CONTINUE
Whether the automatic confirmation for technical objects is executed can also be customized in the
Identification profile: CRMC_IU_MD_PROF → AUTO_CONFIRM
SPRO path: SAP Utilities →Customer Engagement → Identification →Define Identification Profiles
The automatic search for premise via business partner address can be turned off with user-parameter:
CRM_IUIC_NO_ADDR_S.
The search is initially on and can be turned off with value 'X' for the user-parameter (see SAP Note:
2420380)
The following types of confirmation are available for the business partner:

Enhanced Identification Screen Page 8 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Types of confirmation:
• Auto-confirm via search
• Auto-confirm via create
• Auto-confirm via IC-Inbox (Agent inbox)
1. Search for Interaction Record via inbox (navigation bar: Communications → Inbox).
2. Mark entry in result list and click on edit.
Navigation to the interaction record screen is done.
BP is confirmed.
3. Go to Identification screen
• Auto-confirm of CA and technical objects will be done (if suitable CA can be found).
• Confirm via UI-button of the Identification screen.
1. Search for BP and the result tree contains more than one BP.
2. Select one BP in the result tree.
A confirm button will appear in the detail view
• Confirm via standard one click action

Enhanced Identification Screen Page 9 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Confirmation of Contract Accounts

Types of confirmation:
• auto-confirm via search
• auto-confirm via create
• confirm via UI-button (Contract account detail)
• confirm via UI-button (Identification screen)
• confirm via standard one click action

Unconfirm contract account:


• unconfirm via UI-button
• unconfirm via standard one click action

Enhanced Identification Screen Page 10 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Confirmation of Premises

Types of confirmation:
• auto-confirm via Search
• auto-confirm via create
• confirm via UI-button
• confirm via standard one click action

Unconfirmation of premise:
• unconfirm via UI-button
• unconfirm via standard one click action

Enhanced Identification Screen Page 11 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Alerts

Alerts are information messages that can be displayed to agents in the Context Area of the Interaction
Center. Alerts are used to guide agents during the interaction with the customer by directing their attention to
items that require attention. Detailed information can be found under Configuring Interaction Center Alerts.
Relevant notes:
• FAQ note 1330726 - IC Webclient Alerts FAQ Note
• Note 2230715 - Alerting does not work due to missing customizing
• Note 1835360 - How to configure an alert in CRM IC Webclient
• Note 1556804 - UTIL_IC: Alerts disappearing when searching BP or Premise
• Note 2228559 - Display details for confirmed business partner using an alert

Enhanced Identification Screen Page 12 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Customizing of Business Partner Free Text Search


In order to better control the behavior of the free text search for the business partner, corresponding
customizing was introduced. In addition, the performance of HANA (CPU consumption) can be improved
through certain settings.
The call of the class which provides the value help descriptor is done dynamically, because the UI classes
are located as original in the CE Landscape (no-where-used list).

Development Object Object Type Usage


CRMS4C_IU_BPFTSC Customizing Table Client-dependent customizing table
CRMS4V_IU_BPFTSC Maintenance View Maintenance view with SPRO entry
CL_CRMS4_IU_BPFTS_CUSTOMIZING Class Reads the customizing and returns
the value help descriptor
CL_IUICOBJS_BPBYFTSQUERY_CN00 Class Calls the customizing class and sets
the value help descriptor for the BP
FTS (GET_V_SEARCH_TEXT)
CL_IUICOBJS_VSBYFTS_CN00 Class Calls the customizing class and sets
the value help descriptor for the PRM
FTS (GET_V_SEARCH_TEXT)
CL_CRMS4_IU_IL_BP_QUERY Class Executes the query and evaluates the
customizing before (search option,
CDS view, etc.)

Customizing Field Usage


VIEW_NAME CDS view which should be used for the search
SEARCH_TEXT_OPTION whether and how the entered search value, before the search query,
should be adjusted
EXCLUDE_EMPLOYEES defines if the employee's should be removed from the search result after
the search
SEARCH_HELP_NAME DDIC search help which should be included
• which allows to control the type-ahead behavior (dialog type)
• whereby the search help exit can be specified

Enhanced Identification Screen Page 13 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Type-Ahead at Premise Free Text Search


Since there is currently no customizing for the Premise Free Text Search (FTS), but nevertheless to control
the type-ahead behavior, the DDIC search help in the (Business Partner FTS) customizing is used as a
reference point.
If no search help is entered there, no DDIC search help is used for the Premise FTS either, so the type-
ahead behavior is not used and the search help exit is not called.
If a search help is entered in Customizing, the search help is used as in the previous releases.

Object Detail Views

• Open Customizing path under SAP Utilities → Customer Engagement → Settings for the Object
Workbench → Define Object Workbench Profiles
• Create View Repository

*** Please note: "View Name" means the name of the actual view (without UI component prefix) and "UI-
Comp View Name" means the name of the window with which the view is included. “UI-Comp View Name"
must contain the complete name from the UI component repository (depending on the component, this can
be with or without UI component prefix (see e.g. window of BP_DATA), please check the UI Component
Workbench (BSP_WD_CMPWB)).

• Define the object details

Enhanced Identification Screen Page 14 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

• Add the detail view to the corresponding Workbench profile

Enhanced Identification Screen Page 15 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

View Text in line 2 can be used to override the general title defined in the repository (see above).
View Text in line 3 is only relevant for Search and Search-Result View (see F1 help of the corresponding field).

PREMISE OVERVIEW
The Premise Overview was newly designed OP2022 and based on the forms customizing introduced in
release OP2021FPS0.

Switch Mask
As Form type a ‘Form Tree (Switch) Mask’ is used. On the left side the data environment tree and on the
right side the detail views as overview pages for the selected entity in the tree (switch mask).

SPRO path: SAP Utilities → Customer Engagement → General Functions → Define Forms
Tree Mask Form: PREMISE_OVERVIEW_TM
Tree Form: PREMISE_OVERVIEW_TR

Premise Overview Page 16 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

o S4CUTMDPOF (used tree profile)


Swich Mask Form: PREMISE_OVERVIEW_SM
o switches the assigned forms based on the selected entity in the tree

Main Forms (Tree Mask, Tree, Switch Mask)

Tree Mask with assigned Forms

Tree Form with new Query

Switch Mask Form

Premise Overview Page 17 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Assignment of the Switch Mask Form

Default tree profile S4CUTMDPOF. Can be adjusted by overriding in the FormTree.

Tree entities with assigned forms


Entity Assigned From (Switch Mask) Description
ConnectionObject CON_OV Connection Object
Premise PRM_OV Premises
PointOfDelivery POD_OV Point of Delivery
PointofDeliveryTimeRef Point of Delivery History
UtilsDisconnectionObj UDD_OV Disconnection Object
UtilitiesDevice DEV_OV Device
UtilitiesInstallation ILN_OV Installation
UtilitiesRegister REG_OV Register

Premise Overview Page 18 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UtilitiesContractItem CTI_OV Utilities Sales Contract Item


UtilitiesUtilsContr UCT_OV Utilities Contract
UtilsContrAcctPartner UCAP_OV_PREMISE_OVERVIEW Contract Account
BuilHeader BP_OV Business Partner
UtilitiesEmmaCase EC_DETAILS Clarification Case

Navigation
Navigation to the Premise Overview through object-based navigation is supported for the three entities
Connection Object (IUICOBJDET_COB), Premise (IUICOBJDET_PRM) and Point of Delivery (IUICOBJDET_PRM).
Logical links were included for display (S4CUTPO) and edit mode (S4CUTPOC).
One-Click-Actions to display and edit the three entities will navigate to the premise overview.
For the work center link, a logic was implemented in method DO_CONTEXT_INITIALIZE of class
CL_IUFMPRMOV_TR_ACTION_HANDLER.

Determination procedure of connection object:


1. Det. Based on the supplied navigation object / event entity
2. Det. Based on the global data context (confirmed entities)
3. If 1. And 2. Does not provide a result the premise overview will be started with an empty tree, but a
search view will be shown where the user can search for a connection object

Navigation mapping for the three main entities

Handler class to determine Connection Object

Logical links for the new Premise Overview

Premise Overview Page 19 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Work Center link for the new Premise Overview

Search View

To enable the use of the premise overview without a confirmed entity or direct entity-based navigation a
search with a corresponding view is provided. This search can be toggled through an OCA included in the
tree actions.
The search view is initially hidden. Only in case that no connection object could be determined by the
procedure described in chapter Navigation the view is directly displayed.
A new query ConnectionObjectVariousDQuery was created for the connection object to select from the new
CDS view CRMS4_IU_C_CONVAR which joins different tables to enable the search for a connection object for
example on the business partner or the address data of the connection object.
Default search fields are maintained as form parameters on the tree from PREMISE_OVERVIEW_TR in the
customizing. These fields are initially added to the search view.
Default parameters are read through method GET_FORM_PARAMETERS in class
CL_IUFMPRMOV_TR_ACTION_HANDLER with pattern defined as constant attribute C_QUERY_PARAMS_PATTERN in
the class.
In Class CL_IUFMPRMOV_ACTION_HANDLER the logic to enable (show/hide) the view is implemented.

New Query for Premise Overview search

Premise Overview Page 20 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Search View and OCA for Show/Hide

Default search parameter assigned to search view

Edit
To visualize the edit status of the entity a new column is added in edit mode to the tree which displays the
current status. It is visualized when an entity was changed or if the corresponding entity contains errors (due
to the change).
Edit mode is activated globally for all entities but only the views defined in forms customizing as editable will
be set to edit mode.

Premise Overview Page 21 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Edit state in tree

View mode
For the Form Tree Mask an option is implemented to switch the view mode. Logic to set the corresponding
mode is implemented in classes CL_IUICFTM_MAINWINDOW_IMPL and CL_IUICFTM_CUCOMAIN_IMPL.

View modes
Name in UI control Technical name Description
Tree and Detail SHOW_ALL_AREAS show tree and detail
Detail only SHOW_TREE_ONLY show only tree
Tree only SHOW_DETAIL_ONLY show only detail view

Premise Overview Page 22 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

View layout
For the Form Tree Mask an option is implemented to switch the view layout.
Logic to set the corresponding layout is implemented in classes CL_IUICFTM_MAINWINDOW_IMPL and
CL_IUICFTM_CUCOMAIN_IMPL.
Constant CL_CRMS4_IU_FM_CUSTOMIZING=>C_TREEMASK_VIEW_LAYOUT is used.
Method EH_ONFRMBTN_CHANGE_LAYOUT in class CL_IUICFTM_MAINWINDOW_IMPL changes the selected
layout.
Name in UI control Technical name Description
Top to bottom TOP_TO_BOTTOM show tree top and detail bottom
Left to right LEFT_TO_RIGHT tree left and detail right

View layout

Premise Overview Page 23 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

View format
To use UI view configurations in the Form Tree Mask where less space is available because the tree also
requires space a new function is provided to set the configuration based on the view mode and view layout.
The UI configuration must be created, and the component usage needs to be set accordingly for the
small/narrow or the wide format. If no usage with suffix is defined the default config is used. For large/wide
configurations no additional configuration needs to be created.
Logic to set the corresponding format is implemented in method SET_VIEW_FORMAT of class
CL_IUICFTM_CUCOMAIN_IMPL.
Constant CL_CRMS4_IU_FM_CUSTOMIZING=>C_TREEMASK_VIEW_FORMAT is used.
Usage suffix Description Example
<Usage Narrow config to be used when the form UCAP_ACCOUNT_MANAGEMENT_DISPLAY_S
Name>_S customizing is defined

Form customizing to determine format

Installation
Entities related to the Installation were harmonized for release OP2022 and described in the following
chapters.
For customer-based adjustments the customizing can be overwritten in separate path.
SPRO path: SAP Utilities → Customer Engagement → General Functions → Override the Definition of the
Utilities Business Layer Objects

Installation Billing Periods


Billing Periods for Installation (UtilitiesInstallation) was harmonized and included into the UI of the Installation.
The new BOL-Entity UtilsInstallationBiPerd was created with relations to the Installation.

Premise Overview Page 24 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Object Name Object Type Description


UtilsInstallationBiPerd Root Object Main entity
UtilsInstallationBiPerdQuery Query Object Query to select entities
UtilsInstallationBiPerdDQuery Dynamic Query Object Dynamic Query to select entities

Installation Billing Rate


Billing Rates for Installation (UtilitiesInstallation) was harmonized and included into the UI of the Installation.
The new BOL-Entity UtilsInstallationBiRate was created with relations to the Installation.

Object Name Object Type Description


UtilsInstallationBiRate Root Object Main entity
UtilsInstallationBiRateQuery Query Object Query to select entities
UtilsInstallationBiRateDQuery Dynamic Query Object Dynamic Query to select entities

Premise Overview Page 25 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Installation Fact
Installation Facts for Installation (UtilitiesInstallation) was harmonized and included into the UI of the Installation.
The new BOL-Entity UtilsInstallationFact was created with relations to the Installation.

Object Name Object Type Description


UtilsInstallationFact Root Object Main entity
UtilsInstallationFactQuery Query Object Query to select entities
UtilsInstallationFactDQuery Dynamic Query Object Dynamic Query to select entities

Installation History
Installation History for Installation (UtilitiesInstallation) was harmonized and included into the UI of the
Installation. The new BOL-Entity UtilsInstallationHist was created with relations to the Installation.

Premise Overview Page 26 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Object Name Object Type Description


UtilsInstallationHist Root Object Main entity
UtilsInstallationHistQuery Query Object Query to select entities
UtilsInstallationHistDQuery Dynamic Query Object Dynamic Query to select entities

Market location / Metering location


The market- and metering location is an extension of the point-of-delivery. It is to distinguish between
measurement and market location in the premise overview and allows a country-specific display of the POD
IDs.
The views are assigned to different forms. A switch mask decides which form is displayed based on the
structure type.
SPRO path: SAP Utilities → Customer Engagement → General Functions → Define Forms

Customizing enables the creation of customer-specific structure types.

Premise Overview Page 27 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Furthermore, own function modules can be stored, which enable the display of the POD-ID in other formats.
SPRO path: SAP Utilities → Master Data → Point of Delivery → Define Structure of Point of Delivery ID

The new view creates the POD ID from the four individual values "Country/Region", Distributor, Postal Code
and Sequence number. For example, separated by spaces.

MANAGING MASTER DATA

Master data is a pool of information that is stored on a long-term basis in the SAP system and can be
incorporated into individual transactions. There are two different types of master data: business master data
(e.g. business partner, contract account) and technical master data (e.g. premise).

Business Partner Creation


BP are created with both business partner roles CRM000 and MKK and both are mandatory.
Customizing table TB003 → maintain role CRM000 sold-to Party, Error R1 206 "BP role CRM000 does not
exist if role missing Transport it from Client 000
To assign CRM000 to the BP please use following two BAPIS: At first BAPI_BUPA_ROLES_GET_2 to check if
CRM000 is already there and if NOT, but MKK is there use BAPI_BUPA_ROLE_ADD_2 to add the new role.
General information about the business partner, can be found here: SAP Business Partner.
Relevant notes:

Managing Master Data Page 28 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

4. SAP Note 2233726 - Automatically submitting the business partner role "sold-to party" (CRM000)
during creation using the master data generator
5. SAP Note 2810745 - Add APIs to maintain EKUN and trigger ISU logic for non-BDT cases (S4CRM)

CVI Customizing Checks

To ensure the synchronization from business partner to customer/supplier takes place correctly, a basic pre-
requisites setup from a customizing view point is essential. Please see documentation Business Partner
Customizing Checks.

This is recommended as trouble shooting when you have problems with creating BPs. It relates to Customer
Vendor Integration (CVI) relevant partner roles.
In SAP S/4HANA, on-premise edition, the central business partner approach (CVI) is mandatory. Customer
and vendor master record creation, maintenance and display is only possible via the Business Partner
functionality (Transaction BP). For more information, see the simplification item Business Partner Approach
(SAP Note 2265093).
Consequently, the former concept of SAP IS-U Business Partner and SAP SD Customer integration in SAP
ERP has been substituted by SAP Customer Vendor Integration (CVI) in SAP S/4HANA.
Please note that it is planned to check the introduction of the Customer/Vendor Integration in the pre-checks
and the technical Conversion procedure of SAP S/4HANA, on-premise edition 1511. A system where the
customer/vendor integration is not in place will be declined for the transition.
Please note that CVI functionality described in this note is released for SAP S/4HANA only and SAP does
not plan to make it available on SAP IS-U(ECC).
Customer Vendor Integration (CVI) offers the option to create an SD customer (in addition to the business
partner) if needed, for details see SAP Note 2344100.
6. All required fields must be filled before BP creation starts (Default required: Last Name, First Name,
City, Postal Code).
SPRO path: Financial Accounting → Accounts Receivable and Accounts Payable → Customer Accounts →
Master Data → Preparations for Creating Customer Master Data → Define Account Groups with Screen
Layout (Customers)
Or use maintenance view with SM30: V_T077D
7. Select Account Group: DEBI (Customer (general).
a. Then Double-click on fields under Field Status to set required fields for specific levels.

8. Define Business Partner Roles


a. Start transaction SM34
b. View Cluster CRMVC_IU_MD_PROF
c. Click on Maintain

Managing Master Data Page 29 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Related Business Partner


When creating related business partners, a relationship category must be addressed (is contact person,
actual payer, etc.). Customizing for the possible category is stored in the identification profile. This also
controls which relationships are displayed in the Business Partner Overview under Business Data
Environment.
9. Start transaction SM34
10. View Cluster CRMVC_IU_MD_PROF

11. Click on Maintain


12. Choose Profile: S4C-UTIL
13. Node: Business Partner Relationship Categories

14. In the Business Partner Overview only the categories stored here are displayed. For example,
category BUR004 - Marriage is visible under Related Business Partner if the category is maintained.

Managing Master Data Page 30 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

15. Different relations are shown under different tree nodes. For example, an alternative payer is
assigned to contract account and husband/wife is shown under related business partners. You can
also view the relationships on Business Partner Overview or in the Identification screen in the
business master data tree.

Related Business Partner Template


The goal is to be able to create a relationship to an existing business partner with a business partner which is
created during this process based on template data of a reference business partner.

Customizing

SPRO path: IMG->SAP Utilities->Customer Engagement->General Functions->Define Templates for Utilities


Business Partner Relations

View: CRMS4V_IU_UBT
Table: CRMS4C_IU_UBT
Text-Table: CRMS4C_IU_UBTT

Managing Master Data Page 31 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Reference Business Partner:


This is the business partner from which the necessary fields are taken over to the new related BP that is
created.
All fields can be transferred, except for the business partner category. That means, the category Person or
Organization is transferred from the reference business partner. Customers can use the method
CL_CRMS4_IU_BL_UBT -> GET_REF_BP_DATA.

In the standard delivery, the following information are transferred:


Category Person: Correspondence Language
Category Organization: Industry
For the central data, all information from the structure BAPIBUS1006_CENTRAL is transferred, except for the
search terms (SEARCHTERM1, SEARCHTERM2), the external partner number from external systems
(PARTNEREXTERNAL) and the salutation (TITLELETTER).
The business partner grouping (BP_GROUP) and the data in the structure CI_DATA (customer include for the
business partner data table BUT000 (INCL_EEW_BUT000)) are also transferred
Accept Errors:
Can be selected if you want the related business partner to be created even if errors or warnings occur
during address checks.
Show CVI-Messages:
Can be selected to display messages for the integration between the customer and the vendor. This includes
errors, warnings, and info-messages.
Reverse Relationship:
Can be selected if you want to reverse the relationship direction when creating the new business partner.
Example:
The relationship is set to "Is contact person". However, the business partner is then created with the status
"Has contact person".
Text:
The text is displayed in the UI when choosing a template and as header for the view. If the text is empty,
then the template name is used.

Managing Master Data Page 32 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UI-Visualization

UI-Component: IUFMBP
Window: IUFMBP/WUBuilHeaderTemplate
View: IUFMBP/VUBuilHeaderTemplate

Integration via Form-Customizing

The view itself is integrated as Overview Form in the Form-customizing: see Customizing of Forms
SPRO path: IMG->SAP Utilities->Customer Engagement->General Functions->Define Forms
Overview-Form-Name: UBT_OV
Form-Mask-Name: UBT_CREATE

Form-Parameters:

Parameter Description
TEMPL.REF_BP_NUMBER ID of reference business partner
If REF_BP_NUMBER is empty the reference BP from
the customizing is taken which is maintained for
TEMPLATE_NAME. Otherwise it overwrites the
reference BP from the customizing.
TEMPL.RELAT_BP_NUMBER ID of BP to which the newly created BP should have
the relation
If this parameter is empty nor relation will be created
and the UI will show a view without the “relation data”-
part (different UI configuration, see below)

Managing Master Data Page 33 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

TEMPL.TEMPLATE_NAME The ID (not the text) of the template


TEMPL.* Parameters with this prefix will be imported in
CL_CRMS4_IU_BL_UBT->CREATE_SPEC if they are also
part of structure: “CRMS4S_IU_UBT_CREATE”
CREATE.* Parameters with this prefix will be written to the
structure of the object (CRMS4S_IU_UBT_BL) after
CREATE_SPEC was executed
Two different view configurations are available. On with the relation data and one without. They are triggered
based on if TEMPL.RELAT_BP_NUMBER is filled. Their usage is differentiated using the postfix: “R”, which only
has the configuration containing the relationship data.

BL-Customizing

The object is integrated as BL-Object in the BL-customizing: see Business Layer for BOL/GenIL
SPRO path: IMG->SAP Utilities->Customer Engagement->General Functions->Define Utilities Business
Layer Objects
BL-Object name: UtilsBuilHeaderTemplate
BOL-Object name: UtilsBuilHeaderTemplate
Implementation-class: CL_CRMS4_IU_BL_UBT
This Object has no CDS-View because it is not saved persistently. If it is queried the structure will be
populated with the data from the newly created related BP.

Corresponding Action Profiles and OCA

The call of the view is integrated via an action profile in the AP-customizing: see Action Profiles
Action-Profile for BOL-Tree: UBT_MENU
Contains the OCA which calls the popup and eventually the forms-view.
Action-Profile for Overview-Form: UBT_OV_FORM
Contains the redirect of the “CREATE”-event to the action-handler: “CL_IUFMBP_UBT_ACTION_HANDLER”.
Action-Profile for Detail-Form-Mask: UBT_OV_FORM
Contains the redirect of the “SUBMIT_ON_ENTER”-event to the action-handler:
“CL_IUFMBP_UBT_ACTION_HANDLER”.

Popup:

Managing Master Data Page 34 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Popup-Calculation:
popup('CLASSMETHOD';(tt=@OTR/CRM_IC_APPL/CHOOSETEMPLATE@;rc='TEMPLATE_NAME');'CL_CRMS4_IU_UBT_
OCA';'CL_POPUP_TEMPLATE_NAME')
As title an OTR-text is taken. The return value is the value from column: “'TEMPLATE_NAME'” and the popup
attributes especially the table displayed is handled in:
“'CL_CRMS4_IU_UBT_OCA=>CL_POPUP_TEMPLATE_NAME'”.

Details to Program-Flow

Package: CRMS4_IU_IL_BP
Implementation Class: CL_CRMS4_IU_BL_UBT
To make the search helps work properly in the UI some additional values are set when specific address data
are filled in “MODIFY_SPEC”
So, the city-code is set if city is filled via “SET_CITY_CODE”. The street-code is set if the street is filled via
“SET_STREET_CODE”. The country pre-dial is set if the country is filled via “SET_COUNTRY_TEL”.

Create Process

CL_CRMS4_IU_BL_UBT->CREATE_SPEC
The customizing data is loaded for TEMPLATE_NAME. The UBT-object (Utilities Business Partner Template) is
filled with the data from the reference BP as template, which is data is taken is defined in:
“GET_REF_BP_DATA”. Apart from these data the “BP_CATEGORY” is taken over. At the end data defined in the
form-parameters with “TEMPL.*” which were written to the create-structure are taken over.

Checks

CL_CRMS4_IU_BL_UBT->CHECK_BEFORE_SAVE_SPEC
Will be executed right before the save after the save button is clicked. The actual business partner object is
created here or changed if it already exists.

Managing Master Data Page 35 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

The address is checked via “CHECK_ADDRESS“, which can also be called externally via “BL_CHECK_ADDRESS”.
Duplicate address checks are not done in standard. The “CHECK_ADDRESS_BADI” could not be delivered in
standard but contains the necessary coding as comments as template for custom implementations.
Customer-Vendor-Integration (CVI) requirements are checked in method “ADD_CVI_MESSAGES” and the
corresponding messages are displayed if the flag is maintained in the customizing.

Save Process

CL_CRMS4_IU_BL_UBT->SAVE_INTERNAL_SPEC
The changed fields are taken over, the BP-roles from the reference Business Partner are added and the
relationship is created, which is created reversed if the flag in the customizing is set. After that an explicit
save is done and the key is updated.
After the save and commit the BP-buffer is cleared in “IF_CRMS4_IU_BL_ACCESS~AFTER_COMMIT”
or “IF_CRMS4_IU_BL_ACCESS~AFTER_ROLLBACK”.

Enhancement

There are no private methods in “CL_CRMS4_IU_BL_UBT”. So, except for the “BL_*” methods all methods can
be redefined with custom implementation.
To overwrite the customizing flags use:
GET_REVERSE_REL_DIRECTION
GET_CHECK_ADDR_ACCEPT_ERRORS
GET_DISPLAY_CVI_MESSAGES
To determine which fields are taken over from the reference BP use:
GET_REF_BP_DATA

Country-specific name display

Country-specific name representation of the business partner name (FULLNAME) can be defined in
Customizing.
SPRO path: SAP Customizing Implementation Guide → Financial Supply Chain Management → Treasury
and Risk Management → Basic Functions → Sap Business Partner for Financial Services → General
Settings →Business Partner → Persons → Name Components → Maintain Name Formatting Rules

Managing Master Data Page 36 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Then this representation can be assigned to the business partner in transaction BP.

In Japan, for example, the salutation is appended after the name as a suffix.

Managing Master Data Page 37 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Address Display Print Format


The address display for the print form is controlled via customizing. In transaction V_T005, you can define
which method/display is to be used for each country.
This customizing is then evaluated in the corresponding class.

For example, in Germany, variant 015 is set, which does not include the state in the output.
With variant 030, the federal state is also output.

Managing Master Data Page 38 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Managing Master Data Page 39 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

See also: SAP Library - Business Address Services (BC-SRV-ADR)

Utilities Contract Account

The BOL entity UtilsContrAcctPartner was created for the contract account; this is located in the GenIL
component ISUMDE.
Existing CDS views, which in turn go to the tables FKKVKP, serve as a basis. The header table FKKVK was
harmonized via the UtilsContrAcctHeader entity, but plays no role in saving, locking, etc. this is all
implemented in the UtilsContrAcctPartner entity.
In order to display the locks directly on the UI, fields for this were included directly in the entity and thus also
included in the CDS views.
Relations:

Managing Master Data Page 40 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

• UtilitiesBusinessLock in addition to the fields there is also the corresponding relation which provides all
locks for the contract account via the object type '06'.These are displayed as a tree in the UI.
• Invoicing documents are displayed in corresponding tree profiles in the UI.
• Contracts are displayed in corresponding tree profiles in the UI.

Navigation / Display / Form

For the Utilities role, a conversion for the object-based navigation of the BUAG was provided. This ensures
the navigation from BUAG to the new UI.
• Form name: UCAP_OV
• UI component: IUFMUCAP

Managing Master Data Page 41 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Data Environment

In all places where the Business Agreement has been integrated so far, it will be replaced by the Contract
Account.
Object Type Name Description
BL Object UtilsContrAcctPartner
DDLS CRMS4_IU_C_CAP Data of the reference objects via
association to
CRMS4_IU_I_USOREF
Package CRMS4_IU_IL_CA
Class CL_CRMS4_IU_BL_CAP Create, Change, Save
TABL FKKVKP Main table of the contract account

Utilities Business Lock

The business locks have been harmonized in the BOL entity UtilitiesBusinessLock. The table is based on
existing CDS views which go to the DFKKLOCKS table.

Contract Account Settings


The following configuration is required in order to use contract accounts in S/4HANA Utilities for Customer
Engagement.
*** Note: Business Agreement master data tables are not being used in S/4HANA for Customer
Engagement.
Therefore, compared to CRM for Utilities side-by-side, there is no need for an initial download of business
agreement data when setting up the S/4HANA Utilities for Customer Engagement system.

Managing Master Data Page 42 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

For the delivered role S4C_UT_IC the following adjustments are delivered by default. If you use the role in
extended form, you need to make the following Customizing to use the harmonized version of the contract
account with the business agreement.
1) Service → UI Framework →Technical Role Definition → Define Navigation Bar Profile
2) Select Profile → Define Generic Outbound Plug Mappings
3) Change the mapping for Object Type ‘BUAG’
a. Object Action ‘Display’
i. Logical Link ID : S4CUTUCAPB
b. Object Action ‘Edit’
i. Logical Link ID : S4CUTUCAPC

1) Create Contract Account Number Range

Transaction: SNRO
• Enter object name “FKK_KONTO”
• Click on “Display”
• Goto → Interval Editing
• Create internal and external number range

Managing Master Data Page 43 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

2) Configure Contract Account Categories and Assign Number Ranges

• Assign the number ranges to the Utilities contract account categories in IMG:
Financial Accounting → Contract Accounts receivable and Payable → Basic Functions → Contract
Accounts → Number ranges and Contract account Categories → Configure Contract Acct Categories and
Assign Number Ranges

Create Credit Memo

To create a credit memo, you need the following customizing settings:

Maintain Posting Area (Account Determination, Default Values) with transaction FQC0:
• Choose your needed Posting area (R001) and click Display.
• Choose Chart of Accts: e.g. INT and enhance Account Assignment Data Relevant to Transactions.
• Click Edit and create a new line for your company code.

Example:

Manage Reconciliation Key:


• Create credit memo is based on event 1331. For this the user need an entry in table TFK001F.
• Start transaction SM30 and maintain TFK001F.
• You need the OK code 01 for the user for the current date.

Example:

Managing Master Data Page 44 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Relevant Settings for Non-Harmonized Contract Accounts Using Business Agreement


Customizing

***NOTE: The following settings are only relevant if your are using a version before 2021 and if you do not
want to use the harmonized contract account functionality.

1) Activate FI-CA

16. Active FI-CA in IMG: Service > Master data > Contract Account > Define Basic Settings
17. Set FI-CA active with the following settings:

2) Create Buag Number Range

Transaction: SNRO
18. Enter object name “BUAG”
19. Click on “Display”
20. Goto → Interval Editing
21. Create external and internal number range

3) Assign Number Ranges to Contract Account in Customizing of Customer Engagement and Create
Contract Account Class
22. The external number range in the Customizing of Customer Engagement has to correspond to the
internal number range on the FI-CA side. Also the internal number range in Customer Engagement
must reflect the external number range on the FI-CA side.

23. Create a contract account class and fill in the number ranges, type in the number ranges you have
created for object BUAG

Managing Master Data Page 45 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Service → Master Data → Contract Account → Define Contract Account Class

4) Create Sales Channel


24. Create sales channel in IMG
Service → Master Data → Contract Account → Creation of Contract Account → Define Sales Channel
25. Create sales channel ICW

5) Map Sales Channel to Contract Account Class

26. Map sales channel to contract account class in IMG:


Service → Master Data → Contract Account → Creation of Contract Account → Allocate Contract
Account Class
27. Map your sales channel to your contract account class

28. Create reference contract account


To create new contract accounts a reference contract account needs to be created.
29. Transaction: CAA1
30. This reference contract account is used to map the contract account category to the contract account
class.

Managing Master Data Page 46 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

31. Type in any BP number


32. Choose Cont.Acct.Cat: 01

Maintain in tab 1:
33. Cont. acct name
34. Acct.Relation.
35. Tolerance group
36. Clearing Cat
37. Payment Terms
38. Act determ.ID
39. Bill From___

Maintain in tab 2:
40. Company Code Gp
41. Standard CoCode

Managing Master Data Page 47 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Maintain in tab 3:
42. Grouping
43. Dunning Proc.

6) Create Customizing to Fill Table TFK_BUAG_REF

44. Go to IMG path:


Financial Accounting → Contract Accounts receivable and Payable → Integration → Customer
Relationship Management → Business Agreement → Determine Template for Contract Account
Replication
45. Now type in your reference contract account and link it to the contract account class created in step
5.

7) Define Correspondence Variant

46. Create a correspondence variant in IMG:


Service → Master Data → Contract Account → Define Parameter for Contract Account → Define
Correspondence Variant
47. Now create a correspondence variant

8) Define Shipping Control

48. Create a shipping control in IMG:


Service → Master Data → Contract Account → Define Parameter for Contract Account → Define
Shipping Control

Managing Master Data Page 48 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

49. Specify shipping types by detail:

9) Allocate General Parameters to New Contract Accounts

50. Allocate general parameters to new contract accounts in IMG:


Service → Master Data → Contract Account → Creation of Contract Account → Allocate General
parameters to New Contract Accounts
51. Maintain all fields

10) Maintain Terms of Payment in Table CRMV_PMNTTRMS

52. Maintain in SM30 the payment terms

11) Mapping of Payment Terms with FI-CA in Table TFK_MAP_ZAHLKOND

53. Maintain in SM30 the payment terms


54. Field Pmnt Terms (technical name PAYMENT_TERMS) is customer engagement side
55. Field Paym. Terms (technical name ZAHLKOND) is FI-CA side

12) Payment Relevant Parameters to New Contract Accounts

56. Allocate general parameters to new contract accounts in IMG:


Service → Master Data → Contract Account → Creation of Contract Account → Allocate Payment
relevant parameters to New Contract Accounts
57. Now maintain the fields

Managing Master Data Page 49 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

13) Define Payment Methods

58. Define payment methods in IMG:


Service → Master Data → Contract Account → Define Parameter for Contract Account → Define
Payment Methods
59. Maintain the fields

Technical Objects - Master Data Template


Master data templates and the master data generator are tools used in SAP IS-U to automatically create
master data. The utility services require to create new data for objects from the data model or change
existing data. You can accelerate this process by using a template application that allocates fixed values to
fields in a given object. For further information about master data template see also SAP Help under

*** Note: Base data tables are not being used for utilities technical master data in S/4HANA for Customer
Engagement. Therefore, compared to S/4HANA Utilities for Customer Engagement side-by-side, there is no
need for an initial download of utilities technical master data.

Creation of Technical Objects

Transaction EPRODCUST
Required templates: Standard delivered templates: Check-templates:
60. Connection-Object 63. CRMS4_IU_CON* 67. CRMS4_IU_CON_CHECK*
61. Premise 64. CRMS4_IU_PRM* 68. CRMS4_IU_PRM_CHECK*
62. POD 65. CRMS4_IU_POD* 69. CRMS4_IU_POD_CHECK*
a. Without division 66. CRMS4_IU_POD_INST
*can be used without additional configuration
b. Per used
division

Configuration Creation of POD with Division

Managing Master Data Page 50 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

When a POD must be created an installation will be automatically created with the POD. Therefor some fix
values will be assigned. You must create new templates for each division as a copy of CRMS4_IU_POD_INST.

For example, ZCRMS4_IU_POD_INST_E, ZCRMS4_IU_POD_INST_G, ZCRMS4_IU_POD_INST_W


70. Change template CRMS4_IU_POD_INST
71. Node Installation History:
a. Billing Class
b. Rate Category
c. Meter Reading Unit
72. Example:

MDT Mapping with Objects and Division

SAP Utilities → Customer Engagement → Technical Objects → Assign Master Data Template for Technical
Objects

Point of Delivery Time Reference


See SAP note 2994179
The Point of Delivery Time Reference was created as a link between POD and installation. This means that
historical allocations (allocation in the past) or future allocations (allocation in the future) can also be
displayed in the UI and in the model.
The display of PODs in the UI was also changed so that now only valid PODs are displayed, for example no
PODs which only have an allocation in the past or future. If PODs with historical assignment (to the
installation) or assignment in the past are to be displayed, this is done exclusively via the Point of Delivery
Time Reference and its relation to the POD.
Object Type Development Object
BOL Entity PointofDeliveryTimeRef
BL Name PointofDeliveryTimeRef
Key CRMS4S_IU_PODTR_KEY:
• INT_UI of POD
• ID of installation
• To-dates of installation allocation and Ext-UI-Allocation

Managing Master Data Page 51 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Attribute Structure CRMS4S_IU_PODTR_ATTR


CDS View CRMS4_IU_C_PODTR
Impl. Class CL_CRMS4_IU_BL_PODTR
Relationen • PointofDeliveryTimeRefIsuInstallationRel
(PointofDeliveryTimeRef -> IsuInstallation)
• IsuInstallationPointofDeliveryTimeRefRel (IsuInstallation ->
PointofDeliveryTimeRef)
• PointofDeliveryTimeRefPointOfDeliveryRel
(PointofDeliveryTimeRef -> PointOfDelivery)
• PODPointofDeliveryTimeRefRel (PointOfDelivery ->
PointofDeliveryTimeRef)
PointofDeliveryTimeRefPremiseRel (PointofDeliveryTimeRef ->
Premise)
• PremisePointofDeliveryTimeRefRel (Premise->
PointofDeliveryTimeRef)
• PointofDeliveryTimeRefUtiInstallationRel
(PointofDeliveryTimeRef -> UtilitiesInstallation) (Release
2020+)
• UtilitiesInstallationPODTimeRefRel (UtilitiesInstallation ->
PointofDeliveryTimeRef) (Release 2020+)

Display in the BOL tree:

INTERACTION RECORD
The interaction record is an overview of current contact with a customer and the customer’s history. It is used
for logging and postprocessing the interaction. How to manage the recorded information is described in the
following chapters.

Customizing Subject Profile


Interaction records are created automatically, but you can also create them manually by yourself in the
Interaction Record screen.
73. Among other things, reason, status and result of the interaction record can be maintained.
74. Subject profiles must be defined in customizing to assign reason and status/result.

Interaction Record Page 52 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

75. It is recommended to assign a subject profile for any status, for example status Open
76. SPRO path: Service → Basic Functions → Catalogs, Codes and Profiles → Assign Status Profile
and Subject Profile to Business Transaction Type

a. Column 1: Transaction type: code for IR


b. Column 2: Code for status

Creation of Subject Profile


SPRO path: Service → Basic Functions → Catalogs, Codes and Profiles → Define Subject Profiles
Example:

Interaction Record Page 53 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Code Groups and Code Group Profiles


Code groups and code group profiles can be edited in the following customizing:
77. SPRO path: Service → Basic Functions → Catalogs, Codes and Profiles → Define Code Group
Profiles
78. Example with one group:

79. Example with multiple groups:

Interaction Record Page 54 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

80. Example result: Dropdown in UI

Further information:
81. Activity Reason
82. Create Status Profile in SAP CRM

Define Item Types for Searches


83. To search for interaction records, customizing must be set in the transaction CRMC_IC_AUI_MAINCAT.
84. The main category for Interaction Record needs to be 0010.

Interaction Record Page 55 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Clarification Case
If a situation occurs, that needs to be clarified, a clarification case can be created in the system.
Clarification cases are displayed in the WebClient in the following screens:
85. Business Partner Overview

86. As details view in the Business Partner Overview

87. Standard tree of Business Partner Environment

88. In the interaction record screen

Interaction Record Page 56 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

For detailed information see Clarification Case in the Interaction Center.

Business Object Type/Category

SPRO path: Financial Accounting → Contract Accounts Receivable and Payable → Basic Functions →
Enhanced Message Management → Specifications for Customer-Defined Business Processes and
Messages → Define Customer Business Processes for Message Management

Parameters for Clarification Case Creation

Interaction Record Page 57 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

SPRO path: SAP Utilities → Customer Engagement → Clarification Cases → Maintain Parameters for
Clarification Case Creation

Integration of Business Partner Contact


Each time a BP contact is created, an interaction record is automatically created by the integration and is
therefore visible in the UI (see Customizing).
Migration is also possible. Therefore, the customer can use the module CRM_ADDON_BCONT_TO_IR and write
customer coding and also a report.
Loop BCONT (table where it is stored) and insert it into CRM_ADDON_BCONT_TO_IR.
The individual information is then inserted into the module CRM_ADDON_BCONT_TO_IR and an interaction
record is created from it. To back up correct storage, a "commit work" is necessary.

Approach
Reuse some of codes and infrastructure from the CRM Replication of Customer Contact and CRM Activities
(without the middleware and BDoc)
The reused codes are mainly used for mapping between Customer Contact and CM Interaction Record (IR)

Interaction Record Page 58 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Customizing
Activate Replication: Event Customizing table: TBE31
Event: IBSSIBCO
Function: CRM_ADDON_BCONT_TO_IR

Contact Class to CRM Activities Mapping: table BPCT_CRM_CLASS

The data displayed in the screenshot above, needs to be referenced in table CRMRFCPAR.
Note: The CRMRFCPAR table must be maintained via transaction SE16N as of release 2021!

Important Function Module and Package


FM: CRM_ADDON_BCONT_TO_IR
89. The main function to replicate the Customer Contact to IR

Interaction Record Page 59 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

90. Triggered by the Business Transaction Event IBSSIBCO (Event Delta Download Business Partner
Contacts)
Package: IBSSI_CRM_BCONT (Download Contact as Interaction Record)

Linkage Table between Contract and IR


Linkage Table: BPCT_CRM_GUIDS

METER READING
Meter readings are stored in the system as meter reading results. Sometimes it is required to make changes
to a meter reading result. To do so, you can define reasons, that allow to change a meter reading result.

Meter Reading Correction


This is recommended to change meter reading documents
91. Meter reading reason for changeability

Meter Reading Page 60 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

92. SPRO path: SAP Utilities → Customer Service → CRM Integration → Meter Reading Entry → Define
Parameters for Changeability of Meter Reading Results

Meter Reading History Issue


Runtime framework profile must be maintained, otherwise BSP errors will occur. For example, when leaving
meter reading screen.
SPRO path: Service → UI Framework → UI Framework Definition → Maintain Runtime Framework Profile

You have to setup profile: DEFAULT_IC

FAST MOVE IN/OUT


It is recommended to use move-on/out in a regulated market and as a distribution company.
Interaction Center agents can use the function of fast move in/out to create an accelerated registration for
energy supply for a customer in the form of a fast move-in or a fast move-out and create or terminate (move-
out with subsequent move-in) energy supply for a customer, a premise or an occupied premise.

Fast Move In/Out Page 61 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Customizing

SPRO path: SAP Utilities → Customer Service → Process Execution → Move-In/Out


Customizing for contract templates, which are used for fast move in/out can be found in the view under:
SAP Utilities → Customer Service → Process Execution → Move-In/Out → Accelerated Entry → Define
Permissible Contract Templates and Define Preentry Variants
The templates can be edited and created in transaction EPRODCUST SAP Utilities → Customer Service →
Master Data Generator → Define Master Data Templates (see also: Technical Objects - Master Data
Template).
93. Recommendation: copy master data templates delivered by SAP, and adjust the copied master data
templates to your needs afterwards. SAP delivers three templates:
a. EC70_MOVEIN (master data template category: CRMNEWCONTRACT)
Used for creating a move-in + change rate/installation data (if needed)
b. EC70_BPARTNER_MI (master data template category: BPARTNER)
Used for creating/changing business partner and contract account during move-in
c. EC70_BPARTNER_MO (master data template category: BPARTNER)
Used for creating/changing business partner and contract account during move-out
94. Test your master data template (MDT)
95. Assign a contract template to your MDT
96. Set the status of your MDT to ‚E

Customizing to define parking variants: SAP Utilities → Customer Service → Process Execution → Move-
In/Out → Accelerated entry
IMG activity Define Parking Variants (view cluster VC_TECAMIOVAR): assign your master data templates and
contract templates to your parking variant.

Fast Move In/Out Page 62 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

IMG activity Allocate Parking Variants (table TECAMIOVARU): assign you parking variant to one or multiple
user group(s).

***Note: When the IS-U Contract Integration is configurated (see Integration of IS-U Contracts into Utilities
Sales Contract Management), a utilities sales contract will be automatically created when the function of Fast
Move In/Out is used in the WebClient.

Further Information

97. Cookbook IS-U Master Data Templates


98. Cookbook Error Handling in IS-U for the Replication of Contracts, Technical Objects and Parked
Documents
99. Stay Current Learning Material for SAP S/4HANA for Utilities 1709

BOL TREE
A BOL (Business Object Layer) tree is a hierarchy that is used to display and handle objects. It is very
generic and can be used by many views.
SAP Utilities → Customer Engagement → Settings for Object Workbench → Define Object Hierarchy and
Object Attributes

Configuration: Presentation of Nodes and Columns


In the BOL tree Customizing, you define and maintain the tree structures (BOL trees) that are displayed on
the UI.
You can define and maintain the presentation of the nodes and the associated columns in the BOL tree.
You can set the view of a tree structure to display different data about the objects.
You use presentation IDs to define the presentations of the various nodes in a BOL tree. The presentation ID
uniquely identifies a presentation record within the tree hierarchy.
You use presentation data sets with associated column IDs to define the presentation of the columns for
the various nodes in a BOL tree. A presentation record determines which attributes and symbols are
subsequently displayed in the tree hierarchy. You can also define which attributes should appear as links
and whether attributes can be edited in the edit mode.

Profiles and Profile Groups


The BOL tree is based on a customizable profile. This profile describes the structure and layout of the tree.

BOL Tree Page 63 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

You define and configure the profiles of the trees. These contain the connections between the objects in the
tree hierarchy and indicate the attributes to be displayed.
You can use one-click actions that start specific processes from a tree. In the Customizing activity in the view
Toolbar Buttons, you can define and configure the toolbar buttons, which you can use to start one-click
actions.
You can use profile groups to combine various tree profiles. You can then assign views to these groups. If
you for example assign the view Identification to a profile group, you can select the tree profiles that have
previously been grouped in this profile group.

Customizing
SAP Utilities → Customer Engagement → Settings for Object Workbench → Define Object Hierarchy and
Object Attributes

100. Select a presentation ID and navigate to tree node Presentation of Columns


101. You can customize all three columns. In this example column 1 is used:

Legend:
(1) Icon value should be the name of the SAPUI5 icon. Like this: „sap-icon://customer”.
(2) Value pathes A, B and C are supporting method calls.
“”//FULLNAME is referenced data of object “BuilHeader”.
You can calculate attributes with BuildIn methods.
(3) Alternative Text is a text value which will be used when the column value will be empty.
(4) Column Format is used to specify concatenation of value pathes A, B and C. If Column Format is empty, &1 &2 &3 will be used.
(5) Used for Column Tooltips effected by mouse-over
(6) Icon Calculation with methods

Changing Object Views


To change an object view, for example in the Premise Overview, you can do the following:
102. Open Customizing under SAP Utilities → Customer Engagement → Settings for the Object
Workbench → Define Object Workbench Profiles.
103. Chose profile name, e.g S4C-UT-IUICMD_PRM_OVW.
104. Chose Assign Object Views.
105. Exchange the view name (e.g. S4C-UT Premise), if you want to replace it with another view.

BOL Tree Customizing Examples

Example A: Fix Text Formatting

Used presentation of nodes: S4CUTMD_BP

BOL Tree Page 64 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

106. Column ID: 1


107. Value path A: sap-icon://customer^Mr._Max_Test Mr. Max
Test^12345_Berlin|Employee^Developer sap-icon://source-code^ABAP

Result:

Tooltip popups:

Mouse-over on customer icon Mouse-over on “Employee”

Mouse-over on “Mr. Max Test”: Mouse-over on ABAP icon

Example B: Dynamic Text Formatting

Used presentation of nodes: S4CUTMD_BP


108. Column ID: 1
109. Value A: //FULLNAME
110. Value B: //LASTNAME
111. Value C:
112. Column Format: icon(sap-icon://customer;&1) tip(&1;&2)
Result with Tooltip:

BOL Tree Page 65 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Example C: Complex Dynamic Text Formatting

Please note: to use syntax like disrobed in Value B you need to implement SAP note: 2739920 - S4CRM IU
Wrong value interpretation in BOL Tree for built-in methods.
113. Used Presentation of nodes: S4CUTMD_BP
114. Column ID: 1
115. Value A: // BP_NUMBER
116. Value B: ||(//LASTNAME; ;//BP_NUMBER)
117. Column Format: icon(sap-icon://customer;&1) tip(&1;&2) | tip(//FULLNAME;//BIRTHDATE)
icon(sap-icon://source-code;ABAP)
Result:

Tooltip popups:
Mouse-over in customer icon
Mouse over on "1024574"

Mouse-over on ABAP icon


Mouse-over on “Mr. B. A. Max Mustermann”:

Sorting
In Customizing, any number of sorting can be stored for a tree profile. The stored sorts are displayed to the
user in the corresponding tree view via a selection menu. There, the user can switch between the different
sorting or deactivate the sort functionality in general. If a sort is selected, it determines how the entries are
sorted within the individual hierarchy levels. The selection menu is automatically displayed as soon as at
least one sort is maintained for the tree profile.

Selection menu within a tree view

BOL Tree Page 66 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Symbolism in the selection menu

Symbol Meaning
Default sorting switched on
Default sorting switched off
Sorting switched on
Sorting switched off

Disable all sorting (active)


Switch off all sorts (inactive)

Customizing

Customizing is integrated in the view cluster CRMS4_IU_IC_BOLTREE. To be found in the IMG under: SAP
Utilities → Customer Engagement → Settings for Object Workbench → Define Object Hierarchy and Object
Attributes.
Tables:
Table Package Description
RMS4C_IU_TPSRT CRMS4_IU_IC_TOOLS Sorting for tree profile
CRMS4C_IU_TPSRTT CRMS4_IU_IC_TOOLS Sorting for tree profile (texts))
CRMS4C_IU_THSRT CRMS4_IU_IC_TOOLS Parameter for sorting on tree hierarchy
level
Maintenance Views:
Table Package Description
RMS4V_IU_TPSRT CRMS4_IU_IC_TOOLS Sorting for tree profile incl. text
CRMS4V_IU_THSRT CRMS4_IU_IC_TOOLS Parameter for sorting on tree hierarchy
level
Sorting:
Name Description Meaning Example/Note
ID Sort Order Name Technical name of the sorting 'ZSRT_SPARTE'
ACTIVE Active Indicator that the sorting is basically 'SPACE'/'X'
available. If this indicator is not set,
the sorting is not transferred to the
selection menu. It is no longer
available at runtime.
SORT_ORDER Sort Order Determines the order of the entries '10'
in the selection menu
DESCRIPTION Technical Description Technical description of the sorting. 'Sorting by Division'
Not displayed and is used
exclusively for the internal/technical
description of the sorting.
TITLE Title Title/name of the sorting in the Devision ascending'
selection menu
TOOLTIP Tooltip Tooltip der Sortierung im 'Entries in the list are sorted by
Auswahlmenü category in ascending order'
Sorting Parameter:
Name Description Meaning Example/Note
ID Sort Order Name Technical name of the sorting 'ZSRT_SPARTE'
SEQUENCE Sequence Order. The value specified here is '10'
only for the uniqueness of the table
key. When <ATTR_NAME> is used
multiple times.
ATTR_NAME Attribute Name Name of the attribute/field of the 'SPARTE'
BOL entity whose values are to be
filtered.

BOL Tree Page 67 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

DESCENDING Descending Indicator to be sorted in descending 'SPACE'/'X'


order
ASTEXT Sort as Text Indicator that values are to be 'SPACE'/'X'
sorted interpreted as text

Set default sorting of a tree view

At least one sort is defined for a tree profile. In the tree profile, one of the stored sorts can now be defined
as default sorting. For this purpose, the name of the corresponding sorting is entered in the "Default
sorting" field of the tree profile. The sorting stored in this way is then used as the priority sorting of the tree
view.

Connection Tree Service

Class/Method Enhancement Spot / Enhancement Description


Option Option
CL_CRM_IU_IC_BOL_ CRM_IU_IL_S4OP_ CRMS4_IU_IL_BOL_ Integration into the loading of
TREE_SERVICE BOL_TREE_SRV TREE_SRV Customizing. Here,
LOAD_PROFILE_CUST CRM_IU_IL_S4OP_ customizing for the sorts is
BOL_TREE_SRV_03 loaded and stored once.
CL_CRM_IU_IC_BOL_ CRM_IU_IL_S4OP_BOL_ CRMS4_IU_IL_BOL_ Connection of the actual
TREE_SERVICE TREE_SRV TREE_SRV sorting at the level of the
GET_ROOT_NODES CRM_IU_IL_S4OP_BOL_ respective subobjects.
TREE_SRV_02
CL_CRM_IU_IC_BOL_ CRM_IU_IL_S4OP_BOL_ CRMS4_IU_IL_BOL_ Connection of the actual
TREE_SERVICE TREE_SRV TREE_SRV sorting at the level of the
GET_CHILD_NODES CRM_IU_IL_S4OP_BOL_ respective subobjects.
TREE_SRV_01
CL_CRM_IU_IC_BOL_ CRM_IU_IL_S4OP_BOL_ CRMS4_IU_IL_BOL_ Integration of the selection
TREE_IMPL TREE TREE menu
GET_ACTIONS CRM_IU_IL_S4OP_BOL_
TREE_02
CL_CRM_IU_IC_BOL_ CRM_IU_IL_S4OP_BOL_ CRMS4_IU_IL_BOL_ Connection to the event
TREE_IMPL TREE TREE handler / reaction to events
DO_HANDLE_EVENT CRM_IU_IL_S4OP_BOL_ in the selection menu
TREE_04

As a rule, only a forwarding to the actual implementation class CL_CRMS4_IU_BOL_TREE_SRV_ENH takes


place in the respective connection points. All developments related to sorting functionality are implemented
in this class.

Definition of sorts

Example using a 3-level tree hierarchy.

Tree hierarchy of technical objects

Hierarchy Hierarchy ID Object


1 CON ConnectionObject
2 PRM Premise

BOL Tree Page 68 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

3 POD PointOfDelivery

Two new sorts are created.

118. Sorting ZSORT_01 sorts the connection objects from the hierarchy level CON, first in ascending
order according to the content in the field/attribute STREET and then in ascending order according
to the content in the field/attribute HOUSE_NUM1. The premises are also sorted at hierarchy level
"PRM", first in ascending order according to the contents of the field/attribute VSTELLE and then in
descending order according to the contents of the field/attribute VS_ROOMNUMBER.
119. Sorting ZSORT_02 sorts the points of delivery from hierarchy level POD in ascending order
according to the contents in field/attributes PD_SPARTE.

Sorts

Name of Description Order Active Title Tooltip


Sort
ZSORT_01 Technical description Sorting 1 10 X Sorting 1 Tooltip Sorting 1
ZSORT_02 Technical description Sorting 2 20 X Sorting 2 Tooltip Sorting 1
Sort Parameters

Name of Hierarchy ID Order Attribute/Field Sort in Descending Order


Sort
ZSORT_01 CON 10 STREET
20 STREET
PRM 10 VSTELLE
20 VS_ROOMNUMBER X
ZSORT_02 POD 10 PD_SPARTE

Customizing Tree Profiles

Definition Sorts "ZSORT_01" and "ZSORT_02

Customizing tree hierarchy with nodes for connection object, premise, point of delivery

BOL Tree Page 69 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Parameters for sorting "ZSORT_01" at hierarchy level "CON

Parameter for sorting "ZSORT_01" on hierarchy level "PRM"

Parameter for sorting "ZSORT_02" on hierarchy level "POD"

Set default sort order of a tree view

At least one sort order is defined for a tree profile. In the tree profile, you can now define one of the stored
sorts as the default sort. To do this, the name of the corresponding sort is entered in the "Default sort" field
of the tree profile. The sort order stored in this way is then used as the priority sort order of the tree view.

Set default sort order for tree profile

BOL Tree Page 70 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Define sorts

You can filter and highlight specific objects in the search results list in the BOL tree. You can create and
edit various sort orders that you want to use in the trees.
You define the sort functions and how the results for a search in the BOL tree are displayed. The user can
select the predefined sort orders from a drop-down menu in the tree or deactivate the sorting function. It is
also possible to specify a sort order to be selected as a default.

To define sorts or change settings use transaction code S_EMO_05000039 or make the corresponding
Customizing settings under:
SAP Utilities → Customer Engagement → Settings for Object Workbench → Define Object Hierarchy and
Object Attributes

120. Sort Name


In this field you enter a name for a sorting, which is used as the basis for displaying the results for a
search in the tree. The user can select the predefined sort orders from a drop-down menu in the tree or
deactivate the sorting function.
121. Active
The Active flag defines whether the sort is active. If the flag is selected, the sort order can be selected
and used when searching in the tree.
122. Order
In this field you can specify the sequence for the sort order. A number can be used to specify where the
sort order should be displayed in the drop-down menu in the tree.
123. Tooltip
In this field you can enter a text that appears when the cursor is positioned over the sort in the
dropdown menu.

BOL Tree Page 71 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

In the view Define Sort Parameters you can define the parameters of the sort orders that were created
under Define Sorts:

124. Sort Name


In this field, enter the name of the sort order that you have created in the "Define Sorting" view and for
which you want to define parameters.
125. Sequence
The number in the "Sequence" field indicates in which order the attributes are to be sorted.
126. Example:
Assigning the attributes "first name" and "last name" to a sort order allows you to specify in the
"Sequence" field that sorting should be done first by the first name (enter “1”) and then by the last name
(enter “2”).
127. Descending
The indicator defines whether the results should be sorted in ascending or descending order. If the flag
is selected, the objects in the BOL tree are sorted in descending order.
128. As Text
You can specify whether the sorting of objects in the BOL tree should be based on text.
If the flag is selected, the labels are sorted according to text characters as shown here. This is useful for
names, for example.
If the flag is not selected, the sorting takes place at a technical level. This is useful for data, for example.
129.

Filtering
In Customizing, any number of filters can be stored for a tree profile. The stored filters are displayed to the
user in the corresponding tree view via a selection menu. There he or she can switch between the different
filters or deactivate the filter functionality in general. If a filter is selected, it determines how the entries
within the individual hierarchy levels are filtered. The selection menu is automatically displayed as soon as
at least one filter is maintained for the tree profile.

Selection menu within a tree view

Two new filters are maintained.

BOL Tree Page 72 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

130. Filter ZFILT_01 filters the connection objects from the hierarchy level CON. Only connection objects
whose attribute HOUSE_NUM1 has a value <= 5 and attribute CITY1 the value = hall remain in the
view. Furthermore, the premises are filtered at the hierarchy level PRM, here the premises remain
in the view whose attribute VSTELLE begins with the search pattern 45*.
131. Filter ZFILT_02 filters the points of delivery from hierarchy level POD. All points of delivery whose
attribute PD_SPARTE has the value X are excluded.

Filter

Filter Description Order Active Title Tooltip


Name
ZFILT_01 Technical description Filter 1 10 X Filter 1 Tooltip Filter 1
ZFILT_02 Technical description Filter 2 20 X Filter 2 Tooltip Filter 1
Parameter of Filter

Filter Hierarchy Order Active/Field Inclusion/Exclusion Selection Minimum


Name ID Indicator Option Value
ZFILT_01 CON 10 CITY I EQ Halle
20 HOUSE_NUM1 I LE 5
PRM 10 VSTELLE I CP 45*
ZFILT_02 POD 10 PD_SPARTE E EQ X

The possible values for the fields Include/exclude indicator and Selection option correspond to the usual
specifications for selection parameters in SAP.

Customizing Tree Profiles

Definition of 'ZFILT_01' and 'ZFILT_02' filters

Customizing tree hierarchy with nodes for connection object, premise, point of delivery

BOL Tree Page 73 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Parameters for filtering "ZFILT_01" at hierarchy level "CON

Parameter for filtering "ZFILT_01" at hierarchy level "PRM

Parameters for filtering "ZFILT_02" at hierarchy level "POD

Set default filters of a tree view

At least one filter is maintained for a tree profile. In the tree profile, one of the stored filters can be defined
as the default filter. To do this, the name of the corresponding filter is entered in the Default filter field of
the tree profile. The filter stored in this way is then used as the priority filter of the tree view.

Set default filter for tree profile

BOL Tree Page 74 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Define filters

You can filter and highlight specific objects in the search results list in the BOL tree. You can create and
edit various filters that you want to use in the trees.
You define the filters that you can use to search for objects in the trees. Using filters influences the
behavior of the result list. The user can select the predefined filters from a drop-down menu in the tree or
deactivate the filter function.
It is also possible to specify a filter to be selected as a default.

To define filters or change settings use transaction code S_EMO_05000039 or make the corresponding
Customizing settings under:
SAP Utilities → Customer Engagement → Settings for Object Workbench → Define Object Hierarchy and
Object Attributes

132. Filter Name


In this field you enter a name for a filter, which you can use to search for objects in the trees. Using
filters affects the behavior of the result list. The user can select the predefined filters from a drop-
down menu in the tree or deactivate the filter function.
133. Active
The Active flag defines whether the filter is active. If the flag is selected, the filter can be selected and
used when searching in the tree.
134. Order

BOL Tree Page 75 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

In this field you can specify the order of the filters. A number can be used to specify where the filter
should be displayed in the drop-down menu in the tree.
135. Tooltip
In this field you can enter a text that appears when the cursor is positioned over the filter in the
dropdown menu.

In the view Define Filter Parameters you can define the parameters of the filters that were created under
Define Filters:

136. Filter Name


In this field, enter the name of the filter that you created in the "Define filter" view and for which you want
to define parameters.
137. Attribute Name
Use the attribute name to specify which attributes should be displayed in which column of the BOL tree.
138. Sequence
If there are to be multiple conditions for a filter and an attribute name, they must be numbered in
the Sequence field.

Example:
139. In the case of a filter "All valid states" with the attribute name "current status", the following 5
values "Open, Processing, Released, Canceled, Error" are to apply. To do so, 5 different entries
with the filter name "All valid states" and the attribute name "current status" are created in the table
"Define Filter Parameters". Each of these entries is assigned the corresponding value and given a
unique number in the "Sequence" field.
140. Incl/Excl
141. Inclusion/exclusion criterion SIGN for range tables:
142. You can use the input values "I" and "E" in this field. "I" (inclusive) means: the single value or
range you have entered is included in the selection.
143. "E" (exclusive) means only the single value or range you have entered is excluded from the
selection.
144. The inclusive and exclusive criteria work together with the fields LOW (lower limit) and HIGH
(upper limit) and with the operators in the field OPTION.

BOL Tree Page 76 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

a. Combination of "I" and "E": If you enter several values (ranges) as the selection criterion
and use both "I" and "E", all selections with "I" are found first, followed by those with "E".
145. Option
Selection operator OPTION for range tables
These operators are used to specify whether the values entered in this field are to be used as single
values, area or search strings to limit the data selected. The operators are used together with the fields
LOW (lower limit) and HIGH (upper limit) as well as the inclusion/ exclusion criteria SIGN.
The operators provided are:
a. EQ: Equal
b. NE: Not Equal
c. BT: Between
d. NB: Not Between
e. LT: Less Than
f. LE: Less Equal
g. GT: Greater Than
h. GE: Greater Equal
i. CP: Contains Pattern
j. NP: Not contain Pattern

BOL Tree Page 77 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Object Finding

In the utilities environment, the results of a search (query) are often displayed as a so-called data
environment in a tree view. The tree hierarchy of such a tree view always requires a defined main node
object (root object). However, it is sometimes the case that the result object delivered by the search (query)
does not correspond to the required main node object in the tree hierarchy. The implementation of the tree
view must therefore first take care to determine the required main node objects using the delivered result
objects. Or a search object (query) must be implemented whose result object corresponds to the required
main node object. With the object determination profile you define the path/link from the result object to the
root object and between the object hierarchies on node level.

Example:

146. In the identification view, the user can search for technical objects using various search objects,
for example, via the premise or point of delivery. The search object for premise returns the premise
found as a result object, and the search object for the point of delivery returns the point of delivery
found. However, the tree view for the technical objects is a 3-level hierarchy, consisting of
connection object, premise and point of delivery. The main node object of the hierarchy is the
connection object.
147. In the Utilities sales contract overview, the search object returns "Utilities Sales Contract Items"
as a result object. However, the hierarchy in the tree view requires "Utilities Sales Contract" as the
main node object.

With the help of object determination, the relationships of the individual objects to each other can be
described by means of query objects (queries), relations or BPath statements. In this way it is clarified how
another object can be determined on the basis of an existing object. The examples in the following sections
clarify the possibilities of the object determination somewhat more exactly.

Create object determination profile

Example using the following object determination settings:

Source Object Target Object Method of Detection


ConnectionObject Premise Relation
PointOfDelivery ConnectionObject BPath
Premise PointOfDelivery Query

Object determination profile (detail view)

Object determination profile (list view)

BOL Tree Page 78 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Field Description / Meaning


Object Search Profile Unique name for object determination profile
Relation Finding Switch Relation finding on or off
Description Technical description of the object identification profile

Relation finding:

In this example, only the following determination options were maintained in Customizing for the object
determination profile.

148. Connection object for premise


149. Premise for the point of delivery
150. Metering point for the connection object

Inactive Objects are searched for exclusively on the basis of maintained


object determination entries. This means that an object
determination with a connection object as the source object and a
point of delivery as the target object would have no result.
Active Object determination attempts to establish a link between the
individual objects using the maintained object determination entries.
This means that object determination with a connection object as
the source object and a point of delivery as the target object would
be successful. Object determination would first determine the
premise from the connection object and then the point of delivery
from the premise.

Object determination (list view)

Object determination profile (detail view)

BOL Tree Page 79 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Field Description / Meaning Values / Example


Source Object Name of the source/output BOL entity ConnectionObject
Target Object Name of the target BOL entity Premise
Type of Finding Method of finding ' ' = Search via BOL relation
B = Search by BPath Statement
Q = Search by BOL query
Relation Name Name of the relation of a BOL entity PremiseRel
Query Object Name of the BOL-Query object PointOfDeliveryQuery
BPath Statement BPath Statement PODPremiseRel/PremiseConnObjRel/*$

The values for "Minimum value" and "Maximum value" can be constant values or also calculations. When
calculating values, the context results from the higher-level hierarchy or from the path to the current object
if "Automatic relation determination" is active.
See also Value Calculation for BOL Trees, One Click Actions and Summary Texts.
Parameter delimitation is performed for query, relation and BPath. In case of query immediately as query
parameter otherwise the filtering is done after the objects are determined. With a high number of objects it
is therefore advisable to use a query.

Parameters for object determination (list view)

Parameters for object determination (detail view)

Field Description / Meaning


Source Object Name of the source/output BOL entity
Target Object Name of the target BOL entity
Sequence Consecutive number
Attribute Name Attribute/field name or parameter name from query object
Inclusion/Exclusion Indicator Usual specifications for selection parameters in SAP
Selection Option Usual specifications for selection parameters in SAP
Minimum Value Usual specifications for selection parameters in SAP
Maximum Value Usual specifications for selection parameters in SAP

BOL Tree Page 80 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Assign object finding profile to a tree profile

An object determination profile can be assigned in the tree profile. As soon as an object determination
profile is assigned to the construction profile, the tree component automatically attempts to determine the
main node objects required according to the tree hierarchy, using the objects transferred to it.

Assign object finding profile to a hierarchy node in the tree profile

At a hierarchy node, the object profile of the tree profile can be overridden to perform a different way of
finding the objects of this hierarchy level.

Customizing tree profile

Assign object finding profile to hierarchy node in tree profile

BOL Tree Page 81 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

At a hierarchy node, the object profile of the tree profile can be overridden in order to execute another way
to find the objects of this hierarchy level.

Selection Mode

Customizing

Customizing is integrated into the view cluster CRMS4_IU_IC_BOLTREE. In the IMG you can find under: SAP
Utilities → Customer Engagement → Settings for Object Workbench → Define Object Hierarchy and Object
Attributes.

Type SELECTION_MODE

Value Description Guideline Meaning


SPACE Application X Compatibility mode. Application decides on the selection mode. Tree
defines behavior component switches the selection mode as it was defined when the
component was integrated by overwriting the method
WD_USAGE_INITIALIZE in the component controller of the integrating
UI component.
S Single selection Single set selection. Only one sentence/entry can be selected in the
tree at a time.
M Multiple selection Multiple selection. Several sentences/entries can be selected in the
tree.
N None selection No selection. No records/entries can be selected in the tree.
Type MULTISELECT_MODE

Value Description Guideline Meaning


SPACE Application X Compatibility mode. Application decides on the selection mode. Tree
defines behavior component switches the selection mode as it was defined when the
component was integrated by overwriting the method
WD_USAGE_INITIALIZE in the component controller of the integrating
UI component.

BOL Tree Page 82 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

S Standard multiple Normal selection mode in which the individual records/entries must be
selection manually selected by the user.
A Node selects all Corresponds to the conventional selection mode for
subnodes MULTISELECT_MODE = 'A'. In this selection mode, when a node is
selected, its subnodes are automatically selected. Furthermore, if the
selection of all subnodes of a node has been canceled, the selection
for this node is automatically canceled with.
Usually, the selection mode was defined when the tree component was integrated by overwriting the
method WD_USAGE_INITIALIZE in the component controller of the integrating UI component. The selection
mode defined in this way applied over the entire runtime of the tree component, regardless of the selected
tree profile.
Integration of the tree component

The requirement was to control the selection mode depending on the selected tree profile, the tree
component was extended accordingly. Due to this enhancement, it is now possible to maintain the desired
selection mode in Customizing for the tree profile. Depending on the selected tree profile and the selection
mode maintained in it, the tree component switches the selection mode.

Technical Details

Table Maintenance View Description


CRM_ISUTREE_PROF CRMS4V_TREE_PROF Customizing for CRM BOL Tree: Maintain Profiles

Extension of the "CL_CRM_IU_IC_BOL_TREE_IMPL" implementation class

New method PREPARE_SELECTION_MODE: Method implements the initialization of the selection mode.
Through its introduction, in derivatives of the CL_CRM_IU_IC_BOL_TREE_IMPL class, there is the possibility to
redefine and thus intervene in the initialization of the selection mode.

BOL Tree Page 83 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

The original initialization of the selection mode in method ON_AFTER_ACTIVATED of class


CL_CRM_IU_IC_BOL_TREE_IMPL was replaced by calling the new method.

New method "GET_MULTISELECT"

By introduction of this method in derivations of the class CL_CRM_IU_IC_BOL_TREE_IMPL the possibility exists
for the redefinition and thus for the intervention with the determination of the selection mode. All direct
queries/uses of the instance attribute TREE_PROPERTIES-MULTISELECT of the class
CL_CRM_IU_IC_BOL_TREE_IMPL were changed to a call of the method GET_MULTISELECT.

New method "GET_MULTISELECT_MODE"

By introduction of this method in derivations of the class CL_CRM_IU_IC_BOL_TREE_IMPL the possibility exists
for the redefinition and thus for the intervention with the determination of the multi-selection mode. All direct
queries/uses of the instance attribute TREE_PROPERTIES-MULTISELECT_MODE of the class
CL_CRM_IU_IC_BOL_TREE_IMPL were changed to a call of the method GET_MULTISELECT_MODE.

Extension of the implementation class "CL_IUICTREE_TREE_IMPL"

The functionality of the present development was made via extensions in the implementation class
CL_IUICTREE_TREE_IMPL of the delegated tree component (see Extent BOL Tree).
Redefinition method "GET_MULTISELECT": Override when determining the selection mode. This is now
supplied based on the currently selected tree profile.

BOL Tree Page 84 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Redefinition method "GET_MULTISELECT_MODE": Override when determining the multi-selection


mode. This is now supplied based on the currently selected tree profile.

Redefinition method EH_ONPROFGRP_SELECTED: Override of the event handling when a new tree
profile is selected. Here the switching of the selection mode takes place as soon as another tree profile is
selected.

BUSINESS LAYER FOR BOL/GENIL


BL Layer represents a business layer with model and logic. Existing objects are referenced. Thus, no
complex business logic is implemented here, but only a view of an already existing business logic and
model is depicted. The background of this layer is the coupling of the BOL/GenIL layer, known from the
CRM environment, and objects from the utilities environment, which are usually mapped with various
function modules.

Business Layer for BOL/GenIL Page 85 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

ser nter a e

Forms Action Profile BOL Tree CRM UI

B en

use
BOL GenIL

use

B a er

use
BL CDS Auth BL Customizing BL Object BL CDS View

select

CDS View/Table

The central element in the BL Layer is the BL Object. It corresponds in the BOL to the types:
Assignment of BL Object to BOL Object types

A Root Object

B Access Object

C Dependent Object

E Search Result Object

F View Object

The following sub objects are assigned to the BL Object:


Sub objects to the BL Object

Query In BOL: Search Object (D), Dynamic Search Object (G) BQ, BQC, BQPC

Attribute Attribute / Behavior of attributes BA

Method callable method on this object (BOL) BM

Relation Relation from this object to other objects (BOL) BR, BRQ, BRK, BRR

Foreign Key Foreign key relationship and testing BF, BFK

Business Layer for BOL/GenIL Page 86 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Customizing
BL Objects can be defined or changed via Customizing. The following Customizing activities are available
for this purpose.

Transaction IMG-Path Description

S_EMO_05000099 SAP Utilities->Customer Client independent Customizing to BL


Engagement->General Objects. Delivered Customizing for BL
Functions->Define Utilities Objects. New customer-specific objects can
Business Layer Objects be created in the Y/Z namespace.

S_EMO_05000149 SAP Utilities-> Customer Client-specific Customizing to override


Engagement->General properties of delivered BL Objects
Functions->Override the according to customer requirements.
Definition of the Utilities Business Furthermore, new customer-specific BL
Layer Objects Objects can be defined.

CRMT_OB KIND

A Root Object CONVERTION_FUNCTION


MODIFICATION_MODE
B Access Object
C Dependent Object U Upper Case
I Insert
D Search Object L Low er Case
E Edit
E Search Result Object 0 Alpha
M Mandatory
F View Object D Date to Timestamp
G Dynamic Search Object
Abstract Modeling Object

ASSIGNMENT_OPERATION
RELATION_T PE
E Equal PROCURER_KIND
uery NE Not Equal
P B Path GT Greater Then SPACE Select
O Object LT Low er Then M Method
V View GE Greater or Equal
LE Low er or Equal

CRMS4C_IU_B C
CRMS4C_IU_BOT CRMS4C_IU_BEM
CRMS4C_IU_BM
CRMS4C_IU_BOP
UER _NAME CRMT_E T_OB _NAME
BLOB ECT_NAME CHAR30 GENIL_OB ECT_NAME CRMT_E T_OB _NAME
ATTRIBUTE_NAME NAME_KOMP BLOB ECT_NAME CHAR30
BLOB ECT_NAME CHAR30 SPRAS SPRAS GENIL_METHOD_NAME CRMT_OB _METHOD_NAME
MATCH_NAME NAME_KOMP METHOD_NAME CRMT_OB _METHOD_NAME
DEVCLASS DEVCLASS SINGULAR_TE T TE T200 HANDLER_CLASSNAME SEOCLSNAME
FUNCTION CONVERTION_FUNCTION BL_METHOD_NAME CHAR30
PLURAL_TE T TE T200 HANDLER_METHODNAME CHAR30
LENGTH I BusinessLayerObjectPackage()
BusinessLayerObjectMethod()
BusinessLayerObjectText() BusinessLayerExternalMethod()
ueryConvertion()

CRMS4C_IU_BO CRMS4C_IU_BA
CRMS4C_IU_B
CRMS4C_IU_BOPC
CRMS4C_IU_BOC CRMS4C_IU_BF
BLOB ECT_NAME CHAR30 BLOB ECT_NAME CHAR30
UER _NAME CRMT_E T_OB _NAME
BLOB ECT_NAME CHAR30 PARENT_BLOB ECT_NAME CHAR30 ATTRIBUTE_NAME NAME_KOMP
BLOB ECT_NAME CHAR30 BLOB ECT_NAME CHAR30 BLOB ECT_NAME CHAR30
SE UENCE I KIND CRMT_OB KIND TECHNICAL ABAP_BOOLEAN
VIEW_NAME NAME_KOMP, ATTRIBUTE_NAME NAME_KOMP FOREIGN_KE NAME_KOMP
ACTIVE ABAP_BOOLEAN GENIL_COMPONENT_NAME CRMT_COMPONENT_NAME DISPLA _HIDDEN ABAP_BOOLEAN
DO_NOT_CACHE ABAP_BOOLEAN, MATCH_NAME NAME_KOMP UER _NAME CRMT_E T_OB _NAME,
KIND PROCURER_KIND GENIL_OB ECT_NAME CRMT_E T_OB _NAME EDIT_HIDDEN ABAP_BOOLEAN
IS_FREE_TE T_SEARCH ABAP_BOOLEAN, FUNCTION CONVERTION_FUNCTION FOREIGN_BLOB ECT CHAR30,
VIEW_NAME NAME_KOMP HANDLER_CLASSNAME SEOCLSNAME INSERT_HIDDEN ABAP_BOOLEAN
ONL _KE _SELECTED ABAP_BOOLEAN, LENGTH I BL_SAVE ABAP_BOOLEAN,
METHOD_NAME NAME_KOMP VIEW_NAME NAME_KOMP EDIT_CHANGEMODE ABAP_BOOLEAN
FTS_ALPHA_CONV_ADAPT INTEGER_COMMA_SEPARATED,
DATA_STRUCTURE_NAME STRING INSERT_CHANGEMODE ABAP_BOOLEAN Convertion() ForeignRelationCheck()
BusinessLayerObjectProcurer()
uery()
BusinessLayerObject() BusinessLayerObjectAttribute()

CRMS4C_IU_BR

RELATION_NAME CRMT_RELATION_NAME
CRMS4C_IU_B PC BLOB ECT_NAME CHAR30
CRMS4C_IU_BFK
IS_E TERNAL ABAP_BOOLEAN CRMS4C_IU_BR
UER _NAME CRMT_E T_OB _NAME OB ECT_NAME CRMT_E T_OB _NAME
BLOB ECT_NAME CHAR30
SE UENCE I T PE RELATION_T PE RELATION_NAME CRMT_RELATION_NAME
FOREIGN_KE NAME_KOMP
ACTIVE ABAP_BOOLEAN UER _NAME CRMT_E T_OB _NAME ATTRIBUTE_NAME NAME_KOMP
ATTRIBUTE_NAME NAME_KOMP
KIND PROCURER_KIND VIEW_NAME NAME_KOMP OPERATION ASSIGNMENT_OPERATION
OPERATION ASSIGNMENT_OPERATION
VIEW_NAME NAME_KOMP PATH TE T200 VALUE_SOURCE TE T200
VALUE_SOURCE TE T200
METHOD_NAME NAME_KOMP START_OB ECT_NAME CRMT_E T_OB _NAME
KE _STRUCTURE STRUKNAME Relation ueryParameter()
ForeignRelationCheckParameter()
ueryProcurer() OB ECT_ UER _NAME CRMT_E T_OB _NAME
RESULT_BLOB ECTNAME CHAR30
Relation()

CRMS4C_IU_BRK
CRMS4C_IU_BRR
RELATION_NAME CRMT_RELATION_NAME
ATTRIBUTE_NAME NAME_KOMP RELATION_NAME CRMT_RELATION_NAME
OPERATION ASSIGNMENT_OPERATION ATTRIBUTE_NAME NAME_KOMP
VALUE_SOURCE TE T200
RelationRequiredField()
RelationKeyAssignment()

Table 1: Tables/Maintenance Views in Customizing

Table Maintenance View Description

CRMS4C_IU_BO CRMS4V_IU_BO Business Layer Object

CRMS4C_IU_BOT CRMS4V_IU_BO Business Layer Object Text

CRMS4C_IU_BOI CRMS4V_IU_BOI Business Layer Object Text Case

CRMS4C_IU_BOC CRMS4V_IU_BOC Attribute Conversion of Business Layer Object

Business Layer for BOL/GenIL Page 87 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

CRMS4C_IU_BOP CRMS4V_IU_BOP Package Assignment of Business Layer Object

CRMS4C_IU_BA CRMS4V_IU_BA Attribute Properties of Business Layer Object

CRMS4C_IU_BAT CRMS4V_IU_BA Attribute Texts

CRMS4C_IU_BF CRMS4V_IU_BF Foreign Relation Check of Business Layer


Object

CRMS4C_IU_BFK CRMS4V_IU_BFK Parameter of Foreign Relation Check

CRMS4C_IU_BM CRMS4V_IU_BM Method of Business Layer Object

CRMS4C_IU_BQ CRMS4V_IU_BQ Business Layer Query

CRMS4C_IU_BQC CRMS4V_IU_BQC Attribute Conversion of Business Layer Query

CRMS4C_IU_BQP CRMS4V_IU_BQP Business Layer Query Parameter

CRMS4C_IU_BR CRMS4V_IU_BR Business Layer Relation

CRMS4C_IU_BRK CRMS4V_IU_BRK Key Assignment of Business Layer Relation

CRMS4C_IU_BRQ CRMS4V_IU_BRQ Parameter of Business Layer Relation

CRMS4C_IU_BRR CRMS4V_IU_BRR Required Field of Business Layer Relation

CRMS4C_IU_BEM CRMS4V_IU_BEM Business Layer External Method

Tables/Maintenance Views in Customizing (Client dependent)

Table Maintenance View Description

CRMS4C_IU_BO_C CRMS4V_IU_BO_C Business Layer Object (Customer)

CRMS4C_IU_BOT_C CRMS4V_IU_BO_C Business Layer Object Text (Customer)

CRMS4C_IU_BOI_C CRMS4V_IU_BOI_C Business Layer Object Text Case (Customer)

CRMS4C_IU_BOC_C CRMS4V_IU_BOC_C Attribute Conversion of Business Layer Object


(Customer)

CRMS4C_IU_BOP_C CRMS4V_IU_BOP_C Package Assignment of Business Layer Object


(Customer)

CRMS4C_IU_BA_C CRMS4V_IU_BA_C Attribute Properties of Business Layer Object


(Customer)

CRMS4C_IU_BAT_C CRMS4V_IU_BA_C Attribute Texts (Customer)

CRMS4C_IU_BF_C CRMS4V_IU_BF_C Foreign Relation Check of Business Layer Object


(Customer)

CRMS4C_IU_BFK_C CRMS4V_IU_BFK_C Parameter of Foreign Relation Check (Customer)

Business Layer for BOL/GenIL Page 88 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

CRMS4C_IU_BM_C CRMS4V_IU_BM_C Method of Business Layer Object (Customer)

CRMS4C_IU_BQ_C CRMS4V_IU_BQ_C Business Layer Query (Customer)

CRMS4C_IU_BQC_C CRMS4V_IU_BQC_C Attribute Conversion of Business Layer Query


(Customer)

CRMS4C_IU_BQP_C CRMS4V_IU_BQP_C Business Layer Query Parameter (Customer)

CRMS4C_IU_BR_C CRMS4V_IU_BR_C Business Layer Relation (Customer)

CRMS4C_IU_BRK_C CRMS4V_IU_BRK_C Key Assignment of Business Layer Relation


(Customer)

CRMS4C_IU_BRQ_C CRMS4V_IU_BRQ_C Parameter of Business Layer Relation (Customer)

CRMS4C_IU_BRR_C CRMS4V_IU_BRR_C Required Field of Business Layer Relation


(Customer)

CRMS4C_IU_BEM_C CRMS4V_IU_BEM_C Business Layer External Method (Customer)

The generated maintenance screens of the individual tables/maintenance views are generated in the
function group "CRMS4_IU_BL_CUST" and merged in the two view clusters "CRMS4_IU_BL_CUST" and
"CRMS4_IU_BL_CUST_C". Adjustments have been made to individual of these generated maintenance
modules in function group "CRMS4_IU_BL_CUST" to ensure functionality and the connection of better
search help functionalities. If there is a need to regenerate these maintenance views, appropriate caution
must be exercised. Under certain circumstances, a manual adjustment of individual sub-areas/sub objects
makes more sense.

The settings made in Customizing are evaluated and merged in the "CL_CRMS4_IU_IL_META" class.

BL Object
Type KIND

Value Description

A Root Object

B Access Object

C Dependent Object

E Search Result
Object

F View Object

BL Object

Name Type Descriptio Meaning Comment / Example


n

Business Layer for BOL/GenIL Page 89 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

BLOBJECT_NAME String Name of Technical name of the UtilitiesContractItem


Business BL Object
Layer
Object

PARENT_BLOBJECT_NA String Name of Technical name of a UtilitiesContract


ME Parent possibly superordinate
Business BL Object. Plays a
Layer particularly important
Object role in the mapping of
object hierarchies or
dependent objects.

KIND KIND Object Type of BL Object. See "C" = Dependent


Type Type KIND. Object

GENIL_COMPONENT_NA String Component Name of the ISUCTM


ME Name GenIL/BOL component
in which the BOL
Object is defined

GENIL_OBJECT_NAME String Name of Name of the associated UtilitiesContractItem


GenIL/BOL BOL Object in the
Object GenIL/BOL Layer

HANDLER_CLASSNAME String Class ABAP OO Class in CL_CRMS4_IU_BL_


Name which the functionality CTI
for the BL Object is
implemented. This
must be a derivative of
the class
"CL_CRMS4_IU_BL_B
ASE".

VIEW_NAME String Business Name of a CDS view, CRMS4_IU_C_CTI


Layer database view, or
Object database table. The
View Name database object
specified here is used
in all query objects
(queries) assigned to
the BL Object to
implement database
selection if the
respective query object
does not implement its
own selection routine.

DATA_STRUCTURE_NAM String Name of Name of the data CRMS4S_IU_CTI_BL


E Data structure that is used
Structure internally in the BL
Layer to buffer the data

SINGULAR_TEXT String Text in Label text of the object Contract Item


Singular in the singular form
Form

Business Layer for BOL/GenIL Page 90 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

PLURAL_TEXT String Text in Label text of the object Contract Items


Plural Form in the majority form

KEY_TEXT_CALCULATIO String BL Object


N Key Text
Calculation

TEXT_CASE_CALCULATI String Text case Calculate the text case ISDEVICEINFOREC


ON calculation for a deviating ORD
designation text of the
object in one/multiple
number

BL Object Text Case


BL Object Text Case

Name Type Description Meaning Comment / Example


Value from
calculation
TEXT_CASE String TEXT_CASE_CALC X
ULATION of BL
object
SPRAS LANGU Language Designation language EN
Designation text of the
SINGULAR_TEXT String Text in Singular Form Device Info Record
object in the singular
Designation text of the
PLURAL_TEXT String Text in Plural Form Device Info Records
object in the plural

BL Object Method
BL Object Method

Name Description Meaning Comment / Example

METHOD_NAME Name of Name of the method in the BOL "GET_STATUS_ICON"


Business Object (GenIL/BOL Layer). Name
Object with which the method is called via
Method the GenIL/BOL Core. E.g.:
LR_BOL_ENTITY->EXECUTE(
IV_METHOD_NAME = <Name> )
or LR_BOL_ENTITY-
>EXECUTE2(
IV_METHOD_NAME = <Name> )

BL_METHOD_NAME Name of Name of the method in the "BL_GET_STATUS_ICON"


Business implementation/handler class of
Layer Object the BL Object (BL Layer). Method
Method in which the technical logic is
implemented.

Business Layer for BOL/GenIL Page 91 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

BL Object Package Assignment


Due to various security aspects, query objects assigned to a BL Object can only use CDS views, database
views, or tables that are created within the development packages assigned here for their database query.
Multiple assignments are possible.

BL Object Package Assignment

Name Description Meaning Comment / Example

DEVCLASS Package Name of a development package "CRMS4_IU_IL_TO"

BL Object Attribute

Determining The Visibility Of Attributes


Type BOOL

Value Meaning

SPACE unknown

Y Yes

N No

Determining the visibility of attributes

Field Kind Remark Possible values /


Example

TECHNICAL BOOL Is it a purely technical field? SPACE; Y; N

DISPLAY_HIDDEN BOOL Do you want the field to SPACE; Y; N


appear in display mode?

DISPLAY_HIDDEN_CALCULATION String Calculation of visibility for the if(@ABWRE;'Y')


display mode.

EDIT_HIDDEN BOOL Do you want the field to SPACE; Y; N


appear in change mode?

EDIT_HIDDEN_CALCULATION String Calculation of visibility for if(@ABWRE;'Y')


change mode.

INSERT_HIDDEN BOOL Do you want the field to SPACE; Y; N


appear in create mode?

INSERT_HIDDEN_CALCULATION String Calculation of visibility for the if(@ABWRE;'N')


create mode.

Determination Of Editability And Mandatory Field Checking Of Attributes


Type CHANGEMODE

Business Layer for BOL/GenIL Page 92 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Value Description Meaning

SPACE Read-only Attribute is not ready for input

C Changeable Attribute is ready for input

M Changeable and Mandatory Attribute is ready for input and mandatory

Determination of editability and mandatory field checking of attributes

Field Values Remark Example

EDIT_CHANGEMODE CHANGEMODE Is the field editable (ready for C


input) in change mode? Is it a
required field?

EDIT_CM_CALCULATION String Calculation for CHANGEMODE if(@ABWRE;'C')


in change mode

INSERT_CHANGEMODE CHANGEMODE Is the field editable (ready for M


input) in create mode? Is it a
required field?

INSERT_CM_CALCULATION String Calculation for CHANGEMODE if(@ABWRE;'C')


in create mode

Derivation Of Texts To Attributes / Property Text


Allows an additional field in the UI to make texts suitable for technical codes. An additional text field is
simulated, which can be placed in a mask. The content of the text field is controlled by the text Mode.
Type TEXTMODE

Text Mode Value Meaning UI Fix?

No Text no text field is created

Domain Text (static, D Determine values from the texts of the domain picklist yes
picklist)

Text Table (static, picklist) T Determine values from a text table picklist yes

Value Text Table V Determine a value from a text table no


(dynamic)

Method (dynamic) M Calculate value by a BOL method no

Method (dynamic, picklist) F Calculate values by a BOL method picklist no

Calculation (dynamic) C Determine value by a calculation no

Relation (dynamic, R Determine values by querying a relation path picklist no


picklist) (BPath)

Business Layer for BOL/GenIL Page 93 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Fixed values are buffered after initial request. New queries are answered using buffered values only. There
is no re-reading from the database.
Derivation of texts to attributes / property text

Field Text Meaning


Mode

PROPERTY_TEXT_MODE contains the value for the text Mode. See Type
TEXTMODE

PROPERTY_TEXT_FIELDNAME Alle Name of the simulated text field. If empty


<AttributeName>_TEXT is assumed

PROPERTY_TEXT_VALUE_TABLE T; V Table name for the key values for the field
<AttributeName>

PROPERTY_TEXT_TABLE T; V Table name for the texts for the key values for the
field <AttributeName>

PROPERTY_TEXT_LANG_FIELD T; V Name of the field in <PROPERTY_TEXT_TABLE>


for the language

PROPERTY_TEXT_KEY_FIELD T; V; R At T; V: Name of the field that holds the key in


<PROPERTY_TEXT_TABLE>
At R: Name of the attribute that contains the key in
the relation

PROPERTY_TEXT_TEXT_FIELD T; V; R At T; V: Name of the field that contains the text in


<PROPERTY_TEXT_TABLE>
At R: Name of the attribute that contains the text in
the relation

PROPERTY_TEXT_METHOD M; F Name of the BOL method that returns the value or


values

PROPERTY_TEXT_CALCULATION C; R Calculation of the text value(s)

PROPERTY_TEXT_BPATH R BPath for the relation (don't forget the /*$ at the end)

PROPERTY_TEXT_INITIAL_CALC

Icon Calculation
Allows an additional field in the UI to make suitable icons visible. An additional icon field is simulated, which
can be placed in a mask.
Icon Calculation

Feld Meaning Beispiel

ICON_CALCULA Calculation of the icon(if(@LOCKR_INVOICING;locked;unlocked);@TEXT/LOCK


TION icon R_INVOICING@)

ICON_FIELDNA Name of the icon


ME field. If empty

Business Layer for BOL/GenIL Page 94 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

<AttributeName>_
ICON is assumed.

Definition Of Reference/Navigation Properties Of Attributes (Link)


Link Kind

Link Kind Link Execution of the Link Parameter


Kind link
Value

no link Not displayed as a


link (default)

Action Profile P Action from action <ACTION_PROFILE>:<ACTION_NAME>:<BPATH>


profile and entity
(optional BPath)

Action (local) A local form action <ACTION_NAME>

Navigation L Navigation via link <LINK_NAME>:<BPATH>


via UI Link with entity (optional
BPath)

Object-based O Navigating to the <BPATH>


navigation Object via BPath
(empty for the same object)
Dokumentation of BPath hier

UI Presentation

Field Meaning Example

ATTRIBUTE_KIND Icon calculation icon(if(@LOCKR_INVOICING;locked;unlo


cked);@TEXT/LOCKR_INVOICING@)

SEMANTIC_COLOR NEGATIVE,CRITICAL,POSITIVE,N if(??=(@STAT_LIFECYCLE;'D');'POSITIV


_CALCULATION EUTRAL,INFORMATION E')

TEXTAREA_ROWS Only for type "A", number of lines 6

TEXTAREA_COLS Only for type "A", number of 20


columns

UI Types

UI Type UI Type Meaning Type Parameter


Value

Automatic Determined by the type and other


properties (default)

Image I Displayed as an icon

Business Layer for BOL/GenIL Page 95 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Check C Display as hook field


Box

Text T As normal text

Text Area A As larger text area TEXTAREA_ROWS


TEXTAREA_COLS

Field/Attribute Identifier
Field/Attribute Identifier

Field Meaning

UI_LABEL Alternate field/attribute identifier that precedes the field/attribute on the UI

Business Layer for BOL/GenIL Page 96 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

BL Object Attributes Calculation (Attribute Calculation)

Attribute Calculation

Name Type Descriptio Meaning Example


n

ATTRIBUTE_NAME CHAR30 Attribute Name of the "ADDRESS_TEXT"


Name field/attribut
e

CALC_CALCULATIO TEXT200 Calculation Calculation "address('LETTER';@BP_NUMBER)


N expression is performed "
for the
content of
the field

CALC_DATATYPE CHAR20 Data type Data type "CRMS4_IU_ADDRESS_TEXT"


0 name that the
attribute
should have
as the result
of the
calculation.

ATTRIBUTE_KIND CHAR1 UI Type of See BL "A"


the field object
attribute

Attribute Conversion
Based on defined conversion functions, certain conversions can be defined within the BL Layer for the
individual attributes of a BL Object or a BL Query.
Type FUNCTION

Function Description Meaning

SPACE No Function No conversion or pure mapping of attribute/field names (see


examples)

U Upper Case Conversion of the field value to uppercase (see examples)

L Lower Case Conversion of the field value to lowercase (see examples)

0 Alpha Alpha-Conversion of the field value (see examples)

D Date to Timestamp Transfer of time stamp to date (see examples)

T Time to Timestamp Transfer of time stamp to time (see examples)

S Move Before Save Transfer of field values before a BL Object is saved. Not relevant
(intern) for BL Query objects (see examples)

Business Layer for BOL/GenIL Page 97 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

1 Timestamp to Date Convert date to timestamp. Often in combination with function 2.


(see examples)

2 Timestamp to Time Convert time to time stamp. Often in combination with function 1.
(see examples)

Attribute Conversion

Name Type Description Meaning Comment /


Example

ATTRIBUTE_NAME String Attribute Name of the field/attribute "CITY1"


Name

FUNCTION FUNCTION Convert Convert function. See Type "L"


Function FUNCTION.

MATCH_NAME String Match Name of the field/attribute "MC_CITY1"


Attribute
Name

LENGTH NUMC 6 Length Length for the length 10


adjustment of the
alphanumerically converted
value.

Conversion Examples

Description FUNCTION ATTRIBUTE_NAME MATCH_NAM LENGTH

Mapping attribute names. SPACE TPLNR HAUS


In the (UI) structure
underlying a BOL Query
object, the attribute is
called "TPLNR". However,
in the database view used
by the BOL Query object,
the attribute is called
"HAUS".

The content of the attribute U CITY1 MC_CITY1


"MC_CITY1" results from
the content of the attribute
"CITY1", converted to
uppercase letters. Mostly
used for search fields in
uppercase notation.

The content of the attribute L CITY1 MC_CITY1


"MC_CITY1" results from
the content of the attribute
"CITY1", converted to
lowercase letters.

Business Layer for BOL/GenIL Page 98 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

The content of the 0 VS_VSTELLE VSTELLE 10


“VSTELLE” attribute
results from the
alphanumerically
converted content of the
“VS_VSTELLE” attribute.
Mostly used for query
objects to convert the
attribute value entered in
the UI to the internal
representation.

The contents of the 0 VSTELLE


“VSTELLE” attribute are
converted alpha
numbered.

The contents of the D STARTDATE STARTDATETIME


"STARTDATE" attribute
are filled with the date part
of the "STARTDATETIME"
attribute.

The contents of the T STARTTIME STARTDATETIME


"STARTTIME" attribute are
filled with the time part of
the "STARTDATETIME"
attribute.

Before/When the BOL S GPART IL_GPART


Object is saved, the
content is transferred from
the “IL_GPART” attribute
to the “GPART” attribute.
Used if the internal
attribute cannot/should not
be used on the UI due to
possibly different
representation.

The date portion in the 1 ACTIVITY_TIMESTAMP ACTIVITY_DATE


attribute
"ACTIVITY_TIMESTAMP"
is constructed from the
content of the attribute
"ACTIVITY_DATE".

The time portion in the 2 ACTIVITY_TIMESTAMP ACTIVITY_TIME


attribute
"ACTIVITY_TIMESTAMP"
is constructed from the
content of the attribute
"ACTIVITY_TIME".

The content of the 1 ACTIVITY_TIMESTAMP ACTIVITY_DATE


ACTIVITY_TIMESTAMP
attribute is constructed 2 ACTIVITY_TIMESTAMP ACTIVITY_TIME

Business Layer for BOL/GenIL Page 99 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

from the contents of the


ACTIVITY_DATE and
ACTIVITY_TIME
attributes.

Foreign Relation Check


With the help of a foreign key check, it is ensured that a BL Object can only be created and stored in a
consistent state. For example, a connection object can only be fished in conjunction with a premise. In the
case of the connection object, it must therefore be checked that an existing premise is assigned to it.
Foreign Relation Check

Name Descriptio Meaning Comment / Example


n

FOREIGN_KEY Name of Name of the foreign key CRMS4S_IU_PRM_KE


Foreign field/attribute Y
Key
Attribute

QUERY_NAME Name of Name of the GenIL/BOL Query PremiseQuery


GenIL/BOL object that can deliver the
Query relation object as the result
object. Optional (can also be
empty) if
<FOREIGN_BLOBJECT_NAM
E> is used.

FOREIGN_BLOBJECT_NAM Name of Name of the BL Relation object Premise


E Foreign (name of the BL Object).
Business
Optional (can also be empty) if
Layer
<QUERY_NAME> is used.
Object

BL_SAVE Flag: The existence of the relation "SPACE" / "X"


Check object is checked before the BL
Whether Object is saved.
Foreign
Key Exists
Before
Saving

BL Query
BL Query

Name Descriptio Meaning Comment / Example


n

QUERY_NAME Name of Technical name of the BL UtilsDisconnectionObjActQue


Business Query ry

Business Layer for BOL/GenIL Page 100 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Layer
Query

VIEW_NAME Business Name of a CDS view, CRMS4_IU_C_UDP


Layer database view, or database
Query View table
Name

DO_NOT_CACHE Flag: Do The result of database "SPACE" / "X"


not Use queries is typically buffered
Cache in the BL Layer to minimize
read access to the
database. Sometimes,
however, such buffering is
not desirable and can be
disabled by setting the
current setting.

ONLY_KEY_SELECTED Flag: Only Markup of the BL Query "SPACE" / "X"


Select Key that it only returns the key
fields of the result objects.

IS_FREE_TEXT_SEARCH Flag: Is Marking of the BL Query as "SPACE" / "X"


Free Text a query for a free text
Search search.

FTS_ALPHA_CONV_ADA Free Text Length for the length 10


PT Search: adjustment of the
Alpha alphanumerically converted
Conversion value in a free text search.
Length Only in connection with
Adaption <IS_FREE_TEXT_SEARC
H> sensible.

Parameter
Describe the delimitation criteria when determining the result entities. For example, the delimitation to
contracts of a business partner valid on the current date.
Type OPERATION

Value Description

SPACE Undefined

EQ Equal

NE Not Equal

GT Greater Then

LT Lower Then

GE Greater or Equal

Business Layer for BOL/GenIL Page 101 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

LE Lower or Equal

Parameter

Name Type Description Meaning Comment /


Example

ATTRIBUTE_NAME String Attribute Name of the field/attribute "DATETO"


Name

OPERATION OPERATION Value Logical Comparison Operator "GE"


Assignment
Operation

VALUE_SOURCE String Value Definition/derivation of the Constant


Source parameter value. In the values such
simplest case, it is the as "40", "AG"
specification of a constant or Value
value. Furthermore, a calculation
derivation from global data such as "SY-
contexts is possible. See DATUM".
Value calculation.

Attribute Conversion
Various conversion functions are available for attributes of a BL Query object. See section Attribute
conversion.

BL Relation
Type TYPE

Value Description Meaning Relevant fields

SPACE Undefined <VIEW_NAME> <> SPACE => Determination VIEW_NAME


via database query via CDS view, database
KEY_STRUCTURE
view or database table.
QUERY_NAME
<VIEW_NAME> = SPACE => Determination
via BL Query interface with<QUERY_NAME>

Q BL Query Determination via BL Query interface. QUERY_NAME

P B-Path Determination via B-Path Statement PATH


implemented in the GenIL/BOL Layer.
GET_RELATED_ENTITIES_BY_PATH( )

O Object BOL entity is requested in the GenIL/BOL START_OBJECT_NAME


Layer. If the entity is not available there, the
OBJECT_QUERY_NAME
BOL Query object <OBJECT_QUERY_NAME>
is used, if specified, to determine the entity. PATH
Typically provides exactly one entity.

Business Layer for BOL/GenIL Page 102 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

By specifying <START_OBJECT_NAME>, the


type of the delivered BOL entity can be
overdriven. By specifying <PATH>, an entity list
can be supplied. Cleverly combined with the
information <START_OBJECT_NAME>and
<PATH>, entities can be delivered across
object and relational boundaries. However, in
certain cases, it must be checked whether
another type of relationship, e.g. 'P' (B-Path),
may be better suited for implementation.

V View Determination via database query via CDS VIEW_NAME,


view, database view or database table. KEY_STRUCTURE

B BOL Query Determination via a BOL Query implemented in QUERY_NAME


the GenIL/BOL Layer

BL Relation

Name Relation Descript Meaning Comment / Example


Type ion

RELATION_NAME - Name of Technical name 'UtilitiesServiceOrderBTOrder


Business of the BL Rel'
Layer Relation
Relation

TYPE - Business Type of relation See Type TYPE


Layer
Relation
Type

IS_EXTERNAL - Flag: Is Indicator that it is 'SPACE'/'X'


External an external
Relation relation. Relation
is not
implemented by
the original object
but by the target
object
<OBJECT_NAM
E>.

OBJECT_NAME - Name of Name of the BOL 'BTOrder'


GenIL/B Object in the
OL GenIL/BOL Layer
Object for external
relations. Only
relevant for
<IS_EXTERNAL
> = 'X'

QUERY_NAME SPACE; B; Q Name of Name of the 'BTQuery1O'


(<IS_EXTER GenIL/B Query object via
NAL> = 'X') OL which the relation
Query

Business Layer for BOL/GenIL Page 103 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

entities are
determined.

VIEW_NAME SPACE; V Business Name of a CDS 'CRMS4_IU_C_MICNTR'


Layer view, database
Relation view, or database
View table. In
Name conjunction with
information for
<KEY_STRUCT
URE>.

PATH P; O Business Navigating the 'PODPremiseRel/PremiseCo


Layer Object via BPath nnObjRel'
Relation
BPath Documentation here
Path

START_OBJECT_NA O Name of Name of the BOL


ME Start Object in the
GenIL/B GenIL/BOL Layer
OL
Object

KEY_STRUCTURE SPACE; V Name of Name of the key 'CRMS4S_IU_UTCT_CRM_K


Key structure EY'
Structure

OBJECT_QUERY_NA O Name of Name of the BOL 'UtilitiesEmmaCaseObjectQu


ME Object Query in the ery'
Query GenIL/BOL
Layer.

RESULT_BLOBJECT_ Q Name of Name of the BL Dependent Objects only.


NAME Result- Object.
'UtilsDisconnectionAct'
Depende Dependent
nt objects only.
Business Used for
Layer dependent/subor
Object dinate objects to
implement the
parent relation.

TARGET_BLOBJECT Q Name of Name of the BL 'ConnectionObject'


_NAME Target Object via whose
Business query interface
Layer the relation
Object entities are
determined. Is
implemented
Business Layer
internally.

Required Field Check


Required Field Check

Business Layer for BOL/GenIL Page 104 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Name Description Meaning Comment /


Example

ATTRIBUTE_NAME Attribute Name of the "TPLNR"


Name field/attribute

Key Assignment
Describes the key relationship between the entities.
Key Assignment

Name Description Meaning Comment / Example

ATTRIBUTE_NAME Attribute Name of the TPLNR or


Name field/attribute
*

OPERATION Value Logical Comparison EQ


Assignment Operator
Operation

VALUE_SOURCE Value Definition/derivation Attribute name: TPLMA


Source of the parameter
Constant value: '05'
value. In the
simplest case, it is Value calculation:
the specification of 'map_key('BP_GUID';SOLD_TO_PARTY)'
a constant value.
Furthermore, a
derivation from
global data
contexts is
possible. See value
calculation.

Examples of key assignments for relations

Description Relation Name Attribute Name Oper Value Source


ation

Relation from the BuilHeaderUtilitiesI PARTNER EQ BP_NUMBER


business partner to nvoiceDocRel
the invoice document.
The PARTNER
attribute of the invoice
document is
compared with the
BP_NUMMER
attribute of the
business partner.

Relation from the BuilHeaderUtilitiesE MAINOBJKEY EQ BP_NUMBER


business partner to mmaCaseRel
the clarification case. MAINOBJTYPE EQ 'BUS1006'
The attribute
"MAINOBJKEY" of the

Business Layer for BOL/GenIL Page 105 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

clarification case is
compared with the
attribute
"BP_NUMMER" of the
business partner. The
attribute
"MAINOBJTYPE" of
the clarification case is
compared with the
constant value
'BUS1006'.

Relation from the UtilitiesContractIte * EQ map_key('BP_GUID';SOLD


contract item to the mBuilHeaderRel _TO_PARTY)
business partner.
First, the
corresponding
BP_GUID is
determined for the
attribute
SOLD_TO_PARTY
from the contract item
and then compared
with the attribute
BP_GUID of the
business partner. For
more information
about the "map_key"
function, see Value
Calculation.

Relation from the PF UtilitiesPFProcessC NUMBER_INT EQ structfield(CRMS4S_IU_C


process to the ontractItemRel TI_KEY;
contract position. The
OBJKEY;NUMBER_INT)
contract item has a
double key with the
key structure OBJECT_ID EQ structfield(CRMS4S_IU_C
CRMS4S_IU_CTI_KE TI_KEY;
Y. The PF process OBJKEY;OBJECT_ID)
has a generic foreign
key attribute OBJKEY.
The generic foreign
key attribute OBJKEY
of the PF process is
broken down into its
components and
compared with the
respective attributes
OBJECT_ID and
NUMBER_INT of the
contract item. For
more information
about the "structfield"
function, see Value
Calculation.

Relation from the UtilsContrAcctPartn * EQ map_key('BUAG_GUID';


contract partner to the erBuAgRel

Business Layer for BOL/GenIL Page 106 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

contract account. struct(CRMS4S_IU_CAP_


First, the key structure KEY;
of the
VKONT=VKONT;GPART=
CRMS4S_IU_CAP_K
GPART))
EY is constructed from
the attributes VKONT
and GPART of the
contract partner using
the "struct" function.
Subsequently, the
conversion of the
constructed double
key into the
corresponding
BUAG_GUID is
carried out by means
of the function
"map_key". This is
compared with the
attribute BUAG_GUID
of the contract
account. For more
information about the
"struct" and
"map_key" functions,
see Value Calculation.

Parameter
Describe the delineation criteria when determining the relation entities. A good example of this would be
the delimitation to contracts of a business partner valid at the current date.
Type OPERATION

Value Description

SPACE Undefined

EQ Equal

NE Not Equal

GT Greater Then

LT Lower Then

GE Greater or
Equal

LE Lower or
Equal

Parameter

Name Type Description Meaning Comment /


Example

Business Layer for BOL/GenIL Page 107 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

ATTRIBUTE_NAME String Attribute Name of the field/attribute "DATETO"


Name

OPERATION OPERATION Value Logical comparison operator "GE"


Assignment
Operation

VALUE_SOURCE String Value Definition/derivation of the Constant


Source parameter value. In the values such
simplest case, it is the as "40", "AG"
specification of a constant or value
value. Furthermore, a calculation
derivation from global data such as "SY-
contexts is possible. See DATUM".
value calculation.

Business Layer External Method


With the help of the business layer external methods, methods can be defined for any BOL Object,
especially those that are not in the responsibility of ISU. The methods defined in this way cannot be called
in GenIL/BOL but can be used to define value calculations. They can therefore be used wherever a value
calculation is offered.
Business Layer External Method

Name Description Meaning Comment / Example

GENIL_OBJECT_NAME Name of Name of the BOL "BuilHeader"


GenIL/BOL Object (GenIL/BOL
Object Layer) to which the
method is
assigned.

GENIL_METHOD_NAME Name of Name of method in "GET_AMOUNT_DUE"


Business the BOL Object
Object (GenIL/BOL Layer)
Method and in the static
handler class.

HANDLER_CLASSNAME Class Name Name of the static "CL_CRMS4_IU_IL_BP_METHOD"


handler class that
contains the
method
implementation.

Access To Meta Data (Utilitiesmeta)


An additional 1:1 relation to an object of the UtilitiesMeta type is added to all BL objects. UtilitiesMeta
contains meta information about the object. For example, the textual description of the original object can
be accessed here or the icon representation.
Example of a UtilitiesDevice:

Business Layer for BOL/GenIL Page 108 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

ONE-CLICK ACTIONS
Actions in the CRM UI are relatively fixed. For a customer, changes here are only possible via coding. For
BOL Tree Actions (OCA), no possibility is provided without extensive modification of the SAP sources.
CIC0 customers are advised to use Customer Engagement when switching to S/4HANA and to emulate the
data environment using BOL Trees. What is missing here is the customization of starting any actions as it
was possible in CIC0.
We offer here a flexible solution by means of customizing in the product to make it easier for the switchers
from CIC0 and to offer even more integration for the CRM customers.

Customizing

SPRO Path: SAP Utilities → Customer Engagement → Settings for Object Workbench → Define Object
Hierarchy and Object Attributes under One-Click Actions

One-Click Actions Page 109 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Field Determines which operation should be performed


Action Title Optional title if e.g. SAP GUI is placed within the CRM UI
Description Optional description if e.g. SAP GUI is placed within the CRM UI
One Click Action ID Unique ID, technical name, by this the action can be referenced
Parent ID Fill out only if this action should appear below a submenu, then the One
Click Action ID is the menu
Alternative Column ID Specifies in which column this action should appear (e.g. as a button)
Process Type The operation type determines which type of action is to be performed
Sequence Sequence of the actions
Icon Name Name of the icon, this can be a logical name or a Fiori icon name
Text Translatable text of the action
Tooltip Translatable notice of the action
Is Active Calculation if this action should be switched on at this entry, for the
calculation see OCA value calculations
Tree Function Control of a predefined tree function such as "Expand all nodes”
Reference Action Profile If Process Type is set to INCL, the technical name of the action profile must
be entered here
Relation Path BPath to get from the current entity to the target entity, especially with
operation type INCL. this can be used to include menus to other objects.
Confirm Text Alias If the user should be asked before the action is executed, the OTR text alias
containing the overridable text can be stored here for the dialog.

Standard One-Click Actions


Action Class Method Is Active
Confirm CL_CRMS4_IU_OCA_CONFIRMATION CL_CONFIRM_CUSTOMER ✓
Customer
Confirm CL_CRMS4_IU_OCA_CONFIRMATION CL_CONFIRM_CONTRACTACCOUNT ✓
Contract
Account
Unconfirm CL_CRMS4_IU_OCA_CONFIRMATION CL_UNCONFIRM_CONTRACTACCOUNT ✓
Contract
Account
Confirm CL_CRMS4_IU_OCA_CONFIRMATION CL_CONFIRM_CONTACT_CUSTOMER ✓
Contact and
Customer

One Click Action Transaction Types

Type Description Category


Default One-Click Handling

One-Click Actions Page 110 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

TCODE Transaction Launcher Transaction Code SAP GUI Transaction


Launcher
BOR Transaction Launcher Business Objects Repository Method SAP GUI Transaction
Launcher
FOP Transaction Launcher Front Office Process SAP GUI Transaction
Launcher
TXFUN Transaction Launcher Function Module SAP GUI Transaction
Launcher
TXMET Transaction Launcher Class Method SAP GUI Transaction
Launcher
FUNC Function Module CRM_UI
METH Class Method CRM_UI
NAV Entity Navigation CRM_UI
BOLMT BOL Method CRM_UI
OUTPL Outbound Plug CRM_UI
MENU Menu Structuring
SEPAR Separator Structuring
TREE Tree Function CRM_UI
FIORI Transaction Launcher Fiori Application Fiori Transaction
Launcher
INCL Include Action Profile Structuring
FORM Navigation of a formular CRM_UI
URL Browser Navigation via URL Browser Navigation
The type "Default One Click Handling" corresponds to the usual processing of the action within the CRM
UI components (Controller/Subscriber).
The enhanced transaction types have to be developed via UI enhancement and can be divided into two
categories.
1. Transaction Launcher: Execution takes place via Transaction Launcher. This takes place in a new
session (mode) within the SAP GUI in the browser (HTML GUI).
2. WEBCUIF session: Execution within the same session where the UI is running. No older techniques
such as SAP GUI etc. are possible.

Transaction Launcher - Logical Link

The transaction launcher is a tool that system administrators use to allow an agent access to business
transactions directly from the Interaction Center WebClient screen.
The value of field Definition 3 corresponds to the logical system which must be maintained and exist in the
transaction CRMS_IC_CROSS_SYS.

One-Click Actions Page 111 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Transaction: CRMS_IC_CROSS_SYS

Transaction Type TCODE

Transaction type "Transaction Launcher Transaction Code (TCODE)" can be used to launch SAP GUI
transactions.
Parameter Name Parameter Type Value Value Example
TCODE Action parameter Transaction code ES22
PROGRAM Normal parameter Name of the program SAPLES20
DYNPRO Normal parameter Dynpro number 0100
<Dynprofield> Normal parameter Value for a dynpro field @CONTRACT

Example for calling transaction ES22 (display of an IS-U contract)


Sequence Parameter Kind Parameter Name Fixed
10 Action parameter TCODE Yes
20 Normal parameter PROGRAM Yes
30 Normal parameter DYNPRO Yes
40 Normal parameter EVERD-CONTRACT

One-Click Actions Page 112 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

In addition, other parameters can be used for special configurations:


Parameter Name Parameter Type Description
SKIPFIRSTSCREEN Action parameter With value "X", the first screen of the transaction is skipped; if
the first screen has input parameters, these must still be
specified as OCA parameters.
UPDMODE* Action parameter Update mode. See help for CALL TRANSACTION.
CATTMODE* Action parameter CATT mode. See help for CALL TRANSACTION.
DEFSIZE* Action parameter Default Dynpro. See help for CALL TRANSACTION.
RACOMMIT* Action parameter CALL TRANSACTION is not concluded with COMMIT. See
help for CALL TRANSACTION.
NOBINPT* Action parameter Flag for system field: SY-BINPT for CALL TRANSACTION..
See help for CALL TRANSACTION.
NOBIEND* Action parameter Flag for system field: SY-BINPT after end of CALL
TRANSACTION. See help for CALL TRANSACTION.

Transaction Type BOR

Transaction type "Transaction Launcher Business Objects Repository Method (BOR)" can be used to call a
method of a BOR object (Business Objects Repository) within the SAP GUI.
Parameter Name Parameter Type Value Value Example
OBJTYP Action parameter Name of the BOR object ISUCONTRCT
type
METHOD Action parameter Name of the method to be Display
called up
KEY Action parameter Optional key of the object @CONTRACT
<ParameterName> Normal parameter Value for the parameter
<ParameterName> of the
method

Transaction Type FOP

Transaction type "Transaction Launcher Front Office Process (FOP)" can be used to start a Front Office
Process.
Parameter Name Parameter Type Value Value Example
BUSPROC Action parameter Name of the Front Office MOVEIN
Process
<ParameterName> Normal parameter Value for the parameter
<ParameterName> of the
FOP

Transaction Type TXFUN

Transaction type “Transaction Launcher Function Module (TXFUN)” can be used to start a function module
within the Transaction Launcher.
Parameter Name Parameter Type Value Value Example
FUNCNAME Action parameter Name of the function
module
<ParameterName> Normal parameter Value of the parameter
<ParameterName> of the
function module

One-Click Actions Page 113 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Transaction Type TXMET

Transaction type “Transaction Launcher Class Method (TXMET)” can be used to start a static method of a class
within the Transaction Launcher.
Parameter Name Parameter Type Value Value Example
CLASSNAME Actions parameter Name of the class
METHODNAME Action parameter Name of the static method
of this class
<ParameterName> Normal parameter Value of the parameter
<ParameterName> of the
method

Transaction Type FUNC

Transaction type “Function Module (FUNC)” can be used to start a function module.
Parameter Name Parameter Type Value Value Example
FUNCNAME Action parameter Name of the function
module
<ParameterName> Normal parameter Value of the parameter
<ParameterName> of the
function module

Transaction Type METH

Transaction type “Class Method (METH)” can be used to start a static method of a class.
Parameter Name Parameter Type Value Value Example
CLASSNAME Actions parameter Name of the class
METHODNAME Action parameter Name of the static method
of this class
IS_ACTIVE_METHODNAME Action parameter Name of the static method
of this class for Active (can
Action be started?)
GET_TEXT_METHODNAME Action parameter Name of the static method
of this class that can
provide the text and the
tooltip
<ParameterName> Normal parameter Value of the parameter
<ParameterName> of the
method
Example: Start UI Process MOVE_IN on sales contract item.
Se- Parameter Parameter Name Value Path Fixed
quence Kind
10 Action CLASSNAME CL_CRMS4_IU_CM_UI_PROCESS_MGR Yes
parameter
20 Normal METHODNAME CL_EXECUTE_PROCESS Yes
parameter
30 Normal IS_ACTIVE_METHODNAME CL_CAN_EXECUTE_PROCESS Yes
parameter
40 Normal IV_UIPROCESSNAME MOVE_IN Yes
parameter
50 Normal IV_CONTRACT_ID @OBJECT_ID
parameter
60 Normal IV_CONTRACTITEM_NUMBER @NUMBER_INT
parameter

One-Click Actions Page 114 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Transaction Type NAV

Transaction type “Entity Navigation (NAV)” can be used to start navigation via link or to an entity.
Parameter Name Parameter Type Value Value Example
UI_LOGICAL_LINK Actions parameter Name of the logical links S4CUTCTIOV
UI_OBJECT_ACTION Action parameter Action of the entity
UI_OBJECT_TYPE Action parameter Name of the type of the
entity
UI_ENTITY_COLLECTION Action parameter If X then only the X
navigation object and
the target object are
passed for navigation
UI_CHANGE_MODE Action parameter If X then the target X
object is set to change
mode before navigation
UI_COLLECTION_MODE Action parameter Selection of entities to AEV
be included in the
navigation collection
CLASSNAME Action parameter Name of the class
IS_ACTIVE_METHODNAME Action parameter Name of the static
method of this class for
Active (can Action be
started?)
%CONTEXT_NODE% Normal parameter Switch to this context
node as current context
<Context Attribute Name> Normal parameter Value for the attribute of
the current context

UI_COLLECTION_MODE:
A - no ActionStarter in Collection
E - no Event-Entity in Collection
V - no Name-Value-Tab in Collection

Example: Display business partner of the sales contract.


Se- Parameter Parameter Name Value Path Fixed
quence Kind
10 Normal BP object(UtiltiesContractBuilHeaderRel) Yes
parameter
Example: Display sales contract item
Se- Parameter Parameter Name Value Path Fixed
quence Kind
10 Action UI_LOGICAL_LINK S4CUTCTIOV Yes
parameter
20 Normal CONTRACTITEM Object(SELF)
parameter
Example: Display application log
Se- Parameter Parameter Name Value Path Fixed
quence Kind
10 Action UI_LOGICAL_LINK S4CUTMLOGT Yes
parameter
20 Normal %CONTEXT_NODE% LOGFILTER Yes
parameter
30 Normal EXTNUMBER UtilitiesPFProcessMessageLogRel/@EXTNUMBER
parameter
40 Normal OBJECT UtilitiesPFProcessMessageLogRel/@OBJECT
parameter

One-Click Actions Page 115 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

50 Normal SUBOBJECT UtilitiesPFProcessMessageLogRel/@SUBOBJECT


parameter

Example of displaying the application log with category CRMS4_IU in the period of the last 5 days with tree
profile group S4CUTCTILG.

Se- Parameter Parameter Name Value Path Fixed


quence Kind
10 Action UI_LOGICAL_LINK S4CUTQRYRT Yes
parameter
15 Normal QUERY_NAME UtilitiesMessageLogDQuery
parameter
20 Normal PROFILEGROUP_ID S4CUTCTILG Yes
parameter
30 Normal SHOW_SEARCH_VIEW X Yes
parameter
40 Normal %CONTEXT_NODE% QUERYPARAMS Yes
parameter
50 Normal OBJECT CRMS4_IU Yes
parameter
60 Normal ALDATE.OPTION BT Yes
parameter
70 Normal ALDATE.SIGN I Yes
parameter
80 Normal ALDATE.HIGH SY-DATE
parameter
90 Normal ALDATE +d(SY-DATE;-5)
parameter

The logical link S4CUTQRYRT is a navigation to a general data display component.

Transaction Type BOLMT

Transaction type "BOL Method (BOLMT)" can be used to start a BOL method of an entity.
Parameter Name Parameter Type Value Value Example
METHODNAME Action parameter Name of the BOL method
of this entity
<ParameterName> Normal parameter Value for the parameter
<ParameterName> of the
method

Transaction Type OUTPL

Transaction type "OUTBOUND PLUGIN (OUTPL)" can be used to call an outbound plugin.
Parameter Name Parameter Type Value Value Example
Name Action parameter Name of the outbound NAVTOLIST
plugin

Transaction Type MENU

Transaction type "MENU (MENU)" can be used to define a menu entry. Other one-click actions can be
assigned to or subordinated to this menu item via the "Parent ID" field. Submenus are also possible. In this
way, complex and structured menus can be defined.

One-Click Actions Page 116 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Transaction type SEPAR

Transaction type "Separator (SEPAR)" can be used to define a separator within the toolbar or within menus.

Transaction type TREE

Transaction type "Tree Function (TREE)" can be used to define a one-click action for the general
functionalities of a tree. The definition of the transaction type "Tree Function (TREE)" only makes sense in
combination with the specification of a function in the field "Tree Function".

Standard tree functions:

Tree Function Description Function


No function No function
EXP_NODE Expand node Expand the current node
EXP_ALL Expand all Expand all nodes of the
tree
COL_NODE Collapse node Collapse the current node
COL_ALL Collapse all Collapse all nodes of the
tree
REFRESH Refresh Refresh the tree

Resolving the parameter values: If "Fixed" is set, the value is used as it appears in the "Value / Value
Path" field. If "Fixed" is not set, the value is determined or calculated using the expression in the "Value /
Value Path" field, as described under Value Calculation for BOL Trees, One Click Actions and Summary
Texts.

Technical details: The implementation is done in the class CL_CRMS4_IU_ACTION_STARTER.

One-Click Actions Page 117 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Transaction Type FIORI

Transaction type "FIORI Transaction Launcher Fiori Application" can be used to perform a navigation to a Fiori
application.
For this purpose, another action type was defined in the domains. This type is evaluated in the handler
class and a navigation with a firmly defined logical link is triggered.
This logical link is assigned to the business role and in turn has its own handler class defined, this class is
called with appropriate parameters.
The parameters are evaluated and the GDC is filled with the necessary values whereupon the navigation
can be executed via a URL.
The transaction /UI2/FLPCM_CUST can be used to search for semantic objects in the Fiori system and to
determine the associated roles.

One-Click Actions Page 118 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Parameter Name Parameter Type Value Value Example


SEMANTIC_ACTION Action parameter Name of a semantic action UtilitiesContract
of a fiori application
SEMANTIC_OBJECT Action parameter Name of a semantic object blockContractApp
of a fiori application
UI_OBJECT_ACTION Action parameter Action on the entity
UI_OBJECT_TYPE Action parameter Name of the type of the
entity

Example: Launch the Fiori application to lock a utilities contract.

Se- Parameter Kind Parameter Name Value Path Fixed


quence
10 Action parameter SEMANTIC_ACTION UtilitiesContract Yes
20 Action parameter SEMANTIC_OBJECT blockContractApp Yes
30 Normal parameter UtilitiesContract @ISU_CONTRACT

The normal parameters are defined in the corresponding Fiori application and must be maintained case-
sensitively in Customizing.

Transaction Type INCL

Transaction type "INCL Include Action Profile" can be used to add an action profile with its actions. This way
you can combine frequently used actions and reuse them in different places. This is also possible in action
profiles themselves. If you add a new action later in the action profile, it will be added to all including places
and adjustments and deletions will be updated as well.
In addition, you can specify here whether this inclusion should really take place. This is controlled by the
field IS_ACTIVE which can contain a calculation. Here it is to be noted that this calculation cannot be
dependent on the current object. The inclusion can only depend on the global state such as user
authorization, business role or similar.

One-Click Actions Page 119 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Transaction Type FORM

Transaction type "FORM Forms Navigation" can be used to perform a navigation to a form application.
Parameter Name Parameter Type Value Value Example
FORM_NAME Action parameter Name of Form UCAP_OV
FORM_OBJECTS Action parameter BOL objects to pass to form objects(SELF)
FORM_START_STATE Action parameter State of form on start E
E for Edit
I for Insert (Create)
L for like state of entity
FORM_AS_POPUP Action parameter for don’t navigate, show X
form in a popup
CLASSNAME Action parameter name of class for
IS_ACTIVE_METHODNAME
IS_ACTIVE_METHODNAME Action parameter static method to calculated
when this item should be
active
UI_LOGICAL_LINK Action parameter name of the link to be used
to navigate which will
override the default
Example: Starting contract account mask to be changed.
Se- Parameter Kind Parameter Name Value Path Fixed
quence
10 Action parameter FORM_NAME UCAP_OV Yes
20 Action parameter FORM_OBJECTS objects(SELF)
30 Action parameter FORM_START_STATE E Yes

The normal parameters are transferred to the form application and can be specifically evaluated there.

Transaction Type URL

Transaction type “URL” is using the browser to navigate. Thereby it is possible to open new browser tabs or
windows.

Parameter Parameter Value Value Example


Name Type
URL Action Basic URL for browser navigation https://www.google.com/maps
parameter
WINDOW_MODE Action Mode for the Browser navigation _blank
parameter
COMPONENT Action Name of the CRM UI component IUICBICOMAIN
parameter
CONTROLLER Action Name of the page resp. of the Bill.pdf
parameter controller (*.do)
CONTENT_CLASS Action Name of the class that provides the CL_IUFMINV_CONTENT_PROVIDER
parameter content for the page.
A derivative of the class
CL_IUCMISC_CONTENT_PROVIDER
All non-action parameters are appended to the navigation URL as URL parameters. This makes it possible
to transfer data from the current context.

There are 3 variants of parameter configuration according to the use case.

One-Click Actions Page 120 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

1. Classic URL navigation


The URL is specified via the URL parameter.

2. UI Component Navigation
The parameters COMPONENT and CONTROLLER are used to refer to a controller of a CRM UI
component. This is accessed directly.

3. Content Creation
For example, to open a PDF that cannot be reached directly via a URL in a separate page, a class can be
implemented that is specified via the parameter CONTENT_CLASS. The PDF is determined in this class
and is output as the content of the new page. Other documents can also be output in this way. An example
can be found in the class CL_IUFMINV_CONTENT_PROVIDER which outputs an invoice as a PDF.

Example: Display the address of a business partner on Google Maps.


Se- Parameter Kind Parameter Name Value Path Fixed
quence
10 Action parameter URL https://www.google.com/maps Yes
20 Normal Parameter q GET_MAIN_ADDRESS( )

Confirmation Dialog

To display a confirmation dialog before executing the action, the confirmation text must be stored in the
"Confirm Text Alias" field. The text must be created as OTR text (transaction SOTR_EDIT - Editor for OTR
Texts ). It can be defined as short or long text. The text should be designed as a yes/no question. To refer
to the entity/object on which the action runs in the text, text replacers with optional reference to calculations
(see Value Calculation for BOL Trees, One Click Actions and Summary Texts) can be used. The replacers
are enclosed with '{{' and '}}' characters.

Should the contract {{ CONTARCT }} of {{ UtilitiesUtilsContrContrAcctPartnerRel


/UtilsContrAcctPartnerBuilHeaderRel/GetName() }} really be cancelled?

In the "Title" field, the text for the title of the confirmation dialog is stored directly (no OTR text alias) in a
translation-relevant way.

One-Click Actions Page 121 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Query Values Via User Dialog


The "popup parameter" parameter type can be used to determine simple queries of values from the user
before executing the action.
The following variants are defined:
Variant Description User Option Result
INFORM Brings a text OK nothing
information as a popup
dialog to the display
CONFIRM Displays a text to be Yes, No, Close Yes = 'X'
confirmed as a popup No =’ ‘
DOMAIN Brings a selection to Selection, Close Domain fixed value
the display based on a
value domain
FIXED Brings a selection to Selection, Close Fixed value
the display Based on
fixed specified values
FORM Brings a form to the Selection, Close Object attributes or object(s)
display. If it is a list/tree
form a selection can be
made
CLASSMETHOD Brings a selection to Selection, Close Column value
the display based on
the supplied data of a
class method
DATALOSS Checks if something Save, Discard, Cancel Save = ‘ ’
has been changed in Cancel = ‘ ‘
the current context and
brings up the "DATA
LOSS" dialog
For the popup description there is a special built function "popup". It has the form:
popup(<variant>;(<options>);<params1>...)

For <variant> one of the variants listed above must be entered. For <options> a name-value list can be
specified to control special options. Otherwise default values apply.
Option Name Short Option Name Variant Meaning
TITLE TT all Title of the popup, window title bar
VISIBLE_ROWS VR DOMAIN, Number of visible lines of the selection
FIXED, list, more by page scrolling
CLASSMETHOD
RESULT_COLUMN RC FIXED, FIXED: number of the column to return
FORM, FORM: Calculation on the result object
CLASSMETHO (or attribute name)
TABLE_HEADER TH DOMAIN, Additional text above the output list
FIXED
Form state:
L matching the state of the object (like
entity).
FORM_STATE FS FORM
E in change state (edit)
I in create state (insert)
' ' in display state (default) (display)

One-Click Actions Page 122 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

If a multiple selection is desired, the


DOMAIN,
value 'MULTI' can be set. In this case,
SELECTION_MODE SM FIXED,
a semicolon-separated list is returned
CLASSMETHOD
as the value in the result.
The popup result is accessed with PARAMETER/<parameter_name>. For <parameter_name> is the name
of the popup parameter. If an object is expected as the result, a calculation/attribute access can be made
on the object after the <parameter_name>. The following syntax must be used:
PARAMETER/<parameter_name>/<value_path> . This can be seen in the following examples:
Variant Popup Inform
Example: Bring information dialog to show separate important information.
Sequence Parameter Parameter Name Value Path Fixed
Kind

10 Popup POPUP_INFORM popup('INFORM';(tt='Information');'This action creates


parameter logging information which can be seen in transaction
SLG1.')

Variant Popup Confirm


Example:
Sequence Parameter Parameter Name Value Path Fixed
Kind
10 Popup POPUP_CONFIRM popup('CONFIRM';(tt='Question');'Should the
parameter newly created address marked as standard
address?')
20 Normal IV_VALUE PARAMETER/POPUP_CONFIRM
Parameter

The IV_VALUE parameter receives the value 'X' or ' ' depending on whether the question is answered 'Yes'
or 'No'..
Variante Popup Domain
Example:
Sequence Parameter Parameter Name Value Path Fixed
Kind
10 Popup POPUP_DOMAIN_VALUE popup('DOMAIN';(tt='Choose action
parameter kind');'CRMS4_IU_AP_ACTION_KIND')
20 Normal IV_VALUE PARAMETER/POPUP_DOMAIN_VALUE
Parameter

The IV_VALUE parameter receives the value selected by the user from the domain fixed values.
Variant Popup Fixed
Example:
Sequence Parameter Parameter Name Value Path
Kind
10 Popup POPUP_FIXED_VALUE Popup('FIXED';(tt='Choose the variant';rc=1;th='Choose A, B
parameter C');2;'Wert';'Text';'A';'Value A';'B';'Value B';'C';'Value C')
20 Normal IV_VALUE PARAMETER/POPUP_FIXED_VALUE
Parameter

The IV_VALUE parameter receives the value selected by the user from the specified fixed values A, B and
C.
Variant Popup Form

One-Click Actions Page 123 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Example: If RESULT_COLUMN is specified in the options (RC for short), the calculation on the selected object
is executed as a value. In the simplest case it is an attribute name of the object. In the example it is the
method GET_KEY. ZTREE2 is a tree form with a list of sales contract items. The GET_KEY method is executed
on the selected sales contract item and returns the key of the item.
Sequence Parameter Parameter Name Value Path Fixed
Kind
10 Popup POPUP_FORM_VALUE popup('FORM';(tt='Choose sales contract
parameter item';rc='GET_KEY()');'ZTREE2')
20 Normal IV_VALUE PARAMETER/POPUP_FORM_VALUE
Parameter
The IV_VALUE parameter receives the value supplied by the GET_KEY method from the user selected entry of
the ZTREE2 form.
Example: If the RESULT_COLUMN option is not specified the selected object is returned. ZTREE2 is a tree form
with a list of sales contract items.
Sequence Parameter Parameter Name Value Path Fixed
Kind
10 Popup POPUP_FORM_VALUE popup('FORM';(tt='Choose sales contract
parameter item');'ZTREE2')
20 Normal IV_VALUE PARAMETER/POPUP_FORM_VALUE/OBJECT_ID
Parameter

The IV_VALUE parameter receives the value of the OBJECT_ID attribute of the ZTREE2 form entry selected by
the user.
Example: Query of the jump target. The RESULT_COLUMN option is not set. The result will be the selected
object. ZTREE2 is a tree form with a list of sales contract items.
Action Name Type Text Action Title

ZPOPUP_CALC_NAV NAV Entity Navigation Display Sales Contract Item

Sequence Parameter Kind Parameter Name Value Path Fixed

10 Popup parameter POPUP_SELECTED popup('FORM';(tt='Select');'ZTREE2')

20 Normal Parameter OBJECT PARAMETER/POPUP_SELECTED

30 Action parameter UI_LOGICAL_LINK S4CUTCTI ☑

The parameter OBJECT gets the value from the popup parameter POPUP_SELECTED which contains the
selected sales contract item. This parameter is used for navigation via the link S4CUTCTI.
Variant Popup ClassMethod
Example:

One-Click Actions Page 124 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Seque Parame Parameter Value Path Fixed


nce ter Name
Kind
10 Popup Popup('CLASSMETHOD';(tt='Choose a
POPUP_CM_V
paramet Type');'CL_CRMS4_IU_OCA_SERVICE_DOC';'CL_POPUP_TR
ALUE
er ANSACTION_TYPE_SO')
20 Normal
Parame IV_VALUE PARAMETER/POPUP_CM_VALUE
ter

The parameter IV_VALUE receives the value chosen by the user from the values of the first column (default)
supplied by the method CL_POPUP_TRANSACTION_TYPE_SO from the class CL_CRMS4_IU_OCA_SERVICE_DOC.
Variant Popup DataLoss
Example:
Sequence Parameter Kind Parameter Name Value Path Fixed

10 Popup parameter POPUP_DL_VALUE Popup('DATALOSS')

20 Normal Parameter IV_VALUE PARAMETER/POPUP_DL_VALUE

The parameter IV_VALUE receives the response chosen by the user. Save stands for 'X' and Discard for ' '.
If cancelled, processing does not continue and no value is obtained.

Action Profiles
To enable the reusability of one-click actions, the action profiles were introduced. Action Profiles can be
used to define functions that, similar to a toolbar, allow various actions to be performed. These action
profiles can be used together with the definition of forms to build customer-specific UIs with individually
adapted action options only via customizing.

One-Click Actions Page 125 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

An action profile can be defined in Customizing under SAP Utilities → Customer Engagement → General
Functions → Define Action Profiles in the Define Form area via the column Action Profile.
Mapped as independent customizing, action profiles can be defined there and OCAs can in turn be defined
for these profiles. The profiles can then be included in the BOL tree using the new include type.

For example, OCAs for displaying an entity can be integrated in different places without having to maintain
the parameters etc. anew in each case. This also makes it much easier to implement changes. For
example, only the OCA in the corresponding action profile needs to be adjusted and is then changed in all
places where the respective action profile is included.

One-Click Actions Page 126 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

In addition, it is possible to include Action Profiles in other Action Profiles.

It is also possible to reference an action profile in the One-Click actions of a BOL tree. For this purpose, in
Customizing SAP Utilities → Customer Engagement → Setting for Object Workbench → Define Object
Hierarchy and Object Attributes in the area Hierarchy → One-Click Actions, the column Ref. Action
Profile can be used.

Relation Path

Since the OCA parameters are often based on BOL entities, it is possible to specify the path to be used for
determining the BOL entity via the 'Relation Path'. For example, navigation from the contract account to the
business partner via an action profile can be enabled if the relation path from the contract account to the
business partner is specified in the include.

One-Click Actions Page 127 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Overwriting Existing Action Profiles


With existing action profiles for example actions themselves, parameters of the action or refresh actions
can be overwritten. So the type of an action can be changed and so e.g. the display of the BP can be
realized via a BOR method instead of a navigation:
SAP Utilities → Customer Engagement → General Functions → Override the Definition of the Action Profile

One-Click Actions Page 128 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

In addition, OCAs or action profiles can also be disabled via the Active attribute if they should not be
available on the UI:

Usage in the Forms

In the forms, the action profiles are stored directly at the form definition.

Only one action profile can be stored per form. However, this can integrate two different types of actions:
1. Normal actions are displayed as OCAs in the toolbar of the form.
2. Actions with "#" in front of and behind their names are not displayed and are considered invisible
actions. These are used if, for example, actions are to be executed on certain events of the form
(on build, edit, save, etc.) (see: Action Profiles in Forms in chapter Forms).

One-Click Actions Page 129 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Resolving the Action Profiles

The customizing is resolved in the CL_CRMS4_IU_BOL_TREE_SRV_ENH->RESOLVE_ACTION_PROF_INCLUDES to


integrate it into the corresponding BOL tree profiles.

Activity Types

The following activity types are available for selection:


151. TCODE - Transaction Launcher Transaction Code
152. BOR - Transaction Launcher Business Objects Repository Method
153. FOP - Transaction Launcher Front Office Process
154. TXFUN - Transaction Launcher Function Module
155. TXMET - Transaction Launcher Class Method
156. FUNC - Function Module
157. METH - Class Method
158. NAV – Entity Navigation
159. BOLMT - BOL Method
160. OUTPL - Outbound Plug
161. MENU - Menu
162. SEPAR – Separator
163. FIORI – Transaction Launcher Fiori Application
164. INCL. – Include Reference Action Profile

One-Click Actions Page 130 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Standard Action Profiles

here is an overview of already existing action profiles, which are already delivered in the standard:

One-Click Actions Page 131 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Business Objekt Entity Name Description Contains in Action Used in Tree Used in Forms
Profilen Profile

Business Builheader BP_CONFIRM Business BP_CONFIRM BP_IDENTSCRE


Partner Partner EN_MENU
Confirmation BP_SWITCH_PAR
Menu TNERS

BP_UNCONFIRM
_CONTACT_PERS
ON

BP_UNCONFIRM
_UCAP

BP_IDENTSCREEN_ Business BP_CONFIRM S4CUTMDBP5


MENU Partner Menu S4CUTMDBP6
on BP_MENU S4CUTMDBP7
Identification S4CUTMDBP8
Screen
UCAP_CREATE

BP_MENU Business BP_SHORTMENU BP_IDENTSCRE S4CUTBPOV5


Partner Actions EN_MENU S4CUTMDPO2
BP_OVERVIEW S4CUTMDPO3
_MENU

BP_OVERVIEW_ME Business BP_MENU


NU Partner Menu

One-Click Actions Page 132 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

on Overview
Screen

BP_SHORTMENU Business BP_DISPLAY BP_MENU S4CUTBPOV5


Partner Actions CP_IDENTSCRE
(Short) EN_MENU
UCAP_TB

Convergent UtilitiesCIBil CBH_MENU Convergent CBH_SHORTMEN S4CUTBPOV4


Billing lDocH Billing U S4CUTCABIL
Document Document S4CUTMDBP8
Menu

CBH_SHORTMENU Convergent CBH_FIORI_DISP CBH_MENU


Billing LAY
Document
(Short)

Convergent UtilitiesCIIn CDH_MENU Convergent CDH_DISPLAY_P S4CUTBPOV4


Invoicing vDocH Invoicing DF S4CUTCAINV
Document Document S4CUTMDBP8
Menu CDH_SHORTME
NU

CDH_SHORTMENU Convergent CDH_FIORI_DISP CDH_MENU


Invoicing LAY
Document
(Short)

One-Click Actions Page 133 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Connection Connection CON_IDENTSCREEN Connection CON_MENU S4CUTMDTO4


Object Object _MENU Object Menu on S4CUTMDTO5
Identification PRM_CONFIRM S4CUTMDTO6
Screen

CON_MENU Connection CON_SHORTME CON_IDENTSCR S4CUTBPOV5


Object Actions NU EEN_MENU S4CUTMDPO2

CON_SHORTMENU Connection CON_CHANGE CON_MENU S4CUTBPOV6


Object Actions
(Short) CON_DISPLAY

Contact Person BuilContact CP_IDENTSCREEN_ Contact Person BP_SHORTMENU S4CUTMDBP5


Person MENU Menu on S4CUTMDBP6
Identification CP_MENU
Screen

CP_MENU Contact Person CP_SHORTMENU CP_IDENTSCRE


Actions EN_MENU

CP_SHORTMENU Contact Person CP_CONFIRM CP_MENU


Actions (Short)
CP_SWITCH_PAR
TNERS

CP_UNCONFIRM

CTI_ADMIN_MENU CTI_COMPLETE

One-Click Actions Page 134 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Utilities Sales UtilitiesCon Other CTI CTI_FAIL CTI_OVERVIEW


Contract Item tractItem Actions on _SCREEN
Utilities Sales
Contract
Overview
Screen

CTI_CANCEL_MEN Utilities Sales CTI_CNCL_CHAN CTI_OVERVIEW


U Contract Cancel GE_PRODUCT _SCREEN
Menu CTI_TB
CTI_CNCL_CHNG
_END_DATE

CTI_CNCL_CHNG
_START_DATE

CTI_CNCL_MOVE
_IN

CTI_CNCL_MOVE
_OUT

CTI_CHANGE_MEN Utilities Sales CTI_CHANGE CTI_OVERVIEW


U Contract _SCREEN
Change Menu CTI_CHANGE_PR CTI_TB
ODUCT

One-Click Actions Page 135 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

CTI_CHNG_END_
DATE

CTI_CHNG_STAR
T_DATE

CTI_MENU Contract Item CTI_SHORTMEN CTI_OVERVIEW S4CUTBPOV4


U _SCREEN S4CUTBPOV5
S4CUTMDBP5
S4CUTMDBP6
S4CUTMDPO2
S4CUTMDPO3

CTI_OVERVIEW_SC Menu on CTI_ADMIN_ME S4CUTCTMO1


REEN Utilities Sales NU S4CUTCTMO2
Contract
Overview CTI_CANCEL_ME
Screen NU

CTI_CHANGE_M
ENU

CTI_MENU

CTI_PROCESS_M
ENU

One-Click Actions Page 136 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UCT_SHORTMEN
U

CTI_PROCESS_MEN Utilities Sales CTI_MOVE_IN CTI_OVERVIEW


U Contract _SCREEN
Process Menu CTI_MOVE_OUT CTI_TB

CTI_MOVE_TO_
OTHER_PRM

CTI_SHORTMENU Contract Item CTI_DISPLAY CTI_SHORTME S4CUTCACTI


(Short) NU S4CUTCTIPF

CTI_TB Contract Item CTI_CANCEL_ME CTI_OV


Toolbar NU

CTI_CHANGE_M
ENU

CTI_PROCESS_M
ENU

UCM_OV Actions for #AUTO_SELECT_ UCM_OV


Utilities Sales SINGLE_HIT#
Contract
Overview #BEFORE_FIRST_
OUTPUT#

One-Click Actions Page 137 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

#BEFORE_OUTP
UT#

#CONTEXT_INITI
ALIZE#

Device UtilitiesDevi DEV_MENU Device menu DEV_SHORTMEN S4CUTBPOV6


ce U S4CUTMDPO2
S4CUTMDTO5
S4CUTMDTO6

DEV_SHORTMENU Device short DEV_DISPLAY DEV_MENU S4CUTUDOLT


menu

Installation UtilitiesInst ILN_MENU Installation ILN_SHORTMEN S4CUTBPOV4


allation menu U S4CUTBPOV5
S4CUTBPOV6
S4CUTMDPO2
S4CUTMDTO5

ILN_SHORTMENU Installation DISPLAY ILN_MENU


short menu INSTALLATION

Point of PointOfDeli POD_IDENTSCREEN Point of POD_MENU S4CUTMDTO4


Delivery very _MENU Delivery Menu S4CUTMDTO5
on PRM_CONFIRM S4CUTMDTO6
Identification
Screen

One-Click Actions Page 138 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

POD_MENU Point of POD_SHORTME POD_IDENTSCR S4CUTBPOV4


Delivery Actions NU EEN_MENU S4CUTBPOV5

POD_SHORTMENU Point of POD_CHANGE POD_MENU S4CUTBPOV6


Delivery Actions
(Short) POD_DISPLAY

Premise Premise PRM_CONFIRM Premise PRM_CONFIRM CON_IDENTSCR


Confirmation EEN_MENU
Actions PRM_UNCONFIR PRM_IDENTSCR
M EEN_MENU
POD_IDENTSCR
EEN_MENU

PRM_IDENTSCREEN Premise Menu PRM_CONFIRM S4CUTMDTO4


_MENU on Identifiation S4CUTMDTO5
Screen PRM_MENU S4CUTMDTO6

PRM_MOVE_IN

PRM_MENU Premise Actions PRM_SHORTME PRM_IDENTSCR S4CUTBPOV4


NU EEN_MENU S4CUTBPOV5
S4CUTBPOV6

PRM_SHORTMENU Premise Actions PRM_CHANGE PRM_MENU


(Short)
PRM_DISPLAY

One-Click Actions Page 139 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Register UtilitiesRegi REG_MENU Register menu REG_SHORTMEN S4CUTBPOV6


ster U S4CUTMDPO2
S4CUTMDTO5
S4CUTMDTO6
S4CUTUREG

REG_SHORTMENU Register short REG_DISPLAY REG_MENU


menu

Business BuilRelation REL_IDENTSCREEN Relations Menu REL_MENU S4CUTMDBP5


Partner ship _MENU on S4CUTMDBP6
Relationship Identification
Screen

REL_MENU Business DELETE_RELATIO REL_IDENTSCRE


Partner NSHIP EN_MENU
Relationship
Menu REL_SHORTMEN
U

REL_SHORTMENU Business BP_DISPLAY REL_MENU S4CUTBPOV4


Partner
Relationship
Menu (Short)

Contract UtilsContrA UCAP_BILLDOC_ME Contract UCAP_BILLDOC_ UCAP_IDENTSC


Account cctPartner NU Account Billing CREATE REEN_MENU

One-Click Actions Page 140 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Document
Menu UCAP_BILLDOC_
DISPLAY

UCAP_BILLDOC_
REVERSE

UCAP_CONFIRM Contract UCAP_CONFIRM UCAP_IDENTSC


Account REEN_MENU
Confirmation UCAP_UNCONFI
RM

UCAP_FORM Contract #BEFORE_CANCE


Account L#
Formular
#CREATE#

#EDIT#

#SAVE#

UCAP_IDENTSCREE Contract UCAP_BILLDOC_ S4CUTMDBP5


N_MENU Account on MENU S4CUTMDBP6
Identification S4CUTMDBP8
Screen UCAP_CONFIRM

UCAP_INVOICIN
G

One-Click Actions Page 141 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UCAP_MENU

UCAP_MOVE_IN

UCAP_INVOICING Utilities UCAP_FIORI_INV UCAP_IDENTSC


Contract OICING_OVERVI REEN_MENU
Account EW
Invoicing

UCAP_MENU Contract UCAP_CHANGE UCAP_IDENTSC S4CUTBPOV5


Account Menu REEN_MENU S4CUTMDPO2
UCAP_CREATE

UCAP_CREATE_F
ROM_TEMPLATE

UCAP_SHORTME
NU

UCAP_SHORTMEN Contract UCAP_DISPLAY UCAP_MENU S4CUTBPOV4


U Account Menu UCT_TB
(Short)

UCAP_TB Contract BP_SHORTMENU UCAP_OV


Account
Toolbar UCAP_FORM

One-Click Actions Page 142 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UCAP_TB_FORM_B Contract BACK_TO_LIST UCAP_BP_BANK_DE


P_LISTS Account TAILS
Toolbar for UCAP_BP_PAYMEN
Business T_CARDS
Partner List UCAP_BP_SEPA_MA
Forms NDATES

Utilities UtilitiesUtils UCT_BP_OV_MENU ISU Contract UCT_MENU S4CUTBPOV4


Contract Contr Menu on BP S4CUTBPOV5
Overview
screen

UCT_CANCEL_MEN ISU Contract UCT_CANCEL_M UCT_PROCESS_


U Cancel OVE_IN MENU
Processes Menu UCT_TB
UCT_CANCEL_M
OVE_OUT

UCT_CHANGE_ME ISU Contract UCT_CHANGE_M UCT_PROCESS_


NU Change OVE_IN_DATE MENU
Processes Menu UCT_TB
UCT_CHANGE_M
OVE_OUT_DATE

UCT_FORM_CHAN Utilities #BACK# UCT_OV_CHANGE_


GE_MI_DATE Contract MI_DATE
Formular #BEFORE_SAVE#

One-Click Actions Page 143 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Change Move-
In Date #CONTEXT_FINIS
HED#

#SAVE#

UCT_FORM_CHAN Utilities #BACK# UCT_OV_CHANGE_


GE_MO_DATE Contract MO_DATE
Formular #BEFORE_SAVE#
Change Move-
Out Date
#CONTEXT_FINIS
HED#

#SAVE#

UCT_MENU ISU Contract UCT_PROCESS_ UCT_BP_OV_M S4CUTMDBP5


Menu MENU ENU S4CUTMDBP6
S4CUTMDPO2
UCT_SHORTMEN
U

UCT_PROCESS_ME ISU Contract UCT_CANCEL_M UCT_MENU


NU Process Menu ENU

UCT_CHANGE_M
ENU

UCT_MOVE_IN

One-Click Actions Page 144 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UCT_MOVE_OUT

UCT_PROCESS_ME ISU Contract UCT_CHANGE_M


NU_TCODE Process Menu OVE_IN
via Transaction
launcher UCT_CHANGE_M
OVE_OUT

UCT_REVERSE_
MOVE_IN

UCT_REVERSE_
MOVE_OUT

UCT_SHORTMENU Utilities UCT_DISPLAY CTI_OVERVIEW S4CUTCACTI


Contract Menu _SCREEN S4CUTMDPO3
(Short) UCT_MENU

UCT_TB Utilities UCAP_SHORTME UCT_OV


Contract NU
Toolbar
UCT_CANCEL_M
ENU

UCT_CHANGE_M
ENU

UCT_FORM

One-Click Actions Page 145 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Utilities UtilsDiscon UDO_MENU Disconnection UDO_SHORTME S4CUTBPOV6


Disconnection nectionObj Object Menu NU S4CUTMDPO2
Object S4CUTMDTO5

UDO_SHORTMENU Disconnection UDD_DISPLAY UDO_MENU


Object Menu
(Short)

Utilities Invoice UtilitiesInvo UID_MENU Utilities UID_SHORTMEN S4CUTBPOV4


Document iceDoc Invoicing U S4CUTCAINV
Document S4CUTMDBP8
Menu

UID_SHORTMENU Utilities UID_DISPLAY UID_MENU


Invoicing
Document UID_DISPLAY_PD
Menu (Short) F

UID_TB Utilities UID_DISPLAY_PD UID_OV


Invoicing F
Document
Toolbar Menu

Utilities UtilitiesMai UMO_MENU Utilities UMO_SHORTME S4CUTBPOV4


Maintenance ntenanceOr Maintenance NU S4CUTBPOV5
Order d Order Menu S4CUTBPOV6
S4CUTMDBP7
S4CUTMDTO5

One-Click Actions Page 146 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UMO_SHORTMENU Utilities UMO_DISPLAY UMO_MENU


Maintenance
Order Menu
(Short)

Product UtilitiesPro UPD_SEARCH_COM Actions for #BEFORE_FIRST_ UPD_SEARCH_COM


duct PARED_PRODUCT Utilities Product OUTPUT# PARED_PRODUCT
Search -
Compared #BEFORE_OUTP
Product Area UT#

#CONFIG_COMP
ARED_PRODUCT
#

#SELECT_AS_PR
ODUCT#

#SUBMIT_ON_E
NTER#

UPD_SEARCH_LIST Actions for #AUTO_SELECT_ UPD_SEARCH_LIST


Utilities Product SINGLE_HIT#
Search

UPD_SEARCH_LIST UPD_ADD_TO_C S4CUTUPDSR


_TREE OMPARE

One-Click Actions Page 147 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Actions for UPD_SELECT_PR


Utilities Product ODUCT
Search (Tree)

UPD_SEARCH_SELE Actions for #BEFORE_FIRST_ UPD_SEARCH_SELE


CTED_PRODUCT Utilities Product OUTPUT# CTED_PRODUCT
Search -
Selected #BEFORE_OUTP
Product Area UT#

#CONFIG_SELEC
TED_PRODUCT#

#SIMULATE#

#SUBMIT_ON_E
NTER#

Utilities Service UtilitiesServ USOM_MENU Utilities Service USOM_SHORTM S4CUTBPOV4


Order (Maint.- iceOrder Order (Maint.- ENU S4CUTBPOV5
Cent.) Cent.) Menu S4CUTBPOV6
S4CUTMDTO5

USOM_SHORTMEN Utilities Service USOM_DISPLAY USOM_MENU S4CUTMDBP7


U Order (Maint.-
Cent.) Menu
(Short)

One-Click Actions Page 148 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UtilitiesService UtilitiesServ USO_MENU Utilities Service USO_SHORTMEN S4CUTBPOV4


Order iceOrder Order Menu U S4CUTBPOV5
S4CUTBPOV6
S4CUTMDTO5

USO_SHORTMENU Utilities Service USO_DISPLAY USO_MENU S4CUTMDBP7


Order Menu
(Short)

One-Click Actions Page 149 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

One-Click Actions for IS-U Processes

SAP Utilities → Customer Engagement → General Settings →Define Action Profiles

ISU Processes One-Click Actions


Move-In UCT_MOVE_IN
Reverse Move-In UCT_REVERSE_MOVE_IN
UCT_CANCEL_MOVE_IN
Change Move-In UCT_CHANGE_MOVE_IN
UCT_CHANGE_MOVE_IN_DATE
Move-Out UCT_MOVE_OUT
Reverse Move-Out UCT_REVERSE_MOVE_OUT
UCT_CANCEL_MOVE_OUT
Change Move-Out UCT_CHANGE_MOVE_OUT
UCT_CHANGE_MOVE_OUT_DATE

Refresh Action
Refresh Actions can be used to enable updating of data in the UI. This is particularly important when using
Transaction Launcher actions. These run in a separate session. The changes to data in this session are
not automatically visible in the UI session. To trigger the update of this data, there are refresh actions.

Customizing

When maintaining the tree profiles with the One Click Actions, the Refresh Actions can be assigned.
Several Refresh Actions can be assigned to a One Click Action. The customizing for this is integrated in the
view cluster CRMS4_IU_IC_BOLTREE. To be found in the IMG under: SAP Utilities → Customer Engagement
→ Settings for Object Workbench → Define Object Hierarchy and Object Attributes.

One-Click Actions Page 150 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Refresh Actions can also be assigned to actions in the action profile. To be found in the IMG under: SAP
Utilities -> Customer Engagement -> General Functions -> Define Action Profiles or Override the Definition
of the Action Profiles.

In the assignment you can define when the refresh should be executed. Normally this is immediately after
the execution of the action. For some actions like navigation or transaction launcher this time is too early. In
this case, the "When to perform" field can be used to specify that the refresh should only be executed when
the user returns to the triggering page.

Standard Refresh Actions

Delivery in class CL_CRMS4_IU_BOL_REFRESHER:

BUSINESSPARTNER_BUFFER Initializing the buffer/cache of the business partner


COMPLETE_BOL Initialize the complete data cache of the CRM UI This can
have various side effects and should only be used selectively
CONTRACTACCOUNT_BUFFER Initialize the buffer/cache from the contract account
NODE_ENTITY Initializing the current record
NODE_ENTITY_CHILDS Initializing the current record and its dependent subsets
PARENT_NODE_ENTITY Initializing the parent record
PARENT_NODE_ENTITY_CHILDS Initializing the parent record and its dependent child records
TREE_ENTITIES Initializing all records
TREE_ENTITIES_CHILDS Initialize all records and its dependent subsets
REFRESH_TREE Like TREE_ENTITIES_CHILDS, at the end a new tree structure
is additionally forced.

Customer-specific Refresh Actions can be created in the Z namespace and can then be assigned to the
respective One Click Actions. To be found in the IMG under: SAP Utilities → Customer Engagement →
Object Workbench Settings → Define Refresh Action

Technical Details

The implementation is done in the classes CL_CRMS4_IU_ACTION_STARTER and


CL_CRMS4_IU_BOL_REFRESHER.

One-Click Actions Page 151 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Resolution Of The Parameter Values

If Fixed is set, the value is used as it is in the Value Path. If Fixed is not set the Value Path is determined
as described in chapter Value Calculation for BOL Trees, One Click Actions and Summary Texts.
With one-click actions a button is added to the BOL tree node level which provides a quick access to
certain functions. These buttons and functions can be customized. One-click actions use parameters

VALUE CALCULATION FOR BOL TREES, ONE CLICK ACTIONS AND SUMMARY
TEXTS
In the Customizing of SAP Utilities → Customer Engagement → Settings for Object Workbench → Define
Object Hierarchy and Object Attributes some text fields allow to enter a value calculation. The text entered
is checked to establish whether it refers to data in the current context. If there is no reference to a value in
the context, the text entered is taken as the value.
The value calculation is for example used in summary texts as follows:
{{ CONTRACTITEM/out(DATE;@IL_CONTSTART) }} - {{
out(DATE;+d(CONTRACTITEM/@IL_CONTSTART;-1)) }} provides the start and end date of a sales
contract and is displayed as 01.01.2020 - 31.12.2020.

Value Calculation for BOL Trees, One Click Actions and Summary Texts Page 152 from 271
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Example of value calculation in the summary text

BuildIn Attributes
BuildIn Attributes can be used to enhance the related objects of value path.
You can use:
Name Meaning
#CHILDREN Amount of all direct children
#ALLCHILDREN Amount of all children and children’s children

The text entered in Customizing is checked to see whether it refers to data in the current context.
If there is no reference to a value in the context, the text entered is taken as the value.
If you do not want to refer to the context with the value, you can place the value in quotation marks.
Example: 'SY-DATUM' returns the text SY-DATUM, not the current date.

SY - Values from the application server environment

Values from structure SYST. Example.: SY-DATUM

SYST Fields

Field name Description


UZEIT Current Time of Application Server
DATUM Current date of application server
UNAME Name of Current User
DATLO Local Date of Current User
TIMLO Local Time of Current User
ZONLO Time Zone of Current User

GDC - Values from the Global Data Context

Value Calculation for BOL Trees, One Click Actions and Summary Texts Page 153 from 271
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Get entities from the Global Data Context of the Interaction Center and then continue as with Entity
Attributes, Path + Attributes, Entity Methods, or BuiltIn Methods.

Structure is: GDC-<Name of Context>/<BPath>

GDC Examples

Example Desciption Example result


GDC- Last name of current customer Mustermann
CURRENTCUSTOMER/LASTNAME
GDC- Name of the customer Max Mustermann
CURRENTCUSTOMER/GetName()

Form – Values from the Context of a Form

This is only possible if the action is executed within a form (for example in a toolbar).
Determine the current entity of a model context in a form.
Structure is FORM-<Name of Context>/<BPath>
Example: FORM-CONTEXTOBJECTS/@IL_CONTSTART

Entity Attribute

@AttributeName (without Formatting)

//AttributeName (with Formatting)

@TEXT/AttributeName@ Textdarstellung des Attributes (Property Text)

Path + Attribute

Relation/@AttributeName

Relation1/Relation2/AttributeName

Entity Methods

Method(Param1=Value1;Param2=Value2...)

BuildIn Methods
You can call BOL methods from current BOL entity of the node. There must be this method in the BOL
model.
165. Transaction: GENIL_MODEL_BROWSER
166. in BL handler, these methods must be defined in the metadata
You can also use registered methods from class CL_CRMS4_IU_MISC with method REGISTER_METHOD.
Methods can also be called via a path. The method will be called from the first object of the relation.
167. at the Premise PremiseConnObjRel/GET_SHORT_WITH_STREET( ) to call the connection object
method GET_SHORT_WITH_STREET

Value Calculation for BOL Trees, One Click Actions and Summary Texts Page 154 from 271
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Method Designatio Area Signature


Name n What does it do?
? HAS_VALU ?(v;a;b)
E if v is not empty then deliver a otherwise b.
HasValu HAS_VALU
e E
#? HAS_COUN #?(v;a;b)
T #?(v;a;b;c)

if v = 1 then deliver a otherwise b


is v = 1 then deliver a is v = 0 then deliver c otherwise b

HasCou HAS_COUN
nt T
|| CONCAT ||(a;b)
||(a;b;c...)

Merge all parameters to one text


\\ CONCAT
Concat CONCAT
nvl NVL nvl(a;b)
nvl(a;b;c...)

ist a leer liefere b sonst a


ist a leer ist b leer liefere c sonst b sonst a

switch SWITCH switch(v;c1;r1;c2;r2;..;..;e)


is value v = c1 supply r1 otherwise is v = c2 supply r2 otherwise supply e
case SWITCH
tip TIP tip(text;tooltip)
get text text combined with tooltip tooltip
icon ICON Tree icon(iconname)
icon(iconname;tooltip)
icon(iconname;tooltip;color)
get the icon representation for the icon with name iconname and tooltip tooltip
and color color

currency CURRENCY currency(amount;currency)


provides display for amount and currency
count COUNT count(relationname)
get number of objects of the relation relationname
msg MESSAGE msg(msgID;number;v1;v2;v3;v4)
delivers message in current language with the values v1, v2, v3 and v4
messag MESSAGE
e
otr OTR otr(otr_alias)
otr(otr_alias;language)
get OTR text of the alias otr_alias
out OUTPUT out(op;v)
out(op;v;f)
For op the following values are possible:
ALPHA
UPPER
LOWER
DATE
TIME
DATETIME
Formatting is possible by DATE, TIME und TIMESTAMP. For f the following
values are possible
RAW
SPACE
ISO

Value Calculation for BOL Trees, One Click Actions and Summary Texts Page 155 from 271
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

USER
ENVIRONMENT
get corresponding representation from value v to operation op with format f
output OUTPUT
in INPUT in(op;v)
in(ALPHA;v;z)
For op the following values are possible: ALPHA
interprets value v accordingly op in internal representation
input INPUT
brf BRF brf(functionname;p1=v1;p2=v2...)
calls BRF+ function “function name” and passes parameter p1 with value v1,
parameter p2 with value v2, and so on. The result of the call of the BRF+
function
value VALUE
struct VALUE struct(struct;f1=v1;f2=v2;..)
Creates data of the structure struct and sets the fields f1 with value v1, f2 with
v2 and so on.
= SET name=v
=(name;v)
sets variable with name name on value v
set SET
() RUN (e1;e2...)
carries all the expressions e1, e2 ... one after the other and returns the result
of the last expression
run RUN run(e1;e2...)
?? COMPARE ??(op;v1;v2)
??(op;v1;v2;v3)
Possible values for op:
=
<>
<
<=
>
>=
BT
Compares v1 and v2 according to the comparison operation.. Are v1 and v2
numbers, the comparison is performed as a number. Otherwise, the
comparison is performed as text.
compar COMPARE
e
if IF if(c;v1;v2)
Checks condition (value) c if a value is contained (not empty) v1 is delivered
otherwise v2. If v2 is not specified, empty is delivered
+ ADD +(v1;v2...)
Adds all transferred numbers (if a value is not a number, this value is not
considered)
add ADD
- SUB -(n;v1;v2...)
Subtracts from n all further values v1, v2 Values that are not numbers are
evaluated as 0.
sub SUB
+d ADD_DAYS +d(date;days)
+d(date;d1;d2...)
Added to date date the days days
add_day ADD_DAYS
s
link LINK Tree link(text;tooltip;icon;color;link_id)
creates a link as text, icon or both. Value color defines the color of the icon.
The value link_id must be defined in the One Click Actions (OCA).

link(text;tooltip;icon;color;attribute_name)

Value Calculation for BOL Trees, One Click Actions and Summary Texts Page 156 from 271
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

creates a link as text, icon or both. Value color defines the color of the icon.
The attribute_name value must be an attribute of the entity and a link mode
must be specified in BL Customizing.
object OBJECT object(reference)
reference can be SELF or a relation to objects based on the given entity or
resolver
html_col HTML_COL Summa html_color(semantic)
or OR ry returns color for semantic with name semantic
html_ico HTML_ICO Summa html_icon(icon_name;color|semantic;size)
n N ry returns html code for displaying icon with name icon_name in size size
(default 16) and color color or sematic color semantic.
tree(PROF_ID|NODE_ID|PARENT_NODE_ID|PRES_ID|
NODE_VAL CHILD_NODES|CHILDS|SELECTION|SUBSCRIBER|EVENT_SERVIC
tree Tree
UE E|
EVENT_ENTITY|EVENT_NODE)
liefert Customizing Werte der Knotenebene oder ähnlich wie object eine
Liste der Objekte
not(expression)
not NOT checks expression for empty and returns X if it is empty otherwise
SPACE
and(e1;e2;...)
and AND prüft ob alle angegebenen Ausdrücke e1, e2 .. nicht leer sind (einen Wert
haben) und liefert X otherwise SPACE
or(e1;e2;...)
or OR checks if all given expressions e1, e2 .. are not empty (have a value) and
returns X ansonsten SPACE
authority(authority_object_name;id1=value1;id2=va
lue2...)
checks if the current user has authority_object_name ame
authorit AUTHORIT
y Y permission with the corresponding values value1, value2... on the
id1, id2... permission fields. has. If the value contains <<DUMMY>> this
field is checked with DUMMY (see AUTHORITY-CHECK in the SAP ABAP
documentation).
entity('NAME')
returns the technical name of the entity in the BOL framework

entity('ATTR_STRUCT_NAME')
returns the attribute structure of the entity in the BOL framework

entity('KEY_STRUCT_NAME')
returns the key structure of the entity in the BOL framework

entity('PROPERTY_TEXT';attribute_name)
returns the text representation for the attribute attribute_name with the
current value of the attribute, alternatively
@TEXT/attribute_name or @TEXT/attribute_name@ can be
entity ENTITY written as well.
entity('CHANGEABLE')
returns X if the entity is in change mode otherwise ' ' (empty)
entity('CHANGE_ALLOWED')
returns X if change mode may be entered for the entity otherwise
' ' (empty)
entity('LOCKED')
returns X if a technical lock is set for the entity otherwise ' ' (empty)
entity('PERSISTENT')
returns X if the entity is stored in the database otherwise ' ' (empty)
entity('EXISTS')
returns X if the entity is available otherwise ' ' (empty)
entity('ATTRIBUTE_EXISTS';attribute_name)
returns X if the entity has the attribute attribute_name otherwise ' ' (empty)

Value Calculation for BOL Trees, One Click Actions and Summary Texts Page 157 from 271
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

entity('KEY_TEXT')
returns the key of the entity as text, it is taken into account if the entity has a
GET_KEY method or the property KEY
entity('KEY_TEXT_TIP')
returns the key of the entity as text with the tooltip as from
entity(SUBJECT_KEY_TEXT)
entity('SUBJECT')
returns the object identifier of the entity in the current language in singular
entity('SUBJECT_KEY_TEXT')
returns the text from SUBJECT and KEY_TEXT
entity('SUBJECT_PLURAL')
returns the object identifier of the entity in the current language in plural form
entity('SUBJECT_COUNT';count[;'entity_name'])
returns the object identifier of the entity or the entity named entity_name in the
current language depending on the count; for count 1 singular otherwise plural
entity('LINK_OCA';link_id)
only usable in the presentation profile of a tree!
creates a link to the OCA with Id link_id, the text and tooltip is determined
fitting to the entity
context('WINDOW')
returns current CRM UI window as parameter for method calls
(CL_BSP_WD_WINDOW)
context('FORM')
returns current FORM as parameter for method calls
(IF_CRMS4_IU_FM_API)
context('OBJECTS')
get the bound objects from the current FORM (IF_CRMS4_IU_FM_API) and if
there are any 'X'.
context('OBJECT')
get the bound object from the current FORM (IF_CRMS4_IU_FM_API) and if
there is one 'X'.
context('FORM_CONTEXT')
returns the context object of the form
context('FORM_STATE')
get the state of the current FORM like DISPLAY, CHANGE, CREATE
context('FORM_NAME')
get the technical name (UCAP_OV) from the current FORM
context CONTEXT context('FORM_IS_CHANGE_ALLOWED')
get from the current FORM if it is possible to change to the change mode
context('FORM_IS_CREATE_ALLOWED')
get from the current FORM whether it is possible to switch to create mode
context('FORM_PARAMETER';<NAME>)
get the value of the parameter <NAME> of the form or its parent form
context('SELECTION')
get the current selection from the current FORM or TREE
context('SELECTION_COUNT')
returns the current number of selected objects from the current FORM or
TREE.
context('SELECTION_COUNT';<OBJECTTYPE>)
get from the current FORM or TREE the current number of selected objects of
type <OBJECTTYPE>.
context('BUSINESS_ROLE')
get the current business role (S4C_UT_IC)
context('IS_ENTERPRISE_EDITION')
returns X if the Enterprise Edition of Customer Engagement is used

objectfind(profile_name;target_name[;bpath])
returns number of found objects via the object finder profile profile_name
objectfin OBJECTFIN
d D with target type target_name and sets the objects as result of the overall
expression. The current entity is used as the source object or optionally
objects supplied by the current entity via the BPath bpath.
attr(<NAME>)
attr ATTR returns value of the <NAME> attribute of the current entity. Especially for
calculation fields, text fields and icon fields.

Value Calculation for BOL Trees, One Click Actions and Summary Texts Page 158 from 271
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

address(resultmode;bpnumber)
returns the default address corresponding to resultmode for the
business partner bpnumber
resultmode can have following values: SHORT, SHORT_STREET,
SHORT_NO_NAME, LETTER
address('BP';resultmode;[addresstype];bpnumber)
returns the default address corresponding to resultmode for the
business partner bpnumber
address ADDRESS addresstype can have the following values: 1 (Organization,
Company); 2 (Private address); 3 (Contact person (in company))
if addresstype is not filled then 1 is assumed
address('ADDR';resultmode;addresstype;addrnumber[,pers
onnumber])
returns the address according to resultmode for
the addrnumber, for persons the personnumber must be
specified
returns the rounded number of <value> corresponding to the decimal
places <decimals> in <mode>. mode.
The following values can be specified for <mode>:
HALB_UP The value is rounded down to the nearest rounded value. If the
value is exactly halfway between two rounded values, it is rounded down from
zero (commercial rounding).
HALF_DOWN The value is rounded down to the nearest rounded value. If the
value is exactly in the middle between two rounded values, it will be rounded
to zero.
round ROUND HALF_EVEN The value is rounded down to the nearest rounded value. If the
value is exactly in the middle between two rounded values, it is rounded to the
value whose last digit is an even number.
UP The value is always rounded away from zero or to the larger absolute
value.
DOWN The value is always rounded away from zero or to the smaller
absolute value.
UP The value is always rounded in the positive direction or towards the larger
value.
FLOOR The value is always rounded in the positive direction or towards the
larger value.
*(<faktor1>[;<faktor2>[;<faktor3>...]])
* MUL
multiplies all arguments together.
:(<dividend>;<divisor1>[;<divisor2>...])
: DIV
divides the number <dividend> with the following arguments .
text_cas TEXT_CAS
text_case(<entity_name>[;<plural>[;<text_case>]])
e E
Access to texts from BL Customizing with singular, plural and TextCase
Examples

Metho Example Example Results


ds
Name
? ?(E;1;2) 2
?(E;1) 1
?(A;1) 42
?(A;1;2) 1
#? #?(A;1;2) 2
#?(ONE;1;2) 1
#?(ZERO;1;2;3) 3
#?(ZERO;1;2) 2

||

Value Calculation for BOL Trees, One Click Actions and Summary Texts Page 159 from 271
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

||()
||(;)
||(A;B) 4223
||(A;B;XYZ) 4223XYZ

nvl nvl(E;A) 42
nvl(E;E;B) 23
nvl(E;E)
nvl()
switch switch(A;1) 1
switch(A;B;1)
switch(A;B;1;2) 2
switch(A;B;1;A;2) 2
switch(A;B;1;C;2;3) 3

tip tip(A) ^42


tip(A;B) 42^23

icon icon(customize) sap-icon://customize


icon(sap-icon://alert) sap-icon://alert
icon(customize;NAME) sap-
icon(alert;NAME;red) icon://customize^Hans
_Müller
sap-icon://
alert^#(red)Hans_Müll
er
currenc currency(A;C) 42,00 EUR
y

count

msg msg(CRMS4_IU_IL_BASE;000) Internal error.


msg(CRMS4_IU_IL_BASE;001;A;B) Over 23 42 for this
selection.

messag
e
otr otr(CRMS4_IU_IL_CTM/
UTILITIESCONTRACT) Supply contract
otr(CRMS4_IU_IL_CTM/ (distribution)
UTILITIESCONTRACT;EN)
otr(UNKNOWN;SY-LANGU) Utilities Sales Contract

out out(ALPHA;NUM) 42
out(UPPER;NAME) HANS MÜLLER
out(LOWER;NAME) hans müller
out(DATE;D) 17.07.2019
out(DATE;D;ISO) 2019-07-17
out(%UNKNOWN%;D) 20190717
out(TIME;Z) 16:17:18
out(DATETIME;
20190717124223.000) 17.07.2019 12:42:23
in in(ALPHA;A;5) 00042
in(%UNKNOWN%;A;5) 42

brf

Value Calculation for BOL Trees, One Click Actions and Summary Texts Page 160 from 271
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

value

struct struct(CRMS4S_IU_FUNC_PARAM; '42


NAME=A;VALUE=B) 23'

= set(A2;||(A;B)) 4223
A2=||(A;B) 4223

() (A2=||(A;B);A2=||(A2;A2)) 42234223
run(set(A2;X);set(A2;||(A2;A2))) XX

?? ??(=;A;B)
??(=;A;A) X
??(=;A;42) X
??(<;A;B)
??(>;A;B) X
??(bt;30;B;A) X

if if(??(=;A;B);YES;NO) NO
if(??(>=;A;B);YES;NO) YES

+ +(A;B) 65

- -(A;B) 19

+d +d(D;1) 20190718
+d(D;-365) 20180717

link link(A;||(tooltip ;A);icon(alert); -->(42;


red;my_link_id) tooltip_42;e053;
red;my_link_id)

object object(SELF)

html_co
lor

fhtml_ic
on
not( ) X
not(A)
not
not(E) X
not(ABC)
and(A;E)
and
and(A;not(E)) X
or(A;E) X
or
or(not(A);E)
authority(E_INSTLN;BEGRU=<<DUMMY>>;ISU_ACTIVT=01;ISU_AKLASS=<
authorit X
<DUMMY>>;SPART=01)
y
authority(S_USER_AGR;ACT_GROUP=TESTGROUP;ACTVT=01)
ConnectionObject
entity(NAME)
CRMS4S_IU_CON_A
entity(ATTR_STRUCT_NAME)
entity TTR
entity(PROPERTY_TEXT;CHCKSTATUS)
nicht geprüft
@TEXT/CHCKSTATUS
nicht geprüft
context context(BUSINESS_ROLE) S4C_UT_IC

Value Calculation for BOL Trees, One Click Actions and Summary Texts Page 161 from 271
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

attr attr('COUNTRY_TEXT') Germany


*()
* *(2;3;4;5;6;7;8;9) 362880
*(A;B) 966
:()
:(A) 42
:(UNKNOWN) 0
:
:(UNKNOWN;2) 0
:(362880;2;3;4;5;6;7;8) 9
:(*(A;4);2) 84
round()
round(UNKNOWN)
round(A;UNKNOWN) 42
round(A;2) 42.2
round(42.23;1) 43
round(42.23;0;UP) 42
round
round(42.23;0;DOWN) 42
round(42.5;0;HALF_EVEN) 42
round(41.5;0;HALF_EVEN) 1
round(:(A;B);0;FLOOR) 2
round(:(A;B);0;HALF_UP)

text_ca Maintenance Service


EXT_CASE('UtilitiesServiceOrder';'X';3)
se Orders

Strings within methods can be enclosed with ' to get leading and trailing blanks
Example: ||(otr(text);' : ';@Attribut)
Examples are made in language DE and country DE.
Variable assignment used for the examples:
Name Value
E
ONE 1
ZERO 0
A 42
B 23
C EUR
D 20190717
NUM 00042
NAME Hans Müller
Z 161718

Within a BOL Tree

PARENT/@Attribute1

PARENT/PARENT/@Attribute1

ROOT/@Attribute1

Proposals for presentation profiles in the data environments

• Should the column contain navigation to an object?


o Can the object be accessed via object-based navigation?
▪ Check Is Link field

Value Calculation for BOL Trees, One Click Actions and Summary Texts Page 162 from 271
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

▪ Field Column Format entity(‘KEY_TEXT_TIP’)


o Can the object be accessed via a One Click Action (OCA)?
▪ Do not check the Is Link field
▪ Field Column Format entity(‘LINK_OCA';'<OCA_ID>’)
• <OCA_ID> must be replaced by the ID/name of the OCA
o Can the object be accessed via a field/foreign key?
▪ Is the link to the corresponding attribute defined in BL Customizing??
• Do not check the Is Link field
• Field Column Format entity(‘LINK_OCA';'<ATTRIBUTE_NAME>’)
o <ATTRIBUTE_NAME> replace with the name of the attribute that
establishes the relationship
o Only key
▪ Field Column Format entity('KEY_TEXT_TIP')
o Key with object name
▪ Field Column Format entity('SUBJECT_KEY_TEXT')
• Display of the object name
o Field Column Format entity('SUBJECT')

Value Calculation for BOL Trees, One Click Actions and Summary Texts Page 163 from 271
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

CURRENTLY SUPPORTED BUSINESS OBJECTS


Object Name Technical Name Support Alternative Object Professional Name Comment Available
From
Release
Quotation No
Sales Order No UtilitiesContract Utilities Sales Contract 1909
Service Order IsuServiceOrder No UtilitiesServiceOrder PM until 2025, 2021
currently
redesign
Service Request No UtilitiesServiceRequest PM until 2025, 2022
currently
redesign
Service Notification IsuServiceNotification No PM until 2025,
currently
redesign
Complaint No
Question No
Request No
ISU- Connection Object IsuConnectionObject Expiring ConnectionObject Connection Object Harmonized 1809
ISU-Contract IsuContract Expiring UtilitiesUtilsContr Utilities Contract Harmonized 2020
ISU-Device IsuDevice Expiring UtilitiesDevice Device Harmonized 2020
ISU-Installation IsuInstallation Expiring UtilitiesInstallation Installation Harmonized 2020
ISU-Premise IsuPremise Expiring Premise Premise Harmonized 1809
ISU-Point of Delivery IsuPointOfDelivery Expiring PointOfDelivery Point of Delivery Harmonized 1809
ISU-Register IsuRegister Expiring UtilitiesRegister Register Harmonized 2020
BuAg BuAg Expiring UtilsContrAcctPartner Contract Account Harmonized 2020
ISU-Disconnection Object IsuDisconnection Expiring UtilsDisconnectionObj Disconnection Object Harmonized 2021
Isu-Billing Document IsuBillDoc Expiring UtilitiesInvoiceDoc Invoice Document 2021
ISU-Meter Reading IsuMReadDoc Expiring UtilsMeterReadingDoc Meter Reading Document 2022
Document
ISU-Budget Billing Plan IsuBbplan Expiring UtilsBudgetBillingPlan Budget Billing Plan 2022
ISU-Conversion Invoice IsuCIInvbillHeader Expiring UtilitiesCIBillDocH Conversion Invoice Billing 2021
Billing Document Document
ISU-Conversion Invoice IsuCIInvdocHeader Expiring UtilitiesCIInvDocH Conversion Invoice Invoice 2021
Invoice Document Document
Isu- Owner Allocation IsuOwnerAllocation Expiring UtilitiesOwnerAllocation Owner Allocation 2022

Currently Supported Business Objects Page 164 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

NAVIGATION TO FIORI APPS


CL_CRMS4_FIORI_UI_LTX_HANDLER
CL_CRMS4_FIORI_UI_LTX_NAV_PARA

1. Define Object Type (BSPDLCVC_OBJ_TYP):


− Creation of an object type (name freely selectable)
− Assigning a BOL object via which parameters are determined (point 2)

2. Define Fiori Navigation for Transaction Launcher (CRMS4V_FIORI_NAV):


− Object type as defined in point 1
− Semantic object + action of the Fiori app
− Parameter name of the Fiori app
− Parameter value from the BOL object defined in point 1 (BPath statement)

3. Define Logical Link:


− Define Logical Link which should be called via the OCA (point 4)
− Parameters:
o S4C_FIORI_UI_LTX Fiori Transaction Launcher which should be used
o Object type defined in point 2
o Object action defined in point 2

Navigation To Fiori Apps Page 165 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

4. Define One-Click-Action:
− Defining a one-click action as navigation

5. Define One-Click-Action Parameters:


− Parameter logical link defined in point 3

FORMS
Forms enable the composition of individual UI components and views by using customizing alone. This
enables the user to easily adapt the interface design to meet customer-specific requirements. The
individual UI fragments can be easily exchanged or extended and adapted for project-specific purposes.
A form entails a predefined behavior, such as the display of a business object, the query of data and its
display, or the selection options for an object.
Advantages of using forms:

Forms Page 166 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

• Easy reuse of CRM UI components/views


• Compilation of UI only through Customizing
• Easy expandability for customers
• easier maintainability
• Easier exchange of UI fragments in CE product development and also in the project at the
customer's site

Different types of forms are available for this purpose.


168. Mask (FMK) – Display of a UI View (Component + Window + Inbound Plug)
169. Overview Mask (FOM) – Combination of multiple masks (forms) (techn. Overview page) and joint
display
170. Tree/List (FTR) – Query of data (via BOL query) and display in a tree or list (BOL tree)
171. Switch Mask (FSM) – Compilation of several masks and display of exactly one mask (form)
according to the given calculation or switch (for example object type)
172. Tree/List Mask (FTM) – Combination of a tree and a switch mask, selection in the tree is handed
over to the switch mask

Forms Page 167 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Customizing of Forms
SAP Utilities → Customer Engagement → General Functions → Define Forms

Define Forms

In this section you define the name and type of the form. In addition, you can use the Action Profiles
column to specify which action options should be possible within the view. For more information, see
Customizing documentation under SAP Utilities → Customer Engagement → General Functions → Define
Action Profiles.
Using the other structure nodes, you then have the option of defining the individual form types and how and
where they are to be used.

Define Form Mask

In this section you use the previously defined forms and determine for which component and which window
this form should be used as a simple mask.

Forms Page 168 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Define Form Switch Mask

In this section you define which form uses a switch mask and use the Define Form Switch Mask
Assignment entry to determine which of the forms can be switched.

Define Form Overview

In this section, you determine the layout of the form for overviews. Here you can choose whether a header
should be displayed and how the overview should look like. With the entry Define Form Overview
Assignment you can also define which subforms can be displayed on the overview page and in which
order. You can also determine whether the initial display of the view should be direct, i.e. expanded, or
lazy, i.e. collapsed.

Forms Page 169 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Define Form Tree

In this section you define which query object and group should be used in the form tree. In addition, in the
Define Form Tree Parameter view, you can determine whether a parameter with certain values should be
used, for example, to display a specific sales contract.

Define Form Tree Mask

In this view you define which form tree should be used with which form mask.

Examples for Forms

Forms Page 170 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Action Profiles in Forms


An action profile can be assigned to each form. The actions stored there are visible in the toolbar.

Actions that correspond to the pattern "#*#" or "Z#*#" and "Y#*#" in the name are not displayed in the
toolbar. This is useful for actions that should only be called indirectly, e.g. in the event of an event.
The following event identifiers are supported:
Action Name Specific Description
#BACK# Called by the "Back" button before
leaving the form
#BEFORE_CANCEL# Is called when the processing is
cancelled but before the general
cancellation processing
#CANCEL# Called when editing is canceled

Forms Page 171 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

#CREATE# Is called for creation, use coding to


create an entity
#EDIT# Called when switching to change
mode
#DISPLAY# Will be turned up when switching to
display mode
#BEFORE_SAVE# Called before saving
#SAVE# Called after saving
#SUBMIT_ON_ENTER# Called with Enter when confirming
#SELECTION_CHANGED# TREE Called when the selection has been
changed
#BEFORE_PREPARE_QUERY_PARAMS# TREE Called before setting up search
parameters
#AFTER_PREPARE_QUERY_PARAMS# TREE Called after setting up the search
parameters
#BEFORE_EXECUTE_SEARCH# TREE Called before performing a search
#SEARCH_EXECUTED# TREE Called after calling a search
#AUTO_SELECT_SINGLE_HIT# TREE Called when a search had exactly
one hit
#CONTEXT_INITIALIZE# Is called once in the start when the
transferred context is ready
#CONTEXT_FINISHED# Called after the context is structured
#BEFORE_FIRST_OUTPUT# Called on first output (Rendering)
#BEFORE_OUTPUT# Called on each output (render)
Actions to a form can be bundled within a class. For simplicity, a basic implementation is delivered in class
CL_CRMS4_IU_FM_ACTION_HANDLER.

Standard Forms
The following is a list of forms that are also delivered in the standard:

Forms Page 172 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Business Entity Form Description Form Type Contains In Forms E


Objekt
Utilities Sales UtilitiesContrac CTI_ADDRESS Address data from the CTI Mask CTI_OV U
Contract Item tItem CTI_BP BP data to corresponding CTI I Mask CTI_OV B

CTI_CA Contract Account Data Mask CTI_OV U


corresponding CTI
CTI_DETAIL Details of corresponding CTI Mask CTI_OV U

CTI_MSGLOG Tree with message logs to Tree form CTI_OV U


corresponding CTI
CTI_OV CTI Overview Page Overview Page CTI_ADDRESS U
CTI_BP
CTI_CA
CTI_DETAIL
CTI_MSGLOG
CTI_PERIODS
CTI_PERIODS_PRO
DUCT_ATTRIBUTES
CTI_PROCESS
CTI_PROCESSFLOW
CTI_PRODUCT
CTI_REFERENCES
CTI_PERIODS Tree with Sales Contract Periods Tree form CTI_OV U

CTI_PERIODS_PRODUCT_ATT Tree with product attributes of Tree form CTI_OV U


RIBUTES product of corresponding CTIs

Forms Page 173 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

CTI_PROCESS Tree with PF processes of Tree form CTI_OV U


corresponding CTI
CTI_PROCESSFLOW Tree with the process flow of Tree form CTI_OV U
corresponding CTI

CTI_PRODUCT Product details to Mask CTI_OV U


corresponding CTI
CTI_REFERENCES IDs to objects corresponding to Mask CTI_OV U
CTI
UCM_OV Tree with Sales Contracts Tree form U

Device UtilitiesDevice DEV_ACTIVITIES Device activity data Mask DEV_OV U


DEV_GENERAL_DATA General device data Mask DEV_OV U
DEV_GROUP_DATA Group data for device Mask DEV_OV U
DEV_OTHER Other data for device Mask DEV_OV U
DEV_OV Device overview page Overview Page DEV_ACTIVITIES U
DEV_GENERAL_DA
TA
DEV_GROUP_DATA
DEV_OTHER
DEV_REGISTERS
DEV_REGISTERS Tree with the register to Tree form DEV_OV U
corresponding device
Installation UtilitiesInstallat ILN_BILLING_MR_CONTROL Billing and reading data Mask ILN_OV U
ion
ILN_CURRENT_POD Data from the currently Mask ILN_OV P
assigned POD

Forms Page 174 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

ILN_CURRENT_TIME_SLICE Data on the current time slice Mask ILN_OV U

ILN_FURTHER_INFORMATIO more information Mask ILN_OV U


N
ILN_GENERAL_DATA allgeneral information Mask ILN_OV U

ILN_OV Installation Overview Page Overview Page ILN_BILLING_MR_C U


ONTROL
ILN_CURRENT_POD
ILN_CURRENT_TIM
E_SLICE
ILN_FURTHER_INF
ORMATION
ILN_GENERAL_DAT
A
Register UtilitiesRegister REG_GENERAL_DATA general data Mask REG_OV U
REG_OV Register overview page Overview Page REG_GENERAL_DA U
TA
Contract UtilsContrAcctP UCAP_ACCOUNT_MANAGE Contract account management Mask UCAP_OV U
Account artner MENT data
UCAP_BILLING_DOCUMENTS Tree with billing documents Tree Form UCAP_OV U

UCAP_BP_BANK_DETAILS Bank details of the associated Mask UCAP_OV B


business partner

UCAP_BP_PAYMENT_CARDS Cards of the associated business Mask UCAP_OV B


partner

Forms Page 175 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UCAP_BP_SEPA_MANDATES SEPA mandates of the Mask UCAP_OV B


associated business partner

UCAP_BUSINESS_LOCKS Tree with different locks Tree Form UCAP_OV U

UCAP_CONTRACTS Tree with associated (sales and Tree Form UCAP_OV U


ISU) contracts

UCAP_CONVERGENT_INVOIC Convergent Invoicing Data Mask UCAP_OV U


ING
UCAP_CORRESPONDENCE Correspondence control data Mask UCAP_OV U

UCAP_DUNNING Dunning data Mask UCAP_OV U


UCAP_GENERAL_PAYMENT_ General payment data Mask UCAP_OV_PAYMENT U
DATA
UCAP_INCOMING_PAYMENT Incoming payment data Mask UCAP_OV_PAYMENT U
S
UCAP_INVOICING Invoice creation data Mask UCAP_OV U

UCAP_INVOICING_DOCUME Tree with related invoice Tree Form UCAP_OV U


NTS documents
UCAP_OUTGOING_PAYMEN Outgoing payment data Mask UCAP_OV_PAYMENT U
TS
UCAP_OV Contract account overview page Overview Page UCAP_ACCOUNT_ U
(tiled) MANAGEMENT
UCAP_BILLING_DO
CUMENTS
UCAP_BP_BANK_D
ETAILS

Forms Page 176 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UCAP_BP_PAYMEN
T_CARDS
UCAP_BP_SEPA_M
ANDATES
UCAP_BUSINESS_L
OCKS
UCAP_CONTRACTS
UCAP_CONVERGEN
T_INVOICING
UCAP_CORRESPON
DENCE
UCAP_DUNNING
UCAP_INVOICING
UCAP_INVOICING_
DOCUMENTS
UCAP_OV_PAYME
NT
UCAP_TAXES
UCAP_OV_PAYMENT Contract Account Payment Overview Page UCAP_GENERAL_P UCAP_OV U
Overview Page (tiled) AYMENT_DATA
UCAP_INCOMING_
PAYMENTS
UCAP_OUTGOING_
PAYMENTS
UCAP_TAXES Tax data Mask UCAP_OV U
Utilities UtilitiesUtilsCo UCT_ACCOUNT_ASSIGNMEN Mask UCT_OV U
Contract ntr T
UCT_BILLING Billing data Mask UCT_OV U
UCT_BUDGET_BILLING Budget billing plan data Mask UCT_OV U

Forms Page 177 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UCT_BUSINESS_LOCKS Tree with different locks Tree Form UCT_OV U

UCT_CHANGE_MI_DATE Form for entering move-in date Mask UCT_OV_CHANGE_MI_D U


ATE
UCT_CHANGE_MO_DATE Form for entering move-out Mask UCT_OV_CHANGE_MO_D U
date ATE
UCT_DEREGULATION Deregulation data Mask UCT_OV U
UCT_GENERAL_DATA General data Mask UCT_OV U
UCT_OV_CHANGE_MI_D
ATE
UCT_OV_CHANGE_MO_D
ATE
UCT_MOVEIN_MOVEOUT Move-in and move-out data Mask UCT_OV U
UCT_OV_CHANGE_MI_D
ATE
UCT_OV_CHANGE_MO_D
ATE
UCT_OV ISU contract overview page Overview Page UCT_ACCOUNT_AS U
(tiled) SIGNMENT
UCT_BILLING
UCT_BUDGET_BILLI
NG
UCT_BUSINESS_LO
CKS
UCT_DEREGULATIO
N
UCT_GENERAL_DA
TA
UCT_MOVEIN_MO
VEOUT
UCT_SCHEDULING

Forms Page 178 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UCT_OV_CHANGE_MI_DATE Overview page for changing the Overview Page UCT_GENERAL_DA U


move-in date (tiled) TA
UCT_MOVEIN_MO
VEOUT
UCT_CHANGE_MI_
DATE
UCT_SCHEDULING
UCT_OV_CHANGE_MO_DAT Overview page for changing the Overview Page UCT_GENERAL_DA U
E move-out date (tiled) TA
UCT_MOVEIN_MO
VEOUT
UCT_CHANGE_MO
_DATE
UCT_SCHEDULING
UCT_SCHEDULING Schedule data Mask UCT_OV U
UCT_OV_CHANGE_MI_D
ATE
UCT_OV_CHANGE_MO_D
ATE
Utilities UtilsDisconnect UDA_AGREEMENT Agreement data Mask UDD_ACTIVITY U
Disconnection ionAct UDA_GENERAL General data Mask UDD_ACTIVITY U
Activity UDA_NOTIFICATION Notifications Mask UDD_ACTIVITY U
UDA_SERVICEORDER Service/Maintenance Order Mask UDD_ACTIVITY U

Utilities UtilsDisconnect UDD_ACTIVITIES Baum mit Disconnection Tree Form UDD_ACTIVITY U


Disconnection ionDoc Activities
Document UDD_ACTIVITIES_TM Tree-Mask mit Disconnection Tree-Switch-Mask UDD_ACTIVITIES UDD_OV U
Activities UDD_ACTIVITY_SM
UDD_ACTIVITY Disconnection Activities Overview Page UDA_AGREEMENT UDD_ACTIVITY_SM U
Overview page (tiled) UDA_GENERAL

Forms Page 179 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UDA_NOTIFICATIO
N
UDA_SERVICEORDE
R
UDD_ACTIVITY_SM Switch-Mask for Disconnection Switchable Form UDD_ACTIVITY UDD_ACTIVITIES_TM U
Activities
UDD_GENERAL_DATA General Data Mask UDD_OV U
UDD_OBJECT Disconnection Objects Overview Overview Page UDO_GENERAL_DA UDD_OBJECT_SM U
Page (tiled) TA
UDD_OBJECTS Tree with Disconnection Objects Tree Form UDD_OBJECT_TM U

UDD_OBJECTS_TM Tree Mask with Disconnection Tree Mask UDD_OBJECTS UDD_OV U


Objects UDD_OBJECTS
UDD_OBJECT_SM Switch Mask for Disconnection Switchable Form UDD_OBJECT UDD_OBJECTS_TM U
Objects
UDD_OV Utilities Disconnection Overview Page UDD_ACTIVITIES_T U
Document Overview Page (tiled) M
UDD_GENERAL_DA
TA
UDD_OBJECTS_TM
Utilities UtilsDisconnect UDO_GENERAL_DATA General Data Mask UDD_OBJECT U
Disconnection ionObj
Object
Utilities Invoice UtilitiesInvoice UID_CREATION_CHANGE_DA Creation and modification dates Mask UID_OV U
Document Doc TA
UID_DOCUMENT_STATUS Document status Mask UID_OV U
UID_GENERAL_DATA General Data Mask UID_OV U
UID_OV Utilities Invoice Document Overview Page CREATION_CHANG U
Overview Page (tiled) E_DATA

Forms Page 180 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

DOCUMENT_STAT
US
GENERAL_DATA
POSTING_DATA
PRINT_INFORMATI
ON
REVERSAL_INFORM
ATION
UID_POSTING_DATA Booking data Mask UID_OV U
UID_PRINT_INFORMATION Printing information Mask UID_OV U
UID_REVERSAL_INFORMATI Cancellation information Mask UID_OV U
ON
Utilities UtilitiesMainte UMO_DATES Date data Mask UMO_OV U
Maintenance nanceOrd UMO_GENERAL_DATA General Data Mask UMO_OV U
Order UMO_OV Utilities Maintenance Order Overview Page UMO_DATES U
(tiled) UMO_GENERAL_D
ATA
UMO_REFERENCE_
OBJECT
UMO_SALES_DATA
UMO_SERVICE
UMO_REFERENCE_OBJECT Reference object data Mask UMO_OV U
UMO_SALES_DATA Sales data Mask UMO_OV U
UMO_SERVICE Service data Mask UMO_OV U
UMO_SHORT_DETAILS Short view Mask U
Product UtilitiesProduct UPD_SEARCH Product search Overview Page UPD_SEARCH_CO
(tiled) MPARE
UPD_SEARCH_LIST

Forms Page 181 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UPD_SEARCH_COMPARE Product comparison Overview Page UPD_SEARCH_CO UPD_SEARCH U


(tiled) MPARED_PRODUC
T
UPD_SEARCH_CO
MPARED_PRODUC
T_AT
UPD_SEARCH_SELE
CTED_PRODUCT
UPD_SEARCH_SELE
CTED_PRODUCT_A
T
UPD_SEARCH_COMPARED_P Comparison product data Mask UPD_SEARCH_COMPARE U
RODUCT
UPD_SEARCH_COMPARED_P Comparison product attributes Tree form UPD_SEARCH_COMPARE U
RODUCT_AT
UPD_SEARCH_LIST Product search results list Tree form UPD_SEARCH U

UPD_SEARCH_SELECTED_PR Selected product Mask UPD_SEARCH_COMPARE U


ODUCT
UPD_SEARCH_SELECTED_PR Product attributes for selected Tree form UPD_SEARCH_COMPARE U
ODUCT_AT product

Forms Page 182 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Product Search and Billing Simulation


The product searches in the different processes are built by forms.
Form Definition Type
UPD_SEARCH Main form for the Overview
product search
UPD_SEARCH_COMPARE Form for the compared Overview
product
UPD_SEARCH_COMPARED_PRODUCT Compared product mask Mask
with simulation
UPD_SEARCH_COMPARED_PRODUCT_AT Compared product Tree
attribute with time slices
UPD_SEARCH_LIST Product search with Tree
result display
UPD_SEARCH_SELECTED_PRODUCT Form fort he selected Mask
product with simulation
UPD_SEARCH_SELECTED_PRODUCT_AT Attribute of the selected Tree
product

At the forms for the simulation UPD_SEARCH_COMPARED_PRODUCT and UPD_SEARCH_SELECTED_PRODUCT the


default value for the consumption data for the simulation can be deposited. A general default value for all
divisions can be stored with the parameter name DEFAULT.CONSUMPTION01 and for the second
consumption DEFAULT.CONSUMPTION02. Division dependent values can be stored with the parameter
names resulting from the template DEFAULT.<DIVISION>.CONSUMPTION01 and
DEFAULT.<DIVISION>.CONSUMPTION02. Example for division 01 electricity: DEFAULT.01.CONSUMPTION01
The general default value and the division-dependent value can be combined. In this case, the division
dependent is preferred if specified.
Product search with invoice simulation is available in the following processes:
• New contract
• Move to other premise
• Change product
• Change contract item

Forms for Installation, Device and Register


The forms for installation, device and device registers serve as overview pages to map the respective data
in the UI. The forms can be called up via the corresponding One Click Actions.
1) Create Views
Service → UI Framework → UI Framework Definition → Access UI Component Workbench
2) Forms Customizing
SAP Utilities → Customer Relationships → General Functions → Define Forms

Installation

Technical Object Name


Bol-Entität
UtilitiesInstallation
UI-Component IUFMILN
Package CRMS4_IU_UI_FORMS_ILN
Forms ILN_BILLING_MR_CONTROL
ILN_CURRENT_POD
ILN_CURRENT_TIME_SLICE

Forms Page 183 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

ILN_FURTHER_INFORMATION
ILN_GENERAL_DATA
ILN_OV

Device

Technical Object Name


Bol-Entity UtilitiesDevice
UI-Component IUFMDEV
Package CRMS4_IU_UI_FORMS_DEV
Forms DEV_ACTIVITIES
DEV_GENERAL_DATA
DEV_GROUP_DATA
DEV_OTHER
DEV_OV
DEV_REGISTERS
Bol Entity UtilitiesDevice

Device Register

Forms Page 184 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Technical Object Name


Bol-Entität UtilitiesRegister
UI-Component IUFMREG
Package CRMS4_IU_UI_FORMS_DEV
Forms REG_GENERAL_DATA
REG_OV

UI5 Forms

Package: CRMS4_IU_UI5
CRM UI Component: IUFMUI5
View is based on thtmlbx:htmlIsland.

Communication via thtmlbxHIslandLib in JavaScript. Handled in "DataReceiver.js" file of SAPUI5 apps. The
provided data is to be passed in JSON format. For this purpose, corresponding JSON objects are defined
for each form type (Chart, Calendar, Flow). In the backend, these are defined in the following classes:

CL_CRMS4_IU_UI5_CHART
CL_CRMS4_IU_UI5_PLANCALENDAR
CL_CRMS4_IU_UI5_PROCESS_FLOW

Each has a static method GET_JSON that expects a deep ABAP structure and returns the JSON text.
The data provider should be derived from the CL_CRMS4_IU_UI5_DATA_PROVIDER class. Here the method
GET_JSON has to be overridden to deliver the data.

Forms Page 185 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Chart Formular

BSP Application (SAPUI5 Deployment): CRMS4_IU_CHART

Constants and types are from class CL_CRMS4_IU_UI5_CHART. The Documentation of the SAPUI5
control VizFrame can be found here.

TS_COMPLETE Attributes Semantic


FORMAT_SETTINGS User format settings, get it from
GET_DEFAULT_FORMATSETTINGS Method
TYPE Name of the chart type C_TYPES
LEGEND_VISIBLE Should the legend be visible
SHOW_SELECTION_DETAILS Should there be a toolbar button for show details of the
selection
SHOW_TABLE Should there be a toolbar button to show the table of
chart data
POPOVER
TOOLTIPS
PROPERTIES Subset of viz properties Documentation
PLOT_AREA, VALUE_AXIS, VALUE_AXIS2,
TIME_AXIS, CATEGORY_AXIS, TITLE,
INTERACTION
DATASET Will create a FlattenedDataset to be used as Dataset Documentation

Forms Page 186 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

CONTEXT_FIELDS are taken for setContext on the


Dataset
FEEDS For only one feed
FEED_COLLECTION For multiple feeds which can be chosen from a toolbar Documentation
button
FIELDS Fields for the table
CHART_DATA Flatten array with fields VALUE01 to VALUE60 an type
STRING to hold all data for the chart

Planning Calendar Formular

BSP Application (SAPUI5 Deployment): CRMS4_IU_CLNDR

Constants and types are from class CL_CRMS4_IU_UI5_PLANCALENDAR. The Documentation of the
SAPUI5 control PlanningCalendar can be found here.

TS_COMPLETE Attributes Semantic


FORMAT_SETTINGS User format settings, get it from
GET_DEFAULT_FORMATSETTINGS Method
START_DATE Start date of the calendar to show
MAX_DATE Defines the maximum date that can be displayed
and selected in the PlanningCalendar
MIN_DATE Defines the minimum date that can be displayed and
selected in the PlanningCalendar
SHOW_DAY_NAMES_LINE Determines whether the day names are displayed in
a separate line or inside the single days
SHOW_EMPTY_INTERVAL_HEADERS Determines whether the space (at the top of the
intervals), where the assigned interval headers
appear, should remain visible even when no interval
headers are present in the visible time frame. If set
to false, this space would collapse/disappear when
no interval headers are assigned.
Note: This property takes effect, only if
showIntervalHeaders is also set to true.
SHOW_INTERVAL_HEADERS Determines whether the assigned interval headers
are displayed. You can assign them using the
intervalHeaders aggregation of the
PlanningCalendarRow.
Note: If you set both showIntervalHeaders and
showEmptyIntervalHeaders properties to true, the

Forms Page 187 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

space (at the top of the intervals) where the


assigned interval headers appear, will remain visible
even if no interval headers are assigned.
SHOW_ROW_HEADERS Determines whether the column containing the
headers of the PlanningCalendarRows is displayed.
SHOW_WEEK_NUMBERS Determines if the week numbers are displayed.
SHOW_LEGEND Should the legend area be visible
SHOW_LEGEND_BUTTON Should there be a toolbar button to toggle the
legend area on and off
VIEW_KEY Which is the default view C_VIEWKEY
BUILT_IN_VIEWS Which built in views should be used Array of
C_VIEWKEY
VIEWS Views of the PlanningCalendar.
Note: If not set, all the default views are available.
Their keys are defined in
sap.ui.unified.CalendarIntervalType.
FIRST_DAY_OF_WEEK If set, the first day of the displayed week is this day.
Valid values are 0 to 6 starting on Sunday. If there is
no valid value set, the default of the used locale is
used.
Note: this property will only have effect in the weekly
– based views of the PlanningCalendar – Week
view, and OneMonth view (on small devices).
TITLE
SPECIAL_DATES Special days in the header calendar visualized as
date range with a type.
Note: If one day is assigned to more than one type,
only the first type will be used.
LEGEND_ITEMS Will be mapped to items of Documentation
PlanningCalendarLegend
LEGEND_APPOINTMENT_ITEMS Will be mapped to appointmentItems of Documentation
PlanningCalendarLegend
ROW_SELECTION
ROWS Rows of the PlanningCalendar. Documentation

Process flow Formular

BSP Application (SAPUI5 Deployment): CRMS4_IU_PFLOW

Forms Page 188 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Constants and types are from class CL_CRMS4_IU_UI5_PROCESS_FLOW. The Documentation of the SAPUI5
control ProcessFlow can be found here.

TS_COMPLETE Attributes Semantic


FORMAT_SETTINGS User format settings, get it from
GET_DEFAULT_FORMATSETTINGS Method
TITLE
ZOOM_LEVEL
WHEEL_ZOOMABLE
SCROLLABLE By default, the control body is embedded into a
scroll container of fixed size, so the user can put
the control into a fixed size layout. When the
control body (the graph) gets larger, the container
cuts the overflowing parts of the graph and the cut
parts can be displayed by scrolling the control
body. When the control body fits into the container
limits, obviously no scrolling is possible (and
makes sense).
The scrolling feature can be turned off by setting
this property value to false, so the width/height of
the whole control will change as the flow graph
gets smaller/larger. In this case the control body
could not be scrolled, as the control body size
matches the control container size.
FOLDED_CORNERS This property defines the folded corners for the
single node control. The following values exist: -

Forms Page 189 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

true: means folded corner - false/null/undefined:


means normal corner
NODES This is the aggregation of nodes in the process Documentation
flow control
LANES This is a header of the table for the process flow Documentation
control.
TYPES List of node types with information for quickview
settings

BILLING OVERVIEW AND BILL CORRECTION


173. SAP Help: Bill Correction
174. Bill correction function should be used about link Billing → Bill Correction
175. IMG-activities of "Billing Correction" please activate business function: CRM_UT_BILL_CORR with
Switch-BC-Sets: CRMV_IU_BIDOC_PR_UT_BILL_CORR CRMV_IU_PRINT_PR_UT_BILL_CORR

Customizing

Release S/4HANA 200

SE16: CRMC_IUICOVBC_PR

Billing Overview and Bill Correction Page 190 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

No entries in the customizing table CRMC_IUICOVBC_PR, see note 1887153 which provide the customizing
links.
KBA 2409716 - ICWC Missing invoices in billing overview for business roles UTIL_IC or UTIL_IC_REG

SALES CONTRACT MANAGEMENT


It is recommended to use sales contract management with Utilities sales contracts in a deregulated market
as a retailer and for integration scenarios with sales and commerce system.
On the other hand, use move-in/out in a regulated market and as a distribution company.
The contract contains the reference to the business partner. A business partner can have any number of
contracts. Within a contract there are the contract items that refer to the service delivery point with the
contract conditions of the product. A product can have time slots. These are represented in the contract
item periods. If a product has no time slices, there is at least one contract item period that corresponds to
the period of the contract item.
Data Model of Sales Contract Management

Sales Contract Management Page 191 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

With Sales Contract Management a list of utilities sales contracts for a business partner is displayed. It is
used to access details such as contract data and product information. For further information see Utilities
Sales Contract Management in the SAP Help Portal.
Simple Contract Setup

A contract item and its periods are no longer changed directly by the processor after creation. Instead, a
subsequent item is always created with periods, with the changes.
Example for Process Change Product

Contract Status Flow

Sales Contract Management Page 192 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Logical Item

Changes to a position result in copying the position. In order to summarize all changes and to get a uniform
access to a contract part, a logical number is administered, which all positions have in common. The logical
number is redetermined when the process 'New Contract' or 'Move to other Premise' is executed. All other
item copies are assigned the logical number of the initial item.

There are generally two options in the "Move to other Premise" process . The standard solution is shown
here in the picture on the left side with the positions (0010,0020,0030). Here a new logical number is
determined. However, it is also conceivable that the logical number remains the same when the
PoD/installation is changed, shown in the picture on the right (040,0050,0060).
Relevant for the sales contract management is also the Utilities Product Integration Layer (UPIL)
component (IS-U-BI-PI), which offers an interface to automate the translation of commodity products into
billing master data of SAP S/4HANA Utilities. For detailed information see Product Integration with UPIL.

Sales Contract Management Page 193 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Detailed description on how to create a reference product to use with sales contract management can be
found here: Define a Reference Product

UI Configuration with Guided Processes


The Guided Process Documentation is intended to make a consultant able to create and change the
Customer Engagement processes.

In these Customizing activities you can define general processes and process steps within utilities sales
contract management, such as creating or terminating utilities sales contracts, as follows:
176. Create and define the necessary process steps for utilities sales contract management.
177. Define the sequence of the individual steps.
178. Flag the steps as mandatory or optional.
179. Define dependencies by setting the requirements for individual steps.
Guided Processes can be set up by making the corresponding Customizing settings under:
SAP Utilities → Customer Engagement → Utilities Sales Contract Management.
There are two possibilities to define or change processes:
180. General Process Definition
These definitions are not client specific.
181. Modify Process Definition (Client-Specific)
you can override processes defined in the cross-client Customizing activity and, in some cases,
supplement them with a client.

Utilities Sales Contract Overview Configuration


In the Utilities Sales Contract Overview, the system displays all current utilities sales contracts of a
confirmed premise for the relevant business partner as well as the respective contract details.
It is also possible to filter and to sort the result lists in the Utilities Sales Contract Overview. For more
information about filters and sorts see BOL Tree.
182. Customizing path in SPRO:SAP Utilities → Customer Engagement → Settings for Object
Workbench → Define Object Hierarchy and Object Attributes
The standard trees of the Utilities Sales Contract are delivered with the standard product.

UI Process
Definition

A UI process is any action or series of actions that permit the user to perform a task.
These processes are delivered with the standard S4CRM product and can be enhanced by a consultant.
New processes can also be added.

Sales Contract Management Page 194 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

*** Note: A UI process is defined by its technical name. This name can be used in the Customizing activity
Define Object Hierarchy and Object Attributes to start the UI process using a One Click Action or
toolbar button.

Technical Details

183. General processes: must be derived from CL_CRMS4_IU_CM_UI_PROCESS


184. Processes, allocated to the contract (item): must be derived from CL_CRMS4_IU_CM_UIP_CTI
185. Own Start Contract Process: CL_CRMS4_IU_CM_UIP_CTI_NEW
186. Own End Contract Process: CL_CRMS4_IU_CM_UIP_CTI_END

Changing UI Processes

You can see or change a standard UI Process as follows:


187. SPRO path: SAP Utilities → Customer Engagement → Utilities Sales Contract Management →
Modify Process Definition (Client-Specific)
188. You can see the list of the UI Processes, with texts, types and all the information you need to
work on it.

• Double click on one of the entries to receive details: Here you can change any of the parameters.

UI Process Attributes

The following attributes can be maintained for a UI process:


189. Impl. Class for UI Process
The class that implements the UI process. This must be derived as a subclass of
CL_CRMS4_IU_CM_UI_PROCESS or CL_CRMS4_IU_CM_UIP_CTI.
190. Kind of UI Processes

a. Overview Page
The steps are displayed on a standard overview page with fold-in detail views for each step.
*** Note: In planning. At the moment not supported by standard
b. Guided
The individual steps are displayed and processed step by step.
You can define the steps of a guided procedure: current Step / View, Toolbar Navigation (Guided
activity).
c. Tiled

Sales Contract Management Page 195 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

The steps are shown as tiles.


You can define which data are immediately displayed by the system when you access a certain UI
Process.
*** Note: In planning. At the moment not supported by standard

191. Short Text


This free text is a term that summarizes the UI process.
192. Text
This free text is a description of the UI process. If the UI process is running in the Contract Overview,
this text will be used as the heading. The text can contain placeholders in which, for example, the name
of the business partner is dynamically integrated.
193. Techn. Name of Process
Technical name of the PF process assigned to this UI process.
194. Process Detail View
Display of Process details (predefined or manually chosen).
A view can be integrated in the process detail view. The short summary is displayed as a default here.
The process detail view can be customized.

195. Business Partner Detail View


Display of additional Business Master Data
In the business partner detail view, you can integrate a view.
The business partner summary is displayed as a default here. The process detail view can be
customized.

196. Profile Group ID


Profile group of BOL tree (various BOL trees in one profile group)
The profile group refers to the type of BOL tree. The ID can be used to select and display different
trees.

Sales Contract Management Page 196 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

To show a tree you need to assign to it a profile group id. You can use a standard profile group id
S4CUT360 or leave it empty.
197. BP 360° = Tree (Profile Group ID), BP Detail view, Process detail view
198. Active
By selecting the flag, you activate the UI process. If the flag is not selected, the process is not
active and is therefore not available. This function can for example be used to provide a specific
client with a limited pre-selection of processes.

Sales Contract Management Page 197 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Customizing of UI Processes in General

Runtime

UI process is created by factory class CL_CRMS4_IU_CM_UI_PROCESS_MGR method GET_PROCESS.


Example:
RV_RESULT = CL_CRMS4_IU_CM_UI_PROCESS_MGR=>CL_GET_MANAGER( )

->GET_PROCESS( IV_UIPROCESSNAME = LV_UIPROCESSNAME ) )

The factory class can also directly control a UI process by means of a navigation. The One Click Actions
(OCA) of the BOL Tree component call a process in this way.
CL_CRMS4_IU_CM_UI_PROCESS_MGR=>CL_EXECUTE_PROCESS( IV_UIPROCESSNAME = LV_UIPROCESSNAME
)

Sales Contract Management Page 198 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UI Process Implementation

Base class of a UI process is the class CL_CRMS4_IU_CM_UI_PROCESS. Derived from it is the class
CL_CRMS4_IU_CM_UIP_CTI which takes care of processes that can run on a contract item.
Example New Contract:

Enhancement Concept

See Extent UI Process.

Summary Texts
The summary content is generated dynamically during each process. The standard implementation
provides a default configuration of the summaries that is not client-specific and can be found in
Customizing under: SAP Utilities→ Customer Engagement → Utilities Sales Contract Management
→ General Process Definition by clicking on the folder UI Process. Double-clicking on the technical name
of the UI process will show three types of summaries.

Short Summary

This short summary provides an overview of the current UI process and is dynamically generated during
the process. The ad is in the right-side panel of the UI. The agent here can see the current selection, for
example when you create a contract, such as the contract start or product. By default, the delivery role
includes the display of the product. The short overview is configurable in transaction SOTR_EDIT. The text
that is displayed here in the Process Detail View can be defined individually.

Summary

Sales Contract Management Page 199 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

The summary provides an overview of the completed UI process in the last UI process step. The ad is
located at the bottom of the UI. The agent can see in the last process step, the selected settings and
information, for example when creating a contract, such as the contract start, contract type or address.

The summary is configurable in transaction SO10. Here you can individually define which information
should be displayed in the last process step.

*** Note: If a transport of the summary configuration is required, it is recommended to use transaction
SOTR_EDIT instead.

Example SO10:

Sales Contract Management Page 200 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Example SOTR_EDIT:

Business Partner Summary

The summary provides an overview of the confirmed business partner within the UI process and is
dynamically generated during the process. The business partner summary is located on the UI to the left of
the process detail view. By default, the delivery role includes the start of the contract.
The business partner summary can be configured in transaction SO10. The text that is displayed in the
Business Partner Detail View can be defined here individually

Example for process New Contract

199. Short Summary: CRMS4_IU_CM_UI_PROCESS/NEW_CONTRACT_SHORT_SUM


200. Summary: CRMS4_IU_CM_UI_PROCESS/NEW_CONTRACT_SUM
201. Partner Summary: CRMS4_IU_CM_UI_PROCESS/NEW_CONTRACT_BP_SUM

Sales Contract Management Page 201 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Client-specific Customizing of Summaries

The customer-specific summaries can be configured in transaction SO10 or SOTR_EDIT and can be
assigned in the process Customizing settings for the utilities sales contract management under SAP
Utilities → Customer Management → Utilities Sales Contract Management →Modify Process Definition
(Client-Specific) by clicking on the folder UI Process. Double-clicking on the technical name of the UI
process will show the same three types of summaries mentioned above.
You can individually define which information should be displayed. It is also possible to integrate your own
views.

Usable Contexts in UI Process

Name BOL Entity Name Object Type


BUSINESSPARTNER BuilHeader Root object
CONNECTIONOBJECT ConnectionObject Root object
CONTRACT UtilitiesContract Root object
CONTRACTACCOUNT BuAg Access object
CONTRACTITEM UtilitiesContractItem Access object
CONTRACTITEMS UtilitiesContractItem Access object
CONTRACTPERIOD UtilitiesContractPeriod Access object
CONTRACTPERIODS UtilitiesContractPeriod Access object
POINTOFDELIVERY PointOfDelivery Root object
PREMISE Premise Root object
PREVIOUSCONTRACTITEM UtilitiesContractItem Access object
PROCESS similar to PFProcess
PRODUCT UtilitiesProduct Root object
PREVPREVIOUSCONTRACTITEM UtilitiesContractItem Root object
PREVIOUSPRODUCT UtilitiesProduct Root object
MOVEINDOCUMENT UtilitiesMoveInDoc Root object
MOVEOUTDOCUMENT UtilitiesMoveOutDoc Root object
ISUCONTRACT IsuContract Root object
RESTORABLECONTRACTITEM UtilitiesContractItem Access object

Semantic Colors for Text or Icons

The colors actually used depend on the design theme used.


Name Color
DEFAULT dark blue
INFO gray
WARN orange red
ERROR red
SUCCESS green
NEGATIVE orange
POSITIVE green
FAILED dark red
CANCALED dark red
DISABLED light gray
SELECTED light yellow
SELECTED_ROW light yellow
TEXT_DEFAULT black
TEXT_LINK blue
TEXT_CHANGED green
TEXT_HINT yellow
DEFAULT dark blue
INFO gray

Sales Contract Management Page 202 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

WARN orange red


ERROR red
SUCCESS green
NEGATIVE orange
POSITIVE green
FAILED dark red
CANCALED dark red
DISABLED light gray
SELECTED light yellow
SELECTED_ROW light yellow
TEXT_DEFAULT black
TEXT_LINK blue
TEXT_CHANGED green
TEXT_HINT yellow
TEXT_IMPORTANT orange

Value Calculation in Summary Texts

For more information about the value calculation please see to the following documentation: Value
Calculation for BOL Trees, One Click Actions and Summary Texts

Summary Texts for Multi-Processes

In multi-processes the three text blocks have a slightly modified meaning:

The business partner overview (BP_SUM) is called up for all selected business partners.
202. The short summary of the process (SHORT_SUM) is called for a selected process.
203. The process summary, which would be executed (SUM) is called for all selected processes
204. There is the possibility of a list structure for BP_SUM and SUM.

There is the possibility of a list structure for BP_SUM and SUM:


HTML text at the beginning <HEADER>
<!-- ITEM_BEFORE_BEGIN -->
HTML text after each entry <ITEM_BEFORE>
<!-- ITEM_BEFORE_END -->
HTML text for the entry
(if this is empty the corresp.
summary of the single process is used) <ITEM>
<!-- ITEM_AFTER_BEGIN -->

HTML text after each entry <ITEM_AFTER>


<!-- ITEM_AFTER_END -->

HTML text at the end <FOOTER>


The markings <!-- ITEM_BEFORE_BEGIN --> must be maintained in this order in the text. If it is not so
maintained, all areas are considered empty except the area <ITEM> which contains the entire text.
Liste der Geschäftspartner:
<br>
<!--ITEM_BEFORE_BEGIN -->
<hr>
<!--ITEM_BEFORE_END -->
{{ BUSINESSPARTNER/@BP_NUMBER }}
<!--ITEM_AFTER_BEGIN -->
<br>
<!--ITEM_AFTER_END -->

Sales Contract Management Page 203 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

<hr>

If you want to group by business partners in the summary SUM, you must specify <!-- GROUP_BY_BP -->.
Which contexts can be used in which area can be read in the table:

Area Summary Type Context


<HEADER> BP_SUM Multi-process
SHORT_SUM -
SUM Multi-process
<ITEM_BEFORE> BP_SUM Multi-process
SHORT_SUM -
SUM Single-process
<ITEM> BP_SUM only context
BUSINESSPARTNER
SHORT_SUM Single-process
SUM Single-process
<ITEM_AFTER> BP_SUM Multi-process
SHORT_SUM -
SUM Single-process

<FOOTER> BP_SUM Multi-process


SHORT_SUM -
SUM Multi-process

Additionally the following values can be requested:


Name Description
CHOOSEN_COUNT Number of selected contract items
SELECTION_COUNT Number of contract items
BP_COUNT Number of business partners

UI Process Parameter
You can define parameters for a UI process.
The parameters are defined as a pair, consisting of the attribute name and attribute value. The length of the
attribute value is limited to 200 characters. To ensure the transfer to the UI process works correctly, the
implementing class must have a public attribute with the same name as the attribute name. These
attributes are automatically filled with the values defined in this view when the UI process is initialized.
Additional parameters can be added at this point. Alternatively, already defined parameters in the activity
Modify Process Definition (Client-Specific) can be overridden by the client or new parameters can be
added for specific clients.
Example:
When creating a contract in the Customer Engagement, the checkbox Forced Move-Out should be
checked by default. To do this, enter the name of the UI process and the attribute name and set the
attribute value to "X".

Sales Contract Management Page 204 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

UI Process Step
Definition

The UI process steps represent the step-by-step processing that takes place during a UI process. They are
displayed in Customer Engagement in the form of buttons, which agents can use to navigate and process a
procedure. Both icons and texts can be specified for these buttons. They also contain a status display for
the current processing status of the individual process steps.

New process steps can be defined, and existing process steps adapted. Alternatively, process steps that
have already been defined in the activity Modify Process Definition (Client-Specific) can be overridden by
the client or new process steps can be added to the client.

UI Process Step Attributes

A process step is defined by its technical name. It has the following attributes:

205. Name UI Proc. View


Alias of UI Process view
The technical name of the UI process view to be displayed.
206. Sequence UI Proc. Step
Pos. of UI Step in the Process
The field contains a unique number that defines the order of the process steps. The number is
usually specified in increments of ten. This allows further intermediate steps to be added later.
207. Kind UI Proc. Step
a. Default – no errors, warnings as requirement for saving. The process can only proceed if
all validations of this step have been positive.
b. Optional – Step may not be left empty
The process can proceed if this step was not performed and if warnings occurred during
execution.
c. Warnings allowed – no errors as requirement
The process can proceed even if there are warnings during execution.

Sales Contract Management Page 205 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

d. Stateless
No state, and therefore no icon is displayed for the process step. By default, this option is
provided for the summaries.
e. Active [x]
By selecting the flag you activate the UI process step.
f. If the flag is not selected, the process step is not active and is therefore not available.
This function can for example be used to provide a specific client with a limited pre-
selection of process steps.

208. Short text


In this field, you can specify a name for the process step that appears in the button for navigating
through the UI process.
209. Text
In this field you can enter a text that appears when the cursor is positioned over the short text or the
icon of the process step.
210. Icon Name
The Icon field contains the name of an icon, which is to be displayed before the short text for the
process step.
The icon name can be the name of an SAP icon, for instance:
sap-icon://home (SAP icon name used in the Icon Explorer)
211. Color of Icon
In this field you can specify the preferred color of the icon. The input is made, for example, in
hexadecimal notation or by color names.

UI Process Step Requirement

You can define one or more requirements for a UI process step. One condition refers to the status of
another process step. A step may require one or more other steps to have already been successfully
completed.
New requirements can be defined, and existing requirements adapted. Alternatively, requirements already
defined in the activity Modify Process Definition (Client-Specific) can be overridden by the client or new
requirements can be added for specific clients.
Example:
20 CHOOSE_PRODUCT before 25 PRODUCT_CONFIG
During contract creation, the agent must select a product in the first process step before they can configure
it in a further process step.
A requirement for a UI process step is defined by a serial number. The following attributes can be defined:
212. Name UI Process Step
Technical name of the required UI process step
213. Sequence of UI Step Requirement
Sequence number. All requirements for a UI process step are performed in the order of their sequence
numbers.
214. Active
A requirement is only checked if this flag is set.

UI Process Step Binding

The context nodes of UI processes and linked context nodes for the views can be assigned a name.

The following nodes can be assigned:


215. Target Context Node
Context node in the view

Sales Contract Management Page 206 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

216. Source Context Node


Context node in the UI process
By default, the context nodes of the views are bound to the context nodes of the UI process with the same
name. This can be changed by using the name mapping in the UI process step bind. The same context
node in a view can be bound to other context nodes of the UI process for each step. This allows a view to
be reused in different processes or steps.

UI Process View
You can define the CRM WebUI views from which the UI processes of the Customer Engagement can be
set up. The views can come from any UI components.

A UI process view is defined by its technical name. The following technical properties are assigned to this:
217. Name of the UI component that contains the view
218. Name of the interface windows of the view
Full window name: [UI component] / [window name]
219. Inbound plug, which is used to enter the view

At this point additional UI process views can be added. Alternatively, previously defined UI process views in
the activity Modify Process Definition (Client-Specific) can be overridden by the client or new UI process
views can be added for specific clients.

UI Process Context
Process contexts are additional, dynamic context nodes that are found in all component controllers and that
can be accessed in the implementation classes of the respective processes.
Static contexts are for example BUSINESSPARTNER, CONNECTIONOBJECT or CONTRACT (see table “Usable
Contexts in UI Process” under Summary Texts).
Additional process contexts can be added. Alternatively, process contexts that have already been defined
can be overridden ) or new process contexts can be added on a client-specific basis in the activity Modify
Process Definition (Client-Specific. Those contexts can then for example be used in the summary texts
as well.

Sales Contract Management Page 207 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Multi Process
With the multi process, several identical individual processes can be executed on different sales contract
items. The multi process is using the single process in the execution.
Process chain: Selection of items → choose multi process via menu → check every item before process
execution → show selection on list with check result (deselect possible) → approve selection → guides
procedure of single process → save.
A multi process is started on a selection of items. The first step in the multi process shows the selection of
items. For each item is shown if the single process is feasible, otherwise warnings are displayed. If a single
process cannot be executed for a position, the position will be removed from the selection. The user can
additionally check and uncheck positions in the selection. Once the selection is made, it can be confirmed.
Now the single process starts on one of the positions. All inputs are synchronized to the other single
processes of the positions. The guided procedure is identical to the single process. If the multi process is
saved, the previously confirmed individual processes are executed.
*** Note: The multi process is designed to manage multiple contract items for a single customer and
contract account. To avoid performance issues in this process it is recommended to limit the selection to 10
or less.

The selected items can be set to different business partners, contract accounts, connection objects.
Therefore, in the summary texts for the business partner, the multiple business partners must be taken into
account. Likewise, the 360° tree view is provided with multiple business partners.

i. Multiple business partners in 360° view


ii. Multiple business partners in business partner summary text
iii. Preselection of the selected positions that are possible
iv. Current messages of the positions
It is possible to change the selection of positions within the Guided Procedure using the "Back to Selection"
function.

220. UI Component: CRMS4_IU_CM_UI_PROCESS

Sales Contract Management Page 208 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

221. UI Process:
a. CRMS4_IU_CM_PROCESS_FRAMEWORK
b. CL_CRMS4_IU_CM_UI_PROCESS_MP
c. CL_CRMS4_IU_CM_UI_PROCESS_MSEL
d. CL_CRMS4_IU_CM_UI_PROCESS_MCTI

The class CL_CRMS4_IU_CM_UI_PROCESS_MSEL handles the processing of the UI control for a selection. For
this purpose it implements the controller interface IF_CRMS4_IU_CM_UI_PROCESS_MPCP. All delivered
process classes implement the interface IF_CRMS4_IU_CM_UI_PROCESS_MPSP, which is necessary for the
single processes within a multi-process, called Subordinate Process.

The class CL_CRMS4_IU_CM_UI_PROCESS_MCTI brings specific sales contract checks. For example, it checks
that all items in the selection have the same division.

222. PF Process: CRMS4_IU_CM_PROCESS_FRAMEWORK


Class: CL_CRMS4_IU_CM_PF_PROCESS_MP implements interface IF_CRMS4_IU_CM_PF_PROCESS_MP. The
interface IF_CRMS4_IU_CM_PF_PROCESS_MP is used by the Multi UI process to pass all PF processes to be
started with the process data. The class creates all processes to be started and processes them.
Sequence diagram of the instances involved:

Sales Contract Management Page 209 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

The "Single UI Process" is instantiated as often as there are positions in the selection. Consequently, there
are also a corresponding number of "Single PF Process" instances.
Standard Multi PF Process flowchart:

Sales Contract Management Page 210 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Execution

the processes are started synchronously in a defined sequence. Each individual process can be
223. terminated (DONE),
224. stopped (SUSPENDED)
225. or canceled.

Customizing

For the multi PF process the following Customizing entry is used:


SAP Utilities → Customer Engagement → Utilities Sales Contract Management → General Process
Definition

Sales Contract Management Page 211 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

This PF process is then used in the UI process as PF process. Additionally, the single process needs to be
referenced in the multi UI process.

For the multi process the steps need to be defined as well. The steps for selection and the multi summary
are prerequisite (further details on the summary of multi processes can be found here: Summary Texts)

The steps of the referenced single process are automatically integrated. If the single process has a
summary step it will be hidden automatically

Process Framework

Definition

PF (Process Framework) processes map the business logic for Customer Engagement processes. Their
task is to check input parameters and implement the Customer Engagement process technically in IS-U
using the PI processes and to manage the utilities sales contract.
PF processes are defined by their technical name, to which an ABAP class implementing them, and a PI
process are assigned (using its technical name).
At this point further PF processes can be defined. Alternatively, previously defined PF processes in the
activity Modify Process Definition (Client-Specific) can be overridden by the client.

Sales Contract Management Page 212 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

The Customizing provided contains PF processes for all customer engagement processes with appropriate
classes. The delivered classes are derived from the class CL_CRMS4_IU_CM_PF_PROCESS. Customer
implementations must be derived from this class (PF Process Kind: CRMS4_IU_PFP_KIND).

PF Process Parameter

In principle, PF processes work with the values available in the Utilities Sales Contract, such as the start
date of the contract. Additional parameters can be assigned to a PF process using this view.
The parameters are defined as a pair consisting of the attribute name and attribute value. The length of the
attribute value is limited to 200 characters.

To ensure the transfer to the PF process works correctly, the implementing class must have a public
attribute with the same name as the attribute name. These attributes are automatically filled with the values
defined in this view when the PF process is initialized.
At this point additional parameters can be defined. Alternatively, previously defined parameters in the
activity Modify Process Definition (Client-Specific) can be overridden by the client or new parameters
can be added for specific clients.

PI Process
PI processes (Product Integration Processes) are the interface of the CM to IS-U. Their task is to
implement the CM processes technically.
Example:
When creating a new contract in CM, the PI process ensures that the move-in takes place in IS-U and that
the asset can be settled according to the Utilities Products selected.
PI processes are defined by their technical name, to which an ABAP class implementing them is assigned.
PI processes are referenced by PF processes using this technical name.
At this point further PI processes can be defined. Alternatively, previously defined PI processes in the
activity Modify Process Definition (Client-Specific) can be overridden by the client.
In the Customizing provided, class CL_CRMS4_IU_CM_PI_PROCESS is used for all PI processes. Customer
implementations must be derived from this class.

Sales Contract Management Page 213 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Integration with Sales Contract Management

Integration of IS-U Contracts into Utilities Sales Contract Management


SAP S/4HANA Utilities for customer engagement enables customers to integrate and migrate IS-U
contracts into the utilities sales contract management. The IS-U integration is used to automatically transfer
the objects created or processed using IS-U standard processes to the relevant sales contract
management objects or to adjust them accordingly.

Sales Contract Management Page 214 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

The integration to utilities sales contract management is triggered by the following IS-U customer
service functions:
226. IS-U BAPI interface modules (e.g. BAPI_ISUMOVEIN_CREATEFROMDATA)
227. Transactions EC60, EC50E, EC51E, EC53E, EC55E, EC56E, EC58E, EMIGALL (Migration)
228. Master data generator
229. IS-U function modules (e.g. ISU_S_MOVE_IN_CREATE)
Covered by UPIL:
230. Installation fact changes
231. Rate category changes on installation

Customizing for the Integration


For the migration processes and for the integration of new IS-U contracts in the utilities sales contract
management it is mandatory to prepare the following Customizing activities in the view “Activate
Integration”.
SPRO path: SAP Utilities → Customer Engagement → Utilities Sales Contract Management → Settings for
IS-U Contract Integration

*** Note: Products to be used for the integration process must be created as a material in the S/4HANA
system d first (transaction MM02) For further information see SAP documentation of Utilities Product
Integration Layer (UPIL).

232. Node: Activate Integration


233. Define division for which the integration should take place, e.g. Dv = 01 (Electricity).
234. Activate check box for integration activation of division.

235. Node: Define Product Proposal

236. Assign product to division, you must configurate one of the following options, otherwise the
integration process cannot be processed:
A. Create a standard product which serves as a kind of placeholder. You can use this product across
the entire division without specifying a rate type.
B. Create products that match the division and rate types. One product must be stored per rate
category. The product must correspond to this rate category.
Typically, the rate category and the system facts are defined in the product. During integration,
product integration is triggered via the "Utilities Product Integration Layer" (UPIL) (IS-U-BI-PI)
component.
237. To avoid product integration, the product must not have an allocated rate category.
238. Choose in the node Define Product Proposal for which assigned product you want to define
configuration values by activating the line
239. Open node: Define Product Configuration Values (optional)

Sales Contract Management Page 215 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

240. You can assign one or more characteristics (internal characteristic number) to each product
that you want to use for integration and one or more values (characteristic value) to each
characteristic. If you assign multiple values to a characteristic, enter a sequential number in the
corresponding column.

Special Case: Cancel Product Change

If there is a product change from a default product without rate category to a product with rate category, it is
subsequently no longer possible to cancel this product change. When the user is trying to execute the
process “Cancel Change Product, an error message is displayed after clicking on the one click action.
In order to inform the user in advance that the process "Change Product" cannot be reversed when the
product is changed from a product without rate category to another product with rate category, a note is
displayed in both the short summary and the main summary of the "Change Product" process. This is also
the case, when the process “Multi Change Product” is executed.

Special Case: Change End Date and Cancel Change End Date

If the user is ending the contract or changes the end date of a contract with a default product without rate
category, no product integration is triggered. Therefore it will be possible to cancel the process “Change
End Date” and “End Contract” without a product integration being processed.

BAdI Implementation
A BAdI interface is provided, as well as standard values for the respective processes. By implementing it as
a BAdI interface, customers have the option of customizing the individual integration processes or replacing
them completely with their own implementations. To do this, the customer can use the enhancement
spot CRMS4_IU_CM_PROCESS_FRAMEWORK to use the BAdI CRMS4_IU_CM_INTEGRATION.

Filter values and standard implementations of the BAdI interface "CRMS4_IU_CM_INTEGRATION"

Filter Value Process Standard Implementation Implementation Class


MOVE_IN_CREATE Create CRMS4_IU_CM_IP_MI_CREATE CL_CRMS4_IU_CM_IP_MI_CREATE
move-in

Sales Contract Management Page 216 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

MOVE_IN_CHANGE Change CRMS4_IU_CM_IP_MI_CHANGE CL_CRMS4_IU_CM_IP_MI_CHANGE


move-in
MOVE_IN_CANCEL Cancel CRMS4_IU_CM_IP_MI_CANCEL CL_CRMS4_IU_CM_IP_MI_CANCEL
move-in
MOVE_OUT_CREATE Create CRMS4_IU_CM_IP_MO_CREATE CL_CRMS4_IU_CM_IP_MO_CREATE
move-out

MOVE_OUT_CHANGE Change CRMS4_IU_CM_IP_MO_CHANGE CL_CRMS4_IU_CM_IP_MO_CHANGE


move-out
MOVE_OUT_CANCEL Cancel CRMS4_IU_CM_IP_MO_CANCEL CL_CRMS4_IU_CM_IP_MO_CANCEL
move-out

Methods of the BAdI Interface "IF_CRMS4_IU_CM_INTEGRAT_BADI

Method Description
CHECK_PRECONDITION Used for a general check to see whether the current transaction (move-in/out) is
relevant for integration at all and whether the current data situation allows integration
with sales contract management
PERFORM_INTEGRATION Implementation of the integration with sales contract management using the
respective PF processes

Supported Processes

Name Transaction Integration Process Function Module Default Implementat


Enhanced
MOVE_IN EC50E API_IP_MOVE_IN_CREATE ISU_O_MOVE_IN_ACTION CL_CRMS4_IU_CM_I
form
ACTION_SAVE
MOVE_IN_CHANGE EC51E API_IP_MOVE_IN_CHANGE ISU_O_MOVE_IN_ACTION CL_CRMS4_IU_CM_I
form A
CTION_SAVE
MOVE_IN_CANCEL EC53E API_IP_MOVE_IN_CANCEL ISU_O_MOVE_IN_ACTION CL_CRMS4_IU_CM_I
form
ACTION_SAVE
MOVE_OUT EC55E API_IP_MOVE_OUT_CREATE ISU_O_MOVE_OUT_ACTION CL_CRMS4_IU_CM_I
form
ACTION_SAVE
MOVE_OUT_CHANGE EC56E API_IP_MOVE_OUT_CHANGE ISU_O_MOVE_OUT_ACTION CL_CRMS4_IU_CM_I
form
ACTION_SAVE
MOVE_OUT_CANCEL EC58E API_IP_MOVE_OUT_CANCEL ISU_O_MOVE_OUT_ACTION CL_CRMS4_IU_CM_I
form
ACTION_SAVE
EC60, contained in above processes
EC70
Additionally, the process Fast Move In/Out in the WebClient is also relevant.

Sales Contract Creation for Existing IS-U Contracts


With the migration process the customer with active IS-U contracts can use these contracts with the utilities
sales contract management function of customer engagement.

ERP to S4 and S4 to S4 Systems


• Open transaction SE38
• Start report CRMS4_IU_CM_CONTRACT_MIGRATION
• Use filter function if required (e.g. migration only for division 01)

*** Note: It is possible to run the report on o regular basis by scheduling a job for the execution.

Sales Contract Management Page 217 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Log is displayed:

Report to migration is displayed:

Utilities sales contract was created:

Sales Contract Management Page 218 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Other Systems to S4 Systems


The IS-U migration process from other systems into utilities sales contract management is integrated in
transaction EMIGALL (see transaction EMIGALL and choose IS-U Migration → User Handbook).
241. Open transaction EMIGALL
242. Choose a company
243. Relevant migration objects: MOVE_IN and MOVE_OUT

*** Note: To use the migration objects for the migration to utilities sales contract management it is
mandatory to prepare the Customizing (see chapter Customizing for the Integration). You can either use a
default product or define specific product values for the migration.

It is possible to schedule a job for the execution.

Business Event Enablement


To inform a subscriber of changes to utilities sales contracts a business event is introduced which is raised
via the process framework of the contract management in the customer management solution. Therefore it
is possible to register for this business event and be informed about changes/new sales contract. The
subscriber then can perform actions according to changes done to the utilities sales contract. Some
processes/scenarios in which the business event for the utilities sales contract is raised are listed below.

Scenario
Process execution through web UI
Process execution trough OData call (UIL)
Process execution if IS-U integration for customer management is active

Business Requirements

Role Environment Activity


Call Center (CC) Agent Interaction Center Select Products when creating or
changing contracts
Product Manager (PM) Product configuration tool Creates and changes products

Common procedure

1. An event is raised by the process framework after execution of a process


2. Subscriber gets informed
3. Subscriber checks the payload and decides if he wants to take action
4. Subscriber queries corresponding contract items by using the logical contract item attribute included in
the payload
5. Subscriber performs action

Database field logical contract item

Sales Contract Management Page 219 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

To solve the difficulty to identify contracts items associated to the same contract header the new field
LOGICAL_CONTRACT_ITEM was added to the database table for Utilities Sales Contract Items
(CRMS4D_IUCI_I).
With this field it is possible to distinguish contract items related to one contract and easily query all required
contract items.
Changes to an item cause the item to be copied. In order to group all changes together and to obtain
uniform access to a contract element, a logical number is managed that all items have in common. The
logical number is predetermined when a process becomes a 'New Contract' process. All other item copies
receive the logical number of their initial item.
The following table lists the (standard delivered) processes which are setting a new value to the field
LOGICAL_CONTRACT_ITEM.

Table 1 Processes which create new logic identifier

Process name Process description


MOVE_IN New Contract
MOVE_TO_OTHER_PRM Move to other Premise
MOVE_IN_ODATA New Contract
API_MOVE_IN New Contract
API_IP_MOVE_IN_CREATE Create Move-In Integration Process

Table 2 Example for product change process

Attributes Contract Item 1 Contract Item 2 Contract Item 3


Object ID / Number Int 100000055/000010 100000055/000030 100000055/000040
Dates 01.01.2020 - 31.12.9999 01.01.2020 - 01.06.2020 -
31.12.9999 31.12.9999
IS-U - Contract 4433 4433 4433
Point of Delivery DE4433 DE4433 DE4433
Product Product 1 Product 1 Product 2
Logical Contract Item 1000000055000010 1000000055000010 1000000055000010

Table 3 Example for move in under an existing contract header

Attributes Contract Item 1 Contract Item 2


Object ID / Number Int 100000055/000010 100000055/000030
Dates 01.01.2020 - 31.12.9999 01.01.2020 - 31.12.9999
IS-U - Contract 4433 5544
Point of Delivery DE4433 DE5544
Logical Contract Item 100000055000 100000055000

Business Event Customizing


To register the new event several customizing and registration of technical entities was done. In the
following necessary steps in customizing are documented.

SAP Object Type (GTNC)

The SAP Object Type (SOT) ‘UtilitiesSalesContract’ was created in the Global Technical Name Catalog
(GTNC). This SAP Object Type acts as the defined event entity.
SAP Object Type registration (GTNC)

Sales Contract Management Page 220 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

IMG Customizing

After the SAP Object Type was created in the GTNC now the necessary customizing in the transaction
SPRO can be done.

SAP Object Type registration

First the SOT was registered in the customizing. The name of the SOT in the customizing is the same as in
the GTNC. ‘Business Object’ was set as category.

Sales Contract Management Page 221 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Secondly the class for the SOT was maintained in the customizing. This class contains an event which later
can be called. Parameters of the class event representing the payload for the event.

The last part was the definition of the event itself (third column in the following screenshot). Event name in
customizing has to match with the event name in the ABAP class.

Business Event Implementation (Abstract Entity)


For each business event an abstract entity (CDS) has to be created. In this abstract entity the following
attributes have to be defined:
• Event type: fix values defined in GTNC
• Class: Implementing class and event name in ABAP class
• Payload: Payload values as camel case with mapping to the parameter names in the ABAP class
event (if necessary)
For the implementation the class registered in the customizing was created with a corresponding event. For
now, only one event exists (CHANGED/INPROCESS). There is the possibility to introduce more events in the
future if necessary.

Sales Contract Management Page 222 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Business Event class

The class CL_CRMS4_IU_CONTRACT_EVENT contains the event CHANGED and INPROCESS (figure 7). The name
of the class event and the one registered in the customizing (see chapter 4.2.1) have to be the same.

Sales Contract Management Page 223 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Business Event payload

The payload of the event is defined through abstract entity with a mapping to the parameters of the class
event and consists of three attributes (figure 5).
LOGICAL_CONTRACT_ITEM: Key for the event. With the key the subscriber can execute a query for the
corresponding contract items and determined the changes made to the contract.
PROCESSKIND: The kind of the process which was executed is also a part of the payload. The subscriber can
evaluate for which process kind he will handle and perform an action.
For example if the subscriber only is interested to reflect on processes which are creating new contracts he
has to only consider the process kind for new contracts (NEW_CNTR). For the processes delivered as
standard this would be the move-in or move-to-other-premise process.
STATUS (only change event): Status of the contract item. Indicates the status of the (mostly new) contract
item at the point where the event is raised.
244. RELEASED – New contract item is released
245. PROCESSING – New contract item is in process (i.e. market communication)
246. COMPLETED – Existing contract item is completed (applies on for processes which does
not created a new contract item)

Business Event Integration into Processes


The raise of the event is done by the process framework. In method RAISE_PUBLIC_EVENT of class
CL_CRMS4_IU_CM_PFP_CTI the event is eventually raised.
To finally raise the event class CL_SWF_EVT_EVENT is used. This class contains a method called RAISE and
is called with the previously set parameters/payload.
Important to know is that even if the event is registered/raise only a COMMIT finally fires the event.

Sales Contract Management Page 224 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Trigger points of the event

Class name Method Comment


CL_CRMS4_IU_CM_PFP_CTI END_PROCESS_SPEC -
CL_CRMS4_IU_CM_PFP_CTI SUSPEND_PROCESS_SPEC -
CL_CRMS4_IU_CM_PFP_CTI_NEW END_PROCESS_SPEC Due to a possible forced move out
also raise an event for the ending of
the existing contract
CL_CRMS4_IU_CM_PFP_CTI_MOVE END_PROCESS_SPEC Due to a possible forced move out
also raise an event for the ending of
the existing contract

Limitations to Sales Contract Management


1. Default BuAg flag cannot be supported since there is no corresponding field in the Contract Account.
The field has been removed from WebUI. If default flag is needed, new field from FI-CA table need to be
introduced.
2. BuAg class is used for defaulting during the creation of the contract account. Once the contract account
is created and saved, the BuAg class will not be available since it is not persistent in the Contract
Account.
3. Event 1022 can be used to determine the BuAg class only if the each BuAg class is configured to use a
difference Number of Range. The FI-CA Event 1022 (table TFKFBM) can be used to default the BuAg
class when an existed Contract Account is loaded. If BuAg class is needed, new field from FI-CA table
need to be introduced.
4. Unsupported fields:

Attribute Note
BABR_TEXT Not supported, always initial
BUAG_DEFAULT Not supported by ERP, always initial
BUAG_CLASS Not supported by ERP, Control by exit 1022 (sm30, TFKFBM)
PAYER_BUAG_ID Not supported by ERP, always initial
PPACC_RELATION Not supported by ERP, always initial
PAYER Not supported by ERP, always initial
CHANNEL Not supported by ERP, always initial
BUAG_USAGE Not supported by ERP, always initial
RISK_CLASS Not supported by ERP, always initial
BUAG_PAYMTYPE Not supported by ERP, always initial

FI-CA
Financial Customer Care provides service center agents with access to the customers’ financial data from
a web-based user interface. Documentation can be found under Financial Customer Care.

Budget Billing Plan and Payment Plan / Scheme


Edit BBP:
OCA on node BB in the identification profile S4CUTMDBP1

"Change Budget Billing Plan" over "Billing" (navigation bar entry)

Payment Data
Customizing

FI-CA Page 225 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

T052: Payment terms


SM30: CRMV_BUAG_PAYMET - Allocate Payment-Relevant Parameters to New Contract Accounts
SM30: CRMC_BUAG_PAYM_T - Maintain payment methods

FI-CA Invoice

The FI-CA Invoicing documents have been implemented via the BOL entity UtilitiesCIInvDocH. Display of the
documents is possible via the transaction FKKINVDOC_DISP - Display Invoicing Document. The BOL entity
UtilitiesCIInvDocH was created, located in the GenIL component ISUINV. Existing CDS views are used as a
basis, which in turn go to the DFKKINVDOC_H tables.
Relations:
• Business Partner (UtilsCIInvDocHBuilHeaderRel / BuilHeaderUtilitiesCIInvDocHRel)
• Contract Account (UtilsCIInvDocHUtilsContrAcctPartnerRel /
UtilsContrAcctPartnerUtilsCIInvoiceHRel)
• Billing Document

In the Utilites role, the entities are displayed in the data fields of the tree profiles. Navigation (OCA) is used
to call a Fiori application via the Transaction Launcher, this is done in a separate open tab.

FI-CA Page 226 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Data Environment

The entities have been integrated in different places (as new tree profiles):
• Business Partner Ident. Screen
• Business Partner Overview

FI-CA Billing Document

The FI-CA billing documents have been implemented via the BOL entity UtilitiesCIBillDocH. Display of the
billing documents is possible via the transaction FKKINVBILL_DISP - Display Billing Document. The BOL entity
UtilitiesCIBillDocH was created, located in the GenIL component ISUINV.Existing CDS views are used as a
basis, which in turn go to the DFKKINVBILL_H tables.
Relations:
• Business Partner (UtilsCIInvDocHBuilHeaderRel / BuilHeaderUtilitiesCIInvDocHRel)
• Contract Account (UtilsCIInvDocHUtilsContrAcctPartnerRel /
UtilsContrAcctPartnerUtilsCIInvoiceHRel)
• Billing Document


In the Utilites role, the entities are displayed in the data fields of the tree profiles. By navigation (OCA) a
Fiori application is called via the Transaction Launcher, this is done in a separate opened tab. A filter has
been implemented in the BOL tree which can filter the billing documents for which there is already an
invoice.

FI-CA Page 227 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Data Environment

The entities have been integrated in different places (as new tree profiles):
• Business Partner Ident. Screen
• Business Partner Overview

Utilities Invoice

To replace the old ISUPRINTDOC entities, the new UtilitiesInvoiceDoc entity has been implemented. Display of
Utilities Invoices is possible via transaction EA40 - Display Print Document. The BOL entity
UtilitiesInvoiceDoc has been created and is located in the GenIL component ISUINV.Existing CDS views are
used as a basis, which in turn go to the ERDK tables.
Relations:
• Business Partner
• Contract Account

In the Utilites role, the entities are displayed in the data fields of the tree profiles. Navigation (OCA) is used
to call a Fiori application via the Transaction Launcher, this is done in a separate open tab.

Data Environment

The entities have been integrated in different places (as new tree profiles):
• Business Partner Ident. Screen
• Business Partner Overview

FI-CA Page 228 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022


Since there is no existing Fiori/SAPUI5 application a UI was implemented via in the web UI, this was
realized via the form UID_OV; UI Component: IUFMUID.

S/4HANA SERVICE ORDER


Through the CS-Move project, a coupling between the S/4HANA Service Order and the PM Maintenance
Order was established. For the integration of both entities into the Utilities Business Role, the objects were
harmonized as BOL objects and integrated into the data environments.
For the service order, the BOL entity UtilitiesServiceOrder was created, which is located in the GenIL
component ISUSO.Existing CDS views, which in turn go to the CRMS4D_SERV_H tables, serve as the basis.
To add the reference objects, an association to the table CRMS4D_REFOBJ (I_ServiceDocumentRefObject) was
implemented.
Whether it is a Maintenance-Centric Service Order is determined by the flag IS_MAINTENANCE, this is an
attribute in the table of the service order (CRMS4D_SERV_H). The BUS type BUS2000116 which defines a
service order is used as a reference.
In order to be able to represent the difference better and to use the same BOL object, a relation for the
service order and one for the maintenance-centric service order were implemented at the reference
objects, which also delimit to the transaction type.
• Service Order: SRVO (Example BP: BuilHeaderUtilitiesServiceOrderSRVORel)
• Maint.-Centr.: MCO1 (Example BP: BuilHeaderUtilitiesServiceOrderMCO1Rel)
Relationen:
• BTOrder (is required for navigation)
• Business Partner
• Connection Object (Functional Location)
• Device

S/4HANA Service Order Page 229 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

In the Utilites role, the entities are displayed in the data fields of the tree profiles. Via navigation (OCA) the
corresponding views of the service order are called up. Object types with the corresponding target
mappings. For the (standard) Service Order and the Maint.-Centr. Service Order different views exist by the
OCA parameters for the navigation which views are to be used.

S/4HANA Service Order Page 230 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Data Environment

The distinction between a service order and a maint.-centr. service order is determined by the flag for
which a relation was implemented from the reference object (BP,ConObj,Dev) to the service order (USO) and
the maint.-centr. service order (USOM). Furthermore, different icons and texts were used for USO and
USOM in order to be able to separate them visually better.
The entities were integrated in different places:
• Business Partner Ident. Screen
• Technical Objects Ident. Screen
• Business Partner Overview

S/4HANA Service Order Page 231 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022


Object Type Name Description
BL Object UtilitiesServiceOrder
DDLS CRMS4_IU_C_USO Data of the reference objects via association to
CRMS4_IU_I_USOREF
DDLS CRMS4_IU_I_USOREF Data of the reference objects (Equipment, Func Loc.,
...)
Package CRMS4_IU_IL_SRV
TABL CRMS4D_SERV_H Service Order Main Table
TABL CRMS4D_REFOBJ Data of the reference objects

Partner Determination

1) For each transaction type (for example MC01) you can define a Partner Determination Procedure.
2) For the Partner Determination Procedure, you can define/assign Partner Functions
3) An Access Sequence can be maintained for each of the Partner Functions (along with some other
parameters)
4) The Access Sequence defines a Source (COMC_PARTNER_DOR) for the determination
5) Based on this Source the coding finally determines which logic will be called
a) This is done in a Case-Statement in program PROCEED_ONE_DETERMINATION_STEP
LCOM_PARTNER_OWF14
6) Therefor you can create and implement a BAdI Implementation for the BAdI Definition
COM_PARTNER_DETERM
a) As Filter the Source is used
7) In the corresponding BAdI Implementation ‘custom’ logic can be implemented
a) BAdI Implementation for CRM_PARTNER_I is not active

PM Maintenance Order

For the maintenance order, the BOL entity UtilitiesMaintenanceOrd would be created, which is located in the
GenIL component ISUSO. The CDS view I_MaintenanceOrder is used as a basis which uses the tables AFIH
with joins to the tables AUFK and AFKO.To integrate the key fields of the Maint.-Centr. Service Order another
join to the table AFIH was implemented.
Relations:
• Maint.-Centr. service order (if available)
• Business Partner

S/4HANA Service Order Page 232 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

• Here the field KUNUM is used and delimited to the customer in the link table CVI_CUST_LINK
(prerequisite is that the CVI works correctly - which is standard in S/4HANA).
• Connection Object (Functional Location)
• Device

Data Environments

Entities have been integrated in various places:


• Business Partner Ident. Screen
• Technical objects Ident. Screen
• Business Partner Overview

Since there is no existing Fiori/SAPUI5 application a UI was implemented via in the Web UI, this was
realized via Forms. In addition, a navigation to the Maint.-Centr. service order was provided using OCA if
one exists. Navigation from the IW33 to the Maint.-Centr. service order is also possible.
Form Name: UMO_OV; UI Component: IUFMUMO

INTEGRATION OF S4/HANA SERVICE REQUEST


For easier access to the fields from the different sets of the Service Order / Service Request, the BOL
Entity has been introduced.
The entity is integrated into the data environments (BOL Tree) therefor bidirectional relations were
implemented.
One new BOL entity is introduced
o UtilitiesServiceRequest
The creation and editing of the UtilitiesServiceOrder and the UtilitiesServiceRequest is also supported.

Page 233 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

The database table CRMS4D_SERV_H is the main source for records. Associations to the Reference objects
are stored in the database table CRMS4D_REFOBJECT.
Only the header is harmonized and not the items to it. The items can be displayed in the UI for the Service
Order itself for which a navigation is implemented.

GenIL / BOL / BL Layer

The component ISUSO contains all entities and queries for the service request.

The main entity UtilitiesServiceRequest represents the Service Request header with relations to the
reference objects.
Object Query UtilsServiceRequestRefQuery is implemented to build the relations from the reference object to
the Service Request.

Object Name Object Type Description


UtilitiesServiceRequest Root Object Main entity
UtilitiesServiceRequestQuery Query Object Query to select entities
UtilitiesServiceRequestDQuery Dynamic Query Object Dynamic Query to select entities
UtilsServiceRequestRefQuery Query Object Query to search entities based on
the reference object (Device,
Functional Location)

Integration of S4/HANA Service Request Page 234 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

BOL-Relations Service Request

Relation Name Relation Object Description


UtilitiesServiceRequestBTOrderRel BTOrder Needed to execute navigation to
the Service Order UI
UtilitiesServiceRequestBuilHeaderRel BuilHeader Business Partner relation
UtilitiesServiceRequestConnObjRel ConnectionObject Connection Object relation – based
on reference object data
UtilitiesServiceRequestUtilsDeviceRel UtilitiesDevice Device relation – based on
reference object data

Based on the BOL entities corresponding Business Layer Objects are maintend in the customizing.
Implementation class for the Service Request entity is CL_CRMS4_IU_BL_USR. The acronym USR is used for
the UtilitiesServiceRequest.

BL Object Service Request Queries

Integration of S4/HANA Service Request Page 235 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

BL Object Service Request Relations

Display / Navigation

The service order BOL entity UtilitiesServiceRequest is integrated through relations into the data environment
in several tree profiles (listed below).
To enable navigation to the service request UI the corresponding Target IDs were included into the profile
S4C-UT-IC.
Through defined One-Click-Action in the data environment trees the navigation is executed to display the
service request.
Tree profiles where service request is included:
o S4CUTBPOV4
o S4CUTBPOV5
o S4CUTBPOV6
o S4CUTMDBP7
o S4CUTMDTO5
o S4CUTUSR

Navigation profile Service Request

Integration of S4/HANA Service Request Page 236 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Action Profile Service Request

Service Request data environments

Integration of S4/HANA Service Request Page 237 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

OCA Navigation Service Request

Service Request in Utilities IC

INTEGRATION OF S4/HANA MAINTENANCE SERVICE ORDER (MSO)

The Maintenance Service Order is a subtype of the S/4HANA Service Order and stored in the same
database table with the same transaction category (BUS2000116). To distinguish the MSO the table
field/flag IS_MAINTENANCE_ORDER.

GenIL / BOL / BL Layer

Integration of S4/HANA Maintenance Service Order (MSO) Page 238 from 271
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

The MSO is modelled with BOL-Entity UtilitiesServiceOrder which was introduced in OP2021. Only the flag
IS_MAINTENANCE_ORDER is used to distinguish between the standard Service Order and the Maintenance
Service Order
Furthermore the ‘Process Type’ can be used to define which entities to display in the data environment
(BOL-Tree). For process types not delivered in standard shipment the BPath statements should be used.

Maintenance indicator in Service Order

Maintenance indicator in BL Customizing (Text)

Maintenance indicator in BL Customizing (Text 2)

Integration of S4/HANA Maintenance Service Order (MSO) Page 239 from 271
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Display / Navigation

Object type BT116_MCSO is used for the Maintenance Service Order. Target IDs are the same as for the
standard Service Order.

Navigation profile Maintenance Service Order

To distinguish the MSO from the Service Order a separate presentation was created to assign a different
icon.
BL Object Maintenance Service Order

Integration of S4/HANA Maintenance Service Order (MSO) Page 240 from 271
Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

To include different process type the relations with filtering on the process type should be used.

BOL-Tree Service Orders with BPath

CREATION OF S/4HANA SERVICE ORDER/REQUEST


The creation of the Service Order and Service Request is triggered via One-Click-Actions. The OCAs are
included in the action profile SRV_CREATE_MENU and assigned to the Business Partner and the reference
objects Connection Object and the Device.
The creation on device level is only possible for non-Device Info Records since the Service Documents
does not supports Devices Info Records as reference object.

Creation of S/4HANA Service Order/Request Page 241 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

A Pop-Up prompts to choose a transaction type for the service entities. With this selected transaction type,
a BOL-Entity is created and then passed to the service UI.
Also, the entity is prefilled with data like the ‘Sold to Party’ (business partner) or the reference object. The
reference object is supplied based on the OCA Entity on which the action is performed (Connection Object
or Device).
Class CL_CRMS4_IU_OCA_SERVICE_DOC implements the methods used to select entries for the Pop-Up,
creating the BOL entity, prefilling data and navigation.

Action Profile creation of Service Documents

OCA Parameter Service Order

OCA Parameter Service Request

Creation of S/4HANA Service Order/Request Page 242 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

OCA creation transaction type PopUp

Transaction type PopUp

Creation of S/4HANA Service Order/Request Page 243 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Creation Maintenance Service Order in Utilities IC

ENHANCEMENT CONCEPT
Enhancements represent potential customer requirements that have not been implemented in the standard
software. General information about the enhancement concept of SAP S/4HANA can be found under
Enhancement to the Standard
Enhancement spot CRMS4_IU_CM_PROCESS_FRAMEWORK contains BAdI definition
CRMS4_IU_CM_PF_PROCESS (interface IF_CRMS4_IU_CM_PF_PROCESS_BADI) which contains intervention
points for the execution of PF processes.

Custom Fields in Utilities Sales Contract Management Tables

Enhancement Concept Page 244 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Table Table Description Business Context Description


CRMS4D_IUCH_H OneOrder - Utilities CRMS4_IUCH_H Utilities Sales Contract
Contract - Header Header
CRMS4D_IUCI_I OneOrder - Utilities CRMS4_IUCI_I Utilities Sales Contract
Contract - Item Item
CRMS4D_IUCP_I OneOrder - Utilities CRMS4_IUCP_I Utilities Sales Contract
Contract - Period Item Period

Extend Fields
To create an extension field using S/4HANA extension tool execute the following steps:
247. In the SAP Fiori Launchpad (transaction /UP2/FLP) click on tile “Custom Fields and Logic”

248. Create a new extension field:

249. Select one of the mentioned business contexts above, enter properties and click on “Create”
a. Utilities Sales Contract Header
b. Utilities Sales Contract Item
C. Utilities Sales Contract Period

Enhancement Concept Page 245 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

250. Search for created field and click on “Publish”

251. Check the following tables to see the extended field:


a. CRMS4D_IUCH_H
b. CRMS4D_IUCI_I
c. CRMS4D_IUCP_I

Extend CDS View


On the created custom field view click on the tab “UIs and Reports”, enable usage and save.

Enhancement Concept Page 246 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

252. Check the following tables to see the extension:


a. CRMS4IUVCCTH
b. CRMS4IUVCCTI
c. CRMS4IUVCCTP
253. Click tile “Custom Fields and Logic”:

Extend Utilities Sales Contract


Find general information on extensibility here: SAP Help.
Procedure:
1. Extend DB tables by includes
2. Extend CDS views with extend views using association
3. Create Business Context for Entities (SCFD_REGISTRY)
4. Define Extensible CDS Views (SCFD_REGISTRY)
5. Extend call of CRM_ORDER_MAINTAIN module by parameters CUSTOMER_H and CUSTOMER_I
respectively

Extend Data Base Tables by Includes

The tables of the Utilities sales contract can be extended by fields via the Key User Tool (KUT). For this
purpose, include structures have been integrated in the DB tables which are extended by the fields.
DB Table Include Structure Note (Usage)
CRMS4D_IUCH_H CRMS4S_IUCH_H_INCL_EEW_PS CRMS4S_IU_CTH_ATTR,
CRMS4S_IU_CTH_BL_DATA,
CRMT_CUSTOMER_H_EXT
CRMS4D_IUCI_I CRMS4S_IUCI_I_INCL_EEW_PS CRMS4S_IU_CTI_ATTR,
CRMS4S_IU_CTI_BL_DATA,
CRMT_CUSTOMER_I_EXT
CRMS4D_IUCP_I CRMS4S_IUCP_I_INCL_EEW_PS CRMS4S_IU_CTP_ATTR,
CRMS4S_IU_CTP_BL_DATA,
CRMT_CUSTOMER_I_EXT

Extend CDS Views with Extend View

In the three Consumption CDS views, an extend view was added by association, via these extend views
the fields are integrated into the CDS view and can thus be read.

CDS View Extend View


CRMS4_IU_C_CTH CRMS4_IU_E_CTH
CRMS4_IU_C_CTI CRMS4_IU_E_CTI

Enhancement Concept Page 247 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

CRMS4_IU_C_CTP CRMS4_IU_E_CTP

Register Business Context

After the tables have been prepared, the registration must be carried out in the transaction SCFD_REGISTRY.

For this a Business Context is created for each table, there among other things the Includes are defined (a
direct relationship to the table does not exist since the structures are also used in other places). In addition,
a Business Object Type with an associated Business Object Node Type must be defined, this has already

Enhancement Concept Page 248 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

been created in the GTNC (is also required for the Business Event, for example, and defines the Utilities
Sales Contract as an object type).
Business context:
• CRMS4_IUCH_H
• CRMS4_IUCI_I
• CRMS4_IUCP_I

Define Extensible CDS View's (SCFD_REGISTRY)

After the business context has been defined, the CDS views must be registered so that they can be
extended together with the includes. For this purpose, corresponding entries must be created for the three
entities, where the extend view and the relation name to the business context must be specified.
CDS View Business Context Extend View Association
CRMS4_IU_C_CTH CRMS4_IUCH_H CRMS4_IU_E_CTH _ContractHeaderExtension
CRMS4_IU_C_CTI CRMS4_IUCI_I CRMS4_IU_E_CTI _ContractItemExtension
CRMS4_IU_C_CTP CRMS4_IUCP_I CRMS4_IU_E_CTP _ContractPeriodExtension

Enhancement Concept Page 249 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Source Code Adaptations to Store Data

In order to save the data of the newly available fields via the OneOrder framework, the set CUSTOMER_H or
CUSTOMER_I must be passed when calling the CRM_ORDER_MAINTAIN module.
Subsequently, the data is stored in the corresponding table via the framework.
Class Method
CL_CRMS4_IU_BL_CTH CREATE_SPEC, MODIFY_SPEC
CL_CRMS4_IU_BL_CTI CREATE_SPEC, MODIFY_SPEC
CL_CRMS4_IU_BL_CTP CREATE_SPEC, MODIFY_SPEC

Extend BOL Tree

Preparatory actions/conversions on existing tree component "IUBOTREE"

Outsourcing of view functionality to fragments


The functionality of existing BSP views has been outsourced to fragments. The resulting fragments can be
included in other BSP components or referenced to them.

Enhancement Concept Page 250 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

BSP Component BSP View BSP Fragment


IUBOTREE IsuBolTree.htm IsuBolTree_fragment.htm
cellObjPreview.htm cellObjPreview_fragment.htm
FindString.htm FindString_fragment.htm
Enable interchangeability of the tree service implementation
Provided extensions to make the tree service implementation class interchangeable.

Enhancement Concept Page 251 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

By passing the introduced parameter IV_TREE_SERVICE_IMPL_CLASS another class type can be instantiated.

In derivatives of the class L_CRM_IU_IC_BOL_TREE_IMPL a special class type can be instantiated as a tree
service by overwriting the method GET_TREE_SERVICE_IMPL_CLASS.

Enhancement Concept Page 252 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Enable/provide interchangeability of BSP Tree/Table-View component

In derivations of the class CL_CRM_IU_IC_BOL_TREE_IMPL a special class type for the BSP Tree.-/Table-View
component can be instantiated by overwriting the method GET_CONTEXT_NODE_IMPL_CLASS.

Enable/provide for interchangeability of the view configuration descriptor


The initialization of the View Configuration Descriptor has been outsourced to a separate method
"PREPARE_CONFIGURATION_DESCR". In derivations of the class "CL_CRM_IU_IC_BOL_TREE_IMPL"
a special class type for the View Configuration Descriptor can be instantiated by overwriting this method.

Enhancement Concept Page 253 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

The original initialization of the View Configuration Descriptor in method ON_AFTER_ACTIVATED of class
CL_CRM_IU_IC_BOL_TREE_IMPL was replaced by calling the new method PREPARE_CONFIGURATION_DESCR.

Implementation of new tree component "IUICTREE

Controller BSP component "IUICTREE


Due to the derivation of certain controller classes, there is the possibility of extensibility / interchangeability
of functionalities. This can be realized by overwriting the corresponding methods of the derived controller
classes.

Enhancement Concept Page 254 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Controller Type Controller Class View Derivation of


BSPWDComp Compo CL_IUICTREE_BSPWDCO CL_IUBOTREE_BSPWDCO
onent.do nent MPONEN_IMPL MPONEN_IMPL
Control
ler
MainWindow.d Windo CL_IUICTREE_MAINWIND CL_IUBOTREE_MAINWIND
o w OW_IMPL OW_IMPL
Control
ler
cellObjPreview View CL_IUBOTREE_CELLOBJP cellObjPrevi Direct reuse of the controller
.do Control REVIE_IMPL ew.htm class of the BSP component
ler "IUBOTREE"
Empty.do View CL_BSP_WD_VIEW_CONT empty.htm
Control R_EMPTY
ler
FindPopup.do View CL_IUBOTREE_FINDPOPU Direct reuse of the controller
Control P_IMPL class of the BSP component
ler "IUBOTREE"
FindString.do View CL_IUBOTREE_FINDSTRIN FindString.ht Direct reuse of the controller
Control G_IMPL m class of the BSP component
ler "IUBOTREE"
IsuBolTree.do View CL_IUICTREE_TREE_IMPL IsuBolTree.h CL_CRM_IU_IC_BOL_TREE
Control tm _IMPL
ler
Views BSP component "IUICTREE
In the created view controllers, only the BSP fragments of the BSP component "IUBOTREE" are
referenced. See also section Outsourcing of view functionality to fragments above.

Exchange of the tree service implementation


In the overridden method GET_TREE_SERVICE_IMPL_CLASS of the class CL_IUICTREE_TREE_IMPL the
implementation class of the tree service implementation is exchanged. See also Enable/provide for
exchangeability of the tree service implementation.

Enhancement Concept Page 255 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Exchange of the BSP Tree./Table-View component


In the overwritten method GET_CONTEXT_NODE_IMPL_CLASS of the class CL_IUICTREE_TREE_IMPL, the
implementation class for the BSP tree/table view component is exchanged. See also Enable/Provide for
Interchangeability of the BSP Tree/Table View Component.

Exchange of the View Configuration Descriptor


In the overridden method PREPARE_CONFIGURATION_DESCR of the class CL_IUICTREE_TREE_IMPL the
implementation class for the View Configuration Descriptor is exchanged. See also section Enable/provide
interchangeability of the View Configuration Descriptor above.

Enhancement Concept Page 256 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

The original initialization of the View Configuration Descriptor in method ON_AFTER_ACTIVATED of class
CL_CRM_IU_IC_BOL_TREE_IMPL was replaced by calling the new method
PREPARE_CONFIGURATION_DESCR.

Implementation of new tree component "IUICTREE


In the course of development, a new tree component "IUICTREE" was implemented in the form of a new
BSP component.

Enhancement Concept Page 257 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Controller BSP component "IUICTREE


Due to the derivation of certain controller classes, there is the possibility of extensibility / interchangeability
of functionalities. This can be realized by overwriting the corresponding methods of the derived controller
classes.
Controller Type Controller Class View Ableitung von
BSPWDCompon Compon CL_IUICTREE_BSPWDCOMP CL_IUBOTREE_BSPWDCOMP
ent.do ent ONEN_IMPL ONEN_IMPL
Controll
er
MainWindow.do Window CL_IUICTREE_MAINWINDOW CL_IUBOTREE_MAINWINDOW
Controll _IMPL _IMPL
er
cellObjPreview.d View CL_IUBOTREE_CELLOBJPRE cellObjPrevie Direct reuse of the controller
o Controll VIE_IMPL w.htm class of the BSP component
er "IUBOTREE"
Empty.do View CL_BSP_WD_VIEW_CONTR_ empty.htm
Controll EMPTY
er
FindPopup.do View CL_IUBOTREE_FINDPOPUP_I Direct reuse of the controller
Controll MPL class of the BSP component
er "IUBOTREE"
FindString.do View CL_IUBOTREE_FINDSTRING_ FindString.ht Direct reuse of the controller
Controll IMPL m class of the BSP component
er "IUBOTREE"
IsuBolTree.do View CL_IUICTREE_TREE_IMPL IsuBolTree.ht CL_CRM_IU_IC_BOL_TREE_IM
Controll m PL
er
Views BSP component "IUICTREE
In the created view controllers, only the BSP fragments of the BSP component "IUBOTREE" are
referenced. See also section Enable interchangeability of the tree service implementation.

Enhancement Concept Page 258 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

BSP-Komponente BSP-View Verwendung BSP-Fragment


IUICTREE IsuBolTree.htm IUBOTREE/IsuBolTree_fragment.htm
cellObjPreview.htm IUBOTREE/cellObjPreview_fragment.htm
FindString.htm IUBOTREE/FindString_fragment.htm
Exchange of the tree service implementation
In the overridden method GET_TREE_SERVICE_IMPL_CLASS of the class CL_IUICTREE_TREE_IMPL the
implementation class of the tree service implementation is exchanged. See section Enable
exchangeability of the tree service implementation.

Exchange of the BSP Tree./Table-View component


In the overwritten method GET_CONTEXT_NODE_IMPL_CLASS of the class CL_IUICTREE_TREE_IMPL, the
implementation class for the BSP tree/table view component is exchanged. See also Enable/Provide for
Interchangeability of the BSP Tree/Table View Component.

Enhancement Concept Page 259 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Exchange of the View Configuration Descriptor


In the overridden method PREPARE_CONFIGURATION_DESCR of the class CL_IUICTREE_TREE_IMPL the
implementation class for the View Configuration Descriptor is exchanged. See also Enable/provide
interchangeability of the View Configuration Descriptor.

Delegation of the usages from IUBOTREE to IUICTREE

Delegation is done via the enhancement implementation CRMS4_IU_IL_REPOSITORY for the enhancement
spot CRM_IU_IL_S4OP_REPOSITORY. In the associated implementation class
CL_CRMS4_IU_IL_REPOSITORY_IMPL an implementation of the interface method
IF_CRM_IU_IL_S4OP_REPOSITORY~CL_CREATE_FROM_XML was made for this purpose. All requests for the
BSP component "IUBOTREE" are thus delegated to the BSP component "IUICTREE".

Enhancement Concept Page 260 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Klasse Bemerkung
CL_IUICTREE_BSPWDCOMPONEN_IMPL Exchange class for the component
Controller
"CL_IUBOTREE_BSPWDCOMPONEN_IMPL"
CL_IUICTREE_CN_TREE Exchange class for the BSP Tree.-/Table
View Component
"CL_CRM_IU_IC_BOL_TREE_CN00"
CL_IUICTREE_CONFIG_DESCR Exchange class for the configuration
descriptor
"CL_CRM_IU_IC_BOL_TREE_CFG_DESC"
CL_IUICTREE_MAINWINDOW_IMPL Window controller replacement class
"CL_IUBOTREE_MAINWINDOW_IMPL"
CL_IUICTREE_TREE_IMPL Exchange class for the view controller
"CL_CRM_IU_IC_BOL_TREE_IMPL"
CL_IUICTREE_TREE_SERVICE Exchange class the tree service
"CL_CRM_IU_IC_BOL_TREE_SERVICE

Extend UI Process

Enhancement spot CRMS4_IU_CM_PROCESS_FRAMEWORK contains BAdI definition


CRMS4_IU_CM_UI_PROCESS (interface IF_CRMS4_IU_CM_UI_PROCESS_BADI) which contains intervention points
for the execution of UI processes.

AUTHORIZATION CONCEPT
The concept for authorization is implemented to guarantee, that a user can only execute processes, that
are intended for the certain role the user has.

Since the processes cannot be started exclusively via the CRM UI, but can also be initiated in the
background by UIL, there are several places where the authorization must be checked

254. UI processes
255. PF processes
256. Contract overview (Utilities sales contract overview)

Authorization Object Fields


E_SCNTRPRC ISU_PPRNAM - Technical Name of
Process
ISU_UPRNAM - Technical Name of UI
Process
ISU_PRKIND - PF Process Kind
AUGRP - Authorization Group
ACTVT 16 – Execute
B8 – Execute Again

Authorization Concept Page 261 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

FA - Cancel

What is being checked:

At least two fields are required for the processes:

257. Process type (PF process kind)


a. CRMS4_IU_PFP_KIND
258. Process name (technical name of process)
a. CRMS4_IU_PFPROCESSNAME
259. UI process name
260. Activity
a. Execute
b. Execute Again
c. Cancel

Possible calling points for processes:

261. CL_CRMS4_IU_CM_PF_PROCESS CHECK_AUTHORIZATION


a. CHECK_FOR_EXECUTE
b. CHECK_CAN_STARTED
c. CHECK_FOR_ABORT
262. CL_CRMS4_IU_CM_UI_PROCESS CHECK_AUTHORIZATION
a. CAN_STARTED

OneOrder calculation concept (Utilities sales contract header):

263. CRM_ORD_* Authorization object


264. CL_CRMS4_IU_BL_CTH CHECK_AUTHORITY_SPEC( )
a. CRM_ORDER_CHECK_AUTHORITY_GEN
Technical objects
Using the method of the BOL entity IS_CHANGE_ALLOWED( ), you can check whether the entity is
changeable. An authorization check is also performed.
This check has been implemented in the following places for the technical objects:

CL_IUICOBJD_SINGLEOBJECTV_IMPL EH_ONSWITCH_TO_CHANGE_MODE

CL_IUITOUIU_MAINCUCO_IMPL LOCK_MAIN_ENTITIES

CL_IUITOUIU_TOTOOLBAR_IMPL EH_ONEDIT

CL_CRMS4_IU_BL_CON
265. CHECK_AUTHORITY_SPEC( )
a. E_CONNOBJ
CL_CRMS4_IU_BL_PRM
266. CHECK_AUTHORITY_SPEC( )
a. E_PREMISE
CL_CRMS4_IU_BL_POD
267. CHECK_AUTHORITY_SPEC( )

Authorization Concept Page 262 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

a. E_POD

Authorization Object for Utilities Sales Contract Management

The authorization object E_SCNTRPRC allows to control which processes can be executed by users in the
utilities sales contract management. Possible activities are execute, execute again and cancel.

When using the authorization object E_SCNTRPRC in a certain role, the following authorization data can be
maintained under transaction PFCG:

Technical Name of UI Process

The list contains all entries that are maintained in Customizing under SPRO path:
SAP Utilities → Customer Engagement → Utilities Sales Contract Management → General Process
Definition

Authorization Concept Page 263 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Technical Name of UI Process

PF Process Kind

Authorization Concept Page 264 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Authorization Group

Authorization Concept Page 265 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Technical Objects

Authority Object:
268. CRM_ISU_TO
Class:
269. CL_CRMS4_IU_BL_CON
270. CL_CRMS4_IU_BL_PRM
271. CL_CRMS4_IU_BL_POD
Method:
272. CHECK_AUTHORITY_SPEC
(see SAP note 2890588)

SECURITY

End of Purpose (Blocking) Process


All requirement information about how to do the adaption for the business parnter and/or Customer/Vendor
blocking is available via the note 2103639 - End of Purpose Check Adaption for Business Partner
Consuming Applications – Guide for Partners and Customers.

Prerequisites

In order to block the business partner, all transactions in CRM must be completed (Sales Contract,
Interaction Record, etc.).

You must have a role based on the following attributes:

273. Template role: SAP_CA_BP_DP_BLOCK


274. Authorization object: B_BUP_PCPT
275. Activity: 05, BLOCK.

You have activated the following business functions:

276. Information Lifecycle Management (ILM)


277. ILM-Based Deletion of Business Partner Data (BUPA_ILM_BF)

Security Page 266 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

You have made the required settings for blocking and unblocking business partner data in Customizing for
Cross-Application Components under Data Protection -> Blocking and Unblocking of Data -> Business
Partner.

You have defined the residence period rules for business partners (ILM object: CA_BUPA) in ILM policies
(transaction IRMPOL).

Blocking the Business Partner

To block the business partner, call up transaction BUPA_PRE_EOP.

Ending the Interaction Record

Call up Customizing under: Service -> Transaction -> Basic Settings -> Status Management -> Define
Status Profile for User Status

Select Status Profile CRMACTIV.

In the status profile for the interaction record, the status operation FINI must be stored for the user status
E0003. Otherwise, the interaction record will not be terminated as required.

Security Page 267 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

***Note: If the status 'ERLD' is initially set in customizing, this step is (theoretically) not necessary. In this
case, all interaction records should be closed directly when they are created.

1. Call up transaction CRM_UI


2. Select business role: S4C_UT_IC.
3. Search for the business partner.
4. Confirm the business partner (if not automatically confirmed).
5. Navigate to Interaction Record History.

6. Click Search (1) and navigate to Open (2) Interaction Record.


7. Click on Object ID (3).

Security Page 268 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

8. Enter Change mode (1), set status to Completed (2) and save (3).

Ending the Utilities Sales Contract

The Customizing steps are equal to Ending the Interaction Record. Call up: Service -> Transaction -> Basic
Settings -> Status Management -> Define Status Profile for User Status to check the settings describes in
the chapter above.

1. Call up transaction CRM_UI


2. Select business role: S4C_UT_IC.
3. Search for the business partner.
4. Confirm the business partner (if not automatically confirmed).
5. Navigate to Utilities Sales Contracts.

Security Page 269 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

6. Selected already ended sales contract (1) and use one-click action Others → Complete
Contract Item (2)

7. Click on Save.

The sales contract item is no longer displayed in the list.

Security Page 270 from 271


Cookbook - Best Practice for S/4HANA Utilities for customer engagement 2022

Security Page 271 from 271

You might also like