Professional Documents
Culture Documents
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
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.
REFERENCE MATERIAL
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.
• Select Edit
• Click Save
• Click Activate
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).
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
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
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
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
• 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)).
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
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.
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.
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.
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
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
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
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 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.
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.
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.
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).
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)
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.
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.
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.
Customizing
View: CRMS4V_IU_UBT
Table: CRMS4C_IU_UBT
Text-Table: CRMS4C_IU_UBTT
UI-Visualization
UI-Component: IUFMBP
Window: IUFMBP/WUBuilHeaderTemplate
View: IUFMBP/VUBuilHeaderTemplate
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)
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.
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:
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.
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 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
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.
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.
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:
• 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.
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
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
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.
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
Transaction: SNRO
• Enter object name “FKK_KONTO”
• Click on “Display”
• Goto → Interval Editing
• Create internal and external number range
• 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
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:
Example:
***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:
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
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
Maintain in tab 3:
42. Grouping
43. Dunning Proc.
*** 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.
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
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.
SAP Utilities → Customer Engagement → Technical Objects → Assign Master Data Template for Technical
Objects
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.
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
Further information:
81. Activity Reason
82. Create Status Profile in SAP CRM
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
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
SPRO path: SAP Utilities → Customer Engagement → Clarification Cases → Maintain Parameters for
Clarification Case Creation
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)
Customizing
Activate Replication: Event Customizing table: TBE31
Event: IBSSIBCO
Function: CRM_ADDON_BCONT_TO_IR
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!
90. Triggered by the Business Transaction Event IBSSIBCO (Event Delta Download Business Partner
Contacts)
Package: IBSSI_CRM_BCONT (Download Contact as Interaction Record)
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.
92. SPRO path: SAP Utilities → Customer Service → CRM Integration → Meter Reading Entry → Define
Parameters for Changeability of Meter Reading Results
Customizing
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.
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
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
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
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
Result:
Tooltip popups:
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"
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.
Symbol Meaning
Default sorting switched on
Default sorting switched off
Sorting switched on
Sorting switched off
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.
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.
Definition of sorts
3 POD PointOfDelivery
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
Customizing tree hierarchy with nodes for connection object, premise, point of delivery
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.
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
In the view Define Sort Parameters you can define the parameters of the sort orders that were created
under Define Sorts:
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.
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
The possible values for the fields Include/exclude indicator and Selection option correspond to the usual
specifications for selection parameters in SAP.
Customizing tree hierarchy with nodes for connection object, premise, point of delivery
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.
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
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:
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.
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
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.
Relation finding:
In this example, only the following determination options were maintained in Customizing for the object
determination profile.
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.
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.
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.
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
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
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.
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.
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.
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.
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.
ser nter a e
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
F View Object
Query In BOL: Search Object (D), Dynamic Search Object (G) BQ, BQC, BQPC
Relation Relation from this object to other objects (BOL) BR, BRQ, BRK, BRR
Customizing
BL Objects can be defined or changed via Customizing. The following Customizing activities are available
for this purpose.
CRMT_OB KIND
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()
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
BL Object Method
BL Object Method
BL Object Attribute
Value Meaning
SPACE unknown
Y Yes
N No
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
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
PROPERTY_TEXT_MODE contains the value for the text Mode. See Type
TEXTMODE
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_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
<AttributeName>_
ICON is assumed.
UI Presentation
UI Types
Field/Attribute Identifier
Field/Attribute Identifier
Field Meaning
Attribute Calculation
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
S Move Before Save Transfer of field values before a BL Object is saved. Not relevant
(intern) for BL Query objects (see examples)
2 Timestamp to Time Convert time to time stamp. Often in combination with function 1.
(see examples)
Attribute Conversion
Conversion Examples
BL Query
BL Query
Layer
Query
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
LE Lower or Equal
Parameter
Attribute Conversion
Various conversion functions are available for attributes of a BL Query object. See section Attribute
conversion.
BL Relation
Type TYPE
BL Relation
entities are
determined.
Key Assignment
Describes the key relationship between the entities.
Key Assignment
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'.
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
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
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.
Transaction: CRMS_IC_CROSS_SYS
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
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 "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 “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
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 “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 “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
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 of displaying the application log with category CRMS4_IU in the period of the last 5 days with tree
profile group S4CUTCTILG.
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 "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 (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.
Transaction type "Separator (SEPAR)" can be used to define a separator within the toolbar or within menus.
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".
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.
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.
The normal parameters are defined in the corresponding Fiori application and must be maintained case-
sensitively in Customizing.
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.
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” is using the browser to navigate. Thereby it is possible to open new browser tabs or
windows.
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.
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.
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.
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)
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
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
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:
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
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.
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.
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.
In addition, OCAs or action profiles can also be disabled via the Active attribute if they should not be
available on the UI:
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).
Activity Types
here is an overview of already existing action profiles, which are already delivered in the standard:
Business Objekt Entity Name Description Contains in Action Used in Tree Used in Forms
Profilen Profile
BP_UNCONFIRM
_CONTACT_PERS
ON
BP_UNCONFIRM
_UCAP
on Overview
Screen
CP_UNCONFIRM
CTI_ADMIN_MENU CTI_COMPLETE
CTI_CNCL_CHNG
_START_DATE
CTI_CNCL_MOVE
_IN
CTI_CNCL_MOVE
_OUT
CTI_CHNG_END_
DATE
CTI_CHNG_STAR
T_DATE
CTI_CHANGE_M
ENU
CTI_MENU
CTI_PROCESS_M
ENU
UCT_SHORTMEN
U
CTI_MOVE_TO_
OTHER_PRM
CTI_CHANGE_M
ENU
CTI_PROCESS_M
ENU
#BEFORE_OUTP
UT#
#CONTEXT_INITI
ALIZE#
PRM_MOVE_IN
Document
Menu UCAP_BILLDOC_
DISPLAY
UCAP_BILLDOC_
REVERSE
#EDIT#
#SAVE#
UCAP_INVOICIN
G
UCAP_MENU
UCAP_MOVE_IN
UCAP_CREATE_F
ROM_TEMPLATE
UCAP_SHORTME
NU
Change Move-
In Date #CONTEXT_FINIS
HED#
#SAVE#
#SAVE#
UCT_CHANGE_M
ENU
UCT_MOVE_IN
UCT_MOVE_OUT
UCT_REVERSE_
MOVE_IN
UCT_REVERSE_
MOVE_OUT
UCT_CHANGE_M
ENU
UCT_FORM
#CONFIG_COMP
ARED_PRODUCT
#
#SELECT_AS_PR
ODUCT#
#SUBMIT_ON_E
NTER#
#CONFIG_SELEC
TED_PRODUCT#
#SIMULATE#
#SUBMIT_ON_E
NTER#
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.
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.
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
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
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.
SYST Fields
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.
GDC Examples
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
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
HasCou HAS_COUN
nt T
|| CONCAT ||(a;b)
||(a;b;c...)
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
||
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
count
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
= 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
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
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
PARENT/@Attribute1
PARENT/PARENT/@Attribute1
ROOT/@Attribute1
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
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
4. Define One-Click-Action:
− Defining a one-click action as navigation
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:
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.
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.
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.
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.
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.
In this view you define which form tree should be used with which form mask.
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
Standard Forms
The following is a list of forms that are also delivered in the standard:
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
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
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
Installation
ILN_FURTHER_INFORMATION
ILN_GENERAL_DATA
ILN_OV
Device
Device Register
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.
Chart Formular
Constants and types are from class CL_CRMS4_IU_UI5_CHART. The Documentation of the SAPUI5
control VizFrame can be found here.
Constants and types are from class CL_CRMS4_IU_UI5_PLANCALENDAR. The Documentation of the
SAPUI5 control PlanningCalendar can be found here.
Constants and types are from class CL_CRMS4_IU_UI5_PROCESS_FLOW. The Documentation of the SAPUI5
control ProcessFlow can be found here.
Customizing
SE16: CRMC_IUICOVBC_PR
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
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
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.
Detailed description on how to create a reference product to use with sales contract management can be
found here: Define a Reference Product
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.
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.
*** 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
Changing UI Processes
• Double click on one of the entries to receive details: Here you can change any of the parameters.
UI Process Attributes
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
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.
Runtime
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
)
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
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
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:
Example SOTR_EDIT:
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
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.
For more information about the value calculation please see to the following documentation: Value
Calculation for BOL Trees, One Click Actions and Summary Texts
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.
<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:
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".
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.
A process step is defined by its technical name. It has the following attributes:
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.
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.
The context nodes of UI processes and linked context nodes for the views can be assigned a name.
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.
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.
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.
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:
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
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.
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.
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
*** 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).
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)
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.
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.
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
*** Note: It is possible to run the report on o regular basis by scheduling a job for the execution.
Log is displayed:
*** 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.
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
Common procedure
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.
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)
IMG Customizing
After the SAP Object Type was created in the GTNC now the necessary customizing in the transaction
SPRO can be done.
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.
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.
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.
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)
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.
Payment Data
Customizing
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.
Data Environment
The entities have been integrated in different places (as new tree profiles):
• Business Partner Ident. Screen
• Business Partner Overview
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.
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
•
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.
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.
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
•
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
• 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
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
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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”
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
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
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.
CRMS4_IU_C_CTP CRMS4_IU_E_CTP
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
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
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
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
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.
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.
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.
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.
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".
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
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)
FA - Cancel
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( )
a. E_POD
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:
The list contains all entries that are maintained in Customizing under SPRO path:
SAP Utilities → Customer Engagement → Utilities Sales Contract Management → General Process
Definition
PF Process Kind
Authorization Group
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
Prerequisites
In order to block the business partner, all transactions in CRM must be completed (Sales Contract,
Interaction Record, etc.).
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).
Call up Customizing under: Service -> Transaction -> Basic Settings -> Status Management -> Define
Status Profile for User Status
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.
***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.
8. Enter Change mode (1), set status to Completed (2) and save (3).
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.
6. Selected already ended sales contract (1) and use one-click action Others → Complete
Contract Item (2)
7. Click on Save.