0% found this document useful (0 votes)
36 views222 pages

Loio

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views222 pages

Loio

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

User Guide | PUBLIC

2020-06-30

SAP Solution Sales Configuration


© 2021 SAP SE or an SAP affiliate company. All rights reserved.

THE BEST RUN


Content

1 Document History. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 SAP Solution Sales Configuration, On-Premise Edition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6

3 Solution Modeling Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8


3.1 Introduction to Solution Models. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Knowledge Base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Material. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
Characteristic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Variant Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Dependency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
User-Defined Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Interface Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Bill of Material. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Model Syntax and Logical Validations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Solution Model Samples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.2 Setup of Solution Modeling Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
SAP Modeling Perspective. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
SAP Testing Perspective. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Data Loader in the Solution Modeling Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
3.3 SSC DevOps Wizard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.4 Analyzing Pricing Traces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.5 Data Exchange. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.6 Maintaining Modeling Templates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.7 Developing SSC User Exits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.8 Collaboration Between Modelers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.9 Setting Context Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.10 Automating Modeling Lifecycle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Headless Export of Knowledge Bases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Headless Performer Execution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Headless XML Configuration Restore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Headless Upload External Variant Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Headless Upload of Knowledge Bases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Headless Dataloader Execution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

4 Solution Configuration Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139


4.1 Configure-To-Order in SAP CRM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

SAP Solution Sales Configuration


2 PUBLIC Content
One-to-Many Relationships Between Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Hard and Soft Ties Between Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Splitting Line Items in Follow-Up Document Creation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Replicating Data from SAP CRM to SAP ERP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
4.2 Configure-To-Order in SAP ERP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
IDOC Inbound Interface for Sales Order Creation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Light Engineer-to-Order. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
4.3 Configure-To-Order in Hybris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Adding Related Products to the Solution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158
4.4 Component Promotion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
4.5 Advanced Mode Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
4.6 Interactive Pricing and Delta Pricing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Pricing Formula and User Exits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Modifying Pricing Context. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
4.7 Creating Solution Configurations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
4.8 Customize Properties in XCM Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
4.9 Restoring Solution Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
4.10 Configuration Result Schema Definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

5 User Exit Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185


5.1 Deployment Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
5.2 Invocation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
5.3 Security Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186

6 Integration with Other Sales Systems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188

7 Business Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190


7.1 Compressed Storage of XML Configuration Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

8 Solution Configuration Analytics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192


8.1 SAP Business Information Warehouse Implementation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
8.2 DataSources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
Item Configuration for Business Documents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Knowledge Base Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Knowledge Base Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Knowledge Base Characteristic Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Knowledge Base Characteristic Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Knowledge Base Symbol Value Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Knowledge Base Symbol Value Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204
Knowledge Base Independent Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Knowledge Base Independent Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Knowledge Base Independent Characteristic Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207
Knowledge Base Independent Characteristic Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . .208

SAP Solution Sales Configuration


Content PUBLIC 3
Knowledge Base Independent Symbol Value Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Knowledge Base Independent Symbol Value Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Configuration Value Code Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Configuration Data Type Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212
Configuration Author Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

9 Operations Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215


9.1 Monitoring Concept. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215
9.2 Logging and Tracing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215
9.3 Setting the User Exit Upload Size Limit in CRM/ECC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
9.4 Cache Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217
9.5 Solution Configuration Support - Backend Utilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
9.6 Frequently Asked Questions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

SAP Solution Sales Configuration


4 PUBLIC Content
1 Document History

Publishing Date Change Related Links

February 2018 Introduced the following performer ap­ Performer-Application-Specific Argu­


plication parameters: ments [page 121]

● -pContextPropertyFile
● -pFunction

Introduced the SAP note for handling Uploading Knowledge Bases [page
loss of text during download using CU36 87]
utility.

Introduced the requirements and pro­ Headless Upload of Knowledge Bases


cedure for headless upload of knowl­ [page 131]
edge bases.

Introduced the procedure to clear and Cache Management [page 217]


monitor SAP Solution Sales Configura-
tion runtime engine cache.

SAP Solution Sales Configuration


Document History PUBLIC 5
2 SAP Solution Sales Configuration, On-
Premise Edition

Product Information

Product SAP Solution Sales Configuration, on-premise edition

Release 3.0

Based On SAP EhP 4 for SAP CRM 7.0

SAP EhP 8 for SAP ECC 6.0

Minimum Supported BI Content Release BI Content 7.07

Documentation Published February 2018

Use

SAP Solution Sales Configuration (on-premise edition) is a system that helps customers to configure and sell
solutions made of complex product combinations. In addition to selling their own products, many businesses
also sell solutions that include products, services, and parts from other manufacturers. For example, many
technology companies sell solutions that include combinations of highly complex hardware, software, and
services, and each of these can have options or features that must be specified by a customer during the
ordering process.

From a modeling perspective, each individual product can be split into many different instances, and there are
many possible relationships and dependencies between the product instances. SAP Solution Sales
Configuration (on-premise edition) provides a flexible modeling environment, which in turn simplifies the
ordering and configuration process for the customer.

SAP Solution Sales Configuration (on-premise edition) includes a configuration engine that provides the ability
to perform bottom-up configuration as well as the normal top-down approach. The system offers innovations
that make it easier to maintain configuration model data. The system is designed to provide efficient
configuration execution performance and advanced integration capabilities.

Integration

SAP Solution Sales Configuration (on-premise edition) is integrated with the following systems:

● SAP Customer Relationship Management (SAP CRM) 7.0 EhP 4


● SAP ERP Central Component 6.0 EhP 8

SAP Solution Sales Configuration


6 PUBLIC SAP Solution Sales Configuration, On-Premise Edition
● Hybris Commerce Suite
For information about supported versions, see SAP Note 2227752 (Supported Combinations of SAP
Commerce Platform and SAP Solution Sales Configuration)

Features

● Solution Modeling Environment


The system provides a modeling environment for creating complex solution models. The solution modeling
environment is based on the Eclipse Rich Client Platform (RCP) and can be integrated with SAP CRM and
SAP ERP for exchanging configuration master data. Within the modeling environment, you define model
elements such as classes and characteristics, and then you define dependencies between your model
elements.
The solution modeling environment can also be integrated with a Source Code Management System to
support collaborative modeling and allow several modelers to work on the same model simultaneously.
The solution modeling environment includes a test user interface and a configuration engine, which allow
you to test and optimize your model before transporting it to the target sales system.
For more information, see Solution Modeling Environment [page 8].
● Solution Configuration Environment
The application provides a configuration engine and a configuration user interface that fully integrate with
the ordering process in the SAP CRM and SAP ERP systems. You can enter an advanced mode product (a
solution) as an item in a sales document, and then choose to configure it. The system opens the enhanced
configuration user interface, where you can enter the solution components and configure their options.
When you save the configuration, you are returned to the sales document.
For more information, see Solution Configuration Environment [page 139].
● Integration with Non-SAP Sales Systems
SAP Solution Sales Configuration (on-premise edition) can also be integrated with non-SAP sales systems.
For more information, see Integration with Other Sales Systems [page 188].
● Solution Configuration Analytics
SAP Solution Sales Configuration (on-premise edition) provides a set of DataSources for extracting
solution configuration data from the SAP CRM system to a data warehouse.
For more information, see Solution Configuration Analytics [page 192].

SAP Solution Sales Configuration


SAP Solution Sales Configuration, On-Premise Edition PUBLIC 7
3 Solution Modeling Environment

Use

The solution modeling environment is the part of SAP Solution Sales Configuration that is used to create
advanced solution models. It is integrated with SAP Customer Relationship Management (SAP CRM) and SAP
ERP Central Component (SAP ECC), where it is used to exchange configuration master data. You define and
test your solution model in the solution modeling environment before transporting it to the target system (SAP
ECC, SAP CRM, or Hybris), where it is integrated with the sales ordering process and used during solution
configuration.

Integration

The solution modeling environment is integrated with the following systems:

● SAP CRM
● SAP ERP

Features

● Advanced Mode Solution Modeling


Models for products, such as a car, are delimited and have a finite number of component parts. Solutions
are not delimited; they can have many optional parts with complex dependencies between these parts. The
solution modeling environment allows you to create advanced solution models. For example, you can
define non-part components (instances) without using a bill of material (BOM).
For information about the elements in a solution model, see Solution Model [page 10]. For information
about the steps required to create a solution model, see Solution Modeling [page 73].
● Data Exchange
The solution modeling environment is integrated with SAP CRM and SAP ERP and can be used to exchange
configuration master data. For more information, see Data Exchange [page 109].
● Collaborative Modeling
The system supports collaboration between modelers by integrating with standard version control
systems. For more information, see Collaboration Between Modelers [page 111].
● Test User Interface and Test Configuration Engine
The system provides a test user interface and a test configuration engine, where you can test and optimize
your model before transporting it to the target system. In the test user interface, you can configure your
solution to ensure that your model is performing as expected. In addition, you can save test scripts,
identify the constraints applied during a configuration session, and test the performance of constraints.
For more information, see Testing Models Locally [page 92].
● Knowledge Base Orchestration

SAP Solution Sales Configuration


8 PUBLIC Solution Modeling Environment
The system supports knowledge base orchestration in the downstream processes in the configuration
engine and the configuration user interface. Knowledge base orchestration is a process that enables
multiple knowledge bases to handle large configurations. It encapsulates large knowledge base results into
smaller, more manageable components and presents multiple independent configuration objects as a
single, coordinated configuration session to the end user.
● Solution Modeling User Interface
The solution modeling user interface is based on the Eclipse Rich Client Platform (RCP). It is designed to
support different ways of navigation and to perform quickly when modelers are working with large,
complex models.
The solution modeling user interface provides wizards for creating model elements. It also provides a text
editor for writing and maintaining element definitions. The text editor has the following features:
○ Auto-Completion
You define model elements with a precise syntax. The text editor provides an auto-completion feature
to support modelers when they manually define elements. To use auto-completion, perform the
following steps:
1. Position the cursor at the relevant location and press CTRL + SPACEBAR .
The system displays a dialog box listing all of the syntactically correct elements at the current
cursor position.
2. Double-click an element to insert it into the text editor.
○ Syntax Error Indicator
The syntax error icon is displayed on the left side of any lines that contain a syntax error.
Furthermore, if syntax errors exist, a red square is displayed in the top right corner of the text editor.
You can move the cursor over the red square to see the total number of syntax errors.
○ Tabbed Display
Elements opened in the text editor are displayed on tab pages. You can open several elements for
editing and use the tab pages to switch between them.
○ Templates
The solution modeling environment provides templates for common model elements and also allows
you to define your own templates. Templates are indicated by a green dot.
For information about maintaining templates, see Maintaining Modeling Templates [page 110].
● Data Loader
The Data Loader is a component used to download configuration data for your solutions from an SAP ECC
or SAP CRM source system to a local database management system such as Microsoft SQL Server. For
more information, see Data Loader in the Solution Modeling Environment [page 107].

Constraints

● Certain modeling syntax that works in Variant Configuration (LO-VC) is not supported in the Internet
Pricing and Configurator (IPC) configuration engine. Since SAP Solution Sales Configuration is based on
the same IPC technology, those restrictions also apply to SAP Solution Sales Configuration. For more
information about the restrictions, refer to SAP Note 1819856 (Additions to IPC VC deltalist).
● Solution modeling can be very complex as the requirements and dependencies to be considered when you
assemble a solution can be both numerous and complex. While the configuration engine in SAP Solution
Sales Configuration is built specifically to handle these processing intensive requirements, the critical
factor in ensuring efficient processing is the definition of the model. Great care must be taken in developing
solution models. It is a similar process to any other application development and requires training, abstract
thought, sophistication, and elegance of design.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 9
3.1 Introduction to Solution Models

Definition

A solution model is a hierarchical decomposition of a solution. It defines the products (configurable materials
and the services) that can be contained within the solution. It also defines the relationships between the
various elements of the solution, including any dependencies (constraints and rules).

Structure

A solution model contains the following parts:

● Knowledge Bases (KBs)


For more information, see Knowledge Base [page 11].
For information about defining knowledge bases, see Defining Knowledge Bases [page 11].
● Classes
For more information, see Class [page 16].
For information about defining classes, see Defining Classes [page 16].
● Materials
For more information, see Material [page 21].
For information about defining materials, see Defining Materials [page 21].
● Characteristics (cstics)
For more information, see Characteristic [page 24].
For information about defining characteristics, see Defining Characteristics [page 25].
● Variant Tables
For more information, see Variant Table [page 38].
For information about defining variant tables, see Defining Variant Tables [page 44].
● Dependency Nets
For more information, see Dependency Net [page 55].
For information about defining dependency nets, see Defining Solution Dependencies [page 46].
● User-Defined Functions
For more information, see User-Defined Function [page 56].
● Interface Designs
For more information, see Interface Design [page 63].
For information about creating interface designs, see Example: Defining an Interface Design [page 63].
● Bills of Material (BOMs)
For more information, see Bill of Material [page 65].
For information about defining BOMs, see Defining Dynamic BOMs [page 65].

SAP Solution Sales Configuration


10 PUBLIC Solution Modeling Environment
3.1.1 Knowledge Base

Definition

A knowledge base contains the master data for a solution model. The knowledge base is exported from the
solution modeling environment, initially to the test user interface and the test configuration engine to be
tested, and then to the target sales system where it is used by the configuration engine.

Structure

In the solution modeling environment, a knowledge base is defined with identifier, version, tasks, and profiles.

More Information

For information about defining knowledge bases, see Defining Knowledge Bases [page 11].

[Link] Defining Knowledge Bases

Use

You use this procedure to create a task, which is then used to define a knowledge base. You can define the task
in the same file as the knowledge base, or in a separate file.

Procedure

Creating a Knowledge Base

1. Choose File New Empty Model File .


The system displays a dialog prompting you to choose a folder and enter a file name for the new knowledge
base.
2. Enter the required data.
3. Choose Finish.
The system displays an empty file.
4. Press CTRL + SPACEBAR .
5. Double-click knowledgeBase.
6. Enter the required data and save the knowledge base.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 11
[Link] Knowledge Base Runtime Version

A knowledge base runtime version (kbrtv) is created from a knowledge base definition by invoking the Export
Knowledge Base function in the solution modeling environment.

You can call the Export Knowledge Base function:

● From the File menu, by choosing File Export SAP Solution Configuration Export Knowledge Base .
● From the Model Explorer, by right-clicking a knowledge base definition and choosing Export Knowledge
Base.

When you export a knowledge base, you can include variant table content in the kbrtv even though the
externalTable keyword is specified in the variant table definition. This is useful for testing the knowledge
base locally. If external content is available and content is also included in the knowledge base, the external
content is used at runtime.

To include local content in the kbrtv (from either “rows” values or “file” content), select the Include Local
Variant Table Content During Export option in the kb export dialog, or Local VT in the export multiple kbs dialog.

[Link] Example: Defining a Knowledge Base Definition

 Note

This description uses the following conventions to illustrate the syntax requirements:

Required keyword

Optional keyword

User-specified value

Mutually exclusive keyword

A knowledge base definition indicates the materials or classes for which the knowledge base will be used. It
also lists the dependencies to be included in the knowledge base runtime version. To define a knowledge base
definition, use the following syntax:

