Develop pre-populate adapter in request dataset in OIM 11G

Hi Friends,
I have a field say UD_TEMP_FORM_FIELDA on the process form which is going to be populated based on the value of a field SAY UD_TEMP_FORM_FIELDB on the request dataset.
So my request dataset will have only one field which is UD_TEMP_FORM_FIELDB.
And my process form will have two fields UD_TEMP_FORM_FIELDA and UD_TEMP_FORM_FIELDB.
And I developed a pre-populate adapter on the process form to populate UD_TEMP_FORM_FIELDA field based on the value of UD_TEMP_FORM_FIELDB during provisioning. But pre-population is not at all getting triggered during provisioning. I believe I need to put UD_TEMP_FORM_FIELDA also on the request dataset and pre-populate its value in request dataset itself and pass the value from request data set to process form. Is this correct?
If so, as per the documentation, we need to create a request dataset with pre-pop adapter in the below format.
<AttributeReference name="Domain" attr-ref="domain" available-in-bulk="true" type="String" length="20" widget="text">
<PrePopulationAdapter classname="oracle.iam.request.DomainPrepopulateAdapter"/>
</AttributeReference
As we are specifying only the class name in the above statement,
1) How to pass the value of UD_TEMP_FORM_FIELDB to this class.
2) Which method in the class will execute
3) How to Registert this class.
Can you please provide me some steps/urls for the above requirement?
Thanks,
Mike

Hi Nishith,
Thanks for your response.
As per my requirement I am going to keep UD_TEMP_FORM_FIELDA (Group Owner) and UD_TEMP_FORM_FIELDB (AD Group Name) in the child forms and I am going to use the below pre-populate adapter code to get the value for UD_TEMP_FORM_FIELDA based on value of UD_TEMP_FORM_FIELDB.
My question is:
If I raise a request with only one value in the child form, then the below code will code work. But, If I add more than one value say AD groups in the child form while raising a request, this code is going to retrieve same owner value for all AD groups as it will go by FOR loop.
How to pre-populate the individual owner for the individual AD group given in the child form? Please let me know.
public class PrepopEBSRespValue implements PrePopulationAdapter {
public Serializable prepopulate(RequestData requestData) throws RequestServiceException,
tcAPIException,
tcInvalidLookupException,
tcColumnNotFoundException {
List<Beneficiary> beneficiaries = null;
List<RequestBeneficiaryEntity> benEntities = null;
List<RequestBeneficiaryEntityAttribute> benAttrs = null;
String ownerValue="";
beneficiaries = requestData.getBeneficiaries();
if (beneficiaries != null && !beneficiaries.isEmpty())
for (oracle.iam.request.vo.Beneficiary beneficiary : beneficiaries)
benEntities = beneficiary.getTargetEntities();
if (benEntities != null && benEntities.size() > 0)
for (oracle.iam.request.vo.RequestBeneficiaryEntity benEntity : benEntities)
benAttrs = benEntity.getEntityData();
if (benAttrs != null && benAttrs.size() > 0)
for (oracle.iam.request.vo.RequestBeneficiaryEntityAttribute benAttr : benAttrs)
if(benAttr.hasChild())
java.util.List <oracle.iam.request.vo.RequestBeneficiaryEntityAttribute> list = benAttr.getChildAttributes();
java.util.Iterator iterator = list.iterator();
while(iterator.hasNext())
oracle.iam.request.vo.RequestBeneficiaryEntityAttribute attribute =(oracle.iam.request.vo.RequestBeneficiaryEntityAttribute)iterator.next();
String attrName=attribute.getName();
if (attrName.equalsIgnoreCase("Owner"))
String lookupName="Lookup.Owner.values";
System.out.println("Getting decoded value for the given code key..");
String attrValue=attribute.getValue().toString();
HashMap searchcriteria = new HashMap();
searchcriteria.put("Lookup Definition.Lookup Code Information.Decode", attrValue);
Thor.API.Operations.tcLookupOperationsIntf lookupIntf=Platform.getService(Thor.API.Operations.tcLookupOperationsIntf.class);
tcResultSet result = lookupIntf.getLookupValues(lookupName,searchcriteria);
for(int i=0;i<result.getRowCount();i++)
result.goToRow(i);
ownerValue = result.getStringValue("Lookup Definition.Lookup Code Information.Code Key");
System.out.println("Decoded Value::"+ownerValue);
return (Serializable) ownerValue;
}

Similar Messages

