03/17/2023 01:00 PM - edited 03/17/2023 01:27 PM
Hi,
We are trying to import accounts using DB Connector (using a Microsoft SQL Server database) with the following AccountsImport parameter:
<dataMapping>
<sql-query description="This is the Source DB Query" uniquecolumnsascommaseparated="name" >
<![CDATA[SELECT Guid,FirstName,LastName,Email,MobilePhoneNumber,Status,ExpirationDate,'Genetec_test1' as SECURITYSYSTEM,'Genetec_test1' as ENDPOINT, 'AccessRule' as entitlementtype, GuidGroup as entitlementvalue FROM Cardholder INNER JOIN AccessPointRuleCardholderList ON (Cardholder.Guid = AccessPointRuleCardholderList.GuidMember)]]>
</sql-query>
<mapper description="This is the mapping field for Saviynt Field name" accountnotinfileaction="Suspend" deleteaccountentitlement="false" ifusernotexists="noaction">
<mapfield saviyntproperty="accounts.name" sourceproperty="Guid" type="character"/>
<mapfield saviyntproperty="accounts.customproperty1" sourceproperty="FirstName" type="character"/>
<mapfield saviyntproperty="accounts.customproperty2" sourceproperty="LastName" type="character"/>
<mapfield saviyntproperty="accounts.customproperty3" sourceproperty="Email" type="character"/>
<mapfield saviyntproperty="accounts.customproperty4" sourceproperty="MobilePhoneNumber" type="character"/>
<mapfield saviyntproperty="accounts.customproperty5" sourceproperty="ExpirationDate" type="character"/>
<mapfield saviyntproperty="accounts.status" sourceproperty="Status" type="character"/>
<mapfield saviyntproperty="securitysystems.systemname" sourceproperty="SECURITYSYSTEM" type="character"/>
<mapfield saviyntproperty="endpoints.endpointname" sourceproperty="ENDPOINT" type="character"/>
<mapfield saviyntproperty="entitlementtypes.entitlementname" sourceproperty="entitlementtype" type="character"/>
<mapfield saviyntproperty="entitlementvalues.entitlementvalue" sourceproperty="entitlementvalue" type="character"/>
</mapper>
</dataMapping>
But we are getting this error in the logs:
2023-03-17/19:51:50.454 [{}] [quartzScheduler_Worker-1] ERROR saviynt.AccountsImportService - Error processing records
groovy.lang.MissingMethodException: No signature of method: java.lang.Short.replace() is applicable for argument types: (java.lang.String, java.lang.String) values: [\, \\]
at com.saviynt.AccountsImportService$_createAndExecuteInsertQuery_closure15_closure36_closure37_closure39.doCall(AccountsImportService.groovy:741)
at com.saviynt.AccountsImportService$_createAndExecuteInsertQuery_closure15_closure36_closure37.doCall(AccountsImportService.groovy:734)
at com.saviynt.AccountsImportService$_createAndExecuteInsertQuery_closure15_closure36.doCall(AccountsImportService.groovy:556)
at com.saviynt.AccountsImportService$_createAndExecuteInsertQuery_closure15.doCall(AccountsImportService.groovy:555)
at com.saviynt.AccountsImportService.createAndExecuteInsertQuery(AccountsImportService.groovy:554)
at com.saviynt.AccountsImportService.importData(AccountsImportService.groovy:327)
at AccountsImportFullJob.execute(AccountsImportFullJob.groovy:56)
at org.quartz.core.JobRunShell.run(JobRunShell.java:199)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:546)
We have also tried with this query but get the same error :
select Guid,FirstName,LastName,Email,MobilePhoneNumber,Status,ExpirationDate,'Genetec_test1' as SECURITYSYSTEM,'Genetec_test1' as ENDPOINT, null as entitlementtype, null as entitlementvalue from Cardholder
We have verified that these queries are valid. Currently we just want to import accounts and not import any entitlements or do any mapping.
Just wondering what is causing this error?
Thanks!
Solved! Go to Solution.
03/17/2023 03:04 PM
Can you please share the sample data, One or more fields having data that is not matching with datatype you selected. I doubt on Guid, status,ExpirationDate.
03/20/2023 09:18 AM - edited 03/20/2023 09:39 AM
Hi
Yes you were right, the expiration date and status had the wrong datatype in the xml, I am now able to import the accounts.
Thanks!