knowledgeBase identifier {

version kb-version

validFromdate

logsys logical-system

tasks task-id

profiles

name profile-name class class-id || material material-id

SAP Solution Sales Configuration


12 PUBLIC Solution Modeling Environment
Keyword/User Value Meaning Relation to Other Keywords Required/Optional

knowledgeBase Denotes the start of a knowl­ - Required


edge base definition encom­
passed within {…}

identifier Knowledge base ID used in - Required


the model.

Max. length 30 bytes

It appears in the KBOBJNAME


field in the comm_cfgkb ta­
ble.

version Keyword - Required

kb-version Version is a text field; com­ - Required


mon format is “[Link]” but
any alternative format is ac­
ceptable.

logsys Keyword - Optional

logical-system Logical system name where - Optional


the materials/classes named
in profiles (below) originated.
The logical system value is
derived from the back end.
All materials defined for pro­
files of this knowledge base
are checked. If multiple en­
tries exist, a list is presented
for selection by the user.

validFrom date Date in the format “YYYY- Required with validFrom


MM-DD”from which this keyword
knowledge base will be effec-
tive from. If validFrom is
not specified, the current
date is used.

tasks Keyword - Optional

task-id ID of task containing the de­ Required with tasks key­


pendencies to be included in word
this knowledge base

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 13
Keyword/User Value Meaning Relation to Other Keywords Required/Optional

profiles Denotes the start of the list - Required


of profiles. This list can con­
tain multiple profiles. Each
name-class/material pair is a
distinct profile definition.

name Keyword - Required

'profile-name' The profile name is a key - Required


value for the knowledge base
tables.

class Keyword At least one class or material Required


must be specified

class-id A class-id defined in this - Required with class keyword


model

material Keyword At least one class or material Required


must be specified

material-id A material-id defined in this - Required with material key­


model word

Example

knowledgeBase PRODUCT_X_KB {
version "[Link]"
validFrom "2020-01-01" logsys "LOCAL"
tasks
PRODUCT_X_TSK
profiles
name 'PRODUCT_X_PRF_2' class PRODUCT_X
}

[Link] Definition of External Texts

Use

After you have exported a knowledge base to the SAP back-end system, you can create or change the texts that
have been defined for each characteristic, characteristic value, class, or material. Editing the texts directly in
the back end means that you do not have to export your knowledge base again if you want to make changes.

SAP Solution Sales Configuration


14 PUBLIC Solution Modeling Environment
 Note

A particularity of maintaining material texts externally is that if a material is also defined in the product
master in the SAP CRM back end, the text from the product master is taken automatically. This avoids the
need for double maintenance. If the material is not defined in the back end, you can maintain the texts
manually in the same way as all of the other objects.

Integration

You can maintain external texts manually in Customizing or you can export them from the Solution Modeling
Environment as follows:

1. Choose File Export Export Knowledge Base Localization .


2. Choose a connection.
3. Select your knowledge base and, if required, enter a date from which the texts are valid.

Activities

You maintain the texts in Customizing for CRM under Basic Functions Solution Sales Configuration
Maintain External Texts .

You maintain the texts in Customizing for ECC under Logistics - General Solution Sales Configuration
Maintain External Texts .

 Note

If you expect size of the external variant table to be large, consider the recommendations provided in SAP
Note 2428939 (Implement query caching to improve Variant Table access performance).

Example

In your knowledge base, you have a characteristic with the names COLOR and FARBE for English and German
respectively. After you have exported your knowledge base to the SAP CRM back end, you can localize the
characteristic for the United Kingdom by changing COLOR to COLOUR, and you can also add a new translation
COULEUR for French.

More Information

For more information, see the Customizing documentation in the system.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 15
3.1.2 Class

Definition

Classes are used to represent the different configurable parts within a solution model. Classes can be defined
in a hierarchy, with subclasses inheriting characteristics from their parent class. For example, you can define a
class called computer with two subclasses: laptop and desktop.

Structure

A class has an identifier, a name, and one or more characteristics.

More Information

For information about characteristics, see Characteristic [page 24].

For information about defining classes, see Defining Classes [page 16].

[Link] Defining Classes

Use

You use this procedure to define new classes in the Eclipse-based solution modeling environment.

Procedure

Creating a New Class Using the Main Menu

1. Choose File New Class .


2. Enter the required data.
3. Choose Finish.
The new class is opened in the text editor.

Creating a New Class Using the Context Menu

1. In the Project Explorer, right-click classes.


The context menu is displayed.
2. Choose New Other...
3. Select Class and choose Next.

SAP Solution Sales Configuration


16 PUBLIC Solution Modeling Environment
 Note

As you start to type class, the contents of the explorer are filtered, such that only the matching entries
are displayed.

4. Enter the required data.


5. Choose Finish.
The new class is opened in the text editor.

Adding Characteristics to a Class Using the Text Editor

1. Open the class in the text editor.


2. Place the cursor at the desired location.

 Note

Characteristics are entered in a comma-separated list under characteristics.

3. Press CTRL + SPACEBAR .


The system displays a list of all the available characteristics.
4. Double-click the characteristic you want to add to the class.

Adding More Information for a Characteristic

1. In the text editor, place the cursor after the characteristic.


2. Enter a space and press CTRL + SPACEBAR .
The system displays the following options:
○ Default
You use this option to specify a default value for the characteristic.
○ Invisible
You use this option to hide the characteristic in the configuration user interface (UI).
○ Required
You use this option to make the characteristic mandatory in the configuration UI.
○ Value
You use this option to specify the value of the characteristic.
3. Double-click the option you want to add to the characteristic.
4. You must specify a value for the default and value options.

Example

class SME_EXAMPLE_MEMORY {

name "Memory"

characteristics

SME_INSTANCE_NF invisible,

SME_MEMORY_SPEED_S required,

SME_PART_NUMBER_S required

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 17
[Link] Defining a Class

 Note

This description uses the following conventions to illustrate the syntax requirements:

Required keyword

Optional keyword

User-specified value

Mutually exclusive keyword

To define a class, use the following syntax:

class identifier extends super-class-id, super-class-id2,... {

name "30 bytes descriptive text" || names EN "descriptive English text"

, FR "descriptive French text"

longName "unlimited descriptive text" || longNames EN "unlimited text in multiple


languages"

urls { "url" label "30 bytes descriptive text", "url" label "30 bytes descriptive text" ... }

 Note

The urls keyword can be used at group, cstic, cstic value, class, and material level. As a general rule of
thumb, all elements that could be UI relevant have this attribute. It is also possible to define more than one
URL by using curly brackets.

characteristics characteristic-id

*--remaining keywords are specified for each characteristic on this class definition--*

required

noinput

urls { "url" label "30 bytes descriptive text", "url" label "30 bytes descriptive text" ... }

values ( value1, value2,... )

defaultValues( value1,value2,... )

assignedValues( value1,value2,... )

Keyword/User Value Meaning Relation to Other Keywords Required/Optional

class Denotes the start of a class - Required


definition encompassed
within {…}

SAP Solution Sales Configuration


18 PUBLIC Solution Modeling Environment
Keyword/User Value Meaning Relation to Other Keywords Required/Optional

identifier This is the class ID used in - Required


the model to reference this
class. It must be uppercase.

Max. length 18 bytes

extends Keyword indicating inheri­ - Optional


tance from a super-class

super-class-id Identifier of the class ex­ Required if extends keyword Optional


tended by this definition is used

super-class-id2 Identifier(s) of additional - Optional


classes extended by this defi-
nition.

Multi-inheritance is sup­
ported.

{ Starts the set of keywords - Required


that define this object

} Ends class definition - Required

name or names The descriptive, language- - Optional


dependent text used as a la­
bel for this object.

If not used, the identifier is


used as the name.

See the context-sensitive


help for the full list of availa­
ble two-character language
identifiers.

longName or longNames Unlimited length text availa­ - Optional


ble from the “more informa­
tion” link on the configura-
tion UI. It is possible to em­
bed hyperlinks in this text.

characteristics Keyword indicating the start - Optional


of the list of characteristics
for this class

The following keywords are specified for each characteristic

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 19
Keyword/User Value Meaning Relation to Other Keywords Required/Optional

required Indicates that the configura- - Optional


tion is considered incomplete
unless a value is specified for
this characteristic

noinput Blocks the field from user in­ - Optional


put. Values may still be as­
signed/changed by means of
constraints or rules.

defaultValues() Sets the default value(s) of Optional


this characteristic for this
class.

More than one value may be


specified only if the charac­
teristic is defined as multi­
Value.

assignedValues() Assigns a value (or set of val­ - Optional


ues) to this characteristic for
this class.

More than one value may be


specified only if the charac­
teristic is defined as multi­
Value.

This is a fixed assignment.


The value(s) cannot be
changed by the user, con­
straints, or rules.

Example

class PRODUCT_Y extends SSC_SD_HIER {


name "Product Y class"
characteristics
SALES_ITEM_NAME required noinput,
NUM_SUBSCRIBERS required defaultValues (5000),
TRAFFIC_PER_SUBSCRIBER required assignedValues (25),
TOTAL_TRAFFIC invisible noinput
}

SAP Solution Sales Configuration


20 PUBLIC Solution Modeling Environment
3.1.3 Material

Definition

A material is an elementary component of a solution model.

In the Eclipse-based solution modeling environment, modelers define one or more materials, which can then be
referenced in constraints and rules.

Along with products and classes, materials are associated with a knowledge base by means of a profile in the
knowledge base definition.

Structure

Materials have a class and an identifier.

More Information

For information about defining materials, see Defining Materials [page 21].

[Link] Defining Materials

Context

You use this procedure to define new materials in the Eclipse-based solution modeling environment.

Procedure

1. Choose File New Empty Model File

The system displays a dialog prompting you to choose a folder and enter a file name for the new material.
2. Enter the required data.
3. Choose Finish.

An empty file is displayed in the text editor.


4. Press CTRL + SPACEBAR and double-click material.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 21
 Note

Alternatively you can type material.

5. Enter the required data and save the new material.

Example

material SME_LAPTOP {

name 'Laptop'

classes

SME_LAPTOP

boms

SME_LAPTOP

[Link] Example: Defining a Material

 Note

This description uses the following conventions to illustrate the syntax requirements:

Required keyword

Optional keyword

User-specified value

Mutually exclusive keyword

To define a material, use the following syntax:

material identifier externalID 'external_identifier' {

name "30 bytes descriptive text" || names EN "descriptive English text"

, FR "descriptive

French text"

longName "unlimited descriptive text" || longNames EN "unlimited text in multiple


languages"

urls { "url" label "30 bytes descriptive text" , "url" label "30 bytes descriptive text... }

classes class-id

boms bom-id

SAP Solution Sales Configuration


22 PUBLIC Solution Modeling Environment
}

Keyword/User Value Meaning Relation to Other Keywords Required/Optional

class Denotes the start of a class - Required


definition

identifier This is the material ID used in - Required


the model to reference this
material.

Max. length 18 bytes

external_ID Keyword indicating that CRM - Optional


or ECC uses an alternative ID
to reference this material

external_idenitfier The ID used by CRM or ECC Required if external_ID Optional


to reference this material keyword is used

{ Starts the set of keywords - Required


that define this object

} Ends class definition - Required

name or names The descriptive, language- - Optional


dependent text used as a la­
bel for this object.

If not used, the identifier is


used as the name.

See the context-sensitive


help for the full list of availa­
ble two-character language
identifiers.

longName or longNames Unlimited length text availa­ - Optional


ble from the “more informa­
tion” link on the configura-
tion UI. It is possible to em­
bed hyperlinks in this text.

classes Keyword designating the - Optional


start of the list of classes as­
signed to this material

class-id One or more class IDs as­ Required if classes keyword Optional
signed to this material. Sepa­ is used
rate multiple classes by a
comma.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 23
Keyword/User Value Meaning Relation to Other Keywords Required/Optional

boms Keyword designating the bill - Optional


of material associated with
this assembly material.

(Note: BOMs are not recom­


mended; best practice rec­
ommends use of ADTs to rep­
resent “part-of” relation­
ships.)

bom A bill of material defined to Required if boms keyword is Optional


represent the components of used
this assembly material

Example

material CABLE_SET {
name "Cable set"
classes
CABLE_SET
}

3.1.4 Characteristic

Definition

Characteristics are the lowest level of detail in a solution model. They are used to define the distinguishing
properties or attributes of a class. For example, a computer monitor can have a characteristic called size.

Structure

A characteristic has an identifier, a name, and a type. Depending on the type selected, you may need to specify
additional information, as shown in the following table:

Characteristic Types

Characteristic Type Information to Be Defined

Text Length

SAP Solution Sales Configuration


24 PUBLIC Solution Modeling Environment
Characteristic Type Information to Be Defined

Numeric Length

Decimal Places

Date

ADT Class

Reference Characteristics

Characteristics of type Text, Numeric, and Date can be made reference characteristics by using the reference
keyword. Reference characteristics can be used to do the following:

● Pass a value to the configuration as a context


● Pass a value from the configuration to the sales document
In this case, the user is usually required to enter the value of the reference characteristic during the
configuration session (for example, size, weight, or start date).

Abstract Data Types

An abstract data type (ADT) is a special type of characteristic that is used to define the relationship between
two classes. For example, a computer monitor can have ADTs called has part and is part of.

SAP Solution Sales Configuration provides the following predefined ADTs:

● SALES HARD
● SALES SOFT

These ADTs are used to define parent-child relationships as either a hard tie or a soft tie. If two classes have a
hard tie, they cannot be split into separate sales documents. Only classes with soft ties can be split into
different sales documents.

You maintain the names of the hard and soft tie sales ADTs in Customizing for Customer Relationship
Management under Basic Functions Solution Sales Configuration Maintain Item Relationship Types .

More Information

For information about defining characteristics, see Defining Characteristics [page 25].

[Link] Defining Characteristics

Use

You use this procedure to define new characteristics in the Eclipse-based solution modeling environment.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 25
Procedure

Defining Characteristics in the Main Menu

1. In the main menu, choose File New Characteristic .


2. Enter the required data.

 Note

An Identifier must consist of uppercase alphanumeric characters and underscores; it cannot start with
a numeric character. The Name defaults to the same as identifier; it can be changed, if required.

3. Choose Finish.
The new characteristic is opened in the text editor.

Defining Characteristics in the Context Menu

1. In the Project Explorer, right-click cstics to display the context menu.


2. Choose New Other...
3. Choose Characteristic.

 Note

As you start to type characteristic, the contents of the explorer are filtered, such that only the matching
entries are displayed.

4. Choose Next.
5. Enter the required data.
6. Choose Finish.
The new characteristic is opened in the text editor.

[Link] Defining a Text Characteristic

 Note

This description uses the following conventions to illustrate the syntax requirements:

Required keyword

Optional keyword

User-specified value

Mutually exclusive keyword

To define a text characteristic, use the following syntax:

characteristic identifier {

name "30 bytes descriptive text" || names EN "descriptive English text"

, FR "descriptive French text"

SAP Solution Sales Configuration


26 PUBLIC Solution Modeling Environment
longName "unlimited descriptive text" || longNames EN "unlimited text in multiple
languages"

status released || prepared || blocked

textLength 1-132

restrictable (x-additionalValues)

caseSensitive

multiValue

additionalValues (x-restrictable)

values "a" name "Aye" || names EN "descriptive English text"

, FR "descriptive French text"

,"b" name "Bee" || names EN

Keyword/User Value Meaning Relation to Other Keywords Required/Optional

characteristic Denotes the start of a char­ - Required


acteristic definition encom­
passed within {…}

identifier This is the characteristic ID - Required


used in the model to refer­
ence this characteristic. It
must be uppercase.

Max. length 40 bytes

name or names The descriptive, language- - Optional


dependent text used as a la­
bel for this object.

If not used, the identifier is


used as the name.

See the context-sensitive


help for the full list of availa­
ble two-character language
identifiers.

longName or longNames Unlimited length text availa­ If the name keyword is not Optional
ble from the “more informa­ used, the longName is not
tion” link on the configura- used as the name.
tion UI. It is possible to em­
bed hyperlinks in this text.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 27
Keyword/User Value Meaning Relation to Other Keywords Required/Optional

status If used, one of three addi­ - Optional


tional keywords must be
specified - required, pre­
pared, blocked.

This keyword is ignored by


the SME. It is available for
compatibility with master
data definitions imported
from ECC.

textLength Indicates that this is a text - Required


characteristic and specifies
the maximum length of the
value.

Maximum textLength is
132.

restrictable Indicates that the domain of This clause and the Optional
values can be restricted. If additionalValues clause
the values clause is used, are mutually exclusive.
the domain is restricted to
those values, and can be fur­
ther restricted in constraints.
If no values clause is used,
the initial static domain is the
“unrestricted domain”. Any
value is valid, but can still be
restricted by constraints.

caseSensitive Indicates that values can - Optional


contain uppercase and lower­
case values

multiValue Indicates that more than one - Optional


value can be assigned to this
characteristic

additionalValues Allows user entry of values. This clause and the Optional
Can be used with the values restrictable clause are
clause. The values specified mutually exclusive.
in the values clause are pre­
sented for selection, but the
user can also enter a differ-
ent value if the
additionalValues clause
is specified.

SAP Solution Sales Configuration


28 PUBLIC Solution Modeling Environment
Keyword/User Value Meaning Relation to Other Keywords Required/Optional

values Lists the permitted values. - Optional


No values indicates an unre­
stricted domain. Any type-
consistent value is allowed.

Values can be specified with


or without names and names
can be specified in multiple
languages.

Example

characteristic CABINET_TYPE {
name "Cabinet Type"
textLength 1
caseSensitive
restrictable
values
'a' name 'little aye',
'A' name 'Aye',
'B' name 'Bee',
'C' name 'See',
'D' name 'Dee',
'd' name 'little dee'
}

[Link] Defining a Numeric Characteristic

 Note

This description uses the following conventions to illustrate the syntax requirements:

Required keyword

Optional keyword

User-specified value

Mutually exclusive keyword

To define a numeric characteristic, use the following syntax:

characteristic identifier {

name "30 bytes descriptive text" || names EN "descriptive English text"

, FR "descriptive French text"

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 29
longName "unlimited descriptive text" || longNames EN "unlimited text in multiple
languages"

numericLength 1-15

decimalPlaces 0-(numericLength-1)

restrictable (x-additionalValues)

multiValue

negativeValues

additionalValues (x-restrictable)

specialFunction aggregating

intervals < n1 || <= n1 || > n2 || >= n2 || n1 - n2 || (where n1, n2 are numeric values)

values n1, n2

Keyword/User Value Meaning Required/Optional

characteristic Denotes the start of a characteristic Required


definition encompassed within {…}

identifier This is the characteristic ID used in the Required


model to reference this characteristic. It
must be uppercase.

Max. length 30 bytes

name or names The descriptive, language-dependent Optional


text used as a label for this object.

If not used, the identifier is used as the


name.

See the context-sensitive help for the


full list of available two-character lan­
guage identifiers.

longName or longNames Unlimited length text available from the Optional


“more information” link on the configu-
ration UI. It is possible to embed hyper­
links in this text.

numericLength Indicates that this is a numeric charac­ Required


teristic and specifies the maximum
length of the value.

Maximum numericLength is 15.

SAP Solution Sales Configuration


30 PUBLIC Solution Modeling Environment
Keyword/User Value Meaning Required/Optional

decimalPlaces Indicates the number of decimal places Optional


of this numeric value.

Maximum decimalPlaces is one less


than the numericLength.

restrictable Indicates that the domain of values can Optional


be restricted. If the values clause is
used, the domain is restricted to those
values, and can be further restricted in
constraints. If no values clause is
used, the initial static domain is the
“unrestricted domain”. Any value is
valid, but can still be restricted by con­
straints.

multiValue Indicates that more than one value can Optional


be assigned to this characteristic

negativeValues Allows a numeric value to be a negative


value

additionalValues Allows user entry of values. Can be Optional


used with the values clause. The values
specified in the values clause are pre­
sented for selection, but the user can
also enter a different value if the
additionalValues clause is speci­
fied.

specialFunction aggregating Designates this characteristic as usable Optional


in a rule with the then_increment
statement

specialFunction balanced Do not use - not supported Prohibited

values Lists the permitted values. No values in­ Optional


dicates an unrestricted domain. Any
type-consistent value is allowed

specialFunction default Designates this value as the default Optional


value

Example

characteristic BLOCKING {

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 31
name "Blocking"
numericLength 2 decimalPlaces 1
restrictable
values 0.1, 0.5, 1, 2, 5
}

[Link] Defining a Date Characteristic

 Note

This description uses the following conventions to illustrate the syntax requirements:

Required keyword

Optional keyword

User-specified value

Mutually exclusive keyword

To define a date characteristic, use the following syntax:

characteristic identifier {

name "30 bytes descriptive text" || names EN "descriptive English text"

, FR "descriptive French text"

longName "unlimited descriptive text" || longNames EN "unlimited text in multiple


languages"

date

restrictable (x-additionalValues)

multiValue

additionalValues (x-restrictable)

values yyyy-mm-dd

Keyword/User Value Meaning Required/Optional

characteristic Denotes the start of a characteristic Required


definition encompassed within {…}

identifier This is the characteristic ID used in the Required


model to reference this characteristic. It
must be uppercase.

Max. length 30 bytes

SAP Solution Sales Configuration


32 PUBLIC Solution Modeling Environment
Keyword/User Value Meaning Required/Optional

{ Starts the set of keywords that define Required


this object

} Ends the object (characteristic) defini- Required


tion

name or names The descriptive, language-dependent Optional


text used as a label for this object.

If not used, the identifier is used as the


name.

See the context-sensitive help for the


full list of available two-character lan­
guage identifiers.

longName or longNames Unlimited length text available from the Optional


“more information” link on the configu-
ration UI. It is possible to embed hyper­
links in this text.

date Indicates that this is a date characteris­ Required


tic

restrictable Indicates that the domain of values can Optional


be restricted. If the values clause is
used, the domain is restricted to those
values, and can be further restricted in
constraints. If no values clause is
used, the initial static domain is the
“unrestricted domain”. Any value is
valid, but can still be restricted by con­
straints.

multiValue Indicates that more than one value can Optional


be assigned to this characteristic

additionalValues Allows user entry of values. Can be Optional


used with the values clause. The values
specified in the values clause are pre­
sented for selection, but the user can
also enter a different value if the
additionalValues clause is speci­
fied.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 33
Keyword/User Value Meaning Required/Optional

values Lists the permitted values. No values in­ Optional


dicates an unrestricted domain.

 Note
The date must be specified in
“YYYY-MM-DD”format only.

Any type-consistent value is allowed.

Example

characteristic BIRTHDAY {
name "Date of Birth"
date
values
1992-12-25
}

[Link] Defining an Abstract Data Type Characteristic

 Note

This description uses the following conventions to illustrate the syntax requirements:

Required keyword

Optional keyword

User-specified value

Mutually exclusive keyword

To define an abstract data type (ADT) characteristic, use the following syntax:

characteristic identifier {

name "30 bytes descriptive text" || names EN "descriptive English text"

, FR "descriptive French text"

longName "unlimited descriptive text" || longNames EN "unlimited text in multiple


languages"

classType class-identifier

multiValue

SAP Solution Sales Configuration


34 PUBLIC Solution Modeling Environment
}

Keyword/User Value Meaning Required/Optional

characteristic Denotes the start of a characteristic Required


definition encompassed within {…}

identifier This is the characteristic ID used in the Required


model to reference this characteristic. It
must be uppercase.

Max. length 30 bytes

name or names The descriptive, language-dependent Optional


text used as a label for this object.

If not used, the identifier is used as the


name.

See the context-sensitive help for the


full list of available two-character lan­
guage identifiers.

longName or longNames Unlimited length text available from the Optional


“more information” link on the configu-
ration UI. It is possible to embed hyper­
links in this text.

classType Indicates that this is an abstract data Required


type characteristic

class-identifier Identifier of the class referenced by this Required


characteristic

multiValue Indicates that more than one value can Optional


be assigned to this characteristic

Example

characteristic CONTAINS_THESE_ITEMS {
name "Contains these items"
classType ITEM
multiValue
}

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 35
[Link] Defining a Reference Characteristic

 Note

This description uses the following conventions to illustrate the syntax requirements:

Required keyword

Optional keyword

User-specified value

Mutually exclusive keyword

A reference characteristic refers to the value of a field in the sales document. To define a reference
characteristic, use the following syntax:

characteristic identifier {

name "30 bytes descriptive text" || names EN "descriptive English text"

, FR "descriptive French text"

longName "unlimited descriptive text" || longNames EN "unlimited text in multiple


languages"

textLength 1-30 || numericLength 1-15 decimalPlaces 0-(numericLength-1) || date

reference table table-name

field field-name

Keyword/User Value Meaning Relation to Other Keywords Required/Optional

characteristic Denotes the start of a char­ - Required


acteristic definition encom­
passed within {…}

identifier This is the characteristic ID - Required


used in the model to refer­
ence this characteristic. It
must be uppercase.

Max. length 30 bytes

SAP Solution Sales Configuration


36 PUBLIC Solution Modeling Environment
Keyword/User Value Meaning Relation to Other Keywords Required/Optional

name or names The descriptive, language- - Optional


dependent text used as a la­
bel for this object.

If not used, the identifier is


used as the name.

See the context-sensitive


help for the full list of availa­
ble two-character language
identifiers.

longName or longNames Unlimited length text availa­ - Optional


ble from the “more informa­
tion” link on the configura-
tion UI. It is possible to em­
bed hyperlinks in this text.

textLength Indicates that this is a text One of the Required


characteristic and specifies numericLength /
the maximum length of the decimalPlaces,
value. textLength, or date key­
words is required
Maximum textLength is
30.

numericLength Indicates that this is a nu­ One of the Required


meric characteristic and numericLength /
specifies the maximum decimalPlaces,
length of the value. textLength, or date key­
words is required
Maximum numericLength
is 15.

decimalPlaces Indicates the number of deci­ Allowed only with Optional


mal places in this numeric numericLength keyword
value.

Maximum decimalPlaces
is one less than the
numericLength.

date Indicates that this is a date One of the Required


characteristic numericLength /
decimalPlaces,
textLength, or date key­
words is required

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 37
Keyword/User Value Meaning Relation to Other Keywords Required/Optional

reference table Indicates the table containing - Required


the field to which this charac­
teristic refers

field Indicates the field to which - Required


this characteristic refers

Example

characteristic ITEM_QUANTITY {
names
EN 'Component quantity',
DE 'Komponentenmenge'
numericLength 13 decimalPlaces 3
negativeValues
reference table 'STPO' field 'MENGE'
}

3.1.5 Variant Table

Definition

Variant tables are used to store combinations of values for characteristics. They can be used to infer values as
part of constraints.

Structure

You define a variant table for one or more characteristics, whereby each characteristic has a column in the
variant table. You enter a row in the variant table for each possible combination of characteristic values.
Entering one of the characteristics then restricts the other characteristics that can be selected.

You define a variant table in the Solution Modeling environment by using the row, file, or externalTable
keywords.

 Note

The externalTable keyword references a table from the ABAP back-end system. If this table exists, its
content is loaded at runtime instead of the content that is part of the knowledge base runtime version.

If you choose to enter a table from the ABAP back-end system, you must ensure that the ABAP table
contains not only columns for the characteristics of your variant table definition, but also valid to and from

SAP Solution Sales Configuration


38 PUBLIC Solution Modeling Environment
dates, as well as the client (ABAP tables should be created on a client-specific basis). The valid to and from
date columns must be named SSC_FROM_DATE and SSC_TO_DATE and must be of data type DATS.

Example

In the following example, memory description can be used to infer the memory size and memory speed:

Memory Description Memory Size Memory Speed

1_1333 1 1333

2_1333 2 1333

2_1600 2 1600

2_2000 2 2000

4_1600 4 1600

4_2000 4 2000

In this case, if a memory size of 2 is specified, the system automatically restricts the possible entries for the
memory speed to 1333, 1600, and 2000.

More Information

For information about defining variant tables, see Defining Variant Tables [page 44].

[Link] Syntax for Defining a Variant Table

 Note

This description uses the following conventions to illustrate the syntax requirements:

Required keyword

Optional keyword

User-specified value

Mutually exclusive keyword

To define a variant table, use the following syntax:

variantTable identifier {

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 39
name "30 bytes descriptive text" || names EN "descriptive English text"

, FR "descriptive French text"

characteristics characteristic-id

*--indented keywords are specified for each characteristic in this class definition--*

Primary

externalTable 'db_tablename'

rows 'textvalue', numericvalue;

'textvalue', numericvalue

||

file "[Link]"

type 'CSV'

options

Keyword/User Value Meaning Relation to Other Keywords Required/Optional

variantTable Denotes the start of a variant - Required


table definition

identifier This is the variant table ID - Required


used in the model to refer­
ence this variant table.

{ Starts the set of keywords - Required


that define this object

} Ends object definition - Required

name or names The descriptive, language- - Optional


dependent text used as a la­
bel for this object.

If not used, the identifier is


used as the name.

See the context-sensitive


help for the full list of availa­
ble two-character language
identifiers.

characteristics Keyword indicating the start - Optional


of the list of characteristics
for this variant table

The following keywords are specified for each characteristic

SAP Solution Sales Configuration


40 PUBLIC Solution Modeling Environment
Keyword/User Value Meaning Relation to Other Keywords Required/Optional

primary Denotes a characteristic - Required for at least one


used to look up values of characteristic
other characteristics. This is
treated as a key field to look
up other values from the var­
iant table.

End characteristic-specific keywords

externalTable Used to indicate to the Can be used with or without Optional


knowledge base build proc­ the rows or file keywords.
ess that variantTable con­ However, data defined in
tent is not to be embedded in rows or file will be used if
the knowledge base runtime the variant table data is also
version, and instead should exported with the model and
be retrieved by the engine at no data is available in the ex­
runtime from the named SAP ternal table (defined with the
database table. externalTable keyword).

'db_tablename' Name of a table in SAP data­ Used with externalTable Required


base only

rows (x-file) Used to provide table content One of the keywords rows, Optional
in the table definition. file, or externalTable is
required. externalTable
Values are separated by a
can also be used in conjunc­
comma. Rows are delimited
tion with rows or file.
by a semicolon.

Text values are enclosed


within quotes.

file (x-rows) Used to provide table content One of the keywords rows, Optional
from a file. The file must be in file, or externalTable is
the same project folder as required. externalTable
the file containing this variant can also be used in conjunc­
table definition. Using tion with rows or file.
the .vtable suffix is recom­
mended.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 41
Keyword/User Value Meaning Relation to Other Keywords Required/Optional

type Indicates the type of file be­ Used with file only Optional
ing referenced. Possible val­
ues are:

● vtable (default): Sup­


ports .vtable files with
tabulator-separated
fields, without quotes,
and without escapes
● cvs: comma separated
values

SAP Solution Sales Configuration


42 PUBLIC Solution Modeling Environment
Keyword/User Value Meaning Relation to Other Keywords Required/Optional

options Used to provide options re­ Used with file only Optional
lated to data present in the
file.

Available options can be


specified in the format: op­
tion1=value1 option2=value2.

For example, CSV supports


the following options:

● charset=ISO-8859
-1
The character set of the
file, such as
“ISO-8859-1” or
“UTF-8”. Default is
Eclipse/OS-dependent.
● delimiter=,
The value delimiter. De­
fault is ','. For tabulator
or space characters, use
TAB or SPACE .
● quoteChar="
The character to quote a
value. Default is '"'.
● commentChars=#
The character(s) to rec­
ognize a comment line.
Default is disabled.
● surroundingSpace
sNeedQuotes=fals
e
Flag indicating whether
spaces at the beginning
or end of a cell are to be
ignored if they're not
surrounded by quotes.
The default is false be­
cause spaces are con­
sidered part of a field
and are not to be ig­
nored according to RFC
4180. Use true to ena­
ble. Similarly for Vtable

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 43
Example

variantTable VT_ERLANG {
name "VT_ERLANG"
characteristics
ERLANG_LO primary,
ERLANG_HI primary,
BLOCKING primary,
NUM_LINES
externalTable 'MY_SAP_ERLANG'
file "VT_ERLANG.vtable"
}

[Link] Example for Defining a Variant Table

Context

You use this procedure to create variant tables in the Eclipse-based solution modeling environment.

Procedure

1. Choose File New Variant Table .


2. Enter the required data.
3. Choose Finish.

The new variant table is opened in the text editor.

 Note

You must enter the rows for the new variant table using the text editor. The data can be entered in-line,
as shown in the example below, or in a separate table file.

Example

variantTable SME_VIDEO_CARD_EXAMPLE {

name 'SME_VIDEO_CARD_EXAMPLE'

characteristics

SME_VIDEO_CARD_S primary,

SAP Solution Sales Configuration


44 PUBLIC Solution Modeling Environment
SME_PART_NUMBER_S

rows

"LOW END", "VID1";

"HIGH END", "VID2"

[Link] Variant Table Views

Large variant tables, especially if they are designed as external variant tables, can lead to performance
degradation of the configuration, due to slower queries. To improve the performance of these large variant
tables, it is possible to reduce the scope of the table data by defining views on the table. The view defined on
the variant table is applicable within a configuration session.

You can define a view on a variant table using available APIs in the configuration engine. You can invoke these
APIs using pFunctions. For more information about this, refer to SAP Note 2509009 (Implement Variant
table views).

 Note

Defining the variant table views improves performance in both, external and internal, variant tables.

3.1.6 Dependency

Definition

Dependency is the generic term used for constraints and rules. Dependencies are defined within a solution
model and specify the relationships between the characteristics and characteristic values of several classes.

Constraints

Constraints are interdependencies between objects and their characteristics. They are a primary form of
declarative dependency. All declarative dependencies can be modeled using constraints. You can use them to
set characteristic values or to check the consistency of assigned values. Constraints are grouped into
constraint nets, which are then assigned to tasks. Constraints are used by the configurator engine to derive or
infer any of the following:

● Contradiction
● Value assignment (for characteristics with an ADT, this means linking instances)
● Domain restriction
● Creation and placement of an instance in the PART_OF hierarchy (declarative selection)
● Specialization of an instance
● Relation link between instances for declared relations, when and if this feature becomes available

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 45
The configurator engine performs these derivations by applying constraint rules derived from the constraint
itself.

Rules

Rules are the primary procedural form of dependency. They act as a point of reference for the classes,
characteristics, materials, and variant tables created by the modeler. Rules are the procedural counterpart of
constraints used when procedural logic is required, for example, counting or invoking procedural functions
(pfunctions).A rule states that some action should be performed when the pattern of the rule is matched in the
DDB. It can either be one of the specially provided built-in ones or an existing function (such as built-in APIs or
user provided functions).Rules are grouped into rule nets, which are assigned to tasks. The tasks are then
assigned to the knowledge [Link] particular, a rule can:

● Perform aggregations
● Access and modify the DDB
● Access the KB
● Trigger front-end functions
● Access and modify external data
● Make logical inferences.

More Information

For information about defining dependencies, see Defining Solution Dependencies [page 46].

[Link] Defining Solution Dependencies

Use

You use this procedure to create solution dependencies by defining constraints and constraint nets as well as
rules and rule nets.

Procedure

Defining Constraints

1. Choose File New Empty Model File .


The system displays a dialog prompting you to choose a folder and enter a file name for the new constraint.
2. Enter the required data.
3. Choose Finish.
The system displays an empty file.
4. Press CTRL + SPACEBAR .
5. Double-click constraint.

SAP Solution Sales Configuration


46 PUBLIC Solution Modeling Environment
 Note

You can choose a constraint template if a suitable one is available. Templates are indicated with a green
dot in the auto-completion dialog box.

6. Enter the required data and save your constraint.

Defining Constraint Nets

1. Choose File New Empty Model File .


The system displays a dialog prompting you to choose a folder and enter a file name for the new constraint
net.
2. Enter the required data.
3. Choose Finish.
4. Press CTRL + SPACEBAR .
5. Double-click constraintNet or choose a template.
6. Enter the required data and save your constraint net.

Defining Rules

1. Choose File New Empty Model File .


The system displays a dialog prompting you to choose a folder and enter a file name for the new rule.
2. Enter the required data.
3. Choose Finish.
4. Press CTRL + SPACEBAR .
5. Double-click rule or choose a template.
6. Enter the required data and save your rule.

Defining Rule Nets

1. Choose File New Empty Model File .


The system displays a dialog prompting you to choose a folder and enter a file name for the new rule net.
2. Enter the required data.
3. Choose Finish.
4. Press CTRL + SPACEBAR .
5. Double-click ruleNet or choose a template.
6. Enter the required data and save your rule net.

[Link] Defining a Rule

 Note

This description uses the following conventions to illustrate the syntax requirements:

Required keyword

Optional keyword

User-specified value

Mutually exclusive keyword

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 47
Rules are used when procedural logic is required, for example, counting or invoking procedural functions
(pfunctions). To define a rule, use the following syntax:

rule identifier {

name "30 bytes descriptive text" || names EN "descriptive English text"

, FR "descriptive French text"

objects: ? a is_a (300) class-id

where ?b = adt-cstic-on-a

,? m is_object (material) (300) (nr= material-id )

condition:

?[Link]-on-a <|| <=|| =|| >=|| = value || specified || not specified

or || and

part_of (?m,?a)

or || and

table table-name (cstic-id = ?[Link] cstic-on-a)

 Note

A table statement in the “condition” section evaluates “True” if at least one row is found and “False” if no
row is found.

or || and

…see the inline help for a full list of potential functions/content

body: then do: pfunction pfunction-id ( parameters list )

||

then do: ?[Link]-on-a ?= value || cstic

||

then increment: ?[Link]-on-a by i

explanations: ' any descriptive text '

Keyword/User Value Meaning Relation to Other Keywords Required/Optional

rule Denotes the start of a rule - Required


definition encompassed
within {…}

SAP Solution Sales Configuration


48 PUBLIC Solution Modeling Environment
Keyword/User Value Meaning Relation to Other Keywords Required/Optional

identifier Rule ID used in the model to - Required


reference this rule.

Max. length 30 bytes

name or names The descriptive, language- - Optional


dependent text used as a la­
bel for this object.

If not used, the identifier is


used as the name.

See the context-sensitive


help for the full list of availa­
ble two-character language
identifiers.

objects Keyword indicating the start - Required


of the objects section

?a/?m A user specified symbol to At least one object is re­ Required


represent the object. Must quired
start with a question mark
(?) but can have any alpha­
numeric characters after the
question mark.

is_a (300) Keyword indicating the ob­ - Required


ject is a class

class-id Class identifier of object - Required

is_object (material) Keyword indicating the ob­ - Required


(300) (nr= ) ject is a material

material-id Material identifier of object - Required

condition Keyword indicating the start - Optional


of the condition.

Must be a single condition


statement, but can have mul­
tiple clauses joined with Boo­
lean operators “and”/ “or”

condition content Expressions in the condition - Optional


content can include a large
range of functions. Use con­
text help ( CTRL + SPACE )
to view the entire list

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 49
Keyword/User Value Meaning Relation to Other Keywords Required/Optional

body: Keyword indicating the start - Required


of the body of the rule

then do: Keyword used if the rule in­ Either then do: or then Optional
vokes a pfunction or sets a increment: is required.
“sticky” default value

then increment: Keyword used if the rule in­ Either then do: or then Optional
crements an aggregating increment: is required.
characteristic

?[Link]-on-a An aggregating characteristic Required with then Required with then


for instance ?a increment: increment:

by Keyword denoting the range Required with then Required with then
by which the increment is increment: increment:
made

i The number to be added to Required with by Required with by


cstic-on-a

Can be a number or the nu­


meric result of a function.

pfunction Keyword used to indicate Allowed only with then do: Optional
that a pfunction is to be in­
voked

pfunction-name Name of pfunction to be in­ Required with pfunction Required with pfunction
voked

parameters List of parameters; any Optional Optional


specified parameter must be
defined in the pfunction defi-
nition. It is not necessary to
provide all parameters.

?[Link]-on-a Any characteristic for class a - Optional

?= Indicates setting a “sticky de­ Required with pfunction Required with pfunction
fault”. Whenever the charac­
teristic has no value as­
signed, this value will be as­
signed as its default.

parameters List of parameters; must Required with pfunction Required with pfunction
match the parameters in the
pfunction definition

SAP Solution Sales Configuration


50 PUBLIC Solution Modeling Environment
Keyword/User Value Meaning Relation to Other Keywords Required/Optional

explanation Keyword indicating the start - Optional


of the explanation section.

explanation text Text entered here is available - Optional


for debugging conflicts

 Note

Non-sticky defaults (assigned in the class definition using the defaultValues keyword) are retained until
changed by a user input or constraint. If subsequently reset to no value ( “space”), the assigned default is
not recovered. The cstic has no value assigned.

Example

rule SET_PROD_COLOR {
objects:
?p is_a (300)PRODUCT
condition:
?p.USAGE_TYPE = 'STEALTH'
body:
then do:
pfunction SET_PROD_COLOR_PF (
PRODUCT = ?p
)
}
rule COUNT_COMPONENTS {
objects:
?bundle is_a (300)HARDWARE_BUNDLE
where ?comp = COMPONENTS
body:
then increment:
?bundle.COMP_COUNT by 1
)
}

[Link] Defining a Constraint

 Note

This description uses the following conventions to illustrate the syntax requirements:

Required keyword

Optional keyword

User-specified value

Mutually exclusive keyword

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 51
Constraints assert facts and rely on deductive reasoning. To define a constraint, use the following syntax:

constraint identifier {

name "30 bytes descriptive text" || names EN "descriptive English text"

, FR "descriptive French text"

objects: ? a is_a (300) class-id

where ?b = adt-cstic-on-a

,? m is_object (material) (300) (nr= material-id )

condition:

?[Link]-on-a <|| <=|| =|| >=|| = value || specified || not specified

or || and

part_of (?m,?a)

or || and

table table-name (cstic-id = ?[Link] cstic-on-a)

or || and

…see inline help for full list of potential functions/content

restrictions:

asserted facts

 Note

For an explanation of the statements that can be used to assert facts, see the “Commands Used in the
Restrictions Section of a Constraint” table below. The list, along with detailed syntax, is also available via
the inline help for editing a constraint within the solution modeling environment.

inferences:

?[Link]-on-a

,?[Link]-on-a

,?[Link] cstic-on-a

explanations: ' any descriptive text '

Keyword/User Value Meaning Required/Optional

constraint Denotes the start of a constraint defini- Required


tion encompasse within {…}

SAP Solution Sales Configuration


52 PUBLIC Solution Modeling Environment
Keyword/User Value Meaning Required/Optional

identifier This is the constraint ID used in the Required


model to reference this constraint.

Max. length 30 bytes

name or names The descriptive, language-dependent Optional


text used as a label for this object.

If not used, the identifier is used as the


name.

See the context-sensitive help for the


full list of available two-character lan­
guage identifiers.

objects Keyword indicating the start of the ob­ Required


jects section

?a/?m A user specified symbol to represent Required


the object. Must start with a question
mark (?) but can have any alphanu­
meric characters after the question
mark.

is_a (300) Keyword indicating the object is a class Required

class-id Class identifier of object Required

is_object (material) (300) Keyword indicating the object is a ma­


(nr= ) terial

material-id Material identifier of object

condition Keyword indicating the start of the con­ Optional


dition.

Must be a single condition statement,


but can have multiple clauses joined
with Boolean operators “and”/ “or”

condition content Expressions in the condition content Optional


can include a large range of functions.
Use context help ( CTRL + SPACE ) to
view the entire list

restrictions Keyword indicating the start of the re­ Required


strictions section

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 53
Keyword/User Value Meaning Required/Optional

restrictions content Restrictions are stated as assertions Required


and, like condition content, can use a
variety of functions.

Restrictions can assert either the

existence of an instance or the

value of a characteristic facet

inferences Keyword indicating the start of the ob­ Optional


jects section

inferences content Lists the asserted facts to be inferred Optional

explanation Keyword indicating the start of the ex­ Optional


planation section

explanation text Text entered here is available to help Optional


with debugging conflicts

Commands Used in the Restrictions Section of a Constraint

Command Use

false To raise a conflict, thereby making the configuration incon­


sistent

find_or_create() To create a new instance in the configuration

has_part() To add a part to a bill of material

table() To look up values in a variant table

type_of() To specialize a class object

?[Link] To assert facts about the value of a charactristic “cstic” on


an instance of class “class”.

?class is a reference to an object list in the objects section


and cstic is a characteristic for that object.

?[Link] cstic To assert facts about a facet of a characteristic “cstic” on an


instance of class “class”. Examples of facets are domain, in­
visible, required, and noinput.

SAP Solution Sales Configuration


54 PUBLIC Solution Modeling Environment
Command Use

Mathematical functions A large set of mathematical functions is available. Examples


include the following functions:

● rounded
● sin
● cos
● tan
● floor
● log10

For a full list of the available functions, see the inline help.

Example

constraint PLACE_FUNIT_A_1 {
objects:
?CA is_a (300)CABINET_A
,?FA is_a (300)FUNIT_A
condition:
?FA.INST_NUM = 1
restrictions:
?CA.FU_A = ?FA
inferences:
?CA.FU_A
explanations:
"first FUNIT_A goes in CAB_A"
}

[Link] Dependency Net

Definition

A dependency net is a group of constraints or rules (also referred to as dependencies), which are defined within
a solution model and specify the relationships between the characteristics and characteristic values of several
classes.

Use

Constraints

Constraints are interdependencies between objects and their characteristics. They are used as a dependency
in variant configuration. You can use them to set characteristic values or to check the consistency of assigned

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 55
values. In variant configuration, you can use constraints to address configurable assemblies in a BOM, between
which interdependencies exist.

Rules

Rules act as a point of reference for the classes, characteristics, materials, and variant tables created by the
modeler. They are used when procedural logic is required, for example, counting or invoking procedural
functions (pfunctions). Rules are grouped into rule nets, which are assigned to tasks. The tasks are then
assigned to the knowledge bases.

Structure

The dependency net is displayed in the form of a hierarchy in the model graph.

More Information

For information about defining dependency nets, see Defining Solution Dependencies [page 46].

3.1.7 User-Defined Function

Definition

User-defined functions enable you to perform (complex) tasks using external program code. They can be used
to check values and infer characteristic values. You may want to create functions for the following purposes, for
example:

● Complex calculations based on characteristic values in the configuration


● Complex validity checks for allowed values
● Efficient operations, using side effects, that overcome limitations of the dependency syntax
● Arbitrary calls to external programs, with or without side effects

User-defined functions can be used in constraints and rules. In constraints, you can use functions to check the
consistency of the values entered, perform arbitrary complex calculations on inputs to determine output
values, and look up values in external systems. In rules, you can use functions to trigger arbitrary processing.
When you invoke a user-defined function in a constraint or rule, you are referring to a Java method.

Use

There are two forms of user-defined functions: declarative functions and procedural functions ( “pfunctions”).
Both declarative functions and pfunctions have the same interface.

SAP Solution Sales Configuration


56 PUBLIC Solution Modeling Environment
Structure

Declarative functions and pfunctions are defined using the following framework:

function <identifier> {
characteristics
<parameter list>
}

They use the following keywords:

Keyword/User Value Meaning Required/Optional

function Denotes the start of a function defini- Required


tion

identifier Function ID used in the model to refer­ Required


ence this function.

Max. length 30 bytes.

This must be the name of the class in­


voked by this function.

{ Starts the set of keywords that define Required


this object

} Ends object definition Required

characteristics Keyword indicating the start of the list Required


of characteristics for this class

parameters List of characteristics that will be pro­ Required


vided to the Java class as input. All
characteristics listed are required when
this function is invoked.

 Note
No values are returned from a
pfunction.

primary Required for at least one parameter. It Required for at least one parameter
indicates that the parameter is “input
only” to the invoked function. It does
not indicate that the parameter is re­
quired.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 57
More Information

[Link] Declarative Function

Definition

Declarative functions are invoked from constraints. In their arguments, they receive data structures
representing input and output characteristics. Using these characteristics, they can read the values of the input
characteristics in the configuration and they can return values for the output characteristics.

A declarative function is insulated from the actual configuration and can neither influence the value of any
characteristic other than one that is passed to it as an output characteristic, nor create any other side effects.

More Information

Defining User-Defined Functions [page 80]

[Link].1 Example: Defining a Declarative Function

The following example shows how to define, implement, and invoke a declarative function.

Example Framework of a Declarative Function

To define a declarative function, use the following model:

function DETERMINE_LABEL_ID {
characteristics
CPU primary,
HD primary,
LABEL_ID
}

The function is implemented in a java class. The java class has to be defined as follows:

● The package of the class must be [Link].


● The class name must match the definition name (here: DETERMINE_LABEL_ID).
● The class must implement the interface [Link].sce_user_fn.

The interface defines the following method that needs to be implemented: boolean execute(fn_args
args, Object obj);

SAP Solution Sales Configuration


58 PUBLIC Solution Modeling Environment
The method has two parameters:

● args contains the sequence of arguments - import arguments with an existing binding and export
arguments where the binding is to be set in the method implementation. All characteristics that have been
specified as primary in the function definition become import parameters. Other characteristics become
output parameters.
● The type of the second parameter obj depends on the context in which the function is executed. If this
parameter is executed as a declarative function, the parameter refers to the knowledge base object, which
provides access to static information such as the knowledge base name, version, and profile.

A declarative function returns a boolean value indicating success or failure. A declarative function invoked in
the condition part of a constraint, or in the if part of a restriction must return a meaningful boolean value
because the constraint is testing the return value.

Example Implementation of a Declarative Function

The following source code shows how to implement a declarative function.

public class DETERMINE_LABEL_ID implements sce_user_fn {


public boolean execute(fn_args args, Object kbObj) {
final sce_user_fn_logging log = new sce_user_fn_logging();

// retrieve input characteristics


String inputCPU = args.get_value("CPU");
String inputHD = args.get_value("HD");

// determine and set output characteristic


String outputLabel = String
.format("CPU: %s, HD: %s", inputCPU, inputHD);
args.set_value("LABEL_ID", outputLabel);

[Link](this, "Calculated label is " + outputLabel);

return true;
}
}

This implementation retrieves the characteristics CPU and HD from the configuration as input parameters.
These two strings are concatenated and stored in the output parameter LABEL_ID.

 Note

The implementation has only limited access to the current state of the configuration. Only the explicitly
defined input and output parameters can be accessed.

Example Invocation of a Declarative Function

The defined declarative function can be used in a constraint as follows:

function DETERMINE_LABEL_ID {
CPU = ?[Link],
HD = ?[Link],

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 59
LABEL_ID = ?PC.LABEL_ID
}

The characteristics on the left-hand side are characteristics of the function. The characteristics on the right-
hand side are characteristics of the instance (referred to with ?PC) of the configuration.

[Link] Pfunction

Definition

A “pfunction” (procedural function) provides read and write access to the configuration and dynamic database
(in contrast to a declarative function, which simply reads the knowledge base to derive export parameters).
Pfunctions can be used only in rules but address all configuration objects.

Pfunctions make all changes as side-effects and are not declarative. No actions are tracked by the TMS (unless
tracking is implemented manually). Unlike declarative functions, pfunctions can change the configuration
directly. A pfunction can explicitly invoke the execution of dependencies using the “Check” API.

More Information

Defining User-Defined Functions [page 80]

Example: Defining a Pfunction [page 61]

[Link].1 Testing Pfunctions

Prerequisites

● You have created a knowledge base.


● You have created a launch configuration (see Creating a Launch Configuration [page 80]).

Context

When you open a knowledge base to test it, pfunctions may not be executed as expected. In this case, you can
use this procedure to test and debug the pfunctions.

SAP Solution Sales Configuration


60 PUBLIC Solution Modeling Environment
Procedure

1. Open the Debug perspective and choose Run Debug Configurations... .


2. Expand the Eclipse Applications node.
3. Select a launch configuration.
4. Choose the Debug pushbutton.

The test UI appears in a new window. You can then set breakpoints in the Java program from the Debug
perspective in the solution modeling environment session.

[Link].2 Example: Defining a Pfunction

The following example shows how to define, implement, and invoke a pfunction.

Example Framework of a Pfunction

To define a pfunction, use the following model:

function NUMBER_OF_ITEMS {
characteristics
PC_REF primary,
HOLDS_HDS primary,
}

The function is implemented in a Java class. The Java class has to be defined as follows:

● The package of the class must be [Link].


● The class name must match the definition name (here: NUMBER_OF_ITEMS).
● The class must implement the interface [Link].sce_user_fn.

The interface defines the following method that needs to be implemented: boolean execute(fn_args
args, Object obj);

The method has two parameters:

● args contains the sequence of arguments - import arguments with an existing binding and export
arguments where the binding is to be set in the method implementation. All characteristics that have been
specified as primary in the function definition become import parameters. Other characteristics become
output parameters.
● The type of the second parameter obj depends on the context in which the function is executed. If this
parameter is executed as a pfunction, the parameter refers to the configuration itself, which can be used to
perform changes in the configuration directly.

The boolean typed return parameter is of no use in the context of pfunctions. Whereas the return value of a
declarative function carries meaning, the return value of a pfunction should always be true. If the return value is
false, this can lead to errors in the engine and an inconsistent configuration.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 61
 Note

A function implementation (that is, the Java class) can be invoked as a test or for setting cstic values, and
may even be used as the implementation of a pfunction. Such multiple use requires very careful
implementation. It is permitted but not necessarily recommended.

Example Implementation of a Pfunction

The following source code shows how to implement a pfunction.

public class NUMBER_OF_ITEMS implements sce_user_fn {

public boolean execute(fn_args args, Object configObj) {


// retrieve input characteristic PC_REF. PC_REF is an ADT
// characteristic and therefore can be converted to an ddb_inst
// object
ddb_inst instance = (ddb_inst) [Link]("PC_REF").kb_get_binding();

try {
// retrieve the values of characteristic HOLDS_HDS
kb_type instType = instance.ddb_get_inst_type();
kb_cstic csticToCnt = instType.kb_has_cstic_p("HOLDS_HDS");
read_only_sequence rs = instance.ddb_get_values(csticToCnt);

// set the value of characteristic NUMBER_OF_HDS


instance.ddb_set_or_replace_val(
instType.kb_has_cstic_p("NUMBER_OF_HDS"),
float_value_imp.get_float_value([Link]()),
((cfg_imp) configObj).tms_get_generic_default_owner());

} catch (Exception e) {
final sce_user_fn_logging log = new sce_user_fn_logging();
[Link](this, [Link]());
}

return true;
}
}

This implementation counts the number of assigned values to characteristic HOLDS_HDS. The retrieved
number is assigned to characteristic NUMBER_OF_HDS.

The implementation has access to the complete state of the configuration. Argument configObj is an
instance of class cfg_imp that can be used to modify the state of the configuration in a non-declarative,
procedural way. In the example, the characteristic NUMBER_OF_HDS is modified that is not part of the argument
list of the pfunction.

The class [Link] provides utility methods that can be used by pfunctions to read and
write from/to the current configuration. Among others, this class provides the following functionality:

Method Purpose

scelib.get_value(inst, csticName) Reads assigned value of <csticName>

SAP Solution Sales Configuration


62 PUBLIC Solution Modeling Environment
Method Purpose

scelib.get_values(inst, csticName) Reads assigned values of the multi-valued characteristic


<csticName>

scelib.set_value(inst, csticName, val) Sets value <val> to <csticName>

scelib.vt_select_buffered(kBase, match, Selects lines of variant table <VTabName> that obey the
VTabName, condition, order) <condition> , ordered by <order>

scelib.get_domain(inst, csticName) Reads current domain of <csticName>

scelib.restrict_dom(inst, csticName, dom, Restricts the domain of <csticName> by the string-array


owner) <dom>

Example Invocation of a Pfunction

Pfunctions are invoked in the same way as declarative functions, for example:

function NUMBER_OF_ITEMS {
PC_REF = ?PC.PC_REF
}

Pfunctions can be invoked only in the body of rules.

3.1.8 Interface Design

An interface design is an object that defines characteristic groups and assigns characteristics to those groups.
The configuration UI uses this information to present characteristics on the screen. Interface design objects
can be associated with classes or materials allowing different presentations of the characteristics to be
displayed based on the class or material.

Interface designs are inherited by subclasses and can be overridden by superclasses. If a subclass or material
extends (inherits from) more than one superclass with an interface design, the subclass must define its own
interface design.

[Link] Defining an Interface Design

 Note

This description uses the following conventions to illustrate the syntax requirements:

Required keyword

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 63
Optional keyword

User-specified value

Mutually exclusive keyword

To define an interface design, use the following syntax:

interfaceDesign identifier-1 {

group identifier-A {

characteristics

characteristic-id, characteristic-id,

urls { "url" label "30 bytes descriptive text" , "url" label "30 bytes descriptive text"... }

group identifier-B {

characteristics

characteristic-id, characteristic-id,

urls { "url" label "30 bytes descriptive text" , "url" label "30 bytes descriptive text"... }

Keyword/User Value Meaning Required/Optional

interfaceDesign Denotes the start of an interface design Required


object encompassed within {…}

identifier-1 This is the interface design ID used in Required


the model to reference this interface
design.

Max. length 18 bytes.

group Denotes the start of a group definition Required

identifier-A This is the group ID, the technical name Required


of the group of characteristics. Max.
length 18 bytes.

name This is the group name used to name/ Optional


label the grouping on the UI. For exam­
ple, if the UI presents groups as tabs,
this is the tab label if no name is pro­
vided.

Max. length 30 bytes.

SAP Solution Sales Configuration


64 PUBLIC Solution Modeling Environment
Keyword/User Value Meaning Required/Optional

characteristics Indicates the start of the list of charac­ Required


teristics in this group

cstic-1 A valid characteristic name Required

urls Keyword associating a URL with this Optional


group. URLs are not accessible via the
engine API. We suggest that you do not
use them in this release.

label A label for the URL Optional

3.1.9 Bill of Material

Definition

A bill of material (BOM) is a list of materials, assemblies, components, and parts required to manufacture a
product. These can be used to define simple relationships where one component comprises several
subcomponents. If required, you can define a maximum and a minimum quantity for each material and class in
the BOM.

More Information

For information about defining bills of material, see Defining Dynamic Bills of Material [page 65].

[Link] Defining Dynamic Bills of Material

Context

You use this procedure to create new bills of material (BOMs) in the Eclipse-based solution modeling
environment.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 65
Procedure

1. Choose File New Empty Model File

The system displays a dialog prompting you to choose a folder and enter a file name for the new BOM.
2. Enter the required data.
3. Choose Finish.

An empty file is displayed in the text editor.


4. Press CTRL + SPACEBAR and double-click bom.

 Note

Alternatively you can type bom.

5. Enter the required data and save the new BOM.

 Note

Optionally you can specify a minimum and a maximum value for each material or class.

Example

The bill of material shown below comprises one class and two materials:

bom SME_WORKPLACE {
10 class SME_COMPUTER min 0 max 9999,
20 material SME_DESKTOP min 0 max 9999,
30 material SME_DESKTOP min 0 max 9999
}

3.1.10 Model Syntax and Logical Validations

SME not only performs language syntax validation but extends it further to also do logical validations. These
logical validations are performed at compile time which helps in providing feedback during the model
development phase itself, thus avoiding the expensive test cycle process. These logical validations include:

● Using default assignment operator “?=” is not allowed in constraint restriction.


The default assignment can be used in rules for assigning the default values, however, the same is not true
for constraints. If it used in constraints, an error is thrown.
● Warning for free variables in constraint declaration.
A free variable in a constraint is defined in the object section of a constraint, but is never used in the
condition or restriction section. Such variables have an impact on the execution of the constraint. A
warning message is shown in such scenarios. Refer to SAP Note 2877744 for more details.
● Validation check in find_or_create
If find_or_create is used in the restriction section using the‘with’ argument, SME does a logical check if the
characteristics used in the ‘with’ argument are defined in a class, else a validation error is shown.

SAP Solution Sales Configuration


66 PUBLIC Solution Modeling Environment
● Validation check on assigning domain in constraint restriction
In a constraint, if a characteristic domain is assigned in the restriction section, then that characteristic
should be of restrictable type ,else an error is shown.

3.1.11 Solution Model Samples

The Solution Modeling Environment is shipped with a few sample solution models that serve as points of
reference when you are building live solution models.

For more information about creating live projects based on these samples, refer to the link below.

Related Information

Creating a Solution Sales Configuration Project [page 76]

[Link] KBO with MCI

SAP Solution Sales Configuration supports the application of predetermined rules to orchestrate between
knowledge bases with multi-configuration instances (MCI). This sample model provides insight into how multi
configuration instances can be created and managed across multiple configurations through the knowledge
base orchestration process.

For more information about this, refer to SAP Note 2550572 (SAP SSC Knowledge Base Orchestration
(KBO) and Multi Configuration Instances (MCI)).

[Link] FBS_SSC_CA

A model to demonstrate how the hardware, software, and services can be packaged together and how guided
selling can be enabled.

The FBS_SSC_CA model is intended to configure a data center and its supply servers, supporting an
application with various user types. Based on the number of each user type specified, the model will generate
the number of servers required, with the appropriate memory, CPU speed, and number of CPU’s.

The model also allows the user to override recommended values.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 67
Keywords and Key Concepts

Keywords Description

Counting Tallying, counting, and accumulating values

ADT's Use of abstract data type pointers to represent relationships


between solution components

Non-part instances Adding content without using a BoM (Bill of Materials)

Guided selling Rudimentary guided selling is illustrated here

Overriding Default Values in the System

1. Specify the number of users for one or more user type.


The model provides a list of potential servers as per the requirements of the relevant user type.
2. Select the relevant server name.
The model generates the required number of servers.
Up to fourteen individual servers are contained in a single blade system. Each individual server is further
configured with the appropriate memory and CPU’s. You need to simply enter the number of users and a
selection from a set of potential servers. The model executes the process automatically. If required, you
may also override the default system behavior.
For more information about this, refer to Memory Override.
3. Select additional software and/or services.
These can be associated with the servers by selecting the servers listed in the Runs on HW characteristic in
software instances or in the Serves characteristic on services instances. The association can also be made
from the hardware instances by using the Runs SW and Served by characteristics.
The model updates the line item quantity for the software and service instances based on the number of
servers associated with them. For example, if the software runs on 15 servers, the line item quantity is set
to 15. This process is controlled by the model and can also be configured otherwise.
The user can override the memory values on any blade system by setting the SPEC_MEM characteristic to
‘User’ from the system default ‘System’. When set to ‘User’, the memory field is available for update. You
can specify a new value to allocate that memory across all the servers in this specific blade system. There
is no impact on other blade systems in the configuration.

Overriding Other Default Behavior

The model was defined to automatically link all software and services to all server instances. This behavior of
the model can be overridden by changing the Auto Assign characteristic in any of the following instances:

● Server
● Software
● Service

SAP Solution Sales Configuration


68 PUBLIC Solution Modeling Environment
When the settings are changed, assignments are withdrawn and can be reassigned manually.

Related Information

Description of Modeling Techniques [page 69]

[Link].1 Description of Modeling Techniques

Related Information

Guided Selling Questionnaire [page 69]


Selecting Servers [page 70]
Adding Software and Services [page 71]
Linking Services, Hardware, and Software [page 72]
Counting and Setting a Line Item Quantity [page 72]

[Link].1.1 Guided Selling Questionnaire

The root instance of the configuration contains a set of prompts/questions through which you can specify your
business needs. In this case, a single question about user volume (number of users per user type) gathers all
the required information for the model, based on which the model determines the types of appropriate servers.

The user input for this question is supplied to the following fields:

● STD_SELFSERV_USERS
● SCM_SALES_USERS

Since both the fields work in a similar fashion, you can refer to the properties of STD_SELFSERV_USERS for
further information.

Right click on the field and select Find References to find the constraints in which it is used:

● DEMAND_STD_SELF
Here, the field STD_SELFSERV_USERS is used to compute the Demand, that is, the number of CPUs, CPU
speed, and RAM required to support the type and number of users specified.
● USER_MASTER_DATA
Here, the field STD_SELFSERV_USERS is used to create an instance in the configuration to hold data
specific to a user type. In this constraint, you can see the find_or_create command and right click on
the class name USER_MASTER_DATA to find references to it. The GET_USER_MASTER_DATA constraint
pulls data from a variant table and stores it in the USER_MASTER_DATA instance.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 69
Hence, the two constraints work together to retrieve data for a particular user type for which users have
been specified. In other constraints, if user specific data is needed, the User_Master_Data instance is
referenced.
● VISIBLE_INST
Here, the field STD_SELFSERV_USERS is used to control visibility of the two other fields. If no value is
specified, the list of server names is hidden along with the list of pointers to servers that are already added
to the configuration.

[Link].1.2 Selecting Servers

The field containing the list of servers becomes visible after the number of users is entered in either or both the
Number of Users fields. These lists of values are stored in form of variant tables and can be accessed through
rules. This is discussed in more detail below:

STD_SELF_SERVER_NAME is the selection field for the server name and is restricted by the following
constraints:

● VISIBLE_INST
This constraint is discussed in the chapter Guided Selling Questionnaire.
● SERVER_MASTER_DATA
This constraint uses the same techniques as is used for USER_DATA.
● DMN_SERVER_AND_CPU_SPD
This constraint restricts the domain of both Cpu_Speed and Server_Name values by using a field computed
in constraint DEMAND_STD_SELF based on User_type. Only those CPU speeds whose values are greater
than or equal to the speed required for the user type:

?[Link] ACTL_STD_SELF_CPU_SPD >= ?S.REQ_STD_SELF_CPU_SPD

The constraint further uses the restricted domain to restrict the allowed server name values using a variant
table:

table T_SERVER_DATA
(SERVER_NAME = ?[Link] STD_SELF_SERVER_NAME
,PROCESSOR_SPD = ?[Link] ACTL_STD_SELF_CPU_SPD
)

● COMPUTE_REQ_SERVERS
This constraint computes the number of servers required to meet the memory demand and the required
number of CPUs. It then compares these values and retrieves the number of servers as the greater of these
two values.
● STD_SELF_INST_1 and STD_SELF_INST_N
These constraints work together to create the required number of servers, as discussed above.
The following conditions are considered by the constraints for the calculations:
○ STD_SELF_INST_1: If it is true that there is at least 1 (more than 0) server required, then it is also true
that there is a server with instance number = 1.
○ STD_SELF_INST_N: If it is true that many servers are required and a server exists with an instance
number < the number required, then it is also true that there is a server with instance number 1 greater
than the existing one.
To illustrate the above, assume 3 servers are required.

SAP Solution Sales Configuration


70 PUBLIC Solution Modeling Environment
1. STD_SELF_INST_1 will create a server instance with SSC_INSTANCE_NUM = 1.
2. STD_SELF_INST_N executes as its objects pattern is matched.
3. The number of servers required is 3 and a server instance exists with instance_num =1 (which is
< 3).
4. It confirms that there is another server instance with SSC_INSTANCE_NUM one greater than the
one found.
5. This constraint runs for each new server instance created, except for the one whose
instance_num = 3 (only for instances with instance_num < 3).

Related Information

Guided Selling Questionnaire [page 69]

[Link].1.3 Adding Software and Services

Software is added by selecting values in field SOFTWARE_SELECT and services are added by selecting values
either in INST_SERVICE_SELECT (installation services) or MAINT_SERVICE_SELECT (maintenance services).

Each of these are multivalued fields.

The constraint CREATE_SERVICE_INST adds service instances and will run once for each value in the
multivalued field. Using the values in the field to set a characteristic value on the service instance ensures that
each instance is unique.

constraint CREATE_SERVICE_INST {
objects:
?S is_a (300) FBS_SSC_CA
condition:
?S.SERVICE_SELECT specified
restrictions:
find_or_create
((300) SERVICE,
with SERVICE_PROFILE = ?S.SERVICE_SELECT;
IS_PART_OF_SD_SOFT = ?S;
SERVICE_IN_SOL_ADT = ?S)
explanations:
"CREATE service instance. multiValue will find_create for each value."
}

 Note

If the SERVICE_PROFILE is not set on the service instance in the find_or_create statement. In this
case, only one service instance would be created and it would be justified in the engine's truth maintenance
system, once for each value in the SERVICE_SELECT field.

A similar technique is used for adding software instances.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 71
[Link].1.4 Linking Services, Hardware, and Software

While each item added to the solution is a component of the solution, there are other relationships between the
components. These relationships are expressed by using ADT’s that function as pointers to other instances and
are restricted by the following constraints:

● LINK_SW_HW, LINK_HW_SW
● LINK_HW_SV, LINK_SV_HW
● LINK_SV_SW LINK_SW_SV
Each of the “LINK_...” constraints ensure that if item A points to item B, then item B also points back to
item A. For example, LINK_SW_HW ensures that if a software is run on a server, then it is also true that the
server runs that software.
● AUTO_ASSIGN_SW and AUTO_ASSIGN_SV
These constraints use a switch (AUTO_ASSIGN_TXT) to determine whether the system should
automatically establish these relationships, that is, assume that all software runs on all hardware, all
software and hardware are ‘serviced by’ all services in the configuration, or whether no such relationships
are assumed. If no relationships are assumed, then the user may assign the relationships manually by
making selections in the ADT characteristic fields.

[Link].1.5 Counting and Setting a Line Item Quantity

The model includes a reference characteristic that allows the model to reference information that exists on the
sales document, such as customer number, country, sales organization, etc. and for the model to set values of
fields on the sales document, such as line item quantity. The reference characteristic in this model,
STOP_MENGE, is used to set the line item quantity.

characteristic STPO_MENGE {
names
EN 'Component quantity',
DE 'Komponentenmenge'
numericLength 13 decimalPlaces 3
negativeValues
reference table 'STPO' field 'MENGE'
}

To illustrate this, assume that a software’s quantity depends on the number of things it runs on.

So, if 1 server runs the software, item quantity is 1; but if it runs on 10 servers, then the quantity is 10. A similar
logic applies to service items.

For more information about how the number of software licenses is counted, see rule AGGR_SW_LIC and
constraint SET_SOFTWARE_STPO_MENGE to understand how that value is assigned to the reference
characteristic.

SAP Solution Sales Configuration


72 PUBLIC Solution Modeling Environment
3.2 Setup of Solution Modeling Environment

Use

You use this process to define a solution model in the Eclipse-based solution modeling environment, test it, and
transport it to a target system for use in the sales ordering process.

You perform these steps in Eclipse, using the SAP Modeling perspective. To change to a different perspective,
choose Window Open Perspective Other...

 Note

● During SME installation, the system on which Eclipse is running must have internet connectivity.
Eclipse uses the default internet connectivity configured by proxy settings on OS level (for example, in
Windows Internet Options Connections LAN Settings or any other OS connectivity settings).
If no internet connectivity is configured, you must configure the proxy settings in Eclipse under
Windows Preferences General Network Connection , as part of the standard Eclipse set up
procedure.
● If you are working as part of a team and are using a source code management system, you must first
check out a file for editing, and then check it in after completing editing.
For more information, see chapter Collaboration Between Modelers.

Prerequisites

● You have configured the connection to the target system.


● You have imported the configuration master data (see Importing Configuration Master Data in the Solution
Modeling Environment [page 102]).
● You have maintained your model templates (see Maintaining Modeling Templates [page 110]).

Process

1. You create or open the project for the solution model (see Creating Model Projects [page 76]).
2. You define the model master data, including characteristics and classes (see Defining Characteristics
[page 25] and Defining Classes [page 16]).
3. You define materials (see Defining Materials [page 21]).
4. You define variant tables (see Defining Variant Tables [page 44]).
5. You define dynamic bills of material (BOMs) (see Defining Dynamic Bills of Material [page 65]).
6. You define dependencies and dependency nets (see Defining Solution Dependencies [page 46]).
7. You define a knowledge base (see Defining Knowledge Bases [page 11]).
8. You test the model locally (see Testing Models Locally [page 92]).
9. You export the model to the target system (See Exporting a Knowledge Base Runtime Version [page 84]).

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 73
Result

Your solution model is available for solution configuration in the target system.

Related Information

Collaboration Between Modelers [page 111]

3.2.1 SAP Modeling Perspective

The SAP Modeling perspective features a number of views that allow you to represent your solution model in
different ways:

Component Description

Project Explorer The Project Explorer view allows you to explore the project
as it exists in the file system, that is, as a set of folders and
files. New files can be added, changed, or deleted just as
they are in Windows Explorer. Updates here are also made in
the local workspace. Adding a folder here, for example, adds
a folder on the local disk in your workplace and deleting files
removes them from the local disk.

The operations available are shown in the menus or by right-


clicking an object (context menu) in the Project Explorer.

All operations, with the exception of those in the SAP


Modeling menu, are standard Eclipse functions. For more in­
formation, see the Eclipse documentation.

Model Explorer The Model Explorer view allows you to explore the project as
it is seen by SAP Solution Sales Configuration, that is, as a
set of objects - characteristics, classes, constraints, and so
on.

 Note
Objects can be opened and edited from this view, and
also created in existing files. New *.ssc files can be cre­
ated in the Project Explorer view only.

SAP Solution Sales Configuration


74 PUBLIC Solution Modeling Environment
Component Description

Model Graph The Model Graph view shows the relationship between
classes or dependencies in a graphical view. It is useful for
understanding the relationships among classes and materi­
als, or between dependencies. To view the class hierarchy,
use the donut icon; to view the materials, click the hierarchy
icon; to view the dependency structure, click the cube icon.

When you set Link to Editor, the editor repositions to the def­
inition of the object selected in the graph and the graph high­
lights the object based on the object definition being edited.

The scope of objects shown in the graph can be controlled in


two ways. First, in the configuration menu (which is accessi­
ble using the upside down triangle icon), choose Workspace
to see objects from all open projects in your workspace, or
choose Selected Project to see only objects in the project
currently selected. You can also choose Selected Project
(Incl. References) to see objects in the selected project and
all of its open reference projects. The second way to control
the scope of display in the Model Graph view is to right-click
any of the displayed objects and set a filter. Setting a filter
limits the view to this object and any subordinate objects.

 Note
Objects can be opened and edited from this view, but
not added or deleted. If you open the file in which an ob­
ject is defined and set Link to Editor, the view will reposi­
tion to the definition of the object selected in the graph,
and the graph will reposition (highlight) to the object
based on the object definition being edited.

Problems The Problems view shows messages from invoked functions,


such as Export Knowledge Base or Validate Model. Double-
click a message to go to the error location.

Search The Search view shows the results of a search. You can also
initiate a search from the Search view or the Search menu.

The yellow up and down arrows locate the next or previous


match; the plus (+) and minus (−) icons expand or collapse
all entries in the results tree. The refresh icon reruns the cur­
rent search, and the search history icon shows a list of previ­
ous searches, which can be selected and rerun.

The downward triangle icon can be used to change the view


from a tree to a list, set a filter, and update general search
preferences through a link.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 75
Component Description

Outline The Outline view works in tandem with the editor. It shows all
the objects defined within the active file in the editor. You can
also sort the object definitions in this view.

[Link] Creating Model Projects

Use

You use this procedure to create a new SAP Solution Sales Configuration model project in the Eclipse-based
solution modeling environment.

Procedure

 Note

Creating an empty model file is a quick way to start a new object definition. You can then use the context
help to complete the definition.

1. Choose File New SAP Solution Sales Configuration Model Project .


2. Enter the project name and location.
3. Choose Finish.
The new project is displayed in the Project Explorer.

[Link].1 Creating a Solution Sales Configuration Project

You use this procedure to create a solution configuration model from an example in the Eclipse-based solution
modeling environment

Creating an SSC Model Project

1. Choose File New Other


2. In the Select a Wizard window, expand the SAP Solution Sales Configuration node and select SAP Solution
Sales Configuration Model Project
3. Choose Next
4. In the next window, enter the project name and a location for the project

SAP Solution Sales Configuration


76 PUBLIC Solution Modeling Environment
5. Choose Finish

Result
You can see the new project in the Project Explorer.

Creating an Example SSC Model Project

1. Choose File New Other


2. In the Select a wizard window, select Examples
From the options, select the sample project you want to include in the workspace and click on Next
3. Click on Finish

Result
You can see the sample project in the Project Explorer.

 Note

It is recommended to organize the project files in an object-oriented way. For example, you can have one file
with the classes of one (or several related) objects and their cstics. Similarly, you can have another file
which stores the constraints and constraint nets (of the completed model, or separated into several object-
oriented files). Similarly, a different file for materials, BOMS, and more.

[Link].2 Importing a Project into Your Workspace

Use

As a modeler, you can work with several workspaces, each with its own logically distinct set of projects. In some
cases, you might need to copy a project from one workspace to another, or you might want to work on a model
created by another colleague. You can do this by adding the project to your workspace.

Procedure

1. Right-click the white space of the Project Explorer view.


2. Choose Import.
3. In the Import window, open the General folder and choose Existing Projects into Workspace.
4. Choose Next.
5. Decide whether you want to import the project from the folder structure on your file system or from an
archive file.

Importing from the File System

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 77
1. Choose the Select Root Directory: radio button.
2. Select the root directory containing the project(s) using the Browse... pushbutton.
3. Select the project to be imported.

 Note

Projects that are grayed out cannot be selected because they already exist in your workspace.

4. To make a copy of this project and copy it to your workspace, choose Copy Projects into Workspace. If you
want to work on the files in the current location, do not choose this option.
5. Choose Finish.
The project then appears in the Project Explorer.

Importing from an Archive File

1. Choose the Select Archive File: radio button and use the Browse... pushbutton to select the archive file
containing the project.
2. Select the project to be imported. The Copy Projects into Workspace option is selected by default and is
required.

 Note

Projects that are grayed out cannot be selected because they already exist in your workspace.

3. Choose Finish.
The project then appears in the Project Explorer.

[Link] Adding Reference Projects to an Existing Project

Use

It's common practice (and even a best practice) to create one or more projects containing frequently used
routines that can be reused in other model projects. To reuse content from another project, you designate the
project as a “reference project”. The solution modeling environment then treats the content as if it were
included in a single project.

 Note

If any one of the following objects:

● Class
● Material
● Characteristic
● Constraint
● Rule
● Variant table
● Constraint net
● Rule net
● Pfunction

SAP Solution Sales Configuration


78 PUBLIC Solution Modeling Environment
is defined in more than one project, it is flagged as a duplicate error. Reference projects allow you to reuse
objects without having to define them more than once.

Procedure

You can view reference projects using the following procedure:

1. In the Import window, open the General folder and choose File System.
Click on Next.
2. Specify the folder(s) and file(s) to be imported, using the Browse button.
Click on Finish.

[Link] Exporting a Model Project

Context

You use this procedure to export a solution model project so that you can share it with your colleagues.

Procedure

1. Right-click the project folder in the Project Explorer view.


2. Choose Export.
3. In the Export window, open the General folder and choose Archive File.
4. Choose Next.
5. Choose the Select All pushbutton and specify the location and name of the archive file to be created.
6. Under Options, choose the options for the file format, directory structure, and compression.
7. Choose Finish.

The project is then exported to the file you specified.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 79
[Link] Creating a Launch Configuration

Context

You use this procedure to create a launch configuration from either the Java or Debug perspective.

Procedure

1. Choose Open Perspective Java Perspective .

2. Choose Run Run Configurations... or Run Debug Configurations .


3. Expand the Eclipse Application node and enter a name for the configuration.

Click on Apply and then Run.

Results

The new configuration is ready to be launched.

[Link] Defining User-Defined Functions

Use

You use this procedure to create user-defined functions in the Eclipse-based solution modeling environment.

Procedure

1. Choose File New Empty Model File


The system displays a dialog box, prompting you to select a folder and enter a file name for the new
function.
2. Enter the required data.
3. Choose Finish.
An empty file is displayed in the text editor.
4. Press CTRL + SPACEBAR and then double-click function.
5. Enter the required data and save the new function.

SAP Solution Sales Configuration


80 PUBLIC Solution Modeling Environment
 Note

The compiled Java class must be added to the class path of the EJB-IPC bundles
( [Link]-ipc). This can be done using a fragment or the
functionality Eclipse-RegisterBuddy: [Link]-ipc.

The new fragment or plug-in with the function can be handed over to the Eclipse environment itself
(MyEclipse\plugins or MyEclipse\dropins), or you can start the test UI in Eclipse in a runtime configuration,
which contains all the necessary bundles.

For more information about this, see SAP Note 1701098 (Documentation Update for Implementation of
Variant Functions).

Example

function FUNCTION {
name "Name"
characteristics
CSTIC1 primary,
CSTIC2,
}

Related Information

Declarative Function [page 58]


Pfunction [page 60]

[Link] Exporting a Project

The Solution Modeling Environment allows you to export knowledge bases to different databases as well as a
file to the system.

To make this work, you would need to setup different database connections and the required drivers for the
database to which you are exporting the project, to allow successful exports.

For connections to local databases, the following factors are considered:

● MsSQL
● MySQL
● HANA
● Oracle
● MaxDB

Apart from the local databases, knowledge bases can also be exported to the CRM and ECC systems.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 81
[Link].1 Setup of Local Database Connection

Context

The SME can create connections to the following local databases:

● MsSQL
● MySQL
● HANA
● Oracle
● SAP MaxDB

You can setup a connection to the local database using the procedure below:

Procedure

1. Go to Eclipse Windows Preferences Expand SAP Solution Sales Connections .

2. Select the Add Name .

Select the relevant radio button.


3. Select the Database Type.
4. Enter the Server Name and Database Name.
5. Enter the port and client, if this information is not populated automatically.
6. Enter the login name for the database.
7. You can add the drivers using the procedure below:

a. Go to Eclipse Windows Preferences Expand SAP Solution Sales .


b. Add the driver pertaining to the database connection that is being added.

Click on OK.

Example

You can further refer to the example below for more information:

1. Select Microsoft SQL Server as the Database Type.


2. Set localhost as the Server.
3. Enter MsSQL Database as the Database Name.
This value is user defined.
4. The port and client should be auto-populated as 1433 and 000, respectively.
5. Enter sa as the login name.

SAP Solution Sales Configuration


82 PUBLIC Solution Modeling Environment
This value is provided during the DB creation process.
6. Add Microsoft SQL Server JDBC4 Driver in the Driver section.
Click on OK.

[Link].2 Setup of CRM Connection

Context

You can use the following procedure to export a project to CRM:

Procedure

1. Go to Eclipse Windows Preferences Expand SAP Solution Sales Connections .


2. Select the CRM radio button to add a name for the project.
3. The name will be user defined and relevant for the CRM connection.
4. Add the CRM System Number into the consideration for the connection.
5. Under the Application Server, enter the server details from the properties section of the CRM system.
6. Enter the Client number for the system.
7. Enter the login name defined above to connect to the CRM system.
8. You can refer to the example below for more information:
a. Application Name = A valid name
b. System Number = 11
c. Application Server = Server details from the properties section
d. Client = 700
e. Login Name = UNIT_TEST

 Note

No drivers are required for this connection.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 83
[Link].3 Setup of ERP Connection

Context

You can export a project to ERP using the following procedure:

Procedure

1. Go to Eclipse Windows Preferences Expand SAP Solution Sales Connections .


2. Select the ECC radio button to enter the relevant name.
3. Add a Name to the ECC connection.

This name is user defined.


4. Add the System Number of the ECC system in the consideration for the connection.
5. Under the Application Server, enter the server details from the properties of the ECC system.
6. Enter the Client number of the system.
7. Enter the login name to connect to the ECC system.
8. You can refer to the example below for further information:
a. Application name = A valid name
b. System number = 11
c. Application server = Server details from the properties section
d. Client = 700
e. Login name = UNIT_TEST

 Note

No drivers are required for this connection.

[Link].4 Exporting a Knowledge Base to Database

Use

You use this procedure to export a knowledge base and create a runtime version from it.

You can export a knowledge base from the File menu, from the Project Explorer view, or from the Model Explorer
view.

SAP Solution Sales Configuration


84 PUBLIC Solution Modeling Environment
Procedure

From the File Menu

1. Choose File Export SAP Solution Sales Configuration Export Knowledge Base
2. Select the knowledge base you want to export
3. Choose Next
4. Select the connection for the target database
5. Optionally, you can also do the following:
○ Deactivate the validation option in the Export Knowledge Bases (multiple KB export) dialog

 Caution

If you decide to deactivate the validation, the status of the data in the back end cannot be
guaranteed after the export.

○ Activate the Include local variant table content during export option
6. Enter the password and choose Finish.

From the Project Explorer View

1. Right-click anywhere in the Project Explorer and choose Export SAP Solution Sales Configuration
Export Knowledge Base .
2. Select the knowledge base you want to export.
3. Optional in the Export Knowledge Bases dialog (multiple kb export dialog): Deactivate the validation option.

 Caution

If you decide to deactivate the validation, the status of the data in the back end cannot be guaranteed
after the export.

4. Choose Next.
5. Select the connection for the target database.
6. Enter the password.
7. Optional: Activate the Include local variant table content during export option.
8. Choose Finish.

From the Model Explorer View

1. Right-click the knowledge base definition and choose Export Knowledge Base.
2. Select the connection for the target database.
3. Enter the password and choose Finish.

 Note

Every time you export a knowledge base, the system asks you whether you want to start a test session in
the testing perspective.

 Caution

If a validation error is detected in any of the dependent .ssc files when you export a knowledge base (for
example, due to unrelated class, cstic, material, or variant tables present in that file, an error will be
thrown that prevents you from exporting the knowledge base.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 85
[Link].5 Exporting a Knowledge Base to a File

Follow this process to export a knowledge base from the workspace to a local folder.

Context

This procedure exports all the .xml files to the local folder of the knowledge base. You can export a knowledge
base from the File menu either from the Project Explorer or the Model Explorer view.

Procedure

1. Setup the file connection.

a. Go to Eclipse Windows Preferences Expand SAP Solution Sales Connections .


b. Select Add Name.
c. Select the relevant radio button for File.
d. Provide the path to the selected local folder.
e. Click on OK.
2. Export the knowledge base.
○ Exporting from the file menu
1. Choose File Export SAP Solution Sales Configuration Export Knowledge Base .
2. Select the knowledge base you want to export.
3. Optionally, you can also deactivate the option for validation in the Export Knowledge Bases dialog
for multiple knowledge base export.
4. Choose Next.
5. Select the file connection created for the export.
6. After the export is completed, the local folder should contain all the relevant .xml files of the
project.
○ Exporting the project explorer view
1. Right click anywhere in the project explorer and choose Export SAP Solution Sales
Configuration Export Knowledge Base .
2. Select the knowledge base you want to export.
3. Optionally, you can also deactivate the option for validation in the Export Knowledge Bases dialog
for multiple knowledge base export.
4. Choose Next.
5. Select the file connection created for export.
6. After the export is completed, the local folder should contain all the relevant .xml files of the
project.
○ Exporting form the model explorer view
1. Right click on the knowledge base definition and choose Export knowledge Base.
2. Select the file connection created for the export.

SAP Solution Sales Configuration


86 PUBLIC Solution Modeling Environment
3. After the export is completed, the local folder should contain all the relevant .xml files of the
project.

[Link] KB Admin Tool Support

[Link].1 Uploading Knowledge Bases

You use this procedure to upload a knowledge base into the local database. On the modeling user interface
(UI), you can upload the knowledge base using the Upload Knowledge Base menu. You can upload the
knowledge base as either flat files or xml files.

Procedure

1. Go to SAP Modeling Upload Knowledge Base .


2. Choose the type of file that you want to upload.

Option Description

Flat file Choose Flat File Upload and browse for the knowledge
base flat-file directory.

XML file Choose Xml File Upload and browse for the knowledge
base XML-file directory.

3. Choose Next.
4. Choose the connection and enter the required details.
5. Choose Finish.

More Information

While downloading a runtime version via CU36 utility, some text formatting may be lost and replaced by hashes.

For more information about handling this issue, refer to SAP Note 2339258 (Japanese and Chinese texts are
lost in runtime version.).

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 87
[Link].2 Deleting Knowledge Bases

You can use the Delete Knowledge Base option in the Solution Modeling Environment to delete knowledge
bases from supported databases.

Procedure

1. Go to SAP Modeling Delete Knowledge Base .


2. Select the relevant connection details and click Next.
3. Select the knowledge bases that you want to delete and click Finish.
4. Click OK to continue.

Results

The selected knowledge bases are deleted from the database and a confirmation message is displayed.

[Link].3 Uploading External Variant Tables

Context

You use this procedure to upload external variant tables to local databases that can be downloaded from the
ECC and CRM systems.

 Note

Many models require the support of these external variant tables.

Procedure

1. Choose File Upload External Variant Tables .


2. Browse the External Variant Table directory.
3. Choose Next.
4. Enter the connection details of the database to which the variant tables are to be uploaded.
5. Choose Finish.

SAP Solution Sales Configuration


88 PUBLIC Solution Modeling Environment
3.2.2 SAP Testing Perspective

The SAP Testing perspective opens automatically when you open a knowledge base. This perspective has its
own set of associated views and editors. These include the Configuration Editor, Characteristics view, Non-Part
Instances view, Properties view, and a number of debug/analysis views.

Component Description

Configuration Editor Shows the content of the configuration session in a tree


structure. The highest-level node shows the database name,
knowledge base name, profile, and version of the knowledge
base that was opened to start this configuration session. Di­
rectly under the knowledge base node is the configuration
node, which shows the name of the configuration (same as
the knowledge base name).

 Note
Due to knowledge base orchestration (KBO), multiple
configurations driven by their own knowledge bases can
be active at the same time. These are 'orchestrated' to
work together as one configuration.

Below the configuration node are the class and material in­
stances, under which are the characteristics with their as­
signed values. A green square indicates that all the required
values have been assigned to the instance, that is, the in­
stance is complete. A yellow triangle indicates that the in­
stance is incomplete, that is, a required characteristic has
not been assigned a value. A red circle indicates a conflict or
inconsistent configuration. For help with debugging a con­
flict, open the Conflicts view and click any item in the config-
uration flagged with a red circle. Information about the con­
flict will be presented in the conflicts view.

You can manipulate the configuration content in this editor


by right-clicking any item or node. All of the permitted ac­
tions are then available for selection. To add an instance to
the configuration, use the Non-Part Instance view.

Characteristics View The Characteristics view lists the visible characteristics of


the instance selected in the Configuration Editor. Values can
be assigned to any characteristic, unless the model has
marked it as 'no input' or a value has already been set by a
constraint. Required characteristics are marked with a yel­
low triangle, even after a value has been assigned. Click the
inverted triangle on the view header to view the menu. You
can use the menu to show/hide invisible characteristics and
to display language-dependent names and technical names.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 89
Component Description

Non-Part Instances View The Non-Part Instances view is used to manually add instan­
ces of either classes or materials to the configuration. When
you double-click any item in the Non-Part Instances view, it
is added as an instance of that type in the form of a 'free-
standing' independent instance. It does not have a 'part of'
relation to the root instance, unless a constraint has been
added to the model to establish a relationship. It is called a
'non-part instance' because it is not part of anything else.

 Note
You can add components to a material at a given BOM
position by right-clicking the material in the Configura-
tion Editor. If a BOM has been defined for the material,
the Add Component option is available for selection. If
selected, a 'part instance' is added as a component of
that material. Non-part instances cannot be added in
this way. In this case, they must be added using the
Non-Part Instances view.

Properties View The Properties view shows information about all the proper­
ties of the current item (that is, the selected item in the ac­
tive view). This can be an instance in the Configuration Edi­
tor or Characteristics view, or a constraint in the Justifica-
tions view. Any item you select in a view has properties,
which are displayed in this view.

Debug and Analysis Views

These views are presented as a set across the bottom of the SAP Testing Perspective.

SAP Solution Sales Configuration


90 PUBLIC Solution Modeling Environment
Component Description

Test Runner Tracks all actions and records them in a script file that can
be saved and re-executed. The run pushbutton runs an im­
ported script in its entirety. To run only to a particular step,
select the last line to be executed, right-click, and choose
Run to Line.

The export pushbutton exports the current test runner con­


tent to a file. The system prompts you to enter the directory
and file name.

The import pushbutton imports a test script. The system


prompts you to enter the directory and file name. The file
must have the .performer suffix.

The reset pushbutton resets the configuration session to its


initial state.

To add expected results to the script, select an object in the


configuration editor, right-click and select one of the
Expect… options.

When replaying a script containing expected content, the


SME compares the current content of the configuration with
the recorded expected content. All matches are marked
green, any unexpected content is marked red, and an ex­
planation of the delta is provided.

Conflicts View When two contradictory facts are detected, the engine raises
a conflict. The Conflicts view lists the conflicts associated
with the instance currently selected in the Configuration Edi­
tor. It also provides guidance for resolving the conflict in the
form of "conflict assumptions".

Profiling View Profiling is a function of the configuration engine that tracks


the execution of dependencies and records the number of
times each dependency is executed and the total time con­
sumed.

Profiling must be activated to start recording statistics and


displays results when it is deactivated.

To start or stop profiling, click the down arrow pushbutton in


the Profiling view toolbar and choose Start/Stop Profiling.

Justifications View Each instance and characteristic value is justified by a set of


facts asserted by the user or by dependencies and is tracked
by the Truth Maintenance System. The Justifications view
shows all the facts and the dependencies that asserted
them. Together, these facts and dependencies justify the
item that is currently selected.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 91
Component Description

Trace View The Trace view provides a detailed account of all engine ac­
tivities. For more information, see Tracing [page 97].

[Link] Testing Models Locally

Context

You use this procedure to test your model prior to exporting it to the target system for use in the sales ordering
process. In the test user interface (UI) and the test configuration engine, you can configure the solution to
ensure that the model is performing as expected. You can either configure the solution manually or use a
recorded test script. You can also measure the performance of constraints and dependencies.

Procedure

1. Choose File Open Knowledge Base...


2. Choose the Connection and enter the required details.
3. Choose Next.
4. Choose a knowledge base and a profile.
5. Choose Next.

Results

The system opens the test UI. As you configure the solution in the test UI, the system displays the information
on the following tab pages:

● Test Runner
The system records all of the actions you perform in the test UI and displays the resulting script on the
Recorded Script tab page. The script can be saved to a file. You can open a saved script on the Executable
Script tab page and then run it. You can run the whole script, or you can run the script up to a particular
line.
If you run a saved script and then continue to configure the solution, the system adds your actions to the
script.
● Conflicts
The system displays the model conflicts that occur while testing the solution model.
● Profiling

SAP Solution Sales Configuration


92 PUBLIC Solution Modeling Environment
The system displays all of the constraints executed during the configuration session. For each constraint,
the system lists the number of calls and the execution time in milliseconds. You can select a column header
to sort the data by that column.
● Justifications
The system displays the justifications for configuration rules.
● Trace
The system displays the steps taken during the configuration session.
● Non-Part Instances
The view displays all of the non-part instances types. You can create a non-part instance by double-clicking
a type and then add it to your configuration for testing.

 Note

After testing your model locally, you can test the knowledge base in the sales transactions within your back-
end SAP CRM or SAP ECC system. To do so, you must export the knowledge base to a CRM or ECC
database in the same way as you export it to the local database. In this case, however, you choose the CRM
or ECC connection instead of the local database connection. For more information, see Exporting a
Knowledge Base Runtime Version [page 84].

[Link].1 Test Runner

The “Test Runner” view allows you to run the test scripts partially or completely. Furthermore, it provides
actions for storing and loading test scripts. When a test script is run, the configuration tree is changed based
on the actions in the test script. For expectations, the configuration tree is inspected. If the expectation does
not match the actual state of the configuration tree, the deviation is reported in the “Test Runner” view. The
Loaded Files tab displays the loaded performer scripts.

The test (performer) script is used to record all user commands as test steps with the purpose of storing and
executing them at a later time. In the Solution Modeling Environment, you can record “expectations”. This
allows you to inspect a model after executing user commands and verify that the expectations still hold, for
example, after a model has been changed. Therefore, the test scripts and test-runner UI now serve as a simple
tool for automated model tests.

[Link].1.1 Saving Test Scripts (Performer)

You use this procedure to save an SAP Solution Sales Configuration test script in the Eclipse-based Solution
Modeling Environment.

Procedure

1. Open the knowledge base.


2. Modify the model configuration.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 93
3. Choose Save Script in the Test Runner view.
4. Enter the file name and save.

The test script is saved in the specified location on the file system in the .performer format.

It contains the action performed by the user on a configuration and also records the expectation when
Expect All on Save is selected while saving the performer file. These performer scripts are also enhanced to
contain the configuration xml in a zipped format. It contains various flags for restoration and performance
checks which can we used when running the performer in the headless mode.

2689606 - SME Performer and Restore Configuration Feature Enhancements

2777356 - API to Apply Engine Settings

Next Steps

After you have saved the test script, you can load, run, and reset the script.

[Link].1.2 Loading Test Scripts (Performer)

You use this procedure to load an SAP Solution Sales Configuration test script (performer files) in the Eclipse-
based Solution Modeling Environment.

Context

You can use this script to test the configuration for the model and can load a single or multiple test scripts to
set the configuration.

Procedure

1. Choose Load Script in the Test Runner view.


2. Select the test-script files and choose Open.

 Note

If multiple performer scripts are loaded, they must be of the same KB RTV.

SAP Solution Sales Configuration


94 PUBLIC Solution Modeling Environment
Results

The performer test scripts are displayed on the Loaded Files tab. The loaded performer script would only be
available in the performer run session, and not in the other configuration view launched for restore when
performer is run with flags enabled for restore.

[Link].1.3 Running Test Scripts (Performer)

You use this procedure to run an SAP Solution Sales Configuration test script in the Eclipse-based Solution
Modeling Environment.

Procedure

1. Choose Run Script in the Test Runner view.


2. Double-click on the test script on the Loaded Files tab for details.

The Executable Script tab opens with the test script details.

Results

The performer test scripts run with the status SUCCESS or FAILURE.

[Link].1.4 Resetting Test Scripts (Performer)

You use this procedure to reset an SAP Solution Sales Configuration test script in the Eclipse-based Solution
Modeling Environment.

Context

The target configuration is set when a test script for a model is executed. You can choose to reset either one or
multiple configuration scripts, as they are loaded in the test runner.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 95
Procedure

1. Open the Test Runner view.


2. Choose either Reset Configuration (to reset a single configuration script) or Reset All Configurations (to
reset multiple configuration scripts).

Results

The performer test script is reset to Not Run.

[Link].1.5 Deleting Test Scripts (Performer)

You use this procedure to delete SAP Solution Sales Configuration test scripts in the Eclipse-based Solution
Modeling Environment.

Procedure

1. Select the test script performer on the Loaded Files tab.


2. Choose Delete File in the Test Runner view.

Results

The performer test script is deleted from the Loaded Files tab.

[Link].2 Problem Filter on Executable Script Tab

You use this procedure to filter actions in the Eclipse-based solution modeling environment. You can filter the
actions based on the problem explanation to easily find out the failure actions encountered during the test
script run.

Procedure

1. Open the Executable Script tab.

SAP Solution Sales Configuration


96 PUBLIC Solution Modeling Environment
2. Enter text in the Problems Filter based on the explanation of the problem.

 Note

Multiple performer scripts loaded must be of the same KB RTV.

[Link] Tracing and Logging

Use

The tracing function enables you to record selected engine activities.

Prerequisites

● You have activated the trace by choosing the View Menu pushbutton in the Trace view and then choosing
Configure. In the trace configuration window, choose Enable Tracing.

 Note

For performance improvements in SME, traces would be updated only when the user clicks on the
Refresh button.

● You have selected the types of activity to be traced.

Types of Traceable Activity

Type Description Comments

DDB (Dynamic database) The DDB is the engine-internal storage Tracks all assertion and retraction of
for facts maintained by the inference facts in the dynamic database
engine. Trace output of this type refers
to changes in the DDB.

PMS (Pattern matching system) The PMS is responsible for matching Tracks all patterns in the configuration
patterns in a dependency against facts that are detected by the pattern match­
in the DDB. Dependencies are evalu­ ing system
ated against the provided matches. In
other words, the PMS is responsible for
identifying the dependencies to be exe­
cuted and for providing them with the
objects (such as instances and charac­
teristics) that are required for the de­
pendency evaluation. Trace output of
this type refers to activities inside the
PMS.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 97
Type Description Comments

CSTR (Constraint) Trace output of this type refers to con­ Records the execution of any constraint
straint evaluations.

RULE Trace output of this type refers to rule Records the execution of any rule
evaluations.

SCND (Selection condition) Trace output of this type refers to the Traces the execution of any selection
evaluation of selection conditions. condition

PCND (Precondition) Trace output of this type refers to the Traces the execution of any precondi­
evaluation of preconditions. tions

PROC (Procedure) Trace output of this type refers to the Traces the execution of any procedures
evaluation of procedures.

FUNC (User-defined functions) Trace output of this type refers to the Records the execution of user-defined
evaluation of user-defined functions. functions

TABL (Variant tables) Trace output of this type refers to the Tracks interaction with a variant table
access of variant tables.

The trace result can be displayed in the configuration dialog. Each row is structured as follows:

[EngineTrace]:[ <Instance Number>- <Knowledge Base Name>] <Sequential Number for


Each Trace Row> <Related Engine Activity Type> <Message Number of the Text
Displayed for the Engine Activity Performed> <Engine Activity Performed>

 Note

The message number of the text displayed for the engine activity performed corresponds to the numbers in
ABAP message class 34.

 Example

[EngineTrace]:[1-HSS_SOLUTION_KB] 1 DDB 204 New fact "sf($1, SCM_SALES_USERS,


VAL, 150.0)" inserted by "User"

Many expressions relating to the engine activity performed are self-explanatory. However, expressions about
facts need further explanation.

SAP Solution Sales Configuration


98 PUBLIC Solution Modeling Environment
A fact represents an elementary assertion about the state of the configuration. For example, if the user sets a
characteristic COLOR to the value BLUE, a specific fact is created in the engine. The following types of facts can
occur in the trace:

Fact Printed in Trace (Examples) Explanation

sf($1, COLOR, VAL, BLUE) This is a simple fact (sf). For the instance $1, this fact sets
the value of the characteristic COLOR to BLUE.

VAL refers to a specific facet of a characteristic. The availa­


ble facets are described below.

to($1, product: SAP_SYS) This is a type-of (to) fact which is used for classification. The
instance $1 is of the product type SAP_SYS

rd($1, COLOR, BLUE, RED) This fact is about a restrictable domain (rd).

For the instance $1, this fact sets the domain of values for
the characteristic COLOR to the values BLUE and RED.

Facets of Characteristics

The tracing output of a simple fact (sf) always describes a certain facet of a characteristic. A facet is a property
of a characteristic. The following facets exist:

● VAL (value facet): Value of a characteristic


● DOM (domain facet): Domain of a characteristic
● REQ (required facet): Specifies whether a characteristic is required
● INV_P (invisible facet): Specifies the visibility of a characteristic
● NOINP_P (no input facet): Specifies whether a characteristic is read-only

[Link] Import/Export Configuration

You can test your configuration on the test UI of the Solution Modeling Environment. In this way, you can mimic
the restore scenario that is available on the user interface of SAP Solution Sales Configuration.

This feature in the Solution Modeling Environment enables you to perform the following tasks:

● Export configuration from the SME to XML


● Import configuration XML that has been exported from the SME
● Import configuration XML that has been exported from the user interface of SAP Solution Sales
Configuration
● After the import, edit the configuration and export the updated configuration to XML

Export Configuration

On the SAP Testing user interface, you can export knowledge base configuration as a *.cfg file.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 99
1. Open the knowledge base and complete configuration on the SAP Testing UI.
2. Right-click the tree view and go to Configuration Export .
3. Enter a file name for your configuration.

Restore Configuration

In the Solution Modeling Environment, you can restore the configuration XML as follows:

1. Go to File Restore Configuration .

 Note

You must create a connection to the local database if a connection doesn't already exist.

2. Enter the database password and click Next to open the wizard.
3. Click Browse to select a configuration file. You can export files that have the formats *.cfg or *.xml.
4. Select the KB reference date and click Finish to see the restored configuration on the SAP Testing UI.

 Note

After the restore, you can edit the configuration on the SAP Testing UI. However, you cannot save a
performer script for this updated configuration. (The Save Script button has been disabled in Test Runner).

[Link] DDB, PMS, and TMS Dumps

The Solution Modeling Environment provides dumps to support the user in analyzing modeling problems.

The following dumps are provided by the SME to help users analyze modeling problems:

● DDB (dynamic database) Dump


The DDB is the internal storage for all facts maintained by the inference engine. The trace output for this
dump refers to changes in the DDB.
● PMS (pattern matching system) Dump
The PMS is responsible for matching patterns in a dependency against facts in the DDB. These
dependencies are then evaluated against the provided matches. In other words, the PMS is responsible for
identifying the dependencies to be executed and for providing them with the objects (such as, instances
and characteristics) required for the dependency evaluation.
● TMS (truth maintenance system) Dump
The TMS determines the status of facts given the known set of justifications. Any status changes are
communicated to the TMS client. Every time a new justification is communicated to the TMS, the status of
all facts and triggers is updated (incrementally). The TMS dump also performs an atms-label calculation
for all facts and triggers, on demand.

SAP Solution Sales Configuration


100 PUBLIC Solution Modeling Environment
[Link].1 Exporting DDB Dumps

You use this procedure to export a DDB dump from the Eclipse-based Solution Modeling Environment.

Procedure

1. Right-click the knowledge base in the Model view and select Configuration DDB Dump .
2. Choose the location in which you want to save the file and enter a file name.

The DDB dump is exported as shown below:

DDB Dump

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 101
[Link].2 Exporting PMS Dumps

You use this procedure to export a PMS dump from the Eclipse-based Solution Modeling Environment.

Procedure

1. Right-click the knowledge base in the Model view and choose Configuration PMS Dump .
2. Choose a location in which to save the file and enter a file name.

[Link].3 Exporting TMS Dumps

You use this procedure to export a TMS dump from the Eclipse-based Solution Modeling Environment.

Procedure

1. Right-click the knowledge base in the Model view and choose Configuration TMS Dump .
2. Choose a location in which to save the file and enter a file name.

[Link] Importing a Model in Local Database

Use this process to import a knowledge base from an SAP ECC or SAP CRM system using the data loader.

Use

You use this procedure to import the interface characteristics from compatible-mode knowledge bases in the
source SAP ERP Core Component (SAP ECC) or Customer Relationship Management (CRM) system to the
solution modeling environment database. You perform these steps in the Eclipse-based solution modeling
environment.

Prerequisites

You have setup the data loader connection in the Solution Model Environment.

SAP Solution Sales Configuration


102 PUBLIC Solution Modeling Environment
Procedure

1. Choose File Import... .


The system displays a dialog box prompting you to choose an import source.
2. Choose SAP Solution Sales Configuration Data Loader .
3. Choose Next.
The system displays a dialog box prompting you to choose a Data Loader configuration from a list of the
configured connections.
4. Select the configuration for the system and choose Next.
The system can either be the SAP ECC system or the CRM system.
5. Enter the required passwords and choose Finish.

 Note

Compatible mode knowledge bases imported from the SAP ECC system can be tested using the test user
interface; however they cannot be changed in the solution modeling environment.

For more information, see Data Loader in the Solution Modeling Environment.

More Information

Related Information

Data Loader in the Solution Modeling Environment [page 107]

[Link] Importing a Model into a File

Prerequisites

A java project needs to be created, under which the relevant .ssc file is created.

Context

This procedure is used to import a knowledge base present in a backend database (CRM,ECC, local database)
into a file, in an existing java project. The imported file contains the following details:

● Material definition

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 103
● Class definition
● Characteristic definition
● Bill of materials definition

as per the selected KB.

Procedure

1. In the solution modeling environment, choose File Import SAP Solution Sales Configuration Import
Model to File .

Choose Next.
2. Choose one of the existing connection types: CRM, SAP ECC, or the local database.
3. Enter the Client, User, and Password.

Choose Next.
4. Select the knowledge base runtime version for the product .

You can sort the results by clicking on any one of the column headers.
5. Select the master data definitions you want to import.

Choose Include Dependent Bill of Materials if you want to import the material definitions with the boms
parameter. If you do not choose this option, the material definition will not contain a reference to a BOM.

If you choose Include Dependent Material Classifications, the imported material definitions will include the
classes parameter. If you do not choose this option, the material definition will not contain a reference to
classes.

 Note

These options affect only the material definition and not the import of bill of material or class
definitions

Choose Next.
6. Specify the folder and file names to be created, to store the definitions of the imported items.

 Note

Do not select any advanced features.

Choose Finish.

SAP Solution Sales Configuration


104 PUBLIC Solution Modeling Environment
[Link] Importing a Model into a New Project

Context

This procedure is used to import a knowledge base present in a backend database (CRM,ECC, local database)
into a Java project. The project then created will have individual folders of bills-of-materials, classes,
characteristic and materials. Each folder shall have the relevant material definition, class definition,
characteristic definition and bill of material definition in an .ssc file as per the elements selected during
creation

Procedure

1. In the solution modeling environment, choose File Import SAP Solution Sales Configuration Import
Model to New Project .

ChooseNext.
2. Choose one of the available connections: ECC, CRM, or the local database.
3. Enter the Client, User, and Password.

Choose Next.
4. Select the knowledge base runtime version for the product.

You can sort the results by clicking on any one of the column headers.
5. Select the master definitions you want to import.
6. Choose Include Bill of Material if you want to import the material definitions with the boms parameter. If you
do not choose this option, the material definition will not contain a reference to a BOM.

If you choose to Include Dependant Material Classifications, the imported material definitions will include
the classes parameter. If you do not choose this option, the material definition will not contain a reference
to classes.

 Note

These options affect only the material definition and not the import of bill of materials definitions or
class definitions.

Choose Next.
7. Enter a project name under which the project folders will be created. The .ssc files with the selected
parameter definitions will be saved here.

Choose Finish.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 105
[Link] Importing Master Data from SAP CRM/ECC

Use

At runtime in the SAP Solution Sales Configuration engine, the solution knowledge bases created in the
solution modeling environment interact with the product knowledge bases created in SAP CRM/ECC.

Most of the master data for the referenced products is already defined in the SAP CRM/ECC system and can
be reused in the solution modeling environment. These master data definitions are included in the knowledge
base run time versions imported into the local SQL server database.

You use this procedure to import this master data to either a file or a new project.

Prerequisites

● You have configured a connection to your SAP ECC system in the Eclipse-based solution modeling
environment.

Procedure

Importing Master Data to a File

1. In the solution modeling environment, choose File Import SAP Solution Sales Configuration Import
Model to File .
2. Choose Next.
3. Choose from an ECC or a CRM connection.
4. Enter the client, user, and password.
5. Choose Next.
6. Select the knowledge base runtime version for the product (you can sort the results by clicking any column
header).
7. Select the master data definitions you want to import.
Choose Include Dependent Bill of Materials if you want to import the material definitions with the “boms”
parameter. If you do not choose this option, the material definition will not contain a reference to a BOM.
If you choose Include Dependent Material Classifications, the imported material definitions will include the
“classes” parameter. If you do not choose this option, the material definition will not contain a reference to
classes.

 Note

These options affect only the material definition and not the import of bill of material definitions or
class definitions.

8. Choose Next.
9. Specify the folder and file name to be created to store the definitions of the imported items.

SAP Solution Sales Configuration


106 PUBLIC Solution Modeling Environment
 Note

Do not select any advanced features.

10. Choose Finish.

Importing Master Data to a New Project

1. In the solution modeling environment, choose File Import SAP Solution Sales Configuration Import
Model to new Project .
2. Choose Next.
3. Choose from an ECC or a CRM connection.
4. Enter the client, user, and password.
5. Choose Next.
6. Select the knowledge base runtime version for the product (you can sort the results by clicking any column
header).
7. Select the master data definitions you want to import.
Choose Include Dependent Bill of Materials if you want to import the material definitions with the “boms”
parameter. If you do not choose this option, the material definition will not contain a reference to a BOM.
If you choose Include Dependent Material Classifications, the imported material definitions will include the
“classes” parameter. If you do not choose this option, the material definition will not contain a reference to
classes.

 Note

These options affect only the material definition and not the import of bill of material definitions or
class definitions.

8. Choose Next.
9. Enter a project name.
10. Choose Finish.

3.2.3 Data Loader in the Solution Modeling Environment

Use

The data loader is a tool that allows you to download the configuration master data either from an SAP ERP
Central Component (ECC) system or from a Customer Relationship Management (CRM) system. The data
loader registers with the SAP ECC or CRM gateway, initiates download requests, and processes the call-backs
from the SAP ECC or CRM system. The download itself is a “push” mechanism for which two RFC connections
are required:

1. Outbound connection from the data loader to the SAP ECC or CRM system to read the SAP gateway
parameters and initiate download requests.
2. Inbound connection from the SAP ECC or CRM system in order to process the “pushed” data.

The data loader is used in the solution modeling environment to download configuration master data, for your
solutions from the SAP ECC or CRM system to the solution modeling environment database. It is installed as an
Eclipse plug-in. Before you can download data, you must configure a connection to the source SAP ECC or CRM
system and then add the connection to the data loader configuration settings.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 107
For more information about using the data loader in the solution modeling environment, see Importing a
Knowledge Base using Data Loader.

Related Information

Importing a Model in Local Database [page 102]

3.3 SSC DevOps Wizard

To facilitate faster creation of automated setup for KB exports, a new SSC DevOps Project Wizard has been
added in SME. You can create a new DevOps project from the file menu and select the knowledge bases and
destinations for export. The wizard will generate a script for individual connections, and a master script for
exporting to all the connections. The wizard uses the KB project and its dependent project information from
the eclipse workspace to generate the scripts. These scripts can also be updated later to include more
knowledge bases and connections.

To create a new DevOps project, perform the following steps:

1. Go to File New SSC DevOps Project and specify the Project Name and Location.
2. In the next window, select the knowledge bases to be exported, and in the subsequent window, select the
connections to which the KBs need to be exported.
3. Upon finishing, one script for each individual connection, and a master script that can execute all the
individual scripts will be generated.
4. This DevOps project can be executed using SSC DevOps run configurations. Results of the execution are
displayed in the eclipse console.
5. To update the project, right click and select the Update Devops Project menu option. New SSC projects
added in the workspace will be listed which can be then selected for script creation.

This DevOps project can be managed in Git and can be then used to setup headless KB export on a continuous
integration server like Jenkins. For more infomartion, refer to the SSC Solution Modeling Environment Overview
presentation on the [Link] Search for SAP Solution Sales Configuration Relevant Version
Additional Information SSC Solution Modeling Environment Overview .

3.4 Analyzing Pricing Traces

It is now possible to turn on pricing traces while testing the configuration. The pricing context parameters can
be set in preferences, and the pricing context can be set during the opening of a knowledge base in SME.

When the pricing context is enabled, pricing parameters set in preferences will be passed onto the
configuration session, and pricing will be enabled to turn on the pricing traces. It needs to be ensured that the
material and pricing data is already downloaded in the database using which the tests are being performed.

SAP Solution Sales Configuration


108 PUBLIC Solution Modeling Environment
You need to perform the following steps to use this feature:

1. Go to File Open Knowledge Base and select the connection.


2. On the knowledge base selection page, select the kb.
3. Click the Pricing Context Properties button. You will be navigated to the pricing context properties
preference page. Set the pricing context properties here and click on Apply.
You can also go to this page by navigating to Window Preferences SAP SSC Pricing Context
Properties
4. On the KB selection page, select the check box to Set Pricing Context. It will turn on pricing for this
configuration.
5. Perform the configuration in the test perspective.
6. To view the pricing traces for the current configuration, right-click on the model tree and select Show
Pricing Traces. This will open the pricing traces in the eclipse xml editor.
7. Similarly, to turn on pricing for Restore Configuration, we need to set the pricing context properties in the
preferences, and select the Set Pricing Context checkbox on the restore configuration page

For more infomartion, refer to the SSC Solution Modeling Environment Overview presentation on the http://
[Link]. Search for SAP Solution Sales Configuration Relevant Version Additional Information
SSC Solution Modeling Environment Overview .

3.5 Data Exchange

Use

Master data must be exchanged between the solution modeling environment and the target sales system, for
example, SAP Customer Relationship Management (SAP CRM) or SAP ERP Core Component (SAP ECC). The
main data exchanges are as follows:

● Material master data and compatible mode (classical IPC) knowledge bases are replicated from the SAP
ECC system to the SAP CRM system.
● Modelers import data such as characteristics and classes from the SAP CRM system to the solution
modeling environment.
● Modelers transfer the completed solution model (knowledge base runtime version) from the solution
modeling environment to the SAP CRM system or to the SAP ECC system.

Pricing information is not exported to the solution modeling environment.

 Note

If you want to configure and export SME into a local database (for example, for use with SAP Solution Sales
Configuration in Hybris), you must download and register the relevant database driver.

 Caution

The Data Loader does not import product data into the solution modeling environment. Therefore, you
must ensure that the products defined in the solution models also exist in the target sales system(s) where
the knowledge base is deployed.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 109
Prerequisites

You have configured the connection between the solution modeling environment and the target sales system.

More Information

For more information about importing data, see Data Loader in the Solution Modeling Environment [page 107].

3.6 Maintaining Modeling Templates

Context

You use this procedure to maintain templates for model elements. When you open an empty text file in the
solution modeling environment, and then use the auto-completion feature ( CTRL + SPACEBAR ), the system
lists all of the available templates. Templates are stored as XML files.

Procedure

1. Choose Window Preferences

The system displays the preferences dialog.

2. Choose SAP Solution Sales Configuration Modeling Templates

The system displays the Templates dialog.

Results

The system lists all of the existing templates. A template is defined with the following information:

● Name
● Context (for example, Bill of Material, Class, Constraint, and so on)
● Description
● Pattern

If you select a template, the content of the template is displayed in the Preview area.

SAP Solution Sales Configuration


110 PUBLIC Solution Modeling Environment
The Templates dialog provides the following functions:

Function Description

New... You use this function to create a new template.

Edit... You use this function to edit the selected template.

Remove You use this function to remove the selected template.

Import You use this function to import a template from an XML file.

Export You use this function to export the selected template to an XML file.

3.7 Developing SSC User Exits

To facilitate quick development of user exits, a new wizard has been added in SME. This wizard will create a
skeleton for a pFunction project in which custom classes can be added. This pFunction can be then exported
from SME to the local database or backend system for testing.

While executing a configuration in SME test perspective, pFunctions would be loaded from the database along
with the KB. The existing pFunction jar files can also be exported using this project by placing the jar files in the
target directory of the pFunction project.

You can perform the following steps to use this wizard:

1. Go to File New SSC pFunction Project .


2. Specify the Project Name, Unit Name, and Unit Version and create the project.
3. A project will be created in the eclipse workspace in which java classes can be added.
4. To export the pFunction, select the pFunction project and go to File Export SAP SSC Export SSC
pFunction .

In case a custom unit version has been used during project creation, the same needs to be specified in the
engine settings preference page before start of the configuration in the testing perspective.

For more infomartion, refer to the SSC Solution Modeling Environment Overview presentation on the http://
[Link]. Search for SAP Solution Sales Configuration Relevant Version Additional Information
SSC Solution Modeling Environment Overview .

3.8 Collaboration Between Modelers

Use

Complex solution models that combine different products are often maintained by more than one modeler. In
addition to this, master data can be reused in different products. This means that different modelers may have

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 111
to make changes to the same model elements. This function ensures that locally maintained models can be
merged and synchronized by using a model repository that defines the rules and workflows for collaboration.

When changes are made to a solution model, the system does not directly store the model in the SAP
Customer Relationship Management (SAP CRM) or the SAP Enterprise Resource Planning (SAP ERP) system.
It first merges the changes in a model repository that defines the rules and workflows for collaboration. A
consistent model version is then transferred from the model repository to the relevant system.

 Note

The solution modeling environment does not contain its own repository technology; instead it is designed
to be used with existing file-based Source Code Management Systems (SCMS).

Integration

The solution modeling environment is based on the Eclipse platform, and connector plug-ins are freely
available for the most commonly used SCMS systems, such as Subversion, CVS, and Git. Most SCMS systems
also come with the Eclipse Connector plug-in.

The SCMS system can be integrated with the solution modeling environment in the following ways:

● By downloading the required SCMS connector plug-in to the solution modeling environment using the
integrated update manager.
● By downloading the solution modeling environment as a plug-in in an existing Eclipse-integrated
development environment (IDE) with an existing SCMS connector.

3.9 Setting Context Properties

The configuration engine uses reference characteristics to obtain the context of the environment in which it is
working. An example of this context could be a sales organization, a distribution channel, etc. In SAP CRM/SAP
ECC/Hybris, this context is passed on to the configuration engine through RFCs and APIs.

In SME, this context can be passed using a properties file. The format of the context properties file should be:

ref_cstic1=value1
ref_cstic2=value2

You can use this procedure to set context properties while opening a runtime knowledge base version or while
restoring configuration.

SAP Solution Sales Configuration


112 PUBLIC Solution Modeling Environment
Setting Context Properties When Opening a KB and Creating a New
Configuration

1. Choose File Open Knowledge Base .


2. Enter the connection details.
3. Choose Next.
4. Select the knowledge base and profile.
5. Select Context Property.
6. Browse the property file.
7. Choose Finish.

Setting Context Properties When Restoring an Existing Configuration

1. Choose File Restore Configuration .


2. Enter the connection details.
3. Choose Next.
4. Browse the configuration file.
5. Select Context Property.
6. Browse the property file.
7. Choose Finish.

3.10 Automating Modeling Lifecycle

The solution modeling environment interface allows a user to use different features of the product.

Most of the features on the SME UI require human intervention for execution, for example, exporting a model
project to a target system, restoring a configuration, execution of performer on a model project, etc.

The headless automated process not only allows automation of these features, but also allows the user to run
regular automated jobs to ensure stability of models. The features mentioned below are currently supported in
headless automation:

● Headless Export of Knowledge Bases


● Headless Performer Execution
● Headless XML Configuration Restore
● Headless Upload of External Variant Table
● Headless Dataloader Execution

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 113
3.10.1 Headless Export of Knowledge Bases

Use

You can use this process to export solution models to a target system, for example, a standalone database,
SAP ERP, or SAP CRM.

Prerequisites

● You have installed the solution modeling environment on the system from which you want to export the
solution models
● You have set up an Eclipse workspace for the solution modeling environment
● You have defined the required back-end connections under Window Preferences SAP Solution Sales
Configuration Connections
● If solution models are to be exported to any of the supported database systems (see the Product
Availability Matrix at [Link] ), such as Microsoft SQL Server, you have already
registered the relevant database driver under Window Preferences SAP Solution Sales Configuration
Drivers
● You have configured all relevant settings in your solution modeling environment, such as source formatting
and validation settings, under Window Preferences SAP Solution Sales Configuration Source
Formatter / Validation

Preparatory Steps

The knowledge base exporter requires the following information:

● The connection details of the target system


The available connections are configured in the solution modeling environment under Window
Preferences SAP Solution Sales Configuration Connections and are stored under
<workspace_directory>\.metadata\.plugins
\[Link]\[Link].
● The settings for the modeling language source formatter and model validation
These settings are configured under Window Preferences SAP Solution Sales Configuration Source
Formatter / Validation and are stored under <workspace_directory>\.metadata\.plugins
\[Link]\[Link].

This information can be provided in multiple ways based on the mode of operation of the exporter:

● Workspace mode
An Eclipse workspace is used to determine the settings and relevant modeling projects.
● Directory mode

SAP Solution Sales Configuration


114 PUBLIC Solution Modeling Environment
A minimal Eclipse workspace is used, that is, it should contain only registered database drivers. The
settings and modeling projects are specified by parameters that are passed to the headless exporter
executable.

[Link] Executing Headless Export

To start the headless knowledge base exporter, you must execute the [Link] or [Link] file in
your eclipse installation directory.

 Recommendation

Write a batch ( .bat) or command ( .cmd) file that calls the executable.

[Link].1 Eclipse-Specific Arguments

The behavior of the export can be controlled by the following arguments:

Eclipse-Specific Arguments

Argument Name Argument Description

--[Link] Suppress messages and error dialogs

-application The application to run


[Link].h
This must point to the headless export application.
[Link]

-noSplash Do not show the splash screen

-console Show a console window

-consoleLog Log messages to the console

-vmargs Java VM arguments.

This must be the last argument because all arguments after


this one will be parsed as Java VM arguments. For example,
-vmargs -Xms128M -Xmx512M , -XX:PermSize=128M -
XX:MaxPermSize=256M , etc.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 115
[Link].2 Export Application-Specific Argument

The behavior of the export can be controlled by the following arguments:

Export-Application-Specific Arguments

Argument Name Example Argument Description

-data -data "C:\path\to\workspace" The path to the Eclipse workspace. The


workspace has to contain at least a
JDBC driver registration (in directory
mode). In workspace mode, the work­
space also has to contain valid settings.

-kbData -kbData "C:\path\to\projects" (Relevant only in directory mode) The


path to the directory with sub-directo­
ries containing all required .ssc files.

-kbProject -kbProject [Link] Workspace mode: The name of the


project that contains the KB to export.

Directory mode: The directory names


of all sub-directories in -kbData to be
scanned. Use -kbProject
"subDir1;subDir2".

-kbName -kbName KB_NAME The name of the knowledge base to be


exported

-kbValidate Not applicable If specified, the knowledge base is vali­


dated before the export.

 Note
Always specify this parameter to
prevent inconsistent knowledge
bases from being exported.

SAP Solution Sales Configuration


116 PUBLIC Solution Modeling Environment
Argument Name Example Argument Description

-conFile -conFile "path\to Workspace mode: Optional absolute


\[Link]" path to connections to be used instead
of the connections defined in the work­
space.

Directory mode: Required path to con­


nections to be used. It can be absolute
or relative to -kbData.

 Note
You can add logsys parameter with
value to the [Link] file
when LOGSYS needs to be over­
written in the headless mode.

-conName -conName SYSTEM_1 The name of the export connection to


be used. If it is not specified, the export
uses the default connection.

-conPassword -conPassword secret The password to use for the chosen


connection.

-settingsFile -settingsFile "path\to Workspace mode: Optional absolute


\[Link]" path to the settings to be used instead
of the settings defined in the work­
space.

Directory mode: Required path to set­


tings to be used. It can be absolute or
relative to -kbData.

-kbConsoleLog Not applicable Log messages and errors to the con­


sole.

-kbEclipseLog Not applicable Log messages and errors to the Eclipse


runtime logging framework.

-kbExcludeVariantTableContents Not applicable Variant tables are exported without


content.

-kbExcludeLocalizations Not applicable Localized short and long texts of model


elements are not exported.

[Link].3 Example: Headless Knowledge Base Export

If the headless export code is put into a command file called [Link], it can be used as follows:

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 117
● Workspace mode
In case of the workspace mode, a typical call to the exporter appears as follows:

eclipse\eclipsec -vm --[Link] -application


[Link] -noSplash
– console
-consoleLog -kbValidate -kbProject -kbName -kbConsoleLog %* -vmargs
-Xms128M -Xmx1024M - XX:PermSize=128M -XX:MaxPermSize=256M
echo EXIT CODE: %ERRORLEVEL%

 Remember

If the default eclipse workspace is not used, then -data argument should be used to specify the
workspace path in headless export mode.

● Directory mode

eclipsec --[Link] -application


[Link] -noSplash
-console
-consoleLog -kbValidate -kbConsoleLog %* -vmargs -Xms128M -Xmx1024M -
XX:PermSize=128M -XX:MaxPermSize=256M echo EXIT CODE: %ERRORLEVEL% -data "C:
\path\to\workspace" -kbData
"C:\path\to\projects_root"
-kbProject [Link] -kbName KB_NAME -conFile
"C:\path\to\[Link]" -settingsFile "C:\path\to\[Link]"

The application returns an exit code that can be accessed through variable ERRORLEVEL.

For more information about this, a sample batch script is available in SAP Note 2174488 (Headless
Knowledge Base Export - Sample Script).

[Link].4 Exit Codes for Knowledge Base Export

Exit Codes for Knowledge Base Export

Exit Code Description

0 All OK. KB was exported.

200 Invalid or insufficient arguments or parameters.

201 Given project (-kbProject) not found.

202 Given KB (-kbName) not found.

203 Given KB is invalid (validation issues).

204 Connection not found or invalid.

SAP Solution Sales Configuration


118 PUBLIC Solution Modeling Environment
Exit Code Description

205 Cannot execute export (internal problems; see log).

3.10.2 Headless Performer Execution

Headless performer execution allows a user to run performer scripts on the exported models in the target
system, using an automated process.

You can use either the workspace scenario or the directory scenario to provide data for headless performer
execution.

Workspace Scenario

This is an Eclipse workspace with a project and defined connections and a performer script directory.

The headless performer script execution requires the following data for the workspace scenario:

● Project workspace with projects


● Valid defined connections
● Performer scripts directory (performers specific to the workspace)

The workspace should contain the projects. You can set up an export connection by choosing Window
Preferences SAP Solution Configuration Connections .

 Note

When you close the workspace, the connections are stored under:

<workspace_dir.metadata>\.plugins\[Link]
\[Link]

 Caution

Add a connection password to the XML at your own risk. The password is stored as unsecure plain text. To
do so, add the password attribute to the clientSettings element.

Directory Scenario

This is a simple directory containing sub-directories with the .performer script files and the required
pfunctions (if any) in the respective directories and paths given by parameters to a valid [Link].

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 119
The headless performer script execution requires the following data for the directory scenario:

● One or more directories as a container for the .performer script files


● An XML file for the performer connection (database) to use ([Link])
● Path to the connection driver .jar file (for example, D:\jars\[Link]).

The application needs a path to a (parent) directory (-psData “dir/parent”) and it will scan all
subdirectories for the available performer scripts. The scenario also requires a path to the connections via an
XML file (-conFile “path/[Link]”).

In both the workspace and directory scenarios, the performer run requires the [Link] to be present
in the same directory as the respective script.

[Link] Executing Headless Performer

To execute the “headless performer script”, call the [Link] or [Link] (without additional
console) in the Eclipse installation directory with the required arguments.

 Recommendation

We recommend using a batch (.bat) or command (.cmd) file.

[Link].1 Eclipse-Specific Arguments

Argument Description

--[Link] Suppress errors argument must be set before vmargs; nor­


mally one of the first arguments

-application [Link]- The application to start. Value (application ID) is separated


[Link] by a space from the argument.

-noSplash Do not show the splash.

-console Show a console.

-consoleLog Log to the console.

-vmargs Java VM arguments. Must be the last Eclipse argument be­


cause all of the following arguments will be parsed as Java
VM arguments, for example:

-vmargs -Xms128M -Xmx512M

-XX:PermSize=128M -XX:MaxPermSize=256M

SAP Solution Sales Configuration


120 PUBLIC Solution Modeling Environment
 Posting Instructions

For a full list of the supported arguments, see the Eclipse documentation .

[Link].2 Performer-Application-Specific Arguments

 Note

Use quotation marks ("") for values that contain spaces such as -psdata “D: \Performer Data”.

Parameter Workspace Scenario Directory Scenario

-projectWorkspace Workspace project name. Not applicable

-projectWorkspace ssc_office_example

-psData The path to the directory with the sub­ The path to the directory with the sub­
directories containing all re­ directories containing all re­
quired .performer files. quired .performer files.

-psData “C:\parentDirectory” -psData “C:\parentDirectory”

-conFile Not applicable Required path to connections to use.

-conFile “C:\path\[Link]”

-conDriver Not applicable The path to the connection driver jar


file.

-conDriver “D:\jars\[Link]”

-psConsoleLog Print logs on console. Print logs on console.

-consoleLog -consoleLog

-conName Not applicable Connection name.

-conName “localCon”

-conPassword Connection password (optional if speci­ Connection password (optional here if


fied in [Link] file). specified in [Link] file).

-conPassword “mypassword” -conPassword “mypassword”

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 121
Parameter Workspace Scenario Directory Scenario

-pContextPropertyFile Path for the context properties to be Path for the context properties to be
set. set.
 Note
This is an optional field and can be used This is an optional field and can be used
Since 3.0 Patch 6, the context as required by user. For example, C: as required by user. For example, C:
properties are saved in a performer \Users\Admin\ContextProperty \Users\Admin\ContextProperty
file which can also be used in the \sme_office_prop.properties. \sme_office_prop.properties.
headless execution mode.

-pFunction Specify the required pfunctions(if any). Specify the required pfunctions(if any).
For example, -pFunction "C:/users/ For example, -pFunction "C:/users/
dir1/[Link];C:/users/dir2/ dir1/[Link];C:/users/dir2/
[Link]". [Link]".

[Link].3 Example: Headless Performer Execution

 Recommendation

We recommend using a batch file ([Link]) for this process.

The application will return an exit code (see echo %ERRORLEVEL% in example cmd).

Workspace Mode

A batch or command script could appear as follows:

 Sample Code

@echo off
eclipse\eclipsec -vm “%JRE_HOME%\bin” --[Link] -application
[Link]
n -noSplash -console -psConsoleLog -projectWorkspace “ssc_office_example” -
psData “C:\Users\Public\PROJECTWORK\Enhancements\TestRunner in Headless Mode
\PerformerData” -conName “localCon” -conPassword “mypassword”

SAP Solution Sales Configuration


122 PUBLIC Solution Modeling Environment
Directory Mode

A batch or command script could appear as follows:

 Sample Code

@echo off
eclipse\eclipsec -vm "%JRE_HOME%\bin" --[Link] -application
[Link]
n -noSplash -console -psConsoleLog -conDriver "C:\Users\Public\SOFTWARES
\[Link]" –conFile "C:\Users\Public\PROJECTWORK\Enhancements\TestRunner
in Headless Mode\PerformerData\config\[Link]" –psData "C:\Users
\Public\PROJECTWORK\Enhancements\TestRunner in Headless Mode
\PerformerData"REM -Xdebug -Xnoagent -[Link]=NONE -
Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005@echo EXIT CODE:
%ERRORLEVEL%

[Link].4 Exit Codes for Performer Execution

Exit Codes for Performer Execution

Exit Code Description

0 OK. Performer scripts have been executed.

300 Invalid or insufficient arguments or parameters.

301 Given performer scripts (-psData) not found.

302 Given workspace project not found.

303 Knowledge base not found.

304 Connection not found or invalid.

305 Cannot execute performer scripts (internal problems; see


log).

3.10.3 Headless XML Configuration Restore

The headless restore configuration feature is part of the solution modeling environment that allows
configuration restore using the .cfg/xml files through the headless automated process for the exported models
on the target system.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 123
There are two possible scenarios to provide the data for headless restore configuration:

● Workspace scenario
An Eclipse workspace with project and its defined connections. The headless restore configuration needs
the following data for workspace scenario:
○ Project workspace with projects
○ Valid defined connections
○ Configuration files directory (containing .cfg/.xml files)
The workspace should contain all the relevant projects. You can setup an export connection from here:
Window Preferences SAP Solution Configuration Connections .

 Note

When you close the workspace, the connections are stored under:

<workspace_dir.metadata>\.plugins\[Link]
\[Link]

 Caution

Add a connection password to the XML at your own risk. The password is stored as unsecure plain text.
To do so, add the password attribute to the clientSettings element.

● Directory scenario
A simple directory with sub-directories with the .cfg/.xml files and paths given by parameters to a valid
[Link]. The headless restore configuration script execution needs the following data for
directory scenario:
○ Configuration files directory (containing .cfg/.xml files)
○ An XML file ([Link]) for the connection (DB)
○ A path to the connection driver jar file, for example, D:\jars\[Link]
The application needs a path to a parent directory (-rsData “dir/parent”) and it will scan all sub-
directories for the available configuration files (.cfg/.xml). The scenario requires also a path to the
connections via XML file (-conFile “path/[Link]”).

[Link] Executing Headless XML Configuration Restore

To execute the headless restore configuration script, call the [Link] or [Link] (without
additional console) in the Eclipse installation directory with the required arguments.

 Recommendation

Write a batch ( .bat) or command ( .cmd) file that calls the executable.

SAP Solution Sales Configuration


124 PUBLIC Solution Modeling Environment
[Link].1 Eclipse-Specific Arguments

The behavior of the export can be controlled by the following arguments:

Eclipse-Specific Arguments

Argument Name Argument Description

--[Link] Suppress errors and arguments must be set before vmargs


as it is one of the first arguments.

-application For the application to start. The Value (application ID) is sep­
[Link] arated from the argument by a single space.
[Link]

-noSplash Do not show the splash.

-console Show a console.

-consoleLog Log on to the console.

-vmargs Java VM arguments. Should be the last Eclipse argument as


all the arguments after this will be parsed as Java VM argu­
ments. For example, -vmargs -Xms128M -Xmx512M, -
XX:PermSize=128M -XX:MaxPermSize=256M, etc.

 Posting Instructions

For a complete list of the supported arguments, see the Eclipse documentation .

[Link].2 Restore Configuration Application-Specific


Arguments

The behavior of the export can be controlled by the following arguments:

Restore Configuration Application-Specific Arguments

Parameters Workspace Scenario Directory Scenario

-projectWorkspace Workspace project name N/A

-projectWorkspace
ssc_office_example

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 125
Parameters Workspace Scenario Directory Scenario

-rsData The path to the directory with the sub- The path to the directory with the sub-
directories containing all required con­ directories containing all the required
figuration files configuration files

-rsData “C:\parentDirectory” -rsData “C:\parentDirectory”

-conFile N/A Required path to the relevant connec­


tions.

-conFile “C:\path
\[Link]”

-conDriver N/A The path to the connection driver jar


file.

-conDriver “D:\jars
\[Link]”

-rsConsoleLog Print logs on console. Print logs on console.

- rsConsoleLog - rsConsoleLog

-conName N/A Connection name.

-conName “localCon”

-conPassword Connection password (optional unless Connection password (optional unless


specified in [Link] file). specified in [Link] file).

-conPassword “mypassword” -conPassword “mypassword”

 Note

“” are used for values containing spaces, for example, -rsdata “D: \Configuration Data”.

[Link].3 Example: Headless XML Configuration Restore

It is recommended to use a batch file, [Link] for the restore process and the application
returns an exit code once the restore is complete.

For more information about this, see echo %ERRORLEVEL% in example cmd.

Workspace mode

eclipse\eclipsec -vm "%JRE_HOME%\bin" --[Link] -application


[Link] -
noSplash -console -rsConsoleLog -projectWorkspace "ssc_office_example" -rsData
"C:\Users\Demo\PROJECTWORK\Enhancements\RestoreConfigData" -conName "localCon" -
conPassword "mypassword"

SAP Solution Sales Configuration


126 PUBLIC Solution Modeling Environment
Directory mode

@echo off
eclipse\eclipsec -vm "%JRE_HOME%\bin" --[Link] -application
[Link] -
noSplash -console -rsConsoleLog -conDriver "C:\Users\Demo\SOFTWARES
\[Link]" –conFile "C:\Users\Demo\PROJECTWORK\Enhancements\RestoreConfigData
\config\[Link]" –rsData "C:\Users\Demo\PROJECTWORK\Enhancements\
RestoreConfigData" REM -Xdebug -Xnoagent -[Link]=NONE -
Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 @echo EXIT CODE:
%ERRORLEVEL%

[Link].4 Exit Codes for Configuration Restore

Exit Code Description

0 All OK. Configuration files restored.

300 Invalid or insufficient arguments or parameters.

301 Given configuration files (-rsData) not found.

302 Given workspace project not found.

303 Knowledge base not found.

304 Connection not found or invalid.

305 Cannot restore configuration (internal problems; see log).

306 Cannot restore configuration (internal problems; see log).

307 Database driver not found (internal problems; see log).

3.10.4 Headless Upload External Variant Table

The headless upload external variant table feature is the part of solution modeling environment that allows
upload of external variant table to a target system through headless automated process.

There are two possible scenarios to provide the data for headless upload of external variant table:

● Workspace scenario
An Eclipse workspace with a project and its defined connections. The headless upload external variant
table needs the following data for workspace scenario:
○ Project workspace with projects
○ Valid defined connections
○ Data directory for external variant table downloaded from ECC/CRM system.

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 127
The workspace should contain all the relevant projects. You can setup an export connection from
Window Preferences SAP Solution Configuration Connections .

 Note

When you close the workspace, the connections are stored under:

<workspace_dir.metadata>\.plugins\[Link]
\[Link]

 Caution

Add a connection password to the XML at your own risk. The password is stored as unsecure plain text.
To do so, add the password attribute to the clientSettings element.

● Directory scenario
A simple directory containing the external variant table data files and their paths, given by parameters to a
valid [Link]. The headless external variant table script execution needs the following data for
directory scenario:
○ Data directory for external variant table downloaded from ECC/CRM system
○ An XML ([Link]) file for the connection (DB)
○ A path to the connection driver jar file, for example, D:\jars\[Link]

The application needs a path to a parent directory (-vtData “dir/parent”), the data downloaded from
ECC/CRM external variant table download utility. The scenario requires also a path to the connections via XML
file (-conFile “path/[Link]”).

[Link] Executing Headless Upload External Variant Table

To execute the headless upload external variant table script call [Link] or [Link] (without
additional console) in the Eclipse installation directory with the required arguments.

 Recommendation

Write a batch ( .bat) or command ( .cmd) file that calls the executable.

[Link].1 Eclipse-Specific Arguments

The behavior of the export can be controlled by the following arguments:

Eclipse-Specific Arguments

SAP Solution Sales Configuration


128 PUBLIC Solution Modeling Environment
Argument Name Argument Description

-[Link] Suppress errors argument must be set before vmargs; nor­


mally one of the first arguments.

-application The application to start. Value (application ID) is separated


[Link] by a space from the argument.
[Link]
cation

-noSplash Do not show the splash.

-console Show a console.

consoleLog Log on to the console.

-vmargs Java VM arguments. This must be the last Eclipse argument


as all the arguments after this will be parsed as Java VM ar­
guments. For example, -vmargs-Xms128M-Xmx512M, -
XX:PermSize=128, etc.

 Posting Instructions

For a full list of the supported arguments, see the Eclipse documentation .

[Link].2 Upload External Variant Table Application-Specific


Arguments

The behavior of the export can be controlled by the following arguments:

Upload External Variant Table Application-Specific Arguments

Parameter Workspace Scenario Directory Scenario

-projectWorkspace Workspace project name. Not applicable

-projectWorkspace ssc_office_example

-vtData The path to the directory with the sub- The path to the directory with the sub-
directories containing all required con­ directories containing all required exter­
figuration files. nal variant table files.

-vtData “C:\extVarDirectory” -vtData “C:\extVarDirectory”

-conFile Not applicable Required path to the relevant connec­


tions.

-conFile “C:\path\[Link]”

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 129
Parameter Workspace Scenario Directory Scenario

-conDriver Not applicable The path to the connection driver jar


file.

-conDriver “D:\jars\[Link]”

-vtConsoleLog Print logs on console. Print logs on console.

-vtConsoleLog -vtConsoleLog

-conName Not applicable Connection name.

-conName “localCon”

-conPassword Connection password (optional if speci­ Connection password (optional here if


fied in [Link] file). specified in [Link] file).

-conPassword “mypassword” -conPassword “mypassword”

 Note

“” are used for values containing spaces, for example, -vtdata “D: \External Variant Data”.

[Link].3 Example: Headless Upload External Variant Table

It is recommended to use a batch file, restore [Link] for the restore process and the application
returns an exit code once the restore is complete.

For more information about this, see echo %ERRORLEVEL% in example cmd.

Workspace mode

eclipse\eclipsec -vm "%JRE_HOME%\bin" --[Link] -application


[Link]
ableapplication -noSplash -console -vtConsoleLog -projectWorkspace
"ssc_office_example" -vtData
"C:\Users\Demo\PROJECTWORK\Enhancements\ExternalVariantTableData" -conName
"localCon" -conPassword "mypassword"

Directory mode

@echo off
eclipse\eclipsec -vm "%JRE_HOME%\bin" --[Link] -application
[Link]
ableapplication -noSplash -console -vtConsoleLog -conDriver "C:\Users\Demo
\SOFTWARES\[Link]" –conFile "C:\Users\Demo\PROJECTWORK\Enhancements
\ExtVarTabData\config\[Link]" –vtData "C:\Users\Demo\PROJECTWORK
\Enhancements\ ExtVarTabData" REM -Xdebug -Xnoagent -[Link]=NONE -
Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 @echo EXIT CODE:
%ERRORLEVEL%

SAP Solution Sales Configuration


130 PUBLIC Solution Modeling Environment
[Link].4 Exit Codes for External Variant Tables

Exit Codes for External Variant Tables

Exit Code Description

0 All OK. External table variant files restored.

300 Invalid or insufficient arguments or parameters.

301 Given data files (-vtData) not found.

302 Given workspace project not found.

303 Knowledge base not found.

304 Connection not found or invalid.

305 Cannot execute external table script (internal problems; see


log).

306 External variant tables uploaded with errors.

307 Database driver not found (internal problems; see log)

3.10.5 Headless Upload of Knowledge Bases

The process of headless upload of knowledge bases allows upload of .xml/.txt files pertaining to a certain
knowledge base into a target system through headless automated process.

There are two possible scenarios to provide the data for headless upload of knowledge bases:

● Workspace scenario
An Eclipse workspace with a project and its defined connections. The headless upload external variant
table needs the following data for workspace scenario:
○ Project workspace with projects
○ Valid defined connections
○ .xml/.txt files data directory for external variant table downloaded from ECC/CRM system.
The workspace should contain all the relevant projects. You can setup an export connection from
Window Preferences SAP Solution Configuration Connections .

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 131
 Note

When you close the workspace, the connections are stored under:

<workspace_dir.metadata>\.plugins\[Link]
\[Link]

 Caution

Add a connection password to the XML at your own risk. The password is stored as unsecure plain text.
To do so, add the password attribute to the clientSettings element.

● Directory scenario
A simple directory containing .xml/.txt files and their paths, given by parameters to a valid
[Link]. The headless upload of knowledge base script execution needs the following data for
directory scenario:
○ .xml/.txt files directory downloaded from ECC/CRM system
○ An XML ([Link]) file for the connection (DB)
○ A path to the connection driver jar file, for example, D:\jars\[Link]

The application needs a path to a parent directory (-kbData absolute path to the .xml/.txt files), the data
downloaded from ECC/CRM by download utility. The scenario also requires a path to the connections via XML
file (-conFile “path/[Link]”).

[Link] Executing Headless Upload

To execute the script for headless upload of knowledge bases, you must call the [Link] or
[Link] (without additional console) in your eclipse installation directory, with the required arguments.

 Recommendation

Write a batch ( .bat) or command ( .cmd) file that calls the executable.

[Link].1 Eclipse-Specific Arguments

The behavior of the export can be controlled by the following arguments:

Eclipse-Specific Arguments

SAP Solution Sales Configuration


132 PUBLIC Solution Modeling Environment
Argument Name Argument Description

--[Link] Suppress errors

Arguments must be set before vmargs (normally one of the


first arguments)

-application The application to run


[Link]
Value (application ID) is separated from the argument by a
[Link]
single space.
cation

-noSplash Do not show the splash screen

-console Show a console window

-consoleLog Log messages to the console

-vmargs Java VM arguments.

This must be the last Eclipse argument because all argu­


ments after this one will be parsed as Java VM arguments.
For example, -vmargs -Xms128M -Xmx512M , -
XX:PermSize=128M -XX:MaxPermSize=256M , etc.

 Posting Instructions

For a full list of the supported arguments, see the Eclipse documentation .

[Link].2 Headless Upload-Specific Arguments

 Note

Use quotation marks ("") for values that contain spaces such as -kbData “D: \KnowledgeBaseData”.

Parameter Workspace Scenario Directory Scenario

-projectWorkspace Workspace project name. Not applicable

-projectWorkspace ssc_office_example

-conFile Not applicable Path for connections to be used -con­


File "C:\path\[Link]"

-conDriver Not applicable Path to the connection driver jar file -


conDriver "D:\jars\[Link]"

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 133
Parameter Workspace Scenario Directory Scenario

-uploadConsoleLog Print logs on console Print logs on console.

-uploadConsoleLog

-conName Not applicable Connection name.

-conName “localCon”

-conPassword Connection password (optional if speci­ Connection password (optional here if


fied in [Link] file). specified in [Link] file).

-conPassword “mypassword” -conPassword “mypassword”

-kbData Path to the directory contain­ The argument mentions the path to the
ing .xml/.txt files directory containing .xml/.txt files of
the knowledge base

[Link].3 Example: Headless Knowledge Base Upload

 Recommendation

We recommend using a batch file ([Link]) for this process.

The application will return an exit code (see echo %ERRORLEVEL% in example cmd).

Workspace Mode

A batch or command script could appear as follows:

 Sample Code

eclipse\eclipsec -vm "%JRE_HOME%\bin" --[Link] -application


[Link] -
noSplash– console -consoleLog -
uploadConsoleLog -projectWorkspace "ssc_office_example" -kbData
"C:\Users\Administrator\xmlModels\TestModel " -conName "localCon" -
conPassword "mypassword"

echo

EXIT CODE: %ERRORLEVEL%

SAP Solution Sales Configuration


134 PUBLIC Solution Modeling Environment
Directory Mode

 Sample Code

@echo off

eclipse\eclipsec -vm "%JRE_HOME%\bin" --[Link] -application


[Link] -
noSplash -console -
uploadConsoleLog -conDriver "C:\Users\Demo\SOFTWARES\[Link]" –conFile

"C:\Users\Demo\PROJECTWORK\Enhancements\[Link]" –kbData
"C:\Users\Administrator\xmlModels\TestModel "

REM -Xdebug -Xnoagent -[Link]=NONE


-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005

@echo EXIT CODE: %ERRORLEVEL%

[Link].4 Exit Codes

Exit Codes for Uploading Knowledge Bases

Exit Code Description

0 OK. KB was exported.

301 Invalid or insufficient arguments/parameters.

302 No project found.

303 Connection not found or invalid.

304 Upload failure

305 Database driver not found.

3.10.6 Headless Dataloader Execution

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 135
[Link] Executing Headless Dataloader

To execute the script for headless dataloader, you must call the [Link] or [Link] (without
additional console) in your eclipse installation directory, with the required arguments.

 Recommendation

Write a batch ( .bat) or command ( .cmd) file that calls the executable.

[Link].1 Eclipse-Specific Arguments

Argument Name Argument Description

--[Link] Suppress errors

Arguments must be set before vmargs (normally one of the


first arguments)

-application The application to run


[Link]
Value (application ID) is separated from the argument by a
[Link]
single space.
cation

-noSplash Do not show the splash screen

-console Show a console window

-consoleLog Log messages to the console

-vmargs Java VM arguments.

This must be the last Eclipse argument because all argu­


ments after this one will be parsed as Java VM arguments.
For example, -vmargs -Xms128M -Xmx512M , -
XX:PermSize=128M -XX:MaxPermSize=256M , etc.

 Posting Instructions

For a full list of the supported arguments, see the Eclipse documentation .

SAP Solution Sales Configuration


136 PUBLIC Solution Modeling Environment
[Link].2 Dataloader Application-Specific Arguments

 Note

Use quotation marks ("") for values that contain spaces such as -conDriver "D:\Database Drivers
\mssql\[Link].

Argument Name Example Argument Description

-conFile -conFile "D:\DBdrivers


The required path to the dataloader set­
\[Link]"
tings file to use.

-conDriver -conDriver "D:\DBdrivers


The path to the connection driver jar
\Database_Drivers\mssql
file.
\[Link]"

-psConsoleLog -psConsoleLog
Print logs on console.

-conName -conName "con"


Display name of the dataloader connec­
tion setting to be used.

-conPassword -conPassword "mypassword"


Connection password for the destina­
tion database to be used for data down­
load.

-backendPassword -backendPassword
Password for the user specified for
"backendpassword"
source backend system in the data­
loader connection settings.

-createTables -createTables
Specify this argument if create table
needs to be run while running the data­
loader. There is no value required for
this argument.

-initialDownload -initialDownload
Specify this argument if initial down­
load needs to be run while running the
dataloader. No value required for this
argument.

-eccCfgExtractorFlag -eccCfgExtractorFlag “TRUE”


This argument is used to specify the
value for ECC cfg extractor flag from
SME. ([Link]­
loader.GET_KB_FROM_CFGEXTRAC­
TOR)

SAP Solution Sales Configuration


Solution Modeling Environment PUBLIC 137
[Link].3 Example: Headless Dataloader Execution

 Recommendation

We recommend using a batch ([Link]) file.

The application will return an exit code (refer to echo %ERRORLEVEL% in example command.

A batch or command script could appear as follows:

@echo off
eclipse\eclipsec -vm "%JRE_HOME%\bin" --[Link] -application
[Link] -
noSplash
-console
-psConsoleLog -conDriver "D:\DBdrivers\Database_Drivers\mssql\[Link]"
-conName "con" -conPassword "password" -backendPassword "bkpassword"
-conFile "D:\DBdrivers\[Link]"-createTables -initialDownloadREM -Xdebug -
Xnoagent -[Link]=NONE-
Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005@echo EXIT CODE:
%ERRORLEVEL%

[Link].4 Exit Codes for Dataloader Execution

The exit codes for headless dataloader execution are given in the table below:

Exit Code Description

0 All OK; Dataloader executed successfully.

303 Dataloader settings file not found. Please specify conFile.

304 Issues while loading dataloader settings.

307 Database driver not found.

308 backendPassword not specified.

309 conPassword not specified

SAP Solution Sales Configuration


138 PUBLIC Solution Modeling Environment
4 Solution Configuration Environment

Use

The solution configuration environment is part of the SAP Solution Sales Configuration application. It is used to
define the configuration of a solution in a business document, such as a sales quotation or a sales order, and is
integrated with sales order processing transactions in the following systems:

● SAP Customer Relationship Management (SAP CRM)


● SAP Enterprise Resource Planning (SAP ERP)
● Hybris Commerce Suite

Runtime Component

At run time, SAP Solution Sales Configuration comprises of the following components:

● A configuration UI: Launched from a sales application within the context of a sales document. It interacts
with the engine via a command layer with well-documented APIs.
● A command layer: Exposes the functionality of the engine and content of a configuration session to the
outside world.
● KBO - knowledge base orchestration layer: Enables multiple discrete knowledge bases to be accessed
dynamically as required during a configuration session.
● SPE - Sales Pricing Engine: Accesses the pricing master data to calculate pricing.
● SCE - Sales Configuration Engine: Accesses knowledge base run time versions in the back-end database (if
not already cached in memory). These can be solution knowledge bases generated from the solution
modeling environment as well as product knowledge bases from CRM and ECC.

Components of the SCE:

Component Description

PMS - pattern matching Responsible for identifying the objects in the configuration
that are "in scope", as defined by the objects/condition sec­
tions of constraints and rules. This process is called pattern
matching.

In addition, this component is responsible for forward chain­


ing. That is, "firing" the constraints whose patterns are
matched and altering the content of the configuration ses­
sion, adding instances, or setting characteristic values.

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 139
Component Description

TMS - truth maintenance Tracks the facts asserted into the configuration session,
along with their justifications.

In addition, this component is responsible for retraction.


That is, if a particular fact A is the justification for another
fact B, and A is no longer true (for example, the user
changes an entered value), the justification must be re­
moved/retracted. Facts that are no longer justified must be
removed from the configuration session. This may mean
changing a characteristic value setting or deleting an in­
stance.

DDB - dynamic database This is the content of the configuration session.

The PMS and TMS invoke methods on the ddb_inst class


to request action in the configuration session, to set a value,
or to create or remove an instance.

 Note

An event is logged for each action taken by these three components. The tracing and profiling capabilities
of the engine support recording of these events, which are used in the solution modeling environment and,
if enabled, in the production run time engine.

Integration

The solution configuration environment is built and packaged as an Enterprise Java Beans (EJB) component
based on Java 2 Enterprise Edition (J2EE) standards. It is primarily intended to be deployed on an SAP J2EE
NetWeaver Server.

The solution configuration environment includes the following components:

● Database (DB) Layer


● Sales Configuration Engine (SCE)
● Sales Pricing Engine (SPE)
● Configuration Session: This component encapsulates all of the configuration engine-related functionality
and exposes the configuration engine commands to calling applications.
● Pricing Session: This component encapsulates all of the pricing-related functionality and exposes the
pricing engine commands to calling applications.
● EJB Layer
● JavaServer Pages (JSP) User Interface (UI)

SAP Solution Sales Configuration


140 PUBLIC Solution Configuration Environment
The following figure illustrates the architecture of the solution configuration environment when it is integrated
with an SAP ERP system:

Architecture for Integrating Solution Configuration Environment with SAP ERP

The solution configuration environment for SAP Commerce is built and packaged as a Java Archive (.jar), which
is added to the SAP Commerce class path. The Hybris service layer directly communicates with the Solution
Configuration Engine (ConfigSession) "in-process", giving the best performance using Java native "call-by-
reference".

The solution configuration environment integrates with the following business processes:

● Configure-to-Order in SAP CRM


● Configure-to-Order in Hybris
● Configure-to-Order in SAP ERP

When you choose to edit a configurable product in a sales document, the system opens the JSP UI. When you
accept your configuration and close the JSP UI, you are returned to the SAP CRM or SAP ERP system, and the
configuration result is reflected in the sales document, with any sales-relevant components listed as sub-line
items. A saved configuration can be reopened, changed, and saved in the sales document, as necessary.

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 141
Features

● Advanced Mode Configuration


SAP systems provide two ways of modeling solutions: compatible mode and advanced mode. Compatible
mode is sufficient to model simple product configurations; however, advanced mode is required to model
more complex solution configurations.
SAP Internet Pricing and Configurator (IPC) is a component that is integrated into several standard SAP
systems, including SAP CRM and SAP ECC. While the IPC can generate an advanced mode configuration,
the configuration result is not integrated with the processes outside the IPC. Therefore, the advanced
mode configuration result generated by the IPC cannot be used in the downstream standard business
processes in the SAP CRM or SAP ERP systems. SAP Solution Sales Configuration overcomes this
limitation by providing advanced mode configuration capabilities that are fully integrated with the standard
configure-to-order business processes in SAP CRM and SAP ERP. For more information, see Advanced
Mode Configuration [page 160].
● Starting a Configuration from a Component
In addition to the top-down approach, where you add a solution to a sales document, and then configure
the component parts of the solution, in SAP CRM, you can also begin a solution configuration by adding a
component of the solution to a sales document. When you choose to configure the component, the system
recognizes that it is part of a solution (based on your Customizing settings), and initializes the
configuration using the knowledge base for the solution.
● Complex Relationships Between Components
A bill of material (BOM) can be used to define simple relationships where one component comprises
several subcomponents. SAP Solution Sales Configuration allows you to define more complex
relationships between the components of a solution, for example, one-to-one and one-to-many
relationships. These relationships are defined in the solution modeling environment as abstract data types
(ADTs). Moreover, simple relationships between components can also be defined using ADTs. Therefore,
SAP Solution Sales Configuration eliminates the need to maintain BOMs. The configuration engine
interprets the ADTs and reflects them in the sales document. For more information, see One-to-Many
Relationships Between Components [page 145].
● Reference Characteristics
The system allows you to define reference characteristics as part of the solution model. The value of a
reference characteristic can be used in the following ways:
○ Passed to the configuration as a context
○ Passed from the configuration to the sales document in the target system
● Hard and Soft Ties in Follow-Up Documents
When you create follow-up documents for a quotation in SAP CRM, you can split the components of the
solution into separate documents. The system allows you to control which components can be split into
separate sales documents and which must remain together. For more information, see Hard and Soft Ties
Between Components [page 146].
● Interactive Pricing
During the solution configuration process, the pricing engine recalculates the total price of the solution
after each change to the configuration. The total price of the current configuration and the delta price for
each characteristic value are displayed in the user interface. Interactive pricing is an option that can be
enabled or disabled in the configuration user interface. For more information, see Interactive Pricing and
Delta Pricing [page 160].
● Enhanced Solution Configuration User Interface (JSP UI)
The JSP UI is designed as an accordion with collapsible layers. It features a Configuration layer that
contains a layer for each component in the solution.

SAP Solution Sales Configuration


142 PUBLIC Solution Configuration Environment
The following icons are used to indicate the status of each component and characteristic:
○ A green square indicates that the configuration is complete.
○ A yellow triangle indicates that the configuration is incomplete.
○ A gray diamond indicates that the field cannot be edited.
You can enable or disable the display of these icons using the Settings option in the Configuration layer.
For more information about the functions in the JSP UI, see Creating Solution Configurations [page 178].

Customizing the Solution Configuration Engine

As a system administrator, you can also customize the behavior of the Solution Configuration Engine, by
modifying the engine parameters. For more information about working with engine parameters, please refer to
SAP Note 2291607 (Engine Parameters for Hybris SSC, SAP Solution Sales Configuration, and Solution
Modeling Environment).

Constraints

The following features are available in SAP CRM, but not in SAP ERP or the Hybris Commerce Suite:

● Copying a solution configuration from one sales document to another


● Splitting the line items in a solution configuration into separate follow-up documents
● Starting a solution configuration from a component
● Copying a solution from one line item to another line item in the same sales document

 Recommendation

If you want to use configuration mode B (Copy Configuration from Source Item) in Customizing for
Copy Control, do not set the Reexplode Structure/Free Goods flag. If this flag is set, all the solution
configuration data may not be copied.

With the Reexplode Structure/Free Goods flag not set, if you copy a line item within the same sales
document, you must reopen the copied item's configuration and accept it to obtain the sub-items.

Related Information

Configure-To-Order in SAP CRM [page 144]


Configure-To-Order in Hybris [page 157]
Configure-To-Order in SAP ERP [page 150]

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 143
4.1 Configure-To-Order in SAP CRM

Use

You use this process to add a solution, or a component of a solution to a sales document, and then configure it
in the standard SAP Customer Relationship Management (SAP CRM) WebClient user interface.

 Note

If you have installed SAP Solution Sales Configuration, the system displays the SAP Solution Sales
Configuration JavaServer Pages user interface (JSP UI) for the configuration of both compatible mode and
advanced mode products.

Prerequisites

● You have entered product master data and configuration master data.
● You have maintained the solution object to be used for starting the configuration of a component in
Customizing for Customer Relationship Management under Basic Functions Solution Sales
Configuration Maintain Solution Objects for Products .

Process

1. You create a sales document such as a package quotation, in the standard SAP CRM WebClient UI.
2. You add a solution, or a component of a solution, to the sales document.
The system displays the solution or component, as a line item in the sales document.
3. You choose the Edit icon next to the line item for the solution or component.
The system displays the configuration user interface for the solution and all of its component parts.

 Note

If you have added a component of a solution to the sales document, the system initializes the
configuration using the knowledge base for the solution. The configuration user interface displays the
solution at the top level and the entered component (along with other components, if any) underneath.

Note that the knowledge base for the solution must be modeled with the component (material) as one
of the non-part instances.

4. You configure the solution.


5. You accept the configuration.
The system closes the configuration user interface and displays the sales document. Each sales-relevant
component of the solution is displayed as a line item.

SAP Solution Sales Configuration


144 PUBLIC Solution Configuration Environment
 Note

You can also copy a solution configuration to a new sales document using the standard SAP CRM Online
copy function.

You cannot copy a solution from one line item to another line item in a sales document.

More Information

● For information about the relationships between components, see One-to-Many Relationships Between
Components [page 145] and Hard and Soft Ties Between Components [page 146].
● For information about splitting line items when creating follow-up documents, see Splitting Line Items in
Follow-Up Document Creation [page 147].
● For information about the functions in the configuration user interface, see Creating Solution
Configurations [page 178].

4.1.1 One-to-Many Relationships Between Components

Use

Solutions can include a mixture of interrelated components such as hardware components, software
components, and services. There can be different kinds of relationships between these components, for
example, has part, is part of, is served by, and so on. The system uses a special type of characteristic called an
abstract data type (ADT) to model such relationships between components. ADT characteristics are defined in
the solution modeling environment.

ADTs can be used to model one-to-many relationships. For example, a single service product can be associated
with multiple hardware and software components.

Prerequisites

● You have modeled ADT characteristics for the solution in the solution modeling environment.
● You have maintained the names of the ADT characteristics to be used for different relationship types in
Customizing for Customer Relationship Management under Basic Functions Solution Sales
Configuration Maintain Item Relationship Types .

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 145
More Information

Although you can model your own custom relationship types and the associated ADT characteristics, SAP
Solution Sales Configuration provides the following two predefined relationship types:

● SALES_HARD (hard tie)


● SALES_SOFT (soft tie)

For more information about these predefined relationship types, see Hard and Soft Ties Between Components
[page 146].

4.1.2 Hard and Soft Ties Between Components

Use

SAP Solution Sales Configuration provides the following predefined sales abstract data types (ADTs) to
represent parent-child relationships between sales-relevant components:

● SALES_HARD
Denotes a hard tie between two components
● SALES_SOFT
Denotes a soft tie between two components

When you create follow-up documents for a solution quotation, you may want to split the components of the
solution into separate follow-up documents. For example, you could have a package quotation for a solution
that consists of a few hardware items and a few service items. You could create a sales order for the hardware
items and a service contract for the service items.

However, certain components of the solution may be so closely related that they must be processed together.
You control which components must be processed together by using the correct tie type to establish a
relationship between those components. Components that are related by a hard tie must be processed as a
group. They must remain together in the initial sales document and cannot be split into separate follow-up
documents. Components with soft ties can be split into separate follow-up documents.

Prerequisites

● You have modeled sales ADT characteristics for the solution in the solution modeling environment.
● You have maintained the names of the hard and soft tie sales ADTs in Customizing for Customer
Relationship Management under Basic Functions Solution Sales Configuration Maintain Item
Relationship Types .

More Information

For more information, see Splitting Line Items in Follow-Up Document Creation [page 147].

SAP Solution Sales Configuration


146 PUBLIC Solution Configuration Environment
4.1.3 Splitting Line Items in Follow-Up Document Creation

Use

You use this procedure to split line items in a package quotation into separate follow-up documents.

Prerequisites

● You have modeled sales abstract data type (ADT) characteristics for the solution in the solution modeling
environment.
● You have maintained the names of the hard and soft-tying sales ADTs in Customizing for Customer
Relationship Management under Basic Functions Solution Sales Configuration Maintain Item
Relationship Types .
● You have maintained the copying control settings in Customizing for Customer Relationship Management
under Transactions Basic Settings Copying Control for Business Transactions .
● You have created a package quotation for a solution.

Procedure

1. Open the package quotation.


2. Choose Create Follow-Up.
The system displays a list of follow-up transactions.
3. Select the transaction type.
The system displays a list of the line items that have either no ties or soft ties with their parents. Items that
have hard ties with their parents are not shown in the list. The items are colored as follows:
○ Green denotes that the item can be moved to the follow-up document.
○ Red denotes that the item cannot be moved to the follow-up document.
4. Select the items to transfer to the follow-up document.
You can freely select any items that have soft ties or no ties to other components. If you select (or deselect)
an item that has a hard tie to another component, the system automatically selects (or deselects) its hard-
tied components.
If all of the components in the solution are selected, the solution is referred to as a 'full solution copy'.
If only some of the components are selected, the solution is a 'trimmed (or partial) solution'.
You can also deselect the highest level line item (solution item) and still select its components. This
produces follow-up documents without the solution line item and without the solution level configuration.
Instead, each component item exists as a discrete high-level line item with its own discrete configuration
result (assuming it is a configurable item). This action is referred to as 'stripping the solution'.

 Note

A special modeling technique is required to enable trimmed solutions. For more information, see SAP
Note 2086153 (SSC Modeling for Trimmed Solutions).

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 147
5. Choose Choose.
The system displays the follow-up document.

You can subsequently reconfigure the follow-up documents on an individual basis as you require.

More Information

● For more information, see Hard and Soft Ties Between Components

●  Note

While creating a follow-up document with configurable sub items, some characteristics' values may not
copied be to the configuration of these items. If you observe this issue, please refer to SAP Note
2314099 (CRM: Utility to switch characteristics author during split).

● With SAP Solution Sales Configuration 3.0, splitting is now available for provider orders and provider
contracts, in addition to sales and service transactions.

Related Information

Hard and Soft Ties Between Components [page 146]

4.1.4 Replicating Data from SAP CRM to SAP ERP

Use

You can configure a solution on the CRM user interface and replicate the data to the SAP ERP central
component, where you can process it further. Replicating the data to SAP ERP means that you can take
advantage of the functions and features offered by SAP ERP, such as creating a production order.

Prerequisites

● You have established an RFC connection between SAP CRM and SAP ERP.
● You have exported the solution models (knowledge bases) manually or via "headless export", from the
solution modeling environment to SAP CRM and SAP ERP.
You can find more information about this on the SAP Help Portal and navigate to the SAP Solution Sales
Configuration Version 3.0 Installation Guide .
● You have set up the necessary data structures and bills of material in SAP Solution Sales Configuration and
SAP ERP.

SAP Solution Sales Configuration


148 PUBLIC Solution Configuration Environment
Procedure

SAP Solution Sales Configuration enables you to create different types of documents in SAP CRM, such as
sales quotations, service quotations, and contracts. The follow-up documents that are created in SAP CRM and
then replicated to SAP ERP differ depending on the type of document originally created. For example, you can
create a package quotation and then generate a service order that is replicated to SAP ERP. Alternatively, you
can choose to create a sales order that is replicated to SAP ERP. In the steps below, we use the example of a
sales order that is used to generate a production order in SAP ERP.

Create Quotation

1. In the SAP CRM Web client UI, create a package quotation (document type SRVP) and enter the business
partners and accounts.
2. In the Items assignment block, enter the name of the product that you want to configure.
3. Choose the edit icon in the Actions column.
The item details screen appears.
4. In the Configuration assignment block, specify the configuration elements that you require.
Mandatory fields are indicated by a yellow triangle.
5. Choose the Back pushbutton to return to the quotation screen and then save.
The system generates a document number for the quotation.

Create Sales Order

1. On the Package Quotation screen, choose the Create Follow-Up button and select the “sales process”
document type.
2. In the pop up that appears, select the product that you configured in “Create Quotation” above.
3. Enter any missing information and save the sales order.
The system generates a document number for the sales order and automatically replicates the sales order
to SAP ERP.

Display Sales Order

You can display the sales order in SAP ERP to check that the data has been replicated correctly. To do so,
proceed as follows:

1. In SAP ERP, call transaction VA03 ( Display Sales Order).


2. Enter the sales order number created in “Create Sales Order” above and press ENTER .
3. To check the replicated item data, select the material and choose the Item details: Configuration
pushbutton.

 Note

If any of the replicated data is incorrect, you can change it by calling transaction VA02 ( Change Sales
Order).

Create Production Order

1. In SAP ERP, call transaction CO08 ( Create Production Order).


The sales order, item number, and production plant are entered by default. If this is not the case, enter
them manually.
2. Enter the material that you configured earlier and press ENTER .
3. Choose the Component Overview pushbutton ( F6 ) and generate a routing operation.
The system shows an exploded view of the configurable material.

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 149
4. Save your data to create the production order.
5. Optional: Check your production order in the stock/requirements list by calling transaction MD04 and
entering the material. Your production order is listed in the MRP element data column.

4.2 Configure-To-Order in SAP ERP

Use

You use this process to add a solution to a sales document and configure it in the SAP Enterprise Resource
Planning (SAP ERP) system.

 Note

SAP ERP has an integrated configuration engine called the Variant Configurator, which supports only
compatible-mode configurations, however. If you install SAP Solution Sales Configuration, the SAP ERP
system opens the SAP Solution Sales Configuration JavaServer Pages (JSP) user interface (UI) instead of
the standard Variant Configurator user interface when you choose to configure a product (a solution)
during the sales ordering process.

An alternative to the Variant Configurator for compatible-mode configurations is the use of the IPC.

A Customizing is available to select the VC or SSC configurator, based on transactions. You may customize
entries in the table /SLCE/DEL_TRAN, to change the configurator if required. For more information about
this, refer to SAP notes 2701187 (Configuration is not displayed for planned order and 2705646
(Configuration is not displayed for planned order - 2).

Prerequisites

● You have entered product master data and configuration master data
● You have marked the solution product as 'to-be-configured' with the IPC in the PME-VC (Product Modeling
Environment-VC)

Process

1. You create a sales document, such as a quotation.


2. You add a solution to the sales document.
The system displays the solution as a line item in the sales document.
3. You choose to configure the solution.
The system displays the configuration user interface for the solution and all of its component parts.
4. You configure the solution.
5. You accept the configuration.

SAP Solution Sales Configuration


150 PUBLIC Solution Configuration Environment
The system closes the configuration user interface and displays the sales document. Each sales-relevant
component of the solution is displayed as a line item.

More Information

For more information about the functions in the configuration user interface, see Creating Solution
Configurations [page 178].

 Note

In SAP ERP, it is not possible to copy a solution configuration from one sales document to another or to
split the line items for a solution into separate follow-up documents. It is also not possible to copy a
solution from one line item to another line item in the same sales document.

4.2.1 IDOC Inbound Interface for Sales Order Creation

The business scenario for enhancement of ERP IDOC inbound interface for sales order creation has the
following steps:

1. You send IDOCs from a source to a target system where the source system may be an SAP- or third-party
system with SSC add-on installed and the target system is an SAP ERP system with the SSC add-on
installed.
2. You use ORDERS IDOC inbound interface in the target ERP system to create sales documents with the
configured items.
3. You use basic IDOC type ORDERS05 and the function module for IDOC_INPUT_ORDERS standard inbound
for IDOC processing.

IDOC Processing

An ERP solution configuration created by SSC operates in the following two modes at the same time:

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 151
● The Advanced Mode model that contains the complete solution configuration, for example, including ADT
characteristics
● The Classic Mode model, also known as the Passive Receiving Structure (PRS), that contains only those
parts of the configuration that are relevant for low-level production processes in SAP ERP. The PRS is
returned and stored by SSC in the CBase format.
The results of the advanced mode configuration are returned and stored by SSC in the rich-config XML
format.

Basic IDOC type ORDERS05 provides a set of segments to transfer configuration results, such as, E1CUCFG,
E1CUINS, etc. These segments must be used to transfer the PRS. As of today, the rich-config XML cannot be
transferred by a standard IDOC type or BAPI.

If you create sales orders by IDOCs that contain only the PRS configuration results but not the rich-config XML,
then the users cannot see the full advanced mode configuration when they try to open the configuration
manually in that sales order.

To solve this problem, SAP Notes 1996874 (Orders IDOC Inbound for SSC - config XML extension) and
2003665 (Orders IDOC Inbound for SSC - config XML extension (II)) enhance IDOC inbound processing in
the following way:

● Enhancement of inbound function module IDOC_INPUT_ORDERS:


○ New user-exit that allows customers to read rich-config XML from own IDOC segment(s) or fetch the
XML from an external source, for example, by an own web service
○ Functionality to export the retrieved XML(s) to ABAP memory
● Enhancement of sales document creation process:
○ If an XML is found in ABAP memory, it will be imported from memory
○ The XML will be assigned to the corresponding sales item

SAP Solution Sales Configuration


152 PUBLIC Solution Configuration Environment
Before Implementation of Solution

After implementation of solution (Read: SAP Note 1996874 (Orders IDOC Inbound for SSC - config XML
extension)).

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 153
After Implementation of Solution

You can use this process to create a sales document with items configured by IDOC. You will be able to view the
advanced mode model by opening the configuration in SSC UI.

For more information about creating a sales order, refer to Enhancement of ERP IDOC Inbound Interface for
Sales Order Creation.

Related Information

Enhancement of ERP IDOC Inbound Interface for Sales Order Creation [page 154]

[Link] Enhancement of ERP IDOC Inbound Interface for


Sales Order Creation

 Note

You need to use the enhancements provided in SAP Notes 1996874 (Orders IDOC Inbound for SSC -
config XML extension) and 2003665 (Orders IDOC Inbound for SSC - config XML extension (II)).

SAP Solution Sales Configuration


154 PUBLIC Solution Configuration Environment
Prerequisites

The following prerequisites should be met for creation of a sales order:

● FBS Solution Sales Configurator (SSC) add-on for SAP ERP (SLCE) has been installed with the correct
version and latest support package.
● SAP Note 2003665 (Orders IDOC Inbound for SSC - config XML extension (II)) has been implemented,
including pre- and post-installation steps.
● The following notes need to be implemented as well:
○ SAP Note 1991156 (IDoc order creation: Sub-item without configuration tie)
○ SAP Note 1996874 (Order IDOC Inbound for SSC - config XML extension)
○ SAP Note 2006212 (Additional enhancement point in function group V45CU)
○ SAP Note 1923474 (Items on the Sales Document are deleted and recreated.)
○ SAP Note 1880466 (ECC:Create With Reference results in Exception on Config UI)
● If you have implemented and activated BAdI /SLCE/CONFIGURE_BACKGROUND, apply SAP Note 2455331
(ECC:Segregate menthod IS_ITEM_PROMOTION_ACTIVE from BAdi /SLCE/
CONFIGURE_BACKGROUND) as well.

Assumptions

The following assumptions are considered during the process of enhancement:

● You have already customized ORDERS IDOC inbound interface in the target ERP system and are able to
create sales documents by basic IDOC type ORDERS05.
● The sales documents are already created with the correct PRS configuration and only the rich-config XML
is missing

Out of Scope

The out of scope processes and functions are especially but not limited to the following:

● Transfer and storage of custom relations in table /SLCE/IRT


● IDOC outbound interface
● IDOC interface for order change
● Other IDOC interfaces or BAPIs

Related Information

IDOC Inbound Interface for Sales Order Creation [page 151]

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 155
4.2.2 Light Engineer-to-Order

Use

Light engineer-to-order ( “light ETO”) enables you to split a complex configuration between the sales level and
the engineering level, making the configuration process clearer. The processor of the production order BOM
can also change the configuration on an individual basis in cases where a required change is too specific to be
included in the configuration rules.

Process

1. The sales representative creates a sales order that contains a configurable material, either directly in SAP
ERP (transaction VA01) or by replicating it from SAP CRM (see Replicating Data from SAP CRM to SAP
ERP [page 148]).
2. The sales representative starts the sales configurator by choosing the Item details: Configuration
pushbutton.
3. The sales configurator explodes the sales order BOM components.
4. The sales representative configures the components in the sales order BOM. The component may already
be partly configured as the result of rules that have been defined in the system (see Defining Solution
Dependencies [page 46]).

 Note

The component configured here is also the header of the production order BOM and is, therefore,
visible in both the solution sales configurator and the variant configurator.

5. The sales representative accepts the configuration to transfer the result to the production order. The sales
order is then saved and the sales order number communicated to the production engineer.
6. The production engineer opens the order BOM, for example, in transaction CU51 by entering the order
number and the item number that he or she wants to configure.

 Note

All standard engineering-to-order processes can be used (for example, transactions CSKB, CS6x, and
CU51).

The variant configurator opens and displays the header level of the engineering structure.
7. The production engineer navigates to the subitems and configures the relevant data.
8. The production engineer clicks the configuration tree structure to explode the BOM again. If there are any
dependencies between the data (for example, the engineer has specified a component but not the
component type), the system requests the missing data.
9. The production engineer saves the data.

SAP Solution Sales Configuration


156 PUBLIC Solution Configuration Environment
Example

You have a material ( MY_SYSTEM) that has been configured with the components RACK, SUBRACK, and
DEVICE. The device slots into the subrack, which in turn slots into the rack.

The sales representative creates a sales order for the material MY_SYSTEM and starts the sales configurator.
After the sales representative has specified the general data, the system displays three more dropdown areas -
one for RACK, one for SUBRACK, and one for DEVICE (whereby SUBRACK and DEVICE are classes only). The
sales representative configures the data for RACK and saves the order.

The production engineer opens the order BOM with the item number that is to be configured (in this example,
item 20). The engineer navigates to SUBRACK in the configuration tree structure and enters the required data.
He or she then explodes the BOM again and repeats the process to configure the required data for DEVICE.

[Link] Changing Bills of Material

Use

In certain cases, a production engineer may want to change the data in a bill of material for a specific
production order. The required change is too specific to be included in the configuration rules, and so the
engineer must change the data manually.

Procedure

1. Display the order BOM in transaction CU51 and open the configuration result by choosing the Result
pushbutton ( CTRL + F9 ).
2. Select the checkbox for the component that you want to change and choose the Item in Full pushbutton
( SHIFT + F4 ).
3. Change the required data, return to the configuration result, and save.

 Note

You can also add further items to the BOM by choosing the Insert pushbutton ( SHIFT + F1 ). Examples of
items that you can add include documents, texts, and compatible units.

4.3 Configure-To-Order in Hybris

Use

You use this process to configure a solution in Hybris and then add it to your shopping cart.

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 157
Prerequisites

● You have created product master data and configuration master data.
● You have created the solution product in your Hybris catalog.
● You have downloaded the master data from the SAP back-end system to the Hybris database using the
Data Loader.
For more information on using the Data Loader in Hybris, see the Hybris help portal and Integrations and
Data Management SAP Integrations SAP Product Configuration (On-Premise Edition) Installing
Product Configuration Post Installation Steps Configuring and Running the Data Loader Loading
Configuration Master Data through Data Loader .

Process

1. You search for the solution product you require in the catalog.
2. You choose to configure the solution.
The system displays the configuration user interface.
3. You configure the solution.
4. You add the solution to your shopping cart.
The system closes the configuration user interface and displays your shopping cart.
5. You start the checkout process.

More Information

For more information about the functions in the configuration user interface, see Creating Solution
Configurations [page 178].

4.3.1 Adding Related Products to the Solution

Context

SAP Solution Sales Configuration enables you to manually add related products to your solution.

SAP Solution Sales Configuration


158 PUBLIC Solution Configuration Environment
Procedure

1. Open the Find Related Products dialog box.

The system displays a list of related products. The default implementation of the search filter for “related
products” uses the potential “non-part instances”of the solution model. You can enhance this with your
own logic.
2. Select the product that you want to add to the solution.

The system reports that the product has been added.


3. Continue to add further products or return to the solution.

Results

The system shows the added product in the section Selected Products Related to This Solution.

4.4 Component Promotion

Use

Component promotion (or “order stripping”) enables you to use the sales configurator to select any number of
components, which you can then save to a sales order without the organizational structure (that is, the top
node in the product or solution hierarchy).

For example, your company produces assembly lines and you want to configure the entire assembly line.
However, you do not manufacture the entire assembly line in your factory. Instead, you manufacture the
machines that are sent to your customer, and the assembly line is then put together by the customer on site. In
this case, you want to include the components of the assembly line in your sales order but not the assembly
line itself.

Activities

The configuration modeler activates component promotion in the model by adding the reserved Promote
Subitems? characteristic ( SSC_PROMOTE_SUBITEMS) to the Configuration Root class and setting it to invisible
with an assigned value of Yes.

If a user selects the value of this cstic as 'Y' during configuration, the root materials will be stripped and all
dependent sub-items will be promoted as root items.

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 159
 Note

Component promotion is inactive by default from SAP Solution Sales Configuration Version 2.0 Support
Package 6 onwards. To enable it, follow this procedure:

If the item promotion is required, a new implementation can be created for the BAdI /SLCE/
ITEM_PROMOTION_SWITCH and the logic provided with template implementation /SLCE/
EHI_SWITCH_ITEM_PROM can be used to switch on the item promotion.

4.5 Advanced Mode Configuration

Use

SAP systems provide two modes of configuration: compatible mode and advanced mode. Compatible mode is
suitable for simple product configurations and uses a super bill of material (super BOM). Advanced mode
provides the additional flexibility required to configure complex solutions. It uses a dynamic BOM and abstract
data types (ADTs).

Features

Configuring Complex Relationships

Advanced mode uses ADTs to define relationships outside those defined in the BOM. This means that more
complex relationships can be defined, including one-to-one and one-to-many relationships. For example, a
solution configuration could have a service item that relates to multiple hardware items.

You can display the ADTs by choosing Show ADT Nodes from the context menu and determine how each ADT is
used.

Instantiating Multiple Subcomponents

Advanced mode uses a dynamic BOM, instead of the traditional super BOM used in compatible mode
configurations. A dynamic BOM allows the instantiation of multiple subcomponents at the same BOM position.

4.6 Interactive Pricing and Delta Pricing

Use

During the solution configuration process, the system calculates and displays the price of the solution after
each change in the configuration, for example, when the value of a characteristic is changed, when an instance
is deleted, and when an instance is added. This is known as interactive pricing.

SAP Solution Sales Configuration


160 PUBLIC Solution Configuration Environment
To inform the user about the impact of a characteristic selection on the total price, the system also displays the
surcharge price or the price reduction next to each characteristic value in the configuration user interface. This
is known as delta pricing.

Integration

The solution configuration process uses configuration and pricing data from the source system (SAP CRM or
SAP ERP). To access the data, therefore, the system must be connected to the relevant database. This
connection is implemented as a static destination setting between the J2EE environment, where the
configuration engine is deployed, and the source system (SAP CRM or SAP ECC).

To optimize performance, pricing and configuration data is cached at Java stack level.

Prerequisites

● You have maintained prices (list prices) for the required products.
● You have maintained one-to-one variant conditions in the solution configuration model to reflect the
surcharge or the price reduction for each characteristic value.

 Recommendation

To optimize system performance, SAP recommends that you maintain a pricing procedure that is
dedicated to interactive pricing purposes. This pricing procedure should hold only the necessary condition
types and condition tables relevant for interactive pricing.

Activities

Interactive Pricing

To calculate and display interactive prices, the system performs the following steps:

1. The order mapper interprets the solution configuration and converts it into a sales product structure that
can be used by the sales pricing engine (SPE).
The sales product structure is represented in the configuration result by the following types of instance
relationship:
○ Sales abstract data type (ADT) characteristics (see Characteristic [page 24])
○ Compatible mode sales bill of material (BOM) explosions of the super BOM
2. The system passes the sales product structure to the SPE.
3. The system triggers the pricing determination process.
The SPE calculates the total price of the solution, which is a summation of all the instance (product) list
prices and all the variant conditions attached to the selected characteristic values.
4. The system passes the result of the pricing determination process to the configuration user interface and
updates the display.

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 161
 Caution

The pricing procedure used for interactive pricing should not propagate the prices of subitems to the root
item price.

Delta Pricing

To calculate and display delta prices, the system performs the following steps:

1. The surcharge or reduction price for each pricing-relevant characteristic value is retrieved and displayed
next to each characteristic value in the user interface.
2. After each change to the configuration, the surcharge or reduction price is recalculated based on the user's
last selection.
It is assumed that a one-to-one characteristic value/variant condition assignment is used. Therefore, the
new delta prices only need to be calculated for the values of the characteristic that was changed last.
The following formula is used to calculate the delta price:
characteristic value price = variant condition value price - selected characteristic value price
If the value is positive, the delta price is a surcharge. If the value is negative, the delta price is a reduction.

More Information

 Note

You can enable and disable interactive pricing and delta pricing using a checkbox in the configuration user
interface.

For more information about using the configuration user interface, see Creating Solution Configurations [page
178].

4.6.1 Pricing Formula and User Exits

Pricing is a highly customizable and configurable engine. However, in some cases, the regular features and
functionalities provided by the pricing engine are not sufficient. In such cases, it is possible to meet the special
business requirements by using Pricing Formulas and User Exits. These are custom functions that allow
customization of the default behavior of existing pricing conditions.

For more information about this, refer to the SAP Help Portal and navigate to Basic Functions and Master
Data in SD Processing (SD-BF) Basic Functions in SD Pricing and Conditions .

SAP Solution Sales Configuration


162 PUBLIC Solution Configuration Environment
[Link] Available User Exits and APIs

Here, you can find all the relevant information related to the available pricing-related user-exit types. First, the
standard features are explained and then the different types of user exits. The parameters that form the
interface between pricing and user exits are also described briefly.

[Link].1 Logging Capabilities

For customer pricing user exits, there is an easy way to include fast logging. The
[Link] class implements two methods for logging debug
messages or error messages. Logging is fast and done only if the appropriate log level is reached, which you
can define at runtime.

ZSpecialRoundingValueFormula (shorten)

package [Link];

import [Link];
[..]
public class ZSpecialRoundingValueFormula extends ValueFormulaAdapter {

private static UserexitLogger userexitlogger =


new UserexitLogger([Link]);

public BigDecimal overwriteConditionValue(IPricingItemUserExit item,


IPricingConditionUserExit condition) {
[..]
[Link]("old cond value: "
+ [Link]());
[..]
}
}

Line No. Description

8 Create a static instance of the UserexitLogger class. As


constructor parameter, pass the actual class.

13 Use writeLogDebug(String s) or
writeLogError(String s) to log the string s in the log.

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 163
[Link].2 Condition Base Formula

The condition base formula can be used to overturn the automatically calculated base value of a condition. This
type of user exit must be assigned in Customizing to the user exits type BAS (condition base formula).

This user exit is called after the condition base value has been calculated for each pricing condition. The user
exit class must be inherited from BaseFormulaAdapter and implement method
overwriteConditionBase. The overwriteConditionBase method has the parameters pricingItem
and pricingCondition, which represents the item and the actual condition.

If this method returns a null object reference, pricing will keep the base value that is called automatically.

ZSpecialBaseFormula

package [Link];

import [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class ZSpecialBaseFormula extends BaseFormulaAdapter {

private static UserexitLogger userexitlogger =


new UserexitLogger([Link]);

public BigDecimal overwriteConditionBase(IPricingItemUserExit pricingItem,


IPricingConditionUserExit pricingCondition) {

BigDecimal result;

[Link]("old cond base: "


+ [Link]().getValueAsString());

// double the base value


result = [Link]().getValue().
multiply(new BigDecimal("2"));

[Link]("new cond base: " + result);

return result;
}
}

Line No. Description

11 Extend/subclass the API BaseFormulaAdapter.

16 Overwrite the implementation of the


overwriteConditionBase method.

SAP Solution Sales Configuration


164 PUBLIC Solution Configuration Environment
Line No. Description

25 Change the value of the automatically determined condition


base.

30 Return the changed condition base value.

[Link].3 Item Calculation Begin Formula

This seldom-used user exit is available to change the document and item if necessary before item pricing takes
place. This type of user exit must be assigned in Customizing to user exit type CAB (Item Calculation Begin
Formula).

The user exit class must be inherited from PricingItemCalculateBeginFormulaAdapter. It passes a


reference to the pricing document ( prDocument) and the item ( prItem).

ZSpecialCalculationBeginFormula

package [Link];

import [Link];
import [Link];
import
[Link]
ter;

public class ZSpecialCalculationBeginFormula extends


PricingItemCalculateBeginFormulaAdapter {
{

private int stepNumber, counter;

public void calculationBegin(IPricingDocumentUserExit prDocument,


IPricingItemUserExit prItem) {

stepNumber = 10;
counter = 1;

[Link](true);

}
}

Line No. Description

7 Extend the API


PricingItemCalculateBeginFormulaAdapter

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 165
Line No. Description

12 Overwrite the implementation of the calculationBegin


method

18 Set the document to accept zero prices as valid prices

[Link].4 Item Calculation End Formula

This seldom-used user exit is available to change the document and item if necessary after item pricing has
taken place. This type of user exit must be assigned in Customizing to user exit type CAE (Item Calculation End
Formula).

The user exit class must be inherited from PricingItemCalculateEndFormulaAdapter. It passes a


reference to the pricing document ( prDocument) and the item ( prItem).

ZSpecialCalculationEndFormula

package [Link];

import [Link];
import [Link];
import
[Link]
r;

public class ZSpecialCalculationEndFormula extends


PricingItemCalculateEndFormulaAdapter {

private int stepNumber, counter;

public void calculationEnd(IPricingDocumentUserExit prDocument,


IPricingItemUserExit prItem) {

stepNumber = 10;
counter = 1;
[Link](stepNumber, counter).setConditionControl('A');

}
}

Line No. Description

7 Extend the API


PricingItemCalculateEndFormulaAdapter

11 Overwrite the implementation of the calculationEnd


method

SAP Solution Sales Configuration


166 PUBLIC Solution Configuration Environment
Line No. Description

16 Set the condition control of the pricing condition at


stepNumber 10 to Automatic A

[Link].5 Configuration Formula

This seldom-used user exit is called when the product configuration process creates subitems. This type of
user exit must be assigned in Customizing to user exit type CFG (Configuration Formula), which is called for
subitems created by SCE.

The user exit class must be inherited from SPCSubItemCreatedByConfigurationFormulaAdapter. For


each subitem, method isRelevantForPricing is called and a reference to the new subitem and the
configuration instance is passed.

ZSpecialConfigurationFormula

package [Link];

import [Link];
import [Link];
import
[Link];

public class ZSpecialConfigurationFormula extends


SPCSubItemCreatedByConfigurationFormulaAdapter {

public boolean isRelevantForPricing(ISPCItemUserExitAccess subItem,


Instance instance) {

return [Link]();
}
}

Line No. Description

8 Extend the API


SPCSubItemCreatedByConfigurationFormulaAdapte
r

10 Implement the isRelevantForPricing method

13 Set the configuration subitem to pricing-relevant or not

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 167
[Link].6 Condition Init Formula

After a pricing condition has been initialized, it can be changed with this user exit, which is called whenever an
internal condition (a transactional object or business entity) is created. This type of user exit must be assigned
in Customizing to user exit type CNI (Condition Init Formula).

The user exit class must be inherited from PricingConditionInitFormulaAdapter and must overwrite
the method init. It allows the new condition to be changed (parameter prCondition).

ZSpecialConditionInitFormula

package [Link];

import [Link];

import [Link];
import [Link];
import [Link];
import
[Link];

public class ZSpecialConditionInitFormula extends


PricingConditionInitFormulaAdapter {

public void init(IPricingDocumentUserExit prDocument, IPricingItemUserExit


prItem,
IPricingConditionUserExit prCondition) {

if ([Link]() != "0PR0"
&& [Link]())
[Link](new BigDecimal("2"));
}
}

Line No. Description

10 Extend the API PricingConditionInitFormulaAdapter

12 Implement the init method

17 Set the condition rate to 2

[Link].7 Copy Formula

While a document is being copied, the pricing condition can be fixed or other changes can take place if
required. This type of user exit must be assigned in Customizing to user exit type CPY (Copy Formula).

This user exit is called during the copying process. The user exit class must be inherited from class
PricingCopyFormulaAdapter and implement method pricingCopy. Parameters pricingDocument,

SAP Solution Sales Configuration


168 PUBLIC Solution Configuration Environment
pricingItem, and pricingCondition are references to the target document, item, and condition. The
pricing type describes what should happen to the pricing result when new pricing takes place. The parameter
copyType is a reference to the Customizing used for the copy process; sourceSalesQuantity contains the
old quantity of the source item.

ZSpecialCopyFormula

package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class ZSpecialCopyFormula extends PricingCopyFormulaAdapter {

public void pricingCopy(IPricingDocumentUserExit pricingDocument,


IPricingItemUserExit
pricingItem, IPricingConditionUserExit
pricingCondition,
IPricingType pricingType, ICopyType copyType,
IQuantityValue
sourceSalesQuantity) {

// fix condition value and base


[Link]('E');
}
}

Line No. Description

11 Extend the API PricingCopyFormulaAdapter

13 Overwrite the implementation of the pricingCopy method

19 Fix the conditions value and base by setting the


conditionControl to E

[Link].8 Document Init Formula

After a pricing document has been initialized, it can be changed with this user exit, which is called when a new
pricing document is created. This type of user exit must be assigned in Customizing to user exits type DOI
(Document Init Formula).

The user exit class must be inherited from class PricingDocumentInitFormulaAdapter and implement
method init. A reference to the new document is passed.

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 169
ZSpecialDocumentInitFormula

package [Link];

import [Link];
import
[Link];

public class ZSpecialDocumentInitFormula extends


PricingDocumentInitFormulaAdapter {

public void init(IPricingDocumentUserExit prDocument) {


if (![Link]())
[Link](true);
}
}

Line No. Description

6 Extend the API DocumentInitFormula

8 Overwrite the implementation of the init method

10 Set group condition processing to active

[Link].9 Group Key Formula

This user exit can be used to replace the automatically determined condition value. This type of user exit must
be assigned in Customizing to user exit type VAL (Condition Value Formula).

This user exit is called after the condition value has been calculated for each pricing condition. The user exit
class must be inherited from class ValueFormulaAdapter and implement at least
overwriteConditionValue. If group condition processing is enabled for the condition type, the
implementation of method overwriteGroupConditionValue is possible. Both methods can return null to
indicate that the original value is to be taken.

ZSpecialRoundingValueFormula

package [Link];

import [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

SAP Solution Sales Configuration


170 PUBLIC Solution Configuration Environment
public class ZSpecialRoundingValueFormula extends ValueFormulaAdapter {

private static UserexitLogger userexitlogger =


new UserexitLogger([Link]);

public BigDecimal overwriteConditionValue(IPricingItemUserExit item,


IPricingConditionUserExit condition) {
BigDecimal result;

ICurrencyValue val = [Link]();


[Link]("old cond value: "
+ [Link]());

result = [Link]().setScale(0, BigDecimal.ROUND_HALF_UP);

BigDecimal qnt = [Link]().getValue();


qnt = [Link](new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP);

[Link]("new cond value: " + [Link](qnt));

return [Link](qnt);
}

public BigDecimal overwriteGroupConditionValue(


IPricingDocumentUserExit item, IGroupConditionUserExit condition) {
// do nothing
return null; }
}

Line No. Description

13 Extend the API ValueFormulaAdapter

18 Overwrite the implementation of the


overwriteConditionValue method

33 Change the value of the automatically determined condition


value

33 Return the changed condition value

36 Overwrite the implementation of the


overwriteGroupConditionValue method

39 Return null to keep the automatically calculated value

[Link].10 Item Init Formula

After the pricing item has been initialized, it can be changed with this user exit, which is called when a new
pricing item is created. This type of user exit must be assigned in Customizing to user exit type ITI (Item Init
Formula).

The user exit class must be inherited from class PricingItemInitFormulaAdapter and implement method
init. A reference to the document and to the new item is passed.

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 171
ZSpecialItemInitFomula

package [Link];

import [Link];
import [Link];
import
[Link];

public class ZSpecialItemInitFomula extends PricingItemInitFormulaAdapter {

public void init(IPricingDocumentUserExit prDocument, IPricingItemUserExit


prItem) {
if ([Link]())
[Link]('$');
}
}

Line No. Description

7 Extend the API ZSpecialItemInitFomula

9 Overwrite the implementation of the init method

11 Set the item exclusion flag

[Link].11 Pricing Init

In previous releases, this user exit was called CRMDocumentStandardExit where it was used mainly to pass
header attributes to be used in method initializeDocument. As of Release 2.0 SP5, these attributes can be
customized. Pricing Init user exits can now be used only to set the unit of rounding to the smallest unit of a
currency. This type of user exit must be assigned in Customizing to the user exit type PRI (Pricing Init).

This user exit is called when a new pricing document is created. The user exit class must be inherited from
class PricingInitFormulaAdapter and must implement method initializeDocument. This method has
parameter documentUserExitAccess, which represents the pricing document.

ZPricingInit

package [Link];

import [Link];
import [Link];

public class ZPricingInit extends PricingInitFormulaAdapter {

public void initializeDocument(IDocumentUserExitAccess


documentUserExitAccess) {

SAP Solution Sales Configuration


172 PUBLIC Solution Configuration Environment
[Link](20);
}
}

Line No. Description

6 Extend the API PricingInitFormulaAdapter

8 Overwrite the implementation of the initializeDocument


method

10 Set the rounding unit to 20

[Link].12 Pricing Prepare

In previous releases, this user exit was called CRMItemStandardExit. Pricing Prepare user exits can be used
to add header and/or item attributes to be used during the pricing process. These attributes can now be
customized. This type of user exit must be assigned in Customizing to the user exit type PRP (Pricing Prepare).

The Pricing Prepare user exit is called when creating a new pricing item and when new pricing takes place. The
user exit class must be inherited from class PricingPrepareFormulaAdapter and must implement method
addAttributeBindings. This method has parameter itemUserExitAccess, which represents the pricing
item.

ZPricingPrepare

package [Link];

import [Link];
import [Link];

public class ZPricingPrepare extends PricingPrepareFormulaAdapter {

public void addAttributeBindings(IItemUserExitAccess itemUserExitAccess) {

[Link]("ZLAND", "DE");
}
}

Line No. Description

6 Extend the API PricingPrepareFormulaAdapter

8 Overwrite the implementation of the


addAttributeBindings method

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 173
Line No. Description

10 Set the attribute ZLAND to the value “DE”.

[Link].13 Requirement

This user exit is used during condition determination at pricing procedure step/counter level and at condition
access step level. This type of user exit must be assigned in Customizing to the user exit type REQ
(Requirement).

The user exit class must be inherited from RequirementAdapter and implement method
checkRequirement. If this method returns false, the actual access is not made.

ZSpecialRequirement

package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class ZSpecialRequirement extends RequirementAdapter {

private static UserexitLogger userexitlogger =


new UserexitLogger([Link]);

public boolean checkRequirement(IConditionFindingManagerUserExit item,


IStep step, IAccess access)
{
String zland = [Link]("ZLAND");
if (zland == null || [Link]("")) {
[Link]("ZLAND attribute missing");
return false;
} else {
return [Link]("US");
}
}
}

Line No. Description

9 Extend the API RequirementAdapter

14 Overwrite the implementation of the checkRequirement


method

SAP Solution Sales Configuration


174 PUBLIC Solution Configuration Environment
Line No. Description

17 Retrieve an attribute value to be used for the check

22 Return the check result: “true” to make the access, “false”


not to make the access

[Link].14 Scale Base Formula

This user exit can be used to replace the automatically determined scale base. This type of user exit must be
assigned in Customizing to the user exit type SCL (Scale Base Formula).

This user exit is called after the condition-scale base value has been calculated for a pricing condition. The user
exit class must be inherited from class ScaleBaseFormulaAdapter and implement at least
overwriteScaleBase. If group condition processing is enabled for the condition type, method
overwriteGroupScaleBase can also be implemented. Both methods can return null to indicate that the
original value is to be taken.

ZSpecialScaleBaseFormula

package [Link];

import [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class ZSpecialScaleBaseFormula extends ScaleBaseFormulaAdapter {

private static UserexitLogger userexitlogger =


new UserexitLogger([Link]);

public BigDecimal overwriteScaleBase(IPricingItemUserExit item,


IPricingConditionUserExit condition,
IGroupConditionUserExit groupCondition) {

[Link]("Old scale: " +


[Link]().getValueAsString());

if ([Link]() != null) {
return [Link]().getValue().setScale(0,
BigDecimal.ROUND_FLOOR);
}
else
{
return null;
}
}

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 175
public BigDecimal overwriteGroupScaleBase(IPricingDocumentUserExit
document,
IGroupConditionUserExit groupCondition) {

if ([Link]() != null) {
return [Link]().getValue().setScale(0,
BigDecimal.ROUND_FLOOR);
}
else
{
return null;
}
}
}

Line No. Description

12 Extend the API ScaleBaseFormulaAdapter

17 Overwrite the implementation of the overwriteScaleBase


method

25 Return the changed scale base value

34 Overwrite the implementation of the


overwriteGroupScaleBase method

38 Return the changed scale base value

[Link].15 Condition Value Formula

This user exit can be used to replace the automatically determined condition value. This type of user exit must
be assigned in Customizing to user exit type VAL (Condition Value Formula).

This user exit is called after the condition value has been calculated for each pricing condition. The user exit
class must be inherited from class ValueFormulaAdapter and implement at least
overwriteConditionValue. If group condition processing is enabled for the condition type, the
implementation of method overwriteGroupConditionValue is possible. Both methods can return null to
indicate that the original value is to be taken.

ZSpecialRoundingValueFormula

package [Link];

import [Link];

import [Link];
import [Link];
import [Link];

SAP Solution Sales Configuration


176 PUBLIC Solution Configuration Environment
import [Link];
import [Link];
import [Link];
import [Link];

public class ZSpecialRoundingValueFormula extends ValueFormulaAdapter {

private static UserexitLogger userexitlogger =


new UserexitLogger([Link]);

public BigDecimal overwriteConditionValue(IPricingItemUserExit item,


IPricingConditionUserExit condition) {
BigDecimal result;

ICurrencyValue val = [Link]();


[Link]("old cond value: "
+ [Link]());

result = [Link]().setScale(0, BigDecimal.ROUND_HALF_UP);

BigDecimal qnt = [Link]().getValue();


qnt = [Link](new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP);

[Link]("new cond value: " + [Link](qnt));

return [Link](qnt);
}

public BigDecimal overwriteGroupConditionValue(


IPricingDocumentUserExit item, IGroupConditionUserExit condition) {
// do nothing
return null;
}
}

Line No. Description

13 Extend the API ValueFormulaAdapter

18 Overwrite the implementation of the


overwriteConditionValue method

33 Change the value of the automatically determined condition


value

33 Return the changed condition value

36 Overwrite the implementation of the


overwriteGroupConditionValue method

39 Return null to keep the automatically calculated value

4.6.2 Modifying Pricing Context

If you want to change the pricing context for the header or item of a document, you can implement the /SLCC/
MODIFY_PRICING_CONTEXT BadI. SAP delivers a default implementation of this BadI and customers can have
their own implementation as this is a multiple use BadI.

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 177
4.7 Creating Solution Configurations

Use

This procedure explains how to use the main functions in the advanced-mode configuration user interface. The
user interface is presented as an accordion with collapsible layers. Within the Configuration layer, there is a
layer for each component in the solution.

Prerequisites

You have created a sales document, added an advanced mode product, and chosen to edit it.

Procedure

To access individual functions shown in the table, use the Configuration layer of the user interface:

Function Navigation More Information

Add a non-part instance Choose Add Non Part Instance The system displays a list of all the non-
part instances for the solution.

You can add one or more non-part in­


stances by choosing the Add
Component pushbutton next to the rel­
evant component.

Enable or Disable Interactive Pricing Select or deselect the Interactive The system enables or disables both in­
Pricing checkbox teractive pricing (display of the total
price) and delta pricing (display of sur­
charges and price reductions).

SAP Solution Sales Configuration


178 PUBLIC Solution Configuration Environment
Function Navigation More Information

Display the sales structure for the solu­ Select the Sales Structure checkbox The system displays the solution con­
tion figuration in one of the following ways:

● Flat Structure
This view displays the non-part in­
stances in a list and the bill of ma­
terial (BOM) explosion as a hier­
archical structure. The relation­
ships between the non-part instan­
ces are not displayed.
● Sales Structure
This view displays the hierarchical
relationships between the instan­
ces, which are interpreted from the
sales abstract data types (ADTs)
and the BOM explosion.

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 179
Function Navigation More Information

View or specify the configuration set­ Choose Settings The system displays the following infor­
tings mation:

● Extended Configuration Manage­


ment (XCM) Application Configu-
ration
● Knowledge Base Description
● Knowledge Base Version
● Knowledge Base Profile
● Knowledge Base Build Number

Here, you can also enable/disable the


following options:

● Display Invisible Characteristics


● Display Language-Dependent De­
scriptions
● Show Characteristic Groups
● Display All Options
● Show Status Lights
● Evaluate Characteristics Online
● Render Values in Multiple Columns
● Enable JQuery Controls
● Show Assignable Values only
● Indent Components
● Select Price Type
● Enable Customization List on Main
Screen
● Show position number of each
Sub-Component
● Show Component Quantities

SAP Solution Sales Configuration


180 PUBLIC Solution Configuration Environment
To access individual functions shown in the table, use the layer for the relevant component:

Function Navigation More Information

Manually add a component to the con­ Choose Add Component The system displays the list of compo­
figuration nents that can be added to the configu-
ration manually, with the following infor­
mation:

● Minimum quantity ( How Many


Must I Have?)
● Maximum quantity ( How Many
Can I Have?)
● Current quantity ( How Many Do I
Have?)

This information is maintained in the


super BOM.

Choose the Add Component pushbut­


ton next to the component you want to
add. When you have completed your
entries, choose Return to Configuration
to continue.

Delete a component Choose Delete Component You cannot delete a component that is
related to another component by a con­
straint.

Specialize a component Choose Specialize The system displays a list of the possi­
ble products. The list is maintained as
part of the knowledge base for the solu­
tion.

Unspecialize a component Choose Unspecialize You use this function to reverse a spe­
cialization.

4.8 Customize Properties in XCM Settings

The steps below show how you can customize properties in the XCM Settings:

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 181
1. On the XCM administration page and click Display under Advanced Settings

2. Select on the Component that you want to customize.

3. Click Edit

SAP Solution Sales Configuration


182 PUBLIC Solution Configuration Environment
4. Expand the component Behavior

5. Enter a Name under Customer Component Configuration

6. Click Next

SAP Solution Sales Configuration


Solution Configuration Environment PUBLIC 183
You can also change the behavior by switching between the dropdown values. For example,
[Link] = T/F

4.9 Restoring Solution Configuration

The Configuration Engine processes data used during configuration of products. It also supports configuration
processes and the final configuration can be save and restored later, for editing.

The restore process creates/modifies facts, fires dependencies, and then deletes the facts used while
configuring the products. For more information about this process, refer to SAP Note 2365244
(Configuration restore based on the user inputs).

4.10 Configuration Result Schema Definition

While performing configuration in SSC, the configuration result information is captured in an XML document,
which is then submitted to the integrated backend system for further processing

In some custom integration scenarios, it might be required to use this configuration xml for some custom
process flows. Refer to the attachment SSC_ConfigResult_1.[Link] in SAP Note 2948568 for the XML
schema definition of the SSC configuration result.

SAP Solution Sales Configuration


184 PUBLIC Solution Configuration Environment
5 User Exit Management

User exits are user-defined functions (declarative functions and pfunctions in the configuration engine and
pricing formulas in the pricing engine) which consist of customer-specific code that allows specific custom
tasks to be performed. User-defined functions are invoked from a model during a configuration session. They
can be used, for example, for checking values and inferring characteristic values.

There are two types of user-defined function, namely declarative functions and procedural functions
( pfunctions). From a technical perspective, both are implemented in the same way. They are Java classes that
implement a specific interface. During a configuration session, these Java classes must be made available to
the configuration runtime engine, which happens through an automated process.

Storage

Depending upon the deployment scenario, user exits are stored in a central database of AS ABAP (ECC/CRM)
or AS Java, and can be uploaded without having to interrupt and restart the application.

Management

User exits are managed in a central location. This involves uploading new exits, deleting existing ones, and
retrieving information about the exits currently deployed. Management takes place via the REST API interface.
This REST API can be called from different locations, for example, from a third-party application. The solution
modeling environment uses this REST API interface in its pFunction wizard.

Units and Version

All java classes of a user exit are confined within a unit and can be identified with a Unit Name during the upload
process. Like in a java project, java classes are expected to be unique in a unit. As solutions evolve, it might be
required to test the behavior of a new version of a user exit. This can be achieved by specifying the Version field
during upload of the user exit, for example, dev , test , prod. The configuration runtime engine can use only
one version at a time. This is specified in the configuration parameters of the engine settings and can be
configured in the server.

The version column is of type string, and is limited to 30 characters.

SAP Solution Sales Configuration


User Exit Management PUBLIC 185
5.1 Deployment Modes

The following two modes of pFunction deployment are supported in SSC:

● SME pFunction Wizard


A new pFunction wizard has been provided in SME to facilitate quick development of user exits. For testing
an SSC configuration in the SME test perspective, pFunctions are required to be exported to a local
database. For use in NetWeaver Java or SAP Commerce integrated with SAP backend system, pFunctions
are required to be exported to the connected backend system. For use in NetWeaver Java or SAP
Commerce without any integration with SAP backend systems, pFunctions are required to be exported to
the SSC local database, which is same as export to the local database mechanism in SME.
● Manual Upload in Backend
In some situations, it might be required to upload the pFunctions in the backend manually. A new utility has
been added in CFG_SUPPORT for the same.

5.2 Invocation

User exits are invoked based upon the version setting of the configuration runtime engine parameter. One
version can be active at any given point in time in SME.

● Netweaver Java connected to backend CRM, ECC or S/4 Hana systems


At the time of configuration invocation, based upon the version setting in [Link], SSC fetches all the
pFunctions that exist in backend system and caches them locally in the NW Java global cache. It also
ensures that any updated pFunctions are considered when a new configuration is launched.
● Netweaver Java connected to a database in Ready-to-Integrate scenario
pFunctions are fetched from the local database and cached locally in NW java in a similar way as the
connected backend scenario.
● SAP Commerce connected to backend ECC or S/4 HANA system
pFunctions are replicated to the SSC database in SAP commerce via a data loader during the initial
download process via customizing download. In case, when a pFunction is updated after the initial
download process has completed, and the data loader is running in delta mode, the updated pFunctions
can be replicated again via the Request Mode process. Similar to the caching process in NetWeaver java,
pFunctions are fetched from the SSC database and cached in SAP commerce for use by different
configuration sessions. Apart from standard integrations, it is possible to override and invoke a specific
pFunction version by passing its value in the config session context parameter via ejb or REST interface.

5.3 Security Considerations

SAP Solution Sales Configuration


186 PUBLIC User Exit Management
Role Assignments

Only users having the SME and EJB IPC roles will be able to upload pFunctions in the backend system.

Size Limitations

The upload file size has been defaulted to a maximum of 20MB, and a file size exceeded exception will be
thrown when this limit is exceeded. This can be controlled via the customizing settings in backend or by
changing the engine settings, in case of export to local database or NW Java for Ready-to-Integrate scenario.

Virus Scanning

For protection against any malicious software, virus scanning can be enabled in NW ABAP or NW Java. For
more information, see Enabling Virus Scanner for User Exits in the SSC Security Guide on the SAP Help Portal.

SAP Solution Sales Configuration


User Exit Management PUBLIC 187
6 Integration with Other Sales Systems

Use

SAP Solution Sales Configuration can be integrated with other sales systems. This scenario is relevant for SAP
customers who use their own or a third-party Customer Relationship Management (CRM) system or an e-
commerce application, and wish to use the configuration and pricing features of SAP Solution Sales
Configuration outside the standard SAP scenarios.

Integration

The following figure illustrates the architecture for integrating SAP Solution Sales Configuration with Hybrisand
non-SAP sales systems.

Architecture for Integrating SAP Solution Sales Configuration and Non-SAP Sales Systems

SAP Solution Sales Configuration consists of a sales configuration engine (SCE), a sales pricing engine (SPE),
and a configuration user interface (UI) based on JavaServer Pages (JSP). A component called the Data Loader
is used to fill a standalone database with configuration data from a source ERP Central Component (ECC)
system. The system provides application programming interfaces (APIs) that enable third-party CRM and Web
Shop applications to interact with the configuration engine, pricing engine, and JSP UI.

SAP Solution Sales Configuration


188 PUBLIC Integration with Other Sales Systems
Features

● Configuration APIs
APIs are provided for implementing the following configuration functions:
○ Creation of a configuration session.
○ Interaction with the configuration session for compatible mode, advanced mode, and knowledge base
orchestration.
○ Retrieval of the configuration result (in BLOB or XML format).
○ Retrieval of the sales structure (order mapper).
● Pricing APIs
APIs are provided for implementing the following pricing functions:
○ Creation of a pricing session.
○ Interaction with a pricing session.
○ Retrieval of the pricing result (in BLOB or XML format).
● Deployment as a J2EE Application
The configuration engine is built and packaged as an Enterprise JavaBeans (EJB) component based on
Java 2 Enterprise Edition (J2EE) standards. It is primarily intended to be deployed on an SAP J2EE engine
(SAP NetWeaver 7.30) but can be adapted to run on any J2EE-certified runtime environment (Java 6) with
minimum implementation effort.
● Deployment as a Desktop Application
The configuration engine can be deployed as libraries that can be embedded in a desktop application. The
EJB layer can be by-passed to allow direct access to the configuration session or to the engine abstraction
layer of the application.
● Enhanced JSP UI
The JSP UI can be called with an HTTP request.
● Standalone or Local Database
The configuration engine can be connected directly to a database management system such as Microsoft
SQL Server. The system provides scripts to create the database and an application to run the scripts.
● Data Loader
The Data Loader is used to fill the local standalone database with configuration data from an ECC system.
For more information, see Data Loader in the Solution Modeling Environment [page 107].

Constraints

In the solution modeling environment, the Data Loader does not download pricing data or customizing data.
The interactive pricing and delta pricing features do not, therefore, work if the configuration environment is
used with a standalone database.

If the configuration environment is connected to the ECC database, the interactive pricing and delta pricing
features work, and the standalone database and the Data Loader are not required.

SAP Solution Sales Configuration


Integration with Other Sales Systems PUBLIC 189
7 Business Functions

This section provides information about the various business functions that are available in SAP Solution Sales
Configuration.

7.1 Compressed Storage of XML Configuration Results

Use

Technical Data

Technical Name of Business Function /SLCC/BF_XML_COMPRSSION

/SLCE/BF_XML_COMPRSSION

Type of Business Function Enterprise Business Function

Available From SAP Solution Sales Configuration Support Package 3

Application Component FBS Solution Configuration (CRM-SLC)

FBS Solution Configuration (LO-SLC)

Required Business Function Not relevant

You can use this business function to store XML configuration results in the database in compressed form. If
the business function is deactivated, the configuration results are stored in uncompressed form.

Integration

The business function can be activated separately in SAP ERP and SAP CRM. You can activate the business
function in one system but leave it deactivated in the other system.

SAP Solution Sales Configuration


190 PUBLIC Business Functions
Prerequisites

● You have installed the following components as of the version mentioned:

Required for the Following Features


Type of Component Component Only

Software Component SLCC (for SAP CRM)

SLCE (for SAP ERP)

● If sales documents with configurable products already exist before you activate the business function, you
must migrate the data manually from table /SLCC/CFG_XML to /SLCC/XML_BLOB (for SAP CRM) or
from /SLCE/CFG_XML to /SLCE/XML_BLOB (for SAP ERP). Unless you do so, the system cannot restore
the configurations for existing sales document items.
The data migration is necessary because XML configuration results for sales document items are no longer
stored in table /SLCC/CFG_XML or /SLCE/CFG_XML after you have activated the business function.
Instead, they are stored in tables /SLCC/XML_BLOB and /SLCE/XML_BLOB. Configuration results are read
either from table *CFG_XML or *XML_BLOB (for example, when the configuration screen of an existing item
is opened).

Features

Compression of XML Configuration Results

Configuration results for sales document items are stored as XML in the back-end system. In releases of SAP
Solution Sales Configuration earlier than Support Package 3, the configuration results are stored in an
uncompressed form. This is also the case in Support Package 3 if this business function is deactivated. If you
activate this business function, the configuration results are stored in a compressed form.

If you do not activate the business function, configuration results are stored in table /SLCC/CFG_XML for SAP
CRM and /SLCE/CFG_XML for SAP ERP. If you activate the business function, the configuration results are
stored in table /SLCC/XML_BLOB for SAP CRM and /SLCE/XML_BLOB for SAP ERP.

The business function is reversible and can be deactivated again if it has been activated. Note that some
manual migration activities are required for existing configuration results.

SAP Solution Sales Configuration


Business Functions PUBLIC 191
8 Solution Configuration Analytics

Use

SAP Solution Sales Configuration allows you to create a variety of complex solution configurations in a
hierarchical manner. This flexibility makes the implementation of a standard analytical reporting solution
challenging.

For analytical reporting, the system must assemble a large number of objects such as sales order items or
quotation items. Furthermore, these must be assembled in accordance with a common set of properties
(characteristics) and a common set of measures (key figures). However, if the actual configurations of the
solution differ significantly between different sales documents, it becomes difficult for the system to identify
the common properties and measures. Therefore, the analytical reporting solution for SAP Solution Sales
Configuration is designed to be flexible, so that you can adapt it to suit your own specific analytical
requirements.

To analyze the solution selling process, solution configuration data from the sales system must be combined
with data from other systems, such as data from the fulfillment process and financial data. Therefore, SAP
Solution Sales Configuration requires the use of a separate data warehouse to consolidate the data from the
various processes. Data extractors are provided to transfer the data from the source systems to the data
warehouse. You can then design your own persistence layer and user interfaces based on your own specific
reporting requirements.

Integration

The analytical reporting solution is integrated with the following components:

● SAP Customer Relationship Management (SAP CRM)


● SAP Business Information Warehouse (SAP BW)

 Note

You can use an alternative data warehouse solution to SAP BW. In this case, you must implement
BusinessObjects Data Services to use the data extraction layers.

Features

The system provides a comprehensive set of data extractors in the SAP CRM system. The data extractors allow
you to extract all of the relevant solution configuration data to the SAP BW system. The data includes business
document item information for the solution configuration, in addition to master data and description data. You
can choose the data you consider relevant for analytical reporting.

SAP Solution Sales Configuration


192 PUBLIC Solution Configuration Analytics
The DataSources have the following features:

● Knowledge Base Dependent and Knowledge Base Independent Analytics


Periodically, you may need to change your solution models; new features can be added to solutions and
other features can be removed. Therefore, the system allows you to create new versions of a solution
model, so that after a period of time, each solution can have several different model versions. These
different models are known as knowledge bases, and each knowledge base can have several knowledge
base run time versions.
This means that transactional data such as quotation items or sales order items can refer to different
knowledge bases even though they refer to the same solution. However, from a business perspective, items
for the same solution must not be treated separately if they refer to different knowledge bases. Therefore
the system is capable of recognizing common properties in different knowledge bases of the same
solution. If a characteristic exists in a knowledge base of a solution, and if the same characteristic exists in
other knowledge base versions, then for analytical purposes, it is possible to provide one common
characteristic for all of the different knowledge base versions. This is referred to as knowledge base
independent analytics.
The system also allows you to analyze the data in a specific version of the knowledge base. This is referred
to as knowledge base dependent analytics.
● Delta Data Extraction
The DataSources use a time stamp based delta extraction process to upload only data that has changed
since the last upload process. The system also controls the size of the DataSources' internal packages to
ensure that the data extraction process is controlled and that performance is as efficient as possible.

For more information, see DataSources [page 194].

 Note

SAP Solution Sales Configuration does not provide any SAP BW business content objects. You must create
these objects based on your own specific analytical requirements.

Constraints

● SAP CRM provides standard DataSources for most CRM Business Documents such as Quotation Items
and Sales Order Items. Business Intelligence (BI) content for SAP CRM is also available; this provides
InfoProviders and the corresponding staging processes in SAP BW for most SAP CRM objects. The
DataSources for SAP Solution Sales Configuration only refer to properties that are specific to solution
configuration; properties that are already available in the standard SAP CRM DataSources are not
included.
● It is assumed that the meaning of characteristics and symbol values remains unchanged when they are
inherited from the previous version of the knowledge base and used in a new solution model. This is
required to ensure consistency in knowledge base independent analytics.
● It is recommended that properties are not deleted; instead they are marked as obsolete. This is because a
deleted property can be referenced in historical transactional data. Unless configuration master data has
previously been extracted to SAP BW, the analytics layer cannot interpret such properties, and such data is
flagged as corrupted in the data extraction layer.

SAP Solution Sales Configuration


Solution Configuration Analytics PUBLIC 193
8.1 SAP Business Information Warehouse Implementation

Use

You use this process to create an SAP BW system for the analysis of solution configuration data.

Process

1. You create an extraction layer (data sources) in the SAP Customer Relationship Management (SAP CRM)
system.
SAP Solution Sales Configuration provides a set of data sources for transactional data and master data.
These data sources are used to transfer solution configuration data from the SAP CRM system to the SAP
BW system. For more information, see DataSources [page 194].
2. You create a persistence layer (data staging) in the SAP BW system.
In the SAP BW system, you define InfoObjects (for master data) and Data Store Objects or InfoCubes (for
transactional data) to store the solution configuration data. You then define Transformations and Data
Transfer Processes to transfer the SAP CRM data into the SAP BW persistence layer.

 Caution

When defining the persistence layer, you must ensure to take account of delta processing. In particular,
the deletion of objects such as order items or characteristics in the SAP CRM system must be properly
reflected in the SAP BW system.

3. You create the user interfaces (reports and dashboards).


You can create a variety of user interfaces such as Queries, Web Templates, Dashboards, Information
Spaces in BusinessObjects Explorer, and so on. Most of these interfaces use BW Queries. However, a few
BusinessObjects applications such as BusinessObjects Explorer or Web Intelligence use a different method
to access SAP BW data. You can create BW Queries on the Data Store Objects or the InfoCubes that have
been used for the staging process, or you can define additional InfoProviders, depending on your reporting
requirements. You can also create InfoProviders without persistency in SAP BW (MultiProviders and
InfoSets), if necessary.

 Note

SAP Solution Sales Configuration does not provide business intelligence (BI) content for the persistence
layer and the user interface layer. You must create these based on your own reporting requirements.

8.2 DataSources

The data model for solution configuration data has the following elements:

● Characteristics

SAP Solution Sales Configuration


194 PUBLIC Solution Configuration Analytics
The properties of a solution are called characteristics.
● Knowledge Bases
All of the characteristics of a solution are stored in a knowledge base. Each solution can have several
knowledge bases versions. In the SAP Customer Relationship Management (SAP CRM) user interface,
these knowledge bases are called Product Models. Each knowledge base is uniquely identified by the
Knowledge Base Name, the Knowledge Base Version, and the Logical System. In the SAP CRM system, a
knowledge base is identified by an integer value called a knowledge base ID (KBID) in table CRMM_CFGKB.
● Symbol Values
Each characteristic has a set of possible values known as symbol values.

The system provides one text DataSource and one attribute DataSource for each of the model elements
(knowledge bases, characteristics, and symbol values). There are two versions of each of these DataSources:
one for knowledge base dependent analytics and one for knowledge base independent analytics.

8.2.1 Item Configuration for Business Documents

DataSource Transactional Data /SLCC/CFG_ORDER_ITEM

Use

You use this DataSource to extract configuration information on a sub item level from SAP Customer
Relationship Management (SAP CRM) business documents. The selection parameters are OBJECT_TYPE and
PROCESS_TYPE. For convenience, OBJECT_ID is also included as a selection parameter, so that the result of
an extraction can be tested in transaction RSA3 (Extractor Checker) for individual SAP CRM Business
Documents.

Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

Content Versions No Content versions exist

RemoteCube-Capable No

Delta-Capable Yes

Extraction from Archives No

Verifiable Yes

SAP Solution Sales Configuration


Solution Configuration Analytics PUBLIC 195
Data Modeling

Delta Update
The delta management is based on the time stamp field HEAD_CHANGED_AT in CRMD_ORDERADM_H. Since
items with configurations have an entry in table CRMD_STRUCT_I, all such items can be retrieved with an inner
join between CRMD_ORDERADM_H and CRMD_STRUCT_I. To efficiently control the package size the following
strategy is applied:

1. All items with configuration data from CRMD_ORDERADM_H and CRMD_STRUCT_I are stored in a static
table in the first package. The table is sorted by the header GUID.
2. From the internal item table a minimum number of items are processed (currently 100). To ensure that all
the items in a business document are processed in one package, items are added from the internal item
table until a new header GUID is encountered.
3. For all these items the configuration data is retrieved from the cBase using the function module
COM_CUXI_GET_MULTI_CFG and then the extract table is populated. The current size of the package is
computed and if it is less than the minimum package size, then the process is repeated.

Subsequently, the additional fields in the extract structure for knowledge base independent analytics are
populated using the function modules /SLCC/READ_KBID_I and /SLCC/READ_CHARAC_I.

Configuration instances can have references to objects that have been deleted from the knowledge base. In this
event, the indicator field CORRUPTED in the extract structure is set to X (otherwise the value is a space).

 Caution

This DataSource reads directly from the database tables CRMD_ORDERADM_H and CRMD_STRUCT_I.
These tables provide information about the currently existing Business Document data. They do not
contain any information about deleted items or deleted documents. If previously uploaded data is deleted,
then such data is not automatically deleted in the SAP Business Information Warehouse (SAP BW). This
can only be achieved in the SAP BW staging process using the standard SAP Business Intelligence (SAP BI)
content DataSources such as 0CRM_SALES_ORDER_I. In delta uploads, only the One Order DataSources
contain the necessary information about deleted objects. The design of a proper staging process is
described in the How-To Guide for SAP Solution Sales Configuration analytics.

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

GUID GUID of an SAP CRM Order


Object

HEADER GUID of an SAP CRM Order


Object

HEAD_CHANGED_AT Time of last change to the


transaction

OBJECT_ID Transaction ID

OBJECT_TYPE Business transaction cate­


gory

PROCESS_TYPE Business transaction type

SAP Solution Sales Configuration


196 PUBLIC Solution Configuration Analytics
Fields in the Extraction Description of the Field in
Structure the Extraction Structure Table of Origin Field in the Table of Origin

PARENT GUID of an SAP CRM Order


Object

PRODUCT Internal unique ID of a prod­


uct

ORDERED_PROD Product name entered

DATE_KB_DETERM Date for knowledge base de­


termination in IPC (master
data version configuration)

KBNAME Knowledge base object

LOGSYS Logical system

KBVERSION Runtime version of solution


configuration engine knowl­
edge base

KBID Internal identifier of a knowl­


edge base

KBID_I Internal identifier of a knowl­


edge base

OBJ_TYPE CUIB: External type of refer­


encing object

CHARC Characteristic name

CHARID Internal identifier of a model


element

CHARID_I Internal identifier of a model


element

DATATYPE Characteristic data type (for


example, string or float)

VACHARC Characteristic name

VARCHARID Internal identifier of a model


element

VCHARID_I Internal identifier of a model


element

VALUE Characteristic value

AUTHOR Statement was inferred

VDATATYPE Characteristic data type (for


example, string or float)

FACTOR Factor

QUANTITY Solution Configurator: Quan­


tity

UNIT Solution Configurator: Quan­


tity Unit

SAP Solution Sales Configuration


Solution Configuration Analytics PUBLIC 197
Fields in the Extraction Description of the Field in
Structure the Extraction Structure Table of Origin Field in the Table of Origin

CORRUPTED Single-character flag

RECORDMODE BW Delta Process: Record


Mode

LINK_GUID GUID of an SAP CRM Order


object

8.2.2 Knowledge Base Attributes

/SLCC/CFG_KBID_ATTR

Use

You use this DataSource to extract data from COMM_CFGKB, based on a delta time stamp in /SLCC/
CFGKB_CHGD.

Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

Content Versions No Content versions exist

RemoteCube-Capable No

Delta-Capable Yes

Extraction from Archives No

Verifiable No

SAP Solution Sales Configuration


198 PUBLIC Solution Configuration Analytics
Data Modeling

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

KBID Internal identifier of a knowl­


edge base

KBID_I Internal identifier of a knowl­


edge base

LOGSYS Logical system

KBOBJNAME Knowledge base name

VERSION Knowledge base version

FROMDATE Knowledge base validity date

TODATE Knowledge base validity date

CREATED_BY Knowledge base creator

CREATED_AT_DAY Knowledge base validity date

CHANGED_BY Knowledge base changer

CHANGED_AT_DAY Knowledge base validity date

CHANGED_AT Time of last change to the


transaction

8.2.3 Knowledge Base Descriptions

/SLCC/CFG_KBID_TEXT

Use

You use this DataSource to extract data from COMM_CFGKBTX, based on a delta time stamp in /SLCC/
CFGKB_CHGD.

Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

SAP Solution Sales Configuration


Solution Configuration Analytics PUBLIC 199
Content Versions No Content versions exist

RemoteCube-Capable No

Delta-Capable Yes

Extraction from Archives No

Verifiable No

Data Modeling

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

KBID Internal identifier of a knowl­


edge base

LANGU Language key

TXTLG Long description

CHANGED_AT Time of the last change to


the transaction

8.2.4 Knowledge Base Characteristic Attributes

/SLCC/CFG_CHARAC_ATTR

Use

You use this DataSource to extract knowledge base characteristic attributes from COMM_CFGCHARAC and
COMM_CFGCHAREF, based on a delta time stamp in /SLCC/CFGKB_CHGD. The extraction takes place by way
of the structure /SLCC/S_CFG_CHARAC_ATTR, using the extractor /SLCC/CFG_CHARAC_ATTR.

Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

SAP Solution Sales Configuration


200 PUBLIC Solution Configuration Analytics
Content Versions No Content versions exist

RemoteCube-Capable No

Delta-Capable Yes

Extraction from Archives No

Verifiable No

Data Modeling

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

KBID Internal identifier of a knowl­


edge base

CHARID Internal identifier of a model


element

CHARNAME Characteristic name (object


characteristic)

DATATYPE Characteristic data type (for


example, string or float)

TABLENAME Characteristic table name


(object characteristic)

FIELDNAME Characteristic field name


(object characteristic)

CHANGED_AT Time of last change to the


transaction

8.2.5 Knowledge Base Characteristic Descriptions

/SLCC/CFG_CHARAC_TEXT

Use

You use this DataSource to extract description data from COMM_CFGCHATX, based on a delta time stamp in /
SLCC/CFGKB_CHGD.

SAP Solution Sales Configuration


Solution Configuration Analytics PUBLIC 201
Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

Content Versions No Content versions exist

RemoteCube-Capable No

Delta-Capable Yes

Extraction from Archives No

Verifiable No

Data Modeling

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

KBID Internal identifier of a knowl­


edge base

CHARID Internal identifier of a model


element

LANGU Language key

TXTLG Long description

CHANGED_AT Time of last change to the


transaction

8.2.6 Knowledge Base Symbol Value Attributes

/SLCC/CFG_SYMVAL_ATTR

Use

You use this DataSource to extract data from COMM_CFGSYMVAL. The usage is then determined from the
following tables:

● COMM_CFGSTRDOM
● COMM_CFGNUMDOM

SAP Solution Sales Configuration


202 PUBLIC Solution Configuration Analytics
● COMM_CFGCLSDOM
● COMM_CFGCLNDOM

Numerical values are used to define ranges in the application, and indicators are used to define whether each
numerical value is the start, or the end of the range, or both. VALUECODE is populated with the usage type. For
example, the value type 01 means that the symbol value is used in the application with meaning equal.

Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

Content Versions No Content versions exist

RemoteCube-Capable No

Delta-Capable Yes

Extraction from Archives No

Verifiable No

Data Modeling

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

KBID Internal identifier of a knowl­


edge base

CHARID Internal identifier of a model


element

KBID_I Internal identifier of a knowl­


edge base

CHARID_I Internal identifier of a model


element

DATATYPE Characteristic data type (for


example, string or float)

VALUE Characteristic value

VALUECODE Value code

TO_INDICATOR Boolean variable (X=True, -


=False, Space=Unknown)

SAP Solution Sales Configuration


Solution Configuration Analytics PUBLIC 203
8.2.7 Knowledge Base Symbol Value Descriptions

/SLCC/CFG_SYMVAL_TEXT

Use

You use this DataSource to extract description data from COMM_CFGVALTX for string-like symbols, based on a
delta time stamp in /SLCC/CFGKB_CHGD.

Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

Content Versions No Content versions exist

RemoteCube-Capable No

Delta-Capable Yes

Extraction from Archives No

Verifiable No

Data Modeling

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

KBID Internal identifier of a knowl­


edge base

CHARID Internal identifier of a model


element

VALUE Characteristic value

LANGU Language key

TXTLG Long description

CHANGED_AT Time of last change to the


transaction

SAP Solution Sales Configuration


204 PUBLIC Solution Configuration Analytics
8.2.8 Knowledge Base Independent Attributes

/SLCC/CFG_KBID_I_ATTR

Use

You use this DataSource to extract knowledge base independent attributes from COMM_CFGKB. The
properties are retrieved from the knowledge base with the most recent validity date (the current version of the
knowledge base).

Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

Content Versions No Content versions exist

RemoteCube-Capable No

Delta-Capable Yes

Extraction from Archives No

Verifiable No

Data Modeling

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

KBID_I Internal identifier of a knowl­


edge base

LOGSYS Logical system

KBOBJNAME Knowledge base name

CREATED_AT_DAY Knowledge base validity date

CHANGED_AT_DAY Knowledge base validity date

CHANGED_AT Time of last change to the


transaction

SAP Solution Sales Configuration


Solution Configuration Analytics PUBLIC 205
8.2.9 Knowledge Base Independent Descriptions

/SLCC/CFG_KBID_I_TEXT

Use

You use this DataSource to extract knowledge base independent descriptions from COMM_CFGKBTX. The
properties are retrieved from the knowledge base with the most recent validity date (the current version of the
knowledge base).

Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

Content Versions No Content versions exist

RemoteCube-Capable No

Delta-Capable Yes

Extraction from Archives No

Verifiable No

Data Modeling

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

KBID_I Internal identifier of a knowl­


edge base

LANGU Language key

TXTLG Long description

CHANGED_AT Time of last change to the


transaction

SAP Solution Sales Configuration


206 PUBLIC Solution Configuration Analytics
8.2.10 Knowledge Base Independent Characteristic
Attributes

/SLCC/CFG_CHARAC_I_ATTR

Use

You use this DataSource to extract knowledge base independent characteristic attributes. The properties are
retrieved from the knowledge base with the most recent validity date (the current version of the knowledge
base). The extraction takes place by way of the structure /SLCC/S_CFG_CHARAC_I_ATTR, using the
extractor /SLCC/CFG_CHARAC_I_ATTR.

Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

Content Versions No Content versions exist

RemoteCube-Capable No

Delta-Capable Yes

Extraction from Archives No

Verifiable No

Data Modeling

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

KBID_I Internal identifier of a knowl­


edge base

CHARID_I Internal identifier of a model


element

CHARNAME Characteristic name (object


characteristic)

DATATYPE Characteristic data type (for


example, string or float)

SAP Solution Sales Configuration


Solution Configuration Analytics PUBLIC 207
Fields in the Extraction Description of the Field in
Structure the Extraction Structure Table of Origin Field in the Table of Origin

TABLENAME Characteristic table name


(object characteristic)

FIELDNAME Characteristic field name


(object characteristic)

CHANGED_AT Time of last change to the


transaction

8.2.11 Knowledge Base Independent Characteristic


Descriptions

/SLCC/CFG_CHARAC_I_TEXT

Use

You use this DataSource to extract knowledge base independent characteristic descriptions. The properties are
retrieved from the knowledge base with the most recent validity date (the current version of the knowledge
base). The extraction takes place by way of the structure /SLCC/S_CFG_CHARAC_I_TEXT using the
extractor /SLCC/CFG_CHARAC_I_TEXT.

Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

Content Versions No Content versions exist

RemoteCube-Capable No

Delta-Capable Yes

Extraction from Archives No

Verifiable No

SAP Solution Sales Configuration


208 PUBLIC Solution Configuration Analytics
Data Modeling

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

KBID_I Internal identifier of a knowl­


edge base

CHARID_I Internal identifier of a model


element

LANGU Language key

TXTLG Long description

CHANGED_AT Time of last change to the


transaction

8.2.12 Knowledge Base Independent Symbol Value Attributes

/SLCC/CFG_SYMVAL_I_ATTR

Use

You use this DataSource to extract knowledge base independent symbol value attributes from
COMM_CFGSYMVAL. The properties are retrieved from the knowledge base with the most recent validity date
(the current version of the knowledge base).

Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

Content Versions No Content versions exist

RemoteCube-Capable No

Delta-Capable Yes

Extraction from Archives No

Verifiable No

SAP Solution Sales Configuration


Solution Configuration Analytics PUBLIC 209
Data Modeling

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

KBID_I Internal identifier of a knowl­


edge base

CHARID_I Internal identifier of a model


element

DATATYPE Characteristic data type (for


example, string or float)

VALUE Characteristic value

VALUECODE Value code

TO_INDICATOR Boolean variable (X=True, -


=False, Space=Unknown)

8.2.13 Knowledge Base Independent Symbol Value


Descriptions

/SLCC/CFG_SYMVAL_I_TEXT

Use

You use this DataSource to extract knowledge base independent symbol value descriptions from
COMM_CFGVALTX. The properties are retrieved from the knowledge base with the most recent validity date
(the current version of the knowledge base).

Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

Content Versions No Content versions exist

RemoteCube-Capable No

Delta-Capable Yes

SAP Solution Sales Configuration


210 PUBLIC Solution Configuration Analytics
Extraction from Archives No

Verifiable No

Data Modeling

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

KBID_I Internal identifier of a knowl­


edge base

CHARID_I Internal identifier of a model


element

VALUE Characteristic value

LANGU Language key

TXTLG Long description

CHANGED_AT Time of last change to the


transaction

8.2.14 Configuration Value Code Descriptions

/SLCC/CFG_VALUECODE_TEXT

Use

You use this DataSource to extract configuration value code descriptions from the /SLCC/CFG_VALUECODE
domain. The extraction takes place by way of the structure Interface: Generic transfer of text (ROTEXTSTR1).

Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

Content Versions No Content versions exist

SAP Solution Sales Configuration


Solution Configuration Analytics PUBLIC 211
RemoteCube-Capable No

Delta-Capable No

Extraction from Archives No

Verifiable No

Data Modeling

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

LANGU Language

KEY1 Key field

TXTMD Medium description

8.2.15 Configuration Data Type Descriptions

/SLCC/CFG_DATATYPE_TEXT

Use

You use this DataSource to extract configuration data type descriptions from the /SLCC/CFG_DATATYPE
domain. The extraction takes place by way of the structure Interface: Generic transfer of text (ROTEXTSTR1).

Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

Content Versions No Content versions exist

RemoteCube-Capable No

Delta-Capable No

Extraction from Archives No

SAP Solution Sales Configuration


212 PUBLIC Solution Configuration Analytics
Verifiable No

Data Modeling

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

LANGU Language

KEY1 Key field

TXTSH Short description

8.2.16 Configuration Author Descriptions

/SLCC/CFG_AUTHOR_TEXT

Use

You use this DataSource to extract configuration author descriptions from the /SLCC/CFG_AUTHOR domain.
The extraction takes place by way of the structure Interface: Generic transfer of text (ROTEXTSTR1).

Technical Data

Application Component SAP Solution Sales Configuration (CRM-SLC)

Exchange Available as of Release 1.0

Shipment

Content Versions No Content versions exist

RemoteCube-Capable No

Delta-Capable No

Extraction from Archives No

Verifiable No

SAP Solution Sales Configuration


Solution Configuration Analytics PUBLIC 213
Data Modeling

Fields of Origin for the Extraction Structure

Fields in the Extraction Description of the Field in


Structure the Extraction Structure Table of Origin Field in the Table of Origin

LANGU Language

KEY1 Key field

TXTMD Medium description

SAP Solution Sales Configuration


214 PUBLIC Solution Configuration Analytics
9 Operations Information

Certain administrative activities are required to use SAP Solution Sales Configuration. For more information
about the use and administration of the application, see the following sections:

Related Information

Monitoring Concept [page 215]


Logging and Tracing [page 215]
Cache Management [page 217]
Frequently Asked Questions [page 220]

9.1 Monitoring Concept

Use

Wily Introscope is a third-party administrative tool from Computer Associates. It is used for application
performance monitoring and diagnostics, and can be integrated with SAP Solution Sales Configuration.

More Information

For more information about Wily Introscope, see [Link]


..

For information about the installation, setup, and configuration of Wily Introscope, see SAP Notes 797147
(Introscope Installation for SAP Customers) and 1237887 (Introscope 7.2.3 Release Notes).

9.2 Logging and Tracing

You can implement logging and tracing in SAP Solution Sales Configuration using the standard logging
capabilities provided in the Java Development Kit (JDK). The package [Link] provides logging
capabilities via the class Logger.

After installing the solution modeling environment plug-in in Eclipse, you can enable logging in the
[Link] file.

SAP Solution Sales Configuration


Operations Information PUBLIC 215
Alternatively, you can use the general Java util logging settings. For more information, refer to the Java logging
application programming interface (API) documentation.

SLG1 Logging

You can check SSC log details in transaction SLG1, for the following components:

● /SLCC/ (CRM)
● /SLCE/ (ECC)

Java Netweaver Logging

The application (session) log is important for the understanding and initial analysis of the issue as well as the
technical flow of the process.

You can create an application log using the instructions in SAP Note 1090753 (Creation of logs for
WebChannel/E-Commerce applications).

You can create a session-specific log using the instructions in SAP Note 921409 (Enable session tracing in
mySAP CRM 5.0 java components).

9.3 Setting the User Exit Upload Size Limit in CRM/ECC

You can configure the maximum size limit for the uploaded user exit (.jar) files. To do this, perform the following
steps:

1. In the ABAP backend system, a new transaction code /SLCE/FILE_SIZE has been delivered by SSC.
Execute this transaction code to maintain the maximum permissible size limit for the uploaded file.
2. When you enter the transaction, you need to maintain a single integer entry in the view. This value will
correspond to the size limit of the uploaded file in MBs (megabytes).
3. Save your entries.

How this works?

Considering an entry has been maintained in the above view, when we upload a file using the Solution
Modelling Environment (SME), the ABAP back end enforces this size limit and if the size of the file exceeds this
value, INSERT_EXCEPTION, a kind of exception is returned to the SME, and a message is logged in the ABAP
SLG1 application logs as follows:

Object: /SLCE/ or /SLCC/

Sub-object: DATALODER

Message: User exit upload failed. Size for the filename & exceeds the limit & MB.

SAP Solution Sales Configuration


216 PUBLIC Operations Information
DEFAULT VALUES: If the end user has not maintained any value in this field, a default value of 20 MB is taken
as the maximum permissible file size.

9.4 Cache Management

Clearing SAP Solution Sales ConfigurationRuntime Engine Cache on


NetWeaver Java Server

You can clear the SAP Solution Sales Configurationruntime engine cache on the NetWeaver Java server using
the procedure below:

1. Log in to NW Operations Start & Stop

Logging on to NW
2. Once you click on Start & Stop, go to the Java Applications tab
3. Search for keyword slc and select the component cdev~fbs_slc_java

Selecting the Component


4. Click on Restart to refresh to clear the cache

SAP Solution Sales Configuration


Operations Information PUBLIC 217
Refreshing the Cache

Monitoring SAP Solution Sales ConfigurationRuntime Engine Cache on SAP


Management Console

You can monitor SAP Solution Sales Configuration runtime engine cache on SAP management console using
the procedure below:

1. Go to Console Root SAP Systems W73 localhost0 AS Java Caches


Right click and Refresh.
2. In the details window, filter the list of AS Java Caches by /AP/* to view further details of the relevant
caches

Monitoring SAP Solution Sales ConfigurationRuntime Engine Cache on SAP Management Console

9.5 Solution Configuration Support - Backend Utilities

Use the solution configuration support to access (transaction /n/SLCE/CFG_SUPPORT in ECC and /n/SLCC/
CFG_SUPPORT in CRM) SSC related utilities.

SSC Download XML

Here, you can download the sales data in an XML, simply by entering the relevant document and item numbers.
IPC does not store data in an XML but SSC does.

SAP Solution Sales Configuration


218 PUBLIC Operations Information
Knowledge Base Preload

Here, you can preload some standard data and inputs for the configuration page, to enhance performance of
the tool. The knowledge bases are synced with a cache that is called when the pre-defined set of inputs are
entered to generate the configuration page.

You can do this simply by entering the product name, type, its validity date, and the name of the production
system.

Initialize Configuration DB

This utility is used to initialize the replication of classical knowledge bases generated in SAP ERP, from the
SCE* tables to the COMM_CFG* tables.

A similar standard utility report CFG_ERP_INITIALISE_DB also exists for this purpose, but it is advisable to
not use this standard report in SAP Solution Sales Configuration. This standard report deletes all the advanced
mode knowledge-base runtime versions from the COMM_CFG* tables.

Update Cache for External Text and Variant Tables

Here, you can update the data that is stored in the cache, post updation of the data in the external text and
variant tables.

You can identify the specific table for updation and use this utility to process the change in data.

Delete Orphan Configuration XML

Here, you can clean up your system and remove the configuration XMLs that are now obsolete.

You can simply simulate the procedure.

Compare KB Runtime Version

This utility calculates size information for a given set of knowledge base runtime versions.

SME Models STORAGE Migration

For models created with version lower than SME 4.0, this utility is required to update the KnowledgeBase table
for storage indicator. Models created with SME should have storage = 30 in table COMM_CFGKB.

SAP Solution Sales Configuration


Operations Information PUBLIC 219
Data Protection and Privacy

This utility provides the following functions:

● Displays all knowledge bases created/changed by a user


● Replace the user name from knowledge base tables

Maintain pFunction User Exits

This utility provides the following functions:

● Upload of pFunction user exits in the ERP database by uploading user exits in the form .JAR files.
● Deletion of pFunction user exits already existing in the database table /SLCE/USER_EXIT.

9.6 Frequently Asked Questions

For more information to use SAP Solution Sales Configuration, refer to the following SAP Notes:

● 2314556 (SAP Solution Sales Configuration - Frequently Asked Questions)


● 1876540 (SAP Solution Sales Configuration (SSC) - Solution Modeling Environment (SME) FAQ)
● 2246019 (SAP Solution Sales Configuration Commerce - Frequently Asked Questions)

SAP Solution Sales Configuration


220 PUBLIC Operations Information
Important Disclaimers and Legal Information

Hyperlinks
Some links are classified by an icon and/or a mouseover text. These links provide additional information.
About the icons:

● Links with the icon : You are entering a Web site that is not hosted by SAP. By using such links, you agree (unless expressly stated otherwise in your
agreements with SAP) to this:

● The content of the linked-to site is not SAP documentation. You may not infer any product claims against SAP based on this information.
● SAP does not agree or disagree with the content on the linked-to site, nor does SAP warrant the availability and correctness. SAP shall not be liable for any
damages caused by the use of such content unless damages have been caused by SAP's gross negligence or willful misconduct.

● Links with the icon : You are leaving the documentation for that particular SAP product or service and are entering a SAP-hosted Web site. By using such
links, you agree that (unless expressly stated otherwise in your agreements with SAP) you may not infer any product claims against SAP based on this
information.

Videos Hosted on External Platforms


Some videos may point to third-party video hosting platforms. SAP cannot guarantee the future availability of videos stored on these platforms. Furthermore, any
advertisements or other content hosted on these platforms (for example, suggested videos or by navigating to other videos hosted on the same site), are not within
the control or responsibility of SAP.

Beta and Other Experimental Features


Experimental features are not part of the officially delivered scope that SAP guarantees for future releases. This means that experimental features may be changed by
SAP at any time for any reason without notice. Experimental features are not for productive use. You may not demonstrate, test, examine, evaluate or otherwise use
the experimental features in a live operating environment or with data that has not been sufficiently backed up.
The purpose of experimental features is to get feedback early on, allowing customers and partners to influence the future product accordingly. By providing your
feedback (e.g. in the SAP Community), you accept that intellectual property rights of the contributions or derivative works shall remain the exclusive property of SAP.

Example Code
Any software coding and/or code snippets are examples. They are not for productive use. The example code is only intended to better explain and visualize the syntax
and phrasing rules. SAP does not warrant the correctness and completeness of the example code. SAP shall not be liable for errors or damages caused by the use of
example code unless damages have been caused by SAP's gross negligence or willful misconduct.

Gender-Related Language
We try not to use gender-specific word forms and formulations. As appropriate for context and readability, SAP may use masculine word forms to refer to all genders.

SAP Solution Sales Configuration


Important Disclaimers and Legal Information PUBLIC 221
[Link]/contactsap

© 2021 SAP SE or an SAP affiliate company. All rights reserved.

No part of this publication may be reproduced or transmitted in any form


or for any purpose without the express permission of SAP SE or an SAP
affiliate company. The information contained herein may be changed
without prior notice.

Some software products marketed by SAP SE and its distributors


contain proprietary software components of other software vendors.
National product specifications may vary.

These materials are provided by SAP SE or an SAP affiliate company for


informational purposes only, without representation or warranty of any
kind, and SAP or its affiliated companies shall not be liable for errors or
omissions with respect to the materials. The only warranties for SAP or
SAP affiliate company products and services are those that are set forth
in the express warranty statements accompanying such products and
services, if any. Nothing herein should be construed as constituting an
additional warranty.

SAP and other SAP products and services mentioned herein as well as
their respective logos are trademarks or registered trademarks of SAP
SE (or an SAP affiliate company) in Germany and other countries. All
other product and service names mentioned are the trademarks of their
respective companies.

Please see [Link] for


additional trademark information and notices.

THE BEST RUN

You might also like