  • 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.

  • Lookup codekey value in Request dataset in OIM 11g

    Hi,
    Below is my Attribute reference in Request dataset in OIM 11g.
    Could you please suggest what could be the possible Lookup code key values in lookup 'Lookup.AccountingControl.Roles'
    I tried giving CodeKey values as "ACCOUNTING CONTROL~" then Decode value as "Administrator" , However it does not give any value.
    So I think what I am giving as Codekey value is wrong based on below lookup query.
    What could be the correct value for CodeKey ? Thanks!!
    <AttributeReference name = "Role Name" attr-ref = "Role Name" type = "String" length = "256" widget = "lookup-query"
    available-in-bulk = "true"
    required = "true"
    primary = "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.AccountingControl.Roles' and instr(lkv_encoded,concat('ACCOUNTING CONTROL','~'))>0"
    display-field = "Description"
    save-field = "Value"/>
    </AttributeReference>

    Yes..You were right.
    You resolved one of my issue. I have marked it as answered giving 10 pts ;-)
    I think I have already raised another forum question where I needed to pass this Accounting Control as dynamic and this is one Resource Obkect selected from previous page.
    You asked me to use Prepopulate adapter to get the Resource Object name.
    I have still some questions to solve that issue.I will put that question there. It would be great yo answer it.

  • Customizing request datasets in OIM 11g

    Hi Friends,
    I have couple of questions/issues while customizing request datasets in OIM 11g. Can you please help me?
    1) I gave read-only="true" in my request dataset for one of the attribute, but I was still able to edit that attribute value while raising requests.
    2) I gave hidden="true" in my request dataset for one of the attribute, but I was still able to see that attribute while raising requests.
    3) I have around 90 attributes in my request dataset. Is there any way to display category type and under that category display the attrbitues i.e. just like attributes in user profile.
    4) As I have 90 attributes, I am expecting the format will be like first 45 will be shown in left panel(column) and remaining 45 in right panel (column). Instead of this , it is showing first 70 in left panel and the remaining 20 in right panel which is very ugly to see. Is there any way to show frist 45 on left side and remaining 45 on the right side? Please help me.

    Regarding the first two points:
    1) The read only property applies to the approver only, i.e. approver can read and not modify the attribute. It does not apply to the requester. I don't believe you can configure a read-only attribute in the data set.
    2) If you want to hide an attribute, you can restrict it in your request template.

  • Using the OIM logger in a Pre-populate adapter

    I am having problems getting the logger to show any output from my java code. This same logic works for a scheduled task, but not in a pre-populate adapter. I am even trying to use a logging class that I see is already in the logs.
    Code snippet:
    import com.thortech.util.logging.Logger;
    public class MyPrePop {
    private static Logger logger = Logger.getLogger("XELLERATE.ADAPTERS");
    public String doSomething(String userid) {
    logger.info("Using "+userid);
    return "COMPLETE"
    Any help is greatly appreciated!
    Kerry

    Have you added all the filelds in prepoluate tab of the process form which all you want to prepopulate and assigned them the "iPlanet PP String" adapter if you want to just copy the values from OIM to LDAP.

  • LOV Decode value returned by Pre-populate Adapter

    Hi,
    I have a lot of UDFs of type LOV, in particular System LOV( that point to custom Lookup Field definitions).
    My problem is to get and return not the Lookup Decode value and not the Lookup Code Key (default OIM behavior) by a Pre-populate adapter.
    May you help?
    Thanks and regards,
    Gabriele.

    Hi Kevin,
    may you provide a sample code fro that?
    What you said it's true for UI/RequestTemplate that is: the Lookup Decode value it's displayed; but it's not true for a Pre-populate adapter mapped on a Provisioning Form.
    In particular my custom pre-populate adapter is like the following:
    CUSTOM Prepopulate Field Value
    Adapter Name: CUSTOM Prepopulate String Field Value
    Adapter Type: Pre-populate Rule Generator
    Description: return input field value (String)
    [Save]
    [Variable List]
    [Add]
    Variable Name: string_field_value
    Description: string_field_value
    Type: String
    Map to: Resolve at runtime
    [Adapter Tasks]
    [Add]
    Logical Task + SET VARIABLE
    Variable Name: Adapter Return Variable
    Operand Type: Variable
    Operand Qualifier: string_field_value
    [Build] (Compile Status = OK)
    [Save]
    and it is mapped on AD Provisioning Form (Form Designer - UD_ADUSER - Pre-Populate):
    Field Name: Description
    Rule: Default
    Adapter: CUSTOM Prepopulate String Field Value
    [Save]
    [Map] string_field_value
    Map to: User Definition
    Qualifier: <UDF LOV attribute>
    where the <UDF LOV attribute> it's my custom sttribute type System LOV. It returns the Code Key value not the Decode value.

  • Generating Manager field in OID by using Pre-populate Adapter

    Hi All,
    I created a pre-populate Adapter that uses First name and Last name of user and add the manager field to OID during provisioning.
    But during provisioning i am getting Naming Exception.
    This is what i found in JBoss application server.
    09:30:58,828 INFO [STDOUT] Running CONCATENATEVARS
    09:30:58,828 INFO [STDOUT] Target Class = StringUtil
    09:30:58,921 INFO [STDOUT] Running CONCATENATEVARS
    09:30:58,921 INFO [STDOUT] Target Class = StringUtil
    09:30:59,640 INFO [STDOUT] Running GetTargetAttributeMapping
    09:30:59,703 INFO [STDOUT] Running GetProcessData
    09:30:59,859 INFO [STDOUT] Running SHOULDUSEXLORG
    09:30:59,875 INFO [STDOUT] Target Class = java.lang.Boolean
    09:30:59,875 INFO [STDOUT] Running SHOULDUSESSL
    09:30:59,875 INFO [STDOUT] Target Class = java.lang.Boolean
    09:30:59,875 INFO [STDOUT] Running CREATEUSER
    09:31:00,203 INFO [STDOUT] Target Class = com.thortech.xl.integration.OID.tcUtilOIDUserOperations
    09:31:00,250 INFO [OID] Parameter Variables passed into com.thortech.xl.integration.OID.tcUtilOIDUserOperations:tcUtilOIDUserOperations(s,s,s,s,s,o,o,b): are sServ
    sPort = 3060, sPrincipalDN = cn=orcladmin,
    09:31:00,281 INFO [OID] Parameter Variables passed into com.thortech.xl.integration.OID.util.tcUtilLDAPOperations:tcUtilLDAPOperations(): Login Variables are:: are
    = cn=orcladmin, sProviderURL = ldap://192.168.109.140:3060,
    09:31:00,281 INFO [OID] Parameter Variables passed into com.thortech.xl.integration.OID.tcUtilOIDUserOperations:createUser(S,S,S,S,S): are sContainerDN = cn=users,
    ER8,
    09:31:00,343 INFO [OID] com.thortech.xl.integration.OID.util.tcUtilLDAPOperations : connectToAvailableOID() : SSL option is not selected in ITResource
    09:31:00,359 INFO [OID] Parameter Variables passed into com.thortech.xl.integration.OID.tcUtilOIDUserOperations:formatOrgDN(s,s): are sOrgDN = cn=users, sRootDN =
    09:31:00,359 INFO [OID] Parameter Variables passed into com.thortech.xl.integration.OID.tcUtilOIDUserOperations:isObjectExists(S,S): are sContainerDN = cn=users,dc
    09:31:00,375 INFO [OID] Parameter Variables passed into com.thortech.xl.integration.OID.util.tcUtilLDAPOperations:search(S,S,b,S[]): are pSearchBase = cn=users,dc=
    09:31:00,390 INFO [OID] Parameter Variables passed into com.thortech.xl.integration.OID.util.tcUtilLDAPOperations:createObject(S,A): are pObjDN = cn=TESTUSER8,cn=u
    .BasicAttributes$IDEnumImpl@1217a79,
    09:31:00,515 ERROR [OID] ====================================================
    09:31:00,515 ERROR [OID] ERROR in OID:com.thortech.xl.integration.OID.util.tcUtilLDAPOperations:createObject(S,A) NamingExceptionUnable to create object
    09:31:00,515 ERROR [OID] ====================================================
    09:31:00,531 ERROR [OID] ====================================================
    09:31:00,531 ERROR [OID] cn=TESTUSER8,cn=users,dc=orademo,dc=com: [LDAP: error code 34 - Invalid DN Syntax]
    09:31:00,546 ERROR [OID] ====================================================
    09:31:00,546 ERROR [OID] ====================================================
    09:31:00,562 ERROR [OID] ERROR in com.thortech.xl.integration.OID.tcUtilOIDUserOperations:createUser(S,S,S,S,S) NamingExceptionError while connecting to target
    09:31:00,562 ERROR [OID] ====================================================
    09:31:00,578 ERROR [OID] ====================================================
    09:31:00,578 ERROR [OID] com.thortech.xl.integration.OID.util.tcUtilLDAPOperationsUnable to create objectNamingExceptioncn=TESTUSER8,cn=users,dc=orademo,dc=com: [LDA
    09:31:00,578 ERROR [OID] ====================================================
    09:31:00,593 ERROR [OID] ====================================================
    09:31:00,593 ERROR [OID] com.thortech.xl.integration.OID.util.tcUtilLDAPOperationsUnable to create objectNamingExceptioncn=TESTUSER8,cn=users,dc=orademo,dc=com: [LDA
    09:31:00,609 ERROR [OID] ====================================================
    Can anyone help me to come out of this.
    Thanks & Regards,
    Rajesh.

    Hi Rajiv,
    I am generating the value to the manager field in OID.I found this value getting generated in the OID user form.But this value is not provisioning during provisioning the user.
    In the OID Configuration Lookup table i found the manager is mapped to ldapManager.But when i connected to OID through ldap browser i didn't find this attribute.The manager attribute is not there.
    So can you help me to solve this.
    Thanks & Regards,
    Rajesh.

  • Pre-Populate adapter for Oracle connector

    Hi ,
    We are using OIM to manage Oracle and AD users. I have a requirement to provision users to both the target system , For AD connector, predefine pre-populate adapters are available for populating login id , first name , last name etc…from OIM user form, but in case of Oracle I didn’t see any such pre-populated adapter. How can I populate a value in the Person_uid field for the oracle user what ever the value will given in the OIM user form.Should i need to write any custom code for pre-populate adapter.
    Version details
    OIM – 9.1.0.1
    Oracle Connector 9.1
    Regards,
    Poorna

    I hope that Kevin has explained but I am writing once again for your convenience
    Create an adapter of type pre-populate
    Add a variable, X, of type String and set the Map To to Resolve at Runtime.
    Add a logical task SET VARIABLE.
    Map Adapter Return value with variable X
    Compile the adapter
    Just attach this adapter with your fields on process form and map the variable with User Definition Fields like first name, last name etc.
    It will work for you but keep in mind that it will populate String Fields of User Definition.
    For Date and other fields you have to create a similar adapter

  • Pre-populate adapter for setting the Active Directory OU for a user

    Hi All
    I created a pre-populate adapter that set the Active Directory OU for a user...
    In the end the status of the resource is still showing "provisioning"..
    It must be "Provsioned"..did I miss something ?
    The logs speak as below :-
    08:01:12,678 INFO [STDOUT] Running Create User
    08:01:12,678 INFO [STDOUT] Before appending Root Context:OU=Human Resources,
    08:01:12,678 INFO [STDOUT] tcUtilLDAPController.java : hierString : OU=Human Resources,dc=mydomain,dc=com
    08:01:13,553 ERROR [ACTIVEDIRECTORYCONTROLLER] Problem creating object: javax.naming.OperationNotSupportedException: [LD
    AP: error code 53 - 0000001F: SvcErr: DSID-031A0FC0, problem 5003 (WILL_NOT_PERFORM), data 0
    ]; remaining name 'cn=ASYMONDS'
    08:03:18,756 INFO [[xlWebApp]] action: LogonAction: User 'XELSYSADM' logged on in session 8116CBC0FA1481D06A207A1941B9
    E096
    08:22:31,256 ERROR [WEBAPP] Class/Method: ProvisionedResourcesForUserAction/confirmEnableSelection encounter some proble
    ms: No checkbox was checked.

    Just verify the OU value is correctly populated , first try doing the provisioning by manually giving OU and everything .
    Is it successful ?
    Then we can check if something wrong going with pre pop.
    Thanks
    Suren

  • Pre populate adapter in OIM 11gr2 not triggered in database

    Hello,
    Folowing is the steps for creation of pre populated adapter in OIM
    ** we have created one form in OIM which is provisioned to Database**
    Steps
    · Installed GTC connector for Database Web App 9.*
    · Created new user and Table in Database
    · Created IT resource for Database
    · Created Sandbox, App Instance and Form, published sandbox
    · Started catalog synchronization job scheduler
    · Created user and and request account to app instance.
    * select application instance to catalog and checkout.
    ** we have created adapter as per the following link
    http://idmrockstar.com/blog/2009/08/how-to-create-a-prepopulate-adapter-in-oim/
    create a pre populated adapter that will populate the firstname of user in email using java class
    source code:
    public class AdapterClass{
    public String email( String fname )
    return fname;
    Steps:
    1) In the design console I have open the Adapter Factory and create a new adapter name :firstname
    adapter type: pre-populate rule generator
    click on save
    2) select variable list tab:
    variable name:Firstname
    type:String
    Map to : Resolve at runtime
    click on save
    3) select Adapter Task tab
    * click add and select logical task
    * select SET VARIABLE and click continue
    * Operand Type:variable
    * Operand Qualifier : FIrstname
    click save and save the adapter
    4) compile the java class into jar file and move the jar file into OIM_HOME\server\JavaTasks
    5)Create a new Adapter with the following"
    Adapter name:Email
    Adapter type: Pre-populate rule Generator
    click save
    6) select variable list tab:
    variable name: var1
    Type:String
    Map to:Resolve at runtime and click save
    7) select Functional Task tab:"
    select java click continue
    select the following information:
    Task name:email
    Api source: JavataskJar:Adapterclass.jar( the jar file which you have create)
    application api: adapteclass
    click save
    8) In the Application method parameters,select the first input: String
    Cange Map to:Adapter variables
    Set the name to:var1 and click save
    9) select the output:STring
    change map to:Adapter variables
    set name to: return variable
    10) click save and save the adapter and click on Build
    Adapter is now build the next step isto join it to the form
    ** join the adapter to the form**
    Steps:
    1) click on form designer and search the related form which we have created
    2) In the respective form click on create a new version and create a new version
    3) and then click on Pre populate tab and click on ADD
    4)select adapter field to firstname
    Rule : default
    Adapter : Firstname
    and click on save
    5) In the adapter variable field click on firstname and fill the following
    map to: Process data
    Qualifier : firstname
    6) Repeat steps 3 to 5 to map the email adapter
    7) click on save.
    Now we have done with all the steps and now we have created one User submit the user
    we have click on request acounts ---> search the catalog and select the application instance (select the app instance "database provisioning") ---> add to cart ---> and check out ---> fill the form leaving email field --> ready to submit ---> submit
    now we have check this user in database but still pre populated fields are not reflected. since this not working so we have found the other three links
    Re: OIM 11gR2 - Prepopulate Field Empty Problem
    http://fusionsecurity.blogspot.in/2013/01/populating-request-attributes-in-oim.html
    http://identityandaccessmanager.blogspot.in/2011/07/prepopulate-adapter-in-oim-11g.html
    according to these links they mention to implements the prepopulationadapter interface into the java class and create the plugin.xml for the class which we have used in jar.
    so we prepared a plugin.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <plugins pluginpoint="oracle.iam.request.plugins.PrePopulationAdapter">
    <plugin pluginclass= "com.oracle.demo.iam.prepop.plugin.UserLoginPrePop" version="1.0" name="UserLoginPrePop">
    <metadata name="PrePopulationAdapater">
    <value> My_users::email</value>
    </metadata>
    </plugin>
    </plugins>
    </oimplugins>
    and the java class which implements "PrePopulationAdapter".
    they mention to put that jar into one directory named "lib"and paste the xml and lib folder into the OIM_HOME\server\plugin
    BUt we stuck on how to configure the adapter or what is the next steps for the above process. or there is something that we have missed in the process
    please do reply its urgent
    Regards,
    Tushar Palekar

    hii i have followed all your steps regarding the pre populated adapter ,but no luck.
    java code :
    package com.oracle.demo.iam.prepop.plugin;
    import java.io.Serializable;
    import oracle.iam.request.plugins.PrePopulationAdapter;
    import oracle.iam.request.vo.RequestData;
    public class Userfname implements PrePopulationAdapter {
    public Serializable prepopulate(RequestData requestData){
    String fname = "xyz";
    System.out.println("Returning fname ==== " + fname );
    return fname ;
    2)i have create a jar for this code and paste it into lib folder.
    3) i have create a plugin.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <*plugins pluginpoint="oracle.iam.request.plugins.PrePopulationAdapter">*
    *<plugin pluginclass= "com.oracle.demo.iam.prepop.plugin.Userfname" version="1.0" name="Userfname">*
    *<metadata name="PrePopulationAdapater">*
    *<value>register::LAST_NAME</value>*
    *</metadata>*
    *</plugin>*
    *</plugins>*
    *</oimplugins>*
    4)i register the plugin using ant -f  pluginregistration.xml register
    5)i have restartthe oim server and then i create a user using the same app instatnce in which i have create the form(ie.register),and
    request acount-->select app instance ---> add to cart
    but the last name xyz as per the java code is not reflected in the dadbase table.
    please help
    tushar palekar

  • Pre populate adapter

    Hi,
    oim v 11G
    I want to "use" the user password when provision to the DB .
    I have created a prepopulate adapter
    but then I can not seem to be able to connect this adapter to get the valuse form the user process.
    in the "data object information" - i don't see the users form (as i used to see in v9 ) so i can not perform the operation.
    any idea ?
    thanks
    s.

    Why would you need to put a pre-populate in the Data Object Manager form. Dont you put it in the Form Designer -> Pre-populate section ? ?
    I hope it should be the same in 11g as well.
    Where as if you are talking about Entity Adapter which is Event Handlers in 11G then its an altogether different process which involves:
    - Creating an xml for your plugin
    - Importing it into the MDS database using import utility
    - Registering your plugin

  • Pre populate adapter not working properly on one of the managed server

    Hi,
    We have two managed servers for OIM 10g. A load balancer has also been installed for directing the traffic on to these two servers i.e. z1 and z2. So whenever, the request is redirected to z2 server, pre populate adapters for AD and ACF2 resource provisioning fails. The same is working perfectly when the request goes to z1 server.
    We checked the below logs but didnt find any fruitful outcome.
    1. xellacf.log-- log file for ACF2
    2. xellAD.log-- log file for AD
    3. xell.log
    Please help us out. Let me know if you need any other information.
    Any inputs would be highly appreciated.
    Thanks,
    Garima

    have you uploaded jars in DB using UploadJar utility? verify same in OIMHOME_JARS under OIM schema.
    Provide the detail error log <OIM_DOMAIN>/servers/oim_server2/logs/oim_server2.log and diagnostic log as well
    --nayan                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Pre populate adapter in AD

    Hi everyone, I need to change the value of ID user, how can I change this in AD prepolulate login user, I can´t trace where it´s looking this information.
    Thanks.

    Yes I know how to create a pre-pop adapter, but How the existing pre-pop adapter can get the UserLogin , they can get , right ? So when I create the pre-pop adapter I will create a jar with the method concat(String,String) and pass the the FirstName and LastName , right ?
    I receive this error.
    08/02/27 11:40:10 java.lang.Exception: Error getting run-time variables.
    08/02/27 11:40:10       at com.thortech.xl.dataobj.util.tcAdapterMappingUtility.getRunTimeVariableMappings(Unknown Source)
    08/02/27 11:40:10       at com.thortech.xl.dataobj.rulegenerators.tcBaseRuleGenerator.getRunTimeValue(Unknown Source)
    08/02/27 11:40:10       at com.thortech.xl.dataobj.rulegenerators.adpADPREPOPULATEUSERLOGIN.implementation(adpADPREPOPULATEUSERLOGIN.java:51)
    08/02/27 11:40:10       at com.thortech.xl.dataobj.rulegenerators.tcBaseRuleGenerator.run(Unknown Source)
    08/02/27 11:40:10       at com.thortech.xl.dataobj.rulegenerators.tcAdapterExecuter.executeRuleGenerators(Unknown Source)
    08/02/27 11:40:10       at com.thortech.xl.dataobj.util.tcPrePopulateUtility.setDataFromAdapter(Unknown Source)
    08/02/27 11:40:10       at com.thortech.xl.dataobj.util.tcPrePopulateUtility.prePopulate(Unknown Source)
    08/02/27 11:40:10       at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.prepopulateProcessForm(Unknown Source)
    08/02/27 11:40:10       at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.prepopulateProcessForm(Unknown Source)
    08/02/27 11:40:10       at com.thortech.xl.ejb.beans.tcFormInstanceOperationsSession.prepopulateProcessForm(Unknown Source)
    08/02/27 11:40:10       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    08/02/27 11:40:10       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    08/02/27 11:40:10       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    08/02/27 11:40:10       at java.lang.reflect.Method.invoke(Method.java:585)
    08/02/27 11:40:10       at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
    08/02/27 11:40:10       at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
    08/02/27 11:40:10       at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
    08/02/27 11:40:10       at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
    08/02/27 11:40:10       at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:50)
    08/02/27 11:40:10       at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
    08/02/27 11:40:10       at com.evermind.server.ejb.interceptor.system.SecurityRoleInterceptor.invoke(SecurityRoleInterceptor.java:47)
    08/02/27 11:40:10       at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
    08/02/27 11:40:10       at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
    08/02/27 11:40:10       at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
    08/02/27 11:40:10       at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
    08/02/27 11:40:10       at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
    08/02/27 11:40:10       at tcFormInstanceOperations_RemoteProxy_6ocop18.prepopulateProcessForm(Unknown Source)
    08/02/27 11:40:10       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    08/02/27 11:40:10       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    08/02/27 11:40:10       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    08/02/27 11:40:10       at java.lang.reflect.Method.invoke(Method.java:585)
    08/02/27 11:40:10       at com.evermind.server.rmi.RmiMethodCall.run(RmiMethodCall.java:53)
    08/02/27 11:40:10       at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
    08/02/27 11:40:10       at java.lang.Thread.run(Thread.java:595)

  • Issue with deleting a group using Request APIs in OIM 11g R1

    Hi,
    I am facing an issue with Request Based provisioning in OIM 11g R1.
    I am currently testing a scenario where i have imported a data set for 'Modify Provisioned Resource' and am able to add a group/entitlement to an already provisioned resource by using the following code :
            RequestBeneficiaryEntityAttribute childEntityAttribute= new RequestBeneficiaryEntityAttribute();
            childEntityAttribute.setName("AD User Group Details");
            childEntityAttribute.setType(TYPE.String);
            List<RequestBeneficiaryEntityAttribute> childEntityAttributeList=new ArrayList<RequestBeneficiaryEntityAttribute>();
            RequestBeneficiaryEntityAttribute attr = new RequestBeneficiaryEntityAttribute("Group Name", <group>,                                                                       RequestBeneficiaryEntityAttribute.TYPE.String);
            childEntityAttributeList.add(attr);
            childEntityAttribute.setChildAttributes(childEntityAttributeList);
            childEntityAttribute.setAction(RequestBeneficiaryEntityAttribute.ACTION.Add);
            beneficiaryEntityAttributeList = new ArrayList<RequestBeneficiaryEntityAttribute>();   
            beneficiaryEntityAttributeList.add(childEntityAttribute);
            beneficiarytEntity.setEntityData(beneficiaryEntityAttributeList);
    This works fine for adding a group but if i try to remove a group by changing the action to Delete in the same code, the request fails. The only change made is in the following line:
    childEntityAttribute.setAction(RequestBeneficiaryEntityAttribute.ACTION.Delete);
    Could you please suggest where can this possibly be wrong.
    Thanks for your time and help

    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.

  • Creating a request type in OIM 11g R2

    Hi All,
    I came to know that the request templates have been removed from OIM 11g R2 . I have the below scenario,
    1)When an end user logs into Identity console and access his self profile through the 'My Information' link.
    2)If he tries to modify some of his attributes(say First Name) the approval policy should not get triggered and should be auto approved and committed to the database
    3)For some of the attributes(say Last Name) approval policy has to be triggered and request has to be created and wait for the approval .
    4)Now that request templates are removed , Can I create a new request type like 'Modify Custom attributes' similar to 'Modify User Profile' for this scenario to be achieved ?
    Please let me know how the above scenario is going to work in OIM 11g R2 ?
    Regards,
    Senthil.

    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 ?

