Announcing the Saviynt Knowledge Exchange unifying the Saviynt forums, documentation, training,
and more in a single search tool across platforms. Read the announcement here.

Database Connector - Account Correlation mapping not happening

Uzair
New Contributor
New Contributor

We have a database connection for which the account correlation is not happening.

The account correlation rule has been set in the endpoint in advanced query as "users.username = accounts.name" (tried basic config with the same setup as well)

Note: A1, A2 are usernames

I have also mapped the account correlation rule in the advanced config as "users.username = 'A1'" and tired to bring in only the account A1 via import. This doesn't seem to work as well.

Additionally, I don't find any mentions of
"Associating Users and Accounts" or " Total accounts to be correlated" in the logs.

Please find the mappings as below:

1. Status and Threshold config
{
"statusAndThresholdConfig": {
"statusColumn": "customproperty20",
"activeStatus": ["512","A","1"],
"deleteLinks": true,
"accountThresholdValue": 1000,
"correlateInactiveAccounts": false,
"inactivateAccountsNotInFile": true
}
}


2. Accounts Import
<dataMapping>
<sql-query description="Import" uniquecolumnsascommaseparated="name" >
<![CDATA[select UPPER(emp.employeeID) as 'accountName', ‘SS’ as securitysystemname, ‘SS’ as endpointname, 'Groups' as entitlementtype, app.description as role, CASE when emp.status = 'A' THEN 1 ELSE 2 END AS accountstatus, emp.status as 'AccountStatusProp', emp.ModifiedDateTime from EmployeeDetails emp join EntDetails app on emp.appID=app.appID where employeeID IN (‘A1’,'A2',)]]>
</sql-query>
<incrementalcondition>
<![CDATA['${incrementalcolmaxval.format("yyyy-MM-dd")}']]>
</incrementalcondition>
<mapper description="Import" ifusernotexists="noaction" addOnlyMode="true" deleteaccountentitlement="true" dateformat="date" incrementalcolumn="ModifiedDateTime">
<mapfield saviyntproperty="accounts.name" sourceproperty="accountName" type="character"/>
<mapfield saviyntproperty="securitysystems.systemname" sourceproperty="securitysystemname" type="character"/>
<mapfield saviyntproperty="endpoints.endpointname" sourceproperty="endpointname" type="character"/>
<mapfield saviyntproperty="entitlementtypes.entitlementname" sourceproperty="entitlementtype" type="character"/>
<mapfield saviyntproperty="accounts.customproperty20" sourceproperty="AccountStatusProp" type="character"/>
<mapfield saviyntproperty="entitlementvalues.entitlementvalue" sourceproperty="role" type="character"/>
<mapfield saviyntproperty="accounts.status" sourceproperty="accountstatus" type="number"/>
</mapper>
</dataMapping>

Please can you help in identifying if there are any gaps?

Thanks in advance,
Uzair 

4 REPLIES 4

NM
Regular Contributor III
Regular Contributor III

Hi @Uzair, is user.username and account name has the the same value ?

Can you share the value for both the attributes?

Raghu
Valued Contributor III
Valued Contributor III

@NM  try below

<dataMapping>
<sql-query description="Import" uniquecolumnsascommaseparated="name" >
<![CDATA[select UPPER(emp.employeeID) as 'accountName','SS' as securitysystemname,'SS as endpointname, 'Groups' as entitlementtype, app.description as role, CASE when emp.status = 'A' THEN 1 ELSE 2 END AS accountstatus, emp.status as 'AccountStatusProp', emp.ModifiedDateTime from EmployeeDetails emp join EntDetails app on emp.appID=app.appID where employeeID IN ('A1','A2',)]]>
</sql-query>
<incrementalcondition>
<![CDATA['${incrementalcolmaxval.format("yyyy-MM-dd")}']]>
</incrementalcondition>
<mapper description="This is the mapping field for Saviynt Field name" checkrules="false" buildusermap="false" accountnotinfileaction="noaction" deleteaccountentitlement="false" ifusernotexists="noaction" addOnlyMode="true" dateformat="date" incrementalcolumn="accounts.customproperty5" systems="'SS' ">
<mapfield saviyntproperty="accounts.name" sourceproperty="accountName" type="character"/>
<mapfield saviyntproperty="securitysystems.systemname" sourceproperty="securitysystemname" type="character"/>
<mapfield saviyntproperty="endpoints.endpointname" sourceproperty="endpointname" type="character"/>
<mapfield saviyntproperty="entitlementtypes.entitlementname" sourceproperty="entitlementtype" type="character"/>
<mapfield saviyntproperty="accounts.customproperty20" sourceproperty="AccountStatusProp" type="character"/>
<mapfield saviyntproperty="entitlementvalues.entitlementvalue" sourceproperty="role" type="character"/>
<mapfield saviyntproperty="accounts.status" sourceproperty="accountstatus" type="character"/>
</mapper>
</dataMapping>


Thanks,
Raghu
If this reply answered your question, Please Accept As Solution and hit Kudos.

Saathvik
All-Star
All-Star

@Uzair : change this setting addOnlyMode="true" to addOnlyMode="false". this setting should fix it.

 


Regards,
Saathvik
If this reply answered your question, please Accept As Solution and give Kudos to help others facing similar issue.

Uzair
New Contributor
New Contributor

Hello Saathvik,

Thanks for this suggestion. This helped.