05/03/2023 09:27 AM - edited 05/03/2023 09:32 AM
Hello, we have a column in DB which I want to pull in Saviynt as the accounts' custom property so that I can create a user-account correlation. I have tried used the following in ACCOUNTSIMPORT configuration in the connection:
<mapfield saviyntproperty="accounts.customproperty1" sourceproperty="Custom_Property_1" type="character"></mapfield>
But apparently I am getting an error "No such property: Custom for class: groovy.sql.GroovyRowResult"
How do I solve this?
Solved! Go to Solution.
05/03/2023 09:33 AM
Do you have Custom_Property_1 in your select query and if yes what is the value that it holds?
Please paste the entire xml used for accounts import.
Thanks
05/03/2023 09:37 AM
05/03/2023 09:47 AM
Check below. This should work. Before you try in Saviynt, execute the same query in SQL editor.
<dataMapping>
<sql-query description="AccountsImport" uniquecolumnsascommaseparated="Account_Name" >
<![CDATA[
select Account_Name as AccountName, Security_System as SecuritySystem, Endpoint as Endpoint, Entitlement_Type as EntitlementType, Entitlement_Value as EntitlementValue, 1 as Status,Display_Name as DisplayName, Custom_Property_1 as Custom_Property_1
FROM ULLinkUsers
]]>
</sql-query>
<mapper description="This is the mapping field for Saviynt Field name" accountnotinfileaction="Suspend" deleteaccountentitlement="true" ifusernotexists="noaction">
<mapfield saviyntproperty="accounts.name" sourceproperty="AccountName" type="character"></mapfield>
<mapfield saviyntproperty="accounts.displayname" sourceproperty="DisplayName" type="character"></mapfield>
<mapfield saviyntproperty="securitysystems.systemname" sourceproperty="SecuritySystem" type="character"></mapfield>
<mapfield saviyntproperty="endpoints.endpointname" sourceproperty="Endpoint" type="character"></mapfield>
<mapfield saviyntproperty="entitlementtypes.entitlementname" sourceproperty="EntitlementType" type="character"></mapfield>
<mapfield saviyntproperty="entitlementvalues.entitlementvalue" sourceproperty="EntitlementValue" type="character"></mapfield>
<mapfield saviyntproperty="accounts.status" sourceproperty="Status" type="number"></mapfield>
<mapfield saviyntproperty="accounts.customproperty1" sourceproperty="Custom_Property_1" type="character"></mapfield>
</mapper>
<after-import description="EMAIL,BATCH,SQL"></after-import>
</dataMapping>
Thanks
05/03/2023 11:57 AM
I tried with your XML, it gives the same error.
05/03/2023 12:22 PM
Is the query working in SQL Workbench before you try to import it in Saviynt? THis is just to rule out any issue with the query.
Thanks
05/03/2023 12:12 PM
@PA ,
Did you validate and confirm if the issue is with custom property1 mapping or with other attribute.
If you look at our DB account import configuration guide, the proper way to map a saviyntproperty to source property is as below and looks like you've done it right:
<mapfield saviyntproperty="accounts.customproperty1" sourceproperty="Custom_Property_1" type="character">
provided you have added your source property as part of your select query in XML. Please share the complete XML you're trying for your import.
However, I'm providing the account import configuration from our documentation for your reference:
Thanks,
05/03/2023 12:16 PM
there should not be any underscore in column name
05/03/2023 12:17 PM
@rushikeshvartak ,I guess he's just referencing it to hide the source property column name. Let's see the XML he is using.
05/03/2023 12:45 PM
Thanks for the help everyone. I have Custom_Property_1 in the target column and I used the following XML which is now working.
Select Custom_Property_1 as CustomProperty1
<mapfield saviyntproperty="accounts.customproperty1" sourceproperty="CustomProperty1" type="character"></mapfield>