Affects Version/s: servicenow-connector-126.96.36.199
Fix Version/s: servicenow-connector-188.8.131.52
Component/s: ServiceNow Connector
Environment:Linux Mint 18.2 Cinnamon 64-bit,
openjdk version "1.8.0_151",
OpenIDM version "6.0.0-SNAPSHOT" (revision: 674d0a6),
ServiceNow Connector 184.108.40.206-SNAPSHOT (SCM-Revision: 43c3b928790359cc0a5f618d2240ed3e8cb47cf2)
All ObjectTypes in provisioner file for ServiceNow have two editable properties mapped to one servicenow attribute. For example objectType "user" has editable "email" and "__NAME__" properties which are mapped to "email" serviceNow attribute of "user" table.
However during create user via REST, serviceNow "email" has always value of "email" property.
Steps to reproduce in "user" table:
- Download OpenIDM and ServiceNow connector
- Unzip OpenIDM and prepare OpenIDM for add ServiceNow connector according documentation
- Start OpenIDM
- Log in as openidm-admin at browser on URL http://localhost:8080/admin
- Add Connector - Navigate to Configure > Connector and click on New Connector
- Select Connector type to ServiceNow Connector and fill all required fields
- Click on Save button
- Provision file was created provisioner.openicf-serviceNow.json
- Add user with "email" property
- Add user without "email" property
- User with "email" property - The user was created and response had displayed value of "email" to "__NAME__".
- User without "email" property - The user was created and response had displayed "" to "__NAME__", not "Some__NAME__2".
I would expect that __NAME__ should be mapped to required attribute. Should not exists mapping two or more editable properties to one attribute. One property should be editable and other properties should be only for read.
Possible solution - change mapping to some required attribute at ServiceNow. Maybe It is only sys_id > then set __NAME__ as read only. Because all attributes in default serviceNow instance are non-required and sys_id is generated (only for read).