How to sync not only the user's information from AD(ldap) but also the department, extension with Service catalog so that it can be used on a field in a Catalog-Form with the java-value-function $(_.user.xxxx)?
Service Catalog 17.3 and higher
To get the department visible for a user, it needs to be synchronized between AD and the ca_contact table.
The ldapimporter utility is the utility to sync AD-data with the ca_contact table in the mdb database.
However, the ldapimporter only populates the user-data in the ca_contact table from the AD/LDAP.
To get the department synchronized too, a workaround is needed.
The following example uses user's column 'description' (in the ca_contact table) to hold the 'department'-value.
To import the department from the AD into the ca_contact table, set/change the below in the Service-Catalog-install-directory\ ldapimporter<server>.properties file:
LDAP.User.MicrosoftAD.Mapping = ca_userName = sAMAccountName \n ca_firstName = givenName \n ca_lastName = sn
\n ca_description = department.
In the AD-UI set the Organization/Department for a user.
And then execute "ldapimporter.bat ldapimporter<server>.properties" from command prompt Service-Catalog-install-directory\scripts to sync ca_contact with AD/LDAP on this field.
The ca_contact table and it's 'comments' column then show the value of the department as in AD.
Then follow the below procedure to get the department visible in the CA Service Catalog Form.
On the form in the SC-UI, add a 'Text Field' component.
Next, for this field, look for the attribute with name='value'.
And then set this attribute's value to $(_.user.description).
After this, field on the form, shows the department info then too.