Administration Guide SAP SuccessFactors Foundation Document Version: Q3 2016 – September 12
Extension Center
CUSTOMER
Content
1 2
W h a t 's N ew i n T h is G u id e. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 .. . . GettingS t a r t ed w it h E x t en s io n C en t e r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. . . .
2.1
WhatisExtensionCenter?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2 2.3
How do youenableExtensionCenter?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . What permissions do you need to use Extension Center?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 6
2.4
HowdoesExtensionCenterwork?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.5
How do youget startedwithExtensionCenter?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.6
What are the different elements of Extension Center?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3
WhatisanObject?.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
13
WhatisaPicklist?.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
14
How do you c r ea t e a n ew ex t e n s i on ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 . . .
4
How do you c r ea t e a pi c k l i s t ? .. . . . .. . . .. . . .. . . .. . . . .. . . .. . . .. . . .. . . .. . . . .. . . .. .16 . ..
4.1
How do you use an existingpicklist?. . .. . . .. . . .. . . . .. . . .. . . . .. . . .. . . . .. . . .. . . .. . . . .. . . 17
5
How do you create a n ob j e c t ? .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..19.. .
5.1
How do youconfigurefields?. . .. . . .. . . .. . . . .. . . .. . . . .. . . .. . . . .. . . .. . . .. . . . .. . . .. . . . 21
5.2
Howdoyouconfigurerelationships?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
5.3
Howdoyouconfigurerules?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
Howdoyoumanagefield-level rules?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
How doyouuseanexistingrule?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
5.4
How do youconfigureworkflows?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
Howdoyouuseanexistingworkflow?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
5.5
How do youconfiguretheUIfor the extension?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
5.6
How doyouconfigureobject properties?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
5.7
How do you configure object and field security?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
5.8
Howdoyouuseanexistingobject?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
6
How do you de l e t e a n ob j e c t ? . . .. . . . .. . . .. . . .. . . .. . . . .. . . .. . . .. . . .. . . .. . . . .. . . 50 .. .
7
How do you conf ig ur e a n ext en sion to ac cess it fr om th e E mp loyee F il es pa ge?. . . . . . . . . . .51 . . ..
8
H ow d o y ou d el e t e a n ex t en s io n ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57 . ..
9 9.1
2
How do you p u b l i s h a n ex t en s io n ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58 . . . How do you prepare to publish an extension?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
How do you configure source and target instances in Provisioning?. . . . . . . . . . . . . . . . . . . . . . . . .
58
How do you enable permissions in the source instance to publish the extension?. . . . . . . . . . . . . . .
59
CUSTOMER
Extension Center Content
9.2
Howdoyoupublishtheextension?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
9.3
How to synchronize instance configurations?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
9.4
How do you interpret the publishingstatus?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
10
H ow d oes t h e E m pl oy ee u s e t h e e x t e n s i on ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 . . .
10.1
How do you access an extension from the Home Page?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
How do you create a custom tile for accessing an extension?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
How do you access an extension using the Links tile?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
10.2
How do you use the extension from the Manage Data page in Admin Center?. . . . . . . . . . . . . . . . . . . . .
77
10.3
How do you use the extension from the Employee Files page?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
11
H ow d oes t h e M a n a g e r r ev ie w t h e a p pl ic a t ion ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80 . . .
11.1
How does the manager approve or send back the request?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
12
F A Q : E x t e n s i on C en t er . . .. . . .. . . .. . . . .. . . .. . . .. . . .. . . . .. . . .. . . .. . . .. . . .. . . . ..83. . .
12.1
How do you add Extension Center to your Favorites?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
12.2
WhatisanUncategorizedextension?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
12.3
Are all features available in MDF for creating extensions available in Extension Center? . . . . . . . . . . . . . 84
12.4
Why does the MDF object definition always fail when publishing the extension?. . . . . . . . . . . . . . . . . . .
85
13
R e f e r en c e T a b l es .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 87 .. ..
13.1
DataTypeTable.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
87
13.2
RelationshipTypesTable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
13.3
RuleCategoryTable. . . .. . . .. . . . .. . . .. . . .. . . . .. . . .. . . . .. . . .. . . . .. . . .. . . .. . . . .. . . .
90
Extension Center Content
CUSTOMER
3
1
What's New in This Guide
This document describes changes to the Extension Center Implementation Guide for the recent releases. If the information you are looking for is not described in this guide or if you find something described incorrectly, please send mail to
[email protected] we'll update this guide.
Q3 2016 Table 1: The following table summarizes changes to this guide for the Q3 2016 release
Wh at 'N s ew
D es cr i p t i on
M orIen f o
September 12 Extension Cen ter Administration Guide
This is the fir st version of the Ext ension
What is Extension Center? [page 5]
Center Administration Guide. Using this guide you can configure and use Exten sion Center. An example has been used to take you through the flow and allow you to easily get started.
4
CUSTOMER
Extension Center What's New in This Guide
2
Getting Started with Extension Center
2.1
What is Extension Center?
Extension Center allows you to create and manage extensions. An extension is a custom application, which is configured to process employee-centric business needs. For example, as an Admin you can create applications to manage different HR Programs, such as company car requests, employee wellness programs, tuition reimbursement request, pension plan programs, and so on.
This document aims to familiarize the HR Admin with the process of creating and managing extensions in Extension Center.
2.2
How do you enable Extension Center?
To use Extension Center, you must be authorized to use MDF and Generic Objects. In addition, you also need to enable the following options in Provisioning. ●
Enable Extension Center
Note After enabling Extension Center, ensure that the Metadata is refreshed. To do this: 1. Go to Admin Center. 2. Search and click ODATA API Metadata Refresh and Export.
Extension Center Getting Started with Extension Center
CUSTOMER
5
The ODATA API Metadata Refresh and Export page appears:
3. Click Refresh. ●
Employee Central Foundation Objects must be selected for workflow
●
Enable Generic Objects and Enable the Attachment Manager
Remember As a customer, you do not have access to Provisioning. To complete tasks in Provisioning, contact SAP Cloud Support.
2.3
What permissions do you need to use Extension Center?
Before you can start using Extension Center, you need to define certain permissions that will allow users to create new extensions and objects.
Note As you will see from the steps, Extension Center, like MDF, leverages the Role-Based Permissions (RBP) framework. To set permissions: 1. Go to Admin Center. 2. In the Search field, type Manage Permission Roles . 3. In the list of permission roles, select the role you'd like to grant access to Extension center. For example, System Admin. 4. On the Permission Role Detail page, in the Permission Settings section, click Permission. 5. On the Permission Settings page, select User Permissions Metadata Framework . 6. Select the fo llowing options:
6
○
Configure Object Definitions
○
Configure Business Rules
CUSTOMER
Extension Center Getting Started with Extension Center
○
Read/Write Permission on Metadata Framework
○
Import Permission on Metadata Framework
○
Admin access to MDF OData API
○
Manage Configuration UI
7. Click Done when you finish selecting the options. To ensure that the approvers are able to approve the request, they will also need to have access to the workflow. You must set the Workflow permissions for the approvers.
Tip It would be a good idea to spend some time defining the approval workflow before setting permissions. This will help you grant the right people access. 8. On the Permission Settings page, select following: ○
Create
○
Insert
Manage Foundation Objects Types
○
Correct
○
Delete
○
View (Note that this is selected by default)
Extension Center Getting Started with Extension Center
Workflow , and select the
CUSTOMER
7
Note If you are building an extension which involves workflow, please ensure you grant relevant permissions to the target population.
2.4
How does Extension Center work?
To explain how Extension Center works, we’ll use an example of a Company Car Request Management process. In this example, the process starts with the HR Admin creating an Extension, which is an interface that allows the employee to request for a car. The manager then approves or denies the request raised by the employee.
8
CUSTOMER
Extension Center Getting Started with Extension Center
In Extension Center, this would involve the following steps: ●
Creating an Extension
●
Creating Picklists
●
Creating and Configuring Objects
●
Publishing an Extension
Extension Center Getting Started with Extension Center
CUSTOMER
9
Subsequent sections describe these stages in detail.
Related Information How do you create a new extension? [page 15] How do you create a picklist? [page 16] How do you create an object? [page 19] How do you prepare to publish an extension? [page 58]
2.5
How do you get started with Extension Center?
In the Extension Center, you can do the following: ●
10
Create new extensions as well as edit existing ones to meet your business needs. In the example shown below, there are 8 extensions. To name a few - Pension Plan, Asset Management, Inventory and Company Car.
CUSTOMER
Extension Center Getting Started with Extension Center
●
You can toggle between the Grid view and the List view for the available extensions. Grid View
List View
Extension Center Getting Started with Extension Center
CUSTOMER
11
●
Search existing extensions, objects, rules, workflows and UIs by typing the keyword in the Search field. Note that as you enter the name, extensions matching the name search are displayed below.
●
You can open an extension by clicking it. The obejcts defined within the extension appear.
●
You can view the objects by toggling between following views: Grid, List, and Entity–Relationship Diagram (ERD).
Grid View: Displays objects using Tiles
12
CUSTOMER
Extension Center Getting Started with Extension Center
List View: Displays objects as a list
ERD View: An ERD model (also known as the Entity-Relationship View) shows the relationships that exist between objects and instances of those entity types.
2.6
What are the different elements of Extension Center?
2.6.1 What is an Object? An object is an entity that defines different aspects of an Extension, such as information about fields, relationships, workflows, rules, and security for an object. For example, for the Company Car Request Management extension, there can be two objects: Extension Center Getting Started with Extension Center
CUSTOMER
13
●
Car Request
●
Request Acknowledgement
2.6.2 What is a Picklist? You can also use Extension Center to create a picklist. Picklists are values which appear in a dropdown, allowing the user to easily make a selection. This allows you to limit the types of values a user can enter in the form, eliminating the chances of an incorrect value. For example, the Admin can create the following picklists for the employees to choose from while requesting for a car: ●
Car Category
●
Car Lease Duration
●
Car Make
Note that the Extension Center picklists can be used by other Extension Center objects. You can also add existing picklists to your extension. You don't have to re-create it each time. For more information, see the chapter How Do You Reuse an Existing Picklist?.
Related Information How do you use an existing picklist? [page 17]
14
CUSTOMER
Extension Center Getting Started with Extension Center
3
How do you create a new extension?
Procedure 1. Go to Admin Center. 2. In the Search field, type Extension Center . This will bring up the Extension Center page. 3. Click Create Extension. 4. Enter the following on the Extension Detail page: a. Icon & Title: Enter an appropriate title for your extension and click on the icon to select a logo. b. External Code: Enter a unique code that identifies the Extension Center. c. Description: Enter a brief description about the extension you are creating.
5. Click Action and select Save Extension.
Extension Center How do you create a new extension?
CUSTOMER
15
4
How do you create a picklist?
Procedure 1. Go to Extension Center. 2. Select the extension to which you w ant to add an exi sting Object. 3. Click Add New Picklist.
The Edit Picklist page opens:
16
CUSTOMER
Extension Center How do you create a picklist?
4. Enter the following details: a. Picklist Code: Enter the code that uniquely identifies the picklist. Note that currently we do not support Non-unique External Code in picklist. b. Picklist Name: Enter a unique name for your picklist. c. Parent Picklist: You will need to specify this only if you want to create a cascading relationship between picklists, that is, values selected in the parent picklist determine the values displayed in the child picklist. For example, to limit the car models displayed based on car type, you will specify the Car Type picklist as the parent picklist and the Car Model picklist as the child picklist. d. Effective Start Date: Picklists are effective-dated. This means that there can be different sets of picklist values for different start dates. Enter the effective start date for your picklist.
Note The following fields are not supported currently: ○
Insert a New Record: Allows you to access the picklist history
○
Display Order: Allows you to sort the picklist values in Alphabetical or Numeric order
5. To add a value to the picklist, click Add Value, enter Label and a relevant External Code, and set the Active status. You can also add a Parent Picklist Value, if applicable. You can add as many values as needed. 6. Click Save.
4.1
How do you use an existing picklist?
See how you can reuse a picklist
Context To reuse a picklist:
Procedure 1. Go to Extension Center. 2. Select the extension you would like to work with. 3. Click Add Existing Picklist. The Add Existing Picklist page opens. 4. In the Search field, enter the name of the picklist you want to reuse: Extension Center How do you create a picklist?
CUSTOMER
17
5. Select the checkbox next to the Object. 6. Click Save.
18
CUSTOMER
Extension Center How do you create a picklist?
5
How do you create an object?
Describes how you can create and configure an object for extensions in Extension Center.
Context Let's take the example of the company car request. To create an object that allows the employee to request for a company car:
Procedure 1. Go to Extension Center. 2. Select the extension to which you w ant to add an object. In this example, select Company Car. The Extension Detail page appears.
3. Click Add New Object.
Extension Center How do you create an object?
CUSTOMER
19
The Object Detail page appears.
4. Fill out th e fields as follows: a. Title: Enter a suitable title for your Object. Choose a name that will make it easy for you to identify the extension later. b. External Code: Enter a unique code that identifies the Object. c. Description: Enter a brief description about the Object you are creating. For example, you can create a Car Request object for the Company Car Managementextension.
Note Currently, the Cascade flag field, as seen in the Admin Center Configure Object Definitions supported. Using the Cascade flag, you can set the following values: ○
Save: User is allowed to edit the referenced field in the Config UI Runtime page.
○
None: User will not be allowed to edit the referenced fields in the Configure UI Runtime Page.
page is not
Tip Use the Configure Object Definitions page to apply these settings.
Tip All the mandatory fields except Effective Dating have a default value. You will not be able to save the object without defining the Effective Dating field in the Properties tab.
5. When you finish, select
20
CUSTOMER
Action
Save Object .
Extension Center How do you create an object?
5.1
How do you configure fields?
Context Let us now look at how you can add fields to your object. Continuing with the example of the car request, let’s create the following fields for the Car Request object: ● Name ●
Employee ID
●
Location
These fields can be used by the employee to enter details like name, employee ID, and location while requesting for a company car.
Procedure 1. Click Add Field. This brings up the Fields page.
Note You can modify the first two fields that appear on the screen to suit your requirements. You can also delete them or use the toggle switch to mark them as not required.To add more than two fields, click the Add Field tab at the bottom of the page.
2. Fill in the fo llowing details:
Extension Center How do you create an object?
CUSTOMER
21
F ie ld
D es cr i p t i o n
Label
The label to translate for the field. The default value for this is the field name. To enter a translated label name, click the
Translations button. Note that to make entries for translation, click the icon in the Label field.
Default Value: The label that you wish to translate appears in this field.
Tko_KR: The Korean translator can use this field to enter the field name after translation. zh_CN_SF: The Chinese translator can use this field to enter the field name after translation.
External Code Type
A unique identifier for the field.
Type
The supported data types from the dropdown. For more de tails on different data types, refer Data Type Table [page 87].
Visibility
Editable: Select this to indicate that the field should be visi ble and editable.
Read Only: Select this to indicate that the field will be visible but the user will not be allowed to make changes.
Not Visible: Select this when the field needs to be used for reference but should not be displayed in the UI.
Required
Yes,if the field is required. This would make it mandatory for the user to fill out. For example, in case of the company car request, if the Required field for employee ID, name, and lo cation is set to Yes, it becomes mandatory for the user to fill out these fields before submitting the request.
3. You can view and edit additional options in the Advanced Options section by clicking the down arrow icon:
22
CUSTOMER
Extension Center How do you create an object?
Note The Inactivated by field displayed in the Configure Object Definitions page is not supported by Extension Center. In the Configure Object Definitions page, this field shows who inactivated the field – User or System. Also, Hide seconds is not currently supported. This field will allow you to hide the seconds for Time Data Type.
MaxLength
TheMaximumalloweddatalengthforthedatatypeString. The default value for this field is 255.
UIFieldRenderer
ThenametodisplayforthepicklistontheUI.Thisfieldalso defines the label that appears in dropdown menus when selecting a picklist or generic object value in Manage Data. If this field is defined, the external code is not displayed.
Include Inactive Users
Yes, if you want to display data for inactive users, along with that of active users. Default value is No.
Hide Old Value
Yes, if you do not want to strikethrough the previous value of a record in the History for the field. Effective dated objects have a history view. In the history view, records for different start-dates are shown. The text with a strikethrough indicates the previous value of the field.
HelpText
Extension Center How do you create an object?
Thelabeltotranslateforthefield.Youcangiveinstructions for the user.
CUSTOMER
23
Transient
Yes, to make the field transient. Values of transient field are not stored in the database, but are determined at runtime, based on rules or associations.
Private or Sensitive
Yes, to display the value saved on that field as ***. For example, you might want to set this to Yes for a password field. If you set this to No, it behaves like any other field.
DefaultValue
Youcansetadefaultvalueforthefield.Whenadefault value is selected for a field, it will initialize the new page with the given value. For example, if you set the default value for a string field as ABC, when you go to the Manage
Data page to create a new object, you will see ABC already listed in that field. Status
Active: Active fields are available in the system. You can use them to import, UI, OData, rules, and so on.
Inactive Inactive fields are not available in the system. You cannot use them to import, UI, OData, rules, and so on. Note that you cannot make the fields inactive from the UI. DatabaseFieldName Field Criteria
Thefieldnameasitshouldbestoredinthedatabase.
Source Field Name: Field whose values restrict the possible values for the field that you are defining.
Destination Field Value: Name of the field whose value is being restricted. This is the name of the field that you are defining. For example, you can restrict choices of dates based on an effective start date, or you can restrict choices such as countries, time zones, and so on, by location.
defaultDestinationValue: You can create a default destination in cases where the destination field value is not set. Currently it only stores constant values. You can add or delete field criteria by clicking the corresponding icon. Field criteria is used to restrict the value of a field, based on the value of another field. condition
The field ID.
conditionValues
Alistofvaluesthatmakestheconditiontrue.Makesure that you enter the values correctly because there are no system validations for this.
24
CUSTOMER
Extension Center How do you create an object?
Note
Valid Value Source
This field needs to be set for the following field types so as to map them with the parent object: ○
Picklist ID of the picklist.
○
Generic Object: Object ID of the generic object you want to reference.
○
Foundation Object: Object ID of the foundation object you want to reference.
DecimalPrecision
Specificprecisionfordecimalvalue.Defaultprecisionvalue is 17.
Show Trailing Zeroes
Yes: It sets zeros for the decimal value. For example, if user gives 111 for the decimal field where Show Trailing Zeroesis set to set after save user will see the value as 111.00000000000000000 (There are 17 zeroes since the default precision is 17.).
4. Scroll down on the Fields page to add business keys and searchable fields to the object definition.
Note You can define fields for an MDF object that can be used to search. These fields can be used in the search panel on the Manage Data page to search for objects. A business key is a unique key used to identify a record. If you search for a business key that is defined, then it will appear in the search results, by default. When a field is set as a business key, the field automatically becomes a required field.
5. Click
Action
Save Object .
Extension Center How do you create an object?
CUSTOMER
25
5.2
How do you configure relationships?
Context Let us now look at how you can define relationships (also known as associations) between objects. In Extension Center, you can define a hierarchical relationship between two objects. You can add a relationship to define either a parent-child relationship or a valid-when relationship between the object that you are creating, and another object. An ERD model (also known as the Entity-Relationship View) graphically shows the relationships between objects. On the Extension Detail page, multiple levels of objects can be displayed in the ERD View. You can also drag and drop any object vertically and laterally. Continuing with the example of the car request, the following image shows a one-to-one relationship between Request Acknowledgement and Company Car Request object.
To define a relationship between two objects:
Procedure 1. Go to the Relationships tab. 2. 2. Click Add Relationship. 3. Fill in the fo llowing details:
26
CUSTOMER
Extension Center How do you create an object?
IT nh iFsield ... Label
E n t er . . . A label for this relationship. Specify a name that will allow you to identify the relationship later. For this example, enter RelationCar .
Name
The name of the relationship. This is the name by which the relationship is identified. For this example, enter
cust_Relation_Car . It is important that the name starts with cust.
Object
The object that you want to establish a relationship with. The object that you want to establish a relationship with. In this example, we will define the relationship for the object
City with the object Car Request. Multiplicity
The type of relationship: is it One-to-One or One-to-Many. For this example, let’s specify One-to-One.
Type
The type of field, from the drop-down menu. For this exam ple, we will select Composite. A detailed description of rela tionship types is described in Relationship Types table in Chapter 3, Reference.
Note UIAssociationRenderer, available in the Manage Data and Manage Configurable UI pages in Admin Center, is currently not supported. 4. You can view and edit additional options in the Advanced Options section by clicking the down arrow icon:
Extension Center How do you create an object?
CUSTOMER
27
Note You need to fill in the Destination Object Column and Source Object Column options when you set Relationship type to Join By Column.
DestinationObjectColumn
Thefieldnameofthechildobjecttowhichtheobject should be mapped. For example, you have created two entities, Person, which is non-effective-dated, and PersonInfo, which is effective-dated. Person is the parent object and PersonInfo is the child object as it shares the same external code as Person. When Join-by-Column relationship is defined, PersonInfo object is entered in the
Destination Object Column field. SourceObjectColumn
Thefieldnameoftheparentobjecttowhichtheobject should be mapped. For example, you have created two entities, Person, which is non-effective-dated, and PersonInfo, which is effectivedated. Person is the parent object and PersonInfo is the child object as it shares the same external code as Person. When Join-by-Columnrelationship is defined, Person object is entered in the Source Object Column field.
Transient
Yes, to make the field transient. Values of transient field are not stored in the database, but are populated at runtime in the user interface, based on rules or associations.
28
CUSTOMER
Extension Center How do you create an object?
Yes, to make this field required. Determines whether the
Required
association is required for object definition. If required, at least one record for the association must exist when an instance is created of the object that you are defining. Visibility
Editable:Usercanaddanddeletedataforthisassociation. Read Only: User can only view records of this association. A user cannot add, delete, or edit any association data. Not Visible: User cannot view this association. Determines whether the association is visible.
Status
ActiveandInactive.Inactivefieldsarenotavailableinthe system. You cannot use them in import, UI, OData, rules, and so on. If you do not enable the corresponding module, fields become inactive automatically. Note that you cannot make the fields inactive from the UI. This is a read-only field.
5. You can add a condition to ensure that the association is dependent on the value of the parent field and will be visible when the condition value matches the parent field's value. For example, to assign the new country object to Legal Entity, the Condition fieldID is countryOfRegistration.codeand Condition Values is
. Itnhifsield .. .
E n t er . . .
Field ID
The parent field
Condition Values
Value of the parent field
6. Click Add Field Criteria to restrict the possible values for the field you are defining. Note that this applies only when relationship is set to Valid-When. Itnhifsield .. .
E n t er . . .
Source Field Name
Field whose values restrict the possible values for the field that you are defining.
Destination Field Value
Name of the field whose value is being restricted. This is the name of the field that you are defining. For example, you can restrict choices of dates based on an effective start date, or you can restrict choices such as countries, time zones, and so on, by location.
Default Destination Value
The default destination value .You can create a default des tination in cases where the destination field value is not set. Currently it only stores constant values.
7. Click
Action
Save Object .
Extension Center How do you create an object?
CUSTOMER
29
5.3
How do you configure rules?
Context
Let us now look at configuring rules. Rules help you ensure consistent behavior on the occurrence of an event. You can also use rules to keep a check on data changes (by triggering an approval). Rules can also be used to autofill field data (for example, time zone information can be auto filled based on location information).
Procedure 1. Go to the Rules tab. 2. Click Add New Rule and enter the details. 3. To enter the Basic Information, click
icon.
4. Enter the following details:
IT nh iFsield ...
E n t er . . .
Rule Name
Name by which you want to refer to this rule in the UI. For example, SetCurrentUserforCar.
Rule ID
Unique external code for the rule. For example, SetCurren tUserforCar.
30
CUSTOMER
Extension Center How do you create an object?
IT nh iFsield ...
E n t er . . . The date when this rule should be applied for the first time.
Start date
By default this is set to 01/01/1900. Any rule type from the drop-down menu. For more informa
Rule Type
tion on different rule types, refer the “Implementing Busi ness Rules in SuccessFactors Guide”. For this e xample, choose Mass Change. Mass change indicates multiple re cords will be updated as part of the change. A brief description for the rule. For example, enter “Set a
Description
current user for car”.
5. Configure parameters for the rule you are creating.
Note Parameters are used by rules to trigger the workflow. 6. To add a new parameter, click
IT nh iFsield ...
icon.
E n t er . . .
Name
The name for the parameter. For example, Request for com pany car.
Code
The object code of the base object in this field. For example, cust_demo_companycarRequest
Object
The extension object that is the base object of the rule from the drop-down menu. For example, Request for Company Car.
Note You can also select an existing rule by clicking Add Existing Rule. Search and select the rule from the Existing Rules list.
7. To save, select
Action
Extension Center How do you create an object?
Save Object . A new rule will be created in the extension.
CUSTOMER
31
Note Rules can be triggered at various phases of object creation. Refer the Rule Category Table [page 90] to find out which phase of object creation triggers which rule.
5.3.1 How do you manage field-level rules?
Context Apart from object-level rules, you can also add field-level rules. You can use a rule that you created using the Configure Business Rules page.
Procedure 1. To do this, click Show in Rule Engine.
The Configure Business Rules page appears.
32
CUSTOMER
Extension Center How do you create an object?
2. To edit, select
Take Action
Make Correction .
You can now configure the rule as required. If you've used the Admin Center > Configure Business Rules page before, this works exactly the same way. For more information on working with the Rules, see the MDF Implementation Guide and the Rules Engine Handbook. 3. When you finish, click Save.
Note For more information on working with the Rules UI, see the MDF Implementation Guide.
5.3.2 How do you use an existing rule?
Context If a rule already exists, you can reuse it instead of defining a new rule.
Procedure 1. Go to the Rules page. 2. Click Add Existing Rules.
3. Search for an exis ting rule (say "carStatusRequest"), select it, and click Save.
Extension Center How do you create an object?
CUSTOMER
33
4. Select
5.4
Action
Save Object , to save the changes for the object.
How do you configure workflows?
Context Let us now look at defining an approval workflow for the company car request. Workflows are used to define the approval process. In a typical workflow scenario, when the user submits a change, the approver gets an approval request in the To Do list. The change is reflected in the system only when the approver approves the request. Adding a Workflow
Procedure 1. Go to the Workflows tab. 2. Click Add New Workflow. This brings up the Workflow page. 3. Let’s now define the workflow for approval. In this example, we'll define a single level of approval from the manager Here’s the sample of a completed screen defining the workflow. Note that there is no approver type in Step 2. This indicates manager’s approval is sufficient to approve the application. To add a second level approver, in Step 2, specify the relationship of the approver. For example, some roles which can be assigned an approver role include Manager’s Manager, the HR Manager and the Matrix Manager.
34
CUSTOMER
Extension Center How do you create an object?
ITnhF isield ...
E n t er
Code
The unique external code for the workflow.
Name
The name by which you want to refer to this workflow in the UI.
Description
The description of the workflow.
Future Dated Alternate Workflow
Alternate workflow for future dated transactions, to be se lected from drop-down list.
4. In Step 1 and Step2 add the following details: IT nh iFsield ... Approver Type
E n t er . . . The type of approver from the drop-down menu. Refer the following descriptions to understand the different approver types:
Role: With this, you can evaluate the reporting line of the employee or initiator and address the workflow. For exam ple, to the manager, manager's manager, or to any job rela tionship manager.
Dynamic Role : A dynamic role can be used to route work flows to different approvers, depending on attributes that are used in the workflow content. It is typically used to de
Extension Center How do you create an object?
CUSTOMER
35
IT nh iFsield ...
E n t er . . . fine different behaviors in different parts of the company. You can do so by matching one or more attribute values to specific approvers of type user, dynamic group, or position.
Dynamic Group : Similar to permission groups, you can de fine a group of employees that are dynamically included into this group on the basis of the employees’ job information at tributes. When a workflow is addressed to a dynamic group, all employees will receive the workflow request in their in box.
Position: If position is selected, the workflow will go to all employees who are incumbents of this position at the time when the participants are evaluated.
Relationship to Approver
The appropriate relationship with the approver, in the con text of the process. In this example, Employee.
Approver
The approver for the request from the dropdown menu. In this example, Manager.
Edit Transaction
Edit with Route Change: This option gives the approver per mission to modify the workflow transaction. After the changes are made, the transaction will be re-evaluated and a new workflow automatically triggered. This can be the same workflow, but based on the given changes, this can also result in a different workflow.
Edit without Route Change : Similar to the above, the ap prover can make changes. However, the workflow then con tinues to the next step and there is no new workflow.
Context
The approver at the source or at the target. For example, if there is a request for employee transfer, this field will sug gest whether the manager at the source or the manager at the target will approve the request.
No Approver Behavior
Skip this Step if the request is not aborted when no approver is found.
Stop the Workflow if the request is aborted when no ap prover is found.
Respect Permission
Yes to respect the permission settings. No if you wish to disregard the permission settings.
5. You can also en ter the Contributors and the CCrole details as follows:
36
CUSTOMER
Extension Center How do you create an object?
Note Employees who are listed in CC-roles are informed whenever a workflow is completed.
ITnhF isield ... CC Role Type
E n t er The type of approver from the drop-down menu. Refer the following descriptions to understand the different approver types:
Role: With this, you can evaluate the reporting line of the employee or initiator and address the workflow. For exam ple, to the manager, manager's manager, or to any job rela tionship manager.
Dynamic Role : A dynamic role can be used to route work flows to different approvers, depending on attributes that are used in the workflow content. It is typically used to de fine different behaviors in different parts of the company. You can do so by matching one or more attribute values to specific approvers of type user, dynamic group, or position.
Dynamic Group : Similar to permission groups, you can de fine a group of employees that are dynamically included into this group on the basis of the employees’ job information at tributes. When a workflow is addressed to a dynamic group, all employees will receive the workflow request in their in box.
Position: If position is selected, the workflow will go to all employees who are incumbents of this position at the time when the participants are evaluated.
Actor
The actor can also take an action on the workflow. Select whom you want to assign the role of an actor from the dropdown menu. For example, an HR Manager can take action on the workflow.
Relationship to Approver
The appropriate relationship with the approver, in the con text of the process.
Context
The approver at the source or at the target. For example, in case of an employee transfer, this field will suggest whether the manager at the source or the manager at the target will approve the request for the company car.
Respect Permission
Yes to honor the permission settings. No to ignore permission settings.
6. To save the workflow changes for the object, select
Extension Center How do you create an object?
Action
Save Object .
CUSTOMER
37
5.4.1 How do you use an existing workflow?
Context If a workflow already exists, you can reuse the workflow instead of defining a new workflow.
Procedure 1. Go to the Workflows page. 2. Click Add Existing Workflow. 3. Select a workflow from the dropdown and click OK. Assuming Car Lease Request was the workflow already existing, select it from the dropdown.
4. Select
5.5
Action
Save Object , to save the changes for the object.
How do you configure the UI for the extension?
Context You can use the UIs page to define what the form should look like. Taking the example of the car request, let's look at how we can get the information required by the extension we created. To add a new configurable UI, click the New UI tab under the UIs tab.
38
CUSTOMER
Extension Center How do you create an object?
Procedure 1. In the Id field, specify a unique name for this form. Use a name that would help you identify the form later. 2. In the Select Base Object dropdown, select the base object For example, Request for Company car.
Note In the form below, you will see some fields already listed. All previously created picklists and fields automatically appear on this page. For example, carCategory and carMake are previously created picklists. Likewise, RequestDate and Reason are previously defined fields.
3. Hover over the page to see a tool bar at the top right corner. Click
icon on the tool bar to add a new field.
4. A new field appears on the screen, you can hover over the field to get the
5. Select the
icons.
icon to provide details for the field.
Note Click on the
icon to delete the field.
Extension Center How do you create an object?
CUSTOMER
39
Id
ThefieldID.ThisisauniqueIDcreatedbythesystemforthenewfield.
Note This is a read only field
Name Show Label
The name for this field.
Yes, to display the name of the field. No, to display the ID of the field.
Required
Yes, to indicate this field is mandatory. No, to indicate the field is optional.
Editable
Yes, to allow the user to edit this field. Setting it to No will make it read only.
Visible
Yes, to display the field on the UI. Setting this to No will hide the field.
Value Type
User-Defined, if you want the user to enter structure, constant or enumeration as the value for this field.
Resolver, if you want to set a custom value for this field
Note For more information see Value Type User-Defined and Value Type Resolver rows in this table
Value Type User-Defined
The type of value you want the user to enter in this field. Example: structure, constant or enumeration
40
CUSTOMER
Extension Center How do you create an object?
Note This field will appear if you select the User-Defined option in the value type field.
Value Type Resolver
The custom value that you want the user to enter from the dropdown menu.
Note
This field will appear only if you select the Resolver option in the Value Type field
LabelOverride
Thefieldnamethatyouwishtodisplayinthisfield.
OnChange UIRules
The rule that you want to apply to thisfield.This rule willbe triggered when any changes are made to this field.
6. From the font group, set the style of the Field and Label text by applying font settings as desired and click OK. 7. Select
Action
Save Object .
Extension Center How do you create an object?
CUSTOMER
41
5.6
How do you configure object properties?
Context
You can use the Properties configuration page to define and edit the standard aspects of an object like effective dating, API Visibility and the status. Taking the example of the company car request, let's look at how we can define the properties of a Company Car Request Object. The Properties tab page displays the Basic Properties and Advanced Properties sections.
Procedure 1. Enter the following Basic Properties details:
EffectiveDating
Theeffectivedate,thisisthedatewhenachangetakes effect. For example, if a car lease is to start on the 2nd of August, you will set the effective date to Aug 2. The end date defines when it ends.
APIVisibility
Editable,ReadOnly,orNotVisibleoptionsfromthedropdown menu. Default setting is Not Visible. It controls the visibility of the object, fields, rules and conditions in the MDF OData API.
Status
ActiveorInactive:IfsettoInactive,theobjectinstanceor record is not used and not visible anywhere in the system,
42
CUSTOMER
Extension Center How do you create an object?
including the rule engine, configurable UI designer, and role-based permissions. An object cannot be deactivated, if data exists or if it is referenced by an active association. If an object that is referenced in a rule is deactivated, that rule is invalidated. Data cannot be imported or exported for an inactive object.
2. Enter the following Advance Properties details :
MDF Version History
No: If this option is selected, or no selection is made, history records are not stored for any operation.
Delete History: If this option is selected, only the history records from the delete operation of that object type are available in internal history or audit tables. The data deleted by a full purge import and translatable fields are also included.
Complete History If this option is selected, the history records from the create/insert/update/delete operation of that object type are available in internal history or audit tables. The data deleted by a full purge import and translatable fields are also included. It is essential to have a snapshot of data on any given date. This is particularly important in integrations such as Employee Central to payroll, or Employee Central to User Management. When a record is updated, corrected, or deleted in MDF, you can track the previous values. When a
Extension Center How do you create an object?
CUSTOMER
43
record is deleted, it is marked as deleted and the date of deletion is recorded. DefaultScreen
ThedefaultconfigurableUItoanExtensioncenterobject. The assigned default UI is used in all places where the Extension center object appears, such as the Manage Data page, the Workflow Approval page, the MDF quick card, and the "Details" popup. For example, in this field you can enter the ID of the already configured UI for this object.
SubjectUserField
Theuserfieldthatwillinitiatetheworkflowaspertheinput. The input given by the user can be any user-defined field or ExternalCode. If no value is specified in this field, and ExternalCode is of user datatype, this field takes the value ExternalCode by default.
TodoCategory
Thekindofrequestsyouwanttosetfortheobjectyouare defining. For example, for the company car request object, Generic
Object Change Requests is set as the Todo category. PII
Yes,toallowRussianuserstosavetheirdatainRussianDB first and then the global DB.
PendingData
Yes,ifyouhavechosenaworkflowroutingthatinvolvesan approval, and you want the data changes to take effect only if approved. If the changes are not approved, the system rejects the changes. No, if the data updates can be made without any approval via workflow.
3. To save, select Action > Save Object.
5.7
How do you configure object and field security?
Context You can use the Security configuration page to define and add security at both object level and field level. Define permissions to control security at both the object and field level. Taking the example of the company car request, let's look at how we can define the security of a Company Car Request Object.
44
CUSTOMER
Extension Center How do you create an object?
You can add information about adding object, field, and association level security to the MDF object that you are defining, see MDF Security Using Role-Based Permissions (RBP) section in the Implementation Guide > Implementing the Metadata Framework (MDF).
Procedure 1. Go to the Security tab. 2. Enter the following details: IT nh iFsield ... Secured
E n t er . . .
No: if you want to mark this object as not secured. Yes: if you want to mark this object as secured.
Permission Category
1.
Miscellaneous Permissions
2. SAP System Configuration 3. Manage Job and Sk ill Profile visibility 4. MDF Foundation Objects
RBP Subject User Field
Specify any user field in the current object definition. The value can then be used to create user-based permission groups in RBP.
After an Object is secured, you can control access to that Object in role-based permissions. 3. Click Add Permission Role.
Extension Center How do you create an object?
CUSTOMER
45
4. Select the Role(s) you want to give permissions for. 5. Click Add Roles.
46
CUSTOMER
Extension Center How do you create an object?
Note Hide seconds is not currently supported. This field will allow you to hide the seconds for Time Data Type. 6. Now you can set the view, edit and import/export rights for this role. For example, you want the Admin to have all the above rights. You can use the toggle switch to mark Yes against each of these rights. 7. You can also control the access to the individual fields of an object by se lecting Not Override, View and No Access options. ○
Not Override: Both View and edit rights
○
View: Read-only rights
○
No Access: Will not be visible in the UI
Extension Center How do you create an object?
CUSTOMER
47
5.8
How do you use an existing object?
Context
You can reuse and add an Object from the existing list of Objects.
Procedure 1. Go to Extension Center. 2. Select the Extension to which you want to add the ex isting Object. 3. Click Add Existing Object.
The Add Existing Object page opens. 4. Enter the object title or th e external code of the object you want to add in t he search box.
Note You can also add standard SuccessFactors objects listed under the SuccessFactors Objects tab.
48
CUSTOMER
Extension Center How do you create an object?
5. Select the checkbox next to the object. 6. Click Save.
Extension Center How do you create an object?
CUSTOMER
49
6
How do you delete an object?
Context From the Extension Detail page, you can also delete an object by clicking the Delete Object icon.
Note This only deletes the object from the extension. The object remains in the system for future reuse.
50
CUSTOMER
Extension Center How do you delete an object?
7
How do you configure an extension to access it from the Employee Files page?
You can configure the application to access the extension from the Employee Files page, provided that the extension has an object, where the externalCode field has Type set as User.
Context Let's configure an extension that has an object, where the externalCode field has Type set as User, and on the Security tab, the security is set to Yes, and the Permission Category is set as Miscellaneous Permissions.
Extension Center How do you configure an extension to access it from the Employee Files page?
CUSTOMER
51
Procedure 1. To configure the Employee File layout to add the exte nsion you want employees to access, log in as admin , go to Admin Center appears.
Configure Employee Files , and click Add New View. The employee scorecard dashboard
2. Under User Portlets, click Insert Portlet. The Choose a Portlet page appears.
3. Corresponding to the MDF portlet, click Create & Add. The Live Profile MDF Information portlet appears.
52
CUSTOMER
Extension Center How do you configure an extension to access it from the Employee Files page?
4. Enter Portlet Title, Portlet Description, and for MDF Screen ID, select a UI of the extension, you are adding to the Employee Files page. 5. Click Save. A portlet for the extension is now added to the new Dashboard. 6. Enter Dashboard Name, its Description, select Layout, and click Save Dashboard.
Extension Center How do you configure an extension to access it from the Employee Files page?
CUSTOMER
53
A new employee scorecard has been successfully added. The extension can now be accessed from the Employee Files page of users, who have the necessary role-based permissions.
Next Steps Once you configure the Employee Files, you must grant the role-based permissions needed to access the extension from the Employee Files page. 1. Go to Admin Center Manage Permission Roles Permission Role Employee Views , and select the check box corresponding to the portlet created for accessing the extension. 2. On the Miscellaneous Permissions tab, configure all the necessary permissions to access the extension.
54
CUSTOMER
Extension Center How do you configure an extension to access it from the Employee Files page?
3. Click Done. 4. On the Permission Role Detail page, scroll to the Grant this role to section, grant the role to the appropriate target users, and click Done.
5. Click Save Changes.
Extension Center How do you configure an extension to access it from the Employee Files page?
CUSTOMER
55
The employees with the necessary role-based permissions can now access the extension from the Employee Files page in the application.
56
CUSTOMER
Extension Center How do you configure an extension to access it from the Employee Files page?
8
How do you delete an extension?
Context From Extension Center, you can also delete an extension by clicking the Delete Extension icon:
Note When you delete an extension only the extension gets deleted not the objects, workflows, rules, and UIs associated with it. These objects, workflows, rules, and UIs can be used in other extensions if required.
Extension Center How do you delete an extension?
CUSTOMER
57
9
How do you publish an extension?
9.1
How do you prepare to publish an extension?
You can publish an extension only after you set up the instances involved in publishing of the extension. Before publishing an extension, you must: ●
Configure instances as explained in How do you configure source and target instances in Provisioning? [page 58]
●
Enable RBP as explained in How do you enable permissions in the source instance to publish the extension? [page 59].
Related Information How do you publish the extension? [page 61]
9.1.1 How do you configure source and target instances in Provisioning? Helps you configure both the instances involved in publishing of the extension.
Context To begin with, you must have the Source and Target instances configured in Provisioning. For example, ●
Source instance: PLTAHU01
●
Target instance: PLTAHU01C
Note As a customer, you do not have access to Provisioning. Contact SAP Cloud Product Support to enable these options. To enable Source and Target instances in your SAP SuccessFactors system, go to
Instance
Provisioning
Company
Company Settings , and enable Instance Synchronization Tool.
Next, set up Target instance to accept artifacts from the Source instance.
58
CUSTOMER
Extension Center How do you publish an extension?
Procedure 1. In Provisioning, go to Company Instance Instance Synchronization Company Permissions . The Synchronize Company Data Permission page appears. 2. Select either Configure Instance in the same Data Centeror Configure Instance in different Data Center depending on whether your Source and Target instances are on the same Data Center or not. 3. Enter Target Data Admin's User ID, and select the Source instance (in this case, the one with Company ID as PLTAHU01). The Select objects that the company can push dialog box appears. 4. Select all Configuration Items, and click Done. 5. On the Synchronize Company Data Permission page, click Save
9.1.2 How do you enable permissions in the source instance to publish the extension? Helps you configure the permission group and the permissions role, required for publishing the extension.
Prerequisites Create a permission group for users that will be granted the permission to publish Extension Center.
Creating a Permission Group 1. Log in as an admin, and go to Admin Center. 2. In the Tools Search field, enter Manage Permission Groups. The Manage Permission Groups page appears. 3. To create a new gro up for publishing Extension Center, click Create New. The Permission Group dialog box appears.
Extension Center How do you publish an extension?
CUSTOMER
59
4. In the Definition tab, enter Group Name. 5. Under Choose Member Group, select the users, you want to be able to publish Extension Center. 6. Click Done. You have successfully created a permission group, with users, who can publish Extension Center.
Context Once your permission group is ready, grant the group the appropriate role-based permissions for synchronizing the artifacts from source instance to target instance.
Procedure
1. Log in as an admin, and go to Admin Center. In the Tools search field, enter Manage Permission Roles. 2. Select the role for which you wish to give access to use Extension Center. For example, System Admin. 3. On the Permission Role Detail page, in the Permission Settings section, click Permission. 4. On the Permission Settings dialog box, under User Permissions, select Manage Instance Synchronization. 5. Click Select All.
60
CUSTOMER
Extension Center How do you publish an extension?
6. Click Done, and on the Permission Role Detail page, scroll down to the Grant this role to section and click Add. The Grant this role to dialog box appears. 7. In Step 1, use Permission Group, and select the permission group created for publishing Extension Center. 8. In Step 2, select Target Population, and in the dropdown menu, select Granted User (Self). 9. Click Done, and on the Permission Role List page, click Save Changes.
9.2
How do you publish the extension?
Enables you to publish the extension from the Source instance to the Target instance.
Procedure 1. Log in to the Source instance (PLTAHU01) as an admin, and go to Admin Center. 2. In the Tools Search field, enter Extension Center. The Extension Center page appears. 3. Select the extension you want to publish. The Extension Detail page appears, which shows the list of objects defined for the extension. Extension Center How do you publish an extension?
CUSTOMER
61
Note If there are no objects available for publishing, create an object as described in How do you create an object? [page 19], or to create a new extension, refer to How do you create a new extension? [page 15]. 4. For each object: create Rules, Workflows, configure UIs, on the Security tab, set the security to Yes, under
Permission Category, select Miscellaneous Permissions, and then click changes.
Action
Save Object
5. Click the Back to: Extension link, and on the Extension Detail page, click Publish Extension dialog box appears.
Action
Publish Extension . The
to save the
6. Select a target instance to publish the extension, and click Next.
62
CUSTOMER
Extension Center How do you publish an extension?
Note If there are no target instances available, configure a target instance as explained inHow do you configure source and target instances in Provisioning? [page 58]. As a customer, you do not have access to Provisioning. Contact SAP Cloud Product Support to enable these options. 7. Open the Go to sync RBP link in a new window, and configure the RBP synchronization as explained inHow to synchronize instance configurations? [page 67], and click Confirm.
Extension Center How do you publish an extension?
CUSTOMER
63
The Extension Published dialog box appears. You can see the current status of your publishing activity, by clicking the Go to Monitor Jobs Tools link.
Once you close the dialog box and return to the Extension Detail page, the Status could be Publishing in Progress, which changes to Previously Published in some time.
64
CUSTOMER
Extension Center How do you publish an extension?
Next Steps Due to a current limitation in the product, when you publish an extension, the MDF Object Definition artifact may fail. To rectify the failure, 1. Either, click the Go to Monitor Jobs Tools link on the Extension Published confirmation page, or, go to
Center
Admin
Instance Synchronization Monitor Tool . The Instance Synchronization Monitor Tool page appears.
2. Click Search. The extension you published appears in the search results.
3. In the Actions column, corresponding to the extension, click Details. The Sync Details pop-up window appears.
Extension Center How do you publish an extension?
CUSTOMER
65
If the entire column of Failed Count shows "0", then your publishing was successful. Else, if the count for MDF Object Definition is "1", re-publish the extension on the same Target instance, and it resolves the issue.
66
CUSTOMER
Extension Center How do you publish an extension?
9.3
How to synchronize instance configurations?
Enables you to synchronize the role-based permissions of the source and the target instances.
Context
You define role-based permissions and permission group, specific to the publishing activity, on the Source instance. When you publish an extension, t he role-based permissions and permission group must be replicated on the target instance, as well. This synchronization is achieved using theSynchronize Company Configurations tool.
Procedure 1. Go to Admin Center page appears.
Synchronize Instance Configurations . The Synchronize Company Configurations
2. Click the link for "Synchronize Company Configurations tool". The configuration sync wizard appears.
Note If your previous instance synchronization was not completed, you will have two options: either to continue with the synchronization from where you left by clicking the Resume it now link, or to start afresh by clicking the start over from the beginning. 3. Select the target instance you want to synchronize. 4. Under Which type of data you want to copy?, select RBP Permission Groups and RBP Permission Groups, and click Start. The Dependency Description dialog box appears. 5. Click Auto-Select Dependencies. The dependent artifacts are automatically selected. The artifacts, which are uncompatible for sync or are inaccessible to you, are ignored. 6. Click Start, and you are on the Name tab of the wizard. 7. Provide a Name, a User ID from the target instance, and click Next. The Copy Data Model page appears. 8. For the Copy Data Model and Copy Picklists pages, click Next without selecting any options. 9. For the question on whether you want to overwrite the existing picklists on the target instance, selectNo, and click Next. The Copy RBP Permissions Groups page appears. 10. Select the group you created for publishing the extension, and click Next. A question, whether you want to overwrite the existing RBP groups on the target instance, appears. Select Yes, and click Next. The Copy RBP Permissions Roles page appears 11. Select the permission role you created for publishing the extension and click Next. A question, whether you want to overwrite the existing RBP roles on the target instance, appears. Select Yes, and click Next. The Copy MDF Rules page appears. 12. Click Next without selecting any options on the Copy MDF Rules and Copy MDF Object Definition pages, and on the questions for overwriting the existing MDF rules and the existing MDF Object Definition on the target instance, select No and click Next. The Summary page appears. Extension Center How do you publish an extension?
CUSTOMER
67
13. Click Run Sync Now, and on the confirmation pop-up, click Confirm Synchronization. Once the synchronization is complete, a confirmation message appears and you are automatically redirected to the Instance Synchronization Monitor Tool page.
Next Steps Although, it is optional, you can check the status of your synchronization job on the Instance Synchronization Monitor Tool page, and then log in to the target instance to check whether the permission group and the permission role have been copied properly. 1. Click Search. Your synchronization job appears in the search results. 2. In the Actions column, click Details corresponding to the job. The Sync Details pop-up appears.
68
CUSTOMER
Extension Center How do you publish an extension?
3. Confirm that the RBP grou p and role have been cop ied to the target ins tance, and cli ck Close. 4. Log in to the target instance as an admin. 5. Go to Admin Center source instance.
Manage Permission Groups
6. Go to Admin Center instance.
Manage Permission Roles and check the permission role copied from the source
9.4
and check the permission group copied from the
How do you interpret the publishing status?
Helps you understand the significance of the statuses involved in publishing of an extension. The publishing status of an extension is available on the Extension Detail page.
●
Publishing in Progress: Displays the target instance name in the current publishing process.
●
Failed Publishing: Displays the target instance names of failed publish jobs. This appears only if there is at least one publishing error. If subsequent publishing to the same instance succeeds, this will disappear.
●
Previously Published: Displays the target instance names of previous successful jobs. If extension was published several times to one instance, this instance name appears only once.
Extension Center How do you publish an extension?
CUSTOMER
69
●
Unpublished: If the extension has not been published anywhere yet, status will be Unpublished.
Note The publishing job status, a detail report of the error log in case of failed publishing, and further details will appear on the Instance Sync Tool Monitor page. The HR Admin can see the status and monitor the page. For a detailed error log, or to analyze the error please contact SAP Cloud Product Support.
70
CUSTOMER
Extension Center How do you publish an extension?
10
How does the Employee use the extension?
Once the HR Admin publishes the extension, the employee can use the application created as a result of the extension. As per the current extension design, the employee can access the extension through the "Manage Data" page, or through portlet linked to "Employee Profile" or "Employee Files". Continuing with the example of the Company Car Request, the employee can use this application to request the company car. Here’s a sample of the workflow the employee will be going through:
10.1 How do you access an extension from the Home Page? You can create Links to the extension or create custom tiles for the extension on the Home Page.
Context The extensions can be accessed from the Manage Data page, or (extensions with object having the externalCode field of : User) can be accessed from the Employee Files page. On the Home Page v12, you can either add Extension Center How does the Employee use the extension?
CUSTOMER
71
links to the Manage Data page and the Employee Files page and make them available on the Links tile or add custom tiles for them and provide links to the respective pages.
10.1.1 How do you create a custom tile for accessing an extension? Create a custom tile on Home Page of the application and add links to pages such as Employee Files, Employee Profile Portlet, Manage Data, etc.
Context Let's add a custom tile for the extension on Home Page v12.
Procedure 1. Log in as admin, go to Admin Center The Add Custom Tile page appears.
72
CUSTOMER
Manage Home Page , and on the Default tab, click Add Custom Tile.
Extension Center How does the Employee use the extension?
2. Fill out the tile settings, configure the content, and in the Main Content add the link to access the extension (from the Manage Data page or the Employee Files page).
Extension Center How does the Employee use the extension?
CUSTOMER
73
3. Click Save.
10.1.2 How do you access an extension using the Links tile? You can access an extension by adding links to the Links tile on the Home Page v12.
Context The extensions can be accessed from the Manage Data page, or (extensions with object having the externalCode field of : User) can be accessed from the Employee Files page. You can add links to these pages, within the
Links tile.
74
CUSTOMER
Extension Center How does the Employee use the extension?
Procedure 1. Log in as admin, go to Admin Center Manage Home Page , and on the Default tab, click Manage Links corresponding to the Links tile. The Manage Links page appears.
2. Add Link Label, select On by default check box to view the link on the tile by default, and enter the URL for the extension.
Extension Center How does the Employee use the extension?
CUSTOMER
75
3. Click Save, and navigate back to the Home Page. 4. On the Links tile, click Edit. The Links pop-up window appears.
5. From the Available section, select the link(s) you added for accessing the extension. The link(s) appear in the Selected section.
76
CUSTOMER
Extension Center How does the Employee use the extension?
6. Click Save. The link(s) now appear on the Links tile of the Home Page.
10.2 How do you use the extension from the Manage Data page in Admin Center? Shows you how to use an extension created using Extension Center.
Context The extensions with objects where the externalCode field is not set to type User, cannot be made available on Employee Files. Such extensions can only be accessed from the Manage Data page. Continuing with the Request for Company Car example, here's how you can use the new extension for the Company Car Request, using the Manage Data page.
Extension Center How does the Employee use the extension?
CUSTOMER
77
Note To grant access to the Manage Data page, you must enable the relevant role-based permission: go to
Center
Manage Permission Roles
Permission Role
Admin
Metadata Framework , and select Manage Data.
Procedure 1. Go to Admin Center. 2. In the Search field, enter Manage Data . This will bring up the Manage Data page. 3. In the Create New dropdown, search for Car Request, and select the relevant form. The Request for Company
Car page opens. 4. Fill out the requ ired fields in form. As you can see the field s are self-explanatory. 5. In the externalCode and externalName fields, type acknowledgement.
Note The externalCode and externalName fields will not be visible to the employee. The employee will only see the fields in step 4. 6. Click Save. You are prompted to confirm your action. 7. Enter a message for the approver in the field and click Confirm. A request for approval is sent to the manager.
Next Steps Check out the Manager's To Do list to approve or deny the request.
10.3 How do you use the extension from the Employee Files page? Shows you how to test an extension created using Extension Center.
Context The extensions with objects where the externalCode field is set to type User, can be used from the Employee Files page. Continuing with the Request for Company Car example, here's how you can use the new extension for the Company Car Request, from the Employee Files page.
78
CUSTOMER
Extension Center How does the Employee use the extension?
Procedure 1. Go to My Employee File. The Request for Company Car portlet appears on the Employee Files page. 2. Select Edit on the top-right corner of the portlet to create a new company car request. The company car request form opens. 3. Fill out the requ ired fields in form. As you can see the fiel ds are self-explanatory. 4. In the externalCode and externalName fields, type acknowledgement. 5. Click Save. You are prompted to confirm your action. 6. Enter a message for the approver in the field and click Confirm. A request for approval is sent to the manager.
Extension Center How does the Employee use the extension?
CUSTOMER
79
11
How does the Manager review the application?
After the employee has requested for the car, the manager receives an application for approval. Tip: The manager can check the To-Do list to see a list of pending requests. The application sent by the employee will also appear in this list. Here’s a sample of the workflow the manager will be going through:
80
CUSTOMER
Extension Center How does the Manager review the application?
Here’s the sample of the page that the manager will see:
The manager can now approve the request or send it back.
Extension Center How does the Manager review the application?
CUSTOMER
81
11.1
How does the manager approve or send back the request?
This section describes how the manager can approve or send back a request made by the employee using the extension created in the Extension Center.
Context Following the Company Car Request example, let us see how the manager can approve the request or application submitted by the employee.
Procedure 1. Log in to the Suc cessFactors HCM Suite. You will find the pending request in the To Do tile, of your Home page. 2. Select "Request for Company Car" to view the request. 3. Select Approve, to approve the request.
Note Optionally, a comment can also be provided in the Comment field of the request before being approved or sent back to the employee.
82
CUSTOMER
Extension Center How does the Manager review the application?
12
FAQ: Extension Center
12.1
How do you add Extension Center to your Favorites?
Context You can add Extension Center to your Favorites on the Admin Center page, to make it easily accessible.
Procedure 1. Go to Switch back to NextGen Admin Center > Tools. 2. Click See All. 3. You will find Extension Center under Company Settings. 4. Hover over Extension Center, and click on the
icon.
12.2 What is an Uncategorized extension? ●
All objects, rules, workflows and configurable UIs that are not part of any other extension are displayed under ‘Uncategorized’ title.
●
You can use the objects, rules, workflows, and configurable UIs from this Uncategorized extension in any other extension you are creating.
●
You cannot delete the ‘Uncategorized’ title.
Extension Center FAQ: Extension Center
CUSTOMER
83
12.3 Are all features available in MDF for creating extensions available in Extension Center? Summarizes the differences between Extension Center and MDF. Table 2: Feature Comparison Chart
Ex t ens ionCen t er Support for Inactivated Byf
ield
Non-unique External Codei
npicklist
Support for Display Order under Picklist
Not supported
MDF Supported
Notsupported
Notapplicable
Notsupported
Supported
Notsupported
Supported
Notsupported
Supported
field
Insert a new record in picklist (to access picklist history) UIAssociationRenderer in Association Support for Hide Seconds f
ield
Cascade flag for Object Field and Associ
Not supported
Supported
Notsupported
Supported
Notsupported
Notapplicable
ations
Duplicate extension
84
CUSTOMER
Extension Center FAQ: Extension Center
12.4 Why does the MDF object definition always fail when publishing the extension? In all likelihood, you are seeing the following error:
This is due to a limitation in the workflow today. As a workaround, you are requested to republish the extension. On republishing, the job will pass.
Extension Center FAQ: Extension Center
CUSTOMER
85
Once publishing is done, the status of the extension is changed to Previously Published.
86
CUSTOMER
Extension Center FAQ: Extension Center
13
Reference Tables
13.1
Data Type Table
Context Extension Center supports the following Data Types:
Procedure
S elect heD at aT yp e… String
T hisis … . Used for text input fields. MDF allows storing text up to 4K long.
Number
Used to store positive integers. Allowed characters are 0-9. It is displayed based on the user's locale settings, such as using a comma or decimal point as the decimal separator.
Auto Number
Used to store numbered lists.
Decimal
Used to store decimal numbers. It is displayed based on the user's locale settings, such as using a comma or decimal point as the decimal separator.
Boolean
The two allowed values are Yes and No.
Date
Used to store a date from a date picker.
DateTime
Used to store the date and time information related to a time zone This is a more granular data type. Time is converted to the time zone of the user who views or requests the export, and not to that of the user who srcinally entered the time.
Time
Used to allow the user to enter times without having to specify any time zone information. Times are generally displayed in HH:MM:SS format and are validated to ensure that a valid time value is entered. However, multiple formats are allowed based
Extension Center Reference Tables
CUSTOMER
87
S elect heD at aT yp e…
T hisis … . on the settings in the object definition, for example, HideSec onds and TwelveHourFormat.
Picklist
Used to restrict the field value from a picklist
Translatable
Used to allow the entry of localized strings for different locales
Enum
Used to specify exact values.
Generic Object
Used to reference a generic object. When the object is created, this field shows a value help with a list of the instances of that generic object.
Foundation Object
Used to reference a foundation object. When the object is cre ated, this field shows a value help with a list of the instances of that foundation object. Note: Foundation objects are standard SuccessFactors object.
Attachment
Used as navigation property to attach entity.
User
Used to reference a user object. When the object is created, this field shows a value help with a list of active users. Used to store a block of text. The advantage of this data type
CLOB
is that access is fast because an application program can ac cess any portion of a CLOB object. Additionally, this data type provides large storage for a user-defined data type.
Auto Complete
Used to automatically fill the information based on earlier user input.
88
CUSTOMER
Extension Center Reference Tables
13.2 Relationship Types Table
Context Extension Center supports the following Relationship Types:
Procedure
S electt hisR elat ion sh ipT y p e… . Composite
W h en … Two objects share a parent-child relationship. Note: A child object cannot exist on its own and it cannot be used as a toplevel object. Also it is not shown in the dropdown when you create a new object. For example, for a company car request object, the Acknowledge Request object is a child object that results only when the parent object (Company Car Request) is created.
Valid When (or Reference)
The associated objects have their own lifecycles and the object exists even without the parent object. For example, the car request object can have a Valid When re lationship with a delivery location object. When you use this re lationship type to add a car request object, you are shown an autocomplete for the available locations that are active and ef fective on the current entity’s start date. If the current entity is not effective-dated, the results for current date (according to the system) are shown.
Effective Dated: It is the date when the action takes effect. An object with an effective date will also have an effective “enddate”, indicating when the setting is no longer applicable.
Join By Column
You can use this relationship type to model associations that are neither composite nor reference (Valid When) associations. Set one field of the parent object definition as the source ob ject column and one field of the child object definition as the destination object column. Then the Join by Column associa tion will make the value of these two object columns reference each other. For example, you have created two objects, Per son, which is not effective-dated, and PersonInfo, which is ef
Extension Center Reference Tables
CUSTOMER
89
S electt hisR elat ion sh ipT y p e… .
W h en … fective-dated. Person is the parent object and the external Code column is used as the source. PersonInfo is the child ob ject and, using the Join By Column, its externalcode column refers to the Person object. In this way, these two objects al ways share the same external code.
Effective Dated: It is the date when the action takes effect. An object with an effective date will also have an effective “enddate”, indicating when the setting is no longer applicable.
13.3 Rule Category Table Table 3:
Rule Category
Description
Initialization
Initializationrules("initializeRules")aretriggeredintheinitiali zation phase of object creation (an "onInit" event). You can use these rules to initialize fields to default values. For exam ple, initialization rules can be used to autofill employee ID field with the login user ID. Note Initialization rules are not sup ported when setting the wfConfig attribute to trigger work flows.
Validation
Validationrules("validateRules")aretriggeredafterachange to an object is submitted but before the change is saved (an "onValidate" event). You can use these rules to validate field values. For example, validation rules can be used to make sure that numbers cannot be entered in the field Employee Name.
Saving
Saverules("saveRules")aretriggeredwhenausertriesto save changes to an object (an "onSave" event). You can use these rules to check related field values for correctness. For example, a field could become required as a consequence of a save.
90
CUSTOMER
Extension Center Reference Tables
Rule Category AfterSaving
Description Post-saverules("postSaveRules")aretriggeredafterchanges to an object have been saved (an "onPostSave" event). These rules are used when you want to send an alert message to the user. They are not used to set a field value. To activate the alert and notification feature, you must associate them with a workflow. Note By the time a post-save rule is triggered, the Extension Center object has already been saved and can’t be changed. Also, post-save rules are not supported when setting the wfConfig attribute to trigger workflows.
Delete
Deletionrules("deleteRules")aretriggeredafteranobjectre cord is deleted (an "onDelete" event).
Extension Center Reference Tables
CUSTOMER
91
Important Disclaimers and Legal Information
Coding Samples Any software coding and/or code lines / strings ("Code") included in this documentation are only examples and are not intended to be used in a productive system environment. The Code is only intended to better explain and visualize the syntax and phrasing rules of certain coding. SAP does not warrant the correctness and completeness of the Code given herein, and SAP shall not be liable for errors or damages caused by the usage of the Code, unless damages were caused by SAP intentionally or by SAP's gross negligence.
Accessibility The information contained in the SAP documentation represents SAP's current view of accessibility criteria as of the date of publication; it is in no way intended to be a binding guideline on how to ensure accessibility of software products. SAP in particular disclaims any liability in relation to this document. This disclaimer, however, does not apply in cases of wilful misconduct or gross negligence of SAP. Furthermore, this document does not result in any direct or indirect contractual obligations of SAP.
Gender-Neutral Language As far as possible, SAP documentation is gender neutral. Depending on the context, the reader is addressed directly with "you", or a ge nder-neutral noun (such as "sales person" or "working days") is used. If when referring to members of both sexes, however, the third-person singular cannot be avoided or a gender-neutral noun does not exist, SAP reserves the right to use the masculine form of the noun and pronoun. This is to ensure that the documentation remains comprehensible.
Internet Hyperlinks The SAP documentation may contain hyperlinks to the Internet. These hyperlinks are intended to serve as a hint about where to find related information. SAP does not warrant the availability and correctness of this related information or the ability of this information to serve a particular purpose. SAP shall not be liable for any damages caused by the use of related information unless damages have been caused by SAP's gross negligence or willful misconduct. All links are categorized for transparency (see: http://help.sap.com/disclaimer).
92
CUSTOMER
Extension Center Important Disclaimers and Legal Information
Extension Center Important Disclaimers and Legal Information
CUSTOMER
93
go.sap.com/registration/ contact.html
© 2016 SAP SE or an SAP affiliate company. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE or an SAP affiliate company. The information contained herein may be changed without prior notice. Some software products marketed by SAP SE and its distributors contain proprietary software components of other software vendors. National product specifications may vary. These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP or its affiliated companies shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP or SAP affiliate company products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty. SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. All other product and service names mentioned are the trademarks of their respective companies. Please see http://www.sap.com/corporate-en/legal/copyright/ index.epx for additional trademark information and notices.