Which IIQ version are you inquiring about?
8.3.p3
Share all details about your problem, including any error messages you may have received.
Title says it all - I’m doing some logging in the before operation rule and I can see the provisioning plan logs just fine.
Rule code:
myLogger("logging provisioning plan: " + provisioningPlan.toXml());
log output:
logging provisioning plan: <?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE ProvisioningPlan PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<ProvisioningPlan nativeIdentity="s12345" targetIntegration="MyApp" trackingId="d168eedd21aa4726b08f7d3392331879">
<AccountRequest application="MyApp" nativeIdentity="s12345" op="Modify">
<AttributeRequest name="employeeid" op="Set" value="12345"/>
<AttributeRequest name="department" op="Set" value="The following is in quotes "something""/>
<AttributeRequest name="department_code" op="Set" value="D12345"/>
</AccountRequest>
<Attributes>
<Map>
<entry key="source" value="IdentityRefresh"/>
</Map>
</Attributes>
</ProvisioningPlan>
When I log the requestEndpoint I see all the information about the request, but the body is null (parsing out just the body to sanitize.
Rule code:
myLogger("logging requestEndPoint.getBody: " + requestEndPoint.getBody());
Log output:
logging requestEndPoint.getBody: {jsonBody=null, bodyFormat=raw}
I found this documentation that seems to be exactly my issue, but the recommended changes didn’t seem to change the underlying behavior at all.
“An error occurs during provisioning if the request body includes a multivalued attribute with quotation marks”
Any ideas? Is there a switch that I can enable/disable so that these are properly escaped? When I push the payload manually via postman, everything renders just fine and aggregates back as expected so it’s not an issue with the API itself.