Maybe you are looking for

  • Question regarding homehub and Open reach router -...

    Hi all,   I had infinity installed earlier this month and am happy with it so far. I do have a few questions regarding the service and hardware though.   I run both my BT openreach router and BT Home hub from the same power socket. The problem is, if

  • Can you log into CC on two computers on the same IP address at the same time?

    Can you log into CC on two computers on the same IP address at the same time? Because i accidentally opened both and was wondering if it will affect my membership or deny me access to CC. Thanks

  • To find missing pix -- what is iphoto file format?

    I am trying to find photos that were uploaded from a camera into a blank iphoto library (call it the Current Library). I don't know where this Current Library actually resided. When I redirected iphoto to a different library on my hard drive (call it

  • Logic Pro 9 not showing on "Purchases" at Mac App Store anymore

    I'm planning buy a new Mac, but I have Logic Pro 9.1.8, and when I open the "Purchases" (from Mac App Store) I can not find it there any more since Logic Pro X was released. How should I proceed? I don't wanna buy the new version right now, maybe lat

  • RAW Workflow sanity check

    I just upgraded from a P&S to a 40D and my current workflow has been to shoot in the RAW+JPEG mode. I am finding this workflow confusing as I now have multiple copies and if I tweek the raw file it does nothing to the side car jpeg (or does it...) I