Sap Cloud Applications Studio
Sap Cloud Applications Studio
5 Getting Started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.1 Getting Started with the Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2 About the SAP Cloud Applications Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.3 Feature Matrix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.4 First Steps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Installing and Updating the SAP Cloud Applications Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
User Roles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
User Setup Quick Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.5 Introduction to the Integrated Development Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
Working in the Integrated Development Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
My Solutions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Repository Explorer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Execute a Query to Explore a Business Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
Solution Explorer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Add New Item Dialog Box. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Properties Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
Trace Explorer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Working with the Wizards. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Icon Library (Studio). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Icon Library (UI Designer). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.6 Public Solution Model (PSM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
About the Public Solution Model (PSM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.7 Introduction to Business Object Modelling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
Business Object Modeling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Business Object Modeling: Data Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
Look Up the Representation Term of a Data Type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Business Object Categories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
12 Glossary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841
Overview
In this library you can view reference documentation about the SAP Cloud Applications Studio (“studio”). The
library contains reference documentation to help you get started with the studio, as well as information related
to quality assurance, information for studio administrators, and detailed information on development activities
in the studio. The library also contains reference documentation for the user interface designer (UI designer),
and references the general concepts and tools in the SAP cloud solutions.
In the studio, select Help SAP Cloud Applications Studio Help . The library opens in your browser and is
displayed using a content player. This option does not offer a function to search the library.
Note
This documentation does not describe the standard features and technologies in Microsoft Visual Studio.
For information about Microsoft Visual Studio, see http://www.microsoft.com .
Caution
Any software coding or code lines/strings (“Code”) provided in this documentation are only examples and
are not intended for use in a productive system environment. The Code is only intended to better explain
and visualize the syntax and phrasing rules for certain SAP coding. SAP does not warrant the correctness
or completeness of the Code provided herein and SAP shall not be liable for errors or damages cause by
use of the Code, except where such damages were caused by SAP with intent or with gross negligence.
First Steps
Note
Caution
Prior to working in the studio, you must change the
initial password provided to you in the SAP cloud This documentation covers the studio as a whole;
solution. therefore it describes all features that are available
within the studio. Not all of these features are avail
● User Setup Quick Guide [page 34]
able for every SAP cloud solution. Before using a
Before you can begin working in the studio, the initial
particular feature, you should consult the Feature
user has to create the required users for the studio and
Matrix to determine whether the feature is available
for the SAP cloud solution. This quick guide explains the
for the SAP cloud solution for which you are creat
entire process from creating service agents, requesting
ing a solution. If the feature is available, it is marked
users for these service agents, assigning an ID and an
with an X in the relevant column of the matrix.
initial password to each user, and assigning the required
work centers. In addition, it also explains the process to To check which features are available for which SAP
create business users for testing purposes in the SAP cloud solution, see Feature Matrix [page 28].
cloud solution.
● Localization Toolkit (SAP Business ByDesign only)
● User Roles [page 33]
[page 139]
Find out about the different user roles in the studio:
The localization toolkit is a set of development tools and
○ For development purposes: Studio Administrator instructions that enable SAP partners to extend and
and Developer adapt the capabilities of the SAP Business ByDesign
○ For testing purposes: Business User solution to provide a locally-compliant solution for cus
tomers.
Scripting Languages
● Scripting Language Reference [page 189] ● Syntax for the Implementation of Business Logic [page
The scripting language is used to define business ob 235]
jects and business object extensions as well as to imple You use these methods and keywords to implement the
ment the business logic for cloud partner solutions. business logic of your solution. For this task, you can
This lightweight language is easy to learn and to use also use predefined built-in functions and reuse serv
with its focused set of features. ices:
The keywords, methods and functions of the scripting ○ Built-In Functions [page 320]
language are described in separate sections according ○ Basic Reuse Libraries [page 274]
to the task you want to perform:
○ Reuse Libraries for Business Areas [page 308]
○ Syntax for Business Object Definitions [page 191]
● Basic Data Types [page 329]
You use these keywords and functions to define the
The scripting language supports basic data types such
structure and interface of business objects.
as string, numeric and Boolean values. In addition, the
○ Syntax for Business Object Extension Definitions existing metadata of the SAP underlying cloud platform
[page 218] for core data types (CDTs) and global data types (GDTs)
You use these keywords and functions to define the is made available.
structure and interface of business object exten
sions.
Check Out the Style Guides Check Out the Reference Guides
Style Guide for Writing System Message Texts [page 792] Reference Guide for Documentation of Cloud Solutions from
SAP [page 821]
This style guide provides you with the standards and guide
lines for writing system messages to be displayed on the This reference guide provides an overview of the main refer
user interface (UI) of your solution. It also provides the ence documentation types specific to the SAP cloud solu
standards and guidelines for writing system messages that tion.
are relevant for SAP Support; these messages are not dis
played on the UI.
Discussion Forum
You can find the discussion forum in the SAP Community at SAP Cloud Applications Studio Community .
The following information is relevant, if the tenants of your customer are upgraded to a new version. The steps
you need to take to upgrade your customer-specific solution differ according to the tenant type on which you
are developing.
Customer's Tenant
SAP maintains the upgrade to a new version to ensure high quality upgrade of the customer's production
tenant and test tenants.
The upgrade does not have any impact on your customer-specific solution. However, during the upgrade
process you cannot continue development.
Note
Please take into account that you cannot access the customer's tenant during the upgrade preparation
phase (this is one week before the downtime period of the upgrade) and during the upgrade period itself.
After the tenants have been upgraded, you continue working on your solution in the studio version that
matches the SAP upgraded cloud solution version. For example, if the SAP cloud solution has been upgraded
from version 1305 (May 2013) to version 1308 (August 2013), you continue working with the studio version
1308.
● If the solution still has the status In Development and you have activated its items before the upgrade, you
must open the solution after the upgrade in the corresponding studio version and reactivate the solution
items. Only then can you download the solution to upload it to the upgraded tenant.
● If you have downloaded a solution just before the upgrade, and then want to upload this solution to the
upgraded tenant, you must first open the solution in the studio version matching the SAP upgraded cloud
solution version. Then you must download it again, so that your solution is compatible with the version of
the SAP cloud solution. Now you can upload your solution to the upgraded tenant.
SAP does not upgrade your development tenant. However, if your solution has been deployed in a customer's
tenant, it will automatically be upgraded when SAP upgrades that tenant. You can then download the upgraded
version of your solution, upload it to the next studio version, and then create a patch for this solution.
You can upload solutions that have not yet been deployed in a customer's tenant as well as solution templates
to the next studio version or the subsequent studio version, for example:
If you have created your solution or ... you can upload it to this version ... and to this version
solution template in this version ...
SAP Solutions OnDemand Studio 1302 SAP Solutions OnDemand Studio 1305 SAP Cloud Applications Studio 1308
(February 2013) (May 2013) (August 2013)
Overview
Before you start working in the studio, you must connect to the repository, which contains any solutions that
you develop as well as the SAP public solution model (PSM) content.
Prerequisites
You have a user and password for the repository. For more information, see User Setup Quick Guide [page 34].
Procedure
Note
In most cases, only one System is available; this is your development repository.
To edit the repository system connection, from the Administration menu, click the pencil icon ( ) to
the right of the System field or select Options and Settings and edit the settings on the Connectivity tab.
Note
Result
After you have logged on to the repository, any solutions that you have created appear in the My Solutions tool
window. This is what you can do from here:
● You can open a solution to view and work on the solution content in the Solution Explorer.
● You can create a new solution. For information about creating solutions, see Create a Customer-Specific
Solution [page 177].
● When you hover over a solution in the My Solutions window, a quick info text is displayed. It shows the
name, description, type, and status of the solution and tells you, if the solution is a patch solution. This is
an example of such a quick info text:
Name: Y77VXGW3Y_
Status: In Development
Patch Solution: No
Related Information
This document provides information about what is new or changed in the SAP Cloud Applications Studio
version 1908 (August 2019).
Caution
Any software coding or code lines/strings (“Code”) provided in this documentation are only examples and
are not intended for use in a productive system environment. The Code is only intended to better explain
and visualize the syntax and phrasing rules for certain SAP coding. SAP does not warrant the correctness
or completeness of the Code provided herein and SAP shall not be liable for errors or damages cause by
use of the Code, except where such damages were caused by SAP with intent or with gross negligence.
In version 1908 of the SAP Cloud Applications Studio, the following features are new:
You can now create multiple instances of a business object or a business object node. This helps to improve
performance since you don’t have to use loop statements to create multiple node instances.
A new method called CreateMass is available in ABSL script files which takes a collection of node data that
need to be created, and returns the collection of node instances.
We recommend that you do not create more than 2000 records of business object nodes (standard object with
no custom logic) using the mass create API.
You can validate cookies and CSRF tokens within the ExecuteRestServices reusable function.
A new parameter in the rest service result structure is introduced which holds all the cookies sent from server.
You can get cookies from the result structure and use it in the next POST, PUT, PATCH or DELETE call for
authorization.
The items are part of a zip file. and the technical consistency of the zip file is ensured by running the assembly
process for the dependent files.
Note
Use Transport Management to move Cloud Applications Studio solutions from one system to another.
You can assemble the solution and your administrator can then create a transport request to move the solution
across test systems.
Note
You can now get a list of content where an extension field has been used.
Only the content created within the Cloud Applications Studio Solution are considered for the where-used list
Note
This is a phased release. You must create an incident to switch on this feature in your test and production
systems.
As an administrator, you can now track and analyze the extension fields created in the system by an
administrator and those that are created in the Cloud Applications Studio.
You can search for specific extension fields and track the size used by the extension fields
When you are using Cloud for Customer in offline mode, you can also use extensions created in the SAP Cloud
Applications Studio (Studio)
Note
This feature is available as a beta version for test use only. You must create an incident to switch on this
feature in your test systems. It has not been released for productive use. If you activate this feature, you
understand and agree to the following conditions: Feature is not covered by SAP support agreements or
warranty obligations. Any data loss or damage that may result from use of this feature is not the
responsibility of SAP or its representatives. You will not use this feature to process any personal data of end
users. SAP may change or remove this function at any time, and it may never appear in the generally
available version of the Service.
You can enable an existing solution for offline use only if the solution uses the offline supported features.
Extensions to business features not enabled for use in offline by standard, will also be not available for offline
use.
The following features are available in the offline mode in the Studio:
You can now add node extensions to a standard OData service either as a new entity type or merge the
attributes to an existing entity type based on association cardinality.
The standard operations, such as, Create, Read, Update, and Delete (CRUD) are available similar to the
standard entity sets.
While using a context dependent field in the business object definition (such as Region Code) you must always
define the context field (Country Code ) before the dependent field.
In case of multiple context dependent fields the immediate previous context element is considered.
● If you define a dependent field before the context field, you will receive a warning message, such as follows:
Define the context element 'AP.Common.GDT:CountryCode' before defining the value help for datatype
'RegionCode'
● If you assign a value for the ListID field of content dependent field within absl scripts, you will receive the
following error message: ListID is read only and cannot be changed.
● If you define a dependent field before the context field, you will receive a warning message, such as follows:
Define the context element 'AP.Common.GDT:CountryCode' before defining the value help for datatype
'RegionCode'
First Steps
Note
Caution
Prior to working in the studio, you must change the
initial password provided to you in the SAP cloud This documentation covers the studio as a whole;
solution. therefore it describes all features that are available
within the studio. Not all of these features are avail
● User Setup Quick Guide [page 34]
able for every SAP cloud solution. Before using a
Before you can begin working in the studio, the initial
particular feature, you should consult the Feature
user has to create the required users for the studio and
Matrix to determine whether the feature is available
for the SAP cloud solution. This quick guide explains the
for the SAP cloud solution for which you are creat
entire process from creating service agents, requesting
ing a solution. If the feature is available, it is marked
users for these service agents, assigning an ID and an
with an X in the relevant column of the matrix.
initial password to each user, and assigning the required
work centers. In addition, it also explains the process to To check which features are available for which SAP
create business users for testing purposes in the SAP cloud solution, see Feature Matrix [page 28].
cloud solution.
● Localization Toolkit (SAP Business ByDesign only)
● User Roles [page 33]
[page 139]
Find out about the different user roles in the studio:
The localization toolkit is a set of development tools and
○ For development purposes: Studio Administrator instructions that enable SAP partners to extend and
and Developer adapt the capabilities of the SAP Business ByDesign
○ For testing purposes: Business User solution to provide a locally-compliant solution for cus
tomers.
Caution
Any software coding or code lines/strings (“Code”) provided in this documentation are only examples and
are not intended for use in a productive system environment. The Code is only intended to better explain
and visualize the syntax and phrasing rules for certain SAP coding. SAP does not warrant the correctness
or completeness of the Code provided herein and SAP shall not be liable for errors or damages cause by
use of the Code, except where such damages were caused by SAP with intent or with gross negligence.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
The SAP Cloud Applications Studio (“studio”) for the SAP cloud solutions enables SAP partners, resellers, and
customers to adapt and enhance the solution capabilities of the SAP cloud solutions.
The development tools provided are presented in an integrated development environment (IDE) based on
Microsoft Visual Studio. Using the studio, you can develop, deploy, and test specific add-on functionality.
Furthermore, you can create and integrate new business content, services, and user interfaces to provide
complete micro-vertical business solutions.
The studio allows SAP partners, resellers, and customers to work with the same entities that SAP uses in the
core development of its cloud solutions and to develop solution capabilities that have the same look and feel as
the SAP standard cloud solutions.
For information about the development scenarios for customer-specific solutions, see Lifecycle Management
of Customer-Specific Solutions [page 143].
Features
For information about the specific features and tools provided by the studio, see Working in the Integrated
Development Environment [page 42].
You use the scripting language to define business objects and business object extensions and to implement the
business logic for solution capabilities. The scripting language is a lightweight scripting language. Its syntax is
easy to learn and to enter using a simple code editor.
The SAP public solution model (PSM) contains all entities in the SAP cloud solution that are released for use by
external consumers. External consumers can be partners who develop solutions such as add-ons and
integration scenarios on top of the SAP cloud solution or administrators who, for example, use SAP data
sources to create new reports in SAP' cloud solution.
For information about the basic principles of the PSM and SAP content types, see About the Public Solution
Model (PSM) [page 77].
You use the UI designer to create new and replace existing user interfaces (UI). You can create and modify UI
components using floorplans, patterns, and UI controls.
For information about the UI designer, see Introduction to the User Interface Designer [page 662].
You can generate web services to access SAP business objects and the business objects of add-on solutions.
You can also set up communication between business objects residing in different deployment units and
import external XML data into business objects.
For information about web services, see Web Services Quick Guide [page 586].
You can also integrate data from the SAP cloud solution with data provided by an online web service or
application by creating mashups. Mashups can include web searches, company or industry-specific business
information or online map searches.
For information about mashups, see Mashups Quick Guide [page 551].
Translation Support
You can extract text from certain project items and export it in an XML-based file format for translation into one
of the languages supported by the SAP standard cloud solution.
For information about the functions that support translation of a solution, see Translation Quick Guide [page
651].
Integration with the SAP cloud solution provides a strong lifecycle management backbone that supports the
full life cycle of solutions.
Cloud Readiness
The studio supports the development of solution capabilities that are tailored for specific customers. The
development and deployment of these solution capabilities causes no disruption to daily business because the
upload process of a solution to a customer's production system does not require any system downtime.
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes all
features that are available within the studio. Not all of these features are available for every SAP cloud solution.
Before using a particular feature, please consult the matrix below to determine whether the feature is available
for the SAP cloud solution for which you are creating a solution. If the feature is available, it is marked with Yes
in the relevant column.
General Features
SAP Business By SAP Hybris Cloud SAP Cloud for Travel and
Design for Customer Expense
SAP Business By SAP Hybris Cloud SAP Cloud for Travel and
Design for Customer Expense
Business Configuration
SAP Business By SAP Hybris Cloud SAP Cloud for Travel and
Design for Customer Expense
Extension
SAP Business By SAP Hybris Cloud SAP Cloud for Travel and
Design for Customer Expense
Note
For a list of supported Business Object Extensions, check the documents below:
SAP Business By SAP Hybris Cloud SAP Cloud for Travel and
Design for Customer Expense
Screens
SAP Business By SAP Hybris Cloud SAP Cloud for Travel and
Design for Customer Expense
Service Integration
SAP Business By SAP Hybris Cloud SAP Cloud for Travel and
Design for Customer Expense
To build solutions for the SAP cloud solutions install the SAP Cloud Applications Studio.
● To download the studio from the SAP Software Download Center, you need a valid S user.
● You are using one of the following operating systems:
○ Microsoft Windows XP
○ Microsoft Windows Vista
○ Microsoft Windows 7 or higher
● You have installed the following:
○ Relevant version of Microsoft .NET Framework
○ Relevant version of Microsoft Visual Studio 2010 Shell (Isolated)
○ Relevant version of Microsoft Silverlight
Note
Partners are required and solely responsible to regularly install security updates or patches provided by
Microsoft Corporation for the Microsoft .NET Framework and Microsoft Visual Studio 2010 Shell (Isolated).
As these components need to be installed/obtained by the partner, SAP is not responsible for installation of
any related security updates or patches. For more information, see http://www.microsoft.com .
● The studio version must match the release version of the SAP cloud solution for which you are creating a
solution.
Example
To determine the release version in the SAP cloud solution, click Help About [SAP cloud solution]
and verify that the Technical Release details match the latest build version of the studio.
● Previous Build
If relevant, you have removed the previous build. Check the sections below on updating your studio
installation
● You have signed the relevant contract and you have an S-User for the SAP Software Download Center and
for the Business Center for Cloud Solutions from SAP.
If you do not have access or you do not see any search results, contact solution partner management.
● You have maintained your access details and those of any additional contacts in your company by using the
Manage My Partnership Application at www.sappartneredge.com Partner Login My Partnership
Manage My Partnership Application .
Note
If the search does not produce any results, you might not have a valid S user. In such a case, please
contact solution partner management.
5. Click the Downloads tab, select your solution, and click the arrow icon. Choose the required solution and
click Download Basket from the list of available actions.
Note
If you encounter any issues, contact SAP Partner Management by writing an e-mail to
CloudSolutionPartner@sap.com.
Once you have installed the studio, you should make sure that you keep your studio installation up-to-date. SAP
usually publishes new studio builds every two weeks in the SAP Software Download Center. You can check the
build date of your installation under Help About SAP Cloud Applications Studio .
Note that as of version 1302 of the studio you can use the Check for Updates function in the Help menu. When
you select this function, the studio checks if a newer version of your studio is available on the SAP Software
Download Center . In case a new version is available, you are informed accordingly and you can directly start an
update process. The update process automatically removes the studio, downloads the latest version from the
SAP Software Download Center and installs it. Ensure that you save your work before updating the studio. You
require the same authorization for this process as for the manual download of the studio from the SAP
Software Download Center . If you experience problems with the automatic download,check if you can manually
download the studio from the SAP Software Download Center .
You can enable the studio to check for updates automatically. To do this, in the studio, go to Administration
Options and Settings Update , click the checkbox and enter how often the system should check for
updates.
When you install a new build of the studio the local help is now also installed automatically.
Developer
● Create and maintain all types of development objects, such as business objects and user interfaces, in the
studio, user interface (UI) designer, and administrator tools for the SAP cloud solutions
● Access work center views for Analytics
For more information about what the developer role can do, see the reference documentation in the section
Developer Desktop [page 360].
Studio Administrator
Caution
The studio administrator must not be confused with the administrator in the SAP cloud solution. These
users have different roles.
Studio administrators can perform all tasks that a developer can perform. In addition, studio administrators
can perform the following tasks:
For more information about the tasks that only a studio administrator can perform, see:
The business user role is used for testing within the development or test tenant of the SAP cloud solution.
Business users have authorizations and restrictions equivalent to users on a customer tenant; they have no
authorization within the studio.
Business Users can perform the following tasks (depending on their access rights):
For information on how to set up the users for each of the roles, see User Setup Quick Guide [page 34].
Before you can begin administrating, developing, or testing solutions in the SAP Cloud Applications Studio
(“studio”), you have to create development users (studio administrator and developer user roles) and business
users. You create these users in the SAP cloud solution
After these users have been created, the development users must change their initial passwords and maintain
contact data. Business users only need to change their initial passwords.
Caution
Development users with studio administrator or developer user roles are for use in the studio only.
User Roles
The user roles are Studio Administrator, Developer, and Business User.
The studio administrator user has authorization for the Administration toolbar and the Implementation
Manager, which provides access to a number of administrative tasks.
SAP Business ByDesign Application and User Management User and Access
Users
SAP Cloud for Travel and Expense Application and User Management User and Access
Tasks
Prerequisites
● Prerequisites for creating service agents, assigning user IDs and passwords, assigning work centers, and
creating business users:
○ You have an initial business user. The initial user is provided to you during the tenant provisioning
process. Only use the initial business user in the SAP cloud solution. Do not use it in the studio.
Resource Management
SAP Cloud for Travel and Expense Business Partners Service Agents
Note
To ensure you have access to the Business Partners work center, follow the instructions related to
the initial user in the Master Guide for SAP Cloud for Travel and Expense in the sections Define
Project Scope and Create Service Agent.
Before you start working with the Master Guide, make sure you have the latest version. You can find
the latest version at the following location: http://service.sap.com/instguides under Cloud
Solutions from SAP SAP Cloud for Travel and Expense .
○ To assign access rights to the business user, you need access to the following work center views:
Users
Business Users
Users
SAP Cloud for Travel and Expense Application and User Management Business
Users
SAP Business ByDesign Business Partner Data —> New Service Agent
SAP Cloud for Customer Business Partners —> New Service Agent
SAP Cloud for Travel and Expense Business Partners —> New Service Agent
Caution
If the Service Agent ID field is enabled, your entry must have the prefix EXT.
If internal number assignment is active, the system determines the new ID.
For the ID, the system uses the naming convention <LastName><FirstName><ServiceAgentID>. For
example, the service agent ID for Kate Jacob could be JACOBKATEEXT999.
1. Open the Business Users view by clicking Application and User Management User and Access
Management Business Users .
Users
Users
SAP Cloud for Travel and Expense Application and User Management Business Users
2. Search for the service agent (business user) that you created. For the search, enter one of the following:
○ *<ServiceAgentID> (for example, *EXT999)
○ Name
3. Click Edit and select Access Rights.
The Edit Access Rights quick activity opens.
4. In the Edit Access Rights editor, on the Work Center and View Assignment tab assign the following work
centers and views by selecting Assigned to User.
Caution
The work centers and views that are available for assignment depend on the SAP cloud solution,
therefore not all work center views may be available to you.
For more information about the features that are available to you in the studio and for some of which
you require these access rights, see Feature Matrix [page 28].
You can also use business roles to assign access rights to users. In the Edit Access Rights editor, click
the Business Roles tab. For more information, see the Business Roles Quick Guide in your SAP cloud
solution.
Note
You need at least one user with a studio administrator role
○ In SAP Cloud for Customer: Select all of the following views, if available:
Administrator or TS_APPLI
○ APPROVALPROCESSES_WCVIEW / Approval Processes
CATIONUSERMANAGE
○ ITS_FORMTEMPLATEMAINT / Form Template Maintenance
MENT / Application and User
Management ○ ITS_MASTERTEMPLATEMAINT / Master Template Maintenance
Caution
The users must change the initial password. To do this, they must log on for the first time to the SAP
cloud solution using the assigned user ID. The system requests a new password.
The user can use the same password in both the SAP cloud solution and in the studio.
In addition to the users for the studio, you also have to create business users for use in the SAP cloud solution
only. These business users are for test purposes and are not for use in the studio.
The Business User role is used for testing within development tenant or test tenant of the SAP cloud solution.
Business users have authorizations and restrictions equivalent to users on a customer tenant.
Caution
Do not assign the Partner Development work center and its views to a business user role. These users must
not have access to the studio.
You use business users to perform the following in the SAP cloud solution:
Steps
1. Create the required business users (administrator users and end users) in the SAP cloud solution.
2. Assign the required work centers and work center views to the business users.
Note
To enable testing of business configuration entities, at least one standard business user must be
assigned to the Business Configuration work center.
Development Users
Caution
After receiving your user details, before logging on to the studio, you must first change your initial
password in the SAP cloud solution. This is important, because you cannot change the initial password in
the studio.
Caution
Do not change the logon language defined for your user ID, as this causes inconsistencies in the solution.
The logon language must be English.
As a development user, you may have to create incidents for SAP Support. To ensure that these incidents are
sent directly to SAP Support, you must maintain your telephone number and e-mail address.
For information about reporting an incident in the SAP cloud solution, see Report an Incident [page 628].
Note
If you do not maintain your contact details, when you create an incident the system forwards the incident
automatically to a development user in your organization, who has maintained contact data.
1. Log on to the SAP cloud solution with your development user and proceed as follows:
2. Enter your telephone number and e-mail address and save your entries.
Business Users
Caution
After receiving your user details, you must first change your initial password in the SAP cloud solution.
The UI elements of the developer desktop are docked or auto-hidden on the left, bottom, and right. The tool
windows, menus, and toolbars available depend on the type of solution or item you are working on as well as on
the settings you have applied. You can move and position the UI elements to suit your working behavior.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
You can access the release documentation from the Help menu by selecting SAP Cloud Applications Studio
Help. The library documentation appears in your browser.
Note
This documentation does not describe the standard features and technologies in Microsoft Visual Studio.
For information about Microsoft Visual Studio, see http://www.microsoft.com .
Developer Desktop
The following sections describe the tools that you can use for the administration and lifecycle management of a
solution and how you can access the corresponding user interface (UI) elements.
Administration toolbar
The Administration toolbar provides a number of administrative tasks, such as creating and deleting customer-
specific solutions or solution templates and managing user sessions. You can also access the Session
Administration tool window from the Administration toolbar.
You can access the Administration toolbar in the View menu by clicking Toolbars Administration .
Session Administration
The Session Administration tool window displays a list of users in the release with open sessions. If you are
assigned the Administrator role, you can delete user sessions and any item locks that are applied for the
corresponding sessions. All other users can delete their own sessions and item locks, but they cannot delete
other users' sessions and item locks.
You can access the Session Administration tool window in the View menu and in the Administration menu.
The Implementation Manager ( ). is a tool for managing the lifecycle of customer-specific solutions. You can
access the lifecycle management functions provided by the release from a toolbar and a tool window:
For more information, see Implementation Manager Quick Guide [page 162].
Administration menu
You can access existing administration and lifecycle management functions from the Administration menu. The
Administration menu also gives you access to most of the functions provided by the My Solutions tool window.
● Log On
For information, see Log on to the Repository [page 18].
● Log Off
● Create Solution
For information, see Create a Customer-Specific Solution [page 177].
● Delete Solution
● Session Administration
● Solution Administration
Here you can access the following functions: Trigger Test Deployment, Request Quality Review, and Create
Patch.
● Implementation Manager
● Admin Log
● Switch Customer
For information, see Switch a Customer Assignment [page 158].
● Open UI Designer
If you have opened a solution, you can navigate to the UI designer by using this function.
For more information, see Introduction to the User Interface Designer [page 662].
● Switch On/Off Admin Mode in SAP Solution
If you want to define analytics content or create a mashup, you must switch on the admin mode in the
studio. This makes sure that the system saves your content and any changes you make in your solution.
Here is a list of the functions that use the admin mode:
○ Mashups (Data, HTML, URL), see Creating Mashups [page 553]
Note
You cannot switch on the admin mode for solution templates. For more information, see Solution
Templates [page 174].
The following sections describe the tools that you can use to develop a solution and how you can access the
corresponding user interface (UI) elements.
My Solutions
The My Solutions tool window provides functions that allow you to create solutions and to access the
repository. You must log on to a repository system to create and edit solutions in the studio.
Repository Explorer
The Repository Explorer tool window displays SAP content that is released with the public solution model
(PSM) such as business objects, data types, enhancement options, inbound service interfaces, and reuse UIs.
You can explore the content to gain an understanding of the repository structure and the business context and
use of SAP content, which you can reuse and enhance in your solution.
Solution Explorer
The Solution Explorer tool window displays a solution and the project items created for this solution, for
example, a business object or a screen. In the Solution Explorer, you can open items for editing and add new
items to a solution. You can also search for files within a solution.
The Add New Item dialog box displays the installed item templates that SAP provides for solution development.
You can add items such as business objects, different user interface (UI) components, and Web services to
your solution.
For more information, see Add New Item Dialog Box [page 58].
Properties window
The Properties window displays information about the item in your solution that is currently selected in the
Solution Explorer. When you select the solution, you can view solution properties such as the solution status.
When you select an item such as a business object or a UI component, you can view item properties such as
the activation status of runtime objects.
You can use the Options dialog box to configure the studio to meet your needs. You can view or define settings
for the code editor as well as those relating to connectivity, debugging, runtime metadata, external tools,
debugging and tracing, and update.
You can access the Options dialog box in one of the following ways:
● On the Connect to Repository screen, click the pencil icon ( ) to the right of the System field.
● In the Administration menu, click Options and Settings.
Text Editor
Define the default behavior of the code editor for business objects, business object extensions, and actions and
events. For example, you can display line numbers in the code editor for reference purposes. To access these
settings, in the navigation pane of the Options dialog box, expand the Text Editor node and then expand the
subnode for your project item.
SAP
● Connectivity: Enter the name, host, and proxy settings of your repository system. You can also enter your
user and password and set a default system. Click Save to save your settings.
● Runtime Metadata: Clear the cache.
● Debugging and Tracing: Enter your debugging and tracing options.
For more information, see About Debugging [page 631].
● Update: Select the Check for Updates checkbox. Next time you log on to the studio, if a new studio build is
available, the system prompts you to confirm that the system should be updated.
For more information, see Installing and Updating the SAP Cloud Applications Studio [page 30].
In the release, document windows provide a view of the items that you add to your solution. Examples of items
that you can open, edit, and save in a document window are business object definitions, extensions for existing
business object definitions, data sources, and business object queries. The type of document window in which
an item opens depends on the type of item. For example, when you open a business object definition, the
business object file is displayed in the code editor.
Document windows are displayed on tabs in the center of the developer desktop. You can switch between open
document windows by using the tabs. You can also view multiple document windows side-by-side.
You can open an item in a document window by double-clicking the item in the Solution Explorer.
Note
If you double-click an item that represents a user interface component, such as a quick activity floorplan
(QAF) screen or a business configuration view, the item file opens in a separate window in the UI designer.
The Error List displays errors, warnings, and messages produced as you edit code, such as syntax errors.
You can display the Error List in the View menu by selecting Error List and then use the Errors, Warnings, and
Messages buttons to select the entries you want to display. By default, the Error List is displayed at the bottom
of the developer desktop below the document windows.
Output window
The Output window provides several views depending on the mode you are working in. The following views are
available:
● Solution
If you are in design mode, this view displays status messages for business objects. These messages
include errors that occur when you activate, check or clean a solution or a business object. For example,
the Output window displays a message if it is not possible to compile a business object.
For more information, see “How you can solve business object activation errors" in Activate a Business
Object [page 420].
● Debug
If you have started debugging, this view displays tracing information that the system is collecting during
the debug run. For more information, see Debugging User Interface [page 635].
You can access the Output window in the View menu by clicking Output.
The wizards in the studio guide you through a logical sequence of steps, making it easier and quicker for you to
perform development activities that are complex, unfamiliar, or infrequently performed. All wizards are easy to
access and follow similar user interface (UI) patterns.
For more information, see Working with the Wizards [page 70].
The release's debugging user interface is composed of several elements, which enable you, for example, to
choose debugging functions, to view information provided by the debugger, and to specify debug settings. For
more information, see Debugging User Interface [page 635].
Trace Explorer
The Trace Explorer is a tool for gathering and analyzing diagnostic information.
5.5.2 My Solutions
The My Solutions tool window provides functions that allow you to create solutions and to access the
repository. You must log on to a repository system to create and edit solutions in the studio.
Features
When you open the studio, you first log on to the repository. By default, the My Solutions tool window is
displayed on the left of the developer desktop. You can also open the My Solutions window in the View menu.
The My Solutions window shows all solutions that are available in the repository. The solutions are displayed as
follows: [Solution Type] [Solution Description] (Technical Name), for example: CarParkSolution
(YQE1PZ2IY) or BCTest (YA2F975KJ).
You can access the following functions from the My Solutions tool window:
● Log On
For information about logging on to the repository, see Log on to the Repository [page 18].
● Create Solution
Tip
You can also access some of these functions from the Administration menu.
Related Information
The Repository Explorer tool window displays SAP content that is released with the public solution model
(PSM) such as business objects, data types, enhancement options, inbound service interfaces, and reuse UIs.
You can explore the content to gain an understanding of the repository structure and the business context and
use of SAP content, which you can reuse and enhance in your solution.
Prerequisites
To display SAP content in the Repository Explorer, you must log on to the repository. For information, see Log
on to the Repository [page 18].
You can open the Repository Explorer tool window in the View menu by clicking Repository Explorer. You can
dock the tool window on the edge of the developer desktop or as a tabbed document. For best readability, we
recommend that you dock the Repository Explorer as a tabbed document.
The Repository Explorer displays different content types on separate tabs. The window is split into two panes: a
tree view of the entities and a documentation pane. You can view the documentation for an entity by clicking
the entity in the tree view. You can position the documentation pane at the bottom by clicking the Horizontal
button or on the right by clicking the Vertical button.
On the Business Objects tab, you can explore all SAP business objects that are released with the public solution
model (PSM) by doing the following:
● Explore the repository — When you open the Repository Explorer, the tree view displays all SAP business
objects. You can expand the tree view to display the business objects nodes, the node elements, and the
relationship between business object nodes, which is called an association. You can also show and hide
entities in the business object model by using the following buttons:
○ Actions
○ Associations
○ Nodes
○ Queries
You can execute the query by selecting Execute Query in the context menu of the query. For more
information, see Execute a Query [page 53].
● Search business objects — You can search for an SAP business object by entering the name of the
business object in the search field. You can also filter the search results by namespace and/or deployment
unit.
Tip
If the system cannot find any entities that match your search term, you can try the following:
○ Click the Clear Search button ( ) to search in all namespaces and development units (for
business objects) or usage categories (for data types).
○ Enter a different spelling or search term.
● View information — You can hover over an entity in the tree view to display information about the entity
such as the object category or the subelement type. The information also indicates whether write access is
allowed for an entity and whether the entity is deprecated.
● View documentation — You can click a business object and its elements to display comprehensive
documentation in the documentation pane. On the Description tab, you see the business object (element)
documentation; the data type information is displayed on the Data Type tab of the documentation pane
and is also accessible via the Data Types tab as described below.
On the Data Types tab, you can explore all SAP data types that are released with the public solution model
(PSM) by doing the following:
● Search data types — You can search for an SAP data type by entering the name of the data type in the
search field. You can also filter the search results by namespace and/or usage category, for example,
Action, Key, or Message.
● View information and documentation — You can hover over an entity in the tree view to display
information about the entity such as the namespace. The information also indicates whether you can
extend a data type and the usage category of the data type. The usage category describes in which context
a data type can be used. For more information, see the following table.
Code Data Type Context Can only be used as context structure of a code data type.
Core A core data type according to CCTS that has unrestricted us
age.
Message Intermediate Can only be used in message types, but only at intermediate
levels and not for the message type itself.
On the Enhancement Options tab, you can explore all SAP enhancement options that are released with the
public solution model (PSM) by doing the following:
● Search enhancement options — You can search for an SAP enhancement option by entering the name of
the enhancement option in the search field. You can also filter the search results by namespace.
The documentation of the enhancement options describes how you can use an enhancement option, when
the enhancement option is called, and what it does. Furthermore, it gives information about the business
configuration content you need to develop for an enhancement implementation, the scoping requirements
in the customer system, as well as information about the filters, the input parameters and output
parameters, and testing activities.
On the Inbound Service Interfaces tab, you can explore all SAP inbound service interfaces and service operation
that are released with the public solution model (PSM) by doing the following:
● Search inbound service interfaces — You can search for an SAP inbound service interface by entering the
name of the inbound service interface in the search field. You can expand the tree view to display the
service operations. You can also filter the search results by namespace.
● View information and documentation — You can hover over an entity in the tree view to display
information about the entity such as the namespace.
On the Reuse UIs tab, you can explore the SAP reuse UIs that are released with the public solution model
(PSM). The reuse UIs are grouped by UI type:
● Embedded Component
● Modal Dialog
● Object Instance Floorplan
● Object Value Selector
● Quick Activity Floorplan
● Search reuse UIs — You can search for a reuse UI by entering a case-sensitive search term in the Search
field.
● View information — You can click a reuse UI to display the UI Type and Repository Path.
● Navigate to UI designer — You can open the reuse UI by right-clicking the UI and selecting Open in UI
Designer.
Related Information
The studio enables you to execute queries for SAP business objects and custom business objects to help you
better understand the business object data model.
For custom business objects, you can execute the QueryByElements query, which is generated automatically,
and complex custom queries. For more information, see Create a Query [page 421]
Note
Procedure
Note
If your business object contains various queries, choose the query that you want to execute in the
Select Query window.
2. Optional: In the Query Parameter Selection window, you can do the following:
○ Add or Remove parameters
○ Paste Values from Clipboard into the Lower Boundary field
○ Define the Maximum Number of Records
○ Calculate the Available Number of Records for Selection
3. To define the selection parameters, do the following:
1. Click the Parameter field to select a parameter.
2. To exclude records from the results, click the Include/Exclude field and select Exclude. The default
value is Include.
3. Click the Option field to select one of the following selection options: Equal to, Between, Contains
Pattern, Less Than, Less Than or Equal to, Greater Than, Greater Than or Equal to.
Result
The results list is displayed in the documentation pane. You can use the following options:
● Navigate by Association
Explore the query results by following the associations of the business object. Please note that this is not
possible, if the debugger is active.
● Reopen Search
Click this button to reopen the Query Parameter Selection and adjust the selection parameters.
● Single-Record View
Select a record and press the button to display the record in the Single-Record View window.
● Search window
Search for a string or term in the query results.
● Output Formatting Active
Toggle between the technical view and the user view. If you select Output Formatting Active, the user view
is displayed.
● Generate Code
Click this button to generate the .absl code that executes the query with the selection parameters used.
You can then copy this code into a new or existing .absl file. In case there is already coding in your .absl
file, there may be conflicts due to duplicate imports or variables, which you need to resolve.
Tip
If you cannot see all the buttons, click the down arrow on the right or enlarge the query results window.
The Solution Explorer tool window displays a solution and the project items created for this solution, for
example, a business object or a screen. In the Solution Explorer, you can open items for editing and add new
items to a solution. You can also search for files within a solution.
When you double-click a solution in the My Solutions tool window, the solution opens in the Solution Explorer.
By default, the Solution Explorer tool window is displayed on the right of the developer desktop. You can also
open the Solution Explorer in the View menu by clicking Solution Explorer.
In the Solution Explorer window, the solution is displayed with its description (= the name you have given your
solution) and the status information (for example, In Development). Below the solution, you can see all the
items and item objects of the solution.
View the properties of the solution and items Refresh the solution
Add a new item to the solution Search for files in the solution
Create a correction during production bug fix Close a correction during production bug fix
The Solution Explorer uses icons in front of the items and item objects to display status information. Depending
on the status, the icons used for items and objects change. For example, added to an item or object means
"checked out by me" and means that the item has no up-to-date runtime objects. As an example, the
following table shows the icons used for business objects:
Runtime objects of business object are up-to- Business object has been checked out by me
date
Runtime objects of business object are not up- Business object has been checked out by an
to-date other user
The activation status of the runtime objects of an solution is displayed in the Properties window. For more
information, see Properties Window [page 67].
Project
The project node displays the name of the project and the status of the solution, for example, In Development.
When you create a solution for the first time, the status of the solution is In Development and you can use all
available functions. When the status of the solution changes, for example, to Assembled, you can view the
solution, but you cannot make any changes. For more information about the life cycle of a solution, see
Lifecycle Management of Customer-Specific Solutions [page 143].
You can create folders to structure the items according to your preferences. Currently, items cannot be moved
between folders in the Solution Explorer.
Depending on the status of your solution, you can perform various actions for an item or the solution by right-
clicking a node or item. Actions that you cannot choose for the solution or item you have selected are grayed
out. Here is an overview of the actions that are available in the Solution Explorer:
● Activate
You can activate an item or solution to generate the runtime objects that are required for an item or the
solution to function. You must activate any new or modified items before you can test them in the SAP
cloud solution.
○ To activate all items of your solution, select Activate All Items .
○ To activate only the new or modified items, select Activate New and Changed Items . This option
speeds up the activation process.
○ To determine if an item has been activated, in the Solution Explorer, select the item. The activation
status is displayed in the Properties.
For more information on the activation of business objects, see Activate a Business Object [page 420].
● Check
You can use the following check functions:
○ For a selected item of the solution:
Right-click the element and select Check.
○ For all items of the solution:
Right-click the project node and select Check Items .
○ For all items and runtime objects of the solution:
Right-click the project node and select Check Items and Runtime Objects . This option checks
the consistency of the design-time files and of the generated runtime objects.
○ For running consistency check in background mode:
1. Right-click the project node and select Check Enable Background Mode .
2. Click on Check Items or Check Items and Runtime Objects to trigger the background
job. When the mode is triggered, you can continue to work on other solutions, and avoid the
timeout errors for large solutions.
3. Click on Check Display Logs to see the results of your check. The system shows the results
in a pop-up window confirming if the consistency check is successful or not.
Click on Check Disable Background Mode to switch to the earlier context menu option that
runs the check in fore-ground mode.
● Check In/Check Out/Check In All Files/Revert
Items that you have checked out (for example, when changing them) are locked by you and other users
cannot edit these items. A red check mark identifies items that you have checked out. When you have
finished editing an item, you can check it in to make it available for other users to edit. You can also check
in all items at the same time by right-clicking the solution and selecting Check In All Files. Items checked
out by other users are identified by a blue user icon. The Properties window displays the user that has
checked out the items.
The .absl file that you have changed during production bug fix can be reverted to its previous checked in
and activated version when you use the Revert action.
● Add
You can access the following functions via the Add option:
○ Add New Item
Tip
You can also open the Add New Item dialog box by clicking the button at the top of the Solution
Explorer tool window.
You can make changes to .absl files directly in the pre-production and production tenant to fix any bugs.
In general, if you want to make any code changes to a productive add-on, the recommended way is to create a
patch in the test/development tenant where the add-on was originally developed. The patch is then uploaded
to the production system only after thorough testing in the source tenant. With this feature, you can make the
code changes directly in the production and pre-production system.
For more information, see Bug Fix in Production and Pre-production Tenants [page 184].
Overview
The Add New Item dialog box displays the installed item templates that SAP provides for solution development.
You can add items such as business objects, different user interface (UI) components, and Web services to
your solution.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
● In the Solution Explorer, right-click the project and select Add New Item .
Tip
You can also open the Add New Item dialog box by clicking the button at the top of the Solution Explorer
tool window.
The Add New Item dialog box opens. By default, all items are displayed in the center pane in alphabetical
order.
You can also display items by category by selecting one of the categories from the list in the Installed
Templates pane under SAP:
○ Analytics
○ Business Configuration
○ Data Protection and Privacy
File Ex
Installed Template Icon tension Description How To...
Business Object .bo You can create a business object definition that ... Create a Business
specifies the structure and organization of the Object [page 398]
business object. On the basis of your business
object definition, you can then implement the
business logic and generate screens.
Code List Data Type .codelis Code list data types can, for example, be used in ...Create a Code List
t business objects or business object extensions. Data Type [page 472]
You can define configurable code list data types
via business configuration objects and business
configuration sets.
Form .xdp You can create a print form for a business ob ... Create a Print Form
ject. Print forms are read-only portable docu [page 508]
ment format (PDF) documents that are gener
ated from data stored in the business object.
You can define the data that you want to include
in the form and design the layout.
Mass Data Run .run A run that specifies the automatic mass proc ...Create a Mass Data
essing of a business object action. It contains Run [page 542]
the selection criteria and the processing results.
Query .qry You can create a query that contains search pa ... Create a Query
rameters and fields from different business ob [page 421]
ject nodes. You can then create an object work
list (OWL) that uses your query data in search
and information retrieval operations.
Reuse Library .library You can create a reuse library and define its ...Reuse Library Quick
functions to organize the code in your solution Guide [page 468]
or to reuse code in several script files.
Tax Decision Tree .bcctax You can create a tax decision tree for a country. ...Create a Tax Decision
Based on this decision tree, the system deter Tree [page 394]
mines the tax event for this country when you
create an invoicing document, such as a cus
tomer or supplier invoice.
File Ex
Installed Template Icon tension Description How To...
Analytical Report .report You can create a report based on an SAP data ... Create a Report
source or based on a custom data source you [page 534]
have created.
Combined Data Source .cds A combined data source combines data from ... Create a Combined
two or more data sources that share common Data Source [page
or similar characteristics. 530]
Data Source .ds You can create a data source that includes key ... Create a Data
figures and characteristics and transformation Source [page 527]
and aggregation rules. You can also reference
other data sources. You can then create a report
that uses your data source. To join or combine
data from different data sources, you can create
joined and combined data sources using the ad
ministrator tool for Analytics.
Joined Data Source .jds A joined data source joins data from two or ... Create a Joined Data
more data sources that share common charac Source [page 520]
teristics.
Key Figure .kf You can create a calculated or restricted key fig- ...Create a Key Figure
ure based on an SAP data source or based on a [page 535]
custom data source you have created. You can
use the key figure in a report. A calculated key
figure is determined using calculation rules or
formulas. A restricted key figure is restricted to
a specified characteristic value.
File Ex
Installed Template Icon tension Description How To...
BAC Elements .bac You can create business options, business top ... Create a Business
ics, and country options. Option [page 375]
Business Configuration .bco You can create a business configuration object ... Create a Business
Object (BCO) as the basis of a business configuration Configuration Object
set (BC set). [page 386]
Business Configuration .bcc You can create a business configuration set (BC ... Create a BC Set Us
Set set) based on a business configuration object ing an SAP BCO [page
(BCO). You can then assign your BC set to a 383]
business option using the Business Configura-
... Create a BC Set Us
tion Wizard.
ing a Custom BCO
[page 387]
Business Configuration QA.uicom You can create a business configuration view ... Create a Business
View ponent (BC view) for a business configuration set (BC Configuration View
set) to allow administrators to change the val [page 389]
ues defined in the BC set during fine-tuning. You
model the view using the UI designer.
Implementation Project .bct Fine-tuning project templates provide sample ... Create a Fine-Tuning
Template content for a specific scenario that is defined by Project Template [page
SAP. The fine-tuning activities you need to com 392]
plete for the template are explicitly listed.
File Ex
Installed Template Icon tension Description How To...
Personal Data .pdd You can enable disclosure of personal data ... Enable Data Disclo
Disclosure stored in custom BOs. The data protection offi- sure [page 476]
cer can access the data in the Data Protection
and Privacy work center.
Sensitive Personal Data .psd You can define data protection and privacy level ... Enable Read Access
of personal data. The fields defined as sensitive Logging [page 483]
personal data will be enabled for read access
... Enable Personal
logging. The fields defined as personal data will
Data for Extension
be enabled for destruction during the data re
Fields [page 485]
moval process.
File Ex
Installed Template Icon tension Description How To...
Business Object .xbo You can create business object extensions to ... Create a Business
Extension enhance SAP business objects by adding exten Object Extension [page
sion fields to them. You can then add the exten 442]
sion fields to forms, screens, reports, and
search categories. You can also use the exten
sion fields in script files.
Embedded Component EC.uicom An embedded component is a reusable user in ... Model an Embedded
ponent terface component that you can add to other Component [page
floorplans. The parent floorplan influences the 716]
behavior of the embedded component. You can
model this component in the UI designer.
Enhancement .enht You can create an enhancement of an SAP en ...Create an Enhance
Implementation hancement option to allow customers to apply ment Implementation
business rules that meet specific requirements, [page 466]
for example, country-specific requirements,
without modifying the standard SAP's cloud sol
ution. An enhancement implementation con
sists of a message definition, a filter, and a
script file.
Process Extension .xs You can create a process extension scenario to ... Create a Process Ex
Scenario link business contexts to other related business tension Scenario [page
contexts. You can then use the Scenario anno 461]
tation to specify that an extension field is availa
ble for all the business contexts in the scenario.
References to .ref You can select the customer-specific fields that ... Create References to
Customer-Specific you want to use in script files. Customer-Specific
Fields Fields [page 453]
File Ex
Installed Template Icon tension Description How To...
Data Mashup .MC.uima You can create a mashup that combines and ... Create a Data
shup displays data from both internal and external Mashup [page 556]
sources. You can then use the Data Mashup
Builder in SAP's cloud solution to transform or
merge external Web services with internal busi
ness data using industry-standard Web service
protocols.
HTML Mashup .MC.uima You can create a mashup that embeds HTML or ... Create an HTML
shup JavaScript code in a screen. Mashup [page 558]
Mashup Port Binding PB.uimas Create a port binding to add a mashup to your ... Create a Port Bind
hup floorplan. ing for a Mashup [page
554]
REST Mashup Web .WS.uima You can create a Web service based on the REST ... Create a Mashup
Service shup architectural style. For REST Web services, you Web Service [page
need to know the request URL and any relevant 559]
query parameters. You define the REST Web
service using the administrator tools for
mashup and Web service authoring. To integrate
the Web service in a screen, you must add the
Web service to a data mashup.
RSS/Atom Mashup .WS.uima You can create a Web service based on RSS or ... Create a Mashup
Web Service shup Atom feeds. For RSS or Atom feeds, you need to Web Service [page
know the end-point URL of the Web service or 559]
the WDSL location. You define the RSS/Atom
Web service using the administrator tools for
mashup authoring and Web service authoring.
To integrate the Web service in a screen, you
must add the Web service to a data mashup.
SOAP Mashup Web .WS.uima You can create a Web service based on SOAP. ... Create a Mashup
Service shup For SOAP Web services, you need to know the Web Service [page
WSDL location (URL). You define the SOAP Web 559]
service using the administrator tools for
mashup authoring and Web service authoring.
To integrate the Web service in a screen, you
must add the Web service to a data mashup.
URL Mashup .MC.uima You can create a mashup that sends data from ... Create a URL
shup SAP's cloud solution to the URL of an online Mashup [page 555]
service provider. The service provider uses the
data, for example, to perform a search, and the
results are displayed in a new browser window.
File Ex
Installed Template Icon tension Description How To...
Fact Sheet (FS) FS.uicom An FS is a one-page read-only overview of an ... Model a Fact Sheet
ponent object. It displays the object properties, can [page 697]
have different views, and can contain links for
navigating to related objects. You can model this
overview in the UI designer.
Guided Activity GAF.uico A GAF is a floorplan for an activity that can be ... Model a Guided Ac
Floorplan (GAF) mponent divided into a logical sequence of steps. It con tivity Floorplan [page
sists of a series of screens that guide the user 708]
through an activity to complete a specific task.
You can model this floorplan in the UI designer.
Modal Dialog (MD) MD.uicom An MD is a small movable and resizable window ... Model a Modal Dia
ponent that helps users perform a simple task. You can log [page 714]
model this dialog in the UI designer.
Object Instance OIF.uico An OIF allows users to create, delete, view, and ... Model an Object In
Floorplan (OIF) mponent edit a business object such as an employee, a stance Floorplan [page
purchase order, or a supplier's record. You can 702]
model this floorplan in the UI designer.
Object Value Selector OVS.uico An OVS supports users in selecting values for an ... Create an Object
(OVS) mponent input field. An OVS is most commonly called Value Selector Dialog
from an input field. You can configure an OVS Box [page 705]
component in the UI designer. You can also con
figure an OVS Control (an input field with a value
selection helper) in the UI designer and con
sume the OVS component.
Object Work List (OWL) OWL.uico An OWL is a list pane that contains business ob ... Model an Object
mponent jects such as purchase orders or opportunities. Work List [page 703]
Users can perform tasks on objects and trigger
follow-on processes. You can embed an OWL in
a view. You can model this list in the UI designer.
Port Type Package PTP.uico A PTP hosts one or more port types. A port type ... Create a Port Type
(PTP) mponent is a blueprint for an inport or an outport. You Package [page 713]
can create a PTP to facilitate navigation be
tween components that have inports and out
ports within the same PTP without any map
ping. You can configure these components in
the UI designer.
Quick Activity QA.QA.ui A QAF allows users to quickly perform a self- ... Model a Quick Activ
Floorplan (QAF) componen contained or short subtask of a larger task, for ity Floorplan [page
t example, create a bidder within the creation of a 700]
request for quotation. A QAF is a simple task-
specific alternative to an OIF. You can model this
floorplan in the UI designer.
Quick Create Floorplan QC.uicom A QC allows casual users to quickly create, de ... Generate Screens
(QC, not available for ponent lete, view, and edit a business object record, for a Business Object
SAP Business such as an account or an opportunity. A QC is a [page 429]
ByDesign) slide-in window, that allows users to edit the re
cord without navigating away from the UI they
are currently seeing. UIs that are created with
QCs are intended to be used on tablets and on
PCs.
Quick View Floorplan QV.uicom A QV is a preview on a thing. A thing is the repre ... Generate Screens
(QV, not available for ponent sentation of one or several entities in the system for a Business Object
SAP Business and is intended to match the data record cur [page 429]
ByDesign) rently displayed on the UI. The QV combines
several pieces of detailed information on a thing
without navigating away from the UI that the
user currently sees. Data displayed in a QV can
not be edited. QVs are intended to be used on
tablets and PCs.
Thing Inspector TI.uicom A TI allows the user to get a complete view of a ... Generate Screens
Floorplan (TI, not ponent thing. The TI shows all aspects of a thing and is for a Business Object
available for SAP a compact summary of all primary attributes, [page 429]
Business ByDesign) the tags, and the actions that can be carried
out. TIs are intended to be used on tablets and
PCs.
Thing Type Floorplan TT.uidat A TT describes the general UI properties of a ... Generate Screens
(not available for SAP aobject thing, such as its name and various icons on the for a Business Object
Business ByDesign) UI, its binding against a business object, and its [page 429]
key. It is used for navigating between the
screens that are thing-based and for the provi
sioning of REST services for a thing.
Work Center (WoC) .uiwoc A WoC groups task-specific activities such as ... Model a Work Center
managing purchase orders or planning and [page 712]
budgeting. Each WoC has multiple views. You
can model a WoC in the UI designer.
Work Center View .uiwocvi A view contains information or tasks related to a ... Model a Work Center
ew specific topic. Views can contain a worklist and View [page 710]
can link to other activity floorplans such as
QAFs or GAFs. Views must be assigned to a
WoC. You can model views in the UI designer.
File Ex
Installed Template Icon tension Description How To...
Communication .csd You can select a set of inbound and outbound ... Define a Communi
Scenario services that allows customers to create com cation Scenario [page
munication arrangements in SAP's cloud solu 619]
tion to exchange business documents electroni
cally.
External Web Service .wsid You can create an external Web service integra ... Integrate an External
Integration tion of type SOAP or REST. You can then ad Web Service Using
dress the Web service in your business logic to SOAP [page 612]
enable access from the SAP cloud solution to a
... Integrate an External
remote application.
Web Service Using
REST [page 614]
Internal .pid You can create a service integration definition to ... Configure Internal
Communication exchange data between two business objects Communication [page
that are located in different deployment units. 579]
The definition contains the configuration for
asynchronous communication between the
business objects.
Web Service .webserv You can create a Web service based on a busi ... Create a Web Serv
ice ness object. Web services enable remote access ice [page 606]
to the business object data using SOAP-based
communication.
XML File Input .pid You can create an XML schema definition that ... Create XML File In
allows customers to create an XML file, which put [page 581]
can then be used to import third-party data
from other systems into SAP's cloud solution.
Overview
The Properties window displays information about the item in your solution that is currently selected in the
Solution Explorer. When you select the solution, you can view solution properties such as the solution status.
When you select an item such as a business object or a UI component, you can view item properties such as
the activation status of runtime objects.
Features
You can access the Properties window in the View menu by clicking Properties Window or by pressing F4. You
can view the following solution properties or item properties by selecting the solution project node or an item in
the Solution Explorer.
Solution Properties
Property Description
Advanced
General
Compiler Version Version of the scripting language compiler that is used to check or activate the solution. This field
typically contains two numbers separated by a slash, for example, 1302 / 1211. The first num
ber indicates the compiler version of the .absl files. The number after the slash indicates the
compiler version of the.bo and .xbo files.
Description Description of the solution defined when the solution was initially created
Last Changed On Date and time when the project was last changed, that is, when an item was last added to or de
leted from the solution
For customer-specific solutions, this property can have one of the following values:
● In Development
● Assembled
● Disabled
● In Deployment
● Deployed
Type Type of the solution defined when the solution was initially created; this property characterizes the
focus and content of a solution.
For a customer-specific solution, this property can have one of the following values:
● Customer-Specific Solution
For information, see Create a Solution [page 177].
● Solution Template
For information, see Create a Solution Template [page 175].
Item Properties
Property Description
Advanced
Local Path Full path of the project item on the client computer
General
Business Object Type Code representation of the type of the business object in the repository
Code
Checked Out By User who has currently checked out the project item
Check Out On Date and time when the project item was checked out
Created On Date and time when the project item was created
Last Changed On Date and time when the project item was last changed
Status
Activation Status Status of the (runtime) objects of an item displayed in the Properties window:
Make sure that the status of the runtime objects is Runtime objects up to date when you
perform runtime tests. Otherwise, you may test on outdated runtime data. To update the runtime
objects, activate the item by right-clicking the item and selecting Activate.
To illustrate the activation status in the Solution Explorer, a red dot ( ) is displayed next to the
item icons whenever the runtime objects are not up-to-date.
Note
For detailed Information about how the status of items and object items is displayed by icons
in the Solution Explorer, see Solution Explorer [page 54].
The Trace Explorer is a tool for gathering and analyzing diagnostic information.
For more information about tracing, see Tracing Quick Guide [page 639].
Features
Overview
The wizards in the studio guide you through a logical sequence of steps, making it easier and quicker for you to
perform development activities that are complex, unfamiliar, or infrequently performed. All wizards are easy to
access and follow similar user interface (UI) patterns.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Wizard Features
Available Wizards
Studio Wizards
Wizard Use
Business Configuration Object Wizard Create a Business Configuration Object [page 386]
Business Configuration Set Wizard ● Create a BC Set Using an SAP BCO [page 383]
● Create a BC Set Using a Custom BCO [page 387]
Code List Data Type Wizard Create a Code List Data Type [page 472]
External Web Service Integration Wizard Integrate an External Web Service Using SOAP [page 612]
Mass Data Run Wizard Create a Mass Data Run [page 542]
Tax Decision Tree Wizard Create a Tax Decision Tree [page 394]
The following tables show some of the most frequent icons used in the studio.
Main Menu
Help Menu
My Solutions
Customer-Specific Solution
Patch Solution
in Development
Generic Actions
Customer-Specific Solution
Add New Item
in Development
Activate Clean
Open Delete
For more information, see Business Objects Quick Guide [page 398] and Add New Item Dialog Box [page 58].
Implementation Manager
For more information, see Implementation Manager Quick Guide [page 162].
Trace Explorer
Related Information
The following tables show some of the most frequent icons used in the user interface designer (UI designer).
For more information about what you can do with the tools, see Introduction to the User Interface Designer
[page 662].
Main Menu
Display<->Edit Activate
Controller
Data Model
Dedicated Struc
Structure Root Structure
ture
Dedicated Data
Data List
List
BO Browser
Composition that
Cross-Business- allows multiple in Dependent-Object
Object Association stances of the tar Association
get node
Intra-Business-Ob Cross-Business-
ject Association Object Association
that allows multi that allows multi
ple instances of ple instances of
the target node the target node
The SAP public solution model (PSM) contains all entities in the SAP cloud solution that are released for use by
external consumers. External consumers can be partners who develop solutions on top of the SAP cloud
solution such as add-ons and integration scenarios or administrators who, for example, use SAP data sources
to create new reports. The modular and homogenous architecture of the SAP cloud solution allows SAP to offer
external consumers a highly flexible means of developing additional functionality without modifying the
standard solution.
Basic Principles
The Repository Explorer tool window displays SAP content that is released with the public solution model
(PSM) such as business objects, data types, enhancement options, inbound service interfaces, and reuse UIs.
You can explore the content to gain an understanding of the repository structure and the business context and
use of SAP content, which you can reuse and enhance in your solution.
The SAP Cloud Applications Studio (“studio”) allows SAP partners, resellers, and customers to work with the
same entities that SAP uses in the core development of its cloud solutions and to develop solution capabilities
that have the same look and feel as the SAP standard cloud solutions. The content developed using the studio
resides on a different layer to the SAP content; therefore, SAP content that is released with the public solution
model (PSM) can be reused or enhanced without modifying the standard cloud solution. This content can be
released for read-only access or for read/write access.
External consumers can extend or include additional business logic in a variety of SAP entities to enhance the
business functionality of the solution. Examples are new extension fields in business objects, which can be
External consumers can reuse specific SAP content without modifying the standard solution. For example,
external consumers can reuse complete SAP user interfaces and enable navigation from a custom floorplan to
an SAP floorpan and from an SAP floorplan to a custom floorplan. It is also possible to reuse SAP application
logic including application logic that is relevant for legal requirements, for example, by reusing parts of SAP
business objects or data types.
Understanding Deprecation
The current structures and processes defined within the public solution model (PSM) remain stable for the
current and upcoming release. If it is necessary for SAP to make changes to PSM entities to meet technical or
business requirements, SAP uses a deprecation mechanism that allows external consumers to update their
solutions in an appropriate time frame.
Example
SAP plans to make changes to specific business object elements in the future:
● The business object elements are set to deprecated and, if an element is deprecated, all children are
also deprecated. For example, if a business object node is deprecated, all actions, queries, and
elements that belong to this node are also deprecated.
● SAP identifies the use of deprecated elements in a solution, informs the partner or other external
consumer who developed the solution, and provides information about the successor element.
● The external consumer creates a new version of the solution before another SAP release becomes
available.
● The new version of the solution is made available to customers for activation with the new release of
the SAP solution
● SAP revokes the respective business object element.
If you need to access business content for the SAP cloud solution that has not been released for consumption
through the PSM, you can request SAP to release this business content. To do this, proceed as follows:
1. Create an incident in the SAP cloud solution and use the prefix PSM.
For information on how to create an incident, see here [page 628].
2. Describe the use case of your solution and what you are trying to achieve (that is, what is the purpose of
your development/solution?).
3. Describe the required business content/entities to be released in PSM, and why you need them.
Deployment Units
A deployment unit is a piece of software that can be operated on a separate physical system, isolated from
other pieces of software. the SAP cloud solutions are organized in deployment units that group semantically
related business objects. For example, the Customer Relationship Management deployment unit groups
business objects such as Campaign, Lead, Opportunity, and Sales Order. The Foundation deployment unit
mainly contains master data objects, such as Material, Employee, and Customer.
Business Objects
A business object is a code representation of a self-contained, independent, real-world business concept, such
as a company, an employee, a sales order, an opportunity, or a product. The definition of a business object
describes the structure and behavior of a real-world business concept. Each business object resides in a
deployment unit and consists of a hierarchy of nodes, which represent the data.
Business object elements can be published for read-only access or for write access; write access means that
an external consumer can create, update, or delete instances of that business object by calling the core
services Create, Update, or Delete.
Data Types
Enhancement Options
An enhancement option is a repository object provided by SAP for a specific application to allow the standard
behavior of the application to be enhanced without modifying the standard solution. Enhancement options are
defined with metadata and documentation. A distinction is made between single-use enhancement options
and multiple-use enhancement options. If an enhancement option is for single use, it can be implemented only
once in a solution. If an enhancement option is for multiple use, it can be implemented more than once in a
solution.
For information about creating an implementation of an SAP enhancement option, see Create an Enhancement
Implementation [page 466].
An inbound service interface is an interface used to query or manage certain entities or a group of entities
within the SAP solution from an external application. Examples of inbound service interfaces are B2B
messages or web services. Inbound service interfaces consist of inbound service interface operations which
offer specific business functionality for an external consumer.
Embedded Components
An embedded component is a reusable user interface component that you can add to other floorplans. The
parent floorplan influences the behavior of the embedded component.
The object value selector (OVS) is a user interface (UI) pattern that supports users in selecting values for an
input field. It helps users to select one item from a table of business object instances. It is most commonly
called from an input field by means of a selection dialog icon. If an input field contains data, it is transferred to
the selection modal dialog. Unlike other input and value help controls, an OVS does not appear attached to an
input field; it appears within a modal dialog that floats above the entire window. It is possible to save and
organize queries. Examples of SAP object value selectors are Employee, Campaign, and Sales Order.
The full set of the SAP cloud solution's capabilities are outlined in a central business adaptation catalog (BAC).
This catalog organizes and structures the capabilities into a hierarchy of business areas, packages, topics, and
options. Solutions created in the studio require business configuration content that then appears as elements
(BAC elements) in the catalog and allows administrators to implement solutions in the production
environment.
Data Sources
A data source is an object that provides a multidimensional, analytical view of business data. Data sources are
the basis of analytical report content and are associated with a specific access context or can be unrestricted.
Extension Scenarios
Extension scenarios enable you to create an extension field in one business context and then add that
extension field to multiple other business contexts. The data stored in the extension field is then passed from
one business context to the next as part of a business process. The following extension scenarios have been
predefined by SAP:
Overview
The SAP cloud solutions are built using the concept of “business objects” to model the business environment.
This document provides an introduction to the structure and behavior of SAP business objects.
● User Interface
● Business Logic
All business logic is implemented in business objects that model real-world objects and processes.
The business object model is the central anchor for script coding, the user interface (UI), forms, and business
tasks.
Tip
Changes to the business object may require corrections to scripts, UI screens, forms, and so on. Therefore,
when developing an cloud solution, we recommend that you complete the business object design as far as
possible before proceeding.
A business object is a self-contained, independent business concept that is well known in the business world.
Typical business objects are Sales Order, Employee, and Product.
Business objects are classified into categories. For more information, see here [page 97].
Deployment Unit
Each business object belongs to a deployment unit, which is a piece of software that can be operated on a
separate physical system, isolated from other pieces of software. For more information, see here [page 205].
There are three starting points for the development of a business object model:
● The user interface (UI), which represents all the information the user has to interact with (such as data
entry, analytics, and reporting).
● An integration scenario with the message choreography, for example with SAP or a business-to-business
partner. Each message represents a business document with more or less structured information.
● The engines that provide services concerning a specific topic (such as a pricing engine or tax engine).
By analyzing the business scenario you want to model, you determine which processes and objects should be
modeled as separate business objects. Information that describes the business object in more detail is
modeled as elements within the business object.
To ensure the right naming according to the business semantics, the business object name is constructed /
chosen according to ISO 11179 naming standards.
The internal structure of a business object (BO) is described by nodes, which are connected by relationships.
The creation of a node is primarily based on the business understanding of the BO.
For a simple BO, you may decide not to create any nodes, in which case all elements belong to the root node of
the BO, which is created implicitly.
A separate node represents a logical / semantic group of elements that can be treated as a group even if the
elements could be assigned directly to the higher-level node.
The creation of a node implicitly introduces a composition, that is, a relationship between the parent node and
the child node. Compositions can be used to access features of the child node from the parent node (for
example, in action implementations). For each composition, a reverse association to the parent node is created
implicitly.
A Purchase Order is a buyer’s request to a seller to provide or deliver certain quantities of products at one or
several dates.
● Item – we can have one or more items, so this node is given a multiplicity of [1,n]
● Buyer – the buyer of the goods or services
● Seller – the seller of the goods or services
● Delivery Terms
Creating Sub-types
An object or object node can “play” different roles. You have to decide which roles are important from a
business point of view and should be represented explicitly by sub-types.
Analyze all objects and object nodes to determine whether some roles can be merged – this is an indication for
the existence of sub-types. Merging the roles leads to generalized objects or components.
In our Purchase Order we can see that Buyer and Seller are two types of the more general component “Party”.
There could also be other parties involved in this transaction, such as a Bill To party.
Internal association (also referred to as intra-BO association) enables navigation between nodes that is not
provided directly by structural relationships.
In our purchase order we can use association for navigation to simulate specialization by role.
Once you have defined the business objects and nodes you can assign elements of a particular data type to the
nodes.
To homogenize the use of data types, SAP defines global data types that represent business-related content in
conformance with widely used Web and business standards, such as DateTime, Amount, Currency, Text,
String, and Boolean.
All business objects and service interfaces share the same pool of global data types. For more information, see
Data Types [page 92].
External association (also referred to cross-BO association) is used to build relationships between business
objects. These relationships are classified as aggregations and associations and are described from a business
point of view.
Attributes with a name related to another object are replaced by the ID of the referenced object. The attributes
are then removed from the current structure and included in the referenced object. This integration produces a
local view of the object model.
● Party
● Product
● Location
In the element structure these associations are represented by the corresponding reference component.
Business object nodes offer services (operations) that can be accessed using interfaces. Operations and their
implementation are generated from the business object definition.
Business logic is added in script coding, which may call operations from other business object nodes.
Core Services
The core services of Create, Retrieve, Update, and Delete ("CRUD") are automatically handled by the studio.
Save
The Save service checks the consistency of the business object and saves to the database. This is
automatically handled by the studio.
This service creates a business object or business object node instance based on specific input parameters.
For example:
Status actions check the data of the business object and transfer the business object to another status, or
refuse the requested status change. For example:
● Release
● Approve
● Complete
The status of a business object can determine which actions are allowed.
Queries
A query is a service that returns a list of business object instances based on query parameters. Queries
support sorting, paging, and the use of "search engine" indexes.
● Simple queries for all elements in a business object node (QueryByElements) are automatically handled by
the studio
● Complex queries can also be created that allow joining over business object nodes and business logic (for
example, complex time dependencies)
Related Information
Each element of a business object must be assigned a data type. To homogenize the use of data types, SAP
defines consolidated global data types (GDTs) that represent business-related content in conformance with
widely used Web and business standards. All business objects and service interfaces share this same pool of
GDTs.
Note
You can access the data types that are available via the Repository Explorer [page 49]: Data Types.
SAP data types are located in the namespace: AP.Common.GDT (namespace: http://sap.com/xi/
BASIS/Global)..
Data Types
Example
There are two different structured data types. The first structured data type consists of content and one or
several attributes.
Example
Example
The aggregated data type consists of several basic or structured data types. It does not support labels, tooltips,
or default values. A typical example of an aggregated data type is Price.
Example
Identifier
You use the ID data type to identify a business object or business concept.
The ID data type has up to 60 characters, is not structured and does not contain the Content element. The
data type supports, for example, upper case conversion and alpha conversion. Alpha conversion fills purely
numeric user input like “4711” with leading zeros to allow better sorting in character fields. For example, if alpha
conversion is not used, an alphabetic sorting would lead to results such as: “1”, “10”, “100”, “1000”, “2”, “20”,
“200”, and so on.
String
Instead of a “string” data type, you use the data types Name, and Description, which are technically strings.
You use Name as the short text for a business object, and Description as the long text.
For rapid prototyping, you can use language-independent Name, Description, and Text to avoid language
handling, which costs extra effort in coding and on the user interface.
● SHORT = 10 characters
● MEDIUM = 40 characters
● LONG = 80 characters
● EXTENDED = 255 characters
Boolean
You use the following data types to identify dates and times:
Example
Number
You use the following data types to declare numbers, amounts, quantities, and measures:
You use the following data types to declare percent and ratio values:
Code Lists
A code list is a field with a set of predefined values. SAP provides a large number of code lists as data types that
you can use. The data type name ends with the word “Code” to identify it as a code list.
You should use an SAP code list where possible. If no appropriate SAP code list is available, you can define your
own code list data type with your own code list in the studio. There are two ways to create code lists:
● Static code lists. For more information, see Create a Code List Data Type [page 472]
● Configurable code lists. For more information, see .
Most SAP code lists are context-independent. Some of the code lists, however, are context-dependent, that is,
the code values differ depending on the context (for example, country).
The following table shows the values of the WorkAgreementAdministrativeCategoryCode code list of two
different countries.
You use the following data types to declare e-mail and Web addresses:
Example
Procedure
Related Information
Business transaction documents and master data objects are both used to represent self-contained,
independent business concepts, that are familiar to the business world (for example, in an international
standard or industry best practice).
● Campaign
● Opportunity
● Service Request
● CostCentre
● Customer
● Employee
● SalesArrangement
A business configuration object represents business configuration content that is not changed during normal
operations. These objects may contain active content and inactive content (new implementation or business
configuration change project).
● BusinessTransactionDocumentItemTypeCountry
A mass data run is the automatic and parallel processing of a typically huge number of selected objects in
accordance with given business rules. A mass data run object controls mass data runs on a selected set of
objects.
A technical object supports the technical infrastructure or IT Service and Application Management (ITSAM) of
the application platform.
● ObjectIdentifierMapping
Transformed Object
A transformed object provides consumer-friendly services across multiple business objects and their already
existing functionality. A transformed object is used if a view on multiple business objects is required in the
representation of a business object (for example, because the using application requires a business object).
Transformed objects are instantiated at run-time and do not have their own persistence – they rely on the
persistence of the underlying business objects.
● BusinessDocumentFlow
Dependent Object
A dependent business object is used as a reusable part in another business object. It represents a concept that
cannot stand alone from a business point of view. Instances of dependent objects can only occur in the context
of other business objects.
● Attachment Folder
● PartnerAddress
● PriceSpecification
● Text Collection
● Workplace Address
Template Object
A template object is used to describe objects representing similar subject matter. It specifies the union of all
components (nodes, relationships, elements, service operations) of the objects, without any redundancy.
● Customer Transaction Document (this is the template for SalesOrder, Quote, Return, ServiceOrder,
ServiceRequest, and so on)
● Product (this is the template for Material, Service Product, Warranty, and so on)
In this example you are going to build a solution to manage the allocation of car parking spaces to employees in
the SAP cloud solution.
● The solution contains one business object – representing a car park – of which there can be multiple
instances.
● The car park business object contains a node for "parking spaces" – of which there can be 0 to n.
● Each parking space is assigned to an Employee ID using an Object Value Selector (OVS) – this allows you to
look up the employees within the company.
● The parking space node has an association to the Employee business object – this allows you to retrieve
the employee's first and last name.
Caution
Any software coding or code lines/strings (“Code”) provided in this documentation are only examples and
are not intended for use in a productive system environment. The Code is only intended to better explain
and visualize the syntax and phrasing rules for certain SAP coding. SAP does not warrant the correctness
or completeness of the Code provided herein and SAP shall not be liable for errors or damages cause by
use of the Code, except where such damages were caused by SAP with intent or with gross negligence.
Tasks
Note
To add data to your business object, you declare an "element", enter a name, and assign it a data type.
Elements are entered according to the following syntax:
When you type the colon (:), the code completion function presents a list of valid data types, from
which you can select.
7. Each car park can have multiple car parking spaces. Therefore, you create a node with a multiplicity of [0,n]
to represent the car spaces within each car park. Each node requires an ID.
8. Each car space can be assigned to an employee. Therefore, you create an element of type EmployeeID to
record the employee.
9. To make the connection to the existing employees in the company, you create an association to the SAP
business object: Employee. This enables you to use the data from this business object in your screens. To
use the Employee association you first have to import the namespace of the Employee business object.
import AP.FO.BusinessPartner.Global;
10. You can add some additional information for the car space.
You can find the complete business object code here [page 114].
The next step is to create the screens that will display the data from the business object, and allow the user to
interact with the business object.
For each car park, you want a table listing the car spaces and the assigned employee for each space.
1. Open the Designer tab, click the AddFlexLayoutRow button and select the new row.
2. On the Toolbox tab, under Panes, select AdvancedListPane and drag and drop it onto the new row.
On the DataModel tab, you can see that the data field and the binding are created automatically.
You can use an Object Value Selector (OVS) to select the employee ID from a list of the existing employees.
1. Select the ParkingSpace_AssignedEmployeeID column and in the Property Explorer, under Appearance,
select ObjectValueSelector as the DisplayType.
1. For each column, edit the header Label in the Property Explorer. Suggested headings are as follows:
○ Parking Space ID
○ Assigned Employee ID
○ First Name
○ Last Name
2. Select one of the columns under Text Information.
3. Select the Label field and click the down arrow key.
4. The DependentProperty Editor opens. In the Overridden Text field, change the text and click OK. Save your
changes.
1. Select the list pane by clicking the area to the left of the first column.
2. In the Property Explorer select AdvancedListPaneVariant: ListPaneVariant.
You can create a variable title, so that the title reads "Car Park X" – where "X" is the car park ID.
8. Click OK.
1. On the Designer tab, click the text Root Node Elements to select the Section Group within the form pane.
2. In the Property Explorer, under Text Information set Show Header to False.
1. To edit the name of a field, select the field and edit the Label in the Property Explorer.
2. Save your changes.
1. On the Designer tab, select the Parking Spaces section and click Add FlexLayoutRow.
2. Open the BO Browser/Data Model and drag and drop the following elements from the BO Browser onto the
new row:
○ ParkingSpace_Disabled
○ ParkingSpace_Level
○ Vehicle_RegistrationNumber
3. For each field, edit the Label in the Property Explorer (Disabled Friendly Parking, Parking Level, Vehicle
Registration Number).
4. Select the Section Group and change the Field Group Header text in the Property Explorer to Details.
5. Open the DataModel tab and drag the newly added fields into the DataList on the left. This links these fields
to the individual parking spaces.
6. Click Save and Activate and close the UI designer.
The default work center title is taken from the business object name. You can change this title by editing the
work center floorplan (WCF).
1. In the Solution Explorer, double-click the WCF screen to open it in the UI designer.
2. On the Designer tab, click the folder icon to select the OberonCenterStructure.
3. In the Property Explorer, click the Title field.
4. In the DependentProperty Editor, select Overridden Text and enter a name for the work center (for example
Car Park Manager).
Note
If other users have completed this example, there may be multiple work centers with the same title. In
this case, you may want to give the work center a unique title, such as <your name> – Car Park
Manager.
5. Click OK, then Save and Activate and close the UI designer.
You have set up the QAF screen and created the OVS to find the Employee ID. However, you need a script file to
assign the value selected in the OVS to the Parkingspace_AssignedEmployeeID element and to update the
other fields (first name, last name, etc.) after this selection.
1. In the Solution Explorer, right-click the business object and select Create Script Files.
2. In the Create Script Files dialog box, create an AfterModify script file for the ParkingSpace node.
Assign rights to your business user so that you can access the new work center in the SAP cloud solution. For
more information, see User Setup Quick Guide [page 34].
1. Log on to the SAP cloud solution with a user that has access to the Car Park Manager work center.
2. Click the Car Park Manager work center to open the Car Park OWL.
From the OWL you can create new car parks or edit the details of existing car parks.
Further Development
Now that you have developed a solution, you can begin to appreciate the power and flexibility of the studio.
There are many enhancements you could make to this solution. Here are just a few ideas:
● Auto-refresh the OWL after creating a new car park. For more information, see here [page 119].
● Validate the car park on save, so that you cannot assign more than the total number of car spaces. An error
message is displayed to the user if they attempt to save a car park that fails this validation rule. For more
information, see here [page 138].
● Add a field to calculate the number of unassigned car spaces. For more information, see here [page 120].
● Create a read-only car park fact sheet. For more information, see here [page 124].
○ Create a View button on the OWL that links to the carpark fact sheet using object-based navigation
(OBN). For more information, see here [page 129].
○ Create a link from the car park fact sheet to the employee fact sheet using object-based navigation
(OBN). For more information, see here [page 132].
● Extend the employee business object to show the Parking Space ID on the employee fact sheet. For more
information, see here [page 136].
● Add a URL mashup to display the car park location on a map. For more information, see here [page 116].
● Add a form to provide a PDF printout of parking spaces and assigned employees.
// *Further Development*
// define an error message to be displayed if the BO fails validation
// message Message_Car_Park_Full text "The car park is full - no spaces
available";
// *Further Development*
// add an element to display how many parking spaces are available
// element Number_of_ParkingSpaces_Available : IntegerValue;
// declare an action to calculate the available car spaces
// action Update_AvailableParkingSpaces;
// *Further Development*
// add an element to record location information
// this field is used with a URL mashup to display the location of the car
park
// element CarParkLocation : LANGUAGEINDEPENDENT_MEDIUM_Description;
}
}
import ABSL;
import AP.FO.BusinessPartner.Global;
// Auxiliary flag that will help us decide whether we have to
// update the ToEmployee association.
var bUpdateEmployee = false;
// Our pointer to the employees' query.
var qryEmployees;
// Object that will hold the parameters for our employees' query call.
var paramEmployee;
// Collection of result values of our employees' query call.
var resultEmployees;
// Check whether our ToEmployee association is still up to date. If not, we'll
// have to update it.
if (this.ParkingSpace_AssignedEmployeeID.IsInitial()) {
// => No employee indicated for the parking space.
if (this.ToEmployee.IsSet()) {
// => Our ToEmployee association still holds the employee that had been
// associated before - so now we have to reset the association.
this.ToEmployee.Reset();
}
}
else if (!this.ToEmployee.IsSet()) {
// => We do have an employee indicated for the parking space, however,
// the association ToEmployee hasn't been initialized, yet.
// => Set our flag to true.
bUpdateEmployee = true;
}
else if (this.ToEmployee.IdentificationEmployeeID.EmployeeID.content !=
this.ParkingSpace_AssignedEmployeeID) {
// => We do have an employee indicated for the parking space, however,
// the association ToEmployee still holds the employee that had been
associated to the space before.
}
}
Overview
In this example you are going to add a URL mashup to the quick activity (QA) floorplan. This mashup will
display the car park location on a map, based on the location information entered.
Prerequisites
Procedure
1. Add an element on the root level of the Car Park business object to record location information.
6. In the Property Explorer, select the mashup outport from the drop-down list at the top.
7. Click the Anchor field under Extensibility.
The Anchor Modelling dialog box appears.
8. Click the plus sign to create a stable anchor for the floorplan.
9. In the Property Explorer, click the Referenced Anchor field under Extensibility.
The Anchor Modelling dialog box appears.
10. Click the plus sign to create a referenced anchor for the outport.
11. Click the three dots next to the XRep Path field.
12. In the Configured Anchors dialog box, click the anchor you created for the QA floorplan.
Result
The mashup is available from the Web Services menu on the QA. When you click the mashup, the URL is
opened with the value entered into the Car Park Location field as an input parameter.
In this example you are going to configure the car park object work list (OWL) to refresh automatically when a
new car park instance is saved on the quick activity floorplan (QAF).
Prerequisite
Note
Operations are executed from top to bottom, so you need to save the new business object instance
before running the default query.
Result
When you save a new car park instance on the QAF, then return to the OWL, the list of car parks is updated with
the car park that you created - you do not have to click Go to run the query again.
In this example you are going to add a field that automatically calculates the remaining car parking spaces
available, based on the total number of spaces and the number of spaces assigned to employees. You will use
an action to calculate the field value and you will call this action from a BeforeSave event on the root node. The
result is displayed as a column on the object work list.
Prerequisite
action Update_AvailableParkingSpaces;
this.AvailableParkingSpaces = this.Number_of_ParkingSpaces-
this.ParkingSpace.Count();
this.Update_AvailableParkingSpaces();
Note
This will calculate the available car spaces whenever the Car Park BO is changed at root level and
saved. It will not run the script if a car space is added or removed. To ensure that the script is run
whenever a car space is added or removed, later in this procedure, you will edit both the
AddRowHandler and the RemoveRowHandler to call the Update_AvailableParkingSpaces action.
Result
The available parking spaces are now displayed for each car park. The number will be updated if you edit a car
park and change the total number of car spaces, add a new space, or delete a space. You have to click Go on
the OWL to re-run the query and display the current information.
Overview
In this example you are going to create a fact sheet for a car park instance. The fact sheet (FS) provides a read-
only version of the information entered on the quick activity (QA) floorplan. The main steps in creating a fact
sheet are as follows:
Note
It is intended that the fact sheet will be accessed from a View button on the object work list (OWL). For
more information about creating the button and linking to the car park fact sheet, see here [page 129].
Prerequisites
Procedure
27. On the Controller tab, perform the following actions to create the inport:
1. Right-click Inports and select Add Inport.
2. Under Inport Configuration, select the check box OBN Inport.
3. Check that the Namespace and BO Model fields are populated correctly.
4. In the field Select Operation, enter the name Open_CarPark_fact sheet. This name is used to
identify the inport.
5. Click the three dots next to the PortType Package field and select the port type package for the
business object. This is located in the folder <project name>_MAIN/SRC.
6. In the PortType Reference field, select To_CarPark_Edit.
7. Click the Add Parameter button.
8. Click the three dots in the new Parameter row.
9. In the Parameter Binding dialog box, select the field OBN_NAV_KEY and click OK.
10. In the Property Explorer, under Events, in the OnFire field select New Event Handler.
11. In the Configure Event Handler dialog box, perform the following actions:
1. Enter the name Open_CarPark_fact sheet_Handler.
2. click the Add Operation button.
Overview
In this example you are going to create an object-based navigation (OBN) link from the Car Park Manager
object work list (OWL) to the Car Park fact sheet. You have already configured the fact sheet with an inport that
allows for OBN, now you are going to create an OBN outport to connect to this inport.
Prerequisites
Procedure
Overview
In this example you are going to create an object-based navigation (OBN) link from the Employee ID field on the
Car Park fact sheet to the Employee's fact sheet.
Prerequisites
Procedure
19. Click the Designer tab and select the Assigned Employee ID column.
20.In the Property Explorer set the Events > OnClick field to Open_Employee_Factsheet_Handler.
Overview
In this exercise you will extend the Employee business object and then enhance the Employee fact sheet to
display the car parking space assigned to the employee. This involves the following steps:
Prerequisites
Procedure
1. In the Solution Explorer, right-click your project and select Add New Item .
2. Select the Business Object Extension template, enter the name Employee_BO_Extension, and click Add.
3. In the Business Object Selection dialog box, select the namespace AP.FO.BusinessPartner.Global
and the business object Employee.
4. Open the business object extension and add the following code to the Common node:
node Common {
[Tooltip ("If the employee has been assigned a car parking space, the ID is
displayed here.")]
[Label ("Car Parking Space")]
element Assigned_Car_Parking_Space_ID : Text;
When a car space is modified, this script will update the extension field
(Assigned_Car_Parking_Space_ID) with the ID of the Parking Space.
13. Save and activate the script file.
Result
For employee's that have an assigned car parking space, the ID of the parking space is displayed on the
employee's fact sheet.
Note
Because the value gets assigned in the AfterModify script for the Parking Space node, it will not affect
existing entries. You need to create a new entry in the car park to see the result on the Employee fact sheet.
Overview
In this example you are going to create a validation script that will check if there are any car spaces available.
The script checks if the number of parking spaces assigned is greater than the total number of parking spaces.
If there are no available spaces, an error message is displayed and you will not be able to save your changes to
the car park.
Prerequisites
Procedure
1. Edit the car park business object to declare the message and specify the message text.
1. Declare the message after the business object name:
Result
When you edit a car park and create more car spaces than the total number of car spaces, an error message is
displayed and you will not be able to save your changes.
Overview
The localization toolkit is a set of development tools and instructions that enable SAP partners and customers
to extend and adapt the capabilities of the SAP Business ByDesign solution to provide a locally-compliant
solution. The localization toolkit enables customers and its subsidiaries to implement business processes for a
number of localization topics supported by SAP Business ByDesign.
The localization toolkit leverages the SAP Business ByDesign business configuration, its extensibility feature
(Key User Tool) and the Cloud Applications Studio (software development kit) to support the enhancements by
● General Ledger
● Tax
● Tax Reporting
● Fixed Assets
● Inventory
● Accounts Payable/Accounts Receivable
● Legal Reporting/Fiscal Closing
● Invoicing
● Payments
● Internationalization
● Languages
● Extensibility Features
Prerequisites
You have downloaded the SAP Cloud Applications Studio from the SAP Software Download Center at https://
support.sap.com/swdc . For information about the installation steps and the latest builds, please see
Installing and Updating the SAP Cloud Applications Studio [page 30].
You can access detailed information about the localization toolkit topics at SAP Business ByDesign -
Localization Toolkit . If you do not have access, please get in touch with your contact at SAP.
Note
You can refer to SAP Cloud Applications Studio Deployment & Landscape Basics to better understand
the basics of the landscape and the deployment of solution using SAP Cloud Applications Studio.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Overview
The studio supports the full end-to-end lifecycle management of customer-specific solutions. This includes
developing, testing, and deploying your solution as well as creating patches to deliver updates to your
customer
There are different scenarios in which you may want to develop a customer-specific solution:
Note
The following guidelines and restrictions apply to the development of customer-specific solutions in
general:
The following table shows which activities you can perform on which tenant type.
Create and Maintain Solution With BC Sets Us Yes No Create a BC Set Using an SAP BCO
ing SAP BCOs [page 383]
Customer-specific solutions for the SAP cloud solution are installed in a multi-tenant environment. The
solution provider needs to ensure that all solutions are of the highest quality and have the lowest possible Total
Cost of Ownership (TCO).
SAP requests you to conform to the criteria described in this document in order to ensure the quality of your
solution.
Functional Correctness
You must ensure that your solution has been tested and documentation is provided for all test cases.
Performance
You must ensure that your solution does not adversely impact the performance of the SAP cloud solution.
Response Time
Where the solution extends an existing user interface, a performance degradation of maximum 10% is
acceptable even if the response time exceeds the target value.
Simple Transactions
Examples of simple transactions are: Object Work Lists, purchase request, leave request.
Examples of complex transactions are: integrated transactions like order, but also simple analytical content
and fact sheets.
Complex Tasks
To enhance the end-user experience for complex tasks, the following must be true:
Examples of complex tasks are: analytical content, planning, multilevel bill of material explosion.
Security
You must implement measures to ensure the security of your solution. Furthermore, your solution must not
impact the security of the SAP cloud solution.
Code Scan
Security code scans are an important measure to minimize security risks. For customer-specific solutions, no
code scans are performed by default. SAP reserves the right to perform code scans of customer-specific
solutions in order to detect possible security risks.
If your solution functionality runs on an external system, you must conduct a security code scan or assign a
third party to conduct a security code scan of the external component. SAP reserves the right to request proof
of a successful code scan.
As there is no default security code scan for customer-specific solutions, you must take action to avoid the top
10 security risks as defined by the Open Web Application Security Project:
● http://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
You must implement measures to prevent security attacks. You can find more information on preventing
common security attacks at the following links:
Note
Useful guidelines and hints on secure programming can be found in the SAP NetWeaver Developer's Guide:
http://help.sap.com/saphelp_nw2004s/helpdata/en/58/4d767ed850443c891ad27208789f56/
frameset.htm
Backdoors
The solution must be free of intentionally hidden and non-documented features that circumvent security
measures (backdoors).
Vulnerabilities
Note
● http://www.owasp.org/index.php/OWASP_Top_Ten_Project
● http://cwe.mitre.org/top25/index.html
Documentation
You must provide customers with updates to the security documentation (for example, security bulletins) when
applicable.
Authorizations
The solution must provide the capability to separate the authorizations (roles) for different types of users (that
is, administrative and non-administrative users). Users must only have the permissions that are required for
their work (segregation of duties). The authorization concept must be documented (that is, delivered roles per
business and technical user). Search results may contain sensitive data and therefore must be filtered based
on the authorization level of the user.
Data Transfer
The transfer of data to other services or service providers must be configurable and documented.
Testing
Security Settings
Security settings and recommendations must be documented and available to the customer.
Supportability
You must provide for the maintenance and support of your partner solution throughout its entire product
lifecycle.
As you are fully responsible for the solution, you have a support contract with your customer. You must
describe any Customer SLA or Customer Support Agreement that exists for your partner solution.
Maintenance
Your solution must have a defined release and maintenance strategy and process, which must be linked with
the SAP interface, product, and maintenance process for the SAP cloud solution. This is required as SAP
reserves the right to deprecate entities or functions in the SAP cloud solution with a new release, which might
have an impact on your solution and might require that you need to update your solution.
Support Process
Support processes/interaction between your support department and SAP Support must be aligned and
documented.
Interface Deprecation
You must be able to react, properly and in time, to the possible deprecation of interfaces from SAP’s public
solution model (PSM).
Interfaces of the PSM can be deprecated by SAP. Generally, SAP provides alternative interfaces that continue
to offer the required business functionality.
SAP promises that deprecated interfaces remain fully functional within two releases (approximately one year).
During this period of time, you need to react by removing usage of the deprecated interfaces from your partner
solution.
The SAP cloud solution must remain fully functional if a customer-specific solution is switched off. If your
solution jeopardizes the standard functionality of the SAP cloud solution, SAP reserves the right to switch off
your solution.
If your solution is switched on again, it then must be able to resynchronize to the existing data in the system.
Overview
If the customer has already gone live with the SAP solution, you can develop and test your customer-specific
solution on the customer's test tenant. In this case, development is done on the test tenant and the finalized
solution is uploaded and activated on the customer's production tenant. This document describes the after go
live scenario. For information about how to request a test system, see the documentation of the SAP Solution.
Note
● If the test tenant is a copy of the customer's production tenant, on which your solution is already
activated, you can only create a patch for this solution. For more information, see Create a Patch on a
Customer's Test Tenant [page 152].
The following graphic gives a schematic overview of the lifecycle management process. The process is
explained in detail below.
In the SAP cloud solution, your customer has set up the following users for you:
● A business user for testing purposes in the SAP cloud solution on the test tenant.
● Users with the roles Studio Administrator and Developer in any tenants in which you are going to develop
and deploy the solution. If you both develop and implement the solution, you only need a user with the
Studio Administrator role. For more information, see User Setup Quick Guide [page 34] and User Roles
[page 33].
Process Flow
1. In the studio, you log on to the customer's test tenant and create a solution (Studio Administrator).
2. You develop your solution including the necessary business configuration content (Developer).
Note
You can create BC Sets using SAP BCOs only on your development tenant.
You can test specific solution content in the studio using the preview function.
You can also test your solution in the SAP cloud solution for the tenant on which you created the solution.
As a prerequisite, you must scope your solution. You have the following options:
○ In the studio, you trigger deployment of your business configuration content (Studio Administrator).
Note
If you have defined BAC elements for your solution, a dialog box opens when you use the Deploy
Business Configuration function. You have to select one of the following options:
This allows you to test both partial and complete activation of your business configuration content
in the development environment.
You then log on to the SAP cloud solution with your business user and perform your tests.
○ In the SAP cloud solution, you scope your solution manually (Business User).
To do this, you log on to the SAP cloud solution with your business user. In the Business Configuration
work center, you perform scoping for the business option that you created for your solution and for the
required standard functions of the SAP cloud solution.
You then perform your tests.
4. You assemble and download the solution (Studio Administrator).
After you have performed your tests successfully, in the studio, you log on to the test tenant to assemble
and download your solution. For more information, see the Implementation Manager Quick Guide [page
162].
Note
If you are working on a preproduction tenant and you have used the Deploy Business Configuration
function in the previous step, the system now removes the business configuration content from the
SAP cloud solution.
Note
If you are developing your solution on the customer's preproduction tenant, then you do not need to
upload the solution. Instead, after assembling the solution, go to step 7.
In the studio, you log on to the production tenant and upload the solution. .
6. You activate the solution on the production tenant (Studio Administrator).
After the solution has been successfully uploaded, you activate it on the customer's production tenant.
Note
Before activating the solution, we recommend that you inform the customer of any functions that may
be affected by the update. For example, if the administrator at the customer has adapted an analytical
report, this may be affected by any changes you have made to the same report.
Follow-On Activities
After the solution has been activated on the customer's production tenant, you can only make changes or
corrections to it by creating a patch. A patch follows the same lifecycle as the original solution, with the
exception that the business option does not need to be selected again.
Overview
If you need to make changes or corrections to a customer-specific solution after you have assembled it, you
can create a patch.
Note
● Any data created for the original solution in the SAP cloud solution and any scoping decisions and fine-
tuning settings are not copied to the patch solution. For testing purposes, you must therefore scope the
patch solution and create new test data.
● If your original solution contains a Web service, this Web service will have a different namespace in the
patch solution. You must therefore adapt the settings of your client testing tool to test the Web service
in your patch solution.
Prerequisites
In the studio, you have logged on to the customer's test tenant where you created the original solution and you
have opened this solution.
Note
Only users with the Studio Administrator role can create patches.
Procedure
Tip
You can always access the patch solution from the original solution by opening the Implementation
Manager and, on the Current Version tab, clicking the Open button next to the Patch Solution field. You
can also navigate to the original solution from the patch solution in the same way.
3. In the patch solution, make your changes. Then activate the patch solution.
4. You can test specific solution content in the studio using the preview function. To test your patch solution in
the SAP cloud solution, you have to enable the solution on the test tenant as follows:
1. In the Implementation Manager, click the Enable button next to the Solution Enablement for Business
User in Cloud Solution field.
The “Disabled” changes to an “Enabled” and the patch solution is enabled on the test tenant instead of
the original solution. For more information, see Enable and Disable Your Solution in the SAP Cloud
Solution [page 182].
Note
If a BC change project is open on the tenant before you enable the patch solution on the test
tenant, you will not be able to merge the change project unless you disable the patch solution. For
more information, see What You Need to Consider When a Change Project Is on the Same Test
Tenant [page 154].
2. In the SAP cloud solution, log on to the test tenant with your business user.
You will be able to see your patch solution in place of the original solution.
3. Complete your testing.
5. On the Implementation Manager toolbar, click the Assemble and Download button.
The system assembles the patch using the namespace of the original solution and downloads it to a .zip
file. This allows you to copy your corrections back to the original solution.
6. In the studio, log on to the production tenant on which the original solution is active, and click the Upload
button on the Implementation Manager toolbar. Select the .zip file containing the patch.
The system uploads the .zip file with your corrections and checks for any compatibility issues. The
solution has the status In Deployment and the solution version number is updated.
7. In the Implementation Manager, select the solution and click Activate.
Note
Before activating the solution, we recommend that you inform the customer of any functions that may
be affected by the update.
If you are developing customer-specific solutions on your customer's test tenant and your customer uses this
tenant for change projects at the same time, both of you need to consider the following information. Otherwise
your customer won't be able to merge the change project to the production tenant.
This information is not relevant when your customer has requested a separate test tenant that is only used for
the change project.
Note
As a general rule, the solutions on both tenants need to have the same version when the change project is
merged to the customer’s production tenant. Another rule is that a change project cannot be merged if a
solution template is being developed on the customer’s test tenant or has been uploaded to it. In such a
case, you must disable the solution template on the test tenant before the change project is merged.
Check this table to find out what needs to be done before the change project can be merged to the production
tenant. Answer the following questions and make a decision:
● Did a solution exist on the production tenant before the change project was created?
● Do you intend to create a solution or patch solution on the test tenant after the change project has been
created?
Did a solution exist on the Will you create a solution on What do you need to do?
PRODUCTION tenant? the TEST tenant?
No, there was no solution. Yes, I'll create a solution. Before the change project can be merged to the production
tenant, you need to do one of the following:
Yes, a solution existed. Yes, I'll create a patch solu Before the change project can be merged to the production
tion. I'll also enable it for the tenant, you need to do the following:
business user to allow the
● Disable the patch solution for the business user in the
patch to be tested.
test tenant.
● Make sure that the original solution is enabled.
Overview
You can develop a customer-specific solution on your development tenant and after having tested, assembled,
and downloaded the solution, you can upload it to the customer's tenant.
The following graphic gives a schematic overview of the lifecycle management process. The process is
explained in detail below.
Prerequisites
● In the SAP cloud solution, you have set up the following users:
○ Users with the roles Studio Administrator and Developer on the tenant on which you want to develop
and assemble the solution. For more information, see User Setup Quick Guide [page 34] and User
Roles [page 33].
Process Flow
1. In the studio, you check the current customer assignment and make sure that the ID of the customer for
whom you want to create and develop the solution is displayed (Studio Administrator).
For more information, see Switch a Customer Assignment [page 158].
2. You create a solution (Studio Administrator).
3. You develop your solution including the necessary business configuration content (Developer).
4. You test the solution (Business User).
You can test specific solution content in the studio using the preview function.
You can also test your solution in the SAP cloud solution for the tenant on which you created the solution.
As a prerequisite, you must scope your solution. You have the following options:
○ In the studio, you trigger deployment of your business configuration content (Studio Administrator).
Note
If you have defined BAC elements for your solution, a dialog box opens when you use the Deploy
Business Configuration function. You have to select one of the following options:
○ Deploy all business configuration content for your solution
○ Deploy only the business configuration content for your solution that is assigned to the
business options you have selected in the business adaptation catalog
This allows you to test both partial and complete activation of your business configuration content
in the development environment.
You then log on to the SAP cloud solution with your business user and perform your tests.
○ In the SAP cloud solution, you scope your solution manually (Business User).
To do this, you log on to the SAP cloud solution with your business user. In the Business Configuration
work center, you perform scoping for the business option that you created for your solution and for the
required standard functions of the SAP cloud solution.
You then perform your tests.
5. You assemble and download the solution (Studio Administrator).
For more information, see the Implementation Manager Quick Guide [page 162].
6. After you have performed a tests successfully, you log on to the customer's production tenant in the studio
to upload the solution. You activate the solution on the production tenant (Studio Administrator).
Note
Before activating the solution, we recommend that you inform the customer of any functions that may
be affected by the update. For example, if the administrator at the customer has adapted an analytical
report, this may be affected by any changes you have made to the same report.
7. In the SAP cloud solution, the customer activates a solution by selecting the relevant business option in
scoping.
After a solution has been activated on the customer's tenant, you can only make changes or corrections to it by
creating a patch. A patch follows the same lifecycle as the original solution, with the exception that the
business option does not need to be selected again. For more information, see Create a Patch on Your
Development Tenant [page 157].
Overview
If you need to make changes or corrections to a customer-specific solution after you have assembled it, you
can create a patch.
When you create a patch of a solution on your development tenant, the patch is created in the same solution
and namespace but with a different version number. For more information, see Patches [page 178].
Prerequisites
In the studio, you have logged on to your development tenant where you created the original solution and you
have opened this solution.
Note
Only users with the Studio Administrator role can create patches.
Procedure
If you have defined BAC elements for your solution, a dialog box opens when you use the Deploy
Business Configuration function. You have to select one of the following options:
This allows you to test both partial and complete activation of your business configuration content
in the development environment.
You then you log on to the SAP cloud solution with your business user and perform your tests.
○ In the SAP cloud solution, you scope your solution manually.
To do this, you log on to the SAP cloud solution with your business user. In the Business Configuration
work center, you perform scoping for the business option you created for your solution and for the
required standard functions of the SAP cloud solution.
You then perform your tests.
When you have finished testing, you can download your solution and then upload it to the customer's
tenant.
5. In the studio, in the Solution Explorer, right-click the project of your solution and select Check In All Files.
6. On the Implementation Manager toolbar, click the Assemble and Download button.
The system assembles the patch and downloads it to a .zip file.
7. Log off from your development tenant and then log on to the customer's tenant to which you have
uploaded the patch.
8. In the Implementation Manager, click the Upload button. Select the .zip file containing the patch.
The system uploads the .zip file with your corrections and checks for any compatibility issues.
9. In the Implementation Manager, click the Activate button.
The patch is activated in the cloud solution from SAP.
Overview
If you are developing customer-specific solutions on your development tenant, you can create solutions for
more than one customer. For example, if you are working on a solution for customer A, you can save your
solution and then switch to work on the solution for customer B. For this, you need to switch the customer
assignment. Afterwards, in the My Solutions tool window in the studio, only the solutions of customer B are
listed and you can create new solutions only for this specific customer.
Prerequisites
If your are logged on to your development tenant with a user that has the Developer role, you can only
switch a customer assignment. However, if you want to create a new customer assignment, you need to log
on with a user that has the Studio Administrator role.
Procedure
6.6 Administration
Users with the Studio Administrator role can use the Administration toolbar to access a number of
administrative tasks, such as creating and deleting customer-specific solutions or solution templates and
managing user sessions.
Tip
If the Administration toolbar is not visible in the studio, you can access it by clicking View Toolbars
Administration .
You can also use the functions for the studio administrator in the Administration menu.
The studio supports the full end-to-end lifecycle management of customer-specific solutions. This includes
developing, testing, and deploying your solution as well as creating patches to deliver updates to your
customer
For more information, see Lifecycle Management of Customer-Specific Solutions [page 143].
Solution Templates
You can create templates containing reusable items and upload these items to customer-specific solutions.
For more information, see Solution Templates [page 174] and Solution Templates Quick Guide [page 171].
Patches
If you need to make changes or corrections to a customer-specific solution after you have assembled it, you
can create a patch.
Maintenance Mode
A customer-specific solution is in maintenance mode, if it has been assembled and downloaded; the solution
status then is Assembled. You can make changes to the solution in a patch; however, you can only make
restricted changes to certain content types. These change and delete restrictions ensure that you do not make
changes to a solution that could lead to loss of data or create inconsistencies or errors on a customer's
production tenant.
Tasks
Create a Solution
You can design and develop customer-specific solutions to enhance the SAP standard cloud solution for a
specific customer. In the studio, you can create a solution in which all items that you develop or changes that
you make to existing entities are stored.
You can create templates containing reusable items and upload these items to customer-specific solutions.
Create a Patch
If you need to make changes or corrections to a customer-specific solution after you have assembled it, you
can create a patch. Depending on the tenant on which you are working, the process of creating a patch is
different:
Locks occur when an item, such as a business object, is being edited by another user or from another session.
As an administrator, you can delete locks for other users; all other users can only delete their own sessions and
corresponding locks.
Note
● Deletion of locks may result in the loss of changes made by the locking user, and should only be carried
out when absolutely necessary.
● Locks created by the UI designer can only be deleted by the user that created the lock; an
administrator cannot delete these locks.
Note
You cannot delete a solution on a production tenant. We recommend you switch the solution off by
deselecting it in Scoping. Then report an incident to request assistance from SAP.
Further Tasks
You use the Implementation Manager to manage the lifecycle of customer-specific solutions. The
Implementation Manager enables you, for example, to assemble and download a solution, upload and activate a
solution, and create a patch for a solution. If you are not able to activate a solution, you can carry out different
troubleshooting activities in the Implementation Manager.
For more information, see Implementation Manager Quick Guide [page 162].
You use the Implementation Manager to manage the lifecycle of customer-specific solutions. The
Implementation Manager enables you, for example, to assemble and download a solution, upload and activate a
solution, and create a patch for a solution. If you are not able to activate a solution, you can carry out different
troubleshooting activities in the Implementation Manager.
Note
Only users with the Administrator role can access the Implementation Manager tools. For more information
see User Roles [page 33].
If the Implementation Manager is not visible in the studio, you can access it as follows:
● To enable the Implementation Manager tool window, click View Implementation Manager .
The tool window provides a view of the solution status and implementation log at each stage in the
process.
● To enable the Implementation Manager toolbar, click View Toolbars Implementation Manager .
The toolbar provides buttons that allow you to assemble, upload, and create a patch for your solution.
Lifecycle Management
The studio supports the full end-to-end lifecycle management of customer-specific solutions. This includes
developing, testing, and deploying your solution as well as creating patches to deliver updates to your
customer
For more information, see Lifecycle Management of Customer-Specific Solutions [page 143].
Patches
If you need to make changes or corrections to a customer-specific solution after you have assembled it, you
can create a patch.
Maintenance Mode
A customer-specific solution is in maintenance mode if it has been assembled and downloaded, that is, the
solution status is Assembled. You can make changes to the solution in a patch; however, you can only make
restricted changes to certain content types. These change and delete restrictions ensure that you do not make
changes to a solution that could lead to loss of data or create inconsistencies or errors on a customer's
production tenant.
Solution Templates
You can create templates containing reusable items and upload these items to customer-specific solutions.
For more information, see Solution Templates [page 174] and Solution Templates Quick Guide [page 171].
When you have finished developing your solution, you activate, assemble, and download it before uploading it
to the customer's tenant. You can do this in 2 ways as shown below:
Note
The activate and assemble functions run as background jobs, and you can continue to work on
other solutions in the system. The download activity, however, is a front-end process.
Note
Depending on the status of the solution, only the relevant action will be available for use. The
following actions will be activated and available for use for:
3. Click on Activate to activate the solution. The system activates the solution and makes it ready for
Assembly. Once completed, the system sends you an auto-generated e-mail stating the success or
failure of the activation. You can view the details for failed actions by logging on to the studio, and
selecting the Version History tab in the Implementation Manager.
4. Click on Assembly, and the system checks the solution for consistency and then assembles it. Again,
you will receive an auto-generated e-mail with the details of the success or failure of the assembly
process. You can view the details for failed actions by logging on to the studio, and selecting the
Version History tab in the Implementation Manager.
5. After the assembly is completed, click on Download to download the zip file. Enter a file name to save
the template as a .zip file locally.
After the solution has been assembled and downloaded, the status changes to Assembled. The solution is
now locked for further development and any changes can only be made by creating a patch.
After you have assembled and downloaded your solution, you can upload it to the customer's tenant.
Once a solution has been successful deployed and exists in a lower version in other tenants in the same
system, then you can use the automated distribution function to restart the distribution process in those
tenants. The system triggers the upload and activation of the solution in those tenants through the
SAP_SYSTEM user, and not with the service agent user.
You can restart the process by navigating to the SAP Cloud Applications Studio Implementation Manager
Tenant Status Automated Distribution . You can also check the Information Area for more details on the
status of the distribution of the tenants.
The distribution of solutions can be unsuccessful due to two reasons as shown below:
1. Both the upload and activation of the solution had failed: In this case, you must trigger a restart of the
upload of the solution by clicking on Automated Distribution. Both the upload and activation of the solution
is automated.
2. Only the activation of the solution has failed: In this case, you must login to the relevant tenant and
manually activate the solution.
For both the cases, you must check the version history logs for the respective tenants.
If you need to make changes or corrections to a customer-specific solution after you have assembled it, you
can create a patch. Depending on the tenant on which you are working, the process of creating a patch is
different:
You use this function, for example, when you have created a patch solution on the customer's test tenant and
want to test the patch solution in the SAP cloud solution.
For more information, see Enable and Disable Your Solution in the SAP Cloud Solution [page 182].
You can use a copy of your solution, for example, to continue developing in order to try out different scenarios
without disrupting the original. For doing this, you can download a copy of an existing solution and then upload
this copy to the same tenant or a different tenant.
Note
You cannot merge the content of the copy back to the original solution. After having achieved a satisfactory
development status of the copy, you need to repeat all changes in the original solution that you made in the
copy.
1. In the studio, log on to the tenant where you created the solution and open the solution.
2. In the Solution Explorer, right-click the solution and select Activate.
3. In the Solution Explorer, right-click the project and select Check In All Files.
4. In the Implementation Manager, click the Assemble and Download button and then Download a Copy .
5. Enter a description for the copy and save the .zip file locally.
The status of the original solution remains In Development.
6. Optional: If you want to upload the copy to a different tenant, log on to this tenant.
7. In the Implementation Manager, click the Upload button and select the.zip file of the copy.
8. Agree to the terms of the upload disclaimer and click Continue.
The copy is uploaded and opened. The status of the solution is In Deployment.
9. In the Implementation Manager, click the Activate button.
When the system has activated the solution, you can create a patch and continue developing. For
information about patches, see here [page 178].
After you have downloaded a solution template, you can import this template to add its items to any of your
solutions.
For more information, see Solution Templates Quick Guide [page 171].
You can get a list of content where an extension field has been used. The list includes the following content
types:
● Business roles
● Extension scenarios
● Code list restrictions
● Mashups
● Page layouts and adaptation
● Workflows
● BRF rules
You can also download the extracted content into an excel file.
Note
Analytics content such as data source, reports, and so on are not available in the where-used list of
extension fields.
Troubleshooting
If you were not able to activate the solution or patch, try the following:
1. In the Implementation Manager, click Show Log File to display updated log information on the Version
History tab.
If your solution or patch did not contain any errors, click the Activate button to activate the solution or
patch again.
2. If this does not work, click the Reactivate button in the Implementation Manager to generate all the objects
in the solution or patch again.
3. If reactivation fails, create an incident. For more information, see Report an Incident [page 628].
Further Tasks
Users with the Studio Administrator role can use the Administration toolbar to access a number of
administrative tasks, such as creating and deleting customer-specific solutions or solution templates and
managing user sessions.
If you open a solution or solution template that has been created in a studio version older than 1302, the
Migrate Solution button is displayed in the Solution Explorer.
The reason for this is that a new scripting language compiler has been introduced. It offers the following
advantages:
● Multiplicity syntax. For more information, see Node (Business Object) [page 211].
● Target annotation in associations. For more information, see Association (Business Object) [page 196].
● Generated runtime objects
Important tasks
No, you do not need to migrate your solution, and you can still use the solutions and solution templates you
created with the old compiler.
However, you will not benefit from the advantages of the new backend compiler. In addition, since studio
version 1302, new functions have been developed for the new compiler that you cannot use with your old
solutions and solution templates. Please also note that you must migrate old solution templates, if you want to
use them in a new solution.
Solution or solution template created in this studio ver What you need to do to benefit from the new compiler
sion
SAP Business ByDesign Studio 4.0 Migrate your solution or solution template
SDK for SAP's On-Demand Solutions 1.0 Migrate your solution or solution template
SDK for SAP's On-Demand Solutions 1.5 (1211) Migration not necessary
SAP Cloud Applications Studio August 2013 (1308) Migration not necessary
Tip
To check the compiler version of your solution, open the Properties window. The Compiler Version field
typically contains two numbers separated by a slash, for example, 1302 / 1211. The first number indicates
the compiler version of the .absl files. The number after the slash indicates the compiler version of
the .bo and .xbo files.
Note
Tip
The Migrate Solution option is also available in the Administration menu. It is grayed if your solution
already uses the current scripting language compiler.
If the solution has errors, these are displayed in the Error List. Resolve the errors and click the Migration
Solution button again.
Note
○ If the migration was not successful, you cannot start the migration process again. Please create an
incident instead and ask SAP Support for help.
○ Once the solution has been migrated, the migration cannot be reverted.
Note
You only need to replace these data types, if you have used them in AlternativeKey elements.
Data types that you need to replace Data types that you can use instead
BASIS.Global:Identifier AP.PDI.bo:EXTENDED_ID
AP.Common.GDT:Identifier AP.PDI.bo:EXTENDED_ID
BASIS.Global:Name AP.Common.GDT:EXTENDED_Name
AP.Common.GDT:Name AP.Common.GDT:EXTENDED_Name
AP.Common.GDT:LANGUAGEINDEPENDENT_Name AP.Common.GDT:LANGUAGEINDEPENDENT_EX
TENDED_Name
AP.Common.GDT:Description AP.Common.GDT:LONG_Description
AP.Common.GDT:Note AP.Common.GDT:LONG_Description
AP.Common.GDT:Text AP.Common.GDT:LONG_Description
AP.Common.GDT:LANGUAGEINDEPENDENT_Text AP.Common.GDT:LANGUAGEINDEPENDENT_EX
TENDED_Text
Example
This is the target business object... Do not use this source business but this source business object in
object... (Wrong) stead... (Correct)
Wrong: The Target identifier following the to keyword of the FirstTarget association is not unique.
○ root node of the other Target business object (association FirstTarget to Target.Root)
or to the
○ Target subnode of the same business object (association FirstTarget to Source.Target)
If you do not migrate your solution, you can continue to use it at it is. However, you will not benefit from the
advantages of the new backend compiler. Please note that you must migrate old solution templates, if you want
to use them in new solutions.
You can create templates containing reusable items and upload these items to customer-specific solutions.
You can create templates containing reusable items and upload these items to customer-specific solutions.
You can use a copy of your template, for example, to continue developing in order to try out different scenarios
without disrupting the original. For this purpose, you download a copy of an existing template and then upload
this copy to the same tenant or a different tenant.
Note
You cannot merge the content of the copy back to the source template. After having achieved a satisfactory
development status of the copy, you need to repeat all changes in the original that you made in the copy.
1. In the studio, log on to the tenant where you created the template and open it.
2. In the Implementation Manager, click the Assemble and Download button and then Download a Copy .
3. Enter a description for the copy and save the .zip file locally.
The status of the original remains In Development.
4. Optional: If you want to upload the copy to a different tenant, log on to this tenant.
5. In the Implementation Manager, click the Upload button and select the.zip file of the copy.
6. Agree to the terms of the upload disclaimer and click Continue.
The copy is uploaded and opened. The status of the template is In Development and you can continue
developing.
When you have completed your template, you need to download the template before you can import its items
to a solution.
1. In the studio, log on to the tenant where you created the template, and open the template.
2. In the Solution Explorer, right-click the template and select Check In All Files.
3. On the Implementation Manager toolbar, click the Assemble and Download button.
4. Enter a file name to save the template as a .zip file locally.
The system checks the template for consistency and then downloads all the items in the template to
the .zip file.
After you have downloaded a solution template, you can import this template to add its items to any of your
solutions.
1. Log on to the tenant where you want to import the items of your template to a specific solution.
2. Create a new customer-specific solution or open an existing solution. Please note that the solution must
have the status In Development.
Note
Please note that the solution template and the solution, into which you import the items of the solution
template, must have been created for the same deployment unit. However, if you have created your
solution template in the Foundation deployment unit, the solution can have any deployment unit.
3. In the Implementation Manager, click the Import Solution Template button and select the.zip file of the
template that you have downloaded before.
The items of the template are added to the solution.
Note
If the solution and the template contain items that have the same name, the system replaces the items
in the solution by that of the template.
○ If an item with the same name exists in another folder of the solution, the system doesn't import
the item
○ If the template contains a BAC element and the solution already has a BAC element, the system
doesn't import the BAC element of the template.
Make sure that your solution works well with the replaced or added items, for example, check if the
associations are still valid. When you have finalized your solution, activate it.
If you want to continue developing your solution template in another studio version, for example, to make use
of new functionality, you need to upload the solution template to that studio version. As a prerequisite for this,
you have downloaded your solution template from an older studio version that is compatible with the new
studio version. For information about the compatible versions, see Upgrade Information [page 16].
Note
Please make sure that the SAP cloud solution from which you have downloaded the solution template
matches the SAP cloud solution to which you want to upload the solution template.
1. Open the studio version to which you want to upload the solution template and log on to the tenant.
2. On the Implementation Manager toolbar, click the Upload button.
With a solution template, you can organize development content that you want to reuse for customer-specific
solutions. Solution templates enable you to easily start the development of customer-specific solutions, for
example, for a specific industry.
In a solution template, you can create all items that you want to reuse in a solution, for example, business
objects, actions, and events. When you have completed your template, you must download it to be able to
import it into a solution. A template always has the status In Development and therefore you don't need to
create a patch of a template.
When you create a new solution or open an existing solution or a patch, you can import the items of your
template into this solution or patch. For more information, see Solution Templates Quick Guide [page 171].
Note
To create a solution template, you must log on with a user that has the studio administrator role.
● You can't switch on the admin mode for a solution template. Therefore you can't, for example, define
analytics content or create a mashup in a solution template.
For information about the admin mode, see Working in the Integrated Development Environment [page 42]
under Administration Menu.
● You can't create BC sets using SAP BCOs in a solution template.
● If you create a business object extension in a solution template, you can't use the following functions:
○ Enhance Enterprise Search
○ Enhance Forms
○ Enhance Report
○ Enhance Screen
● The solution template and the solution, into which you import the items of the template, must be based on
the same cloud solution from SAP. For example, you can't import items from a template created for SAP
Business ByDesign into a solution for SAP Cloud for Customer.
● The solution template and the solution, into which you import the items of the solution template, must
have been created for the same deployment unit. However, if you have created your solution template in
the Foundation deployment unit, the solution can have any deployment unit.
You can import a solution template into the studio version in which it has been created and into the two
subsequent versions, for example:
If you have created your solution tem ... you can upload it to this version ... and to this version
plate in this version ...
SAP Solutions OnDemand Studio 1302 SAP Solutions OnDemand Studio 1305 SAP Cloud Applications Studio 1308
(February 2013) (May 2013) (August 2013)
When you import a template into a solution, all items of the template are added to the solution. If an item in the
solution has the same name as in the template, the system replaces the item in the solution with that of the
template.
● If an item with the same name exists in another folder of the solution, the system doesn't import the item.
● If the template contains a BAC element and the solution already has a BAC element, the system doesn't
import the BAC element of the template.
Overview
You can create templates containing reusable items and import these items into customer-specific solutions.
This allows you to easily start the development of customer-specific solutions by reusing common
development content, for example, for a specific industry.
Prerequisites
You are logged on to the repository of your development tenant or to the repository of your customer's test
tenant with a user that has the studio administrator role.
Note
If you want to change the partner contact information, please do the following: In the My Solutions
window, right-click the solution and select Solution Properties. The Solution Properties dialog opens,
where you can change the contact information. Click OK to save your changes.
Result
● In the My Solutions window, the new solution template is displayed as follows: [solution template
description] [solution template name].
● In the Solution Explorer, the solution template is opened and displayed as follows: [solution template
description] (In Development).
You can create all items that you want to reuse in a solution, for example, business objects, actions, and events.
When you have finalized your template, you can download it. You can then create a new solution or you can
open an existing solution or patch and import the items of your template to this solution or patch. For more
information, see Solution Templates Quick Guide [page 171].
Note
When you import a template into a solution, all items of the template are added to the solution. If an item in
the solution has the same name as in the template, the system replaces the item in the solution with that of
the template.
You can design and develop customer-specific solutions to enhance SAP's standard cloud solution for a
specific customer. In the studio, you can create a solution in which all items that you develop or changes that
you make to existing entities are stored.
Depending on the tenant that you are working on, the following applies:
● Customer's Tenant
You create your solution for this specific customer on the customer's test tenant.
● Development Tenant
On your development tenant you can develop solutions for different customers. Each time you create a
solution, ensure that this solution is assigned to the correct customer ID. For more information, see Switch
a Customer Assignment [page 158].
Note
To create customer-specific solutions, you must be logged on to the studio with a user that has the Studio
Administrator role.
Procedure
1. Optional: If you are developing on your development tenant, in the Administration menu, choose Switch
Customer.
Check that the ID of the customer for which you want to develop the solution is displayed. If not, select a
different customer or create a new customer assignment.
Note
If you are logged on to your development tenant and you are creating a new solution, the system
automatically creates the solution for the customer that is currently displayed in the Switch Customer
dialog box. Be aware, that only a solution with the correct customer ID can be uploaded to the
corresponding tenant of your customer.
Tip
You can also use this function to create a solution template. For more information, see Create a
Solution Template [page 175].
If you want to change the partner contact information, please do the following: In the My Solutions
window, right-click the solution and select Solution Properties. The Solution Properties dialog opens,
where you can change the contact information. Click OK to save your changes.
Result
● In the My Solutions window, the new solution is displayed as follows: [solution description] [solution
name].
● In the Solution Explorer, the solution is opened and displayed as follows: [solution description] (In
Development).
You can now create a business object or use the other functions of the developer desktop. For more
information, see Business Objects Quick Guide [page 398] and Overview of the Developer Desktop [page 360].
Related Information
6.7.5 Patches
Overview
A patch is needed if you want to make changes or corrections to a customer-specific solution after it has been
assembled. The customer-specific solution is then in maintenance mode and you can only make restricted
changes for certain content types. For more information, see Maintenance Mode [page 185].
Note
Only users with the Studio Administrator role can create patches.
Depending on the type of customer's tenant where you are developing the creation and handling of a patch
works differently:
Deletion Patch
A deletion patch helps you to delete elements that are not in use, resulting in better performance and removal
of obsolete data. It allows deletion of delivered content even in maintenance mode. This patch follows a similar
lifecycle of a regular patch, that is, it would have the same patch namespace, the same versioning, and would
follow a similar assembly and deployment lifecycle management process. For more information, see Deletion
Patch [page 180]
After you have activated a patch, the solution including the patch is available for productive use by the
customer.
If the solution is already running on other tenants in the same system as the production tenant, the patch is
uploaded and activated on these tenants automatically. This happens in the background after the patch is
successfully activated in the production tenant and may take some time. If the solution is running on other
tenants in different systems, you need to upload the patch to these tenants manually.
To find out for which tenants the patch is intended, in the Implementation Manager, select the Tenant Status
tab.
The items are part of a zip file. and the technical consistency of the zip file is ensured by running the assembly
process for the dependent files.
Note
To remove the fields, you must create a deletion patch. This helps you to delete elements that are not in use,
resulting in better performance and removal of obsolete data. A deletion patch allows deletion of delivered
content even in maintenance mode. This patch follows a similar lifecycle of a regular patch, that is, it would
have the same patch namespace, the same versioning, and would follow a similar assembly and deployment
lifecycle management process.
Prerequisites
Procedure
1. On the Implementation Manager toolbar, click the Create Patch button. The system displays a disclaimer
pop-up in a dialog box stating that the deletion of objects in this patch would also delete the data
Caution
If you remove extension fields, the data for the extension fields will be lost permanently.
Note
● You cannot create a deletion patch in an original solution - it can only be created on a standard patch.
This patch is valid from version 4 and maximum three consecutive deletion patches are allowed.
● You cannot skip the deployment of a deletion patch. For example, if you have a deletion patch (version
5) and a normal patch (version 6), you cannot deploy version 6 patch without deploying the deletion
patch.
● You cannot create a deletion patch while another patch is in the in-development status
● You cannot make any other changes in the BO definition, such as, adding a new field, changing field
labels, adding annotations. We recommend that you do not remove a field and activate the deletion
patch if you are planning to revert the change.
● If the extension fields are used in ABSL scripts, reports, form templates, web service and so on, then
you will get a consistency check error. You must remove the fields from the ABSL scripts, or reports, or
forms before removing it from the extension object.
● Import of solution template into a deletion patch is restricted.
● Download a copy as new solution in a deletion patch is restricted.
● You cannot delete personal data and sensitive personal data in a deletion patch.
● If an extension field is used to extend a standard entity (such as screens, web services, data sources,
reports), deletion of the extension field removes the reference from all these entities automatically.
Only in the case of standard forms, if you have manually added the extension field to a form template
from the UI, then you must remove this reference manually from Administrator Business Flexibility
Form Template Maintenance .
Message Number of elements in the &1 node has reached the maximum limit.
For example, in client ABC, in the ROOT node of SERVICE_REQUEST BO, 200 KUT
fields are created. In the same BO node, if there are already three PDI solutions
with 200 extension fields, the system adds all the fields for the BO and displays an
error message.
In the original solutions that do not have a patch in the system, this works differ-
ently as it keeps a buffer of the fields that would be created in patch. So, if the ex
tension fields limit in the original solution exceeds half of the maximum limit
(744/2 = 372), then the system throws an error during activation. The error mes
sage is displayed because the extension fields get doubled when the patch is cre
ated.
Solution ● Delete the extension fields created for the same BO-NODE combination in
the current solution that displays the error.
● Delete the KUT fields or extension fields from other PDI solutions created for
the same BO-NODE combination.
● Delete the unused PDI solution created for the same BO-NODE combination.
When you create a new solution on your tenant, this solution is automatically enabled for your business user in
the SAP cloud solution. This means that your solution is visible in the SAP cloud solution when you log on with
your business user on this tenant.
When you are developing several solutions in parallel on your development tenant, you may want to disable a
solution for your business user in the SAP cloud solution, for example, if this solution affects the solution that
you want to test. To do this, open the solution you want to disable and in the Implementation Manager, click
Disable.
When you create a patch for your solution, the original solution is still enabled for your business user. To test
your patch solution, you need to enable it instead of the original solution. This means that the system
automatically removes the scoping of the original solution and disables the original solution. After logging on to
the SAP cloud solution, you will have to scope your patch solution before you can test it.
1. In the Implementation Manager, on the Current Solution tab, check whether the original solution or the
patch solution is open:
The title of this area of the screen shows which solution is currently open, the original solution or the patch
solution (if a patch solution exists). In this example, the original solution is open.
2. In the Solution Enablement for Business Users in Cloud Solution field, click Enable or Disable.
You use the Enable function to make either the original solution or the patch solution visible in the SAP
cloud solution. In the example, if you open the patch solution first and then use the Enable function, you
make the patch solution visible and the original solution is automatically removed and disabled.
You use the Disable function for special scenarios, for example, if your customer has opened a change
project on the test tenant before you created the patch solution. If you want to know more, see What You
Need to Consider When a Change Project Is on the Same Test Tenant [page 154].
Note
If a solution template is being developed on the customer’s test tenant or has been uploaded to this
tenant, it is also automatically enabled. If there is a change project on the same tenant, you to need to
disable the solution template before the change project can be merged to the production tenant.
Check this table to see what happens when you enable or disable a solution:
What do you want to do? What happens in the SAP cloud sol What else do you need to know?
ution?
Enable the patch solution in the SAP The system removes the scoping of After logging on to the SAP cloud sol
cloud solution on the test tenant. the original solution in the SAP cloud ution with your business user, you
solution and disables the original solu need to scope your patch solution
tion automatically. manually.
Enable the original solution in the SAP The system removes the scoping of After logging on to the SAP cloud sol
cloud solution on the test tenant. the patch solution in the SAP cloud ution with your business user, you
solution and disables the patch solu need to scope your original solution
tion automatically. manually.
Disable the patch solution in the SAP The system removes the scoping of
cloud solution on the test tenant. the patch solution in the SAP cloud
solution.
Disable the original solution in the The system removes the scoping of
SAP cloud solution on the test tenant. the original solution in the SAP cloud
solution.
Tip
If you need to disable both the original solution and the patch solution, first disable the solution that is
open. Then open the other solution and disable it. It doesn't matter which solution is open first.
Overview
Test tenants are upgraded two weeks before the production tenants are upgraded, and test tenants are on a
higher release for two weeks. During this period, if a bug is detected in the production tenant from a solution,
there are no mechanisms to create and deploy a patch from the test to the production tenant, as it is not
allowed to deploy a patch from a higher to a lower release. With this feature you can change the .absl files
directly in the production or pre-production tenants to overcome the reported issues.
Prerequisites
● The work center view Production Fix Authorization is already assigned to the Studio developer.
● The solution is scoped with the Deployed status.
Note
Please take into account the following points before you make any changes:
Process Flow
1. In the Solution Explorer, click to open a correction patch. The solution is available for editing and the
status of the solution is changed to Deployed - In Correction. Read the Disclaimer pop-up and agree to
proceed with the code changes.
2. Implement the required .absl changes, by using Check Out, Check In, Activate and Revert actions in
the .absl file:
1. Check out the specific .absl file for which the code change needs to be carried out.
2. Perform the .absl code changes as required using the Studio absl editor.
3. Save and activate the modified .absl file. On successful activation, the code changes are active for the
Business users.
4. Check in the activated .absl file.
3. Once you finish making the changes, click to close the correction patch. The status of the solution is
changed to Deployed.
4. Test your solution. Right-click on the .absl file and click on Revert. This .absl file goes back to the previous
checked in and activated version.
5. Manually make the same corrections to the solution in the development tenant.
Overview
A customer-specific solution is in maintenance mode, if it has been assembled and downloaded; the solution
status then is Assembled. You can make changes to the solution in a patch; however, you can only make
restricted changes to certain content types. These change and delete restrictions ensure that you do not make
changes to a solution that could lead to loss of data or create inconsistencies or errors on a customer's
production tenant.
When your solution is in maintenance mode, you can delete the following items:
Business Configuration Object (BCO) Business Configuration Quick Guide [page 362]
Code List Data Type Create a Code List Data Type [page 472]
Mass Data Run Object Mass Data Run Quick Guide [page 537]
Reference to a joined data source created by an administra Create a Joined Data Source [page 532]
tor in the cloud solution
Reference to a combined data source created by an adminis Create a Combined Data Source [page 530]
trator in the cloud solution
Reference to a key figure created by an administrator in the Create a Key Figure [page 535]
cloud solution
Related Information
Overview
● Scripting Language Reference [page 189] ● Syntax for the Implementation of Business Logic [page
The scripting language is used to define business ob 235]
jects and business object extensions as well as to imple You use these methods and keywords to implement the
ment the business logic for cloud partner solutions. business logic of your solution. For this task, you can
This lightweight language is easy to learn and to use also use predefined built-in functions and reuse serv
with its focused set of features. ices:
The keywords, methods and functions of the scripting ○ Built-In Functions [page 320]
language are described in separate sections according ○ Basic Reuse Libraries [page 274]
to the task you want to perform:
○ Reuse Libraries for Business Areas [page 308]
○ Syntax for Business Object Definitions [page 191]
● Basic Data Types [page 329]
You use these keywords and functions to define the
The scripting language supports basic data types such
structure and interface of business objects.
as string, numeric and Boolean values. In addition, the
○ Syntax for Business Object Extension Definitions existing metadata of the SAP underlying cloud platform
[page 218] for core data types (CDTs) and global data types (GDTs)
You use these keywords and functions to define the is made available.
structure and interface of business object exten
sions.
Caution
Any software coding or code lines/strings (“Code”) provided in this documentation are only examples and
are not intended for use in a productive system environment. The Code is only intended to better explain
and visualize the syntax and phrasing rules for certain SAP coding. SAP does not warrant the correctness
or completeness of the Code provided herein and SAP shall not be liable for errors or damages cause by
use of the Code, except where such damages were caused by SAP with intent or with gross negligence.
You can also refer to SAP Cloud Application Studio Performance Best Practices for more information on
some best practices to keep in mind while creating ABSL scripts.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Overview
The scripting language is used to define business objects and business object extensions as well as to
implement the business logic for cloud partner solutions. This lightweight language is easy to learn and to use
with its focused set of features.
The sandbox environment for the scripting prevents a partner who has created erroneous implementations
from damaging data of other users by accident. This kind of sandbox environment is ensured by the script
execution runtime. Security-relevant features, such as direct access to database tables, are strictly controlled
or not made available in the scripting language. Instead, all data access is made available through the business
object infrastructure.
The keywords, methods and functions of the scripting language are described in separate sections according
to the task you want to perform:
To fully understand the keyword descriptions, it is essential to have a basic understanding of the business
object model and its features, such as associations, actions, and queries.
Note
Model names of SAP entities are in British English according to ISO 11179.
Code Completion
Based on the code you type, the code completion feature presents you with a list of options. For example, if you
type a period (.), which separates the members in a path expression, the code completion is automatically
activated and a drop-down list with the potential options is displayed. You can also use key combinations to
display the valid code completion options, for example, CTRL + SPACEBAR. For more information, see the
relevant syntax documentation under Code Completion.
Syntax
Character Description
[] Indicates that you can use none, one, or more of the en
closed options. Do not include the brackets in your option.
Use the keywords and functions listed below to describe the structure and interface of a business object in the
studio.
For more information about the general syntax conventions and rules, see Scripting Language [page 189].
Code Completion
You can use CTRL + SPACEBAR at any cursor location to display the valid code completion options for the
current context . If there is only one option, the code is completed at once. The code completion is also
activated, if you enter a period (.) in a path expression or a colon (:), for example, in an element statement.
● The name of an entity must start with a letter and can contain letters, digits, and underscore characters.
Do not start a name with “SAP_”.
● Related entities within a business object, for example, elements, associations, and actions, cannot have the
same name as the business object. This does not apply for messages.
● Do not use the following technical terms as an entity name:
○ action
○ association
○ businessobject
○ element
○ import
○ namespace
○ node
○ query
○ to
○ type
○ using
Comments
● comment line
// <comment text>
A comment line starts with two slashes (//) and spans to the end of the current line.
● comment block
/* <comment text>
<comment text>
<comment text>
*/
A comment block starts with a forward slash followed by an asterisk and ends with an asterisk followed by
a forward slash.
In the following, the functions and keywords are listed in alphabetical order:
List of Annotations
Overview
Description It is necessary that the access to specific instances is controlled by certain parameters. If you wish to
define which elements or associations can be used to control access to certain instances, you use the
AccessControlContext annotation.
Description Use the action keyword to define an action for a node. Actions carry out the business logic and are imple
mented in .absl files.
action Cancel;
Description If you want to identify a node uniquely with an identifier that can be read by human beings, you use the
AlternativeKey annotation. You can use this identifier in an association to refer to a business object
node. In addition, this identifier is stored as an additional key field in the database and thus accelerates
enterprise searches and queries.
It is not possible to have more than one alternative key of the same type in a business object node.
Note
Custom business objects contain an implicit alternative key of type UUID for each node, enabling the
node to be used as an association target.
Related Information
Syntax [<annotation>[(<parameter>)]?]
Description Annotations are used to add a category or property to an object specified by the subsequent key
word. The names of the annotations are predefined and can be displayed by the code completion.
Technically, you can combine as many annotations as you want. But not all combinations are possi
ble and not all of them make sense. For more information, see the list of possible combinations be
low.
[DeploymentUnit(CustomerRelationshipManagement)] businessobject
BonusRule { ... };
Annotation Overview
RelevantForAccessControl — association —
(Business Object) [page
213]
Associations are based on a foreign key relationship. The using clause specifies the key element of the
target business object node for the relationship. As a prerequisite, the key element must be an alterna
tive key and foreign key usage must be allowed for it. The using clause is optional. For business objects
defined in the same project, the target node’s hidden SAP_UUID element is used. For other business ob
jects, the UUID of the target node is used.
The multiplicity of an association can be either [0,1] or [1,1] . If no multiplicity is specified, [1,1] is used by
default. Only compositions can have a multiplicity with an upper boundary of “n”. However, you can easily
simulate the [1,n] multiplicity by combining a [1,n] node composition with a [1,1] intra or cross-business-
object association. For more information about compositions, see Node (Business Object) [page 211].
As a rule, the target node of an association must be located in the same deployment unit as the current
business object or in the Foundation deployment unit.
The path to the target node is expressed as follows: <namespace>:<business object>.<node>. The path
from the root node of the business object to the target node must not be part of the expression. You can
omit <namespace>, if you have imported the required namespace by using an Import statement or if
the business object is part of your solution. If you leave out <node>, the target node of the association is
the root node of the business object. The following example shows the possible path expressions of an
association in a complex business object:
businessobject BusinessObject1 {
element Name : LANGUAGEINDEPENDENT_MEDIUM_Name;
node Level1 {
element Name : LANGUAGEINDEPENDENT_MEDIUM_Name;
node Level2 {
element Name : LANGUAGEINDEPENDENT_MEDIUM_Name;
node Level3 {
element Name : LANGUAGEINDEPENDENT_MEDIUM_Name;
}
}
}
association A_ToLevel3 to BusinessObject1.Level3;
association B_ToLevel3 to Level3;
}
Note
If the target node is the root node, do not use the target node path in the association definition. If the
target business object is the current business object, do not use the target business object in the
association definition. However, this does not apply if the source and the target node is the root
node of the current business object.
You can mark associations as relevant for access control by adding the annotation
RelevantForAccessControl.
Item is the name of the composition from the current node to the Item node. SubItem is the
name of the composition from the Item node to the SubItem node.
association ToServReq to
AP.CRM.Global:ServiceRequest.ServiceRequestOverview using ID;
association ToBP to
AP.FO.BusinessPartner.Global:BusinessPartner using UUID;
Description Use the businessobject keyword to specify the name and the nodes of a business object. A business ob
ject consists of a root node, which can contain child nodes. Even if not specified, the multiplicity of the
root node is [1,1].
Note
The .bo file that contains the business object definition must have the same name as the business
object itself. Each file contains the definition of a single business object.
Example Business object, message and root node element. The root node raises a specified message:
Overview
● businessobject
It works in the same way as for any other node, but here it is applied to the root node of the
business object only, not the whole business object.
● node
The changes of all elements (including the alternative keys used in associations) of this node
are recorded.
● element
The changes of this element are recorded.
If you provided the annotation already to the node of this element you will get an information
message that this annotation is superfluous.
It is not allowed to use this annotation together with the annotation Transient.
● association
The changes of this association are recorded.
This is only supported for associations using an alternative key. For associations based on
valuation please mark the elements used in the valuation with this annotation.
Note
● The ChangeHistory annotation does not work for Dependent Objects. However, if the
parent node is enabled for change history, the changes for Dependent Objects are
tracked.
● Annotating the keyword businessobject works only for the root node, not the com
plete business object.
Description You can use the CrossDeploymentUnit annotation to define an association from a node of a business
object in one deployment unit to a node of a business object in another deployment unit.
Optionally, you can specify the alternative key of the target node with the using keyword.
Note
You cannot use a cross-deployment-unit association to access a business object in another deploy
ment unit. You can only use a cross-deployment-unit association in an analytical data source to col
lect data from a business object residing in a different deployment unit.
Overview
Description You can define the node as carrying language dependent descriptions. It will be represent as such in the
Business Object model and can be used in the UI in a way that the description is automatically derived in
the logon language.
Ensure that at least one element or a supplementary component of an element of the node is of the data
type LanguageCode
Description Default values are initial values that are used to fill fields automatically when a new instance is created.
The studio supports only static default values such as Boolean values, status information, numeric val
ues, and free text.
Note
Translation of default values is not supported.
Note
For the TextCollection dependent object you can use the following:
In order to define the dependent object inclusion node, you have to specify a name. You can either use
the dependent object name itself, for example, TextCollection, or add a specific meaning to the de
pendent object name, for example, ProcurementSpecificationTextCollection. If you include a
dependent object in a business object definition several times, you should provide different names for
each of the dependent object inclusion nodes. You can, for example, use the following syntax:
<subordinate node name> + <dependent object name>, such as ItemAttachmentFolder.
Note
You can add the same dependent object only once to a business object node.
Note
If you choose to add the reuse UI, you need to provide a Type Code to determine the kind of
TextCollection or AttachmentFolder you intend to use. The list of codes which are supported
are as shown below:
● TextCollection
○ 10001 Additional External Comment
○ 10002 Body Text
○ 10005 Rejection Reasons
○ 10006 Detailed Description
○ 10011 Internal Comment
○ 10025 Reason
○ 10026 Purchasing Note
○ 10027 Sales Note
○ 10029 Approval Note
○ 10047 Error Symptom
○ 10071 Work Description
● AttachmentFolder
○ 10001 Standard Attachment
○ 10006 Certificate
○ 10013 Image
○ 10047 Multimedia
○ 10049 Maps
○ 10051 Webpage
Cross-deployment-unit association:
Each business object resides in a deployment unit. You can explore SAP business objects that are re
leased with the public solution model (PSM) and the deployment units in the Repository Explorer tool
window. For more information, see Repository Explorer [page 49].
When a solution is created, the solution has to be assigned to a deployment unit. The business objects
that are created subsequently in the solution are assigned to this default deployment unit. If you want to
assign a business object to a different deployment unit, use the annotation DeploymentUnit at the be
ginning of the business object definition.
Note
You cannot create your own deployment units.
You can directly access business objects that reside in the Foundation deployment unit from any deploy
ment unit. However, business objects in the Foundation deployment unit cannot access any business ob
ject residing in another deployment unit, not even by using asynchronous communication. You can only
use a query to read the data of this business object.
For all other deployment units the following applies: You cannot directly change the data of a business
object residing in another deployment unit. However, you can read the data of such a business object by
using a query, the Retrieve method or an association. To change the data of a business object residing
in another deployment unit, use asynchronous, message-based communication. For more information,
see Configure Internal Communication [page 579].
Note
You cannot use a cross-deployment-unit association to access a business object in another deploy
ment unit. You can only use a cross-deployment-unit association in an analytical data source to col
lect data from a business object residing in a different deployment unit.
[DeploymentUnit(CustomerRelationshipManagement)] businessobject
BonusRule {
element ID : ID;
}
Description Use the element keyword to define an element of a business object node. The element name must be
unique within the node. The element type can be a simple data type, for example, ID, or it can be a
structured data type such as Amount. You can import data types from different namespaces. However,
you cannot define new data types. For more information on importing entities, see Import (Business Ob
ject) [page 208].
Note
When defining an identifier element, we recommend you use the ID data type instead of the
Identifier data type. The ID data type always has 60 characters, is not structured and does not
contain the Content element. The data type supports, for example, upper case conversion and al
pha conversion. Alpha conversion fills purely numeric user input like “4711” with leading zeros from
the left side to allow better sorting in character fields. For example, if alpha conversion is not used,
an alphabetic sorting would lead to results such as: “1”, “10”, “100”, “1000”, “2”, “20”, “200”, and so
on.
You can define additional properties of an element by using annotations. For example, the annotation
AlternativeKey defines the key element of a business object node. Key elements uniquely identify a
node and can be used to identify the target of an association. An alternative key, SAP_UUID of type
UUID, is generated implicitly for each node. Therefore, you do not need to define an alternative key for
each node.
Key element:
Overview
The name of the business object to be extended must be fully qualified, that is, it must include the name
space as well as the name, for instance, AP.CRM.Global:Lead. You can also specify all the extendable
nodes.
See also Syntax for Business Object Extension Definitions [page 218]
Description Use the import keyword to import business objects and data types from namespaces that are available
in the repository. The namespace name is typically a Uniform Resource Identifier (URI) in dot notation
(see example below).
You can use imported business objects and data types in the definition of associations, elements, and
messages. You can reference the imported objects directly by their names instead of using fully qualified
names. If you use a namespace only for one or two sub-entities, you can omit the import statement and
use the qualified name <namespace name>:<name> instead. If there are no conflicts for any entity in
the business object within all imported namespaces, you can omit the relevant namespace, as the sys
tem can identify it automatically.
Note
If you use more than one namespace in your business object definition, we recommend that you
define an alias for each imported namespace and qualify business objects or data types from these
namespaces by using the aliases.
You do not need to import business objects and data types from the namespace of the current project
but you can access them directly by their names.
You can use code completion for importing the namespace as well as for accessing imported objects,
that is, when you select the target business object of an association or the data type of a node element
or message parameter.
import AP.FO.BusinessPartner.Global;
Description You can define a label for a business object field. If you then add the field to a screen, the label is dis
played on the screen instead of the field name.
You can translate the label text by exporting it to an XLFF file. For more information, see the Translation
Quick Guide [page 651].
Related Information
Syntax message <message ID> text "<message text>" [: <data type 1>[, <data
type 2>[, <data type 3>[, <data type 4>]?]?]?]? ;
Description Use the message keyword to define a message between two business objects. The definition of a mes
sage includes the message ID, the message text, and, optionally, data types of up to four message pa
rameters. The parameter names are defined by the system.
The limit for a message ID is 30 characters and for a message text is 73 characters. The message ID
must be unique within the business object; use uppercase for letters. You can reference data types from
different namespaces. For more information, see Element (Business Object) [page 207] and Import
(Business Object) [page 208].
Overview
Related Information
Description You can use the MultipleTexts annotation together with the TextCollection dependent object to
support different text types.
If the TextCollection dependent object is assigned to the current node, the MultipleTexts annota
tion defines if more than one text is allowed.
Related Information
For the business object, the root node of the node hierarchy is automatically created. The multiplicity of
the root node is [1,1]. Each direct or indirect child node implicitly contains a ToRoot association.
A node must contain at least one explicitly defined element (not including SAP_UUID, which is implicitly
generated for each node). Elements, actions, associations, and child nodes must have unique names
within the node.
The definition of a child node implicitly introduces a composition, that is, a relationship between a parent
node and a child node. The multiplicity of the child node defines the upper and lower bound of that com
position, that is, how many instances of the child node can be part of the parent node. The multiplicity of
a node can be [0,1], [1,1], [0,n], or [1,n]. If no multiplicity is defined, the multiplicity [0,1] is used by de
fault.
You can use the composition to access features of the child node from the parent node (for example, in
action implementations). For each composition, the reverse ToParent association is created implicitly.
SelectAll and ByElements queries are created automatically for each node. It is not possible to
define new queries in the business object.
Example Business object and raises statement for the root node, message definition and root node element as
well as subnode with a raises statement followed by a subnode element:
Description At least one message ID must follow the raises statement. Following the message ID, you can enter as
many messages as needed. If the message is not part of the same business object, you must also spec
ify the message group. The name of the message group is identical to the corresponding name of the
business object.
● Raises statement that raises messages from the same business object and messages with different
message groups
Syntax [RelevantForAccessControl[(<parameter>)]?]
Description To do this, you mark associations [page 196] as relevant for access control by adding the annotation
RelevantForAccessControl. The following conditions must be met:
● For each business object, you can only use one association that is relevant for access control.
● The source node of the association must be the root node.
● The target node of the association must be root node of the target business object.
● The target business object must have an association that is relevant for access control. The target
of this association must be the dependent object Access Control List.
● The target business object must support at least one access context. You can find this information
in the Repository Explorer by viewing the documentation of the relevant business object and by
searching for the Supported Access Context section. If this section is not listed in the documenta
tion, access context is not supported for this business object.
Overview
Description You can define a tooltip for a business object field. If you then add the field to a screen, the label is dis
played on the screen instead of the field name.
You can translate the tooltip text by exporting it to an XLFF file. For more information, see the Translation
Quick Guide [page 651].
Related Information
[Transient]
[Label("MyTransientField")] element
myTransientField :
LANGUAGEINDEPENDENT_LONG_Name;
You can add the valuation keyword to an association in order to evaluate the elements of a target
node. A valuation association must have the multiplicity [0,1], [1,1], [0,n], or [1,n].
Usually, associations represent relations between nodes of the same business object or between nodes
of different business objects. However, when you use the valuation keyword, the association must re
fer to a node within the same business object. Depending on the node type, the valuation is executed as
follows:
● If the association refers to a subnode of a business object, the valuation is executed on the subnode
instances that belong to the same business object instance as the source node instance (associa
tion within a business object instance).
● If the association refers to the root node of a business object, the valuation is executed on all in
stances of this business object (association across all instances of a business object).
The valuation keyword is followed by one or several conditions, which are evaluated when the associa
tions are resolved. You define a condition as follows:
Note
If you want to compare two node elements, you can only use the == operator.
3. You define either an element defined in the source node or a code value.
You can use the AND operator (&&) to connect several conditions. Please note that in this case the OR
operator (|) and the NOT operator (!) are not supported.
In a condition, you can specify elements with non-structured data types only. However, you can use the
element path, for example, Amount.content, to use elements of structured data types.
Note
The valuation keyword cannot be used together with the using keyword and the
RelevantForAccessControl annotation.
businessobject BusinessObject1 {
[AlternativeKey] element ID:ID;
node ChildHierNode[0,n] {
element ID:ID;
element ParentID:ID;
association toChild [0,n] to ChildHierNode valuation (ParentID
== ID);
}
}
In the real world, BusinessObject1 may represent a catalog, containing sub-items that are ordered in
a hierarchy (all items belong to the same catalog)
businessobject BusinessObject1 {
[AlternativeKey] element ID:ID;
element ParentID:ID;
association toChild [0,n] to BusinessObject1 valuation
(ParentID == ID);
}
In the real world, BusinessObject1 may represent persons or objects (for example, buildings) that
build a hierarchy.
businessobject BusinessObject1 {
[AlternativeKey] element ID:ID;
node CountryNode [0,n]{
element ID:ID;
element CountryCode:CountryCode;
}
association toGermany [0,1]to CountryNode valuation (CountryCode
== "DE");
}
Overview
Use the keywords and functions listed below to describe the structure and interface of a business object
extension in the studio.
For more information about the general syntax conventions and rules, see Scripting Language [page 189].
● The name of an entity must start with a letter and can contain letters, digits, and underscore characters
only. Do not start a name with “SAP”.
● Entities within a business object cannot have the same name as the business object.
● Entities cannot use names that already exist in the business object being extended.
● Do not use the following technical terms as an entity name:
○ association
○ businessobject
○ element
○ import
○ namespace
○ node
○ query
○ to
○ type
○ using
Extension Template
When you create a business object extension, you are presented with a template that includes the extendable
nodes.
import AP.Common.GDT;
import AP.CRM.Global;
node Item {
}
}
Code Completion
Based on the code you type, code completion presents you with a list of valid options. For example, when you
type a colon (:) after an element name, you will see a list of valid data types. If there is only one valid option, the
code is completed at once.
You can also use CTRL + SPACEBAR to force the code completion function to display the valid options at the
current cursor location.
Comments
● comment line
// <comment text>
A comment line starts with two slashes (//) and spans to the end of the current line.
● comment block
/* <comment text>
<comment text>
<comment text>
*/
A comment block starts with a forward slash followed by an asterisk and ends with an asterisk followed by
a forward slash.
List of Keywords
List of Annotations
Description Use the action keyword to define an action for a node. Actions carry out the business logic and are imple
mented in .absl files.
You can only use this keyword in business object extensions created on the ESF2 framework.
action Cancel;
Syntax [<annotation>[(<parameter>)]?]
Description Annotations are used to add a category or property to an object specified by the subsequent key
word. The names of the annotations are predefined and can be displayed by the code completion.
Technically, you can combine as many annotations as you want. But not all combinations are pos
sible and not all of them make sense. For more information, see the list of possible combinations
below.
Annotation Overview
Decimal (Business Ob digits, fraction element Label, Scenario, Tool Standard
ject Extension) [page tip, Transient
222]
Relation (Business Ob list of names element Label, Scenario, Tooltip Standard
ject Extension) [page
233]
Description You can declare a decimal value with a specific number of digits before and after the decimal point.
The first parameter value must be greater than the second parameter value.
Note
● The default number of digits before and after the decimal point are 7 and 2 respectively.
● When you use negative numbers, the minus sign is counted as a digit. For example, [Decimal
(2,0)] allows 55 and -5 but not -55.
Invalid Syntax
Description Default values are initial values that are used to fill fields automatically when a new instance is created.
The studio supports only static default values such as Boolean values, status information, numeric val
ues, and free text.
Note
Translation of default values is not supported.
Description Use the element keyword to define an extension element for a business object node.
The element name must be unique within the solution and cannot exceed 60 characters.
The element type can be a simple data type, for example, LANGUAGEINDEPENDENT_EXTENDED_Text, or
it can be a structured data type such as Amount. You can import data types from different namespaces.
However, you cannot define new data types. For more information on importing entities, see Import
(Business Object Extension) [page 225].
● Amount
● Date
● DecimalValue
Note
The default number of digits before and after the decimal point are 7 and 2 respectively.
Note
If you use this data type in a business object extension, the length of the corresponding field is
not restricted to a specific number of characters. Only in business object definitions, the field
length is restricted to 255 characters.
● WebURI
● EmailURI
By importing additional namespaces, you can access additional SAP CodeLists and Identifiers.
You can also use CodeLists that you have defined within your solution.
Description Use the import keyword to import data types from namespaces that are available in the repository. The
namespace name is typically a Uniform Resource Identifier (URI) in dot notation (see example below).
You can use imported data types in the definition of elements. You can reference the imported data types
directly by their names instead of using fully qualified names. If you use a namespace only for one or two
sub-entities, you can omit the import statement and use the qualified name <namespace
name>:<name> instead. If there are no conflicts for any entity in the business object within all im
ported namespaces, you can omit the relevant namespace, as the system can identify it automatically.
You can also define an alias for an imported namespace and qualify data types from this namespace by
using the alias.
import AP.Common.GDT;
Definition of an alias:
Description You can define a label for an extension field. If you then add the extension field to a screen, the label is
displayed on the screen instead of the extension field name.
Note
If the element is structured, such as Amount, the label annotation is defined for the .content ele
ment. Please note that you cannot define a label for a structured element that does not contain
a .content element or that contains more than one .content element.
Syntax message <message ID> text “<message text>” [: <data type 1>[, <data
type 2>[, <data type 3>[, <data type 4>]?]?]?]?;
Description Use the message keyword to define a message for a business object extension. The definition of a mes
sage includes the message ID, the message text which can include up to four parameters, and the data
types of any parameters used.
The limit for a message ID is 30 characters and for a message text is 73 characters. The message ID
must be unique within the business object extension.
Messages can only be raised in the business object extension where they are defined. In addition, mes
sages must be assigned to the individual nodes where they are to be called.
Description The node keyword specifies the extendable nodes within a business object.
You can create and add your own custom nodes within a business object extension. However, you must
note that not all standard business objects support these node extensions. For more information on the
list of standard business objects, see below..
AccountingCoding http://sap.com/xi/AP/IS/CodingBlock/Global
BlockDistribution
AddressSnapshot http://sap.com/xi/AP/FO/Address/Global
BankDirectoryEntry http://sap.com/xi/AP/FO/BankDirectoryEntry/Global
File
BusinessPartnerHier http://sap.com/xi/AP/FO/BusinessPartner/Global
archy
CodingBlockCusto http://sap.com/xi/AP/IS/CodingBlock/Global
mObject1
CompanyFinancial http://sap.com/xi/AP/FO/CompanyFinancialsProcessControl/Global
sProcessControl
EmployeeTimeCalen http://sap.com/xi/AP/TimeAndLabourManagement/Global
dar
FinancialAccounting http://sap.com/xi/AP/FinancialAccounting/Global
ViewOfPurchasing
Document
FinancialPlanData http://sap.com/xi/AP/FinancialAccounting/Global
FinancialsViewOf http://sap.com/xi/AP/FinancialAccounting/Global
Contract
ForeignTradeProduct http://sap.com/xi/FTA/ForeignTradeProductClassification/Global
Classification
IdentityBusinessRole http://sap.com/xi/AP/PC/IdentityManagement/Global
ObjectIdentifierMap- http://sap.com/xi/CommunicationServicesManagement/Global
ping
Payment http://sap.com/xi/AP/Payment/Global
PaymentBatch http://sap.com/xi/AP/Payment/Global
ProjectStockOrder http://sap.com/xi/AP/ProjectManagement/Global
AccountingCodingBlockDistribution http://sap.com/xi/AP/IS/CodingBlock/Global
Activity http://sap.com/xi/AP/PC/ActivityManagement/Global
ActivityWorklist http://sap.com/xi/AP/FO/Activity/Global
AddressSnapshot http://sap.com/xi/AP/FO/Address/Global
AttachmentFolder http://sap.com/xi/AP/FO/Address/Global
BusinessActivityIndustryExtension http://sap.com/xi/AP/PC/ActivityManagement/Global
BusinessAttribute http://sap.com/xi/AP/FO/BusinessAttribute/Global
BusinessAttributeAssignment http://sap.com/xi/AP/FO/BusinessAttribute/Global
BusinessAttributeSet http://sap.com/xi/AP/FO/BusinessAttribute/Global
BusinessPartnerRelationship http://sap.com/xi/AP/FO/BusinessPartnerRelationship/
Global
BusinessPartnerSolutionExtensions http://sap.com/xi/AP/FO/BusinessPartner/Global
BusinessPartnerVisitingInformation http://sap.com/xi/AP/FO/BusinessPartner/Global
Campaign http://sap.com/xi/AP/CRM/Global
CampaignResponseOption http://sap.com/xi/AP/CRM/Global
CashDiscountTerms http://sap.com/xi/AP/FO/CashDiscountTerms/Global
CodTimeEntry http://sap.com/xi/AP/CRM/Global
CodTimeReport http://sap.com/xi/AP/CRM/Global
ComplaintManagementSalesOrder http://sap.com/xi/AP/CRM/Global
Contract http://sap.com/xi/AP/CRM/Global
CustomerQuote http://sap.com/xi/AP/CRM/Global
DesignRegistration http://sap.com/xi/AP/CRM/Global
ExternalAggregatedCustomerSalesOrderView http://sap.com/xi/AP/FO/CustomerDocumentReplica
tion/Global
ExternalCustomerKPIView http://sap.com/xi/AP/FO/CustomerDocumentReplica
tion/Global
ExternalIdentity http://sap.com/xi/AP/FO/BusinessPartner/Global
ExternalPriceDocument http://sap.com/xi/AP/FO/PriceAndTax/Global
IdentityBusinessRole http://sap.com/xi/AP/PC/IdentityManagement/Global
InstallationPoint http://sap.com/xi/AP/FO/IBase/Global
InstalledBase http://sap.com/xi/AP/FO/IBase/Global
InsurancePolicy http://sap.com/xi/AP/CRM/Global
InsuranceQuickQuote http://sap.com/xi/AP/CRM/Global
InsuranceQuote http://sap.com/xi/AP/CRM/Global
InsuranceRenumerationAnalytics http://sap.com/xi/AP/CRM/Global
Lead http://sap.com/xi/AP/CRM/Global
LeadIndustryExtn http://sap.com/xi/AP/CRM/Global
MaintenancePlan http://sap.com/xi/AP/CRM/Global
MarketingPermission http://sap.com/xi/AP/CRM/Global
ObjectIdentifierMapping http://sap.com/xi/CommunicationServicesManagement/
Global
OperatingHours http://sap.com/xi/AP/FO/OperatingHours/Global
Opportunity http://sap.com/xi/AP/CRM/Global
OpportunityIndustryExtension http://sap.com/xi/AP/CRM/Global
OrganisationAddress http://sap.com/xi/AP/FO/Address/Global
PartnerAddress http://sap.com/xi/AP/FO/Address/Global
PdmMaterialIndustryExtn http://sap.com/xi/AP/FO/ProductDataMaintenance/
Global
ProductBusinessPartnerRelation http://sap.com/xi/AP/FO/ProductBusinessPartnerRela
tionManagement/Global
ProfessionalServicesMasterProject http://sap.com/xi/AP/CRM/Global
ProjectAlert http://sap.com/xi/AP/CRM/Global
Promotion http://sap.com/xi/AP/CRM/Global
Questionnaire http://sap.com/xi/AP/FO/Activity/Global
Route http://sap.com/xi/AP/PC/ActivityManagement/Global
SalesTerritory http://sap.com/xi/AP/PC/SalesTerritoryMgmt/Global
SalesTerritoryIndustryExt http://sap.com/xi/AP/PC/SalesTerritoryMgmt/Global
ServiceIssueCategoryCatalogue http://sap.com/xi/AP/FO/ServiceIssue/Global
ServiceRequest http://sap.com/xi/AP/CRM/Global
SupplierInvoiceRequest http://sap.com/xi/AP/PC/SupplierInvoiceProcessing/
Global
TargetGroup http://sap.com/xi/AP/CRM/Global
TextCollection http://sap.com/xi/DocumentServices/Global
UtilitiesBusinessAgreement http://sap.com/xi/AP/CRM/Global
UtilitiesConnectionObject http://sap.com/xi/AP/CRM/Global
UtilitiesPointOfDelivery http://sap.com/xi/AP/CRM/Global
VisitTourPlan http://sap.com/xi/AP/PC/ActivityManagement/Global
WorkplaceAddress http://sap.com/xi/AP/FO/Address/Global
Description Use the raises keyword to declare messages for a business object extension. At least one message ID
must follow the raises statement.
Messages can only be raised in the business object extension where they are defined. In addition, mes
sages must be assigned to the individual nodes where they are to be called.
Overview
Description The Reference annotation enables you to use an element declared in one business object extension in
another business object extension. You can also use an element in the item node that is declared in the
root node of the same business object extension.
● Decimal
● Relation
● Label
● Tooltip
● Transient
Note
You do not need to include a data type when referencing an element, as the data type is specified in
the original element definition.
Examples 1. Reference from one business object extension to another business object extension
Definition of the first business object extension:
2. Reference from an item node to the root node of the business object extension
Definition of the root node:
Tip
In contrast to the Relation [page 233] annotation, which refers to any business object element, the
Reference annotation refers to a specific element within the same business object.
Description The Relation annotation enables you to create a reference to a business object by using the identifier
of an element, for example, ID, PartyID, or UUID as the target of the reference. Thus, you can create an
element that is like the element you are referring to and retrieve the data of this element, for example, for
an object value selector or a query. Tooltips and labels are not retrieved from the element you are refer
ring to. You need to specify the namespace in the annotation, if the namespace has not yet been speci
fied in the definition of the business object extension.
You can combine the Relation annotation with the Scenario, Label, and Tooltip annotations and
with default values but not with the Reference, Decimal, and Transient annotations.
Examples [Relation(AP.CRM.Global:Opportunity.Item.ItemProduct.ProductKey.Prod
uctID)] element MyProductID : ProductID;
[Relation(AP.FO.BusinessPartner.Global:Employee.Identification.Emplo
yeeID)] element MyEmployeeID : EmployeeID;
Each extension scenario contains one or more data flows. Each data flow consists of a source and target
business context. This reflects the direction in which data is passed from one business context to the
next as part of a business process.
Note
Extension scenarios are specific to the node for which they were created. If an extension scenario
was created for the root node, then it can only be called at the root node within the .xbo. Similarly,
an extension scenario created for the item node can only be called from the item node within
the .xbo.
If you now extend any of the business objects involved in the scenario, you can use the annotation
[Scenario] to declare that the element is available to all the business contexts specified in the sce
nario.
For example, if you add an element to the Lead business object, you can use an extension scenario to
make this element available if you extend the Opportunity, Sales Quote, or Sales Order. When an Oppor
tunity is created from the Lead, the data for your extension field is passed to the Opportunity. Similarly,
when a Sales Order is created from the Opportunity, the data is passed to the Sales Order.
See Also For a list of all predefined extension scenarios, see Extension Scenarios [page 460].
Description You can define a tooltip for an extension field. If you then add the extension field to a screen, the tooltip is
displayed when you place the cursor on the extension field.
Note
If the element is structured, such as Amount, the tooltip annotation is defined for the .content
element. Please note that you cannot define a tooltip for a structured element that does not contain
a .content element or that contains more than one .content element.
The methods and keywords listed below enable you to implement the business logic for your solution in script
files, such as actions, validations and events. You can implement, for example, BeforeSave events and
OnSave validations, and the actions that you have defined for your business objects. For more information
about the general syntax conventions and rules, see Scripting Language [page 189].
You can also use built-in functions and reuse libraries that extend the scope of the methods described below.
For more information, see the following documentation:
Type Handling
The scripting language supports type inference, thereby avoiding the need of explicitly identifying relevant
types. This is especially useful for script files, where elements of existing business objects are accessed either
by your own business objects or by SAP business objects. For structured element types, the code completion
enables you to see the data type’s structure while accessing the elements of the involved business objects.
For more information about the basic data types that the scripting language supports and their behavior, see
Behavior of Data Types [page 329].
Code Completion
Apart from using a period (.) for the code completion of path elements, you can use the key combination CTRL
+ J to display all options for the current context. You can use this feature at any cursor location, for example,
when the cursor is located at the end of a partially typed identifier or keyword or when the cursor is located
within or directly before an already existing and valid identifier.
The method tooltip displays the documentation of a method and its parameter definitions. The method tooltip
appears when you type an opening parenthesis, which is the method parameter indicator character.
To display the method tooltip, you can also use the key combination CTRL + SHIFT + SPACEBAR whenever the
cursor is located within a method name or a parameter of a method call. If multiple methods with the same
name but different parameters are available, you can choose the appropriate method signature from the list
using the up and down arrow keys. If you use the left and right arrow keys, you can display the definitions of the
individual parameters.
The method tooltip is displayed automatically when you type the parameters of a method. The method
parameter description moves to the next parameter whenever you type a comma (,) before the closing
parenthesis.
Comments
The syntax supports single-line and multiple-line (block) comments. A single-line comment starts with two
slash marks (//) and spans to the end of the current line. The block comment, which can span multiple lines,
starts with a slash mark and an asterisk (/*) and ends with an asterisk and a slash mark (*/).
Single-line comment:
// <comment>
Multi-line comment:
/* <comment> */
Code Formatter
The code formatter helps to maintain a clean and readable source code in script files. It offers the following
formatting options:
When you have opened a script file in the code editor, you can execute the code formatter by selecting Edit
Advanced Menu Format Document . Alternatively, you can press CTRL + K or CTRL+ D.
The code formatter formats the whole script file; you cannot use it to format only parts of the code.
Simple and complex statements are supported. Complex statements usually contain a code body which is
opened and closed by braces { }. The body, in turn, can contain any type of statement, that is, the statements
can be nested. Simple statements, in contrast, can only be assignments and path expressions, in addition to
variable declarations and the import statement.
The methods and keywords are divided into the following sections:
● Contexts
Contains information about the this keyword.
○ This [page 272]
● Simple Statements
Contains information about statements such as the import keyword and the declaration of variables.
○ Import [page 253]
○ Declarations [page 247]
○ Assignment [page 240]
● Complex Statements
Contains information about control and loop statements.
○ If Control Statement [page 253]
○ Switch Control Statement [page 272]
○ Foreach Loop Statement [page 249]
○ While Loop Statement [page 273]
○ Continue Statement and Break Statement [page 245]
● Expressions
Contains information about all types of expressions, for example, literals, path expressions, and arithmetic
expressions.
○ Literals [page 254]
○ Function Literals [page 251]
○ Logical Expressions [page 255]
○ Conditional Expressions [page 245]
○ Arithmetic Expressions [page 240]
○ Path Expressions [page 258]
○ Name Qualification [page 257]
○ Action Execution [page 239]
● Association Handling
Contains information about accessing, setting, and checking associations.
○ Association Access [page 241]
○ Set Associations [page 270]
○ Check Associations (IsSet) [page 242]
○ Reset Associations [page 268]
● Business Object Lifecyle
Note
You cannot receive and handle messages that have been raised by a different script file containing
implementation code or the business object infrastructure, for example, during the creation of a
business object node instance.
Instance-based execution:
Description An action execution is a special form of a path expression. The code completion offers actions that are
based on business object nodes in the same way as common method calls. You can enter parameters in
parentheses (..). In reuse library method calls, you can also use optional parameters but not in actions
that are based on business object nodes. Even if there are no parameters, you must always use paren
theses. In contrast to reuse service methods, action methods based on business object nodes do not
support return values.
If the multiplicity of the action definition in the business object model is [0,0], you can execute the action
statically by using static path expressions that identify a business object node. If the multiplicity is [1,1]
or [1,n], you can execute the action instance-based. In this case, the instance identifier has to be a col
lection.
import AP.CRM.Global;
foreach (var so in SalesOrder.Header.Execute()) {
so.Item.CheckATP();
break;
}
Description Use the Add method to add a single row or an existing collection to the end of a collection.
Note
This method cannot be applied to read-only collections. This is only relevant for code related to form
data type extensions and in case of mass-enabled script files, in which the this keyword represents
an immutable collection of nodes.
[ + | — | * | / | % ] <arithmetic expression>;
Description The arithmetic expressions support the common mathematical operators for addition, subtraction, mul
tiplication, division, and modulo calculations. Operands can be atomic expressions, such as literals, vari
able identifiers, path expressions, or other arithmetic expressions.
You can overwrite the precedence order of the operators by using parentheses.
The operands have to evaluate to the exactly same type. The compiler does not implicitly convert incom
patible types. The plus sign (+) operator is overloaded to allow string concatenation.
Description An assignment assigns the value of the expression on the right to the expression on the left. The expres
sion on the left must be a variable or an element of a business object instance whereas the expression on
the right can be any kind of expression. For the expressions on the right you can use static path expres
sions, for example, if you want to keep a copy of a reference to static query metadata. The default as
signment uses copy semantics.
Note
You cannot use chained assignments, that is, a = b = c.
You can also assign node instances on the right to associations on the left. The node instances on the
right can either be a newly created node instance or a node instance that has been retrieved through a
query. However, this kind of assignment is only possible for modeled associations with [1,1] multiplicity.
Node instances to [1,n] associations, which are implemented and not modeled, are assigned implicitly
when new node instances are created through create-enabled associations.
Description The association access is a special form of the path expression. Associations can be defined to be op
tional and the multiplicity can be [0,1], [1,1] or [1,n]. By following an association, you are able to read data
that has been modified but not yet been stored in the database.
Intra-business-object associations link nodes within one business object. Cross-business-object associ
ations link nodes of separate business objects. Intra and cross-business-object associations can only
have the [1,1] multiplicity.
Note
To exchange data between business objects that are located in different deployment units, configure
an internal communication by using the Service Integration Wizard. For more information, see Con
figure Internal Communication [page 579].
When accessing a [1,n] composition, a collection of nodes is returned. Therefore, you cannot access a
member of structured data types of the foreign business object nodes. Instead, you must use the
foreach loop statement to access the individual instances in the returned node collection (see the sec
ond example below).
If the operand on the left of an assignment is an association access path expression followed by an ele
ment, data can also be written to the foreign business object node instance.
If the node type matches the target definition of the association (see the third example below), you can
associate a foreign business object node instance that was just created.
this.AssocToOtherBONode.Value = 42;
Reading a business object node instances can be performed by either following an association or executing a
query. Updates are simply handled by assignment statements; the path expression on the left points to an
element of a business object node instance. The changes are automatically committed to the context business
object once the script file completes the execution without errors.
The following methods are available for the business object lifecycle:
Description You can use the IsSet () method for [1,1] or [0,1] associations to check whether the association was
set before. Otherwise any access to an association that was not set causes a runtime error.
if (this.ToTarget.IsSet()) {
this.Name = "Assoc set to: " + targetNode.Name;
} else {
this.Name = "Assoc not set.";
}
Description This method is analogous to the IsSet method for checking associations. However, the IsSet method
for checking node existence checks the node references themselves. You can use this method to check if
a new node instance was successfully created.
Description You can use the Clear method for the following scenarios:
● If you have created a collection, you can use this method to remove all rows from the collection.
Note
This method cannot be applied to read-only collections. This is relevant for code related to form
data type extensions and in case of mass-enabled script files, in which the this keyword repre
sents an immutable collection of nodes.
● You have declared a variable by using the elementsof modifier and you pass initial values to subele
ments of the business object node. In this case, you can use the Clear method to remove the initial
values from the subelements.
Description If you define a collection explicitly, the collection's row type is inferred from the static path expression,
for example, a business object node, or the row type is based on an unstructured data type.
A collection is a standard table that is defined on the basis of business object nodes or node elements, for
example, a collection of opportunities. Collections are generated when instances of business object nodes are
returned by the system. You can obtain a collection of business object nodes in several ways, for example:
● You follow [1,n] composition associations. For more information, see Association Access [page 241].
● You execute a Create with reference action with a collection parameter. For more information, see Create
with Reference Action [page 247].
● You execute a business object node query. For more information, see Query Execution [page 260].
Besides collections generated by the system, you can also define a collection explicitly.
The collection handling methods generally apply their logic to a copy of the collection and return a modified
copy of the original collection. Therefore these methods declare a collection as return value. However, the Add
method and the Clear method behave in a different way. They modify the collection to which they are applied.
These methods do not have any return value.
Note
If you use a method to add or clear a collection or a row in a collection, this only has an impact on the
collection itself. To delete or create new business object nodes, use the Delete or Create operation for
business objects. For more information, see Business Object Lifecycle [page 242].
Description Conditional expressions evaluate Boolean values. The supported operators are shown in the syntax
above. Use arithmetic expressions as operands, which can also be atomic expressions, such as literals,
variable identifiers, and path expressions.
Description The continue statement and the break statement can be used within the code block of loop statements,
such as foreach and while statements.
The break statement immediately exits the enclosing loop statement. The continue statement quits the
current loop iteration and continues with the next iteration at the top of the code block of the enclosing
loop statement. In nested loop statements, however, the break statement only exits the inner loop.
Usually you need to embed the continue statement or the break statement into an enclosing if condition
in order to avoid endless loops or a forced single loop execution.
Description If you use the Count method, the system returns the number of rows in a collection.
Description You can use the Create method for the following:
Declarations ● Use the method to create complete business objects (that is, the root nodes) in a static manner.
● You can also use the method to create subnodes of existing business objects, for example, through
composition access because this access implicitly maintains the association relationship between
the parent and root node. The Create method binds to static member path expressions that identify
a business object node. It also binds to associations that are create-enabled, for example, composi
tions or intra-business-object associations. In compositions, the parent node instance is automati
cally derived from the preceding path expression and is used for the composition maintenance.
The instance-based Create method for subnode creation is not available for variables that are de
rived from association access because in this case the parent node cannot be reliably determined.
● Optionally, you can also provide node data to the Create method as a parameter. When provided,
this data is automatically copied to the newly created node instance. The parameter type is the
complete element structure of the node. You can infer the node element type as part of the variable
declaration by identifying a certain node through a static path expression. For more information, see
Declarations [page 247].
You can also assign the data to the node instance after the node has been created. However, if you create
instances of SAP business objects, for some of the business objects you must provide default values in
the parameters at the time the business objects are created.
itemData.ItemName = "Test";
itemData.ItemValue = 42;
newItem = this.Items.Create(itemData);
Description The Create with reference (CWR) action is a special type of action that can only be executed statically
and that directly returns one or more instances of the node to which the action belongs. All CWR actions
are overridden to offer two signatures, one with a single node parameter and one with a collection of no
des. CWR actions return a single node or a collection of nodes depending on the collection property of
the method call parameter.
Note
CWR actions can only be used by SAP business objects.
Note
Variable shadowing is not supported, that is, variables cannot reuse names that are already declared
in an enclosing scope.
The variable type is automatically inferred upon first assignment of the variable. You can assign an initial
value either by specifying a literal or by specifying a path expression, that is, elements of other already
existing variables or elements of the this context. Assignments use copy semantics, that is, a temporary
copy is created when individual elements are accessed using the this context. Node variables have refer
ence semantics.
Alternatively, you can explicitly specify the variable type in the variable declaration. For this, you can use
basic data types as well as global data types (GDTs).
You can also derive the underlying type of a business object node by using the elementsof modifier fol
lowed by a static path expression that identifies a business object node. This is useful if you define initial
node data that can be passed as a parameter to the Create operation of a business object node. Do not
use the elementsof modifier if you want to derive the type of an element from a static path expression.
Description The Delete operation, which uses the inverse semantics of the Create operation, can only be called in the
instance-based variant and must be applied to business object nodes. The reason is that the instance to
be deleted must be identified by the preceding member path expression. The Delete operation can also
be applied to collections of business object nodes.
TestBO.QueryByElements.Execute().Delete()
Description You can use the Where method to filter a collection in order to return only the rows that meet the criteria.
This method returns a new collection, for example, collection A, which contains a subset of the source
collection, for example, collection B.
Example In the following example, the collection collB is the result of a query that was executed previously:
Variables that are used in a foreach statement are called loop variables. They have different semantics
depending on the way they are declared:
The statements within the foreach body can make use of the loop variable to access the instance of the
current iteration. For information about how to obtain collections of business object nodes, see Collec
tion Handling [page 244] .
Syntax Applicable in collection handling when you use the OrderBy and DistinctBy methods:
Applicable in collection handling when you use the , Where and Remove methods:
Description You can only use function literals in the following collection handling methods: Where [page 249], Or
derBy [page 271], DistinctBy [page 267], and Remove [page 268].
A function literal is an expression that defines an unnamed function. Function literals use the lambda op
erator (=>), which reads as "goes to". The left side of the lambda operator specifies the input parameter,
the type of which is inferred from the last item of the path expression. The right side of the lambda oper
ator holds the statement. In OrderBy methods and DistinctBy methods, the statement is a path expres
sion and in Where methods and Remove methods the statement is a comparison. In all these cases, the
path expression must specify a structured element.
Note
Do not use a function parameter name that you have already used for a declared variable. For more
information, see Declarations [page 247].
You can achieve the same result by using a foreach loop statement:
Syntax [Collection].GetByIndex(index)
Description You can use the Get By Index function to get the index value from the collection.
Description Use the GetFirst or GetLast method to return the first or last row of a collection.
Description You can use the GetFromDB function to read the data of a single node instance or a collection of node
instances of a business object. You can also use it to read data of dependent object nodes such as notes,
attachments as well as extension nodes.
The data returned is the state of the instance as read from the database before the start of the current
transaction. With this, you can figure out the changes of a business object instance at the end of a trans
action and build custom logic around it.
Description The if statement is a control statement. Depending on the result of the logical expression, the system
executes or skips the statement block. Optionally, else if and else subclauses can be used.
The namespace syntax in the scripting language is different to the namespace representation in the
Repository View. In the scripting language, the constant http://sap.com/xi prefix of the URL-
based namespaces is omitted and the slash mark (/) is replaced by a period (.).
Imported business objects can be statically accessed by typing the business object name as the root
identifier of a path expression. The local namespace of the solution is imported implicitly, that is, local
business objects can be accessed without an import statement.
Note
If you use more than one namespace, we recommend that you define an alias for each imported
namespace and qualify business objects or data types from these namespaces by using the aliases.
For examples, see Name Qualification [page 257].
Code completion is available for the namespace import, as well as for the static access of imported busi
ness objects and reuse libraries. The code completion for the namespace import always offers the re
quired amount of subsequent path elements in order to complete the namespace so that the corre
sponding entities can be accessed, for example, business objects or reuse libraries.
You can use a literal, for example, as an expression on the right of an assignment or as a parameter of a
method call in a path expression.
In a literal string, you can use a backslash (\) to escape characters, such as carriage returns or quotation
marks (“). You can use the following escape sequences:
● \n (new line)
● \r (carriage return)
● \t (tab)
● \v (vertical tab)
● \f (form feed)
● \\ (backslash)
● \” (quotation marks)
Description The logical operators AND (&&) and OR (||) always evaluate the overall expression to a Boolean value. The
operands themselves are conditional expressions, which in turn are comprised of arithmetic expres
sions, finally breaking down to atomic expressions, such as literals, variable identifiers, and path expres
sions.
You can also use the NOT operator (!) combined with brackets to override the precedence default value
of subexpressions.
Note
Short circuit evaluations are not supported. That is, if in a logical AND or OR expression the value of
the first operand is sufficient to determine the result of the operation, the second operand is still
evaluated.
Description The Mass Create function allows you to create multiple instances of a business object or a business ob
ject node. It takes the collection of the node data to be created and returns the collection of node instan
ces.
Note
For the Mass Create function, the behavior of the ESF2 and BOPF-based BOs for failed instances are
different:
● ESF2: If the creation of one of the instances fails, the entire transaction is rolled back with no
instance created.
● BOPF:If the creation of two instances out of 10 fails, the creation of the rest of the instances is
executed. For a failed instance, the API returns an empty value. The order of the instances re
turned by API is the same as the input collection. For example, if the creation of the 2nd and the
8th index fails, the API returns empty values for the 2nd and the 8th index.
When the API returns empty values for failed instances, use the GetByIndex () function to get
the input values for the indexes of empty values.
For more information, see Get by Index (Business Logic) [page 251]
Valid entries for <object type 1>: BusinessObject, Library (= reuse library or Web service), Message
Valid entries for <object type 2>: Node, Query, Action, Association, Element, Function (= built-
in function), LibraryFunction (= reuse service or Web service operation)
Description Usually, you can address the imported objects directly by their names instead of using fully qualified
names. However, if more than one object type (for example, a business object node, query, association,
or action) is declared with the same name, you need to fully qualify the objects in order to make them
unambiguous. This is necessary, for example, in the following cases:
● Two namespaces are imported that contain business objects with the same name.
● You have created a business object with the same name as an SAP business object. To reference the
SAP business object, you need to enter the fully qualified name of this business object including its
namespace alias. Without mentioning the namespace, the system will choose your business object
instead of the SAP business object.
● You want to access a business object that has the same name as a reuse service or a message.
● A node name in one business object is the same as a query name in the same business object on
the same level.
If the system discovers such a naming conflict, you can either use code completion to insert the correct
path expression or enter it directly by using two colons (::).
Example Fully qualifying names because two namespaces contain business objects with the same name:
Fully qualifying names because there are nodes, elements or associations within the same name:
import ABSL;
import AP.FinancialAccounting.Global as fin;
costObject = fin:FinancialAccountingViewOfCostObject.Create();
descriptionNodeElements.Description.content = "A Description";
descriptionNodeElements.Description.languageCode =
LanguageCode.ParseFromString("EN");
costObject.Association::Description.Create(descriptionNodeElements);
description = costObject.Element::Description;
Path expression containing a library function parameter (for example, of a reuse library service) for use
in a variable declaration:
<library>.<library function>.<param>.<...>
● Node elements
● Associations
● Method calls
● Type of variables
Path expressions always start with a root item. The root item can be a variable identifier, the this context,
a static access to an imported business object or a reuse library, as well as a message declared in the
business object definition.
If the root item is a variable of a structured data type, the path expression addresses subelements of this
data type. If the this context and imported business objects are used, all supported business object node
features can be addressed through the path expressions. The business object node features are element
and subelement access, associations, queries, actions, including Create with reference [page 247] ac
tions, and the Create Instance [page 246] operation and the Delete Instance [page 248] operation. If the
root item is a reuse library or a Web service (library), you must add the reuse service or Web service
operation (library function) and at least the parameter. If the parameter is of a structured type, the
path expression can also include the elements and subelements of this type.
Associations are instance-based and they can therefore only be followed by the this context and by varia
bles that are typed as business object nodes. In contrast, queries are static entities that have to be re
trieved and executed based on imported business objects. As an action can have the multiplicity [0,0],
[1,1], or [1,n], a query can either be accessed statically or instance-based, which depends on the multi
plicity. For the execution of an action, you can provide parameters to the action method call in the same
way as you can provide parameters for the execution of any reuse library service.
Methods and complete reuse libraries can be bound to certain data types and are then automatically
offered in the code completion. In addition to actions that are defined as part of the business object
model and that belong to a certain business object node, there are also various methods that are availa
ble for all unstructured data types, for example, theToString method.
var y : CurrencyConversion.Add.TargetCurrencyCode;
Description Within an .absl file related to service integration, you can use the GetProcessContext method for ev
ery accessible node instance. The process context itself offers change notifications for all changed refer
ence business object instances and all already evaluated conditions of the reference business object root
node instances.
For the root node of the reference business object, the process context provides the Boolean field
IsActiveInProcess.
The following change notification fields are available for all accessible nodes (including nodes that are
accessed through associations):
● IsCreated
● IsUpdated
● IsDeleted
The following evaluated conditions are available for the root node of the reference business object:
● IsStarted
● IsChanged
● IsCancelled
These conditions return the default condition evaluation result for the root node of the reference busi
ness object.
<query>.CreateSelectionParams ();
<selection parameter collection>.Add(<QueryParameterPath>, <Sign>,
<Option>, <LowValue>, [<HighValue>]);
<selection parameter collection>.Add(<QueryAssociationPath>,
<NodeInstance>);
<query>.CreateSortingParams ();
<selection parameter collection>.Add(<QueryElementPath>);
<selection parameter collection>.AddDescending(<QueryElementPath>);
Execute Function
The Execute function of a query returns a collection of instances of the node to which the query is
bound. Queries can be executed directly with no further parameters specified. Usually, you provide se
lection parameters to narrow down the result set as much as possible to the desired node instances by
defining appropriate filtering criteria. The instances returned by the Execute function overwrites any
unsaved changes performed by script files before calling Execute.
Note
A query does not take data into account that has been created or changed but has not yet been
saved to the database.
Selection Parameters
Each query defines a set of selection parameters. There may be selection parameters that are not part of
a node’s element structure. Selection parameters are passed as a collection to the query. You can create
an empty selection parameter collection by using the CreateSelectionParams function defined for
the corresponding query. You can also add selection parameters to the collection by using the Add func
tion.
● QueryParameterPath identifies a query parameter, for which you define the selection parameter.
QueryParameterPath is a path expression that starts with the query variable describing the same
query that was used to create the selection parameters. It is either followed by a parameter name
or, in case the parameter is structured, by an element path. The complete path must always point to
an unstructured parameter.
● Sign defines whether the selection shall be included in the result set ("I") or excluded from the re
sult ("E").
● Option is an operator used to compare the values defined in the selection parameters with the ac
tual values in the business object nodes. Possible values are:
Possible values for the Option parameter and what they mean
GT = Greater LT = Less
● LowValue and HighValue define the actual filter values. HighValue is optional and you can use
it for options that allow for ranges, that is, "BT" or "NB". You can either define these values by speci
fying literals or by supplying variables or elements of node instances (for example, by using
There are cases where you need to query for all instances of a business object node that have an associ
ation to a certain instance of another business node. This you can do by adding a selection parameter for
the source foreign key element of the association. The source foreign key elements of custom business
objects are generated implicitly by the system and cannot be accessed by the script code. However, if
you need to access the source foreign key elements, you can use the association name to define a selec
tion parameter. For this purpose, the Add function has an additional signature with only two parameters:
● The QueryAssociationPath parameter identifies an association (that is, its foreign key element)
for selection. QueryAssociationPath is a path expression that starts with the query variable de
scribing the same query as the one that was used to create the selection parameters. The path ex
pression is followed by an association name. Please note that the system supports only foreign key
associations defined at the same node where the query is defined.
● The NodeInstance parameter is an instance of the business object node the association points to.
Sorting Parameters
By default, the result of a query is not sorted. For queries defined on custom business objects, you can
specify that the result is to be sorted by specific elements. Another option is to use the sort functions
offered by the collection (see Collection Handling [page 244]). However, please take into consideration
that the sorting process performed by the query is executed on the database and is therefore faster than
sorting a collection in memory.
You can influence the order of the query result by providing sorting parameters. You can create an empty
sorting parameter collection by using the CreateSortingParams function defined for the correspond
ing query. Sorting parameters can be added to the collection by using the Add or the AddDescending
function. Both functions have the same parameter:
● The QueryElementPath parameter identifies an element in the query result, by which the result is
to be sorted. QueryElementPath is a static path expression that starts with the name of the busi
ness object followed by the name(s) of the node(s) and the name of a node element. In case the
element is structured, the path expression is followed by an element path. The complete path must
always point to an unstructured element. The element must belong to the same node the query be
longs to.
When executing the query, the system applies the sorting parameters in the same order as you have
added the parameters to the sorting parameters collection. The sort order (lexical or numeric) depends
on the data type of the query element.
In addition to specifying sorting parameters, you can restrict the number of instances returned by the
query using the MaximumRows parameter. If you expect a large result set, this can improve performance
provided that your solution needs to process only a small number of instances. The StartRow parame
ter defines an offset in the result data that allows you to request data starting from a row different from
the first one. The first row has an offset of 0.
ExecuteDataOnly Function
Note
The data returned by the ExecuteDataOnly function cannot be used to create a business object
node directly although the data type returned by this function is compatible with the type expected
by the Create function. If you try to use the data to create a node directly , this will lead to a runtime
error.
ExecuteFromDB Function
The ExecuteFromDB function provides the same parameters for selection and sorting as the Execute
function. However,ExecuteFromDB function returns the data that is saved on the Database and not
from the buffer. Hence, the data returned via this function will not contain any unsaved changes done in
the current transaction.
Count Function
The Count function works the same way as the Execute function or the ExecuteDataOnly function.
However, it just returns the number of business object nodes on the database that match the selection
parameters and does not return data of the selected business object nodes.
import ABSL;
*/
// 3) Same as in 2) but further restricted by excluding Class BETA
selectionParams.Add(query.Class, "E", "EQ",
ClassificationCode.CO_BETA);
resultData = query.ExecuteDataOnly(selectionParams);
/*
*/
*/
// 6) same as in 4) but get the 10 rows starting from the second
row (MaxRows = 10, FirstRow = 1)
resultData = query.ExecuteDataOnly(selectionParams, sortingParams,
10, 1);
/*
*/
// 7) Get all instances of QueryExample that refer to a given
instance of business object Target
selectionParams.Clear();
var targetInstance = Target.Retrieve("ID12345");
selectionParams.Add(query.ToOtherBusinessObject, targetInstance);
resultData = query.ExecuteDataOnly(selectionParams);
Description You can use the raise keyword to raise messages that have been declared in the business object defini-
tion. When you use the Create method, an instance of a message is created that is automatically bound
to the message type.
The Create method has one mandatory parameter: the severity. You have to supply the severity as a
string:
As additional optional parameters you can supply the values for placeholder variables as declared in the
message text. The type of these values is ANY.
You do not need to import messages if they are declared in the business object definition. They are then
automatically available in the code completion of the current context.
Description You can use the DistinctBy method to delete duplicate rows in a collection according to the specified cri
teria.
Description You can use the Remove method to remove those rows from the collection that meet the criteria. This
method returns a new collection, for example, collection A, which contains a subset of the source collec
tion, for example, collection B.
Example In the following example, the collection collB is the result of a query that was executed previously :
Description This method allows you to reset an association. If, for example, a target node instance has been deleted
by following the association, you must reset the association because the references that point to the de
leted business object are not cleared automatically. Therefore, such invalid references must be explicitly
deleted and every access to an association must be secured by a previous IsSet check call. For infor
mation about the IsSet check for associations, see Check Associations [page 242].
The Reset method can only be applied to foreign key associations and is not available for variables that
are derived from association access.
if (targetNode.IsSet()) {
targetNode.Delete();
this.ToTarget.Reset();
}
As parameters for the method, you can pass a single alternative key or a collection of alternative keys,
which have been declared as variables. The variables, which contain the alternative key values, need to
be of the same type as the alternative keys specified in the business object. If the method is used for a
collection of node instances, it returns a new collection.
businessobject BonusPlan {
[AlternativeKey] element SO_ID : BusinessTransactionDocumentID;
}
Script file:
elementID.content = "5000000002";
retrieveSingle = SalesOrder.Retrieve(elementID);
collectionID.Add(elementID);
elementID.content = "5000000003";
collectionID.Add(elementID);
retrieveColl = SalesOrder.Retrieve(collectionID);
Description The use of the return keyword is mandatory in .absl files that were created by using the Service
Integration wizard. The return value has to be of Boolean type.
For each of the four condition evaluations (Relevance, Start, Change, Cancel) that are possible in a serv
ice integration scenario, the Boolean return value must be used to signal the calling process agent about
the evaluation result. To calculate the condition for the current root node instance, you can access the
process context information of this node and its node values.
Description The InReconciliation Boolean indicator specifies conditions that depend on the mode of execution, that
is, the standard message mode or the reconciliation message mode. The reconciliation mode is an error
recovery mechanism that allows it to send a new message, the reconciliation message. This reconcilia
tion message contains the complete information and cancels all previous erroneous messages.
Example if (InReconciliation) {
...
}
return false;
Service integration allows you to synchronize data between several involved business objects that are located
in different deployment units in an asynchronous way. The business objects exchange the data through XML
messages. You can use the methods listed below to determine for which nodes of the sending business object
the data is transmitted.
Script files can be used for the condition evaluation, which specifies whether the data of a node is part of the
cross-business-object synchronization. Therefore, the .absl files in service integration scenarios support
parameters that are passed in at runtime. Additionally, a Boolean return value is expected that signals to the
calling process agent whether the business object instance is to be considered in the message construction.
Furthermore, the process context is attached to every business object node instance that allows you to check
certain status information related to service integration.
In script files that are executed within a service integration scenario, the context information is read-only. This
means that the system prevents accessible business object nodes and calls of actions from being changed.
The information about the script file signature (that is, the parameters and return values and their
corresponding types) is documented in a comment block at the very beginning of each .absl file. In service
integration scenarios, various.absl file subtypes are involved. This is also documented in the comment.
Description You can use the OrderBy or OrderByDescending method to sort a collection in ascending or descending
order according to the specified sorting criteria. By default, collection columns of numeric and byte type
are sorted by their value and columns of string type are sorted as text. You can define the sorting criteria
as action parameters by using a function literal, which refers to the columns of the collection. To define
multiple sorting criteria, add ThenBy or ThenByDescending statements to the expression.
Note
If the row type of a collection is structured, you need to specify the sorting criteria. The sorting pa
rameters must be an atomic data type, that is, you are not allowed to define a structured attribute of
the collection row type as a sorting parameter. If the row type is unstructured, you can only sort by
row and cannot specify a sorting criteria.
Sorting does not have a permanent effect on business object nodes. Each time a node is read from
the system, all previous sorting results are lost.
Description The switch control statement provides a more convenient option to express if.. else if.. code
blocks that evaluate exactly the same field against different values again and again. The switch type is
limited to non-structured data types. The case clause allows for arbitrary expressions, for example, the
use of variables.
Note
If you use the this keyword in the coding of a mass-enabled script file, this represents a collection of
business object nodes.
The code completion for the business object node specified by this displays instance-based features
such as node elements, associations and instance-based actions including mass-enabled features.
Queries and static actions are not instance-based and therefore you can address them only through
static business object access.
You can use the GetObjectNodeReference() method along with the this keyword to return the follow
ing information about the business object nodes in a solution:
Description The while loop statement allows you to execute the statement list in the code body as long as the logical
expression evaluates to true.
The basic SAP reuse libraries of the scripting language extend the scope and functions that you use to
implement your business logic in the studio. These “language-near” libraries provide basic functions that are
used quite often, for example, to retrieve context data, such as the current date or time for the current identity.
SAP reuse libraries allow for parameters that are either data types (CDTs or GDTs) or business object node
instances. The return values have to be data types.
Note
To use basic SAP reuse libraries, you need to import the namespace ABSL with the import keyword. For
more information on the import keyword, see Syntax for Implementation of Business Logic [page 235].
The functions of the SAP reuse libraries can always be accessed in a static manner. In addition, most of the
libraries are bound to a certain data type. In this case, the instance of the data type on which the method is
executed will be automatically passed to the method at runtime as the first parameter.
Example
import ABSL;
var globalDateTime = GlobalDateTime.ParseFromString("2008–03–30");
var date = globalDateTime.ConvertToDate():
This SAP reuse library contains a function that you can use to convert a string to a binary value.
Binary.ParseFromString
Note
This function supports static calls only.
Note
This function supports static calls only.
Binary.ToBase64String
Note
This function supports static calls only.
This SAP reuse library contains functions that provide context information, for example, the current time in the
time zone of the user or the identity UUID of the user that is currently logged on.
Note
Context.GetCurrentGlobalDateTime
Description Returns the current date and time in Coordinated Universal Time (UTC).
Context.GetCurrentIdentityUUID
Description Returns the Identity UUID of the user currently logged on.
Context.GetCurrentSystemDate
Description Returns the current date in the time zone of the system.
Context.GetCurrentSystemDateTime
Description Returns the current date and time in the time zone of the system.
Result: Current date and time in the time zone of the system.
Context.GetCurrentSystemTime
Description Returns the current time in the time zone of the system.
Context.GetCurrentUserDate
Description Returns the current date in the time zone of the user.
Context.GetCurrentUserDateTime
Description Returns the current date and time in the time zone of the user.
Result: Current date and time in the time zone of the user
Context.GetCurrentUserTime
Description Returns the current time in the time zone of the user.
Context.GetCurrentUISwitches
Description Returns the user interface switches (UI switches) of the current solution assigned to the current user.
Result: Table listing the UI switches. The line type of the table is PDI_ABSL_STRING
Context.GetCurrentSystemTimeStamp
Description Returns the time stamp for the current Coordinated Universal Time (UTC) reference time of the system
as a numeric value.
Result: Time stamp (numeric value) for the current UTC reference time of the system, for example,
20130314101211.5922640.
Context.GetSystemURL
Description Returns the URL of the system. If the optional parameter SingleSignOn is set to True, the SSO enabled
URL is returned.
OR
Context.IsProductionTenant
Description Returns all the assigned business roles for a logged in user.
Context.IsPatchSolution
This SAP reuse library contains functions that you can use for currency-based amounts. For example, you can
convert an amount from one currency into another.
CurrencyConversion.GreaterEquals
Description Indicates whether or not an amount is greater than or equal to another amount.
You can compare amounts with different currency codes. The result depends on the exchange rate main
tained in the system.
Result: False
CurrencyConversion.GreaterThan
You can compare amounts with different currency codes. The result depends on the exchange rate main
tained in the system.
Result: False
CurrencyConversion.LessEquals
Description Indicates whether or not an amount is less than or is equal to another amount.
You can compare amounts with different currency codes. The result depends on the exchange rate main
tained in the system.
Result: True
CurrencyConversion.LessThan
You can compare amounts with different currency codes. The result depends on the exchange rate main
tained in the system.
Result: True
CurrencyConversion.Equals
You can compare amounts with different currency codes. The result depends on the exchange rate main
tained in the system.
Result: False
You can add amounts with different currency codes and define a target currency code. The result de
pends on the exchange rate maintained in the system.
CurrencyConversion.Subtract
You can add amounts with different currency codes and define a target currency code. The result de
pends on the exchange rate maintained in the system.
CurrencyConversion.Round
CurrencyConversion.ConvertCurrency
Description Converts an amount into a different currency based on the exchange rate maintained in the system.
CurrencyConversion.SpellAmount
Description Spells out an amount. The integer part and the decimal part of a decimal number are spelled out sepa
rately and returned in the respective fields. If you do not provide the language, the logon language is
used as a default.
This SAP reuse library contains a function that you can use to retrieve data from a supplied Business Object
and its nodes that was changed during the given period based on the Platform Change Document service.
Note
● Only the data of those elements and nodes of Custom Business Objects can be retrieved which are
annotated with Change History (Business Object) [page 199].
● The data of SAP Business Objects will also be retrieved if those business objects have the Platform
Change Document service enabled by SAP.
● This annotation can also be applied to extension nodes and their elements. However, it cannot be
applied to Extension Elements.
● This annotation does not work for Dependent Objects.
Description Returns the data from the Platform Change Documents that matches the selection criteria as described
in the note above.
● BusinessObjectName defines the name of the Business Object. If this is a SAP Business Object it
must contain the respective. namespace, e.g,. AP.CRM.Global:Lead.
● NodeID provides the NodeID of the Root node for the requested instance.
● The other four parameters are optional:
○ NodeName: Restricts the result to given node
○ ToChangeDateTime: If no value is given the current date and time is taken
○ FromChangeDateTime: If no value is given 30 days earlier than the ToChangeDateTime is used
○ ChangerUUID: Only the changes made to the respective. user are returned
This SAP reuse library contains functions that you can use to compare dates and to perform simple
calculations with dates. Furthermore, it contains other useful date features, for example, services that you can
use to determine the start or end date of a month related to a specified date.
Date.Create
Note
This function supports static calls only.
Date.GreaterEquals
Description Indicates whether or not a date is later than or equal to another date.
Result: False
Result: False
Date.LessEquals
Description Indicates whether or not a date is earlier than or equal to another date.
Result: True
Date.LessThan
Result: True
Date.IsBetween
Description Indicates whether or not a date is between two specified date values.
Result: True
Date.GetDay
Date.GetWeekday
Date.GetMonth
Date.GetYear
Date.GetWeek
Date.AddDuration
Date.SubtractDuration
Description Returns the delta duration between two specified date values.
Result:
Date.StartOfMonth
Date.EndOfMonth
Date.StartOfYear
Date.EndOfYear
Date.ConvertToGlobalDateTime
Date.ParseFromString
Description Converts a string into a date. The service accepts both the internal format and the ISO format.
Note
This service only supports static calls.
This SAP reuse library contains a function that you can use to convert a string into a date and time value.
DateTime.ParseFromString
Note
This function only supports static calls.
Use this function only when an SAP business object uses the data type DateTime in namespace
http://sap.com/xi/BASIS/Global. However, do not use the DateTime data type in your own
business object definitions.
This SAP reuse library contains functions that you can use to compare durations and to perform simple
calculations with durations.
Note
Note
This function supports static calls only.
Duration.GreaterEquals
Description Indicates whether or not a duration is greater than or equal to another duration.
Result: False
Duration.GreaterThan
Result: False
Duration.LessEquals
Description Indicates whether or not a duration is less than or equal to another duration.
Result: True
Duration.LessThan
Result: True
The result is not normalized. Normalization can be forced by setting the parameter
ForceNormalization to True.
Duration.SubtractDuration
The subtraction may not have an unambiguous result (the reason is, for example, that some months
have 30 days, others have 31 days). In this case, the function will not return a result . The calculation can
be forced by setting parameter ForceCalculation to True. Then the function, for example, constantly
uses 30 days for the duration of each month.
Note
Negative durations are not allowed. Therefore, the first duration value must be greater than the sec
ond duration value.
Result: As the result is ambiguous the function does not return a result. Instead it returns a correspond
ing error message.
Result: The function uses 30 days for the duration of each month. The result is the duration value P28D
Duration.ConvertToDays
Duration.ConvertToHours
Duration.ParseFromString
Note
This function supports static calls only.
This SAP reuse library contains functions that you can use to compare global date and time values and to
perform simple calculations with global date and time values. Furthermore, it contains other useful global date
and time features, for example, functions that you can use to determine the start or end of a global date and
time of a month.
Note
For GlobalDateTime elements, use the data type GLOBAL_DateTime of namespace http://sap.com/xi/
BASIS/Global.
Some functions include the IsUTC parameter. This parameter indicates whether global date and time is passed
in Coordinated Universal Time (UTC) or to the time zone of the user. This parameter is needed because the
user interface does not pass the date and time in UTC but in the time zone of the user.
GlobalDateTime.GreaterEquals
Description Indicates whether or not a global date and time value is greater than or equal to another global date and
time value.
Result: False
GlobalDateTime.GreaterThan
Description Indicates whether or not a global date and time value is greater than another global date and time value.
Result: False
GlobalDateTime.LessEquals
Description Indicates whether or not a global date and time value is less than or equal to another global date and
time value.
Result: True
GlobalDateTime.LessThan
Description Indicates whether or not a global time value is less than another global time value.
Result: True
GlobalDateTime.Equals
Description Indicates whether or not a global date and time value is equal to another global date and time value.
Result: False
GlobalDateTime.IsBetween
Description Indicates whether or not a global date and time value is between two other specified global date and
time values.
Result: True
GlobalDateTime.GetDate
this.result = this.gDateTime.GetDate();
GlobalDateTime.GetTime
this.result = this.gDateTime.GetTime();
GlobalDateTime.GetDay
GlobalDateTime.GetMonth
GlobalDateTime.GetYear
GlobalDateTime.GetWeek
Description Returns the calendar week of a global date and time value.
GlobalDateTime.GetMinute
GlobalDateTime.GetSecond
GlobalDateTime.AddDuration
GlobalDateTime.SubtractDuration
GlobalDateTime.Delta
Description Returns the delta duration between two global date and time values.
GlobalDateTime.StartOfMonth
Description Returns the start of a month related to a global date and time value.
GlobalDateTime.EndOfMonth
Description Returns the end of a month related to a global date and time value.
GlobalDateTime.StartOfYear
Description Returns the start of a year related to a global date and time value.
GlobalDateTime.EndOfYear
Description Returns the end of a year related to a global date and time value.
GlobalDateTime.ConvertToDate
Description Converts a global date and time value into a date and time value.
Note
Use this function only when an SAP business object uses the DateTime data type in the http://
sap.com/xi/BASIS/Global namespace. Do not use the DateTime data type in your own busi
ness object definitions.
GlobalDateTime.ConvertToLocalDateTime
Description Converts a global date and time value into a local date and time value. You can specify target time zone .
If no time zone is specified, the function converts the global date and time value into the time zone of the
user that is currently logged on.
Result: Local date time value in the time zone of the user.
this.result = this.gDateTime.ConvertToLocalDateTime("CET");
GlobalDateTime.ConvertToLocalNormalisedDateTime
Description Converts a global date and time value into a local normalized date and time value. You can specify a time
zone. If no time zone is specified, the time zone of the user that is currently logged on is used.
Result: Local normalized date time value with the time zone of the user.
this.result =
this.gDateTime.ConvertToLocalNormalisedDateTime("CET");
GlobalDateTime.ParseFromString
Description Converts a string into a global date and time value. The function accepts both the internal format and
the ISO format.
Note
This function supports static calls only.
LanguageCode.ParseFromString
Description Converts a string into a language code. Before the conversion the system checks if the string is a valid
language code. The function accepts ISO codes only.
Note
This function supports static calls only.
This SAP reuse library contains functions that deal with local date and time values.
LocalDateTime.ConvertTimeZone
Description Converts a local date and time value from one time zone into another time zone.
LocalDateTime.ConvertToGlobalDateTime
Description Converts a local date and time value into a global date and time value.
Description Converts a string into a local date and time value. The function accepts both the internal format and the
ISO format.
Note
This function supports static calls only.
This SAP reuse library contains a function that deals with local normalized date and time values.
LocalNormalisedDateTime.ConvertToGlobalDateTime
Description Converts a local normalized date and time value into a global date and time value.
Overview
This SAP reuse library contains functions that you can use to draw numbers. The drawn numbers are
separated by identifiers that support different number ranges for different object types, for example document
types. These identifiers are called number range objects.
NumberRange.DrawNumber
Description Draws a new number; ideally the next number in the sequence of a given number range object.
The first value in the range always equals to 1; and the last value is 999.999.999.
In cases where the current value has reached the maximum value 999.999.999, the system raises a
message, and the number range is reset to 0. Hence, the next drawn number is 1.
Result: The value of the number range object RECORD and ORDER is the next number in sequence.
NumberRange.GetNumber
In cases where there are no earlier calls to this specific number range object, the value is 0.
Result: The current value of the number range objects RECORD and ORDER are returned.
NumberRange.ResetRange
Example NumberRange.ResetRange("RECORD");
var numberRangeObject : ID = "ORDER";
NumberRange.ResetRange( numberRangeObject );
Result: The value of the number range objects RECORD and ORDER is set to 0.
This SAP reuse library contains functions that you can use for integers and decimals.
Numeric.IsNumeric
Note
This function supports static calls only.
Result: False
Description Converts a string into a numeric value. Before the conversion the system checks if the string is a valid
numeric value.
The decimal point can be a dot as well as a comma depending on the locale.
Note
This function supports static calls only.
this.result = Numeric.ParseFromString("1,5");
Numeric.RoundToString
Description Converts a numeric value into a string by rounding it to a given number of decimal places. The string
format depends on the locale of the current user. If you want to ensure that the dot is used as decimal
mark independently of the locale, you need to provide the optional RawRepresentation parameter.
This parameter is useful, for example, when the sting needs to be parsed again into a numeric value us
ing the Numeric.ParseFromString function.
Tip
If you want to ensure that the dot is used as decimal mark consistently, use the following statement:
this.result = this.pi.RoundToString( 2 , true);
This SAP reuse library contains functions for codes and identifiers with implementation type NUMC.
For information about the data types and their implementation type, see the Business Center at https://
www.sme.sap.com under SAP Business ByDesign Community Wiki SAP Business ByDesign Studio
Public Solution Model . You can find the information in the Published Data Types List.
Description Converts a string into a numeric character. Before the conversion the system checks if the string is a
valid numeric character.
Note
This function supports static calls only.
This SAP reuse library contains functions that you can use to compare quantities and to perform simple
calculations of quantities. The functions allows to use different units of measure if they are convertible.
QuantityConversion.GreaterEquals
Description Indicates whether or not a quantity is greater than or equal to another quantity.
Result: True
QuantityConversion.GreaterThan
Result: False
QuantityConversion.LessEquals
Description Indicates whether or not a quantity is less than or equal to another quantity.
Result: True
QuantityConversion.LessThan
Result: False
QuantityConversion.Equals
Result: True
QuantityConversion.Add
Description Adds two quantities. You can add quantities of different units of measure (UoM). If you do not specify a
target UoM, the function returns the result in the UoM of the first quantity.
QuantityConversion.Subtract
Description Subtracts a quantity from another quantity. You can substract quantities of different units of measure
(UoM). If you do not specify a target UoM, the function returns the result in the UoM of the first quantity.
QuantityConversion.Divide
This SAP reuse library contains the following functions that you can use, for example, to compare times.
Time.GreaterEquals
Description Indicates whether or not a time value is greater than or equal to another time value.
Result: False
Time.GreaterThan
Result: False
Time.LessEquals
Description Indicates whether or not a time value is less than or equal to another value.
Result: True
Time.LessThan
Description Indicates whether or not a time value is less than another value.
Result: True
Time.GetHour
Time.GetMinute
Time.GetSecond
Time.Delta
Description Returns the duration delta between two specified time values.
Description Converts a string into a time value. The function accepts both the internal format and the ISO format.
Note
This function supports static calls only.
This reuse library contains functions for Universal Unique Identifiers (UUIDs).
UUID.ParseFromString
Note
This function supports static calls only.
Example this.result.content =
UUID.ParseFromString("00163E01023602DD88AFE2F34FC4C3F3");
UUID.Generate
Note
This function supports static calls only.
This SAP reuse library contains functions for read access logging (RAL).
Description Writes direct access logs when sensitive personal data is read and sent through one of the channels.
Channels can be, for example, ABSL_MSG.
SensitivePersonalData.WritePreparedDataLog
Description Writes prepared data logs when attachments with sensitive data are created using sensitive fields.
GetRALLogItem
Description Creates an instance of RAL log item, that will be recorded in the Read Access Log. This context function
can be used only for the fields marked as Sensitive Personal Data.
GetChangeLogInfo
Description Fetches the BO name, Node name, or Node ID when used with the ChangeHistoryEnabled node.
Use this function to delete the ChangeLogHistory attached to the respective node in deletion BADI absl.
var ChangelogInfo :
DataDestructionBAdIDestroyCustomDataResultChangeDocumentNodeDetails;
var ChangelogInfoCollection :collectionof
DataDestructionBAdIDestroyCustomDataResultChangeDocumentNodeDetails;
var CustRoot =
Customer .Retrieve(InputData.BusinessPartnerUUID);
var CustomerID = CustRoot.InternalID;
PrivateAccountRoot.Account_ID = "XXXX".Concatenate(str);
ChangelogInfo = PrivateAccountRoot.GetChangeLogInfo();
ChangelogInfoCollection.Add(ChangelogInfo);
ChangelogInfo.Clear();
result.ChangeDocumentNodeDetails = ChangelogInfoCollection;
result.ErrorOccurredDuringDestroy = false;
}
return result;
For more information, see Web Services Quick Guide [page 586].
WebServiceUtilities.ExecuteWebService
Descrip Calls a REST or RSS/Atom mashup Web service. This reuse library focuses on relatively simple Web services
tion that can be modeled as a mashup Web service. If you need to control the Web service call in more detail, you
can use the WebServiceUtilities.ExecuteRESTService reuse function.
For more information, see Using a Mashup Web Service in a Script File [page 563].
WebServiceUtilities.ExecuteRESTService
Descrip Calls a REST Web service defined in an External Web Service Integration scenario. For more information, see
tion Integrate an External Web Service Using REST [page 614].
This reuse library allows you to control the Web service call using a set of parameters. You can, for example,
dynamically create the request body or use specific authentication mechanisms or header parameters.
After executing the service, the function fills the following parameters in the result structure:
● ReturnCode: Return code of the REST call, for example, 200for success
● Content: Content of the response
● HeaderParameters: Header parameters of the response
● ContentType: Content type of the response
● Cookies: Cookies that are returned from the HTTP response
headerParam.Name = "Accept-Language";
headerParam.Value = "de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4";
headerParams.add(headerParam);
urlParam.Name = "listZipCodeList";
urlParam.Value = "20910";
urlParams.add(urlParam);
var result =
WebServiceUtilities.ExecuteRESTService(communicationScenarioName,
serviceName,"GET", "ext/plain", "ndfdXMLclient.php", urlParam,
headerParams, "");
//You can obtain the response cookies from the result as shown below
varSetCookies = result.Cookies.
//You can set cookies in the HTTP request as shown below
varresult =
WebServiceUtilities.ExecuteRESTService(communicationScenarioName,service
Name,"POST", "ext/plain", "ndfdXMLclient.php", urlParam, headerParams,
"", SetCookies);
For more information, see Example: Consume a REST Service [page 616].
WebServiceUtilities.EncryptWithHashBasedMessageAuthenticationCode
The SAP reuse libraries for business areas provide additional, very specific services to the scripting language
that are relevant for functions in the business areas of the cloud solution from SAP, for example, in the Financial
Management business area. These services are all based on entities provided by SAP.
To use an SAP reuse library for a specific business areas, you need to import the namespace of the relevant
business area with the import keyword, for example, import
AP.FO.ProductDataMaintenance.Global;. For more information about the import keyword, see
Syntax for Implementation of Business Logic [page 235].
To use this SAP reuse library, you need to import the AP.IS.CodingBlock namespace.
Example FormData.ItemAccountingCodingBlockAssignment =
this.ToItemAccountingCodingBlockAssignment.ToMessage( );
To use this SAP reuse library, you need to import the AP.FO.Address.Global namespace.
AddressSnapshotUtilities.ToForm
Description Converts an address into a format that can be used in a print form. The data stored in an instance of the
Address Snapshot business object is converted into the FormAddress global data type.
This SAP reuse library contains a service that is based on advanced functions for date and time processing. To
use this library, you need to import the AP.IS.DateAndTime.Global namespace.
Description Returns the next active time value based on the calendar, direction (+ or -) and the date and time value
passed.
Note
If you do not provide a calendar, the default calendar is used.
DateTimeUtilities.MoveTimePoint
Description The MoveTimePoint operation moves a time point by a specified duration either forwards or backwards
on a given calendar. The response structure returns the time point considering working or non-working
days when a calendar is used for calculation. If the operation is used without a calendar, the default (gre
gorian) calendar is used.
Note
If you do not provide a calendar, the default (gregorian) calendar is used.
Result Explanation: Calendar Schema: Monday to Friday 09:00 to 17:00 based on EST, EST time zone
difference to UTC: +4 hours(based on calculation day 08.09.2014) Calendar schema on UTC: Monday to
Friday 13:00 to 21:00
Start time point is 08.09.2014 01:00:00 (UTC) which is outside the operating hours, so it starts at next
active time point: 08.09.2014 13:00:00
Every working day has 8 operating hours so 48 hours correspond to 6 working days. The calculation
ends on 15.09.2014 21:00:00 so next active time point is 16.09.2014 13:00:00.
This reuse library contains a service that is relevant for the Financial Management business area. To use this
library, you need to import the AP.FO.CompanyFinancialsProcessControl.Global namespace.
FinancialsProcessUtilities.GetProcessLockStatus
Description Returns the process lock status for a given accounting transaction date, company and business transac
tion type group. Please note that on the user interface of SAP Business ByDesign, process lock is called
“Process Control” and accounting transaction date is called “Posting Date” or “Proposed Posting Date” .
For information about the process lock, see the SAP Business ByDesign Library under Business Areas
Financial Management Financial and Management Accounting General Leger Master Data
Companies View Quick Guide for Companies (General Ledger) Set the Process Control .
Note
This service supports static calls only.
In this example, this.ToCompany refers to the Company business object provided by SAP.
Result: Process lock status code, for example, 1 for status “not blocked”.
This SAP reuse library contains a service that is based on the Set of Books business object provided by SAP.
To use this library, you need to import the AP.FinancialAccounting.Global namespace.
SetofBooksUtilities.GetFiscalYearStartEndDate
Descrip Returns the start date and the end date of the fiscal year for a given company, set of books, and fiscal year.
tion
Result:
Start date of the fiscal year, for example,01012012 for year 2012
End date of the fiscal year, for example, 31122012 for year 2012
This SAP reuse library contains a service that is based on the Material business object provided by SAP. To
use this library, you need to import the AP.FO.ProductDataMaintenance.Global namespace.
MaterialUtilities.QuantityConversion
Description Converts a quantity of a material or product into a different unit of measure or quantity specification.
Example this.quantity_in.content = 1;
this.quantity_in.unitCode = "XPX";
this.unit_out = "EA";
this.quantity_out =
this.toMaterial.QuantityConversion( this.quantity_in,
this.unit_out );
This SAP reuse library contains a service that is based on output management functionality. To use this reuse
library, you need to import the following namespaces:
● AP.Common.GDT
● BASIS.Global
● DocumentServices.Global
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Descrip Provides business object data in a portable document format (PDF) document.
tion
Example //variables
var FormTemplateLanguage = "E";
var PDF : BinaryObject;
var FormTemplateCode : OutputRequestFormTemplateCode;
FormTemplateCode.content = "ZMEI2TXR_P3JE6"; //Code is Form Template
Header Code
Result: A PDF, which can be used further for storage, for example, as a business object attachment.
OutputManagementUtilities.CreatePrintQueueItem
OutputManagementUtilities.CreatePrintQueueItemWithFormTemplate
Descrip Enables you to create print queue instances based on the form template code, country code, language fields as
tion inputs to fetch the corresponding form template. The XML binary content along with the form template is used
to generate the actual PDF content.
To use this SAP reuse library, you need to import the AP.FO.BusinessPartner.Global namespace
BusinessPartnerUtilities.IsBusinessPartnerMerge
Description Returns true if a Business Partner Merge Run is executed in the current transaction.
Developers can decide to use this flag in their custom development depending on the scenario. For ex
ample, developers can skip certain determinations during the merge process.
Result:
Description Returns true if the enhanced re-alignment phase of the Business Partner Merge Run is executed in the
current transaction.
Developers can decide to use this flag in their custom development depending on the scenario. For ex
ample, developers can skip certain determinations during the merge process.
Result:
This SAP reuse library contains a service that is based on the PriceAndTaxCalculation dependent object
provided by SAP. To use this library, you need to import the AP.FO.PriceAndTax.Global namespace.
PriceComponentUtilities.ToMessage
Description Converts thePriceAndTaxCalculation dependent object into the FormPriceComponent global data
type.
Example FormData.PriceComponent =
this.PriceAndTaxCalculation.PriceComponent.ToMessage( );
This SAP reuse library contains a service that is based on the DueClearing business object provided by SAP.
To use this library, you need to import the AP.DueItemManagement.Global namespace.
Note
Input parameters:
OpenItemsList
Elements:
Elements of DueClearingOpenItemDetailsList:
Elements of DueClearingOpenItemDetailsDeductionsList:
Output parameters:
Result
Datatype: DueClearingClearOpenItemsResultElements
// Variables
var result;
var OpenItems: DueClearingClearOpenItemsElements;
var PostingDate;
var DocumentDate;
var TRPItemStringUUID;
var TRPItemUUID: UUID;
var ItemTransactionCurrencyCode;
var AppliedNetAmount;
var CashDiscountAmount;
var DeductionsList;
var DeductionAmount;
var DedTransactionCurrencyCode;
var PaymentDifferenceReasonCode;
PostingDate = Library::Date.ParseFromString("20160601");
DocumentDate = Library::Date.ParseFromString("20160601");
OpenItems.PostingDate = PostingDate;
OpenItems.DocumentDate = DocumentDate;
var TRPItemUUID1 =
Library::UUID.ParseFromString("00163E04ECFD1ED5B5AA17AF9EAB280F");
var TRPItemUUID2 =
Library::UUID.ParseFromString("00163E04ECFD1ED5B5AA26174E186835");
result =
Library::DueClearingUtilities.ClearOpenItems(listOpenItems);
The SAP built-in functions of the scripting language extend the scope of the syntax for the implementation of
your business logic in a similar way as the basic reuse libraries. However, in contrast to the reuse libraries, you
do not need to import a namespace to use the built-in functions.
Clear All data types except for Boolean data Clears a value.
types.
IsInitial All data types except for Boolean data Indicates whether a value is initial or
types. not. Returns a Boolean value.
ToString ● All base types except for string Converts a value into a string.
data types
For binary values UTF-8 encoding is
● All non-base types that are not
used. Invalid byte sequences are re
structured
placed by the replacement character (U
● Amount (http://sap.com/xi/AP/
+FFFD). The replacement character is
Common/GDT)
shown as a black diamond with a white
● Quantity (http://sap.com/xi/AP/ question mark.
Common/GDT)
● LOCAL_DateTime (http://
sap.com/xi/BASIS/Global)
● LOCALNORMALISED_DateTime
(http://sap.com/xi/BASIS/Global)
Example:
if (!this.numericValue.IsInitial()) {
this.string = this.numericValue.ToString();
this.numericValue.Clear();
}
You can use these functions to read the description of numeric code data types or character-based code data
types. If you use a structured data type, the method binds to the structure but not to the content element.
GetDescription
Description Returns the description of a code value in the language of the user. For some data types, for example, if
you use the RegionCode data type, you also need to provide the ListID element.
GetDescriptionInOtherLanguage
Description Returns the description of a code value in a specified language. For some data types, for example, if you
use the RegionCode data type, you also need to provide the ListID element.
Description Returns a collection of values and descriptions for a code data type in the language of the user. For some
data types, for example, if you use the RegionCode data type, you also need to provide the ListID ele
ment.
GetAllValuesAndDescriptionsInOtherLanguage
Description Returns a collection of values and descriptions for a code data type in a specified language. For some
data types, for example, if you use the RegionCode data type, you also need to provide the ListID ele
ment.
These functions contain description and processing functions for character strings.
Concatenate
Contains
If the source string is empty, the result is false and the system raises an information message. If the
substring is empty, the result is false and the system raises an error message.
Result: True
If the source string is empty, the result is false and the system raises an information message. If the
substring is empty, the result is false and the system raises an error message.
Result: True
Find
Description Searches from left to right and returns the position of a substring in a string. Optionally, you can define a
search area by specifying the start position only or by specifying the start position as well as the length
of the search area. If no substring is found, the function returns the value "-1".
The function returns the value “-1” and raises a message if the system encounters one of the following
issues:
this.string = "aaabbbcccbbb";
this.result = this.string.Find("bbb", 5);
this.string = "aaabbbcccbbb";
this.result = this.string.Find("bbb", 5, 3);
Description Searches from right to left and returns the position of a substring in a string. Optionally, you can define a
search area by specifying the start position only or by specifying the start position and the length of the
search area. If no substring is found, the function returns the value "-1".
The function returns the value “-1” and raises a message if the system encounters one of the following
issues:
this.string = "aaabbbcccbbb";
this.result = this.string.FindLast("bbb", 8);
this.string = "aaabbbcccbbb";
this.result = this.string.FindLast("bbb", 8, 5);
FindLastRegEx
Description Searches from right to left and returns the position of a regular expression pattern in a string. Optionally,
you can define a search area by specifying the start position only or by specifying the start position and
the length of the search area. If no substring is found, the function returns the value "-1".
The function returns the value “-1” and raises a message if the system encounters one of the following
issues:
For information about the operators that you can use in a regular expression pattern, see the ABAP
Keyword Documentation.
FindRegEx
Description Searches from left to right and returns the position of a regular expression pattern in a string. Optionally,
you can define a search area by specifying the start position only or by specifying the start position and
the length of the search area. If no substring is found, the function returns the value "-1".
The function returns the value “-1” and raises a message if the system encounters one of the following
issues:
For information about the operators that you can use in a regular expression pattern, see the ABAP
Keyword Documentation.
Matches
Description Indicates whether or not the source string matches the regular expression pattern.
The function raises a message and returns the result false, if the system encounters one of the follow
ing issues:
Result: True
Replace
If the substring is empty, the function returns the source string. If the source string is empty, the func
tion returns an empty string.
ReplaceRegEx
Description Returns all locations in a string with a substring that match a regular expression pattern. Optionally, you
can define a search area by specifying the start position only or by specifying the start position and the
length of the search area.
If the substring is empty or the regular expression pattern is invalid, the function returns the source
string and raises an error message. If the source string is empty, the function returns an empty string
and raises an information message.
For information about the operators that you can use in a regular expression pattern, see the ABAP
Keyword Documentation.
If the source string is empty, the result is false and the system raises an information message. If the
substring is empty, the result is false and the system raises an error message.
Result: False
Substring
Description Returns a substring of a string starting at a specified position. Optionally, you can define the length of
the substring.
The function raises a message and returns an empty string, if the system encounters one of the follow
ing issues:
● Either the start position or the sum of start position and length of the substring is not within the
length of the string (error message)
● The length of the substring succeeds the length of the string (error message)
● The source string is empty (information message)
● The start position or the length of the substring is a negative number (error message)
this.string = "aaabbbccc";
this.result = this.string.Substring(3);
this.string = "aaabbbccc";
this.result = this.string.Substring(4,3);
ToLowerCase
If the source string is empty, the system returns an empty string and raises an information message.
ToUpperCase
If the source string is empty, the system returns an empty string and raises an information message.
Trim
Description Deletes leading and trailing characters. It is not relevant for the result, in which order you pass the char
acters to the system. If you do not specify a character, the system removes all blank characters.
If the source string is empty, the system raises an information message and returns an empty string.
TrimLeft
Description Deletes leading characters. It is not relevant for the result, in which order you pass the characters to the
system. If you do not specify a character, the system removes all blank characters.
If the source string is empty, the system returns an empty string and raises an information message.
TrimRight
Description Deletes trailing characters. It is not relevant for the result, in which order you pass the characters to the
system. If you do not specify a character, the system removes all blank characters.
If the source string is empty, the system returns an empty string and raises an information message.
This function binds to code and identifier data types with the NUMC implementation type.
You can use the Repository Explorer tool window to explore the SAP data types that are released with the public
solution model (PSM) and their implementation type. For more information, see Repository Explorer [page 49].
ToNumeric
You can use these functions to remove leading zeros from or add leading zeros to numeric identifier data types
and character-based identifier data types.
Note
As a prerequisite for this function, the alpha-conversion indicator for the data type must be set.
AddLeadingZeros
RemoveLeadingZeros
Overview
The scripting language supports basic data types such as string, numeric and Boolean values. In addition, the
existing metadata of the underlying SAP cloud platform for core data types (CDTs) and global data types
(GDTs) is made available.
The implementation type of the particular data type is taken into account during the mapping of CDTs and
GDTs to the basic types of the scripting language. In the studio, you can explore all SAP data types that are
released with the public solution model (PSM) and their implementation type in the Repository Explorer on the
Data Types tab. For more information, see Repository Explorer [page 49].
The basic data types that are supported by the studio are listed in the following table:
Basic Type Implementation Properties XSD Data Type SAP GDT or SAP CDT, For
Type Example:
String CHAR, SSTR, Character string containing any al ● xsd:token ● Text.content
and STRG phanumeric characters, including ● xsd: string ● LANGUAGEINDEPENDEN
special characters. SAP cloud sys ● xsd:anyURI T_SHORT_Name
tems are Unicode systems with the ● LONG_Description.c
system code page UTF-16. A char ontent
acter has a length of two bytes. The ● BusinessTransactio
maxLength property specifies the nDocumentID
maximum length of the string. ● ID
● EmailURI
● ApprovalStatusCode
● Amount.currencyCod
e
For more information, see the data type definitions of the World Wide Web Consortium (W3C ) at http://
www.w3.org/TR/xmlschema-2/ .
The user interface (UI) runtime of the SAP cloud solution validates the user input according to the data type
definition. The following data type properties are checked in particular:
As a consequence, you do not need to implement validations in your script files to ensure that the user input
matches the data type definition. The SAP web service runtime validates the service input according to the
data type definition (XSD schema validation).
Internal string variables defined in the scripting language are not restricted in length. “Not restricted” means
that the variables are limited by the memory quota of a session, which is defined by the system administrator.
Internal numerical variables defined in the scripting language are of the DF34_DEC implementation type.
Example
Conversion
Syntax
If variables are typed with data types that belong to the same basic type in the scripting language, they are
implicitly converted by the scripting language. For example:
this.ID = this.ShortName;
Behavior
If you perform operations on string variables in your script files, you need to ensure that the length of the result
strings match the data type definition. For example:
Note
The program terminates when saving if the length of the LongName field is greater than 10 characters and
no check exists.
If the content of a variable is outside the range that is specified by the data type definition, the following can
occur as a consequence:
Note
Variables of unrestricted length, for example, variables of the LANGUAGEINDEPENDENT_Text data type, are
truncated at a length of 255 characters as soon as they are saved to the database. For texts that are longer
than 255 characters, use the TextCollection dependent object.
For variables that are typed with numerical data types, rounding is performed according to the definition of the
target data type. While the scripting language uses decfloat34 internally, the values are rounded according to
the definition of the data type as soon as the value is assigned to a business object element.
Example
Note: The Quantity.content data type is specified as a decimal value with 31 digits and 14 fractions.
this.IntegerValue1 = 1 / 3; // result: 0
this.IntegerValue2 = 2 / 3; // result: 1
For identifier data types, additional properties are specified in the GDT definition:
The UI runtime performs upper case conversion and alpha conversion automatically. The scripting language,
however, does not perform these types of conversion automatically. Therefore you need to ensure this in your
script files.
Example
var string =
"123456789a123456789b123456789C123456789D123456789E123456789F123456789G1234567
89H123456789G123456789I";
this.ID = string;
position = this.ID.Find("A"); // result: -1
The result is —1 because the content of the ID is not automatically converted to upper case. To convert to
upper case, use the ToUpperCase built-in function, for example:
var string =
"123456789a123456789b123456789C123456789D123456789E123456789F123456789G1234567
89H123456789G123456789I";
this.ID = string.ToUpperCase();
position = this.ID.Find("A"); // result: 9
Code data types can be mapped to the string basic type or the numeric character basic type. The behavior of a
variable typed with a code data type, for example, PriorityCode, ApprovalStatusCode and
Amount.currencyCode, is as follows:
● The variable can contain alphanumeric characters or numeric characters. The value range is then defined
by fixed or configurable code lists.
The UI runtime performs a content check of the code list. The scripting language, however, does not perform
this check automatically. Therefore you need to ensure this in your script files.
Example
Overview
The front-end script is the programming language used in the user interface designer (UI designer) to define a
set of rules and the logic of the behavior of UI controls. For example, you can write a front-end script to enable
an edit button only when a field is selected on the user interface. The front-end script must only be used for
user interface related adaptation; it must not contain any business logic.
● Dynamic setting of UI properties such as Visible, Enabled, Read-only, Mandatory, and Color
● UI-specific code lists
● Dynamic calls of event handlers (for example, for dynamic OBN links)
Script Execution
All scripts (including calculation rules) are executed in a sequential manner together with all other events by
the event queue processor in the UI runtime on the client. Parallel execution of scripts is not possible. For each
execution of a script, the scripts environment is recreated. All variables, including global variables, are reset.
● A large number of executing script instances (such as those triggered by the recalculation of
properties) or slow scripts can cause the client to react slowly. This is because all scripts in the event
queue are processed before event handler operations that are triggered by end user interaction.
● Events that are triggered by a script — either directly or implicitly due to data manipulation — are also
queued and processed only after the script has terminated.
Syntax
The scripts are defined as part of a UI component model. The UI component models are stored and processed
as XML files; the script sources are stored as character data sections within these UI component models. The
character set of the scripts is based on UTF-8.
Each script and each block used inside control statements is a sequence of statements. For more information,
see Lexical Structure of Front-End Scripts [page 338] and Syntax of Front-End Scripts [page 339].
For more code samples, see Front-End Code Snippets [page 343].
Caution
Any software coding or code lines/strings (“Code”) provided in this documentation are only examples and
are not intended for use in a productive system environment. The Code is only intended to better explain
and visualize the syntax and phrasing rules for certain SAP coding. SAP does not warrant the correctness
or completeness of the Code provided herein and SAP shall not be liable for errors or damages cause by
use of the Code, except where such damages were caused by SAP with intent or with gross negligence.
The following figure provides an overview of the UI client runtime environment that the front-end script
interacts with.
The interaction with runtime data is accomplished by accessing members of the global variable $data. For
more information, see Interacting with Runtime Data [page 349].
Each script is executed as an operation of an event handler and runs within the scope of the UI component
controller. The global variable $controller provides information about UI component controller's state and
methods to interact with the component controller. For more information, see Global Variable: $controller
[page 354].
Scripts should never contain any literals that are intended to be presented to the end user, because they
cannot be translated. Texts for the end user should also never be created by concatenating variables or
The lexical structure of the front-end scripts contains identifiers, comments, and literals.
Identifiers
Identifiers must start with a letter or an underscore. There is no length restriction for identifiers.
Tip
We recommend using reasonable identifiers since parsing times are adversely affected by large identifiers.
Comments
● Single line comments start with //. The remainder of the line is considered part of the comment.
● Comments delimited by /* and */. All content between the delimiters is considered part of the comment.
Literals
● String Literals
String expressions begin and end with double or single quote marks, and these string expressions are
subject to backslash escape.
The scripting engine does not support any escape sequences in the literals.
Note
● Numeric Literals
○ -1234: Numeric integers must only contain decimal digits (other characters such as underscore ( _ )
are not supported).
Related Information
The syntax of the front-end script contains variables, statements, and expressions.
Variables
The basic types that can be used for scripting correspond to the types used by the UI controller:
● boolean
● integer: a 32–bit integer value
● decimal: a 128–bit data type. Compared to floating-point types, the decimal type has a greater precision
and a smaller range, which makes it suitable for financial and monetary calculations.
● string: string literals
● date: date and time
● data object references: references to elements from the data container of the UI component.
The initial type of a variable is determined the first time the variable is assigned a value. Afterwards, only values
of the same type can be assigned.
assignment statement
Syntax assignment :=
reference = expression
print statement
Syntax arguments :=
expression
| expression, argument_list
print_statement :=
print expression
| print arguments
Comment The print() statement, although supported, does not have any practical value for the scripts used in the run
time framework. It is used for internal debugging purposes only.
if statement
Syntax if_statement:
if_predicate block end
| if_predicate block else_block
| if_predicate block elseif_statement
if_predicate:
if expression then
| if expression NEWLINE
else_block:
else block end
elseif_statement:
elseif_predicate block end
| elseif_predicate block else_block
| elseif_predicate block elseif_statement
elseif_predicate:
elif expression then
| elif expression NEWLINE
if ( true )
print 'ok'
end
a=1;
if ( a==2 )
print 'ko' ;
elif ( a==1 )
print 'ok' ;
else
print 'ko' ;
end
a=1;
if ( a==2 )
print 'ko' ;
elif ( a==1 )
b=3;
if ( b==2 )
print 'ko' ;
elif ( b==1 )
print 'ko' ;
else
print 'ok' ;
end
else
print 'else reached' ;
print 'ko' ;
end
unless statement
Syntax unless_statement :=
unless_predicate block end
| unless_predicate block else_block
unless_predicate :=
unless expression then
| unless expression NEWLINE;
else_block :=
else block end
ternary statement
Syntax ternary_statement :=
expression ? statement : statement
for statement
Syntax for_statement :=
for_in block end
for_in:
for reference in expression NEWLINE
Comment Only integer ranges in the form 2..5 (last item included) and 2...5 (last item excluded) are supported. All other
expressions will raise a runtime error.
while statement
Syntax while_statement:
while_predicate block end
while_predicate:
while expression NEWLINE
Example i=0
while i<5
print i
i=i+1
end
Expressions
Note
All statements are expressions, including methods and variables. The last member pushed onto the stack
is considered as the return value of a method, there is no return statement. The return value of a
calculation rule in the runtime framework is determined in the same way. To return a value from a method
or from the front-end script program, use an expression.
Example
Note
The variable result has been introduced to facilitate adoption of the runtime framework. It is a common
cause of error that after an assignment to result (which is a way of moving a value to the stack), another
statement moves another value to the stack and this is then used as the result of the calculation rule.
The following code snippets are front-end script examples and are grouped thematically:
Calculation Rules
Language Constructs
● And/Or/If Clauses
● Break Out of a Loop
Other
Caution
Any software coding or code lines/strings (“Code”) provided in this documentation are only examples and
are not intended for use in a productive system environment. The Code is only intended to better explain
and visualize the syntax and phrasing rules for certain SAP coding. SAP does not warrant the correctness
or completeness of the Code provided herein and SAP shall not be liable for errors or damages cause by
use of the Code, except where such damages were caused by SAP with intent or with gross negligence.
Description Gets lead selection data from a list and changes an unbound data model field that is assigned to
attribute SelectedVariant of a pane container. Script is executed OnLeadSelectionChange of Data
List:List in Data Model.
Result: In an object worklist, the displayed preview pane changes when a new line is selected.
Description If a link is clicked in a list, and the lead selection does not change, you need to check the event
argument.
Note that if you have a simple source side dispatching script (only one variable involved), we rec
ommend using the Eventhandler condition instead of a script.
Description You need to create a variable of type Boolean and initial value "true" at root level. Associate the
same with enabled property of the button. In the OnClick event of the button, associate an Even
tHandler of type script and use the following script.
Description Note that the selection applies only to the data which is available on the client.
Example lead = 2
$data.DataList.SetLeadSelectedIndex(lead)
Description This function may be useful for custom radio button groups.
Note that you will have to set the text via a textpool element.
Example $data.DataList.Add( )
$data.DataList.Add( )
for i in 0..($data.DataList.Count-1)
$data.DataList.Get(i).Code = i
$data.DataList.Get(i).Value = "text" + i
end
Calculation Rules
Description In the property dialog of the control, the ReadOnly attribute is available. If you open the editor and
chose the Calculation Rule selection, a script window opens. To insert new lines, use the Shift +
Enter key combination. In the example below, you must make sure to add IssuerBankCode as an
invalidation trigger to execute the script.
Note that the value of the last expression is used as the result of a calculation rule. The actual
name of the parameter does not matter. This will lead to unwanted side effects if you use any ex
pressions after determining the return value. To avoid this, make sure to do a final expression of
the return value at the end of your script. The recommended name for the parameter is result.
Description If you want to get the current value of a datalist field in a calculation rule, you can use
$controller.Resolve and the relative path of the field in the datalist.
Note that there is limited SAP List Viewer (ALV) functionality for calculated fields in lists. For ex
ample, there is no sorting and grouping.
In the example below, to ensure that the value is always recalculated correctly, you also have to
add the fields LowerBoundaryFiscalYearID_LRL_DE and LowerBoundaryAccountingPerio
dID_LRO_DE as invalidation triggers of your calculation rule.
Example if ( $controller.Resolve("./TestRunIndicator_LRI_DE") )
result = $textpool.Lookup("PTK") //Test
else
result = $textpool.Lookup("PTL") //Update
end
Description You can access the code value description by adding .Description.
Language Constructs
And/Or/If Clauses
Description You can put parts of the and/or/if clause in one row.
Description Useful for conditional breakouts from the loops, such as selecting a checkbox depending on a con
dition.
i = 0;
while i < $data.DataList.RowCount
if ( $data.DataList.Get(i).dataField ==
KeyFigureLeadSelected )
break;
else
$data.ManageExceptions.Get(LeadSelection).checkbox1 =
true;
end
end
i = i + 1;
end
Other
Description The following shows how to call the event handlers "FireIncomingCheck" and "FireAccountingDo
cument" from a script.
Description Translatable text should not be hard coded in scripts. You should define a new entry in TextPool
with parameter binding.
Description To format an amount according to a currency code, you need a new statement.
Using $System.Saved
Description Note that DirtyState is an unbound field that needs to be added under /Root in the data model to
save the dirty state temporarily.
To prevent the context from becoming dirty, for example on executing a business object action
(and thus preventing the work protect popup from being shown), you have to do as follows.
Example 1. Add a script operation before the business object action is executed which saves the current
dirty state:
$data.DirtyState = $data.$System.IsDirty
2. Add another script operation after the business object action is executed which resets the
dirty state to the previous value:
$data.$System.IsDirty = $data.DirtyState
Description You can check if an OBN target configured for a floorplan has a valid UI assigned to the current
user.
Example $controller.CheckNavigationTarget("ServiceRequestRootCreateWith
Reference")
Related Information
Overview
The interaction with runtime data is accomplished by accessing members of the global variable $data. The
global variable $data provides access to the controller data container of the UI component by providing a
reference to the Root structure.
The data container of the UI runtime stores the data of the current UI data in the form of named data elements.
● Data Structures
Data structures may contain other data elements (fields, structures, and lists). Each member inside a
structure can be uniquely identified by its name.
The Root of the data container is the entry point to all data available for a UI component instance.
● Data Fields
Data fields are used to hold data values. The following base types are supported:
○ string
○ integer
○ float
○ date
○ boolean
○ binary
Note that it is not possible to work with binary data fields in scripting.
○ time
Note that it is not possible to work with time data fields in scripting.
○ datetime
Note that it is not possible to work with datetime data fields in scripting.
● Data Lists
Lists contain zero or more List Rows, which are derived from data structures.
The overall composition structure of the data container is determined at design time. It is not possible to add
additional members to a data structure at runtime.
Note
When you use the following rules to work with data container elements, you acquire references to data
element instances. The data elements are mutable.
Data structure members can be accessed using the syntax <data structure reference>.<member
name>. The result is a reference to the member data element or null if the member does not exist.
Note that when a structure data element is created by the data container, all members are initialized:
Examples:
Once you have acquired a reference to a list, you may use the following methods and properties to work with
the list:
If your list is bound to the backend, the rows that are available in the client may only represent a snapshot of
the actual rows the list holds. De-referencing via index is generally discouraged in this case because all indices
apply to the current snapshot of rows available in the client.
Add() Reference Adds a new list row and returns a myListRef = $data.MyList
to new list reference to resulting list row in myListRowRef = myListRef.Add()
row in stance. myListRowRef.ProductTitle =
'SAP Business ByDesign'
stances myListRowRef.Vendor = 'SAP AG'
This may only be used with un
bound lists. For bound lists, explic
itly modeled list operations have to
be used.
Get(index(string)) Reference Returns the list row at the zero- rowRef = $data.MyList.Get(2)
to the row based index of the list.
instance
LeadSelectedRow Reference Returns the lead selected row in rowRef = $data.LeadSelectedRow
to the row stance if a lead selection exists and
instance the lead selected row instance is
available on the client, which may
not always be the case (for exam
ple, due to paging)
The scripting environment is agnostic of the CCTS type system used by the UI layer. Do not use scripting to
construct or format any representation of a data field value which is intended to be presented to an end
user. Use text pool replacements instead.
Once you have acquired a reference to a data field instance, you may work with it like a normal scripting
variable. This means you may assign or retrieve the value.
Overview
The $controller global variable enables script developers to access state information of the UI component
controller and to call controller methods.
ErrorOc boolean Returns a boolean value that indicates whether an error has if($controller.ErrorO
curred occurred. ccurred)
// block executed
on error
end
Transien boolean Returns a boolean value that indicates whether or not a tran if($controller.Transi
tErrorOc sient error has occurred. Transient errors are typically entErrorOccured)
curred caused by input validation errors and have to be resolved by // block which
executes on
the end user before normal processing can resume. transient error
end
GetCur string Returns the current logon language of the running session. $data.currLanguage =
rentLan $controller.GetCurren
guage tLanguage();
Utils <object> Returns an object instance which provides general utilities utils=
for working with all data types. For more information, see $controller.Utils
General Utilities for Working with Data [page 355].
StringU <object> Returns an object instance which provides utilities for work utils =
tils ing with strings. For more information, see Utilities for Work $controller.StringUti
ing with Strings [page 355]. ls
Controller Methods
Utils returns an object instance which provides general utilities for working with all data types.
An object instance with utilities for working with strings is exposed via the global variable
$controller.StringUtils.
binding_expression :=
/Root binding_particles
binding_particles :=
binding_particle
| binding_particle binding_particle
binding_particle :=
/{data element name}
| /{list name}[{row identifier}]
| /{list name}/@{row index}
Particles
All binding expressions must start with the /Root particle and must specify at least one additional particle.
● Example 1: Assume that a data field named LastName is defined under the root of the data model, the
expression /Root/LastName can be used to address the data field.
● Example 2: Assume that a data field named LastName is defined as a member of the structure Address,
which is defined under the root of the data model, the expression /Root/Address/LastName can be
used to address the data field.
List Rows
Note
Using indices is not a reliable way of addressing rows in lists that may be paged. Unless modeled
otherwise, all bound lists are paged by default.
The development tools provided by the SAP Cloud Applications Studio (“studio”) are presented in an
integrated development environment (IDE) based on Microsoft Visual Studio. The user interface (UI) of the
studio is referred to as the developer desktop. From the developer desktop you access specific features and
tools of the development environment.
Caution
Any software coding or code lines/strings (“Code”) provided in this documentation are only examples and
are not intended for use in a productive system environment. The Code is only intended to better explain
and visualize the syntax and phrasing rules for certain SAP coding. SAP does not warrant the correctness
or completeness of the Code provided herein and SAP shall not be liable for errors or damages cause by
use of the Code, except where such damages were caused by SAP with intent or with gross negligence.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
In SAP cloud solutions, business configuration enables prospective or existing customers to evaluate and set
up their system in the production environment to meet company-specific requirements. It also allows
customers to adapt and optimize their solutions at any time as business needs change.
You must create business configuration content for all solution capabilities that you create using the studio. You
create business configuration content in the studio and anchor your solution in the business adaptation
catalog (BAC) so that it is available for activation by customers who buy your solution.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
The full set of the SAP cloud solution's capabilities is outlined in a central business adaptation catalog (BAC).
This catalog organizes and structures the capabilities into a hierarchy of business areas, packages, topics, and
options. Solutions created in the studio require business configuration content that then appears as elements
(BAC elements) in the catalog and allows administrators to implement solutions in the production
environment.
You can define the following business configuration content in the studio:
Business option (mandatory) Create a business option when no selective adaptation ...Create a Business Option [page
of business configuration content is required. 375]
Business topic and business Create a business topic when you need to provide ...Create a Business Topic and Busi
options multiple business options to key users. ness Options [page 377]
Country Define a country if your solution requires country-spe ...Create a Country and Business
cific scoping for a country that is not supported by the Options [page 380]
SAP standard cloud solution.
Business configuration set Create a BC set to configure the behavior of business ...Create a BC Set Using an SAP
(BC set) processes in your solution and define code list data BCO [page 383]
types that you can use to model fields in a business
...Create a BC Set Using a Custom
object.
BCO [page 387]
Create a BC set using an SAP business configuration
object (BCO) to configure the behavior of standard
business processes in the SAP cloud solution.
Business configuration ob Create a custom BCO to define solution-specific busi ...Create a Business Configuration
ject (BCO) ness configuration content on which you can base a Object [page 386]
BC set.
Business configuration view Create a BC view to allow key users to change the val ...Create a Business Configuration
(BC view) ues defined in a BC set during fine-tuning. View [page 389]
Fine-tuning project template Create a fine-tuning project template to provide sam ...Create a Fine-Tuning Project Tem
ple content for a specific scenario that is defined by plate [page 392]
SAP.
When you create a solution in the studio, you must create business configuration content that contains at least
one business option to allow customers who buy your solution to activate the solution in the production
environment.
You can use the business configuration wizards to create configurable code lists.
A customer-specific solution is in maintenance mode, if it has been assembled and downloaded; the solution
status then is Assembled. You can make changes to the solution in a patch; however, you can only make
restricted changes to certain content types. These change and delete restrictions ensure that you do not make
changes to a solution that could lead to loss of data or create inconsistencies or errors on a customer's
production tenant.
If you want to know more about how customers configure their solutions and work with business configuration
content, take a look at the "Configuring Your SAP Solution" topic in the documentation in your SAP cloud
solution.
Tasks
You perform the following tasks using the Business Configuration Wizard:
You can create a business topic to group business options and provide multiple business options for
customers to customize your solution.
For more information, see here [page 375].
● Create a Business Topic and Business Options
You can create a business topic to group business options and provide multiple business options for
customers to customize your solution.
For more information, see here [page 377].
● Create a Country and Business Options
You can define a country and create one or more business options, if your solution requires country-
specific scoping for a country that is not supported by the SAP cloud solution.
For more information, see here [page 380].
● Change a Business Option or a Business Topic
1. In the studio, open the solution that contains the business option or business topic you want to
change.
2. In the Solution Explorer, right-click the solution and select Open.
The Business Configuration Wizard opens.
3. Make your changes and then click Save.
To change a business option that you added to a business topic, in the Create Business Options and
Assign Solution Content step, use the Change Business Option function.
● Delete a Business Option or a Business Topic
1. In the studio, open the solution that contains the business option or business topic you want to
change.
2. In the Solution Explorer, right-click the solution and do one of the following:
○ If you have created only one business option, select Delete.
○ To delete a business topic and all business options you added to the business topic, select Delete.
Note
For information about the change and delete restrictions for business configuration content in a
solution that is in maintenance mode, see Maintenance of Business Configuration Content [page 372].
You perform the following tasks using the Business Configuration Set Wizard:
You can create a business configuration set (BC set) using an SAP business configuration object (BCO) to
configure the behavior of standard business processes in the SAP cloud solution. If you create an
implementation of an enhancement option which is for single use only, you can also define a BC set using
an SAP BCO so that you can enhance the filter values.
For more information, see here [page 383].
● Create a BC Set Using a Custom BCO
You can create a business configuration set (BC set) using a business configuration object (BCO) that you
have defined in your solution.
For more information, see here [page 387].
● Change a Business Configuration Set
1. In the studio, open the solution that contains the business configuration set (BC set) you want to
change.
2. If the BC set is based on a business configuration object (BCO) defined in the solution and you want to
add or change a field, change the referenced BCO by doing the following:
1. In the Solution Explorer, clean all BC sets that are based on the BCO by right-clicking the .bcc files
and selecting Clean.
2. Double-click the .bco file.
The BCO opens in a document window.
3. On the Fields tab, add or change one or more fields and then save your changes.
4. In the Solution Explorer, right-click the .bco file and select Activate.
You can only activate a BC set that is based on a BCO that you changed by opening the BC set in a
document window and saving it.
3. In the Solution Explorer, double-click the .bcc file.
The Business Configuration Set Wizard opens.
4. Make your changes, for example, by adding or changing the field values of any fields you add or
changed in the BCO.
You cannot change the name of a BC set.
Note
For information about the change and delete restrictions for business configuration content in a
solution that is in maintenance mode, see Maintenance of Business Configuration Content [page 372].
You perform the following tasks using the Business Configuration Object Wizard:
You can create a business configuration object (BCO) and use it as the basis of a business configuration set
(BC set).
Note
To delete a business configuration object that is used in a business configuration set, you must first
delete the BC set.
Note
For information about the change and delete restrictions for business configuration content in a
solution that is in maintenance mode, see Maintenance of Business Configuration Content [page 372].
You perform the following task in the studio and in the UI designer:
You can create a tax decision tree to automatically determine a tax event for a country that does not have an
SAP country version in SAP Business ByDesign.
For more information, see Create a Tax Decision Tree [page 394].
You perform the following tasks in the studio and in the SAP cloud solution in the Business Configuration work
center:
You can create a fine-tuning project template in the studio as part of a solution. Fine-tuning project
templates provide sample content for a specific scenario that is defined by SAP, such as Financials Chart of
Account. The fine-tuning activities you need to complete for the template are explicitly listed.
Note
You can complete a project once the design has been accepted.
2. In the Solution Explorer, right-click the .bct file of the active implementation project template and
select Complete.
Under Edit Activities, the activities are no longer displayed as links.
3. Optional: Check the status of the implementation project template in the studio by doing the following:
1. Open the implementation project template in the studio by double-clicking the .bct file.
2. Check that the status of the implementation project template is Completed, that a completion
date is displayed, and that you can no longer change the description.
● Reopen an Implementation Project Template
Solution Explorer *.bct Reopen
1. In the studio, open the solution that contains the implementation project template you want to reopen.
2. In the Solution Explorer, right-click the .bct file of the completed implementation project template
and select Reopen.
3. Optional: Check the status of the implementation project template in the studio by doing the following:
1. Open the implementation project template in the studio by double-clicking the .bct file.
2. Check that the status of the implementation project template is Active and that no completion
date is displayed.
Note
To check content in the business adaptation catalog (BAC), for example, for testing purposes, you must be
assigned the Business User role and have access rights for the Business Configuration work center. For
more information, see User Setup Quick Guide [page 34].
1. In the SAP cloud solution, in the Business Configuration work center, open the Implementation Projects
view.
2. Select a project and click Edit Project Scope.
The Edit Project Scope guided activity is displayed. The business topic or business option you created
using the Business Configuration Wizard is displayed in the Scoping phase under Scoping Element. The
description and scoping questions you defined in the Business Configuration Wizard are displayed in the
Questions phase.
In the Solution Explorer, click the solution and select Deploy Business Configuration.
You deploy your business configuration content be able to use it in a solution. The system makes the parameter
values available in the development environment for testing.
Note
If you have defined BAC elements for your solution, a dialog box opens when you use the Deploy Business
Configuration function. You have to select one of the following options:
This allows you to test both partial and complete activation of your business configuration content in the
development environment.
Overview
The full set of the SAP cloud solution's capabilities is outlined in a central business adaptation catalog (BAC).
This catalog organizes and structures the capabilities into a hierarchy of business areas, packages, topics, and
options. Solutions created in the studio require business configuration content that then appears as elements
(BAC elements) in the catalog and allows administrators to implement solutions in the production
environment.
Customers work with the SAP cloud solution in the production environment after it has gone live. This
environment contains all elements required to run the customer's business processes using the SAP cloud
solution and customers can adapt the solution in the Business Configuration work center.
Features
When you create a solution in the studio, you must create business configuration content that contains at least
one business option to allow customers who buy your solution to activate the solution in the production
environment.
A business option represents the most detailed decision level involved in defining or adapting a solution
capability. Business options can be hidden or can appear in scoping, fine-tuning, and/or the solution proposal.
Each business option specifies a particular way to perform a function. Each business option belongs to a
business topic. For information about how to create a business option, see Create a Business Option [page
375].
Optionally, you can also create the following business configuration content:
● Business topic
A business topic relates to specific functions within an application area. In the standard SAP solution,
examples are Account Management and Time Administration. Each business topic belongs to a business
package and contains a number of business options.
For information about how to create a business topic, see Create a Business Topic and Business Options
[page 377].
● Business configuration set (BC set)
A BC set is a technical container for the configuration settings and corresponding values that are
associated with a business option. The content contained within BC sets is deployed to the runtime
environment where it is loaded into the underlying configuration tables. Each configuration setting within a
BC set has attributes which specify whether it is hidden, visible, or changeable for the customer.
For information about how to create a BC set using an SAP business configuration object (BCO), see
Create a BC Set Using an SAP BCO [page 383].
● Business configuration view (BC view)
To allow administrators to change the values of a BC set during fine-tuning, you can create a BC view and
assign this view to the Business Configuration work center.
For information about how to create a BC view, see Create a Business Configuration View [page 389].
Overview
When you create a solution in the studio, you must create business configuration content that contains at least
one business option to allow customers who buy your solution to activate the solution in the production
environment.
You can assign your business option to a standard business topic or you can create a business topic to which
you add your business options.
Prerequisites
● You have created and opened a solution in the studio. For more information, see Create a Customer-
Specific Solution [page 177].
● You understand the dependencies that exist between the elements in the business adaptation catalog and
the constraints that are applied by the selections that administrators make during scoping.
● To check content in the business adaptation catalog, for example, for testing purposes, you must be
assigned the Business User role and have access rights for the Business Configuration work center. For
more information, see User Setup Quick Guide [page 34].
Process Flow
Note
You can only create a BC view for a BC set that uses a custom BCO. You cannot create a BC view for an
SAP BCO.
Note
When you use the Deploy Business Configuration function, a dialog box opens. You have to select one of
the following options:
○ Deploy all business configuration content for your solution
○ Deploy only the business configuration content for your solution that is assigned to the business
options you have selected in the business adaptation catalog
This allows you to test both partial and complete activation of your business configuration content in
the development environment.
7. You check that your business configuration content appears in the BAC in the SAP cloud solution.
For more information, see Business Configuration Quick Guide [page 362].
Overview
A customer-specific solution is in maintenance mode, if it has been assembled and downloaded; the solution
status then is Assembled. You can make changes to the solution in a patch; however, you can only make
The following tables give an overview of the change and delete restrictions for business configuration content
in a solution that is in maintenance mode.
Action Allowed
Change Name No
Change Anchor No
Change Required Scope With restrictions: You can remove the required scope, but
you cannot add required scope.
Change assigned business options With restrictions: see "Maintenance of Business Options" be
low
Action Allowed
Change Name No
Change Anchor No
Action Allowed
Change Name No
Action Allowed
Change Name No
Change Description No
Action Allowed
8.2.3 Tasks
Overview
You can create a business topic to group business options and provide multiple business options for customers
to customize your solution.
If you want to create more than one business option, you need to create a business topic first to group the
business options. For more information, see Create a Business Topic and Business Options [page 377].
Prerequisites
● You have created and opened a solution in the studio. For more information, see Create a Customer-
Specific Solution [page 177].
● To check content in the business adaptation catalog, for example, for testing purposes, you must be
assigned the Business User role and have access rights for the Business Configuration work center. For
more information, see User Setup Quick Guide [page 34].
Procedure
Note
A fine-tuning activity is only mandatory for go-live in the customer system if a BC set that was
created using a custom business configuration object (BCO) is assigned to the business
option. In this case, you must also create a BC view. For more information about creating a BC
view, see Create a Business Configuration View [page 389].
○ On the Overview tab, write a text that describes the function that this element provides and the
benefits of using this element. Aim to write no more than three to five sentences. However, when
additional valuable information is available, you should include it.
Example
Example: The Foreign Currency Remeasurement Methods for Cash business option
provides a procedure for converting the value of cash balances held in foreign currency to the
company currency at a key date, for example, at the end of the month.
○ On the Relevance tab, write a text that describes when or why the customer should select this
element and what are the implications of selecting or not selecting this element. Explain the
relevance of this element in terms of real-world business requirements.
Example
Example: The Foreign Currency Remeasurement Methods for Cash business option
is relevant for companies that have cash accounts stated in foreign currencies.automatically
included in your scope.
The system has added the business option to the business adaptation catalog (BAC). You can check the result
by logging on to the cloud solution as a business user. You select an implementation project in the Business
Configuration work center and edit the project scope. The Scoping step displays the BAC elements and you can
navigate to the business option you created.
Related Information
Overview
You can create a business topic to group business options and provide multiple business options for customers
to customize your solution.
Prerequisites
● You have created and opened a solution in the studio. For more information, see Create a Customer-
Specific Solution [page 177].
● To check content in the business adaptation catalog, for example, for testing purposes, you must be
assigned the Business User role and have access rights for the Business Configuration work center. For
more information, see User Setup Quick Guide [page 34].
Procedure
If you need to create only one business option, under Type of Business Configuration, select
Business Option. For information about how to create one business option for a solution, see
Create a Business Option [page 375].
Example
Example: The Bank Directory File Upload business topic allows you to upload a bank
directory from a provider of your choice into SAP’s cloud solution. Before uploading the file,
you must ensure that the contents of the file, namely the bank data, matches the order
prescribed in the SAP format.
○ On the Relevance tab, write a text that describes when or why the customer should select this
element and what are the implications of selecting or not selecting this element. Explain the
relevance of this element in terms of real-world business requirements.
Example
Example: The Bank Directory File Upload business topic is relevant if you wish to
upload a bank directory from a provider of your choice.
Example
Example: The Foreign Currency Remeasurement Methods for Cash business option
provides a procedure for converting the value of cash balances held in foreign currency to the
company currency at a key date, for example, at the end of the month.
Example
Example: The Foreign Currency Remeasurement Methods for Cash business option
is relevant for companies that have cash accounts stated in foreign currencies.automatically
included in your scope.
3. Optional: If you want the business option to appear in the BAC, select Visible in Scoping and under
Scoping, do the following:
○ If your business option provides functionality that is essential for your solution, select Mandatory
and enter a scoping statement that describes the functionality of the business option. By default,
the business option will be in scope when a customer selects the business topic in the BAC.
○ If your business option is not mandatory, enter a scoping question. Your scoping question
indicates the functionality of the business option and allows administrators to decide whether to
select the business option during project implementation.
4. Optional: Select Visible in Fine-Tuning if you want to assign a business configuration set (BC set) to the
business option and you want customers to be able to adapt the field values of the BC set during fine-
tuning; then under Fine-Tuning, do the following:
1. If customers must complete a fine-tuning activity before the solution goes live, select Mandatory
for Go-Live.
2. Enter a description for the fine-tuning activity.
Note
A fine-tuning activity is only mandatory for go-live in the customer system if a BC set that was
created using a custom business configuration object (BCO) is assigned to the business option. In
this case, you must also create a BC view. For more information about creating a BC view, see
Create a Business Configuration View [page 389].
5. Under Anchor Business Option below, you can either accept the selection of Header Element of the
Solution or select SAP Element and then Select Anchor to anchor your business option in the BAC.
Expand the tree and select your business topic, an SAP business topic or business option group and
click OK.
6. Repeat the steps above for each business option and click Next.
The Create Business Options and Assign Solution Content step now displays all business options that
you created on the right.
4. In the Create Business Options and Assign Solution Content step, assign solution content to each business
option by using the arrow buttons or by means of drag-and-drop.
The system displays the solution content you assign under the business option. You can also use the arrow
buttons or drag-and-drop to unassign solution content.
Caution
You must assign all solution content such as business objects and BC sets to a business option before
you trigger test deployment of your solution. If dependencies exist between BC sets defined in your
solution. for example, a value defined in one BC set is referenced in a second BC set, you must assign
both BC sets to the same business option or you must assign the referenced BC set to a mandatory
business option.
Result
The system has added the business topic to the business adaptation catalog (BAC). You can check the result
by logging on to the cloud solution as a business user. You select an implementation project in the Business
Configuration work center and edit the project scope. The Scoping step displays the BAC elements and you can
select the business topic that you created.
If you have created all business configuration content your solution requires, you can trigger deployment of
your business configuration content to be able to use the content in your solution. To do this, right-click your
solution and select Deploy Business Configuration.
Note
When you use the Deploy Business Configuration function, a dialog box opens. You have to select one of the
following options:
This allows you to test both partial and complete activation of your business configuration content in the
development environment.
Related Information
Overview
You can define a country and create one or more business options, if your solution requires country-specific
scoping for a country that is not supported by the SAP cloud solution.
● You have created and opened a solution in the studio. For more information, see Create a Customer-
Specific Solution [page 177].
● To check content in the business adaptation catalog, for example, for testing purposes, you must be
assigned the Business User role and have access rights for the Business Configuration work center. For
more information, see User Setup Quick Guide [page 34].
Procedure
Example
The Time Recording Integrated with Procurement business option allows you to use time
recording for third party service agents, such as consultants and service technicians. The
working times of service agents can then be allocated to procured services and purchase
orders. The recorded times are taken into account in invoice verification.
○ On the Relevance tab, write a text that describes when or why the customer should select this
element and what are the implications of selecting or not selecting this element. Explain the
relevance of this element in terms of real-world business requirements.
Example
The Time Recording Integrated with Procurement business option is relevant if you want to
consider the working time recorded by service agents for invoice verification. If the Services
with Time Sheet Recordings for Projects business option (within the Service and Non-Stock
Material Procurement business topic) is selected, this business option is automatically
included in your scope.
Caution
When you define a country, you must create at least one business option that is visible in
scoping.
2. Click Select Anchor and anchor your business option in the BAC by expanding the tree and
selecting a business topic or a business option group.
4. Optional: Select Visible in Fine-Tuning if you want to assign a business configuration set (BC set) to the
business option and you want customers to be able to adapt the field values of the BC set during fine-
tuning; then under Fine-Tuning, do the following:
1. If customers must complete a fine-tuning activity before the solution goes live, select Mandatory
for Go-Live.
2. Enter a description for the fine-tuning activity.
Note
When you define a business configuration set (BC set), you must also specify whether
administrators are able to add or delete the values of specific fields. For more information about
creating a BC set, see Create a BC Set with a Custom BCO [page 387].
Caution
You must assign all solution content such as business objects and BC sets to a business option before
you trigger test deployment of your solution. If dependencies exist between BC sets defined in your
solution. for example, a value defined in one BC set is referenced in a second BC set, you must assign
both BC sets to the same business option or you must assign the referenced BC set to a mandatory
business option.
5. In the Review step, check that the information you have entered is correct and then click Finish.
6. In the Solution Explorer, right-click the .bac file and then select Activate to make the country and its
business options available in the BAC.
7. Check that the system has added the country and the business options you created to the business
adaptation catalog (BAC) by doing the following:
1. Log on to the cloud solution as a business user.
2. In the Business Configuration work center, open the Implementation Projects view.
Result
The system has added your country and the business options you created to the business adaptation catalog
(BAC) and you have checked the result in the cloud solution. The country description is displayed in the
business adaptation catalog in the Country and Type of Business step.
If you have created all business configuration content your solution requires, you can trigger deployment of
your business configuration content to be able to use the content in your solution. To do this, right-click the
solution and select Deploy Business Configuration.
Note
When you use the Deploy Business Configuration function, a dialog box opens. You have to select one of the
following options:
This allows you to test both partial and complete activation of your business configuration content in the
development environment.
Related Information
Overview
You can create a business configuration set (BC set) using an SAP business configuration object (BCO) to
configure the behavior of standard business processes in the SAP cloud solution. If you create an
Note
● You can only create a BC set using an SAP BCO if you are developing the solution on your development
tenant. For information, see Lifecycle Management of Customer-Specific Solutions on Your
Development Tenant [page 155].
● You cannot create BC sets using SAP BCOs in a solution template.
You can also create a BC set using a business configuration object that you have created in the solution. For
more information, see Create a BC Set Using a Custom BCO [page 387].
Prerequisites
● You have created and opened a solution in the studio. For more information, see Create a Customer-
Specific Solution [page 177].
● You have permission to access the business configuration objects (BCO) that are released with the SAP
public solution model (PSM).
Procedure
Note
You can only use BCOs that are released with the SAP public solution model (PSM).
Under Business Configuration Object, the system displays the deployment unit, the namespace, whether a
fine-tuning activity is available, and a description of the BCO.
3. In the Define the Values of Your Business Configuration Set step, specify the field values of your BC set by
doing the following:
1. In the BCO hierarchy view, select the root node.
If the BCO only has one node, by default, the hierarchy is hidden.
2. In the field columns, specify values for at least all mandatory fields.
An asterisk (*) is used to indicate mandatory fields. Field values must comply with the data type of the
field. You can display information about a field by clicking the field name.
Note
When you use the Deploy Business Configuration function, a dialog box opens. You have to select one of
the following options:
○ Deploy all business configuration content for your solution
○ Deploy only the business configuration content for your solution that is assigned to the business
options you have selected in the business adaptation catalog
This allows you to test both partial and complete activation of your business configuration content in
the development environment.
Result
You have created a BC set using an SAP BCO and assigned it to a business option.
Related Information
Overview
You can create a business configuration object (BCO) and use it as the basis of a business configuration set
(BC set).
Prerequisites
You have created and opened a solution in the studio. For more information, see Create a Customer-Specific
Solution [page 177].
Procedure
Note
If you want to use a static code list in your solution, you can create a code list data type. For more
information, see Create a Code List Data Type [page 472].
3. In the Define Fields of the Business Configuration Object step, for each field you define, enter the following
data and click Next:
○ Field name
○ Field description
○ Field type
Possible values are:
○ Key: key field of the business configuration object
○ Attribute: language-independent attribute of the business configuration object
○ Description: language-dependent attribute of the business configuration object
○ Data type
For more information about the supported data types and default values, see Data Types [page 92].
○ Data subtype
If you define a field of data type Code, you must select a data subtype.
Note
* The data type is displayed if you have selected the Create Code List Data Type option in step 2.
2. Click Finish.
A new item with the file extension .bco appears in the Solution Explorer under the Business
Configuration node.
5. Activate the business configuration object by right-clicking the .bco file and selecting Activate.
Result
You have created a BCO that you can now use as the basis of a business configuration set (BC set). You can
reference the values of this BCO in more than one BC set. For more information, see Create a BC Set Using a
Custom BCO [page 387].
Related Information
Overview
You can create a business configuration set (BC set) using a business configuration object (BCO) that you have
defined in your solution.
You can also create a BC set using an SAP BCO. For more information, see Create a BC Set Using an SAP BCO
[page 383].
You have created and activated a business configuration object in your solution. For more information about
creating a BCO, see Create a Business Configuration Object [page 386].
Procedure
Tip
You can also right-click your custom BCO and select Create Business Configuration Set.
2. In the Select a BCO Type and Create a BC Set step, do the following:
1. Under Business Configuration Object Type, select Use Business Configuration Object Defined in
Solution.
2. Under Basic Information, enter a name and a description.
3. Under Business Configuration Object, in Name, select the business configuration object on which you
want to base your BC set; then click Next.
Note
You can only use BCOs that you created in the solution.
3. In the Define the Values of Your Business Configuration Set step, specify the field values of your BC set.
Note
○ The field values must comply with the data type of the field. You can display information about a
field by clicking the field name.
○ As a partner, you cannot enter values in the Key [Code]* field that start with “Z”. This namespace
is reserved for customers.
○ When you, as a customer, enter values in the Key [Code]* field, these values should start with
“Z”. This guarantees that your entries cannot be overwritten by content delivered by a partner
solution. If, however, your business requires that you deviate from this recommendation, you
should inform the SAP partner to avoid clashes of content.
Under Business Configuration Set Field Values, you can select Values can be added in Fine-Tuning; click
Next.
4. In the Review step, check that the information you have entered is correct and then click Finish.
A new item with the file extension .bcc appears in the Solution Explorer under the project node.
5. In the Solution Explorer, right-click the .bcc file and select Activate.
6. In the Business Configuration Wizard, in the Create Business Options and Assign Solution Content step,
assign your BC set to a business option by using the arrow buttons or by means of drag-and-drop.
Note
When you use the Deploy Business Configuration function, a dialog box opens. You have to select one of
the following options:
This allows you to test both partial and complete activation of your business configuration content in
the development environment.
Result
You have created a BC set based on a BCO that is defined in your solution and assigned it to a business option.
Related Information
Overview
You can create a business configuration view (BC view) for a business configuration set (BC set) to allow
administrators to add new values during fine-tuning or to delete the values of a BC set. You create the view in
the studio and you model the view in the UI designer.
Note
You can only create a BC view for a business configuration set (BC set) that was created using a custom
business configuration object (BCO). You cannot create a BC view for an SAP BCO.
● You have created a custom business configuration object (BCO). For information, see Create a Business
Configuration Object [page 386]. When you create your BCO, if you want the system to create a code list,
only one key field is allowed.
● To check content in the business adaptation catalog, for example, for testing purposes, you must be
assigned the Business User role and have access rights for the Business Configuration work center. For
more information, see User Setup Quick Guide [page 34].
Procedure
A new item with the file extension .QA.uicomponent ( ) appears in the Solution Explorer.
5. In the Solution Explorer, open the BC view by right-clicking the .QA.uicomponent file and selecting
Open in UI Designer.
The view opens in the UI designer.
2. Optional: In the UI designer, modify the BC view, for example, change the field labels:
1. On the Designer tab, select the column whose name you want to change and in the Property Explorer,
under Text Information, click the Label field.
2. Click the arrow button and in the Dependent Property Editor, in the Overridden Text field, enter a new
name.
3. In the UI designer, assign your BC view to the Business Configuration work center by doing the
following:
1. In the Configuration Explorer, open the Implementation Projects work center view by opening the /
SAP_BYD_APPLICATION_UI/BCTools/WorkCentre/ folder. The file name of the view is
ImplementationProjects_WCView.WCVIEW.uiwocview.
2. In the Extensibility Explorer, select the ImplementationProjects_WCView.ao.uianchor anchor
and click Assign Component to View.
3. In the Type field, select NavigationTarget.
4. In the Component field, select your BC view from the Repository. It is stored in the following folder:
[name of your solution]_BC] SRC [your BC view] . Click OK and Apply.
Tip
You can find the name of your solution in the studio: In the Solution Explorer, select your solution.
In the Properties, in the Project File field, there is the name of your solution.
3. In the Solution Explorer, activate the BC set by right-clicking the .bcc file ( ) and selecting Activate.
4. In the Properties window, make sure that the activation status of the BC set is Runtime objects up to
date.
For information about creating a BC set, see Create a BC Set Using a Custom BCO [page 387].
5. Make your BC view available in the business adaptation catalog (BAC) by doing the following:
1. In the Solution Explorer, select your solution and click Add New Item. Select BAC Elements and click
Add.
The Business Configuration Wizard opens.
2. Follow the wizard steps and create a business option or a business topic and more than one business
option.
Make sure that you select Visible in Fine-Tuning and, if appropriate, Mandatory for Go-Live for the
business option to which you want to assign the BC set that you created to make your BC view
accessible in fine-tuning.
3. In the Solution Explorer, right-click the .bac file ( ) and select Activate to make the business option
available in the BAC.
6. Open your BC view for testing in the cloud solution by doing the following:
1. Log on to the cloud solution as a business user.
2. In the cloud solution, in the Business Configuration work center, open the Implementation Projects
view.
3. Select a project and click Edit Project Scope.
The Edit Project Scope guided activity is displayed.
4. Follow the guided activity and answer the scoping question for your business option with Yes.
The business topic or business option you created is displayed in the Scoping phase under Scoping
Element. The description and scoping questions you defined are displayed in the Questions phase.
When you finish the guided activity, the activity you assigned to your business option is added to the
activity list.
5. In the Implementation Projects view, select the implementation project and click Open Activity List.
The Activity List guided activity opens and displays the Prepare phase. Activity List displays all
activities that are mandatory for go-live. You must add any activities that are optional manually. For
information about adding optional activities, see the activity list documentation in the cloud solution.
6. In the Activity List, click Hide Phased List and search for your activity by the activity description you
defined in the studio.
7. Select your activity and click Open.
Your BC view opens and you can test the result.
If you have assigned more than one BC view to the same business option, a fact sheet with the
links to all of the views is displayed when you click the activity.
Result
You have created a business configuration view and opened it in the cloud solution. You can now test the result.
Related Information
Overview
You can create a fine-tuning project template in the studio as part of a solution. Fine-tuning project templates
provide sample content for a specific scenario that is defined by SAP, such as Financials Chart of Account. The
fine-tuning activities you need to complete for the template are explicitly listed.
Prerequisites
You have created and opened a solution in the studio. For more information, see Create a Solution [page 177].
Procedure
1. In the Solution Explorer, right-click your solution and click Add New Item .
The Add New Item dialog opens.
2. Select SAP Business Configuration Implementation Project Template .
3. Enter a name and click Add.
The Create Implementation Project Template dialog opens.
4. In the Create Implementation Project Template dialog, do the following:
1. Enter a name and a description.
2. From the Activity Group list, select the scenario for which you want to create a template, for example,
Financials Chart of Account.
Example
If you have created a fine-tuning project template for the Financials Chart of Account activity group,
select Financial Management and Accounting General Ledger .
4. In the Questions step, answer the relevant scoping questions based on the information displayed under
Activity Group and click Next.
Example
Select Financial and Management Accounting General Ledger General Ledger and under
Income Statement by Function of Expense, select the In Scope checkbox. Confirm the Review
Status popup by clicking Yes.
5. In the Review step, review your scope changes and click Finish.
6. In the Confirmation step, click Close.
9. In the studio, refresh the template by clicking Refresh in the document window and then click Confirm
Milestone: Design Accepted.
In the cloud solution, the Confirm Milestone: Design Accepted view opens.
10. Select Design Accepted and click Confirm to confirm that you have finished defining the scope of your
template. Confirm the Design Accepted popup by clicking Yes.
Note
You cannot move on to the next phases until you have confirmed this milestone. The confirmation
process can take up to 30 minutes.
11. In the studio, refresh the template by clicking Refresh in the document window .
The links to the individual activities that you need to complete are activated.
12. Complete the activity list by clicking the links to open each activity in the fine-tune phase of the
implementation project.
You have created a fine-tuning project template in the studio and predefined the fine-tuning activities for a
specific scenario. You can now complete your implementation project template. For more information, see
Business Configuration Quick Guide [page 362].
Related Information
You can create a tax decision tree in the studio to automatically determine a tax event for a country that does
not have an SAP country version in SAP Business ByDesign.
Prerequisite
You have created and activated the tax content of the country for which you want to create the tax decision
tree. For more information, see Create Tax Content for Non-Localized Countries in the SAP Cloud Applications
Studio .
Procedure
Note
The system provides you with a list of parameters that will help you create your decision tree:
Tax Exemption Reason Code Tax Type, Taxable Country, Taxable Tax exemption reason code value
Region
PartnerTaxGroup Taxable Country, Partner Role [val Withholding Tax Rate Type value
ues -SF (Ship From), ST (Ship To), for the corresponding tax type se
CF (Contract From), CT (Contract lected in the context parameter
To)], Tax Type, Taxable Region
IncomeType Taxable Country, Tax Type Income type value for the corre
sponding tax type selected in the
context parameter
5. Click OK.
The system adds the question to the tree.
4. In the Review step, check that the information you have entered is correct and then click Finish.
A new item with the file extension .bccxtax appears in the Solution Explorer under the project node.
5. In the Solution Explorer, right-click the .bccxtax file and select Activate.
6. In the Solution Explorer, right-click your solution and select Deploy Business Configuration to be able to use
your decision tree in a solution.
The system deploys the decision tree content you have created and makes the decision values available in
the Business ByDesign system.
Result
You have created a tax decision tree, which you can use to determine the tax event when you process an
invoicing document in the SAP Business ByDesign system.
Overview
You can match business requirements to the capabilities of your solution by completing an activity list of the
implementation and project management activities that customers need to perform before the solution can go
live. You do this in the Prepare phase, the Fine-Tune phase, and the Integrate and Extend phase of an
implementation project.
The system generates the activity list based on the scope defined for the implementation project template. The
activity list is divided into separate phases and includes all mandatory implementation and project
management activities that customers need to complete before the solution can go live. You can add optional
activities to the activity list and complete them; most optional activities relate to the Fine-Tune phase but may
also relate to other phases. In the Prepare phase and the Fine-Tune phase, you must confirm milestones that
allow you to track the status of your implementation project template.
Prerequisites
You have created and activated a fine-tuning project template in the studio and you have defined the scope of
this template in the SAP cloud solution. For more information, see Create a Fine-Tuning Template [page 392].
1. Open the activity list to complete it for your implementation project template by doing the following:
1. In the studio, in the Solution Explorer, right-click the .bct file and select Open Project Overview.
The logon screen of the SAP cloud solution opens in your browser.
2. Enter the user name and password that you entered when logging on to the repository.
The Project Overview view opens.
3. Check that the description is correct and that the name in the Title field is the name of your
implementation project template with your project namespace as the prefix.
4. Click Open Activity List.
The Activity List guided activity opens and displays the Prepare phase.
Caution
To ensure that an implementation project template and its solution remain consistent, always open an
implementation project template in the Project Overview view by using the Open Project Overview
function in the studio.
Note
Some activities contain data that cannot be copied to another system; therefore, they need to be
repeated in other systems. You can identify these activities in the Repetition Required column.
If you complete an activity in the development environment that requires repetition, the customer
must repeat this activity in the production system. Therefore, we recommend that you provide
documentation for these activities in your Solution Documentation. For more information, see
Documentation Types in the SAP Solution (ESS_CON_PDI_MainDocTypes.xml). and Templates
Quick Guide (TemplatesQuickGuide.xml)..
3. On the Activity List screen, change the status of each completed activity to Closed. To do this, select
each activity, click Change Status, and then select Closed.
Note
The Activity List screen indicates whether an activity is open, in process, or closed.
At the top of the screen, you can view the overall progress for each phase of your implementation
project template. At the bottom of the screen, you can view the total number of activities in the
activity list for the selected phase and the numbers of open, in process, and closed activities.
Note
○ Additional Information
Some activities in this phase have additional information to assist customers in completing
them. You can access the additional information either directly in the Help Center of the
relevant activity under Help Resources by clicking Help Center in the Infobar.
○ Mandatory and Optional Activities
By default, the activity list contains only mandatory activities. In the Fine-Tune phase and the
Integrate and Extend phase, you can add optional activities to the activity list.
○ Translate Configuration Settings
You can only provide your configuration settings in fine-tuning activities in one language.
○ Restore Default Fine-Tuning Settings
To avoid causing inconsistencies, you cannot delete standard fine-tuning settings.
Note
The activities you need to complete in the Integrate and Extend phase depend on the scope of your
implementation project template.
Result
You have completed the activity list. You can now complete your fine-tuning project template in the studio. For
more information, see Business Configuration Quick Guide [page 362].
In the studio, you can create your own business object and define its nodes and relevant elements in the
business object definition. After you have defined your business object, you can generate the screens for your
business object.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
Scripting Language
The scripting language is used to define business objects and business object extensions as well as to
implement the business logic for cloud partner solutions. This lightweight language is easy to learn and to use
with its focused set of features.
You use specific keywords and functions to describe the structure and interface of a business object in the
studio.
Screens
In the Create Screens dialog, you select the screens you want to use for your solution.
In the studio, you can choose between two different screen scenarios.
For more information, see Object-Based Navigation and Thing-Based Navigation [page 412].
Queries
A query is a service operation that can be used for search and information retrieval operations. It is defined at a
business object node and has selection parameters. The result structure is defined by the business object node
the query is specified for; however, it may also include elements from different business object nodes.
In the studio, script files are used to implement the business logic for actions, events or validations of business
object nodes.
Methods and keywords enable you to implement the business logic for your solution in your script files in the
studio.
The built-in functions and reuse libraries of the scripting language extend the scope and functions that you use
to implement the business logic of your solutions.
The SAP cloud solutions are built using the concept of business objects to model the business environment.
For more information, see here [page 81].
For an example on how to build a solution, see Example: Building a Solution [page 99].
In the studio, you can explore SAP content and PSM documentation using the Repository Explorer tool window.
For information, see Repository Explorer [page 49].
Note
If you use a template to create a new project item, do not change or delete the extension of the item
name. For example, do not delete the .bo file extension of the business object file.
A new item with the file extension .bo appears in the Solution Explorer.
A document window opens that displays your business object file in a code editor.
In the code editor of the studio, you define your business object by describing the namespace and by adding
business object elements. To describe the structure and interface of the business object, you use specific
keywords and functions.
For more information on the syntax of business objects, see Syntax for Business Object Definitions [page 191].
For more information about entering a business object definition, see Enter a Business Object Definition [page
418].
You can define a label and a tooltip for a business object field and display them on a screen.
Once you have entered the business object definition in the code editor and saved it, you need to activate the
business object. This ensures that the runtime objects are generated that are required for the business object
to function.
For more information about activating a business object, see Activate a Business Object [page 420].
To define the business logic for your business object in the studio, you use event, action and validation script
files.
In the studio, you can generate screens in the SAP cloud solution based on your business object definitions, for
example, work centers, floorplans, and fact sheets.
Create a Query
In the studio, you can define queries that allow you to access and combine the fields defined in different nodes
or business objects in a single query and to combine data from different business object nodes. You can also
use a query to make a custom business object available in the enterprise search.
For more information about creating a query, see here [page 421].
In the studio, you can implement instance-based access control for a business object you created by
referencing an SAP business object for which an access context is defined.
For more information about defining access control, see here [page 424].
If you have implemented instance-based access control for a business object you created in the studio, you can
restrict read and write access in the SAP cloud solution on the basis of a work center view's access context.
For more information about assigning access rights, see here [page 427].
Object Work Lists (OWL) generated for custom business objects allow you to export the OWL data to a
Microsoft Excel file. The file is based on a standard template, which you cannot change. However, you can
format the generated spreadsheet as required.
You can use an embedded component to ensure that a change history is written for all changes made to your
custom business object. After adding the embedded component to your business object, you can display the
change history in the SAP cloud solution on the Changes tab of your work center. All changes such as add,
create, and delete are displayed in a list.
Related Information
In the studio, script files are used to implement the business logic for actions, events or validations of business
object nodes.
Depending on whether you are implementing the business logic for business objects or the business logic for
business object extensions, you can create the following script files:
Action —
— Action validation
OnDelete event —
Features
Actions
An action is an element of a business object node hat describes an operation performed on that node, for
example, setting a status. The action operates on a set of node elements or instances that have been created
or changed. Action script files are provided if you have added actions to your business object definition.
Event
An event is used to compute data that can be derived from other node elements, for example, totals of items
and statuses, or from dependent objects, for example, AttachmentFolder or TextCollection.
The system executes an event implemented for custom business objects in ascending order from bottom to
top, that is, from subnode to root node. In case of events implemented for extended business it is the reverse:
the system executes an event in descending order from top to bottom, that is, from root node to subnode.
● AfterModify
This event determines the data of a node when the data has been changed. This is especially useful for
derived data that needs to be updated immediately.
● BeforeSave
This event determines the current data of a node.
Note
Please note that if a BeforeSave script file has modified a business object node, the system doesn't
execute the code of an AfterModify script file for this same node anymore.
● AfterLoading
You can implement this event to modify transient fields (only available for business objects) of the current
node of a business object. The system executes the AfterLoading event when it reads a node instance of
a business object from the data base.
You cannot use an AfterLoading event to do the following:
○ Read and modify a transient field of another node
○ Modify a persistent field
○ Create or delete a node
○ Call an action
Note
The system doesn't execute an AfterLoading event for a node instance that is being initially created.
To calculate a transient field at this point in time, you can implement an AfterModify event.
A validation is used to check if particular conditions are fulfilled, such as the conditions for saving a business
object node. Validations can only read data and cannot change any values. The result of a validation must
always evaluate to a Boolean value, that is, to true or false. The system executes validations in no particular
order. It executes all of the validations, that is, even if a validation already returned false, the remaining
validations are executed.
● OnSave validation
You can use the OnSave validation to check whether a business object can be saved.
Note
Please note that the system always executes the OnSave validation after having executed the
BeforeSave event.
Example
A validation that checks whether the string “0243” is contained in the elemData field:
if (this.elemData.Contains("0243")) {
return(true);
}
else {
return(false);
}
Note
You can create action validation script files only in solutions or solution templates that have been
created with the 1302/1211 compiler version or higher. You can find the compiler version in the
Properties window of your solution.
Mass Enablement
You can specify whether a script file is to be executed for multiple instances of business object nodes, which is
referred to as mass enabling.
● To mass enable a script file, you select the Mass Enable checkbox in the Create Script Files dialog box. For
more information, see Define the Business Logic for a Business Object [page 428].
● If you want to modify a mass-enabled script file so that it can only be executed for single instances of
business object nodes, you need to delete the script file first and then re-create it.
Maintenance Mode
Note
If you use the this keyword in the coding of a mass-enabled script file, this represents a collection of
business object node references.
Performance Checks
This feature provides you with suggestions on how to avoid dumps and improve performance of ABSL scripts,
business objects, business object extensions, mass data runs, and the solution itself. Right-click on
any .absl, .bo, .xbo, and .run file in the solution and click Run Performance Checks.
When you run a check on scripts, business objects, business object extensions, and mass data runs, the
system displays the list of tips that will enhance your system performance, and allows you to directly work on
the script without moving away from the screen. When you run a check on the solution, due to the large volume
of objects involved, the system runs a background job and sends you an e-mail with the list of tips and the
particular lines where you can implement the improvements.
8.3.2.2 Queries
Overview
A query is a service operation that can be used for search and information retrieval operations. It is defined at a
business object node and has selection parameters. The result structure is defined by the business object node
the query is specified for; however, it may also include elements from different business object nodes.
You can use queries to display business object data directly in an object worklist (OWL) using the user interface
designer (UI Designer) or to access the data using the scripting language. For more information about the
usage in UI designer, see Model an Object Work List [page 703] and Configure a Query [page 741].
Query Types
Default Query
By default, each business object node of a custom business object has a query called QueryByElements. The
query contains all elements of the node as selection parameters and the query result contains instances of this
node. In general, the QueryByElements query has a linear dependency on the number of instances in the
business object node (t = O(n), where n is the number of business object instances in the database).
The QueryByElements query is a simple query and does not provide full-text indexing. We therefore
recommend that you use the default query when:
● The expected number of node instances or collections is small, for example, for an object with
configuration data, or when the execution frequency is low.
Caution
If you define an association in your business object as relevant for access control by using the
RelevantForAccessControl annotation and you use the default QueryByElements query, error
messages related to role-based access management (RBAM) might occur if you use the query to control
access. These RBAM error messages are suppressed when you create a complex query in your solution.
Complex Query
A complex query is a custom query that allows you to access and combine data from different business object
nodes or business objects in a single query. Complex queries support full-text indexing for all query elements (t
= O(log n). We therefore recommend that you define a complex query when a large number of records is
expected in the node.
In the studio, you can create queries using the Query Wizard. For information, see Create a Query [page 421].
When you define a query, you must specify which business object fields to include in the query. You can also
specify which elements you want to:
If an [1,n] association is defined for an element, you cannot use the field in the query result. We therefore
recommend that you select the most detailed node as the parent node. For more information about
associations in business object definitions, see Association [page 196].
Tip
If you want to implement instance-based access control for the results displayed in an object worklist
(OWL), you must create a complex query. You cannot create a default query for this scenario. For
information about defining access control, see Define Access Control [page 424].
Most of the business objects provided by SAP have predefined queries which you can use in the same way as a
default query or a custom query. However, you cannot use sorting and paging options for a predefined query.
Executing Queries
The studio enables you to create screens for your business object. In the Create Screens dialog, you are
prompted to select the screen types you want to use. For information on how to create screens, see Generate
Screens for a Business Object [page 429].
Fact Sheet
Quick View
Quick Create
Overview
When you create the screens for your business object in the studio, you are asked to select the screen
navigation you want to use. The following sections describe the two types of navigation that are available
(object-based and thing-based navigation) and help you decide when to use what.
Object-Based Navigation
When you use object-based navigation, you enter the application via work center and work center view to get to
the object work list. Then you leave the object work list to work on quick activity or object instance floorplan
screens.
Screens Using Object-Based Navigation: (1) Work Center, (2) Work Center View, (3) Object Work List, (4) Quick Activity, (5)
Object Instance, (6) Object-Based Navigation
Thing-Based Navigation
This is the navigation pattern used in the other solutions. The fundamental integral part of thing-based
navigation is a thing.
What Is a Thing?
A thing is an object a user works with, such as product or business partner. It contains content that has been
collected from various applications, actions, and business objects. A thing is supposed to ensure easy
consumption of that content and a consistent user experience. It is assigned to a thing type.
Example
For the thing ABC Corporation, the thing type would be Business Partners.
When you use thing-based navigation, you also navigate via a work center and a work center to an object
worklist as in object based navigation. However, in thing-based navigation, you can call up quick view and quick
create screens without leaving the object work list or go to a thing inspector screen.
The following graphic shows the various screens that are part of thing-based navigation:
Screens Using Thing-Based Navigation: (1) Work Center, (2) Work Center View, (3) Object Work List, (4) Quick Create (QC),
(5) Quick View, (6) Thing Inspector, (7) Thing Type, ES = Enterprise Search; FD = Feeder
Generally speaking, you select the navigation pattern that is suited best for your solution. However, there are a
few restrictions that are listed in the following table:
Related Information
Overview
A customer-specific solution is in maintenance mode, if it has been assembled and downloaded; the solution
status then is Assembled. You can make changes to the solution in a patch; however, you can only make
restricted changes to certain content types. These change and delete restrictions ensure that you do not make
changes to a solution that could lead to loss of data or create inconsistencies or errors on a customer's
production tenant.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
The following table gives an overview of the change and delete restrictions for business objects in a solution
that is in maintenance mode. The system performs the change and deletes restrictions checks when you save
the business object.
● Removing the
using clause
associatio
n
ToBonusPla
n to
BonusPlan
using ID —
>
associatio
n
ToBonusPla
n to
BonusPlan
● Changing the
target of an
existing
using clause
associatio
n
ToBonusPla
n to
BonusPlan
using ID —
>
associatio
n
ToBonusPla
n to
BonusPlan
using ID2
on existing element
on new element
Multiplicity of node see comments see comments see comments The following changes
are allowed:
[0,1] —>
[0,n]
[1,1] —> any
[1,n] —>
[0,n]
[0,1] —>
[1,1] or
[1,n]
[0,n] —> any
[1,n] —>
[0,1] or
[1,1]
Multiplicity of associa see comments see comments see comments The following change is
tion allowed:
[1,1] —>
[0,1]
[0,1] —>
[1,1]
Association valuation see comments see comments see comments Adding or removing
the Valuation key
word is not allowed.
Multiplicity of associa see comments see comments see comments Only the following mul
tion valuation tiplicity is allowed:
[0,n]
8.3.3 Tasks
In the code editor of the studio, you define your business object by describing the namespace and by adding
business object elements. To describe the structure and interface of the business object, you use specific
keywords and functions.
For more information on the syntax of business objects, see Syntax for Business Object Definitions [page 191].
Prerequisites
You can import further namespaces so that you can use SAP business objects and data types when
you define elements and associations.
○ The businessobject keyword and the name of your business object, for example, BonusRule.
Note
The names of the .bo file and of the business object must be identical. Do not change the name of
the business object in the coding.
2. Define the nodes of your business object and their features, such as elements, actions, and associations
with other nodes.
In the following simple business object definition, the ID element is specified for the root node of the
BonusRule business object:
For more information about the keywords that you can use, see Syntax for Business Object Definitions
[page 191].
3. In the File menu, click Save.
Result
You have defined your business object and can now activate it. For more information, see Activate a Business
Object [page 420].
Overview
You can define a label and a tooltip for a business object field. If you then add the business object field to a
screen:
1. Create a business object element with a label and a tooltip using the following syntax:
For more information, see Business Objects Quick Guide [page 398].
2. Generate screens for the business object. For more information, see here [page 429].
Result
In the Solution Explorer in the studio, right-click your screen and select Preview Screen. You are prompted to log
on to the cloud solution.
The label is displayed for the business object field. The tooltip is displayed when you place the cursor on the
field.
Related Information
Once you have entered the business object definition in the code editor and saved it, you need to activate the
business object. This ensures that the runtime objects are generated that are required for the business object
to function.
Prerequisites
You have defined your business object in the code editor. For more information, see Enter a Business Object
Definition [page 418].
Procedure
In the Solution Explorer, right-click your business object and select Activate.
Tip
If an error message appears that tells you that the business object cannot be activated, have a look at the
following table. It shows possible errors and how you can solve them:
In the studio, you can define queries that allow you to access and combine the fields defined in different nodes
or business objects in a single query and to combine data from different business object nodes. You can also
use a query to make a custom business object available in the enterprise search.
You can use these queries to include the query data in an object worklist (OWL) and to access information from
different nodes and business objects using the scripting language. You must create a query to implement
instance-based access control for the results displayed in the OWL.
Caution
If you define an association in your business object as relevant for access control by using the
RelevantForAccessControl annotation and you use the default QueryByElements query, error
messages related to role-based access management (RBAM) might occur if you use the query to control
access. These RBAM error messages are suppressed when you create a complex (custom) query in your
solution.
Prerequisites
● You have created and opened a solution in the studio. For more information, see Create a Customer-
Specific Solution [page 177].
Procedure
1. In the Solution Explorer, right-click your business object and select Create Query.
The Query Wizard opens.
2. In the Create a Query step, under Basic Information, define your query by doing the following:
1. Select a business object, if your solution has more than one business object.
2. Select a parent node to link to the query, if your business object has more than one node.
Tip
The parent node is the starting point for the field selection in the Select Query Fields step. If a [1,n]
association is defined for a field, you cannot use the field in the query result. Therefore, we
recommend that you select the most detailed node as the parent node. For more information
about associations, see Syntax of Business Object Definitions [page 191].
In the Navigation Target UI field, select the quick activity In the Thing Type field, select the thing type floorplan
floorplan (.QA.uicomponent) of your solution. (_TT) of your solution.
When you select the Operation, the Inport field is filled Additionally, you can also select Enable Feed, if you want
automatically. to reference the business object in the Feed view.
3. Click Next.
4. Optional: If you want to enable read access logging for sensitive personal data, select Log Sensitive
Personal Data.
5. In the Select Query Fields step, select the fields you want to include in the query.
6. In the Define Query Parameters step, refine the properties of each query parameter.
1. Optional: Change the parameter field name.
2. Optional: Select the Selection checkbox if you want to include the parameter as a search parameter.
3. Optional: Select the Basic Find checkbox if you want the parameter to be used in a text search.
4. Optional: Select the Result checkbox if you want the parameter to be displayed in the query result.
Note
5. Click Next.
7. In the Review step, check that the information you have entered is correct and then click Finish.
A new item with the file extension .qry appears in the Solution Explorer.
8. In the Solution Explorer, right-click the business object and select Activate.
Result
You have created a custom query in your solution. In the Solution Explorer, a [query name].qry file
You can create an object work list (OWL) and use the UI designer to design the screen to use the business
object query data. For more information, see Model an Object Work List [page 703] and Configure a Query
[page 741].
If you want to use the query to make a custom business object available in the enterprise search, do the
following: In the UI designer, assign the custom business object as an enterprise search object to the work
The custom business object is available in the enterprise search, once the target UI has been assigned to a
user. For information about assigning access rights, see the “Business Users Quick Guide” in the
documentation of the SAP cloud solution.
Related Information
Overview
In the studio, you can implement instance-based access control for a business object you created by
referencing an SAP business object for which an access context is defined.
Access rights in the cloud solution are based on work center and work center views. For each view, an access
context is predefined that defines for which business data administrators can restrict user access rights, for
example, by company, site, sales, or employee. For example, if business users have access rights for a work
center view but should only see company-specific data, you can define your business object so that it inherits
the access control list (ACL) from an SAP business object that is assigned the company access context.
Prerequisites
● An SAP access context exists that you can use for your use case.
For more information about access contexts and access restrictions, see the relevant documentation of
the cloud solution.
● An SAP business object exists with the necessary access context and an access control list (ACL) is
directly assigned to this business object.
Procedure
1. In the studio, define a business object with an association that is marked as relevant for access control by
doing the following:
1. Create a business object, for example, with the name AccessControlByCompany, and enter your
business object definition.
For information about creating and defining a business object, see Business Objects Quick Guide [page
398].
Example
You want the access context to be controlled by company, so you define a Company element of
type ID:
3. Add an association to the business object that is used for access control and mark the association with
the annotation [RelevantForAccessControl].
Note
○ For each business object, you can only use one association that is relevant for access control.
○ The source node of the association must be the root node.
○ The target node of the association must be root node of the target business object, that is, the
controlling business object.
○ The target business object must have an association that is relevant for access control.
○ The target of this association must be the AccessControlList dependent object.
Example
4. Add a status element to the business object root node to handle errors, typically
ConsistencyStatusCode:
2. In the studio, create a query using the Query Wizard to include the query data in an object worklist (OWL).
For information about creating a query, see Create a Query [page 421].
Note
For correct instance handling, a query based on Fast Search Infrastructure (FSI) is necessary. By
default, the query includes the ACL data even if you do not select this information.
3. Create an Event-BeforeSave.absl script file and define an association for access control.
For information about creating script files, see Define the Business Logic for a Business Object [page 428].
1. In the Event-BeforeSave.absl script file, add the query you created to get the instance for access
control.
Example
Query = CompanyFinancialsProcessControl.QueryByCompany;
Selection = QueryCreateselectionParams();
Selection.Add(Query.CompanyID, “I”, EQ”, this.Company.Content);
QueryResults = Query.Execute(Selection);
In this example, access is controlled by company and the query uses the company at the root node
as the basis for selection.
Example
3. For error handling, set a status on the business object root node.
Example
if (this.For_Access_control.IsSet ()){
this.Consistent = “3”;
}
else{
this.Consistent = “2”;
}
In this example, the consistency status codes are “2” for consistent and “3” for inconsistent.
You have defined an association for access control, defined the access context for the work center view, and
defined access control for the screens for which you want to restrict access rights. You can now manage access
rights for business users in the cloud solution. For information, see Assign Access Rights [page 427].
Overview
If you have implemented instance-based access control for a business object you created in the studio, you can
restrict read and write access in the SAP cloud solution on the basis of a work center view's access context.
In the SAP cloud solution, administrators can assign access rights to each employee who has a user in the
system. For example, if an employee should only see data for a specific company and the company access
context is assigned to a work center view, you can assign or restrict access to company-specific data for this
view.
Prerequisites
You have defined associations that are relevant for access control in your business object and assigned the SAP
business object that controls access to the work center views. For information, see Define Access Control
[page 424].
Procedure
1. In the SAP cloud solution, disable the access rights of all users for the relevant work center views.
1. Open the Application and User Management work center User and Access Management Business
User subview.
2. Select the user whose access rights you want to assign using the access control settings you have
defined for your business object; then click Edit and choose the Access Rights option to open the
access rights editor.
3. On the Work Center and View Assignment tab, find your work center in the list of available work centers
and clear the Assigned to User checkbox.
4. Save your changes and log off from the system.
Your changes are applied the next time you log on.
2. In the studio, update the authorization and access rights by doing the following:
○ In the Solution Explorer, right-click your solution and select Update Authorization and Access Rights.
You must disable the access rights of all users before you update authorization and access rights in the
studio.
Overview
To define the business logic for your business object in the studio, you use event, action and validation script
files.
For more information, see Actions, Events, and Validations [page 403].
Prerequisites
Procedure
1. In the Solution Explorer, right-click your business object and select Create Script Files.
Overview
In the studio, you can generate screens in the SAP cloud solution based on your business object definitions, for
example, work centers, floorplans, and fact sheets.
In the studio, you can generate screens in the SAP cloud solution based on your business object definitions. For
example, you can generate work centers, floorplans, and fact sheets. These screens then automatically contain
an initial set of the fields that you have defined for your business object. The screens behave according to the
business logic that you have implemented for your actions and events. You use the user interface designer to
enhance the screens and adapt them to your needs.
Tip
You can also use your generated screens for mobile solutions. For more information, see step 3 of this
document and Mobile Solutions [page 774].
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
● If you generate screens based on an SAP business object, the business object must be released for the
SAP public solution model (PSM).
● If you generate screens based on your business object, the business object must be activated. For more
information, see Business Objects Quick Guide [page 398].
Procedure
Note
You can change your selection in the Property Explorer of the UI designer. For more information, see
Mobile Solutions [page 774].
4. Select either the screen types you want to create or a whole screen scenario with navigation paths.
You can select the following screen types:
○ Object Instance Floorplan (OIF)
○ Quick Activity Floorplan (QAF)
○ Fact Sheet (FS)
○ Object Work List (OWL)
○ Object Value Selector (OVS)
○ Work Center View (WOCVIEW)
○ Quick View (QV), not available for SAP Business ByDesign
○ Quick Create (QC), not available for SAP Business ByDesign
○ Thing Inspector (TI), not available for SAP Business ByDesign
○ Thing Type (TT), not available for SAP Business ByDesign
For detailed information on the various screen types, see Screen Types [page 408].
Screen Scenario with Thing-based Navigation (not available for SAP Business ByDesign)
If you select Screen Scenario with Thing-based Navigation (not available for SAP Business ByDesign), the
system generates the following screens and the navigation paths that you need to be able to navigate from
one screen to the next:
Object Work List, Quick Create, Quick View, Thing Inspector, Thing Type, Work Center, and Work Center
View.
Screen Scenario with Object-based Navigation
Note
Short ID
If you select Work Center View or a screen scenario containing a work center view, an additional field
appears where you must enter a Short ID of up to 13 characters. It is preceded by the technical name of
the solution and followed by _WCVIEW: [Technical name of solution]_[Short ID]_WCVIEW.
The short ID helps you identify the work center view in the UI designer and in the SAP cloud solution.
After you have entered the short ID, it is displayed in the following places:
○ UI designer: in the Property Explorer under Component Info in the Short ID field
○ SAP cloud solution: Application and User Management Work Center and View Assignment
5. Click OK.
Result
In the Solution Explorer, the files for the screens are listed. The system also creates a port type package file
(.ptp file) that contains the navigation, for example, from the object work list to the quick activity floorplan.
To view a screen, right-click a screen file and select Preview Screen. To edit a screen, right-click a screen file and
select Open in UI Designer. For more information, see Introduction to the User Interface Designer [page 662].
Overview
Object Work Lists (OWL) generated for custom business objects allow you to export the OWL data to a
Microsoft Excel file. The file is based on a standard template, which you cannot change. However, you can
format the generated spreadsheet as required.
Prerequisites
● You have opened your solution containing an active custom business object.
● You have created a floorplan scenario with navigation.
1. Log on to the SAP cloud solution and select Application and User Management Business Users .
2. Select you user and select Edit Access Rights .
3. In the Work Center and View Assignment view, select the work center you have created and assign it to your
user. Click Save and Close.
4. Log off from the SAP cloud solution. Log on again and navigate to the work center you have assigned to
your user.
The work center you have created is displayed. It contains an Export button.
5. Click New and create several instances of your business object. .
6. Complete the fields and select Save and then Close to get to the entry screen again.
7. On the OWL, click Go to view the data records you have created.
8. Click Export To Microsoft Excel .
Result
Microsoft Excel opens. The data records are displayed on a spreadsheet. You can save the data as it is or
format it to suit your requirements.
Related Information
Overview
In this example, you create a solution with a custom business object. You generate a screen scenario with
object-based navigation and test the work center in the SAP cloud solution. After that, you create data records,
which you export to Microsoft Excel.
Procedure
import AP.Common.GDT;
businessobject OWL_EXPORT {
[Label("Identifier")] element ID:ID;
[Label("Name")] element name:LANGUAGEINDEPENDENT_MEDIUM_Name;
[Label("Description")] element
description:LANGUAGEINDEPENDENT_MEDIUM_Description;
[Label("Start Date")] element start_date:Date;
[Label("End Date")] element end_date:Date;
[Label("Amount")] element amount:Amount;
[Label("Title")] element title:AcademicTitleCode;
}
Save and activate the business object.
5. Right-click your solution and select Create Screens.
The Create Screens dialog opens.
6. Select a screen scenario, enter a Short ID, and click OK.
The screens are generated and the corresponding files are displayed in the Solution Explorer.
2. Assign the work center and perform a test.
1. Log on to the SAP cloud solution and select Application and User Management Business Users .
2. Select you user and select Edit Access Rights .
3. In the Work Center and View Assignment view, select the work center you have created and assign it to
your user. Click Save and Close.
Export Button
5. Click New.
6. Create several instances of your business object. Complete the fields and select Save and then Close
to get to the entry screen again.
Data Records
8. Click Export To Microsoft Excel .
Result
Microsoft Excel opens. The data records are displayed on a spreadsheet. You can save the data as it is or
format it to suit your requirements.
Download
Overview
You can use an embedded component to ensure that a change history is written for all changes made to your
custom business object. After adding the embedded component to your business object, you can display the
change history in the SAP cloud solution on the Changes tab of your work center. All changes such as add,
create, and delete are displayed in a list.
Prerequisites
● You have created users with the Developer and Business User roles. For more information, see User Setup
Quick Guide [page 34].
● You have created and opened a solution in the studio. For more information, see Create a Customer-
Specific Solution [page 177].
● You have created a business object or business object extension in your solution and entered a business
object definition. At least one element/node/association in your business object is annotated with
ChangeHistory. For more information, see Business Objects Quick Guide [page 398].
● You have created an object instance floorplan (OIF) for your business object. For more information, see
Generate Screens for a Business Object [page 429].
Procedure
1. Add an embedded component to the object instance floorplan (OIF) you created for your business
object.
1. In the studio, in the Solution Explorer, double-click the object instance floorplan (OIF).
The UI designer opens.
2. On the Designer tab, click the Changes tab.
3. In the Configuration Explorer, navigate to the ChangeDocuments_EC reuse component in the
SAP_BYD_APPLICATION_UI/Reuse/ChangeHistory folder.
4. Drag the reuse component to the top left pane of the OIF as shown in the graphic and then save your
changes.
Note
You can copy the name and namespace from the BO Browser/Data Model but copy and paste does
not work. You can also copy and paste the namespace from the Solution Properties in the studio.
Note
Related Information
8.4 Extensibility
Business object extensions enable you to enhance business objects that are provided by SAP by adding
extension fields to them.
After you create and activate a business object extension, you can add the extension field to the corresponding
forms, screens, reports, and search categories.
Availability
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
You can customize the business objects that are provided by SAP by creating business object extensions. When
you create a business object extension, you modify the extendable nodes of an existing business object to
include additional fields. Once the business object extension has been activated, you can include the extension
fields in script files, screens, reports, and search categories. Creating a business object extension does not
create a copy of the business object. Once you extend a business object, the original business object is no
longer available and is replaced by the extended business object.
Most business objects provided by SAP contain both extendable and non-extendable nodes. However, some
business objects do not contain any extendable nodes and cannot be used with business object extensions.
You can only create business object extensions for business objects that are provided by SAP. Other business
objects cannot be used with business object extensions.
Tasks
You can create an extension for an SAP business object (business object extension) and add new fields to the
extendable nodes of this business object. The extendable nodes are automatically provided in a template, to
which you can add additional fields.
For more information about this task, see here [page 442].
You use event script files and validation script files to define the business logic for your business object
extension. For more information about events and validations, see Actions, Events, and Validations [page 403].
For more information about this task, see here [page 444].
For more information about this task, see here [page 445].
You can add an extension field to the business object’s corresponding forms. You can either add the extension
field to an original form, or you can create a copy of a form and add the extension field to the copy.
For more information about this task, see here [page 446].
You can add an extension field to a data source that is based on the same business object as the extension
field. You can then add the field to any reports based on the data source.
For more information about this task, see here [page 448].
You can add an extension field to an enterprise search category. This allows users to search for the contents of
an extension field within a particular category, such as sales orders or suppliers.
For more information about this task, see here [page 450].
You can define a message in a business object extension and raise the message in an event. Messages can only
be raised in the business object extension where they are defined.
For more information about this task, see here [page 451].
You can define a label and a tooltip for an extension field. If you then add the extension field to a screen:
● the label is displayed on the screen instead of the extension field name
For more information about this task, see here [page 449].
Related Information
Overview
A customer-specific solution is in maintenance mode, if it has been assembled and downloaded; the solution
status then is Assembled. You can make changes to the solution in a patch; however, you can only make
restricted changes to certain content types. These change and delete restrictions ensure that you do not make
changes to a solution that could lead to loss of data or create inconsistencies or errors on a customer's
production tenant.
The following table gives an overview of the change and delete restrictions for business object extensions in a
solution that is in maintenance mode. The system performs the change and delete restrictions checks when
you save the business object extension.
Decimal annotation No No No
Related Information
8.4.1.3 Tasks
Overview
You can create an extension for an SAP business object (business object extension) and add new fields to the
extendable nodes of this business object. The extendable nodes are automatically provided in a template, to
which you can add additional fields.
Prerequisites
You know how to work with business objects and how to use the scripting language.
Procedure
1. In the Solution Explorer, expand your solution, right-click your project file, and select Add New Item .
Note
You cannot use a name that is already used for a business object or business object extension in your
solution.
Example
This example shows an extension of the Lead business object provided by SAP. Two text elements,
Test_Text1 and Test_Text2 , have been added to the business object extension – one at the root level and
one at the item level.
import AP.Common.GDT;
import AP.CRM.Global;
[Extension] businessobject AP.CRM.Global:Lead {
element Test_Text1:LANGUAGEINDEPENDENT_EXTENDED_Text;
node Item {
element Test_Text2:LANGUAGEINDEPENDENT_EXTENDED_Text;
}
}
Related Information
Overview
You use event script files and validation script files to define the business logic for your business object
extension. For more information about events and validations, see Actions, Events, and Validations [page 403].
Prerequisites
The extended business object must be activated if you want to access an extension field in your script file.
Procedure
1. In the Solution Explorer, right-click your business object extension and select Create Script Files.
The Create Script Files dialog box is displayed, listing all the nodes of the business object. You can only
select nodes that are released as part of the public solution model (PSM).
To find out which nodes have been released for the PSM, select the Repository Explorer in the studio.
For more information, see Repository Explorer [page 49]
2. Select the script files that you want to create for each of the nodes of the business object.
Events, such as BeforeSave and AfterModify, can be created for each node. The validation OnSave can
only be created for the root node.
3. Select the Mass Enable checkbox if you want the script file to be mass enabled.
If mass enabled, the script file will be executed for multiple instances of the business object node. You
cannot clear this checkbox after a script file has been created. If you want to modify a script file afterwards
so that it will only be executed for a single instance of the business object node, you need to delete the
script file first and re-create it again.
Note
If you use the this keyword in the coding of a mass enabled script file, this represents a collection of
business object node references.
4. Click OK.
In the Solution Explorer, script files with the file extension .absl appear below the corresponding nodes of
your business object. Each script file is opened on a tab page in the code editor.
5. In the code editor, select the script file you want to edit and enter the coding.
For more information about the methods and keywords you can use, see Syntax for Implementation of
Business Logic [page 235].
6. In the File menu, click Save.
7. In the Solution Explorer, right-click the script file and select Activate.
Note
This function is not available for solution templates. For more information, see Solution Templates [page
174].
Prerequisite
You have created and activated a business object extension that contains at least one extension field.
Procedure
1. In the Solution Explorer, right-click the business object extension (.xbo file) and select Enhance Screen.
The Enhance Screen dialog appears and lists the screens that can be modified for this business object
extension.
2. Select the screen to add the extension field to, and click OK.
The UI designer opens.
3. In the Extensibility Explorer, select the Section Group or List to which you want to add the extension field.
4. Depending on the type of entity selected, click either the Add Extension Field to Section Group button or
the Add Extension Field to List button.
The Add Extension Field dialog appears and lists the available extension fields.
5. Select the extension fields to add to the screen by clicking the Add check box.
Note
If you want the field to be read-only, select the Display Only check box.
6. Click Apply.
7. Click the Save button.
8. Click the Activate button.
The Activate Worklist dialog appears.
9. Select the screen you have modified and click OK.
Related Information
You can add an extension field to the business object’s corresponding forms. You can either add the extension
field to an original form, or you can create a copy of a form and add the extension field to the copy.
Note
This function is not available for solution templates. For more information, see Solution Templates [page
174].
Feature Matrix
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Prerequisites
Procedure
Note
This option is useful if you want to be able to print different versions of a form. Example: Depending on
the selection by the business user, the preview is to show the standard print form or the extended print
form.
1. Right-click your business object extension (.xbo file) and click Enhance Form.
The Enhance Form dialog appears.
2. Click Copy Form.
Note
If you are not already logged on to the SAP solution, you will be prompted to log on.
Tip
To speed up the search, click Advanced. Enter the template name or template group and click Go.
Tip
Note
If you are not already logged on to the SAP solution, you will be prompted to log on.
3. Select the form template to which you would like to add the extension field and click Add Field and
Edit Easy Form Editor .
The Easy Form Editor screen appears.
4. In the Sections area, select the section to which you would like to add an extension field.
The Details area lists the fields that can be added to the section.
5. In the Details area, select the extension field to add to the form, and set the Show attribute to Show
always.
6. To preview the form with the extension field, in the Preview area, click the Refresh button.
7. To save your changes, click Save.
8. To make your change visible to other users, click Publish and Close.
Additional Activities
To view the form template in the SAP solution, business users must create a form template rule.
For more information, see “Create a Form Template Rule“ in the “Form Template Selection Quick Guide" in the
documentation of the SAP cloud solution.
You can add an extension field to a data source that is based on the same business object as the extension
field. You can then add the field to any reports based on the data source.
Note
This function is not available for solution templates. For more information, see Solution Templates [page
174].
The following table shows whether an extension field can be used as a key figure or characteristic.
Date Characteristic
Indicator Characteristic
List Characteristic
Text Characteristic
Time Characteristic
Prerequisite
1. Open your solution and select Administration Switch On/Off Admin Mode in SAP Solution .
2. Right-click on your business object extension (.xbo file) and click Enhance Report.
The Enhance Report dialog box appears.
3. Select the extension field you want to add to the report and click OK.
The Further Usage of Extension Field screen appears.
Note
If you are not already logged on to the SAP cloud solution, you will be prompted to log on.
4. On the Data Sources and Reports tab, you can view all data sources available for the business context in
which you created the field. When you select a data source, all reports based on that data source are
displayed in the lower table.
5. To add the field to a data source, select the data source and click Add Field.
6. To add the field to an existing report based on this data source, select the report from the lower table and
click Add Field.
The report opens in admin mode.
7. In the Add Fields dialog box, select the Display in Report checkbox next to the extension field.
Characteristics are added to the report under Not Currently Shown and key figures are available under
Columns.
8. Click OK and close the report without saving.
The field will be available to all business users when they next access the report.
Related Information
Overview
You can define a label and a tooltip for an extension field. If you then add the extension field to a screen:
● the label is displayed on the screen instead of the extension field name
● the tooltip is displayed when you place the cursor on the extension field
1. Create an extension field with a label and a tooltip using the following syntax:
For more information, see Create a Business Object Extension [page 442].
2. Add the extension field to a screen. For more information, see here [page 445].
Result
In the Solution Explorer in the studio, right-click your extended screen (.xuicomponent) and select Preview.
The label is displayed for the extension field. The tooltip is displayed when you place the cursor on the field.
You can add an extension field to an enterprise search category. This allows users to search for the contents of
an extension field within a particular category, such as sales orders or suppliers.
Note
This function is not available for solution templates. For more information, see Solution Templates [page
174].
The following table shows which type of search can be used for each extension field type:
Field Type Basic Worklist Search Advanced Worklist Basic Enterprise Advanced Enterprise
Search Search Search
Time No No No No
Prerequisite
Procedure
1. Right-click your solution and select Administration Switch On/Off Admin Mode in SAP Solution .
2. Right-click your business object extension (.xbo file) and click Enhance Enterprise Search.
The Enhance Enterprise Search dialog box appears.
3. Select the extension field you want to add to the search and click OK.
The Further Usage of Extension Field screen appears.
Note
If you are not already logged on to the SAP cloud solution, you will be prompted to log on.
4. On the Enterprise Search tab, you can view all enterprise search categories to which you can add the field.
This is determined by the business context in which you created the field.
5. To add a field to an enterprise search category, select it from the list and click Add Field.
The enterprise search category determines in which category users will be able to search for the contents
of this field using the basic enterprise search. They can then refine their search by clicking on Advanced
and using the extension field as a search parameter.
Overview
You can define a message in a business object extension and raise the message in an event. Messages can only
be raised in the business object extension where they are defined.
● Information
Prerequisites
Procedure
1. In the Solution Explorer, double-click the business object extension to open the file in the editing pane.
2. Use the message and text keywords to specify the name and content of the message, respectively.
3. Use the raises keyword to specify which messages are raised for the individual nodes of the business
object extension.
Example
import AP.Common.GDT;
import AP.CRM.Global;
[Extension] businessobject AP.CRM.Global:Opportunity raises
Information_Message, Error_Message, Warning_Message {
// You must activate this business object before you can access the
extension fields
// in script files and screens.
message Information_Message text "This is an Information message";
message Error_Message text "This is an Error message with one parameter
&1" : LANGUAGEINDEPENDENT_SHORT_Name;
message Warning_Message text "This is a Warning message with two
parameters &1 and &2" : LANGUAGEINDEPENDENT_SHORT_Name, IntegerValue;
message Success_Message text "This is a Success message with a variable
parameter &1" : Amount;
element Test_Extension_Field : Amount;
node Item raises Information_Message, Success_Message {
}
}
Note
You can include up to four parameters. For each parameter, you must specify the data type.
4. In your action or event script file, raise the message using the raise keyword.
Example
import ABSL;
raise Information_Message.Create("I");
raise Error_Message.Create("E", "Error");
raise Warning_Message.Create("W", "Warning", 25);
raise Success_Message.Create("S", this.Test_Extension_Field);
Result
Messages appear on the user interface based on the actions or events that you defined.
Related Information
Customers can enhance their SAP cloud solution by creating extension fields in the adaptation mode. In the
studio, you can create references to these customer-specific fields. After that, you can implement the business
logic for the referenced fields in script files of your solution.
Note
What you need to know about the lifecycle management of field references
If you upload your solution with references to customer-specific fields, these fields must also exist in the SAP
cloud solution. If this is not the case, you need to create these fields manually in the cloud solution. The
technical name and the type of the fields must always be identical in your solution and in the SAP cloud
solution.
As long as a customer-specific field is referenced by your solution, it cannot be deleted anymore. If you want to
delete a reference to a customer-specific field in your solution, make sure that you delete it in the script file in
the studio first.
● In the SAP cloud solution, your customer has created extension fields for a business context.
● In the studio, you have created a solution containing a business object extension and at least one script file.
In the business object extension, make sure that you have extended the business object corresponding to
the business context of the extension field.
Procedure
1. In the Solution Explorer, right-click your solution and select Add New Item.
The Add New Item dialog opens.
2. Select SAP Extension References to Customer-Specific Fields , enter a name and click Add.
A .ref file ( ) appears in the Solution Explorer.
3. A document window opens that displays the References to Customer-Specific Fields table. In the table,
select the fields that you want to use in your solution by clicking the Used field. You can sort the table by
clicking the column titles.
Tip
The table shows the fields that are available for each business object or business object node. If a field
is used in several business contexts in the SAP cloud solution, the field is displayed several times in the
table with the same field name. The Business Object column helps you identify the correct field.
Note
You can only create one .ref file per solution. It contains the references to all customer-specific fields.
If you want to add further references, open the .ref file and select additional fields you want to
reference.
Result
You can now define the business logic for the referenced fields in the relevant script files of your solution. The
referenced fields are shown in the code completion.
You can delete references to customer-specific fields when your solution is in maintenance mode. For more
information, see Maintenance Mode [page 185].
Related Information
Example: Calculate the Duration of a Campaign (References to Customer-Specific Fields) [page 455]
Example
In SAP Cloud for Customer, your customer has created a Duration field in the Campaigns work center view. In
the studio, you create a reference to that field and use it in a script file to calculate the duration of a campaign.
1. Log on to the cloud solution with a business user and choose Marketing Campaign Management
Campaigns .
2. Select a campaign and click Edit.
3. Choose Adapt Enter Adaptation Mode and then Adapt Edit Screen .
4. In the Adapt dialog, choose Extension Fields Add .
5. In the Add New Field dialog, in the Field Label field, enter Duration and click Save.
6. In the Adapt dialog, select the Visible and Display Only fields.
import ABSL;
this.Duration.content =
this.PlannedStartDate.Delta(this.PlannedEndDate).ConvertToDays();
this.Duration.unitCode = "DAY";
1. Log on to the cloud solution and choose Marketing Campaign Management Campaigns and click
Edit.
2. Change the Planned End Date.
The system calculates the duration of the campaign, and the result is displayed in the Duration field.
Calculated Duration
Related Information
A process extension scenario links the data from one business context to other related business contexts.
You create a process extension scenario from a list of predefined extension scenarios. For example, you can
create a process extension scenario that links the following business contexts:
Each process extension scenario contains one or more data flows. Each data flow consists of a source and
target business context. This reflects how the data is passed from one business context to the next as part of a
business process.
For a list of predefined extension scenarios, see Extension Scenarios [page 460].
If you now extend any of the business objects involved in the scenario, you can use the annotation [Scenario]
to declare that the element is available to all the business contexts specified in the scenario.
For example, if you add an element to the Lead business object, you can use an extension scenario to make this
element available if you extend the Opportunity. When an Opportunity is created from the Lead, the data for
your extension field will be passed to the Opportunity.
You can also extend B2B messages in a process extension scenario. If a predefined extension scenario includes
an inbound or outbound B2B data flow, you can create a process extension scenario that includes this data
flow. Once an extension field is associated to a scenario that includes such a flow, the extension field value will
be propagated to the B2B message during runtime.
When selecting the data flows to include in a process extension scenario, you can identify outbound and
inbound B2B messages by their individual icons.
For more information about creating a process extension scenario, see here [page 461].
For more information about adding an extension field to a process extension scenario, see here [page 462].
Overview
Extension scenarios enable you to create an extension field in one business context and then add that
extension field to multiple other business contexts. The data stored in the extension field is then passed from
one business context to the next as part of a business process.
Overview
You can create a process extension scenario to link the data from one business context to other related
business contexts.
Prerequisites
Procedure
1. In the Solution Explorer, right-click your project and select Add New Item .
The Add New Item dialog box is displayed.
2. Under Installed Templates, click SAP Extension .
3. Select the Process Extension Scenario template, enter a Name for the process extension scenario, then
click Add.
The Extension Scenario Creation dialog box is displayed.
Tip
If the Create Extension Scenario window does not open completely, you can choose one of the following
two options:
○ Enlarge the window by clicking and dragging the window frame.
○ Switch to the default screen resolution. For example, in Microsoft Windows 7, select Control
Panel Display Smaller – 100% (default) .
Related Information
Overview
You can use the annotation [Scenario] to declare that an element should be available to all the business
contexts specified in a process extension scenario.
For example, if you have a process extension scenario that links the Lead, Opportunity and Sales Order
business contexts, you can add an element to the Lead business object, and this element will be available if you
extended a screen for an Opportunity, a Sales Quote, or a Sales Order.
Prerequisites
Procedure
1. In the Solution Explorer, right-click your project and select Add New Item .
The Add New Item dialog box is displayed.
2. Under Installed Templates, click SAP Extension .
3. Select the Business Object Extension template, enter a Name for your business object extension, then click
Add.
The Business Object Selection dialog box is displayed.
4. Select the Namespace of the business object that you want to extend.
5. Select the Business Object that you want to extend.
6. Click OK.
A business object extension item with the file extension .xbo is added to your project. This file contains a
template for the business object extension, including the extendable nodes.
7. In the Solution Explorer, double-click the business object extension to open the file in the editing pane.
8. To add extension fields, add elements to the extendable nodes with the scripting language.
9. To include an element in an extension scenario, use the following syntax:
Note
Process extension scenarios are specific to the node for which they were created. If an extension
scenario was created for the root node, then it can only be called at the root node within the .xbo.
Similarly, a process extension scenario created for the item node can only be called from the item
node within the .xbo.
Related Information
Overview
You can enhance the existing standard PSM enabled ODATA services with extension fields. You can add the
extension fields to ODATA services that are based on the same business object.
Prerequisites
Process Flow
1. In the Solution Explorer, expand your solution, right-click your project file, and select Add New Item .
The Add New Item dialog box is displayed.
2. Under Installed Templates SAP , select OData Extension.
3. Enter a Name for the OData service extension, and then click Add.
The Select Standard OData Service dialog box is displayed.
4. Enter the OData Extension Name.
Note
You cannot use a name that is already used for a business object or business object extension in your
solution.
5. In the OData Service dropdown, the system shows the standard OData services delivered by SAP. Select a
OData service for which you have enhanced the standard Business Object.
6. Click OK. The system opens the OData Editor in your default internet browser.
If you are not already logged on to the SAP Cloud Solution, you will be prompted to log on. Use your
Cloud Applications Studio user to login to the system.
The OData Editor has two parts. The right pane OData Service is a hierarchical tree that displays all the
entity types in the service, and the left pane displays the business object details.
7. Under OData Service , select the checkbox for the required entity type. The system displays the Business
Object details of the selected entity type on the left pane.
8. Expand the relevant node and select the extension fields that you want to add to the OData Service. The
PDI extension fields will be in edit mode and you can select or deselect them. Note that you cannot edit
standard SAP fields.
The selected fields will be added to the entity type.
9. On the right pane, expand the entity type to see the newly added custom field. Select this field to check its
properties. You have the option to change few properties, such as, Name and Default value. Note that
property names in an entity type should be unique.
10. Once you have added the fields, click Save and then click Activate.
You can also activate the OData service from the Cloud Applications Studio. To do this refresh your solution
to see a new item with .xodata extension. Right click on the newly added item, and select Activate.
You can also perform the clean, delete, and check operations from the studio.
Note
The same OData service cannot be added more than once in a solution. For example, once you add the
Opportunity OData service to a solution, it is not possible to add the same OData service to the solution.
Caution
When you change the name or data type of extension fields in business object extension(.xbo), you must
adjust the OData service by removing and adding the property.
Maintenance Mode
You can perform the following actions in a OData Service in maintenance mode:
● Edit: Add and remove extension fields from the OData Editor
● Delete: Delete OData service extension from the solution
SAP provides enhancement options based on SAP technology that allow you to enhance the standard behavior
of specific applications of the SAP cloud solution without modifying the standard solution. In the studio, you
can create enhancement implementations of SAP enhancement options. For example, you can implement a
An enhancement option is a repository object provided by SAP for a specific application to allow the standard
behavior of the application to be enhanced without modifying the standard solution. Enhancement options are
defined with metadata and documentation. A distinction is made between single-use enhancement options
and multiple-use enhancement options. If an enhancement option is for single use, it can be implemented only
once in a solution. If an enhancement option is for multiple use, it can be implemented more than once in a
solution.
The documentation of the enhancement options describes how you can use an enhancement option, when the
enhancement option is called, and what it does. Furthermore, it gives information about the business
configuration content you need to develop for an enhancement implementation, the scoping requirements in
the customer system, as well as information about the filters, the input parameters and output parameters,
and testing activities.
You can explore SAP enhancement options and view the documentation of the enhancement options using the
Repository Explorer tool window. For more information, see Repository Explorer [page 49].
Tasks
You can create a business configuration set (BC set) using an SAP business configuration object (BCO) to
configure the behavior of standard business processes in the SAP cloud solution. If you create an
implementation of an enhancement option which is for single use only, you can also define a BC set using an
SAP BCO so that you can enhance the filter values.
For more information, see Create a BC Set Using an SAP BCO [page 383].
You can create an enhancement implementation of an SAP enhancement option to allow customers to apply
business rules that meet specific requirements, for example, country-specific requirements, without modifying
the standard functionality of the SAP cloud solution. An enhancement implementation consists of a message
definition, a filter, and a script file.
To check content in the business adaptation catalog, for example, for testing purposes, you must be assigned
the Business User role and have access rights for the Business Configuration work center. For more
information, see User Setup Quick Guide [page 34].
Overview
You can create an enhancement implementation of an SAP enhancement option to allow customers to apply
business rules that meet specific requirements, for example, country-specific requirements, without modifying
the standard functionality of the SAP cloud solution. An enhancement implementation consists of a message
definition, a filter, and a script file.
Prerequisites
● You have created and opened a solution in the studio. For more information, see Create a Customer-
Specific Solution [page 177].
● If the enhancement option for which you created an implementation is for single use only, you have defined
a business configuration set (BC set) using an SAP business configuration object (BCO) so that you can
enhance the filter with the value that you want to use in your filter definition. You must also assign the BC
set to a business option.
For information about which SAP BCO is related to which filter, see the public solution model (PSM)
documentation for the enhancement option. For information about creating a BC set, see Create a BC Set
Using an SAP BCO [page 383].
Procedure
Note
You must specify a name that begins with an uppercase letter (A-Z) and only contains alphanumeric
characters (A-Z, a-z, 0–9) and underscore characters (_). The name must not exceed 120 characters.
3. In the Create Enhancement Implementation dialog box, select a namespace and an enhancement option.
Optionally, you can select a namespace and business object to filter the list of enhancement options.
import ABSL;
return result;
9. In the code editor, define the business logic for your enhancement implementation.
10. Save your changes; then, in the Solution Explorer, right-click the .absl file and select Check In Content.
The item is locked for editing.
11. In the Solution Explorer, right-click the .enht file and select Activate to activate the messages, the filters,
and the business logic you defined.
You have created and defined messages, filters, and the business logic for your enhancement implementation.
You can now test your enhancement implementation in the SAP cloud solution.
There are two types of reuse libraries: custom reuse libraries that help you to organize the code in your solution
or to reuse code in your script files, and SAP reuse libraries, which offer a variety of predefined functions.
Business background
A reuse library is the container for reuse functions, whereas the reuse functions provide the code and specify
the parameters. You can define reuse functions, for example, to execute mathematical operations or to read or
change data of a business object. You can create and define your own reuse libraries and reuse functions to
organize complex code in your solution or to reuse your code in script files. Your reuse libraries are called
“custom reuse libraries” to differentiate from the SAP reuse libraries.
These reuse libraries provide basic functions that are used often, for example, to retrieve context data, such as
the current date or time for the identity of the user currently logged in.
For more information, see Basic SAP Reuse Libraries Reference [page 274].
These reuse libraries provide additional, very specific functions that are relevant for business areas of SAP
cloud solutions, for example, in the Financial Management business area. These functions are based on entities
provided by SAP.
For more information, see SAP Reuse Libraries for Business Areas Reference [page 308].
The SAP built-in functions extend the scope of the syntax for the implementation of your business logic in a
similar way as the basic reuse libraries. However, in contrast to the reuse libraries, you do not need to import a
namespace to use built-in functions.
For more information, see SAP Built-In Functions Reference [page 320].
Important tasks
In the studio, you can create a reuse function by adding it to an existing or new custom reuse library in your
solution. A reuse function is created in two main steps: First, you define the signature of the function by
specifying the parameters; then you define the business logic in a separate script file that the system has
automatically created for your reuse function.
For more information, see Create Your Reuse Function [page 470].
You call your reuse function in an action, an event, or a validation in the same way you call an SAP reuse
function.
Example
In this example, the SAP reuse function Date.ParseFromString and the custom reuse function
MyLibrary.CalculateAge are used. To call the SAP reuse function, you must import the ABSL
namespace.
import ABSL;
var birthday = Date.ParseFromString("1975-05-10");
var age = MyLib.CalculateAge( birthday );
If you have created a reuse function in the studio and have selected the Can Be Used in UI Designer checkbox,
you can use this reuse function to calculate the value of a dedicated field in the user interface designer (UI
designer) . For more information, see Configure a Dedicated Field [page 750].
Note
Tip
To be able to select your reuse function in the UI designer, you must know the namespace of your solution.
In the studio, you can find this information if you select your solution in the Solution Explorer and then
check the Properties window to see the namespace.
In the studio, you can create a reuse function by adding it to an existing or new custom reuse library in your
solution. A reuse function is created in two main steps: First, you define the signature of the function by
specifying the parameters; then you define the business logic in a separate script file that the system has
automatically created for your reuse function.
Prerequisites
You have created a reuse library in your solution and you have opened this reuse library.
Note
Note
Please note the following restrictions for the Can Be Used in UI Designer option:
○ If you select this option, you cannot use collections as a parameter type.
○ You cannot select this option if the reuse function is write-enabled.
3. Click Next.
4. In the Define Parameters step, do the following to define an import parameter:
1. In the first line of the table, enter a name for the import parameter.
2. In the same line, under Type, select a data type or a business object node.
If you have selected a business object node, the ElementsOf option is selected automatically, which
means that the data structure of this node will be passed on by the reuse function.
3. In addition, you can specify the following:
○ You can make the parameter optional.
○ You can specify that the data type or the business object type is a collection (collectionof).
5. Repeat the last step for each import parameter. You can also define one return parameter.
You can click Move Up and Move Down to change the order of the parameters.
6. Click Next.
If some of your import parameters are optional, the system changes the order of your parameters so that
the mandatory parameters come first. If you have added an output parameter, the system places this
parameter at the end of the list.
7. In the Review step, check that the information you have entered is correct and then click Finish.
8. Save your reuse function.
A new item with the file extension .absl appears in the Solution Explorer below the library file.
9. Open the .absl file in the code editor to define the business logic of your reuse function.
Note
Result
You can call this reuse function in a script file. For more information, see Reuse Libraries Quick Guide [page
468].
A static code list contains a list of values and descriptions and is used, for example, to provide dropdown lists
on UIs. In the studio, you can define a code list data type for your solution and use it when you create your
custom business object, a business object extension, or a business configuration object.
If a customer needs to be able to change the code list values, use configurable code list data types instead. For
more information, see Create a Business Configuration Object [page 386].
You can delete the code list data type when your solution is in maintenance mode. For more information, see
Maintenance Mode [page 185].
Prerequisite
You have created the solution for which you want to create a code list data type. For more information, see
Create a Customer-Specific Solution [page 177].
Procedure
1. In the Solution Explorer, select your solution and click Add Item.
2. In the Add New Item dialog, select Code List Data Type.
3. Enter a name and click Add.
The Code List Data Type Wizard opens.
4. In the Create Code List Data step, proceed as follows:
1. Enter a name and a description.
Note
The suffix Code is added automatically to the name you enter in the Name field.
Tip
You can use the tab key to navigate between the fields and rows.
2. Click Next.
6. In the Review step, review your entries and click Finish.
In the Solution Explorer, a file is added to your solution. It is called [name of your code
list].codelist.
7. Right-click the .codelist file and select Activate.
Result
A new data type is generated. You can use it when you create business objects, business object extensions, or
business configuration objects. The code list values can be exported for translation. For more information, see
Translation Quick Guide [page 651].
Related Information
Use Case
In a company, employees create purchase order requests to order goods and services. In the system, they need
to choose the purchase order type: standard purchase order or collective purchase order. If they choose a
special offer purchase order, they benefit from a price discount. For a special offer purchase order request, an
additional field needs to be maintained, which is checked in a script validation.
● You have a studio developer user and a business user for the SAP cloud solution. For more information, see
User Setup Quick Guide [page 34].
● You have created a solution. For more information, see Create a Customer-Specific Solution [page 177].
1. Log on to the studio and, in the Solution Explorer, select your solution and click Add Item.
2. In the Add New Item dialog, select Code List Data Type.
3. Enter a name (PurchaseOrderType) and click Add.
The Code List Data Type Wizard opens.
4. In the Create Code List Data step, proceed as follows:
1. Enter a name (PurchaseOrderType; the suffix Code is added automatically) and a description
(Purchase Order Type).
2. Click Next.
5. In the Define the Code List Values step, proceed as follows:
1. Enter the following values:
Value Description
2. Click Next.
1. In the Solution Explorer, right-click the project in your solution and select Add New Item.
2. In the Add New Item dialog box, select the Business Object template, enter a name for your business object
(PurchaseOrderRequest.bo), and click Add.
A new item (PurchaseOrderRequest.bo) appears in the Solution Explorer and the business object editor
opens.
3. In the editor, enter the following coding:
import ABSL;
if (this.PurchaseOrderType == PurchaseOrderTypeCode.CO_SPECIALOFFER &&
this.SpecialOffer.IsInitial())
{
raise SpecialOfferMessage.Create("E");
return false;
}
return true;
In the SAP cloud solution, test the code list data type.
Related Information
Custom BOs and BO extensions (XBOs) that may have personal data is available in the Data Protection and
Privacy work center. This section gives you a step-by-step guide as to how you can enable the data disclosure in
the user interface.
Prerequisites
1. Log on to the SAP Cloud Applications Studio and choose your system.
2. Go to My Solutions and create a new solution.
3. Create a Business Object.
4. Create an association to the business partner object that you want to configure using the following sample
code:
Note
businessobject EmpAdditionalData {
node SocialData[θ,n]{
[Label("Social Media")] element socialmedia : SocialMediaCode;
[Label("Handler")] element handler : LANGUAGEINDEPENDENT_SHORT_Name;
}
node CommunicationData[θ,n]{
[Label("Comm. Media")] element commmedia : CommDataCode;
[Label("Detail")] element detail : LANGUAGEINDEPENDENT_SHORT_Name;
}
5. Create a Script file, for example, AfterModify to fill the data for this BO.
import ABSL;
import AP.FO.BusinessPartner.Global;
var emproot;
var empid;
var empquery;
var selparam;
var selresult;
var empUUID ;
import AP.FO.BusinessPartner.Global;
if (!this . EmployeeID.IsInitial()){
empid = this.EmployeeID.content;
empquery = Employee.QueryByIdentification;
selparam = empquery.CreateSelectionParams();
selparam.Add(empquery.InternalID,"I", "EQ",empid);
selresult = empquery.ExecuteDataOnly(selparam);
empuuid = selresult.GetFirst().UUID;
this.ToEmployee = Employee.Retrieve(empuuid);
}
Note
In this example, we have used Employee as the busi
ness partner, therefore Employee BO is selected.
Context Attribute Provide an OBN context that starts with the SolutionPre
fix.
11. Map the Employee UUID in the parameters to the data field which is supposed to receive the Employee
UUID.
If you are using any other profiles, you need to use the particular combination for BO/PTP and operation.
12. Configure the OWL query by including Employee UUID as a parameter. The query that you use should have
Employee UUID as a parameter. The generated BO should by default have query by elements.
1. Right click the solution, click Add New Item and under Installed Templates, select Data Protection
and Privacy Personal Data Disclosure .
2. Click Add. The system opens the personal data disclosure wizard.
3. In the Data Disclosure Profile field, select the profile for which you want to create personal data disclosure.
In this example, choose Employee and click Next.
4. In the wizard that appears, enter the following details:
○ Disclosure Name: This is the name that is displayed on the UI.
○ Disclosure Description
○ UI Screen: Select the OWL that you created in the previous step. This is the navigation target for this
disclosure entity.
○ Inport: Select the OBN inport that you configured in the previous step.
○ Determination Functions: Make sure that the Count checkbox is selected. This is used to show the
number of relevant records for the entity.
5. Click Add. The values are displayed in the table at the bottom of the screen.
6. Click Next and check for the information you just filled and click Finish.
The GET_RECORDS.absl file is generated.
7. Write the following logic to calculate the number of records:
import AP.PC.InformationLifeCycleManagement.Global;
import AP.FO.BusinessPartner.Global;
var result:DataDiscloseBAdIDestroyCustomDataChangingStructure;
emproot = Employee.Retrieve(empUUID);
bpid = emproot.Identification.GetFirst().BusinessPartnerID;
empquery = EmpAdditionalData.QueryByElements;
selparam = empquery.CreateSelectionParams();
selparam.Add(empquery.EmployeeID.content, "I", "EQ",bpid);
selresult = empquery.ExecuteDataOnly(selparam);
result.RecordsCountValue = selresult.Count();
return result;
Custom BOs and BO extensions ( XBOs ) that may have personal data must be removed or anonymized when
the person's details are removed using the data privacy tool. This section explains how you can remove or
anonymize such data using the SAP Cloud Applications Studio.
You can remove personal data for the following types of business partners:
● Employees
● Service Agents
● Individual Customers
● Contacts
Prerequisites
1. Log on to the SAP Cloud Applications Studio and choose your system.
2. Go to My Solutions and create a new solution.
3. Create a Business Object.
4. Create elements of the Business Object where you plan to store personal data. Here’s a sample code:
businessobject PrivateAccBank {
node BankDetail[θ,n]{
[Label ("Benefits Account No.")] element benefitsacc : IntegerValue;
[Label ("Bank Account No.")] element bankaccno : BankAccountID;
[Label ("Bank Name")] element bankname : LANGUAGEINDEPENDENT_Name;
[Label ("Bank Country")] element bankcountry : CountryCode;
}
5. Generate screens.
1. Right click the solution, click Add New Item and select Extension Enhancement
Implementation .
2. Enter a name and click Add. The Create Enhancement Implementation wizard opens.
3. In the Namespace field, select http://sap.com/xi/AP/PC/InformationLifecycleManagement/Global.
4. In the Enhancement Option field, select DataPrivacyDestructionofCustomPersonalData.
5. Click OK. The system creates three files with .enht, .absl. and .fltr extensions.
6. Double-click the .enht file and define the message you want to display on the UI. To do this, enter the ID and
Text under the Message Definition header. Do not define any personal data other than the Employee ID in
the message parameters.
7. Open the DESTROY.absl file and add a script to remove or anonymize personal data stored in PDI custom
BOs and PDI extension fields in XBOs.
Disclaimer:
import AP.PC.InformationLifeCycleManagement.Global;
import AP.FO.BusinessPartner.Global;
import AP.PDI.ABSL;
raise DataAnonymized.Create("I");
result.ErrorOccurredDuringDestroy = false;
}
return result;
Note
The system runs a check and gives you an error if the selected data is within the retention period.
5. Navigate to Data Protection and Privacy Common Tasks , and click Administer Data Removal Runs.
The system displays a list of all Data Removal Runs. The generated Run ID will be in Active status.
6. Continue refreshing your screen until the Removal Failed flag turns to No.
The custom BO instances are anonymized.
Overview
You can log and monitor read access to sensitive personal data, such as bank data, using Read Access Logging
(RAL). You can define fields that contain sensitive personal data for business partners (such as, Employees,
Service Agents, Individual Customers, and Contacts), and custom BO fields.
Whenever these fields are viewed by an end user, a Read Access Log (RAL) entry is created. Fields can be
defined as sensitive personal data only if the BO or node is enabled for Change history.
A RAL field group is created that contains all the sensitive personal fields defined in the solution.
Note
● Debug or trace the PDI solution in the production system, if RAL is scoped and any RAL field group is
active.
However, if you want to debug the solution, your administrator must assign your user to the Production
Debugging Authorization work center view. After the debugging is complete, it is recommended that
the authorization is removed.
● Use sensitive personal data fields as placeholders in workflow rules.
● Use custom queries in enterprise search if they contain sensitive personal data fields.
Prerequisites
● You have created and opened a solution in the studio. For more information, see Create a Solution [page
177].
● You have ensured that the solution contains Custom BO nodes are annotated with ChangeHistory. For
more information, see Change History (Business Object) [page 199]
● You have ensured that the solution contains Custom BO nodes that may have sensitive fields have
association to BusinessPartnerProjection BO (Customer, Employee or BusinessPartner). For more
information, see Association (Business Object) [page 196]
1. Right click the solution, click Add New Item and under Installed Templates, select Data Protection and
Privacy Sensitive Personal Data .
2. Add a name for the file.
3. Click Add. The Sensitive Personal Data Wizard opens.
4. In the Select Data Protection and Privacy Level step, select Sensitive Personal Data and click Next.
In the Sensitive Personal Data Field Selection step, the Field Group Name is automatically filled as the
solution name.
5. On this screen, you have an option to add fields from Standard BOs and Custom BOs. Under Custom BO
Fields, click Add.
The Select Sensitive Personal Data Field popup opens.
6. Enter a unique Item Description.
7. Select a Business Object from the dropdown. Note that the dropdown shows only custom BOs created in
the solution.
8. Select a node. Note that the dropdown shows only nodes that have ChangeHistory annotation.
9. In the Select Field tab, choose a field that you want to mark as sensitive personal data.
10. In the Select ID tab, choose an association with the Business Partner from the available list.
Note
○ You can only select InternalID or EmployeeID field. These fields are meant to identify the Business
Partner whose data has been read.
○ For extension BOs, this tab is not available.
Note
● Each solution can have only one Sensitive Personal Data file.
● You cannot select fields from Dependent Objects.
● If you have marked an extension field as sensitive personal data, you cannot mark it as personal data.
● You cannot delete sensitive personal data fields from a solution in maintenance mode.
Overview
You can define fields that contain personal data for business partners in extension BOs. The personal data
fields content is destroyed when the corresponding business object instance is removed using the data
removal process.
Currently, the extension fields of only business partner, customer, employee, and service agent are allowed to
be defined as personal data.
Prerequisites
● You have created and opened a solution in the studio. For more information, see Create a Solution [page
177].
● You have ensured that the solution contains a Business Partner BO and its projection (Employee, Customer
and BusinessPartner) with extended field which is ChangeHistory relevant. For more information, see
Change History (Business Object) [page 199]
Process Flow
1. Right click the solution, click Add New Item and under Installed Templates, select Data Protection and
Privacy Sensitive Personal Data .
2. Add a name for the file.
3. Click Add. The Sensitive Personal Data Wizard opens.
4. In the Select Data Protection and Privacy Level step, select Personal Data and click Next.
In the Personal Data Field Selection step, you can select extended fields from standard Business Objects.
5. Under Extension Fields, click Add.
The Select Personal Data Field popup opens.
6. Select a Business Object from the dropdown. Note that the dropdown shows only extension BOs created in
the solution.
Note
You can use the Approval Wizard to create an approval process in the root node of your custom business object.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
The approval process built-in functions are only used in action script files that are created when you define an
approval process for a business object. Each action script file initially contains the call of the relevant built-in
function. The built-in functions are used to set the status of the business object and to manage related
approval tasks.
For more information, see Approval Process Built-In Functions [page 491].
In the studio, you define one approval process per business object in the root node. An approval process
contains at least one approval task and can have notifications and a revision task. For each task type, you
define the task recipients by selecting elements from the custom business object. Further, you can select
business object elements that an administrator can use to define approval step conditions in the SAP cloud
solution.
You assign the approval process tasks to the UI to make the tasks and notifications visible in a work center of
the SAP cloud solution.
For more information, see Assign Approval Process Tasks to the UI [page 498].
After assigning the approval process tasks to the UI, you can test the approval process you have created in the
SAP cloud solution.
For more information, see Test the Approval Process [page 499].
This example shows how to define a multistep approval process for a custom business object created in the
studio.
For more information, see Example: Create an Approval Process (Price Request) [page 487]
This example shows how to define a multistep approval process for a custom business object created in the
studio.
Example
Example
Prerequisites
● You have a developer user for the studio and a business user in the SAP cloud solution. The Approval
Processes work center view is assigned to your business user.
For more information, see the User Setup Quick Guide [page 34].
● You have created a solution.
For more information, see Create a Solution [page 177].
1. In the Solution Explorer, click Add New Item ( ) and select the Business Object template.
2. In the Name field, enter PriceRequest.bo and click Add.
In the Solution Explorer, the PriceRequest.bo file is displayed.
3. In the editor, enter the following coding:
import AP.Common.GDT;
businessobject PriceRequest {
[Label("Price Request ID")] [AlternativeKey] element PriceRequestID : ID;
[Label("Account ID")] element AccountID : BusinessPartnerInternalID;
[Label("Product ID")] element ProductID : ProductID;
[Label("Description")] element Description : MEDIUM_Description;
[Label("Price")] element Price : Amount;
[Label("Discount")] element Discount : Percent;
[Label("Requestor")] element Requestor : EmployeeID;
[Label("Manager")] element Manager : EmployeeID;
[Label("Account Manager")] element AccountManager : EmployeeID;
}
Subject Field Please approve price re Your &PRICEREQUEST& has Your &PRICEREQUEST& has
quest &PRICEREQUEST& been approved been rejected
Tip
4. In the Select Task and Notification Recipients step, enter the following values and click Next:
Tip
To select the business object element, click the ... button, select the business object element and click
OK.
5. In the Select Fields for Conditions step, select the business object elements Price:Amount and
Discount:Percent, then click Next.
6. In the Review step, click Finish.
7. In the Solution Explorer, right-click the ApprovalStatus.approvalprocess file and click Activate.
8. Right-click your solution and select Deploy Business Configuration.
Due to technical background processes, it takes some time until the default approval process appears in
the SAP cloud solution.
1. In the Solution Explorer, right-click the business object PriceRequest.bo and select Create Screens and
then a screen scenario.
In the Short ID field, enter an ID, for example Approval, and click OK.
The .uicomponent files are generated and displayed in the Solution Explorer.
2. Right-click the PriceRequest_WCView.WCVIEW.uiwocview file and select Open in UI Designer.
The UI designer opens in edit mode.
3. In the Property Explorer, under RBAMData, select AssignedObjects and click the ... button.
In the Add AssignedObjects dialog, proceed as follows:
1. Click the Add Row button.
2. In the new row, under AssignedObject Type, click the down arrow button and select TaskListView.
3. In the same row, under ComponentID, click the ... button.
The Select Component dialog opens.
4. In the folder for your solution ( [solution name]_MAIN SRC ), select the PriceRequest—Root—
APP1–approval file and click OK.
Repeat steps a. to d. for the PriceRequest—Root—APP1–notification file.
5. Click the Add Row button again.
6. In the new row, under AssignedObject Type, do not change the Navigation Target option.
7. In the same row, under ComponentID, click the ... button.
The Select Component dialog opens.
8. In the folder for your solution ( [solution name]_MAIN SRC ), select the PriceRequest—Root—
APP1.QA file and click OK.
Repeat steps e) to h) for NotificationUI and RevisionUI files, if any.
4. Save and activate your changes and close the UI designer.
1. Log on to the SAP cloud solution using your business user and choose Application and User
Management Approval Processes .
2. In the Find field, enter PriceRequest, and select your Default approval process for
PriceRequest, and click Copy.
3. In the copied approval process, in the Process Name field, enter Approval Process for
PriceRequest.
4. To create the manager approval step, do the following:
1. In the Process Step Name, enter Manager Approval.
2. In the Work Distribution field, select Manager Approval.
3. Under Conditions, click Add Group.
The Edit Conditions dialog opens.
Tip
6. Click Edit Validity to adjust the validity of the approval process and click Save and Close.
Note
○ The Valid To Date of the default approval process must be the same as the Valid From Date of the
copied approval process.
○ The copied approval process must have an unlimited validity.
The approval process built-in functions are only used in action script files that are created when you define an
approval process for a business object. Each action script file initially contains the call of the relevant built-in
function. The built-in functions are used to set the status of the business object and to manage related
approval tasks.
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
SendForApproval
Descrip Requests an approval of a business object instance. If an approval is required, the system creates an approval
tion task and sends it to the approver.
Result: Approval status “2” (Not Necessary) or approval status “3” (In Approval)
Approve
Result: If this approval task is the last step of an approval process, the result is approval status “4” (Approved),
otherwise the approval status is “3” (In Approval).
Reject
Example this.Function::Reject();
SendBackForRevision
Example this.Function::SendBackForRevision();
Withdraw
Overview
The studio allows you to create a default approval process for a custom business object. You define at least one
approval step and, optionally, approval and rejection notifications as well as a revision task. Once the default
approval process has been activated, you assign the tasks to the UI. In the SAP cloud solution, an administrator
can then add multiple approval steps, define conditions, and change the validity of the approval process. The
participants of the process receive tasks and notifications informing them of required actions or the process
status.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Features
You create the approval process in the studio. For more information, see Create an Approval Process [page
495]. When you activate the approval process, the following objects are created and added to the custom
business object in the Solution Explorer:
When you define the approval process, you can create the following tasks:
When you activate the approval process, the following action script files are generated:
● SubmitForApproval
● Approve
● Reject
● SendBackForRevision
● WithdrawFromApproval
The following table shows the different status changes caused by the action script files listed above. The
default implementation of these actions uses built-in functions for changing the approval status and managing
related approval tasks. You can change the default implementation in the relevant script files, for example, by
adding messages or logic.
SendBackForRevision In Revision
Reject Rejected
Approve ● In Approval
● In Approval
Rejected — —
Approved — —
Built-In Functions
The approval process built-in functions are only used in action script files that are created when you define an
approval process for a business object.
For more information, see Approval Process Built-In Functions [page 491].
These screens are generated automatically when you activate the approval process. They are used to display
tasks and allow the execution of task-related actions. In a manual step, you assign the approval tasks to the UI
to see the tasks and notifications in a work center of the cloud solution. For more information, see Assign
Approval Process Tasks to UI [page 498].
The default approval processes you create in the studio always have one approval step, no conditions, and an
unlimited validity. In the SAP cloud solution, administrators can copy and adjust the default approval process to
meet their specific process requirements, for example:
8.8.4 Tasks
In the studio, you define one approval process per business object in the root node. An approval process
contains at least one approval task and can have notifications and a revision task. For each task type, you
define the task recipients by selecting elements from the custom business object. Further, you can select
business object elements that an administrator can use to define approval step conditions in the SAP cloud
solution.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Prerequisites
● You have activated the business object for which you want to create the approval process. For more
information, see Business Objects Quick Guide [page 398].
Procedure
1. In the Solution Explorer, right-click the business object and select Create Approval Process.
Note
You can only create one approval process for a custom business object.
Note
The Approval Notifications, Rejection Notifications, and Revision tabs are only displayed, if you have
selected the Notification and Revision options in the previous step.
Note
○ You can select BO elements of type UUID or EmployeeID, or fields generated by associations.
○ The elements must be taken from the business object for which the approval process is
defined. You cannot refer to elements in another business object using an association.
Tip
The system creates one .uicomponent file per task type. If, by accident, one or
various .uicomponent files are deleted, you can recreate them. To do this, right-click
the .approvalprocess file and select Create Task Execution UIs.
7. To activate the approval process, right-click the .approvalprocess file and select Activate.
8. Right-click your solution and select Deploy Business Configuration.
Result
The default approval process is created. Due to technical background processes, it takes some time until the
default approval process appears in the SAP cloud solution. In the UI designer, you assign the approval process
tasks to the UI. This ensures that the tasks are displayed in the cloud solution and that an administrator can
use them to define an approval process. For more information, see Assign Approval Process Tasks to UI [page
498].
You assign the approval process tasks to the UI to make the tasks and notifications visible in a work center of
the SAP cloud solution.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Prerequisites
You have created an approval process in the studio for the SAP cloud solutions. For more information, see
Create an Approval Process [page 495].
Procedure
Tip
Right-click the solution and, in the Property Explorer in the Project File field, look up the name of the
solution and note it down.
2. Right-click the work center view file (.uiwocview) and select Open in UI Designer.
3. In the Property Explorer, under RBAMData, select AssignedObjects.
4. Click the ... button.
The Add AssignedObjects dialog opens, where you proceed as follows:
1. Click the Add Row button.
2. In the new row, under AssignedObject Type, click the down arrow button and select TaskListView.
Result
You can now log on to the SAP cloud solution and see the default approval process you created in the Approval
Processes view.
Note
For any user to be able to view the approval process tasks in the UI, you must give the user access rights to
the relevant work center to which the tasks are assigned. Once this is done, select Administration in the
Solution Explorer, and click on Update Authorizations and Access Rights to refresh the access right
permissions.
Related Information
After assigning the approval process tasks to the UI, you can test the approval process you have created in the
SAP cloud solution.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
Prerequisites
● You have added the approval tasks to the UI. For more information, see Assign Approval Process Tasks to
UI [page 498].
● You have a business user in the SAP cloud solution with access rights for the Application and User
Management work center.
Procedure
1. Log on to the SAP cloud solution using your business user and choose Application and User
Management Approval Processes .
2. Select your default approval process, which has the same name as your custom business object, and click
Copy.
3. In the copied approval process, adjust the name in the Process Name field.
4. Enter a number in the Step field and a name in the Process Step Name field.
5. In the Work Distribution field, select the person responsible for this task.
6. Repeat the steps to create further approval steps. Click New and select Task, Notification, Alert, or
Clarification Request, as required.
Tip
The clarification request corresponds to the revision task selected in the studio.
7. Under Conditions, click Add Group, and in the Edit Conditions dialog, add one or more conditions.
8. Click Edit Validity to adjust the validity of the approval process and click Save and Close.
Note
○ The Valid To Date of the default approval process must be the same as the Valid From Date of the
copied approval process.
○ The copied approval process must have an unlimited validity.
Field Entry
Step 1
Step 2
For more information, see the approval process documentation in the SAP cloud solution.
In SAP’s cloud solutions, notification rules can be defined by customers to receive a notification in case a
certain situation occurs for a business object. Typical examples are status changes of business objects or the
exceeding of threshold values. The notifications only serve as information and do not trigger automatic actions
or tasks.
If a customer wants to use notification rules with a custom business object, you as a partner need to enable the
business object for notification rules in the studio: In the Notification Rules Wizard, you select business object
fields that can be used as placeholders, conditions, and recipients.
After you have enabled the custom business object for notification rules, your customer can create notification
rules for the business object in the cloud solution.
For more information, see the "Notification Rules Quick Guide" in the documentation of the SAP cloud solution.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
Prerequisites
● You have activated the custom business object for which you want to enable notification rules. For more
information, see Business Objects Quick Guide [page 398].
If you want to use thing-based navigation with your solution, the following prerequisites apply:
● You have created a thing-based screen scenario. For more information, see Generate Screens for a
Business Object [page 429].
● You have created a query. In the Query Wizard, in the Create a Query step, you have selected the Include in
Enterprise Search option. For more information, see Create a Query [page 421].
Note
To be able to select the Include in Enterprise Search option, you need to define a Date/Date Time
field in your custom business object.
Procedure
1. In the studio, in the Solution Explorer, right-click the custom business object and select Enable Notification
Rules.
The Notification Rules Wizard opens.
Note
You can use this process only once per custom business object.
2. In the wizard, in the Define Fields for Placeholders and Conditions step, do the following:
1. Select the business object elements to be used as fields for placeholders and conditions in notification
rules.
Note
○ For the placeholders, you can use business object elements defined in the root node or in [1,1]
associated nodes.
○ For the conditions, you can use business object elements from the root node and from [1,n]
associated nodes.
○ You can only use data types with the following representation terms:
To find out the representation term of a data type, call up the relevant data type in the
Repository Explorer. For more information, see Look Up the Representation Term of a Data
Type [page 96].
2. Click Next.
3. In the Define Labels for Placeholders and Condition Fields step, you can adapt the field labels. Click OK.
Note
Do not leave the field label blank or use identical labels for different fields; field labels must be unique.
Note
○ You can select business object elements of type UUID or EmployeeID, or fields generated by
associations.
○ The elements must be taken from the business object for which the approval process is
defined. You cannot refer to elements in another business object using an association.
4. Click Next.
5. In the Review step, review your entries and click Finish.
6. In the Solution Explorer, a [business object name].notification file ( ) is created. Right-click the
file and select Activate.
7. Right-click your solution and click Deploy Business Configuration.
Result
You have enabled the custom business object for notification rules. Your customer can now define a notification
rule in the cloud solution. For more information, see the “Notification Rules Quick Guide” in the documentation
of the SAP cloud solution.
● Delivered fields cannot be deselected as they may have been used in notification rules by customers.
● Delivered fields cannot be renamed.
Use Case
A sales representative creates a price request to negotiate the contract pricing for an account. If the price
request amount exceeds USD 50,000, the responsible manager and account manager want to receive a
notification.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Prerequisites
● You have a studio developer user and a business user for the SAP cloud solution. For more information, see
User Setup Quick Guide [page 34].
● In the SAP cloud solution, the Notification Rules work center view is assigned to your business user.
● You have created a solution. For more information, see Create a Customer-Specific Solution [page 177].
In the studio, create a business object and enable it for notification rules.
1. To create a business object in the studio, in the My Solutions window, open your solution.
2. In the Solution Explorer, right-click your solution and select Add New Item.
3. In the Add New Item dialog box, select the Business Object template, enter a name for your business object
(for example, PriceRequest.bo), and click Add.
A new item with the file extension .bo appears in the Solution Explorer and the business object editor
opens.
4. In the editor, enter the following coding:
11. In the Solution Explorer, a [business object name].notification file ( ) is created. Right-click the
file and select Activate.
12. Right-click your solution and select Deploy Business Configuration.
You have enabled the custom business object for notification rules. Now, you can define a notification rule
in the SAP cloud solution.
In the SAP cloud solution, define a notification rule for the business object.
1. Log on to the SAP cloud solution with a business user. In the Application and User Management work
center, choose Notification Rules and then New
The Notification Rules guided activity opens.
2. In the Enter Basic Data step, proceed as follows:
1. Enter a description (for example, Price Request) and select the business object you created.
2. Enter a subject for the notification (for example, Price Request &1 for Product &2 with
Price &3).
3. Define your business object elements as placeholders (&1 = Price Request ID, &2 = Product
ID, &3 = Price) and click Next.
3. In the Define Conditions step, proceed as follows:
1. Click Add Row.
2. In the Edit Condition dialog, make the following entries:
Field Price
Result
You have now created a notification rule including conditions and recipients. When the conditions are met, a
notification is sent to the recipients.
Related Information
You can create a print form to output the data from a business object that you created in your solution. You can
define the data to include on the form, design the layout of the form, and select a floorplan to link to the form.
Print forms are read-only portable document format (PDF) documents that are generated from data stored in
the system. In the SAP cloud solution, print forms can be printed, sent as an e-mail attachment, or faxed to
business partners.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Business Objects
As part of your solution, you can create new business objects. For more information, see Business Objects
Quick Guide [page 398].
In the SAP cloud solution, customers use form templates to define the content and layout of documents that
can be output from the system. For information about how customers work with the tools for form templates,
see the following quick guides in the relevant SAP cloud solution:
Tasks
You can create a print form to output the data from a business object. You use Adobe LiveCycle Designer to
define the data you want to include on the form and design the layout of the form.
For more information about creating a print form, see Create a Print Form [page 508].
You can create a Preview button and link it to a print form. Clicking the Preview button allows you to preview the
form as a PDF file and provides options to either save or print the form.
For more information about creating a preview button, see Create a Preview Button for a Print Form [page
734].
You can test the print form in the preview after deploying the business configuration content of your solution.
For more information about testing a form, see Test a Print Form [page 510].
Procedure
1. In Windows, select Control Panel All Control Panel Items Default Programs .
2. Select Associate a file type or protocol with a program.
3. In the list, select the .xdp file type and select Change program....
4. Select Browse and then the FormDesigner.exe file in the folder where you installed the Adobe LiveCycle
Designer program files. Click Open.
5. Make sure that the Adobe LiveCycle Designer ES entry and the Always use the selected program to
open this kind of file checkbox are selected. Click OK.
When you now double-click an .xdp file to open it, the file opens in Adobe LiveCycle Designer.
You can create a print form to output the data from a business object. You use Adobe LiveCycle Designer to
define the data you want to include on the form and design the layout of the form.
Prerequisites
● Your solution contains an activated business object with at least one element.
● You have installed Adobe LiveCycle Designer.
● You have associated the .xdp file type with Adobe LiveCycle Designer.
For more information, see Associating an .xdp File with Adobe LiveCycle Designer [page 508].
Procedure
1. In the Solution Explorer, right-click the business object and select Create Print Forms.
The Form Wizard opens.
2. In the Define Form Properties step, under Basic Information, you can select a different business object.
Tip
If Adobe LiveCycle Designer does not open and an error message is displayed instead, make sure that
you have associated the .xdp file type with Adobe LiveCycle Designer. For more information, see
Associating an .xdp File with Adobe LiveCycle Designer [page 508].
10. To create your form, drag data elements from the Data View on the left to the Design View on the right.
Note
You may need to enlarge the left pane to see the Data View tab.
11. Once you have designed the form, save your work and close Adobe LiveCycle Designer.
For more information about using Adobe LiveCycle Designer, see the Adobe product documentation.
12. In the Solution Explorer, right-click the form group file (.ftgd, ) and select Check In Content. Once the
check-in is complete, right-click the file and select Activate.
Results
● A print form is associated with the business object. You now need to make the form accessible to users
from a floorplan. For more information about how to enable a preview function that allows users to preview
the form as a PDF and provides options to save or print the form, see Create a Preview Button for a Print
Form [page 734].
● You can now test your print form. For more information, see Test a Print Form [page 510].
Related Information
Prerequisites
You must be assigned the Business User role and have access rights for the Business Configuration work
center. For more information, see User Setup Quick Guide [page 34].
Procedure
Note
When you use the Deploy Business Configuration function, the studio deploys all business
configuration content of your solution. However, you cannot test partial activation of business
configuration content in the development environment because the Deploy Business Configuration
function deploys all business configuration content independently of any business options you
have created.
Note
If this is the first time you have selected this option, you may be prompted to enter a user name
and password.
Note
If more than one template exists, a list of available templates is displayed in the Preview window.
Select a template and click Open.
8.11 Analytics
Analytics in the cloud solution allows customers to support and monitor business processes and thus enables
them to make informed decisions. The standard system provides predefined analytics content that is
presented in reports. The data from key figures and characteristics in a data source or a key figure group serves
as the basis of these reports. Administrators can design reports that they can make available to other users.
Users can then access these reports from the Reports work center view of the corresponding work centers or
from the Overview work center views.
In the studio, you can add data sources to a solution that administrators for Analytics can use for reporting in
the cloud solution. You can also create browser-based reports in the studio and use the administrator tools for
Analytics in the cloud solution to define the report layout and content.
In the studio, you can define analytics content for custom business objects, for SAP business objects, or for a
combination of both. In the SAP cloud solution, customers use this content for reporting. Reports show the
data and values derived from key figures and characteristics in data sources, key figure structures, and key
figure grids.
Data Sources
A data source is an object that provides a multidimensional, analytical view of business data. Data sources are
the basis of analytical report content and are associated with a specific access context or can be unrestricted.
A combined data source combines data from two or more data sources that share common or similar
characteristics.
A joined data source joins data from two or more data sources that share common characteristics.
Key Figures
Fields according to which values are selected. Key figures are numeric values that have a unit of measure or
currency assigned. Examples include Invoice Net Value and Purchase Order Quantity.
Transformation Rules
You can use transformation rules to calculate fields from business object fields, for example, for date and date/
time conversions. The transformed (calculated) fields are added to the data source and can be used in reports.
Aggregation
To enable the calculation of key figures, the system can aggregate key figure values from a data source based
on defined aggregation behavior. The system aggregates key figure values for multiple characteristics. The
system can also aggregate key figure values for a specified characteristic; this is referred to as exception
aggregation.
A customer-specific solution is in maintenance mode, if it has been assembled and downloaded; the solution
status then is Assembled. You can make changes to the solution in a patch; however, you can only make
restricted changes to certain content types. These change and delete restrictions ensure that you do not make
changes to a solution that could lead to loss of data or create inconsistencies or errors on a customer's
production tenant.
For information about the change and delete restrictions for data sources in a solution that is in maintenance
mode, see Maintenance of Analytics Content [page 526].
In the studio, you can create a data source based on an SAP business object or a custom business object. A
data source includes specific data such as key figures and characteristics that administrators for Analytics can
use for reporting in the SAP cloud solution.
1. In the studio, open the solution that contains the data source you want to change.
2. In the Solution Explorer, double-click your data source.
The data source opens in a document window and the information you defined using the Data Source
Wizard is displayed on different tabs.
3. Make your changes and then click Save.
You cannot change the entries in the mandatory fields (Namespace, Business Object, Anchor Node, and
Data Source Name) on the Header Information tab.
The system saves your changes.
Note
For information about the change and delete restrictions for data sources in a solution that is in
maintenance mode, see Maintenance of Analytics Content [page 526].
1. In the studio, open the solution that contains the data source you want to delete.
2. In the Solution Explorer, right-click the data source and select Delete.
If other project items depend on a data source, for example, if a data source is used in a report or a joined
data source, you cannot delete this data source. To delete the data source, you must first delete any
dependent project items.
Note
For information about the change and delete restrictions for data sources in a solution that is in
maintenance mode, see Maintenance of Analytics Content [page 526].
In the SAP cloud solution, you can use the administrator tools for Analytics to create a combined data source
that combines data from multiple data sources.
In the SAP cloud solution, you can use the administrator tools for Analytics to create a joined data source that
joins data from multiple data sources that share common characteristics.
In the SAP cloud solution, you can use the administrator tools for Analytics to create a key figure based on an
SAP data source or based on a data source you have created (custom data source). This key figure can then be
used in a report. There are two types of key figures: A calculated key figure is determined using calculation
rules or formulas and a restricted key figure is restricted to a specified characteristic value.
Create a Report
In the studio, you can create reports by using data sources that you have created. You can then define the
report and the report layout in the SAP cloud solution by using the administrator tools for Analytics.
Manage Reports
1. In the Solution Explorer, right-click your data source and select Manage Reports.
The logon screen of the cloud solution opens in your browser.
2. Enter the user name and password that you entered when logging on to the repository.
A report list opens and displays the reports assigned to your data source.
3. Optional: Change the content and layout of a report by doing the following:
○ To change the report definition, click Edit With and then select Report Wizard.
○ To change the report layout, click Edit With and then select Web Browser.
When you maintain a report that you created in an earlier release of your solution, you must ensure that the
report has the same technical ID in all later releases to ensure that multiple versions of the report do no exist
with different IDs and that all analytics content created by customers, for example, the field names of a data
source, still has valid references. To change the technical ID, you must find out the technical ID that the system
assigned to the initial version of your report and manually assign this ID to the report in the current release. To
do this, do the following:
1. Open the initial version of your report in the development environment of the cloud solution and find the
technical ID of the report by doing the following:
1. In the Solution Explorer, right-click the data source on which your report is based and select Manage
Reports.
The logon screen of the cloud solution opens in your browser.
2. Enter the user name and password that you entered when logging on to the repository with your
Developer user role.
The Design Reports view opens and displays the reports assigned to the data source including your
report.
3. Select your report, click Edit With and then select Report Wizard.
The Report Wizard opens and displays the Define Report and Select Data Source step.
4. At the top right of the screen, click Personalize and select This Screen.
The Personalize panel opens.
5. Under Sections, select Report and make sure that the Visible option is selected.
6. Under Fields, find the Technical ID field and select the Visible option.
7. Save your changes and close the Personalize panel.
The screen now displays the technical ID of the report. Make a note of the ID.
2. Open your report in the current release of your solution and repeat the steps described above to
personalize the screen of the Define Report and Select Data Source step.
3. Overwrite the ID displayed in the Technical ID field with the ID of the initial version of your report and save
your changes by clicking Finish.
The technical ID of the report is now the same in the initial release and in the current release of your
solution.
Overview
In the studio, you can define analytics content for custom business objects, for SAP business objects, or for a
combination of both. In the SAP cloud solution, customers use this content for reporting. Reports show the
data and values derived from key figures and characteristics in data sources, key figure structures, and key
figure grids.
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Prerequisites
● You have created and opened a solution in the studio. For more information, see Create a Customer-
Specific Solution [page 177].
● You understand how administrators design reports in the SAP cloud solution.
● You are assigned the Developer user role and have access rights for the Business Analytics work center. For
more information, see User Setup Quick Guide [page 34].
Process Flow
Note
Only administrators for the SAP cloud solution working in a customer's production system can assign a
report that you have created to a work center view. To assign a report to a work center view, the
solution that contains the report must therefore be implemented in the customer's production system.
We recommend that you provide information about the work center views to which customers need to
assign reports in your Solution Documentation. For more information, see Documentation Types in
Cloud Solutions from SAP [page 822].
Related Information
Overview
A data source is an object that provides a multidimensional, analytical view of business data. Data sources are
the basis of analytical report content and are associated with a specific access context or can be unrestricted.
● Key figures
Fields according to which values are selected. Key figures are numeric values that have a unit of measure
or currency assigned. Examples include Invoice Net Value and Purchase Order Quantity.
● Characteristics
Fields according to which values are selected. Characteristics are alphanumeric, numeric, or text values.
Examples include Product ID, Supplier, and Purchase Order Status. Variables are often associated with
specified characteristics. Variables restrict characteristics to one or more specified value selections.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
In the studio, you can create a data source based on an SAP business object or a custom business object. A
data source includes specific data such as key figures and characteristics that administrators for Analytics can
use for reporting in the SAP cloud solution.
When you define a data source, you select the relevant fields from your business objects, from SAP business
objects, or from a combination of both. You can join the fields of multiple business objects by using
associations. The system supports [1..1] associations with a foreign-key relationship.
The studio supports read access across deployment units in data sources. You can use cross-deployment-unit
associations to access the data in business objects that are not assigned to the default deployment unit of your
solution. For more information, see Syntax for Business Object Definitions [page 191] under Deployment Unit.
Working with Data Sources Using the Administrator Tools of the SAP
Solution
You can join or combine data from different data sources that share common characteristics and contain
semantically different key figures. For more information, see Combined Data Sources [page 519] and Joined
Data Sources [page 520].
Related Information
Overview
A data source is an object that provides a multidimensional, analytical view of business data. Data sources are
the basis of analytical report content and are associated with a specific access context or can be unrestricted.
A combined data source combines data from two or more data sources that share common or similar
characteristics.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Use
In the SAP cloud solution, you can use the administrator tools for Analytics to create a combined data source
that combines data from multiple data sources.
When you build a report using a combined data source, all characteristic values are displayed along with any
key figure values.
You usually combine data sources that have the semantically similar characteristics. However, you can also
combine data sources when the characteristics you require for a report are not available in one data source.
Related Information
Overview
A data source is an object that provides a multidimensional, analytical view of business data. Data sources are
the basis of analytical report content and are associated with a specific access context or can be unrestricted.
A joined data source joins data from two or more data sources that share common characteristics.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Use
In the SAP cloud solution, you can use the administrator tools for Analytics to create a joined data source that
joins data from multiple data sources that share common characteristics.
When you build a report using a joined data source, the characteristic values that match in the joined
characteristics in the data sources are displayed along with the values that are in the same row.
Joined data sources can have more than one join. A join is created when a characteristic is available in a data
source that is an anchor. By default, the first data source you select is the anchor. The more joins there are in a
joined data source, the more restricted the data is that is available for reports.
Join Types
There are different types of joins between data sources. You select a join type depending on your business
requirements.
Note
The anchor is displayed for both join types in the system but only affects the data in a joined data source
that uses a left outer join.
Inner Join
An inner join selects only those characteristic values from the data sources to be joined that match in the
joined data source field along with any key figure values. Characteristic values in the joined data source fields
that do not appear in both data sources are excluded from the joined result set.
The following example shows a result set of a joined data source that uses an inner join.
A left outer join selects all characteristics values from the data source that is selected as the anchor and those
characteristic values that match in the data sources that are added along with any key figure values. By default,
the first data source that you select is the anchor.
Note
Setting the anchor to a different data source affects the values available because the joined data source
fields may also change.
Example of a Result Set of a Joined Data Source That Uses a Left Outer Join
Related Information
Overview
You can use transformation rules to calculate fields from business object fields, for example, for date and date/
time conversions. The transformed (calculated) fields are added to the data source and can be used in reports.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Use
Business objects often contain date and date/time information, for example, for the release of an order. In
reports, you normally want to aggregate data in time buckets, for example, to view the orders per month. For
You select transformation rules in the Data Source Wizard. For information about how to create a data source
using the Data Source Wizard, see Create a Data Source [page 527].
Transformation rules are only available for fields of the data types GLOBAL_DateTime, Date, and the Name,
Description, and Text data types, which represent character strings.
Rule Description
DatetimeToTime Selects and retrieves only the time from a datetime field.
DatetimeToDay Selects and retrieves only the day from a datetime field.
DatetimeToDate Selects and retrieves only the date from a datetime field.
DatetimeToMonth Selects and retrieves only the month from a datetime field.
DatetimeToYear Selects and retrieves only the year from a datetime field.
DatetimeToYearmonth Selects and retrieves only the year and month from a datetime field.
Rule Description
DateToMonth Selects and retrieves only the month from a date field.
DateToYearmonth Selects and retrieves only the year and month from a date field.
Rule Description
8.11.2.6 Aggregation
Overview
To enable the calculation of key figures, the system can aggregate key figure values from a data source based
on defined aggregation behavior. The system aggregates key figure values for multiple characteristics. The
system can also aggregate key figure values for a specified characteristic; this is referred to as exception
aggregation.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Features
The studio supports the definition of standard aggregation. You can define exception aggregation behavior in
the SAP cloud solution using the administrator tools for Analytics.
Standard Aggregation
The standard aggregation behaviors you can define in the studio are summation, minimum, maximum, and
count. For example, you can define minimum and maximum aggregation for date key figures. You define
aggregation behavior in the studio using the Data Source Wizard. For information, see Create a Data Source
[page 527].
You define exception aggregation behavior for values of a calculated key figure. The deviation to the standard
aggregation behavior is only valid in combination with a specified characteristic. You define exception
aggregation behavior in the SAP cloud solution using the Report Wizard.
Related Information
Overview
A customer-specific solution is in maintenance mode, if it has been assembled and downloaded; the solution
status then is Assembled. You can make changes to the solution in a patch; however, you can only make
restricted changes to certain content types. These change and delete restrictions ensure that you do not make
changes to a solution that could lead to loss of data or create inconsistencies or errors on a customer's
production tenant.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
The following table gives an overview of the change and delete restrictions for analytics content in a solution
that is in maintenance mode. The system performs the change and delete restrictions checks when you save
the data source.
Action Allowed
Change the Display Name and Referenced Data Source fields of data source fields No
Delete a reference to a joined data source created by an administrator in the cloud solution Yes
Delete a reference to a combined data source created by an administrator in the cloud solution Yes
Delete a reference to a key figure created by an administrator in the cloud solution Yes
Maintenance of Reports
Action Allowed
Related Information
8.11.3 Tasks
In the studio, you can create a data source based on an SAP business object or a custom business object. A
data source includes specific data such as key figures and characteristics that administrators for Analytics can
use for reporting in the SAP cloud solution.
● You have created and opened a solution in the studio. For more information, see Create a Customer-
Specific Solution [page 177].
● To create a data source based on a custom business object, you must create and activate your custom
business object.
For more information, see Business Objects Quick Guide [page 398].
● If you want to allow referencing of your data source by another data source and enable navigation from a
report to another floorplan that is not a standard UI, you must define this UI. For information, see Generate
Screens for a Business Object [page 429].
Procedure
Right-click your business object and select 1. Right-click your solution and select Add New Item
Create Data Source. The Add New Item dialog opens.
The Data Source Wizard opens. 2. Select SAP Analytics Data Source and click Add.
The Data Source Wizard opens.
2. In the Create a Data Source step, define your data source by doing the following:
1. Select a namespace.
By default, the namespace for your solution is selected; however, to create a data source based on an
SAP business object, you can select an SAP namespace.
2. Select a business object.
3. Select an anchor node to link to the data source.
Tip
○ If a [1,n] association is defined for a field, the field is not displayed in the business object
hierarchy. Therefore, we recommend that you select the most detailed node as the anchor
node. For more information about associations, see Syntax for Business Object Definitions
[page 191] under Association.
○ You can also select nodes of dependent objects, for example, TextCollection.Root.
Note
○ If your datatype requires a context, for example, the region needs the country as a context, you
usually maintain this context as compounding. However maintaining compounding is not possible
in the studio.
○ Not all fields and associations modeled in the business object are supported. Only supported fields
and associations are displayed.
Click Next.
4. Optional: In the Define Transformation Rules step, define transformation rules for fields of data type text
(such as name and description), date, or GLOBAL_DataTime by doing the following:
1. In the Business Object Element area, select a field and on the Transformation tab, select a
transformation rule.
2. Define a field name for the transformation field and then press ENTER.
3. If the transformation rule allows the selection of a second parameter, next to the Parameter field,
click ....
The Select Additional Transformation Rule Parameter dialog box opens.
4. In the Select Additional Transformation Rule Parameter dialog box, select a second parameter by
selecting a row and clicking the first cell in the row.
For information about the available transformation rules, see Transformation Rules [page 523].
5. Click Next.
5. Optional: In the Define Referenced Data Sources step, modify the parameters by doing the following:
1. Display and define the names for the selected fields that are characteristics.
2. Assign an existing data source to each parameter.
Note
If necessary, you can change the display name for each parameter.
You can assign an existing data source if the fields of an SAP business object are already included
in an SAP data source.
3. Click Next.
6. Optional: In the Define Aggregation Behavior step, define the aggregation behavior for business object
elements that are key figures.
For more information about aggregation behavior, see Aggregation [page 525].
The default aggregation of every key figure is Summation. You can change the default or add new
aggregations.
7. Optional: In the Select Sensitive Personal Data Fields step include sensitive personal data fields for read
access logging by selecting the Create Log checkbox against the field. You must then include a reference
for the sensitive personal data field.
Note
If you select a field that has transformation rules, you can include only the parent field as the reference.
8. In the Review step, check that the information you have entered is correct and then click Finish.
Note
If you have defined aggregations, check that the selected aggregations are displayed correctly.
A new item with the file extension .ds ( ) appears in the Solution Explorer.
9. In the Solution Explorer, right-click the data source you have created and select Activate.
Result
The data source is available in SAP's cloud solution. You can check the result by logging on to SAP's cloud
solution. In the Business Analytics work center, navigate to the Design Data Source view and search for your
data source.
In the studio, you can now create a report that uses your data source. For more information, see Create a
Report [page 534].
You define the report and the report layout in SAP's cloud solution in the Design Reports view of the Business
Analytics work center. For more information, see the relevant documentation of SAP's cloud solution.
In the SAP cloud solution, you can use the administrator tools for Analytics to create a combined data source
that combines data from multiple data sources.
You start the process in the studio and then create the combined data source on the New Combined Data
Source screen of the Business Analytics work center. For information about combined data sources, see
Combined Data Sources [page 519] and the relevant documentation of the cloud solution.
● You are assigned the Developer user role and have access rights for the Business Analytics work center. For
more information, see User Setup Quick Guide [page 34].
● You have switched on the admin mode so that the system saves the analytics content you create in your
solution. To do this, select Administration Switch On/Off Admin Mode in SAP Solution .
Procedure
1. In the Solution Explorer, right-click your solution and select Add New Item
The Add New Item dialog opens.
2. Select SAP Analytics Combined Data Source .
3. Enter a name and click Add.
4. The SAP cloud solution opens. If you are not logged in already, the logon screen opens. Log on with your
developer user.
5. The New Combined Data Source screen opens. By default, the combined data source contains the Counter
key figure. The Counter key figure counts the number of instances of a specified object.
6. On the screen, click Add Data Source.
7. On the Add Data Source dialog screen, select a data source from the dropdown list.
The screen displays the characteristics and key figures available in the selected data source. The initial
selections serve as a basis for the combined data source. The characteristics and key figures are then
displayed in the Combined Data Source Fields column.
Note
You can only combine data sources that have compatible access contexts. For example, you can add a
data source if the data source and the combined data source have a common access context. You can
add any data source that has an unrestricted access context to a combined data source.
8. Select one or more additional data sources and add the data sources to the combined data source.
The system checks whether the characteristics and key figures in the additional data sources are also
available in the data source that you selected as a basis for the combined data source.
Note
If a characteristic or key figure is available in the combined data source, the system positions the
characteristic or key figure in the same row of each data source.
If a characteristic or key figure is not available in the combined data source, the system adds the
characteristic or key figure to the combined data source.
Other Functions
○ Remove Data Source
The Remove Data Source dialog screen opens and displays the data sources you have added. To
remove data sources, click the relevant checkboxes.
○ Add Row
Adds a row to which you can add a characteristic or key figure. The system then adds the
characteristic or key figure to the relevant field type group.
Note
The selected characteristic or key figure is only removed from the combined data source.
10. In the studio, in the Solution Explorer, update your solution by clicking Refresh Solution ( ).
A .cds file ( ) appears under your solution.
Result
The combined data source is available for reporting. You can create reports using data from the combined data
source. For information about creating reports, see Create a Report [page 534].
You can delete the combined data source when your solution is in maintenance mode. For more information,
see Maintenance Mode [page 185].
In the SAP cloud solution, you can use the administrator tools for Analytics to create a joined data source that
joins data from multiple data sources that share common characteristics.
You start the process in the studio and then create a joined data source on the New Joined Data Source screen
of the Business Analytics work center. For information about joined data sources, see Joined Data Sources
[page 520] and the relevant documentation of the cloud solution.
Prerequisites
● You are assigned the Developer user role and have access rights for the Business Analytics work center. For
more information, see User Setup Quick Guide [page 34].
● You have switched on the admin mode so that the system saves the analytics content you create in your
solution. To do this, select Administration Switch On/Off Admin Mode in SAP Solution .
Procedure
1. In the Solution Explorer, right-click your solution and select Add New Item
The Add New Item dialog opens.
2. Select SAP Analytics Joined Data Source .
Note
By default, the joined data source contains the Counter key figure. The Counter key figure counts the
number of instances of a specified object.
6. On the New Joined Data Source screen, click Add Data Source.
Note
7. On the Add Data Source dialog screen, select a data source from the dropdown list.
The screen displays the characteristics and key figures available in the selected data source. The initial
selections serve as a basis for the joined data source. The characteristics and key figures are then
displayed in the Joined Data Source Fields column.
By default, the first data source you select is the anchor.
8. Select one or more additional data sources and add the data sources to the joined data source.
The system checks whether the characteristics and key figures in the additional data sources are also
available in the data source that you selected as a basis for the joined data source.
Note
If a characteristic or key figure is available in the joined data source, the system positions the
characteristic or key figure in the same row of each data source.
If a characteristic or key figure is not available in the joined data source, the system adds the
characteristic or key figure to the joined data source.
If a characteristic is available in a data source that is an anchor, the system creates a join. The more
joins there are in a joined data source, the more restricted the data is that is available for reports.
Other Functions
○ Remove Data Source
The Remove Data Source dialog screen opens and displays the data sources you have added. To
remove data sources, click the relevant checkboxes.
○ Add Row
Adds a row to which you can add a characteristic or key figure. The system then adds the
characteristic or key figure to the relevant field type group.
○ Remove Row
Deletes the selected row.
Note
The selected characteristic or key figure is only removed from the joined data source.
○ Check
Checks whether the joined data source is consistent.
10. In the studio, in the Solution Explorer, update your solution by clicking Refresh Solution ( ).
A .jds file ( ) appears under your solution.
Result
The joined data source is available for reporting. You can create reports using data from the joined data source.
For information about creating reports, see Create a Report [page 534].
You can delete the joined data source when your solution is in maintenance mode. For more information, see
Maintenance Mode [page 185].
In the studio, you can create reports by using data sources that you have created. You can then define the
report and the report layout in the SAP cloud solution by using the administrator tools for Analytics.
You can open a report that you created in the studio in the Design Reports view in the development
environment with the Developer user role. You cannot open reports in the development environment with the
Business User role.
Prerequisites
● You have switched on the admin mode so that the system saves the analytics content you create in your
solution. To do this, select Administration Switch On/Off Admin Mode in SAP Solution .
● You are assigned the Developer user role and have access rights for the Business Analytics work center. For
more information, see User Setup Quick Guide [page 34].
● You have created and activated a data source. For more information, see:
○ Create a Data Source [page 527]
○ Create a Combined Data Source [page 530]
○ Create a Joined Data Source [page 532]
1. In the Solution Explorer, right-click your data source and select Create Report.
The logon screen of the cloud solution opens in your browser.
2. Enter the user name and password that you entered when logging on to the repository.
The Report Wizard opens.
3. Use the Report Wizard to define the report characteristics, key figures, variables, and properties; then
define the report layout.
For more information, see "Working with Reports Using the Report Wizard" in the documentation of the
SAP cloud solution.
The system displays the name of your solution. The report ID starts with the default namespace.
4. In the studio, in the Solution Explorer, update your solution by clicking Refresh Solution ( ).
A .report file ( ) appears under your solution.
Result
You have created a report in your solution and defined the report content using the data defined in your data
source. You can check which reports are defined for a particular data source. For more information, see
Analytics Quick Guide [page 511] under Manage Reports.
You can create a work center and a work center view to which you want your report to be assigned; then, in the
UI designer, you can:
Note
Only administrators for the SAP cloud solution working in a customer's production system can assign a
report that you have created to a work center view. To assign a report to a work center view, the solution
that contains the report must therefore be implemented in the customer's production system.
We recommend that you provide information about the work center views to which customers need to
assign reports in your Solution Documentation. For more information, see Documentation Types in Cloud
Solutions from SAP [page 822].
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Prerequisites
● You are assigned the Developer user role and have access rights for the Business Analytics work center. For
more information, see User Setup Quick Guide [page 34].
● You have switched on the admin mode so that the system saves the analytics content you create in your
solution. To do this, select Administration Switch On/Off Admin Mode in SAP Solution .
● You have created a data source, if you want to base your key figure on a custom data source. For more
information, see Create a Data Source [page 527].
Procedure
1. In the studio, open your solution and, in the Solution Explorer, click Add New Item.
The Add New Item dialog opens.
2. Select SAP Analytics Key Figure .
3. Enter a name and click Add.
The logon screen of the SAP cloud solution opens. Log on to the system.
4. In the New Key Figure view, in the Define Key Figure and Select Data Source step, if you want, change the
default name of your key figure (AnalyticalKeyFigure1) and enter a description.
5. Choose an SAP data source or a data source you have created for your solution.
6. Choose which type of key figure you want to create: Calculated Key Figure or Restricted Key Figure.
7. When you are done, close the SAP cloud solution and go back to the studio.
8. In the studio, in the Solution Explorer, update your solution by clicking Refresh Solution ( ).
A .kf file ( ) appears under your solution.
You have created a key figure that you can now use in a report. For more information, see Create a Report [page
534].
You can delete the key figure when your solution is in maintenance mode. For more information, see
Maintenance Mode [page 185].
In the studio, you can create a mass data run (MDR) for your custom business object, define selection
parameters for the mass data run, and create the relevant screens. In the SAP cloud solution, your customer
uses the mass data run to schedule an action for many instances of a custom business object.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
A mass data run is the automatic mass processing of a task or a business transaction. Mass data runs enable
mass processing of business data and are used in business processes, for example, invoice runs, payment
authorization runs, or balance confirmation runs. When a user schedules a mass data run, the system executes
it as a background job.
Important tasks
In the Solution Explorer, you can create a mass data run and generate the relevant screens.
For more information, see Create a Mass Data Run [page 542].
In the user interface designer, you can assign the mass data run work center view to the UI.
For more information, see Assign MDR Work Center View to UI [page 544].
In the cloud solution, your customer can create and activate mass data run instances and schedule the mass
data run.
For more information, see Test the Mass Data Run [page 544].
Related Information
Example: Changing the Status of a Price Request (Mass Data Run) [page 546]
With a mass data run (MDR), you can execute an action for many instances of a custom business object
without user interaction. You can schedule the mass data run to be executed immediately, on a specific date
and at a specific time, or periodically. The node of the custom business object needs to have an action and a
query.
Note
● You cannot use QueryByElement queries. These are generated automatically for every node of a
custom business object.
● You cannot create a mass data run for the action of an SAP business object.
For more information, see the mass data run documentation in the SAP cloud solution.
Features
In the studio, you can create a mass data run for a custom business object, which your customer can then use
in the SAP cloud solution.
Process Overview
1. In the Mass Data Run Wizard: Define the mass data run
1. Select the custom business object, the node, and the action
2. Select the query and the selection parameters
3. Select the control parameters
2. In the Solution Explorer: Generate the mass data run screens
3. In the UI designer: Assign the mass data run work center view to the UI
Selection Criteria
In the Mass Data Run Wizard, you can use the selection parameters of the query to restrict the business object
instances to be processed by the mass data run. You can either select User Selection or Fixed Value. If you want
the business user to be able to restrict the query results by entering values, select User Selection. Otherwise
select Fixed Value; fixed values cannot be changed by the business user.
The following table shows how you define the fixed values for specific data types:
Data Type Multiple Equal To Between Contains Less Than/ Greater Format Example
Values Pattern Less Than Than/
Or Equal To Greater
Than Or
Equal To
Measure, Yes Yes Yes Yes Yes Yes Positive and 420.5
Quantity negative
entries are
possible
Parallel Processing
Parallel processing can shorten the processing time of a mass data run. If you select parallel processing, blocks
of 50 business object instances are processed in parallel. The number of processes being executed in parallel
depends on the current system activities and cannot be influenced. If parallel processing of the business object
instances changes the same instance of another business object, locking problems can occur.
Caution
Only use parallel processing if you are sure that the business object instances are processed independently
of each other.
Application Log
For more information, see the application log documentation in the SAP cloud solution.
To execute a mass data run, business users have to create a new instance in the MDR work center view. They
can also add further selection criteria. After setting the mass data run instance to Active, the new mass data
run can be scheduled. Business users can choose from the following scheduling options:
● Start Immediately
Immediate execution of the mass data run. Depending on the current system activities, it may take some
time until the process starts.
● Run After Job
Execution once another mass data run is completed. This option can be used if there are dependencies
between the mass data runs.
● Single Run
Single execution on a specific date or at a specific time.
● Recurrence
Recurring execution of the mass data run (daily, weekly, or monthly).
For more information, see the "Background Jobs Quick Guide" in the SAP cloud solution.
If you change and activate a mass data run during development, the system deletes all existing instances and
all scheduled executions runs of that mass data run. This is not the case if a solution with a changed mass data
run is uploaded (for example, to a customer system). However, if you change delivered mass data runs, the
runtime behavior of scheduled mass data runs may be affected. For example, if you change one of the selection
criteria, the list of instances found by the query changes.
You can delete a mass data run when your solution is in maintenance mode. For more information, see
Maintenance Mode [page 185].
If you have created a solution template that contains an object work list (OWL) for a mass data run object, you
need to do the following: After importing the solution templates into a customer-specific solution, you need to
save and activate the OWL again in the UI designer. Otherwise, the system will dump when you create a mass
data run instance.
For more information on solution templates, see Solution Templates Quick Guide [page 171].
In the studio, you define one or more mass data runs (MDR) for your custom business object. First, in the Mass
Data Run Wizard, you select the relevant business object, node, and action. Then, you select the query and
define the selection parameters for the query. After that, you define the control parameters for the execution of
the mass data run. Finally, you generate the screens for the mass data run.
Prerequisites
Procedure
1. In the studio, in the Solution Explorer, right-click the custom business object and select Create Mass Data
Run.
The Mass Data Run Wizard opens.
Note
If the Create Mass Data Run option is disabled (grayed out) in the context menu of the custom business
object, the prerequisites for creating a mass data run are not met. This is the case, for example, when
the business object does not contain an action or a query.
2. In the Create a Mass Data Run step, enter a name, select a business object, a node, and an action, and click
Next.
Note
3. In the Define Selection Criteria for Mass Data Run step, do the following:
1. Select a query and then the restrictions None, User Selection, or Fixed Value for the query fields.
Note
You must select User Selection or enter fixed values for at least one field.
Note
Depending on the data type of the field, the ... button may not be available.
2. Click the Equal to button on the left and select one of the options.
3. Click Add to further restrict the values.
Tip
For more information on how to restrict the values, see Mass Data Run [page 538] under
Selection Criteria.
Tip
If you delete an element (field) with a label from your business object that is used in the mass data run
and query, you must do the following to be able to activate the business object again:
1. Open the query, deselect the field and save the query.
2. Then you can activate the business object.
Result
You have defined one or more mass data runs for your custom business object and created the relevant
screens. In the UI designer, you can now assign the MDR work center view to the UI.
For more information, see Assign MDR Work Center View to UI [page 544].
Overview
You have created a mass data run and its screens. Now you want to assign the mass data run work center view
to the work center of your custom business object.
Procedure
1. In the Solution Explorer, open the _WCF.WCF.uiwoc file of the custom business object. Right-click the file
and select Open UI Designer.
The UI designer opens.
2. On the Designer tab, select the TestView work center view.
3. In the Configuration Explorer, select [Your Solution]_MAIN SRC [your mass data run work center
view]_WCView and drag and drop it onto the empty space in the middle of the screen.
A warning message appears.
4. Click Yes and then Save and Activate and close the UI designer.
5. Reopen the UI designer by right-clicking the _WCF.WCF.uiwoc file of the custom business object.
On the Designer tab, the TestView work center view should now have changed its name to the name of your
mass data run.
Tip
If you want to change the texts on the screens, open the relevant screen in the UI designer and enter a
new text in the Property Explorer. For more information, see Change the Title of a Component [page
739].
Result
You have assigned the mass data run screens to the work center of the custom business object. Your customer
can now define and schedule mass data runs in the cloud solution.
For more information, see Test the Mass Data Run [page 544].
Overview
You have assigned the mass data run work center view to the UI. Now you can test the mass data run in the
SAP cloud solution.
In the UI designer, you have assigned the mass data run screens to the work center of the custom business
object. For more information, see Assign MDR Work Center View to UI [page 544].
In the SAP cloud solution, you have assigned the work center of your custom business object to your business
user. For information on how to assign a work center view to a business user, see the User Setup Quick Guide
[page 34].
Procedure
1. In the SAP cloud solution, choose the work center view of the custom business object and create some
instances of the business object.
2. Choose the work center view of the mass data run and click New.
3. Enter a Run ID and a Run Description.
4. To define selection criteria, proceed as follows:
1. Click one of the Selection Criteria tabs and click Add Row.
2. Click Inclusion/Exclusion to include or exclude values.
3. Select a search pattern and enter a range.
4. Save your entries and click Set to Active.
5. Click Schedule.
The Schedule Job view opens.
6. The following scheduling options are available:
○ To start the mass data run immediately, select Start Immediately and enter a data and time.
○ To start the mass data run after another job, select a job in the Scheduled Job Selection dialog or enter
a data and time.
○ To schedule the mass data run as a single run, select Single Run and enter a date and time.
○ To schedule a recurring mass data run, select Recurrence, enter date and time and the type of
recurrence.
7. Click Save and Close.
Result
You have scheduled the mass data run, which will be processed according to the selections you have made. In
the Mass Data Run OWL, under Execution Details, the status of your mass data run is displayed.
Once the mass data run has been completed, the process status changes. You can then access the application
log by clicking Application Log ID for more detailed information.
This example illustrates a use case for mass data runs for custom business objects. Assume the custom
business object PriceRequest has a validity period. Once the validity of the price request has expired, we want
to change its status to obsolete. This status change can be performed using a periodically scheduled mass
data run.
Prerequisites
● You have installed the studio on your PC or laptop. For more information, see Installing SAP Cloud
Applications Studio [page 30].
● You have a studio developer user and a business user for the cloud solution. For more information, see
User Setup Quick Guide [page 34].
● You have created a solution.
Tasks
1. Log on to the studio and, in the Solution Explorer, select your solution and click Add Item.
2. In the Add New Item dialog, select Code List Data Type.
3. Enter a name (PriceRequestStatus) and click Add.
The Code List Data Type Wizard opens.
4. In the Create Code List Data step, proceed as follows:
Enter a name (PriceRequestStatus; the suffix Code is added automatically) and a description (Price
Request Status) and click Next.
5. In the Define the Code List Values step, proceed as follows:
Enter the following values and then click Next:
1. In the Solution Explorer, right-click the project in your solution and select Add New Item.
2. In the Add New Item dialog box, select the Business Object template, enter a name for your business object
(PriceRequest.bo), and click Add.
A new item (PriceRequest.bo) appears in the Solution Explorer and the business object editor opens.
3. In the editor, enter the following code:
import ABSL;
1. In the Solution Explorer, right-click your business object and select Create Query.
The Query Wizard opens.
2. In the Create a Query step, enter a Query Description and click Next.
3. In the Select Query Fields step, select all fields and click Next.
4. In the Define Query Parameters step, click Next.
5. In the Review step, review your entries and click Finish.
1. In the Solution Explorer, right-click the business object and select Create Screens.
2. In the Create Screens dialog, select a screen scenario option, enter a Short ID and click OK.
In the Solution Explorer, six new files appear.
Note
Solution Explorer
1. Log on to the cloud solution with an admin user and choose Application and User Management
Business Users .
2. In the Find field, enter the business user and click Go.
The business user is displayed.
3. Select the business user and choose Edit Access Rights Work Center and View Assignments .
4. Select the work center you have created ([your solution name]...WCF.WCF) and click Save.
5. Log off from the cloud solution.
1. Log on to the cloud solution with the business user and choose the PriceRequest work center you have
created and assigned to the business user.
2. Create several price requests with different validities:
1. Click New, enter values in all fields and click Save.
1. In the studio, in the Solution Explorer, right-click your business object and select Create Mass Data Run.
The Mass Data Run Wizard opens.
2. In the Create a Mass Data Run step, enter a name (for example, SetToObsolete), check the other values
and click Next.
1. In the Solution Explorer, right-click the .mdr file and select Create Screens.
The system generates three screen files (QA, OWL, WCVIEW).
2. To open the PriceRequest_WCF.WCF.uiwoc file, right-click it and select Open UI Designer.
The UI designer opens.
3. On the Designer tab, select the TestView.
4. In the Configuration Explorer, select [Your Solution]_MAIN SRC SetToObsolete_WCView and drag
it onto the empty space in the middle of the screen.
A warning appears.
5. Click Yes and then Save and Activate and close the UI designer.
6. In the cloud solution, assign the SetToObsolete work center view to your business user.
1. In the cloud solution, go to the object work list (OWL) of your mass data run and click New.
2. Enter a run ID and a run description.
3. To add selection criterion, click Add Row.
4. Enter the following data:
Related Information
8.13 Mashups
Using the studio, you can create mashups for an SAP cloud solution, and add them to an SAP floorplan or a
floorplan that you have designed.
Creating Mashups
Using the studio, you can create mashups for an SAP cloud solution, and add them to an SAP floorplan or a
floorplan that you have designed.
Mashup Categories
After you have made any of the changes listed above, you need to save and activate the changes.
Overview
Using the studio, you can create mashups for an SAP cloud solution, and add them to an SAP floorplan or a
floorplan that you have designed.
Prerequisites
● You must enable the admin mode for the solution in which you create the mashup to ensure that the
system saves your content and any changes you make in the solution. To do this, open your solution and
select Administration Switch On/Off Admin Mode in SAP Solution . For more information about the
admin mode, see Working in the Integrated Development Environment [page 42].
If you create a Web service for a mashup, the following prerequisites apply concerning API keys and
authentication:
Features
You can create new data, URL, and HTML mashups. Custom mashups can be created only by SAP.
Process Flow
1. Create a Mashup
You can create the following mashup types:
○ Create a URL Mashup [page 555]
○ Create an HTML Mashup [page 558]
○ Create a Data Mashup [page 556]
2. Add the Mashup to a Floorplan
After that, you can add the mashup to an SAP floorplan or a floorplan that you have designed. For more
information, see:
○ Add a Mashup to an SAP Floorplan [page 560]
Note
If you want to integrate a mashup into a floorplan provided by SAP, this floorplan must have an existing
outport with a stable anchor and a referenced anchor. You cannot create your own outports for SAP
floorplans.
Related Information
8.13.3 Tasks
Overview
The SAP cloud solution provides port bindings that specify on which screens mashups can be used. However,
you can also create your own port bindings for your solutions, if required.
Prerequisites
You must have created a solution. The following prerequisites for creating solutions that use mashups apply:
● You must enable the admin mode for the solution in which you create the mashup to ensure that the
system saves your content and any changes you make in the solution. To do this, open your solution and
select Administration Switch On/Off Admin Mode in SAP Solution . For more information about the
admin mode, see Working in the Integrated Development Environment [page 42].
Before you can create a port binding, you need to create a port type package for the mashup inport. If the
mashup is going to return data that is entered automatically into the cloud solution, then you need to create a
port type package for the mashup outport as well. For information on creating port type packages, see Create a
Port Type Package [page 713].
Procedure
Note
Only your own inport type packages are displayed in the dropdown list.
Note
Only inport type references that have been defined for the port type package that you have selected are
displayed.
10. If the mashup is going to return data to the cloud solution, select also an outport type package and an
outport type reference.
11. Save and activate.
Result
You can now use the port binding when you create a mashup. For more information on creating mashups, see
Creating Mashups [page 553].
Related Information
In the studio, you can create URL mashups to send data from the SAP cloud solution to a URL of a Web service
provider. The results are displayed on the Web service provider’s Web site, which is opened in a new browser
window.
● You must enable the admin mode for the solution in which you create the mashup to ensure that the
system saves your content and any changes you make in the solution. To do this, open your solution and
select Administration Switch On/Off Admin Mode in SAP Solution . For more information about the
admin mode, see Working in the Integrated Development Environment [page 42].
Procedure
Open your solution. In the Solution Explorer, do one of the following steps:
● If you are creating a mashup for the first time for this solution, right-click Add-on Solution (In
Development), then select Add New Item Create URL Mashup .
● If you have already created a mashup for this solution, you can simply right-click MashupAuthoring and
select Create URL Mashup.
The SAP cloud solution opens. If required, enter your user and password, then do the following steps:
Result
When you return to the studio, click Refresh to display the mashup in the Solution Explorer.
The document Add a URL Mashup [page 116] provides an example of how you can add a URL mashup to a
quick activity floorplan.
Related Information
In the studio, you can create data mashups for integrating data provided by third-party Web services with
business data from the SAP cloud solution.
Note
Note that some Web services may pass your business data to a third-party organization, for example,
account data is passed to a search engine when performing a reverse lookup in an online address book. It is
Prerequisites
For more information about adding a new RSS/Atom, REST, or SOAP Web service, see Create a Mashup Web
Service [page 559].
● You must enable the admin mode for the solution in which you create the mashup to ensure that the
system saves your content and any changes you make in the solution. To do this, open your solution and
select Administration Switch On/Off Admin Mode in SAP Solution . For more information about the
admin mode, see Working in the Integrated Development Environment [page 42].
Procedure
Open your solution. In the Solution Explorer, do one of the following steps:
● If you are creating a mashup for the first time for this solution, right-click Add-on Solution (In
Development), then select Add New Item Create Data Mashup .
● If you have already created a mashup for this solution, you can simply right-click MashupAuthoring and
select Create Data Mashup.
The SAP cloud solution opens. If required, enter your user and password, then do the following steps:
Result
When you return to the studio, click Refresh to display the mashup in the Solution Explorer.
Related Information
Overview
In the studio, you can create HTML mashups to embed an HTML or JavaScript based Web page into a screen.
Prerequisites
● You must enable the admin mode for the solution in which you create the mashup to ensure that the
system saves your content and any changes you make in the solution. To do this, open your solution and
select Administration Switch On/Off Admin Mode in SAP Solution . For more information about the
admin mode, see Working in the Integrated Development Environment [page 42].
Procedure
Open your solution. In the Solution Explorer, do one of the following steps:
● If you are creating a mashup for the first time for this solution, right-click Add-on Solution (In
Development), then select Add New Item Create HTML Mashup .
● If you have already created a mashup for this solution, you can simply right-click MashupAuthoring and
select Create HTML Mashup.
The SAP cloud solution opens. If required, enter your user and password, then do the following steps:
Result
When you return to the studio, click Refresh to display the mashup in the Solution Explorer.
Related Information
Overview
In the studio, you can create mashup Web services that can then be integrated into a data or HTML mashup.
RSS/Atom, REST, SOAP, and OData Web services are supported.
Prerequisites
● For RSS or Atom feeds, you know the end-point URL of the Web service or the WSDL location.
● For REST Web services, you need to know the request URL as well as any relevant parameters.
● For SOAP Web services, you need to know the WSDL location (URL).
Typically, you can find this information on the Web site of the service provider.
Note
You can also integrate an external SOAP or REST Web service into your solution. To do this, you use the
External Web Service Integration Wizard.
For more information, see Integrate an External Web Service Using SOAP [page 612] and Integrate an
External Web Service Using REST [page 614] .
Procedure
Open your solution. In the Solution Explorer do one of the following steps:
● If you are creating a mashup Web service for the first time for this solution, right-click Add-on Solution (In
Development), then select Add New Item Create .... Mashup Web Service (for example, Create REST
Mashup Web Service).
● If you have already created a mashup Web service for this solution, you can simply right-click
MashupAuthoring and select Create .... Mashup Web Service (for example, Create REST Mashup Web
Service).
The SAP cloud solution opens. If required, enter your user and password, then do the following steps:
Result
Related Information
Overview
When you add a mashup to an SAP floorplan, you can specify how it should appear on the screen. The following
options are available:
● As an embedded pane
This pane displays the mashup content directly in a section on the screen.
● As a new tab
● As a menu button
The mashup can be accessed from Web Services located at the top of a screen.
● As a link in a section of a screen
The link opens the mashup in a separate browser window.
The options that are available depend on the mashup itself and the anchors that the floorplan has. The
following table lists the anchors and the possible appearances on the screen.
Menu button
Tab
Menu button
You can also choose an extension field to allow the user to toggle the display of the mashup on the screen by
selecting and deselecting this extension field.
Prerequisites
● You must enable the admin mode for the solution in which you create the mashup to ensure that the
system saves your content and any changes you make in the solution. To do this, open your solution and
select Administration Switch On/Off Admin Mode in SAP Solution . For more information about the
admin mode, see Working in the Integrated Development Environment [page 42].
● The SAP floorplan must have an existing outport with a stable anchor and a referenced anchor. You cannot
create your own outports for SAP floorplans.
Procedure
Note
If the Visible column for a mashup is disabled, it means that the mashup is already available on the
floorplan. To remove the mashup, you need to delete the corresponding change transaction in
Extensibility Explorer.
Note
If the Visible column for a mashup is disabled, it means that the mashup is already available on the
floorplan. To remove the mashup, you need to delete the corresponding change transaction in
Extensibility Explorer.
Note
If the Visible column for a mashup is disabled, it means that the mashup is already available on the
floorplan. To remove the mashup, you need to delete the corresponding change transaction in
Extensibility Explorer.
10. If the mashup has an output parameter, select an extension field for output binding.
11. Click Apply.
The system creates a change transaction.
12. Save and activate your changes.
Add a Mashup Through an Overview Page Anchor
1. In the Configuration Explorer, open an SAP floorplan that has an overview page anchor.
2. In the Extensibility Explorer, under Operations, click Add Content to Overview.
A dialog box opens.
3. In the Type field, select Mashup from the dropdown list.
The dialog box changes.
4. In the Mashup field, select the mashup that you want to add to the floorplan from the dropdown list,
and click Apply.
Note
If the selected mashup is already part of the view, the Apply button is disabled.
5. If the mashup should be displayed using the entire width of the screen, select Full Screen Width.
6. Save and activate your changes.
Result
Note
To remove a mashup from an SAP floorplan, you need to delete the corresponding change transaction in
the Extensibility Explorer of the UI designer, under Operations.
Related Information
Overview
If you have configured a REST or RSS/Atom mashup Web service, you can implement the call of this Web
service in a script file of your solution.
● You have defined an active REST or RSS/Atom mashup Web service in your solution, either with basic
authentication or without authentication.
● You have created a solution with at least one business object. In the example below, an action has been
added to the business object definition.
Process Flow
Example
import AP.Common.GDT;
serviceID = "PW00001";
parameter.Name = "keywords";
parameter.Value = "Rome";
parameters.Add(parameter);
Overview
In this example you are going to add a URL mashup to the quick activity (QA) floorplan. This mashup will
display the car park location on a map, based on the location information entered.
Prerequisites
Procedure
1. Add an element on the root level of the Car Park business object to record location information.
Result
The mashup is available from the Web Services menu on the QA. When you click the mashup, the URL is
opened with the value entered into the Car Park Location field as an input parameter.
Overview
When you add a mashup to a floorplan that you have designed, you can specify how it should appear on the
screen. The following options are available:
The options that are available depend on the mashup type. The following table lists the mashups and the
possible appearances on the screen.
Data mashups that write data back into the SAP cloud solu Embedded pane on a section of a screen, with or without a
tion port
Data mashups that do not write data back into the SAP Embedded pane on a section of a screen
cloud solution
HTML mashups
Prerequisites
● You must enable the admin mode for the solution in which you create the mashup to ensure that the
system saves your content and any changes you make in the solution. To do this, open your solution and
select Administration Switch On/Off Admin Mode in SAP Solution . For more information about the
admin mode, see Working in the Integrated Development Environment [page 42].
Procedure
Note
If the Toolbox tab is not visible, make it visible by going to View Toolbox
Note
The outport that you select here should be the same outport that you selected for FireOutport a
few steps previously.
Note
If you do not bind the parameters, you will not be able to pass the values from the floorplan to
the mashup.
6. In the dialog box, choose the required element of the business object and click OK.
8. Bind the outport and inport parameters.
9. Save and activate your changes.
Add a Mashup Without Port as an Embedded Pane
Result
You can now test the mashup in your floorplan by clicking the Run the Component button (green triangle) in the
toolbar.
Related Information
Overview
This example shows how to add a URL mashup as a link in a floorplan that you have designed.
Prerequisites
● You must enable the admin mode for the solution in which you create the mashup to ensure that the
system saves your content and any changes you make in the solution. To do this, open your solution and
select Administration Switch On/Off Admin Mode in SAP Solution . For more information about the
admin mode, see Working in the Integrated Development Environment [page 42].
Note
If the Toolbox tab is not visible, make it visible by going to View Toolbox
Note
This name starts with MAIN_<Solution Name> SRC Mashups Pipes <Pipe ID>
Tip
We recommend that you copy the name $MashupPipeID from this document and paste it in the
ArgumentName field.
Note
If you do not bind the parameters, you will not be able to pass the values from the floorplan to the
mashup.
3. In the dialog box, choose the required element of the business object and click OK.
7. Create an event handler.
1. On the Controller tab, right-click Event Handlers and select Add EventHandler..
The new event handler is displayed under Event Handlers.
2. Right-click the new event handler and select Rename; then enter a new name for the event handler, for
example, MashupHandler.
3. Under EventHandler Operations, click the Add Operation button twice to add two new operations.
4. For each operation, under Type, click in the field and select the following operation types:
○ SyncDataContainer
○ FireOutport
5. Under Name, you can change the names of these operation types
6. For FireOutport, under Configure the operation, choose the outport that you created previously.
7. Save and activate your changes.
8. Specify the navigation for the mashup.
1. On the Controller tab, under Mashup Components, select the mashup.
2. Go to the Simple Navigation tab.
3. In the Navigations folder, right-click and select Add Navigation from the context menu.
The Navigation Details tab opens.
4. Select the outport and the inport from the dropdown lists.
Note
The source is the outport of your floorplan; the target is the inport of the mashup category.
5. To map the outport and inport parameters from the floorplan to the mashup, select these, and click
Bind.
The results are displayed in the table below.
6. Save and activate your changes.
9. Assign the event handler to the mashup in your floorplan
Note
This text is not displayed in the floorplan in the UI designer, but you will see it when you test the
mashup.
Result
You can now test the mashup in your floorplan by clicking the Run the Component button (green triangle) in the
toolbar.
Related Information
In the studio, you can create synchronous or asynchronous message-based communication between a
business object and another communication partner, such as a different system, by means of Web-service
technology.
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
The studio allows you to create a Web service on an SAP business object or on any of your business objects,
which can then be consumed by a client application. This enables remote access to the business object data.
You can integrate an external Web service into your solution and address it in your business logic to enable
access from the SAP cloud solution to a remote application. You can also select a set of inbound and outbound
services to create a communication scenario. This allows customers to create communication arrangements in
the SAP cloud solution to exchange business documents electronically. Communication for Web services is
based on SOAP or REST.
For more information, see Web Services Quick Guide [page 586].
In the SAP cloud solution, the File Input Run view in the Application and User Management work center enables
administrators to create and schedule mass data runs for third-party data integration uploading files from
other systems. The file input process allows business documents containing the files to be imported without
the need for application-specific functionality. During a run, all files of the same type are input. The file input
run receives inbound messages containing the files via application-to-application communication.
For more information about this tool, see the relevant documentation for the SAP cloud solution.
Condition evaluation is used to determine when a business object needs to send a message to the target
business object, for example, a message to create or change a business object instance. For each business
object identified as relevant for the subsequent service integration process, the system can evaluate a start
condition, change condition and a cancel condition. By default, the system sends a message every time a
business object is changed or deleted. To reduce the amount of messages, you can define that a message is
raised only, for example, when the source business object has a specific status.
For more information, see Condition Evaluation for Internal Communication [page 577].
Tasks
You can use internal communication to exchange data between business objects that are located in different
deployment units (DUs). To communicate, the business objects exchange XML messages in an asynchronous
way which means that the source business object sends a request message to the target business object
without expecting a response.
For more information about this task, see Configure Internal Communication [page 579].
In the SAP cloud solution, administrators can use an XML file to import third-party data from other systems
into a business object. To enable this functionality, you create an XML schema definition in the studio. This
schema definition allows customers to create an XML file, which can then be used to import the data into the
SAP cloud solution.
For more information about this task, see Create XML File Input [page 581].
Error and conflict handling is needed in message-based internal communication because there is no direct
interaction with the user who initiated the process. Thus the receiver of a message has to handle the problem
and has to trigger an appropriate resolution mechanism. A major part of development is to avoid error and
conflict situations by design but it is not possible to avoid these situations entirely. This means that you also
need to consider error and conflict situations in asynchronous communication.
For more information about this task, see Define Service Integration Error Handling [page 583].
For internal communication, you can implement the business logic for condition evaluation to specify when a
business object needs to send a message to the target business object, for example, a message to create or
change a business object instance.
For more information about this task, see Implement the Condition Evaluation Logic for Internal
Communication [page 585].
Overview
Condition evaluation is used to determine when a business object needs to send a message to the target
business object, for example, a message to create or change a business object instance. For each business
object identified as relevant for the subsequent service integration process, the system can evaluate a start
condition, change condition and a cancel condition. By default, the system sends a message every time a
business object is changed or deleted. To reduce the amount of messages, you can define that a message is
raised only, for example, when the source business object has a specific status.
Features
If you implement the evaluation logic for a condition, the system returns a Boolean value to express if the
condition is true or false, for example, based on the status of the source business object.
Note
Condition evaluation checks the condition of the root node of a business object.
Condition Types
● Relevance Condition
Based on the data of the source business object, the system checks whether the business object instance
is relevant for service integration. The system evaluates the relevance condition first. If the result is true,
the message is sent to the business object and the system evaluates the start condition. If the result is
false, the message is not sent and the service integration process is not started.
● Start Condition
This condition starts the service integration process, if the business object instance was not yet involved in
the service integration process or if the process was canceled. If the result is true, the system starts the
service integration process, that is, it compiles and sends the message to the business object.
● Change Condition
If the service integration process for the business object instance has already started, the system
evaluates the change condition. If the result is true, that is, the business object instance has changed, the
When you create a condition, the system generates a script file. You implement the evaluation logic by using
the scripting language. For more information, see Implement the Condition Evaluation Logic for Internal
Communication [page 585].
The following methods are available for service integration script files:
● Return Statement
The return statement is mandatory for each condition because it returns the result of the evaluation. The
argument is a variable or a literal of Boolean type, for example, return true;. For more information, see
Return Values (Business Logic) [page 269].
● GetProcessContext Method
The GetProcessContext method is called for business object nodes. The following change notification
fields are available for this method:
○ IsActiveInProcess
The business object node was already sent and not canceled.
Note
○ IsCreated
The business object node has been created.
○ IsUpdated
The business object node has been updated.
○ IsDeleted
The business object node has been deleted.
For more information, see Process Context (Business Logic) [page 259].
● InReconciliation Parameter
The InReconciliation parameter specifies that the service integration process is in reconciliation
mode.
For more information, see Script File Parameter (Business Logic) [page 270].
Example
The following example shows the code for the implementation of a relevance condition, a start condition
and a change condition:
● Relevance Condition
return true;
● Start Condition
return(this.SalesProcessingStatusCode == "2" ||
this.SalesProcessingStatusCode == "3");
● Change Condition
return true;
8.14.3 Tasks
You can use internal communication to exchange data between business objects that are located in different
deployment units. To communicate, the business objects exchange XML messages in an asynchronous way,
which means that the source business object sends a request message to the target business object without
expecting a response.
Example
You have defined the Bonus Entitlement business object in the Customer Invoicing deployment unit. The
Employee Compensation Agreement business object is located in the Human Capital Management
deployment unit. To transfer the bonus to the employees, you need to define an internal communication
configuration between both business objects.
Prerequisite
1. Open your solution and, in the Solution Explorer, open the Service Integration Wizard either via the context
menu of your business object or via the Add New Item dialog:
Solution Explorer: Business Object Context Menu Solution Explorer: Add New Item Dialog
2. In the Select Service Integration Type step, select Communication , enter a name and click Add.
Internal Communication and click Next. The Service Integration Wizard opens.
3. In the Create an Internal Communication step, specify 3. In the Create an Internal Communication step, specify
the sender and recipient of the communication by do the sender and recipient of the communication by do
ing the following: ing the following:
1. Optionally, change the name and the sending 1. Optionally, change the name. Select a sending
business object . business object, a receiving business object, and
2. Select a receiving business object and a receiv a receiving business object node.
ing business object node.
Note
Note One of the business objects must be a cus
One of the business objects must be a cus tom business object.
tom business object.
2. Click Next.
3. Click Next
2. In the Define Message Structure and Map to Receiving Business Object step, specify the message definition
and the identification attributes for the receiving business object as follows:
1. Specify the structure of the message by selecting the elements of the receiving business object and its
subnodes.
2. Optionally, change the interaction message name. The default name is Maintain.
3. Optionally, select a Readable ID and click Next.
3. In the Map Message Structure to Sending Business Object step, map the sending business object elements
to the receiving business object elements. For example, map the EmployeeID element of the source
business object Bonus Entitlement to the EmployeeID element of the Item node of the target business
object Employee Compensation Agreement.
To map an element, click a cell in the Receiving Business Object column. A dialog box appears in which you
select the elements of the sending business object by double-clicking them. Only compatible fields are
displayed.
Tip
Click Next.
4. In the Instance Identification for Update step, define how node instances of the receiving business object
are identified for update by doing the following:
1. Under Instance Identification, select an alternative key or query.
Related Information
In the SAP cloud solution, administrators can use an XML file to import third-party data from other systems
into a business object.
To enable this functionality, you create an XML schema definition in the studio. This schema definition allows
customers to create an XML file, which can then be used to import the data into the SAP cloud solution.
For more information, see the relevant documentation of the SAP cloud solution.
Prerequisite
1. Open your solution and, in the Solution Explorer, open the Service Integration Wizard as follows:
step, select XML File Input and click Next. The Service Integration Wizard opens.
Note
If errors occur during the upload of third-party data to the SAP cloud solution, for example, when
invalid data violates the XML schema definition, the error messages are displayed in the system in the
Application Log. When error messages are raised by the business object itself they are displayed in the
Process Communication Errors view for administrators, or tasks are created and assigned to the users
responsible for the processing. The task are also displayed in the administrator's Work view within the
Application and User Management work center.
In cases of errors during the upload due to currency or alternate key inconsistencies in the XML file, the
system displays the upload status under Execution Details with a red light. This indicates that the
upload has failed. You can view the details of the error by clicking on the corresponding Application Log
ID.
Additionally, you can view the document under Unprocessed Files in the Application and User
Management work center, File Input view. You can delete the file and upload the XML again after the
required corrections have been made.
Result
Based on this XML schema definition, customers can create an XML file, for example, in Microsoft Office Excel.
The XML file is to be stored in the WevDAV folder that was created by the studio.
Overview
You can predefine the business tasks that an administrator can monitor in the cloud solution if errors or
conflicts occur during asynchronous communication. To do this, you define the tasks and assign them to the
appropriate messages of the target business object.
In the cloud solution, the tasks will be assigned to the administrator who is responsible for the support area
that the target business object belongs to. To display the tasks, administrators navigate as follow:
Application and User Management Business Data Consistency Process Communication Error and
then choose Open Errors with Incidents in the Show dropdown list.
In the studio, you have created a service integration definition by creating an internal communication or xml file
input using the Service Integration Wizard. For more information, see Configure Internal Communication [page
579] or Create XML File Input [page 581].
Procedure
1. In the studio, open the solution that contains the service integration definition for which you want to
configure the error handling.
For internal communication, you can implement the business logic for condition evaluation to specify when a
business object needs to send a message to the target business object, for example, a message to create or
change a business object instance.
For more information, see Condition Evaluation for Internal Communication [page 577].
Prerequisites
In the studio, you have created a service integration definition by using the Service Integration Wizard. For more
information, see Configure Internal Communication [page 579].
Procedure
1. In the studio, open the solution that contains the service integration definition for which you want to
implement the condition evaluation.
2. In the Solution Explorer, open the service integration definition by double-clicking the *.pid file.
The service integration definition opens in a document window.
3. On the Conditions tab, select a condition, for which you want to implement the evaluation logic, for
example, Relevance Condition, and click Add.
The studio generates a script file that opens in a separate document window.
4. In the code editor, define the evaluation logic for the condition.
The condition must contain at least a return statement that returns the result of the condition evaluation
with a Boolean return value. For more information, see Service Integration Methods [page 270].
5. Optional: Add further conditions and define the respective evaluation logic.
6. Save the service integration definition. Then right-click the service integration definition and select Activate
Script Files.
The script files for the implementation of the condition evaluation logic are activated.
Note
The script files do not appear in the Solution Explorer. However, you can only select Activate Script Files
if script files exist.
The studio allows you to create a Web service on an SAP business object or on any of your business objects,
which can then be consumed by a client application. This enables remote access to the business object data.
You can integrate an external Web service into your solution and address it in your business logic to enable
access from the SAP cloud solution to a remote application. You can also select a set of inbound and outbound
services to create a communication scenario. This allows customers to create communication arrangements in
the SAP cloud solution to exchange business documents electronically. Communication for Web services is
based on SOAP or REST.
The following graphic shows you the steps involved in creating and integrating a Web service into your solution.
Web Services
A Web service is a set of programming standards that enables interoperation between different software
applications, running on a variety of platforms or frameworks. Web services use Extensible Markup Language
(XML), Simple Object Access Protocol (SOAP), Representational State Transfer (REST), and Web Services
Description Language (WSDL) to integrate software applications over the internet. XML is used to tag the data,
SOAP and REST are used to transfer the data, and WSDL is used to describe the Web service. Web service
discovery mechanisms such as Universal Description, Discovery and Integration (UDDI), and Web Services
Inspection Language (WSIL) can locate the Web services provided by a Web site.
Web services contain multiple service operations, which are stateless synchronous inbound operations. The
service operations are assigned to service interfaces which specify how to perform service requests and serve
as collectors for specific operation types. There is one endpoint per service interface. The following service
operations are available: Read, Create, Update, Query, and Action.
You can integrate an external Web service into your solution to access a remote application using SOAP or
REST. After creating a communication scenario and a communication arrangement, you can address the Web
service in your business logic.
For more information, see External Web Service Integration [page 604].
Communication Scenarios
In a communication scenario, you can define a set of inbound and outbound services for a business process.
Inbound services are Web services that you have created based on an SAP or custom business object, or Web
services provided by SAP. Outbound services are external Web services that you have integrated into your
solution. Based on a communication scenario, a customer can create a communication arrangement in SAP’s
cloud solution to exchange business documents electronically.
Communication Systems
A communication system represents an external system which is used for application integration.
Communication systems can be, for example, external time recording applications or master data systems.
You define a communication system in the SAP cloud solution and use it when you create the communication
arrangement.
For more information, see the “Communication Systems Quick Guide” in the documentation of the SAP cloud
solution.
Communication Arrangements
A communication arrangement helps you configure the electronic data exchange between your solution and
the communication partner. It can be set up for multiple business documents and communication types. In the
case of the communication type B2B, the communication partner is another company, for example a customer
When you create a communication arrangement, you can specify an authentication method to authorize a user
to call a Web service that you have created. You can create a communication arrangement for inbound and
outbound services. An inbound service is a Web service that is based on a business object. An outbound
service is a Web service that you have integrated into your solution.
For more information, see the "Communication Arrangements Quick Guide” in the documentation of the SAP
cloud solution.
Tasks
You can create a Web service based on an SAP business object or one of your business objects. You select the
business object elements and define the service operations that carry out tasks on the business object, for
example, creating or updating the business object data.
Before you can use your Web service in a client application, you must test it in a separate testing tool.
You can modify a Web service that you have created based on an SAP business object or one of your business
objects. To modify a Web service, you can do the following:
● Add or remove business object elements for the service operations already defined in the Web service.
● Add or remove service operations.
● Adjust the derived names for the message data types used in the WSDL file.
You can edit the authorization of the business users assigned to work center views to use the Web service
operations.
To enable access from the SAP cloud solution to an external application, you can create an external Web
service integration scenario using SOAP
For more information, see Integrate an External Web Service Using SOAP [page 612].
To enable access from the SAP cloud solution to an external application, you can create an external Web
service integration scenario using REST.
For more information, see Integrate an External Web Service Using REST [page 614].
This example illustrates the consumption of a REST Web service in the business logic of a custom business
object in the studio.
For more information, see Example: Consume a REST Service [page 616].
You can modify an external Web service integration that you have created to access a remote application.
If you use SOAP-based communication, you can make the following changes:
For more information, see Modify an External Web Service Integration (SOAP) [page 621].
If you use REST-based communication, you can define or delete API keys used for authentication.
For more information, see Modify an External Web Service Integration (REST) [page 622].
In a communication scenario, you can define a set of inbound and outbound services for a business process.
Inbound services are Web services that you have created based on an SAP or custom business object, or Web
You can modify a communication scenario that you have created based on a business-to-business or
application integration communication type. You can modify a communication scenario as follows:
To test the application integration scenario, you can create a communication system, which you can then use
when you create the communication arrangement. When your customers use the solution in their production
system, they create the communication system in the SAP cloud solution.
To test the communication scenario you have created, you need to create a communication arrangement in the
SAP cloud solution.
Before you can use your Web service in a client application, you must test it in a separate testing tool.
If you have integrated an external Web service into your solution, you typically call the service operations
provided by the Web service in a script file. The external Web service integration generates a library in the
1. In the SAP cloud solution, in the Application and User Management work center, select the Service Explorer
view.
2. Choose Advanced to open the advanced search pane.
3. Under Operation in the field Release Status, select Deprecated and in the field Deprecation Release,
specify the release in which you want to search for deprecated Web services. Choose Go.
The system displays the list of deprecated Web services in the release you specified.
Further Information
Maintenance Mode
A customer-specific solution is in maintenance mode, if it has been assembled and downloaded; the solution
status then is Assembled. You can make changes to the solution in a patch; however, you can only make
restricted changes to certain content types. These change and delete restrictions ensure that you do not make
changes to a solution that could lead to loss of data or create inconsistencies or errors on a customer's
production tenant.
● You can add new fields to a service operation and delete them.
In solution templates, you can also add new fields but you cannot delete them.
● You cannot delete delivered service operation fields.
● You can delete delivered service operation fields that have been deprecated.
Overview
A Web service is a set of programming standards that enables interoperation between different software
applications, running on a variety of platforms or frameworks. Web services use Extensible Markup Language
(XML), Simple Object Access Protocol (SOAP), Representational State Transfer (REST), and Web Services
Description Language (WSDL) to integrate software applications over the internet. XML is used to tag the data,
SOAP and REST are used to transfer the data, and WSDL is used to describe the Web service. Web service
discovery mechanisms such as Universal Description, Discovery and Integration (UDDI), and Web Services
Inspection Language (WSIL) can locate the Web services provided by a Web site.
In the cloud solution, internal communication between business objects is implemented as service
integration. For more information, see the Service Integration Quick Guide [page 575].
Features
The function in the Web service is defined in service operations performed on specified elements in the
selected business object.
Authorization Concept
You can authorize users to call a Web service that you have created as follows:
The Web service authorization object is assigned to work center views. For every assigned work center
view, an external application containing the selected Web service operations is created. All users who have
these work center views assigned to them are subsequently authorized to call the Web service operations.
Any restrictions, such as read-only access to data, that have been defined for the assigned work center
view are also taken into account when accessing business objects using the service operation.
For more information about defining Web service authorizations, see Create a Web Service [page 606].
● Communication Arrangement
You can add a Web service that you have created as an inbound service to a communication scenario.
Based on this communication scenario, you can create a communication arrangement in the cloud
Note
If you use a communication arrangement to authorize a Web service that has a Web service authorization
object, you can delete the Web service authorization object.
To test the Web service, you download the WSDL file, import it into your client testing tool, and then assign the
relevant work center views to a test user. For more information, see Test a Web Service [page 608].
The following list is intended to help you test the Web service:
The Web Services Description Language (WSDL) is an XML-based language that is used for describing the
functions offered by a Web service. A WSDL file provides a description of how the Web service can be called,
which parameters it expects, and which data structures it returns. WSDL is often used in combination with
SOAP and an XML schema document to define Web services in the internet. A client application connecting to
a Web service can read the WSDL file to determine which service operations are available on the server. The
client application can then use SOAP to call one of the service operations listed in the WSDL file. Some of the
data types used are defined in a separate XML schema document that is referenced in the WSDL file.
In a WSDL file the following elements are used for the definition of Web services:
● Types
A container for data type definitions such as XML Schema Definition (XSD).
● Message
An abstract, typed definition of the data being communicated.
● Operation
An abstract description of an action supported by the service.
A WSDL file defines Web services as collections of network endpoints, or ports. A port is defined by associating
a network address with a reusable binding. In WSDL, the abstract definition of endpoints and messages is
separated from their concrete network deployment or data format bindings. This allows the reuse of abstract
definitions: messages and port types.
The following is an example of a basic WSDL file that refers to an XML Schema document:
Example
XML elements and attributes are usually placed inside a container called a namespace. Inside the <types>
element, the targetNamespace attribute is used if you want to place elements and attributes from the default
namespace that is defined using the xmlns attribute into a different namespace. The value of the
schemaLocation attribute is the location of the XML schema document to use for the target namespace.
Usually this value can be a URL or the location of the XML schema document relative to the location of the
WSDL file on your local computer. In the above example, the WSDL file refers an XML schema document
PayrollControlSchema.xsd that is located in the same folder as the WSDL file.
The studio only accepts the relative location of the XML schema document for the value of the
schemaLocation attribute.
An XML schema document describes and validates data in an XML document. It is written in the XML schema
language, also referred to as XML Schema Definition (XSD).
Some of the data types used in a WSDL file are embedded in the file in the form of an XML schema document.
This modular schema design maximizes the potential for reusability, flexibility, and maintainability of Web
services components. As an XML schema document is written in XML, there is no need for a parser. An XML
schema document defines a rich set of data types, for example, numeric data types, string data types, and date
data types, and also makes it easier to validate documents based on namespaces.
Example
In the above example, the XML schema document refers another XML schema document
PayrollCommonSchema.xsd.
Overview
Web services contain multiple service operations, which are stateless synchronous inbound operations. The
service operations are assigned to service interfaces which specify how to perform service requests and serve
as collectors for specific operation types. There is one endpoint per service interface. The following service
operations are available: Read, Create, Update, Query, and Action.
Core Concepts
Statelessness
By definition and design, Web service operations are stateless synchronous inbound operations. This means
that no resources such as enqueue locks or buffers are shared or maintained across subsequent calls. To
ensure reasonable transaction sizes for mass operations, it is recommended that you avoid excessively large
transactions because the time required to transfer huge amounts of data across the network may cause
communication time-outs.
Action Code
The action code is a coded representation of an instruction to the recipient of a message telling the recipient
how to process it.
Due to the synchronous nature of Web services, the selective transmission of data during updates is essential
for performance. In addition it cannot be assumed that the whole business object instance has to be read
before an update takes place. This is especially true in cases where new field nodes are added via extensions.
Without selective transmission, the new fields would be cleared and the new node instances would be deleted
when an update message is processed. The CompleteTransmissionIndicator is used to indicate if the
data in the requested operation represents all the data of an element or only part of it.
● The CompleteTransmissionIndicator attribute is only used for lists, not for elements.
● For all updates, the default value is false, that is, by default, lists are always incomplete.
● For updates, if the value is true, all instances of the associated business object node that are not part of
the message will be deleted.
● For creations or deletions, the indicator is assumed to be true or you can set it yourself explicitly to true.
Log
The Log element represents the result of an operation as a series of requests and responses.
Element Details
● 1 Information
● 2 Warning
● 3 Error
LogItem The aggregated data type for theLogItem contains the fol
lowing elements:
● In a response, the
ReferenceObjectNodeSenderTechnicalId
references the ObjectNodeSenderTechnicalId
used in the request message. For more information, see
the Object Node Sender Technical ID section below.
● ReferenceMessageElementName
This value denotes the element in the request that the
log item refers to. It enables you to relate error mes
sages to lines and columns in the query or request mes
sage, irrespective of the
ObjectNodeSenderTechnicalId.
When a request contains at least one element that occurs more than once, it must be possible to identify the
corresponding elements in the response and the LogItem. To this end, the ObjectNodeSenderTechnicalId
element is contained on every level of the request message as an optional element. The corresponding element
ReferenceObjectNodeSenderTechnicalId is contained in the LogItem element at the root level of the
response message.
The ObjectNodeSenderTechnicalId contains transient values that establish the correspondence between
elements only for a single call.
Due to the stateless behavior of the Web service operations, no transactional or logical locking is possible.
However, the ChangeStateId provides a way to ensure that a modifying operation is not executed if the state
of the underlying business object instance in the database has changed since the last time that data was read.
The ChangeStateId is an uninterpretable string that is provided by all operations and may be consumed by all
modifying operations.
Update Operations
If the ChangeStateId is provided when calling an update operation, the system does not perform the
operation if the state of the business object instance in the database has changed since the ChangeStateId
was computed.
Create Operations
For create operations, there is no previous state of the underlying business object instance. Therefore the
change state identifier is not modeled in single instance create operations and is optional in mass instance
operations that support the corresponding action codes for creation.
If the change state identifier is specified and the specified value for a business object instance is different from
the actual value computed from the database, an error message with the value"SBM.SBM.CSM" (change state
mismatch ) in the element LogItem.LogItemCategoryCode is returned for that business object instance in
the Log element of the response.
Note
Operations which create or update data, return the new IDs and the ChangeStateId only for those
business object instances for which the operation succeeded.
Read Operation
The read operation returns detailed information of one or more instances of a business object. The part of the
business object returned can be limited by the defined business object view. In general, the read operation
always forms a pair with the corresponding create or update operation. Therefore, if a full or partial update
operation for a business object exists, a full or partial read operation must also exist in order to retrieve the
change state identifier for the update. A response message is always sent.
Result
Example
<BusinessObject1ByIDResponse_sync xmlns:nm="http://sap.com/xi/SAPGlobal20/
Global">
<BusinessObject1>
<SAP_UUID>00163e01-27e0-1ed0-a6f9-129eeb25f05e</SAP_UUID>
<id>1</id>
<item>Washing Powder</item>
</BusinessObject1>
<Log />
</BusinessObject1ByIDResponse_sync>
Note
Note that response and confirmation messages may contain an XML namespace definition for
xmlns:prx="urn:sap.com:proxy…". This is only used for support purposes and should ignored at
runtime.
Create Operation
The create operation creates a business object instance. A confirmation message is always sent.
Result
Example
<BusinessObject1viewCreateConfirmation_sync xmlns:nm="http://sap.com/xi/
SAPGlobal20/Global">
<BusinessObject1>
<SAP_UUID>00163e01-27e0-1ed0-a6f9-a08d04afd1f8</SAP_UUID>
<id>3</id>
</BusinessObject1>
<Log>
<MaximumLogItemSeverityCode>1</MaximumLogItemSeverityCode>
<Item>
<TypeId>007(/CSG_RUNTIME/)</TypeId>
<SeverityCode>1</SeverityCode>
<Note>Create operation was successful</Note>
</Item>
</Log>
</BusinessObject1viewCreateConfirmation_sync>
Update Operation
The update operation updates a single instance of an object with checks for concurrent updates. The part of
the business object susceptible to the update can be limited by the defined business object view. The update
operation may add and/or remove parts of the business object but it is not meant to be used for status
changes. A confirmation message is always sent.
Result
Example
<nm:BusinessObject1viewUpdateConfirmation_sync xmlns:nm="http://sap.com/xi/
SAPGlobal20/Global">
<Log>
<MaximumLogItemSeverityCode>1</MaximumLogItemSeverityCode>
<Item>
<TypeId>013(/CSG_RUNTIME/)</TypeId>
<SeverityCode>1</SeverityCode>
<Note>Update operation was successful</Note>
</Item>
</Log>
</nm:BusinessObject1viewUpdateConfirmation_sync>
Query Operation
When defining a query operation in the Web Service Creation Wizard, you can only use queries that already
exist for the business object. The query operation retrieves specified information in business object instances.
Query operations only read data; there is no change of any persistent data. A response message is always sent.
The basic query naming pattern is:
Find[View]SimpleBy[Selection criteria]
Where:
You can define the maximum number of rows returned by a query using the following elements of the
ProcessingConditions element:
● QueryHitsUnlimitedIndicator
● QueryHitsMaximumNumberValue
Caution
The caller of the Web service is responsible for creating a reasonable package size. Therefore, we do not
recommend that you set the unlimited indicator to true or that you return more than 1000 rows.
Comparisons Permitted
You can use the following types of comparisons in Web service query operations:
● Equals
Caution
If an Equals string contains an asterisk (*), the system implicitly interprets this as a wildcard query and
thus as a CONTAINS pattern. You cannot therefore query items that have the asterisk in their name. For
example, QUERY PRODUCT WHERE PRODUCT ID=A* returns all products beginning with the letter A. It
does not return the details of the product name A*
● Between
● Less than
● Less than or equal to
● Greater than
● Greater than or equal to
Each query parameter includes a SelectionBy[Name], where the name determines the query parameter,
and has the following structure:
IntervalBoundaryTypeCode 1 Equal to
Single Value; = X
3 Between
6 Less than
8 Greater Than
Result
Example
<nm:BusinessObject1QueryByElementsSimpleByConfirmation_sync xmlns:nm="http://
sap.com/xi/SAPGlobal20/Global">
<BusinessObject1>
<SAP_UUID>00163e01-3318-1ed0-b4df-43192913f03f</SAP_UUID>
<ID>1</ID>
<FirstName>Abc</FirstName>
<MiddleName>D</MiddleName>
<LastName>Xyz</LastName>
<State>1</State>
</BusinessObject1>
<ProcessingConditions>
<ReturnedQueryHitsNumberValue>1</ReturnedQueryHitsNumberValue>
<MoreHitsAvailableIndicator>false</MoreHitsAvailableIndicator>
</ProcessingConditions>
<Log>
<MaximumLogItemSeverityCode>1</MaximumLogItemSeverityCode>
<Item>
<TypeID>009(/CSG_RUNTIME/)</TypeID>
<SeverityCode>1</SeverityCode>
<Note>Query returned 1 records</Note>
</Item>
</Log>
</nm:BusinessObject1QueryByElementsSimpleByConfirmation_sync>
When defining an action operation in the Web Service Creation Wizard, you can only use actions that already
exist for the business object. The action operation changes the state of a business object instance. It is not
intended to be used to modify data. The request message types are typically very short; they often contain just
the business object ID. A response message is always sent.
Result
Example
<nm:BusinessObject1ResetStateResetStateConfirmation_sync xmlns:nm="http://
sap.com/xi/SAPGlobal20/Global"">
<Log>
<MaximumLogItemSeverityCode>1</MaximumLogItemSeverityCode>
<Item>
<TypeId>017(/CSG_RUNTIME/)</TypeId>
<SeverityCode>1</SeverityCode>
<Note>Action RESETSTATE992EBFB4F6ADFACD executed</Note>
</Item>
</Log>
</nm:BusinessObject1ResetStateResetStateConfirmation_sync>
Related Information
You can integrate an external Web service into your solution to access an external application using the SOAP
or REST protocol.
What is SOAP?
SOAP (Simple Object Access Protocol) is an xml-based protocol specification for exchanging structured
information via Web services. The integrated Web service is described by a WSDL file. With SOAP, you can use
different transport protocols, for example, HTTP or SMTP. SOAP uses named operations, each implementing
business logic through different interfaces. WS-Security and Reliable Messaging are supported.
For more information, see Integrate an External Web Service Using SOAP [page 612].
What is REST?
REST (Representational State Transfer) is an architectural style for designing networked applications. REST
services provide a uniform interface using standard HTTP operations (such as GET, POST, PUT...) and exchange
representations of resources. JSON and XML are frequently used formats in REST services.
For more information, see Integrate an External Web Service Using REST [page 614].
The SOAP and REST protocols both provide a set of rules for requesting information from a server. The
following table lists some of the differences. It should also help you decide which protocol to use for your
integration scenario. Note also that Web services often support either REST or SOAP.
The following graphic shows what you need to do to integrate an external Web service into your solution:
The procedures for integrating SOAP and REST Web Services are very similar. However, the steps you need to
take in the External Web Service Wizard are quite different as you can see in the following table:
SOAP REST
1. Upload a WSDL file. 1. Enter URL of Web service that you want to use.
2. Optional: Select XML schema document. 2. Optional: Allow non-secure communication or define
3. Decide if you want to use stateful communication. API keys.
For more information, see Integrate an External Web Service For more information, see Integrate an External Web Service
Using SOAP [page 612]. Using REST [page 614].
Related Information
The Web service can then be consumed by a client application to access the business object data remotely.
Prerequisites
● If you create a Web service based on an SAP business object, the business object must be released for the
SAP public solution model (PSM).
● If you create a Web service based on your business object, the business object must be activated.
Procedure
Note
If you have included a dependent object in your business object definition, you can only select the
dependent object node and not the elements. The elements of the dependent object, however, are
Click Next.
4. In the following steps, define the service operations for the Web service. For each service operation that
you define, select the checkbox, enter a name, and select on which business object elements you want to
perform the service operation.
The following Web service operations are provided by the studio:
○ Create service operation
○ Read service operation
○ Update service operation
○ Query service operation:
In the Define a Query Service Operation step, enter a service operation name and select a query.
Note
If you define a query service operation with query parameters that are not released for the PSM,
you cannot activate the Web service.
) appears in the Solution Explorer. Below the Web service, the Web service authorization object with the
extension .wsauth ( ) is listed, which contains the authorization settings of the Web service.
7. In the Solution Explorer, right-click the Web service and select Activate.
● WSDL File
The Web service and the Web service authorization object are activated. You can now download the WSDL
file, which can be consumed by a client application. To download the file, right-click the Web service and
select Download WSDL File.
● Adjust Derived Names
You need to adjust the derived names in the WSDL file if you are prompted to do so. You can also optionally
choose to adjust the names for ease of use. For more information, see Modify a Web Service [page 609].
● Work Center View
If you entered a name for a new work center view while defining the Web service authorization settings, the
view appears in the Solution Explorer with the file extension .uiwocview ( ). To edit the work center
view, right-click the file and select Open in UI Designer. For more information, see Model a Work Center
View [page 710].
● Maintenance Mode
You can create a Web service when your solution is in maintenance mode. For more information, see
Maintenance Mode [page 185].
Related Information
Overview
Before you can use your Web service in a client application, you must test it in a separate testing tool.
Prerequisites
● You have created and activated the Web service and have defined the Web service authorizations.
For more information, see Create a Web Service [page 606].
● If you want to test a Web service, it must be in scope.
If you have created BAC elements in your solution and assigned your solution content to a business option,
you can perform scoping manually in the development environment of the SAP cloud solution. You must be
assigned the Business User role and have access rights for the Business Configuration work center. For
more information, see User Setup Quick Guide [page 34].
Alternatively, you can trigger the deployment of business configuration in the Solution Explorer by right-
clicking the solution and selecting Deploy Business Configuration.
If you have defined BAC elements for your solution, a dialog box opens when you use the Deploy
Business Configuration function. You have to select one of the following options:
This allows you to test both partial and complete activation of your business configuration content in
the development environment.
Procedure
1. In the studio, in the Solution Explorer, right-click the Web service that you want to test and select Download
WSDL File.
Note
If an error occurs when you download the WSDL file, check that your user has been created according
to the procedure described in the User Setup Quick Guide [page 34].
Caution
This step needs to be repeated when your customers go live with your final solution. You have to ensure
that any users who should have access to the Web service are assigned to the relevant work center
views in the customer's productive system.
You can modify a Web service that you have created based on an SAP business object or one of your business
objects. To modify a Web service, you can do the following:
● Add or remove business object elements for the service operations already defined in the Web service.
● Add or remove service operations.
● Adjust the derived names for the message data types used in the WSDL file.
You have created a Web service based on an SAP business object or one of your business objects. For more
information, see Create a Web Service [page 606].
Procedure
1. In the Solution Explorer, double-click the .webservice file of the Web service that you want to modify.
2. To modify your Web service, do one of the following:
○ To add or remove a business object element available for use in the Web service, select the Business
Object View tab. Select or deselect the element that you want to add or remove.
If you deselect a business object element, it will be removed from all existing service operations. If you
add an element, it will become available for use in all existing service operations.
Note
If you have included a dependent object in your business object definition, you can only select the
dependent object node and not the elements. The elements of the dependent object, however, are
included. For more information on dependent objects, see Dependent Object (Business Object)
[page 203].
○ To add or remove a business object element from a specific service operation, select the Service
Operations tab. Proceed as follows:
1. From the dropdown list, select the service operation from which you want to add or remove a
business object element.
2. Select or deselect the relevant business object element.
○ To add or delete a service operation, select the Service Operations tab.
○ To add a service operation to your Web service, proceed as follows:
1. Click Add.
The Add Service Operation dialog box opens.
2. Select a service operation and enter a unique name for the service operation. Click Add.
○ To delete a service operation from your Web service, proceed as follows:
1. From the dropdown list, select the service operation that you want to delete.
2. Click Delete.
○ To adjust the derived name for a message data type used in the WSDL file, select the Message Data
Types tab.
When you create a Web service, the corresponding request and response messages for each service
operation contain derived names based on the names of the business object elements and Web
service operations. You may be prompted to adjust these derived names if they exceed the 120
characters limit. You can also optionally choose to adjust the names for ease of use.
To adjust the derived name, proceed as follows:
1. Select a service operation and then choose either the request or response message type.
The derived names used in the message are displayed.
2. Select a line in the structure and enter an alternative name in the Abbreviated Name field.
3. Click Apply.
The new name is displayed in the message structure. If you renamed a line in the structure that
has subitems, then the subitems are renamed accordingly.
Note
When you re-activate an existing Web service in the studio, an updated version of the Web service's
WSDL file is generated. You must download the new WSDL file after you re-activate the Web service.
Result
The modified Web service is activated. The system updates the Web service authorization object with the
changes you made to existing service operations. However, if you have added new service operations, you must
edit the authorizations manually. For more information, see Web Services Quick Guide [page 586] under Edit
Web Service Authorizations.
You can now download the updated WSDL file, which then can be consumed by a client application to access
the business object data remotely.
You can edit the authorization of the business users assigned to work center views to use the Web service
operations.
Prerequisites
You have opened a solution that contains a Web service. For more information, see Create a Web Service [page
606].
Procedure
1. In the Solution Explorer, double-click the .wsauth file to open it for editing.
2. You have the following options:
○ To add a new work center view, click Add, select Create New View, and enter a technical name for a new
view.
○ To remove authorization from a work center view, select the line in the table and click Remove. Note
that this does not delete any work center views created specifically for the Web service.
○ If you have removed authorization from a work center view, you can add it as follows: Click Add, select
Use Existing View, select the view, and click Add.
Note
If you delete a Web service authorization object in the Solution Explorer, any work center views that you
created during Web service creation are not deleted. You can delete these manually. You can recreate a
deleted Web service authorization by right-clicking the Web service and selecting Create Web Service
Authorization.
To enable access from the SAP cloud solution to a remote application, you can create an external Web service
integration scenario using SOAP.
SOAP (Simple Object Access Protocol) is an xml-based protocol specification for exchanging structured
information via Web services. The integrated Web service is described by a WSDL file. With SOAP, you can use
different transport protocols, for example, HTTP or SMTP. SOAP uses named operations, each implementing
business logic through different interfaces. WS-Security and Reliable Messaging are supported.
For more information, see External Web Service Integration [page 604].
Prerequisites
Note
Save the WSDL file and the XML schema documents in the same location on your computer. In this case,
the values of the schemaLocation attribute are the XML schema document names only.
1. In the Solution Explorer, right-click your solution and select Add New Item.
The Add New Item dialog opens.
2. Select SAP Service Integration External Web Service Integration and click Add.
The External Web Service Integration Wizard opens.
3. In the Enter Web Service Name and Type step, enter a name for the Web service and select SOAP. Click
Next.
4. In the Import WSDL File Documents step, do the following:
1. Select the WSDL file of the Web service that you want to integrate into your solution.
2. Select the Use Session ID checkbox, if you want the external Web service to allow stateful
communication, that is, return a session ID/cookie when it is called.
3. Optional: If the WSDL file refers to one or more XML schema documents, click Add, select the XML
schema document and click Open.
Change the port name, if required.
4. Click Next.
5. In the Define Communication Scenario step, do the following:
1. Optional: Select the Create Communication Scenario checkbox to create a communication scenario
that includes the Web service integration that you have defined.
If you choose not to select this option, you must assign the Web service integration to a
communication scenario later. For more information, see Define a Communication Scenario [page
619].
2. Enter a name for the communication scenario. It must start with a capital letter and can have 25
characters (letters, digits, and underscores).
3. Optional: Select the Allow Non-Secure URLs (HTTP) checkbox to allow non-secure communication.
4. Click Next.
6. On the Review page, review your entries and click Finish.
In the Solution Explorer, an external Web service integration file with the extension .wsid ( ) together
with the .wsdl file ( ) appears. If you have created a communication scenario, the corresponding .csd
Result
You have created an external Web service integration and can now do the following:
To enable access from the SAP cloud solution to an external application, you can create an external Web
service integration scenario using REST.
REST (Representational State Transfer) is an architectural style for designing networked applications. REST
services provide a uniform interface using standard HTTP operations (such as GET, POST, PUT...) and exchange
representations of resources. JSON and XML are frequently used formats in REST services.
For more information, see External Web Service Integration [page 604].
If you want to learn how you can use this function in a real-life example, see Example: Consume a REST Service
[page 616].
Prerequisites
Procedure
1. In the Solution Explorer, right-click your solution and select Add New Item.
The Add New Item dialog opens.
2. Select SAP Service Integration External Web Service Integration and click Add.
The External Web Service Integration Wizard opens.
3. In the Enter Web Service Name and Type step, enter a name for the Web service and select REST. Click
Next.
4. In the Enter End Point of REST Service step, do the following:
1. Enter the URL of the service.
The Host Address, Port, and Path fields are filled automatically.
2. Click Next.
In the Solution Explorer, an external Web service integration file with the extension .wsid ( ) is
displayed. If you have chosen to create a communication scenario, a communication scenario definition file
Result
You have created an external Web service integration and a communication scenario and can now do the
following:
Overview
This example illustrates the consumption of a REST Web service in the business logic of a custom business
object in the studio.
Example
Use case
In a Web application, users enter their country and postal code on a screen. The REST service automatically
fills the city field.
To test this example, please use a REST Web service that displays the city when you enter the corresponding
postal code. You can find such REST Web services free of charge on the Internet.
Prerequisites
● You have a partner developer user in the studio and a business user in the SAP cloud solution. For more
information, see User Setup Quick Guide [page 34].
● You have created a solution in the studio. For more information, see Create a Solution [page 177].
1. In the studio, in the Solution Explorer, open your solution and click Add New Item ( ).
2. In the Add New Item dialog, select External Web Service Integration, enter the name
GetCityByPostalCode name and click Add.
The External Web Service Integration Wizard opens.
3. In the Enter Web Service Name and Type, select the web service type REST, and click Next.
4. In the Enter End Point of REST Service step, enter the URL of the REST Web service and click Next.
1. In the Solution Explorer, right-click the .csd file and select Communication Arrangement.
The Communication Arrangements view opens.
2. Click New.
3. In the New Communication Arrangement view, do the following:
1. In the Select Scenario step, select the GetCity communication scenario and click Next.
2. In the Define Business Data step, enter the System Instance ID GETCITY-[]namespace of your
solution]_ and click Next.
3. In the Define Technical Data step, click Edit Advanced Settings, and do the following:
1. Under Details: GetCity, deselect the Use Basic Settings checkbox.
2. In the Application Protocol field, select Http and, if required, change the protocol to Hypertext
Transfer Protocol (http).
3. In the Authentication Method field, select None.
4. Click Check Completeness and make sure that no errors occur, then click Next.
4. In the Review step, review your entries, and click Finish and Close.
1. In the studio, in the Solution Explorer, open your solution and click Add New Item ( ).
2. In the Add New Item dialog, select Business Object, enter the name Address and click Add.
3. In the editor, enter the following code:
1. In the Solution Explorer, right-click the business object and select Create Script Files.
2. In the Create Script Files dialog, select Event: After Modify and click OK.
An .absl file is generated.
3. Enter the following code:
import ABSL;
// Communication details
var ScenarioName = "GetCity";
var ServiceName = "GetCityByPostalCode";
var HttpMethod = "GET";
var HttpResource = ""; // not required for this example
var ContentType = ""; // not required for this example
var Body = ""; // not required for this example
var HeaderParameter : collectionof NameAndValue; // not required for this
example
//Parse result of Web service and retrieve city name; you may have to adapt
the logic to the Web service used
var position = ws_result.Content.Find("placeName");
if ( position != -1)
{ var start = position + 12;
position = ws_result.Content.Find("lat");
if ( position != -1)
{ var length = position - start - 3;
this.City = ws_result.Content.Substring(start, length);
}
else { this.City = ""; };
}
else { this.City = ""; };
Create screens
1. In the Solution Explorer, select the business object and select Create Screens.
2. In the Create Screens dialog, select a screen scenario, enter a Short ID and click OK.
Several .uicomponent files are generated.
In a communication scenario, you can define a set of inbound and outbound services for a business process.
Inbound services are Web services that you have created based on an SAP or custom business object, or Web
services provided by SAP. Outbound services are external Web services that you have integrated into your
solution. Based on a communication scenario, a customer can create a communication arrangement in SAP’s
cloud solution to exchange business documents electronically.
For more information about communication arrangements, see the "Communication Arrangements Quick
Guide" in the documentation of the SAP cloud solution.
Prerequisites
Note
An inbound service is a Web service that is based on a business object. An outbound service is a Web
service that you have integrated into your solution.
For more information about creating an inbound Web service, see Create a Web Service [page 606].
For more information about integrating an outbound Web service, see Integrate an External Web Service
Using SOAP [page 612] and Integrate an External Web Service Using REST [page 614].
1. You can use the Add New Item dialog. This procedure is described below.
2. You can use the Define Communication Scenario step of the External Web Service Integration Wizard.
3. After integrating an external Web service using SOAP or REST into your solution, you can right-click
the .wsid file in the Solution Explorer and select Create Communication Scenario Definition.
Procedure
A communication scenario definition with the file extension .csd ( ) appears in the Solution Explorer.
7. In the Solution Explorer, right-click the communication scenario definition and select Activate.
You have created a communication scenario definition in the studio. You can now do the following:
You can modify an external Web service integration that you have created to access a remote application.
If you use SOAP-based communication, you can make the following changes:
Prerequisites
Procedure
1. In the Solution Explorer, double-click the .wsid file ( ) of the external Web service integration that you
want to modify.
2. To modify your external Web service integration, select the General tab. Do one of the following:
○ To import a new WSDL file, click Upload WSDL File and select the file from the location on your
computer where you have saved it.
○ If the WSDL file refers to one or more XML schema documents, select the schema document from
your local computer and click Add.
Note
If you import a new WSDL file and XML schema documents were uploaded for the previous WSDL file,
the schema documents are deleted on saving the changes.
3. To view the service operations provided by the external Web service, select the Service Operations tab.
4. Click Save.
5. In the Solution Explorer, right-click the external Web service integration file, and select Activate.
Result
● To test the execution of the service operations provided by the external Web service, right-click the .wsid
file and click Test Service Operations.
For more information, see Test a Service Operation [page 627].
● The external Web service integration is re-activated. You can add it as an outbound service in a
communication scenario and create a communication arrangement based on the communication
scenario. For more information, see Define a Communication Scenario [page 619] and Create a
Communication Arrangement [page 626].
Related Information
You can modify an external Web service integration that you have created to access a remote application.
If you use REST-based communication, you can define or delete API keys used for authentication.
Prerequisites
You have created an external Web service integration. For more information, see Integrate an External Web
Service Using REST [page 614].
1. In the Solution Explorer, double-click the .wsid file ( ) of the external Web service integration that you
want to modify.
2. To modify your external Web service integration, do one of the following:
○ On the General tab, select the Allow Non-Secure URLs (HTTP) checkbox.
Note
If you select this checkbox, you cannot use API keys any longer.
Result
The external Web service integration is re-activated. You can add it as an outbound service in a communication
scenario and create a communication arrangement based on the communication scenario. For more
information, see Define a Communication Scenario [page 619] and Create a Communication Arrangement
[page 626].
Related Information
You can modify a communication scenario that you have created based on a business-to-business or
application integration communication type. You can modify a communication scenario as follows:
Prerequisites
You have defined a communication scenario. For more information, see Define a Communication Scenario
[page 619].
1. In the Solution Explorer, double-click the .csd file of the communication scenario that you want to modify.
2. To modify your communication scenario, do one of the following:
○ Change the communication type on which the communication scenario is based.
○ Select or deselect the inbound and outbound services that you want to add or remove.
3. Click Save.
4. In the Solution Explorer, right-click the communication scenario and select Activate.
Result
The communication scenario definition is re-activated. You can now use the modified communication scenario
to create a communication arrangement in the SAP cloud solution. For more information, see Create a
Communication Arrangement [page 626].
To test the application integration scenario, you can create a communication system, which you can then use
when you create the communication arrangement. When your customers use the solution in their production
system, they create the communication system in the SAP cloud solution.
A communication system represents an external system which is used for application integration.
Communication systems can be, for example, external time recording applications or master data systems.
You define a communication system in the SAP cloud solution and use it when you create the communication
arrangement.
For more information, see the “Communication Systems Quick Guide” in the documentation of the SAP cloud
solution.
Prerequisites
You have defined an external Web service in You have defined an external Web service integration scenario us
tegration scenario using SOAP ing REST
In the External Web Service Integration Wizard, The communication system is created automatically.
in the Enter Web Service Name and Type step,
However, you can follow the procedure described below to change the
you have chosen to define an Application
communication system or its properties.
Integration scenario.
For more information, see Integrate an Exter For more information, see Integrate an External Web Service Using
nal Web Service Using SOAP [page 612]. REST [page 614].
● You have created a communication scenario. For more information, see Define a Communication Scenario
[page 619].
Procedure
1. In the studio, in the Solution Explorer, right-click the communication scenario definition (.csd) file and
select Manage Communication System.
2. The SAP cloud solution opens. Log on to the system.
The Communication Systems view opens.
3. Click New.
The New Communication System screen opens.
4. Under Basic Information, enter an ID for the communication system, the Host Name, and the System
Access Type.
Tip
Result
You have created a communication system. You can now use it to create a communication arrangement to test
the application integration scenario. For more information, see Create a Communication Arrangement [page
626].
To test the communication scenario you have created, you need to create a communication arrangement in the
SAP cloud solution.
Usually, your customer sets up the communication arrangement for your solution in the SAP cloud solution.
However, to test the communication scenario you have created, you need to create a communication
arrangement as well.
For more information on communication arrangements, see the “Communication Arrangements Quick Guide”
in the documentation of the SAP cloud solution.
Prerequisites
Procedure
1. In the studio, in the Solution Explorer, right-click the communication scenario definition (.csd, ) file
and click Manage Communication Arrangement.
2. Log on to the SAP cloud solution.
The Communication Arrangements work center view opens.
3. Click New.
4. The New Communication Arrangement view opens.
5. In the Select Scenario step, select the communication scenario that you have created in the studio and
click Next.
Note
When you hover over the name of the communication scenario, its key is displayed. It contains the
namespace of your solution.
When there is a solution with a communication scenario, and a patch solution is also created for the
solution, you will see two communication scenarios with the same name in the system. In such cases, if
you wish to create a communication arrangement to test the communication scenario within the patch
solution, then you must select the communication scenario with the word patch in brackets.
6. In the Define Business Data step, select the business partner and click Next.
7. In the Define Technical Data step, do the following:
1. Select the Application Protocol and Authentication Method. You can select one of the following options:
○ SSL Client Certificate: Enter a certificate.
○ User and Password: Click Edit Credentials and, in the Authentication dialog, enter a User ID and,
optionally, a password.
○ None (REST only)
Result
Your communication arrangement is created. You can now test your web service.
You can use the Test Tool to test the execution of the service operations provided by an external Web service.
Prerequisites
● You have integrated an external Web service using SOAP and activated the .wsid file.
For more information, see Integrate an External Web Service Using SOAP [page 612].
● You have created a communication scenario.
For more information, see Define a Communication Scenario [page 619].
● A communication arrangement exists for the communication scenario.
For more information, see Create a Communication Arrangement [page 626].
Procedure
1. In the Solution Explorer, right-click the .wsid file of the external Web service integration for which you
want to test the execution of service operations and select Test Service Operations.
The Test Tool opens.
Note
Result
You have tested the integrated Web service. If you are not satisfied with the result, you can edit the external
Web service integration. For more information, see Modify an External Web Service Integration (SOAP) [page
621].
If you encounter a problem during development, you can report an incident to request help in solving the
problem. the SAP cloud solution collects context data, such as system information and relevant business data,
and attaches it to the incident. This gives information about the system at the time at which the incident
occurred and helps SAP Support to better understand the problem. Note that the context data is only useful if
you report the incident from the screen on which the problem occurred, as it includes information that is
specific to that screen. This means it is important that you always report your solution-related incidents from
the screen on which they occur in your system.
You report a problem that is not related to your UI components in the Partner Development work center in the
SAP cloud solution. For example, you create an incident in this work center if you encounter issues with the
studio or the user interface designer.
Note
You cannot create an incident from the studio or the user interface designer.
Prerequisites
If you create the incident for SAP Support from the SAP cloud solution, you must be logged on to that system
with your development user. Development users have administrator rights in the SAP cloud solution and are
assigned to the Incidents view. This view is available in the SAP cloud solution as follows:
Note that you can also create an incident with a standard business user. However if that business user is not an
administrator in the SAP cloud solution, the system forwards the incident to the responsible development user
with administrator rights, who in turn forwards it to SAP Support.
8.17 Debugging
You can use debugging to observe the runtime behavior of your solution and to locate logic errors.
For information about how to access the debug functions, see Debugging User Interface [page 635].
Note
Each time you start the debugger, tracing is also started automatically. For more information about tracing,
see here [page 641].
The main tool that you use for debugging is the debugger, which works with your script files and allows you to
break the execution of your solution at specified breakpoints to examine your code and to display values of
variables defined in your solution.
Tasks
Debugging a Solution
This simple process explains how you can easily debug your solution. For more information, see here [page
638].
Set a Breakpoint
● To delete a particular breakpoint, click or press F9 in the code line, where the breakpoint has been set.
The margin is cleared and the red glyph is deleted.
● To delete all breakpoints in your script file, in the toolbar of the Breakpoints tool window, click Delete all
breakpoints
● To disable breakpoints that are set in the current script file, proceed as follows:
○ To disable a particular breakpoint, in the Breakpoint tool window, clear the checkbox of the enabled
breakpoint.
The breakpoint is now disabled.
To disable all breakpoints in your script file, in the toolbar of the Breakpoints tool window, click Enable
or disable all breakpoints
In break mode, you can perform the following activities to step through your code:
You are inside a script file and want to return to the calling SHIFT + F11
script file
Tip
If you have inspected another script file and want to return to the script file, where the running process has
stopped, in the Debug toolbar, click .
Debugging is an important process during the development of a solution which enables you to observe the
runtime behavior of your solution and to locate logic errors. The main tool that you use for debugging is the
debugger, which works with your script files and allows you to break the execution of your solution at specified
breakpoints to examine your code and to display values of variables defined in your solution.
Each time you start debugging in the studio, tracing is also started automatically. The tracing information
enriches the debug information with informational messages and, if applicable, with error messages. For more
information, see Tracing [page 641].
Debugging Basics
Debug Modes
During design mode, which is the mode when you are implementing the business logic for your solution, you
cannot use the debugger. However, you can manage breakpoints, for example, set or delete them.
After you have started debugging, you cannot edit or change your code anymore. The following debug modes
are available:
● Run Mode
Breakpoints
Breakpoints enable you to suspend execution where and when you need to. You can allow your solution to run
until it hits a breakpoint, and then you can start to debug your code.
For information about how to set and manage breakpoints, see Debugging Quick Guide [page 629].
Stepping
One of the common debugging procedures is stepping, which means, executing code one statement at a time.
Execution stops if the debugger reaches one of the following:
● Has debugging been started and if yes, has it been started for the correct user?
In the Options dialog box, on the Tracing and Debugging tab, check whether the setting for the business
user is correct. If you want to enable debugging for your development user, please make sure that the
Enable for business user checkbox is deselected. For more information about this setting, see Debug User
Interface [page 635] under Debug Settings Debugging and tracing: Enable for business user .
● Does the breakpoint look like this: ?
If yes, the breakpoint is disabled. Please enable the breakpoint by selecting the checkbox of the disabled
breakpoint in the Breakpoint tool window. Now the breakpoint is enabled and looks like this: .
● Did you activate the script file or the solution after you have set the breakpoint?
If not, the breakpoint is not valid. Please stop debugging, close the screen, and then activate the solution.
Restart debugging and open the screen again, for example, by using the preview function.
● Did you open the screen before you have activated the script file or the solution?
If yes, close the screen and open it again, for example, by using the preview function.
● Did the debugger already hit a breakpoint in the other session?
Please keep in mind that the debugger evaluates only one session at a time. A session typically
corresponds to the actions performed on one screen. Although you are able to perform actions in parallel
on another screen during the debug run, you can't debug the code of these actions.
● Is the debugger still executing the business logic in another session?
In the Debug toolbar, you have clicked or and the debugger is still executing the business logic in
the other session. Please wait until execution is finished. You can then start execution in the next session.
The value of a variable doesn't show in the Locals window, when the following applies:
● The variable is currently not in scope, that is, it is defined in a code block of a foreach or if statement.
● The variable contains a query. As the compiler optimizes the code, query variables are not available at
runtime.
● The value is not stored in a variable. The value is the result of an association or a function, which is part of a
path expression, but which is not explicitly assigned to a variable.
No, the debugger evaluates only one session at a time. A session typically corresponds to the actions
performed on one screen. Although you are able to perform actions in parallel on another screen during the
debug run, you can't debug the code of these actions.
Why doesn't the Output window update the tracing information after a
certain period of time?
If you have opened your screen, for example, by using the preview function, and you haven't performed any
actions on this screen for 10 minutes, tracing will stop automatically.
If you want to enable tracing again, restart debugging and perform the actions on the screen again.
Yes, you can. For more information, see Debug User Interface [page 635] under Debug Settings Debugging
and tracing: Enable for business user .
No, this is not possible. Just close the screen on which you are performing the actions. This will cancel the
debug session.
In an internal communication scenario, business objects exchange XML messages in an asynchronous way,
which means that the source business object (source BO) sends a request message to the target business
object (target BO) and the target BO processes this message accordingly. The processes related to the source
BO and the processes related to the target BO run in different sessions.
The debugger can stop either in the script files of the source BO or in the script files of the target BO. If you
want to debug the script files of the target BO, please make sure that the breakpoints in the script files of the
source BO are disabled.
No. Debugging of a Web Service is not possible since a technical user is required for the execution. This
technical user is different from the user that executes that web service.
Debug the actions with the business user who schedules the file input run. For this, in the Options and Settings
dialog box on the Debugging and Tracing tab, enter the name of the relevant business user. For more
information about this setting, see Debug User Interface [page 635] under Debug Settings Debugging and
tracing: Enable for business user .
The studio's debugging user interface is composed of several elements, which enable you, for example, to
select debugging functions, to view information provided by the debugger, and to specify debug settings.
Debug Menu
You can find all debugging and tracing functions in the Debug menu. There you can also enable the appropriate
windows, for example, the Call Stack window or the Output window.
The Debug toolbar provides buttons that allow you to start and stop debugging together with tracing and also
to start and stop tracing separately. If you have already started debugging, the tracing buttons are inactive. The
Debug toolbar is automatically enabled when you start debugging. To enable the Debug toolbar separately,
choose View Toolbars Debug .
Debug Windows
The debug windows display information the debugger provides and support you in analyzing this information.
The following windows are provided:
● Locals
● Breakpoints
● Call Stack
● Output
To enable a debug window, choose Debug Windows and select the appropriate window.
Note
You can only enable the Locals window and the Call Stack window if debugging has started.
Locals Window
This window displays variables local to the current script file. You can view the name, the value, and the type of
the variable. If the variable type is a structure, a business object node or a collection, you can expand or
collapse the information provided. You cannot edit this information.
Breakpoints Window
This window lists all breakpoints that are set in your solution. The Breakpoints window also contains a set of
functions, which allow you, for example, to disable and to enable breakpoints and to export breakpoints to an
XML file. For more information about breakpoints, see About Debugging [page 631].
Output Window
In the Debug view of the Output window you can view tracing information that the system is collecting during
the debug run. Each script file is listed in the order it was called and can be nested if it was called from another
script fie.
Note
The debugger evaluates one session in parallel at a time. A session typically corresponds to the actions
performed on one screen. Although you are able to perform actions in parallel on another screen during the
debug run, you cannot debug the code of these actions.
The Call Stack window supports you in finding out which script file called the script file that is currently
processed.
The arrow identifies the script file which is currently processed. If you double-click in the window, the
corresponding code line in the script file is highlighted in yellow. The arrow identifies the script file from
which the script file with the arrow has been called. If you double-click in the window, the corresponding
script file is brought to the foreground and the code line containing the call is highlighted in green.
DataTips
A DataTip is a box in the code editor that displays the value of a variable in your solution similar to the Locals
window. When the debugger is in break mode, you can enable a DataTip in the current script file by placing the
mouse pointer over a variable in the code editor.
You can pin a DataTip to a specific location in the script file or you can leave it floating on top of all studio
windows. For more information about DataTips, see the Microsoft Visual Studio documentation at http://
www.microsoft.com .
Note
DataTips are not supported if the path to the element includes an association or a function call.
You can set debug settings in the Options dialog box as a default. To change the debug settings, choose
Administration Options and Settings . In the navigation pane of the Options dialog box, click SAP and then
click the Debugging and Tracing tab on the right. The following settings are provided:
Note
Change the setting of this option only when you are in design mode.
Note
The other debug settings in the Options dialog box are default Microsoft Visual Studio settings, which do
not have any impact on the studio's debugger.
This simple process explains how you can easily debug your solution. For information about the functions that
you can use for debugging, see Debugging Quick Guide [page 629].
Prerequisites
● You have created a solution, defined a business object, and implemented the business logic in a script file.
● You have created a screen for your business object.
Process Flow
1. You open the script file in the code editor and set breakpoints.
2. You start debugging.
8.18 Tracing
You can use tracing to record information about your code as it is being executed. From the Trace Explorer, you
can run a local trace, run a trace for an end user, use incident traces for troubleshooting purposes, and view the
results of a recorded trace.
Note
If you have started the debugger tracing is turned on by default. You can start tracing separately when the
debugger is not started.
● To enable the Trace Explorer tool window, click Debug Windows Trace Explorer .
The Trace Explorer provides a view of active and completed traces.
● To enable the Debug toolbar, click View Toolbars Debug .
The Debug toolbar provides buttons that allow you to start and stop tracing separately. When you have
already started the debugger, these tracing buttons are inactive.
Tracing
You can use tracing to record information about your code as it is being executed, including variable values,
informational messages, and error messages. By inspecting the information recorded by a trace, you can
obtain a better understanding about how your code works and troubleshoot problems.
You can use the methods defined by the Trace class in the ABSL namespace to record information about the
state of your code. Method calls from the Trace class are evaluated and recorded when a trace is active in the
system. The Trace class provides methods to record informational messages (Trace.Info) and error
messages (Trace.Error).
For more information about the Trace class and methods, see here [page 643].
Tasks
You can activate tracing on any system that you can log on to with your developer user account. When a trace is
active, script files are logged as they are executed, and methods from the Trace class are evaluated and
recorded.
For more information about this task, see here [page 646].
You can activate tracing for a business user. When tracing has been activated for a business user, the code that
is executed by that user is traced. Because tracing is a developer feature, business users cannot enable tracing
directly.
For more information about this task, see here [page 647].
When a user reports an incident in a productive system, you can ask them to reproduce the incident and
include trace information. This information can help you track down the source of the issue that the user is
experiencing. Incident traces contain the same information as local traces, but are tied to the lifecycle of the
incident.
For more information about this process, see here [page 648].
When a trace has been completed, you can view the recorded information in the Trace Explorer.
For more information about this task, see here [page 648].
Overview
You can use tracing to record information about your code as it is being executed, including variable values,
informational messages, and error messages. By inspecting the information recorded by a trace, you can
obtain a better understanding about how your code works and troubleshoot problems.
When you have started tracing, some information is traced automatically, including the identity of each script
file that is executed. You can enhance the information that is recorded during a trace by adding methods from
the Trace class to your script files. This way, you can record informational and error messages, and output
variable values.
Prerequisites
You are familiar with creating business objects and working with the scripting language.
Features
Local Traces
Local traces are the traces that are created when you start tracing on the system that you are logged on with
your developer user account. You can use local traces to evaluate code that is in development, or to investigate
issues that have been reproduced on a local system.
When business users encounter errors in a production system, they can use the incident reporting process to
report the error and request assistance. Business users can attach trace information to incidents, and you can
use this information to help troubleshoot the cause of the incident.
You work with incident traces the same way as you work with local traces. However, incident traces are tied to
the life span of an incident. Incident traces are created when the incident is submitted and are deleted when
the incident is closed. When you use the trace information that is attached to an incident, it is important to
compare it to code from the same version of the system that was used to report the incident. Otherwise, the
code paths may have changed and trace statements may be different.
For more information, see Working with Incident Traces [page 648].
Performance
Trace information is only recorded while an active trace is running. When tracing is not active, no system
resources are allocated for tracing. The methods from the Trace class are only evaluated when a trace is
active; therefore you can include them in your script files without incurring any performance penalty during the
course of regular operation.
Tip
Tracing can record a potentially large amount of information; therefore it is recommended to start tracing
for limited periods of time. Otherwise, the amount of data recorded by the trace may become
unmanageable. Tracing is automatically stopped if it is left running.
In the Trace Explorer window, you can view information about the session, sequence, and script files that are
called, as well as the results of evaluating methods from the Trace class that have been added to script files,
and information about other errors that have occurred.
Note
Tracing can record several sessions in parallel at a time. A session typically corresponds to the actions
performed on one screen. In contrast to this, the debugger can evaluate only one session in parallel at a
time.
As each session, sequence, and script file is called, a trace message is recorded in a tree structure in the trace
details pane. The trace messages are numbered in the order that they were called, and are nested under the
calling parent session, series or script file as follows:
● Session
Each session is displayed in order.
● Sequence
Each sequence is displayed in order.
You can view details about the trace messages recorded for each script file by double-clicking the script file
entry in the Trace Explorer window. This displays the script file in the Trace Details pane. The Trace Details pane
contains a list of the trace messages that were recorded for the script file. The first item in this list is a message
that identifies the script file. The rest of the list contains the results of calling methods from the Trace class,
and errors that may have occurred. The details for the trace messages are as follows:
● Status
This defines whether the message is an error or for information purposes.
● Type
This defines the type of message. For example, every script file is identified by a message whose type is
"this" object ID. Messages that were generated by method calls from the Trace class are identified
by a message of type user-defined trace command.
● Number
The order that this trace message was processed for this script file.
● Name
The name of the message. For messages recorded by the Trace class, this displays the first parameter
passed to the Trace.Info and Trace.Error method calls.
● Value
The value of this message. For object identification messages, this can be the alternative key or the UUID of
the object. For Trace class messages, this is the value of the second parameter passed to Trace.Info
and Trace.Error method calls.
Related Information
Overview
You can use the methods defined by the Trace class in the ABSL namespace to record information about the
state of your code. Method calls from the Trace class are evaluated and recorded when a trace is active in the
system. The Trace class provides methods to record informational messages (Trace.Info) and error
messages (Trace.Error).
The Trace class provides methods that you can use to record information about the state of your code.
Example
import ABSL;
Trace.Error Method
You use the Error method to record information about errors. There are two overloads of the Error method,
taking one or two String parameters. The results of evaluating these methods are displayed in the Trace
Details pane and are marked by an error icon.
Syntax Trace.Error(String);
Trace.Error(String, String);
Trace.Error(“Creation failed”,
this.Identifier.Content);
Trace.Info Method
You use the Info method to record information that is not an error case. There are two overloads of the Info
method, taking one or two String parameters. The results of evaluating these methods are displayed in the
Trace Details pane and are marked by an information icon.
Trace.Info(String, String);
Trace.Info(“Test triggered”,
this.Identifier.Content);
Example
import ABSL;
Trace.Info(“Start Test”, this.Identifier.Content);
Trace.Error(“Invalid parameter”, this.Identifier.Content);
Trace.Info(“End Test”);
Trace.Runtime Method
You use the Runtime method to record the lapsed time since the very first call of this method or the latest
reset call. There are two overloads of the Runtime method, taking one String parameter or a String
parameter and an Indicator parameter. If the Indicator is set to true, the runtime is reset and the
measurement will show zero again.
The results of evaluating these methods are displayed in the Trace Details pane and are marked by an runtime
icon. The value column will show the runtime used up in seconds.
Syntax Trace.Runtime(String);
Trace.Runtime(String, Indicator);
Trace.Runtime(“Runtime used up to
now”);
Example
import ABSL;
Trace.Runtime(“Start Measurement”, true);
Related Information
8.18.4 Tasks
Overview
You can activate tracing on any system that you can log on to with your developer user account. When a trace is
active, script files are logged as they are executed, and methods from the Trace class are evaluated and
recorded.
Prerequisites
You must know how to run your script files, and you may want to add methods from the Trace class to your
script files to record custom information.
Procedure
1. To begin recording trace information, in the Trace Explorer window, click the Start Tracing button.
2. Run the script files that you want to trace.
3. To stop recording trace information, in the Trace Explorer window, click the Stop Tracing button.
4. To view traces, in the Trace Explorer window, click the Local Traces tab.
5. To update the list of traces, click the Refresh Traces button.
The completed trace appears in this list, identified by the time that trace was started, and the ID of the user
executing the code.
Related Information
Overview
You may want to trace a workflow that can be run by a business user but cannot be run by a developer user. For
example, you must be logged on to the SAP cloud solution as a business user to access some workflows. Since
business users cannot activate and deactivate tracing, developer users can run a trace on their behalf through
the Trace Explorer. When a developer user activates a trace for a business user, the code that is executed by the
business user is traced.
Prerequisites
To record custom information, you have to add methods from the Trace class to your script files.
Procedure
1. To open the trace settings dialog, click Administration Options and Settings . In the navigation pane
of the Options dialog box, click SAP and then click the Debugging and Tracing tab on the right.
2. Select Enable for business user.
3. In the text box, enter the ID of the business user to enable tracing, and click OK.
For example, enter PGREENE to enable tracing for the business user Peter Greene.
4. In the Trace Explorer window, click the Start Tracing button.
A dialog is displayed that confirms that the trace has been activated for the business user.
5. Log on to the system as the business user and run the workflow you want to trace.
6. In the Trace Explorer window, click the Stop Tracing button.
A dialog is displayed that confirms that the trace has been deactivated for the business user.
7. In the Trace Explorer window, click the Local Traces tab.
8. To update the list of traces, click the Refresh Traces button. The trace appears with the time stamp of when
the trace was started and the ID of the business user.
To view a trace, see View Trace Results [page 648].
To delete a trace, select one or more from the list and click Delete Selected Traces.
Related Information
Overview
When a user reports an incident in a productive system, you can ask them to reproduce the incident and
include trace information. This information can help you track down the source of the issue that the user is
experiencing. Incident traces contain the same information as local traces, but are tied to the lifecycle of the
incident.
Prerequisites
You use the same version of the system that was used to report the incident.
Process Flow
1. A user encounters an error in the cloud solution and reports an incident to an administrator.
2. The administrator returns the incident and requests trace information.
3. In the Incident editor, the user clicks Start Trace and repeats the steps that caused the incident.
4. In the studio, the incident trace appears in the Incident Trace tab of the Trace Explorer.
5. Developer users with the relevant authorization can view the incident trace in the Trace Explorer.
6. The incident trace remains accessible until the incident is closed.
Overview
When a trace has been completed, you can view the recorded information in the Trace Explorer.
Prerequisites
1. In the Trace Selection area of the Trace Explorer, select the type of trace to view:
○ To view local traces, click the Local Traces tab.
○ To view traces for open incidents, click the Incident Traces tab
2. To display the current list of completed traces, click the Refresh button.
3. Select the check box next to the traces that you want to view, and click the Get Trace Details button.
Each selected trace appears in its own tab.
4. Expand the trace details to show the sessions, sequences, and script files that have been recorded for the
trace.
If the script file contains any error messages, it is marked by an error icon. This enables you to easily
identify the script files that contain errors. If the script file contains no errors, it is marked by an
information icon.
5. Double-click a script file trace message to see detailed trace information for that script file in the Trace
Details pane.
Related Information
If the Dump Analysis tool window is not visible in the studio, you can access it by clicking View Dump
Analysis .
Business background
What is a dump?
If a severe error occurs during execution of a solution, the runtime cannot continue to execute the solution and
the solution is terminated. In such a case a dump is written, which is a data record about the solution's state
Tasks
In the Dump Analysis tool window, select one of the following options:
● Today
All dumps that occurred today are listed.
● Yesterday
All dumps that occurred yesterday are listed.
● All
All dumps that occurred are listed. The period covered depends on how long dumps are kept in the system.
The dump entries in the list are sorted by date.
● Advanced
In the corresponding dialog box, you can specify a date, a date range, a user name or a solution name. The
tool window will then list all dumps that meet these criteria.
Tip
The dump list is not updated automatically. To update the list, click Refresh or any of the other buttons
in the tool window. If you click Reset, the filter is cleared and the list shows the dump entries of the
current day.
Note
Dumps caused by the following runtime errors are not listed in the Dump Analysis tool window:
○ The business object element has been deleted or renamed but the element is still used on the user
interface (UI).
○ The data string in the business object element is too long for the database.
If the list contains a large number of dump entries, you can set a filter to reduce the number of entries by
specifying a date, a date range, a user name or a solution name.
Note
You can navigate from a line in the tool window to the corresponding script file, if the following conditions
are met:
● The current user is assigned to the customer ID for which the solution has been created..
● The solution or script file has not been deleted.
8.20 Translation
The studio provides functions that enable the translation of business configuration content texts and on-screen
texts into one of the languages supported by the cloud solution. The translation functions enable you to adapt a
solution created using the studio for a specific country or region. You can export the text of specific project
items to a file in XML Localization Interchange File Format (XLIFF). After the XLIFF file is translated, you can
then import the translated file into the studio and check the result. You can also monitor the translation status
of project items.
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
The following table gives an overview of the project items from which you can extract text for translation and
the specific text elements that can be translated.
The system does not support the extraction of message texts to an XLIFF
file.
The system does not support the extraction of message texts to an XLIFF
file.
The system does not support the extraction of message texts to an XLIFF
file.
XML Localization Interchange File Format (XLIFF) is a standard XML-based file format for localization,
specifically designed for exchanging bilingual content between systems. This format enables translators to
concentrate on the text to be translated by extracting translatable text and separating it from non-translatable
text. XLIFF is beneficial as a single format which can be used for translating different kinds of files. With all the
advantages of XML-based processing, this format aims to standardize localization and is supported by a wide
variety of translators.
For more information, see XML Localization Interchange File Format (XLIFF) [page 654].
Managing Translation
When you create a solution in the studio, you can translate business configuration content and other solution
content into another language. To translate business configuration content and on-screen texts, you must
export the translatable content to an XLIFF file on your local computer. Once the XLIFF file is translated, you
can import the translated file into the studio and check the translation status and the result.
Tasks
In the studio, you can extract translatable texts from specific project items in a solution. You export this text to
a file in XML Localization Interchange File Format (XLIFF) to your local computer for translation into one of the
languages supported by the SAP cloud solution. You specify the target language when you export the text.
After you have exported text of the translatable project items in a solution to a file in XML Localization
Interchange File Format (XLIFF) and it has been translated into the target language, you can import the
translated XLIFF file from your local computer to the solution and test the results of the translation in the target
language in the SAP cloud solution.
You can check the translation status of a project, business configuration content and a UI component by
viewing the total number of translatable text strings and translated text strings.
1. Translate message texts that you defined for a business object or a business object extension in the
corresponding .bo or .xbo file by using the following syntax based on a sample message:
2. In your action or event script file, raise the language-dependent message using the var expression by
using the following syntax:
var userLanguageCode;
...
userLanguage = Context.GetCurrentUserLanguage().ToString();
if ( userLanguage == "DE" ) { raise NoValidSite_DE.Create("E"); }
else if ( userLanguage == "ZH" ) { raise NoValidSite_ZH.Create("E"); }
else { raise NoValidSite.Create("E"); }
Overview
XML Localization Interchange File Format (XLIFF) is a standard XML-based file format for localization,
specifically designed for exchanging bilingual content between systems. This format enables translators to
concentrate on the text to be translated by extracting translatable text and separating it from non-translatable
text. XLIFF is beneficial as a single format which can be used for translating different kinds of files. With all the
advantages of XML-based processing, this format aims to standardize localization and is supported by a wide
variety of translators.
XLIFF File
As XLIFF is an XML-based file format, it begins with an XML declaration. After the XML declaration comes the
XLIFF document itself, enclosed within the <xliff> element. An XLIFF document is composed of one or more
Example
The <header> element contains metadata about the file which has to be translated. This information depends
on the level at which you want to translate.
The following is an example of a <header> element in an XLIFF file exported at UI component level:
Example
<header>
<phase-group>
<phase company-name="SAP AG" date="2011-12-02T06:22:58Z" phase-name="file-
creation" process-name="file-creation" tool-id="urn:x-sap:byd:xrep:xliff"/>
</phase-group>
<note from="SAP">In order to provide additional context/meta data for
translators, The strings in this file are
grouped according to UI</note>
<tool tool-company="SAP AG" tool-id="urn:x-sap:byd:xrep:xliff" tool-
name="ByD XRep XLIFF Interface" tool-version="1.1.0"/>
<sxmd:metadata xmlns="urn:x-sap:mlt:tsmetadata:1.0" xmlns:sxmd="urn:x-
sap:mlt:xliff12:metadata:1.0">
<object-name>BY003505</object-name>
<collection>/BY003505/BC</collection>
<domain>BAC</domain>
<developer>TESTUSER</developer>
<description>BY003505 Translation XLIFF File</description>
<origin>/BC_BY003505/SRC/BusinessConfiguration.xml</origin>
</sxmd:metadata>
</header>
The <body> element contains the extracted translatable data from the file in the form of translation units
represented by <trans-unit> elements. The translatable data within <trans-unit> elements is organized
into source and target paired elements. A <source> element stores the source text, and a <target> element
stores the translated text. The <target> elements are not mandatory. These <trans-unit> elements can be
grouped recursively in <group> elements. For example, If you translate at the project level, the <header>
element contains information about the project and each <group> element contains information about an
individual UI component.
Example
Note
XLIFF is bilingual as each translation unit offers one <source> element and one <target> element. This
makes the overall model simple and easy to handle.
Translation in XLIFF is based on the concept of extracting the translatable text from the original file, and
merging it back in place after translation has been done.
All translatable texts and non-translatable texts are extracted from the original file. The parts that are non-
translatable are preserved in a temporary file. The translatable parts are stored separately and translated. After
translating the translatable texts, both the parts are merged, resulting in the translated file.
Related Information
Overview
When you create a solution in the studio, you can translate business configuration content and other solution
content into another language. To translate business configuration content and on-screen texts, you must
export the translatable content to an XLIFF file on your local computer. Once the XLIFF file is translated, you
can import the translated file into the studio and check the translation status and the result.
Prerequisites
● You have opened a solution in the studio that contains content that needs to be translated.
● To test translated solution content, you must be assigned the Business User role and have access rights for
the work center views where the content is displayed. For more information, see User Setup Quick Guide
[page 34].
Process Flow
1. You extract the translatable text strings of all translatable project items in a solution or a specific project
item and export the text to an XLIFF file that you save on your local computer.
For more information, see Export Text for Translation [page 658].
2. The XLIFF file is translated into the target language using a translation tool that supports XLIFF or an XML
editor.
For more information about XLIFF, see XML Localization Interchange File Format (XLIFF) [page 654].
3. You import the translated XLIFF file into the studio.
For more information, see Import Translated Text [page 660].
4. You activate the translated project items.
If you have translated .uicomponent files, you need to update the metadata in the UI designer. To do this,
proceed as follows:
1. Right-click the translated .uicomponent file and select Open in UI Designer.
2. Select Tools Update Metadata .
Related Information
8.20.3 Tasks
Overview
In the studio, you can extract translatable texts from specific project items in a solution. You export this text to
a file in XML Localization Interchange File Format (XLIFF) to your local computer for translation into one of the
languages supported by the SAP cloud solution. You specify the target language when you export the text.
Prerequisites
You have opened a solution in the studio that contains content that needs to be translated.
Procedure
1. Extract the translatable text strings of all translatable project items in a solution or a specific project item
by doing the following:
1. In the Solution Explorer, right-click one of the following items:
○ Project node (to extract the translatable text strings of all project items that support translation)
○ Business object (*.bo)
○ Floorplan (*.uicomponent)
○ Business adaptation catalog element (*.bac)
○ Business configuration set (*.bcc)
○ Business object extension (*.xbo)
2. Select Translation Export Text .
The Export Text for Translation dialog box opens.
2. In the Export Text for Translation dialog box, select the target language to which you want to translate the
text.
3. The Add Standard Translation option is preselected. If you do not deselect it, the system inserts standard
translations of common UI texts into the XLIFF file when you export your texts for translation.
5. Select the location on your computer where you want to save the exported XLIFF file.
You can save the file in the default location or specify a new location.
6. Click OK.
The file is saved in the specified folder on your local computer.
Result
You have exported the solution content to an XLIFF file on your local computer. You can now translate the XLIFF
file into the target language using a translation tool that supports XLIFF or an XML editor. For more information
about XLIFF, see XML Localization Interchange File Format (XLIFF) [page 654]. You can also open the XLIFF file
in the studio: from the File menu, select Open File and navigate to the location of the XLIFF file you
exported. The file opens in a document window in the code editor.
Related Information
Overview
After you have exported text of the translatable project items in a solution to a file in XML Localization
Interchange File Format (XLIFF) and it has been translated into the target language, you can import the
translated XLIFF file from your local computer to the solution and test the results of the translation in the target
language in the SAP cloud solution.
Prerequisites
● You have exported an XLIFF file and saved it on your local computer.
For more information, see Export Text for Translation [page 658].
● You have translated the XLIFF file into the target language.
For more information about XLIFF, see XML Localization Interchange File Format [page 654].
Procedure
1. In the Solution Explorer, right-click the project, floorplan, business adaptation catalog element, or business
configuration set for which you want to import translated text and select Translation Import Text .
The Import Translation dialog box opens.
2. Select the location on your computer where you have saved the translated XLIFF file.
3. Click OK.
4. In the Solution Explorer, activate the translated project items by right-clicking the project or the project
items and selecting Activate.
5. Optional: If you have imported translated business configuration content, deploy the business
configuration by right-clicking the project node and selecting Deploy Business Configuration.
You must deploy business configuration content to ensure that you can view the most recently translated
business configuration set values.
6. Log on to the SAP cloud solution as a business user and make sure that you select the target language into
which the solution content was translated.
7. Test the translated text in the SAP cloud solution by viewing the relevant screens and checking that all texts
appear and are displayed correctly.
Related Information
Overview
You can check the translation status of a project, business configuration content and a UI component by
viewing the total number of translatable text strings and translated text strings.
Prerequisites
You have opened the solution in the studio for which you want to check the translation status.
Procedure
1. In the Solution Explorer, right-click the project, floorplan, business configuration set, or other project item
for which you want to check the translation status and select Translation Check Status .
The Check Translation Status dialog box opens.
2. Review the total number of translatable text strings and translated text strings, as well as the language to
which the text strings have been translated.
If you check the translation status at project level, the Check Translation Status dialog box displays the
translation status of all project items in the solution for which translation is supported.
3. Do one of the following:
○ To export any texts that still need to be translated into one or more languages, select a language and
click Export to XLIFF.
The Export Text for Translation dialog box opens. For more information, see Export Text for Translation
[page 658].
○ If all texts have been translated, click OK.
The Check Translation Status dialog box closes.
Note
If you check the translation status at project level, you can only export text at the project level and not
for individual project items.
Related Information
The user interface designer (UI designer) is integrated into the studio. You use it to design the user interface of
your solution by modifying the screens that you have created in the studio, for example, quick activity floorplan,
object work list, or work center view. You can also change or enhance SAP floorplans. Further, you can also use
the UI designer to design screens for mobile devices.
The UI designer contains a number of different tools and functions that you can access from the menu or on
tabs at the bottom of the UI designer screen. For more information, see Features of the User Interface Designer
[page 664].
Availability
Caution
This documentation covers the SAP Cloud Applications Studio (“studio”) as a whole; therefore it describes
all features that are available within the studio. Not all of these features are available for every cloud
solution from SAP. Before using a particular feature, please consult the Feature Matrix to determine
whether the feature is available for the cloud solution from SAP for which you are creating your solution.
Prerequisite
You have created a solution and created one or more screens in the studio. For more information, see Generate
Screens for a Business Object [page 429].
Process Flow
The following graphic shows how and where you create and design the screens of your solution:
1. Create screens such as an object work list, a fact sheet, or quick activity floorplan in the studio.
For more information, see Generate Screens for a Business Object [page 429].
2. In the UI designer, drag the required panes and controls to design the layout of the screen.
For more information, see .
3. Define the properties of each user interface control.
For more information, see the Property Explorer section in Features of the User Interface Designer [page
664].
4. Bind the business object elements with the user interface elements.
For more information, see Bind Data Elements to Business Object Elements [page 731].
5. Define the behavior of your solution by creating the following:
○ Event handlers. For more information, see Create an Event Handler [page 747].
○ Navigation. For more information, see Configure an Object-Based Navigation in a Source Floorplan
[page 744] and Configure an Object-Based Navigation in a Target Floorplan [page 742].
○ Queries. For more information, see Configure a Query [page 741].
○ Scripts. For more information, see Write a Script [page 746].
6. Preview your screens to check your changes. For more information, see .
Note
Before activating your screens, we recommended that you run the checkmate tool using the Run
Overview
This document provides a brief overview of the common features available in the user interface designer (UI
designer) to design the user interface.
File Menu
Save All Saves all the user interface components that are being
edited.
View Menu
The View menu allows you to display or close the following tool windows:
● Configuration Explorer
The Configuration Explorer displays the repository content in the UI designer. You can filter the content by a
selected component type.
The last level in the hierarchy is the user interface component. You can double-click to open the
component. The tool tip for the component shows the component type and the complete path which acts
as a unique identifier.
● BO Browser/Data Model
The BO Browser appears in different places in the UI designer:
○ As part of the BOBrowser / DataModel tool
○ In the Data Model tab of a component
○ In the Controller tab of a component
In the BO Browser tab, the assigned business object (BO) or enhanced controller object (ECO) is displayed
as a tree structure with all available nodes and fields. You can:
○ Choose to display only the elements, queries, actions or everything
○ Add elements and attributes, create associations, queries, actions and their parameters
○ Reset the client side cached metadata from the backend (in case the ECO/BO has been updated)
○ Filter for specific categories (if allowed)
○ Search for opened nodes in the hierarchy
In the Data Model tab you can:
○ Create the structure of the data model
○ Create, delete and rename nodes in the data model structure
○ Bind the data model element to the business object element
○ Display the corresponding properties of the nodes in the Properties Explorer
In the DataModel tab the data structure is displayed together with various data model elements. The
binding status of each of these elements is represented using specific colors. You can also determine the
binding status for each element in the Properties Explorer.
Red Indicates a data model element for which the data binding
has to be corrected. Binding Status in the Properties
Explorer has been set to ToCorrect.
● Property Explorer
It allows you to view and change properties for each element in the user interface model.
As soon as you select an element in the Designer tab, the DataModel tab or the Controller tab, the
corresponding properties of the selected element are displayed in the Property Explorer.
You can edit a few properties, and some are read-only.
Note the function of the dropdown list above the Properties window. You use this list to switch between
different components of the floorplan, depending on the item currently selected on the Designer tab.
● Toolbox
The Toolbox provides the panes and controls that can be used to design the layout of a user interface
component in the Designer tab.
The controls and panes available depend on the floorplan. You can drag the panes and controls from the
toolbox to the Designer tab.
For more information, see .
● Document Outline
The Document Outline provides an overview of all the controls used in the user interface of the selected
component.
● Project Context
The Project Context provides an overview of the users involved in the creation and use of a particular
floorplan.
● Run Checks
Run Checks provides the list of errors in the floorplan. For more information, see Working with the
Checkmate Tool.
For more information, see Working with the Checkmate Tool [page 668]
● Output Window
The Output Window gives an overview of all the changes made to the floorplan that is currently open.
● Version History
The Version History gives an idea about the name and type of solution the user is working in, the date and
time when the solution was last modified and the user who is responsible for the modifications.
● OBN Explorer
The OBN Explorer will provide information about the operations, target floorplans and the inports
configured in a particular BO.
● Extensibility Explorer
The Extensibility Explorer is used to modify floorplans that come from layer lower than the layer the user is
working on. It displays the anchors assigned for a particular area, such as the toolbar, section group or
pane container and the change transactions associated with these anchors.
All the change transactions that have been made can be viewed in the Extensibility Explorer. Change
transactions once created, are displayed in the Unsaved Change Transaction section, once they are saved
they are displayed in the Saved Change Transaction section.
After activation, the change transaction are displayed in the Published Change Transaction section.
Tip
Tools Menu
Update Metadata Updates the backend meta data information in the active
component.
Options… Allows the user to personalize the debug and warning mes
sage settings.
Cleanup UI Component Allows the user to delete any unused data structures created
by default along with Action Parameters.
Content Area
● Designer: To design the user interface of an application with the available panes and controls from the
Toolbox.
● Data Model: To bind the user interface elements to a business object element.
● Controller: To define the interaction between user interface components by creating event handlers,
interfaces, navigation, and queries.
● Preview: To preview the changes made to an user interface component, for example, a floorplan.
Checkmate tool embedded in the UI Designer acts as a guide to help developers model their UI components
correctly and consistently. This document lists all the known issues and inconsistencies that you may face
while modeling a UI component, and the help document solutions to them.
To enable the tool, on the tool panel, select the Enable CheckMate checkbox. When you enable this checkbox,
the Run Checks button gets enabled automatically.
To run all the consistency and UX checks on the open UI component, click the Run Checks button. The check
results are displayed at the bottom of the screen in a table. The results show the number of UX and consistency
rules present in the UI component.
● Priority - Displays the priority of the issue. The indicators are as follows:
○ Priority 1 indicates that the issue must be resolved to avoid inconsistencies and instabilities. Such
issues are highlighted in red color.
Caution
○ Priority 2 indicates that the issue can affect the stability of the UI component.
○ Priorities 3 and 4 indicate warnings.
● Type - Displays the type of the issue.
● Message/Details - A hyperlink that takes you to the area in the UI component where the issue has
occurred.
● Help Document - An external link that explains the issue and provides a solution.
● Status - Indicates whether it is an issue or an exception.
● Exception Reason - Displays the reason for marking the rule as an exception.
● Action - Allows you to mark the rule as an exception.
If a UI component in active status, with the checkmate tool enabled, encounters a Priority 1 issue, it becomes
inactive when you try to access, open, or edit it. If you refresh the solution, you can see a red sign against the
component in the solution explorer indicating the UI component becoming inactive. Solve the issue and
activate the component again. If you decide to activate the component without resolving the issue, make sure
that you disable the checkmate tool in the component until the issue is resolved. However, if you access the UI
component again, the checkmate tool gets enabled and it may turn the UI component inactive again. Ensure
that you activate all the UI components before any assembly or deployment process.
Description Checks if a FindFormPane has a search text binding configured and if configured, it
checks the consistency of the search text/ query parameter binding.
Messages ● FindFormPane ... refers via SearchTextBinding to ..., which does not exist in the
DataModel
● FindFormPane ... refers via SearchTextBinding to ... and this DataField has no
Query Parameter Binding
● FindFormPane ... refers via SearchTextBinding to ... and its Query Parameter
Binding has no ... attribute
● FindFormPane ... refers via SearchTextBinding to ... and the query ... mentioned
under Query Parameter Binding is not defined
● FindFormPane ... refers via SearchTextBinding to ... and the query ... mentioned
under Query Parameter Binding does not contain the search text parameter ...
Type VIOLATION
Solution Don't use the search text binding or correct the Query Parameter Binding in the Query
Configuration view of the UI Designer.
Description Checks if the 'Group Id' is configured for Event Handlers having an operation as "Doc
umentOutputOperations".
Type VIOLATION
Solution Specify the 'Group Id' for the mentioned "DocumentOutputOperation" of the men
tioned EventHandler.
Scope OWL
Description Checks Work Center views for its property AccessContextCode as it must not be
empty if the AuthorizationClassificationCode is "ApplicationContainer".
Type VIOLATION
Solution Fill the property AccessContextCode with a suitable value. If no value applies, then fill
with NONE.
Scope WCVIEW
Property accessCheckMode is set to VIOLATION Correct the listed access controlled ob
'PrivilegedExceptAccessControlledBu ject.
sinessObjects', but referenced Busines
sObject '...' is not existing in backend
Property accessCheckMode is set to VIOLATION Add at least one access controlled ob
'PrivilegedExceptAccessControlledBu ject for which the extended authoriza
sinessObjects', but no AccessContol tion check flag is not set
ledBusinessObject was specified
Type VIOLATION
Solution Correct ComponentId in AssignedObject Editor. You can find the editor under
Scope WCVIEW
Description Checks if TextPoolEntry elements with a text length greater equal 255 characters as
sign their 'textCategory' attribute with the value YTXT.
Messages ● The length of the text of text pool entry for language "..." with uuid '...' is '...'
(greater 120) although the text is defined with text category 'XTXT'.
● The length of the text of text pool entry for language "..." with uuid '...' is '...'
(greater 120) although the text is defined with text category 'XBLI'.
● The length of the text of text pool entry for language "..." with uuid '...' is '...'
(greater 120) although the text is defined with text category 'XLOG'.
● The length of the text of text pool entry for language "..." with uuid '...' is '...'
(greater 120) although the text is defined with text category 'XMSG'.
Type VIOLATION
Scope OWL, FS, OIF, QA, GAF, EC, MD, OVS, WCVIEW, PTP, QV, TI, QC, OCM, TT, OfflineQuery
Type VIOLATION
Solution Fill the property CSN component at the Component level property of the UI Compo
nent.
Messages ● EventHandler '...' defines an ExecuteDefaultSet operation for a default set named
'...', which is defined multiple times.
● EventHandler '...' defines an ExecuteDefaultSet operation for a not defined de
fault set named '...'.
Type VIOLATION
Solution Define missing default set or choose an existing default set. If a default set is defined
multiple times, then rename to remove duplicates.
Scope OWL, FS, QA, OIF, WCF, GAF, WCVIEW, EC, MD, OVS, TI, QC, QV
Description Checks if DropDownListBoxes for PostalCodes have set the property 'SwitchToInpu
tOnEmptyCodes' to 'True'.
Type VIOLATION
Description Checks if binding of DataField in List should be relative to the association to which its
parent is bound.
Messages Binding for DataField '...' is wrong. The binding should be relative to the association to
which its parent is bound.
Type VIOLATION
Solution Bind DataFields within a DataList relative to the association to which DataList is
bound.
Scope OWL, FS, QA, OIF, GAF, EC, OVS, TI, MD, QC, OCM
Description
Validates if the parent and child association are bound correctly in the hierarchical extension for the given
DataList:
● If the child association is not bound to a recursive association or not bound at all, then the hierarchical list
does not work during runtime.
● If the parent association is not bound to a recursive association or not bound at all, although it's referenced
as targetList of the locate list operation, then the hierarchical list does not work during runtime.
Binding of Children Association in the VIOLATION Bind the children association in this hi
Hierarchical Extension for the DataList erarchical extension for the given data
'...' is mandatory list.
Children Association in the Hierarchical VIOLATION Bind the parent association in the hier
Extension for the DataList '...' shall be archical extension for the given datalist.
bound to a recursive association
Parent Association in the Hierarchical VIOLATION Bind the parent association in the hier
Extension for the DataList '...' shall be archical extension for the given datalist
bound, since it's referenced as target to a self-recursive association (single
List of the locate list operation '...' for association - no chain - source and tar
the event handler '...' get is the same BO/ECO node)
Parent Association in the Hierarchical VIOLATION Bind the children association in the hi
Extension for the DataList '...' shall be erarchical extension for the given data
bound to a recursive association, since list to a self-recursive association (sin
it's referenced as targetList of the lo gle association - no chain - source and
cate list operation '...' for the event han target is the same BO/ECO node)
dler '...'
Scope
OWL, FS, QA, OIF, WCF, GAF, WCVIEW, EC, MD, OVS, TI, QC
Description
Messages
Message Type
Solution
For the violation reported, correct binding of the mentioned entity. The mentioned entity can be identified by
clicking on the violation and look at the path information displayed at the bottom in the Check Results View.
Scope
OWL, FS, QA, OIF, GAF, EC, OVS, PTP, QV, TI, MD, QC, OQM
Checks whether the event In the EventHandler <eventHandler VIOLATION Assign an event handler to event
handler of type FireEven Name> no EventHandler configured handler of type FireEventHandler.
tHandler has an event han for 'FireEventHandler'
dler assigned to it.
Checks whether the event In the EventHandler <eventHandler VIOLATION Assign a ModalDialog to the event
handler of type ShowModal Name> ModalDialog not configured handler of type ShowModalDia
Dialog has a Modal Dialog as for 'ShowModalDialog' log.
signed to it.
Check if the event handler is → DataOperation <dataOperation VIOLATION → Assign the source and target
of type DataOperation and Name> EventHandler <eventHan expression if the operation is of
the operation type is assign, dler> does not have source and tar type assign or assignText.
assignText or assignConst get expression; OR
→ Assign the target expression if
ant, then it should have
→ DataOperation <dataOperation an operation is of type clear or
source and target expression.
Name> EventHandler <eventHan assignConstant.
If the operation type is clear
dler> does not have target expres
then it should have target ex
sion
pression.
Checks whether an event FireOutport named <firePlug- VIOLATION Define OutPort for the FireOut
handler with a FirePlug ele Name> of EventHandler named port of the referenced EventHan
ment defines the required <eventHandlerNames> does not dler.
outPlug attribute. define OutPort
Checks whether data field The target expression <fireEven- VIOLATION Data operation in event handler
used in Target Expression in tHandlertargetExpression> used in cannot have a value in target ex
an Event Handler - Data Op highlighted Event Handler is not pression which is not present in
eration is present in the Data available in the data model the data model of that UI compo
Model or not. nent. This means the data ele
ment path you have used in tar
get expression is either deleted
from the Data Model or it never
exists. You need to either add
such data element in the Data
Model or you need to change the
target expression.
Scope
OWL, FS, QA, OIF, GAF, EC, OVS, TI, MD, QC, OCM, PTP, QV, TT
Type VIOLATION
Solution Ensure that the OVS input field is bound to a datafield which has binding in the data
model.
Scope OWL, FS, QA, OIF, GAF, EC, OVS, TI, MD, QC, QV
Type VIOLATION
Solution Ensure that the query BO node and BO node bound to query’s result list binding are
the same.
Scope OWL, FS, QA, OIF, GAF, EC, OVS, PTP, QV, TI, MD, QC, OQM
Type VIOLATION
Description Checks if the mandatory attributes (Name, Address, and ThingTypeID) of Map Pane
are configured or not.
Type VIOLATION
Solution The mentioned properties are mandatory and should have relative binding with re
spect to the Binding property of Map Pane.
Scope OWL, FS, QA, OIF, GAF, EC, OVS, TI, MD, QC, QV, MashUp, MashupRegistry
Description Checks Inports having OnFire events that are of BORead operation type, for each of
these onFire event handlers, it performs a BO operation parameter consistency
check.
Type VIOLATION
Solution Ensure that the BO operation parameter is unbound in the data model.
Scope OWL, FS, QA, OIF, GAF, EC, OVS, TI, MD, QC, QV
Type VIOLATION
Solution For the violation reported, entity can be identified by clicking on the violation and look
at the path information displayed at the bottom in the Check Results View.
Scope OWL, FS, QA, OIF, GAF, EC, OVS, TI, MD, QC, QV, PTP
Description Checks whether configured AutoSuggest will work for OVS or not.
Type VIOLATION
Solution For AutoSuggest to work in OVS, configure the SearchTextBinding parameter for the
FindFormPane.
Scope OWL, FS, QA, OIF, GAF, EC, OVS, TI, MD, QC, QV
Description Checks whether attribute High Value or Low Value of Query Parameters of DefaultSet
is blank or null.
Messages Attribute ‘High Value’ or ‘Low Value’ of Query Parameters of default set <default set
name> is blank.
Type VIOLATION
Scope OWL, FS, QA, OIF, GAF, EC, OVS, PTP, TI, MD, QC, QV, OQM
Type VIOLATION
Solution Go to Properties Explorer, and under the "Data Information" category change the
"value" property and bind it to desired backend node.
Scope OWL, FS, QA, OIF, GAF, EC, OVS, TI, MD, QC, QV
Description Checks if List Column with an Explanation has a Label set or not.
Messages Label name cannot be empty if Explanation is given for ListColumn with ID <Column
ID>
Type VIOLATION
Solution If the Explanation property under the category "Text Information" has a value, the La
bel property cannot be empty/null.
Go to Properties Explorer, and under the "Text Information" category change the value
of "Label" property and bind it to some non-empty value.
Scope OWL, FS, OIF, QA, GAF, EC, MD, OVS, QV, TI, QC
Description Checks if File Upload Control has data structure CCTS type as BinaryObject.
Messages Erroneous CCTS type detected for file upload control <fileUploadControlName>
Type VIOLATION
Solution Ensure that the CCTS type for the File Upload structure in the data model is binary.
Scope OWL, FS, OIF, QA, GAF, EC, MD, OVS, QV, TI, QC
Description
Checks whether specified CIP class exists and whether it implements the proper message mapping interfaces.
1. Checks whether UI model contains any message and message mapping content
2. Checks whether UseUIControler Flag is set --> If not = Error case 1
3. Checks whether Message Mappings with mapping rule: Handler exist
4. Checks whether a CIP class is specified --> If not = Error case 2
5. Checks whether CIP class exist in backend system --> If not = Error case 3
6. Checks whether the named CIP class implements the necessary message mapping interface --> If not =
Error case 4
7. Checks whether CIP class does not contain a simple implementation skeleton for a break out method--> If
not = Error case 5
Inconsistence due to the usage of Message & VIOLATION Either set UseUIController to True (Placed in:
Message Mappings without UseUIController flag tab Designer --> Property Configuration) or
remove any message & message mapping
content (Placed in: tab Controller -> Mes
sages / Message Mappings).
No CIP class specified despite the usage of Mes VIOLATION Enter an existing CIP class into field "CIP
sage Mapping(s) with mapping rule: Handler ClassName" (Placed in: tab DataModel -> Se
lect Root element -> Property Design).
Chosen CIP class does not exist in the backend VIOLATION Check-in corresponding backend system that
system chosen CIP class to exist and if not, create it.
Chosen CIP class does not support Message VIOLATION Check that CIP class supports Message Map
Mapping interface (if_esf_msg_text_map ping interface (if_esf_msg_text_map
ping_callb) ping_callb) and if not open CIP class in back
end system and implement interface method
if_esf_msg_text_mapping_callb~map_mes
sages.
Chosen CIP class does not contain simple imple VIOLATION For usage of system message mapping break
mentation skeleton for the break out method out it is at least necessary to implement an
empty method body.
Scope
OWL, FS, OIF, QA, GAF, EC, MD, OVS, QV, TI, QC, TaskListView, WCVIEW, WCF
Description Checks if any DataField is used more than once in different BoQueryParameter-Ele
ments and different Queries.
Type VIOLATION
Scope OWL, FS, OIF, QA, GAF, EC, MD, OVS, QV, TI, QC, PTP, OQM
Description
● Checks if the query entity contains the 'queryPath' attribute and its value is null or empty.
Query <QueryName> does not contain query VIOLATION Add the valid queryPath attribute to the
Path attribute query mentioned.
Query <QueryName> not bound to a query path VIOLATION Fill the correct value for queryPath attribute.
Query <QueryName> does not contain result VIOLATION Add the valid resultListBinding attribute to
ListBinding attribute the query mentioned.
Query <QueryName> not bound to a resultList VIOLATION Fill the correct value for resultListBinding at
Binding tribute.
Query <QueryName> has an invalid binding for VIOLATION Correct value for resultListBinding attribute.
resultListBinding
Query <QueryName> has to be bound to a query VIOLATION Bind the query to a query under the given as
under the association <AssociationName> sociation.
Scope
OWL, FS, OIF, QA, GAF, EC, MD, OVS, QV, TI, QC, PTP, OQM
Description Checks if the query parameters of a query are bound to a data field or has a constant
value.
Type VIOLATION
Scope OWL, FS, OIF, QA, GAF, EC, MD, OVS, QV, TI, QC, PTP, OQM
Description Checks whether data fields used in query parameter value should not be bound to BO
Model.
Messages Query parameter value <parameter bind value> should not be bound in Data Model
Type VIOLATION
Solution Use only those data field binding in query parameter values which are not bound to
BO node in BO browser. If a query parameter data field is bound to a BO node then it
may lead to runtime backend dumps.
Scope OWL, FS, OIF, QA, GAF, EC, MD, OVS, QV, TI, QC, PTP, OQM
Description Checks whether BO Operation has valid binding. It checks if the event handler is of
type 'BO Operation' and operation type is 'Read', then the parameters of the BO Oper
ation should have binding.
Type VIOLATION
Scope OWL, FS, OIF, QA, GAF, EC, MD, OVS, QV, TI, QC, PTP
Description Checks whether following attributes are maintained for following Codelists:
Type VIOLATION
Solution Bind field if not bound and run Metadata Update in case of Static and Dynamic Codel
ist.
Scope OWL, FS, OIF, QA, GAF, EC, MD, OVS, QV, TI, QC, TT
Description Checks if any list column has "Sort" option set and has a dedicated field binding then
sorting is not possible.
Type VIOLATION
● List Column has four values for Sort Option. The value can be set to noSort.
● List Column has three values for presentation mode. The value can be set to
IDOnly.
● Dedicated Field has a boolean attribute, Is Dedicated Field. The value can be set
to False.
Scope OWL, FS, OIF, QA, GAF, EC, MD, OVS, QV, TI, QC
Description Checks the Ruby Scripts in the UIComponent for any inconsistency which might
prevent successful conversion to Javascript. Correct javascript conversion is es
sential for consumption by Runtime client.
Solution (1) Correct the inconsistency of the script as mentioned in the message .
(2) Add script or remove script operation in case it's not needed.
Scope OWL, FS, OIF, QA, GAF, EC, MD, OVS, QV, TI, QC, WCF, TT
12 Do not use Multi-line comments, they are not VIOLATION /* comments like this is not
supported allowed */
Description Checks if there is a valid target list assignemnt, for all Event Handlers of type List.
Type VIOLATION
Messages Inconsistence in a mapping of rule "Replace" due to missing target message informa
tion.
Type VIOLATION
Description Checks the consistency of an Event Handler of the controller operation type.
Type VIOLATION
Solution Enter details in the Action Instance Binding field. This filed is mandatory.
Type VIOLATION
Solution If there are two or more contained AdvancedListPanes in one UI, you must model for
each AdvancedListPane a separate DataField containing the name of the current De
faultSet, which is bound in the Active DefaultSet Binding for each AdvancedListPane
(So, for each Query/DefaultSet-based AdvancedListPane an Active DefaultSet Bind
ing is needed, which is bound to a separate DataField, which returns the current De
faultSet name).
This is required because by a missing Active DefaultSet Binding, a binding to one Da
taField will automatically created. In case of 2 or more contained AdvancedListPanes
in one UI with missing Active Defaultset Binding, this implicit created defaultsetbind
ing-DataField will be used than concurrently by all these defaultset-based ALPPs with
missing Active Defaultset Binding.
Scope OWL, FS, OIF, QA, WCF, GAF, WCVIEW, EC, MD, TI, OVS
Description Checks if any anchor used as a Reference Anchor has been deleted from UI compo
nent.
Type VIOLATION
Scope OWL, FS, OIF, QA, WCF, GAF, WCVIEW, EC, MD, OVS, TaskListView
Description Checks if advanced list has more than one column selected as leading image.
Message Advanced list Pane <advanced list pane ID> has more than one column selected as
Leading Image.
Type VIOLATION
Solution For any list at column level there is a property to set the column as Leading Image.
This property can be set to true only for one column for every advanced list.
So if more than one column is set as leading image, set the value of the property
isLeadingImage to false for all the columns except the one that is the leading image
for that list.
Description Checks if the data field used as Query Parameter of Offline Query Model (OQM) has
Offline binding (OCM Binding) or not.
Message OCM Binding is missing for Query Parameter DataField <data field Name>.
Type VIOLATION
Solution It is mandatory to have all the data fields which are used as Query Parameters in OQM
to have OCM binding. This is required for fetching Offline Queries in PDI ABSL.
Description Checks if the TextEdit or the StaticText controls in OWL component have
SupportFormattingText property set to True.
Message <Control Name> with ID <Control ID> has attribute SupportFormattingTextset to true.
Type VIOLATION
Solution The TextEdit or the StaticText controls in an OWL Component cannot have the
SupportFormattingText property set to True. Setting this property to true converts
these controls to Rich Text Editor. This dumps on UI as formatting is not supported for
Rich Text Editor. Change this property to false to solve the error. To do this, go to
Properties Explorer and under the Behavior category change the value of
SupportFormattingText property to False.
Description If the property EnableMassCopy-Paste for a particular list is set to true, then that list
should not be:
● Hierarchical
● Unbound
● Used in Query ResultListBinding
Messages ● The query <Query name> cannot have the same result list binding as that of list
asEnableMassCopy-Paste property is set to true.
● List <List name> with ID <List ID> cannot be a hierarchical list as
EnableMassCopy-Paste property is set to true.
● List <List name> with ID <List ID> cannot be unbound as EnableMassCopy-Paste
property is set to true.
Type VIOLATION
Scope OWL, FS, OIF, QA, GAF, EC, MD, OVS, QV, TI, QC
This document gives you an overview of the steps involved in modeling different types of floorplans in the
studio using the user interface designer.
In the studio, you can generate screens for the business objects in your solution.
For more information, see Generate Screens for a Business Object [page 429].
You can learn how to build user interfaces according to this style guide.
You can create a fact sheet to display a read only overview of an object.
An object instance floorplan (OIF) is used to create and edit business object data or trigger actions on a
business object. It is opened using object-based navigation. It can be used to create new business object data.
OIFs are similar to quick activities except that an OIF has a set of tabs such as General and Line Items.
You can create a list pane that is always embedded in a work center view. The OWL contains business objects
such as purchase orders or opportunities. You can, for example, search for, display, and edit business objects
as well as trigger follow-on processes.
You can create an object value selector (OVS) dialog box as a reusable component. It can be called from any
OVS control.
An OVS helps you select one item from a table of business object instances.
You can create a guided activity floorplan to simplify complex tasks. This floorplan helps you navigate step by
step through a given process.
You can model a work center view to hold a list of related floorplans. The work center view is a component that
can be used across different work center floorplans that allow easy navigation to different sections from within
the specified floorplan.
You can model a work center floorplan to display the various work center views.
You can create a port type package in the studio and modify its attributes in the user interface designer. A port
type package is a component that hosts one or more port types. A port type is a blueprint for an inport or an
outport. Navigation between components that have inports and outports within the same port type package
can be facilitated without any mapping effort.
You can model a modal dialog to create a dialog box that is triggered by an event action. You can model a
reusable modal dialog and then bind it to a floorplan, or you can model a modal dialog that is specific to a
floorplan and that can be called by an event handler.
● Inport and outport navigation between the parent component and the embedded component.
● Bindings to reference data from the parent component.
● Configuration to let the parent component influence the behavior of an embedded component.
You can create a business configuration view (BC view) for a business configuration set (BC set) to allow
administrators to add new values during fine-tuning or to delete the values of a BC set. You create the view in
the studio and you model the view in the UI designer.
Note
You can only create a BC view for a business configuration set (BC set) that was created using a custom
business configuration object (BCO). You cannot create a BC view for an SAP BCO.
After you have created any of the floorplans listed above, you have to save and activate the floorplans.
9.3.2 Tasks
Overview
You can create a fact sheet to display a read only overview of an object. It displays the object properties, can
have different views, and can contain links for navigating to related objects.
For example, an Account Overview fact sheet can have the sections Accounts, Sales Data and Relationships
If you create an Employee fact sheet, employees can view their data but cannot change any information.
Fact Sheet
Prerequisites
Procedure
Note
If required, you can change the component type from Fact Sheet (FS) to Quick Activity
(QA) in the Properties Explorer, under Component Info-Component Type.
3. Model Elements
Overview
You can create a Quick Activity Floorplan (QAF) to display an overview of a business object. You can further
view all the details of the business object in the associated object instance floorplan.
Prerequisites
Note
If this floorplan allows you to either create or edit details, use a calculation script to dynamically
render the title.
For more information, see Define Dynamic Behavior of a Field [page 732] and Write a Script [page
746].
Note
For BO actions, use the operation type BOAction and bind the action to the BO action. The
fields Action Type and Instance Binding will be automatically updated as per the BO action
property.
3. Drag the required controls from the Toolbox to the quick activity.
4. In the Data Model tab, bind each of the data model elements to a business object element.
For more information, see Bind Data Elements to Business Object Elements [page 731].
5. Create an OBN inport to receive the navigation key from the source floorplan, in order to retrieve
data from the target floorplan:
1. In the Controller tab, right-click on Inports and choose Add Inport.
Overview
An object instance floorplan (OIF) is used to create and edit business object data or trigger actions on a
business object. It is opened using object-based navigation. It can be used to create new business object data.
OIFs are similar to quick activities except that an OIF has a set of tabs such as General and Line Items.
Procedure
1. Create an OIF
1. In the Solution Explorer, expand the solution to display the business object.
2. Right-click on the business object and select Create Screens.
3. In the Create New Screen dialog box, do the following:
1. In the Screen Name field, enter a name for the object instance floorplan.
Note
The name of the tab is stored in run time in the data model field /Root/UIState/
ViewSwitchSelectedItem. You can use it in dynamic data or property handling for a calculation rule.
Overview
You can create a list pane that is always embedded in a work center view. The OWL contains business objects
such as purchase orders or opportunities. You can, for example, search for, display, and edit business objects
as well as trigger follow-on processes.
Prerequisites
For more information, see Model an Object Instance Floorplan [page 702] or Model a Fact Sheet [page 697].
1. In the Solution Explorer, expand the solution to display the business object.
2. Right-click on the business object and select Create Screens.
3. In the Create New Screen dialog box, do the following:
○ In the Screen Name field, enter a name for the object work list.
○ Under FloorplanType select Object Work List (OWL).
○ Click OK.
A new object work list is created and displayed in the Solution Explorer under the business object.
4. Double-click the new OWL.
The OWL opens in the user interface designer.
1. Add columns in the OWL by dragging and dropping Controls from the Toolbox.
2. Bind each of the fields to the required business object element.
For more information, see Bind Data Elements to Business Object Elements [page 731].
On the Designer tab, you can see that the following fields are available by default:
1. In the Controller tab there is a default query. You can add more queries and default sets using the context
menu.
2. In the Designer tab, assign a title to the default set that is displayed in the Show drop down list .
3. In the Controller tab, bind the query to the controller’s query using the elements structure.
4. Add and bind the query parameters from the controller to Search Parameter Structure fields.
5. Find the eventhandler, outport, and OBN that were created while configuring the Edit button.
6. To configure the outport, add the parameters Key List and Key and bind the parameter to an unbound data
list and data field that acts as a placeholder for the key.
7. Save and activate your changes.
Related Information
Overview
You can create an object value selector (OVS) dialog box as a reusable component for a custom business
object and for an SAP business object. It can be called from any OVS control.
Prerequisite
You have opened a solution. If you want to add the object value selector dialog box to a custom floorplan, you
need to have created a business object.
1. Right-click the business object and select Create 1. Right-click the solution and select Add New Item.
Screens. The Add New Item dialog opens.
2. In the Create Screens dialog box, do the following: 2. Select SAP Screens Object Value Selector
1. In the Screen Name field, enter a name for the
(OVS) and click Add.
OVS dialog box.
The Select Business Object dialog opens.
2. Select the required option from the Supported
3. Select an SAP business object or a custom business
Devices value help.
object or search for a business object.
3. Under Screen Type, select Object Value Selector
4. Optional: Change the default name.
(OVS).
5. Click OK.
3. In the Select Business Object Elements for OVS dialog
A new OVS dialog box is created and displayed in the
box, select the business object element(s) and click
Solution Explorer under the business object ([Name
OK.
A new OVS dialog box is created and displayed in the of the OVS].OVS.uicomponent, ).
Solution Explorer under the business object ([Name
of the business
object]_OVS.OVS.uicomponent, ).
After you have created an OVS dialog box, you can create an OVS control. For more information, see Configure
an Object Value Selector [page 749].
Overview
You can create a guided activity floorplan to simplify complex tasks. This floorplan helps you navigate step by
step through a given process.
Procedure
Prerequisites
Procedure
Property Description
Configuration — Support Area Code Used in ITSAM, for example to propose a CSN compo
nent for an incident
RBAM Data — Authorization Classification Code Classifies the RBAM start authorization behavior. For
normal views, the entry should always be
ApplicationContainer.
2. Embed an OWL.
1. Drag and drop the OWL from the Configuration Explorer to the Designer tab.
2. Click Bind.
3. In the Embedded component binding dialog box, bind the OWL to the work center view.
For more information, see Model an Embedded Component [page 716].
Note
5. If you want to define the dependency of the assigned objects, define the scope rules.
6. If there are a set of navigation targets that belong to many views of a work center, create an Include
View and assign the Include View as an assigned object to this view.
An Include View is built like any other view with a few exceptions like:
1. You cannot include Embedded Components.
2. The View sub-type has to be Include View.
3. An Include View cannot have another Include View.
4. Access context cannot be maintained for Include View.
5. An assigned object of type Include View does not have scope rules.
7. Click OK.
4. Specify the common tasks and related links specific to this view.
1. In the Properties Explorer, select WorkCenterView.
2. Under Links — CommonTasks, click ....
3. In the NavigationListItem Collection Editor, click Add.
4. Under Data — Link, click ... .
5. In the Model Navigation … dialog box, select an existing OBN navigation or create a simple navigation.
For example, you can select an existing OBN navigation for the common task Create a Sales Order.
6. You can also create the required event handlers for the common tasks.
For more information, see Create an Event Handler [page 747].
7. If you want a list of related links in the work center view, repeat the above steps under Links — Related
Links.
5. Define the enterprise search objects.
1. In the Properties Explorer, select WorkCenterView.
2. Under RBAM Data — Enterprise Search Objects, click ....
3. In the Enterprise Search Objects Editor, assign the required enterprise search controller objects to the
view and click OK.
The users assigned to this view are authorized to use Enterprise Search and the assigned objects are
available in the drop down list of available enterprise searches.
6. Define the external applications.
1. Under RBAM Data — External Application Data, click ... .
Overview
You can model a work center floorplan to display the various work center views.
Prerequisites
Procedure
Property Description
Overview
You can create a port type package in the studio and modify its attributes in the user interface designer.
A port type package is a component that hosts one or more port types. A port type is a blueprint for an inport
or an outport. Navigation between components that have inports and outports within the same port type
package can be facilitated without any mapping effort.
Procedure
1. In the Solution Explorer, right-click your project and select Add New Item .
2. The Add New Item dialog box opens.
3. Select Port Type Package.
4. In the Name field, enter a name for the port type package.
5. Click Add.
The port type package is added to your project.
6. Double-click the port type package.
The port type package opens in the user interface designer.
7. Create the required structure, as follows:
○ To add a port type, select the root node and then click +.
○ To add a parameter, right click on the port type and choose Add Parameter.
○ To add a List Parameter, right click on the port type and choose Add List Parameter.
You can add parameters under a list parameter.
○ To set a parameter as a key parameter, right click on the parameter and choose Set as Key.
8. To rename any entity in the port type package, right click on the entity and choose Rename. Type the
required name and press Enter.
9. Save and activate your changes.
Overview
You can model a modal dialog to create a dialog box that is triggered by an event action. You can model a
reusable modal dialog and then bind it to a floorplan, or you can model a modal dialog that is specific to a
floorplan and that can be called by an event handler.
Prerequisites
1. In the Solution Explorer, right-click your solution and select Add New Item .
The Add New Item dialog box opens.
2. Select Modal Dialog Floorplan and click Add.
The modal dialog is added to your project.
3. Double-click the modal dialog.
The modal dialog opens in the user interface designer.
4. Select the identification region.
5. In the Properties Explorer, under Misc – Window Title, click the arrow button.
6. In the Dependent Property Editor, enter the title and click OK.
7. On the Designer tab, drag the required controls from the Toolbox to the panes.
8. On the Data Model tab, bind each of the fields to the required business object element.
For more information, see Bind Data Elements to Business Object Elements [page 731].
9. Create the required event handlers.
For more information, see Create an Event Handler [page 747].
10. Create the bindings in the modal dialog as follows:
1. On the Controller tab, right-click Bindings and add a binding.
2. Select a field or a structure for the binding.
3. Enter a Binding Name.
4. Click Bind.
11. In the parent component, do the following:
1. On the Controller tab, right click Modal Dialog and add a modal dialog.
2. In the Repository dialog box, navigate to the modal dialog that you have created.
3. Click OK.
The modal dialog is added to the parent component.
12. On the Controller tab of the parent component, click the new modal dialog and then under Binding
Configuration do the following:
1. In the Parent data model, select the field for the binding.
2. In the Controller Interface for Embedded Component, select the binding.
3. Click Bind.
The modal dialog is now bound to the parent component. This facilitates the synchronous passage of
data from the parent component to the modal dialog.
13. Save and activate your changes.
Procedure
1. In the Solution Explorer, double-click the floorplan where you want to add a new modal dialog.
The floorplan opens in the user interface designer.
2. From the Toolbox – Panes, drag and drop a ModalDialog onto the Designer tab.
3. In the new modal dialog, do the following:
1. In the Properties Explorer, under Text Information – Title, click the arrow button.
● Inport and outport navigation between the parent component and the embedded component.
● Bindings to reference data from the parent component.
● Configuration to let the parent component influence the behavior of an embedded component.
● Tight coupling: This is handled by referencing a parent data model either explicitly by creating bindings in
the embedded component interface, or implicitly by node reference binding. For example, tight coupling is
used in custom panes, address maintenance, and business cards.
● Loose coupling: Embedded components are triggered in an inport context mapping, for example, by
passing an ID. An embedded component can pass back parameters to a parent component using outport
context mapping. For example, mashups and information snippets displayed in a fact sheet. If an
embedded component is loosely coupled, it should be self-contained and the data binding and controller
logic needs to be defined in the embedded component.
You can delete the embedded component when your solution is in maintenance mode. For more information,
see Maintenance Mode [page 185].
Procedure
Note
Note
A data model entity is created for each configuration parameter, structure and parameter list.
You can configure their properties in the Properties Explorer.
Alternatives
Result
You should note that once an embedded component is used in a parent component, any interface changes may
be incompatible.
This document gives you an idea about the various modifications and enhancements you can make to the
floorplans created by you using the user interface designer.
For more information about creating floorplans, see the Floorplan Modeling Quick Guide [page 694].
You can learn how to build user interfaces according to this style guide.
Transformations
A business object (BO) is modeled generically, and not for a specific user. The BO structure and node
attributes, therefore do not always fit the needs of a specific user interface.
A transformation allows the conversion of a BO node attribute into a form that can be used on the user
interface.
Fields
You can bind the data elements you have added to your floorplans, with the business object elements in the
backend, so that data can be derived from the backend when a particular data element is used at runtime.
A dynamic expression is used to define the behavior of a field within a specific context. You can for example,
define the visibility of a field or a group of fields depending on the content of another field on the screen.
Buttons
Configure a Button
You can add any required button on the application toolbar. The Cancel and Close buttons are configured in the
system. If you add these buttons, the system automatically associates the event handler, to close the floorplan.
If you want to any other button, you need to write the required event handler. You can also configure a button to
open a floorplan by configuring an object based navigation between floorplans.
You can create a Preview button and link it to a print form. Clicking the Preview button allows you to preview the
form as a PDF file and provides options to either save or print the form.
For more information, see Create a Preview Button for a Print Form [page 734].
When you create a solution in a language other than English, you can translate the labels of mandatory buttons
in the UI designer.
Screen Sections
You can create a preview pane to preview information about a business object listed in a table.
You can change the text of any component visible on the user interface.
You can create and configure a query to view specific instances of a business object in a floorplan.
Tables
You can use object-based navigation (OBN) to navigate between floorplans and pass parameters between
floorplans.
You can use object-based navigation (OBN) to navigate between floorplans and pass parameters between
floorplans.
External Navigation
You can add a link that opens an external URL in your floorplans.
Transformations
You can add a dedicated field to a data model and use a field transformation to calculate the value of this
dedicated field from existing business object (BO) node attributes.
You can use a transformation to calculate the value of a default set parameter .
Additional Tasks
Write a Script
You can write front-end scripts while creating an event handler and while defining a calculation rule.
You can create an event handler to respond to user actions on the screen.
You can create action forms to use the action parameters of a business object (BO) node or an enhanced
controller object (ECO) node. Action forms are always bound to a BO/ECO node’s ESI action that has
parameters. The binding is done within the BO Action operation of an event handler. Action forms belong to a
user interface component and cannot be reused in other user interface components.
You can configure an Object Value Selector (OVS) control to open an OVS dialog box.
You need to assign standard report list views, for example the List and Gallery standard reports list views, to a
work center in the user interface designer.
You can define anchors for your floorplans to allow end users to make changes to the floorplans provided by
you.
After you have created any of the changes listed above, you have to save and activate the changes.
9.4.2.1 Transformations
Overview
A business object (BO) is modeled generically, and not for a specific user. The BO structure and node
attributes, therefore do not always fit the needs of a specific user interface.
For example, in the Purchasing contracts BO , a specific value needs to be entered to ensure the unlimited
validity of contracts. So a date like 31/12/9999 is used for this purpose. On the user interface however, a
checkbox to indicate unlimited validity is needed and not a set date.
A transformation allows the conversion of a BO node attribute into a form that can be used on the user
interface.
You can use transformation rules to calculate the value of fields or parameters in the user interface data model
that do not have direct counterparts within the BO node structure.
● Period-to-Indicator
A transformation has one or many inbound parameters. The input for a transformation can either be a
constant value, a binding against a field of a BO node structure, or an already existing data field from the user
interface. The resulting outbound value is assigned to a target field or a parameter inside the user interface
data model.
The type of transformation rule used depends on whether the value being generated is for use in a dedicated
field or in a default set parameter.
Related Information
Overview
Operation types in the user interface designer allow you to assign an activity to an event handler.
When creating an event handler [page 747], you can select from one or more operation types.
BOAction
The BOAction can be used to invoke a special function exposed by an ESR action.
BOAction parameters can be bound to data fields in the data model to pass values to parameters. To enter
values for the action parameters, you can configure an action form in the BOAction. Add the controls to the
You can configure the following additional parameters for the BOAction:
● Instance Binding is the binding of an action against the node instance(s). It is required for list-binding.
● Save Before Execution indicates whether or not a save before the execution of the action is required, for
example for one-click actions.
● Save After Execution indicates whether or not an immediate save is required.
● Continue on Reject allows the execution to continue even when the BOAction fails. If this flag is not
checked, the event handler is stopped.
● Special Reference Action supports copy and paste for lists. The list operation CutCopy stores the selected
instances in the buffer. To use this selection for the next reference action, pasting in this case, you can
model a special reference BOAction by checking this flag. Then, the selected instances in the first
operation, CutCopy in this case, are passed as parameters for this second reference action.
BOOperation
The BOOperation is an implicit ESI-Action. This operation is supported by all business objects even though it is
not explicitly modeled in ESR as an action. It is used to perform Read, Create, DelayedCreate and ValueHelp.
You can configure the following additional parameters for the BOOperation:
● Set Suppress Messages to true to suppress all messages invoked by triggering this operation in the
backend. Otherwise, all ESI and backend messages will be displayed.
● Select Namespace and Select BO describe the BO on which the operation is performed.
● BO Operation parameters are defined by the user and not derived from ESR metadata.
For example, for a read operation, you need to pass the ID value to indicate with which ID you want to
invoke the read.
There are the following parameter types:
○ the keyNavigation parameter is passed with special metadata, here the key flag and GDT metadata.
○ With nodeID, the value of the node id is passed
○ The alternativeKey is modeled for some BOs as number ranges, for example. In the backend, they need
special treatment before a read/retrieve can be done.
The value of the alternative key node is converted to node ID. The type of alternative key is indicated by
the data field bound to the path attribute. This value is used at runtime to identify the type.
CheckAndDetermine
The CheckAndDetermine offers a generic function for checking BOs, without the need for an explicit, modeled
BO action. A check carried out with this operation triggers the validation of a whole BO instance, or a specific
node with subnode tree. Error or warning messages are sent to the client if there are any inconsistencies.
This operation is generally used for Guided Activity floorplans, but may also be used in other applications
where you want to implement a check button.
Condition is used as a branch control to call different operations based on a data model value or constant. You
can specify a default option, as well as configure multiple select options with different compare types and
values; and nested condition operations.
ContainerExit
ContainerExit is an action defined on the exitClass and should only be used in special situations, namely,
wherever a data structure has an exit class assigned.
You can configure any one of the actions in the action field, or create new ones manually. If you use an existing
action, the system automatically sets the exit class property of the structure you have selected as path.
DataOperation
● Assign the value of a text pool entry to the target data field with assignText.
● Assign the value of the source data field to the target data field with assign.
● Assign a constant value to the target data field with assignConstant.
● Clear the value of the target data field with clear.
DocumentOutput
DocumentOutput configures Microsoft Excel and Microsoft Word downloads. The group ID is used by the Excel/
Word export to identify the assigned template group.
ExecuteDefaultSet
ExecuteDefaultSet executes an ESI query. Set Blocking to block access to the UI during query execution.
FireEventHandler
FireOutport is used to fire and pass data to the outport. Set TakeOverMessagesToNewWindow to carry forward
messages from the previous save to a new window in Save and New scenarios.
List
List triggers operations related to the data list such as Add Row and Remove Row. Set Blocking to block access
to the UI during the operation.
MessageBox
MessageBox configures decision pop-ups, for example Are you sure you want to delete? A deletion
template is available, as well as other parameters to customize your configuration.
Use List Binding to enable plural text and list count for multi-selection.
OpenLink
OpenLink opens a link in an external browser. The link value can be bound to a data field and URL.
● Default = empty
● Status = yes
● Toolbar = yes
● Menubar = yes
● Resizable = yes
Set Process Protocol to explicitly switch off the protocol handling for the OpenLink operation. In this way, you
ensure that file:// or https:// remains in the URL.
Script allows you to define front-end script for dynamic expressions. Set Blocking to block access to the UI
during script execution.
In the Scope Fields section, you can configure data fields that trigger script execution. When a field value
changes, the script is executed.
ShowModalDialog allows you to display an in-component modal dialog as pop-up To configure it, drag and drop
Modal Dialog from the toolbox to the user interface designer or create one from the selection proposal in this
operation.
SynchDataContainer
SynchDataContainer forces a backend round trip and flushs the data container at runtime. You can use this
operation instead of, for example, provoking a round trip by flagging a dummy field with requiresRoundTrip and
setting a value in this field.
When the Finalize flag is set, DoPostProcessing is invoked which results in the evaluation and sending of
messages.
ValueHelp
● Set the Use Query flag to trigger the query configured as query attribute.
● Query Name is the query in the OVS to be called.
● For Operation Type, Get is for retrieving DefaultSets, and Set for passing to the parent component.
● Use Suppress Messages to suppress messages coming in the value help round trip.
● Parent Component Id and Parent Path are the parent component node information for the
RetrieveValueSet call.
● Select Namespace and Select BO Model describe the OVS controller name.
WindowAction
For Success Notification Port, configure the outport to be fired on save. The outport and inport at the source
should be configured with the same local event name. In this way, when a quick activity is opened from a work
list, then saved and closed, the system informs the port that the save is successful and the work list is
refreshed.
Set Continue on Reject to continue with the execution even if the window action fails.
Controller should be used to create Actions on BO in case of new Controller Infrastructure. From a functional
perspective a controller acts like a BO Action in a new controller infrastructure.
RestartClient
RestartClient clears details from the DataModel and reloads the screen from the backend. In this way, if you
open a screen, make a change, then cancel the operation, the screen reverts to its state before the edit
operation was performed. There is no configuration for this operation.
QCAfterSaveAction
QCAfterSaveAction is configured in the Quick Create (QC) component after a WindowAction operation. You can
configure the action type to open the Thing Inspector after the save operation, or open a new Quick Create
screen.
Overview
A message is the text shown at the bottom of the user interface (UI) during runtime. It presents the user with a
piece of information, an instruction, or a warning in a given situation. In SAP cloud solutions messages are sent
to the UI from the business object (BO) that the UI is based on. The messages are part of the infrastructure
delivered by SAP or can be part of a custom BO.
In some cases, the original messages of the BO that are shown during runtime do not fit the context of the UI.
For example, they have the wrong terminology or the terms used are not specific enough. In those cases, you
can exchange messages or change the behavior of messages on the UI by using the message mapping offered
by the UI designer. If the original message contains parameters you can also display a different message for
each individual parameter value.
You map messages only within the context of a specified UI and not across the system. This means, if a
message is shown in the context of two different UI models, you can map it for one UI model and this mapping
does not affect the message in any other UI model.
Prerequisites
Message mapping in the UI designer is only available for BOs that contain messages.
In the UI designer, message mapping is located on the Controller tab of those UI components that directly
communicate with the BO or the backend. On the Controller tab, the following sections deal with the messages
of a BO:
● Messages
In this section, the UI designer displays all messages associated with the BO that the currently selected UI
component is based on.
● Message Mappings
In this section, you can see the original messages associated with the BO and you can do the actual
mapping. For more information, see Map a Message [page 754].
In the UI designer, you can use the following rules to deal with messages:
● Replace
The original message is replaced by a new message. During runtime, the system displays the new message
on the UI instead of the original message.
● Ignore
The system ignores the original message and does not show it during runtime on the UI.
● Original
The system displays the original message during runtime.
● Aggregate
Any number of messages can be combined into one new message. The system displays this new message
on the UI during runtime instead of the original messages.
9.4.3 Tasks
Overview
You can bind the data elements you have added to your floorplans, with the business object (BO) elements in
the backend, so that data can be derived from the backend when a particular data element is used at runtime.
Procedure
Overview
A dynamic expression is used to define the behavior of a field within a specific context. You can for example,
define the visibility of a field or a group of fields depending on the content of another field on the screen.
Procedure
Note
To define the formula, you can use every field that is defined in the DataModel. The fields available in
the DataModel are listed under the collection pattern Invalidation Trigger.
Example
There are many discount types available in the system. If the user selects the Discount Type Christmas, you
want the Minimum Bill Amount field to be visible on the screen. This field is otherwise not visible if the user
selects any other discount type. In such a case, you can define a dynamic expression for the Minimum Bill
Amount field.
Overview
You can add any required button to the application toolbar of your floorplan. The Cancel and Close buttons are
configured in the system. If you add these buttons, the system automatically associates the event handler to
close the floorplan. If you want to add any other button, you need to create the required event handler. You can
also configure a button to open a floorplan by configuring an object-based navigation between floorplans.
Prerequisites
Procedure
Task Action
To add an application-specific button and configure it 1. Under Available list, select the required button or the
manually Application Specific button and then click the right ar
row button.
2. Under Events - OnClick, select New Event Handler.
For more information, see Create an Event Handler
[page 747].
To add a button and configure an object-based navigation 1. Under Available list, select the required button or the
4. Click OK.
5. Save and activate your changes.
You can create a Preview button and link it to a print form. Clicking the Preview button allows you to preview the
form as a PDF file and provides options to either save or print the form.
Prerequisites
Procedure
1. Open the floorplan in the user interface designer (UI designer) and create an outport.
1. In the studio, double-click the floorplan in the Solution Explorer.
The floorplan opens in the UI designer.
2. On the DataModel tab, right-click on Root and select Add Data Field.
Tip
You can find the group code in the studio. In the Solution Explorer, double-click the .ftgd file. The
group code is displayed as shown in the figure below.
Related Information
Overview
Prerequisites
You have created the floorplan to which you want to add the pane.
Procedure
Overview
You can create a preview pane to preview information about a business object listed in a table.
Procedure
Example
You have created an Object Work List (OWL) which shows a list of customers. You now want to create a preview
pane, to view the following invoice address details of a selected customer, without leaving the OWL:
● Number
● Street
● City
You also want to view the number of orders that have not been shipped or delivered yet.
For each customer, you can configure a preview pane and add various fields to display the above information.
Overview
You can change the text of any component visible on the user interface. For example, you can change the
following:
Procedure
Note
You can also change the text in the Properties Explorer, For example:
○ You can change the explanation text visible on the user interface under Text Information –
Explanation Area Text.
○ You can provide a rollover explanation text under Text Information – Explanation.
Note
All text options that can be changed for a particular component are displayed at the bottom of the
Dependent Property Editor dialog box.
4. Click OK.
Procedure
Related Information
Overview
You can create text pools in order to collect all texts that you want to use for a particular user interface
component, such as a floorplan.
The system-generated and the user-specific text are visible in the TextPool option in the Controller tab. The
system-generated text is created by the tool. It is associated with a particular component, is marked in red and
cannot be edited in the textpool.
The user- specific texts can be entered by the user and are mostly used in scripts. They are marked in black.
You can reuse these texts when you are selecting a label for a control using the Reuse Text option. Based on the
context, the texts with the correct text category are displayed on the user interface.
Prerequisites
You have created the floorplan for which you want to create the text pool entry.
Overview
You can create and configure a query to view specific instances of a business object in a floorplan.
For example, in the Contracts OWL, the Show drop down list has entries such as Contracts in
Preparation, and Released Contracts. These are the default sets under a query and are used to display a
filtered set of contracts. You can create a query and default sets under that query. These default sets are then
added to the drop down list.
Procedure
Procedure
Overview
You can use object-based navigation (OBN) to navigate between floorplans and pass parameters between
floorplans.
Procedure
Example
You are on the Products object work list (OWL) that displays a list of products, and you want to view the details
of a selected product in the Edit Product OIF.
● Select a Product ID
● Selects a row and click View or Edit
To do this, you should configure an OBN in the source (OWL) and the target (OIF) floorplan.
Overview
You can use object-based navigation (OBN) to navigate between floorplans and pass parameters between
floorplans.
Perform the following steps in the floorplan where you click a UI control to open the target floorplan.
Procedure
Alternatives
Overview
You can add a link that opens an external URL in your floorplans.
Procedure
Overview
You can write front-end scripts while creating an event handler and while defining a calculation rule.
Procedure
Overview
You can create an event handler to respond to user actions on the screen. For example, if you want to close the
window when the user clicks on the Close button, you can create an event handler for the Close button. You can
do either of the following:
● Create the user interface control, for example, a button, and then create an event handler.
● Create the event handlers first and then associate the event handler to the required user interface control.
Procedure
Alternatives
You can also create an event handler first and then associate it with the required user interface control.
Overview
You can create action forms to use the action parameters of a business object (BO) node or an enhanced
controller object (ECO) node. Action forms are always bound to a BO/ECO node’s ESI action that has
parameters. The binding is done within the BO Action operation of an event handler. Action forms belong to a
user interface component and cannot be reused in other user interface components.
You can either create an action form and then configure an event handler for it, or you can create an action
form for an existing event handler.
Procedure
Alternatives
You can also create an action form while configuring the event handler, which calls the corresponding ESI
action.
Note
If there is no operation that calls an ESI action, create a new operation of type BO Action and map the
operation to the corresponding ECO/BO action.
3. If the action parameters are not yet bound to data model attributes, bind these attributes in the Selected
Action Parameters section.
Overview
You can configure an Object Value Selector (OVS) control to open an OVS dialog box.
Prerequisites
For more information, see Create an Object Value Selector Dialog Box [page 705].
Procedure
Note
The CCTS type must be the same as defined in the outport of the OVS dialog box
Note
The CCTS type must be the same as defined in the outport of the OVS dialog box
Example
You are creating a sales order and want to assign an employee responsible for that order. In the Sales Order
floorplan, there is an Employee field, which is an OVS control. If you click this control, the OVS dialog appears
where you can search for the required employee. The selected employee is displayed in the Sales Order
floorplan.
Overview
You can add a dedicated field to a data model and use a field transformation to calculate the value of this
dedicated field from existing business object (BO) node attributes.
Procedure
Overview
You can use a transformation to calculate the value of a default set parameter.
For example, in the Contracts OWL, the Show drop down list has entries such as Contracts in Preparation, and
Released Contracts. These are the default sets under a query and are used to display a filtered set of contracts.
You can create a query and default sets under that query. These default sets are then added to the drop down
list.
You can have two types of transformations to calculate default set parameters:
● An example of the first type would be a transformation where no input parameters are needed. The
transformation calculates the value needed using the login ID (sy-uname) and the identity UUID is the
output.
● An example for the second type would be a transformation where the input parameters can only be
constants 0 or 1 and the output is placed in the Low Value field of the Default set parameter row.
Procedure
Overview
You need to assign standard report list views, for example the List and Gallery standard reports list views, to a
work center in the user interface designer.
In the customer's production system (SAP cloud solution), an Analytics administrator assigns the report to the
work center view to make it available for business users.
Note
Only SAP cloud solution administrators working in a customer's production system can assign a report that
you have created to a work center view. To assign a report to a work center view, the solution that contains
the report must therefore be implemented in the customer's production system.
We recommend that you provide information about the work center views to which customers need to
assign reports in your Solution Documentation. For more information, see Documentation Types in Cloud
Solutions from SAP [page 822].
Procedure
1. In the studio, double-click the required work center in the Solution Explorer.
The work center opens in the user interface designer.
2. On the Designer tab, right-click on BusinessObject and select WorkCenterItem.
3. In the Properties Explorer, under Misc-ViewSwitches click ….
4. In the ViewSwitch Collection Editor dialog box, do the following:
1. Click Add to add a new view.
2. Select the newly added view.
3. In the Properties Explorer, under Misc-SubViewSwitches, click ….
The SubViewSwitch Collection Editor dialog box opens.
5. In the SubViewSwitch Collection Editor dialog box do the following:
1. Click Add twice to add two new subviews.
2. Click OK.
6. In the ViewSwitch Collection Editor dialog box, click OK.
Related Information
Overview
You can define anchors for your floorplans to allow end users to make changes to the floorplans provided by
you.
Procedure
Note
You can view the anchors you have added only in the display mode.
Overview
You can map a message in order to change the terminology in messages appearing on the UI or to change their
behavior on the UI. For more information see Message Mapping [page 754].
Procedure
1. In the Solution Explorer, click on the UI component and choose Open in UI Designer.
The UI Designer opens with the selected UI component in a new window.
2. On the Controller tab, select Messages –> System Messages.
The Messages Editor opens.
3. Select Add Messages.
A new line in the Message Mappings Editor is displayed.
4. For the new message text that you want to be displayed on the UI instead of the original text do the
following:
1. In the Message Key column enter a key for the new message, instead of <MESSAGETEX>. The
message key consists of alphanumeric characters.
2. In the Message Text column enter the new message text for <message text>.
5. Save and activate your changes
6. Select Messages –> Message Mapping.
The Message Mapping Editor opens.
7. Select Add Messages and in the first free line of the Messages Editor select ... to look for the message that
you want to replace on the UI.
A new window opens listing all the messages that are associated with the UI component.
8. Select the message that you want to replace and choose OK.
The window closes and the message that you want to replace is displayed as a new line in the Message
Mappings Editor.
9. In the Message Mappings Editor, select the rule that you want to apply in your message mapping.
○ To replace an original message with a new message, select Replace.
○ To keep the original message without any change, select Original.
○ To combine two or more original messages into one new single message, select Aggregate for each
original message and select the same message key for each of them in the field New Message Key.
.
Note
To show different mapped messages based on parameter values in one original message, proceed as
follows:
In the Details section of the Message Mappings Editor, in the field Message Parameter, select the
parameter and in the field Parameter Value, enter the parameter value that you want the mapping to be
based on.
10. On the Details screen in the field New Message Text, select the message text that you want to appear
instead of the original message text.
Note
If you want to aggregate two or more original messages, make sure that always select the same new
message for those original messages.
This document gives you an overview of the changes you can make to SAP floorplans in the studio. These
changes are termed as change transactions and need anchors to be executed.
Change Transactions
Change transactions allow you to make changes to SAP delivered floorplans in the studio. You can create, save,
and publish the change transactions using the Extensibility Explorer of the user interface designer, which is
integrated into the studio.
Change transactions can only be made to SAP floorplans that contain stable anchors. For more information,
see Anchors [page 759].
Anchors are stable extension points to which any user interface modifications that you make to SAP floorplans
are attached. This prevents life-cycle issues during updates or upgrades to the user interface. You can also add
anchors to your own floorplans.
Tasks
You can hide a view that is no longer required from an SAP work center.
You can assign an object, for example, a navigation target or user interface component, to an SAP work center
view.
You can remove unwanted objects from an SAP work center view.
You can add an embedded component such as an embedded report (ICP) to an SAP work center view of type
"Overview".
You can add an extension field to a screen. For more information see here [page 445].
You can add an extension field to the enterprise search. For more information see here [page 450].
Remove a Button
You can modify the order in which the work centers are displayed in the UI Settings XML file.
User Interface (UI) dependencies govern the assignment of views to a user. Three types of dependencies
between views can be maintained.
After you have made any of the changes listed above, you have to save and activate the change transactions.
Overview
Change transactions allow you to make changes to SAP delivered floorplans in the studio. You can create, save,
and publish the change transactions using the Extensibility Explorer of the user interface designer, which is
integrated into the studio.
Change transactions can only be made to SAP floorplans that contain stable anchors. For more information,
see Anchors [page 759].
When you create change transactions they are stored in the associated solutions created by you.
You can use a change transaction to add a view to a work center delivered by SAP. For example, you can add a
new view to the Liquidity Management work center (CashLiquidityManagement_WCF).
Overview
Anchors are stable extension points to which any user interface modifications that you make to SAP floorplans
are attached. This prevents life-cycle issues during updates or upgrades to the user interface. You can also add
anchors to your own floorplans.
Any user interface adaptations made by you, as an SAP partner, to SAP floorplans, are retained unchanged in
future releases even after the upgrades provided by SAP due to the presence of anchors.
Features
A stable anchor has a system-wide unique ID and a reference entity. All stable anchors created during a
particular release will also exist in later releases.
Anchors are essential when making changes to a floorplan that is from a layer lower than the layer you are
working on. You can only view the anchors added in a lower layer. For example, when you are working on a SAP
floorplan you can view the anchors provided by SAP. You can view the anchors added by you only when a
floorplan is opened in the display mode.
Stable anchors in the floorplans are defined for a logical set of fields placed on the user interface, for example a
section group or a list.
Use
All change transactions can only be applied if there is a stable anchor defined on the SAP floorplan.
Add a View to a Work Center WoCViewSwitchAnchor Add a View to a Work Center [page
761]
Hide a View From a Work Center WoCViewSwitchAnchor Hide a View from a Work Center [page
761]
Add an Assigned Object to View AssignedObjectAnchor Add an Assigned Object to View [page
762]
Remove an Assigned Object from View AssignedObjectAnchor Remove an Assigned Object from View
[page 763]
Modify the Order Of Work Centers WorkCenterListAnchor Modify the Order of Work Centers [page
767]
Adding a User Interface Dependency UIDependecyAnchor Add a User Interface Dependency [page
768]
OverviewPageAnchor
Related Information
9.5.2.3 Flexible UI
Overview
In the SAP cloud solutions, a UI is modeled generically and not for a specific user or specific user groups,
therefore it looks the same for all users of a solution. Sometimes it might be necessary to simplify or reduce the
appearance of a view at runtime so that it shows, for example, fewer fields or sections depending on which user
or user group is working with a UI. UI switches in the UI designer allow to hide or restrict the usage of fields on
one or more UIs. Note that you can use UI switches only to restrict the usage or appearance of fields on a UI
that has been developed by SAP. You cannot use UI switches, for example, to change read-only fields into fields
that can be edited.
For more information see Create a Role-Based Flexible UI Using a UI Switch [page 772].
It is also possible to change the behavior of fields depending on the status of other fields.
For more information see Example: Create a Status-Based Flexible UI [page 770].
Overview
Prerequisites
The SAP work center to which you want to add a view has a WoCViewSwitchAnchor. For more information, see
Anchors [page 759].
Procedure
Overview
You can hide a view that is no longer required from an SAP work center.
Procedure
Overview
You can assign an object, for example, a navigation target or user interface component, to an SAP work center
view.
Prerequisites
The SAP work center view, to which you want to assign an object, has an AssignedObjectAnchor.
Procedure
Overview
You can remove unwanted objects from an SAP work center view.
Prerequisites
Procedure
Overview
You can add an embedded component such as an embedded report (ICP) to an SAP work center view of type
"Overview".
Procedure
Note
If you select the floorplan type as ICP, select the required report.
3. Select the required Title, Position and Alignment of the embedded component.
7. If the embedded component is of the generic type ICP, you have to select the parameters associated with
the ICP under the option View.
8. Click Add.
9. Save and activate your changes.
Overview
You can add an embedded component to an SAP floorplan. You can add the embedded component to either an
OutportAnchor or a PaneContainerAnchor.
Prerequisites
Procedure
Note
The outport selected has an OutportAnchor and the PaneContainerAnchor set as the
referenced anchor.
2. In the Add Embedded Component dialog box, click Select Embedded Component and select the
required embedded component.
3. In the Add Embedded Component dialog box, if the referenced pane container for which the
PaneContainerAnchor has been defined, contains a tab strip, you can enter a Tab Title.
1. At runtime, a new tab is created with this title, and the embedded component appears in the
tab.
2. If the referenced pane container does not contain a tab strip, the embedded component
appears in a new row below the referenced pane container.
4. Click Define Mapping and select the inport of the embedded component.
5. If the inport has any parameters, map the parameters.
6. If the embedded component is of the generic type ICP, you are prompted to provide a title for the
ICP.
○ To add the embedded component to a PaneContainerAnchor:
1. Select the PaneContainerAnchor, click Add and then choose Add Embedded Component.
2. In the Add Embedded Component dialog box, if the referenced pane container, for which the
PaneContainerAnchor has been defined, contains a tab strip, you can enter a Tab Title.
1. At runtime, a new tab is created with this title, and the embedded component appears in the
tab.
2. If the referenced pane container does not contain a tab strip, the embedded component
appears in a new row below the referenced pane container.
3. Click Select Embedded Component and select the required embedded component.
4. If you want to bind the embedded component to the floorplan, click Bind.
5. In the dialog box that opens, select the outport and inport for the embedded component. The
outport selected has an OutportAnchor.
5. Click Apply.
6. Save and activate your changes.
Overview
Prerequisites
Procedure
Overview
Prerequisites
The SAP floorplan from which you want to remove a button or navigational item has a ButtonGroupAnchor.
Procedure
Note
The removal of mandatory buttons like Cancel, Close, and Print is restricted.
8. Click Apply.
9. Save and activate your changes.
Overview
You can modify the order in which the work centers are displayed in the UI Settings XML file, the path to which
is given below.
Prerequisites
Procedure
Overview
User interface (UI) dependencies govern the assignment of views to a user. Three types of dependencies
between views can be maintained.
Types of Dependencies
Dependency Description
Technical Conflict Ensures that the user is not assigned two work center views
that conflict with each other from a technical point of view.
When there is a technical conflict, an error message is dis
played and assignment of views is not allowed . For example,
if both the Postings and Master Data views of the Fixed As
sets workcenter are assigned to a user, then an error mes
sage appears and the assignment is not carried out.
These user interface dependencies will govern the assignment of views in the User and Access management
view. For more information, see the relevant documentation in the SAP cloud solution.
The existing dependencies are listed in the UIDependency XML file, the path to which is given below.
Prerequisites
Procedure
Overview
The following section provides a detailed example of how to create a business object extension of the business
object Opportunity and the corresponding UI that shows an additional field depending on the status of the field
value.
In the example, the business object extension contains the additional field Reason Text, which is shown on
the UI when an opportunity exceeds a certain value. The user must enter a text in the field Reason Text in
order to be able to save the opportunity. If the user does not enter anything in the field and tries to save the
opportunity, the UI displays an error message and the user cannot save the opportunity. If the value of the
opportunity is below the stated threshold, the field Reason Text is not displayed on the UI.
Prerequisites
Procedure
1. In the Solution Explorer, expand your solution, right-click your project file, and select Add New Item .
The Add New Item dialog appears.
2. Select Business Object Extension.
3. Enter a Name for your business object extension, in our example it is OpportunityExtension and click
Add.
Note
You cannot use a name that is already used for a business object or business object extension in your
solution.
import AP.Common.GDT;
import AP.CRM.Global;
[Extension] businessobject AP.CRM.Global:Opportunity
raises MessageEnterReason
{
// You must activate this business object before you can access the
extension fields
// or messages in script files, forms, and screens.
import ABSL;
11. In the Solution Explorer, double-click the Event-AfterModify.absl to open the file in the editing pane.
12. Enter the necessary ABSL coding. In our example, the threshold for the opportunity value is 100000.
import ABSL;
else {
return true;
Overview
In the UI designer it is possible to hide or display extension or standard fields on the UI. It is also possible to
make them read-only or mandatory depending on your requirements. To do this, you can create an UI switch in
the studio.
Note
With an UI switch you can make the fields on the UIs provided by SAP more restrictive, but you cannot
make them less restrictive.
If you want to hide or display extension fields on the UI depending on the role that is assigned to a user, you
have created a business object extension and the fields that you require. You have added those fields to the
section of the UI where you want them to be shown.
Procedure
1. In the Solution Explorer, expand your solution, right-click your project file, and select Add New Item .
The Add New Item dialog appears.
2. Select UI Switch.
3. Enter a Name for the UI switch and click Add.
Note
You cannot use a name that is already used for a UI switch in your solution.
Note
If you set a field to be mandatory, this does not automatically prevent saving or any other
actions. It only marks the field as mandatory on the UI. In addition, you must create a message
in the BO extension file (.xbo) and raise the message in the related script coding (Event-
AfterModify.absl file or Validation-OnSave.absl file).
Note
To apply the UI switch to the UI, you have to assign it to a business role and assign this business role to
the users.
To read out the UI switches of a user, you can use the function
Context.GetCurrentUserUISwitches() in the script coding.
Overview
You can create solutions in the studio and make them available on mobile devices, such as the iPhone and
Android devices. The mobile solution is built using the same tools (the studio and UI designer) that you use for
the browser application of the SAP cloud solution. You just have to make sure that you build your mobile
application according to the user interface (UI) guidelines for mobile applications (for example, tables should
not have more than three columns).
● Android phones
● Apple iPhone
Device Tag
You can use the Device tag in the UI designer to specify on which devices a UI component can run. Possible
values are:
● Desktop
● Mobile
● Tablet
● Mobile HTML
● All Devices
If no device tag is specified, the component is treated as having a Desktop device tag.
You must consider the dependencies between floorplans when setting the Device tag. For example, you cannot
set a work center view (WCV) to Mobile if it has an embedded object work list (OWL) that is set to Desktop. In this
case, you would first have to set the OWL to Mobile, then set the WCV to Mobile.
Floorplan with Device tag Can use floorplan with Device tag
If you have more than one view of a work center (for example, a desktop view and a mobile view), you can use
the Device Cluster tag in the UI designer to model the relationship between the views. The user assignment
takes place on the leading work center view, which is always the desktop view. The view to render will be
decided at runtime based on the user client.
The leading work center view (WCV) has to have a ViewSubType of Application. You then create a Device Cluster
and set the value to the Short Id of the WCV. To associate a mobile view, you give it a ViewSubType of DeviceView
and assign it to the Desktop Workcentre View Device Cluster.
The other possible value for the ViewSubType is InvisibleDeviceView. You would select this if you did not want
the view to be displayed on the UI, but wanted the view to serve as a carrier of authorizations only.
You can view the mobile variant of the SAP solution by appending &sapbyd-agent=mobile to the standard
URL. This will show you which work centers and floorplans are available. However, this will not give you a good
idea of how the UI will look on the mobile device, nor will it allow you to adequately test the functionality (such
as tapping or swiping the mobile device screen). Therefore, it is important to test on the mobile device that you
are developing for.
Note
This URL addition is not valid for testing the screens with the Mobile HTML tag for the new Business
ByDesign Mobile App
1. Develop your solution in the studio and make the work center view available to a mobile device.
2. In the SAP cloud solution, assign access rights to your business user so that they can access the new work
center.
3. Download and install the SAP cloud solution on your mobile device.
4. On the mobile device, enter the URL of the development system.
5. Log on to the SAP cloud solution on your mobile device and test your solution.
9.6.2 Tasks
Overview
You can modify an object work list created for use on a mobile device, using the user interface designer, in the
studio.
Prerequisites
● You have created and activated the business object (BO) and other components in the studio.
For more information, see Business Objects Quick Guide [page 398].
● You have created the object work list in the studio.
For more information, see Generate Screens for a Business Object [page 429].
Procedure
1. In the studio, double-click the object work list in the Solution Explorer.
Note
The New button is linked to the + of the object work list on the mobile screen.
Overview
You can modify a quick activity floorplan created for use on a mobile device, using the user interface designer,
in the studio.
Prerequisites
● You have created and activated the business object (BO) and other components in the studio.
For more information, see Business Objects Quick Guide [page 398].
● You have created the quick activity in the studio.
For more information, see Generate Screens for a Business Object [page 429].
Modify a Quick Activity of a Business Object without Actions for Use on a Mobile Device
Modify a Quick Activity of a Business Object with Actions for Use on a Mobile Device
1. In the studio, double-click the quick activity floorplan in the Solution Explorer.
The quick activity floorplan opens in the user interface designer.
2. In the Properties Explorer, under Configuration-Tags click ….
3. In the Tags Editor dialog box , do the following:
1. Click Add Operation.
2. In the new row that appears:
○ Under Attributes, select Device.
○ Under Value, select:
○ Mobile if you want to create screens for the old (orange) ByDesign Mobile App.
○ Mobile HTML if you want to create screens for the new Business ByDesign Mobile App
released in November 2018.
3. Click OK.
4. On the Designer tab, in the toolbar, delete all the buttons except the Close button.
5. Select the Close button, and in the Properties Explorer do the following:
1. Under Behavior-Enabled, select False.
2. Under Behavior-Visible, select False.
6. Select the contextual navigation region.
7. In the Properties Explorer, under Toolbar-Configure click ….
8. In the Configure Toolbar dialog box, do the following:
1. In the Available list of buttons, under ApplicationSpecific buttons select My Button.
2. Add My Button to the list of Current list of buttons using the right arrow button.
9. In the Properties Explorer, under MenuInformation-HasMenu select True.
10. In the Properties Explorer, under MenuInformation-SubMenu click ... .
11. The Button SubMenu Collection Editor dialog box opens.
12. To add a new navigational item to the button sub menu, click Add.
13. For each action that you want to be displayed on the mobile device, add one navigational item.
14. Select the first navigational item and in the Properties Explorer do the following:
1. Under Events-OnClick select SaveHandler.
Overview
You can modify a fact sheet created for use on a mobile device using the user interface designer in the studio.
Prerequisites
● You have created and activated the business object (BO) and other components in the studio.
For more information, see Business Objects Quick Guide [page 398].
● You have created a fact sheet in the studio.
For more information, see Generate Screens for a Business Object [page 429].
Procedure
Overview
You can configure a fact sheet for use on a mobile device. For example, you can configure a fact sheet so that
you can navigate from an object work list to a fact sheet rather than navigating to a quick activity and then to a
fact sheet .
Prerequisites
● You have created and activated the business object (BO) and other components in the studio.
For more information, see Business Objects Quick Guide [page 398].
● You have created the following in the studio:
○ Work center view
○ Port type package
○ Object work list
○ Quick activity floorplan
○ fact sheet
For more information, see Generate Screens for a Business Object [page 429].
● You have modified the fact sheet created for use on a mobile device, using the user interface designer, in
the studio.
For more information, see Modify a Fact Sheet for Use on a Mobile Device [page 781].
Process Flow
Overview
You can assign a fact sheet that has been modified for use on a mobile device to a work center view.
Procedure
1. In the studio, double-click the work center view in the Solution Explorer.
The work center view opens in the user interface designer.
2. In the Properties Explorer, under RBAM Data-AssignedObjects click … .
3. In the Add Assigned Objects dialog box, do the following:
1. Click Add to add a new assigned object.
2. In the new row, click … and select the fact sheet you have created from the list of repository items.
3. Click OK.
4. Save and activate your changes.
You can create a new port to facilitate navigation to a fact sheet for use on a mobile device.
Procedure
1. In the studio, double-click the port type package in the Solution Explorer.
The port type package opens in the UI designer.
Overview
You can configure navigation in a fact sheet to facilitate the transfer of data between the fact sheet and a object
work list.
Procedure
1. In the studio, double-click the mobile fact sheet in the Solution Explorer.
The fact sheet opens in the user interface designer.
2. On the DataModel tab, right-click on Root and add a new data field.
3. Rename the data field as Node ID.
4. On the Controller tab, right-click on Inports and add a new inport.
5. Under Inport Configuration do the following:
1. Select the port type package that you have created.
2. Set the port type reference to the port To_FS.
3. Add a parameter and bind it to the data field Node ID that you have created.
6. Save and activate your changes.
Overview
You can configure navigation in a object work list to facilitate data exchange to a fact sheet.
Procedure
1. In the studio, double-click the object work list in the Solution Explorer.
The object work list opens in the user interface designer.
2. On the Controller tab, right-click on Outports and add a new outport.
3. Rename it as OutportToFS.
Note
The parameter name should be the same in the fact sheet and the object work list.
5. On the Designer tab, select the column in the advanced list pane.
6. In the Properties Explorer, under Appearance-DisplayType select Link.
7. In the Properties Explorer, under Navigation Information-Navigation click ….
8. In the Model Navigation dialog box, do the following and click OK:
1. Click on Simple navigation.
2. Under Navigation Details, set the target as the fact sheet you have created.
3. Under Inport, choose the inport you created in the fact sheet.
4. Under Outport, choose the outport you created in the object work list.
5. Select the parameters under Outport Parameters and Inport Parameters and click Bind.
9. Save and activate your changes.
Overview
You can configure an event handler in a fact sheet to display data from a quick activity.
Procedure
Overview
You can configure navigation between a fact sheet and a quick activity so that it is possible to transfer data
between them.
Procedure
With the SAP Business ByDesign Mobile App, you can access many of the main functions of the system that
have been tailored to business on-the-run. Changes made on your mobile device are automatically updated in
the system, over the Internet, online and in real time.
As in the desktop applications, you can use the ByDesign extensibility and flexibility features to extend the
standard contents of the mobile app, as well as the content developed by partners and customers. In addition,
you can use the SAP Cloud Applications Studio to extend many mobile functions.
Supported platforms
● Android Phones
● Apple iPhone
You can extend the screens in two ways: either by extending the standard screens in ByD mobile app, or by
creating new scenarios from scratch.
For adding extensions to the existing mobile screens the same principles apply as for the desktop. Use the
Extensibility Explorer of the Cloud Application Studio UI Designer and perform the required extensions. For
more information, see Create a Business Object Extension [page 442].
Note: As on desktop, only those areas on a screen can be extended where stable anchors have been provided
by standard development. To find out which screens can be extended on a mobile device, follow these steps:
1. Open the following URL on the Desktop Browser (e.g. Chrome) where <myTenantURL> is the URL of your
tenant.
https://<myTenantURL>/sap/public/ap/ui/repository/SAP_UI/HTMLOBERON5/client.html?sapbyd-
agent=MBLHTML
2. Logon to the tenant.
3. Navigate to the screen for which you want to find out the path
4. Press key combination Ctrl + Shift + Alt + Delete for approximately 3 seconds. The technical information
window opens
5. Click the Controllers/Data tab to find the path to the floorplan.
Creating a new scenario for the Business ByDesign Mobile App from scratch
The second approach is to develop new content by adding launchpad tiles, OWLs, factsheets, and other
floorplan types. With this approach, you can create new business scenarios for the mobile app.
Note
Short ID
If you select Work Center View or a screen scenario containing a work center view, an additional field
appears where you must enter a Short ID of up to 13 characters. It is preceded by the technical name of
the solution and followed by _WCVIEW: [Technical name of solution]_[Short ID]_WCVIEW.
The short ID helps you identify the work center view in the UI designer and in the SAP cloud solution.
After you have entered the short ID, it is displayed in the following places:
○ UI designer: in the Property Explorer under Component Info in the Short ID field
○ SAP cloud solution: Application and User Management Work Center and View Assignment
5. Click OK.
Follow the same steps as before with the following difference: Under Supported Devices, select Mobile HTML.
If you have more than one view of a work center (for example, a desktop view and a mobile view), you can use
the Device Cluster tag in the UI designer to model the relationship between the views. The user assignment
takes place on the leading work center view, which is always the desktop view. The view to render will be
decided at runtime based on the user client.
The leading work center view (WCV) must have a ViewSubType of Application. You then create a Device Cluster
and set the value to the Short Id of the WCV. To associate a mobile view, you give it a ViewSubType of DeviceView
and assign it to the Desktop Workcentre View Device Cluster.
The other possible value for the ViewSubType is InvisibleDeviceView. You would select this if you do not want
the view to be displayed on the UI, but want the view to serve as a carrier of authorizations only.
The connection between these two workcenter views are now established.
Supported Floorplans
Factsheets Yes
In the Application and User Management work center view, assign the workcenetre to the user. For more
information, see Define Access Control [page 424]
When you make changes in the OIF, the changes are not automatically reflected in the underlying factsheet and
OWL. You must manually refresh it using Success Notification Outports Local Events
We recommend that when you save the changes in the OIF, trigger the local event in the EventHandler that
initiates the save.
After the event is triggered, all existing floorplans in the stack that have an inport modelled are notified. The
inport is responsible for triggering the corresponding refresh-action depending on floorplan type and the
mechanism by which the data is retrieved.
Triggering Screen
1. In the Controller tab, create an outport, and call it, for example, LocalRefreshOutport.
2. Define a unique name for the local event. We recommend that you follow a naming pattern to avoid
duplication with other applications. For example <ApplicationArea>.<Object>.<Action> (e.g.
MobileAccounts.Account.Updated)
3. In the Properties editor of the outport, set the Broadcast flag to True to ensure that the event is broadcast
across all windows.
4. In the Event handler that contains the WindowAction for the Save operation, select LocalRefreshOutport
for the Success Notification Port property. Whenever the save is triggered via this handler, the local event is
triggered and broadcast to all open windows.
Receiving Screen
There are cases where the stacked screens (OWL, FS, OIF) are open in different sessions. In such cases, the
system might retrieve outdated data from the buffer and display wrong information on the UIs.
To avoid this, the Read From DB checkbox must be selected. You can find this property in the BO Operation for
type Read. If set, the buffers are ignored and data is retrieved from the database.
Check Out the Style Guides Check Out the Reference Guides
Style Guide for Writing System Message Texts [page 792] Reference Guide for Documentation of Cloud Solutions from
SAP [page 821]
This style guide provides you with the standards and guide
lines for writing system messages to be displayed on the This reference guide provides an overview of the main refer
user interface (UI) of your solution. It also provides the ence documentation types specific to the SAP cloud solu
standards and guidelines for writing system messages that tion.
are relevant for SAP Support; these messages are not dis
played on the UI.
Overview
This style guide provides you with the standards and guidelines for writing system messages to be displayed on
the user interface (UI) of your solution. It also provides the standards and guidelines for writing system
messages that are relevant for SAP Support; these are not displayed on the UI.
In addition, this style guide provides guidance on writing long-text documents providing additional information
to a system message that helps the user to solve very complex error situations. These long-text documents can
be incorporated into the Solution Documentation.
This style guide is aimed at solution partners and reseller partners, who develop solutions in the studio for SAP
cloud solutions.
Prerequisites
System messages in an SAP cloud solution comprise the following message types:
Overview
This section of the style guide provides you with the general standards and guidelines for writing message
short texts.
Standard formulations for different categories of message short texts are contained in Standard Formulations
for Message Short Texts [page 797].
Note
For technical reasons, system messages are restricted to 73 characters. If there is not enough space,
for very complex error situations, where the user needs to be provided with detailed background
information about the error, a long text can be written and provided as part of the solution
documentation. For more information, see the section on General Standards and Guidelines for
Message Long Texts [page 813].
Example
Sentence Construction
Example
Note
Some of the messages that appear in application logs deviate from this standard. They are used as
headings (title case). For more information, see the section on Standards for Application Log Messages
[page 808].
4. Do not use a period or exclamation mark at the end of a message short text.
5. If the message text consists of two parts, separate them using a semicolon (;)
Example
Example
Example
Word Choice
1. Use terminology from the Public Solution Model for system messages that do not appear on the UI.
Example
Example
Example
Example
1. Do not use special formatting, for example, upper case letters for emphasis. In some languages, the use of
upper case can be construed as shouting.
Example
2. Do not use quotation marks (“...”) to set off placeholders, statuses, or similar.
3. Do not use special characters such as angle brackets (<...>), dollar signs ($), or asterisks (*).
4. Use ampersands (&) only for variables. If you use more than one variable, number your variables (&1, &2,
&3, &4).
5. Do not write a message text that only consists of variables (for example, &1 &2 &3). Bear in mind that
different languages have different word order. A message short text that reads correctly in the source
language may be nonsensical in another language.
6. If a noun is preceded by a variable that is a placeholder for a cardinal number, do not set off the plural form
or the plural ending of noun and verb with parentheses (( … )) or a slash (/). Use only the plural form.
Note
Adding the plural endings in parentheses or with a slash does not work with irregular plural forms and
with every language. Using the plural form may sometimes result in incorrect sentences, such as 1
documents not available, but in the majority of cases the variable will be replaced with a number
higher than 1.
7. In general, avoid using formulations that cause problems in translation, especially in texts containing
placeholders and ordinal numbers.
Example
Overview
This section of the Style Guide and its subsections provides standard formulations for the most common
message short texts. They are listed and structured according to the error category to which they belong.
Whenever you write a message, analyze the error situation and decide to which category it belongs. If none of
the categories listed here fits the error situation of your message, follow the General Standards for Message
Short Texts [page 793] to write the message.
Error Categories
Inability to Perform Action, Status and Authori ● Inability to Perform Action [page 799]
zation Problems ● Inability to Perform Action Because Object is Locked [page 800]
● Inability to Display Data [page 800]
● Lack of Authorization [page 800]
● Inappropriate Status [page 801]
● Mandatory Step [page 801]
You use this standard formulation in cases where the execution of an action fails completely or where a general
failure occurs.
... failed; <instruction or reason> Printing failed; install printer Error during printing
Note
Printing failed means that a document has not been printed at all.
You use these standard formulations in cases where the execution of an action has not failed completely, but
can only be completed with errors.
Error while <operation>; <instruction or Error while processing incoming e-mail; Errors were found
reason> check e-mail settings
Error during <operation>; <instruction Error during RFQ creation; RFQ ID Error occurred during RFQ creation
or reason> missing
Note
Error while printing means that a document has been printed, but some pages are missing, for example.
You use these standard formulations in cases where an error occurs due to wrong or missing business
configuration.
Note
If possible, provide detailed information about what is wrong in the business configuration in a message
long text. For more information, see General Standards and Guidelines for Message Long Texts [page
813].
Error in business configuration for ... Error in business configuration for pur Business configuration error: Maintain
chasing contract purchasing contract
Error in business configuration for pric Pricing not maintained in business con
ing procedure figuration
You use these standard formulations in cases where an action cannot be performed or is not permitted.
If the action is not followed by an object, use the technical action name, for example, Delete, Activate, and
so on).
<Action name> not permitted; <instruc Delete not permitted for user status; Function prohibited for user status
tion or reason> user not authorized to delete objects
<Action name> not possible; <instruc Create not possible; source object does Creation not possible, because source
tion or reason> not exist object does not exist
... <object> not permitted; <instruction Deletion of quantities not permitted; Delete quantities not allowed; user not
or reason> user not authorized to delete quantities authorized to delete quantities
... <object> not possible; <instruction or Creating the document not possible; Create document not possible; source
reason> source object does not exist object does not exist
You use these standard formulations in cases where an action cannot be performed because the object is being
used by another user..
Operation not possible; <object> locked Operation not possible; hierarchy The operation cannot be performed be
by <user> locked by user &1 cause the hierarchy is locked by user
&1
Operation not possible; production or Production order is locked by user &1
der locked by user &1
You use this standard formulation in cases where the system cannot provide certain data to be displayed.
Cannot display <object>; <instruction or Cannot display revision status; period You cannot display the revision status
reason> already completed here
You use this standard formulation in cases where a party or a user does not have the authorization to perform a
certain step.
... not authorized to ... Buyer not authorized to display master No authorization to display master
data data
User &1 not authorized to delete pur The user does not have change author
chase order ization to delete the purchase order
You use these standard formulations in cases where an object does not have the appropriate status. As a
consequence, the user cannot change the object or use it in a transaction, for example.
<Object> not <status> Business partner &1 not active Business partner &1 has not been acti
vated
<Object> <status> Bidder &1 not released Release of bidder &1 missing.
You use this standard formulation in cases where a certain step must be performed.
... required for ... Mandatory step &1 required for phase Perform step &1 before you proceed
&2 with phase &2
You use this standard formulation in cases where an object already exists in the system.
<Object> already exists Hierarchy &1 already exists There is already a hierarchy &1
Open customer quote &1 already exists An open customer quote &1 exists for
for buyer &2 buyer &2
You use this standard formulation in cases where an object exists in the system more than once, which means
it is not unique.
<Object> exists more than once Party &1 exists more than once Party &1 is not unique
You use this standard formulation in cases where an object does not exist at all in the system, which means it
has never been created or it has been deleted.
<Object> does not exist Number range &1 does not exist Number range &1 not found
Note: Number range does not exist Note: This message is only correct if it
means that the number range has is displayed after a user-initiated
never been created. search.
You use this standard formulation in cases where an object exists in the system but is not available for a certain
action.
<Object> not available Seller &1 not available for purchasing Seller &1 is not defined for purchasing
unit &2 unit &2
You use this standard formulation in cases where a mandatory field has not been filled or a required value has
not been transferred in an XML message.
Unit of measure for the quantity in item Enter a unit of measure for the quantity
&1 missing in item &1
You use these standard formulations in cases where, during a user-initiated search, a specific object was found,
could not be found, or no object was found at all.
<Object> not found Specified material &1 not found Specified material &1 could not be
found
You use this standard formulation in cases where the system cannot determine a certain object or value.
<Object> not determined; <instruction Product type for product &1 not deter The system could not determine the
or reason> mined; add product type to product product type for product &1
Buying organizational unit not deter Buying organizational unit not found
mined
Note: This message would only be cor
rect if it was displayed after a user-initi
ated search
You use these standard formulations in cases where a certain value is not valid in the current context or if a
certain value is not valid at all..
... not valid Inventory valuation level &1 not valid Inventory valuation level &1 is invalid
... not valid for ... Number &1 not valid for external inter Number &1 is invalid for external inter
val &2 val &2
You use these standard formulations in cases where a certain value is not permitted or wrong in a specific
context.
<Value> not permitted Unit of measure &1 not permitted Unit of measure &1 not allowed
Only one <object> permitted Only one buyer permitted Enter exactly one party of role buyer
Only one quantity permitted as valua Only one quantity can be the valuation
tion quantity quantity
<Value> greater than <value> Item value greater than limit &1 of pur Item value is higher than limit &1 of
chase order &2 purchase order &2
<Value> less than <value> Purchase order net amount less than Purchase order net amount is lower
minimum order value than minimum order value
<Value> must not be greater than Invoiced quantity must not be greater Invoiced quantity must be less than or
<value> than delivered quantity for item &1 equal to the delivered quantity for item
&1
Note: This indicates that the invoiced
quantity must be smaller than or equal
to the delivered quantity.
You use this standard formulation in cases where a user or business partner has not been assigned.
... not assigned to ... Contact person &1 not assigned to bid Assignment missing for contact person
der &2
You use this standard formulation in cases where a user or business partner does not have the appropriate role.
... does not have ... role; <instruction or &1 with ID &2 does not have &3 role; Bus partner role cat &3 not maintained
reason> role must be assigned in master data for party &1 ID &2
You use these standard formulations in cases where there are problems with a date used in a business
transaction.
<... date> must be before <... date> Start date must be before end date Enter a start date that is before the end
date
<... date> must be after <... date> Submission deadline must be after end Enter a submission deadline that is af
date ter the start date
<... date> must be the same as <... Posting date must be the same as run Enter a posting date that is the same as
date> date the run date
<... date> must not be after <... date> Source of supply date must not be af Date/Time From of SourceOfSupply is
ter supply quota arrangement date later than that of SQA
<... date> must not be in the future Receipt date must not be in the future Enter a receipt date that is not in the
future
<... date> must not be before <... date> Source of supply date must not be be Date/Time To of SourceOfSupply is
fore supply quota arrangement date earlier than that of SQA
<... date> must not be in the past Start date must not be in the past Enter a start date that is not in the past
<... period> must not start before <... Binding period must not start before Enter a binding period that starts after
date> submission deadline the submission deadline
You use this standard formulation in cases where the counterpart of a certain object cannot be found for a
comparison.
You use these standard formulations in cases where the following applies:
... differs from ... Currency &1 in confirmation differs Currency &1 in confirmation mis
from currency &2 in purchase order matches currency &2 in purchase or
der
... and ... do not match Identified stock &1 and material &2 do Identified stock &1 and material &2 dif
not match fer
You use these standard formulations for error situations where the end user has to select an object.
Select <object> Select the document to be deleted Choose the document to be deleted
Additional <objects> not selected Additional status profiles not selected Additional status profiles not high
lighted
Overview
This section of the style guide and its subsections provides standards and guidelines for application log
messages.
Application logs belong to mass data run objects (MDROs) and support mass data runs. When a run is started,
it takes place in the background. At the end of the run, the application log is displayed on the user interface (UI)
to retrace the results.
Most of the message texts that are used in application logs are not really error messages. They are used to
provide texts for the different sections of the application log, such as headings or selection data.
Application logs consist of three sections that group the messages posted:
1. General
This section contains a summary of what happened during the mass data run and generic log statistics, for
example, the number of errors.
3. Results
This section contains detailed information about the decisions taken and about the errors and warnings
that occurred during the mass data run in chronological order.
You use these standard formulations for messages used in application logs to display the number of objects
that were or were not processed correctly during an application log run.
Number of ...: <number> Number of procurement planning or &1 procurement planning orders have
ders changed: &1 been changed
Number of ... not ...: <number> Number of procurement planning or &1 procurement planning orders were
ders not changed: &1 not changed
You use this standard formulation to specify the selection category that defines the elements to be included in
or excluded from an application log run.
<Name of SelectionBy node with Selection by Purchase Order Selection by purchase order
spaces>
Selection by Buyer Selection by BuyerParty
Note
If the node name includes the word party, leave it out in the message.
You use these standard formulations for messages used in application logs to specify the elements excluded
from or included in an application log run.
Exclude all matches (with) <lower boun Exclude all matches with &1 &2 Exclusion code: &
dary type code>; <lower boundary ID>
Include all matches from <lower boun Include all matches from &1 to &2 Inclusion code: &1 &2
dary> to <lower boundary>
You use this standard formulation for messages used in application logs to display the settings that are used for
a control parameter.
<Name of parameter element>: <Value Employee time valuation period closure The employee time valuation period
of parameter element> date: &1 closure date is &1
You use these standard formulations for messages used in application logs to specify when an application log
run has started or ended.
... started Adjustment run started Adjustment run has been started
1. For messages that describe the result of an application log run, use sentence style.
2. Do not use the words successfully and unsuccessfully.
3. Do not put a period at the end of the message text
&1 new period closure dates not created & new period closure dates created unsuccessfully
&1 of &2 orders created &1 of &2 order have been created successfully.
You use these standard formulations for messages used in application logs to display the ID of an object that
has been processed during an application log run.
... ID: <ID> Business transaction document ID: &1 The business transaction document ID
is &1
Overview
This section of the Style Guide provides you with the general standards and guidelines for writing message long
texts.
General
1. Add a section to the Solution Documentation for long texts that contain additional information on complex
system messages. These are messages in which you cannot explain within 73 characters what the user has
to do to resolve an error.
2. Name the section in the Solution Documentation Additional Information on System Messages.
3. Use the structure below for each message long text.
4. Separate the different message long texts by sub-sections.
Keyblock: Title
1. This keyblock is mandatory. It links the long text to the short text in the system.
2. For the title, use the text of the message short text.
3. Do not use variables in the document title. If the system message contains variables, rephrase it to the
document title.
Invoice may be a duplicate of another invoice Invoice may be a duplicate of invoice &1
1. This keyblock is optional. It advises the user what caused the error and what implications the error has.
2. Answer the following questions:
1. What is the cause of the error message?
2. In which context does the error occur?
3. What are the implications?
1. This keyblock is mandatory. It advises the user what they can do to resolve the error message.
2. Answer the question: What can the user do to solve the error?
3. If appropriate, use a numbered list.
Example
Keyblock: What Happened? The system was unable to post the supplier invoice or credit memo and created an
exception.
Keyblock: What Can I Do? Check your entry and proceed as follows:
Overview
Process Agent Framework Business Task Management (PAF BTM) tasks are used to inform a user about a
manual cleanup activity that has to be done to solve a process communication error that occurred in inbound
error conflict handling.
Each PAF BTM task has a task description, which provides detailed information on a fatal error that occurred
and instructions on how to solve the error.
Example
The message short text is used to briefly describe the fatal error that occurred. For this text (called PAF BTM
error message short text in this document), the General Standards for Message Short Texts [page 793] and the
Standard Formulations for Message Short Texts [page 797] apply.
The message long text provides detailed information and instructions on how to solve the error. For this text
(called PAF BTM error message long text in this document), follow the standards and guidelines listed below.
General Standards
1. Include these message long texts in the section of the Solution Documentation named Additional
Information on System Messages.
Create this section if it does not already exist.
2. Formulate the message long text according to the keyblocks described below.
3. Use the SAP cloud solution terminology.
4. If you want to use a variable, use the following format: &v1&. Do not use the variable format that is usually
used for message short texts (&1).
Example
The status of the &v1& project and the &v2& task is On Hold, Stopped, or Closed. Therefore, no further
postings are permitted. As a result, a time confirmation related to the &v1& project and the &v2& task
could not be processed
Keyblock: Solution
General Standards
Note
The message short text that belongs to this long text is “Negative stock not permitted in custodian
party”. This task is created if the quantity reported in a service confirmation exceeds the allocated
quantity of the material in the identified stock.
Note
The standard formulation of short texts for messages referring to handling lock issues is one of the follow
ing:
1. Check the details of the error message on the Process Communication Error screen.
2. Contact the person responsible on sender side of the message to inform him or her about the issue:
Party: &v1&
Contact Person: &V2&
Phone Number: &v3&
Sender System: &v4&
3. Ask the person on sender side to perform the relevant changes (so that the message can be processed in
your system) and to send the business document again.
4. Abort the process by clicking Abort Process on the Process Communication Error screen.
5. Restart the process by clicking Restart Process.
Result: The system does not process the message, and the sender needs to resend a corrected message.
Solution 2:
Use this solution if you have to make changes to your system to enable the processing of a business document
that you have received via a third party interface.
1. Check the details of the error message on the Process Communication Error screen.
2. Adjust the data in your system, for example, master data or business configuration data, or edit the pay
load, if allowed, on the Process Communication Error screen as required.
3. Restart the process by clicking Restart Process.
Note
For messages referring to errors that occur when an XML message that has been sent via a third party
interface could not be processed, he standard formulation of the message short text is:
Step: Result
Note
○ The standard formulation of the Result step for messages referring to handling lock
issues is:
Result: The system updates the business document
○ For messages referring to errors that occur when an inbound XML message that has
been sent via a third party interface cannot be processed, the standard formulation of
the Result step is:
○ For Solution 1:
Result: The system does not process the message, and the sender needs to send
a corrected message.
Restart the process by clicking Restart Process.
○ For Solution 2:
Result: The system updates the business documents.
Reject Process Result: The system does not update <object, including &v1&>, and cancels the process com
munication.
Synchronize Docu Result: The system synchronizes the documents using the updated data of the <object, in
ments cluding &v1&>.
Mass Restart Process Result: The system updates <object, including &v1&> by restarting all related process commu
nication.
Abort Process Result: The system does not update <object, including &v1&>, and the process communica
tion is aborted.
Example
Result: The system updates the &v1& project and the &v2& task with the time confirmation.
4. If there is more than one solution to solve the error, do one of the following:
○ If the result of each is different, add a Results keyblock after each solution.
○ If the result of all of them is always the same, only add one Results keyblock (after the last solution).
Example
Note: Check if it should be permitted to add further postings to the &v1& project and the &v2& task:
This reference guide provides an overview of the main reference documentation types specific to SAP cloud
solutions. It covers the following:
Overview
This document provides a brief overview of the main reference documentation types specific to the SAP cloud
solutions.
The reference documentation for business configuration covers documentation for the Business Adaptation
Catalog (BAC).
For information on how this documentation is structured, see Structure of Reference Documentation for
Business Configuration [page 826].
The reference documentation for work centers covers documentation for the following:
● Analytics
This reference documentation provides information about analytic content that is displayed on the user
interface. This includes the following types of objects:
○ Data sources: multidimensional analytical views (MDAVs), key figure structures, and key figure grids.
Overview of data sources documentation provides information about the multidimensional analytical
view (MDAV), key figure structures, and key figure grids that make data available for reports in an area,
such as Customer Relationship Management. This type of documentation is available in the guided
quick activity for creating reports and is linked in documentation related to reports.
○ Reports
Report documentation provides information about a compilation of data for evaluation that can be
presented in the form of a table, list, text, graph, or combination of these. It is used in detailed scoping
and fine-tuning, as well as by users in the application. In scoping, the Overview keyblock of the
documentation is displayed. In application Reports work center views, the full report documentation is
displayed.
Overview of reports documentation provides information about the reports that are available in an
area, such as Customer Relationship Management by report category. It also contains information
about relevant variables in the area. The embedded reports available in the super area are also listed.
Overview of Reports documentation is available in the Reports View of work centers.
● Business Task Management
This reference documentation provides information that enable them to understand and process a
particular business task management (BTM) task type effectively. Each task type document explains the
purpose and business process context of a particular task type in the system, why a particular user
receives the task, what kind of response is required, what the follow-up process steps are, and which
elements can be configured.
● Business Background Essentials
This reference documentation covers the concepts and processes that form the SAP cloud solution.
Therefore, a differentiation is made between the following types:
○ Concept
Concepts cover a general business concept or technical concept that has a particular implementation
in the SAP cloud solution. A concept can be specific to one view or can span several views, business
areas, or even application areas.
○ Process
Processes cover a sequence of logically related events or steps that have a specific outcome or result
in the SAP cloud solution. A process can be specific to one particular view or can span several views,
business areas, or even application areas.
For more information on how this documentation is structured, see Structure of Reference Documentation for
Work Centers [page 830].
● Health Checks
A health check is an incident generated by the system when functions or applications are not operating
properly. The reference documentation provides information about the cause of the incident and the
information required to resolve the issue.
For more information on how this documentation is structured, see Structure of Reference Documentation for
Health Checks and Support Case Library [page 828].
Release Information
For more information on how this documentation is structured, see Structure of Release Information [page
837].
Overview
The reference documentation for business configuration covers Business Adaptation Catalog (BAC)
documentation and Activity List documentation:
This documentation provides information about scope selection. All scope selection topics and activities to
configure the system before and after go live are reflected in elements of the Business Adaptation Catalog
(BAC). These elements are business areas, business packages, business topics, and business options. BAC
elements require reference documentation if they have one of the following visibility options:
● Always
● Scoping Visible
● Hidden with option type Blueprint Only
Note
The documentation for business options for reports matches that of the related report documentation. For
more information, see Structure of Reference Documentation for Work Centers [page 830].
This reference documentation provides information about configuring the system before and after go live. In
the activity list, reference documentation covers fine-tuning activities and basic data activities.
Fine-Tuning Documentation
These documentation types provide users with the information they require to perform activities in the Fine-
Tune phase of the Activity List. These documents can also include information relevant to before and after the
completion of a fine-tuning activity. Depending on the complexity of the activities and the activity type, the
following types of documents can be written for these activities:
● Activity Documentation
This documentation type describes the activity and guides the user through the activity by listing the
required steps and settings. This documentation type can be used for simple activities that lead directly to
a configuration screen.
Prerequisites What other configuration activities have to be performed before this activity?
Steps What are the steps that the user must carry out to perform the activity?
Follow-On Activi What other configuration activities have to be performed after this activity?
ties
Title What is the name of the configuration activity, followed by “- Configuration Guide”? For example, “Sup
pliers — Configuration Guide”.
Overview What are the purpose and result of this configuration activity?
Are there any other activities which must be completed before this activity can be completed?
Business Back What are the key concepts related to this activity?
ground
Follow-Up Activi What other configuration activities have to be performed after this activity, if any, and where do they
ties take place?
This documentation type provides information about activities during the Integrate and Extend phase of the
Activity List in business configuration. These activities involve migrating or maintaining core master data as a
prerequisite for other fine-tuning, migration, or testing activities. The purpose of this documentation type is to
advise a user how to perform an activity and why an activity must be carried out during the configuration
phase. Detailed instructions for actually carrying out the steps within the activity can come in the form of links
to other existing documents.
Steps What are the steps the user has to perform in this activity?
Follow-Up Activi What other activities have to be performed after this activity?
ties
Overview
This document provides a brief overview of the reference documentation types specific to Health Checks and
the Support Case Library (troubleshooting documentation).
A health check is an incident generated by the system when functions or applications are not operating
properly. The reference documentation provides information about the cause of the incident and the
information required to resolve the issue.
This reference documentation provides information about the symptoms, cause, and resolution of system
issues that are reported as incidents. Each case document covers one specific issue which may in turn be
relevant to one or more related incidents.
Case documents provide a practical, searchable medium for quickly identifying solutions to system issues and
answers to questions raised by customers. Their purpose is to reduce the number of reported incidents by
making solutions readily available.
● How-to explanations
● Assistance with changes to business configuration or master data
● Workarounds
● Explanations of system behavior
Reproducing the Can you outline the events or actions that led to the issue?
Issue
How can the issue be reproduced?
See Also Where can the user find more information? (cross-reference)
Overview
● Analytics
● Business Task Management
● Business Background Essentials
● Tasks (How-To Documentation)
● Org Functions
● Work Categories
Analytics Documentation
This reference documentation provides information about analytic content that is displayed on the user
interface. This includes the following types of objects:
● Data sources: multidimensional analytical views (MDAVs), key figure structures, and key figure grids.
Overview of data sources documentation provides information about the multidimensional analytical view
(MDAV), key figure structures, and key figure grids that make data available for reports in a particular area,
such as Customer Relationship Management. This type of documentation is available in the guided quick
activity for creating reports and is linked in documentation related to reports.
Title For which super area is the overview of data sources? For example, Overview of Data Sources for
Customer Relationship Management
Available Data Sources What MDAVs are available in the super area?
Selected Data Sources Do any MDAVs, key figure structures, and key figure grids require detailed documentation?
Available Key Figure What key figure structures and key figure grids are available in the area?
Groups
Common Characteris Which basic characteristics and key figures are available that are used in multiple reports?
tics and Key Figures
● Reports
Report documentation provides information about a compilation of data for evaluation that can be
presented in the form of a table, list, text, graph, or combination of these. It is used in detailed scoping and
fine-tuning, as well as by users in the application. In scoping in the business options for reports, the
Overview keyblock of the documentation is displayed. In the Reports views, the full report documentation
is displayed.
Features Are all of the following document subheadings relevant for the report?
● Overview of Reports
Overview of reports documentation provides information about the reports that are available in a particular
area, such as Customer Relationship Management by report category. It also contains information about
relevant variables in the area. The embedded reports available in the super area are also listed. Overview of
Reports documentation is available in the Reports view.
Title For which area is the overview of reports? For example, Overview of Reports for Customer Rela
tionship Management
Common Variables What are the basic variables relevant for reports?
This reference documentation provides information that enables users to understand and process a particular
task type effectively. Each task type document explains the purpose and business process context of a
particular task type in the system, why a particular user receives the task, what kind of response is required,
what the follow-up process steps are, and which elements can be configured.
Overview What kind of task type is this and why was it created?
Relevance Why has this task type appeared in the user's worklist(s)?
Response What are the possible actions I can take in responding to this task?
What is the result of each possible action, and what are the business and workflow implications?
See Also Where can the user find more information? (cross-reference)
This reference documentation covers the concepts and processes that form the SAP cloud solution. Therefore,
a differentiation is made between the following types:
● Concept Documents
Concept documents cover a general business concept or technical concept that has a particular
implementation in the SAP cloud solution. A concept can be specific to one or more views or can span
several business areas or even application areas.
Overview When and why is the concept relevant for the target group?
What does the target group need to know about the concept?
Prerequisites Are there any steps or settings (for example, business configuration activities) that need to be car
ried out before execution of this concept is possible?
Freestyle Subheadings Which keyblock header(s) are needed to structure the document in a meaningful way?
See Also Where can the user find more information? (cross-reference)
● Process Documents
Process documents cover a sequence of logically related events or steps that have a specific outcome or
result in the SAP cloud solution. A process can be specific to one or more views, or can span several
business areas or even application areas.
Overview When and why is the process relevant for the target group?
What does the target group need to know about the process?
Prerequisites Are there any steps or settings (for example, business configuration activities) that need to be car
ried out before this process can be executed?
See Also Where can the user find more information? (cross-reference)
How-To Documentation
This reference documentation provides a user with the step-by-step information they require to be able to
perform a task in the system. Typically, it also includes information that the user needs to know before and
after the completion of a task.
Title What is the name of the task? Precede the activity name by a verb, for example Create Opportu
nity.
Does the user need any additional background information to help them understand the concept
behind the task?
Prerequisites What does the user need to do before performing this task?
Which basic settings need to be in place before the user can perform this task?
What are the preceding processes or tasks, and where do they take place?
Steps What specific action does the user need to take to perform this task?
In which sequence should the user perform these steps? (If applicable, also explain what the result
of each successive action is.)
Result Does the completion of this task trigger further processes or tasks, or does it have an impact on
other processes or tasks?
See Also Where can the user find more information related to this task? (cross-reference)
An org function is a predefined entity in the system that denotes functional responsibility for aspects of one or
more business processes. In Organizational Management (OM), the administrator in the SAP cloud solution
assigns org functions to org units in order to define the role of each org unit within the context of the
organization’s overall business operation. The org function assignment for a given org unit influences work
center/tab proposals for users assigned to this org unit. Each org function document describes a specific org
function in terms of the associated business processes, business documents, and work centers. The purpose
of org function documentation is to support the OM administrator who is responsible for modeling the org
structure and assigning org functions to the org units.
What are the associated business processes, business documents, and tasks?
Relevance From an organizational and operational point of view, when or why should the customer use this
org function?
What are the implications of not using it? What are the benefits?
Configuration What are the business configuration prerequisites for using this org function?
Constraints What constraints apply to the use of this org function within the context of the org structure?
Work Distribution Which work category or work categories are associated with this org function?
Example Is there an example that shows how this org function can be used?
See Also Where can the user find more information related to this org function? (cross-reference)
A Quick Guide provides a user with a “quick” overview of a view. It is also the central entry point for accessing
more detailed information related to the view. That is, for a more in-depth understanding, the user has the
option of reading the documents linked from the Quick Guide. The Quick Guide provides the following key
elements:
Title What is the name of the view followed by “Quick Guide”? For example, “Opportunities Quick
Guide”.
A work category (also known as responsibility) represents a type of work related to an org function. It contains
rules that determine which set of work items is distributed to which org unit or employee. This is known as the
process of work distribution where a work item can be any business document or a task in Business Task
Management (BTM).
The distribution of work items is usually defined by the access rights that are given to a user. However, by using
work categories, work items can be directly assigned to a specific org unit or employee. Each work category
provides a set of parameters that can be used to define work distribution rules for the related work items.
The system provides specific work categories for organizational work distribution and employee work
distribution.
Each work category document describes a specific work category in terms of the associated business process,
business documents, tasks, parameters, and work distribution rules. The primary purpose of work category
content is to support administrators who are responsible for effective distribution of work in the system.
Overview Is the work category relevant to organizational work distribution or employee work distribution?
Prerequisites What are the prerequisites for using this work category?
Are there any configuration (fine-tuning) activities that are relevant for this work category?
Work Category Param Which parameters are used to determine the responsibility?
eters
Work Distribution How does this work category support the distribution of work in the system?
Example Is there an example that shows how this work category can be used?
See Also Where can the user find more information related to this work category? (cross-reference)
Overview
This document provides a brief overview of documenting release information covering changes to the system
between releases.
Business Configuration (BC) Delta documentation provides information on all changes that have taken place
since the last release in the configuration of the system that impact customer settings.
The changes usually refer to settings that the customer performed during scoping and to settings made from
the activity list. These scope selections and activities are reflected in elements in the business adaptation
catalog (BAC). The BAC elements are known as business configuration elements.
Relevance What elements did the customer select in order to include this element in their scope?
Required Ac What are the activities that are required from the customer?
tions
What’s New documentation is a series of documents that, taken as a whole, describes what is new and what
has been changed or deleted in a particular version of the standard system. The first document in the series
describes system-wide changes. Depending on the level of change within each area and its parts, other
documents may be created for specific areas (for example, for Customer Relationship Management), topics
(for example, Organizational Management), or views (for example, Opportunities).
Overview To which version and area of the solution does this information apply?
What are the business benefits of using the new development or function for the customer?
How does the new development or function affect the user interface (for example, fields, menu paths,
and screen title)? Only mention implications that are relevant for the customer.
What actions must the customer take to use the new function (for example, in business configuration)?
How does the new development or function affect existing data such as master data or transactional
data?
What is the impact of this new development or function on other areas of the solution (for example, on
business processes or scenarios)?
How does the changed development or function affect the user interface (for example, fields, menu
paths, and screen title)? Only mention changes that are relevant for the customer.
What actions must the customer take to use the changed function (for example, in business configura-
tion)?
How does the changed development or changed function affect existing data such as master data or
transactional data?
What is the impact of this change on other areas of the solution (for example, on business processes or
scenarios)?
How does the new/changed development or function affect the user interface (for example, fields, menu
paths, and screen title)? Only mention changes that are relevant for the customer.
What actions must the customer take to use the new or changed function (for example, in business con
figuration)?
How does the new development or changed function affect existing data such as master data, or trans
actional data?
What is the impact of this change on other areas of the solution (for example, on business processes or
scenarios)?
See Also Where can I find further information about related topics (for example, related BC Delta documents)?
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 http://
www.sap.com/corporate-en/legal/copyright/index.epx for additional trademark information and notices.
This glossary defines terms that you will encounter while working in the studio and with the product
documentation.
access control A method of allowing and restricting user access rights for a work center view based
on the access control list of a business object. For example, instance-based access
control can be used to allow access to company-specific data only.
access control list A list of access groups that is needed to perform authorization checks for business
object instances.
action A script file that executes business logic at a particular point in time within the
business object’s lifecycle. Actions can be triggered from the user interface or from
events or other actions.
action code A coded representation of an instruction to the recipient of an XML message. For
example, 01 is the action code for Create, 02 for Change, and so on.
activity list A structured collection of mandatory and critical tasks, generated from the
customer's scoping, that must be completed either before the solution can go live for
the first time or before changes can be implemented later in the solution life cycle.
The activity list may also include optional activities that can be completed at any
stage.
add-on solution A solution that enables the implementation of additional business logic in an SAP
solution and the development of enhanced functions for business users.
administrator A system user who has administrator rights in an SAP cloud solution. You use this
user in the studio if you want to define analytics content or create a mashup. To use
the administrator user, you enable admin mode for a solution in the studio.
advanced search A search that allows the user to combine free text search and attribute search. The
user can specify the search, display, and filter options to locate the item they require.
alert A task with the highest available priority that requires immediate user action.
alternative key An annotation with which you define a unique key of a business object node. You can
it in an association and it is stored as an additional key field in data searches and
queries.
Analytics Analytics provides you with the necessary infrastructure for the analysis of your
enterprise. A set of predefined reports from all business areas is available that cover
the most important reporting needs.
Application and User A work center that allows administrators to perform application administration tasks
Management and to manage access rights.
application log A support mechanism for mass data runs. Mass data runs run in the background. No
direct feedback is provided to the user on what exactly has happened is given, so the
application log allows users to retrace the results.
approval notification An electronic message sent to the requester to indicate that approval has been
granted or rejected by the authorized approver.
approval process One or multiple steps by which a business document is addressed to one or more
employees responsible for approval, including any defined conditions.
Approval Processes A work center view in which you can display, edit, copy, and delete versions of
approval processes related to business documents.
approval status An indicator of the step reached in the approval workflow of an object, for example,
an invoice that has to be reviewed by an authorized approver could be listed as
"waiting for approval".
approval task A part of an approval process. Approval tasks are approval, approval/rejection
notifications, and revision.
Approval Wizard A guided activity for creating a default approval process for a custom business object
in the studio.
assigned work centers A work center which a user can access to do their work.
asynchronous A form of electronic communication that does not take place in real time. E-mail is an
communication example of electronic asynchronous communication.
availability The capacity of a service or a component to fulfill its required function at a specific
moment or over a set time period. Usually, this is measured using an availability ratio,
which compares the length of time that the service has been available with the
duration agreed with the customer.
BAC element A project item for business configuration such as a business option or a business
topic that is required to activate a solution in a customer system. In the standard
SAP solution, a BAC element is a scoping element and can refer to any level of the
business adaptation catalog hierarchy, including business packages, business topics,
and business options.
business adaptation A central structure that uses business language to describe and organize all the
catalog capabilities of SAP solutions. It structures the capabilities into a hierarchy of
business areas, packages, topics, and options. Customers and prospects make
selections from the catalog based on their specific business needs. The catalog
enables change both during the initial setup of the solution and throughout its life
cycle.
Business Analytics A work center that enables key users to create and assign reports, and to create and
edit key performance indicator evaluations.
business area The first and highest level in the hierarchy of the business adaptation catalog. It
represents the collective group of functions that the solution supports in a specific
part of the company. Examples are sales and human resources. Each business area
contains a number of business packages.
business configuration The process of adapting the solution to the day-to-day business requirements of the
customer at any time in the life cycle of the solution without the need for technical
skills.
Business A work center where users can configure the solution to meet their specific business
Configuration requirements. You can access the Business Configuration work center both before
and after initial go live, but different functionality is available to you depending on
what stage you are at in configuring your solution.
business configuration Project items that are anchored in the business adaptation catalog to allow key users
content to implement a solution in the production system. Examples include business
options and business topics, business configuration sets, and business configuration
views.
business configuration A project item for business configuration that represents a configuration table and is
object used to create business configuration sets. A business configuration object is a
business object category.
Business A guided activity for creating a business configuration object that is then used to
Configuration Object create a business configuration set.
Wizard
business configuration A technical container for the configuration settings and corresponding values that
set are associated with a business option. The content in a BC set is deployed to the
runtime environment where it is loaded into the underlying configuration tables.
Each configuration setting in a BC set has attributes that specify whether it is hidden,
visible, or changeable for customers.
Business A guided activity for creating business options and business topics and anchoring
Configuration Wizard this business configuration content in the business adaptation catalog.
business document A representation of a business object that has a definite format and contains
structured information necessary for business transactions. Examples include
invoices, quotes, proposals, requests, purchase orders, and production orders.
business object A model of a real-world object, for example, an employee or a sales order in business
application systems.
business object An SAP business object that has been extended to include additional fields.
extension
business object A representation of the object type of a business object. For example, the sales order
instance numbers 12345 and 56789 are instances of the Sales Order business object type.
business option The fourth level in the hierarchy of the business adaptation catalog. Business options
can be hidden or can appear in scoping, fine-tuning, and/or the solution proposal. It
represents the most detailed decision level involved in defining or adapting a solution
capability. Each business option specifies a particular way to perform a function. It is
based on predefined content. Examples are General Ledger Accounting and
Customers. Each business option belongs to a business topic.
business package The second level in the hierarchy of the business adaptation catalog. It covers the
organization, processes, management support and master data of a given
application area. Each business package belongs to a business area and contains a
number of business topics.
Business Task An integral part of the system which manages the prioritization and assignment of
Management tasks to the appropriate users.
Business Task A work center view that enables users to monitor unassigned items and automated
Management tasks with errors.
business topic The third level in the hierarchy of the business adaptation catalog. It relates to
specific functions within an application area. Examples are Account Management
and Time Administration. Each business topic belongs to a business package and
contains a number of business options.
business user A user that can log on to the system. You grant access rights to users by assigning
work centers or work center views to their business user.
business-to-business Electronic transactions between one business and another, for example, between a
supplier and a retailer. Business-to-business transactions are typically high volume
and involve a long-standing business relationship.
calculated key figure A key figure that is determined using calculation rules or formulas.
characteristic A field according to which values are selected. Characteristics are alphanumeric,
numeric, or text values. Examples include Product ID, Supplier, and Purchase Order
Status.
chart of accounts A systematic listing of all general ledger accounts used by an organization of one or
more companies, normally in alphanumeric order.
clarification request A manually created task used for asking another user for more information on an
item.
cloud solution Software hosted by SAP, for example, SAP Business ByDesign.
code list A field with a set of predefined values that is of data type Code.
Code List Data Type A guided activity for creating a static code list in the studio.
Wizard
collection A table that is defined on the basis of business object nodes or node elements, for
example, a collection of sales order items.
combined data source A type of data source that combines two or more data sources. The data sources of
which the combined data source consists usually have a set of common
characteristics but semantically different key figures.
common task A task that you perform frequently, such as creating a sales order.
communication A set of predefined services for a business process that can be used to create a
scenario communication arrangement.
communication A system that is used for application integration between the solution and an internal
system or external system. Communication systems can be, for example, external time
recording or master data systems.
compliance The process of conforming to a specification, standard or law, for example a law
relating to data protection.
condition A predefined filter to restrict the data displayed to a specified characteristic and key
figure. There are two types of conditions: simple and ranked.
Configuration Explorer A tool window in the UI designer that displays the SAP repository content.
content area The area of the application window for performing user tasks. The content area is
visible on every page and changes when the user navigates from one page to
another.
Controller A tab in the content area of the user interface designer. On the Controller tab, you
define the interaction between user interface components by creating event
handlers, interfaces, navigations, and queries.
Core Component Describes a methodology for semantic data modeling that achieves a common
Technical Specification understanding of data message types on a syntax independent level. Developed by
UN/CEFACT and ISO Technical Committee.
Create Form Wizard A guided activity for creating print forms, defining form properties, and defining
country and language-specific form variants.
custom business A business configuration object created as part of a solution in the software
configuration object development kit.
custom business A business object defined as part of a solution in the software development kit.
object
custom control A user interface control created in Microsoft Visual Studio using Microsoft Silverlight.
The control can be used in the studio to enhance screens in the SAP solution.
custom pane A user interface pane created in Microsoft Visual Studio using Microsoft Silverlight.
The control can be used in the studio to enhance screens in SAP solutions.
custom query A query created as part of a solution in the software development kit.
custom reuse library A collection of user-defined functions. You can use a library to organize the code in
your solution or to reuse code in several script files.
customer-specific A partner solution that the partner designs and develops for a specific customer.
solution
Data Model Part of the BO Browser/Data Model tool window and tab in the content area of the
user interface designer. The Data Model displays the data structure of the business
data source An object containing key figures and characteristics, which provides a
multidimensional view of business data for reporting.
Data Source Wizard A guided activity for creating and defining a data source. In addition, you can define
transformation rules, define aggregation behavior for key figures, and reference
other data sources.
default approval A process created in the studio for a custom business object for use in an SAP
process solution. A default approval process has one approval step, no conditions, and
unlimited validity.
dependent object A reusable part of a business object that cannot stand alone but can only be used in
the context of the business object.
deploy business Make business configuration content created in the studio available in the system.
configuration
deployment unit A piece of software that can be operated on a separate system isolated from other
pieces of software. All deployment units can communicate directly with the
Foundation deployment unit.
derived name The default naming convention provided by the software development kit to name a
message data type in a Web service operation. A derived name is based on the
names of the service operation and the business object element on which the service
operation is allowed to be performed.
Design Data Sources A work center view in which you can create, edit, and delete data sources and create
reports.
Designer A tab in the content area of the user interface designer. On the Designer tab, you
design the user interface of an application with the controls available in the Toolbox.
Design Reports A work center view in which you can create, edit, delete, and assign reports to work
center views.
details area An area of the screen providing details about a user selection. For example, if a user
selects a row in a work list, the details area provides details about that row.
developer desktop The user interface of the studio that presents and provides access to development
tools in an integrated development environment (IDE).
dialog box A box on the screen that a user must respond to before resuming work. Sometimes
the user prompts the dialog box to display and sometimes it displays without
prompting.
element A component of the business adaptation catalog. An element is a general term that
can refer to any level of the catalog hierarchy, for example, a business package, topic,
or option.
element Part of a business object. Elements are displayed as fields on the UI.
embedded component A reuseable user interface component that can be added to other floorplans.
embedded report A report that is embedded in a specific context, such as in an overview document.
Employee Work A work center view that enables the key user to define users responsible for specific
Distribution work items.
endpoint A location for accessing a Web service using a specific protocol and data format.
enhanced controller A special business object created only for user interface scenarios. It is needed to
object implement certain functions and message handling. It is also used when two
business objects have to interact in a way that is not declarable using existing tools.
enhancement option An entity provided by SAP to allow the standard behavior of a specific application,
such as Financials, to be enhanced without modifying the standard solution.
enhancement option An attribute that indicates whether an enhancement option is for single use or
type multiple use.
enterprise search An application that allows you to locate and view data stored in your system. You can
search for structured, for example purchase orders, and unstructured data, for
example Microsoft Word documents. This data is organized into the following
categories: Files, People, Reports, and Business Objects.
error message A message informing a user about an error. The message typically explains what
went wrong, why it went wrong, and what the user can do about it. Most error
messages display in the message area of the screen. However, if the system requires
that the user must respond to an error, the error message displays in a dialog box.
event A script file that executes business logic at a particular point in time within the
business object’s lifecycle, for example, before save or after modify.
exception A deviation from a defined threshold value or interval. Exceptions can be applied to
data, results, or a combination thereof and can be displayed as an arrow, background
color, or traffic light.
exception aggregation Aggregation behavior, which deviates from standard aggregation (such as
summation), for values of a calculated key figure. The deviation is only valid for a
specified characteristic.
Extensibility Explorer A tool window that displays the anchors attached to a floorplan.
extension field A field that has been added to an SAP business object. Extension fields can be used,
for example, in screens, forms, reports, and search categories.
extension scenario A representation of all business contexts that are part of a process flow in which an
extension field may be involved.
External Web Service A guided activity for integrating an external Web service into the partner solution
Integration Wizard using SOAP or REST.
fact sheet A fact sheet is a one-page read-only overview of an object. It displays the object
properties, can have different views, and can contain links for navigating to related
objects. You can model this overview in the UI designer.
favorites A location where hyperlinks to commonly viewed content (for example, reports and
business documents) or Web pages can be stored and easily accessed.
file input A general method for uploading external data files on specific interfaces into an SAP
solution.
file input run A mass data run that uploads data files from external applications into the SAP cloud
solution, using existing service interfaces.
filter A project item that belongs to an enhancement implementation that allows users to
work with a specific set of data.
fine-tuning The configuration of the solution to meet customer requirements that exceed the
level of predefined content in the software. It is based on input and selections made
during scoping and occurs before the solution goes live.
fine-tuning project A project item for business configuration that contains predefined fine-tuning
template activities for a specific scenario that is defined by SAP, such as Financials: Chart of
Account.
flag The marking of a business document for later reference, using a flag icon.
foreign key A relationship between two business object nodes for which the alternative key of the
relationship target node is specified.
form data type A form-specific data type based on an existing data type.
form data type An SAP form data type that has been extended to include additional fields.
extension
Form Template A work center view that enables key users to create form template rules for business
Selection documents.
front-end script A programming language used in the User Interface Designer to define rules and
logic that determine the behavior of user interface (UI) controls. For example, you
can write a front-end script that enables an Edit button only when a user selects a
field on the UI.
full-text search Search on an index that contains all words that occur in the indexed documents
instead of only abstracts or other metadata.
Gantt chart A graphical display of schedule-related information. Project elements are listed on
the left of the chart, the timescale is across the top, and activity durations are shown
as date-based horizontal bars.
guided activity A secondary window consisting of a series of interactive screens that guides you
through each step of a particular activity. For example, the New Invoice guided
activity guides the user through the steps involved in creating a new invoice.
Guided Activity A floorplan for an activity that can be divided into a logical sequence of steps. It
Floorplan consists of a series of screens that guide the user through an activity to complete a
specific task.
HTML mashup A mashup that integrates HyperText Markup Language (HTML) or JavaScript
content as embedded content. Examples include an online map, a widget, or social
networking information.
icon A small pictorial or graphical image that represents an object, action, or status.
inbound service A Web service that a partner creates based on an SAP business object or a custom
business object.
Incidents A work center view in which a key user resolves incidents or forwards them to the
provider for resolution.
information icon A symbol on the user interface that can be found next to entry fields. When you click
on the icon, the system displays useful text.
inport A port configured to receive a navigation key from the source user interface. This key
is used by the target user interface to fill business data.
input field Element of the user interface. An input field consists of a field name and an input
area. You can enter and edit texts in the input area.
installation key A series of numbers generated by the partner for a multi-customer solution. The
installation key enables the partner to upload the solution to a customer tenant.
item A business object, record, or piece of information in the system. Examples are
Account, Contact, Lead, and feed update.
joined data source A type of data source that joins two or more data sources. The joined data source
consists of a subset of characteristics that are the same in the data sources to be
joined along with semantically different key figures.
key figure A field according to which values are selected. Key figures are numeric values that
have a unit of measure or currency assigned. Examples include Invoice Net Value and
Purchase Order Quantity.
key figure grid A group consisting of a key figure structure and a characteristic structure for
reporting on two axes.
key figure structure A group of predefined key figures for reporting on one axis.
local help Context-sensitive studio documentation that is displayed in the MS Help Viewer
where you can use a full-text search.
local trace A trace that is run in the system in which it was created.
localization The process of adapting a product to meet the needs and expectations of a specific
country or region, with respect to language, laws, business practices, or culture.
log out To end a previously authenticated session of the application. When you log out, you
can no longer use the application. To use the application again, you must log in again.
maintenance mode The status of a solution after it has been assembled. You can make changes to the
solution in a patch but only restricted changes to certain content types. With these
change and delete restrictions, SAP wants to avoid loss of data as well as
inconsistencies and errors in the productive customer's solution.
mashup A Web service or application that has been integrated into an SAP cloud solution.
Mashups combine and transform internal business data with information or services
provided by external online service providers.
Mashup Authoring A work center view in which key users or administrators can create and edit
mashups.
mashup in-port The incoming data connection between a screen and a mashup. The mashup in-port
is used to input business data from the system into the mashup. This data comes
from the screen out-port and can contain multiple parameters.
mashup solution A solution that enables the integration of Web-based applications or services into the
user interface of SAP's cloud solution. An example is the integration of a Web
application for maps and route planning into a user interface displaying the address
of a business contact.
mashup type The categorization of mashups by the technology on which they are based. Examples
include a URL mashup or HTML mashup.
mashup Web service A third-party Web service that a key user or an administrator can integrate into an
SAP cloud solution so that it can be used by mashups.
Mashup Web Services A work center view in which key users or administrators can integrate third-party
Web services into an SAP solution so that they can be used by mashups.
mass data run The automatic mass processing of a business transaction. An invoice run is an
example of a mass data run.
mass data run object A business object specifying an automatic mass processing of a business
transaction. It contains the selection criteria and the processing results.
Mass Data Run Wizard A guided activity for creating a mass data run for a custom business object in the
studio.
mass-enabled script An action or event that can be executed for multiple instances of a business object
file node.
message definition A system notification and its attributes defined to assist customers who work with an
enhancement implementation.
modal dialog A small window that helps the user to perform a task. It is triggered from a calling
application and has to be completed before the user can continue to work in the
calling application.
multi-customer A partner solution that the partner can sell to multiple customers.
solution
multiple-use Identifies an enhancement option that can be implemented more than once in the
enhancement option same solution.
My Solutions A tool window in the studio in which you can create and access solutions in the
repository of SAP's cloud solution.
navigation The means by which a user can move around, within and between, screens.
Navigation elements include menus, links, and standard buttons such as Back,
Forward, and Exit.
non-extendable node A node of an SAP business object that cannot be enhanced with additional fields, the
so-called extension fields.
notification Defined as part of the default approval process. Notifications are sent to the
participants of an approval process to inform them of a task to be carried out. In the
studio, you can define an approval notification and a rejection notification.
Notification Rules A guided activity for enabling notification rules for a custom business object in the
Wizard studio.
object-based A type of user interface interaction. When you create an object-based screen
navigation scenario, you create a work center with an object work list, a quick activity floorplan
and an object instance floorplan.
object instance A combination of UI patterns arranged in a specific order that allows users to create,
floorplan delete, view, and edit attributes and associations of a business object.
object work list A list pane that is embedded in a work center view.
online help Built-in documentation for the studio that is displayed in the Web browser.
operator A symbol that describes an operation to take place between two or more values.
outbound service An external Web service that a partner integrates into the cloud solution.
outport A port configured to pass the navigation key from the source user interface to the
target user interface.
Output Channel A work center view that enables key users to create output channel rules for the
Selection process-integrated output of business documents.
partner solution A business solution that is designed and developed by an SAP partner to enhance an
SAP cloud solution.
port binding A grouping of predefined screen out-ports and in-ports that can be used to create a
mashup. The port binding defines the type of information that can be used in the
mashup and defines on which screens you can use the mashup.
port type package A blueprint for an inport or an outport. A port type package hosts one or more port
types.
process An error that occurs if the system cannot process a message sent from one business
communication error object to another during an update of business data.
Process A work center view that allows key users to monitor application-to-application and
Communication Errors business-to-business communication errors.
process extension A type of extension scenario that links the data from one business context to other
scenario related business contexts. You create an extension scenario from a list of predefined
extension scenarios.
production A reserved space that is used by an individual prospect or customer to store all
environment information needed to operate its live solution and run its business. Since any
changes that are made here have a direct affect on the running system, the customer
typically performs changes and any related testing activities in a separate
environment before doing so in the live production environment.
production system A system used by the customer to work with the solution after it has gone live. This
system contains all of the elements required to run the customer's business
processes using the SAP cloud solution and can be adapted in the Business
Configuration work center using immediate changes and change projects.
project A container that is used to organize all items of a solution, for example, business
objects, screens, and business configuration content.
project item A file in a project, for example, a business object, a screen, or a form.
Property Explorer The Properties tool window of the user interface designer. You can view and change
properties for each element in the user interface model.
provider The party responsible for providing IT services or a product to a customer. This can
be performed by an in-house provider or a third party.
public solution model Contains all entities in SAP's cloud solutions that are released for external
(PSM) consumers. External consumers can be partners who develop solutions on top of
SAP's cloud solutions or administrators who create new reports.
Query Wizard A guided activity for creating a query, selecting query fields, and defining query
parameters.
quick activity floorplan A screen layout that allows users to quickly perform a self-contained or short
subtask of a larger task.
quick create floorplan A preview of detailed information on a thing that a user can see without navigating
away from the UI currently displayed. Data shown in a quick create view cannot be
edited.
quick view floorplan A slide-in window, which allows users to edit data without navigating away from the
UI currently displayed.
radio button Element of the graphical user interface. A radio button consists of a round element
and a descriptive text. You can use a radio button to select one item only from a list of
items.
radio button group A control in the Toolbox that consists of a UI text and two radio buttons.
refresh To update a screen, or part of a screen, so that it displays the most current
information.
report A compilation of data for evaluation where online analysis and drill-down is
supported in every possible direction and on a very detailed level. Analytical reports
are ideal for detailed root cause analysis.
report category A category by which reports are grouped from a business perspective.
report incident A function that allows the user to report an incident from any screen within the
application.
report wizard A guided activity with which you can create or change your own reports.
Repository Explorer A tool window that displays SAP content, such as business objects and data types,
which is released with the public solution model (PSM). It also displays the
documentation for the different entities.
reset A function that enables you to return to the original state of a document or
application.
resolution The action taken to solve an incident. Examples of resolutions include patches and
work-arounds.
REST Web service An HTTP-based Web service that is based on REST (Representational state transfer)
architectural concepts.
revision Task that is part of the approval process. It is sent to the person who created the
approval process and informs him or her that the approver has requested changes to
the request.
revision task The task created by the system requiring a user to change data entered because it
contains errors or because a change is necessary.
rollover explanation A brief text that provides instructions or other explanatory information about UI
elements, such as fields, buttons, column headers, tab titles, radio buttons, and
check boxes, in cases where the label is not self-explanatory. A rollover explanation is
displayed when the user points the mouse cursor on the UI.
RSS A method for publishing content such as news headlines, blogs, or podcasts on the
Web using an XML (Extensible Markup Language) file format. The content is
automatically updated on a regular basis, and alerts users to new information.
RSS Feed A document that is either the entire text or the summary of the content of an
associated Web site.
RSS/Atom Web A Web feed using Really Simple Syndication (RSS) or Atom standards.
service
SAP Cloud A software development kit (SDK) that enables SAP partners to adapt and enhance
Applications Studio the solution capabilities of SAP's cloud solution. The development tools provided are
presented in an integrated development environment (IDE) based on Microsoft
Visual Studio.
SAP reuse library A collection of functions provided by SAP that you can use to perform common tasks
such as date conversion or time calculation.
scoping The process of matching business requirements to the capabilities of the solution,
using the business adaptation catalog.
scoping question An important question the customer answers during scoping to select or deselect a
business option from the business adaptation catalog. An example of a scoping
question for the Data Migration business topic is “Do you want to migrate data using
the built-in migration tool?”
screen out-port The outgoing data connection from a screen to a mashup. This allows the data from
the screen to be passed to a mashup in-port.
script file A project item that contains business logic for a solution.
scripting language The programming language used in the studio to define business objects and
business object extensions and to implement the business logic.
scripting language A program that transforms code written in the studio into a language that can be
compiler used to execute the code.
search category A group of objects with a similar theme that allows users to limit the scope of a
search. Categories include Files, Reports, Business Objects, and People, for example
employees.
search criteria The specific values that you look for while doing a search. For example, if you search
for all documents created on a certain date, that date is the search criteria.
search result A list generated after the user specifies the search criteria and executes a search.
section group An area on the UI that contains information such as fields, links, or lists that belong
together semantically.
segregation of duties A measure used in the prevention of fraud by separating business processes so that
more than one person is responsible for completing a task. This is done by assigning
access rights and distributing responsibility between several users in the aim of
reducing errors and preventing fraud.
Service Integration A guided activity for creating message-based communication between a business
Wizard object and another communication partner, such as a business object in a different
deployment unit or a different system.
service level An agreement with the customer for the assurance of a specific service within a
agreement predefined period of time. Service Level Agreements (SLA) define the attributes for
service product (for example, maintenance, hotline) that have been agreed upon with
the customer in service contracts. The SLA confirms different parameters, such as
response time, availability time and system availability. The SLA effects the pricing
for each contract item and the date calculation in the service order, to which the
relevant contract items refer.
service operation A specification of a function with a set of message types assigned as signature
exposed as a web service. It is grouped by interfaces.
Session A tool window that displays active user sessions and provides functions for deleting
Administration sessions and item locks.
Session Administrator A tool window that displays active user sessions and provides functions for deleting
sessions and item locks.
shortcut Quick access to a screen without using the common navigation path.
short ID An identifier used to identify custom work center views in the UI designer and in the
SAP cloud solution. You create the short ID in the "Create Screens" dialog in the
studio.
solution A container that is used to organize all items of a solution, for example, business
objects, screens, and business configuration content.
Solution Explorer A tool window in which you can add, edit, and delete project items.
solution proposal A document attached to an incident that describes a possible solution to the issue.
The processor attaches one or more solution proposals to an incident to provide the
requester with information about how to solve the issue.
solution template A container that is used to organize items that can be reused in customer-specific
solutions.
sort To rearrange the content of a column in a table in ascending or descending order. The
rest of the content in the table is rearranged accordingly.
source language The language from which text is translated. The source language supported by the
studio is English.
static code list A code list whose values cannot be changed by the customer. The static code list is
created in the studio by using the "Create a Code List Data Type" function.
system message A short text that provides information about system feedback to the user. System
message texts are displayed in the message region as error messages, warnings,
success, or information messages.
tab A label that the user clicks to access content. Tabs display horizontally in a tab strip
and are positioned above the content that they describe.
tag A non-hierarchical keyword or term that is attached to an item. Tags are used to
categorize or index items.
target language The language to which text is translated. The target languages supported by the
studio are German (DE), Spanish (ES), French (FR), Portuguese (PT), and Chinese
(ZH).
task type A predefined content type in the system. It has a set of properties such as task
category and related business document type which characterize the task. Each task
type is related to one task category.
tax decision tree A function that is created in the studio and used to automatically determine a tax
event for a country that does not have an SAP country version in SAP's cloud
solution.
Tax Decision Tree A guided activity for creating a tax decision tree.
Wizard
technical user A back-end process or service that is used to automate technical tasks in the system.
thing The fundamental component of the current UI design concept and the conceptual
entity with which end users work. Things are smart and portable work objects such
as a Material or a Business Partner. They embed attributes (data or images), related
objects, analytical data, and actions generated from metadata.
thing inspector Combination of UI patterns that allows the user to get a complete view of a thing. It
floorplan shows all aspects of a thing and is a compact summary of all primary attributes, the
tags, and the actions that can be carried out.
thing type floorplan Combination of UI patterns that describes the general UI properties of a thing, such
as its name and various icons on the UI, its binding against a business object, and its
key.
thing-based navigation A type of user interface interaction based on business objects defined as "things".
This type of navigation is used in SAP's cloud solutions (except for SAP Business
ByDesign).
tooltip A very short text that displays the name of a UI element when the label of the UI
element cannot be seen or is only partly displayed to the end user. A tooltip is
displayed when the user points the mouse cursor on the UI element.
Toolbox Tool window in the user interface designer. It provides the panes and controls that
can be used to design the layout of a user interface component on the Designer tab.
trace A trace that is attached to an incident. Incident traces are tied to the life span of the
incident.
trace sequence The series of recorded method calls and evaluated trace messages that are created
as a result of running a trace.
translatable text string An element of a computer readable file that represents a text, such as a field label, a
field value, or another user interface text element. A translatable text string can be
extracted from a file for translation into a target language.
translated text string An element of a computer readable file that represents a text, such as a field label, a
field value, or another user interface text element, and that has been translated into
a target language.
troubleshooting A set of documents that provide solutions for typical problems or user errors. These
documents are available in the advanced search and in the search for incident
reporting.
UI Designer A tool that is part of the studio and that is used to design or enhance the user
interface of the solution. You open the UI Designer via the studio.
UI switch A control in SAP's cloud solution that is used to restrict the visibility of UI changes.
unicode A 16-bit character set that represents commonly used characters, for example
letters and digits, in digital form. Unicode has a distinct advantage over the 8-bit
character set ASCII, in that it can render a much larger set of characters. For
example, Unicode can represent over 30,000 distinct coded characters, whereas
ASCII can only represent 128.
URL mashup A mashup that sends data from the system to SAP's cloud solution to the Uniform
Resource Locator (URL) of an online service provider. The service provider uses the
data, for example, to perform a search, and the results are displayed in a new
browser window.
user A business object created for an employee or a service again who needs to log onto
the system. It contains technical information such as a password and access rights.
Internal components also have user IDs assigned to them.
User and Access A work center view that is used to edit and review user attributes and access rights.
Management The User and Access Management view is a superordinate view of the Business
Users view and Support and Technical Users view.
user ID A unique identifier for an individual who interacts with the services supplied by a
system.
user interface A tool used to design or enhance the user interface of the solution.
designer
user management The process of managing all users on the system. This involves applying basic
settings such as user names and passwords, assigning users to work centers, and
placing restrictions on user access.
value selection The value selected to which a characteristic is restricted. The data shown in a report
is restricted to the values selected so that not all data is displayed.
variable A parameter of a report that restricts a characteristic to one or more specified value
selections.
Web service A Web-based application programming interface (API) that can be used to access
external data provided by online service providers. Using mashups, key users, and
partners can integrate data provided by Web services with internal data from SAP's
cloud solution.
Web service The process of authorizing users to access a business object by using a service
authorization operation.
Web Services An XML-based language that is used to describe the function of a Web service and
Description Language how Web services can be accessed.
Web Services A specification that supports you in searching for Web services that are available on a
Inspection Language specific Web site. As a result the Web services and their endpoints are listed in a Web
Service Inspection document.
window The element of the graphical user interface used for displaying data and applications.
work center An area where a user can perform tasks or functions that they are responsible for
within a company. Examples of work centers are Purchase Requests and Orders and
Personnel Administration.
work center proposals A list of work centers proposed by the system based on the organizational
assignment of the user.
XML Localization A standard XML-based file format used for exchanging bilingual content between
Interchange File systems during translation.
Format
XML Schema An XML-based language that offers facilities for describing the structure and for
Definition Language constraining the contents of XML documents.
This document is for informational purposes only. Its content is subject to change without notice, and SAP
does not warrant that it is error-free. SAP MAKES NO WARRANTIES, EXPRESS OR IMPLIED, OR OF
MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
Coding Samples
Any software coding or code lines/strings (“Code”) provided in this documentation are only examples and are
not intended for use in a productive system environment. The Code is only intended to better explain and
visualize the syntax and phrasing rules for certain SAP coding. SAP does not warrant the correctness or
completeness of the Code provided herein and SAP shall not be liable for errors or damages cause by use of
the Code, except where such damages were caused by SAP with intent or with gross negligence.
Internet Hyperlinks
The SAP documentation may contain hyperlinks to the Internet. These hyperlinks are intended to serve as a
hint where to find supplementary documentation. SAP does not warrant the availability and correctness of
such supplementary documentation or the ability to serve for a particular purpose. SAP shall not be liable for
any damages caused by the use of such documentation unless such damages have been caused by SAP's
gross negligence or willful misconduct.
Gender-Neutral Language
As far as possible, SAP documentation is gender neutral. Depending on the context, the reader is addressed
directly with "you", or a gender-neutral noun (such as “sales person” or “working days”) is used. If when
referring to members of both sexes, however, the third person singular cannot be avoided or a gender-neutral
noun does not exist, SAP reserves the right to use the masculine form of the noun and pronoun. This is to
ensure that the documentation remains comprehensible.
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.
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 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.