The issue is ISC unable to make any attribute as Null from the previously available values in the Active Directory Connector and JDBC connector across our tenants.
Hi @vsekar7 ,
As far as I understood, you’re facing an issue with identity attribute value which is being set based on JDBC application attribute “stopdate”. But when you say ISC unable to remove existing value and update it as null. Are you looking to set identity attribute value as null?
Could you provide me more context and applied mapping with and without transform.
Hi @pkMishra ,
Yes, I have an example of an Rehire Employee case. The Employee has stopdate as past date in Oracle DB. During the rehire process, ISC has to remove that date and make it as Null in Oracle Database whereas it is unable to make this change in JDBC connector.
Hi @vsekar7 ,
If the value is an empty string, ISC will not consider Null as different value, thus no update will be done.
But as I understand, the value in the target source (JDBC) isn’t empty nor null, although, ISC doesn’t update the attribute in the source to null as expected.
As you use JDBC, that means you’re using a JDBC Provision rule, can you share it with us for troubleshooting.
Thank you,
Youssef
what does your transform do in case it has to return null? can you post your transform here?
Hi @aghzere ,
The JDBC source attribute “Stopdate“ is mapped to Identity Attribute “JDBC Stop Date“ and the identity attribute use the below transform rule. For Employees, the transform rule is sending the JDBC stop date as Null when an Employee is rehired by removing the previous date which was already present.
JDBC Provisioning Rule:
String inputTerm = getAttributeRequestValue(account, “STOPDATE”);
if(inputTerm != **null**)
{
String *formattedTermDate* = changeDateformat(inputTerm);
*statement*.setString(39, inputTerm);
}
else
{
*statement*.setString(39, "");
}
if(getAttributeRequestValue(account, “STOPDATE”) != null)
{
statement = *connection*.prepareStatement("UPDATE JJEDS_ADMIN.PERSN_ALL SET STOPDATE = ? WHERE WWID = ?");
String *inputTerm* = getAttributeRequestValue(account, "STOPDATE");
String *formattedTermDate* = changeDateformat(inputTerm);
*statement*.setString(1, formattedTermDate);
*statement*.setString(2, identity);
*statement*.executeUpdate();
}
Transform Rule:
“name”: “Update JDBCStopDate”,
"type": "static",
"attributes": {
"requiresPeriodicRefresh": "true",
"getEmployeeType": {
"attributes": {
"values": \[
{
"attributes": {
"attributeName": "OU__c",
"sourceName": "Workday"
},
"type": "accountAttribute"
}
\]
},
"type": "firstValid"
},
"contractExpirationDate": {
"type": "dateFormat",
"attributes": {
"type": "firstValid",
"input": {
"type": "accountAttribute",
"attributes": {
"attributeName": "CONTRACT_END_DATE",
"sourceName": "Workday"
}
},
"inputFormat": "MM/dd/yyyy",
"outputFormat": "ISO8601"
}
},
"endDate": {
"type": "dateFormat",
"attributes": {
"type": "firstValid",
"input": {
"type": "accountAttribute",
"attributes": {
"attributeName": "LAST_DAY_OF_WORK",
"sourceName": "Workday"
}
},
"inputFormat": "MM/dd/yyyy",
"outputFormat": "ISO8601"
}
},
"value": "#{if}($getEmployeeType == 'Employee')$endDate#{elseif}($getEmployeeType == 'Contingent Worker')$contractExpirationDate#{end}"
},
"internal": **false**
try this model :
“contractExpirationDate”: {
"type": "dateFormat",
"attributes": {
"type": "firstValid",
"values": [
{
"attributes": {
"attributeName": "CONTRACT_END_DATE",
"sourceName": "Workday"
},
"type": "accountAttribute"
},
{
"attributes": {
"value": "NOENDDATE"
},
"type": "static"
}
]
},
"inputFormat": "MM/dd/yyyy",
"outputFormat": "ISO8601"
}
},
Hi @lampard08 ,
The issue is the below transform code is updating new value as Null in Identity attribute but it is not replicated in Oracle db via jdbc source
are you using attribute sync to AD for this update?
We are using a transform code to calculate the stop date for Contractors/Employees in ISC and we are using the transform in our AD create/update provisioning policy & we are not using the transform to update in Identity attribute and then using attribute in AD source
try to enable attribute sync just for this attribute i you have a test region