Direct provisioning through API - OIM 11g

Hi,
OIM 11g here. I am trying to use the APIs to make direct provisioning. What i have done till now:
tcUserOperationsIntf userIntf = (tcUserOperationsIntf)ioUtilityFactory.getUtility("Thor.API.Operations.tcUserOperationsIntf");
ResourceData rd = userIntf.provisionResource(userkey, objectkey);
now, in the ResourceData object i have two ids, obiKey and ouiKey. Now i need to extract the process instance key with those numbers. How can i do this?
Using the userIntf getObjects method i can get the list of objects provisioned, iterate over it and retrieve the process instance key of the object which matches obiKey and ouiKey. Is there an easier method to do this?
Another question, which one is the process instance key, ORC_KEY or ORC_TOS_INSTANCE_KEY ?
Last, how do i trigger the task responsible for provisioning given the filled process form?
thx in advance

Ok, i guess the process instance key is ORC_KEY.
Now i am trying to provision through APIs a resource object (say AD User) to an OIM user. I have used the provisionResource(userkey, objectkey) method, but the Create User task is not put in the Resource History (there is only the System Validation Task), and i don't know how to look for it's task id to add it manually.

Similar Messages

  • How to create Approval Policies using API - OIM 11g R2

    Hi,
    Could you please let me know how to create the Approval Policies using java API code in OIM 11g R2.
    Thanks

    Hi Karthik,
    Thanks for sharing the link. Could you please let me know how to specify the rule condition while creating the Approval Policy using the API given in this link.

  • Create user request from api OIM 11g r2

    Hi,
    I need to read a database and raise a request for creating uses. After  approval the user needs to be created in OIM 11g R2.
    I want to write a scheduled task which will read database columns and rasie a request to create users.
    I dont want to use UnauthenticatedSelfService api.
    Please suggest a way to achive that. any pointer / sample coede / suggestion  is helpful.

    Here are links to creating a request for a role and a resource.  https://java.net/projects/openptk/sources/svn/show/branches/Oracle/OIM11g/examples/java/OIMClient/src/oim/client/request?rev=1402
    I would suggest you start with these and modify the parameters to be for a user.  You will have to try some trial and error to get it working, unless someone already has it available.  And so far, no one who is posting does.  Give it a shot.  You can always create an SR with oracle and ask for assistance.
    -Kevin

  • Provisioning through API

    All,
    Had a query regarding provisioning a resource to a user through OIM API. iam using the provisionObject in tcUserOperationsIntf which provisions a new resource for the user . I would like to pass in process form values before this provisions resource to the user . Currently i see that i can only set values on process form only when the provisioning happens.
    i require this because i want to choose which provisioning process to pick up based on a value on process form
    Thanks

    Something like that will also work . But whats complicating my requirement little bit , i have a single process form shared by two different process definition for this resource object . If i choose pre-population , i should prepoulate only for one process definition not the default process definition.
    Message was edited by:
    rufus

  • Requesting to remove roles for the direct report's in OIM 11g R2

    Is it possible to have the manager log into OIM and request to remove roles for one of his/her direct reports? You can only add roles from the catalog interface.
    Thanks

    Search the user
    Go to the Roles Tab
    Select the Role
    "Remove Role" link will get enabled
    Click that link
    Submit
    Request ID will be generated
    For SELF REQUEST:
    Go to My Access Form
    And do the same thing

  • OID Provisioning issue on OIM 11g

    Hi,
    I have ran the target user recon for OID and noticed from the events that users are not linked. I tried assigning OID User resource from the provisioning workflow on the admin console but I am seeing the following the issue:
    DOBJ.ORC_NO_ORDER
    An error occurred while retrieving process information null : null
    Please help.

    Hi
    Can you verify On your OID resource object in desing console 'Order For User' is chosen.
    Regards
    user12841694

  • Exchange Provisioning Issue in OIM 11g

    Hi ,
    I am trying to do AD and Exchange provisioning. AD User is getting provisioned succesfully, However Exchange is getting rejected. That particular Create Mailbox is getting rejected, Can you please help me here.
    Here are logs trace,
    Running Create mailbox
    <Jul 16, 2012 11:19:08 AM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <====================================================>
    <Jul 16, 2012 11:19:08 AM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <com.thortech.xl.integration.Exchange.tcExchangeTasks : createMailboxForADUser : Insufficient data, may be all mandatory field are not present : :Does not exist>
    <Jul 16, 2012 11:19:08 AM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <====================================================
    >
    <Jul 16, 2012 11:19:08 AM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <================= Start Stack Trace =======================>
    <Jul 16, 2012 11:19:08 AM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <com.thortech.xl.integration.Exchange.tcExchangeTasks : createMailboxForADUser>
    <Jul 16, 2012 11:19:08 AM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <Does not exist>
    <Jul 16, 2012 11:19:08 AM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <Description : Does not exist>
    <Jul 16, 2012 11:19:08 AM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <com.thortech.xl.exception.ProvisioningException: Does not exist
    at com.thortech.xl.integration.Exchange.tcExchangeTasks.getObjectByObjectGUID(Unknown Source)
    at com.thortech.xl.integration.Exchange.tcExchangeTasks.createMailboxForADUser(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.thortech.xl.adapterGlue.ScheduleItemEvents.adpMEXCCREATEMAILBOX.CREATEMAILBOX(adpMEXCCREATEMAILBOX.java:708)
    at com.thortech.xl.adapterGlue.ScheduleItemEvents.adpMEXCCREATEMAILBOX.implementation(adpMEXCCREATEMAILBOX.java:199)
    at com.thortech.xl.client.events.tcBaseEvent.run(tcBaseEvent.java:196)
    at com.thortech.xl.dataobj.tcDataObj.runEvent(tcDataObj.java:2492)
    at com.thortech.xl.dataobj.tcScheduleItem.runMilestoneEvent(tcScheduleItem.java:2917)
    at com.thortech.xl.dataobj.tcScheduleItem.eventPostInsert(tcScheduleItem.java:547)
    at com.thortech.xl.dataobj.tcDataObj.insert(tcDataObj.java:602)
    at com.thortech.xl.dataobj.tcDataObj.save(tcDataObj.java:474)
    at com.thortech.xl.dataobj.tcORC.insertNonConditionalMilestones(tcORC.java:844)
    at com.thortech.xl.dataobj.tcORC.completeSystemValidationMilestone(tcORC.java:1159)
    at com.thortech.xl.dataobj.tcOrderItemInfo.completeCarrierBaseMilestone(tcOrderItemInfo.java:735)
    at com.thortech.xl.dataobj.tcOrderItemInfo.eventPostInsert(tcOrderItemInfo.java:171)
    at com.thortech.xl.dataobj.tcUDProcess.eventPostInsert(tcUDProcess.java:235)
    at com.thortech.xl.dataobj.tcDataObj.insert(tcDataObj.java:602)
    at com.thortech.xl.dataobj.tcDataObj.save(tcDataObj.java:474)
    at com.thortech.xl.dataobj.tcTableDataObj.save(tcTableDataObj.java:2906)
    at com.thortech.xl.dataobj.tcORC.autoDOBSave(tcORC.java:3002)
    at com.thortech.xl.dataobj.util.tcOrderPackages.createOrder(tcOrderPackages.java:526)
    at com.thortech.xl.dataobj.util.tcOrderPackages.orderPackageForUser(tcOrderPackages.java:177)
    at com.thortech.xl.dataobj.tcOIU.provision(tcOIU.java:527)
    at com.thortech.xl.dataobj.tcOIU.eventPostInsert(tcOIU.java:303)
    at com.thortech.xl.dataobj.tcDataObj.insert(tcDataObj.java:602)
    at com.thortech.xl.dataobj.tcDataObj.save(tcDataObj.java:474)
    at com.thortech.xl.dataobj.tcTableDataObj.save(tcTableDataObj.java:2906)
    at com.thortech.xl.dataobj.tcUserProvisionObject.insertImplementation(tcUserProvisionObject.java:283)
    at com.thortech.xl.dataobj.tcDataObj.insert(tcDataObj.java:591)
    at com.thortech.xl.dataobj.tcDataObj.save(tcDataObj.java:474)
    at oracle.iam.accesspolicy.impl.handlers.provisioning.ProvisionAccountActionHandler.execute(ProvisionAccountActionHandler.java:104)
    at oracle.iam.accesspolicy.impl.handlers.provisioning.ProvisionAccountActionHandler.execute(ProvisionAccountActionHandler.java:35)

    Now I get this error, What is missing here?
    Running Create mailbox
    <Jul 16, 2012 1:25:20 PM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <====================================================>
    <Jul 16, 2012 1:25:20 PM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <com.thortech.xl.integration.ActiveDirectory.tcADUtilLDAPController : connectToAvailableAD : Empty Argum
    ents Passed in either Root Context,Admin FQDN,Admin Password,Server Address,Port Number in the IT Resource. >
    <Jul 16, 2012 1:25:20 PM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <====================================================
    >
    <Jul 16, 2012 1:25:20 PM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <====================================================>
    <Jul 16, 2012 1:25:20 PM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <com.thortech.xl.integration.ActiveDirectory.tcADUtilLDAPController : connectToAvailableAD : The error o
    ccured in tcADUtilLDAPController::connectToAvailableAD():Empty Arguments Passed in either Root Context,Admin FQDN,Admin Password,Server Address,Port Number in the IT Re
    source. >
    <Jul 16, 2012 1:25:20 PM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <====================================================
    >
    <Jul 16, 2012 1:25:20 PM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <================= Start Stack Trace =======================>
    <Jul 16, 2012 1:25:20 PM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <com.thortech.xl.integration.ActiveDirectory.tcADUtilLDAPController : connectToAvailableAD>
    <Jul 16, 2012 1:25:20 PM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <Empty Arguments Passed in either Root Context,Admin FQDN,Admin Password,Server Address,Port Number in t
    he IT Resource. >
    <Jul 16, 2012 1:25:20 PM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <Description : Empty Arguments Passed in either Root Context,Admin FQDN,Admin Password,Server Address,Po
    rt Number in the IT Resource. >
    <Jul 16, 2012 1:25:20 PM EDT> <Error> <OIMCP.MEXC> <BEA-000000> <java.lang.Exception: Empty Arguments Passed in either Root Context,Admin FQDN,Admin Password,Server Add
    ress,Port Number in the IT Resource.
    at com.thortech.xl.integration.ActiveDirectory.tcADUtilLDAPController.connectToAvailableAD(Unknown Source)
    at com.thortech.xl.integration.ActiveDirectory.tcADUtilLDAPController.search(Unknown Source)
    at com.thortech.xl.integration.Exchange.tcExchangeTasks.getExchMailboxStores(Unknown Source)
    at com.thortech.xl.integration.Exchange.tcExchangeTasks.createMailboxForADUser(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.thortech.xl.adapterGlue.ScheduleItemEvents.adpMEXCCREATEMAILBOX.CREATEMAILBOX(adpMEXCCREATEMAILBOX.java:625)
    at com.thortech.xl.adapterGlue.ScheduleItemEvents.adpMEXCCREATEMAILBOX.implementation(adpMEXCCREATEMAILBOX.java:188)
    at com.thortech.xl.client.events.tcBaseEvent.run(tcBaseEvent.java:196)

  • OIM 11g - Mail Notification for multiple resources

    User will be provisioned to 5 target system through access policies.So instead of sending 5 different mail notifications to the manager on the Create User task about the account creation, is it possible to send one consolidated mail about the provisioned resources in OIM 11g.

    Hi,
    How abt for the following requirement for sending single mail for multiple resources provisioned.
    We have 3 Access Policies which is defined as follows.
    1) Policy 1 -> R1,R2,R3 Resources
    2) Policy 2 -> R3,R5 Resources
    3) Policy 3 -> R1,R4 Resources
    In such a case we will not be able to put dependencies on Resources and adding a task for sending email.

  • OIM 11g sql query

    HI all,
    Please help me with a SQL query which fetches all users with a specific resource in provisioning state in OIM 11g.
    Thanks.

    Hi Gyan,
    Thankyou it helped us a lot.
    But I started working with OIM apis but I am not aware of the back end flow.
    lets say when a user is being created, a request being raised untill approved, or a resource is provisioned ...I want to know what keys will generated and where they gets stored.
    It would be very helpful for me if u explain and explain some more scenrios.
    Thanks in advance.

  • OIM-AD connector Issues in OIM 11g

    Hi
    We are trying to provision user from OIM 11G to AD using Administration Tab of Admin Console.
    As part of ADITResource configuration , follwoing fields are included.In the Enterprise manager OIM server log, we are getting the below error message.
    Error Message In Enterprise manager OIM server log -
    Module     OIMCP.ADCS
    Thread ID     [ACTIVE].ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'
    Message     com.thortech.xl.integration.ActiveDirectory.tcUtilADTasks : createUser : Wrong Value Specified in Root Context of IT ResourceOr Organization DN_
    However, in Admin console Selfservice-->Task-->Provisioning -->Shows error as
    Response:Connection Error encountered
    Response Description:     Error encountered while connecting to target system
    We have sucessfully tested the connection using Diagnoistic Dashboard (XIMDD) & Ldap Browser.
    IT Resource Details-
    Parameter                               Value
    AD Sync installed (yes/no)                     no
    ADAM LockoutThreshold Value                5
    ADDisableAttr Lookup Definition                Lookup.ADProvisioning.DisableAttrLookup
    ADGroup LookUp Definition                     Lookup.ADReconciliation.GroupLookup
    Abandoned connection timeout                600
    Admin FQDN                               cn=administrator,cn=Users,dc=example,dc=com
    Admin Login                               administrator
    Admin Password                          ********
    Allow Password Provisioning                     yes
    AtMap ADGroup                          AtMap.ADGroup
    AtMap ADUser                               AtMap.AD
    AtMap Group                               AtMap.ADGroup
    Atmap ADOrg                               AtMap.ADOrg
    Backup Server URL                          [NONE]
    Connection pooling supported                false
    Connection wait timeout                     100
    Custom Attribute Name      
    CustomizedReconQuery      
    Inactive connection timeout                     600
    Initial pool size                               1
    Invert Display Name                          no
    LDAP Connection Timeout                     30000
    Last Modified Time Stamp                     0
    Last Modified Time Stamp Group                0
    Max pool size                               30
    Min pool size                               2
    Native connection pool class definition      
    OIM User UDF      
    Pool excluded fields      
    Pool preference                               Default
    Port Number                               389
    Remote Manager Prov Lookup                AtMap.AD.RemoteScriptlookUp
    Remote Manager Prov Script Path      
    ResourceConnection class definition           com.thortech.xl.integration.ActiveDirectory.ADResourceConnectionImpl
    Root Context                               dc=example,dc=com
    SSL Port Number                          636
    Server Address                               WIN-PEUB23TMMT4.example.com
    Target Locale: Country                     US
    Target Locale: Language                     en
    Target Locale: TimeZone                     GMT
    Target supports only one connection           false
    Timeout check interval                     100
    UPN Domain                               example.com
    Use Disable Attr                          false
    Use SSL                               false
    Validate connection on borrow                true
    isADAM                               no
    isUserDeleteLeafNode                          no
    For Organization we have selected ou=Test,dc=example,dc=com in our lookup defination
    Please suggest....
    Thanks

    It's not Key, it's the Scheduled Task attribute "IT Resource Name"
    Documentation: http://download.oracle.com/docs/cd/E11223_01/doc.910/e11197/using_conn.htm#CHDFBAAC
    Here is the documentation on the lookup format: http://download.oracle.com/docs/cd/E11223_01/doc.910/e11197/intro.htm#CHDHCCJD
    -Kevin

  • Direct provisioing using API in OIM 11g

    Hi Experts,
    I am facing couple of issues.
    *1)* I am trying to provision a resource direcly using API's in OIM 11g. Here I do not have any object form for this resource but I have a process form with some pre-population adapters.
    And I am trying to use the below code for direct provisioining.
    Hashtable objectHash = new Hashtable();
    objectHash.put("Objects.Name", objectName);
    tcResultSet objectResultSet = objIntf.findObjects(objectHash);
    long objectKey = objectResultSet.getLongValue("Objects.Key");
    com.thortech.xl.vo.ResourceData data = userIntf.provisionResource(userKey, objectKey);
    long userObjectInstanceKey = Long.parseLong(data.getOiuKey());
    long objectInstanceKey = Long.parseLong(data.getObiKey());
    And I am getting nulls for the attributes userObjectInstanceKey & objectInstanceKey .
    Please let me know how to provision a resource which has no object form but has some pre-population adapters using API .
    *2)* I am trying to provision a resource direcly using API's in OIM 11g. Here I do have an object form for this resource which has one of the attribute as of type lookup.
    ResourceData data = userIntf.provisionResource(userKey, resourceKey);
    long userObjectInstanceKey = Long.parseLong(data.getOiuKey());
    long objectInstanceKey = Long.parseLong(data.getObiKey());
    Hashtable objectHash = new Hashtable();
    objectHash.put("UD_ADGROUP_NAME",groupName);
    In this case I am getting objectInstanceKey properly but it is not seeting lookup field value but it is setting all other fields on the object form correctly.
    How to set a field of type lookup on the object form while provisioing a resource directly using API's.
    Thanks a lot for your help.

    947670 wrote:
    Hi Pallavi,
    I am not populating any object form. I am trying for direct provisioning a resource thru OIM API's.
    Hence, I need populate all of the process form fields inorder to skip the approval flow. So, I was using setProcessFormData method.
    Here is what happening.
    1) My resource has a request dataset which has only one field called "Group Name".
    2) My resource has a process form with the fields name UD_GROUP_NAME, UD_GROUP_DESCRIPTION, UD_GROUP_OWNER.
    3) When I use the below code, I was able to populate the fields UD_GROUP_DESCRIPTION, UD_GROUP_OWNER (Because pre-populate adapters are getting invoked) as they did not exist on the request data.
    tcFormInstanceOperationsIntf formInstanceOps=Platform.getService(tcFormInstanceOperationsIntf.class);
    ResourceData data = userIntf.provisionResource(userKey, resourceKey);
    long userObjectInstanceKey = Long.parseLong(data.getOiuKey());
    long objectInstanceKey = Long.parseLong(data.getObiKey());
    Hashtable objectHash = new Hashtable();
    objectHash.put("*UD_ADGROUP_NAME*",groupName);
    formInstanceOps.setProcessFormData(objectInstanceKey, objectHash);
    4) I am having this issue only with the fields that are exist on the request dataset. Since, UD_GROUP_NAME exist on the request dataset, even if I try to set some value in the process form, it is not taking.
    Using API's, I am not able to populate any of the attributes on the process form that are exist on the request dataset.
    How to solve this issue.1. Check the process form field name.
    2. Use tcUserOperationsIntfAPI Method provisionObject(userKey,ObjectKey)
    userIntf.provisionObject(userKey, objectKey);
    3. Get the process-instance key.
    tcResultSet objResultSet = userIntf.getObjects(userKey);
                   int objCount = objResultSet.getRowCount();
                   for (int count = 0; count < objCount; count++) {
                        objResultSet.goToRow(count);
                        if (objResultSet.getStringValue("Objects.Name").equalsIgnoreCase(resourceObjectName)){
                             processInstanceKey = objResultSet.getLongValue("Process Instance.Key");
    4. Use tcFormInstanceOperationsIntf API method setProcesFormData(processInstanceKey,dataMap)
    Hope this helps you.

  • OIM 11g-configure SoD so that it works for direct provisioning of the roles

    Dear All,
    page 23-3 of Developer's Guide (OIM 11g) provides information regarding configuration of the SoD for Direct provisioning of the resources. How to configure SoD so that it works for direct provisioning of the roles?
    Thank you for your time
    Maria

    Rajiv,
    I did not find the documentation regarding this. But I hoped I will.
    In my project we assign roles directlly, not resources.
    I suspect the integration with Role Manager is required in this case. SoD module in OIA should be used then.
    Maria

  • TcObjectNotFoundException Error when provisioning through OIM API

    Hi,
    I am trying to provision resources using OIM client API. I am using the following code which is generating the exception mentioned after the code snippet:
    *******************************Code*******************************
    java.util.Hashtable env = new java.util.Hashtable();     
      env.put(oracle.iam.platform.OIMClient.JAVA_NAMING_FACTORY_INITIAL,     
      oimInitialContextFactory);        
      env.put(oracle.iam.platform.OIMClient.JAVA_NAMING_PROVIDER_URL, oimURL);
      oracle.iam.platform.OIMClient client = new oracle.iam.platform.OIMClient(env);
    Thor.API.Operations.tcUserOperationsIntf userIntf = client.getService(Thor.API.Operations.tcUserOperationsIntf.class);
      Thor.API.Operations.tcObjectOperationsIntf objIntf = client.getService(Thor.API.Operations.tcObjectOperationsIntf.class);
      Thor.API.Operations.tcFormInstanceOperationsIntf formIntf = client.getService(Thor.API.Operations.tcFormInstanceOperationsIntf.class);
      Thor.API.Operations.tcProvisioningOperationsIntf provIntf = client.getService(Thor.API.Operations.tcProvisioningOperationsIntf.class);
      Thor.API.Operations.tcUserOperationsIntf userOper = client.getService(Thor.API.Operations.tcUserOperationsIntf.class);
      java.util.Hashtable mhSearchCriteria = new java.util.Hashtable();
    Hashtable objectHash = new Hashtable();
      objectHash.put("Objects.Name", "ITAX_GTC");
    com.thortech.xl.vo.ResourceData data = userIntf.provisionResource(Long.parseLong(userId), objectKey);
      long userObjectInstanceKey = Long.parseLong(data.getOiuKey());
      long objectInstanceKey = Long.parseLong(data.getObiKey());
        Hashtable inputHash = new Hashtable();
      //Populate the entry below with the object form data
      for(int b = 3; b < row.length; b++)
      inputHash.put(header[b], row[b]);
      //Sets the object data
      formIntf.setProcessFormData(objectInstanceKey, inputHash);
    Thor.API.Exceptions.tcObjectNotFoundException
      at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:234)
      at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)
      at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
      at Thor.API.Operations.tcUserOperationsIntf_e9jcxp_tcUserOperationsIntfRemoteImpl_1035_WLStub.revokeObjectx(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:85)
      at $Proxy2.revokeObjectx(Unknown Source)
      at Thor.API.Operations.tcUserOperationsIntfDelegate.revokeObject(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at Thor.API.Base.SecurityInvocationHandler$1.run(SecurityInvocationHandler.java:68)
      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
      at weblogic.security.Security.runAs(Security.java:41)
      at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(weblogicLoginSession.java:52)
      at Thor.API.Base.SecurityInvocationHandler.invoke(SecurityInvocationHandler.java:79)
      at $Proxy3.revokeObject(Unknown Source)
      at com.infotech.tra.organization.RoleAssignment.ProvisionResources(RoleAssignment.java:1013)
      at com.infotech.tra.organization.RoleAssignment.main(RoleAssignment.java:48)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
    Caused by: Thor.API.Exceptions.tcObjectNotFoundException
      at com.thortech.xl.ejb.beansimpl.tcUserOperationsBean.revokeObject(tcUserOperationsBean.java:3184)
      at Thor.API.Operations.tcUserOperationsIntfEJB.revokeObjectx(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
      at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
      at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
      at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
      at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
      at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy344.revokeObjectx(Unknown Source)
      at Thor.API.Operations.tcUserOperationsIntf_e9jcxp_tcUserOperationsIntfRemoteImpl.__WL_invoke(Unknown Source)
      at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
      at Thor.API.Operations.tcUserOperationsIntf_e9jcxp_tcUserOperationsIntfRemoteImpl.revokeObjectx(Unknown Source)
      at Thor.API.Operations.tcUserOperationsIntf_e9jcxp_tcUserOperationsIntfRemoteImpl_WLSkel.invoke(Unknown Source)
      at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)
      at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
      at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
      at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
      at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
      at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

    To set the form data, you need the "Process Instance.Key" and not the object instance key.  This is the code i use and i've replaced your data with some of the entries here:
    String resource = "ITAX_GTC";
    String userID = "JSMITH";
    Map map = new HashMap();
    map.put("Objects.Name",resource);
    tcResultSet set = objIntf.findObjects(map);
    long resourceKey = set.getLongValue("Objects.Key");
    Set<String> attrNames = new HashSet<String>();
    attrNames.add(UserManagerConstants.AttributeName.USER_KEY.getId());
    HashMap searchCriteria = new HashMap();
    searchCriteria.put("Objects.Name",resource);
    int counter = 0;
    String[] users = new String[] {userID};
    for (String userID:users){
        try {
      counter++;
      User user = usermgr.getDetails(userID, attrNames, true);
      long objectInstanceKey = userIntf.provisionObject(Long.parseLong(user.getEntityId()), resourceKey);
      System.out.println("objectInstanceKey[" + objectInstanceKey + "]");
      set = provIntf.findObjects("Revoke", new String[]{ user.getEntityId() }, "U", searchCriteria);
      for (int i=0;i<set.getTotalRowCount();i++){
         set.goToRow(i);
         outputResultSet(set, i);
         if (set.getLongValue("Users-Object Instance For User.Key")==objectInstanceKey){
           map = new HashMap();
           //Populate the entry below with the object form data
             for(int b = 3; b < row.length; b++){
                map.put(header[b], row[b]);
      formIntf.setProcessFormData(set.getLongValue("Process Instance.Key"), map);
        } catch (Exception e) {
      System.out.println(e.getLocalizedMessage());
    See if that helps.
    -Kevin

  • Creating a Request via OIM 11g API

    I'm trying to create a request in OIM using the API. I found this post ( OIM 11g - Setting Process Form Data through Request API ) which has the code to do it but I'm getting an error:
    Here is what I have
    OIMClient client = getOIMClient(url, username, password);
          long resKey = 0L;
          String str = null;
          String resourceKey = null;
          Map<String, String> searchMap = new HashMap<String, String>();
          tcResultSet resultSet = null;
          RequestData requestData = null;
          Beneficiary beneficiary = null;
          RequestBeneficiaryEntity entity = null;
          List<Beneficiary> beneficiaryList = new ArrayList<Beneficiary>();
          List<RequestBeneficiaryEntity> entityList = null;
          List<RequestBeneficiaryEntityAttribute> entityAttrList = null;
          String RESOURCE = "TESTRESOURCE_GTC";
          tcITResourceInstanceOperationsIntf operations = client.getService(tcITResourceInstanceOperationsIntf.class);
          Map<String, String> conditions = new HashMap<String, String>();
          conditions.put("IT Resources.Name", "TESTRESOURCE_GTC");
          resultSet = operations.findITResourceInstances(conditions);           
          resKey = resultSet.getLongValue("IT Resource.Key");
          resourceKey = Long.toString(resKey);
          RequestBeneficiaryEntityAttribute parantAttr = new RequestBeneficiaryEntityAttribute();
          parantAttr.setType(TYPE.String);
          parantAttr.setName("Title");
          parantAttr.setValue("Mr.");
          entityAttrList = new ArrayList<RequestBeneficiaryEntityAttribute>();
          entityAttrList.add(parantAttr);
          entity = new RequestBeneficiaryEntity();
          entity.setEntityKey(resourceKey);
          entity.setEntityType(RequestConstants.RESOURCE);
          entity.setEntitySubType(RESOURCE);
          entity.setEntityData(entityAttrList);
          entityList = new ArrayList<RequestBeneficiaryEntity>();
          entityList.add(entity);
          System.out.println("*********** USR KEY" + usrKey);
          beneficiary = new Beneficiary();
          beneficiary.setBeneficiaryType(Beneficiary.USER_BENEFICIARY);
          beneficiary.setBeneficiaryKey(usrKey);
          beneficiary.setTargetEntities(entityList);
          beneficiaryList.add(beneficiary);
          requestData = new RequestData();
          requestData.setRequestTemplateName("Self-Request Resource");
          requestData.setJustification("Test");
          requestData.setBeneficiaries(beneficiaryList);
          UnauthenticatedRequestService reqsrvc = client.getService(UnauthenticatedRequestService.class);
          str = reqsrvc.submitRequest(requestData);
          System.out.println("Value from submitRequest : '" + (str != null ? str : null) + "'");I'm getting
    <Feb 14, 2012 4:53:24 PM EST> <Error> <oracle.iam.request.impl> <IAM-2050128> <Invalid beneficiary key was specified for Self-Request. >
    oracle.iam.request.exception.InvalidRequestDataException: IAM-2050128:Invalid beneficiary key was specified for Self-Request.
    I can see that USER KEY is getting populated.
    Edited by: DJ on Feb 14, 2012 4:59 PM
    Edited by: DJ on Feb 14, 2012 5:00 PM

    While creating a request to provision iPlanet User one of the errors I was getting:
    oracle.iam.request.exception.RequestServiceException: IAM-2050061:Type mismatch for the attribute Server. The type passed is String, but the corresponding type in the data set is Long.:Server:String:Long
    So I replaced the value of the attribute Server to the IT Resource.Key which is 5. After making the changes, it goes through approvals with no problems, but when I approve all the work items, it errors out with an error:
    Error occurred while provisioning resource with key 45 to user 5
    User Key is 45 and Resource Key is 5. I'm not sure why it swapped it.
    Here is the code I'm using:
    public static void createRequest(String userLogin, String templateName, String resourceName, HashMap<String, Object> attrs, OIMClient client) {
        try {
          String usrKey = searchUserByLogin(userLogin, client).get(0).getId();
          long resKey = 0L;
          String str = null;
          String resourceKey = null;
          Map<String, String> searchMap = new HashMap<String, String>();
          tcResultSet resultSet = null;
          RequestData requestData = null;
          Beneficiary beneficiary = null;
          RequestBeneficiaryEntity entity = null;
          List<Beneficiary> beneficiaryList = new ArrayList<Beneficiary>();
          List<RequestBeneficiaryEntity> entityList = null;
          List<RequestBeneficiaryEntityAttribute> entityAttrList = new ArrayList<RequestBeneficiaryEntityAttribute>();
          tcITResourceInstanceOperationsIntf operations = client == null ? Platform.getService(tcITResourceInstanceOperationsIntf.class) : client.getService(tcITResourceInstanceOperationsIntf.class);
          Map<String, String> conditions = new HashMap<String, String>();
          conditions.put("IT Resources.Name", resourceName);
          resultSet = operations.findITResourceInstances(conditions);
          resKey = resultSet.getLongValue("IT Resource.Key");
          resourceKey = Long.toString(resKey);
          for (String attr : attrs.keySet()) {
            RequestBeneficiaryEntityAttribute parantAttr = new RequestBeneficiaryEntityAttribute();
            if (attrs.get(attr) instanceof String) {
              parantAttr.setType(TYPE.String);
              parantAttr.setName(attr);
              parantAttr.setValue(String.valueOf(attrs.get(attr)));
              entityAttrList.add(parantAttr);
            } else if (attrs.get(attr) instanceof Long) {
              parantAttr.setType(TYPE.Long);
              parantAttr.setName(attr);
              parantAttr.setValue(String.valueOf(attrs.get(attr)));
              entityAttrList.add(parantAttr);
            } else {
              // do nothing
          entity = new RequestBeneficiaryEntity();
          entity.setEntityKey(resourceKey);
          entity.setEntityType(RequestConstants.RESOURCE);
          entity.setEntitySubType(resourceName);
          entity.setEntityData(entityAttrList);
          entityList = new ArrayList<RequestBeneficiaryEntity>();
          entityList.add(entity);
          beneficiary = new Beneficiary();
          beneficiary.setBeneficiaryType(Beneficiary.USER_BENEFICIARY);
          beneficiary.setBeneficiaryKey(usrKey);
          beneficiary.setTargetEntities(entityList);
          beneficiaryList.add(beneficiary);
          requestData = new RequestData();
          requestData.setRequestTemplateName(templateName);
          requestData.setJustification("Test");
          requestData.setBeneficiaries(beneficiaryList);
          System.out.println("Resource Keys " + resKey + " " + resourceKey);
          System.out.println("User Key " + usrKey);
          RequestService reqsrvc = client == null ? Platform.getService(RequestService.class) : client.getService(RequestService.class);
          str = reqsrvc.submitRequest(requestData);
          System.out.println("Value from submitRequest : '" + (str != null ? str : null) + "'");
        } catch (Throwable t) {
          t.printStackTrace();
      }Edited by: DJ on Feb 16, 2012 5:01 PM

  • Getting error while provisioning user to AD  - OIM 11g R2

    Hi,
    I have installed the AD connector and I am able to do the user and group reconciliation between AD and OIM 11g R2.
    But when I am trying to provision the user to AD, I am getting the below error :
    oracle.iam.connectors.icfcommon.prov.ICProvisioningManager : createObject : Error while creating user[[
    java.lang.NumberFormatException: null
         at java.lang.Long.parseLong(Long.java:375)
         at java.lang.Long.parseLong(Long.java:468)
         at oracle.iam.connectors.icfcommon.prov.ICProvisioningManager.init(ICProvisioningManager.java:104)
         at oracle.iam.connectors.icfcommon.prov.ICProvisioningManager.init(ICProvisioningManager.java:123)
         at oracle.iam.connectors.icfcommon.prov.ICProvisioningManager.createObject(ICProvisioningManager.java:267)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.thortech.xl.adapterGlue.ScheduleItemEvents.adpADIDCCREATEOBJECT.CREATEOBJECT(adpADIDCCREATEOBJECT.java:109)
         at com.thortech.xl.adapterGlue.ScheduleItemEvents.adpADIDCCREATEOBJECT.implementation(adpADIDCCREATEOBJECT.java:54)
         at com.thortech.xl.client.events.tcBaseEvent.run(tcBaseEvent.java:196)
         at com.thortech.xl.dataobj.tcDataObj.runEvent(tcDataObj.java:2492)
         at com.thortech.xl.dataobj.tcScheduleItem.runMilestoneEvent(tcScheduleItem.java:3148)
         at com.thortech.xl.dataobj.tcScheduleItem.eventPostInsert(tcScheduleItem.java:716)
         at com.thortech.xl.dataobj.tcDataObj.insert(tcDataObj.java:602)
         at com.thortech.xl.dataobj.tcDataObj.save(tcDataObj.java:474)
         at com.thortech.xl.dataobj.tcORC.insertNonConditionalMilestones(tcORC.java:847)
         at com.thortech.xl.dataobj.tcORC.completeSystemValidationMilestone(tcORC.java:1162)
         at com.thortech.xl.dataobj.tcOrderItemInfo.completeCarrierBaseMilestone(tcOrderItemInfo.java:757)
         at com.thortech.xl.dataobj.tcOrderItemInfo.eventPostInsert(tcOrderItemInfo.java:173)
         at com.thortech.xl.dataobj.tcUDProcess.eventPostInsert(tcUDProcess.java:235)
         at com.thortech.xl.dataobj.tcDataObj.insert(tcDataObj.java:602)
         at com.thortech.xl.dataobj.tcDataObj.save(tcDataObj.java:474)
         at com.thortech.xl.dataobj.tcTableDataObj.save(tcTableDataObj.java:2910)
         at com.thortech.xl.dataobj.tcORC.autoDOBSave(tcORC.java:3008)
         at com.thortech.xl.dataobj.util.tcOrderPackages.createOrder(tcOrderPackages.java:471)
         at com.thortech.xl.dataobj.util.tcOrderPackages.orderPackageForUser(tcOrderPackages.java:180)
         at com.thortech.xl.dataobj.tcOIU.provision(tcOIU.java:639)
         at com.thortech.xl.dataobj.tcOIU.eventPostInsert(tcOIU.java:357)
         at com.thortech.xl.dataobj.tcDataObj.insert(tcDataObj.java:602)
         at com.thortech.xl.dataobj.tcDataObj.save(tcDataObj.java:474)
         at com.thortech.xl.dataobj.tcTableDataObj.save(tcTableDataObj.java:2910)
         at com.thortech.xl.dataobj.tcUserProvisionObject.insertImplementation(tcUserProvisionObject.java:288)
         at com.thortech.xl.dataobj.tcDataObj.insert(tcDataObj.java:591)
         at com.thortech.xl.dataobj.tcDataObj.save(tcDataObj.java:474)
         at oracle.iam.provisioning.spi.DOBProvisioningUtil.provisionObject(DOBProvisioningUtil.java:128)
         at oracle.iam.provisioning.spi.DOBProvisioningMechanism.provision(DOBProvisioningMechanism.java:341)
         at oracle.iam.provisioning.impl.ProvisioningServiceImpl$4.process(ProvisioningServiceImpl.java:483)
         at oracle.iam.provisioning.impl.ProvisioningServiceImpl$4.process(ProvisioningServiceImpl.java:471)
         at oracle.iam.platform.tx.OIMTransactionCallback.doInTransaction(OIMTransactionCallback.java:13)
         at oracle.iam.platform.tx.OIMTransactionCallback.doInTransaction(OIMTransactionCallback.java:6)
         at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
         at oracle.iam.platform.tx.OIMTransactionManager.oimExecute(OIMTransactionManager.java:46)
         at oracle.iam.provisioning.impl.ProvisioningServiceImpl.provision(ProvisioningServiceImpl.java:471)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
         at oracle.iam.platform.utils.DMSMethodInterceptor.invoke(DMSMethodInterceptor.java:25)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy380.provision(Unknown Source)
         at oracle.iam.provisioning.api.ProvisioningServiceEJB.provisionx(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.oracle.pitchfork.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:34)
         at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
         at com.oracle.pitchfork.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:42)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy379.provisionx(Unknown Source)
         at oracle.iam.provisioning.api.ProvisioningService_p7m7x_ProvisioningServiceRemoteImpl.__WL_invoke(Unknown Source)
    Please help me in solving this issue.
    Thanks.
    Edited by: user9212679 on May 9, 2013 4:17 AM

    Hi Kevin,
    Thanks for the reply. As suggested by you I have assigned the default value as 0 for all the checkbox type in form designer for AD User form but still I am getting the same error while provisioning the AD resource.
    Please help.

Maybe you are looking for