Provisioning users from source to target systems is usually straightforward: you run the job, sync the data, and everything works. At some point, however, new requirements come up — such as the need to update the attributes of existing users.
Consider this: Your target system now requires human‑readable display names for all users. This isn’t just a cosmetic change but a real scenario. In SAP S/4HANA Cloud Public Edition, business partners representing business (login) users need meaningful identifiers. Without display names, SAP Task Center users are left identifying tasks by UUIDs, which are neither intuitive nor easy to remember.
So how do you handle that?
Your Three Options
When facing this requirement, you have the following options:
- Manual Entry – Enter the attribute manually. This is technically possible but isn’t scalable for hundreds or thousands of users.
- Custom Development – Build your own solution using the Identity Directory API. This gives you full control but requires development resources and maintenance.
- Identity Provisioning Service – Modify your transformation mappings and run provisioning jobs. This is the approach we’ll guide you through in this blog.
The Practical Example
Let’s update the displayName attribute for a user named Michael Adams in the Identity Directory of your SAP Cloud Identity tenant. For simplicity, the system is configured to sync within the same Identity Directory, meaning it acts as both the source and the target.
Currently, Michael’s account contains basic attributes: first name, last name, login name, email, and department, but the display name is empty.
To populate the Display Name with a value:
- Login to SAP Cloud Identity Services admin console and navigate to Identity Provisioning.
- Select your target Identity Directory system, open the Transformations tab and choose Edit.
- Apply one of the following mapping changes:
Populate Existing Attribute in the Display Name
To populate an existing attribute (for example, userName) to the display name, replace the current displayName mapping:
{
"sourcePath": "$.displayName",
"optional": true,
"targetPath": "$.displayName"
},
With:
{
"sourcePath": "$.userName",
"optional": true,
"targetPath": "$.displayName"
},
After saving your changes and running the job, the userName (login name: MAdams) is populated in the Display Name.
Concatenate First and Last Names
To concatenate the first and last names into the displayName, replace the current mapping with one that uses the concatString function:
{
"sourcePath":"$.name.givenName",
"targetPath":"$.displayName",
"functions":[
{
"function":"concatString",
"suffix":"$.name.familyName"
}
]
},
After saving your changes and running the job, the system combines the first and last names into the Display Name.
Use Attributes from Extended SCIM Schema
When using attributes outside the default core SCIM schema – for example, combining the last name with a department value (Finance/Accounting), where department belongs to the enterprise extension schema, you must explicitly reference the schema in your mapping:
{
"sourcePath":"$.name.familyName",
"targetPath":"$.displayName",
"functions":[
{
"function":"concatString",
"suffix":"$['urn:ietf:params:scim:schemas:extension:enterprise:2.0:User']['department']"
}
]
},
After saving your changes and running the job, the system concatenates the last name (Adams) and department (Finance/Accounting) into the Display Name.
Concatenate First Name, Last Name, and Username
To combine three attributes, for example: first name, last name, and username into the displayName, replace the current mapping with one that uses the replaceParameters function:
{
"constant": " ()",
"optional": true,
"targetPath": "$.displayName",
"functions": [
{
"function": "replaceParameters",
"placeholders": {
"firstName": "$.name.givenName",
"lastName": "$.name.familyName",
"userName": "$.userName"
}
}
]
},
After saving your changes and running the job, the Display Name will include all three attributes.
As you can see, there are multiple ways to update user attributes. Once you understand the transformation logic, you can adapt it to fit your business scenarios. The result: less manual effort, greater efficiency, and no need for custom code.



