SAP4HANA
SAP4HANA
4 Search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.1 Simple Search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2 Advanced Search Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3 Using Advanced Search Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.4 Using Advanced Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.5 Saving Advanced Search Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.6 Related Search Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6 About Plans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.1 Plans Wizard Workspace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2 Creating a Plan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3 Adding Rules to a Plan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.4 Plan Assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Assigning a Plan by Title. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Assigning a Plan to a Specific Position. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.5 Editing a Plan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.6 Deleting a Plan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.7 Finding Objects Related to Plans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.8 Plan Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Plan Components Workspace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Creating a Plan Component. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Adding Rules to a Component. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
Adding a Component to a Plan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Editing a Component. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Deleting a Component. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Finding Objects Related to Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Audit History for Plan Component Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
14 Formulas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
14.1 Formulas Workspace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
14.2 Formula Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181
14.3 Legal Moves Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Available Legal Moves. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Formatting Items in the Expression (Formula) Edit Pane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
14.4 Using Legal Moves Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184
Specifying Strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Specifying Listed and Unlisted Data Fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Specifying References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Specifying Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
How Input to Formulas Determines Range of Use. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
14.5 Referencing Measurements and Incentives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Referencing an Incentive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Referencing a Measurement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
14.6 Creating a Formula. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
14.7 Editing a Formula. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
14.8 Deleting a Formula. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
14.9 Finding Objects Related to Formulas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
27 Modeling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .372
27.1 Modeling Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .372
27.2 Creating and Running Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
Adjusting Rate Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Adjusting Fixed Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
27.3 Model Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
27.4 Model Run Logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
27.5 Viewing Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
27.6 Using Proxies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .382
28 Integration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
28.1 Integration with SAP S/4HANA Cloud and S/4HANA Private Cloud. . . . . . . . . . . . . . . . . . . . . . . . 384
Integration Flow Prerequisites. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
System Preparation for Data Replication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Timer Setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Receiver Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
More Options (Partner Functions) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .399
Deploying the Integration Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Logging and Monitoring Integrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .402
Error and Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Email Notification Flow Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .403
Difference Between SAP S/4HANA and SAP SuccessFactors Incentive Management Data
Models. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Integration with SAP S/4HANA Cloud and S/4HANA Private Cloud - Glossary. . . . . . . . . . . . . . 407
28.2 Integration with SAP IdP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Bottom-Up User Synchronization with Identity Authentication . . . . . . . . . . . . . . . . . . . . . . . . 409
Top-Down User Synchronization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
About Identity Provisioning and Identity Authentication SSO Integration for SAP
SuccessFactors Incentive Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .439
Renewing SAML Certificates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
28.3 Integration with SAP Business Technology Platform (BTP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Default Catalogs for Automation Pilot and Alert Notification Service. . . . . . . . . . . . . . . . . . . . . 447
Importing the Default Catalog for SAP Alert Notification Service. . . . . . . . . . . . . . . . . . . . . . . 448
Importing the Default Core Catalog for SAP SuccessFactors Incentive Management . . . . . . . . . 451
Importing the Default Tenant Specific Catalog for SAP SuccessFactors Incentive Management
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Automation Pilot Core Catalog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Automation Pilot Tenant Specific Catalog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .483
Smart Detection Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
Commands for Running Data Sphere Task Chains. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .496
With this enhanced backend technology,SAP SuccessFactors Incentive Managements gains superior speed,
concurrency, scalability, and performance, helping you achieve lower downtime and higher availability. Splitting
the backend into microservices results in better performance throughout the SAP SuccessFactors Incentive
Management application.
• Zero downtime releases and maintenance assure no interruption in your business while enhancing the
application to bring more value to you. It also assures the next level of agility when your business requires
it.
• Ability to monitor each service, isolate and resolve issues quickly while maintaining maximum system
uptime in other areas. For e.g., if the email service is down, no emails can be sent, but the rest of the
system can be used.
• Enhanced application UI load time provides for an immediate improvement in User Experience and
efficiency of work.
This infrastructure modernization supports the expansion of the SAP Business Technology Platform across the
entire portfolio and provides a future-proof foundation for your business and people transformation.
Learn about configuring workspaces, organization data, compensation plans, rules, calculations, and more.
The administrator creates users and assigns them with the security roles that govern their access to different
operations. The administrator must provide users with a user account that includes a username and password.
The security role and its permission settings influence what users can and can’t access and what actions can or
can’t be performed. Furthermore, if business units are implemented, users can only access objects that belong
to those business units to which the user is assigned. See the Incentive Management Admin Tasks Guide for
more information about security roles, permissions, and access to business units.
Related Articles
Procedure
Choose the Sign Out option from the user profile to sign out of the system.
When you sign in to the system for the first time, the Default Period is set based on the Main monthly calendar.
When you specify a period for your default period, only those objects that are effective as of the last day of
that period are displayed. For example, if your period is July 2008, and there are three versions of a position
effective during that month—July 1 through July 10, July 11 to July 20, and July 21 to EOT—only the last version
(July 21 to EOT) is displayed. To see the other versions that are effective during July, you can use the Manage
Version icon to view, and modify other versions if necessary. As an alternative, you can also specify a specific
date for the default period.
Note
If you specify a period for your default period, objects that have been end-dated in that period are displayed
even though they are not current as of the last day of the period. For example, if the period specified is July
2008, all objects with effective end dates between July 1 and July 30 are displayed.
1. The Default Period is displayed on the top-right of the application. Choose Calendar next to the Default
Period.
2. Select a calendar from the Select Default Period dialog.
3. Select the Period or search from the auto-populated search bar.
5. Choose Apply.
Note
If a period is selected, the name of the period displays in the Default Period field. If you specify a date, that
date displays in the Default Period field. The Calendars and periods displayed depend on what calendars
have been set up by the administrator.
Alternatively, you can use the Set my default view period to preference in Manage Setup > Preferences >
User Preferences to determine the default period that should be used on subsequent sign-ins.
Related Information
Application elements:
• Application Menu: From the application menu, you can navigate to related components and integrated
applications. The available applications might vary depending on what products are installed.
• Profile: Enables you to select the user account you want to Proxy As, configure your profile settings, and
sign out of the application .
• Help: Provides links to the application help content and other resources.
• Feedback: Enables you to provide your feedback about the Incentive Management solution. The brief
1-minute survey is anonymous and does not collect personal data. Please refrain from sharing any personal
information in your feedback.
Search Options:
The system provides you with the following search options depending on the workspace:
Related Information
This section contains a summarized view of the record. You can add or remove columns to the summarized
view using the Configure Summary View option in the toolbar. Here's an illustration of the configuration.
In the Configure Summary View popup, you can add or remove columns from Available Fields and Current Fields
using the drag-drop method. However, mandatory fields cannot be deselected from the Current fields section.
If you have appropriate security access, you can customize names of objects and object attributes in the
Customization workspace.
In the summary view, you can change the sort priority and order the columns. If the information was sorted
when the original search was done, the sort indicator arrow indicates whether the sort was ascending (an up
arrow) or descending (a down arrow). You can choose a column label to re-sort that column and change its sort
priority to primary. If a column was not included in the original sort priority, it can be added by clicking its label.
When a column is added, its sort priority defaults to primary, and the sort order defaults to ascending.
Note
List attributes, such as business units, cannot be added to the sort priority. A list attribute is an attribute
that can have a single value, multiple values, or, in some instances, no (null) values.
You can resize some dialogs and windows to display more data. For example, the Versions dialog can be resized
to display more fields. If you attempt to edit an object in the system that is being edited by another user, the
system displays a warning message: There are errors in your form. Please correct them before saving.
Many workspaces are divided into Summary View and Details View. The views are also referred to as the
'Summary panel' and 'Details panel' in the documentation.
The Summary View displays the list of records by default, allows you to access the details of a record, enables
users to perform actions on a selected record, and shows the object record count as well as the pagination
information. The checkbox option can be used only to select records to perform the actions available in the
toolbar. In several workspaces, you can view the summary in list view or tree view.
The following images illustrate the Summary View and Details View.
You can view the data table and the details of the record in a side-by-side (split view) without losing context.
Use the Configure Summary View and Configure Details View options to configure your display.
View As List
Certain workspaces give you different view options for viewing your summary data in a list or tree view. If a
workspace has a list view option, then the view defaults to list view when you first access that workspace. If you
subsequently select tree view, the workspace displays in the tree view the next time user access it during the
same working session.
When you navigate to a workspace in list view for the first time during a session, the summary view populates
objects to fill the available window space. If you navigate away from the workspace and then return to it, the
results displayed are from the last time you accessed that workspace.
View As Tree
When you switch to tree view from the list view, the summary view populates objects to fill the available window
space. If you navigate away from the workspace and then return to it, the results displayed are from the last
time you accessed that workspace.
The tree view displays data in a tree structure that shows relevant data relationships. For example, in the
positions workspace, clicking the tree view displays the reporting hierarchy. The nodes in the tree structure can
be expanded and collapsed as needed.
Administrator Calendars
Custom Attributes
You can use custom attributes to enter additional information about objects. For example, in the Participants
workspace, you might use custom attributes to enter values for a participant’s street address and email
address. See Customizations for more information on setting up custom attributes.
• Participant
• Customer
• Credits
• Titles
• Postal Codes
• Measurements
• Positions
• Orders
• Incentives
• Products
• Transactions
• Deposits
You can add the enabled custom attributes to Summary or Details view by configuring the Summary view and
Details view. You can include data stored in the custom attributes in your compensation rules. For example, you
can include a custom attribute that stored a country code in a rule’s condition.
Reporting Attributes
Reporting attributes are used only for reporting purposes. They cannot be used in compensation plan rules,
and therefore are not included in calculation processing. Reporting attributes can be enabled for the following
workspaces:
Reporting Attributes
Each workspace provides you can access to specific objects. For example, from the Organization tab, you can
access organization related compensation data objects such as participants and positions using appropriate
workspace icons.
Your security role and its permission settings influence what you can and cannot access, and what actions you
can or cannot perform. If business units are implemented, you can only access objects that belong to those
business units to which you have been assigned.
Note
You can find Compensation data within the Organization, Plans, and Classification tabs, which is also
known as reference data and includes information about positions, participants, position assignments,
compensation plans & rules, and rule elements (such as Territories, rate tables, and lookup tables).
Reference data must exist before you can run the calculation.
This section lists the available workspaces and summarizes the objects available to you in each workspace.
The following table describes the workspaces available in the Organization menu. This workspace handles
specific information about your company: participants, positions, specific job assignments, titles, reporting
relationships, and roll relationships. Organization data is often supplied by human resources and the imported
into the systems
Workspace Tasks
Participants: Workspace for participants in compensation • Create, edit, copy, and delete participants and partici-
plans. pant information.
• Search for participants
• Find related objects
• Data loaders
Positions: Workspace for defining the positions in your or- • Create, edit, copy, and delete positions and position in-
ganization. A position is a specific, unique job in a specific formation
area of the company. You can view positions as a reporting • Search for positions
hierarchy in the tree view.
• Assign plans to positions
• Find related objects
• Data loaders
Relationships: Describes a path for rolling credits from the • Create, edit, copy, and delete roll types and roll relation-
source position to receiving positions in that single roll path. ships
Roll relationships are assigned to a roll type. • Search for relationships and roll types
• Find related objects
Titles: Titles workspace for all job types in your organization. • Create, edit, copy, and delete titles
• Search for titles
• Assign plans to titles
• Find related objects
• Data loaders
The following table describe the workspaces available in the Plan Data menu. This workspace sets up the
variable compensation plans that determine how people in your organization are paid. Plans are typically
created when the system is implemented for the first time. You can also create new plans and modify existing
plans when required
Workspace Tasks
Plan Components: Components Workspace for creating • Create, edit, copy, and delete plan components.
plan components. The components are templates that con- • Assign components to plans.
tain a set of Rules.
• Distribute plan documents.
Plans Wizard: Workspace for creating compensation plans. • Create, edit, copy, and delete plans and plan informa-
Compensation plans contain compensation rules that typi- tion
cally correspond to the different stages of the process en- • Search for plans
gine, called the calculation. The wizard walks you through a
• Create, add, and remove rules associated with a plan
series of screens to set up rules.
• Find related objects
Rules Wizard: Workspace for compensation rules. Each rule • Create, edit, copy, and delete rules
type provides processing directions for the corresponding • Search for rules
calculation stage. Compensation rules in each plan work
• Find related objects
together to allocate credits, process compensation results,
and determine payments for participants who are assigned
to the plan. The wizard walks you through a series of screens
to set up rules.
Classification: Workspace for all categories and classifiers, Create, edit and delete category hierarchies, categories, and
used to filter transactions into groups based on specific
classifiers, including:
fields on each transaction. Classification workspace also in-
cludes workspaces for the pre-defined classifier types (Prod- • Add classifiers to categories
ucts, Customers, and Postal Codes), and any other workspa-
ces based on the classifier types defined by the administra-
• Remove classifier assignments
tor. • Move classifiers to different category hierarchies and
categories
Products: Workspace for Products categories. If your com-
pany allocates credits based on product information found in • Find related objects for category hierarchies, catego-
the transaction, you can use a category hierarchy with Prod- ries, and classifiers
uct classifiers to filter for transactions that contain specific • Data Loaders
product information.
Create, edit, copy, and delete product classifiers and product
Customer: Workspace for Customer categories. If your com- categories, including:
pany allocates credits based on customer information found
in the transaction, you can use a category hierarchy with
• Add product classifiers to product categories
customer classifiers to filter for transactions that contain • Remove product classifier assignments
specific customer information. • Search for product details
Postal Code: Workspace for postal codes categories. If your • Find related objects
Data loaders
Credit Eligibility Rules: The Credit Eligibility Rule workspace Create and mange CES rules.
is used to create Credit Eligibility Rules, which are used to
generate transaction pre-assignments by matching fields in
the Transaction with the Territory mapping (specified in Ge-
neric Classifier table).
The following table describe the workspaces available in the Compensation Elements menu.
Fixed Values: Workspace for fixed values, a value that can be • Create, edit, copy, and delete fixed values
used wherever a value is called for. • Search for fixed values
• Find related objects
Formulas: Workspace for formulas, user-defined mathemat- • Create, edit, copy, and delete formulas
ical expressions that produce calculated values. Formulas • Search for formulas
are used most often in conditions and action statements
• Find related objects
within a rule, but they can also be employed in rate tables
and lookup tables when a calculated value is required.
Lookup Tables: Workspace for lookup tables, n-dimensioned • Create, edit, and delete lookup tables
tables that store indexed values retrieved by rules and for- • Search for lookup tables
mulas.
• Find related objects
Quotas: Workspace for quotas, values that apply across an • Create, edit, and delete quotas
entire reporting structure. • Search for quotas
• Find related objects
Rate Table: Workspace for rate tables, tiered tables used • Create, edit, copy, and delete rate tables
in an incentive rule to calculate how much a position assign- • Search for rate tables
ment receives in commissions based on a step-commission
• Find related objects
rate.
Territories: Workspace for territories, the named combina- • Create, edit, copy, and delete territories
tion of categories and classifiers that filters input to credit • Search for territories
and measurement rules.
• Find related objects
Variables: Workspace for variables, the named placeholders • Create, edit, copy, and delete variables
used in rules to reference a rule element (such as a rate • Search for variables
table, territory, fixed value, or lookup table.)
• Find related objects
The following table briefly describes each of the workspaces available from the Plan Communicator menu.
Workspace Tasks
Distribution, Distribution TRacking, Documents, Disutes Create manage documents and distributions, raise disputes,
Tracking, Disputes configure Plan Communicator, and more.
The following table briefly describes each of the workspaces available from the Calculations menu. You can
run the pipeline in the Calculations workspace. You can view transaction data used as an input to calculation
runs and view results data that is based on compensation processing for each period. You typically run the
calculation to process compensation payments at least once a period.
Pipeline: Workspace for compensation processing, which in- • Run the calculation for any period or multiple periods at
cludes running calculations, importing data, purging data once
and other related tasks. The workspace shows execution • Run the calculation for specific stages
progress in real time. Optional profiling is available for any
• Schedule a calculation run
calculation run.
• Cancel a calculation run
• Search for calculation runs for any period
• Import data from the staging tables
• Import XML data
• Update analytics
• Purge data from the staging tables
Orders: Workspace for order- and transaction- level credit • Create, edit, view, copy, and delete orders
allocation results data. • Search for orders
• Find related objects
• Data loaders
Transactions: Workspace for transaction level credit alloca- • Create, edit, view, copy, and adjust the value of transac-
tion results data. Transactions are business events that drive tions
the compensation process. Transactions are the smallest • Search for transaction details
units of sales data. They are classified by categories, and
• Find related objects
credits are allocated to classified transactions.
• Data loaders
Credits: Workspace for credits allocation results data. Cred- • Create, edit, view, and copy credits; and transfer and
its are allocation values assigned to a position assignment. adjust the value of credits
Credits are allocated to either a sales transaction or to an • Search for credits
order (or parts of an order).
• Find related objects
Measurements: Workspace for measurement results data. • Search for and view measurements
Primary measurements aggregate the credits or other items • Find related objects
for position assignments. Typically, aggregating credits in-
volve summing the monetary value of credits. Secondary
measurements sum primary measurement values.
Incentives: Workspace for incentive results data. Incentives • Search for and view incentives
are the output of incentive rules, which compare measure- • Find related objects
ments or credits to quotas and rates.
Commissions: Workspace for Commissions, a kind of incen- • Search and view commissions to be paid
tive. • Find related objects
Deposit: Workspace for deposit results, which reflect incen- • Create, edit, view, and copy deposits
tives deposited for eventual payment. • Hold, release, and adjust deposits
• Find related objects
Payments: Workspace for payment and balance results. • Search for and view payments
• Find related objects
See the Administrative Tasks documentation for information on Global Values, Security, and Preferences.
Upload Data
This option uploads data from an Excel worksheet template that matches the workspace columns and is
available in the following workspaces:
To upload data, choose the Upload Excel Data option in the toolbar.
Note
When uploading templates, you must ensure that the column header for numeric fields does not contain
more than one dot. For example, use PreAdjusted.UnitType for column header in the template. Do not
use PreAdjusted.Unit.Type
Download Template
This option is used to download either an empty template or all the data from the workspace to an Excel
worksheet. The downloaded Excel worksheet contains all the columns used in the workspace. This option is
available in:
To download the template, choose the Download Template option in the toolbar.
Note
Data loaders supports only Excel 2003 workbook format. For the best performance, do not use Data
Loaders for more than 1000 records per object.
This option exports data in Excel, CSV, or XML format as applicable. To export data, choose the Export Data
option in the toolbar.
The export feature is supported in the all the workspaces. The supported formats (CSV, Excel, or XML) and
specific steps vary depending on the workspace:
CSV Export:
XML Export:
If an object in a workspace has been changed by a Calculation Run or by Import, you are notified that a refresh
should be done so that you are viewing or editing the most current version.
For example, if imported classifiers are part of a category you are viewing or editing in the Categories
workspace. The changes in the category for those classifiers are not displayed until the workspace in the
system is refreshed.
• If the current workspace is one of the workspaces affected by a calculation run or by import.
• If you are in the process of entering or modifying information, a Save dialog box is also displayed.
• If the current workspace is not one of the workspaces with updated objects, then no changes occur.
• Affected workspaces other than the current workspace are refreshed in the background. Updated data is
displayed the next time you access these workspaces.
The main workspaces and menu items are described in Menu Tabs and Related Workspaces [page 24].
Toolbar
The toolbar is available on the top-right of the table in all the workspaces. The icons and action links available in
the toolbar enable you to perform workspace level tasks.
Primary actions such as Create, Search, and Related Search are available on the toolbar.
Other item specific actions (such as Edit, Delete, Audit etc.) and workspace specific actions (such as Import,
Export, Configure Summary View etc.) are grouped under the Ellipsis Menu (…).
The following table displays the toolbar icons and provides a brief description.
or
Note
There is no search capability in the Customization work-
space.
Advanced Search or Opens the Advanced Search section. You can perform an
Advanced Search by applying Filters and Sort Criteria.
Cancel
Apart from these, other keyboard shortcuts mentioned below helps you to perform tasks conveniently:
Field Icons
The system provides several field-specific icons to assist you in creating new objects, modifying attributes of
current objects, and searching for objects.
Expression
Provided in the Lookup table and Rate table. The Expression
icon to open Legal move editor dialog.
Literal or
The Simple/ Literal icon enables users to enter literal value.
Learn about the various operations you can perform across many workspaces, for example, object selection,
deletion, copy, edit, and data validation.
Related Articles
In the Summary View, the checkbox option can be used only to select records to perform the actions available
in the toolbar. When one or multiple records are selected, the (bulk) edit action, as other applicable actions are
available.
To open the Details View, click on the arrow icon in the first column, or anywhere in the row (except on data with
links) . If the data is linked, clicking the link opens the related workspace.
You can see the total number of objects in the page footer along with the navigation buttons.
After you select a record, you can edit, delete, and export as single or multiple objects simultaneously.
In the tree view, use the arrow buttons to expand or collapse the Summary View.
To save an object, the required fields must be filled with valid entries.
If there is an error on the form the fields are outlined and an error message is displayed on top of the form by
listing errors in the following conditions:
• Required fields
• Incomplete values
• Incorrect or invalid values
• ? (question mark)
• & (ampersand)
• ; (semi-colon)
• * (asterisk)
• < (less than)
• > (greater than)
• " (double quote)
• ‘ (apostrophe) (This is allowed in the participants workspace)
Use of these characters is discouraged due to problems in interaction with other products, but the system only
validates these characters in the following Participant's fields: First Name, Last Name, and User Name. If you
enter any of the characters into these fields, an error message is displayed. If you copy text in the process
of creating and modifying objects, use an ASCII text editor such as Notepad. Other word processing software
packages such as Microsoft Word usees different ASCII values for various fonts and character styles and the
value stored in the database might not be the same as the value displayed on the screen.
Note
& (ampersand) can be used only for User IDs. For example, & (ampersand) can be used only for Participant
User ID, but not for Participant First Name, Last Name, and so on.
In addition to the disallowed characters, the following character cannot be used in Position group names (due
to calculation restrictions):
• , (comma)
Because the following special characters can cause potential access problems while viewing reports, it is
recommended not to use these in Position or Participant names in the system as well as in the user IDs
created:
• . (period)
• ; (semi-colon)
• / (forward slash)
• \ (backward
• # (pound)
The following characters cannot be used in Function parameters (strings and literal strings)
If your security role provides with the Update permission to a workspace, you can edit information for those
objects in that workspace in the Details view panel. See Summary and Detail Views [page 20] for details.
Keyboard Shortcuts
• Tab - The Tab key helps navigation forward within expressions (or form element)
• Shift + Tab -The Shift + Tab combination should bring navigation to the prior field (or expression or
form element) on the Form
• To check/uncheck a checkbox - press the Spacebar key
• To navigate to radio icon selection - press the Up arrow or Down arrow keys
• For new placeholder in Legal Move - press the Enter key
• Double click a Formula - When you double-click a formula in LME, the formula should pop up in the
Manage Versions form. Edits to the formula (name, effective version, logic, etc) will be saved.
When you edit an object, you are editing the current version of that object. If you need to edit a different
version, choose Manage Version and then select the correct version you want to edit. If the current version of
the object should remain the same, you can use the Create Version option to create a new object with new
information.
For more information about editing specific objects, see the related help documentation.
You can select and edit multiple objects simultaneously. This is commonly referred to as bulk editing. It is
disabled if a field is unavailable for bulk edit. For example, you cannot bulk edit the Participant ID for multiple
participants. The following procedure discusses two different types of bulk editing
Note
Note
For example, to change the base salary for For example, to change the base salary for several participants
from $60,000 to $70,000, you could search for several participants from $60,000 to $70,000, you could
search for and select all participants earning $60,000 and update their new and select all participants
earning $60,000 and update their new base salary to $70,000 in a single step. All changes are For example,
to change the base salary for immediately reflected in the summary pane For example, to change the
base salary for several participants from $60,000 to $70,000, you could search for several participants
from $60,000 to $70,000, you could search for immediately reflected in the summary pane and select all
participants earning $60,000 and update their new
In workspaces that display the Formula, in edit mode, you can double-click the name of the related formula
object to bring up the Versions for Object dialog for that object. (This is the same dialog that displays when you
use the Edit Version button.) From this dialog, you can edit the object as required.
1. Navigate to the Rules Wizard workspace, and select a rule that refers to a formula.
2. Choose Edit.
At any point, you can save your changes to the repository by selecting the Save button. Prior to saving, you can
return the workspace to its pre-edit state by choosing the Cancel option in the details panel. Choosing Cancel
displays a warning dialog. Choose Yes to continue. Choose No to remain in the edit mode.
the assignment is disallowed. You can only select business units to which you as a user have been assigned.
You also cannot change the business unit of an object if it has associated results. You can, however, create a
new version of the object and assign a new business unit to it.
Note
is assigned to a title, but the EMEA business unit is not assigned You must have the assign permission to
update business units.
You can use the Copy option in the Summary View to copy an object or duplicate the same. The Copy option is
normally enabled when an object is selected in the Summary View. You can only copy one object at a time.
You can Delete reference data objects (organization data, classification data, plan data and rule elements) that
you have created either manually or through import. For example, if you have just imported or created both
participant and a position assignment that references that participant, you can delete the position. In this case,
the participant is disassociated from the position before the participant is deleted. In many instances, deleting
an object is disallowed. For example, you cannot delete reference data objects that are associated with results
Copying Objects
Note
As a best practice, it is recommended to attach plans to positions and then duplicate the position. This way,
all the plan information attached to the position is copied to the duplicated position, which is then attached
to the participant. Copying a participant doesn't copy the related position, so the plan information is not
attached to the copied participant. You need to modify the user ID, as each participant must have a unique
one. When duplicating compensation plans, the system checks for plans with the same name within the
same period and does not allow them to be saved.
Note
The Copy icon is not enabled in the Quotas and Lookup Tables workspaces or in the Import views of any
workspace.
Deleting Objects
1. Search for an object or objects that you want to delete. You can bulk delete items by selecting multiple
objects at one time. The maximum number of objects that can be deleted simultaneously is 250.
2. Choose Delete.
3. Choose Yes to confirm the deletion.
Note
Deleting an object removes all versions of the object from the repository. However, the audit log in the Audit
Log workspace retains information on the actions performed on that object, including its remove (delete)
date, and information about the object itself.
Note
If the Prompt me before a record is deleted preference is enabled, then the Are You Sure? confirmation
dialog displays. If the Prompt me before a record is deleted preference is disabled or you disable
The Effective Date range of a version of an object is determined by the start and end dates of that version. The
effective date is used to track which version of an object and its related objects are active in the system. The
objects are tracked by effective date include all reference data (organization data, classification data, plan date,
and rule elements). Effective dates are one of three ways that the sytstem tracks objects, the other ways are
audit date and calculation run date.
Related Articles
When you create new objects, you are in essence creating the first version of that object. If necessary, you can
create new, additional versions of the object. Creating new object versions retains the old versions for auditing
purposes. In most workspaces, a Please Choose an Effective Start and End Date dialog displays when you are
creating an object. However, some objects, such as position groups and quotas, are internally effective dated
from the beginning of time (BOT) to end of time (EOT), and therefore a New Effective Start and End Date dialog
does not display. The New Object dialog also does not display for roll types. The BOT constant is 1/1/1900. The
EOT constant is 1/1/2200.
For some objects, the New Effective Start and End Date dialog contains a calendar field.
In general, plan data objects (plans and rules) and most rule element objects (formulas, variables, fixed
values, rate tables, and lookup tables) are associated with calendars. Organization data (participants, titles,
and positions) and classification data (category hierarchies, categories, and classifiers) are not associated with
calendars, and the calendar field is not displayed.
Note
If you do not specify an effective end date for an object, the effective from date is derived based on the
default period and the effective date is set to EOT.
If necessary, select a calendar from the Calendar drop-down. The calendar associated with the default period is
displayed as the default. Click OK to accept this calendar and the default effective dates. The default calendar
Procedure
1. Select a period
• You can only select a monthly period that is associated with the calendar selected. For example, if the
main monthly calendar was selected, you can only select a month within that calendar.
• If the default calendar is set to date, the effective from date defaults based on that date. For example, if
the default calendar is set to 01/15/2008, the effective from date defaults to January 2008.
2. Select a period from Through.
3. Choose Ok.
You can only select a monthly period that is associated with the calendar selected or end of time.
Note
If you select a calendar other than the one associated with the default period, the object might not be
displayed when you save. Only objects associated with the default period are automatically displayed.
To specify new effective from and through dates, do one of the following:
4. Select an option . You can select a period that is associated with the current default period calendar or you
can use Select a date.
5. Select an option from Through.
6. You can select a period that is associated with the current default period calendar, use Select a date, or
select End Of Time.
7. Choose Ok.
You can view the history of changes made to an object over time. Objects that are tracked by audit history have
an Audit History option in the respective workspaces.
You cannot view changes to quota values or lookup table values using Audit History from the Quotas
and Lookup Tables workspaces. To view changes to these values, use the Audit Log workspace. See the
Administrative Tasks documentation for more information on audit history and auditable objects.
Procedure
1. Select an object in the Summary View to view the audit history for that object.
2. Choose Audit History from the Ellipsis Menu (…) to view the details.
You can also use the Audit Log workspace to track additions, modifications, and deletions of objects. The Audit
Log also records when each user logs in or out of the system.
In the Versions workspace, you can create new versions and edit existing versions using the Manage Version
option for most effective dated objects.
Note
Because versions are handled differently for position groups, relationships, quotas, and lookup tables,
these workspaces do not have the Manage Version icon. Also, period-based fixed values also do not have
the version icon.
You should create a new version of an object if the change you are making is newly effective and effective over
a span of time. Creating a new version also retains the old versions for auditing purposes. Retaining the old
versions makes it possible to track what version was effective at a particular point in time. For example, if a
participant’s salary changes, you would create a new version that reflects this change, but keep the old version
showing the participant’s previous salary.
Note
If you have multiple versions of an object and you need to have just one version that replaces some or all of
those multiple versions, for performance reasons it is faster to create a new version with the new effective
date range. This is compared to editing an existing version of the object such that you extend the date
range of that existing version.
1. To create a new version of an object, search for an object for which you want to create a new version.
2. Select that object in the Summary View.
3. Choose Manage Version from the Ellipsis Menu (…) to view the Edit Versions dialog.
4. Choose Add to create a new version.
• If the default period is set to a period, the effective from date defaults based on that period, and the
through date defaults to end of time. For example, if the default period is set to January 2008, the
effective from date defaults to January 2008 and the through date default
• If the default period is set to a date, the effective from date defaults based on that date. For example, if
the default period is set to 01/15/2008, the Effective From date defaults to January 2008. If the object
is calendar based and the default date is outside the calendar, the Effective From date is blank and
must be specified. The through date defaults to end of time.
5. Enter effective dates for the new version using one of the following methods:
• Enter and select an option from the effective From auto search drop-down. If the object you are
creating a new version for is associated with a calendar, you can only select a period that is associated
with that calendar. If the object you are creating a new version for is not associated with a calendar, you
can select a period that is associated with the default calendar or use select a date to specify a date.
• Select an option from the through auto search drop-down. If the object you are creating a new version
for is associated with a calendar, you can only select a period that is associated with that calendar or
select end of time. If the object you are creating a new version for is not associated with a calendar, you
can select a period that is associated with the Default Calendar, use Select a date to specify a date or
select end of time.
Note
A new version of an object is created if you change the effective dates of an existing version of the object.
Ensure that items that refer to the object are still valid if you expand or reduce the effective range of an
object version. For example, a plan with an effective range from January 1999 to December 2005 can
be expanded to create a new version from January 2006 to end of time. Referring objects effective from
January 2001 to December 2004 are not valid for this new version.
You should edit the current version of an object if you need to make a change to only that version. For example,
if you need to update a participant’s current salary, you would edit the current version of the participant object.
However, if you need to make changes to a version of an object other than the current version, you can simply
enter the information into respective fields and choose OK to save the changes.
The Versions for the Object dialog contains an effective date versions area at the top. All the tabs that are
accessible for the original object are also accessible from this dialog. By default, the version related to the
default period is displayed. The Versions for the Object dialog and the effective from date is highlighted.
The list of versions in the summary pane on the left allows selection of a particular version. The currently
selected version is highlighted in blue, while the non-selected versions are not shown in color. Details related to
the selected version reflect in the details pane on the right.
To select a different version, choose the version in the summary pane. The effective from and through dates
for the selected version areversion displayed in the drop-down boxes below the effective date timeline. The
following illustrates a single compared to multiple versions in the Versions for Object dialog.
Note
You cannot change object attributes over multiple versions that are part of the object’s logical key (the
logical key is what defines the object as unique from other objects of the same type). For example, to
change a participant’s ID over multiple versions, you have to change the ID on each effective version
individually because the ID is part of the participant’s logical key. Change the information for the selected
version or versions. For example, if there was a spelling error in a participant’s name, you would edit the
version or versions that contain the erroneous information.
If you have an object that is no longer active but cannot be deleted, you can change the effective end date of
the last version of that object to a specific date.
1. To end date an object, search for the object or objects to be end-dated in any workspace.
2. Select the object to be end-dated in the Summary View panel of the workspace.
3. Choose Manage Version from the Ellipsis Menu (…) to view the versions for the Object.
4. Navigate to it using the single and double scroll arrows if the last version of the object is not displayed, and
then select it by clicking the bar in the Effective Date Versions timeline.
5. Specify the end date using the Select a date option in the Effective through (Effective End date) field.
6. Choose Okto save your changes and close the Versions for the Object dialog.
In most cases, end dating and object is preferable to deleting it. End-dated versions are not processed by the
user interface or calculation in later periods. The following rules apply to end dating participants and positions:
• If a participant or position has non-zero results data, you cannot end date the participant or position.
• You can end date a position or participant version if there are no results data associated with that version.
• If the credit start, credit end, process start and process end fields on a position version that is end dated
extend beyond the effective end date of that version, the position continues to be processed and/or
receive credits and payments.
• If you end date a position or participant and that have associated zero-value results data, these results data
objects display with a position of <unavailable>..
For example, if you have a now obsolete position that was effective from January 1999 to EOT and that position
has resulted from January 1999 to August 2007, you cannot delete the position but you can end date it by
doing the following:
• In Manage Version (Versions for Object), end date the position by changing the effective end date of the
last position version to August 2007.
• In the New Version dialog, create a new version of this position from September 2007 to EOT and assign a
different or null position.
You can also delete a version of an object using the Versions for Manage Version window (Manage Version
window). If deleting a version would create a gap between versions, you are given the option to fill the gap using
the previous or next version.
• Select either previous version or next version to indicate how the system should fill in the timeline gap. If
you select previous, the effective date of the version being deleted becomes effective through the date of
the previous version. If you select next, the effective from the date of the version being deleted becomes
effective from the date of the next version.
• Click OK to close the Delete Version dialog.
In the Manage Version screen, you can select multiple versions holding Ctrl button and edit the enabled
fields. Choose OK.
The edited fileds are updated in the Summary View, Details View and in the Manage Versions screens.
• Participant
• Position
• Title
• Category
• Generic Classifier
• Product
• Customer
• Postal Code
• Fixed Value
• Variable
The system provides you with different search options, such as Simple Search, Advanced Search, and Related
Search. These options give you quick access to compensation and result-data for research purposes.
• Using Simple Search, you can enter keywords to search for specific information.
• Using Advanced Search, you can construct search queries to find specific objects in a workspace.
• Using Related Search, you can research the associations between data.
Related Articles
You can access a quick word-based search from most of the workspaces in the application. Simple search
performs a name search or a simple text search using the entered keywords, depending on the workspace and
active view.
Related Information
The Advanced Search filter icon is displayed in the page header. When clicked, the section expands to display
the search criteria and other related settings.
To collpase the view, re-click the filter icon. The Advanced Search panel provides the following options:
Actions Operation
Apply Applies the search terms entered and performs the search.
Save Saves the search query with a name. See Saving Advanced
Search Query [page 57] for details.
No Filters Applied Indicates if any serach filters are already applied in the dis-
played page.
Filter Settings
The search criteria area in Advanced Search can be used to build complex queries across database tables.
The following features and options are specific to the search criteria area:
• Current Default Period: In the results data workspaces (Credits, Measurements, Incentives, Commissions,
Deposits, and Payments workspaces), the period associated with the Default Period automatically
becomes part of the search criteria. For example, if your default period is January 2008, when you perform
a simple search in the Credits workspace, Period = January 2008 is included as part of your criteria. When
you perform an advanced search in the Credits workspace, Credit Period = January 2008 is included as
part of your criteria. If you are performing a related search from a workspace to the Credits workspace,
either Period = January 2008 or Credit. Period = January 2008 is defaulted depending on whether the
related search is in advance search format. You cannot remove this period criteria; however, you can
change it.
For example, if you are searching in the Positions workspace for all positions names that begin with the letter
A, your search criteria would be either Name Like A% or Name = A*. If you enable this option and there are
three positions that meet this criterion (Account Manager, Account Executive, and account rep), capitalization
is ignored and all three names are displayed (with names beginning with lowercase letters at the bottom).
If you disable Ignore Case, only those results that begin with capital letters (Account Manager and Account
Executive) are displayed.
Filter Criteria
Besides Field Name and Order, the following options are available if configured:
• Filter by business units - If your organization has created and implemented business units, you can use
this option to display only those objects that are associated with one or more business units. To specify
just one business unit, select the business unit from the drop-down. You can only select a business unit to
which you have been assigned.
• Filter by processing unit - If the the Enable Processing Unitscalculation preference is enabled, the Filter by
Processing Units drop-down is displayed and a selection is required. You can use this option to limit your
search to results associated with one or more processing units or results not associated with a processing
unit (<Unassigned>).
The search for the Related Objects action panel is similar, however, it does not include the Save and Manage.
Related Information
In Advanced Search, you can construct a search by selecting specific fields. The fields that are available for the
search are based on the workspace that the search is launched from. For example, if a search is launched from
the Relationships workspace, only those fields applicable to searching Relationships are displayed. Advanced
Search is available in all workspaces except the Calendars and Customization workspaces.
In the Advanced Search and Search for Related Object dialogs, you can also specify additional sort and filter
options.
Note
In general, only fields specific to the core database table are accessible using Advanced Search. If two or
more tables must be logically joined to perform a search, you must use Advanced Search. For example, you
can search directly for transaction information, but a search for payees or positions related to a transaction
requires a join and Advanced Search must be used.
Comparison Operators
The comparison operators that are available for building your search are dependent on the field specified. For
example, the operators available for a text field differ from those for a numeric or date field. The operators for
the various data types are listed in the following table.
In addition to the listed operators, the in operator in Advanced Search allows you to search for results data
(credits, measurements, incentives, commissions, deposits, and payments) that are not specific to a leaf-level
period. For example, if your calendar includes decades, years, quarters, and months, it is possible to find all
credits for a specific quarter or year. You do not need to search at the leaf-level, in this case, month.
Use these guidelines when constructing Advanced Search to search for dates and nullable fields:
• When you use the equal to the = operator to search for a date, the values on each side of the operator
must be exactly the same. In some cases, you cannot ensure that the values are the same. For example,
some numbers could be rounded off internally by the system so that there is no match. In these cases, use
greater than > or less than < instead of equal to (. For example, instead of using the criteria Start Date =
1/1/2008, use Start Date >= 1/1/2008 AND Start Date < 1/2/2008.
• The Is Empty and Is not empty is available for nullable fields only. It is not available for fields that are
required in a workspace. For example, if you are doing a search by title name, a required field, Empty is not
available.
Wildcard Operators
The system only supports wildcards in the trailing position, so you need to build search strings ending with
a wildcard (string* or string*string*)rather than beginning with a wildcard (*string or *string*string). Use the
asterisk* wildcard with comparison and equals operators, and the percent sign % wildcard with the Contains
and Not Contains operators. In general, % and * wildcards can be used in string searches using the following
guidelines:
• When using the Contains and Not Contains operators, you can use t % operator using the format
string%string%. For example, a last name search on the value M%t% returns results for all last names that
contain both M and t, such as Mitchell.
• When using the equal (=) and not equal (<> ) operators, you can use the * (asterisk) in the format
string*string*. For example, a last name search on the value M*t* also returns results for all last names
that contain both M and t, such as Mitchell.
Caution
Your database can impact the ability to search for strings that contain special characters because your
queries must be translated into SQL. Consult your database documentation to determine what restrictions
apply. Do not use either of the wildcard operators without qualifying string text. For example, you should
Note
In Advanced Search, you do not need to enclose strings in quotes, but in Advanced Search > Advanced
mode, it is required.
For example, to specify the criteria to find all participants with a salary greater than $500,000, you would:
You can include one or more of the available fields for a workspace in your Advanced search. If generic
attributes are available and enabled for the workspace, you can also use them in your search criteria.
1. To search for information using advanced search, click the Advanced Search filter. If you are performing
a search in a results data workspace (Credits, Measurements, Incentives, Commissions, Deposits, or
Payments workspaces), the period associated with the default period automatically becomes part of the
search criteria.
2. (Optional). Select a saved search or define a new one.
3. Specify one or more criteria by doing the following:
• Select a field name. The fields available are dependent on the workspace.
• Select a comparison operator. The comparison operators available are dependent on the field
selected.
• Specify a Value for the comparison. If a numeric field value is selected, in most cases you must click
the Unit Type field icon to select a unit type. However, if the value has a predefined unit type—such
as the transaction Discount (%), transaction num units (quantity), and transaction value (currency)
fields—or is an integer, the unit type field icon is not displayed.
4. (Optional). Select a saved search or define a new one.
5. Click Apply.
Note
Most unit types, such as USD (US dollars) produce an exact match. If you search for Unit Value > $100,
only dollar values greater than $100 are retrieved. However, when you specify the integer unit type, values
of all unit types are retrieved. For example, if you search for Unit Value > 100 (unit type = integer), all values
greater than 100, such as$100 (dollars) and £100 (British pounds), are retrieved.
If the workspace does not have a default search option then the Summary and Detail view are blank when
you first enter the workspace on a particular tab. The system populates the workspace with the results of the
search. The search is restricted to the default calendar.
Note
If you get the message No Records Found when searching in the Payments workspace, follow the message
instructions to enable the Generate Payment Summary options (payment summary settings).
Use Advanced Mode to perform a search that requires that two or more tables must be logically joined.
Advanced Mode uses SQL-like syntax to form a search. The field names available for the search are based
on the workspace. For example, if a search is launched from the Transactions workspace, only those fields
applicable to searching transactions are displayed. Some of the elements in Advanced Mode, as shown in the
image below, show features found in the Formulas workspace.
As you build your search expressions, selected literals are displayed in blue text and selected data fields are
displayed in black text in the edit pane. Information is validated as you enter the details.
In the edit pane, use the following syntax to enter search criteria:
• To represent field names (such as Participant.Last), double-click the literals and field names displayed in
the table, or type an asterisk (*) and select from a list of possible field names.
• To enter comparison operators, type an asterisk and select from a list of operators.
Use Advanced Search to search across objects or perform complex logic. For example, the following search
finds all Participants that report to VPs: Participant.Positions.Manager.Title.Name = “VP” You can get the same
results by navigating the workspaces as follows:
This second example finds all Manager credits greater than $1000, plus all VP credits:
Select Advanced Search in the summary view panel. Advanced search is available from the list view in most
workspaces and in either the table or tree view in Transactions, Credits, and Deposits workspaces.
Note
Most unit types, such as USD (US dollars) produce an exact match. If you search for Unit Value > $100,
only dollar values greater than $100 are retrieved. However, when you specify the integer unit type, values
of all unit types are retrieved. For example, if you search for Unit Value > 100 (unit type = integer), all values
greater than 100, such as$100 (dollars) and £100 (British pounds), are retrieved. The fields available are
dependent on the workspace. For example, if the search is launched from a specific workspace (as shown
previously), fields applicable to searching for the specific workspace are visible. If Generic Attributes are
enabled, you can use them in your search criteria.
When you perform a search, you can save your query so you can quickly re-run it later. You can either save a
search with the search criteria fully entered, or save the search to be used as a template by saving the criteria
without entering the actual values.
1. To use a saved search in the Advanced Search screen, select the required search from the Saved Filters
list.
2. Select Apply to execute the search.
You can delete your personal searches and public searches from the Advanced Search page.
In some workspaces, the Related Search view enables you to find information related to the objects selected
in the summary pane. For example, you can quickly retrieve the related positions assigned to a plan, including
those assigned by title.
When searching for related information, the system finds the items that are effective in the default period. For
example, you can perform a simple or advanced search for a title in the Titles workspace.
If you perform a related search for positions for that title, only those positions that are currently associated
with that title are found.
The general rule with related searches is that only objects directly related to a selected object are found.
Objects that are indirectly related are not found. For example, if you select a rule in the Rules Wizard workspace
and perform a related search for fixed values, the search returns the fixed values directly referenced by the rule,
but not those referenced by a formula used in the rule. However, several exceptions to this rule do exist. For
complete information on what each related search for each workspace returns, refer to the specific section.
1. To find related information, search for an object or objects from any workspace.
2. Select an object or objects in the Summary panel.
3. Go to Related Search, select any object from the listed options or choose Advanced Related Search next to
the object link.
• Selecting the link displays search results for that object for the default period.
• In most workspaces and for most objects, selecting the Advanced Related Search icon displays the
Search For Related Objects dialog in advanced search format and the name of the selected object is
substituted for the object name.
However, when doing related searches from some workspaces and for some objects, the system does not
display the Search For Related Object dialog. Instead, the objects are retrieved immediately and the results
are displayed in the related workspace. If no results are found, the message No Records Found is displayed.
4. Specify one or more criteria in the search criteria area.
5. Choose OK.
If results are found, the system opens the workspace for the selected object, and the objects related to the
selected object are displayed. If no results are found, the message No Records Found is displayed.
Organization data includes participants, titles, positions, position groups, and relationships. Organization data
facilitates the following:
As your company’s organization changes over time, you must change your organization data to accommodate
changes. For example, you might need to add or remove participants, create new positions, or change your
reporting structure when people transfer within departments, get promoted or leave the company.
The system provides a workspace in which you can create, edit, copy, and delete each kind of organization
data. You can also import data for participants, positions, titles, and relationships instead of manually entering
this data. You cannot import data for position groups.
Related Articles
Person or organization participating in your variable compensation program. Also called payee. A participant
can be either an internal employee or an external company, such as a dealer. As your organization changes, you
can modify your participant's information. At the same time, you can also import participants information.
The Details View displays as an untabbed workspace if neither custom attributes nor reporting attributes
have been enabled for participants. However, if either or both have been enabled, a General Information tab is
displayed.
The following image shows the participants workspace with the General Information tab displayed.
Creating a Participant
User Name The user ID the participant uses to log in to Incentive Man-
agement Admin.
Preferred Language Set the preferred language for the participant. System docu-
ments, distributions and notifications will be sent in the se-
lected language.
The hire date is the first date when a participant is eligible for
assignment to a position. It is not the date that compensa-
tion processing begins for this employee. Processing dates
are assigned to position assignments.
Calendar .
Note
If the administrator has enabled custom attributes for participants, then a custom fields section is also
displayed within the participant’s details view panel and to configure these fields you have to click or launch
Configure Detail View window.
Modifying a Participant
You can modify most of the information for a participant including the participant’s business unit. In addition
to the update permission for participants, you must also have the update permission for participant name
and participant terminate to modify the participant’s name or he terminated date. Similarly, to modify the
participant’s base salary and Tax ID number, you must have update permissions for Private Data in addition to
update permission for Participants. See the
Note
If the version of the participant that must be modified is not currently displayed, select the current version
and choose Manage Version on the toolbar to open the Versions for Object.
Note
If you are searching for a participant occupying a particular position, use Advanced mode in Advanced
Search and type the Participant.Positions.Name data field. For example, to find all Participants
who occupy positions that have names beginning with the word Sales, you would specify the
query Participant.Positions.Name = “Sales*??.You can also use Advanced Mode in Advanced search
to find only those Participants who have not yet been assigned to positions using the query
Participant.Positions.Name = null.
Terminating a Participant
When a participant leaves your organization, you can terminate that participant. Terminating a participant
involves setting the terminated date on a version of the object, normally the latest version. Adding a terminated
date to one version adds it to all versions. Terminating a participant does not affect calculation processing for
that participant. Compensation for the participant continues to be processed. This is useful, for example, when
the participant should continue to receive credit and compensation for sales made before the termination
date and receive compensation for items such as yearly bonuses. However, if compensation for the participant
should no longer be processed or only processed up to a certain date, you must change the Credit start, Credit
end, Process start, Process end dates of the participant’s position assignment accordingly. If the participant is
no longer considered active but should remain in the system, the participant can be end dated. This involves
setting the end date on the last version of the object to a specific date.
Note
The Terminated field is provided in accordance with your human resources system, which determines
how the last date of a participant is recorded at your company.
You can find data related to one or more Participants by selecting the appropriate object option from the
Related Search pane. The available options and the data returned are as follows:
Deleting a Participant
You can delete a participant that does not have any associated results data. For example, you can delete a
participant that was just created either manually or using import, even if the participant has been assigned
to one or more positions. You cannot delete a participant that has associated results data. You also cannot
delete a participant if that participant is assigned to a position and there are other objects (such as any credits,
measurements, and so forth) that are associated with the position assignment. In both these cases, you should
consider end dating it instead.
Deleting a participant removes the participant object from the repository. However, the audit log in the Audit
Log workspace retains information on the actions performed on the participant object, including its remove
(delete) date, and information about the object itself. If the participant is pre-assigned to a transaction,
it is recommended that you remove the pre-assignment before the participant is deleted. If the payee pre-
assignment is not removed, a warning occurs when running the calculation, but the calculation continues to
process.
Note
To delete a particular version of a participant, use the Manage Version icon on the toolbar.
Because the following special characters can cause potential access problems while viewing reports, SAP
discourages their use in position names and payee names in Incentive Management as well as in the User IDs
created on the user store and in the passwords. Also, restricting the use of these special characters ensures
compliance with SAP Authentication.
Title is used to group similar positions across the organization. Titles usually group positions related to job
functions. For example, 'Sales Representative' is a Title and 'Sales Representative for Northern District' is a
position. All sales representatives in the organization might share the same title, but each sales representative
holds a unique position. Because positions that are related by title are compensated in the same way within an
organization, companies often assign compensation plans by title. At the same time, you can also import titles.
Titles Workspace
The detail pane of the Titles workspace contains core tabs: the General Information tab, and the Assignments
tab. If the administrator has enabled custom attributes for titles, then a custom fields section is also displayed
within the Titles details view panel and to configure these fields you have to select theConfigure Detail View
window. You can create titles in the Titles workspace.
Creating a Title
You can modify the name and description of a title, its plan assignment, and its custom attributes. If custom
attributes have been enabled. You cannot change the business unit of a title if doing so would break the
business unit integrity between the title and it is referring to (plans) and referred by (positions) objects.
Note
If the version of the Title that must be modified is not currently displayed, select the current version and
edit the standard fields.
You can find data related to one or more Titles by selecting the appropriate object option from the Related
pane.
• If you are searching for related rule elements (fixed values, rate tables, territories, or variable), the objects
are retrieved immediately and the results are displayed in the related workspace. If no results are found,
the message No Records Found is displayed. Choose OK to close the message dialog
• If you are searching for related plans or positions, the Search For Related Object dialog displays with
the name of the selected object substituted for the object name. The Search For Related Objects dialog
displays with the name of the selected object substituted for the object name.
• Fixed values directly used in the rules belonging to the title plan.
• Fixed values referred to by other rule elements, such as formulas, that are used in rules belonging to the
title plan.
• Fixed values used in the fixed value variable assignments where the variable assignment is by title. If the
variable assignment is by plan, the fixed value assigned to the title plan is returned.
• Variables—returns the variables used in the variable assignment of the selected Title.
Deleting a Title
You can only delete Titles that are not associated with any positions. Deleting a title removes the title object
from the repository. However, the audit log in the Audit Log workspace retains information on the actions
performed on the title object, including its remove (delete) date, and information about the object itself. If the
title is pre-assigned to a transaction, it is recommended that you remove the pre-assignment.
Note
To delete a particular version of a Title, use the Manage Version option in the Ellipsis Menu (…) .
Positions define specific, unique jobs that participants perform in each specific area of the company. There is
a unique position for each participant. Each position in the system is grouped under a job title. The positions
created in the sytsem typically mirror the positions on your organization chart and reflects subordinate and
management positions. As your company grows, you can create new positions and modify existing positions as
job responsibilities in your company evolve.
Positions Workspace
The Summary View in the Positions workspace can be viewed in both list and tree view. The Detail View ,
displays the General Information , Assignments, Relationships and Associations tab. If the administrator has
enabled additional attributes such as custom fields, reporting attributes, and extended attributes, respective
details are displayed.
The following image shows the summary pane of the Positions workspace in list view. In the list view individual
positions are displayed.
The following image shows thePositions workspace in the tree view. In the tree view, the reporting structure
your organization has created is displayed. The tree view displays the number of positions attached to a node.
The Finalized Period option in the General Information tab lists all the finalized periods for the position
In the the Plan field, you can assign a default compensation plan directly to a position or indirectly to all
positions sharing a title. .
Note
If a plan is assigned by title, the Plan field is replaced by the name of the title plan and is followed by the
word “(Title)"
You can use the Relationships tab to view roll relationships for a selected position.
Associations Tab
The Associations tab shows all the subordinates directly reporting to the selected position.
Assignments Tab
If the plan assigned to the title includes rules that include one or more variables, those variables are displayed
in the variables assignment area. Also, if a plan has been assigned to the title and a plan summary view has
been defined for the plan, you can use set the viewing locale and period then use the View Plan Summary
option to view information about the plan.
Creating a Position
Positions are typically created for employees, but can also be assigned to partners, distributors, or other
people associated with your organization.The system allows you to process compensation for unoccupied
positions (no assigned participants yet), or to process positions assigned to participants at different times
in the same pay period. The system allows you to allocate credit for sales to the position continuously for
reporting, analysis, rollup, and team bonus calculation purposes. You can move positions or create additional
positions to accommodate organizational changes.
Note
If processing units have been enabled (using the Use Processing Unit calculation preference), you
should assign a business unit when you create the position.
Note
If processing units have been enabled (using the Use Processing Unit calculation preference), you
should assign a business unit when you create the position.
8. (Optional) Specify a payee. This is the participant currently occupying this position. The effective dates of
this participant must be the same or longer than those of the position. You cannot select a participant that
does not meet this criterion.
9. (Optional) Specify a position group.
If the Enable Processing Units in System preference is enabled, all positions in a position group must have
the same processing unit and business unit mapping.
10. (Optional) Enter a Target Compensation. This is the position’s target variable compensation.
The target compensation is the goal amount of a participant’s salary that comes from variable
compensation. On-target earnings (OTE) is calculated using this target compensation and base salary
provided in the Participants workspace. The target compensation, if entered, displays in the Participant
Plan Summary.
11. Consider the following:
1. To override the credit or processing effective dates for the position, modify or change processing dates
by changing Credit start, Credit end, Process start and Process end dates
2. (Optional) To complete your position:
• Choose the Plan drop-down, to assign a plan to the position.
• Choose the Relationship tab, to specify roll sources and receivers.
• Enter Custom attributes values, If the administrator has implemented custom attributes.
12. Choose Save.
To specify subordinates for the position (that is, positions that report to this position), you create new positions
with this position as the manager.
You can also see roll relationships from the perspective of individual positions.
The left pane displays the positions that roll credits to the selected position. The right pane displays the
positions that the selection position rolls credits to.
Deleting a Position
You can delete a position that was just created either manually or using import. You cannot delete a position
if that position has associated results data. In this case, you should consider end dating it instead. Deleting
a position removes the position object from the system. However, the audit log in the Audit Log workspace
retains information on the actions performed on the position object, including its remove (delete) date, and
information about the object itself.
Note
To delete a particular version of a position, use the Manage versionon the toolbar. If the position is
pre-assigned to a transaction, it is recommended that you remove the pre-assignment.
Modifying a Position
You can modify some attributes of a position with few or no restrictions. For example, the name, description,
and Target compensation can all be easily modified.
Note
As a best practice, position names should not be the same as title names. Title and position names should
be unique. You should keep this in mind when renaming a position.
• The title, manager, and payee attributes of a position can be modified, but only objects that do not break
business unit integrity can be selected.
• The position group can be modified, but only position groups that belong to the same processing unit can
be selected.
• The business unit of the selected version of a position can be modified, if the following are true:
• There are no associated calculation results associated with the selected position version.
• The business unit selected must be associated with the same processing unit as the business units
assigned to the other versions of the position. In other words, different versions of a position can have
different business units as long as all the business units are associated with the same processing unit.
• Credit Start, Credit End, Process Start, Process End dates can be modified, if certain requirements are
met.
• You can modify some attributes of multiple positions at once; for example, you can change the Position
Group or the Manager for a group of positions. You cannot multi-select positions and update the business
units of those positions.
Note
You can only assign one business unit to positions and position groups. There are no Multiple options in the
Select Business Unit drop-down.
Note
If the version of the position that must be modified is not currently displayed, select the current version
and choose the Manage versions option to open the versions for Object dialog. If the version of the title that
must be modified is not currently displayed, select the current version and choose the Edit Versions icon.
You can edit the effective dates for a position version if you have calculation results associated with it;
however, the new effective dates must correspond to the calculation run dates. In other words, at least one
position version must have effective dates that cover the calculation run period. For example, if you have two
position versions effective from 01/01/00 to 05/31/06 and 06/01/06 to EOT respectively, and you also have
calculation results for January 2007, you cannot change the effective date range for the second version from
06/01/06 to 12/31/06.
Removing a participant (payee) from a position is the same as ending the association between the participant
and the position. If the participant is to be removed from a version other than the one currently displayed,
choose Manage version on the toolbar and select the correct version.
The system provides custom credit and calculation processing dates to handle the following cases:
• A participant leaves a position and continues to be eligible to receive credits and payments from that
position until a specified date.
• A participant leaves a position, no longer receives credits, but continues to receive payments from that
position until a specified date.
• A participant takes a leave of absence and does not receive any credits during that time, but continues to
receive payments in the same position.
• A participant takes a leave of absence, does not continue to receive credits or payments, but continues in
the position, and resumes receiving credits and payments after the leave of absence is over.
In these cases, a participant can continue to hold a position in some form (for credit and calculation
processing) while another participant enters the position. The participant leaving the position can still be paid
for that position for some period of time after leaving, even though another participant has already started
receiving credit and payment for the position. A position receives credits and other calculation results (such
as payments) based on the position’s effective dates. However, you can additionally specify custom dates for
when the position should continue to receive credits and other calculation results data. The system does not
process positions that do not have assigned participants.
Guidelines for Using Position Credit Start, Credit End, Process Start, and
Process End
When working with Credit Start, Credit End, Process Start, and Process End dates, keep the following facts in
mind:
• The processing start date has been within or equal to the effective start date of the position.
• The processing start date has to be before (cannot be the same as) the processing end date.
• The effective end date of the position has to be the same or after the processing end date.
• The credit and processing end dates can extend after the position's effective end date only if the next
position version is associated with a different or no participant.
The following table summarizes how the Credit Start, Credit End, Process Start and Process End dates for a
position (Receiving Credit and Is Processing) affect the position processing. Receiving Credit and Is Processing:
Interactions
Note
If you have modifiedCredit Start, Credit End, Process Start, and Process End dates, you can specify Is
Processing effective dates and not specify Receiving Credit effective dates. However, if you do not specify Is
Processing effective dates, you cannot specify Receiving Credit effective dates.
Direct credits are processed based on their transaction’s compensation date and rolled credits are processed
based on their source credit’s compensation date. Following are some examples that cover some special cases
of positions with Credit Start, Credit End, Process Start, and Process End dates.
Melissa is leaving a position, and Mona is replacing her. Melissa should receive credits and payments for fifteen
days after she leaves the position, during which time both participants should receive credits and payments.
Melissa is assigned to Position A with the following effective dates:
In the March 2008 period, both Melissa and Mona receive credits based on transactions with compensation
dates between 3/1/08 and 3/15/08. For transactions that have compensation dates between 3/16/08 and
3/31/08, only Mona receives credits.
For Melissa’s position assignment, Credit Start, Credit End, Process Start, and Process End dates (custom
processing dates) are specified. For Mona’s position assignment, no Credit Start, Credit End, Process Start,
and Process End dates(custom processing dates) are specified; the credit and processing dates inherit the
effective dates from the position.
Jeff is assigned to Position B starting on 01/01/2006 with no end date specified, this is version #1. He is taking
a leave of absence from 07/01/2008 to 08/31/2008, during which time he does not receive new credits but
does receive payments based on credits that have already been allocated to him. When you create a version #2
of the position for the leave of absence, the system automatically sets the effective to date on version #1 and
creates a third version of the position. The positions that now exist are as follows:
The following bullets describe the effective dates for each position version after you have created the new
position version, version #2, to cover the leave of absence.
• The unversioned position was originally effective January 2006 to End of Time. After you create the new
version, Version #2, to cover the time for the leave of absence, the original version, Version #1, becomes
effective dated from January 2006 to June 2008.
• Version #2 of the position is effective during the leave of absence time, July 2008 to August 2008. For this
version of the position, no credits are received and no payments or other results data are processed.
• Version #3 of the position is effective after the leave of absence time, from September 2008 to End of
Time. The sytsem automatically creates this version of the position to accommodate the need for the
position version for the leave of absence.
Position C is effective February 15, 2008, to End Of Time, and does not have Credit Start, Credit End, Process
Start, and Process End dates specified, the credit and processing effective dates match the position’s effective
dates. Position C receives rolled credits from Position D, a subordinate. Position D has a held, rollable credit
with a release date of March 1, 2008. (The release date is also the credit’s compensation date.) This credit is
associated with a transaction that has a compensation date of February 5, 2008. Position C receives this held,
rollable credit during calculation processing in March 2008.
Steve is leaving his position at the end of January, and there is currently no replacement. Steve continues to be
processed and receives payments until the end of the following month.
To discontinue the position assignment but retain the position, you create a new version and delete the
participant from the new position version. You then edit the earlier position version and specify Credit Start,
Credit End, Process Start and Process End dates that extend to the end of the following month.
• One position version is effective in January 2008 (January 1, 2008, to January 31, 2008). This position
version has Credit Start, Credit End, Process Start, and Process End dates modified, and the effective
dates are January 1, 2008, to February 28, 2008. Steve is assigned to this position version.
• The other position version is effective in February 2008 (February 1, 2008, to End Of Time). This version
does not have a participant assigned to it, and no Credit Start, Credit End, Process Start, and Process End
dates are specified.
During calculation processing in February, the sytsem processes the January version of the position, even
though February is not within the position assignment’s effective dates. The January position version is
processed in February because the Credit Start, Credit End, Process Start, and Process End dates are effective
during February. The February position version is not processed because it does not have an associated
participant.
Specifying Credit Start, Credit End, Process Start, and Process End dates for
Position
You can override the credit or processing effective dates for the position using Credit Start, Credit End, Process
Start and Process End dates Credit Start, Credit End, Process Start and Process End dates are most commonly
used when a participant leaves a position or takes a leave of absence.
Note
For both Receiving Credit and Is Processing dates, if you enter the first day of a period as the start date
of your effective dates range when you save your changes the date automatically defaults to the period
date. For example, if you enter 02/01/2008 as the start date when you save, the start date is displayed as
February 2008.
You can find data related to one or more positions by selecting the appropriate object option from the Related
pane.
If you are searching for related plans or related rule elements (fixed values, rate tables, territories, or variables)
the objects are retrieved immediately and the results are displayed in the related workspace. If no results
are found, the message No Records Found is displayed. If the object option selected was not plans or a rule
element, the Search For Related Objects dialog displays with the name of the selected object substituted for the
object name.
You create a position assignment by assigning a participant to a specific position for a specified duration of
time. The sytsem calculates variable compensation for the position assignment. During the compensation
process, credits, commissions and bonuses, and deposits are allocated to position assignments. Position
assignments (also called position relationships) can also be imported.
A position can only have one participant at a time, but a participant can be assigned to multiple positions.
A participant is assigned to a version of a position within an effective date range that defaults to the current
date through end of time. You can change the effective date range using the Manage Version button, or create a
new effective date range using the New Version button. You can assign only one participant to a position at any
given time. To assign another participant to that same position, you must create a new version of the position
and assign the new participant to that version.
Note
If the required assignment is for an effective date range other than the one currently displayed, choose
the Manage version option to open the Versions for Object dialog, then select the correct version or
versions.
4. Specify the name of the participant to be assigned in the Payee field from the Details > General Information
tab.
5. Choose Ok.
• Unless you use a transition position, effective date ranges cannot overlap for a given position assignment.
Only one participant can be assigned to a position at a time, but a participant can be assigned to multiple
positions at a time.
• Direct credits are created according to the associated transaction’s compensation date if the transaction’s
compensation date is within the effective date range for the position version and Credit start and Credit
end dates are specified. The credit’s compensation date is the transaction’s compensation date.
These dates become important when deciding or analyzing where credits are created and processed.
Note
As you create positions in the positions workspace, the system automatically creates a roll type called
reporting. This roll type mirrors your organization’s reporting structure and credits are allocated accordingly.
For example, a sales manager can receive commissions based on a subordinate salesperson's sales transaction
credits. In turn, these credits from which commissions are calculated are typically rolled up to the manager's
manager.
As a best practice, you should create another roll type that mirrors your reporting relationships and then make
any additions or changes to the copy. Creating a separate roll relationship that parallels the reporting structure
allows you the flexibility to change roll relationships without compromising the reporting structure. For
example, create a roll type called rollup and create relationships between each position to mirror the reporting
structure. In the relationships workspace, you can create additional roll types and reporting relationships. This
can be required because organizations often compensate people outside the sales team and it is common
to have credits roll from one person to a peer (sometimes called rollover roll type). You can also import
relationships into the system.
Related Information
You can access the Relationships workspace from the Organization menu. Depending on your need, you can
visualize, review, and manage Relationships using the Tree View or Table View.
Tree View: This view displays a list of the existing Roll Types. It is a hierarchical representation of all Roll Types
and Relationships. You can use this view to drill down to each level of a Roll Type. You can also create Roll Types
and Relationships in this view.
Table View: This view displays existing Relationships between the Source and Receiver participant. It provides a
list view of all Relationships. You can configure Relationships between Positions in this view.
2. Select Tree View. Roll Types can be created only in Tree view.
4. Set the Effective Start Date and the Effective End Date for the relationship.
3. Choose Create.
4. Set the Effective Start Date and the Effective End Date for the relationship.
5. If you have selected a Roll Type, the Roll Type and Receiver fields are populated in the
pop-up window depending on your selection. If these fields are not populated, select a Roll
Type and proceed.
3. Select the Roll Type you want to edit and chose Edit in the Ellipsis Menu (…).
4. Update the name of the Roll Type and click Save to save your changes.
To edit a Relationship:
3. Select the record you want to edit and choose Edit in the Ellipsis Menu (…). In Tree View,
the edit option is enabled when you select a Source. You can edit the Source, Receiver, and
Effective Dates in the pop-up window.
Copy You can create a copy of an existing Roll Type or Relationship. When copying a Roll Type, the
Relationships from the original Roll Type are not copied.
3. Select the record that you want to copy and choose Copy in the Ellipsis Menu (…). In Tree
View, the copy option is enabled when you select a Roll Type or Source.
Delete You can delete a Roll Type from the Relationships workspace only when the Roll Type no
longer has any relationships or if it's not referenced in rules or distributions. If you try to delete
the Roll Type with existing relationships, an appropriate message is displayed.
3. Select the Roll Type or Relationship that you want to delete and choose Delete in the Ellipsis
Menu (…) . In Tree View, the delete option is enabled when you select a Roll Type or Source.
Manage Versions You can create new versions and edit existing versions using the Manage Version option.
3. Select the required Roll Type or Relationship and choose Manage Version in the Ellipsis
Menu (…). In Tree View, the manage version option is enabled when you select a Source.
4. In the Edit Versions window, edit the effective dates as needed and click OK.
Audit Audit history displays a quick summary of the Roll Type and Relationship updates. All the
changes performed on the selected Roll Type and Relationship are displayed.
3. Select the Roll Type or Relationship that you want to audit and chooseAudit to view the
Audit Summary. In Tree view, the audit option is enabled when you select a Roll Type or
Source.
In Tree View, you can export a single relationship (the currently selected record) or a full Roll
Type (all displayed records).
In Table View, you can export records in bulk. You can select multiple records using the SHIFT
key.
To export a record:
3. Select the records you want to export and choose Export Data in the Ellipsis Menu (…) and
proceed.
Search Simple Search enables you to perform a quick word-based search across the records.
In Tree View, you can conduct a Simple Search within the currently expanded node. For exam-
ple, if you expand the Roll Type to the first level and this first level has 2000 Relationships, you
can search for a specific relationship that exists within the expanded level. If you are unsure
what level the relationship you are searching for exists in, it’s recommended to use Table View.
In Table View, you can search for a Receiver or Source and all associated records are returned.
Advanced Search The Advanced Search option is available only in Table View. See Using Advanced Search Filters
[page 52] for details.
Related Search The Related Search option is available only in Table View. Related Search allows you to nav-
igate from the Relationships workspace to the Positions workspace to view details of the
associated Receivers or Sources (for a single record). See Related Search Overview [page 58]
for details.
Related Information
A compensation plan is also referred as a Plan. A plan includes a set of rules that specify how compensation is
processed for each position that is assigned to the plan.
Plans model the compensation policies for a group of participants who occupy positions that have similar
compensation requirements in your organization. You can create and edit plans in the system. You can also
import plans via XML.
Note
Plan names should be unique. Plans with the same name cannot be imported.
Additionally, The Plan Components feature allows you to set up Compensation Plans using Factory Data
Templates. There are 20 predefined templates, which cover the most common compensation scenarios.
Related Articles
In the Plans Wizard workspace, you can create or edit plans, copy plans, add or remove rules from plans. You
can also create rules dynamically in the Plans Wizard workspace.
Navigate to Plan Data > Plans Wizard to access the Plans Wizard workspace.
General Information
In the Assignable area, you can see what positions and titles have been assigned to the plan. In the Variable
Assignments area, you can view and assign rule elements to the variables that have been associated with the
plan.
Use the Ctrl key to select multiple plan components and add them in bulk to a plan.
1. Go to the Plans Wizard workspace and select a plan to edit it in the plan details.
2. Select the Plan Components option from the View by drop-down. Choose the Add Plan button and you can
view a list of plan components.
3. Use Ctrl key and select multiple plan components and click the Add to Plan button. This adds the
selected plan components in bulk to the plan list.
A plan includes a set of rules that specify how compensation is processed for each position that is assigned to
the plan. You can first create the rules and then create a plan, or you can create a plan and then add rules at the
same time.
Procedure
Rules can be shared across plans. In other words, the same rule can be used in multiple plans.
Note
The system does not prevent you from creating circular self-references across rules in a plan, but
you should not do so. For example, within the same plan, MeasurementA references MeasurementB,
and MeasurementB references MeasurementA.
Specify the rule name. You can find and select a rule using wildcard matching, auto-matching, or the
Search field. If business units are implemented, only rules that have one or more business units in
common with the plan are displayed. For example, you cannot add a rule that is assigned to only the
EMEA business unit to a plan that is assigned to only the North America business unit. However, if the
plan includes both the EMEA and North America business units, a rule that is assigned to only the EMEA
business unit can be added. Also, only rules of the type being added are displayed. For example, if you are
adding a credit rule and you use the Search field button, you do not need to enter search criteria to restrict
the search to just credit rules. The Select a Rule dialog automatically displays only credit rules.
5. Choose Add to Plan and Save. The rule name and description, if any, display in the Rules area.
6. Continue to add rules.
Related Articles
You can assign a plan by title, or to a specific position. Plan assignment by title is recommended. When viewing
the Plan Summary for the plan, if a plan is assigned to a specific position, the position name is listed. If the plan
is assigned by title, the title name is listed.
Related Articles
As previously mentioned, plan assignment by title is the recommended method for assigning plans. When you
assign a plan to a title, the system automatically assigns all positions with that title to the specified plan. You
can override the title plan assignment by assigning the plan to a specific position.
Procedure
When you next view the plan from the Plans Wizard workspace, the plan assignment is displayed on the
Assignments tab.
When you assign a position to a compensation plan, you select an individual position from the Reporting
Structure. For performance reasons, you should avoid assigning a single position to its own plan. A position
with its own plan should be the exception. Too many individual plans can overpopulate the repository
with potentially redundant rules and thereby cause a degradation of calculation performance. Reusing
compensation plans wherever possible decrease the processing load and makes calculation processing faster.
Procedure
When you next view the plan from the Plans Wizard workspace, the plan assignment is displayed on the
Assignments tab.
Note
You cannot change the plan’s calendar. You must instead create a new plan. Currently, the association
between a calendar and a plan cannot be broken or changed
When you edit a plan, you are editing a specific version of the plan. For example, say you have a Golf Rep Plan
that is effective from January 2008 to the End Of Time. If, however, in April 2008 you add a new rule to the
plan, it is important to know the effective dates of the change. If you need changes to be back-dated effective
as of January 2008, you should edit the current version of the plan (Choose Manage Version in the Plans Wizard
workspace). However, to make changes effective from April 2008 to the End Of Time, you should create a
new version of the plan and make the changes to that new version (Choose New Version in the Plans Wizard
workspace.).
• variables
• formulas
• fixed values
• territories
• rate tables
• lookup tables
• plans
• other rules
You can delete a plan that was just created either manually or using import even if rules have been assigned to
the plan. You cannot delete a plan that has been assigned to either a position or a title without first removing
the plan assignment. Deleting a plan removes all versions of the plan object from the repository.
However, the audit log in the Audit Log workspace retains information on the actions performed on the plan
object, including its remove (delete) date, and information about the object itself.
Note
You can find data related to one or more selected plans by selecting the appropriate object option from the
Related Searchicon.
Procedure
• Fixed values directly used in the rules belonging to the selected plan.
• Fixed values referred to by any other rule element used in rules that belong to the selected plan.
• Fixed values assigned to the fixed value variables that are assigned to the selected plan.
• Rate tables directly used in the rules belonging to the selected plan.
• Rate tables assigned to the rate table variables that are assigned to the selected plan.
• Lookup Tables: returns the lookup tables directly referred to by the rules of the selected plan. Does not
return the lookup tables referred to by formulas that are used by rules belonging to the plan.
• Quota: returns the quotas directly referenced by the rules of the selected plan.
Plan components are collections of rules grouped by business logic. They are maintained centrally in this
workspace. Components can also be imported or exported for re-use.
Related Articles
In the Plan Components workspace, you can create or edit components, copy components, add or remove
rules to or from components. You can also create rules dynamically in this workspace.
Navigate to Plan Data > Plan Components to access the Plan Components workspace.
• General Information - Contains information about the selected plan, and rules associated with it.
• Associations - Displays plan documents associated with the selected plan.
Related Information
You can create a plan component, add rules to them or you can create a component and add it to a plan.
Procedure
Rules can be shared across components. In other words, the same rule can be used in multiple components.
Procedure
Components can be shared across plans. In other words, the same component can be used in multiple plans.
Note
Note
You cannot change the component’s calendar. You must instead create a new component. Currently, the
association between a calendar and a component cannot be broken or changed.
When you edit a component, you are editing a specific version of the component. For example, say you have a
Golf Rep Component that is effective from January 2008 to the End Of Time. If, however, in April 2008 you add
a new rule to the component, it is important to know the effective dates of the change.
If you need changes to be back-dated effective as of January 2008, you should edit the current version of the
component, choose Manage Version in the Plans Wizard workspace. However, to make changes effective from
April 2008 to the End Of Time, you should create a new version of the component and make the changes to
that new version, choose Add New Version in the Plans Wizard workspace.
• variables
• formulas
• fixed values
• territories
• rate tables
• lookup tables
• plans
• other rules
You can delete a component which is not associated with any plan, even if rules have been assigned to it. You
cannot delete a component that has been assigned to any plan. Deleting a component removes all versions of
the component object from the system. However, the audit log in the Audit Log workspace retains information
on the actions performed on the component object, including its remove (delete) date, and information about
the object itself. .
Note
To delete a particular version of a component, use the Manage Version in the Ellipsis Menu (…).
You can find data related to one or more components by selecting the appropriate object option from the
Related pane. The available options and the data returned are as follows:
Procedure
• If you are searching for related rules, the results are immediately retrieved and displayed in the Rules
Wizard workspace. If no results are found, the message No Records Found is displayed.
The Audit history provides the list of all of the changes that have been made to objects over time.
A compensation rule is a combination of input, condition criteria, and an output result. You use compensation
plan rules to specify how the system calculates credits, measurements, incentives, and deposit amounts for
participants who are assigned to the plan. You can create and edit rules in the systen. You can also use XML
import to import your rules. Compensation rules are constructed by users to specify how the system handles
compensation processing for their own business requirements. Each compensation rule specifies the input to
a processing stage, condition criteria that must be met, and an action or actions to be taken if the condition is
met.
You write compensation rules using Boolean logic—logical statements whose conditions are evaluated as true
or false. (If a rule does not have a condition, then it always runs.) Typically the logic of a compensation rule
is an if condition, followed by a then action. If the condition is met (true), then the action is performed; if
the condition is not met (false), then no further action is taken for that rule for the position assignment
being evaluated during calculation processing. Each compensation rule is a set of statements that tells the
system what action(s) to perform when defined criteria are met in a specific calculation stage. Compensation
plan rules specify how the system calculates credits, measurements, incentives, and deposit amounts for
participants who are assigned to the plan when the calculation is run.
Compensation plan rules are created in the Rule Editor, where you define the input criteria, conditions under
which it is processed, and the action is taken when it is processed. The type of compensation rule corresponds
to a calculation stage: credit, primary measurement, secondary measurement, incentive, and deposit. Each
calculation stage runs the compensation rules for that stage. Compensation rules in the system are used
in compensation plans to calculate compensation. The system also uses classification rules to classify valid
transactions during the classification stage of the calculation.
Note
Related Articles
In the Rules Wizard workspace, you can create, modify, copy, and delete rules.
The Rules Wizard workspace contains the General Information tab and the Associations tab.
The name and fields in the Rules Wizard workspace vary depending on the type of rule being created. Each of
the four rule types has a distinct editor.
Navigate to Plan Data > Rules Wizard to access the Rules Wizard workspace.
All rule editors have similar tabs. The actual display name of the tab depends on the type of compensation rule
(credit rule, measurement rule, incentive rule, or deposit rule) selected from the Type drop-down list.
Rule editors contain the same basic areas with some exceptions:
• Input and filter area: In the input area, you must specify the source of the rule. The source for credit rules
can be either transactions or orders; the source for measurement rules can be credit or other, and the
source for deposit rules can be incentives or deposits. Incentive rules do not take an input source type. In
the filters area, you can specify conditions.
• One or more action areas: The input to the rule that meets these conditions causes the actions defined
in the actions area. In the actions area, you must specify the actions or the actions that the rule should
execute when the rule conditions are met.
Note
If Period Type is modified in an Incentive Rule, then all the versions will be updated with the new Period
Type. Changing the Period Type can impact the pipeline results if the output is shared.
The following figure shows an example of the Associations tab in the Rules Wizard workspace. From this tab,
you can view the plans that contain the rule. You can also view inputs to the rule, the outputs from the rule, and
the rules that use the output from the rule.
To increase flexibility, you can structure your compensation rules to reference rule elements instead of
specifying values within the rule. Rule elements are stored independently of the rule and can be used in
multiple rules. You can also include one rule element in another. For example, you can write a formula that
references a rate table or includes a formula in a rate table. The following table lists the kinds of rule elements.
Rule Description
Rate table Defines different rates across rate thresholds or tiers. Used
to calculate incentive compensation for a step commission.
From the Plan Wizard workspace, you can also assign rule elements to variables. You can create rules either
from a plan or from the Rules Wizard workspace.
A condition is a set of criteria that must be met before an action can occur. Use conditions to specify when the
system should process a rule. In the Condition field, legal moves operates in the same way as when creating
formulas. However, the construction of the conditional criteria differs somewhat from how you build formulas.
To include a formula as part of a condition, you should do one of the following:
In the condition of a compensation rule, a “not equals? compared to a value that is null causes the system to
not process the rule. For example, Participant.Attribute 9 <> “bronze? The rule is not processed, because null
is not a true value, it is the absence of a value. To cause the system to run the rule, the condition should include
a condition for null cases. For example, Participant.Attribute 9 <> “bronze? AND Is Null (Participant.Attribute
9) = false
If you are using multiple actions in some of your secondary measurement, incentive, commission, or deposit
rules, it is very important that you be aware of how the system processes rules in order of dependency. The
system determines the dependency at the rule level, not at the action level. If you have multiple actions in some
of your rules, all of these actions must be at the same dependency level, or you get incorrect results. As part
of pre-processing for the Reward stage, the system determines the dependencies of all Reward stage rules.
These dependencies determine in what order the system processes the rules so that the dependencies are
appropriately satisfied.
For example, an incentive rule can depend on the output of another incentive rule, and that rule can depend on
the output of a secondary measurement rule, and the secondary measurement rule can depend on the output
of a primary measurement rule.
During the Reward stage pre-processing, the sytsem calculates the dependency so that the rule at the
bottom of the dependency chain is processed first, and then the rules are processed in order of successive
dependency. During the Reward stage, the system processes all level 0 rules first (or evaluates them to
determine that they are not processed). This occurs before the system processes any Level 1 rules. After the
Level 0 rules have all been evaluated and run, then the system evaluates and processes just the Level 1 rules,
and so on through all the dependency levels.
Note
You can see the dependency levels listed in the Reward stage log file if you run the calculation in Internal
mode.
It is very important to understand that the sytsem calculates the rule dependencies at the rule level, and not
at the action level. If a rule contains multiple actions that have various dependency levels, the system gives
the rule the same level as the highest level of action. For example, if the first action of an Incentive rule was
the Incentive B from the previous example, its dependency level would be 2. If there was another action in this
same rule that simply depended on a Secondary Measurement (which, in turn, had no dependencies), it would
be at level 0. However, because the dependencies are computed at the rule level and not at the action level, the
entire rule is set at a dependency level of 2. This effectively bumps the second action in this rule from level 0 to
level 2 (to match the level of the highest level action in the rule).
Because of rule dependency levels, there are certain guidelines that you must follow if you choose to create
multiple actions in rules:
• Be sure that all actions in a rule are of the same dependency level. If in doubt, put the action in a separate
rule.
• Never put an action in a rule that depends on another action in the same rule.
Note
A secondary measurement rule that references a primary measurement and no other result object has a
dependency level of zero
Note
A secondary measurement that references a primary measurement and no other result object, is at level
0. From the perspective of the Reward stage, there are no dependencies on Allocate stage objects (primary
measurements), because all primary measurements are already calculated when you get to the Reward
stage.
To export the Reportable Flag and Display name of the Report, in the Rules Wizard workspace, choose the
Export Data icon to perform an XML export. You can find the Reportable Flag and Display name of the Reports
in the exported/downloaded XML file.
Note
When the XML file is downloaded, the Unit Type of the rule may display as a currency (for example, generic
“ARS” value) in the file, but this value does not impact the calculations or the import process in any
manner.
Each rule contains one or more actions. When rules are evaluated during calculation processing, actions are
executed to produce an output. See Overview: Multiple Actions in Rules [page 105] for details.
The following table lists the restrictions that must be observed when editing rules.
All rule types You cannot change the calendar of a rule. You must instead
create a new rule. Currently, the association between a cal-
endar and a rule cannot be broken or changed.
Incentive and measurement rules All versions of an incentive and measurement rules must
have the same output period type and unit type. Do not
change the output period type or unit type. Instead, create a
new incentive rule with the required output period and unit
type.
Be aware that when you edit a rule, you edit the specified version of the rule. For example, say you have a
rule that is effective from March 2008 to the End Of Time. If, however, in May 2008 you change how the rule
calculates the credit, it is important to know the effective dates of the change. If, for example, your changes are
to be back-dated effective to March 2008, then you edit the current version of the rule (click Manage Versions
in the Rules Wizard workspace). However, if, your changes are to be effective from May 2008 to the End Of
Time, then you create a new version of the plan and make the changes to that new version (click New Version in
the Rules Wizard workspace). If you have a rule that is no longer effective, you change the effective end date of
the rule to the required date. You do not do a delete operation if the rule was valid for any point in time. When
you go to edit a rule, the system displays a message that tells you the plans that the selected rule is assigned
to; any change to this rule affects all plans the rule is assigned to.
Related Articles
You can rename a rule. When you rename a rule, the rule’s output name does not change, unless you directly
change the output name as well.
Related Information
You can delete a rule that does not have any related results data (a calculation run has not yet occurred for the
associated plan and position). For example, you can delete a rule that was just created either manually or using
import, even if the rule refers to other rule elements. You can also select rules of different types (credit rules,
measurement rules, incentive rules, and deposit rules) and delete them if the rules selected do not have related
results data. When you multi-select rules of different types, no information is displayed in the detail pane.
You cannot delete a rule if it has associated results data. For example, you cannot delete a measurement or
incentive rule if Create Default Data has been run, because Create Default Data creates empty placeholder
objects for these rules. You cannot delete a rule if it is referenced by a plan. You should consider end dating it
instead.
Deleting a rule removes all versions of the rule object from the the system. However, the audit log in the Audit
Log workspace retains information on the actions performed on the rule object, including its remove (delete)
date, and information about the object itself.
Note
To delete a particular version of a rule, use the Manage Versions option in the Ellipsis Menu (…).
Related Information
You can find data related to one or more rules. Specifically, you can find data related to the following objects:
The Search for Related search dialog displays with the name of the selected object substituted for the object
name.
Related Information
If generic attributes are enabled, you can use those attributes when creating rules. The following table lists the
types of rules on which generic attributes can be used and the specific attributes that must be enabled in the
Customization workspace so that they can be used.
Note
Generic attributes cannot be used in primary measurement, commission incentive, and detail deposit
rules.
Related Articles
Generic attributes can be used in calculations and included for reporting purposes in some rules. Generic
attributes can be included for reporting purposes only in other rules.
• Transaction Generic Attributes - Can be used in direct transaction credit and rolled transaction credit
rules. For example, you can include generic attributes, such as Transaction.Generic Attribute 1, in the
conditions and actions of these rules. You can also use transaction generic attributes in all other rule types
that have access to the Credit.Transaction.* andSource Credit.Transaction.* attributes.
• Credit Generic Attributes - Can be used in primary measurement and commission incentive rules. For
example, you can include generic attributes, such as Credit.Generic Attribute 1, in the conditions and
actions of these rules. The values for credit generic attributes are generated by the credit rule actions.
These attributes are populated when the calculation is run and credits are generated.
A common use of generic attributes is for reporting only purposes. For example, if the output amount of a
credit rule is based on a calculation, you can store the components of the calculation in a generic attribute.
As previously mentioned, transaction and credit generic attributes can be used in calculations as well as for
• Measurement generic attributes - Can be included in secondary measurement rules. The values for
measurement generic attributes are generated by secondary measurement rule actions. These attributes
are populated when the calculation is run and secondary measurements are generated.
• Incentive generic attributes - Can be included in incentive rules. The values for incentive generic
attributes are generated by incentive rule actions. These attributes are populated when the calculation
is run and incentives are generated.
• Deposit generic attributes - Can be included in incentive-based, detail deposit rules. The values for
deposit generic attributes are generated by deposit rule actions. These attributes are populated when the
calculation is run and deposits are generated.
The following figure shows an example of a rolled transaction credit rule with transaction generic attributes
enabled. Click on the plus ( ) to expand each type of generic attribute available.
When dealing with various actions in secondary measurement, incentive, commission, or deposit rules,
it becomes crucial to understand the system's rule processing order based on dependency. The system
determines dependencies at the rule level, rather than the individual action level. Hence, if you have multiple
actions within a rule, it is essential to ensure that all these actions are at the same dependency level; otherwise,
incorrect outcomes may arise.
Related Articles
If you put an action in a rule that depends on another action in the same rule, this can cause incorrect results.
The errors might or might not result in errors produced in the log file, such as circular reference issues. For
example, if ActionA depends upon ActionB, ActionA must be at a higher dependency level than ActionB to
get the correct answer. But, because both actions are in the same rule, they both have the same dependency
level (that of ActionA). This (in the worst case) leads to strange self-dependency issues and possible circular
references errors. In the best case, it causes random results; because within a given dependency level the rule
firings are essentially random. That means that in some calculation runs ActionB fires before ActionA. But in
other runs, ActionA could fire before ActionB, leading to incorrect results.
Note
The system prevents you from creating circular self-references within the same rule. For example, a
circular reference is if you use the output of a rule to calculate the output of the same rule, such as rule
output name=IncentiveA and you use IncentiveA to calculate the incentive. (This is different from referring
to the output of one action in a rule from another action in the same rule. This form of self-reference is
allowed).
If a rule depends on the results of one or more actions in a multi-action rule, the system does not process
the rules in the correct order. For example, if a multi-action rule has an action with a level 2 dependency and
another action with a level 0 dependency, the level 0 action gets bumped to level 2. If there is another rule with
a level 1 dependency that depends on the output of the action with a level 0 dependency, that level 1 rule will
have an incorrect result. In addition, all rules that depend on the level 1 rule will also have incorrect results.
It is possible to create multiple rules that produce results with the same output name. For example, if you
have overwritten the default output name, which is normally the same as the rule name, it is possible to have
two incentive rules, "Incentive Rule 1" and "Incentive Rule 2", that both produce an incentive output named
"Year-End Bonus." If multiple rules produce the same named output, it is imperative that these rules have
mutually exclusive conditions that guarantee that only one of these rules be processed during a calculation run.
If these rules do not have mutually exclusive conditions, and as a result, more than one rule is processed, the
output from the second rule overwrites the output from the first rule, the output from the third rule overwrites
the output from the second rule, and so forth. There is no way to guarantee the order in which the rules are
processed. Thus, these rules can result in indeterminate and inconsistent calculation results.
An interesting derivation of this scenario is presented by commission rules. A commission rule with a condition
processes every eligible credit. For all other rules, the condition is evaluated only once, and the result
determines if the rule is processed during a calculation run. A commission rule is an exception because the
condition is not applied to the rule as a whole, but rather to each of the credits that are evaluated in the
(per-credit) commission process. This means that mutual exclusivity must now be enforced not only at the
rule level but also at the credit level. In other words, if one or more of the rules that creates an identically
Compensation plans are usually composed of five types of rules: credit, primary measurement, secondary
measurement, incentive, and deposit. A plan generally contains one or more of each of these rule types;
each rule type drives a different processing stage in the calculation. You can create compensation rules
independently of a plan in the Rules Wizard workspace. You can add the same rule to multiple plans; this is the
concept of shared rules. If you update a shared rule, the rule is updated in each plan where it is used. All rules
on a plan must be associated with the same calendar as the calendar associated with the plan.
Rules and plans are effectively dated. Changing a rule in an existing plan changes the version of the plan as
well as the version of the rule. You can assign a plan to one calendar only. To use a formulaic expression in one
rule, just enter the expression in the rule’s condition, filter, or calculation/output fields. To reuse the formulaic
expression in other rules or rule elements, save it as a formula. Generally, you should create each rule in order
of processing - credit, primary measurement, secondary measurement, incentive, deposit - because you are
often prompted to select named input from a previous rule as you create the next rule. All rules on a plan
must correspond to the same calendar as the one to which the plan is assigned. You can assign a plan to one
calendar only. Rules and plans have effective times. When you change a rule in an existing plan, a new version
of the plan is created as well as a new version of the rule.
Note
Some compensation plans might not require all five types of compensation rules. For example, you might
not need credit rules in a plan that uses only imported credits.
Classification data is a type of reference data. It is used to group or classify sales transactions. Classification
data includes categories and classifiers, and is organized into category hierarchies that do the following:
The following figure shows a typical category hierarchy and its categories, subcategories, and classifiers.
The classification data workspaces are accessible from Plan Data > Classifications. It includes the categories
workspace, workspaces for the pre-defined classifier types (Products, Customers, and Postal Codes), and any
other workspaces based on the classifier types defined by the administrator.
Category hierarchies can be created from the bottom up, starting with creating classifiers, or from the top
down, starting with creating category hierarchies. However, the general activities required to create category
1. Identify the transaction data to be used to match against classifiers in the category hierarchy. This includes
all information used by your company to determine how revenue is credited for sales.
• For example, if your company allocates credits based on product, you would identify the product
information found on the transaction. If your company allocates credits based on postal code, you
would identify the postal code information found on the transaction. If your company allocates credits
based on customer, you would identify the customer information found on the transaction.
2. Create user-defined classifier types if necessary.
• The system provides three predefined classifier types Product, Customer, and Postal Codes. The
administrator can create additional user-defined classifier types that you need by making entries in the
Customization workspace.
3. Create category hierarchies, categories, and classifiers.
• For example, create a Product category hierarchy with classifiers of the Product classifier type to filter
for transactions that contain specific product information. Create a Postal category hierarchy with
classifiers of the Postal Code type.
4. Create classification rules for each category hierarchy.
Related Information
The Plan Data > Classification workspace contains the Category tab and the Classifiers tab.
• The Category tab lists Categories of all the Classifier Types. See Categories Workspace [page 117] and
Working With Categories [page 120] for details.
• The Classifiers tab provides a hierarchical view (tree view) of the selected Classifier Type. See Classifiers
Workspace [page 118] and Working With Classifiers [page 129] for details.
Note
If you do not have Read permissions to Categories, the tree view is not available in any of the
classification data workspaces.
The Categories tab is displayed by default on choosing Plan Data > Classifications. The Categories tab displays
category information in a list view and enables you to perform various functions to create and manage
categories. You can add, modify, and delete categories. You can also export and import Generic classifiers
via excel in this workspace.
Select a Category to view the Category Details page. The Category Details page enables you to update category
information and related data.
You can perform the following actions using the respective icons available in the tool bar and in the Ellipsis
Menu (…).
Action Description
Duplicate To copy a category, you must first select the category you
want to copy and then choose the Duplicate option. The
name of new category is prefixed with Copy of, which you
can update as needed.
Manage Version You can create new versions and edit existing versions using
the Manage Version option. See Object Versions Overview
[page 45] for details.
Related Search Related Search allows you to navigate from the Categories
workspace to other associated workspaces such as Classifi-
ers, Parent Category, Plan, Rules, and so on. See Related
Search Overview [page 58] for details.
Download Excel Data You can download the category template or data for the se-
lected records. Choose Download Excel Data and select the
appropriate option.
Upload Excel Data Choose Upload Excel Data and select the excel file to upload
data to the workspace.
Configure Summary View Choose Configure Summary View to choose which fields
should display in the summary (list) view. Mandatory fields
are indicated with * and they cannot be removed (moved to
Available Fields). Only optional fields can be moved. You can
also drag and drop the fields to change the order.
Related Information
The Classifiers workspace provides a hierarchical view of the Classifiers and the Categories for a selected
Classifier Type. This workspace displays details of the predefined classifier types (products, customers, postal
codes) and the additional classifier types as defined the administrator administrator.
Select the Plan Data > Classifications > Classifiers tab to view the classifiers workspace. In this view (when
nothing is selected), you can choose a Classifier Type, Create a Category Hierarchy, or Create an Unassigned
Classifier.
You can perform the following actions using the respective icons available in the tool bar and in the Ellipsis
Menu (…). Only relevant icons are enabled when an object in the hierarchy view is selected.
Action Description
Duplicate To copy an object, you must first select the object you want
to copy and then choose Duplicate.
Bulk Edit Use the Bulk Edit option, to update multiple Classifiers in one
go. The Bulk Edit button is enabled only when multiple Clas-
sifiers are selected. See Editing Multiple Classifiers (Bulk
Edit) [page 133] for details.
Delete Use Delete to delete a selected record. You can select multi-
ple objects to delete.
Manage Version You can create new versions and edit existing versions using
the Manage Version option. See Object Versions Overview
[page 45] for details.
Download Excel Data You can download the template or data for the selected re-
cords. Click Download Excel Data and select the appropriate
option.
You can also download all the Classifiers using the Download
All Classifiers option.
Upload Excel Data Click Upload Excel Data and select the excel file to upload
data to the workspace.
Export Data Click Export Data to export the selected categories to a CSV
file. You can specify the export options in the Export to CSV
dialog.
Note
If you do not have read permissions to Categories, the tree view option is not available to you. The
products, customers, postal codes, and other workspaces associated with user-defined classifier types
display information only specific to their Classifier Type.
Related Information
Related Articles
You can create categories and add them to category hierarchies and other categories to create a nested
hierarchy of subcategories. You can create as many subcategories as you need. You cannot create categories
with duplicate names within the same category hierarchy. However, you can create categories with the same
name in different category hierarchies as long as the combination of the category hierarchy, and the category is
unique (effective dates or related classifier types differ).
The following tables provide examples of disallowed category names and effective dates, and examples of
allowed category names and effective dates.
Product
Cat Hierarchy A Category A Jan 2008 to Mar 2008
Product
Cat Hierarchy B Category A Jan 2008 to Mar 2008
Customer
Cat Hierarchy A Category A Apr 2008 to June 2008
Product
Cat Hierarchy A Category A Jul 2008 to Sept 2008
Related Information
Procedure
However, the audit log in the Audit Log workspace retains information on the actions performed on the objects,
including their remove (delete) date, and information about the objects themselves.
To delete a particular version of a category, use the Manage Versions option in the Ellipsis Menu (…).
You can create category hierarchies and their respective classification rules in Plan Data > Classification >
Classifiers tab. The category hierarchy name represents the top node, also called the root, of the category
hierarchy structure. Category hierarchies can be created by doing the following:
Category hierarchies can be simple (with one or two levels) or complex (with many levels), depending on the
complexity of the transaction data that is meaningful to your organization. A category hierarchy can also be a
simple list of classifiers under a category. You can set up as many category hierarchies as your organization
needs.
Related Articles
The system uses categories arranged in hierarchies as the basis for grouping transactions. A category
hierarchy can have the same name as a category within it. However, the names of category hierarchies must be
unique if the effective dates of the category hierarchies overlap.
Category hierarchies that share the same classifier type can share the same classifiers. However, hierarchies
that have different classifier types cannot share the same classifiers.
1. Choose Plan Data > Classification, and select the Classifiers tab.
2. ChoosePlan Data > Classification > Classifiers tab.
3. ChooseCreate.
4. In Category Type, select Category Hierarchy.
5. In Insert Data, provide the required details. If you are adding a category directly under the category
hierarchy, the system automatically fill in the Category Hierarchy name and leaves the Parent Category
field blank. When you add a subcategory below another category, the system automatically fill in both the
category hierarchy name and the parent category. You normally do not need to change the data in these
fields (an exception is moving a category). If your organization has created and implemented business
units, you can assign this classifier to a business unit by selecting from the Business Units dropdown. You
can only select business units to which you as a user have been assigned. If one or more business units
have been assigned to the parent category hierarchy or category, the category inherits those assignments.
You cannot assign business units that have not also been assigned to the parent category or category
hierarchy.
6. ChooseNext.
7. Review the updates and choose Submit.
Note
You can save a category hierarchy without a classification rule, but the classification rule must be defined
before running the calculation.
The following tables provide examples of disallowed category hierarchy names and effective dates and
examples of allowed category hierarchy names and effective dates.
As you create a category hierarchy, you can build a classification rule for that category hierarchy using the
Classification Rule field. However, you can save category hierarchies without classification rules, then come
Note
The following instructions assume you have already created the Category Hierarchy. If you are creating a
category hierarchy and building the classification rule at the same time, skip to Step 3, else choose Plan >
Classifications , and select the Classifiers tab to proceed.
Procedure
A classification rule defines the condition that must occur in order for a transaction to be classified in the
associated category. Classification rules drive the classify stage of the calculation.
Note
After you have created a category hierarchy with its required classifier type, you cannot change the
classifier type when you create the classification rule.
The classifier type used for the category determines what elements you can use to build the classification rule
for that category. For categories that use classifier types that are predefined for your organization, the classifier
fields have specific, descriptive names. You can also have custom attributes on the predefined classifier types,
which display on the vustom attributes of the associated workspace (for example, Customers could have a
custom attribute description that displays on the Custom tab in the Customers workspace). Each classification
rule defines in general terms how the field(s) on the transaction that is compared with the classifiers in the
category hierarchy. The comparison relationship can be:
The like and not like operators are used to comparing against a string that includes the "%" wildcard, which
means "match against any character in this position".
For a classification rule to be value, you must have, at a minimum, Transaction.xxx = Classifier.xxx.
In addition, you can also have the following in conjunction with the and operator (but it is not mandatory):
• Transaction.xxx = Transaction.yyy
• Classifier.xxx = Classifier.yyy
The system does not classify a transaction if the transaction’s field referred to in the classification rule is null.
For example, if you have the following transaction rule:Transaction.Billing.Industry <> ”r;Manufacturing”. If the
Transaction.Billing.Industry field has no value specified, the system does not classify the transaction. To avoid
transactions not getting classified, be sure to explicitly set the field comparison value in the classification rule.
In addition to the comparison matching in a classification rule, you can include a portion of the classification
rule that compares a transaction field to a literal value. A classification rule must specify a comparison between
a classifier field and a transaction field. You cannot have a valid classification rule that consists solely of a
comparison to a literal value. An example of an invalid classification rule is "Transaction.Value greater than
$100.00." The system calculation ignores invalid classification rules.
Note
For a literal comparison to a data field, it is recommended to put the literal value on the right side of the
expression.
When you are creating a classification rule for a category hierarchy, you choose the individual operations
and associated parameters from the Legal Moves that display in the New Formula dialog. A classification rule
Note
When referring to one of the default classifier types in a formula or a classification rule, the ID displays in
legal moves like the following: Product.Product ID. For generic classifiers, the ID displays in legal moves like
the following:AreaCode.ID.
When creating classification rules that include literals using extended attributes, you should group the
extended attributes together. For example, instead of using the following classification rule:
• A category’s effective date range must be less than or the same as the effective date range of the category
hierarchy. A category cannot be effective for a greater range of time than its category hierarchy.
• A category’s effective date range must be less than or the same as the effective date range of the category
that the subcategory belongs to. The subcategory cannot be effective for a greater range of time than its
owning category.
When you create classifiers, they inherit the classifier type of the category hierarchy they associated with.
Hence, all the classifiers in a category hierarchy must be and are of the same classifier type. Classifiers are
attached to categories at the leaf-level in the category hierarchy. Each classifier represents a piece of business
information such as a Product Id number (PP478). Any sales transaction processed in the system that contains
a line with (PP478) is classified by the system so that the sales representative that sold that product will get
credit for the sale.
Classifiers, based on the business information that they want to use to compensate salespeople, can be
created first. Category hierarchies which support these classifiers can then be created later. However, you can
There is no limit to the number of classifiers you can create (or import). You can add a classifier at the leaf level
of any category in any category branch within the category hierarchy. A classifier can exist in multiple category
hierarchies, but it can be attached only once in each hierarchy.
You can also create a classifier without associating it to a category hierarchy. However, you can associate a
category to the classifier later.
Note
Unassigned Classifiers are classifiers that are assigned to a Classifier Type but are not associated to a
Category Hierarchy. Unassigned Classifiers are not considered for calculations and allocations and are not
associated to classification rules.
Related Articles
You can create classifiers and then assign them to categories and subcategories within a category hierarchy
later, or you can create and assign classifiers in one single step.
You can also create Unassigned Classifiers, that is, create a classifier without associating it to a category and
then associate the classifier to a category hierarchy later on.
You can create as many classifiers as you need. When you create a classifier, you must assign an identifier.
The identifiers for the three predefined classifier types (Product ID, Customer ID, and Postal Code id) must be
unique. However, the identifiers for generic classifiers do not need to be unique.
Procedure
You can add a classifier to any category in the category hierarchy. A classifier can exist in multiple category
hierarchies but can exist in each one only once.
• To create a classifier by associating a category, select a classifier type, navigate to the desired category
in the hierarchy view, and choose Create in the details panel.
You can download classifier data with associated category and classifier information using the Download
Excel Data option.
The following tables provide examples of disallowed category names and effective dates, and examples of
allowed category names and effective date.
Product Product ID = A A
Customer Customer ID = A A
Product A
Product ID = A
Product B
Product ID = A
Customer C
Customer ID = A
Postal Code
Postal Code ID = C A, B, or anything else
Generic Classifier 1 ID = A A
Generic Classifier 2 ID = A A
Related Information
You can update multiple classifiers in one go by using the Bulk Edit feature.
Procedure
5. Choose Save. All selected classifiers will now display the updated field values.
Related Information
You can delete a classifier that was just created either manually or using import. You cannot delete a classifier if
it is referred to by a rule, a territory, or a lookup table.
When you delete a classifier, the warning “Are you sure you want to delete this Classifier and remove its
associated relationship with Categories” is displayed. If you click Yes, the classifier and its assignment to all
categories are deleted. Deleting a classifier removes all versions of the classifier from the the system.
However, the audit log in the Audit Log workspace retains information on the actions performed on the
classifier object, including its remove (delete) date, and information about the object itself.
To delete a particular version of a category, use the Manage Versions option in the Ellipsis Menu (…).
You can assign a classifier to any category in the category hierarchy. A classifier can exist in multiple category
hierarchies but exist in each one only once. You can assign an existing classifier to a category or you select
a category and create and assign the classifier in a single step. A classifier can be assigned to additional
categories.
You can also move a classifier from one category to another by updating the parent category.
4. In the Create Related Data popup, select the Category to which you want to assign the Classifier. Category
Hierarchy is automatically populated.
5. Choose Save.
6. Optional. You can edit the related data using the Edit option. You can delete (remove) the assigned
classifiers using the Delete option.
6. Choose Save. The selected classifier is now moved to the specified category.
Classifier assignment is the relationship created by assigning a classifier to a category for a specified period
of time. Classifier assignments are created when classifiers are added to categories. If the effective dates for
a category and classifier differ, the effective date of the relationship between the category and classifier is
determined by the overlap of effective dates.
You can perform bulk addition of classifiers to a category. This principle is illustrated in the following figures.
Related Information
Effective dates of an associated classifier can be edited using the Manage version dialog. You cannot create
different versions of the association but will be able to edit the version dates. Hence, a version of the classifier
can be associated to a category. The same behavior applies to the classifier to category association.
You need to save the classifier or category before creating the association. If there are multiple versions of the
object, then the last version of the object in the assignment date range is displayed. .
• Products
• Customers
• Postal Codes
Your organization could add other user-defined classifier types. For example, if your company allocates credits
based on product information found on the transaction, you can use a category hierarchy with classifiers of
the Product classifier type to filter for transactions that contain specific product information. If your company
allocates credits based on both product and postal code, you can use two category hierarchies: one with
classifiers of the Product classifier type, and the other with classifiers of the Postal Code type. You could also
have more than one category hierarchy with the same classifier type.
For example, the administrator might create two category hierarchies with the Product classifier type, one for
regular company products and one for Special Product Incentives Fund (SPIF) containing products or groups
of products for which special commissions or bonuses are assigned for limited sets of dates. The system
supplies separate workspaces on the Classification tab for each of the predefined classifier types, as well as
separate workspaces for user-defined classifier types that your organization creates.
The Credit Eligibility Rule workspace is used to create Credit Eligibility Rules which are used to generate
transaction pre-assignments by matching fields in the Transaction with the Territory mapping (specified
in Generic Classifier table). Territory mapping stored in the Generic Classifier table specifies what type of
transaction each Position (or Payee or Title) is eligible to get credit for. In the Credit Eligibility Rule, you
can specify which field in the Generic Classifier must be matched against which field in the Transaction.
Transaction pre-assignment record is created after the Credit Eligibility Rules are processed in the Territory
Processing stage. Transaction pre-assignment helps with filtering out candidate transactions that are eligible to
be credited.
Choose Plan Data > Credit Eligibility Rules to access the Credit Eligibility Rule workspace.
Note
If the Credit Eligibility Rules workspace is not available on your tenant, create a support ticket to enable this
functionality.
Credit Eligibility Stage (CES) is a way of generating the transaction assignment from a Territory that is
defined in a relational structure. It is a pipeline stage which will directly create transaction assignment records
based on matching transactions for existing classification data. You can define Territory for a Position as a set
of entries in the Generic Classifier table.
For example, to define the same territory for a position selling laptop computers in the U.S. or desktop
computers in Canada, you will need to have the following entries:
After you run the CES stage (shown as Territory Processing in the pipeline run), it will match Sales Transaction
to the CES Territory (defined in Generic Classifier table as above) to generate records for the Transaction
Assignment table. With the generated Transaction Assignment, you can run the regular ECA (External Credit
Allocation) Credit Rule (i.e., Credit Rule with the Credit if they are identified on the Transaction option selected).
Multiple Credit Eligibility Rules can be used to generate Transaction pre-assignment for the same Territory
Mapping (i.e. the Generic Classifier record). Transactions can be assigned by the following standard methods:
• Positions only
• Payee IDs only
• Position and Payee ID combinations
• Titles
When you have any active Credit Eligibility Rule, the pipeline will run the Territory Processing stage. The
Territory Processing stage will first delete all Transaction Assignment records for the period and then
run all active Credit Eligibility Rules to create the Transaction Assignments. If you have manually or
imported Transaction Assignment records that you want to preserve ( prevent from deletion by the pipeline
run), add the following entry in the CSTA_Preferences table:INSERT INTO CSTA_Preferences VALUES
('PreserveImportedTA', 'true'); Additionally, your Transaction Assignment records cannot have a
value in the GenericBoolean6 column.
Related Information
The Credit Eligibility Rule workspace creates rules for transaction pre-assignments by matching fields in the
Transaction with the Territory mapping from the Generic Classifier table.
Best Practices
• The CES rule allows selecting only customer fields for matching. For other Classifiers, you can directly
populate the CSTA_Rule table.
• The CES rule supports direct matching. If you need to use relational operators (<, >, <=, >=, like), you can
change those in the CSTA_Rule table directly.
• CES makes use of the Generic Classifier table, so you must create a custom Generic Classifier Type to use
for CES Territory.
• It must be noted that CES runs for all the calendars.
Procedure
1. Define a new custom Generic Classifier Type in the Preferences > Customization workspace. This will be
used to store the CES Territory definition. Enable the Generic Attributes that will be used for the PayeeId/
Position/Title field and the matching Transaction fields plus other fields that you require.
Example: Create GenericClassifier type 'CES' and enable GenericAttribute1 for position. This field will be
used to specify the position. Enable GenericAttribute2 for productId. This field will be used to match the
SalesTransaction field.
Note
The Match Conditions section compares a field in a transaction with a field from a chosen table
(usually a Generic Classifier table). The matching rule conditions are treated as ANDs and not ORs
by the system. Each rule is matched once to determine if a given rule for a given transaction should
move on to the Successful Match Processing section. Match Processing is the exercise of stamping
the transaction with additional information that will help speed processing of candidate transactions.
The first part of the Successful Match Processing allows you to identify the type of transaction
pre-assignment stamp you are setting. (Transaction pre-assignment table refers to transactions and
people). The Stamp section allows you to select a field in the Generic Classifier table and stamp
(copy) that value into a field on the pre-assignment table so it can be referenced during Credit Rule
processing. The Matching Transaction Pre-assignment field is the resulting field that would be stamped
with the value. You can use the Add Post Process option to move more values to the transaction
3. Create the CES Territory in the Plan Data Classification workspace. This involves creating a
GenericClassifier for the CES Classifier Type in the GenericClassifier table. See Working With Classifiers
[page 129] for details.
For example: Create new Classifiers for CES Classifier Type to specify the CES Territory for the Position.
4. Create a Credit Rule in the Plan Data > Rules workspace and select the Credit if they are identified on the
Transaction option. This is also known as External Credit Allocation (ECA) based Credit Rule. See Creating
a Credit Rule [page 147] for details.
5. Run the pipeline. You can notice that the Territory Processing stage starts running. This stage will run the
CES rule and generate the Transaction Assignment.
The assignments generated for the matching SalesTransactions are displayed. You can see that the
attributes that match the GenericClassifier and the SalesTransaction based on the matching condition
for the CES are listed.
Note
To import a CES Territory, you can also use the CLGC_Template to import the GenericClassifier via Express
Data Loader.
Related Information
A credit rule identifies the credits on which a plan operates and allocates them to position assignments.
The system uses credit rules to analyze transactions, orders, or rollable credits to determine which position
assignments should receive credits for a transaction. In addition to being created by credit rules, credits can
also be imported into the system and can be created manually.
As a best practice, it is recommended that you allow the system to calculate credits. Credit rules drive the
allocate credits and primary measurement step of the allocate stage of the calculation. The output of credit
rules, individual credits associated with position assignments, is used as input to primary measurement rules.
There are four kinds of credit rules: direct transaction credit, rolled transaction credit, direct order credit, and
rolled order credit rules.
The following table summarizes these credit rules, and identifies their inputs and their outputs.
Rolled transaction Input is rollable credits that are based on transactions; gen-
erates rolled credits.
Rolled order Input is rollable credits that are based on orders; generates
rolled credits.
Note
If a compensation plan relies on imported credits, you probably do not need to create credit rules for that
plan.
Related Articles
In the Credit Rule editor, you can limit the data evaluated by a credit rule by specifying the input source, either
transactions or orders, and creating filters. The filters area for order credit rules is similar to the source and
filters area for a transaction credit rule, but you cannot specify a territory for an order credit rule.
Note
The pre-assigned option, next to the Source field, is available only when the source is transactions and is
only used in conjunction with creating direct transaction credit rules.
• Condition—Enter a simple or complex expression of conditions that must be met for the rule to be
evaluated as true and fired.
• Territory—Select one or more territories, territory variables, categories, or classifiers on which to filter. You
can also build an expression that includes a combination of categories or classifiers or both with or without
territories or territory variable.
• Roll type—Specify the name of the roll type if the input is indirect (rolled) credits. The combination of
source and roll type affects how the rule is structured. If you select transaction as the source and leave
the roll type blank (thereby specifying that rolled credits are not used as input), you are creating a direct
transaction credit rule.
When a transaction or order meets the filtering criteria, it is evaluated against the condition in the rule.
Otherwise, the condition in the rule is not evaluated.
When conditions specified in the filters area are met, the action or actions defined in this area are fired
(executed) and a credit output is produced. Among other things, you can specify in this area whether and
how the credit should or should not be held, whether duplicate credits are allowed, and whether the credit is
rollable.
In your credit rule action, you can specify that credits be held in particular situations. For example, you can
place credits that are above a certain amount on hold so they can be manually reviewed before they are
processed. Held credits are allocated according to their release date, rather than the compensation date of the
associated transaction. When a credit is held, the release date, if specified, sets the compensation date to be
the same. If the release date of a held credit is within the processing dates of a position assignment, the credit
is released. This happens even if the credit’s compensation date is outside the position assignment’s effective
dates.
If a credit is held with an offset (some number of periods relative to the current period), the release date is
set to the last day of the offset period.
If the compensation date of a transaction is outside the position assignment’s credit dates but within the
processing date, credits are not generated. However, if an existing credit’s compensation date is within the
position assignment’s processing date, the credit is used in calculation processing. When you create a credit
rule, you choose one of the following for the hold type of the credits that rule creates.
Hold Types in Credit Rules:
Indefinite Credits are held until manually released. Use this setting if
you need to review held credits before they are included in
compensation calculations.
Period Type Choose the kind of period (such as month, quarter, or year)
and the offset. The offset is the number of periods relative
to the current period (in which the rule is run and the credit
is created) for which the credit should be held. For example,
if the offset is 2, the credit release date is set for 2 months
from the month the credit is created.
If you set the offset to zero (0), the credit is available for the
current period. There is a subtle difference between ”release
immediately” and a period offset of zero:
Specific Period Choose a specific named period, such as January 2008. The
release date is set as the last date of this period. The credit is
processed by any calculation run for this period.
When you create credit rules, you specify how the rule handles duplicate credits. A duplicate credit is defined
as one that has certain fields of the logical key that match an existing credit, and is based on the same source
as the existing credit.
Note
For a transaction credit, the logical key includes the fields for the transaction, position, payee, credit type,
and IsHeld (Ever Held) field in Credits workspace), which can be either true or false/enabled or disabled.
For an order credit, the logical key includes the fields for sales order, position, payee, credit type, IsHeld
(Ever Held), and credit name (if the name is not null)
• Position/Payee
• Order, Txn
• Credit Type
• Credit Id
• Held Status
The following figure shows an example of the results of allowing or disallowing duplicate credits. Assume that
in your company, a manager receives rolled credit from two employees. For a particular transaction or order,
Employee A receives $500 direct credit and Employee B receives $600 direct credit for the same order. During
a calculation run, a rolled credit, Credit X, is created for the manager. Then when the second employee is
processed, Credit Y is evaluated to determine if it is a duplicate.
• If duplicate credits are allowed by the credit rule, then the total amount of $1100 rolls up to the manager.
Credit X is modified only if it rolls from the same source (Employee A). However, because it rolls from
another source (Employee B), the manager gets two credits.
• If duplicate credits are not allowed, then when Credit Y is evaluated and determined to be a duplicate, it is
not created. The manager receives either $500 or $600, depending on which employee is processed first.
Note
The rolled credit rule illustrated above is contained in the compensation plan for the manager position.
When creating a transaction credit rule (either direct or rolled), you can specify true or false in the Allow
Duplicates field in the Actions area.
• If you specify true, duplicate credits are allowed and credits are not evaluated to determine if they are
duplicates.
• If you specify false, the credit is evaluated to determine whether it is a duplicate. If it is a duplicate, the new
credit is not created nor is the original credit modified.
You can also enter any field with a Boolean value (true or false) or create an inline formulaic expression that
evaluates to a Boolean value. If the field or formulaic expression is false for the new credit, it is considered a
duplicate and is not created.
When creating an order credit rule (either direct or rolled), you specify how the rule handles duplicate credits
by selecting an option from the Allow Duplicates drop-down in the Actions area. The available options are as
follows:
If the periods are the same, the original credit is modified by the amount of the duplicate credit. If the periods
are different, The system creates an incremental order credit. An incremental order credit is an order credit
whose value is the difference between the current order credit value and the sum of previous, duplicate order
credits. An incremental order credit is generated from an order credit rule that specifies to create incremental
credits when duplicate credits occur.
Note
Allowing incremental credits does not affect duplicate order credits that are in the same period.
The following example illustrates the possible results for duplicate order credits that are created in different
periods. Assume that your company has a special incentive for large orders that gives a 0.5% (.005) bonus. In
January a particular order is over $1 million, and a $5,000 credit is allocated. In February, the same order is
now over $1.5 million, and a $7,500 total credit is allocated. The following figure shows how different settings
for handling duplicate credits affect results.
• No duplicate credits allowed - The system does not add credits for the same order, and the initial $5,000
credit remains. The system generates an error message and do not generate the duplicate credit.
• Allow duplicate credits - The system creates a credit in February for $7,500, making two credits that total
$12,500. Since these credits are duplicates except for their periods, the additional credit is created.
• Generate an incremental order credit - The system adds the difference between the total credit and the
amount already credited and a credit for $2,500 is created in February.
In addition to being created by credit rules, credits can also be imported into the system and can be created
manually.
Related Articles
A rolled order credit rule generates a credit based on a rollable order credit.
Field Description
roll Type (Required) Specify what roll type(s) by which the incom-
ing credits are available. To specify multiple roll types,
select multiple, and from the Multiple dialog specify the
roll types, and choose OK.
Note: The roll Type option is what makes the rule a rolled
credit rule instead of a direct credit rule.
Field Description
Output Name The system automatically creates the output name the
same as the rule name, but you can rename it. This is the
credit name.
Credit Type Select the type of credit that the rule generates. The pre-
defined credit types are Commission, Order, Quota, and
Revenue, but additional credit types can be created and
these pre-defined credit types can be deleted.
Hold Type To hold the credit, specify what type of hold and when
to release the credit. The default is release immediately
(credits are not held and are available immediately), but
you can also select Indefinite, Period Type, and Specific
Period.
9. (Optional) choose this node ( ) to reveal the fields if generic attributes are enabled. Populate the fields as
required for your installation.
10. Choose Add New Output and specify information for the new action to add another action to the rule. If you
have multiple actions in a rule, the one rule generates multiple outputs.
11. Choose Save to save the rule.
A direct order credit rule generates credit based on an order instead of a single transaction.
Field Description
Roll Type Do not specify a roll type for a direct credit rule; you do so
for rolled credit rules.
Field Description
Output Name The system automatically creates the output name the
same as the rule name, but you can rename it. This is the
credit name.
Credit Type Select the type of credit that the rule generates. The pre-
defined credit types are Commission, Order, Quota, and
Revenue, but additional credit types can be created and
these pre-defined credit types can be deleted.
Hold Type To hold the credit, specify what type of hold and when
to release the credit. The default is Release Immediately
(credits are not held and are available immediately), but
you can also select Indefinite, Period Type, and Specific
Period.
9. (Optional) Choose the node ( ) to reveal the fields if generic attributes are enabled. Populate the fields as
required for your installation.
10. Choose Add New Output and specify information for the new action to add another action to the rule. If you
have multiple actions in a rule, the one rule generates multiple outputs.
11. Choose Save
A rolled transaction credit rule generates a credit based on a transaction credit that rolls to the position
according to the specified roll type. Rolled transaction credits rules always use a transaction as their source.
Note
Do not use sourceCredit.Relationship.Version() in a rolled credit rule. The direct credit that
generated the rolled credit passes the roll date, which determines the relationship version.
Field Description
Roll Type (Required) Specify the roll type(s) by which the incoming
credits are available. To specify multiple roll types, select
Multiple, and from the Multiple dialogs add and remove
roll types as needed, and choose OK.
Note: The Roll Type option is what makes the rule a rolled
credit rule instead of a direct credit rule.
Field Description
Output Name
The system automatically creates the output name the
same as the rule name, but you can rename it. This is the
credit name.
Credit Type Select the type of credit that the rule generates. The pre-
defined credit types are Commission, Order, Quota, and
Revenue, but additional credit types can be created and
these pre-defined credit types can be deleted.
Hold Type To hold the credit, select the type of hold and when to re-
lease the credit. The default is Release Immediately (cred-
its are not held and are available immediately), but you
can also select Indefinite, Period Type, and Specific Period.
9. (Optional) choose this node ( ) to reveal the fields if generic attributes are enabled. Populate the fields as
required for your installation.
10. Choose Add New Output and specify information for the new action to add another action to the rule. If you
have multiple actions in a rule, the one rule generates multiple outputs.
11. Choose Save.
Procedure
Field Description
Rolling through Do not select a roll type for a direct credit rule.
Credit Name The system automatically creates the output name the
same as the rule name, but you can rename it. This is the
credit name.
Credit Type Select the type of credit that the rule generates. The pre-
defined credit types are Commission, Order, Quota, and
Revenue, but additional credit types can be created and
these pre-defined credit types can be deleted.
Hold Condition To hold the credit, specify what type of hold and when
to release the credit. The default is Release Immediately
(credits are not held and are available immediately), but
you can also select Indefinite, Period Type, and Specific
Period.
12. (Optional) Click this node ( ) to reveal the fields if generic attributes are enabled. Populate the fields as
required for your installation.
13. Click Add New Output and specify information for the new action to add another action to the rule. If you
have multiple actions in a rule, the one rule generates multiple outputs.
14. Click Save.
There are two kinds of measurement rules: primary measurement rules, and secondary measurement
rules. The primary measurement rules aggregate the credits or other items for position assignments.
Typically, aggregating credits involves summing the monetary value of credits. However, you can also
define measurement rules to aggregate credits in other ways, such as by different product lines and by
counting the number of units sold. Secondary measurement rules aggregate primary measurements or
perform calculations based on formulas, formulaic expressions, values, or data fields. You select primary
measurements and values from the list of legal moves when you create the secondary measurement rule.
To create a self-reference, you must save the rule first. A self-reference is when you refer to the output of the
rule in the rule itself.
Related Articles
When you create a measurement rule, you must define the input or source. If you choose credits, the rule
created is a primary measurement rule. If you choose other performance measures, the rule created is a
secondary measurement rule. You can limit which incoming credits are evaluated by a primary measurement
rule by filtering on territories, categories, or classifiers. For example, if you want a measurement rule to
evaluate only credits that are based on sales made through the distributor channel, you can create a condition
to establish that requirement—Territory: Distributor.
Finally, when you create a measurement rule, you define one or more actions of the rule. The selection of
available actions displayed depends on what you selected as input to this rule. You name the output of the
action; the output is an aggregate of the incoming credits and their values (primary measurement) or an
aggregate of other non-credit-based values (secondary measurement).
Note
You can include both order and transaction credits in a measurement. However, if you do so, you cannot
use a filter on the transaction credit.
The input to a primary measurement rule is credited. The output is a named measurement with the value of the
aggregate of the credit amounts that you specify.
Procedure
Note
After you save the primary measurement rule, you cannot change the source.
Field Description
Output Name The system automatically creates the output name the
same as the rule name, but you can rename it.
10. Choose Add Output and specify information for the new action to add another action to the rule. If you
have multiple actions in a rule, the one rule generates multiple outputs.
11. Choose Save to save the rule.
A secondary measurement rule generates a secondary measurement, which can be an aggregate of primary
measurements or the result of a formula.
Note
During the reward stage, the systemdoes not load a position assignment to calculate its secondary
measurement if there is no credit in the current period (even if there are values from prior periods).
The secondary measurement rule, in this case, is not looking to prior periods for dependent data. To
resolve this issue, you must create a secondary measurement rule on the same plan and include an
impossible condition (such as 1=2). This rule does not fire, but it does cause the position assignment to
be loaded. With the position assignment loaded, the prior period data upon which the original secondary
measurement rule depends is included.
Procedure
Note
After you save the secondary measurement rule, you cannot change the source.
Field Description
Field Description
Output Name The system automatically creates the output name the
same as the rule name, but you can rename it.
10. (Optional) Choose the node to reveal the fields if generic attributes are enabled. Populate the fields as
required for your installation.
11. Choose Add New Output and specify information for the new action to add another action to the rule. If you
have multiple actions in a rule, the one rule generates multiple outputs.
12. Choose Save to save the rule.
The Calculation Result function is introduced in the Condition and Measurement Amount legal move editor
windows of Secondary Measurement Rule.
Incentive rules calculate the earnings of your sales force. They can be simple, using a single measurement as
input and producing a single output; or complex, using multiple inputs and producing multiple outputs. When
creating incentives rules, you need to ask the following questions:
• What information is required to calculate the incentive? For example, is the incentive compensation based
on a single measurement that represents a salesperson’s sales for a period of time, or is it based on the
individual credits allocated to that salesperson.
• What output information is required for reporting? For example, is a single amount representing the
compensation to be paid adequate, or do the individual outputs, known as commissions, to be reported
based on individual inputs.
• What are our incentives based on?
• If the incentive is to be calculated based on a rate, where does the rate come from? For example, is the rate
based on a flat rate of 10% or is it based on an incremental, stepped set of rates from a rate table.
The first two questions lead us to the fact that there two basic types of incentive rules: those that calculate
incentives only (basic incentive rules) and those calculate incentives and commissions (commission rules). To
answer the first question, you need to look at the source for the calculation. Following are several common
scenarios:
• The sales person was credited with 500 sales in a quarter, and those credited sales need only to be
aggregated (added up) into a single primary measurement. That single measurement can be used to
calculate the incentive. This improves performance but the detail needed for reporting is lost.
• The sales person was credited with 500 sales in a quarter, but instead of aggregating those credits into a
single measurement the commission on each sales needs to be calculated separately. The sum of these
measurements is then used to calculate the incentive. Performance is diminished, but the detail needed for
reporting is retained.
Having a reporting requirement is the most common reason to use commission level detail, but there are other
factors. Consider the following examples:
• Not every credit is to be used in the incentive value calculation. For example, of the sales person’s 500
credit sales, only 200 of them meet the additional requirement that the credit is used only if the sale
exceeded $500.
• Credit values do not directly correlate to the incentive value calculation. For example, the salesperson’s
incentive is based on 80% of the sales value, not 100%.
• Attributes other than the amount are used in the incentive value calculation. For example, the value to be
used in the incentive value calculation is stored in a generic attribute.
The various scenarios and examples discussed above are summarized in the following table. In addition to
the above scenarios, scenarios including input from secondary measurements, incentives, and a formula are
included. Incentives calculated based on a commission are commonly called bonuses.
Incentives and Commissions 500 credits from 1 primary measure- 1 incentive and 500 commissions
ment
Incentives and Commissions 200 credits from 1 primary measure- 1 incentive and 200 commissions
ment, which has 500 credits
When you create an incentive rule, the result type specified (Incentives Only or Incentives and Commissions)
determines whether the rule is a general incentive rule or one that includes commissions. A commission is
based on each credit that feeds into a measurement, and the incentive for that kind of rule is an aggregate
value of all the per-credit commissions.
Note
To create a self-reference, you must save the rule first. (Self-references are references to the output of the
rule from within the rule; the reference is to the different period-based version of the rule’s output.
When you first navigate to the Incentive Rule editor, the editor defaults to the criteria for a basic incentive rule,
which is the input source of Measurement and result type of Incentives Only. The result type specified for the
rule (incentives only or commissions) determines whether it is a general incentive rule or one that includes
commissions.
Basic incentive rules are sometimes called aggregate credit commission rules, aggregate credit rules, or bulk
credit rules. The input to an incentive rule is a measurement or a formula; the output of an incentive rule is a
named incentive with a specific value and an associated period type. The output period type indicates when the
incentive is available for deposit (for example, the end of the current month or quarter).
Basic incentive rules require less processing time but do not provide the results detail of commissions
calculated for each credit. Basic incentive rules calculate incentives directly from the measurement, without
calculating intervening commission objects. When processing incentive rules during the Reward stage of the
calculation, The system compares performance measurements with targets and quotas for each position
assignment assigned to the plan.
A commission rule is based on each credit that feeds into a measurement, and the incentive for that kind of
rule is an aggregate value of all the per-credit commissions. The result type of commission rules is Incentives
and Commissions. There is no Input Source. Commission rules (individual credits rules) calculate a value
for each credit of the measurement called a commission. Commission result objects can be viewed in the
Commission workspace. Commission objects are used by the rule to calculate incentives. You should use
commission rules in the following cases:
The commission rule processes the credits from the measurement in the following order:
1. Order by Compensation Date: Credits are processed based on their compensation date. Credits with an
earlier compensation date will be processed first.
2. Order by Credit Value: If multiple credits have the same compensation date, the credit with the lower value
will be processed first.
Note
If a special order is required for processing credits, submit a support ticket, and customization will be
provided through a query override.
When you create incentive rules, the result type specified (incentives only or incentives and commissions)
determines whether the rule is a general incentive rule or one that includes commissions. Unlike credit rules,
measurement rules, and deposit rules, you do not directly specify a “Source” for incentive rules in the Incentive
Rule editor. Instead, the input source for these rules is specified in the filters for commission rules and directly
in the actions for incentive rules. You can, however, limit the data evaluated by both incentive and commission
rules by specifying filter conditions.
The filters area for basic incentive rule is similar to the result type and filters area for a commission rule
(incentives and commissions input), but you can only specify a condition for a basic incentive rule. In the filters
area fields you can do the following:
• Measurement—the name of the attainment primary measurement on which this rule operates. The
measurement is the input to this rule. The list contains the primary measurements defined in the
measurement rules.
• Input Period Type—the measurement period that represents the set of credits for the calculation.
• Period Offset— a number used to offset the measurement period to a relative, prior period.
The input to basic incentive rules can be a rate table, a flat rate, or no rate, depending on your requirements.
Rate tables can be processed as either tiered or straight rate tables. To process a rate table as tiered based on
attainment, the following must be true:
• The value in the Quota field must have a currency unit type.
• The value in the measurement must have currency unit type.
• The rate table must be created with both input type and return type set to the percentage.
The following table illustrates this last point. If the input type and return type are not set correctly, the rate
table is not processed as a tiered rate table.
% % Tiered
% $ Not Tiered
$ % Not Tiered
To process a rate table as tiered based on source, the following must be true:
• The rate table input type must match the measurement unit type.
• The rate table return type must match the incentive unit type.
If the input type and return type are not set correctly, the rate table is not processed as a tiered rate table.
To process a rate table as straight not using Interpolate, the following must be true:
• The measurement and quota should have the same unit type.
• The rate table input type must be set to percentage.
• The rate table input type must match the Incentive unit type.
To process a rate table as straight using Interpolate, the following must be true:
The general incentive rule calculates an incentive based on a measurement or a formula. You can optionally
specify a flat rate to apply to the incentive amount. If you add an action to a basic or bonus incentive rule, you
can add an incentive or bonus action. There is no calculation difference between the two types of actions; the
difference is that the bonus action has quota and attainment fields used for reporting purposes. The output of
a general incentive rule is an incentive object.
Procedure
Field Description
Output Name The system automatically creates the output name the
same as the rule name, but you can rename it.
Output Period Type Select the period type of the created incentive.
Input Source Select the source for the incentive. The choices are Meas-
urement or Other.
10. Specify the following if you select Measurement as the Input Source:
Measurement field In the field next to the Input Source drop-down, select the
name of the measurement that is to be used as input to
this rule.
Input Period Type Select the period type for the measurement. Be careful to
specify the correct period type for the measurement.
Period Offset To specify an offset, enter a positive number. You can use
offsets to specify a relative, prior period. Enter the num-
ber of periods to go back. For example, to use the April
monthly measurement in June, you specify 2 in the offsets
field.
If you specify a flat rate, specify the rate in the field to the
right of the Input Multiplier drop-down list box.
If you specify the rate table, specify the name of the rate
table in the field to the right of the Input Multiplier drop-
down list box. Then, specify the quota and attainment
period.
Amount field Enter a value or a formula in the field next to the Input
Source drop-down.
Input Multiplier For incentive rules that are not based on a measurement
input, you can choose between a flat rate or no rate.
If you specify a flat rate, specify the rate in the field to the
right of the Input Multiplier drop-down list box.
12. To add another action to the rule, choose Add New Output and specify the above information for a
separate action. If you have multiple actions in a rule, the one rule generates multiple outputs.
13. Choose the node ( ) to reveal the fields if generic attributes are enabled. Populate the fields as required
for your installation.
14. Choose Save to save the rule.
Examples
Case 1:
Rate = Stepped Rate using Rate table having 2% (<=100% attainment) and 4% (>100% attainment)
Based on = Attainment
Case 2:
Rate = Stepped Rate using Rate table having 2% (<=100% attainment) and 4% (>100% attainment)
Based on = Source
Rate = Straight Rate using Rate table having 2% (<=100% attainment) and 4% (>100% attainment)
Based on = Attainment
Case 4:
Rate = Straight Rate using Rate table having 2% (<=100% attainment) and 4% (>100% attainment)
Based on = Attainment
Commission rules base the incentive amount on attainment performance (the measurement’s value compared
to the position assignment’s quota). Commission rules calculate the incentive amount by multiplying the
specified rate by the value of each credit in the specified measurement; the value of the incentive is the sum of
each per-credit commission. You can specify the rate to be based on a fixed value, a flat amount, the result of a
formula, or a rate table. When you specify a rate table, the rule functions as a step commission.
Note
The output of a commission rule is commission objects and an incentive object; the incentive object is the
aggregate value of all commissions generated by the rule.
Procedure
Note
You can only select business units to which you as a user have been assigned. .
7. Select the Result Type of the rule. For the commission rule, select Incentives and Commissions. The
Incentive Rule editor changes to reveal the fields for commission rules.
8. Specify the following in the Filters area:
Field Description
Input Period Type Select the measurement period that represents the set of
credits for the calculation.
Period Offset To specify an offset, enter a positive number. You can use
offsets to specify a relative, prior period. Enter the number
of periods back to go. For example, to use the April monthly
measurement in June, you specify 2 in the offsets field.
Input From To use the measurement from another position, specify the
input as Another Position. Otherwise, the default setting of
Current Position applies.
Field Description
Output Name The system automatically creates this the same as the rule
name, but you can rename it.
Output Period Type Specify the period type of the created commission. Select
the appropriate period type for which this incentive should
be generated and available for deposit.
Field Description
Attainment The attainment period is the period for which you are meas-
uring attainment.
Field Description
Rate Specify the rate. This can be a literal value, a fixed value, a
fixed value variable, a formula, or any legal move.
Field Description
Note
Commission amounts for the period being run are calculated only for the set of credits specified by the
input period type.
To add another action to the rule, choose Add New Output and specify information for the new action. If you
have multiple actions in a rule, the one rule generates multiple outputs. Choose Save to save the rule.
A deposit rule determines which incentives to pay and when. Incentives are available to be paid based on the
output period type of the incentive. For example, a quarterly bonus incentive is available for deposits in the last
month of each quarter (March, June, September, and December).
The system processes a deposit rule, and creates a deposit only if the incentive is available for deposit. For
example, a calculation run in February does not generate a deposit output for a quarterly incentive rule.
Related Articles
In the Deposit Rule editor, you can limit the data evaluated by a deposit rule by specifying the input source,
either incentives or credits, and creating filters. In the filters area field for incentive-based deposit rules you can
do the following:
• Condition—Enter a simple or complex expression of conditions that must be met for the rule to be
evaluated as true and fired.
In the filters area field for detailed deposit rules you can do the following:
• Credit from Measurement—Enter a simple or complex expression of conditions that must be met for the
rule to be evaluated as true and fired.
• Input Period Type—Select the period type for the credit.
• Period Offset—To specify an offset, enter a positive number. You can use offsets to specify a relative, prior
period. Enter the number of periods to go back. For example, to use the April monthly measurement in
June, you specify 2 in the offsets field.
• Input From—The default Current Position. To use a credit from another position, specify the input as
Another Position.
• Relationship—If you specify that the input is from another position, you must also specify the roll
Relationship.
• Condition—Enter a simple or complex expression of conditions that must be met for the rule to be
evaluated as true and fired.
When the conditions specified in the filters area are met, the action or actions defined in this area are fired
(executed) and a deposit output is produced. Among other things, you can specify in this area whether and
how the deposit should or should not be held and what earning groups and earning codes should be used for
payment balancing.
In your deposit rule action, you can specify that deposits be held in particular situations. New rules are added
to accommodate customer’s needs like hold condition on Deposits. For example, you can place deposits that
are above a certain amount on hold so they can be manually reviewed before they are processed. Held deposits
are allocated according to their release date, rather than the compensation date of the associated transaction.
When a deposit is held, the release date, if specified, sets the compensation date to be the same. If the release
date of a held deposit is within the effective dates of a position assignment, the deposit is released. This
happens even if the compensation date of the deposit is outside the position assignment’s effective dates.
If the compensation date of a transaction is outside the position assignment’s effective dates but within the
processing date, deposits are not generated. However, if an existing deposit’s compensation date is within
the position assignment’s processing date, the deposit is used in calculation processing. When you create a
deposit rule, one of the following hold types can be specified for the deposit.
Indefinite Deposits are held until manually released. Use this setting if
you need to review held deposits before they are included in
compensation calculations.
Period Type Choose the kind of period (such as month, quarter, year or
decade) and the offset.
Specific Period Choose a specific named period, such as January, 2008. The
release date is set as the last date of this period. The deposit
is processed by any calculation run for this period.
Hold With Condition Use Legal Moves to set a condition to hold the deposit. The
deposit will be held indefinite if the condition is true. Set a
reason code (optional).
Procedure
Field Description
Field Description
Output Name The sytsem automatically creates the output name the
same as the rule name, but you can rename it.
Unit Type Specify the unit type of the created deposit. The options
are Currency, Percent, Quantity, or Integer.
Deposit Value Specify the incentive or formula. To specify more than one
incentive, use a formulaic expression or formula. When
you specify an incentive, the Incentive Input Reference
Editor dialog opens.
Release Date The release date drivers when this deposit will be released
and processed into further parts of the compensation cal-
culation
10. (Optional) Choose the node ( ) to view the related fields if generic attributes are enabled. Populate the
fields as required for your installation. To add another action to the rule, choose Add New Output and
specify information for the new action. If you have multiple actions in a rule, the rule generates multiple
outputs.
11. Choose Save to save the rule.
A detail deposit rule generates a deposit based on credit. For a detail deposit rule, you must specify primary
measurement as a filter for which the credits are deposited. You can also specify a condition as an additional
filter mechanism.
To generate individual deposits based on orders or some other attribute, you must specify a unique
earning code or earning group. For example, to generate deposits based on orders, you must specify
Credit.Order.OrderID as the earning code. To generate deposits based on a custom attribute, such as Customer
ID, you must specify that attribute as the earning code.
Procedure
Credits from Measurement Specify a primary measurement by which the system de-
termines which credits to deposit.
Input Period Type Select the period type for the credit.
Period Offset To specify an offset, enter a positive number. You can use
offsets to specify a relative, prior period. Enter the num-
ber of periods to go back. For example, to use the April
monthly measurement in June, you specify 2 in the offsets
field.
Field Description
Output Name The system automatically creates the output name, and it
is the same as the rule name. You can rename the output
name if required.
Unit Type Specify the unit type of the created deposit. The options
are Currency, Percent, Quantity, or Integer.
9. Choose the node ( ) to view the related fields if generic attributes are enabled. Populate the fields as
required for your installation.
10. To add another action to the rule, choose Add New Output and specify the required information for the new
action. If you have multiple actions in a rule, the rule generates multiple outputs.
11. Choose Save to save the rule.
A formula rule element is a reusable mathematical expression that can be used in compensation rules, a rate
tables, or lookup tables. You can also nest formulas within other formulas.
Formulas are limited to the context in which they are created as indicated by the rule type icon. For example,
you cannot create a formula as a condition in an incentive rule then use that same formula in a measurement
rule.
You can create a formula either directly in the Formulas workspace, or by clicking the Formula button to open
the Formula editor.
Note
Large expressions or formulas must be split into multiple formulas, for performance and readability
reasons. For example, if you have a formula that uses over 20 operators, it is easier to read and is processed
faster if you split it into two formulas.
Related Articles
• Formula Summary
• Formula Details (General Information and Associations)
You can create new formulas, edit existing formulas, and delete formulas from the options available in the
toolbar.
• Literals
• Functions
The Legal Move Editor box has Clear All and Reset buttons available. This reduces time and effort for the
Administrator to edit an existing expression.
The Clear All and Reset options are available in the following workspaces:
• Formulas
• Rules Wizard
• Plans Wizard
• Classification
• Territory
Clear All clears out the current expression. Reset reverts to the last saved expression.
Associations Tab
From the Associations tab, you can view the rules that use the formula and the elements associated with the
formula.
A formulaic expression is used only by the current rule object. A saved formula, like a rule created in the
Formulas workspace, can be reused by other rule objects (rules or rule elements).
When constructing formulas or formulaic expressions, you must specify parameters (literals, functions, data
fields, and references) and operators. The items you can select are determined by the context that you are
working in. The selections allowed representing the next “legal move” that you can make.
Legal moves are displayed in the legal moves pane in the Formulasworkspace when creating a new formula,
Advanced Search dialog, and Search for Related Object dialog. When building expressions directly in a
workspace, for example when building classification rules, the logic of the next “legal move” is also applied.
Contents of the legal moves pane are influenced by the following factors:
• The context that the formula is being created within in the Formula editor. For example, if you are using
the Formula editor to create a condition for a credit rule, the data fields available would differ from those
available for the condition of a deposit rule.
• The return type of the formula. For example, the Legal Moves available to create a formula with a return
type of Boolean would differ from those available to create a formula with a return type of date.
• Whether specific attributes have been enabled. For example, you must enable generic attributes for
Transaction Payee Pre-Assignments so that the Transaction Extended and Transaction Generic attributes
are included in the list of data fields.
When Legal Moves items are specified, the following formatting rules are applied in the Expression (Formula)
Edit Pane:
• Upon selecting a reference, the reference type name goes away and all that is left is the name of the
selected object. This makes items such as formulas easily readable at a glance.
• Variables and Result References (for example, measurements and incentives) are italicized to indicate data
coming from another object.
• Variables and references to fixed values, territories, and rate tables are in green text to indicate data
coming from rule elements.
• Data fields are in plain, black text.
• Literals are in blue text, including data types (such as month, year, commission, bonus, and so forth).
• Period types associated with an object (such as a period type of an incentive) are displayed in the format
ofObjectName:PeriodType. For example, BookedRevIncentive:quarter.
• If offset amounts are specified for measurement and incentive references, they are displayed in the format
Object Name:Period Type-Offset Amount. For example, BookedRevIncentive:quarter-3, where 3 is the
offset amount.
• If you reference a data type, such as a reason code, you can reference it by the ID, such as
Transaction.Reason Code.ID.
Procedure
1. Specify the return type. This is the unit type of the formula result.
2. Specify the literals, functions, data fields, or references and operators required to build the formula in the
Formula edit panel. If you have chosen a function, the function's parameter details display in the Function
Detail pane.
3. Select a parameter in the Formula Definition pane for each parameter, and then select an item from the list
of available legal moves.
4. To display a list of available literals, functions, data fields, and references and operators, you can type an
asterisk (*) in the Formula Edit pane to use wildcard matching. Or, you can use auto-matching and type the
first few letters of the literal, function, data field, or reference name. You can also double-click the name
of the object to select it. An item that is shaded in blue indicates that the expression is either incomplete
or incorrect. Although you can save an incomplete or incorrect formula, you must correct the error before
you can use the formula. You can copy and paste legal move expressions within and across workspaces. In
some cases, such as when copying a formula from within a rate table, you must first open the New Formula
dialog before you can copy the expression. If you must copy text in the process of creating and modifying
objects, use an ASCII text editor such as Notepad.
Related Articles
You can include strings as parameters in your formulas. To enter a string literal, enclose it in double quotation
marks, such as: “Golf Rep”.
For example, to compare the above string to a field you might construct an expression such as the following in
the Formula Edit Pane: Credit.Comments = “Golf Rep”
For example, to construct a Boolean formula comparing the Credit Release Date to the Credit.Roll Date
(Credit.Release Date = Credit.Roll Date) you would first specify Credit.Release Date as shown in the following
figure.
However, some data fields are not specifically listed in the Legal Moves pane, but the items that contain them
are listed. For example, to use the company name from the transaction billing address, you must first specify
“Transaction.Billing? in the Formula Edit pane. If you then type a period “.? after “Billing?, you can access the
transaction billing address fields, such as “Transaction.Billing.Company? as shown in the following figure.
References are ways to point to a data object, such as the items listed in the following table. Items that you can
reference from Legal Moves
References Items
Classifier* Period
Formula Territory*
Lookup Table
• There is no Create New Object option for quota objects, so you cannot create quotas inline.
• When you specify an Incentive or Measurement, the Incentive Input Reference and Measurement Input
Reference dialogs are displayed.
The display format, type color, and style, of the references, are as follows:
• Rule element (fixed values, lookup tables, formulas, quotas, rate tables, and territories) references are
displayed in green text to indicate that the data is coming from rule elements. Categories are also
displayed in green text. Variables and formulas display in green text in lookup table cells (when the cell
is selected).
• Result data (measurements and incentives) references are displayed in black italicized text to indicate data
coming from another object. The period types associated with these references are displayed in the format
ofobjectName:periodType (for example, BookedRevIncentive: quarter).
• Rule element variable (fixed value variables, rate table variables, and territory variables) references are
displayed in green and italicized text.
• Period type (month, year, and so on), event type, roll type, and credit type references are displayed in blue
text to indicate that the data is from administration data or a data type.
• Classifiers to references are also displayed in blue text.
You can specify operators by typing them in or using wildcard matching as shown in the following figure. Only
those operators that are valid in the current context are displayed.
The list of available operators could include one or more of the following:
• * (multiplication)
• + (addition)
• <> (not equal to)
• - (subtraction)
The data used in a formula determines the type of compensation rule in which you can use the formula. Just
as different types of data are available during different stages of calculation processing, formulas use different
types of data for different types of rules.
For example, if you use transaction data in a formula, then the formula can be used only in direct credit rules.
If you do not use calculation-dependent data in a formula, then you can use the formula in any type of rule and
also in a rate table. For example, a formula that multiplies a fixed value by another fixed value can be used in
any type of rule and also in a rate table. All formulas must return a value. Rate tables can use formulas that
use fixed values as input or can be used in an incentive rule (input of measurements, or credits for per-credit
commissions).
Related Information
You can reference the output of a measurement or incentive rule from another rule, formula, or rule element.
Note
When making changes to references to measurements or incentives, the changes affect all versions of the
referencing rule or formula.
Related Articles
You can include in your rules, formulas, or expressions a reference to an incentive. An incentive reference
includes an incentive rule’s output value of the specified period type in your calculation. Some rules, such as
bulk commission rules, have the mechanism to refer to an incentive built into the rule. Other rules, such as
deposit rules, require that you specify the incentive reference by way of the Incentive Reference Editor dialog.
Note
A self-reference is a reference to a different period type of the rule’s output. For example, within a quarterly
incentive rule, you can refer to the year-based version of that incentive. Self-references can occur in
measurement or incentive rules.
Procedure
Field Description
Calendar
Specify the calendar appropriate within the context from
which you are creating the reference.
Incentive Specify the name of the incentive on which this rule or for-
mula operates using auto-matching, wildcard matching,
or the Search field button. The incentive is the input to this
rule. The list contains the incentives defined in the bonus,
per-credit commission, and commission rules.
Position source
The default setting is Direct’
List Operation
If you have specified that the incentive input comes from
another position, you must also specify how to handle
multiple inputs (if there are any):
4. Choose OK to use the specified incentive input. The system displays the name and period type of the
specified incentive input.
Select the Sum of All Inputs as a list operation in an incentive or deposit rule to add up a group of related
incentives. The related incentives are those that have the same name and are from subordinates one roll
relationship away (with the specified roll type).
You can include in your rules, formulas, or expressions a reference to a measurement. A measurement
reference includes a measurement rule’s output value of the specified period type in your calculation.
Procedure
Calendar
Specify the calendar appropriate within the context from
which you are creating the reference.
Period Offset To specify an offset, enter a positive number. You can use
offsets to specify a relative, prior period. Enter the number
of periods to go back. For example, to use the April monthly
measurement in June, you specify 2 in the offsets field.
List Operation
The default setting is Current Position.
Select the Sum of All Inputs as a list operation in a secondary measurement, incentive, or deposit rule to add
up a group of related primary or secondary measurements. Measurements are related if they have the same
name; they can be summed only from subordinates one Roll relationship away (with the specified Roll type).
The following figure illustrates an example of how you could aggregate measurements up a Rollup hierarchy,
rather than Rolled credits.
For example, you can Roll measurement data up a Roll hierarchy by summing related measurements at each
Roll level. As illustrated:
• The first level (sales representatives) aggregates credits into primary measurements.
• The second level (sales managers) aggregates primary measurements into secondary measurements.
• The third and fourth levels (district managers and Western Director, respectively) aggregate secondary
measurements into secondary measurements.
You can simplify your plans greatly by summing related measurements instead of credits up a Roll hierarchy.
Note
If you need to show per-credit commissions at the higher levels of the Rollup hierarchy, you must use Rollup
credits instead of aggregating measurements.
You can create a formula either directly in the Formulas workspace, or by clicking the Formula button to open
the Formula editor.
You use the formula editor in two ways: 1) to create formulas and save them with a name, or 2) to create
formulaic expressions. A formulaic expression is used only by the current rule object. A saved formula can
be reused by other rule objects (rules or rule elements). A saved formula can be created from the Formulas
workspace, as described below, or the from the Formula editor. Large expressions or formulas should be split
into multiple formulas, for performance and readability reasons. For example, if you have a formula that uses
over 20 operators, if you split it into two formulas it is easier to read and is processed faster.
Procedure
• Renaming a formula.
• Add or remove a rule element (formula, variable, fixed value, rate table, territory, or lookup table).
• Change the return type of the formula.
• Add, remove, or change any of the parts of the formula that contribute to how the formula calculates its
results.
• Change the effective dates of the formula.
Note
You cannot change the formula’s calendar. You must instead create a new formula. Currently, the
association between a calendar and a formula cannot be broken or changed.
Be aware that when you edit a formula, you edit the specified version of the formula. For example, you have a
formula that is effective from February 2008 to the End Of Time. If, however, in August 2008 you change how
the formula calculates, it is important to know the effective dates of the change. If, for example, to back-date
a change effective to February 2008, then you edit the current version of the formula (click Manage Versions
in the Formulas workspace). However, to make the changes effective from August 2008 to the End Of Time,
create a new version of the formula, and make the changes to that new version (click New Version in the
Formulas workspace). If you have a formula that is no longer effective, you change the effective end date of the
formula to the required date. Do not delete a formula if the formula was valid for any point in time.
You can delete a formula that was just created either manually. You cannot delete a formula that is referenced
by a rule or a rule element. To delete such a formula, first change or remove the condition or action that
references the formula. Deleting a formula removes all versions of the formula object from the system.
However, the audit log in the Audit Log workspace retains information on the actions performed on the formula
object, including its remove (delete) date, and information about the objects themselves.
Note
You can find data related to one or more selected formulas by selecting the appropriate object option from the
Related pane.
Procedure
A variable is a placeholder in a rule or formula for a fixed value, rate table, or territory. You can assign a rule
element directly to the variable, the plan, the title, or to the position. You either create the variable first and then
use it in a rule, or create the variable while you are editing the rule. If you use variables, you must populate the
variable with a default element.
Related Articles
You can assign default values to variables at different levels: at the variable level, at the plan level, at the title
level, and at the position level. The plan default overrides that of the variable, the title variable default overrides
that of the plan or the variable level, and the position variable default overrides all other defaults.
• A rule element assigned to a variable at the position level applies to only that specific position (overrides
the defaults at all other levels).
• A rule element assigned to a variable at the title level applies to all positions that use the title (overrides the
Plan and Variable defaults).
• A rule element assigned to a variable at the plan level applies to all positions assigned to the plan (overrides
the Variable defaults).
• A rule element assigned to the variable applies to all plans that include a rule that uses the variable.
The following figure illustrates how a variable can be assigned a different default value at different assignment
levels.
If everyone associated with the Golf Product Sales Specialist title should use the same quota, a default fixed
value can be assigned at the title level. If the default is set at the title, this overrides any defaults specified at the
variable or plan levels. If it is preferred that each position assignment has a customized quota, then a default
fixed value can be assigned for each position. If the default is specified with the position, then this default
overrides any other specified defaults.
• Variable Summary
• Variable Details (General Information and Associations)
You can create new variables, edit existing variables, and delete variables from the Variables Summary toolbar.
Variable Details
You can edit details in the General Information tab. You can view the rules that use the variable from the
Associations tab. You can also view the elements associated with the variable.
You can create variables in the Compensation Elements > Variables workspace.
Quick Links
You can create a fixed value variable to customize the fixed value that is used, at either the plan, title, or
position. A fixed value variable is a placeholder for a fixed value. You can assign a default to the fixed value
variable, and override that default at the plan, title, or position level. In cases when you are assigning a fixed
value to a fixed value variable and the variable has a period type specified, the period type of the fixed value and
variable must match. You cannot assign a fixed value without a period type to a fixed value variable that has a
period type specified.
Procedure
You can create a rate table variable to customize the rate table that is used, at either the plan, title, or position.
A rate table variable is a placeholder for a rate table. You can assign a default to the rate table variable, and
override that default at the plan, title, or position level.
Procedure
You can create a territory variable to customize the territory that is used, at either the plan, title, or position. A
territory variable is a placeholder for a territory. You can assign a default to the territory variable, and override
that default at the plan, title, or position level.
Procedure
You can create a lookup table variable to customize the lookup table that is used, at either the plan, title, or
position. A lookup table variable is a placeholder for a lookup table. You can assign a default to the lookup table
variable, and override that default at the plan, title, or position level. The effective date range of lookup table
variables must be greater than or equal to the effective date range of the lookup table that is assigned as the
default. Once a lookup table variable has been used in a rule element, it cannot be modified.
Unlike other types of variables, you must specify a default value for a lookup table variable. The structure
(return type and number and types of dimensions and in the same order) of this default predetermines the
Procedure
You can edit manually created variables in the Variables workspace. When editing variables in the system, you
can update the following options:
• Name
• Business Unit
• Description
• Required Period Type
• Default
Procedure
You can delete a variable that was just created manually in UI. You cannot delete a formula that is referenced
by a rule or a rule element. You can also select variables of different types (fixed value variables, rate table
variables, lookup table variables, and territory variables) and delete them if all the variables selected do not
have related results data and are not referred to by other objects.
When you multi-select variables of different types, no information is displayed in the detail pane. Deleting a
variable removes all versions of the variable object from the the system; however, the audit log in the Audit Log
workspace retains information on the actions performed on the variable object, including its remove (delete)
date, and information about the object itself.
Note
To delete a particular version of a variable, use the Manage Versions option in the Ellipsis Menu (…).
You can find data related to one or more selected variables by selecting the appropriate object option from the
Related pane.
Procedure
1. Navigate to Compensation Elements and choose the variable you want to find objects for.
2. Search for the variable or variables for which you want to find related data if required.
3. Select the variable or variables In the Summary view.
4. Choose the Related panel and select an object option, for example, Rules.
• If you are searching for related plans, positions, titles, fixed values, rate tables, territories, or lookup tables,
the objects are retrieved immediately and the results are displayed in the related workspace. If no results
are found, the message “No Records Found.” is displayed.
• If you are searching for related rules, referring to formulas, or referring lookup tables, the Search For
Advanced Related Objects dialog displays with the name of the selected object substituted for the object
name.
When working with Territory, Fixed Value, and Rate Table variables, the default value that is used in rules
depends on the level (variable, plan, title, or position) at which the default is specified. Variables specified at the
Position level taking precedent over variables specified at the title or plan levels. The following table describes
the order of precedence used to determine which default is used. Because you can only specify a default for a
Lookup Table at the variable level, these default precedences do not apply.
When viewing what elements are assigned to variables, if an element is assigned to the variable at the plan
level when you view the list of assignable items at the position or title level, the plan level variable assignment
displays with “(plan)” next to it. The same is true for when an item is assigned at the title level, and you are
viewing the item at the position level.
Note
When viewing the plan, you can assign elements to variables at the position or title levels. Follow the same
procedure as for assigning at the plan level, but in the list of assignments, select either the title or the
position instead of the default. (If the position is associated with the plan by way of a title assignment, the
position is not specifically listed here).
Related Articles
You can assign a lookup table to a variable at the plan level. You can also assign a lookup table to a variable
at the position, title, or variable levels. You perform those operations from the Positions, Titles, or Variables
workspaces. You can also select a position or title in the Assignments tab of the Plans Wizard workspace to do
position and title variable assignments.
You can assign a territory to a variable at the plan level. You can also assign a territory to a variable at
the position, title, or variable levels. You perform those operations from the Positions, Titles, or Variables
workspaces. You can also select a position or title in the Assignments tab of the Plan Wizard workspace to do
position and title variable assignments.
You can assign or remove a rate table to a variable at the plan level. You can also assign a rate table to a variable
at the position, title, or variable levels. You perform those operations from the Positions, Titles, or Variables
workspaces. You can also select a position or title in the Assignments tab of the Plans Wizard workspace to do
position and title variable assignments.
You can assign or remove a fixed value assignment to a variable at the plan level. You can also assign a fixed
value to a variable at the position, title, or variable levels; you perform those operations from the Positions,
Titles, or Variables workspaces. You can also select a position or title in the Assignments tab of the Plan
workspace to do position and title variable assignments.
A territory is a named group of categories and classifiers that are used to filter input to credit and
measurement rules. Although the name territory implies geographical location, territories can include
categories and classifiers that are associated with products and customers as well as postal codes and other
custom classifier types. Territories are used in credit rules to determine who gets credit for a transaction.
Territories are also used in measurement rules to determine how credits are aggregated. You define a territory
using categories. A simple territory can use a single category or classifier in its definition. For example, you can
define a territory strictly based on the products that a salesperson sells.
A complex territory can combine several categories, or parts of category hierarchies, together in its definition.
For example, a complex territory can be defined as a mix of products, geographical locations, and industries.
When you create a territory you can tie multiple categories and classifiers together with 'And' and 'Or' logic
(Boolean). Negative ('not') logic is also available for excluding specific things from a larger grouping.
Related Articles
• Territory Summary
• Territory Details (General Information and Associations)
Territory Summary
You can create new variables, edit existing variables, and delete variables from the Territories Summary toolbar
Note
You can copy and paste territory definitions between territories. To do so, select a territory, double-click
the definition to select it, use Ctrl + C to copy it; then in the target territory, use Ctrl + V to paste it.
If you use multiple categories to create a territory, construct the territory definition to maximize processing
efficiency. The system evaluates territories from the top down. After the territory evaluation succeeds (finds a
match), it stops evaluating and goes on to the next step in the rule.
• For an and condition, both parts must be true for the territory to succeed. List the clause that is most likely
to fail first. If it fails, the rule engine stops evaluating and moves on. If you put the clauses in the other order,
most likely to succeed, then the rule engine must go on to evaluate the second clause.
• For an and condition, thel match succeeds if either clause is true. List the clause that is most likely to
succeed first. If it succeeds, the rule engine stops evaluating sooner and moves on to the rest of the rule.
Territory Details
You can edit details in the General Information tab. From the Associations tab, you can view the rules that use
the territory and the elements associated with the territory.
Procedure
Be aware that when you edit a territory, you edit the specified version of the territory. For example, say you
have a territory that is effective from May 2008 to the End Of Time. If, however, in September 2008 you change
how the territory calculates, it is important to know the effective dates of the change. If, for example, you
back-date changes to May 2008, then you edit the current version of the territory (click Manage Versions in the
Territories workspace). However, to make changes effective from September 2008 to the End Of Time, create a
new version of the territory, and make the changes to that new version (click Manage Versions in the Territories
workspace). If you have a territory that is no longer effective, you change the effective end date of the territory
to the required date. You do not do a delete operation if the territory was valid for any point in time.
You can delete a territory that was just created either manually or using XML import. You cannot delete a
territory that is referenced by a rule or rule element or is assigned to a territory variable. Deleting a territory
removes all versions of the territory object from the the system; however, the audit log in the Audit Log
workspace retains information on the actions performed on the territory object, including its remove (delete)
date, and information about the object itself.
Note
To delete a particular version of a territory, use the Manage Versions option in the Ellipsis Menu (…).
You can find data related to one or more selected territories by selecting the appropriate object option from the
Related panel.
• If you’re searching for related plans, the plans are retrieved immediately and the results are displayed in the
Plan workspace. If no results are found, the message No Records Found is displayed.
• If you’re searching for related rules, titles, positions, or referring variables, the Search for Advanced Related
Objects dialog displays with the name of the selected object substituted for the object name.
Fixed values might or might not be period based. A fixed value that is not period based can be used to store a
single, reusable value. A period-based fixed value can be used to store reusable values for each leaf-level period
within a specified date range. For example, a period-based fixed value can store, for each month, a participant’s
performance percentage. A fixed value can also store a commission rate, a target amount, or a counter for the
number of product types sold.
Fixed Value Types are an optional attribute you can create and then apply to groups of fixed values. If you want
to organize your fixed values by type, you can create and assign a fixed value type to a selection of fixed values.
For example, you could create fixed value types for Quotas, Commission Rates, and Counters. You can use a
fixed value wherever a value is called for—in a rule, in a field on a participant or position, or in a formula, rate
table, lookup table, or another fixed value. You can use a fixed value inside of a variable or you can use a fixed
value directly.
In cases when you are assigning a fixed value to a fixed value variable and the variable has a period type
specified, the period type of the fixed value and variable must match. You cannot assign a fixed value without
a period type to a fixed value variable that has a period type specified. Fixed values have a unique name and
period type combination. For example, you can create three fixed values, each with the same name but each
with a different period type, such as year, quarter, and month. You can also create a fixed value with the same
name and not specify a period type.
You can use a fixed value directly in a compensation rule, or you can use a fixed value variable in the rule and
then assign the fixed value to the variable.
Related Articles
• You cannot change the period type of a fixed value after you have entered values. If you want to change the
period type of a fixed value, you must create a new fixed value.
If you want to set quota values for a group of positions unrelated in the reporting hierarchy, fixed values are a
better choice. Fixed values are also useful if you want to set default values at the variable, title, or plan levels.
If you want to manage quota values for a large portion of the organization from a single screen, quotas are a
better choice. You can view the quota values for an entire position hierarchy across multiple period types.
Related Information
Fixed values cannot be used in a quota object. In cases where a rule or rule function asks for a quota value,
you can specify either a literal value, a fixed value, a fixed value variable, or a quota object. For example, a
commission rule uses a value in a field labeled “quota” to calculate the commission. In this quota field, you can
specify a literal value, a fixed value, a fixed value variable, or a quota object.
Related Information
Navigate to Compensation Elements > Fixed Values to access the Fixed Values workspace.
The following figure shows the Fixed Value tab. When you select a period type, the right side of the detail pane
changes to reflect your selection. The selection of month is reflected. If no period type is selected, the right
side of the detail pane remains blank.
You can create new fixed values, edit existing fixed values, and delete fixed values from the Fixed Values
Summary toolbar.
Note
When you select a period based fixed value in the summary pane, the system displays only the value
associated with the default period in the summary record. For example, if you select the Sales Associate
Monthly fixed value and the default period is January 2008, the value for January 2008 is displayed. This is
because the summary pane can only show one value.
You can edit details in the General Information tab. From the Association tab of the Fixed Values workspace,
you can view the rules that use the fixed value and the elements associated with the fixed value.
Create a fixed value for a value that you want to store and reuse, such as a quota or a currency conversion rate.
You can copy fixed values, as long as you give the new fixed value a unique name and period type.
Procedure
Note
Period-based fixed values can only be assigned to variables of the same period type.
9. If a Period Type was selected, you can optionally select a period from the Show values for the drop-down
list. You can select and display all periods associated with the calendar, or select and display only a specific
Note
You cannot change the fixed value’s calendar. You must instead create a new fixed value. Currently, the
association between a calendar and a fixed value cannot be broken or changed.
Editing a period-based fixed value creates a new version of that fixed value. When you edit a fixed value that is
not period based, you edit the specified version of the fixed value. For example, you have a fixed value that is
effective from January 2008 to the End Of Time. If in February 2008 you change the fixed value’s value, it is
important to know the effective dates of the change. If, for example, you want the changes to be back-dated
effective to January 2008, then you edit the current version of the fixed value (click Manage Versions in the
Fixed Values workspace). If you want the changes to be effective from February 2008 to the End Of Time, then
you create a new version of the fixed value, and make the changes to that new version (click Manage Versions
in the Fixed Values workspace). If you have a fixed value that is no longer effective, you change the effective end
date of the fixed value to the desired date. Do not delete the fixed value if it was valid for any point in time.
Note
To delete a particular version of a fixed value, use the Manage Versions button on the toolbar.
You can find data related to one or more fixed values by selecting the appropriate object option from the
Related pane. The available options and the data returned are as follows:
• Rules—returns the rules that are referring to the selected fixed value.
• Positions—returns the positions that have the fixed value in their position variable assignment.
• Titles—returns the titles that have the selected fixed value in their title variable assignment.
• Referring Formulas—returns the formulas that are referring to the selected fixed value.
• Referring Rate Tables—returns the rate tables that are referring to the selected fixed value.
• Referring Variables—returns the variables that have the selected fixed value as their default.
• Referring Lookup Tables—returns the lookup tables that are referring to the selected fixed value.
• Plans that are referring to the rules that are directly using the selected fixed value.
• Plans that have the fixed value in their plan variable assignment.
• If you are searching for related plans, the plans are retrieved immediately and the results are displayed in
the Plan workspace. If no results are found, the message No records Found is displayed.
• If you are searching for objects other than related plans, the Search for Advanced Related Objects dialog
displays with the name of the selected object substituted for the object name.
Quotas are values that apply across an entire reporting structure, and you can manage the different values
from a single screen. You can select multiple period types, and perform automatic sum or distribute functions
to distribute the quota values across an organization. The main advantage of quotas is that you can manage
the quota values for a large portion of an organization from a single screen. You can view the quota values for
an entire position hierarchy across multiple period types. However, to set quota values for a group of positions
unrelated in the hierarchy, fixed values are a better choice. Fixed values are also useful if you need to set default
values at the variable, title, or plan levels. You can use a quota wherever a value is used, except in a fixed value
variable or in another quota. If you’re accustomed to using fixed values, there are some important things to
note about quotas:
• Quotas aren’t effective dated. Instead, they are effective from the beginning of time (01/01/1900) to the
End Of Time (1/1/2200). Quotas apply to all versions of a position.
• You cannot use a quota in a fixed value variable. When you use a quota in a rule or formula, you directly
reference the quota. Quotas do not have default values. If you do not specify a quota value for a position
and a period, during a calculation run that includes that period the rule that uses the quota does not
calculate a result for that position.
Note
When values are not entered in consecutive cells for quotas, gap versions are created. These gap versions
are assigned null values.
Related Articles
• Quota Summary
• Quota Details (General Information and Quota Values)
You can create new quotas, edit existing quotas, and delete quotas from the Quotas Summary toolbar.
Quota Details
You can edit details in the General Information tab. In Quota Values, to view a portion of the position hierarchy,
specify the top node you want to display. You can also view values for a specific period.
Note
To assign quota values to positions, your user account must have at least read permission to positions. If your
organization uses business units, the quota’s business unit assignment should match that of the associated
position. You cannot copy quotas. If you must duplicate a quota, you can export the quota to XML, edit the XML
file so that the quota uses a new name, and then import the quota XML.
Procedure
Field Description
Business Units If your organization has created and implemented business units, you can assign this quota to
one or more business units by selecting from the Business Units drop-down. You can only select
business units to which you as a user have been assigned.
Calendar Specify the calendar for this quota. This is the same calendar that the rules, formulas, and other
associated rule elements are associated with.
If necessary, you can define a different quota value for each period type.
Unit Type Specify the unit type for the values stored in the quota.
Period Type You must specify at least one period type for the quota. The period types available are those
defined in the associated calendar.
If there are values specified for a period type, you cannot modify the period type specification for
the quota.
Last Modified This is the date in which this specific record was last modified
5. Specify the following display options on the Quota Values tab in the detail view:
Field Description
Set Tree View Specify the node in the Reporting Structure to display for the quota. The Tree View Root is the
Root to starting point of the positions for the quota; all positions that report to the specified position are
included in the quota Value display.
If you do not specify a Tree View Root, the entire Reporting Structure displays.
Set Period View to Specify the range of periods that you want to display the quota values for. You can specify a
specific period of any type that is specified on the quota’s General Information tab.
For example, if you are using a standard calendar with months, quarters, and years, you can
specify a single month, a quarter, a year, or a decade to view the quota values for.
6. Enter the quota values. There are multiples options for entering values:
• Use the Find Position/Payee field to search for a specific position or participant. You can then directly
enter the quota amount in the cell or the Value field (next to the Find Position/Payee field).
• Calculate a value by using one of the quota functions.
• To enter the same value in multiple cells at a time, select the cells and enter the value in the Value field
(next to the Find Position/Payee field).
• If you do not enter a value in a quota cell, the system considers it to be the same as a zero value.
7. Choose Save.
Note
If a position is added into the hierarchy after you have calculated quota values, The system does not
automatically calculate the new position’s quota values.
When you first open an existing quota, the system displays the values according to the default period. For
example, if the system opens with a default period of January 2008, then the quota initially displays the values
for January 2008.
Note
When editing quota values, two users cannot edit values for the same quota or for the same position at the
same time.
You can delete a quota that was just created either manually or using import. You cannot delete a quota that
has related results data (a calculation run has not yet occurred for the associated plan and position). Deleting
a quota removes the quota and all its quota values from the system. However, the audit log in the Audit Log
workspace retains information on the actions performed on the objects, including their remove (delete) date,
and about the objects themselves.
Take extra caution when deleting quotas, as they are removed from the database. Quotas are not effective
dated, so it is a more drastic move to delete them (you cannot simply end-date them as you can objects that
are effective dated).
You can find data related to one or more selected quotas by selecting the appropriate object option from the
Related pane.
Procedure
• Positions—Returns the positions that have quota values defined for the selected quota.
• Rules—Returns the rules that are directly referring to the selected quota.
• Referring Formulas—Returns the formulas referring to the selected quota.
• Referring Rate Tables—Returns the rate tables referring to the selected quota.
• Referring Lookup Tables—Returns the lookup tables referring to the selected quota.
• Sum Subordinates
• Sum Leaf Subordinates
• Distribute to Subordinates
• Distribute to Leaf Subordinates
• Sum Sub-Periods
• Sum Leaf Sub-Periods
• Distributes to Sub-Periods
• Distributes to Leaf Sub-Periods
Related Articles
The Sum Subordinates Quota function sums the values of the subordinates one level below the selected
position.
Related Information
The Sum Leaf Subordinates Quota function sums the leaf subordinates’ quota values and sums them up the
position hierarchy up to the selected position. Based on the leaf subordinates, calculates the quotas for the
managers in the hierarchy.
If you sum subordinates’ values and one of the subordinate’s values is empty, the system omits the null value in
the sum.
Related Information
The Distribute to Subordinates Quota function splits the value of the selected position among the position’s
direct subordinates (one level below the selected position).
Note
Due to rounding, some values might not add up as expected. For example, if you have a value of $0.99 and
you distribute to four subordinates, each subordinate then has a value of $0.25.
The Distribute to Leaf Subordinates Quota function splits the value of the selected position among all of the
position’s subordinates, down to the leaf levels in the hierarchy. The result of this operation is that the sum
of all direct subordinates' values equals the selected position's quota. The quota values for subordinates two
levels down equal the direct subordinates' quota value, and so on down to the leaf levels in the hierarchy.
Related Information
The Sum Sub-Periods Quota function sums the quota values for the periods that directly feed into the selected
period value.
For example, if you select a year-based value cell and there are quarter-based quota values that feed into that
annual quota, you can select the year quota value cell and choose the Sum Sub-Periods quota function to
calculate the annual quota based on the quarter values. If there is already a value in the selected cell, the
system replaces the value with a newly calculated value.
Related Information
The Distribute to Sub-Periods Quota function splits the value of the selected quota in the selected period
among the periods directly within the selected period.
For example, if you select an annual quota value, the system distributes the quota to all four quarters (but not
the months). Also, if you select a quarter value and choose the Distribute to Sub-Periods quota function, the
system distributes the quota values just within that quarter value, not to every month in the year.
The Distribute to Leaf Sub-Periods Quota function splits the value of the selected quota in the selected period
among the periods within the selected period, including down to the leaf period value.
Related Information
A rate table is a special-purpose table that is used to calculate incentive compensation for a commission,
where a transaction is paid at different rates when it crosses rate threshold tiers. Rate tables can only be used
in incentive rules.
Note
When using a rate table in a rule and the rate table contains a formula, if the formula uses data that limits
its range of use (such as category or credit data), then you must directly assign the rate table in the rule. In
this case, you cannot use a rate table variable.
Related Articles
Navigate to Compensation Elements > Rate Tables to access the Rate Tables workspace.
You can create new rate tables, edit existing rate tables, and delete rate tables from the Rate Table Summary
toolbar. You can also view and modify attainment levels from this tab.
You can edit details in the General Information tab. From the Associations tab, you can view the rules that use
the rate table and the elements associated with the rate table.
Related Information
When you create a rate table, you provide a name for the Rate Table and select its unit type. Next, you can
specify the layout of the table by defining the rate thresholds and their associated rates.
A rate in a rate table can either be fixed or it can be a formula. You can use a rate table directly in an incentive
rule, or you can use a rate table variable in the rule and then assign the rate table to the variable.
Procedure
Note
If this rate table should be used in step commission calculations, the unit type for both the input type
and return type must be percent. New rules are added to accommodate customer’s needs like Stepped
Commission for non-%% Rate Tables
• To add an additional row, position the cursor in a row to make it the active row, and choose the Add icon
from Action. An additional row is inserted before the active row.
• To remove a row, position the cursor in the row and choose the Delete icon.
• To enter the rate for each attainment level, create a formulaic expression, or create a new formula, which
requires that you save the formulaic expression as a new formula.
Related Article
To use a rate table to handle negative returns, de-bookings, be sure to create your rate tables carefully. For
example, if you have a de-booking and you need to create an incentive that is the exact inverse of the original
incentive, you can create the following rate table:
Attainment Rate
< 100% 10
< 150% 15
Note
When using this same rate table both a positive 25% and a negative 25% (-25%) falls into the same “<
100%” attainment level.
Note
When you insert a row for an attainment tier using the Insert button, the row is inserted above the
currently selected row. The sytsem attempts to derive the attainment value for the new row based on
the values in the row above it. For example, say you have 3 rows with attainment threshold values of
15%, 20%, and 20% with the operators <=, <= and > respectively. You then select the row with the
value of 20% and the <= operator and insert a row. The system assigns the value of 16% to the new
row based on the 15% value in the row above. However, if you select the row with the value of 16% and
insert a row, the row is inserted, however, because a value between 15% and 16% cannot be derived
the attainment threshold value assigned to the new row is 16% and the value in the original row is
highlighted in blue indicating that it is invalid and must be modified.
Note
You cannot change the rate table’s calendar. You must instead create a new rate table. Currently, the
association between a calendar and a rate table cannot be broken or changed.
Be aware that when you edit a rate table, you edit the specified version of the rate table. For example, you have
a rate table that is effective from June 2008 to the End Of Time. If, however, in August 2008 you change a rate
in the rate table, it is important to know the effective dates of the change. If, for example, to back-date changes
to June 2008, edit the current version of the rate table (choos Manage Versions in the Rate Tables workspace).
However, to make changes effective from August 2008 to the End Of Time, create a new version of the rate
table, and make the changes to that new version (click New Version in the Rate Tables workspace). If you have a
rate table that is no longer effective, you change the effective end date of the rate table to the required date. Do
not delete the rate table if the rate table was valid for any point in time.
You can delete a rate table that was just created either manually or using import. You cannot delete a rate table
that is referenced by a rule or rule element or is assigned to a rate table variable. Deleting a rate table removes
the rate table object from the system. However, the audit log in the Audit Log workspace retains information on
the actions performed on the rate table object, including its remove (delete) date, and information about the
object itself.
Note
To delete a particular version of a rate table, use the Manage Versions button on the toolbar.
You can find data related to one or more selected rate tables by selecting the appropriate object option from
the Related pane.
Procedure
• If you’re searching for related plans, the plans are retrieved immediately and the results are displayed in the
Plan workspace. If no results are found, the message “No Records found is displayed.
• If you’re searching for related objects other than plans, the Search for Related Objects dialog displays with
the name of the selected object substituted for the object name.
• Rules—returns the Rules that are directly referring to the selected rate table.
• Positions—returns the positions that have the rate table in position Variable Assignment.
• Titles—returns the titles that have the selected rate table in the title's variable assignment.
• Referred Formulas—returns the formulas referred by the selected rate table.
• Referring Formulas—returns the formulas referring to the selected rate table.
A lookup table is a multidimensional table that you use to store a set of numeric-based values. You can
then refer to the values from rules or formulas. Lookup tables are the same for each plan assignment; they
aren’t customizable for each position assigned to the compensation plan. The values in lookup tables can
be concurrently retrieved by any number of compensation rules or shared formulas. Lookup tables store
indexed values, where each value represents the intersection of multiple criteria and each individual criterion is
specified by an index value.
To use the data stored in a lookup table, you include a reference to the lookup table in a rule, formula, or rule
element. In the reference, you specify the data to pass to the lookup table to determine the cell value to return.
Note
Related Articles
When you go to view or modify a lookup table, the system displays one entire dimension as the side (vertical)
and another entire dimension as the top (horizontal). When a dimension is a side or top one you can see all
indexes at once.
The following table lists a description for each of the available dimension types.
Numeric Specific numbers are the dimension’s indexes. A numeric dimension could represent the num-
ber of product lines that are over quota.
String A combination of text and numbers are the dimen- A string dimension could represent event types
sion’s indexes. associated with a transaction.
Numeric Range The dimension’s indexes are represented by A numeric range dimension could represent at-
ranges of numbers. tainment percentages.
Note
For each dimension of this type, you can spec-
ify whether the low and/or high values are
included in the specified ranges. By default,
both are included.
Category Subcategories or classifiers are the dimension’s A category dimension could represent product
indexes. You can mix and match different levels of types.
subcategories and classifiers as indexes.
Note
Each dimension can refer to include index val-
ues from only one category hierarchy.
Date Range The dimension’s indexes are represented by A date range dimension could be used to en-
ranges of dates. force a business-wide policy that sales transac-
tions are processed differently according to their
Note accounting dates.
Note
For each dimension of this type, you can spec-
ify whether the low and/or high values are in-
cluded in the specified ranges. By default, the
system includes both.
Lookup tables and lookup table dimensions and cells comply with the following effective date rules:
• Lookup tables have only one version; however, you can change the effective dates of this version.
• The effective date range of the dimension indexes in a lookup table must be within the date range of the
lookup table.
• The effective date range of cells within a lookup table must be within the date range of the lookup table.
Choose the Calendar field button to the right of the index value to set its effective dates. Indexes that do not
match the lookup table's effective dates have a custom icon. When you open a lookup table to the Values
tab, you can specify the effective date range that the system displays the values for. Cells that have multiple
effective versions display with Various as the cell value. Select a cell to view its effective versions.
If you specify a date range that is outside the effective dates of a dimension index, that index and its values do
not display.
Navigate to Compensation Elements > Lookup Tables to access the Lookup Tables workspace.
The detail pane of the Lookup Tables workspace contains three tabs: the Lookup Table tab, the Values tab, and
the Associations tab. You can create, modify, and delete lookup tables in this workspace.
In Lookup Table Summary , you can create new lookup tables, modify existing lookup tables, and delete lookup
tables from the Lookup Table tab.
You can edit details in the General Information tab. From the Values tab, you can specify effective dates for a
lookup table’s dimension index. From the Associations tab, you can view the rules that use the lookup table and
the elements associated with the lookup table.
• Map out your lookup table beforehand. Before you create your lookup table, map out what your lookup
table should contain and how it should look. For example, use a spreadsheet program to make a grid
representation of the new lookup table. Planning ahead greatly reduces the time it takes to enter your data,
and also helps you to better visualize the lookup table.
• Decide on the number of dimensions before you enter cell values. You should decide on the number of
dimensions before you begin entering cell values. You cannot add dimensions after cell values have been
entered. Adding, modifying, or removing indexes after cell values have been entered is acceptable.
• Decide which dimensions to view as the top and side dimensions. The first dimension that you add
automatically displays as the side dimension, and the second dimension displays as the top dimension.
You can change which dimensions are top, side, or other when viewing a lookup table, but these view
choices are not saved.
• Complexity can affect size and performance. Be aware that a more complex lookup table can potentially
take longer to process. For example, if your lookup table has multiple dimensions, many indexes in each
dimension, and/or many references to constants or shared formulas, your rule processing speed might be
impacted. When the system opens a lookup table, the entire table is opened; therefore, large lookup tables
might take longer to open.
• Consider what parameters you want to pass through the lookup table. When you design your lookup table,
you must consider how it should be implemented and what parameters must be passed to it. For example,
if you build a dimension of the string type, consider what string you are going to specify as the parameter
in the Lookup Table function. Also, you must ensure that the string to be passed to the lookup table is
available in the rule.
When you open a lookup table, the system displays icons that correlate to the types of rules in which you can
use that lookup table. These icons change depending on the values you specify in the lookup table.
The following general rules apply to how the system restricts the use of lookup tables based on what is included
in the lookup table or where the lookup table is used:
• If a lookup table includes a category type of dimension, that lookup table can be referenced from the
following types of rules only: any credit rules, primary measurement rules, and per-credit commission
incentive rules. This restriction occurs because those are the only rules that have access to classifier
information, either from the transaction or the credit. The same restriction applies if the lookup table is
referenced in a shared formula. The shared formula, in addition to any constraints it itself has, can only be
used in credit rules, primary measurement rules, and per-credit commission incentive rules.
• If a lookup table has a cell value that contains a formula, the lookup table’s range of use is further
constrained by the rule type restrictions of the formula. For example, a lookup table with a category type
dimension references a formula that is available only to direct and indirect credit rules, that lookup table’s
range of use is restricted to only direct and indirect credit rules. If a lookup table includes references to
multiple formulas, the lookup table’s range of use is restricted to the set of rules that can use all of the
referenced formulas.
• If a lookup table references a formula that uses fixed values as input, the lookup table’s range of use is not
further restricted. Formulas that use fixed values as input can be used in any type of rule (as well as rate
tables).
• The lookup table’s return type limits its range of use. The unit type specified as the lookup table’s return
type must match the unit type requested in the referencing rule or formula. For example, if a lookup table
contains data values that are of the percent unit type, a function that calls for a USD value cannot reference
that lookup table.
• The parameters that a formula passes to a lookup table can restrict the formula’s range of use. If a formula
includes a reference to a lookup table, the parameters passed to the lookup table restrict the types of
rules that can use that formula. For example, if a formula references a lookup table that does not include
a category type of dimension, but the formula specifies that the Transaction.GenericAttribute1 field be
passed as one of the lookup table parameters, the formula can only be used in direct credit rules.
• Choose the lookup table dimension type based on its intended usage. Be sure that the unit type for
numeric dimensions is appropriate for the field(s) you are passing as parameters to the lookup table. For
example, if you intend to pass a integer field (such as Transaction.Number of Units) as a parameter to
the lookup table, be sure that the lookup table is integer-based. In this case, a lookup table that uses the
quantity unit type would not accept an integer-based value as a parameter.
You can specify a value for a cell in a lookup table by specifying one of the following:
Only objects (fixed values, fixed value variables, formulas, and lookup tables) associated with the current
default calendar can be specified. You can switch the kind of value in a cell by simply replacing the current
value; for example, replace a constant reference with a literal value. Dated list values require a little more work
to replace. You can also select multiple cells and edit the value for all at once using the cell value field.
You can directly enter a number to store a literal value. You do not have to specify the unit type symbol (for
example, ”r;$” if the table’s return type is USD). The system displays the appropriate symbol automatically
after you type a number and press Enter. If you try to enter a number and a unit type symbol that differs from
the lookup table’s return type, the system outlines the cell in red to indicate the error (for example, if the lookup
table’s return type is percent and you enter a $). You can also choose to leave a cell value blank (a null value).
You can specify different cell values that are effective for different effective dates. Each version can have a
different cell value.
For example, an organization runs a special promotion for the month of February 2006 for sales transactions
worth more than $10,000 for products sold directly by salespeople in the Bronze performance tier. For the
month of February, the rate is increased by 0.5%. In this example, the effective versions of cell values would
look something like what is shown in the following figure.
Before you create your lookup table, map out what your lookup table should contain and how it should look.
For example, use a spreadsheet program to make a grid representation of the new lookup table. Planning ahead
greatly reduces the time it takes to enter your data, and also helps you to better visualize the lookup table.
Field Description
Return Type Select a return type for the lookup table. All cell values in
the lookup table are of this unit type.
Last Modified This is the date in which this specific record was last modi-
fied
Effective Start Date This is the date in which this specific record becomes
effective
Effective End Date This is the date in which this specific record becomes
inactive
6. At this point, you are ready to create dimensions, their indexes, and the associated values. See Adding a
Dimension to a Lookup Table [page 241]. To ensure that system treats null cell values as zero values, select
the Treat empty values as Zero option. By default, this option is not selected.
7. Choose Save.
When viewing a lookup table, the first dimension that you define is, by default, set as the side dimension; the
second dimension that you define becomes the top dimension by default. You can change the top and side
dimensions when viewing a lookup table, but the default settings return when you open the lookup table (in the
Edit Table Cells dialog box).
Note
Indexes are also effective dated. You can add indexes to a dimension just after you add the dimension, or to
a dimension, you have already created.
Procedure
6. For any dimension type, you can click Sort to sort the indexes in alphanumerical (increasing) order.
However, after you sort the list you cannot re-sort it. If you are specifying a category-based dimension, you
specify the category root in the Dimension Options area.
7. After you have entered the new dimension name, the type, and the category root (if you specified the
category dimension type), you are ready to add the indexes to the dimension. You must have at least one
index in a dimension If you are specifying a numeric range dimension, you specify the Input Unit type. You
can specify to include the Low Value, High Value, or both.
8. In the Dimension Indices area, choose Add to add an index.
• For category dimensions, specify the subcategory or classifier. You can pick from a list, enter part of
the name, or do a search.
• For Date Range or Numeric Range dimensions, the index is a range of values. There are two columns:
one for the low end of the range and one for the high end of the range.
• For Date Range dimensions, you can edit and enter a date, or click the Add button to open the
Dimension Index Effective Dates dialog from which you can select a date.
• The system adds an empty row in the Value column (in the Dimension Indices area).
9. To add more indexes, choose Add, select the new row, and enter the value. Continue until you have added
all the indexes.
10. Choose Save.
Removing a dimension causes all cell values to be deleted from the lookup table.
Procedure
An index can be removed whether or not the lookup table has cell values entered. If there are cell values, the
ones that apply to the index are removed along with the index. You can either remove an index or end-date the
version of the index.
Procedure
Be sure that all the dimensions are specified for the lookup table before you enter any cell values. After cell
values have been entered in a lookup table, changes to the lookup table’s dimension causes the system to
delete all cell values.
Procedure
Note
You can have null values in lookup tables (some cells can be empty). You can also choose to specify that
the null values are considered as zero values during calculation processing by selecting the Treat empty
values as Zero option from the Lookup Table tab
Note
A quick indicator that a lookup table cell contains either a fixed value, a variable, or a formula reference is
that you see a string value in the cell. Lookup tables can only return numeric-based values.
Procedure
Do not use a lookup table to directly refer to another lookup table. Instead, create a formula that refers to
the lookup table, and then use the formula in the other lookup table. The use of a formula instead of a direct
reference to a lookup table from a lookup table cell is required for calculation processing.
Note
A quick indicator that a lookup table cell contains either a fixed value, a variable, or a formula reference is
that you see a string value in the cell. Lookup tables can only return numeric-based values.
You can use a value from a lookup table in a formula, rule, or another rule element anywhere you can use a
formula or formulaic expression. To access and use data from a lookup table, you include a reference to the
Procedure
1. To include a reference to a lookup table, begin from either a compensation rule, formula, or rule element.
From wherever you start, navigate to a New Formula or Edit Formula dialog. In the formula dialog, specify
the return type. The return type corresponds to the unit type of the lookup table’s cell values. For example,
to reference a lookup table that stores USD values, specify the return type as currency.
2. Choose the Formula edit panel to activate legal moves.
3. In the Legal Moves pane, in the References column, double-click Lookup Table or type the first few letters of
the name to select it.
4. In the Formula section, you can do either of the following to specify the lookup table:
• Type * to pick from a list of all lookup tables.
• Type the beginning of the fixed value name to pick from a subset of all lookup tables.
5. Select each parameter in the Formula section, and then either type a literal or select an item from Legal
Moves.
6. Choose Save when you have finished specifying the parameters
When referring to a lookup table that has one or more category dimensions, you do not specify an input for
each category dimension. (For other dimension types, you have to specify the field to pass to the lookup table).
The following figure shows a four-dimensional lookup table with two category dimensions.
Instead of passing a field in the reference to the lookup table, the system looks for the classification records
that match category dimension indexes. All classification matches are passed to the lookup table for a possible
match with the lookup table dimension. The more category dimensions there are, the more fields have to
match on the classification record against the lookup table dimensions. The classification records that get
passed are those that are associated with the transactions related to the referring rule or rule element.
• Rename the lookup table (any rules or shared formulas that refer to the lookup table are updated
automatically)
• Add, change, or remove the lookup table’s description
• Change the type of value stored in the lookup table’s cells (if you do this, the system clears all cell values).
• Change the dimension type of a dimension (if you do this, the system removes all indexes associated with
that dimension)
• Add or remove a lookup table’s dimension.
• Add, rename, replace, or remove indexes within a dimension (renaming a dimension is acceptable, but
adding or removing dimensions causes the system to delete all cell values)
Note
You cannot edit the structure (return type and number and types of dimensions and their order) of a
Lookup Table that is assigned as the default of a Lookup Table Variable being used in a formula, rule, plan or
another lookup table.
Note
You cannot change the lookup table’s calendar. You must instead create a new lookup table. Currently, the
association between a calendar and a lookup table cannot be broken or changed.
You can delete a lookup table that was just created either manually or using import. You cannot delete a lookup
table that is referenced by a rule or rule element or is assigned to a lookup table variable.
Deleting a lookup table removes the lookup table object from the the system. However, the audit log in the
Audit Log workspace retains information on the actions performed on the lookup table object, including its
remove (delete) date, and information about the object itself.
You can find data related to one or more selected lookup tables by selecting the appropriate object option from
the Related pane.
• If you are searching for related plans, the plans are retrieved immediately and the results are displayed in
the Plan workspace. If no results are found, the message No Records Found is displayed.
• If you are searching for related objects other than plans, the Search for Advanced Related Objects dialog
displays with the name of the selected object substituted for the object name.
• Rules—returns the rules that are directly referring to the selected lookup table.
• Referring Formulas—returns the formulas referring to the selected lookup table.
• Referred Formulas—returns the formulas referred to by the lookup table cells.
• Referred Fixed Values—returns the fixed values referred to by the selected lookup table.
• Referred Variables—returns the variables referred to by the selected lookup table.
• Referring Rate Tables—returns the rate tables referring to the selected lookup table.
• Referred Rate Tables—returns the rate tables referred to by the selected lookup table.
• Quotas—returns the quotas referred to by the selected lookup table.
• Referring Lookup Tale Variables—returns the variables referring to the selected lookup table.
• Referred Lookup Tables—returns the lookup tables referred to by the selected lookup table.
• Referring Lookup Table—returns the lookup tables referring to the selected lookup table.
• Plans—returns all the plans that are referring to the rules that are directly using the selected lookup table.
Functions are predefined formulas provided by the sytsem that you can use in compensation rules to calculate
and specify values or conditions. In general, functions fall into groups based on their use. For example, a group
of functions, called order-level functions, is provided to calculate summary information related to transactions
on an order for use in writing credit rules based on orders. Most functions are accessible from the functions
listing in the Legal Moves pane. A few functions are accessible from the data fields listing in the Legal Moves
pane. These functions are known as data field functions.
The list of functions that are available in the system in a particular context depends on the kind of formula, the
return type of the formula, and the input to the formula. The available functions are listed alphabetically in the
system. Also, new rules are added to accommodate customer’s needs like interpolate functions. In most cases,
functions require one or more input parameters and produce an output result. For example, the Concatenate
Two Strings function takes two strings as input parameters and produces a string as output.
Because of this basic input/output structure, functions can be nested within other functions in a formula. For
example, you can create a formula using the Convert String to Value function, then use that formula as one of
the input parameters to a second formula that includes the Round function.
(Participant.GenericAttribute1, "USD")
FormulaB = Round(FormulaA,2)
Note
When discussing date formats, information in this chapter assumes that you are using the English (United
States) locale. If you are using another locale, date formatting could be different.
Related Articles
A primary function is one that is available in most contexts and does not fit into one of the other groupings of
functions. The primary functions are:
• Absolute
• Calculate Result
• Concatenate Two Strings
• Convert Boolean to Value
• Convert Date to Effective Date
• Convert Date to Fiscal Date
• Convert Null to Value
• Convert String to Upper Case
• Convert String to Value
• Convert Value to Boolean
• Current Period
• Equals (Ignore Case)
• Is Null and IsDateNull
• Is In Range
• Max and Min
• Other Position’s Quota or Fixed Value
• Participant.Version() and Position.Version() Functions
• Position Proration Functions
• Power of
• Round
• Set Unit Type
• Source.Credit.Relationship.Source.Version ()
• Transaction.Payee Pre-Assignment () Functions
• Transaction.Classifier()
• Trim String
• Trunc
Related Articles
21.1.1 Absolute
For example, if the input value is $130.00, the output value is $130.00; if the input value is –$25.00, the output
value is $25.00.
Use Calculate Result to extract a value from a rate table; the function returns a single value per input value.
This function looks up a value on a rate table without traversing rate rows (this is unlike stepping through a
rate table, where the value is derived from traversing rows). A rate table used solely for a Calculate Result
function can use any unit type for the lookup and the result columns - (USD in, quantity out) for example. A
step commission rate table can only use the same unit type (percent in, percent out). If you want to have more
than two dimensions, use a lookup table instead.
Input:
• Rate Table - Specify either a rate table or a rate table variable. If you specify a rate table variable, it acts as a
placeholder, and the actual rate table must be assigned at the variable, plan, title, or position level.
• Attainment Rate - Enter or select the value that determines which row of the rate table to use, based on
the second column (attainment) in the rate table. The attainment rate is normally specified by selecting
a Measurement but can be specified by selecting a Fixed Value, a Fixed Value Variable, a Formula, an
Incentive, a Lookup Table, a Lookup Table Variable, or a Quota.
Formula: Calculate Result = (Rate Table (BookedRev_RT)), (Attainment (AP Simple Revenue PM:month))
For example, if a participant achieves 104% of attainment, and using rate table with the following attainment
tiers and rates (0 - 100% = $3000; 100%+ = $5000), Calculate Result would return a value of $5000.
Use the Concatenate Two Strings function if you want to use the combination of two strings in a formula.
Input: Two numeric values: First Value and Second Value. If the First Value parameter is not null, this value is
returned as output. However, if the First Value parameter is null, the Second Value parameter is returned as
output.
Output: Either the value specified for the First Value or the Second Value as explained above.
For example, the formula example uses Position.GenericNumber1 if it is not null, or 0 if it is null.
Description: Use Convert String to Upper Case if you want to convert a text string to all capital letters. For
example, you could use this function in a classification rule to ensure that a transaction field matches a
classifier field.
Output: The same string, in all capital letters (String return type)
Description: Use Convert String to Value to extract a numeric string from an alphanumeric field (often from a
generic attribute) in the database, then apply a unit type to the string so it has the correct format for use with
other mathematical elements. This makes the string a “number” in a sense that the sytsem can interpret it.
Input:
Formula: Convert String to Value = (string (Participant.Generic Attribute 1), Unit type (USD))
For Example, Extract the numeric string in a participant first generic attribute field (that stores a conversion
rate, for example) and specify a unit type of USD.
Note
When specifying a percent-based unit type, the percentage is based on the created value. A value of 0.1
becomes 10%, and a value of 1.0 becomes 100%.
For example, If Transaction.Generic Number1 equals 1, the numeric value is converted to Boolean.
Description: Use Current Period to ensure that a rule is only fired in the appropriate period.
Input: A period from the list of all periods in current default calendar.
Description: Use this function to make two items with different capitalization considered as the same for rule
processing purposes. Enter two strings are considered equal.
Input:
Formula: Equals Ignore Case = (First String (Position.Name), Second String (“Sales rep”))
For example, You might want to ensure that commissions involving sales representatives receive the
appropriate amounts from measurements labeled either 'Sales Rep' or 'Sales rep.'
Description: Use the Is Null function to test if a field is null (does not contain a value). Use the Is Date Null
function to test if a date field is null.
Input: Specify the field that is to be tested for a null. If the field is null, the function returns a “true,” otherwise
the function returns a “false.”
For example, check to verify that the first generic attribute field on the transaction contains a value.
21.1.12 Is In Range
For example, If the range is 5 to 10, an input value of 7 returns true. An input value of 5 is in the range if the first
Boolean (Is range inclusive of low value) is true; otherwise, it is not in the range. An input value of 10 is in the
range if the second Boolean (Is range inclusive of high value) is true; otherwise, it is not in the range.
Description: Use these two functions to select the maximum or minimum of two values.
Input: Enter or select the two values that you want compared to determine which is the greater or lesser value.
Output: In the formula, the one that satisfies either maximum or minimum, whichever is selected, is used.
Formula: Max = First value (Source Credit.Transaction.Num Units), Second value (Fixed Value
Variable:MaxNumberOfUnitsOnTxn)
For Example, compare the number of units sold on a transaction to the maximum number of units a sales
representative can receive credit for.
Description: Use this function to retrieve a quota or other fixed value from another position. You use a fixed
value variable as a placeholder for the fixed value. The system locates the fixed value that you assign to the
variable (at the position, title, plan, or variable level) along the roll relationship of the specified roll type. You can
use this function anywhere a fixed value or fixed value variable is valid.
For example, Other Position’s Quota or Fixed Value = Quota or Fixed Value Variable (Fixed Value (Rolling
Monthly Quota:month)), Roll Type (Rollup), Operation is one of Average, Sum, or Error (Error if more than one))
Description: Use the Participant.Version() or Position.Version () data field functions to return an attribute on a
specific version of a participant or position.
Input: A date, which determines the version of the participant or position to be used. This date can only be a
literal, such as 01/01/08, or a date data field attribute, such as Participant.Hired or Participant.Generic Date 1.
Output: The attribute specified for the participant or position. For example, if you specify Manager.Name,
using Position.Version(Participant.Hired). Manager.Name, the manager’s name, a string, is returned. The type
of output depends on the attribute specified and the return type of the formula or rule.
For example, you could use the Position.Version() function to retrieve the version of the position that is in effect
on the transaction’s accounting date, and then use that position version’s target compensation in a formula for
calculation. You might do this if the position’s target compensation changed during the quarter.
21.1.16 Round
Description: Use the Round function to round a number to a specified number of digits using standard
rounding or bankers rounding.
Standard Rounding (Round Half Up) is the default in Incentive Management. Standard Rounding is a rounding
mode that rounds towards the 'nearest neighbor' unless both neighbors are equidistant, in which case it rounds
up.
For example:
Banker’s Rounding (Round Half Even) is a rounding mode that rounds towards the 'nearest neighbor' unless
both neighbors are equidistant, in which case it rounds towards the even neighbor. It behaves like round up if
the digit to the left of the discarded fraction is odd and like round down if it is even. Note that this rounding
mode minimizes cumulative error when applied repeatedly over a sequence of calculations.
For example:
Note
You must create a support ticket to enable the bankers rounding mode in your tenant.
Input:
For example, If the value being rounded is 135.79, the following table shows the different possible results
depending on the precision level specified (number of digits to round to).
Rounding Examples
Values displayed as percentages are stored as decimal values, so that 96.78% is stored as 0.9678. When
rounding a percentage, select the number of digits relative to the decimal expression of the percentage. For
example, to round 96.78% (.9678) to 97% (.97), enter 2 for number of digits.
Input:
Input: None
Return Type: Numeric, Integer, Boolean, or String. The return type depends on the type of generic attribute
being retrieved.
For example, Transactions could be assigned such that the first set of payees specified on a transaction
receive 65% of the credit for the transaction, and anyone specified in the second set of payees on the
Note
Be careful to avoid ambiguous Transaction Pre-assignment Generic Attribute references. For example,
if a given transaction has two pre-assignment records for a payee that exists in two positions and
the same Generic Attribute on the two pre-assignment records is given distinct values, referencing
Transaction.Transaction Payee Pre-Assignment for Participant is an ambiguous reference, because the
same payee (Participant) exists on both of the transactions pre-assignment records. The correct reference,
in this case, should be Transaction.Transaction Payee Pre-Assignment for Position; because the Position
reference yields a distinct answer. The GA referenced for this transaction is distinct only in relation to
position, not to payee. Similarly, if the same title or position is referenced (but the payee varies) on multiple
assignments for the same transaction, the appropriate function to use would be payee-based reference.
21.1.19 Transaction.Classifier()
Description: Use this data field function to retrieve data on the classifier against which a transaction was
classified.
Return Type: Depends on the return type of the selected classifier field.
Transaction.Classifier With Matching GA(): Enables you to use an additional Generic Attribute in the
Classifier.
Transaction.Classifier With Two Matching GA(): Enables you to use two Generic Attributes in the Classifier.
For example, As part of a condition to a credit rule, you could use a formula that compares the classifier’s cost
to a specified amount.
Note
If a single transaction classifies more than once under a given category hierarchy (classifies against 2 or
more distinct classifiers under the same tree); the use of the Transaction.Classifier() function to return
attributes from a classifier can return ambiguous results. The calculation will use the first classification
record to determine which classifier it returns attributes for. That may or may not be the desired classifier
reference. In this case, you can use the data field function "Transaction.Classifier With Matching GA" or
"Transaction.Classifier With Two Matching GA" which allows you to use additional Generic Attribute in the
Classifier to resolve the ambiguity. (Note that this can only happen when this rule is violated when building
classification rules - "If you have several category hierarchies with the same classifier type, the same
transaction can be classified under each category hierarchy, but not twice under the same one").
The data field function Transaction.Classifier With Matching GA works similar to the Transaction.Classifier
( Category Tree ) function, except it also takes two parameters, "GA Index" and "Value". The "GA Index"
Example
If the above function returns multiple classifiers, it will compare the value in the classifier's GenericAttribute1 to
see if it matches the Participant's participantID. If it is a match, it will use this classifier. If it doesn't match, it will
try the next one. If there is no match, it will return any classifier.
The data field function Transaction.Classifier With Two Matching GA will take two more parameters to specify
additional fields in the Classifier to match with the value. This data field function will return all classifiers
classified against the Transaction with the value in the Classifier's GA field matching the value for the first and
second GA index.
Transaction.Classifier With Two Matching GA ( Category Tree, GA Index 1, Value 1, GA Index 2, Value 2 )
GA Index 2 - Additional GenericAttribute field in the Classifier used to match the Value
The above function will return the Classifier that is classified against the current transaction and the
Classifier's GenericAttribute1 that has a value that matches the current Position's name and the Classifier's
GenericAttribute2 that has a value that matches the current transaction's GenericAttribute1 value.
Note
For Classifiers to be returned, both GA values must match the matching value. If the Classifier's GA field or
the matching value is null (i.e., unspecified), the system will consider it as ‘not matching’.
Use Case
First, Classifier has to be classified to the Transaction to be considered. Then, for all the classified transactions,
only the one that has both the GA1 and GA2 values match the matching value will be considered a match. Any
null value will be considered as Unknown so it will not be match.
Description: Use this data field function to check if the current processing position has any accepted plan
document. Plan document is accepted if it is accepted by a Payee and has not been undistributed.
Input: Specify the Form Template Name. It is the name of the distribution created for the documents.
The data field function Position.Has Accepted Form is a boolean function that returns true if the current
processing Position has an Accepted document. After a document is created in in Plan Communicator, it is
distributed to Payees for acceptance, as part of the distribution process. Documents can also be undistributed
(that is. withdrawn or recalled) if the user decides to stop the distribution process.
This function only checks for the last status of the distribution process to determine whether it is accepted.
If you have a document that was accepted and later undistributed, it will not be considered as accepted. For
details of the distribution process, see Distributions in Plan Communicator.
Example
The below example shows a formula that checks if the Position has accepted the document in the My
Distribution workflow.
Description: Use the Trim String function to trim extra white spaces from a text field’s value. For example, you
could use the Trim String function to retrieve just the text string from a transaction field. Imported transactions
often have extra white spaces, which can sometimes cause problems in calculation processing.
Input: A string.
Input: A number to be truncated, and the number of digits (scale) where truncation occurs.
• Positive numbers and zero affect the right side of the decimal point, indicating how many decimal places to
keep.
• Negative numbers affect the left side of the decimal point, indicating which places to the left to truncate
(that is, change to zero).
• Values displayed as percentages are stored as decimal values, so that 96.78% is 0.9678. When truncating
a percentage, select the number of digits relative to the decimal expression of the percentage. For example,
to truncate 96.78% (.9678) to 96.7% (.967), enter 3 for number of digits.
For example, the number 135.7654, would be truncated as shown in the following table.
Truncation Examples
For example, Truncate the monthly exchange rate to two places to the right of the decimal point (scale of 2).
The monthly exchange rates are imported as fixed values with a scale of 4, and company policy is to truncate,
rather than round, all exchange rates.
This section includes information about the functions that can do sum operations on various results data.
Description: Use this function to obtain a quota or fixed value that crosses the boundaries of the usual
calendar periods. For example, you can sum the values of a rolling quarter period of the last three months, even
when those months do not constitute a calendar quarter.
Input Description
Quota or Fixed Value Specify a quota, fixed value, or fixed value variable.
Number of periodic values to include Indicates how many prior periods (not including the current period) to
include in the sum, enter the number.
Use true to include the current period Indicates whether or not to include the current period in the sum,
select True or False.
Example: A participant gets compensated based on the last three months’ performance compared to the
quarterly quota.
Formula: Sum Prior Quotas or Fixed Values = (Quota or Fixed Value (Last Value (MonthlyQuota:month)), (Num
Value (2)), (Include Last? (true))
Description: Use this function to obtain a measurement value that crosses the boundaries of the usual
calendar periods. For example, you can sum the values of a rolling quarter period of the last three months, even
when those months do not constitute a calendar quarter.
Input Description
Measurement Select the first parameter, and in the Legal Moves area, under the References column,
double-click the Measurement Input item to open the Measurement Input Reference
dialog:
Note: It is recommended that you not specify an offset for sum functions. Also, do not
specify a synthetic version of a measurement in a sum function.
Number of Measurements to in- Indicates how many prior periods (not including the current period) to include in the
clude sum; enter the number.
Include Last Measurement in Indicates whether or not to include the current period in the sum; select True or False.
Calculation?
Example: An incentive rule pays out if the last six months’ performance is above a specified number. The
formula calculates the last six months’ worth of the Sales Revenue PM (primary measurement).
Formula: Sum Prior Measurements (Measurement (Sales Revenue PM: month), Num Measurements (6),
Include Last? (false))
Note
Traces (which include Incentive to Measurement trace, Measurement to Measurement trace and Deposit
to Measurement trace) will not be created for any Sum Measurement function. Only direct reference to the
Measurement will have traces created.
Description: Use this function to obtain measurement values to determine performance progress so far during
a period. The value shows accumulation toward a goal that you can compare (usually through a condition) to
something else to determine attainment. The details indicate which value and how much of it to sum.
Note
Because measurements are always calculated at the leaf-period (for example, monthly), you can point to
any period-based version of a measurement.
Measurement Select the first parameter, and in the Legal Moves area, under the References column, double-
click the Measurement Input item to open the Measurement Input Reference dialog:
Note: It is recommended that you not specify an offset for sum functions. Also, do not specify
a synthetic version of a measurement in a sum function.
Period Type The period in which to sum the measurement (for example, ”r;year” to date).
Include Last Measurement Indicate whether or not to include the current subset of that period in the sum; select True or
in Calculation? False. For example, you could use this function to total a monthly value, quarter to date, with
(True) or without (False) the current month.
Example: If a participant has achieved more than 75% of the annual quota, then award the participant a bonus.
The formula calculates the attainment year to date (so far).
Formula: Sum Measurements to Date by Participant = (Measurement (Manager Revenue PM: month), Period
Type (year), (Include Last? (true))
Note
To see the difference between Sum Measurements to Date by Participant function and the existing Sum
Measurements to Date function, assign the same participant (payee) to different Position for a different
period and then use the Sum Measurements to Date function to sum over the periods. The new Sum
Measurements to Date by Participant function gives the sum for the same participant whereas the regular
Sum Measurements to Date function gives the sum for the same position.
Note
Traces (which include Incentive to Measurement trace, Measurement to Measurement trace and Deposit
to Measurement trace) will not be created for any Sum Measurement function. Only direct reference to the
Measurement will have traces created.
Description: Use this function to obtain a measurement value that crosses the boundaries of the usual
calendar periods. For example, you can sum the values of a rolling quarter period of the last three months, even
when those months do not constitute a calendar quarter.
Measurement Select the first parameter, and in the Legal Moves area, under the References column,
double-click the Measurement Input item to open the Measurement Input Reference
dialog:
Note: It is recommended that you not specify an offset for sum functions. Also, do not
specify a synthetic version of a measurement in a sum function.
Number of Measurements to in- Indicates how many prior periods (not including the current period) to include in the
clude sum; enter the number.
Include Last Measurement in Indicates whether or not to include the current period in the sum; select True or False.
Calculation?
Example: An incentive rule pays out if the last six months’ performance is above a specified number. The
formula calculates the last six months’ worth of the Sales Revenue PM (primary measurement).
Formula: Sum Prior Measurements by Participant (Measurement (Sales Revenue PM: month), Num
Measurements (6), Include Last? (false))
Note
To see the difference between Sum Prior Measurements by Participant function and the existing Sum
Prior Measurements function, assign the same participant (payee) to different Position for a different
period and then use the Sum Prior Measurements function to sum over the periods. The new Sum Prior
Measurements by Participant function gives the sum for the same participant whereas the regular Sum
Prior Measurements function gives the sum for the same position.
Note
Traces (which include Incentive to Measurement trace, Measurement to Measurement trace and Deposit
to Measurement trace) will not be created for any Sum Measurement function. Only direct reference to the
Measurement will have traces created.
Description: Use this function to obtain an incentive value that crosses the boundaries of the usual calendar
periods. For example, you can sum the incentive values of a rolling quarter period of the last three months, even
when those months do not constitute a calendar quarter.
Incentive Select the first parameter, and in the Legal Moves area, under the References column,
double-click the Incentive Input item to open the Incentive Input Reference dialog:
Note: It is recommended that you not specify an offset for sum functions. Also, do not
specify a synthetic version of an incentive in a sum function.
Number of Incentives to In- Indicates how many prior periods (not including the current period) to include in the sum,
clude enter the number.
Include Last Incentive in Cal- Indicates whether or not to include the current period in the sum, select True or False.
culation?
Formula: Sum Prior Incentives ((Incentive (Director Revenue Commission: month)), (Num Incentives (6)),
(Include Last? (false)))
Note
Traces (which include Incentive to Incentive trace and Deposit to Incentive trace) will not be created for any
Sum Incentive function. Only direct reference to the Incentive will have traces created.
Description: Use this function to obtain incentive values to use to determine performance progress so far
during a period. The details indicate which value and how much of it to sum.
Note
Last Incentive cannot refer to an incentive period lower than the period level of the incentive. For example,
if the incentive is a quarterly bonus, you cannot refer to the monthly value of the incentive. You can refer to
the quarterly or yearly values.
Input Description
Incentive Select the first parameter, and in the Legal Moves area, under the References column, double-
click the Incentive Input item to open the Incentive Input Reference dialog:
Note: It is recommended that you not specify an offset for sum functions. Also, do not specify
a synthetic version of an incentive in a sum function.
Period Type The period in which to sum the incentive (for example, ”r;year” to date).
Include Last Incentive in Indicate whether or not to include the current subset of that period in the sum select True or
Calculation? False. For example, you could use this function to total a monthly value, quarter to date, with
(True) or without (False) the current month.
Example: Calculate the incentives year to date less the amount paid so far. The formula calculates the
incentives year to date.
Formula: Sum Incentives To Date by Participant = (Incentive (Director Revenue Commission:month), Period
Type (year), Include Last? (true))
Note
To see the difference between Sum Incentives to Date by Participant function and the existing Sum
Incentives to Date function, assign the same participant (payee) to different Position for a different period
and then use the Sum Incentives to Date function to sum over the periods. The new Sum Incentives to Date
by Participant function gives the sum for the same participant whereas the regular Sum Incentives to Date
function gives the sum for the same position.
Note
Traces (which include Incentive to Incentive trace and Deposit to Incentive trace) will not be created for any
Sum Incentive function. Only direct reference to the Incentive will have traces created.
Description: Use this function to obtain an incentive value that crosses the boundaries of the usual calendar
periods. For example, you can sum the incentive values of a rolling quarter period of the last three months, even
when those months do not constitute a calendar quarter.
Input Description
Incentive Select the first parameter, and in the Legal Moves area, under the References column,
double-click the Incentive Input item to open the Incentive Input Reference dialog:
Note: It is recommended that you not specify an offset for sum functions. Also, do not
specify a synthetic version of an incentive in a sum function.
Number of Incentives to In- Indicates how many prior periods (not including the current period) to include in the sum,
clude enter the number.
Include Last Incentive in Cal- Indicates whether or not to include the current period in the sum, select True or False.
culation?
Formula: Sum Prior Incentives by Participant ((Incentive (Director Revenue Commission: month)), (Num
Incentives (6)), (Include Last? (false)))
Note
To see the difference between Sum Prior Incentives by Participant function and the existing Sum Prior
Incentives function, assign the same participant (payee) to different Position for a different period and then
use the Sum Prior Incentives function to sum over the periods. The new Sum Prior Incentives by Participant
function gives the sum for the same participant whereas the regular Sum Prior Incentives function gives
the sum for the same position.
Note
Traces (which include Incentive to Incentive trace and Deposit to Incentive trace) will not be created for any
Sum Incentive function. Only direct reference to the Incentive will have traces created.
Description: Use this function to obtain quotas or fixed values to determine performance progress so far
during a period. The details indicate which value and how much of it to sum.
Note
The Period Type must refer to the same or a larger period at which the quota or fixed value is stored.
For example, if “Sales Quota 2008? is stored as quarterly values only, you should not refer to the monthly
values of that fixed value, but you can refer to a quarter or year period.
Input Description
Quota or Fixed Value Specify a quota, a fixed value, or fixed value variable.
Period Type The period in which to sum the value (for example, “year? to date). This
should match or contain the period type of the quota, fixed value or
fixed value variable.
Use true to include the current period Indicate whether or not to include the current subset of that period in
the sum; select True or False. For example, you could use this function
to total a quarterly value, quarter to date, with (True) or without (False)
the current month.
Formula: Sum Quotas or Fixed Values to Date = (Quota or Fixed Value (AP Simple Commission Incentive:
month)), Period Type (month), Include Last? (true))
Description: Use this function to obtain measurement values to determine performance progress so far during
a period. The value shows accumulation toward a goal that you can compare (usually through a condition) to
something else to determine attainment. The details indicate which value and how much of it to sum.
Note
Because measurements are always calculated at the leaf-period (for example, monthly), you can point to
any period-based version of a measurement.
Input Description
Measurement Select the first parameter, and in the Legal Moves area, under the References column, double-
click the Measurement Input item to open the Measurement Input Reference dialog:
Note: It is recommended that you not specify an offset for sum functions. Also, do not specify
a synthetic version of a measurement in a sum function.
Period Type The period in which to sum the measurement (for example, “year? to date).
Include Last Measurement Indicate whether or not to include the current subset of that period in the sum; select True or
in Calculation? False. For example, you could use this function to total a monthly value, quarter to date, with
(True) or without (False) the current month.
Example: If a participant has achieved more than 75% of the annual quota, then award the participant a bonus.
The formula calculates the attainment year to date (so far).
Formula: Sum Measurements to Date = (Measurement (Manager Revenue PM: month), Period Type (year),
(Include Last? (true))
Note
Traces (which include Incentive to Measurement trace, Measurement to Measurement trace and Deposit
to Measurement trace) will not be created for any Sum Measurement function. Only direct reference to the
Measurement will have traces created.
Description: Use this function to obtain incentive values to use to determine performance progress so far
during a period. The details indicate which value and how much of it to sum.
Last Incentive cannot refer to an incentive period lower than the period level of the incentive. For example,
if the incentive is a quarterly bonus, you cannot refer to the monthly value of the incentive. You can refer to
the quarterly or yearly values.
Input Description
Incentive Select the first parameter, and in the Legal Moves area, under the References column, double-
click the Incentive Input item to open the Incentive Input Reference dialog:
Note: It is recommended that you not specify an offset for sum functions. Also, do not specify
a synthetic version of an incentive in a sum function.
Period Type The period in which to sum the incentive (for example, “year? to date).
Include Last Incentive in Indicate whether or not to include the current subset of that period in the sum select True or
Calculation? False. For example, you could use this function to total a monthly value, quarter to date, with
(True) or without (False) the current month.
Example: Calculate the incentives year to date less the amount paid so far. The formula calculates the
incentives year to date.
Formula: Sum Incentives To Date= (Incentive (Director Revenue Commission:month), Period Type (year),
Include Last? (true))
Note
Traces (which include Incentive to Incentive trace and Deposit to Incentive trace) will not be created for any
Sum Incentive function. Only direct reference to the Incentive will have traces created.
Description: Use the two functions Sum Deposits to Date and Sum Deposits to Date with Status to total
deposits with the same name for a given period.
You can use this value in a condition statement so that incentive decisions can be based on it. The details
indicate which value and how much of it to sum.
Note
Current period deposits will not be included when calculating the sum value for these functions.
• Deposit Name—to indicate which deposits to sum. Select String then enter the name of the deposit. You
must ensure that your entry matches the case and spacing of the deposit name.
• Period Type—the period in which to sum the deposit (for example, “year? to date).
• Deposit Status— to indicate by status, which deposits to the total, select the hold status: available, held,
both. (This applies only to the Sum Deposits to Date with Status function.)
Output:
Example:
Calculate the deposits year to date less the amount paid so far.
Sum Deposits to Date with Status = (Deposit Name (“Sr VP Quarterly Deposit?), Period Type (year), Deposit
Status (Available))
Each function calculates data that represents summary information related to all the transactions on an order.
These functions are referred to as order-level functions. The following table describes the order-level functions.
Order-Level Functions
The following table contains the details that you input into the previous functions.
Note
Only the credit value functions accept the details of credit type and credit held.
a specific territory
Current Position Only? true: Select only transactions credited to current position assignment.
(Only Transactions credited false: Select transactions that are not credited to the current position assignment.
to current Position)
Any: Select transactions regardless of who received credit.
Line Number Specify an integer (for example, type a number or point to a fixed value).
Credit Held? true (the credit is currently held and not available)
Any
Description: Use these functions to determine whether a credit is based on an entire order (if it is not an order
credit, it is transaction-based). This function can also display as a data field in the Legal Moves listing as Source
Credit.Is Order Credit.
Input: None
Example: Knowing if a Credit is an Order Level Credit is useful if you are creating a measurement that
aggregates Order Level Credits (you'd use this function in the condition field of the Measurement rule).
Description: Use these two functions to calculate the maximum or minimum transaction credit value that
comes from an order. These two functions cannot be used in a transaction-based credit rule. The -DO or -RO
extension to the function names distinguish between the function for use in direct order credit rules (DO) and
rolled order credit rules (RO).
Input:
• Event Type
• Territory / Category / Classifier
• Current Position only? (Only Transactions credited to current Position)
• Period Type
• Line Number
• Credit Type
• Credit Held?
Output: A numeric value, with the same unit type as Min/Max credit value unit type in the order.
Description: These functions return the transaction value that is either the largest (max) or smallest (min) on
an order. The -DO, -RO, -DC, and -RC extension to the function names distinguish between the function for use
in direct order credit rules (DO), rolled order credit rules (RO), direct transaction credit rules (DC), and rolled
transaction credit rules (RC).
• Event Type
• Territory / Category / Classifier Assignment
• Current Position Only? (Only Transactions credited to current Position)
• Period Type
• Line Number
Output: A numeric value, with the same unit type as Max/Min Txn value on the order.
Description: This function returns the sum of the transaction credits related to a specific order. This function
cannot be used in a transaction-based credit rule. The -DO or -RO extension to the function names distinguish
between the function for use in direct order credit rules (DO) and rolled order credit rules (RO).
Input:
• Event Type
• Territory / Category / Classifier
• Current Position Only? (Only Transactions credited to current Position)
• Period Type
• Line Number
• Credit Type
• Credit Held?
Output: A numeric value, with the same unit type as the sum of credit values on the order.
Description: This function calculates the total number of transaction units on an order. The -DO, -RO, -DC, and
-RC extension to the function names distinguish between the function for use in direct order credit rules (DO),
rolled order credit rules (RO), direct transaction credit rules (DC), and rolled transaction credit rules (RC).
Input:
• Event Type
• Territory / Category / Classifier
• Current Position Only? (Only Transactions credited to current Position)
• Period Type
• Line Number
Description: This function calculates the sum of the transaction on an order. The -DO, -RO, -DC, and -RC
extension to the function names distinguish between the function for use in direct order credit rules (DO),
rolled order credit rules (RO), direct transaction credit rules (DC), and rolled transaction credit rules (RC).
Input:
• Event Type
• Territory / Category / Classifier Assignment
• Current Position? (Only Transactions credited to current Position for order credit rules only)
• Period Type
• Line Number
Description: This function calculates the number of transactions on an order. The -DO, -RO, -DC, and -RC
extension to the function names distinguish between the function for use in direct order credit rules (DO),
rolled order credit rules (RO), direct transaction credit rules (DC), and rolled transaction credit rules (RC).
Input:
• Event Type:
• Territory / Category / Classifier
• Current Position? (Only Transactions credited to current Position for order credit rules only)
• Period Type
• Line Number
You can use the Transaction.Line Total() and the Order.Total() data field functions to retrieve the total value of a
transaction line or of an entire order. Remember that transactions are actually sublines on an order. These data
field functions take no input.
• String Contains
You can use these functions to look for a pattern or string in a field, such as a Generic Attribute field. You use
two types of functions: one type returns a true or false, and the other type returns the string itself, or a portion
thereof. You access the pattern search functions from the Legal Moves window. Searches can be case sensitive,
or not. You can search for plain text, or you can include advanced wildcard operators in your search criteria.
These advanced wildcard operators are commonly referred to as regular expressions. A regular expression is
an advanced search notation commonly used with databases and search engines.
There are many different variations for regular expression syntax. The system uses the PERL set, which is the
fullest set. Because of a third-party product interdependency, some characters should not be used in input
strings as they cause problems during calculation processing.
• String
• Pattern Text
• Case Sensitive?
Example: For example, when a function searches for the pattern “Golf” (Pattern Text) in
Transaction.ProductDesc(String), the function returns “true” if the transaction’s Product Description includes
“Golf.” The function returns “false” if the pattern text is not found.
• String
• Pattern Text
• Case Sensitive?
Example: For example, when a function searches for the pattern “Golf” (Pattern Text) in
Credit.Transaction.ProductDesc (String), the function returns “true” if the transaction’s Product ID ends with
the text “Golf”. The function returns “false”if the pattern text is not found.
Description: Looks for a particular string that starts with the given pattern text.
• String
• Pattern Text
• Case Sensitive?
Example: For example, when a function searches for the pattern “951” (pattern text) in the
Transaction.Shipping.PostalCode (String), the function returns “true” if the transaction’s shipping address
postal code begins with “951”. The function returns “false”if the pattern text is not found.
Description: Looks for and returns the largest portion of a particular string that starts at a given starting
character position and ends at a given ending character position.
If startIndex > string length or if endIndex < string length, an empty string is returned.
Example: For example, when a function searches for the text that starts with the sixth field character
(startIndex) and ends at the seventh field character (endIndex) in Transaction.Shipping.PostalCode (string),
the function returns what it finds between the two character positions.
Description: Looks for and returns the portion of a string beginning with the character at the Start Index
position through the end of the string.
If the number given for the Start Index is greater than the length of the string, an empty string is returned.
Example: SubString From (Transaction.ProductDesc, 6) could search the following Product Description string
fields:
Golf Putter Golf Driver Golf Set - Women’s Golf Beginner Set
Description: Looks for and returns the largest portion of a particular string that matches the given pattern text.
• String
• Pattern Text
• Case Sensitive?
Example: For example, when a function searches for the pattern “UB4” (pattern text) in Transaction.Generic
Attribute 1 (string), the function returns the found pattern when the transaction contains “UB4” in that field.
Related Articles
The system can calculate or act based on date information using date functions and either the standard
calendar or your fiscal calendar. You can choose to specify a date in a date function in any of three ways:
You can use date functions in formulas and in rule conditions. The dates specified in a date function must be
within the default effective dates as determined by the default calendar.
When the system encounters a null date that is used in a date calculation function, it inserts a specific date of
its own in place of the null date. If a rule processes a null date (meaning that no date is specified), the system
assumes the following:
The system generates an error message in the log file when it encounters null dates.
As a result, during calculation processing, the system might generate a false credit and an error message in the
log file. A 'false' credit is one that you did not intend to create. The system might also not create the credit that
you intended to create.
• Use a function that uses a date as input (such as Add Time to Date) in a compensation rule formula.
• Use a NULL date (such as Position.GenericDate1) as input to the function.
If the result of the formula > April 30, 2008, create a credit
When the date that is null is a start date, the system uses December 31st, 1969 4:00 pm. For null end dates, it
uses December 31st, 18969, 14:00 pm.
Note
When specifying a fiscal date, the date must occur within the bounds of the periods defined in the sytsem..
Otherwise, the system returns an error.
Note
If one of the date comparison or date overlap functions is used, then the aforementioned null date
processing does not apply. In the context of these functions, these date assumptions are considered invalid
for the purposes of the function.
For more information, see the details for the following functions:
Example Dates
For each of the date calculation functions, you can read the example to see how the function works. For the
examples that use fiscal period information, assume the following fiscal period structure:
Description: Adds calendar years, months, days, hours, or minutes to a given date.
Input:
• Date
• Value—An offset amount
• Unit of Time (Days, Hours, Minutes, Months, Quarters, Seconds, Weeks, Years)
Note
This function returns the End Of Time constant (1/1/2200) if the input date is null.
Example: Give a sales representative extra credit for a transaction if the transaction’s compensation date falls
within three months of the position assignment’s start date.
Formula: Add Time to Date [Date (Position Processing Start Date (true), Offset(3), Unit of Time (Months)]
Use the formula in the condition: Valid Transaction.Compensation Date < “qualification date.?
Description: Given a specified date, these two functions (Calendar Start Date, Calendar End Date) find the start
or end date of a specified span of calendar time. For example, the first day of a calendar month, or last day of a
calendar year.
Input:
• Date
• Period type
• Period Offset
These functions return the End Of Time constant (1/1/2200) if the input date is null and the Beginning of
Time constant (1/1/1900) if the period offset is null.
Output: The start or end date (depending on the function chosen) of the resultant span of calendar time (Date
return type).
Example: Process the rule if the first day of the calendar month (in which the participant started in the position)
is in the current period.
Formula: Calendar Start Date [Date (Position Processing Start Date), Period Type ( Months), Period Offset (0)]
Input: For the input, specify a date field, such as Credit.Compensation Date or a function that returns a date.
Also, you can enter a literal in the format mm/dd/yyyy.
Output: A string (String return type) in the format m/d/yy, HH:MM AM/PM.
Input: An integer number in the format of YYYYMMDDHHMMSS or YYYYMMDD (in the latter case, assumes
the next six digits as zero).
Note
This function returns the End Of Time constant (1/1/2200) if the input number is null.
Description: Converts a text string to date object. The text string should be in the format appropriate for the
current locale (different date and time formats are used in different locales).
For example, if an English (United States) locale is used, the string must be in either of the following formats:
If the date stored as a string is not exactly in the format of the current locale, the system generates an error
when you run the calculation.
Input: String
Note
This function returns the End Of Time constant (1/1/2200) if the input date is null.
Output: A date in the format of the current locale (Date return type)
Example: With the current locale set to English (United States), the system converts a text string input of
02/09/07 3:26 pm to an output date of Feb 09 2007 3:26 pm.
• Period Type
• Period Offset
• Start Date or End Date
21.5.8 Fiscal Period Start Date and Fiscal Period End Date
Description: Given a specified date, these two functions find the start or end date of the fiscal period in which
the date exists.
Input:
• Date
• Period Type
• Period Offset
When you specify an offset, be sure that the fiscal calendar has defined the period that you offset to;
otherwise the sytsem generates an error.
Note
These functions return the End of Time constant (1/1/2200) if the input date is null.
Output: The start or end date (depending on the function chosen) of the resultant fiscal period (Date return
type).
Example: Process the rule for the next four periods, starting with the position assignment’s start date for
credit.
Formula: “Date to begin policy?? = Fiscal Period Start Date [Fiscal Period Start Date (Position Credit Start
Date) Period Type (month) offset (3)]
“Date to end policy?? = Fiscal Period End Date [Date (Position Credit Start Date) Period Type (month) Offset
(3)]
Input:
• Start Date
• End Date
• Unit of Time
• Absolute? Use the absolute value of the result (t/f). Absolute value ignores whether or not a value is
negative. If false and end date is before start date, the system returns a negative value.
Note
This function returns a zero if either the Start Date or End Date is null.
Output: A quantity of time (Return type = quantity), measured in the specified units. This function rounds up
when your date calculation spans more than one full unit of time.
Example: Pay one rate or amount if a delivery was made within ten minutes of a target time, another if it was
within 30 minutes, and another if more than 30 minutes (within = before or after target).
Formula: Measure Time Between Two Dates [Start Date (Transaction.Comp Date), End Date
(Transaction.AcctDate), Unit of Time(Minutes), Absolute? (true)]
• If both the Second Start Date and (First) Start date are null, or the Second End Date and (First) End date
are null, the function returns zero.
• If either the Second Start Date or (First) Start Date are null, the BOT constant (1/1/1900) is substituted for
the null date.
• If either the Second End Date or the (First) End Date are null, the EOT constant (1/1/2200) is substituted
for the null date.
Input:
• Start Date and End Date—Dates for time span #1. The (First) Start Date must be earlier than Second Start
Date, and (First) End Date must be earlier than Second End Date.
• Second Start Date and Second End Date—Dates for time span #2
• Unit of time
Output: A quantity of time, measured in the specified units (Quantity return type)
Example: Calculate the number of days a participant has been employed so far (as of the end of the month) for
the current year.
Formula: Measure Time Overlap ((First Start Date (Position Processing Start Date (true)), (First End Date
(Position Processing End Date (true))), ((Second Start Date (Fiscal Date (year, 0, Start Date)), Second End
Date (Fiscal Date (Month, 0, End Date,)), Unit of time (Days)]
• If either the (First) Start Date or (First) End Date, the function returns zero.
• If the Second Start Date is null, the BOT constant (1/1/1900) is substituted for the null date.
• If the Second End Date is null, the EOT constant (1/1/2200) is substituted for the null date.
• If both the Second Start Date and Second End Date are null, the BOT constant (1/1/1900) is substituted
for the null dates.
Input:
• (First) Start Date and (First) End Date—Dates for time span #1. The (First) Start Date must be earlier than
Second Start Date, and (First) End Date must be earlier than Second End Date.
• Second Start Date and Second End Date—Dates for time span #2
• Period Type
• Include Partial Periods?
Output: A percentage amount, measured in the specified units. (Percentage return type)
Example: Prorate a value based on the percentage of time worked during the current quarter (period),
measured in hours.
Description: Measures the number of fiscal periods that two dates span. This counts the number of periods
away the dates are from each other, not how many whole periods.
Two dates in the same period are a single, partial period (if include partial periods is true). If the dates are the
same, then the number of periods spanned is zero. The following figure shows an example of how this function
calculates the number of periods between two dates.
Input:
• Start Date
• End Date
• Period Type
• Include Partial Periods?
• Absolute?—Indicates whether or not to use the absolute value
Note
This function does not work if any of the supplied dates are null. If any of the supplied dates to this function
are null, the system generates an error message and returns a result of zero.
Note
This function returns a zero if either the Start Date or End Date is null.
Output: The number of periods measured in the specified period type (Quantity return type)
Formula: Measure Periods Between Dates [Start Date (Fiscal Date (year, 0, Start Date)), End Date (Fiscal Date
(year, 0, End Date)) Period Type (quarter), Include Partial Periods? (false), Absolute? (true)]
Description: Measures the number of fiscal periods that one set of dates overlaps another set of dates.
It is common and acceptable for a position assignment’s end date to be null (not specified), as long as the
position assignment is active for all dates after the start date. If input parameters contain null dates, this
function works as follows:
• If both the Second Start Date and (First) Start date are null, or the Second End Date and (First) End date
are null, the function returns zero.
• If either the Second Start Date or (First) Start Date are null, the BOT constant (1/1/1900) is substituted for
the null date.
Input:
• Start Date and End Date—Dates for time span #1. The (First) Start Date must be earlier than Second Start
Date, and (First) End Date must be earlier than Second End Date.
• Second Start Date and Second End Date—Dates for time span #2
• Period Type
• Include Partial Periods?
Output: A quantity, measured in the specified period type (Integer return type)
Note
This function does not work if any of the supplied dates are null. If any of the supplied dates to this function
are null, the system generates an error message and returns a result of zero.
Example: Calculate the number of entire fiscal periods that the participant has been assigned to a position
(since the beginning of the fiscal year through the end of the current period).
Formula: Measure Period Overlap [Start date (Position Processing Start Date), End Date (Position Processing
End Date), Second Start Date (FiscalDate (year, 0, Start Date)), Second End Date (Fiscal Date (month, 0, End
Date)), Period Type (month), Include Partial Periods? (false)]
Description: Measures the percentage of the specified fiscal period that a given set of dates overlaps another
set of dates. It is common and acceptable for a position assignment’s end date to be null (not specified), as
long as the position assignment is active for all dates after the start date. If input parameters contain null dates,
this function works as follows:
• If either the (First) Start Date or (First) End Date, the function returns zero.
• If the Second Start Date is null, the BOT constant (1/1/1900) is substituted for the null date.
• If the Second End Date is null, the EOT constant (1/1/2200) is substituted for the null date.
• If both the Second Start Date and Second End Date are null, the BOT constant (1/1/1900) is substituted
for the null dates.
Input:
• Start Date and End Date—A start and end date for time span #1.The (First) Start Date must be earlier than
Second Start Date, and (First) End Date must be earlier than Second End Date.
• Second Start Date and Second End Date—A start and end date for time span #2
• Period type
• Whether or not to include partial periods
Note
This function does not work if any of the supplied dates are null. If any of the supplied dates to this function
are null, the system generates an error message and returns a result of zero.
Example: Prorate something based on the percentage of full months (periods) worked during the current
quarter (as of the current month), measured in days.
Formula: “Prorate percentage?? = Measure Period Overlap Percentage [((Position Processing Start Date
(true)), (Positions Processing End Date (true)), (Fiscal Date (quarter, 0, Start Date)), (Fiscal Date (month,
0, End Date)), month, false)
Description: This function returns the date that a calculation run started.
Use the ranking functions when writing secondary measurement, incentive or deposit rules.
The functions calculate the rank of the given measurement or incentive for the current position in the
population.
Ranking Functions
Total Population for Ranked Measurement Ranking function available in secondary measurement, in-
centive and deposit rules which returns the size of the rank-
ing population for the given measurement.
Total Population for Ranked Incentive Ranking function available in incentive and deposit rules
which returns the size of the ranking population for the given
incentive.
The following table contains the details that you input into the ranking functions.
1st GA Index for Grouping Required parameter which specifies the first generic attrib-
ute index in the position that can be used to group the popu-
lation for ranking.
2nd GA Index for Grouping Optional parameter which specifies additional generic attrib-
ute index in the position that can be used to group the popu-
lation for ranking.
3rd GA Index for Grouping Optional parameter which specifies additional generic attrib-
ute index in the position that can be used to group the popu-
lation for ranking.
GB Index for Filtering Optional parameter which specifies the generic boolean in-
dex in the position that can be used to filtering out position
in the ranking. If set, all the position with ”r;false” or null
value in the specified generic boolean index will be excluded
from the ranking.
Use dense ranking? The required parameter which specifies the tie option. If
true, the next rank after the tie will be the next consecutive
(Only in "Rank by..." functions)
number. If false, the next rank after the tier will be the next
consecutive number plus number of tie. Example: if we have
to rank the values $300, $200, $200, $100, it will be ranked
as 1, 2, 2, 3.
Use descending ranking? The required parameter which specifies the sorting order
for the rank. If true, the measurement/incentive with the
(Only in "Rank by..." functions)
highest value will be ranked as number one. If set to false,
lowest value will be ranked as number one.
Description: Use these functions to determine the rank of the given measurement or incentive for the current
position in the population.
• Measurement or Incentive
• 1st GA Index for Grouping
• 2nd GA Index for Grouping
• 3rd GA Index for Grouping
• GB Index for Filtering
• Use dense ranking?
• Use descending ranking?
Example:
Position 1 4
Position 2 3
Position 3 2
Position 4 1
Position 5 2
Position 6 -
Position 7 1
Position 8 -
Position 9 3
Position 10 2
Position 11 1
Position 12 3
Position 13 2
Position 14 1
Description: Use these functions to determine the size of the ranking population for the given measurement or
incentive.
Input:
• Measurement or Incentive
• 1st GA Index for Grouping
• 2nd GA Index for Grouping
• 3rd GA Index for Grouping
• GB Index for Filtering
Output: A quantity value, which corresponds to the size of the ranking population.
Example:
Total Population for Ranked Incentive function is going to produce the following result:
Position 1 4
Position 2 4
Position 3 4
Position 4 4
Position 5 3
Position 6 -
Position 7 3
Position 8 -
Position 9 3
Position 10 2
Position 11 2
Position 12 3
Position 13 3
Position 14 3
Description: New rules are added to accommodate customer’s needs like Pro-ration functions. Use the
following data field functions to calculate the number of days within a period or date range that a position
assignment is effective for calculation processing or credit allocation. If a period type is specified, the system
looks within the period type in which the date of the calculation run occurs.
If the position has multiple effective versions, the system looks for the combination of position and participant
(the position assignment) that is effective during the current period and looks at all effective versions of the
position for that position assignment.
Position processing effective 1/1/08 to 4/30/08: Mary assigned to Sales Rep Position
Position processing effective again 9/1/08 to End Of Time: Mary assigned to Sales Rep Position
For this type of situation, the system looks for not just the current version of the position assignment, but also
previous versions of the same position assignment. In this case, if a rule used the Position.Processing Days in
Period (period type=year) function, the system would return the number of days between 1/1/08 to 4/30/08
and also the days from 9/1/08 to 12/31/08.
Input: Depending on the function that you are using, specify a period type or a start date and end date. (To
specify a period type, first enter "period type," and then specify the required period type.)
Example: A bonus eligibility condition could be that participants must be assigned to their position (and
eligible for processing) for at least 80 days in the quarter. You could use the Position.Processing Days in Period
function to determine if the position assignment is eligible for the bonus.
Related Articles
Description: Three meta functions are provided to support the proration scenario:
Meta function on participant object returns the startDate of the position assignment. If there are multiple
versions of the position assigned to the participant, it returns the startdate on the first version of the position.
For example:
On 1/1, Mary was assigned the DM position, on 1/10, there is a change on the target Compensation on DM
position, so a new version of the position was created. On 1/15, Mary was promoted on a new position and John
was assigned with the DM position. Also Mary's on DM Position's processingDate was extended to End of year.
Mary
When calculation was running on December, we would have three BusinessNode as follow:
1. BN1(DM, Mary)
2. BN2(DM, Jonh)
3. BN3(VP, Mary)
Meta function on participant object returns the endDate of the position assignment. If there are multiple
versions of the position assigned to the participant, it returns the enddate on the last version of the position.
For example:
On 1/1, Mary was assigned the DM position, on 1/10, there is a change on the targetCompensation on DM
position, so a new version of the position was created. On 1/15, Mary was promoted on a new position and John
was assigned with the DM position. Also Mary's on DM Position's processingDate was extended to End of year.
Mary
When calculation was running on December, we would have three BusinessNode as follow:
1. BN1(DM, Mary)
2. BN2(DM, Jonh)
3. BN3(VP, Mary)
Calculates the percentage of days the participant was in the current position for the current processing period.
To implement proration, the above function will be used in conjunction with the Date function such as Measure
Time Overlap Percentage.
BN1.v1.targetComp = $100k
BN1.v2.targetComp = $110k
BN2.targetComp = $150k
BN3.targetComp = $200k
BN4.targetComp = $500k
Annual Bonus:
Query Functions
The query functions allow you to execute queries during the pipeline run, instead of writing custom store
procedures. The data retrieved from these queries can be further used by the professional services team to
create a custom SQL query to extend the functionality of the product.
The following parameters are the same for all query functions:
See Example Usage: Query for Value [page 303] for more details.
Note
When writing the SQL query for the Query Function, make sure you insert a space in between each token of
the SQL because the SQL parsing uses the space as the delimiter to detect the tokens.
For example, the following SQL will not work because there is no space before the token $positionName:
Limitations
• QueryFunction will not work if you are querying Secondary Measurement, Incentive, Commission, or
Deposit results for different positions or across positions because different positions can be processed in
different process workers, so the results may not be calculated when the QueryFunction is evaluated.
• When querying Secondary Measurement, Incentive, Commission, or Deposit for the same position, you
must ensure that the result you are querying is already evaluated when the query is executing. This can be
done by adding a reference to the Output of the Rule in the Rule where you have the QueryFunction. This
ensures that the Pipeline evaluates the Rule that the QueryFunction depends on first.
Description: Use this query in the compensation rule or formula. This function runs the query specified in the
first parameter and returns back a Value object (a double value with a unitType).
The implementation of this query is specified in the CS_PlugInQuery table by the professional services team.
Context Variables: The following context variables can be used to reference values in the current processing
context:
Parameter Variables: The following parameter variables can be used as values in the input parameter of the
query function:
• $1 - value of the first String parameter in the Query function. (first String parameter)
• $2 - value of the second String parameter in the Query function (second String parameter)
• $3 - value of the first Value parameter in the Query function (first Value parameter)
• $4 - value of the second Value parameter in the Query function (second Value parameter)
• $5 - value of the first Boolean parameter in the Query function (first Boolean parameter)
• $6 - value of the second Boolean parameter in the Query function (second Boolean parameter)
• $7 - value of the first Date parameter in the Query function (first Date parameter)
• $8 - value of the second Date parameter in the Query function (second Date parameter)
Formula: Query for Value (<query name>, <string parameter>, <string parameter>, <value parameter>, <value
parameter>, <boolean parameter> , <boolean parameter>, <date parameter>, <date parameter>, <default
values>)
• Only the SELECT SQL function is allowed, any other type of SQL like INSERT, UPDATE, DELETE will fail.
• The query has to finish within 5 seconds, or it will be canceled. (The query will be terminated and the
pipeline will continue.)
• Query has to project (i.e. select) two columns, first column is the value and second column is the
unitTypeForValue (Example: select value, unitTypeForValue from CS_SalesTransaction).
• If the query returns multiple rows, only the first row's value will be returned.
• Avoid using a query that aggregates results for Secondary Measurements, Incentives, and Deposits for
the current period. For example, sum of the Secondary Measurement value for the current period. This
is because the result will be calculated with multiple workers and some workers may not have the
results calculated when the query was executed. If there is no other option and you have to use it, a
possible workaround is to put a Ranking function on this result in the Rule. For example, put a "Rank By
Measurement()"" function in the Generic Value field. This will provide an indication to the rule engine that it
needs to synchronize this result across all the workers.
Related Information
Description: Use this query in the compensation rule or formula. This function runs the given query in the first
parameter and returns a String object.
Input: Query from the first parameter. Input parameters are similar to the Query for Value [page 300] function.
Formula: Query for String (<query name>, <string parameter>, <string parameter>, <value parameter>,
<value parameter>, <value parameter>, <boolean parameter>, <boolean parameter>, <date parameter>,
<date parameter>, <default value>)
• Only "SELECT" SQL is allowed, any other type of SQL like "INSERT, UPDATE, DELETE" will fail.
• The query has to finish within 5 seconds, or it will be canceled. (The query will be terminated and the
pipeline will continue.)
• Query has to project (i.e. select) one column of type varchar2 (Example: select productId from
CS_SalesTransaction where salesTransactionSeq = $salesTransactionSeq).
• If the query returns multiple rows, only the first row's value will be returned.
Related Information
Description: Use this query in the compensation rule or formula. This function runs the given query in the first
parameter and returns a Boolean object.
Input: Query from the first parameter. Input parameters are similar to the Query for Value [page 300] function.
Formula: Query for Boolean (<query name>, <string parameter>, <string parameter>, <value parameter>,
<value parameter>, <boolean parameter> , <boolean parameter>, <date parameter>, <date parameter>,
<default values>)
• Only the SELECT SQL query is allowed, any other type of query such as INSERT, UPDATE, DELETE will fail.
• The query has to finish within five seconds, or it will be canceled. (The query will be terminated and the
pipeline will continue.)
Related Information
Description: Use this query in the compensation rule or formula. This function runs the given query in the first
parameter and returns a Date object.
Input: Query from the first parameter. Input parameters are similar to the Query for Value [page 300] function.
Formula: Query for Date(<query name>, <string parameter>, <string parameter>, <value parameter>,<value
parameter>, <boolean parameter> , <boolean parameter>, <date parameter>, <date parameter>, <default
values>)
• Only the SELECT SQL query is allowed, any other type of query such as INSERT, UPDATE, DELETE will fail.
• The query has to finish within 5 seconds, or it will be canceled. (The query will be terminated and the
pipeline will continue.)
• Query has to project (i.e. select) one column of type Date (Example: select compensationDate from
CS_SalesTransaction where salesTransactionSeq = $salesTransactionSeq).
• If the query returns multiple rows, only the first row will be returned.
Related Information
This topic explains using the Query for Value function to implement the logic to sum all the prior period sales
transaction values for the current sales order for tenant TNTA.
1. Add the query to the CS_PlugInQuery table. Login as the TNTAEXT user and issue the following insert
statement:
2. Use the Query function in the Credit Rule and specify the name of the query populated in step 1:
Note
A default value of $0.00 (last parameter) is put to handle the case when the query doesn't return any
result. $0.00 will be returned in this case.
3. During the pipeline run, the query specified in the query function is executed. It returns the value and use in
the Credit rule evaluation:
Sample Code
ACTIONS
My Credit= RESULT( DIRECT_TRANSACTION_CREDIT_ALLGAs )
queryForValue
Sum Prior Period Transactions In Order
null
null
null
null
null
null
null
null
0 USD
JDBC: select sum(value), unitTypeForValue from CS_SalesTransaction where
salesOrderSeq = 14355223812243459 and compensationDate < to_date('February
1, 2006 12:00:00 AM', 'Month dd, yyyy HH:MI:SS AM' ) group by
unitTypeForValue
= RESULT( 200 USD )
Best Practices:
• Use the context variable (Example: $periodStartDate, $periodEndDate) instead of the parameter variable
($1 to $8), if possible. This will perform better because the query doesn't need to process the input
parameter. It also makes your query less dependent on the user provided value which can be changed.
• Provide a default value for your function so that the log file does not generate warning messages for null
values.
• If you have a complex query that needs to join many tables or a query with large volume of data, use a
stage hook to pre-generate the result in bulk and populate it in the EXT table and then use the Query
Related Information
You can use the Groovy Function to build a Custom Query Function. This feature helps build logic for input
parameters, for example, formatting input data.
Note
Currently, the usage of Groovy Function is supported only for importing java.text. packages.
An example of how to use the "Query for Value" function to implement the logic to "sum all the prior period sale
transaction value for current sales order" for tenant TNTA is illustrated below.
1. Add the query to the CS_PlugInQuery table. Log in as the TNTAEXT user and issue the following insert
statement:
Sample Code
The groovy function must have a main method with the signature def main($1, $2, $3, $4, $5, $6, $7, $8,
$9)
Sample Code
import java.text.*
def main($1, $2, $3, $4, $5, $6, $7, $8, $9) {
DecimalFormat df = new DecimalFormat("#,###.00");
if ($1 == 'TEXT') {
if ($3[0] == null){
return null
} else {
def s = $3[0].toString()
return s.substring(0, s.indexOf('.'))
}
} else if ($1 == 'DATE'){
if ($7 == null){
return '01/01/2200'
} else {
SimpleDateFormat sm = new SimpleDateFormat('MM/dd/yy')
return sm.format($7)
}
} else if ($1 == 'QUANTITY'){
if ($3[0] == null){
return '0.00'
} else {
return df.format($3[0].setScale(2, java.math.RoundingMode.CEILING))
}
} else if ($1 == 'MONEY'){
if ($3[0] == null){
return '$0.00'
} else {
return '$' + df.format($3[0].setScale(2,
java.math.RoundingMode.CEILING))
}
} else if ($1 == 'PERCENT'){
if ($3[0] == null){
return '0.00%'
} else {
return $3[0].multiply(new BigDecimal(100)).setScale(2,
java.math.RoundingMode.CEILING).toString()+'%'
}
} else {
return ''
You can add this function to the CS_PlugInQuery with the insert SQL as follows:
Sample Code
2. Use the Query function in the Credit Rule and specify the name of the query as shown in Step 1:
In this example, a default value of $0.00 (last parameter) is used to handle the query when it doesn't
return any result, so it will now return the value $0.00. SalesTransaction.compDate is also used as an input
parameter and is used in the query as the parameter variable $3. As a good practice, it is recommended to
use the known context variable.
3. During the pipeline run, the query specified in the "Query function" will be executed and it will return the
value and use it in the Credit rule evaluation:
Sample Code
ACTIONS
My Credit= RESULT( DIRECT_TRANSACTION_CREDIT_ALLGAs )
queryForValue
Sum Prior Period Transactions In Order
null
null
null
null
null
null
null
null
0 USD
JDBC: select sum(value), unitTypeForValue from CS_SalesTransaction where
salesOrderSeq = 14355223812243459 and compensationDate < to_date('February
1, 2006 12:00:00 AM', 'Month dd, yyyy HH:MI:SS AM' ) group by
unitTypeForValue
= RESULT( 200 USD )
Best Practice
• Use the context variable (Example: $periodStartDate, $periodEndDate) instead of the parameter variable
($1 to $8) if possible. This will perform better because it doesn't need to process the input parameter. It will
also make your query less dependent on the user provided value, which can be changed.
• Provide default value for your function to reduce the warnings in the log file for null value.
• If you have a complex query that needs to join many tables or query large volumes of data, use a stage
hook to pregenerate the result in bulk and populate it in the EXT table and then use the Query function to
query the result from that table. The query runs when processing each SalesTransaction for each Rule in
Allocate stage and will improve the performance significantly.
Query Functions can provide some extended functionality that the system does not otherwise provide. See
Query Functions [page 299] for details.
You run the calculation to create results data typically at least once a period. You do not see results data until
you have run the calculation at least once.
Navigate to Review Calculations > Calculations to access the Calculations workspace. See the Administrative
Tasks documentation for information on running calculations. In the Calculations workspace, transaction data
(orders and transactions) and results data (credits, measurements, incentives, commissions, deposits, and
payments) are also accessible.
Related Articles
In tree view, the Orders, Transactions, and Credits workspaces are similar. In all three, you can view the
relationships between orders, transactions, and credits. You can expand the tree view to see the transactions
that belong to each order, and the credits that are associated with each transaction. All objects - imported,
manually created, or, in the case of credits, created by TrueComp - are displayed.
Note
If you do not have read permissions to Orders, the tree view is not available from the toolbar in the
Transactions or Credits workspaces.
In the Transactions and Credits workspaces, objects can also be viewed in table view. The Orders workspace
does not have a table view. If you search for a subset of the records (for example, all credits over a certain
value), the tree view shows only the objects related to the ones that satisfy the query. For example, you would
see only the orders and transactions that had credits over a certain value.
• To create a transaction related to a specific order, select the order and choose New.
• To create a credit related to a specific transaction, select the transaction and choose New.
• To create an order, deselect all objects using Ctrl + left-click , and then choose New.
Orders are used to group transactions, and they are the basis of order credits. Orders can be imported with
transactions.
Related Articles
Orders Summary
The Summary pane in the Orders workspace can be viewed only in list view.
Order Deatils
The detail pane of the Orders workspace can contain General Information and Transactions tab.
The Custom attributes tab is displayed depending on whether or not the administrator has enabled custom
attributes for orders
You can create an order from the Orders and Transactions workspaces.
Procedure
Note
You can move a transaction to an order by modifying the transaction’s order ID.
Note
After an order is either imported or created in the system, you cannot delete it. You can delete manual
transactions, however.
You can find transaction and credit data related to one or more orders by selecting the appropriate object
option from the Related pane.
Procedure
Transactions are the basis for direct and rolled transaction credits, which are allocated to position assignments.
Transactions are usually imported into the system from an external system, but can also be manually entered.
Transactions and their associated orders can be imported.
Related Articles
Transaction Summary
You can view transactions and create manual transactions. (A manual transaction is a transaction created in
the system and is not imported from an outside source.) . You can also modify existing transactions. To modify
a transaction is to change a specific field that does not affect the transaction’s value.
Transaction Details
You can edit details in the General Information tab. You can also modify or adjust one or more existing
transactions. To modify a transaction is to change a specific field that does not affect the transaction’s values.
From the Addresses tab, you can enter and modify Billing, Shipping, and Other Addresses.
From the Participants Associated to the Transaction tab, you can optionally specify information related to the
position that should receive credit for the transaction.
The Custom Attributes tab is displayed depending on whether or not the administrator has enabled custom
attributes for transactions.
If you do not import transactions, you can create manual transactions. You can also create manual transactions
if you need to create placeholders for credits.
Field Description
Order (Required) The order identification number to which the created transaction belongs.
Line (Required) The line number to which the created transaction belongs.
Event Type (Required) Choose one of these user-defined event types to describe the kind of event that
precipitated the transaction. For example, booking or shipping.
Alt Order ID The alternate order ID. This ID can be used to track third-party sales order numbers.
Compensation (Required) The date when the transaction is effective for processing. You can enter a date or select
Date a date using the Calendar field button.
Acct Date The date the transaction occurred. You can enter a date or select a date using the Calendar field
button. The system defaults this to the current date.
Channel The name of the channel through which the product was sold.
Reason Code A code that indicates the reason for the credit. Reason codes must be created by the administra-
tor.
Origin Type (Read-only) The system sets this field to report whether the deposit was calculated, imported, or
manually created.
Business Units (Read-only) The system automatically sets the business unit on the transaction to match the
business unit assignment on the order.
Product ID The product’s identification number or string. (Currently, you must enter this information man-
ually.)
Product Name The name of the product. (Currently, you must enter this information manually.)
Num Units The number of product units sold. You can enter a decimal value if the scale of your quantity unit
type is not zero. A decimal value might be required if two salespeople working together on a sale,
must be credited for the sale of half (0.5) a unit.
Unit Value The value of each product unit. Choose the Unit Type button to select a unit type. The options are
currency, percent, quantity, and integer.
Value (Required) The value of the transaction. Choose the Unit Type button to select a unit type. The
options are currency, percent, quantity, and integer.
Preadjusted (Read-only) The amount of the transaction before any adjustments have been made. The system
populates this with the initial transaction’s value.
Native Amount If the value is in another currency, you can enter that amount here. If more than one currency unit
type has been defined, choose the Unit Type button to select a unit type.
Native Currency (Read-only) The currency value for the Native Amt.
Data Source Indicates where the transaction originated from. For example, from the third-party order entry
system.
Runnable Whether or not the transaction is available to be processed by the calculation. The system auto-
matically marks a new transactions as runnable.
4. (Optional) Choose the Addresses tab and enter the address details: You can search for addresses
based on the above address fields. (Optional) To specify payee preassignments, click the Payee Pre-
Assignment(Participants Associated to the Transaction) tab.
Billing (click Add Address to display the Billing fields) The customer’s billing address.
Shipping (click Add Address to display the Shipping fields) The customer’s shipping address.
Other (click Add Address to display the Other To fields) If applicable, another relevant customer address.
5. Choose Save.
Note
• If the administrator has enabled custom attributes for transactions, custom attributes are visible in
general information tab
• If the administrator has enabled reporting attributes for the Transactions workspace, Reporting
Attributes section is visible in the general information tab, to enter values in those fields.
Payee pre-assignment is an optional feature. If your transactions are pre-assigned to participants (payees),
positions, titles, or a combination of the three, you can create credit rules to filter transactions based on their
pre-assignment.
Additionally, if you have enabled generic attributes on transaction payee pre-assignments, you can use these
generic attributes in direct transaction credit rules. These generic attributes can be used, for example, to
specify a credit split for a shared transaction between one or more positions where each position is assigned its
own specific rate for the split.
Procedure
Note
If the message ”r; Please enter a compensation date” displays when you are specifying information,
you must enter a compensation date for the associated transaction in the Transaction tab. You cannot
add payee pre-assignment information without a compensation date.
For example, if the credit for a transaction should be split across two or more positions, you can add an
indexed payee pre-assignment record for each position then specify the percentage split for each position
in a designated generic number field on each record.
7. Repeat Steps 5 and 6 to add additional indexes.
8. Choose Save.
To modify a transaction is to change a specific field that does not affect the transaction’s value. For example,
you can modify the comments on a transaction. Modifying a transaction sets it as runnable.
Procedure
• Order
• Line
• Subline
• Origin
• Value (to change this, you must select Adjust)
• Preadjusted Value
• Business Unit
When you modify any of the transaction fields, the system automatically resets the transaction’s runnable
status. This allows credits and other results data from the transaction to be recalculated when you next run
the calculation. The runnable attribute has a checkbox in the Transactions detail pane; after you modify any
transaction attribute, the system checks this box.
Payee pre-assignments must be manually removed from a transaction if the position, title, or payee to which
they refer is removed. If the association is not removed, a warning is generated by the calculation.
Procedure
When you adjust a transaction, the system creates an adjustment entry. If you make more than one adjustment
to a transaction, a separate record is created for each adjustment and the system updates the transaction
value accordingly. You might want to adjust a transaction if you find that an imported or manual transaction
has an error, such as an incorrect amount. When you adjust a transaction, the system automatically marks the
transaction as runnable so that it gets processed in the next calculation run.
Procedure
Note
If you adjust the same transaction multiple times, do not mix adjustment types. For example, do not
switch between Adjust by and Adjust to types for the same transaction.
You can copy any of the transactions shown in the summary pane and change any of the detail information
about the copy. Most commonly, you change the order and line numbers to copy the transaction to a different
order.
Procedure
You can find data related to one or more selected transactions by selecting the appropriate object option from
the Related pane.
Procedure
• Credits—returns the credits referring to (or generated by) the selected transaction.
• Commissions—returns the commissions referring to (or generated by) the selected transaction.
• Orders—returns the orders referring to the selected transaction.
Note
To search for pre-assigned transactions, use the Advanced Search window and search for Transaction.
Transaction Payee Pre-Assignments.* fields. These are Comp Date, Order, Payee ID, Position Name, Title
Name, and Generic Attributes (if enabled).
Credit indicates an allocation of the value of a sales transaction or an entire order to a position assignment.
Credits are normally generated by credit rules, or they can be imported along with transaction data, or
manually entered in the system. You can transfer, modify, copy, or adjust credits from the Credits workspace.
When you create, modify, or adjust a credit, the system automatically marks its related transaction as
"runnable." When you next run the calculation in Incremental mode, the system reprocesses the transaction
and recalculates all credits related to the transaction including the modified or adjusted credit. In addition, you
can copy and transfer credits from one participant to another.
Related Articles
The Custom attributes tab is displayed depending on whether or not the administrator has enabled custom
attributes for credits.
Credits Summary
You can view credits and create manual credits. You can transfer, modify, copy, or adjust credits from the
Credits Summary toolbar.
Credits Details
You can edit details in the General Information tab. From the Related Search icon, you can view the results data
that contributed to a selected credit, as well as results data to which the credit contributed. For example, in the
Source area on the left, the name of the source credit - along with the associated position, payee, and period
name - is displayed with the credit value. In the Contributing To area on the right, the names of the credits
contributed to and their values are displayed.
The Adjustments tab displays adjustments that have been made to a selected credit. For example, if the
adjustment was an adjustment to a specific value, the system displays adjust To in the Adjustment Type
column in the detail pane. (If the Adjustment Type column is not displayed, use the scroll bar in the detail
pane.) If the adjustment was by a percentage or a value, the system displays adjustBy.
Note
When you create the credit, it is updated in the system. However, the system does not process the credit
until the next time you run the calculation.
Prerequisites
When creating a manual credit for a position assignment, the following must be true:
If you create a manual credit based on a prior period transaction, you should create it as a held credit with a
release date of the current period. A prior period credit would not be processed unless you run the period in
which its compensation date occurs. For non-held credits, this is the same as the transaction’s compensation
date. For held credits, this is the same as the release date.
Procedure
Period (Required) The period that contains the credit; use the
drop-down menus to select the type of calendar (on the
left) and the period (on the right). If the default period was
selected, this defaults to the current period. If a date was
selected, the period is empty.
Position (Required) The position that receives the credit. You can
assign the credit only to position assignments that are ef-
fective at the time of the credit’s compensation date. Only
positions that are associated with the same processing
unit as the transaction can be selected.
Title The title associated with the position that receives the
credit.
Value (Required) The amount of the credit. You can choose the
Unit Type field to select a unit type.
Create Date For manual credits, defaults to the current date and is
not editable. For calculated credits, it indicates when the
credit was created by the calculation.
Credit Type Select a credit type to indicate the source of the credit.
The default credit types are commission, quota, order, and
revenue, but additional credit types can be created.
Preadjusted Value (Required) The credit’s value before any applicable adjust-
ments or modifications. The system completes this field.
Compensation Date The system completes this field. This is the credit’s com-
pensation date. This date determines in what period the
credit is processed. For a manual unheld credit, it is the
same date as the transaction’s Compensation Date. For a
manual held credit, this date is the same as the Release
Date.
Origin Type The system sets this field to report whether the credit was
calculated, imported, or manually created.
Rule Reports the associated credit rule, if any (displays for cal-
culated credits only).
Ever Held Indicates whether the credit should be held and works
with the Release Date.
Release Date If Ever Held is enabled, you can specify a release date by
entering a date or selecting a date using the Calendar field
button. If the credit should be held indefinitely, the release
date is set to End Of Time.
This field can be used to find credits that were held, even
after they were released.
Is Rollable Check the box to specify that the credit can be rolled to
another position assignment.
Roll Date The date used to look up roll relationships in the relation-
ships hierarchy. This is usually the compensation date of
the associated transaction. You can enter a date or select
a date using the Calendar field button.
Reason Code A code that indicates the reason for the credit. Reason
codes must be created by the administrator.
4. Choose Save. The system saves the manual credit and the next calculation run processes it.
You can transfer one or more transaction-level credits between positions assigned to participants. For example,
you might need to do this if one salesperson sold a product in another salesperson’s territory, and you must
manually give part of the credit for the sale to the original salesperson.
Note
You cannot transfer order-level credits. An order-level credit is a credit that is generated by a credit rule
that has a source of order.
The system facilitates transferring credits from one participant to another by establishing audit trails for credit
transfers. Each time you transfer a percentage or value amount of a credit to a participant, the system creates
as an adjustment to the existing credit. The transferred item is stored as a new, manual credit. Transferring a
credit causes the transactions associated with both the original credit and the new credit to be considered as
runnable.
Note
When you transfer the credit, the system updates the repository. However, the system does not process the
transferred credit until the next time you run the calculation.
Operator Description
Amount
(Required) Enter a number, and click the Unit Type field
button to specify whether a percentage of compensation
or an exact monetary amount to compensation should be
transferred. For example, to transfer 10% of $100 credit,
enter 10 and select the percent unit type.
To
(Required) The name of the position or participant to
whom the credit should be transferred.
Period
Choose the payout period for the credit to transfer.
Credit Type
(Required) Select a credit type to indicate the type for the
transfer. The default credit types are commission, quota,
order, and revenue, but additional credit types can be cre-
ated.
Reason Code
A code that indicates the reason for the transfer. Reason
codes must be created by the administrator.
Rollable
Check the box to specify that the credit can be rolled to
another position assignment.
Roll Date
If you specify Rollable, select the date to roll the credit.
7. (Optional) Choose Preview. The Preview Transfer dialog displays the original payee, transfer to payee, and
transfer value.
8. If the amount is correct, choose Accept then proceed to Step 9.
9. Choose OK in the Adjust dialog.
When you modify a credit, you change the record of the existing credit. The fields you can modify are limited
based whether the credit was calculated, imported, or manually entered.
Note
When you modify the credit, the system updates the repository. However, the system does not process the
credit until the next time you run the calculation
Procedure
Field Description
Name A unique name for the credit. Only editable for manual and
imported credits.
Credit Type Indicates the source of the credit. The default credit types
are commission, quota, order, and revenue, but additional
credit types can be created. Only editable for manual and
imported credits.
Ever Held Indicates whether the credit should be held and works
with the Release Date. This option can be modified for
imported and manual credits, but not calculated credits.
Release Date If Ever Held is enabled, you can specify a release date
by entering a date or selecting a date using the Calendar
field button. If the credit should be held indefinitely, leave
release date blank. The release date is set to End Of Time.
Roll Date If Is Rollable Credit is enable, this is the date the system
uses to look up roll relationships in the relationships hier-
archy. This is usually the compensation date of the associ-
ated transaction.
Reason Code (Optional) A code that indicates the reason for the credit.
Reason codes must be created by the administrator.
4. If the administrator has enabled custom attributes for credits, the Custom attributes sections is visible in
general information tab to edit values in those fields.
5. Choose Save.
When you adjust credits, the system creates an adjustment entry. If you make more than one adjustment to a
credit, a separate record is created for each adjustment and the system updates the credit value accordingly.
Note
When you adjust the credit, the system updates the repository. However, the system does not process the
adjusted credit until the next time you run the calculation
If you are adjusting a calculated credit and Custom Processing Dates are enabled for the position that the
credit is to be applied to, the Compensation Date is compared to the Processing End Date for the Position
when you save the adjustment. In most instances, you cannot save a credit adjustment if the Processing
End Date is less than or equal to Compensation Date. However, if there is an indefinite hold on the credit,
the Compensation Date is set internally to End of Time and the credit can be saved regardless of Custom
Processing Dates for the position.
Procedure
Note
If you adjust a credit more than once, be sure that all adjustments use the same method (such as
by value or by percentage, not both). Otherwise, the system uses only the last adjustment type. For
example, if you adjust a $100 credit by $50 (adjusted credit value = $150) and then adjust the credit by
10% (theoretically, the adjusted credit value is $165), the system would process the credit during the
next calculation using only the last adjustment method (the 10% adjustment, adjusted credit value =
$110)
• (Optional) If the administrator created reason codes, you can select a code that indicates the reason
for the credit.
• (Optional) Enter text that describes the credit adjustment.
9. Choose Cancel in to close the Adjust dialog.
10. Choose Adjust to save the adjusted credit. The adjustment is processed in the next calculation run for the
period in which the credit’s compensation date occurs.
You can copy transaction-level credits shown in the summary pane and change any of the detail information
about the copy. Most commonly, you change the participant to whom the credit applies. You cannot copy
order-level credits. An order-level credit is a credit that is generated by a credit rule that has a source of order.
Copying a credit causes the transaction associated with the new credit to be considered as runnable.
When you copy credits, the system is updated immediately. However, the copied credit is not processed until
the next time you run the calculation.
Procedure
You can manually set the release date of a held credit. You can set or change the release date of a held credit
regardless of whether it is a calculated, an imported, or a manual credit. You can either indicate a specific
release date, or choose to have the credit held indefinitely. The credit is processed in the period of the release
date.
To hold a credit indefinitely, do not specify a release date. The system considers the credit compensation date
to be the End Of Time. You can also specify a release date in the credit rule that generates the credit.
Note
The calculation generates an error when it goes to process a released credit for a position or payee that is
not effective at the time that the credit is being released.
An item that is held with an offset has a release date of the end date of the applicable, offset period.
Note
For Administrators: credits that are held continue to have isHeld=1 after processing. The isHeld attribute
(the Ever Held field) indicates if the credit has been held at any point in time and if the hold is still valid, even
if the hold is not still effective (the release date is in the past).
Procedure
You can find data related to one or more credits by selecting the appropriate object option from the Related
pane. The available options and the data returned are as follows:
• If you are searching for related rules, the results are immediately retrieved and displayed in the Rules
Wizard workspace. If no results are found, the message No results found is displayed.
• If you are searching for an object other than rules, the Search For Related Objects dialog displays with the
name of the selected object substituted for the object name.
Measurements are generated by measurement rules and are based on credits or other calculations. There are
two kinds of measurement rules and hence measurements: primary and secondary.
Related Information
After you run the calculation, the Measurements workspace displays both primary and secondary named
measurements.
After you run the calculation, the Measurements workspace displays both primary and secondary named
measurements. Details are displayed in the Measurement Summary and General Information tab.
You can find data related to one or more measurements by selecting the appropriate object option from the
Related pane.
Procedure
• If you are searching for related rules, the results are immediately retrieved and displayed in the RulesWizard
workspace. If no results are found, the message “No results found” is displayed. Rule searches use
NamedQuery and don’t display a Simple Search dialog, which is why the Note above was added. All other
objects use LegalMoveDynamicQuery, which brings up the Simple Search dialog
• If you are searching for an object other than rules, the Search For Related Objects dialog displays with the
name of the selected object substituted for the object name.
An incentive is the result of comparing measurements or credits to targets. An incentive is the output of an
incentive rule, which calculates commissions or bonuses for a position assignment.
The input to each incentive rule is a measurement, another incentive, or a formula. The output of an incentive
rule is a named incentive of specific value. The incentive is available for deposit for a position assignment for a
specified period. The system compares performance measurements with targets for each position assignment
assigned to a plan. In the Reward stage of the calculation, rate tables and other formulas are applied to
the measurements. During this stage, the system uses incentive rules to calculate incentive earnings that
correspond to the performance level achieved.
Note
You can choose whether or not to include per-credit commission detail in your incentives. If you choose to
include this detail, calculation performance might be affected.
Related Articles
In the Incentives workspace, you can view incentives and objects related to those incentives.
After you run the calculation, the system displays the output of all the commission and bonus rules in the
Incentives workspace.
If the administrator has enabled custom attributes section, then the custom attributes section is visible in the
General Information tab for the incentives and you can enter and modify values for these attributes.
You can find data related to incentives by selecting the appropriate object option from the Related pane.
Procedure
• If you are searching for related rules, the results are immediately retrieved and displayed in the Rules
Wizard workspace. If no results are found, the message “No results found” is displayed. Rule searches use
NamedQuery and don’t display a Simple Search dialog, which is why the Note above was added. All other
objects use LegalMoveDynamicQuery, which brings up the Simple Search dialog.
• If you are searching for an object other than rules, the Search For Related Objects dialog displays with the
name of the selected object substituted for the object name.
A commission is a kind of incentive award that is based on credited transactions or other measurement values,
and is usually proportional to the value of the measurement. Commission rules determine commission values.
Note
The output of a commission rule is commission objects and an incentive object; the incentive object is the
aggregate value of all commissions generated by the rule.
After you run the calculation, Commissions displays the output of all commission rules in the Commissions
workspace.
The Commissions workspace is used for research and reporting purposes only.
You can find data related to one or more commissions by selecting the appropriate object option from the
Related pane.
Procedure
• If you are searching for related rules, the results are immediately retrieved and displayed in the Rules
Wizard workspace. If no results are found, the message “No results found is displayed.
• If you are searching for an object other than rules, the Search For Related Object dialog displays with the
name of the selected object substituted for the object name.
Deposits are generated by deposit rules, or they can be imported, or they can be manually entered.
Deposit rules determine how much of each kind of incentive compensation a position assignment has earned
and when the compensation can be paid. Deposits can also be imported.
Related Articles
The Custom attributes tab is displayed depending on whether or not the administrator has enabled custom
attributes for deposits.
Deposits Summary
The Deposits workspace lets you see and adjust deposits, which represent amounts to be paid to each position
assignment processed in the associated deposit rule.
Deposits Details
You can edit details in the General Information tab. From the Deposit tab you can enter and modify deposit
information, adjust deposits, and view deposit information for a deposit or deposits selected in the summary
pane.
When you adjust deposits, the system creates an adjustment entry. If you make more than one adjustment
to a deposit, a separate record is created for each adjustment and the system updates the deposit value
accordingly.
Adjusted deposits can be viewed from the Adjustment tab of the Deposits workspace.
Procedure
You can make various changes to the deposit details in the detail pane. If you modify a deposit, calculation
reapplies the adjustment to the calculated deposit.
Field Description
Period The period that contains the deposit and the calendar within that period. Only editable for
manual and imported deposits
Name A unique name for the deposit. Only editable for manual and imported deposits.
Earning Group Groups similar types of deposits. Positive and negative balances within an earning group are
offset against each other. Earning groups can be entered using the following methods:
• Type a text string into the field. For example, enter ”r;special incentives” to dynamically
create a special incentives earning group. Earning groups entered by this method are
not available to deposit rules or other deposits.
• Select an earning group from the drop-down list. Earning groups can be created in the
Earning Groups workspace. Earning groups added in the Earning Groups workspace are
available for all deposit rules and deposits.
Earning Code A code that differentiates deposits within an earning group. These codes help external
accounting systems track departmental earnings. Earning codes can be entered using the
same methods as earning groups.
Deposit Date (Optional) The date the deposit was created. For calculated deposits, this is the calculation
run date.
Ever Held When enabled, that the deposit is to be held and works in conjunction with the Release
Date. If you modify the Ever Held option and Release Date for a deposit related to a posted
payment, you must rerun the calculation for the period to generate a negative applied
deposit (earnings) so that the payment is not made twice.
Release Date If Ever Held is enabled, a date in this field indicates when the deposit should be released. If
Ever Held is enabled and the Release Date is blank, the deposit is held indefinitely.
Reason Code A code that indicates the reason for the deposit. Reason codes must be created by the
administrator.
6. Choose Save.
Procedure
Note
If you modify the Ever Held option and Release Date for a deposit related to a posted payment, you must
rerun the calculation for the period to generate a negative applied deposit (earnings) so that the payment is
not made twice.
You can award a deposit to a position assignment where the deposit is not directly related to the standard rule
processing. After creating a manual deposit, the system processes the manual deposit the next time that you
run the calculation.
Also, manual deposits are not reset during calculation processing. If Custom Processing Dates are enabled,
at least one day of the Period specified for the deposit must be within the Is Processing start and end dates
for the current version of the position. For example, if the Is Processing effective dates are February 2008 to
June 2008, the Period for the deposit cannot be January 2008. If you award a manual deposit to a position
assignment and the version of the position changes (such as for a change in payee), you must delete the old
manual deposit and create a new one for the new position version.
Procedure
You must create the deposit to be effective during the time when the position assignment (position /
payee combination) is also effective. The system does not allow you to create a manual deposit for a
time period when the specified position assignment is not effective.
Position (Required) The name of the position associated with the deposit.
Create Date For manual deposits, defaults to the current date and is not editable.
Origin Type Defaults to Manual, Calculated, or Imported depending how the deposit was created. This field
is not editable.
Earning Group Groups similar types of deposits. Positive and negative balances within an earning group are
offset against each other. Earning groups can be entered using the following methods:
• Type a text string into the field. For example, enter ”r;special incentives” to dynamically
create a special incentives earning group. Earning groups entered by this method are not
available to deposit rules and other deposits.
• Select an earning group from the drop-down list. Earning groups can be created in the
Earning Groups workspace. Earning groups added in the Earning Groups workspace are
available for all deposit rules and other deposits.
Earning Code A code that differentiates deposits within an earning group. Earning codes help external ac-
counting systems track departmental earnings. Earning codes can be entered using the same
methods as earning groups.
Rule For calculated deposits, this field displays the deposit rule that generated this deposit. This field
is not applicable to manually created deposits.
Preadjusted Value (Read only) The deposit’s value before any applicable adjustments or modifications. When
creating a manual deposit, the Preadjusted Value and Value are the same and entering the
Value updates this field.
Value (Required) The value of the deposit. Choose the Unit Type button to select a unit type. The
options are currency, percent, quantity, and integer.
Ever Held Indicates that the deposit is to be held and works in conjunction with the Release Date.
Release Date If Ever Held is enabled, a date in this field indicates when the deposit should be released. If Ever
Held is enabled and the Release Date is blank, the deposit is held indefinitely.
Reason A code that indicates the reason for the deposit. Reason codes must be created by the adminis-
trator.
Business Units (Read only) The system automatically sets the business unit on the deposit to match the
business unit assignment on the position.
6. Choose Save.
You can manually set the release date of a held deposit. You can set or change the release date of a deposit
regardless of whether it is a calculated, an imported, or a manual deposit. You can either indicate a specific
release date, or choose to have the deposit held indefinitely. The calculation processes all deposits released
within the period.
Note
The calculation generates an error when it goes to process a released deposit for a position or payee that is
not effective at the time that the deposit is being released.
Procedure
You can find data related to one or more deposits by selecting the appropriate object option from the Related
pane.
Payments represent the incremental deposit amount to be paid for a specified fiscal period. Balances are
payment amounts generated for finalized periods.
Payments are always generated per position assignment within an earning group except when the Consolidate
Payee Payments preference is enabled. When this preference is enabled, payments are generated per payee
regardless of the position that the payee is assigned to.
Payment Summary
The Payments workspace displays a summary of all the payments and balances calculated by the system for
position assignments when you ran the calculation. In the Summary view of the Payments workspace, the
system lists an aggregate payment summary item for each position assignment, period, earning group, unit
type, and business unit combination.
Payment Details
The following figure shows the General Information tab. From this tab, you can view the individual payment
and balance items that make up the payment summary item and view additional information about each of
these items. For each payment or balance item, the system lists the earnings that constituted the payment or
balance object. Information on the tab includes:
• Payment summary item: An aggregate value of all payments for a position assignment period, earning
group, unit type, and business unit. The unit type used and displayed is derived from the source deposit.
• The first line or lines for a payment or balance item lists the earnings calculated.
• The last line for a payment of balance item lists the payment or balance generated.
The details for each line item on the General Information tab includes information for:
• Description—Lists the period description. For the last line for the earnings item, Payment or Balance is
shown to indicate the type of object.
• Earning Code—Displays the earning code for the payment or balance.
Note
A zero value payment is a valid payment, and gets created and posted just as any other payment does.
Here is an example of what a participant’s payment summary looks like in the Week 6 2015(February 2015)
period, after Compensate and Pay stages have been run. The participant has some trial payments and a couple
of prior period balances.
• Payments are calculated for February 2015, but they have not yet been posted. Because the payments are
in trial status, the balances included in these payments are not yet marked applied.
• A balance was generated and posted in November 2015 (a finalized period).
Note
You can determine when payment summaries should be generated by setting one or more of the
following Generate Payment Summaries calculation preferences: After Calculating Payments, After Posting
Payments, After Finalizing Payments.
After running the calculation Post-stage, the payments are now posted, and the prior period balances are
marked as applied. The figure shows that:
• Payments are calculated and posted for November 2015. Because the payments are posted, the prior
period balances included in those payments are now marked applied.
• A balance was generated and posted in November 2015 (a finalized period).
After posting payments in the December 2007 period, the November 2015 payment summary displays the
posted and applied status of the balances brought forward into the December payments.
The following figure shows the Supporting Details tab. To see each type of result data, select the corresponding
check box in the Show area.
Additionally, if you change a field on a transaction that does not affect the value when viewing the transaction in
the detail pane of the Supporting Details tab, the system displays ”r;not a value adjustment” to help clarify the
kind of adjustment.
You can configure the system to store payments that are negative amount using the Allow Negative Payments
preference. A negative payment might occur, for example, if a participant has a de-booking in a prior period that
results in a negative deposit balance that is larger than the payment for the current period. If the system is not
configured to allow negative payments, the payment is instead converted to a negative balance and is carried
forward to subsequent periods until it is balanced against the positive deposits for a period. If you have not
configured to allow negative payments and there is a negative balance from a previous period that is larger than
the payment for the current period, then no payment is posted in the Post stage. In this case, in the Finalize
stage the system generates the amount as an additional balance.
For example, if Tom Jones has a balance of -$100 from January and his February earnings are $75, the
calculation would result in a payment of -$25. However, because negative payments are not allowed, there is no
Note
You can do a search for balances from previous periods to find the prior period negative balances .
In general, the system generates a separate payment for each unique combination of an earning group and
earning code. Sometimes, some balancing is necessary across earning codes. The system attempts to balance
any negative payments within each earning group. Within each earning group, you can define a set of earning
codes. For example, for a Commission earning group, you can create an earning code for Sales Revenue
Commission, and one for Sales Booked Revenue Incentive. Each deposit originating from the sale of one of
these products is tagged with the appropriate earning code by the deposit rule in the Reward stage. Payments
derived from these deposits are also tagged with the earning code. For example, the result at the end of the
Pay stage might be a $200 payment to John Jones for his sales of Sales Revenue Commission, and a $100
payment for his sales of Sales Booked Revenue Incentive.
However, under certain circumstances, a payment labeled with an earning code might not reflect the amount
of deposits for that earning code. John Jones might have sold enough Sales Booked Revenue Incentive that he
expects a payment of $500, yet only receives $300. If this occurs, it could be the result of balancing payments
across earning codes, which occurs in the Pay stage of the calculation.
You can find data related to one or more payments by selecting the appropriate object option from the Related
pane.
Procedure
If you are searching for related deposits, the objects are retrieved immediately and the results are displayed
in the related workspace. If no results are found, the message “No Records Found” message is displayed in
Summary view panel. Deposit searches use NamedQuery and don't display a Simple Search dialog.. All other
objects use LegalMoveDynamicQuery, which display the Simple Search dialog.
If you are searching for related participants or positions, the Search For Related Object dialog displays with the
name of the selected object substituted for the object name.
Earning groups and earning codes are used to group deposits, earnings, and payments. You use earning
groups to differentiate these items for the purpose of balancing certain groups of deposits during calculation
processing. You use earning codes as a more granular level within earning groups to label deposits for
accounting purposes (tracking of deposits by an external system).
Before you create deposit rules, consider how you need to handle balances. For example, if you have a separate
commission and bonus incentive rules, do you need output from these rules to be balanced together or
separately in your deposit rules for the same plan? If you need to balance the output separately, create earning
groups; if you need to differentiate between types of commissions, you could create earning codes. Create
earning groups and earning codes in the system first, then create the appropriate deposit rules.
If you are using different unit types for multiple currencies, such as one for US dollars and another for Euros,
grouping by unit type as well as by earning group and earning code is also done.
Related Articles
When you create a deposit rule, you can assign the deposits it creates to different earning groups. Deposits
assigned to different earning groups are balanced separately (earning groups are also used for reporting
purposes). You might choose to do this, for example, if you need to balance commissions against commissions,
and bonuses against bonuses. If your business does not require the separation of deposits by earning groups,
assign all deposits to a single earning group.
You create an earning group by simply assigning it an identifying name and a description. The name is then
available from the Rules Wizard workspace when you create a Deposit rule. You can specify that the deposits
that it creates are assigned to an earning group. The following figure shows a conceptual view of when earning
groups are used during calculation processing.
During the Reward stage of the calculation, each deposit created by a Deposit rule is tagged with the earning
group specified by the rule. During the Pay stage, deposits are balanced to create one payment or balance for
each earning group. Any balances carried forward from previous periods are also included in the payment.
Earning codes are labels that you can apply to deposit earnings for use in tracking payments according to your
business needs. The earning code totals are often exported to external accounting systems. When you create
deposit rules, you can elect to label the incentives the rule creates with earning codes.
For example, if a company needs to track all the commission earnings together, assign an earning code (for
example, EC-1) to the Commission Earning Group. If the company also needs to track bonuses, such as trips,
that are given as incentives, create an additional earning code (for example, EC-2) to apply to trip award
bonuses. Each earning code is tracked separately in the system.
If you are using different unit types for multiple currencies, such as one for US dollars and another for Euros,
grouping by unit type as well as by earning group and earning code is done. For example, consider the data in
the following table.
In this example, all the payments and balances are within the same earning group; however, the negative
balance of -$200 is offset against the $1000 because they share the same unit type.
In some circumstances, a payment marked with an earning code within an earning group might not match
the earnings calculated for that earning code/earning group combination. For example, a position could be
awarded the following earnings items during the Pay stage, where earnings and payments are calculated.
These are both within the Revenue earning group:
If these are the only items going into a payment, the payee assigned to the position would receive a payment
of $500 associated with the Revenue earning group. However, under certain circumstances, a payment labeled
with an earning code might not reflect the amount of deposits for that earning code. If this occurs, it might be
the result of balancing payments across earning codes, which occurs in the Pay stage.
If negative payments are allowed, then payments are recorded as is. There is no need to balance out a negative
payment.
If the position is finalized, then the calculation does not calculate payments, only balances.
Within an earning group, if there are earnings for only one earning code and its payment is negative, it is
handled the same as any negative payment (converted to a negative balance in the Finalize stage and used in
calculations of payments for the earning group in subsequent periods). Consider the earlier example, but one
of the earnings items is negative (this resulted from a de-booking in a previous period):
Rather than carry forward a negative balance for the Sales Booked Revenue Commission through to some
future period when the payee generates enough revenue to offset it, the negative earnings from the one earning
code is subtracted from the position earnings in the other earning code earnings within the same earning
group. The system balances the -$300 earnings with the $400 earnings to generate a payment of $100. This
payment is marked with the Sales Revenue Commission earning code.
Note
If there are no payments for the current period in a particular earning group, any negative balances from
prior periods for that earning group continue to be carried forward.
The system balances earnings and prior period balances across earning codes as follows: Prior period balances
are ordered by create date, with the earliest first. Current period earnings (applied deposits) are ordered by
value, with the smallest first. The earliest negative balance is subtracted from the smallest earnings item. Any
remainder is subtracted from the next smallest earnings, and so on. Negative payments and balances are
calculated across all earning codes within an earning group. For example, suppose there are three earnings
items with different earnings codes for a position assignment and for the Revenue earning group:
• Sales Revenue Commission earning code: -$200 prior period balance (this is the earliest balance)
• Sales Booked Revenue Incentive earning code: -$100 prior period balance
• Sales Management Total Revenue Bonus earning code: $50 current period earnings
After running Compensate and Pay, the -$100 balance from the prior period for the Sales Booked Revenue
Incentive earning code remains as a balance. The balance of -$200 for the Sales Revenue Commission also
remains. After the period is finalized, the $50 amount is created as a balance to be brought forward into
the next non-finalized period. No payment is generated because the total for the Revenue earning group is
negative.
If some participants in your organization are assigned to more than one position, you can configure the system
to generate a single payment (or balance) for the participant by enabling the Consolidate Payee Payments
preference. If enabled, this feature generates a single payment for each earning group, earning code, unit type,
and participant, regardless of the number of positions that the participant is assigned to. If this feature is not
enabled, the system continues to generate a payment (or balance) for each participant, position, unit type,
earning code, and earning group combination.
Related Information
After you enable Consolidate Payee Payments, it is advised that you not disable it. If you must do so, disable it
at the end of a period and after all balances have been reconciled. Be sure to note the following when enabling
payee payment consolidation:
• When you run the calculation for a subset of positions, be sure to do so for all positions held by a
participant. Otherwise, the calculation results data will be incorrect.
• Business unit security might be compromised in situations where a participant holds positions in separate
business units within the same processing unit (if processing units are enabled). In such cases, a user
might be able to view balances, deposits, and incentives related to a business unit other than the one they
are assigned to.
• If a participant is assigned to more than one position and those positions are assigned to plans associated
with different calendars, payee payments are not consolidated.
• When you enable payee payment consolidation, you do so for all positions in the system.
• If processing units are enabled, payment consolidation is limited to the confines of a processing unit. For
example, if a participant is assigned to multiple positions and those positions are in different processing
units, payment consolidation only occurs for the positions that are in the same processing unit.
• If payee payment consolidation is enabled, you cannot do a related search from positions to payments, or
vice versa. You can search for related payments from participants.
From the Participants workspace, you can select a participant and perform a related search to the positions
that the participant is assigned. You can also directly view that participant’s payments by selecting the
participant and performing a related search to payments. In the Payments workspace, when you click the
Following are some example calculations, to show you how balancing works with multiple positions and
Consolidate Payee Payments enabled. The following calculations start from the scenario where all periods prior
to January are finalized, and negative payments are not allowed. The following table lists the results as you
would see them in the Payments workspace, Supporting Details tab for the specified position in January. There
are two balances brought over from the prior December period, one of -$500 for the Commission earning
group and another $500 balance from the Bonus earning group.
Earning Group Payment Balance (Prior Period) Earning Deposit & Position
Earning Group Payment Balance (Prior Period) Earning Deposit & Position
Note
The second calculation run is a re-run of Compensate and Pay, without Post. In this second calculation run of
January, the system generates a new trial payment of $595 for the Bonus earning group. The $150 in Earnings
generated for the participant for the Commission earning group is not created as a payment because the prior
period balance is negative and larger than the current period earnings. The Revenue earning group’s earnings
changed to $900 and generated a $900 trial payment.
Earning Group Payment Balance (Prior Period) Earning Deposit & Position
After running the Post stage, the trial status earnings and payments are marked as posted, except for the $150
trial earnings for the Commission earning group. In the Commission earning group, because the prior period
balance is negative and the earnings amount does not balance out the negative portion, no payment can be
generated (the option to allow negative payments is not enabled). This earnings amount stays in trial status.
Later, when the period is finalized, the earnings amount is created as a balance and is available for use in the
next period.
Earning Group Payment Balance (Prior Period) Earning Deposit & Position
The participant gets assigned to a third position, and Compensate and Pay is re-run for January. The third
position generates new earnings of $50 in the Revenue earning group, and this along with an additional $40
generated in the Revenue earning group by Position1 generates a trial payment of $90 for the Revenue earning
group.
After running the Post stage, the trial earnings and payments for the Revenue earning group are marked as
posted, except for the trial earnings for the Commission earning group. Other items are unchanged.
Earning Group Payment Balance (Prior Period) Earning Deposit & Position
After Finalize is run, the trial status earnings of $150 for the Commission earning group is marked as posted
and converted to a balance. If February is run next, there are two unapplied posted balances from the prior
January period (-$500 and $150) in the Commission earning group.
When deleting an object that is referred to by another object, the system does one of the following:
• Deletes both the object and the referring object: For example, if you delete a category, the system
automatically deletes the category’s subcategories.
• Disallows deleting the object: For example, the system does not allow you to delete a title if it is assigned
to a position because deleting it would essentially “break” the owning object. Similarly, you cannot delete
objects that are associated with results data (credits, measurements, incentives, deposits, and payments).
• Deletes the object and disassociates it from the referring object: For example, if you delete a position, the
system retains participants that were associated with the position and disassociates the participants from
the position.
Related Information
When you delete a reference data object, the system marks all versions of that object as removed from the
Repository. For example, if you delete the participant Michael Robinson on January 15, 2008, his data is
removed for all versions both before and after that date. After an object is deleted, you can find information
about the object only from the Audit Log workspace. The following tables summarizes the actions taken by the
system when you delete reference data (organization data, classification data, plan data, and rules elements)
that is not associated with results data.
Deleting a Participant
Deleting a Title
Deleting a Position
Results Data Disallow deleting the position if the position has associated
results
Referring Object When you delete a Position Group, System Policy is to:
Deleting a Relationship
Deleting a Plan
Positions, Titles Disallow deleting the plan if any positions or titles refer to it
Deleting a Rule
Generic attributes are only referenced by rules. Deleting the rule does not delete the attribute.
Deleting a Formula
Rule Element Disallow deleting the formula if any rule elements refer to it
Deleting a Variable
Required period type Disassociate the period type from the variable
Rule Element Disallow deleting the variable if any rule elements refer to it
Rule element Disassociate the rule element from the variable assignment
Deleting a Territory
Referring Object When you delete a Rate Table, System Policy is to:
Rule Element Disallow deleting the rate table if any rule elements refer to it
Referring Object When you delete a Lookup Table, System Policy is to:
Rule Element Disallow deleting the lookup table if any rule elements refer
to it
Referring Object When you delete a Fixed Value, System Policy is to:
Rule Element Disallow deleting the fixed value if any rule elements refer to
it
Deleting a Classifier
Deleting a Category
There is no general deletion policy for Administrative Data objects. See the Administrative Tasks
documentation for information about deleting these objects. .
Each measurement and incentive generated by the Calculation is associated with a period. When using
measurements or incentives in rules, you must consider whether:
• The associated period is at the leaf-level or a higher level period. The leaf-level is the smallest period unit
of your calendar, usually a month or two weeks. When you reference the non-leaf value of a measurement,
you are asking for the sum of leaf values that span the referenced higher-level period.
• The value of measurements or incentives is synthetic or persistent; stored in the database or available
dynamically.
• The rule is references values that it generated (self-referencing).
Measurement or incentives are referred to using Name: period notation. For example, a reference to the
quarter-based version of the GolfPM measurement looks like GolfPM:quarter: UnitType.
Persistent values are the period-based versions of measurements and incentives that the system stores in the
database. For example, the month-based output of a primary measurement rule is a persistent value.
Synthetic values are the higher-level period versions of measurements and incentives that the system
calculates automatically but does not store them in the database. Synthetic values are created to make
processing faster. The system calculates synthetic values during calculation run's and do so regardless of
whether the synthetic values are referenced in any rules. For example, the quarter- and year-based versions of
a primary measurement are synthetic values.
Related Information
All primary measurements are aggregates of credits, and therefore primary measurements are leaf-period
values themselves. Credits from multiple leaf periods don’t aggregate into a primary measurement; however,
held credits can be aggregated. For example, credits calculated in January and held until February are
aggregated to the February primary measurement along with February credits.
A primary measurement represents credits for just the leaf period (for example, a month’s worth of credits).
There can be many different primary measurements for a particular period. In most cases, each primary
measurement represents an aggregate of different types of credits; however, depending on the compensation
Related Articles
While primary measurements are always based on the leaf period’s business activity, a rule can point to
a synthetic version (non-leaf version) of a primary measurement. The value of a primary measurement’s
synthetic version is the sum of the leaf periods within that higher level period, period-to-date. The synthetic
version of a primary measurement includes the current leaf-period value when the offset is 0; however,
depending on the compensation rule, you can also set an offset to 1 quarter and the synthetic value then
includes leaf period values of the prior quarter. For example, in January the value of GolfPM:quarter is only the
January business activity, even if February and March monthly values have already been calculated and you are
rerunning January.
When the system calculates the leaf period values, it automatically calculates the higher level period
values, such as quarter and year versions of primary measurements. These are synthetic values and the
system does not store these higher level period values in the database. For example, when the system
calculates the monthly value for April (GolfPM:month), it automatically calculates the higher level period
values (GolfPM:quarter and GolfPM:year). GolfPM:quarter and GolfPM:year are available for use in rules and
calculations, but they are not stored in the database. They are available during a calculation run.
In April, the value of GolfPM:quarter is $550. This value represents the quarter-to-date revenue for the second
quarter. To summarize, the synthetic version of a primary measurement represents the period-to-date value.
This includes the current leaf period value if the offset is not used (0).
Note
For most references, the current period’s value is included. The exception is for self-references.
Related Information
Secondary measurements and incentives are also calculated monthly, and they can represent business activity
either for a distinct leaf period or over multiple leaf periods. A secondary measurement can aggregate the
data from other primary measurements. An incentive can aggregate the data from measurements or other
incentives. The following figure illustrates an example of a secondary measurement that represents a month’s
worth of business activity.
In the example illustrated previously, the Total Revenue secondary measurement aggregates the monthly
GolfPM and AircraftPM values. The following figure illustrates an example of a secondary measurement that
represents a quarter-to-date amount of business activity.
This is a secondary measurement that is based on three months’ worth of data for two product lines (quarter
to date). This secondary measurement calculates monthly but represents the quarter to date total. Every
month, this secondary measurement calculates the quarter-to-date value so far for the current quarter.
Related Articles
For primary and secondary measurements, the system creates the persistent version for the leaf level period
(for example, month). The system also calculates the synthetic, higher level period values for the measurement
(for example, quarter and year versions).
Related Information
The system generates persistent and synthetic versions of incentives similar to those for measurements.
However, incentives are not necessarily based on the leaf period. When you create an incentive rule, you specify
the period type for the output of the rule. Commissions generates synthetic versions of incentives only for
those periods that are of a higher level than the period type of the incentive itself.
As shown, the system stores the quarterly GolfBonus value with the quarter period. Each month, the system
calculates the GolfBonus value and overwrites the previous month's calculation within the quarter, until the last
month in the quarter when the bonus is released for deposit. An incentive based on a higher-level period is
available for deposit during the last leaf period within the specified higher level period type. The last leaf period
of a higher level period is determined by the period type of the higher level period. For example, a quarterly
incentive is available for deposit during the last month in each quarter.
Example
Example: In January, the GolfBonus value is $50. In February, the system overwrites the January
calculation and stores the February calculation, which is now $115. In March, the system overwrites the
February calculation and stores the March calculation of $155. Because March is the end of the quarter, the
quarterly GolfBonus is released for deposit in March.
Each month the system calculates the quarterly bonus, but each month in the quarter it overwrites the
previous month’s calculation. The system releases the bonus for deposit in the last month of the quarter.
Related Information
A reference is a method of including a measurement or incentive value in another rule or in a formula. The
reference acts as a placeholder for the measurement or incentive from the specified period type relative to the
current processing period. The following figure illustrates an example of a quarterly incentive rule that refers to
the quarter-based version of a primary measurement.
For example, to use the quarter-based version of the GolfPM measurement in an incentive rule called
GolfBonus, you include a reference to the GolfPM measurement in the GolfBonus rule, and you specify
“quarter” as the period type. When the GolfBonus rule runs in March, it gets the quarter-based version of
the GolfPM measurement that is calculated in March, which is essentially a quarter-to-date value. The March
quarter-based version of the GolfPM measurement includes the monthly values from January, February, and
March. When the GolfBonus rule runs in May, it gets the quarter-date amount of the GolfPM measurement. The
May quarterly version of the GolfPM measurement includes the monthly values from April and May.
For references to measurements, you specify the period-based version by specifying the measurement.
For references to incentives, you specify the period-based version by specifying the incentive period.
You can include a reference to the leaf or higher-level period versions of primary measurements. Because
primary measurements always represent business activity from one leaf period, both the leaf or higher-level
period versions make sense to use. However, unlike primary measurements, secondary measurements and
incentives frequently represent data that crosses leaf period boundaries.
For example, you can include a reference to the quarterly value of the GolfPM measurement to get the sum of
the monthly values in a particular quarter. As another example, a secondary measurement can, each month,
calculate the Golf Revenue quarter-to-date, as shown in the following figure. This secondary measurement
calculates a quarter-do-date amount each month. The leaf-level versions already represent an aggregation of
data. If you refer to a non-leaf level version of this secondary measurement, you are referring to a redundant
aggregation of data (Jan.) + (Jan. + Feb.) + (Jan. + Feb. + Mar).
For secondary measurements and incentives, you can refer to either the leaf or non-leaf versions of them.
However, referring to the non-leaf version only makes sense when the referenced secondary measurement or
incentive represents data from a single leaf period.
If you reference a secondary measurement or incentive in a way that uses a redundant aggregation of data,
your payees you are likely to be overcompensate. For example, as shown in the following figure, suppose you
want to specify a measurement reference in an incentive rule and that you have two measurements to choose
from:
In this example, if you create a bonus rule to calculate 10% of the measurement value, the result varies
depending on which measurement value you choose.
Measurement Calculation
GolfRevQTD:quarter 10% X GolfRevQTD:quarter = 55 + (55 + 45) + (55 + 45 + 70) = 55 + 100 + 170 = 10% X
325 = $32.50 bonus
If you use GolfPM:quarter or GolfRevQTD:month for the measurement, the bonus is calculated as $17. If
you use the GolfRevQTD:quarter measurement, the bonus is calculated as $32.50.When you use the quarter-
Related Information
You can create a rule that is self-referencing, meaning that the rule creates a measurement or incentive and
refers back to the value of that measurement or incentive. You might need to create a self-referencing rule if
you need to verify if the value exists already. For example, you want to pay an Over Quota Bonus that fulfills the
following requirements:
• In the first period that performance is over quota, pay a $5000 bonus.
• If the bonus has already been paid during the current fiscal year, do not pay the bonus again.
• If the bonus has already been paid but performance goes below quota in a later period (such as from a
debooking), recover the bonus.
To handle the Over Quota Bonus, create two incentive rules: one to handle the creation of the bonus, and the
other to handle the recovery of the bonus. The following figure shows the definitions of each of these rules.
Rule #1 Rule #2
AND
(OverQuotaBonus.year > 0)
In Rule#1, the self-reference is in a monthly incentive rule, and the reference is to the year-based version of the
rule’s output. In Rule#2, the output is the same name as the output from Rule #1. The two rules have outputs of
the same name because they handle all conditions for generating and recovering the same bonus.
To continue the self-reference example, here are the rule output values for January through July:
over quota? not over not over not over not over over quota still over not over
quota quota quota quota quota quota
Note
Because this is a self-reference, the year-based version in May does not include May’s monthly value. The
value that’s used is the same amount as the April value.
In July, a debooking occurs that results in the payee’s revenue now being under quota.
Note
The year-based version of this self-reference does not include July’s value. The value that’s used is the
same as the June value.
Note
A self-referencing rule cannot refer to the same period-based version as the rule itself creates. For
example, if you create a quarterly bonus rule, then if you refer to the output of the rule, you can only
refer to the year-based version of the bonus.
To obtain values to use to determine performance progress so far during a period, use the functions Sum
Measurements Period to Date and Sum Incentives Period to Date. These functions show accumulation period
to date. The values returned by these functions shows accumulation toward a goal that you can compare,
usually through a condition, to something else to determine attainment. The details indicate which value and
how much of it to sum. Use a synthetic value instead of a sum period to date function whenever possible.
It is faster to process a reference to a synthetic object if you want to include a higher-level period version of
a measurement or incentive. For example, to use the year-to-date value of a revenue measurement, you can
When you create an incentive rule with a rate table, you must specify additional period versions, for example,
in a step commission rule. When you create an incentive rule with a rate table, you must specify the following
period type parameters:
• Measurement period
The period type that specifies the performance measurement for which the participant should be paid. For
example, if the incentive rule’s measurement period = month, the commission rates (in the rate table) apply to
the incoming revenue measurement for each month.
• Attainment period
The period type for which attainment is measured; the attainment level determines the applicable rate (from
the rate table). For example, an incentive rule could determine the attainment level by the quarter-to-date
performance (attainment period=quarter), while paying for just the new revenue each month (measurement
period=month).
Measurement Period For what incremental revenue does the participant get paid this period?
Attainment Period What revenue period to date is compared to the quota to calculate the attain-
ment?
The examples in this section illustrate the effects of specifying different combinations of measurement period
and attainment period for a sample monthly incentive rule that uses a rate table to calculate the commission.
This scenario pays commission on the monthly revenue, and the pay rate is determined by the quarter-to-date
performance. This scenario pays appropriately.
The following table lists the calculations that occur for this incentive rule for the four sample months, January
through April. Commissions are appropriate to the generated revenue (neither overpaid or underpaid).
Measurement Reve-
Attainment nue Commission
March =(5500 + 1800)/6000 1800 rest of 2nd tier= $500 X 10% = $50
This scenario pays commission on quarter-to-date revenue each month, and the pay rate is determined by the
quarter-to-date performance. This scenario overpays, by paying on the January revenue three times, and the
February revenue two times.
Measurement Rev-
Attainment enue Commission
To summarize, when you create an incentive rule that uses a rate table, be careful about the period versions
that you specify. A secondary measurement rule can calculate year-to-date revenue on a monthly basis
(attainment period=month). To use this kind of measurement with a rate table in an incentive rule, you would
use an annual quota (quota period=year).
• When you reference the non-leaf value of a measurement, you are asking for the sum of leaf values that
span the referenced higher-level period.
• For all non-self-referencing measurements and incentives, the reference includes the current period if the
offset is not used.
The Modeling feature in SAP SuccessFactors Incentive Management enables you to create model scenarios to
predict the impact of proposed changes to compensation plans.
• modify compensation plan components and simulate the effects of proposed changes.
• perform macro level and payee level modeling for overall cost impact analysis and control compensation
spend.
• make informed decisions for optimal business outcomes.
After designing a model scenario, you can perform a Model Run. A Model Run, similar to a calculation run,
generates model period data from historical primary measurements based on the provided specifications.
The modeling process extracts period-over-period trends and generates model data from historical records.
Related Information
The Modeling workspace clearly segregates the modeling data from production data enabling you to
seamlessly create, test, and implement incentive plans. Changes made to modeled objects do not affect
production objects. New objects created for modelling purposes are not visible in production environments.
Note
You must have the required permissions settings configured in Incentive Management Admin > Manage
Setup > Security > Roles > Permissions > Models to access and use the Modeling application. If you
have questions about your login credentials and permission settings, contact your administrator.
Action Description
Related Information
The Modeling feature provides capabilities to empower administrators with the foresight to optimize
compensation plans effectively.
Prerequisite
To access the Modeling application, administrators must configure appropriate permission settings in
Incentive Management Admin > Manage Setup > Security > Roles > Permissions. See Permission Set for
more details.
Procedure
4. Choose Next.
5. Under Model Details, provide the following details:
• Calendar: Calendar for the source/planning periods.
• Source Date for Model: The period range from which actuals are obtained and model data is created.
A Source period has the following main functions:
• It enables determining which plans can be added as part of the model.
• Historical organization and classification reference data from the Source period is used in the
model.
• Historical transaction or measurement data from the Source period can be used as an input to the
model (simulated data or projected data can also be used as an input to the model).
• Model calculation results are created in the Source period, but under the model context.
• Processing Unit: Allows you to filter model data through a processing unit. This option is only available
if the Use Processing Units option is selected in Calculation Preferences.
8. Choose Next.
9. Under Model Summary, you can view the summary of the model and make changes if necessary, before
running the model.
11. After you choose Proceed, you are redirected to the Modeling page and a confirmation message is
displayed stating that the calculation has started. Once the calculation is completed, you will be notified.
After the model run is completed, choose the View Report option in the Modeling page to view the results
and logs.
Related Information
You can make dynamic adjustments to rate tables within a model to reflect desired changes in compensation.
You can add or delete tiers within rate tables, enabling more dynamic adjustments to business requirements
without the need to create entirely new rate tables. When adding a new tier, you can define the bounds and
specify the rate or formula
You can add new tiers or adjust existing tiers in rate tables by modifying the following and then run the
modelling calculations to see the results of these modifications:
• Operator
• Attainment
• Rate
Rate tables have editable operators, rates, and attainments. The formula is read-only and cannot be
changed, but the row containing it can be deleted.
Related Information
You can make adjustments to the Fixed Values within a model to reflect desired changes in compensation and
then run the modelling calculations to see the results of these modifications.
Related Information
After the model run is completed, choose the View Report option in the Modeling page to view the results and
the logs.
When the Measurement, Incentive, or Deposit filter is selected, the report shows the model total cost, the
actual plan cost, and deviation for the selected measurement, incentive, or deposit. When the Unit Type filter is
selected, the report shows the model total cost, the actual plan cost, and deviation for the selected unit type.
The chart view shows the model total cost, the actual plan cost and the deviation for the period. In chart view,
users can view payee level details including actual and model value per user-per rule by selecting a user in the
filter.
When the model run is complete, choose Completed or the View Report option to view the history logs.
If the log shows any failures, you can rerun the model or contact the administrator if the problem persists.
The Notifications feature in Modeling displays real-time notifications related to the status of the Model Runs.
The most recent notifications are displayed on top. Choose View All to view all the notifications.
You can also use the Unread Only toggle button to view only unread notifications.
From the profile option in the top-right, choose Proxies to access the proxy functionality. See Managing Your
Proxy Relationships for more details.
In My Proxies tab, you can view a list of users who can proxy as you.
In Proxy As, you can select the user you want to proxy as. If configured by the administrator, you may need to
reauthenticate when you attempt to log in as a proxy user.
This section provides information about the various other integrations that are related to SAP SuccessFactors
Incentive Management.
This integration help content is meant for SAP customers, partners, consultants, and employees. It provides
information and support for the following roles that are involved in the integration project:
Related Information
• Integration with SAP S/4HANA Cloud and S/4HANA Private Cloud [page 384]
• Integration with SAP IdP [page 408]
• Integration with SAP Business Technology Platform (BTP) [page 446]
• Integration with SAP Data Custodian [page 506]
• Data Integration and Management Solutions [page 522]
• API Authentication [page 508]
• Integration with SalesForce for Incentive Management Portal
This section describes the integration setup for an SAP S/4HANA instance with SAP SuccessFactors Incentive
Management Cloud using SAP Integration Suite.
Integration Scope
The following images depict the integrated functional scenarios at a high level.
You need to choose the integration flow that best fits your business requirements.
• Replicate Sales Order Items from SAP S/4HANA: Choose this method if you want to calculate payments in
SAP SuccessFactors Incentive Management based on SAP S/4HANA Sales Orders.
• Replicate Billing Document Items from SAP S/4HANA: Choose this method if you want to calculate
payments in SAP SuccessFactors Incentive Management based on SAP S/4HANA Billing Documents.
• Replicate Product Master Data from S/4HANA: Additionally, you can replicate product master data from
S/4HANA if you want to include some product details in the payment calculations.
• Replicate Sales Contract Items from SAP S/4HANA: Choose this method if you want to calculate
payments in SAP SuccessFactors Incentive Managementt based on SAP S/4HANA Sales Contracts.
• Replicate Sales Quotation Items from SAP S/4HANA: Choose this method if you want to calculate
payments in SAP SuccessFactors Incentive Management based on SAP S/4HANA Sales Quotations.
• Replicate Customer Master Data from S/4HANA: Choose this method if you want to replicate customer
master data from S/4HANA if you want to include customer details in the payment calculations.
• Replicate Product Hierarchy Nodes from SAP S/4HANA Private Cloud: Choose this method if you want
to replicate product hierarchy nodes from S/4HANA Private Cloud (hierarchy type MARA) if you want to
include product hierarchy in the payment calculations.
• Replicate Service Contract Items from SAP S/4HANA: Choose this method if you want to calculate
payments in SAP SuccessFactors Incentive Management based on SAP S/4HANA Service Contracts.
The timer-driven integration is configurable and extendable. OData V2 is used in an SAP S/4HANA instance to
get the data and Express Data Loader (XDL) is used in an SAP SuccessFactors Incentive Management instance
to upload the transactions.
• Deleted Sales Entities and Items cannot be synchronized, so you must not delete Sales Entities and Items
from the SAP S/4HANA system. You must use the Sales Orders Block status or the Reason for Rejection
at the item-level so the flow can replicate it in SAP SuccessFactors Incentive Management.
• The maximum number of Sales Entity Items or Billing Document Items that the flow can process in one
run is up to 20000 if an extension is not defined. When an extension is defined, up to 10000 records
can be processed. If your system contains more than 20000 records, you can schedule the flow to run in
short periods (for example, every 10 minutes). Each run continues the processing from the item where the
previous run was stopped, and in each run, the flow can process the next batch of 20000 records. Based
on this method, and our S/4 Hana Cloud performance tests, a daily maximum of about 2.7 million records
can be processed. On S/4 HANA private cloud instance, the flow can be scheduled to run every 5 minutes
and a daily maximum of 5.8 million records can be processed.
• Scenario 1:
• Adding New Items in an Existing Sales Entity: The newly added items will be replicated to Incentive
Management. However, to reflect these new items in already calculated payments, you need to re-run
the pipeline.
• Scenario 2:
• Header Level Changes: All items within the Sales Entity will be updated through the XDL process to
reflect the changes.
Related Information
Integration with SAP S/4HANA Cloud and S/4HANA Private Cloud - Glossary [page 407]
The following prerequisites must be configured for the chosen integration flow:
• Products will be replicated into Incentive Management at the Classifier level in the Product Tree Category.
The first S4 Hierarchy level will be referenced as the IM category of the Product. It is the responsibility of
the customer to set up the Incentive Management Hierarchy as required with at least the first level being
the same as S4. The structure above this level should also be defined by the Customer either reflecting
the S4 structure or as is often the case, flattening or expanding the structure as needed for Incentive
Management. If the first level S4 Hierarchy category is not set up in Incentive Management, then the
product will not be added and thus giving Incentive Management control over what products are replicated.
When a Product is loaded with an S4 Hierarchy level that does not exist in Incentive Management the
line will be recorded as an error in the load. If the product is needed then the category can be added to
Incentive management and the load re run. If there are significant groups of Products that are not needed
then the iflow can parameterized to explicitly filter these groups from the extract and thus remove the
products from the error report. Due care should be taken, if in the future, such products are needed, to
maintain the parameterized flow to include these previously excluded product groups.
This integration flow replicates S/4HANA Sales Entity Items from SAP S/4HANA to SAP SuccessFactors
Incentive Management Transactions. The timer-initiated integration flow is enabled to run in different modes
using external parameters and local variables.
The SAP Integration Suite variable is used to store the information about the last synced item. The variable
reflects the exact date and time when the last synced order was last updated in SAP S/4HANA. The variable
name is defined in Flow Configuration > More > Last Processed Time Global Variable field.
Once the flow is run and completed successfully for the first time, the variable is saved to a specified location
(Monitor > Integrations > Variables).
After the variable is saved, subsequent flows will run in delta mode, starting the sync from the last synced
order, and then saving the new timestamp each time a new flow is successfully finished.
To run in full mode (that is, sync all order item lines from the beginning), there are two options:
1. Define a new name in the Flow Configuration > More > Last Processed Time Global Variable field.
2. Delete the existing variable from Monitor > Integrations > Variables.
The difference between the two options is that if you use the first option, you can still rerun from the last
synced order prior to full mode. Based on external parameters, the integration flow can run in these models:
• Transactions with assignees: Replicate S/4HANA Sales Entity Items with Partner Function Sales Employee
from SAP S/4HANA to SAP SuccessFactors Incentive Management Transactions with associated
participants (value is selected in Flow Configuration > More > Transactions with Assignee)
• Transactions without assignees: Replicate S/4HANA Sales Entity Items from SAP S/4HANA to SAP
SuccessFactors Incentive Management Transactions without associated participants (value is not selected
in Flow Configuration > More > Transactions with Assignee)
The integration flows call OData services in SAP S/4HANA to read respective S/4HANA Sales Entity records.
This action requires:
• A communication system
• A communication user
• A communication arrangement
• OData service groups need to be published. For more information, see Service Group Publishing.
• Cloud Connector is used as a link between SAP BTP applications and the Private Cloud system. For more
information, see Cloud Connector.
Integration Flows
• The Replicate Sales Order Items from SAP S/4HANA integration flow uses the Sales Order OData. See the
OData Sales Order for information on the communication scenario that needs to be added.
• The Replicate Billing Document Items from SAP S/4HANA integration flow uses the Billing Document
OData. See the OData Billing Document for information on the communication scenario that needs to
be added.
• The Replicate Product Master Data from S/4HANA integration flow uses the Product Master OData. See
the OData Product Master documentation for information on the communication scenario that needs to
be added.
• The Replicate Sales Contracts Items from SAP S/4HANA integration flow uses the Sales Contracts OData.
See the OData Sales Contracts for information on the communication scenario that needs to be added.
• The Replicate Sales Quotation Items from SAP S/4HANA integration flow uses the Sales Quotations
OData. See the OData Sales Quotation documentation for information on the communication scenario
that needs to be added.
• The Replicate Customer Master Data from S/4HANA integration flow uses the Business Partner Master
OData. See the OData Business Partner Master documentation for information on the communication
scenario that needs to be added.
• The Replicate Product Hierarchy Nodes Data from S/4HANA Private Cloud integration flow uses the RFC
( BAPI_MATERIAL_GET_PRODUCTHIER ). In order to use RFC from Integration Suite flow, add the RFC
destination to BTP instance as described in the SAP BTP Connectivity (RFC Destinations) documentation.
• The Replicate Service Contract Items from SAP S/4HANA integration flow uses the Service Contract
OData. See the OData Service Contract for information on the communication scenario that needs to be
added.
This section describes the steps involved in preparing SAP SuccessFactors Incentive Management for data
replication.
Prerequisites
• SAP SuccessFactors Incentive Management tenant must have Express Data Loader setup. See Express
Data Loader for more information.
• The user must have administrator user rights to access Express Data Loader.
Procedure
1. Log in to SAP SuccessFactors Incentive Management and select Express Data Loader from the application
menu in the top-right.
2. Choose Configuration > File Type Setup.
3. Find the file type TXSTA > Inbound and choose Edit.
4. Select the Delimiter value as Pipe.
5. Select the Import Type value as Validate And Transfer.
6. Choose Save.
7. Repeat steps 3 through 6 for file types TXST and TXTA. For replication of Product Master Data, repeat
steps 3 through 6 for file type CLPR.
This section describes the steps involved in preparing SAP Integration Suite for S/4HANA Sales Entity Records
replication.
Prerequisites
To deploy the SAP Integration Suite flows, you must have the SAP Integration Suite tenant initialized and
have the user with required permission roles assigned. See SAP Integration Suite - Initial Setup for more
information.
Note
Each Integration Suite tenant has its own SSH key, and this key cannot be shared across tenants.
To configure SAP Integration Suite for Sales Order/Billing Document data replication, perform the following:
1. In SAP Integration Suite, go to Monitor > Integrations > Manage Security > Keystore .
2. Choose Create > SSH Key to create a key pair for SFTP connectivity.
3. Deploy the SSH Key with the following attributes:
4. Download the Public Open SSH Key of the deployed Key Pair.
5. In SAP SuccessFactors Incentive Management > Express Data Loader, choose File Transfer Settings.
6. Select Upload SFTP user public key. See Configuring SFTP Keys for more information.
This section describes how to set up the <known hosts> file in SAP Integration Suite to enable SSH
Communication with Express Data Loader in SAP SuccessFactors Incentive Management.
Procedure
1. In SAP Integration Suite, choose Monitor > Integrations > Manage Security > Connectivity Tests.
2. Select the SSH tab.
3. Enter the Express Data Loader (XDL) Host. (You can find this information in Express Data Loader > File
Transfer Settings.)
Note
Each tenant host key needs to be added to <known hosts> file. The simplest way to get the Host Key is
to use the Test Connectivity functionality available in SAP Integration Suite.
10. Select Add > Known Hosts (SSH) and upload the edited file.
For Secure SAP S/4HANA OData API Calls, OData API user credentials must be securely stored in the SAP
Integration Suite Security Material.
Procedure
1. In SAP Integration Suite, choose Monitor > Integrations > Manage Security > Security Material.
2. Choose Create > User Credentials.
Field Value
3. Choose Deploy.
SAP Integration Suite web interface is used to access and manage the integration flows that are configured in
integration suite tenant.
Procedure
1. Go to the SAP Integration Suite tenant for which you want to set up the integration content.
2. Choose Discover > Integration and find the SAP S/4HANA Integration with SAP SuccessFactors
Incentive Management package.
3. Choose Copy. By selecting the Copy option, the package will automatically be added to the list in Designed
> Integrations.
The Integration Configuration Controller allows you to define settings for each Integration Flow so you can
control the behavior of the integration.
Procedure
In SAP Cloud Integration service, you can configure the integration flow to run once, daily, every 12 hours, and
so on.
• Setting Up Express Data Loader (XDL) Receiver for SFTP Connection [page 395]
• SAP S/4HANA OData Receiver [page 396]
• Post Execution Flow [page 398]
• Post Execution Assignee Flow [page 398]
• Notification Extension Flow [page 399]
• SAP S/4HANA RFC Receiver [page 399]
The Express Data Loader (XDL) receiver in SAP SuccessFactors Incentive Management enables you to
configure the SFTP connection.
To add the target system details in SAP Cloud Integration service, perform the following:
1. Address: Enter the SFTP host and SFTP port for your Incentive Management instance. (You can find this in
Express Data Loader > File Transfer Settings.).
2. User Name: Enter the username for the Express Data Loader SFTP connection. (You can find this in
Express Data Loader > File Transfer Settings.).
3. Private Key Alias: Enter the alias of the SSH key pair generated in SAP Integration Suite.
SAP S/4HANA OData receiver enables you to configure the OData connection.
Procedure
• S/4HANA URL: Enter the SAP S/4HANA API URL. For Example: https://testHana-
api.s4hana.ondemand.com. Ffor more details, check Sales Orders OData API documentation or Billing
Documents OData api documentation. https://api.sap.com/api/API_SALES_ORDER_SRV/overview
• Proxy Type: Specify if Internet or On-Premise. (By default it is Internet.)
• Authentication: Choose Authentication type for S/4HANA OData API. (By Default it is Basic.)
• Credential Name: Enter the Name of the User Credentials saved in the Security Material of SAP Integration
Suite
• Additional Fields: The flow doesn’t read all the attributes available from the SAP S/4HANA OData service
but restricts it to the relevant ones for SAP SuccessFactors Incentive Management. In case you need
SAP Cloud Integration allows you to extend the capabilities of the standard integration content provided by
SAP. This approach allows you to implement specific integration scenarios relevant to your business use
case without changing the content provided by SAP. Post execution flow will be called if it is enabled in the
configuration.
You can edit the address of the Process Direct call in SAP Cloud Integration if needed.
For more information about the Integration Flow Extension concept, see Integration Flow Extension.
Post execution assignee flow will be called if it is enabled in the configuration. You can edit the address of the
Process Direct call in SAP Cloud Integration if needed.
For more information about the Integration Flow Extension concept, see Integration Flow Extension.
The Notification Extension Flow is called only if the flow is configured to send email notifications by using
extension flow. You can edit the address of the Process Direct call in SAP Cloud Integration if needed.
Target RFC must be added after it is included as BTP RFC Destination set.
To add the target RFC after it was added as BTP RFC Destination set:
For Adapter type, choose the RFC from the drop down and for Destination, enter the destination name from
BTP Destinations page.
Since SAP S/4HANA partner functions can be different for different tenants, this option allows you to configure
the partner functions for Ship to customer, Employee, Bill to customer, and Others To. You can also configure
in which mode the flow should run, whether it should call extended flows, the Initial Start Date and theSAP
SuccessFactors Incentive Management Tenant ID.
• Additionally for the Replicate Products from SAP S/4HANA integration flow, provide the following details:
• Category tree name: Enter the category tree name that already exists in SAP SuccessFactors Incentive
Management.
In SAP Cloud Integration service, select Actions in the flow and choose Deploy.
A message stating that the flow is triggered for deployment is displayed. After the flow is deployed, execution
starts after 10 minutes, if you configured the schedule to run on each 10 minutes.
SAP Integration Suite provides a web-based monitoring UI that allows you to check the status of messages and
integration content artifacts for a tenant cluster.
Procedure
To monitor the integration flow in SAP Integration Suite, perform the following:
1. In SAP Integration Suite, choose Monitor > Integrations > Monitor Message Processing > All Artifacts .
2. From the Artifact list, select the name of the chosen flow (Replicate Sales Order Items from SAP S/4HANA
or Replicate Billing Documents from SAP S/4HANA)
3. A list of Messages with statuses will be displayed. Each message represents one execution of the flow.
Make sure that status of the message is Completed
4. Select the first message from the list. It represents the last execution of the flow. Scroll down to Custom
Headers and check the Express Data Loader (XDL) transaction file names and Number of processed Sales
Order/Billing Document Items.
5. Scroll to Attachments and if some Sales Order/ Billing Document items were skipped, the Skipped Sales
Order Items file will be displayed.
6. Go to SAP SuccessFactors Incentive Management > Express Data Loader (XDL) > Jobs and check the
status of the job with the name from step 4. Make sure that Status is Success and the number of Success
statuses should be the same as number of processed items from step 4.
This section provides information on how to handle integration flow errors and exceptions.
Express Data Loader (XDL) in SAP SuccessFactors Incentive Management validates the data and if there are
any failures, you can download the file with errors from the user interface.
Exceptions
If there are any errors, you must check the pipeline in SAP SuccessFactors Incentive Management and fix the
system data (Event Type, Currency etc.) or the stage data (in Transaction itself) before rerunning the failed
batch transfer again. There is no need to fetch the data again from SAP S/4HANA since the data is already in
the stage tables.
In case of Exceptions in the flow, the local variable of the last processed record will not be updated. When
the Integration flow is re-run, it fetches all the records modified since the last successful run. When the flow
needs to be started from the Initial Start Date, you must remove the variable with the last processed record
timestamp (which has a configurable name).
In the SAP S/4HANA Integration with SAP SuccessFactors Incentive Management package, an additional
integration flow Send Email Notification for SAP SuccessFactors Incentive Management integration is
provided, which is meant to be used for sending email notification to the other two integration flows in the
package (Replicate Sales Order Items from SAP S/4HANA and Replicate Billing Document Items from SAP
S/4HANA).
• You must provide the email server details, which will be used to send notifications.
• You must configure the chosen integration flow to call the notification extension flow.
Notification Content
The Send Email Notification for SAP SuccessFactors Incentive Management integration flow sends an
email when the flow execution fails the first time.
The Notification flow sends an email only when the execution status is changed from the last execution. Based
on that, the configured email receiver will get one email when flow starts falling and the next email when the
flow starts passing without any error.
Sender: In the Address field, the Process Direct address is displayed, and it can be changed if it is already
changed for the main flow. You must enter the same value as you did in the main flow in Configure > Receiver >
NotificationExtensionFlow > Address.
Receiver: You can configure all the email settings related to the email server and email receivers.
The Notification Extension Flow uses the SAP Integration Suite global variable to store the status of the last
flow execution. Based on the status value, the Notification Flow decides if the notification email should be
sent or not. Notification is sent only if the status changes. If you have two instances of this flow on the same
Integration Suite tenant, you need to change the name of the variable.
This section highlights some differences in SAP S/4HANA sales orders and billing documents comparison
toSAP SuccessFactors Incentive Management transactions and explains the chosen mapping approach in the
The flow maps SAP S/4HANA sales document items to SAP SuccessFactors Incentive Management
transactions. The below table provides an explanation of how the identifying fields of the Incentive
Management transactions are mapped.
LINENUMBER SalesOrderItem -
• EVENTTYPEID = SalesOrderItem-
Category (The item category de-
fines how an order item is proc-
essed in SAP S/4HANA.)
• EVENTTYPEID = SalesOrderType +
SalesOrderItemCategory
• Value mapping of the relevant SAP
S/4HANA attribute to the existing
SF Incentive Management event
type ids.
In SAP S/4HANA sales documents, these attributes mainly control how a sales document item is processed
and. what data it contains.
The default query in the flow reads these sales document items:
You must evaluate if this fits your business needs and adjust the query as needed.
An SAP S/4HANA sales document can contain an item hierarchy tree that consists of several levels. You must
determine which hierarchy levels / item categories to transfer to SAP SuccessFactors Incentive Management,
if you are using an item hierarchy. Otherwise, you may transfer the same SAP S/4HANA revenue several times
toSAP SuccessFactors Incentive Management causing wrong compensation calculations.
The integration flow by default maps these SAP S/4HANA currency amounts from S/4HANA to SAP
SuccessFactors Incentive Management:
• Sales Orders
• Billing Documents
• Sales Contracts
• Sales Quotations
• Service Contracts
You must evaluate if this flow fits your business needs and adjust the transformation to include dedicated SAP
S/4HANA pricing conditions as needed.
The following table describes the terms and abbreviations used in this section and related topics.
S/4HANA Sales Entity Sales data transferred by flow depending on the chosen flow,
for example, Sales Order.
Related Information
This section describes the integration between SAP SuccessFactors Incentive Management, Identity
Authentication, and Identity Provisioning. This integration allows seamless login to users who are synced
between these applications as well as user provisioning.
SAP SuccessFactors Incentive Management supports integration with the following two applications:
• Identity Authentication - In this application, you can create different types of SAP SuccessFactors Incentive
Management users. Depending on the user synchronization approach, this application can behave either
as the source or target system.
• Identity Provisioning - In this application, you can start the user sync job, and monitor the synchronization
process.
URL
You will be provided with the SAP IdP based SAP SuccessFactors Incentive Management URL. This URL
prompts users to enter their user ID and password via IdP and redirects users to SAP SuccessFactors Incentive
Management
User Provisioning
The integration supports user provisioning both in the bottom-up and top-down user synchronization
approach. In order to enable this, you need to define target and source systems in your environment.
Introduction
This integration enables you to connect SAP SuccessFactors Incentive Management to the Identity
Authentication service to leverage the following benefits:
Integration uses a bottom-up approach. Users are created in SAP SuccessFactors Incentive Management and
replicated to Identity Authentication. This is a one-way provisioning. No user information is replicated back
from Identity Authentication to SAP SuccessFactors Incentive Management.
The user administrator mainly works in SAP SuccessFactors Incentive Management. Users are maintained
inSAP SuccessFactors Incentive Managementand replicated to Identity Authentication.
1. The SAP SuccessFactors Incentive Managementuser administrator creates new business user in Incentive
Management.
2. The scheduled read job in Identity Provisioning reads the new user from SAP SuccessFactors Incentive
Managements and creates a new user in Identity Authentication.
3. The Business User receives an onboarding email notification from Identity Authentication.
4. The E-Mail contains a link to the Identity Authentication User Profile. The Business User clicks on it and
sets his/her password in Identity Authentication.
5. The Business User logs on to SAP SuccessFactors Incentive Management. The user will access the
Incentive Management SSO URL.
6. SAP SuccessFactors Incentive Management redirects to the Identity Authentication login page where the
business user logs in.
7. Identity Authentication redirects to the SAP SuccessFactors Incentive Management welcome page on
successful login.
Incentive Management Admin Users Example: Administrators that configure SAP SuccessFactors
Incentive Management
There are different ways to create users in SAP SuccessFactors Incentive Management:
• Via the UI option available in Incentive Management Portal and Incentive Management Admin
(mentioned in the section above).
• Via remote APIs.
The following image explains how the different records are linked with each other:
This topic lists some sample integration scenarios between SAP SuccessFactors Incentive Management and
the Identity Authentication service with the required configuration details.
To enable Single-Sign-On via Identity Authentication for all Incentive Management Admin users, it is sufficient
to replicate the Incentive Management Portal users. Replication of Incentive Management Admin users is not
required. Replication of user to group/role assignments is also not required.
We need one source system in Identity Provisioning for Incentive Management Portal that reads the Portal
users and one target system for Identity Authentication to replicate the users into Identity Authentication.
For this scenario, the user replication setup is the same as described in the Scenario 1 above. The
configuration of Multi Factor Authentication is done completely in Identity Authentication. See Configure
Risk-Based Authentication for an Application for details on how to configure MFA in Identity Authentication.
Let’s assume the goal is to enforce MFA for Incentive Management Admin Users but not for all users, e.g. not
for participants. Identity Authentication supports this case via “risk-based authentication”. One can define a
rule that all users with the role “Administrator” need to present a second factor when logging in.
The replication of Incentive Management Portal and Incentive Management Admin users plus groups will now
look like this:
Additionally:
Identity Authentication would decide, for example, based on the group “Administrator” that the user has
presented a second factor to authenticate. Therefore, Identity Authentication needs to be aware of the group
assignments done in Incentive Management Admin.
The configuration to replicate Incentive Management Portal and Incentive Management Admin users plus
groups in Identity Provisioning for this scenario is as follows:
See Configuration to Replicate Incentive Management Portal Users [page 414] and Configuration to Replicate
Administration Users [page 431] for details on configuring User Replication for the different scenarios that are
illustrated in this topic.
Create a user in Incentive Management Portal with role as Portal Admin and set a password. Identity
Provisioning will call the SAP SuccessFactors Incentive Management SCIM API with this user.
Note
It is recommended to create a separate user for this integration instead of reusing an existing one. A
separate user would mean better separation of concerns and better traceability in case of issues.
The SAP Note 2999357 contains a sample configuration for the source system that one can upload
to Identity Provisioning. Please download the attachment Bottom-Up-Source-SAP-Commissions-Portal-
V3.json. The provided configuration is a recommendation and is optional to use.
Note
Do not use the existing System Type “SAP SuccessFactors Incentive Management”.This system type only
works with an older version of the SAP SuccessFactors Incentive Management SCIM API.
On the Source System Creation page, select the Define from File option and upload the file Bottom-Up-
Source-SAP-Commissions-Portal-V3.json here. The source system is now populated with the values
from this file. Then, perform the following changes:
Tab Details
Tab Transformations
In case you don’t require groups and user to group assignments to be transferred, you can discard them using
the transformation expression “ignore” as explained in Transformation Expressions.
Tab Properties
Password < Password assigned in Portal> Enter the password you assigned the
portal user.
User < Portal user id of the user created Enter the portal user name created be-
above > fore.
Create a target system for SAP Identity Authentication if not already there. See Identity Authentication.
The SAP Note 2999357 contains a sample configuration for the target system that one can upload
to Identity Provisioning. Please download the attachment Bottom-Up-Target-SAP-IAS-V3.json. The
provided configuration is just a proposal. It is optional to use it.
On the Target System Creation page, use the Define from File option and upload the file Bottom-Up-Target-
SAP-IAS-V3.json here. The target system is now populated with the values from this file. Then, perform the
following changes:
Tab Details
Tab Properties
If you are using Identity Authentication solely for SAP Incentive Management, you will have user sync
configured during tenant provisioning, with the current default using Identity Authentication SCIM v1.
If you are using multiple SAP products sharing the same Identity Authentication, you must decide how to
configure user sync. If Incentive Management is chosen as the source system, follow the steps in this topic to
manually configure the user sync.
Note
Identity Authentication SCIM v1 does not make groups in user properties read-only, which causes issues
when deleting groups during the Incentive Management sync job. To resolve this, Identity Provisioning
transformations with Identity Authentication SCIM v2, which sync groups through the group resource must
be used. The assingGroup function in Identity Provisioning transformations will sync Embedded Analytics
groups to Identity Authentication. To identify the SCIM version, check the ias.api.version property in
the target system.
If another source system is already enabled, syncing will overwrite user properties from the target system
with values from Incentive Management. To avoid this, remove property mappings or set 'ignore': true on
those mappings. For attribute patching, refer to the Patched and Merged Attributes documentation and
adjust the transformation accordingly.
Procedure
1. Create the OIDC Application in Identity Authentication. Next, in Incentive Management, create the Service
Account record with "IPS-SCIM-{clientIdFromIASApplication}" as the Display Name. This is
used for communication between Identity Provisioning and Incentive Management. See Service Account
Authentication for more information on how to create OIDC application and Service Accounts.
• Assign the Incentive Management Admin group to this service account that has all the permissions
to work with Users and Groups (for example, Administrator group; this group may have other
permissions too which are not required).
• Assign Sales Portal Administrator as Role to this service account.
• Save the clientId and clientSecret.
2. Create the Identity Authentication system user that will be used for communication between Identity
Authentication and Identity Provisioning. See Add New Administrators for more information on how to
create system users.
Sample Code
{
"connectorTypeString": "SALESCLOUD_COMM",
"accessMode": "READ",
"destinationName": "",
"alias": "This is a source system for Incentive
Management portal users",
"gitAllowedExpressions": [],
"gitDisallowedExpressions": [],
"emailSubscribers": [],
"name": "IncentiveManagement_SOURCE_PORTAL",
"state": "ENABLED",
"systemManagementType": "CUSTOMER_MANAGED",
"properties": {
"Authentication": "BasicAuthentication",
"ips.delta.read": "enabled",
"ips.full.read.force.count": "3",
"ips.trace.failed.entity.content": "true",
"OAuth2TokenServiceURL": "$IAS_BASE_URL$/
oauth2/token",
"ProxyType": "Internet",
"Type": "HTTP",
"URL": "$INCENTIVE_MANAGEMENT_BASE_URL$/
usersvc/portal",
"User": "$SERVICE_ACCOUNT_CLIENT_ID$"
},
"encryptedProperties": {
"Password": "$SERVICE_ACCOUNT_CLIENT_SECRET$"
},
"automaticOutboundCertificateRenew": false,
"transformationChanged": false,
"readTransformationChanged": false,
"writeTransformationChanged": false,
"fromImport": false,
"transformation": {
"user": {
"mappings": [
{
"sourcePath": "$.userName",
"targetPath": "$.userName",
"correlationAttribute": true
},
{
"sourcePath": "$.id",
"targetVariable":
"entityIdSourceSystem"
},
{
"sourcePath": "$.name",
"optional": true,
"targetPath": "$.name"
},
{
"sourcePath": "$.userType",
"optional": true,
"targetPath":
"$.incentiveManagementUserType"
},
{
"sourcePath": "$.displayName",
Sample Code
{
"connectorTypeString": "SALESCLOUD_COMM",
"accessMode": "READ",
"destinationName": "",
"alias": "This is a source system for Incentive
Management admin users",
"gitAllowedExpressions": [],
"gitDisallowedExpressions": [],
"emailSubscribers": [],
"name": "IncentiveManagement_SOURCE_ADMIN",
"state": "ENABLED",
"systemManagementType": "CUSTOMER_MANAGED",
"properties": {
"Authentication": "BasicAuthentication",
"ips.delta.read": "enabled",
"ips.full.read.force.count": "3",
"ips.trace.failed.entity.content": "true",
"OAuth2TokenServiceURL": "$IAS_BASE_URL$/
oauth2/token",
"ProxyType": "Internet",
"Type": "HTTP",
"URL": "$INCENTIVE_MANAGEMENT_BASE_URL$/
usersvc/admin",
"User": "$SERVICE_ACCOUNT_CLIENT_ID$"
},
"encryptedProperties": {
"Password": "$SERVICE_ACCOUNT_CLIENT_SECRET$"
},
"automaticOutboundCertificateRenew": false,
"transformationChanged": true,
"readTransformationChanged": false,
"writeTransformationChanged": false,
"fromImport": false,
"transformation": {
"user": {
"mappings": [
{
"sourcePath": "$.userName",
"targetPath": "$.userName",
"correlationAttribute": true
},
{
"sourcePath": "$.id",
"targetVariable":
"entityIdSourceSystem"
},
{
"sourcePath": "$.name",
"optional": true,
"targetPath": "$.name"
},
{
"sourcePath": "$.userType",
"optional": true,
"targetPath":
"$.incentiveManagementUserType"
},
{
"sourcePath": "$.displayName",
Sample Code
{
"connectorTypeString": "SAP_CLOUD_IDENTITY",
"accessMode": "WRITE",
"destinationName": "",
"alias": "This is a IAS target system for
Incentive Management application",
"relatedSystems": [
"IncentiveManagement_SOURCE_PORTAL",
"IncentiveManagement_SOURCE_ADMIN"
],
"gitAllowedExpressions": [],
"gitDisallowedExpressions": [],
"emailSubscribers": [],
"name": "IncentiveManagement_IAS_TARGET",
"state": "ENABLED",
"systemManagementType": "CUSTOMER_MANAGED",
"properties": {
"Authentication": "BasicAuthentication",
"ias.api.version": "2",
"ias.content.type": "application/scim+json",
"ias.support.patch.operation": "true",
"ias.user.unique.attribute": "userName",
"ips.delete.existedbefore.entities": "false",
"ips.failed.request.retry.attempts": "2",
"ips.failed.request.retry.attempts.interval":
"60",
"ips.full.read.force.count": "3",
"ips.trace.failed.entity.content": "true",
"ProxyType": "Internet",
"Type": "HTTP",
"URL": "$IAS_BASE_URL$",
"User": "$SYSTEM_USER_CLIENT_ID$"
},
"encryptedProperties": {
"Password": "$SYSTEM_USER_CLIENT_SECRET$"
},
"automaticOutboundCertificateRenew": false,
"transformationChanged": true,
"readTransformationChanged": false,
"writeTransformationChanged": false,
"fromImport": false,
"transformation": {
"user": {
"condition": "($.emails.length() > 0)",
"mappings": [
{
"sourceVariable": "entityIdTargetSystem",
"targetPath": "$.id"
},
{
"constant": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:
User",
"urn:ietf:params:scim:schemas:extension:sap:2.0:User",
"urn:ietf:params:scim:schemas:core:2.0:Group",
Troubleshooting
If the Identity Provisioning job has failed, the Identity Provisioning > Provisioning Logs dashboard lists the
details.
These are some common errors that may occur during the user sync process and the steps to resolve them:
• "Oauth request failed with status: 401...": Check if the Source systems have the correct username and
password. The username and password should be populated with clientId and clientSecret from the step 1.
• "HTTP operation failed with statusCode: "400" and body message "JWT validation failed...": Check if
IAS OIDC application from step 1 is configured correctly (check if "aud" attribute in OIDC application is
configured) and if the Service Account is added in Incentive Management.
• "HTTP operation failed with statusCode: 403...": Check if the correct Role and Group is assigned to the
Service Account from step 1.
• "All target systems are marked as invalid due to the following reasons...HTTP operation failed... with
statusCode: 401": Check if the target system has the correct username and password. The username and
password should be populated with clientId and clientSecret from step 2.
Related Information
Configuring User Sync When Username in Incentive Management is Different than Login Name in Identity
Authentication [page 432]
Create a user in the Incentive Management Admin with role Administrator and set a password. Identity
Provisioning will call the SAP SuccessFactors Incentive Management SCIM API with this user.
Note
The recommendation is to create a separate user for this integration instead of reusing an existing one. A
separate user would mean better separation of concerns and better traceability in case of issues.
The SAP Note 2999357 contains a sample configuration for the source system that one can upload
to Identity Provisioning. Please download the attachment Bottom-Up-Source-SAP-Commissions-Admin-
V3.json. The provided configuration is a recommendation and is is optional to use.
The type of the source system to be created is SCIM System. See related Identity Provisioning documentation
here: SCIM System and Add a System.
On the Source System Creation page, use the option Define from File and upload the file Bottom-Up-Source-
SAP-Commissions-Admin-V3.json here. The source system is now populated with the values from this file.
Later, perform the following changes:
Tab Details
Tab Transformations
Tab Properties
Password < Password assigned in Incentive Man- Enter the password you assigned the
agement Admin > user.
User < Incentive Management Admin user id Enter the user name created before.
of the user created above >
Please reuse the target system defined above. Add the source system for SAP SuccessFactors Incentive
Management in “Source Systems” in the Details tab.
To initially load all relevant SAP SuccessFactors Incentive Managements user records into Identity
Authentication, go to the tab Jobs in the Identity Provisioning system and run a read job as explained in Start
and Stop Provisioning Jobs. Check the job logs as explained in Manage Provisioning Job Logs.
You can schedule a periodic job for the ongoing automatic transfer of user changes from SAP SuccessFactors
Incentive Managements to Identity Authentication. One can receive E-Mail alerts in case of errors.
If Identity Authentication is already populated with users and those users have a different Login Name
in Identity Authentication than the Username in Incentive Management, additional changes in the Identity
Authentication SAML application and Identity Provisioning transformations are required.
This sections illustrates the steps to perform when the Username in Incentive Management is different than the
Login Name in Identity Authentication. For example, if the Username in Incentive Management is same as the
User Email (and not the Login Name) in Identity Authentication, perform the following steps:
Sample Code
{
"sourcePath": "$.userName",
"targetPath": "$.userName"
}
New Mapping:
Sample Code
{
"sourcePath": "$.userName",
"targetPath": "$.userName",
"scope": "createEntity"
}
• Search for the entity correlation mapping and set the email value instead of userName as shown in
the sample code below:
Default Mapping:
Sample Code
{
"constant": "userName",
"targetVariable": "entityCorrelationAttributeName"
},
{
"sourcePath": "$.userName",
"targetVariable": "entityCorrelationAttributeValue"
New Mapping:
Sample Code
{
"constant": "emails.value",
"targetVariable": "entityCorrelationAttributeName"
},
{
"sourcePath": "$.emails[0].value",
"targetVariable": "entityCorrelationAttributeValue"
}
• Search for the email mapping and add the createEntity scope as shown in the sample code below:
Default Mapping:
Sample Code
{
"sourcePath": "$.emails[*].value",
"targetPath": "$.emails[?(@.value)]",
"preserveArrayWithSingleElement": true
}
New Mapping:
Sample Code
{
"sourcePath": "$.emails[*].value",
"targetPath": "$.emails[?(@.value)]",
"preserveArrayWithSingleElement": true,
"scope": "createEntity"
}
Related Information
Setting Up User Synchronization from SAP Incentive Management to Identity Authentication Using Identity
Authentication SCIM v2 [page 416]
In the top-down user synchronization approach, users are created in the Identity Authentication application
and pushed to SAP SuccessFactors Incentive Management, using the Identity Provisioning application. In this
process you can create users who belong to the following user groups:
• Participants
• Approvers
• Managers
• Administrators
Participant records and the user records in SAP SuccessFactors Incentive Managementare separate records.
They are linked by the user id (field name “User Name” in the Participant UI).
The Identity Authentication > SAP SuccessFactors Incentive Management integration only creates Incentive
Management Portal user records in SAP SuccessFactors Incentive Management, not full-blown Participant
records.
Participant records need to be created separately. They can be created in the UI, via the REST API or via file
upload.
It doesn’t matter if the Participant record is created first or if the user record is created first.
1. A participant with participant id “Jane_Doe” is created. The user name is set to “jane_doe”.
2. The system automatically creates the Incentive Management Portal user with user id “jane_doe”.
3. A user “jane_doe” is created in Identity Authentication.
Procedure
The next part of the user creation process is conducted in the Identity Provisioning application. These steps
are only relevant if there is no scheduled read job in Identity Provisioning that periodically replicates users from
Identity Authentication to SAP SuccessFactors Incentive Managements.
Log into SAP SuccessFactors Incentive Management to verify that the participant user is successfully created.
Perform the following steps to create an Administrator using the Top-Down Process.
The next part of the user creation process is conducted in the Identity Provisioning application.
Result: The administrator user is now successfully added to SAP SuccessFactors Incentive Management.
Perform the following steps to create a Manager User Group using the Top-Down Process.
The next part of the user creation process is conducted in the Identity Provisioning application.
Result: The user from the manager user group is now successfully added to SAP SuccessFactors Incentive
Management.
Perform the following steps to create an Approver User Group using the Top-Down Process.
Result: The user from the approver user group is now successfully added to SAP SuccessFactors Incentive
Management.
SAP SuccessFactors Incentive Management requires users to authenticate using SAP Cloud Identity Services
for SSO. SSO configuration is available by default. If a different SAP IDP is used, it is set up during
the tenant provisioning process. When a customer is using corporate IdP to authenticate users, Identity
Authentication Service is configured to use corporate IdP for user authentication. The purpose of this setup
is to enable corporate IdP for SSO with Identity Authentication Service to log in to SAP SuccessFactors
Incentive Management. Corporate IdP is configured for users with a corporate e-mail domain using conditional
authentication rules, and all other users are authenticated using Identity Authentication Service.
Note
The SAML authentication protocol is used to enable secure communication between SAP Identity
Authentication and SAP SuccessFactors Incentive Management. OpenID Connect based authentication
is not supported by SAP SuccessFactors Incentive Management currently.
Single Sign-On (SSO) enables single sign-on and single identity synchronization across the sales performance
management solutions in the SAP SuccessFactors portfolio.
Single Sign-On uses SAP Cloud Identity Services to support the use of either direct single sign-on or federated
single sign-on.
Sales performance management solutions Single Sign-On is powered by SAP Cloud Identity Services, which
contains:
• Identity Authentication Service - An IdP that supports user and group management and allows
configurations for single sign-on. This IdP can also act as a service-provider, if needed.
• Identity Provisioning Service - Provisions users from Identity Authentication to the applications or service
providers, and vice versa from applications to Identity Authentication. This solution provides a unified
customer experience across sales performance management applications and provides a single point of
entry for user onboarding and access control.
Identity Authentication service acts as the identity provider and user store. When customer tenants are
provisioned, Direct Single Sign-On is already configured and activated for customers.
Customer's preferred corporate identity provider is used for federated single sign-on. The following image
depicts the technical architecture of sales performance management Single Sign-On using federated single
sign-on. Security Assertion Markup Language (SAML) is used to connect Identity Authentication service
with the corporate identity provider. The articles in this topic primarily focus on setting up Federated Single
Sign-On.
SAML is primarily used for single sign-on (SSO) authentication and access control. SAML certificates are
generated when a tenant is created. Two distinct certificates are generated for signing and encryption
purposes. These certificates remain valid for a duration of 1 year. To ensure uninterrupted service, new
certificates are generated 1 month before the expiration of the existing ones. The older certificates continue to
be used until their expiration date. During this 1 month, we allow the IAS administrator ample time to update
SAML IAS applications with the new certificates.
• IAS SAML application (both signature and encryption certificates are used)
• IAS OIDC application (only signature certificates are used)
Procedure
Note
If there are two certificates in active status, the second one is the most recent.
Note
You cannot upload the metadata file because it will read only one certificate.
6. In the Signing Certificate configuration section, choose Add. You need to manually add the signing
certificate copied in step 2.
Note
You can define only 2 signing certificates in the SAML IAS application. If there is already one signing
certificate defined in the Identity Authentication, you just need to add the newest certificate from step
2. If there are already two signing certificates defined in Identity Authentication, you need to delete the
expired one (oldest one) and add the newest signing certificate from step 2. If you delete the signing
certificate that is still active, it will interrupt the service and users will not be able to log in to SAP
SuccessFactors Incentive Management.
8. In the Encryption Certificate configuration section, choose Add. You need to manually add the encryption
certificate copied in step 2.
You can define only one encryption certificate in the SAML IAS application. In order to add a new one,
you need to delete the current one, and then add the newest encryption certificate copied in step 2.
14. Choose Add and in Insert as Text, add the signing certificate copied in step 2.
SAP BTP is a cloud-based development platform that offers robust and powerful capabilities to connect
and integrate Incentive Management to various applications and data sources with both SAP and non-SAP
products. These prebuilt SAP BTP services can be leveraged to meet the sales performance management
(SPM) requirements for Data Management and Analytics, which allows for faster and scalable preprocessing,
optimization, and analysis of data. This helps to improve overall business efficiency and drives data-driven
decisions for better business outcomes.
SAP Datasphere is a comprehensive SAP BTP data service that provides a unified experience for data
federation, virtualization, integration, and warehousing needs. It can seamlessly connect with the SAP
Incentive Management on SAP HANA database system using an out-of-the-box cloud connector and act
as a central location to bring data from other data sources and landscapes and facilitate integrations with
Incentive Management. Additionally, SAP Datasphere also provides a platform to design and build analytical
models, which makes the consumption of analytical data in SAP Analytics Cloud, or by third party reporting
and analytical tools, easier.
SAP Automation Pilot, also an SAP BTP service, can be utilized to automate the complex manual processes
and increase operational efficiency. By using the SAP SuccessFactors Incentive Management provided
command catalog within SAP Automation Pilot, the service events can be orchestrated to move large volumes
of data to Incentive Management, execute pipeline jobs, and build various custom scenarios. The ability to
configure SAP Alert Notifications Services with SAP Automation Pilot makes it easier to create and manage
alerts and receive real-time notifications on each of the process tasks. It also provides capabilities to schedule
and monitor the execution of the jobs from a centralized module.
When SAP BTP is used as an agile innovation platform, customers can benefit with reduced total cost of
ownership, faster time-to-value. and future-prove their investment and architecture.
You must first open a SAP support case as per the instructions provided in the related knowledge base
article .
Once the setup is complete, the SAP Datasphere tenant contains a prebuilt connection to the Incentive
Management database. Using this connection, data can be read from both TCMP and EXT schemas. Data can
be written only to select permitted tables of the TCMP and all tables within the EXT schema.
Refer to the following training material for more information on BTP Datasphere:
SAP Automation Pilot and SAP Alert Notification Service Integration with
SAP SuccessFactors Incentive Management
SAP Automation Pilot and SAP Alert Notification Service are BTP services used for the processing,
orchestration, and automation of technical and business operations. See the SAP Automation Pilot
documentation and the SAP Alert Notification documentation for more details.
SAP SuccessFactors Incentive Management delivers accelerator catalogs for SAP Automation Pilot and SAP
Alert Notification Service that can be used by customers and partners for out-of-the-box integrations.
See the respective help topics for more information on the default catalogs:
• Importing the Default Core Catalog for SAP SuccessFactors Incentive Management [page 451]
• Importing the Default Tenant Specific Catalog for SAP SuccessFactors Incentive Management [page 457]
• Importing the Default Catalog for SAP Alert Notification Service [page 448]
• SuccessFactors Incentive Management Core Catalog: The core catalog is based on non-tenant-specific
data. It makes use of internal sequences (for periods, calendars, etc.) and all commands require
mandatory inputs for connectivity parameters. See Importing the Default Core Catalog for SAP
SuccessFactors Incentive Management [page 451] for more details.
• SuccessFactors Incentive Management Tenant Catalog: The tenant catalog needs to be instantiated
for individual tenants. It requires a one-time configuration of a catalog input for connectivity parameters
for Incentive Management and Data Sphere. It also requires synchronization of master data for Periods,
Calendars, Period Types, and Processing Units. The delivered commands in the tenant catalog derive the
connection parameters from the inputs. Also, the required parameters are based on user-friendly fields
but not internal sequences. See Importing the Default Tenant Specific Catalog for SAP SuccessFactors
Incentive Management [page 457] for more details.
The default Automation Pilot catalogs provide commands for the following functionalities:
Partners are encouraged to use the default Automation Pilot commands to create new commands as an
orchestration process based on the Incentive Management catalog commands. The implementation team may
clone any of the default commands and perform modifications as needed.
The default catalog for Alert Notification Service enables email notifications after the following events:
The Incentive Management Core catalog contains an input called ANSConnection, which provides an
integration point between Automation Pilot and Alert Notification Service.
See Importing the Default Catalog for SAP Alert Notification Service [page 448] for more details.
Related Information
The compensation administrators and datasphere administrators receive email notifications about the status
of execution pipelines or task chains through SAP Alert Notification Service. To receive notifications regarding
the status of the commands in SAP Automation Pilot, you must configure the Alert Notification Service.
The following table lists all the objects that are delivered with the Alert Notification Service template.
Subscription Description
Action Description
Condition Description
To import the SAP Alert Notification Service command catalog, perform the following procedure:
After importing the catalog, Subscriptions, Actions, and Conditions as shown in the screens below are
created.
Related Information
Default Catalogs for Automation Pilot and Alert Notification Service [page 447]
The default core catalog for SAP SuccessFactors Incentive Management is Success Factors Incentive
Management Core.
Command Description
checkAndWaitForDataSphereTaskChain Check status and wait until Data Sphere task chain finishes.
runFullApproveCalcDataPipeline Run a full approve pipeline and wait for the result.
runFullCompAndPayPipeline Run a full compensate and pay pipeline and wait for the
result.
Input Description
See Configuring a Service Account for Automation Pilot [page 453] and Configuring Connectivity to SAP Alert
Notification Service [page 455] for information on configuring the required inputs.
Procedure
To import the core command catalog into SAP Automation Pilot, perform the following procedure:
1. Download [page 499] the Success Factors Incentive Management Core command catalog file and
save it locally.
2. Copy the content of the downloaded Success Factors Incentive Management Core catalog file.
3. Go to your SAP Automation Pilot tenant and navigate to My Catalogs.
4. Choose Import.
After importing the catalog into SAP Automation Pilot, you'll see a new catalog tile – SuccessFactors Incentive
Management Core. From there, you can navigate to all commands and inputs which are part of the catalog.
Related Information
For SAP Automation Pilot, the Success Factors Incentive Management Core command catalog
requires an additional service account.
1. To create the additional service account, go to SAP Automation Pilot and choose the Service Accounts
tab.
2. Choose Create.
3. In the Create Service Account dialog, enter the following details:
• Username: Enter a username that doesn't already exist within the Automation Pilot instance.
• Description: Provide any desired description for the account.
• Permissions: Select both Read and Write permissions.
• Authentication Type: Choose Basic as the authentication type.
4. Choose Create. A new service account (username) is created and a new password is generated.
5. To populate the username and password in the serviceAccountCredentials input, configure the input
serviceAccountCredentials with the username and password generated in step 4. (See the following
screenshot for example. The username is T000168R3-IncentiveManagement).
Importing the Default Core Catalog for SAP SuccessFactors Incentive Management [page 451]
You must create a service key for the SAP Alert Notification Service and configure the ANSConnection in SAP
Automation Pilot. This connection enables Automation Pilot to trigger email notifications as required.
Procedure
1. To configure connectivity to SAP Alert Notification Service, log in to SAP Alert Notification Service and
choose Create Service Key.
3. Choose Create. A newly created service key is displayed as shown in the following example:
Related Information
Importing the Default Core Catalog for SAP SuccessFactors Incentive Management [page 451]
The tenant specific catalog must be imported and configured separately for each Incentive Management
tenant. The tenant specific catalog includes two inputs (connections) to the Incentive Management system and
the BTP Datasphere.
Command Description
execFullApproveCalcDataPipeline Execute a full approve pipeline and wait for the result.
execFullCompAndPayPipeline Execute a full compensate and pay pipeline and wait for the
result.
syncAllMasterData Get all calendars, period types, processing units and periods
from Incentive Management.
Input Description
Procedure
To import the core command catalog into SAP Automation Pilot, perform the following procedure:
1. Download [page 499] the Success Factors Incentive Management Tenant command catalog file
and save it locally.
2. Copy the content of the downloaded SuccessFactors Incentive Management Tenant catalog file.
• For each of the tenants that will be used, clone the downloaded copy of the JSON file, and replace all
occurrences of the keyword SFIMTENANT with SFIM<TENANTID>, for example, SFIMG123.
• Update the default Name: Change from the default "Success Factors Incentive Management Tenant"
to a descriptive and meaningful name for this individual customer, such as "UAT G123" or "Production
G456".
5. Paste the catalog's content with “Extended Catalog as JSON” placeholder in the text and choose Import.
After importing the catalog into SAP Automation Pilot, you'll see a new catalog tile as illustrated below. From
there, you can navigate to all commands and inputs which are part of the catalog.
Related Information
Procedure
1. Provide connectivity parameters for SFTP in the input SFTPConnection. It has 4 keys: host, port,
privateKey, and username.
2. Copy the host, port, and username details from Express Data Loader > File Transfer Settings for the
required tenant and populate them in the input.
3. For the privateKey parameter, a private/public pair needs to be created. First, upload the public key to
Express Data Loader > File Transfer Settings. After that, convert the private key into the openSSH format
(if not already in this format), then base64 encode it, and populate it in the input.
You need to configure the connectivity parameters for the Incentive Management tenant
at input SFIMConnection. It consists of 5 keys: clientId, clientSecret, domain (default value
is .app.commissions.cloud.sap), tenantId (four-letter identifier, such as G123), and tokenUrl.
See Service Account Authentication for instructions on how to obtain the required parameters.
To configure the required SFIM connection parameters, go to Success Factors Incentive Management
<Tenant> catalog > inputs > SFIMConnection and provide the required details:
See Create OAuth2.0 Clients to Authenticate Against SAP Datasphere and Authorized Consent Settings for an
overview.
You will require the copied information to complete the configuration steps described inObtaining SAP
Datasphere Refresh Token below.
The Refresh Token will have to be obtained by the SAP Datasphere administrator once every month. See
Accessing SAP Datasphere via the Command Line for more details on the process.
1. In the SAP Datasphere administrator's system, in a CMD or shell console, install datasphere CLI with:
Sample Code
2. Validate that the datasphere CLI is installed with the following command. It should return the latest
datasphere CLI version.
Sample Code
datasphere --version
3. Set the host of datasphere. <url> is the URL of datasphere. It should be the main url without any URI.
Sample Code
Sample Code
datasphere login
Please enter your client ID: … <Client ID>
Please enter your client secret: … ****
Please enter your authorization URL: … <Authorization URL>
Please enter your token URL: … <Token URL>
A browser popup is displayed and the datasphere administrator must provide their username and
password to continue.
5. Run:
Sample Code
6. Find the section with refresh_token and make a note of this value:
To configure the SAP Datasphere input connection, go to SAP Automation Pilot > <Tenant> catalog > Inputs
> Datasphere Connection and provide the following details:
Importing the Default Tenant Specific Catalog for SAP SuccessFactors Incentive Management [page 457]
The tenant catalog uses the following inputs as list of values for the master data used in SAP SuccessFactors
Incentive Management. The keys of each input for each tenant is unique. For example, every tenant will have a
different list of calendars or a different list of periods.
• ProcessingUnits
• Calendars
• PeriodTypes
• Periods
The list of values for all the four types is synchronized with the SAP SuccessFactors Incentive Management
application and populated in Automation Pilot. After the initial import of the tenant catalog, the administrator
must manually trigger each command individually in the following order:
1. syncAllProcessingUnits
2. syncAllCalendars
3. syncAllPeriodTypes
4. syncAllPeriods
After the initial synchronization, the administrator can schedule automatic synchronization (for example on a
weekly basis) - syncAllMasterData.
This command synchronizes all processing units within Incentive Management with the automation pilot
catalog input processingUnits.
• getProcessingUnitsList: This executor reads all the data from the Incentive Management and produces a
JSON output which contains key/value pairs of type internal sequence/user friendly text.
• transformProcessingUnitNames: Internal transformation step of the json input from the previous step.
• transformation: This command uses Automation Pilot API and populates the input processingUnits with
values that are filtered in the previous step.
syncAllCalendars
This command synchronizes all calendars in Incentive Management with input calendars.
• getCalendarsList: This executor reads all the data from the Incentive Management and produces a JSON
output which contains key/value pairs of type internal sequence/user friendly text.
• transformCalendarNames: Internal transformation step of the json input from the previous step.
• transformation: This command uses Automation Pilot API and populates the input calendars with values
that are filtered in the previous step.
syncAllPeriodTypes
This command synchronizes all period types in Incentive Management with input periodTypes.
• getPeriodTypesList : This executor reads all the data from the Incentive Management and produces a
JSON output which contains key/value pairs of type internal sequence/user friendly text.
• transformPeriodTypeNames: Internal transformation step of the json input from the previous step.
• transformation: This command uses Automation Pilot API and populates the input periodTypes with
values that are filtered in the previous step.
• Additional values: Keys from SFIMConnection input for connection with Incentive Management.
syncAllPeriods
This command synchronizes all periods in Incentive Management with input periods. It is more complex than
previous sync commands as it uses values. When the command is triggered, the administrator must provide
the following inputs: calendar, periodType, start Year (default 2023) and end Year (default 2025). Considering
the start year and the end year, the number of the calculated periods (for the particular calendar/period type)
should be less than 100.
• getPeriodsList: This executor reads all the data from the Incentive Management and produces a JSON
output which contains key/value pairs of type internal sequence/user friendly text.
• transformPeriodNames: Internal transformation step of the json input from the previous step.
• transformation: This command uses Automation Pilot API and populates the input periods with values
that are filtered in the previous step.
• calendarValue: This additional value is used for getting value for sequence for calendar that is chosen from
dropdown in the input of this command.
• periodTypeValue: This additional value is used for getting value for sequence for periodType that is chosen
from dropdown in the input of this command.
syncAllMasterData
This command is used as a combination of the four commands and as such is convenient for scheduling and
having these inputs updated on a daily basis.
Input is the same as for syncAllPeriods command: Calendar, PeriodType, Start Year, End Year.
Procedure
2. Under Configuration, select the tenant catalog syncAllMasterData for Command. Provide the required
details and choose Next Step.
3. Provide the input Parameters as specified below and choose Next Step.
• calendar: For example, Main_Monthly_Calendar
• periodType: For example, month
• endYear and startYear string: Only the periods with the specific period type between startYear and
endYear will be synchronized with Automation Pilot. Choose these inputs carefully - only 100 periods
can be synchronized with Incentive Management. If startYear and endYear are too far apart, the
command fails.
The commands from the core catalog require a deeper understanding of the Incentive Management system.
The inputs for master data, such as calendars and periods, are not user-friendly texts but rather internal
technical sequences. Additionally, you must always explicitly provide the connectivity parameters for the
Incentive Management system
Related Information
A command called runXDLDataExtract is available in the core catalog. This command is used to run XDL data
extract stage from the pipeline through triggering API.
There is a corresponding command in tenant catalog called execXDLDataExtract. It internally invokes invokes
runXDLDataExtract command from core catalog.
• clientId, clientSecret, domain, tokenUrl, tenantId: Connectivity parameters for Incentive Management.
• fileType: Outbound file type that will be run in XDL.
• ANSClientID, ANSClientSecret, ANSUrl: Connectivity parameters for Alert Notification Service.
• dataFilter: This parameter is used as an input parameter for the EXT procedure which is used for extracting
data. (This is an optional parameter and it can also be left blank if EXT procedure expects no input
parameters. If EXT procedure has two or more input parameters, then there must be comma delimited
within the dataFilter input.)
Output Parameters
Output Parameters
Internal Executors
• triggerVNTPipeline: This command invokes the API to trigger Validate And Transfer pipeline.
• checkAndWaitForPipelineExecution: This executor uses the command checkAndWaitForPipelineExecution
command which takes pipelineRunSeq from the previous step, gets status and message of the pipeline and
pass them to next step.
• sendNotificationAndErrorState: This executor uses the sendNotificationAndErrorState command which is
used for sending email notifications through Alert Notification Service.
A command called runFullCompAndPayPipeline can be used to run compensate and pay pipeline in Full mode.
Output Parameters
• triggerFullCompAndPayPipeline: Invokes the API to trigger Full Comp And Pay pipeline.
• checkAndWaitForPipelineExecution: This executor uses the checkAndWaitForPipelineExecution command
which takes pipelineRunSeq from the previous step, gets status and message of the pipeline and pass
them to next step.
• sendNotificationAndErrorState: This executor uses the sendNotificationAndErrorState command which is
used for sending email notifications through Alert Notification Service.
A command called runFullApproveCalcDataPipeline is available in the core catalog. This command is used to
run Approval Pipeline in Full mode.
Input Parameters
Output Parameters
This command is used to monitor if a file exists in the given directory in an sftp server defined by the
connection parameters Host/Port/Username/PrivateKey. If at least one file exists and it matches the
provided prefix and suffix, then the matching files will be moved to a directory targetDirectory.
The parameter fileNameAfterMove provides possible renaming options for the file rename:
• If the value is same then the file will be moved with the same name as is in the inbound directory
• If a different value is provided, only one of the files will be moved and will be named with the file name
fileNameAfterMove
After the file is moved, a new alert will be triggered to the Alert Notification Service with event type as provided
in the input parameter eventType. Then the project team will process the alert by triggering the corresponding
workflow which processes the files. The workflow maybe another Automation Pilot command or any other ANS
action.
• EventType: Event type that needs to be matched in order to send the notification to Alert Notification
Service.
• Host: Host used for SFTP connection. This can be found in the Express Data Loader (XDL) user interface.
• Port: Port used for SFTP connection. This can be found in the Express Data Loader (XDL) user interfaceI.
• PrivateKey: For privateKey parameter, private/public pair needs to be created. First, you must upload the
public key to the Express Data Loader (XDL) > File Transfer Settings tab. After that, you must convert the
private key into openSSH format (if not already in this format) and then base64 encode it
• Username: Username used for SFTP connection. This can be found in the Express Data Loader (XDL) user
interface.
• InboundDirectory: The field designated for inputting the name of the directory from which the file is
intended to be relocated.
• TargetDirectory: The field designated for inputting the name of the directory to which the file is intended to
be transferred.
• fileNameAfterMove: The field designated for the specification of the new filename after transfer.
Output Parameters
• Debug Message: Full message from SFTP connection (only for debugging purposes).
• Message: A message providing an overall description for the executed pipeline.
Internal Executors
Output Parameters
Output Parameters
Internal Executors
The SuccessFactors Incentive Management Tenant catalog serves as a template for individual SAP
SuccessFactors Incentive Management tenants. If a customer has multiple tenants, they must create a
corresponding number of tenant catalogs using the process outlined in Importing the Default Tenant Specific
Catalog for SAP SuccessFactors Incentive Management [page 457].
Each individual tenant catalog must be configured with the respective tenant connections for SAP
SuccessFactors Incentive Management (See Configuring Connectivity to SAP SuccessFactors Incentive
Management Tenant [page 460]) and SAP Datasphere (See Configuring Connectivity to SAP Datasphere [page
460]).
The next steps use the master data which is already synchronized (as described in Synchronizing Master Data
[page 465]) and eventually scheduling regular synchronizations (See Scheduling Synchronization for Master
Data [page 469]).
These commands are intended for use by compensation administrators and end-users who may not be familiar
with the internal sequences employed by SAP SuccessFactors Incentive Management.
Related Information
The Command execXDLDataExtract uses the command runXDLDataExtract from the core catalog as it
passes the connection parameters from SFIMConnection.
Input Parameters
Output Parameters
The command monitorSFTPDirectory is used to monitor if a file exists in a given directory. If at least one
file exists and it matches the provided prefix and suffix, then the matching files will be moved to a directory
targetDirectory.
The parameter fileNameAfterMove provides possible renaming options for the file rename:
• If the value is same, then the file will be moved with the same name as is in the inbound directory
• If a different value is provided, only one of the files will be moved and will be named with the file name
fileNameAfterMove
After the file is moved, a new alert will be triggered to the Alert Notification Service with event type as provided
in the input parametereventType. Then the project team will process the alert by triggering the corresponding
workflow which processes the files. The workflow maybe another Automation Pilot command or any other ANS
action.
Internally it uses the command runMonitorSFTPDirectory from the core catalog as it passes the connection
parameters from the SFTP Connection. See Configuring Connectivity to SFTP [page 459] for more details.
• EventType: Event type that needs to be matched in order to send the notification to Alert Notification
Service.
• InboundDirectory: The field designated for inputting the name of the directory from which the file is
intended to be relocated.
• TargetDirectory: The field designated for inputting the name of the directory to which the file is intended to
be transferred.
• fileNameAfterMove: The field designated for the specification of the new filename after transfer.
• FileNamePrefix: The field designated for entering the prefix name of the file intended for relocation.
• FileNameSufix: The field designated for entering the sufix name of the file intended for relocation.
Output Parameters
Output Parameters
Internal Executors
The command execFullCompAndPayPipeline runs the Compensate and Pay pipeline in Incentive
Management. Internally it uses the command runFullCompAndPayPipeline from the core catalog as it passes
the connection parameters from SFIMConnection and translates the user-friendly texts from the inputs into
sequences.
Output Parameters
Internal Executors
Input Parameters
The command execResetFromClassifyPipeline is used for executing Reset From Classify stage in Pipeline.
Internally it uses the command runResetFromClassify from the core catalog as it passes the connection
parameters from SFIMConnection and translates the user-friendly texts from the inputs into sequences.
Input Parameters
Internal Executors
runReset
The command execResetFromValidatePipeline is used for executing Reset From Validate stage in Pipeline.
Internally it uses the command runResetFromValidate from the core catalog as it passes the connection
parameters from SFIMConnection and translates the user-friendly texts from the inputs into sequences.
Output Parameters
Internal Executors
Both the CORE and Tenant catalogs contain additional commands and functionalities that the Automation Pilot
developers can leverage to build more complex scenarios:
• smartBatchNameDetection
• smartPeriodDetection
smartBatchNameDetection
Different customers may use SAP Datasphere to load data into stage tables - CS_STAGESALESTRANSACTION
or CS_STAGESALESORDER. After the load is done, the next step of the flow is to run the Validate and
Transfer Pipeline (using execValidateAndTransferTxnOrderCreditsPipeline from the tenant catalog or the
runValidateAndTransferTxnOrderCreditsPipeline command from the CORE catalog). This command requires
a few mandatory parameters, which usually will be static besides batchname.
The common practice for the developers who load the data in stage tables is to use automated generation of
batch names. These batch names usually follow the following pattern:
<prefix><datetime><suffix>
Example:
G123_TXST_PRD_20220511_231638.txt
The purpose of the command is to detect the latest batch name which is part of CS_STAGESALESORDER
or CS_STAGESALESTRANSACTION that matches the particular pattern. If either of these tables contain a
batchname which does not match the pattern, then this batchname will be ignored.
Input Parameters
Output Parameters
batchname: A batch name which matches the pattern defined by the input parameters and contains a non-
processed transaction or order and has the latest value.
Example: If you have the following two batchnames which match the criteria:
smartPeriodDetection
This command is used for the scenario in which a developer needs to combine a run for Validate and
Transfer Pipeline (using execValidateAndTransferTxnOrderCreditsPipeline from the tenant catalog or the
runValidateAndTransferTxnOrderCreditsPipeline command from the CORE catalog). A particular batch may
This command will be used as a connection between a single execution of the Validate and Transfer
pipeline and the following executions of the Compensation and Pay pipeline based on the periods within the
batchname.
Input Parameters
Output Parameters
Both the CORE catalog and the TENANT-specific catalog provide commands for executing data sphere
task chains. While the command in the CORE catalog requires explicit connectivity parameters to
Datasphere, the TENANT-specific catalog utilizes the connectivity parameters already configured in the
DataSphereConnection, simplifying the command execution process
1. triggerDSTaskChain: This executor triggers the execution of the task chain. Internally, it uses the
DataSphere command-line client. See Manage Tasks and Task Chains via the Command Line for more
details.
2. checkAndWaitForDSTaskChain: This command waits for Task Chain execution. The default behavior of this
command is to poll for the result every minute for 250 minutes. These parameters can be adjusted by the
implementation partner.
3. sendNotificationAndErrorState: This command sends an email notification through the Alert Notification
Service with a short description of the execution, status, and overall runtime. If an error occurs (indicating
a DataSphere Task Chain failure), the command will halt and prompt the Administrator to decide whether
to disregard the failure and proceed with executing the commands or to designate the overall command
status as FAILED. Customers and Partners have the option to customize the behavior of this command.
Input Keys
The process of obtaining the initial five parameters is outlined in Configuring Connectivity to SAP Datasphere
[page 460].
Input Keys
Output Keys
Related Information
Default Catalogs for Automation Pilot and Alert Notification Service [page 447]
Automation Pilot Core Catalog [page 470]
Automation Pilot Tenant Specific Catalog [page 483]
Incentive Manage-
ment Release Ver- Command File
COMMAND NAME sion Version FLAGS (*use latest if deprecated)
Related Information
Related Information
Related Information
Related Information
SAP Data Custodian's Key Management Service provides Customer-Controlled Encryption Key (CCEK)
functionality, which allows you to create and manage keys directly in your Data Custodian Key Management
Service (KMS) tenant. SAP Data Custodian’s Key Management Service (KMS) enables you to have full control
over your encryption key used for the encryption of your SAP SuccessFactors Incentive Management data
stored in SAP HANA.
This integration empowers you to maintain visibility, control, and encryption of your data in the cloud.
Note
A separate license to SAP Data Custodian is required in order to use this capability with SAP
SuccessFactors Incentive Management.
Pay close attention to the SAP SuccessFactors Incentive Management tenant you choose. Once
you switch over to customer-controlled encryption for a SAP SuccessFactors Incentive Management
tenant, reverting to SAP-managed encryption cannot be done.
4. Enter the E-mail Address of the key admin who will be responsible for managing the key. If you want to add
more key admins, choose the plus icon (+).
5. Enter the KMS Tenant ID. If you don't know your KMS tenant ID, your key admin can retrieve it for you from
SAP Data Custodian.
6. Click Review, select the confirmation box, and click Submit. This will notify the key admins via e-mail to
accept the connection request in KMS.
Note
The lead time of the process depends on multiple factors including service request load and user
interaction time, but in most cases, it takes approximately 10 minutes. However, if the key admin
doesn’t act on the request in 5 days, the process will be cancelled. In this case, you’ll need to create
another request. When the switch-over is successfully completed, the creator of the service request
receives a notification e-mail.
After you’ve switched over to customer-controlled encryption, SAP can no longer be held responsible for
service downtime or data loss if you do any of the following:
Deleting your key, technical user, or technical user credentials cannot be reversed and might lead to data loss.
Disabling your key or technical user can be reversed by your assigned key admin.
For system to system authentication, the best practice is to use service accounts (instead of user accounts).
This topic describes service account authentication.
To log in as a service account, you must use the OIDC client credentials flow.
1. Create the OpenId Connect application on SAP IAS for the external service (one OIDC application per
service account).
1. Go to IAS administration → Applications & Resources → Applications and click Create to create a
new IAS application.
• Go to the newly created IAS OIDC Application → Default Attributes and create a new default
attribute with name aud and value as clientId as described in the previous step (i.e. client id
from the Commissions COMM_{SUBDOMAIN}_OIDC_{TENANTURL} OIDC application. The Aud
attribute configuration is illustrated below.
3. To get the JWT token (access token), send POST request to https://<sap_ias_hostname>/oauth2/token.
Headers:
Content-Type: application/x-www-form-urlencoded
Authorization: Basic <Base64 encoded ClientID:ClientSecret>
(ClientID is the clientId of the newly created OIDC application from step 1, and ClientSecret is the secret
generated in step 1.d.
Example: Authorization: Basic dGVzdF9jbGllbnRfaWQ6dGVzdF9jbGllbnRfc2VjcmV0
Body:
grant_type: client_credentials
client_id: type client id of the newly created IAS OIDC application from step 1
You can also use certificates instead of client secret to authenticate.
Response example:
Sample Code
{
"access_token":
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovLzxzYXBfaWFzX2hvc
3RuYW1lPiIsImlhdCI6MTY3NzY2MTIyNywiZXhwIjoxNzA5MTk3MjI3LCJhdWQiOlsiM2NhZjJl
MTktZmQ1Yi00NzRkLWE4ZDQtMzA0MGIyZmFjYTdlIiwiNmRiMzZlZGEtNTBiZS00MTgzLTgwOTI
tZTUxZTRmZTcwYzBhIl0sInN1YiI6IjNjYWYyZTE5LWZkNWItNDc0ZC1hOGQ0LTMwNDBiMmZhY2
E3ZSJ9.i168I2o4y-epbMog_LGkoYdCscXuFZgN67E_zyF-oVk",
"token_type": "Bearer",
"expires_in": 3600
}
4. The received JWT token needs to be sent as the Authorization Bearer header in the Commissions API
request. Authorization header should look like this:Bearer access_token_from_IAS_response
Authorization header example:
Sample Code
Bearer
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovLzxzYXBfaWFzX2hvc3
RuYW1lPiIsImlhdCI6MTY3NzY2MTIyNywiZXhwIjoxNzA5MTk3MjI3LCJhdWQiOlsiM2NhZjJlM
TktZmQ1Yi00NzRkLWE4ZDQtMzA0MGIyZmFjYTdlIiwiNmRiMzZlZGEtNTBiZS00MTgzLTgwOTIt
ZTUxZTRmZTcwYzBhIl0sInN1YiI6IjNjYWYyZTE5LWZkNWItNDc0ZC1hOGQ0LTMwNDBiMmZhY2E
3ZSJ9.i168I2o4y-epbMog_LGkoYdCscXuFZgN67E_zyF-oVk
Overview
1. Make sure you have the clientId/clientSecret (or the client certificate) from the IAS OIDC application. If you
don't have the required details, contact the IAS administrator for the required details or set your existing
certificate as client certificate. See Create Client Secret (Only for IAS Admins) [page 513] or Set Client
Certificate (Only for IAS Admins) [page 515] for more details.
2. To get the JWT token from SAP IAS, use the OIDC password credentials flow. The clientId/clientSecret (or
the client certificate) and userId/password will be required. See Get JWT Token from IAS [page 517] for
more details.
3. Use the ID token for accessing the Incentive Management API. You can get the ID token from the response
and use it in the Authorization Bearer header to call the API. See Call Incentive Management API with
Bearer Token [page 521] for more details.
Provide the required details in the Add Secret dialog and click Save.
Certificate Formats
Sample Code
Sample Code
If you choose to upload a certificate, you must provide a file in .crt or .cer format.
Note
In order to get the JWT token to set as the Bearer authorization header for SAP SuccessFactors Incentive
Management API authentication, you must use the OIDC password credentials flow. See Configure the Client to
Call Identity Authentication Token Endpoint for Resource Owner Password Credentials Flow for more details on
SAP IAS password credentials flow.
This API is private so you must provide required authentication details in order to get the JWT token back.
• using clientId and client secret (packing these into the Basic authorization header)
• using client certificate
1. Prepare Basic authorization header for calling IAS oauth2 token API endpoint.
Write client id and client secret in following format:
ClientID:clientSecretand base64 encode it. Generated base64 encoded string is used as basic token
for the Authorization header.
Authorization header should look like this:
Basic base64Encode(ClientID:ClientSecret)
Authorization header example:
Basic dGVzdF9jbGllbnRfaWQ6dGVzdF9jbGllbnRfc2VjcmV0
2. Send POST request to https://<sap_ias_hostname>/oauth2/token:
Headers:
Content-Type: application/x-www-form-urlencoded
Authorization: prepared header from step 1 - Basic base64Encode(ClientID:ClientSecret)
Sample Code
grant_type: password
client_id: type client id of the IAS OIDC application
username: type username that you use to login on SAP IAS
password: type password that you use to login on SAP IAS
Sample Code
POST https://<sap_ias_hostname>/oauth2/token
Headers:
Content-Type: application/x-www-form-urlencoded
Authorization: Basic dGVzdF9jbGllbnRfaWQ6dGVzdF9jbGllbnRfc2VjcmV0
Body:
grant_type=password&client_id=test_client_id&username=john.doe%40example.co
m&password=test_password
Headers Example: The below screenshot illustrates IAS /oauth2/token endpoint for authentication and
access token retrieval.
Parameters/Body Example: The below example illustrates the IAS /oauth2/token endpoint for
authentication and access token retrieval.
Sample Code
{
"access_token":
"YzBhZGVlMzYtYzc3NC00ZDczLWExODAtMGQ2YTllZjU0Mjg5S2VCcHpWXzdFczl6QVJmazFNNG
ZqYUVnMFBRdzhlcnp6M1pIYVJFcFpsMA",
"refresh_token": "30e78d3c9501ff498d505fa240fc9269",
"id_token":
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovLzxzYXBfaWFzX2hvc
3RuYW1lPiIsImlhdCI6MTY3NzY2MTIyNywiZXhwIjoxNzA5MTk3MjI3LCJhdWQiOlsiMTJzNTR3
NmEtMXc1Ni01ZThiLWYyNTYtMDd2MDV2ZmdiMzEyIiwiYjAwNWNiMjYtYjQwZS00Nzg2LTk1Y2Q
tNzIyYTc5YTRjMGI1Il0sInN1YiI6ImpvaG4uZG9lQGV4YW1wbGUuY29tIiwiZmlyc3ROYW1lIj
oiSm9obiIsImxhc3ROYW1lIjoiRG9lIiwiZW1haWwiOiJqb2huLmRvZUBleGFtcGxlLmNvbSIsI
nVzZXJJZCI6Ik0wMDAwMDEifQ.EnIBD9u8jbl0_xb53pEjov9gLSLWjCPgHc3PeOM7DKg",
"token_type": "Bearer",
"expires_in": 3600
}
When you choose to authenticate using client certificates, instead of using authorization header, you need to
send registered certificate as part of your request. Both public and private keys need to be sent in the request.
How you send the certificate depends on the http client that you are using (for example, when you use curl, you
need to specify the path to certify the file in .PEM format).
Sample Code
grant_type: password
username: type username that you use to login on SAP IAS
password: type password that you use to login on SAP IAS
client_id: type client id of the IAS OIDC application
Cert:
Note
The certificate and key can be used as separate .pem files rather than specifically .crt and .key files.
Their inclusion in requests is dependent on the HTTP client used, and manual addition may be
required.
Sample Code
POST https://<sap_ias_hostname>/oauth2/token
Headers:
Content-Type: application/x-www-form-urlencoded
Body:
grant_type=password&client_id=test_client_id&username=john.doe%40example.co
m&password=test_password
Cert: "-----BEGIN CERTIFICATE-----\n BASE64CERT \n-----END CERTIFICATE-----
\n"
Key: "-----BEGIN PRIVATE KEY-----\n BASE64KEY \n-----END PRIVATE KEY-----
\n"
-------------------node js node-fetch example-----------------------
const params = new URLSearchParams();
params.append('grant_type', 'password');
params.append('username', '[email protected]');
params.append('password', 'test-password');
params.append('client_id', 'test_client_id');
const options = {
method: 'POST',
body: params,
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
agent : new https.Agent({
cert: "-----BEGIN CERTIFICATE-----\n BASE64CERT \n-----END
CERTIFICATE-----\n",
key: "-----BEGIN PRIVATE KEY-----\n BASE64KEY \n-----END PRIVATE
KEY-----\n"
})
};
const response: Response = await fetch(
'https://<sap_ias_hostname>/oauth2/token',
options,
);
Sample Code
{
"access_token":
"YzBhZGVlMzYtYzc3NC00ZDczLWExODAtMGQ2YTllZjU0Mjg5S2VCcHpWXzdFczl6QVJmazFNNG
ZqYUVnMFBRdzhlcnp6M1pIYVJFcFpsMA",
"refresh_token": "30e78d3c9501ff498d505fa240fc9269",
"id_token":
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovLzxzYXBfaWFzX2hvc
3RuYW1lPiIsImlhdCI6MTY3NzY2MTIyNywiZXhwIjoxNzA5MTk3MjI3LCJhdWQiOlsiMTJzNTR3
NmEtMXc1Ni01ZThiLWYyNTYtMDd2MDV2ZmdiMzEyIiwiYjAwNWNiMjYtYjQwZS00Nzg2LTk1Y2Q
tNzIyYTc5YTRjMGI1Il0sInN1YiI6ImpvaG4uZG9lQGV4YW1wbGUuY29tIiwiZmlyc3ROYW1lIj
oiSm9obiIsImxhc3ROYW1lIjoiRG9lIiwiZW1haWwiOiJqb2huLmRvZUBleGFtcGxlLmNvbSIsI
nVzZXJJZCI6Ik0wMDAwMDEifQ.EnIBD9u8jbl0_xb53pEjov9gLSLWjCPgHc3PeOM7DKg",
This topic illustrates how to call the Incentive Management API with the Bearer token.
When you get the ID token from the IAS, you can use it as the Bearer Authorization header for accessing
Incentive Management API.
Sample Code
This section provides information about the data integration and management solutions that SAP
SuccessFactors Incentive Management currently provides. It is intended to help customers and partners
analyze each offering and pick the one that suits their business requirement.
SAP SuccessFactors Incentive Management currently offers the following data integration and management
solutions for HANA:
SAP Inte-
Data Integration Smart Data Integra- gration
Solutions Excel Data Loaders Express Data Loader tion (SDI) Suite REST API
Purpose/ Routine data man- High volume batch load High volume load API to API For cus-
agement with data transforma- integration tom API
Use Case tions client
User Type Business User Technical User Technical User Technical Technical
User User
Usage Frequency Ad-hoc Ad-hoc or Scheduled Scheduled or Real Scheduled Real Time
or Real
Time
Time
Data Volume < 1,000 rows Up to 10 million records or Higher volume than 1,000– < 1,000
1-GB data per drop file Express Data Loader 100,000 rows per
rows call
Data Transforma- None HANA stored procedures Flowgraph based Integration None
tions transformations
Flow (IFlow)
Connectors Not Applicable Not Applicable In-built adapters / Open Con- Not Appli-
connectors for nectors ca- cable
source systems pability
within SAP
Integration
Suite
(api.sap.co
m)
What data can be All master data and Read access to production Read access to pro- Access to Access to
accessed?
transaction data can data (TCMP schema) is pro- duction data (TCMP supported sup-
be accessed. vided. schema) is provided. APIs, such ported
as get cred- APIs,
Data upload /down- Read access via replica- Read access via rep-
its, transac- such as
load is supported. tion to custom table (EXT lication to custom ta-
tions, etc. is get cred-
schema) is supported. ble (EXT schema) is
allowed. its, trans-
supported.
Write access to EXT schema actions,
APIs for cre-
requires approval from the Write access to stage etc. is al-
ating data,
SAP support team. tables is provided. lowed.
such as
credits, APIs for
transaction, creating
etc. are sup- data,
ported. such as
credits,
transac-
tion, etc.
are sup-
ported.
How data can be Through corre- Customer/ Partner engi- Customer/ Partner Customer/ Data can
accessed? sponding workspace be ac-
neering team must build engineering team Partner en-
in the UI cessed
HANA artifacts in dev/ test must build SDI arti- gineering
using any
environment. facts in dev/ test en- team must integra-
vironment. build map- tion tool
Once artifacts are ready to
ping using that sup-
deploy in production, the Once artifacts are
Open Con- port API
SAP support team can repli- ready to deploy in calls.
nectors.
cate the same in the produc- production, the SAP
tion environment. support team must Pre-pack-
replicate the same aged IFlows
Once the artifacts are repli-
in production envi- from Suc-
cated in production environ-
ronment. cessFactors
ment, users can initiate the
- SAP
data loading process by run- Once the artifacts
SuccessFac
ning pipeline and Express are replicated in pro-
tors
Data Loader jobs. duction environment,
Incentive
customers can trig-
SFTP pull from drop box Managemen
ger data retrieval
to customer network is per- t must be
when needed.
formed. used.
Customers
must build
the custom
IFlows to
bring their
data to SAP
SuccessFac
tors
Incentive
Managemen
t using
API's.
Once the
mapping is
ready to de-
ploy in pro-
duction,
replicate the
mapping to
production
environ-
ment.
A SFTP pull
from the
Dropbox to
the custom-
er's network
is per-
formed.
Integration
Flow (IFlow)
triggers
data to send
SFTP Drop-
box to con-
tinue to
process
through Ex-
press Data
Loader
Jobs.
Benefits Business user- Parallel processing of files is High volume data User- No VPN
access is
friendly. supported. load and extract is friendly, in-
needed.
supported. tuitive, and
No VPN access is No VPN access is needed.
Web-based Custom-
needed. Supports all common
UI is availa- ers can
styles of data deliv-
ble. custom-
ery: Batch, Real Time,
ize the
and Virtualization. No VPN ac-
JSON re-
cess is
High performance sults out-
needed.
in-memory process- put to suit
ing platform is sup- their indi-
ported. vidual
business
No VPN access is
needs.
needed.
Tasks can
be auto-
mated via
APIs.
Things to consider Data limits apply. The SAP support team must The SAP support - API limits
be involved in certain opera- team must be in- apply.
tions. Additional costs may volved in certain op-
apply. erations. Additional
costs may apply.
SAP HANA studio enables technical users to manage the SAP HANA database, to create and manage user
authorizations, and to create new or modify existing models of data in the SAP HANA database.
Note
2. In the search field, select Downloads and enter SAP HANA Studio.
3. Select SAP HANA STUDIO 2 to download.
4. Use sapcar to extract the sar file. The installation does not require a license key.
Note
SAP HANA Studio can also be downloaded from https://tools.hana.ondemand.com/. This site allows you
to install various SAP development tools.
Related Information
In order to keep your SAP SuccessFactors Incentive Management platform functioning at optimal
performance, we’ve captured the limitations that must be considered when configuring, managing, and using
the product.
The purpose of this document is to help you make smarter approaches toward processing incentives by
avoiding issues that are known to cause problems. Over time, our team will continue to improve the SAP
SuccessFactors Incentive Management platform to further enhance customer satisfaction.
Specific release-related Known Issues (if any) are listed in the What's New and are also listed in the Known
Limitations [page 527] document.
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 an 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.
Bias-Free Language
SAP supports a culture of diversity and inclusion. Whenever possible, we use unbiased language in our documentation to refer to people of all cultures, ethnicities,
genders, and abilities.
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.