My Rule:
if (arguments == null) {
throw new GeneralException(“arguments map is null!”);
}
// Get input from arguments
String identityName = (String) arguments.get(“identityName”);
String appName = “AD”;
// Get identity object
Identity employee = context.getObject(Identity.class, identityName);
Identity identityobj = context.getObject(Identity.class, employee.getName());
// Create provisioning plan
ArrayList accRequestList = new ArrayList();
ProvisioningPlan plan = new ProvisioningPlan();
plan.setIdentity(identityobj);
AccountRequest adAccountRequest = new AccountRequest();
Application application = context.getObject(Application.class, appName);
adAccountRequest.setApplication(application.getName());
adAccountRequest.setOperation(AccountRequest.Operation.Create);
// Add attributes
adAccountRequest.add(new AttributeRequest(“givenName”, Operation.Add, employee.getFirstname()));
adAccountRequest.add(new AttributeRequest(“sn”, Operation.Add, employee.getLastname()));
adAccountRequest.add(new AttributeRequest(“mail”, Operation.Add, employee.getEmail()));
adAccountRequest.add(new AttributeRequest(“department”, Operation.Add, employee.getStringAttribute(“department”)));
adAccountRequest.add(new AttributeRequest(“memberof”, “CN=AD-IND,CN=Users,DC=IDMITGURU,DC=COM”));
accRequestList.add(adAccountRequest);
plan.setAccountRequests(accRequestList);
// Compile and execute
Provisioner provisioner = new Provisioner(context);
provisioner.compile(plan);
provisioner.execute();
===================================================
=============================
My Workflow:
<?xml version='1.0' encoding='UTF-8'?> Map args = new HashMap();
args.put("identityName", identityName);
Rule ruleObj = context.getObjectByName(Rule.class, "Rule_Create_AD_AccountPlan1");
Object result = context.runRule(ruleObj, args);
return result;
</Source>
</Script>
<Transition to="Access Request"/>
Please let me know how to use rule as a reference in a workflow
