Hi All,
I am working on a Before Provisioning Rule and it is deployed to the tenant and attached to the SDIM.
I did testing to see if the rule is getting implemented, but looks like there is some issue with the rule. Looks like the rule is not able to get the source application name, rather it’s getting the target application name “Service Desk” in this case.
I would want to get the source application name, to match against an if condition, and if it matches, it would have to populate few mandatory fields in the SNOW ticket pertaining to that particular application.
I have a total of two application names added to the if condition in the Rule. But while getting the application name from the AccountRequest the rule is getting the target application name instead of the Source application name.
Do you have any possible solution for this scenario. The below are few lines that I figured would be the solution for this issue. Please let me know which one is the right in this context please
Instead of using String appName = accountRequest.getApplicationName();
Can I use, Application sourceApp = accountRequest.getApplication(context);
or String appName = (String) accountRequest.get("source");
or String appName = (String) plan.get("sourceAppName");
Hi @AnjanaAshok - You are getting the target app because you are getting the appName from the account request. Try just using:
String appName = application.getName();
Clarification, are you wanting the Source appName where the provisioning is executed or do you mean the application requested in SNOW?
I faced a similar scenario in SailPoint ISC with SDIM. In the Before Provisioning Rule, accountRequest.getApplicationName()was returning the target application name (“Service Desk” in our case) instead of the originating source application.
From what I observed, this happens because the rule executes in the SDIM provisioning context, so the AccountRequest is already associated with the target app.
In my testing:
accountRequest.getApplication(context)
was also resolving to the target application object.
You’ve run into the same limitation that others have seen: in a before provisioning rule attached to SDIM, the AccountRequest object is already bound to the target application (Service Desk). That’s why both accountRequest.getApplicationName() and accountRequest.getApplication(context) resolve to the target, not the originating source.
How to Retrieve the Source Application Name
From SailPoint rule documentation and community examples:
In SailPoint ISC SDIM flows, accountRequest.getApplicationName() returns the target app (Service Desk) because the provisioning plan is already transformed for SDIM.
Best approach:
Use the original source application from the provisioning arguments or native identity attributes before SDIM transformation.
It was not working since the source name was having a trailing [source] to it which I noticed when I looked into the logs.
Example: Active Directory [source]. So stripping the [source] from the source name solved the issue.
This returned the source name (Application from the which deprovisioning is triggered) rather than the target source (Service Desk)