OIM 11g R2 -Request Data

Hi,
We have users being reconciled from a flat file and we have a post eventhandler that raise a resource request (AD, Exchange) for all the users being on-boarded. Now the requester is coming in as OIMINTERNAL instead of the user, where should we change in OIM to say the actual requester is the user instead of OIMINTERNAL?//
Thanks.

It seems that you are using Platform.getService to get RequestService. It will give you OIMINTERNAL only.
If you want to use some other user then you'll have to use external method to get UtilityFactory or Request Service i.e. PrivateKey, UserName/Password etc but that is not recommended.

Similar Messages

  • OIM 11g R1 Request Template issue

    Hi All,
    We are facing an issue with implementing the Request Management of OIM 11g R1 11.1.1.5 for Create User.
    OIM already provides OOTB CreateUserDataSet.xml and a ‘Create User’ Request Template.
    We have changed(customized) the OOTB CreateUserDataSet.xml at the same location in MDS and have created one our own Request Template – ‘Create Custom’.
    We have also added Attribute Restrictions in the ‘Create Custom’  request template for mandatory fields like – ‘Organization’, ‘User Type’ & ’Design Console Access’.
    The issue we are facing is –“After some time(not immediately) the Request Template gets corrupt and does not open thus rendering the Request Process for Create User inoperable.”
    Below is the the log error of the OIM Web console error after we are trying to open ‘Create Custom’ by clicking on the Request Template.
    <ADF_FACES-60096:Server Exception during PPR, #8
    oracle.iam.platform.utils.MinLimitException: size < minimum limit
                    at oracle.iam.platform.canonic.model.Values.setMinLimit(Values.java:187)
                    at oracle.iam.requesttemplate.agentry.operations.OpenActor.renderAttributeRestrictionsTab(OpenActor.java:829)
                    at oracle.iam.requesttemplate.agentry.operations.OpenActor.prepare(OpenActor.java:198)
                    at oracle.iam.consoles.faces.utils.CanonicUtils.prepareOperation(CanonicUtils.java:169)
                    at oracle.iam.consoles.faces.utils.CanonicUtils.prepareOperation(CanonicUtils.java:179)
                    at oracle.iam.consoles.faces.render.canonic.UICursor$TableActionListener.processAction(UICursor.java:855)
                    at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
    Any help in solving above issue, workarounds or knowing that is it an OIM bug will be greatly helpful.
    Note* I have noticed(through Export) that in a corrupted Request Template the Organization Name that I have restricted to a Constant, has the- Organization Name's Text as value in exported xml. If I change it back to ACT KEY and import it back in OIM the Template is again restored until next corruption
    Thanks already
    Regards,
    Nitin Tewari

    Excellent! Thank you very much!
    Edited by: 958794 on May 22, 2013 10:37 AM

  • How to display Checkbox instead dropdown in OIM 11g using request dataset

    Hello,
    I am trying to display as check boxes instead of dropdown in requestor screen using request dataset.
    It still shows dropdown. Here is my request dataset.
    Is there anything wrong??
    <?xml version='1.0' encoding='UTF-8'?>
    <request-data-set xmlns="http://www.oracle.com/schema/oim/request" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" operation="PROVISION" entity="ACCOUNTING CONTROL" name="ProvisionResourceACCOUNTING CONTROL" xsi:schemaLocation="http://www.oracle.com/schema/oim/request">
    <AttributeReference available-in-bulk="true" length="20" widget="*checkbox*" type="*Boolean*" attr-ref="Instance" name="Instance" required="true">
    <lookupValues encoded-value="Dev" decoded-value="ACCOUNTING CONTROL (DEV)"/>
    <lookupValues encoded-value="QA" decoded-value="ACCOUNTING CONTROL (QA)"/>
    <lookupValues encoded-value="PRD" decoded-value="ACCOUNTING CONTROL (PRD)"/>
    </AttributeReference>
    </request-data-set>
    Thanks!!!

    What are you trying to achieve here? If you are using checkboxes than you can't have multiple options to it but would rather have to put static values.
    Something like:
    <AttributeReference name="Field1" attr-ref="Dev" available-in-bulk="false" type="Boolean" length="30" widget="checkbox" required="false"/>
    <AttributeReference name="Field2" attr-ref="QA" available-in-bulk="false" type="Boolean" length="30" widget="checkbox" required="false"/>
    <AttributeReference name="Field3" attr-ref="PRD" available-in-bulk="false" type="Boolean" length="30" widget="checkbox" required="false"/>
    AFAIK OIM does not allow for a multiselect box in dataset.
    -BB

  • OIM 11g R1 - Request Type Description Customization (Translation)

    Hello Experts,
    I'd like a little help to know if it is possible to customizate the following:
    OIM is using Browser locale to change the language on Web Console.
    Does any one know how to change the translation to the Request Type description (the list from where we need to choose) when we are creating a Request?
    Example:
    Self-Request Resource = Recurso de Auto-Solicitação (in Brasilian Portuguese - we'd like to change it)
    Self De-Provision Resource = Autocancelar Provisionamento de Recurso (in Brasilian Portuguese - we'd like to change it)
    We work with OIM 11g R1.
    Thanks.

    Excellent! Thank you very much!
    Edited by: 958794 on May 22, 2013 10:37 AM

  • OIM 11g: Event Handler "Data Object"

    Is there any way in the OIM 11g Users event handler model (pre-insert) to get a "data object" type structure of the column names and values which will be inserted into the database (i.e USR_FIRST_NAME = "John"). This would be similar to what the legacy 9.1x event handler model provided via the getDataObject() method.
    I know how to get the data from the orchestration parameters, but for our requirements we need the data to be keyed by database column name ("USR_FIRST_NAME") and not field name as in the orchestration params ("First Name").
    OIM must do this conversion at some point (field name -> database column name). Can we somehow leverage this same function?
    Thanks.

    You can accomplish through if statements in your event handler to check for the attributes that determine the logic. For example, if your user's last name changes, you can check the orchestration.getParameters() to see if it contains a key for "UserManagerConstants.AttributeName.LAST_NAME.getId()" and if it does, then perform your logic to update the user.
    You could also come up with a lookup that can be referenced for these and have your own custom java code that outputs information based on the values in the lookup. Just think creatively and anything is possible.
    Or you can get a connection to the database, and have a constants file that translates the metadata names back to database fields and continue to use your existing code.
    Lots of options.
    -Kevin

  • OIM 11g selfdeprovision request error

    Hi ,
    I have created the request template with request type as the selfdeprovision resource. As it is known we dont need to collect any data during deprovisioning. So we did not have a request dataset. And we have created OL and RL policies with auto approval . but when a user is raising the request , while submitting it following error is thrown.
    An error occurred while submitting the request. The Request Beneficiary Entity does not exist as part of the Beneficiary in the request data.
    Any help would be appreciated.
    thanks.

    In your rules on your approval policy, have you set the rule parameter correctly to make sure it gets auto approved?
    You can try creating a new request template.
    Also, if you have an error on the request dataset associated with it, for whatever reason, you can export the request template using the deployment manager and it should include the dataset attached to it and perhaps you can see what is causing the error.
    -Kevin

  • OIM 11g R2 - Request ID while submitting catalog

    Hi,
    May I know how I can make OIM to generate a request ID (in other words,OIM through request approval flow) ,while submitting a provisioning request through a catalog?.Thanks.

    login as an end user and request for account. Request Id will be generated automatically.
    In case of R2 , if you raise request using admin user(xelsysadm--SYSTEM ADMINISTRATOR) it act as direct provisioning. therefore no such request will be generated. If you raise request using end user, request ID will be generated.
    All this decision taken by catalog engine.

  • OIM 11g R1: Exporting data object permissions

    Hi all,
    Does anyone know if there is anyway to export/import data object permissions on roles?
    They don't seem to be exported with the role, or with role and organization metadata. Have I missed something?
    Thanks!

    What kind of DataObject permissions are you exporting ?
    Permissions are always associated with some OIM Components. When you export that component then it will be exported Automatically.

  • Oim 11g R2 request submisson through code

    Hi All,
    I have written a custom code for submitting the request from client using the following program.
    private RequestData buildappinstance(Catalog item,String userLogin)
      UserManager userService = oimClient.getService(UserManager.class);
      User user=null;
      try{
      user=userService.getDetails(userLogin, null, true);
      }catch(Exception e){
      e.printStackTrace();
      throw new RuntimeException(e.getMessage(),e);
      RequestData reqData=new RequestData();
      Beneficiary ben= new Beneficiary();
      String userkey=user.getId();
      System.out.println("userkey");
      ben.setBeneficiaryKey(userkey);
      ben.setBeneficiaryType(Beneficiary.USER_BENEFICIARY);
      RequestBeneficiaryEntity reqent=new RequestBeneficiaryEntity();
      /*reqent.setRequestEntityType(OIMType.ApplicationInstance);*/
      reqent.setEntitySubType(item.getEntityName());
      reqent.setEntityKey(item.getEntityKey());
      reqent.setOperation(RequestConstants.MODEL_PROVISION_APPLICATION_INSTANCE_OPERATION);
      List<RequestBeneficiaryEntity> entities=new ArrayList<RequestBeneficiaryEntity>();
      entities.add(reqent);
      ben.setTargetEntities(entities);
      List<Beneficiary> benfs=new ArrayList<Beneficiary>();
      benfs.add(ben);
      reqData.setBeneficiaries(benfs);
      return reqData;
    public static void main(String args[]) {
    List moList = null;
    try {
    Sample oimSample = new Sample();
    // initialize resources
    oimSample.init();
    // retrieve User logins with first name 'Joe'
    moList=oimSample.getUserLogin("joe");
    Catalog item = new Catalog();
    item.getEntityName();
    ApplicationInstance appInst= new ApplicationInstance();
    RequestService reqsrvc = oimClient.getService(RequestService.class);
    RequestData reqData=new RequestData();
    ApplicationInstanceService appInstAPI = (ApplicationInstanceService)oimClient.getService(ApplicationInstanceService.class);
    SearchCriteria appInstSearchCriteria = new SearchCriteria(AccountSearchAttribute.APPINST_NAME.getId(),"app2",SearchCriteria.Operator.EQUAL);
    List<ApplicationInstance> appInstList = appInstAPI.findApplicationInstance(appInstSearchCriteria, null);
    appInst = appInstList.get(0);
    System.out.println("appinstancekey"+appInst.getApplicationInstanceKey());
    System.out.println("appinstance name"+appInst.getApplicationInstanceName());
    System.out.println(appInst.getItResourceKey());
    item.setEntityKey("2");
    item.setEntityName("app2");
    System.out.println("entity key"+item.getEntityKey());
    System.out.println("userlogin......"+userLogin);
    reqData=oimSample.buildappinstance(item,userLogin);
    reqsrvc.submitRequest(reqData);
    System.out.println("request has been submitted");
    System.out.println("appinastance has been created");
    But getting the following error.
    oracle.iam.request.exception.RequestServiceException: Request submission failed with Error getCacheEntry called with an empty or null key.
    Caused by: oracle.iam.request.exception.RequestServiceException: Request submission failed with Error getCacheEntry called with an empty or null key.
    when Iam writing the following statement
    /*reqent.setRequestEntityType(OIMType.ApplicationInstance);*/ which is bold in the above code
    getting the error
    The method setRequestEntityType(OIMType) in the type RequestBeneficiaryEntity is not applicable for the arguments (OIMType)
    Please help me out.
    This is urgent.
    Thanks.

    Can you please confirm your OIMType class belongs to "oracle.iam.platform.utils.vo.OIMType" and not oracle.iam.catalog.vo.OIMType.

  • Creating approver only field in OIM 11g R2

    Hi,
    I need to create some fields in OIM 11g R2 request data set, so that those field will be visible only to approvers and they can only enter the data into it.
    In 11g R1 I know how to create those field, but I don't know how to create the same type of field in OIM 11g R2.
    Please help

    Hi ,
    Thanks for your reply .. I am able to understand the scenario what you are trying to explain .. I tried to do the same ...but in my scenario ,this is the problem that I am facing ..
    1)When a user modifies only his First Name then it works fine and gets auto approved .
    2)When a user modifies only his Last Name then it works fine and goes for approval and waits till it gets approved.
    3)Now the problem is when a user modifies both his First Name and Last Name and submits as a single request , how to handle this ? In this case the First Name should get committed and the Last Name should not get committed .. But he has submitted only a single request .. so how to handle this scenario ?How to divide a single request into two to commit one attribute and not commit another one ?

  • How to get details of Pending Approval request in OIM 11g R2?

    Hi,
    We need to find out following details from Pending Approval Request in OIM 11g R2 -
    Request ID,Assignees,Requested Resource Name, Title of Request, Beneficiary, Status of Request.
    Out of above attributes we could find out Assignees, Title of Request, Status of Request, Beneficiary, etc. But we are not getting Request ID and Requested Resource Name.
    We have used API - 'IworkflowServiceClient'
    If we use API - 'RequestService' then we are not getting Assignees and Resource name from Pending approval request.
    Can any one suggeste how can we get these details? Do we need to use other API or other alternative to get all of attributes from Pending Approval Request.
    Thanks.

    Thanks Kevin for your suggestion.
    In OIM 11g R2 I tried task.getIdentificationKey() to get Request ID and task.getSystemMessageAttributes().getTextAttribute6() to get requested resource name but I am getting null values out of it. Is there something I am missing?
    Which common thing I can use to retrieve data from both OIM and SOAINFRA? As I am not getting Request ID from 'IworkflowServiceClient' API so I could not use it to earch request in OIM using 'RequestService'. Even if I have to use query what will be common thing I can use to fetch data from both tablespaces?
    Thanks.

  • Retrieve field value lookup OIM 11g

    Hello! I have a problem to get the value of an attribute lookup, for example, to use this syntax OIM 9
    Lookup Query = select from lkv_decoded lkv, lku WHERE lkv.lku_key = lku.lku_key and lkv_encoded = *'$Form date$. $USR_UDF_DEPARTMENT$'* and lku_type_string_key = 'Lookup.Position_new'.
    What is the syntax used in the OIM 11g? ('$Form Data$.$USR_UDF_DEPARTMENTS$)
    Help me !
    Thanks
    Edited by: 825715 on Feb 10, 2011 8:48 AM

    So,
    I have a form with an LOVs attribute, how to get the value selected in this LOVs and put in a query? (Dependent Lookup)

  • How to polulate data from lookup using request dataset in OIM 11g

    Hi,
    Using Request dataset in OIM 11g, I need to display one dropdown with the roles those need to come from Lookup.
    For Ex; I have 2 resources,i.e Resource A and Resource B. Resource A has 5 roles and Resource B has 3 Roles.
    While creating a request, If I select Resource A, then I should be able to get 5 Roles and if I select Resource B then I should be able to see corresponding 3 roles.
    Pls. note I have only one Look up definition , where I have roles for both Resource A and B.
    I have done simillar thing in OIM 10g , however I am unable to do it using OIM 11g Request dataset.
    Pls suggest.

    Hi BB,
    I am trying to follow up your response.
    You are suggestng to use prepopulate adapter for to populate respource object name, that means We have to just use an sql query from obj tabke to get the resource object name. right ?? it could be like below, what should I have entity-type value here ??
    <AttributeReference name="Field1" attr-ref="act_key"
    available-in-bulk="false" type="Long" length="20" widget="ENTITY" required="true"
    entity-type="????"/>
    <PrePopulationAdapter name="prepopulateResurceObject"
    classname="my.sample.package.prepopulateResurceObject" />
    </AttributeReference>
    <AttributeReference name="Field2" attr-ref="Field2" type="String" length="256" widget="lookup-query"
    available-in-bulk="true" required="true">
    <lookupQuery lookup-query="select lkv_encoded as Value,lkv_decoded as Description from lkv lkv,lku lku
    where lkv.lku_key=lku.lku_key and lku_type_string_key='Lookup.xxx.BO.Field2'
    and instr(lkv_encoded,concat('$Form data.Field1', '~'))>0" display-field="Description" save-field="Value" />
    </AttributeReference>
    Then I need think about the 'Lookup.xxx.BO.Field2' format.
    Could you please let me know if my understanding is correct?? What is the entity-type value of the first attribute reference value?
    Thanks for your all help.

  • OIM 11g r2 ps2. Setting end date for role requests

    Hi,
    reviewing the new features document on oim 11g r2 ps2: http://www.oracle.com/technetwork/middleware/id-mgmt/overview/oim-11gr2-whats-new-1709505.pdf
    it says "For example, in a request that involves multiple entitlements, the requester might be required to specify the start date and end date for each of the entitlements requested. OIM enables requesters to provide such information during request that can be carried all the way to approval and provisioning processes. OIM also provides an out-of-the-box scheduled task for entitlement grant and revoke based on the start and end dates specified"
    I've been searching on the documentation and doing tests on a virtual environment before a poc to a customer and can not find how to use that feature.
    Is it an OotB feature or it needs codification and extra configuration?
    Any tips on how to achieve this?
    Thanks in advance!

    Doc links:
    http://docs.oracle.com/cd/E40329_01/admin.1112/e27149/appinstance.htm#OMADM5296
    http://docs.oracle.com/cd/E40329_01/admin.1112/e27149/scheduler.htm#OMADM743, tasks "Sunrise of Accounts and entitlements" and "Sunset of Accounts and entitlements".
    Oracle Support Document 1951854.1 (Sunrise And Sunset Of Entitlements) can be found at: https://support.oracle.com/epmos/faces/DocumentDisplay?id=1951854.1
    Joost

  • How to retrieve Request Form Data in OIM 11g for SOA workflows

    Hi,
    I have a business requirement wherein, I need to retrieve a field's value inside my SOA composite for further processing and decide on the Approver of the Request. Say for e.g. I'm having a field *"Country"* inside my Request Form, and what i need to do is, as soon as the request form is submitted, I need to retrieve the value for *"Country"* attribute inside my SOA Composite using Payload, and further process it. This scenerio is with respect to provision an application instance to a user.
    Now, in a similar scenario, where I was trying to create a user of type *"Contractor"*, I had used Request Service Api to retrieve the Basic information of the userform submitted, and decide on approval. Fortunately, the basic data like, First Name, Last Name, Login etc was successfully being fetched from the Request and I was able to perform further operations.
    Unfortunately, the same code which was working for Creation of a User, is not working when I'm trying to provision an application instance to the user.
    Below is the code which worked fine for me to retrieve basic request data for user creation, and isn't working for provisioning application instance:
    RequestService reqSvc = (RequestService)oimClient.getService(RequestService.class);
    String reqId = ((oracle.xml.parser.v2.XMLElement)getVariableData("inputVariable", "payload", "/ns3:process/ns4:RequestID")).getText();
    System.out.println("request ID: " reqId);+
    Request req = reqSvc.getBasicRequestData(reqId);
    List <RequestEntity> targetEntities = req.getTargetEntities();
    System.out.println("targetEntities : " targetEntities);+
    System.out.println("------------");
    for (RequestEntity rea : targetEntities)
    +{+
    List <RequestEntityAttribute> attributes = rea.getEntityData();
    for( oracle.iam.request.vo.RequestEntityAttribute attribute : attributes)
    +{+  
    System.out.println("Attribute.getName() : " attribute.getName().toString());+
         if(attribute.getName().equals("User Manager"))
         +{+
    beneficiaryManagerKey = attribute.getValue().toString();
         System.out.println("User Manager : " beneficiaryManagerKey);+
    +}+
         e+lse if(attribute.getName().equals("User Login"))+
         +{+
    userid = attribute.getValue().toString();
         System.out.println("User Login  : " userid);+
    +}+
    +}+
    +}+
    Any pointers to this would be of a great help.
    Regards

    List <RequestEntity> targetEntities = req.getTargetEntities();
    System.out.println("targetEntities : " + targetEntities);
    System.out.println("------------");
    The above piece of code retrieves the attributes and their values from the request form while creating a user, but not from the request form, which provisioning a resource to a user.
    Regards,

Maybe you are looking for