Update process form

I want to be able to update a process form (AD User) before the user is created by using a process task instead of pre-pop.
I did a search on the forum and found this:
searchMap.put("Objects.Name", "AD User");
objresultSet = moObjectUtility.findObjects(searchMap);
long ObjectKey = objresultSet.getLongValue("Objects.Key");
objectMap.put("Objects.Object Status.Status", "Provisioned");
objectSet =(ObjectKey, objectMap);
String processInstanceKey = objectSet.getStringValue("Process Instance.Key");
I've writtent he code for this but this code above is looking for provisioned resource but I am trying to update the process form before the user gets provisioned. Is this possible? I want to modify the process form before create user is run.

Thanks to all. I create three process tasks that return results to process form, which call <process task> updated. I added the three tasks to Success response on create user. However, it worked somewhat. Some fields would work and some would not. It was almost random which ones worked and which did not.
So, the fix was to have three tasks and link them with "preceding tasks". i.e. in the third task add second task as preceding and in the second, add the first task as preceding. This work fine. The problem was that once all three got fired, OIM runs them simultaneously and there is a resource contention issue. Its basically a bug. Setting the "preceding task" fixes that issue.
My code is working now. One more thing, you have to have Get Object GUID created in task dependancy for the <process task> updated.

Similar Messages

  • Error While updating Process form data Using Scheduler

    Hi All,
    I am trying to update Process form data (ex : lastname) using a scheduled task Code. I am getting Error while updating Field.
    Code :
    HashMap<String, String> map = new HashMap<String, String>();
    map.put("UD_EBS_PF_LASTNAME", "lastname");
    formintf.setProcessFormData(instancekey, map);  //I AM GETTING AT THIS LINE
    Saying
    Thor.API.Exceptions.tcAPIException: The following required fields have not been given values:EBS IT Resource : The following required fields have not been given values:EBS IT Resource
        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.tcFormInstanceOperationsIntfEJB_h6wb8n_tcFormInstanceOperationsIntfRemoteImpl_1036_WLStub.setProcessFormDatax(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.setProcessFormDatax(Unknown Source)
        at Thor.API.Operations.tcFormInstanceOperationsIntfDelegate.setProcessFormData(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.setProcessFormData(Unknown Source)
        at com.wyndham.tasks.AssignRandomPasswordToAllUsersSchedulerTest.execute(AssignRandomPasswordToAllUsersSchedulerTest.java:182)
        at com.wyndham.tasks.AssignRandomPasswordToAllUsersSchedulerTest.main(AssignRandomPasswordToAllUsersSchedulerTest.java:63)
    Caused by: Thor.API.Exceptions.tcAPIException: The following required fields have not been given values:EBS IT Resource : The following required fields have not been given values:EBS IT Resource
        at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.setProcessFormData(tcFormInstanceOperationsBean.java:761)
        at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.setProcessFormData(tcFormInstanceOperationsBean.java:426)
        at Thor.API.Operations.tcFormInstanceOperationsIntfEJB.setProcessFormDatax(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)

    Is that possible there was the field ZDATE in your form interface/ context and now it is not? I guess some source has changed so the field in the form (binding to the not existing field) cannot be processed. Otto

  • Error updating Process Form: Same Column exist with a different variant

    Hi All,
    I have a process form of a resource with following fields :
    Name VariantType Length FieldLabel FieldType Order
    UD_EDIR_BWUSER   boolean       1          BWUser    Checkbox      25
    UD_EDIR_ISUUser    boolean       1          ISUUser    Checkbox      26
    Now, I have to changes these field from boolean to string. For that, I created a new process form version and update like this:
    1. Delete these fields first.
    2. Add two new fields:
    UD_EDIR_BWUSER String 4 BWUser Textfield 25
    UD_EDIR_ISUUser String 4 ISUUser Textfield 26
    Now, when I tried saving the form, I got following error
    Same Column exist with a different variant in current or previous form.
    I also tried creating again a new version of process form and tried updating these field instead of re-creating them but I was able to update the FieldType only ( not able to update the Variant type and length).
    If anyone know how to resolve this issue, please reply.
    Cheers,
    Sunny

    Hi Rajiv,
    Thanks for the reply. I re-created these field in a new version but gave a different name this time like this:
    UD_EDIR_SAP_BW_USER String 4 SAPBWUser TextField 25
    UD_EDIR_SAP_ISU_USER String 4 SAPISUUser TextField 26
    and it worked for me.
    Cheers,
    Sunny

  • Update process form data

    Hi,
    I am trying to update AD process form data through the OIM API. I have to clear all the telephone numbers. I am getting this error when i run it.
    varbinary is incompatible with text
    2011-06-24 10:48:31,918 ERROR [XELLERATE.SCHEDULER.TASK] Class/Method: SchedulerBaseTask/run encounter some problems: {1}
    java.lang.NullPointerException
         at com.thortech.xl.schedule.tasks.UpdateAD.execute(UpdateAD.java:116)
         at com.thortech.xl.scheduler.tasks.SchedulerBaseTask.run(Unknown Source)
         at com.thortech.xl.scheduler.core.quartz.QuartzWrapper$TaskExecutionAction.run(Unknown Source)
         at Thor.API.Security.LoginHandler.jbossLoginSession.runAs(Unknown Source)
         at com.thortech.xl.scheduler.core.quartz.QuartzWrapper.execute(Unknown Source)
         at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
    2011-06-24 10:48:31,918 ERROR [XELLERATE.SERVER] Class/Method: QuartzWrapper/run encounter some problems: Operand type clash: varbinary is incompatible with text
    com.microsoft.sqlserver.jdbc.SQLServerException: Operand type clash: varbinary is incompatible with text
    Please help
    M

    This is the code I am using..
    map.put("UD_ADUSER_TELEPHONE",rs.getString("usr_udf_telephone"));
    long pinstancekey = 215041;
    formOp.setProcessFormData(pinstancekey,map); //This line is throwing the error

  • Updating Process Form

    I want to update the Server (IT resource) field in on the SJSDS process form for all users in OIM.
    Any recommendations on the best way to acheive this?
    cheers
    Michael

    APMK, custom schedule task will be better approach.
    You'll get so many posts related to custom schedule task on the forum.
    Create custom task schedule
    How to create a new schedule task from java code

  • Target reconciliation Process Form

    Hi,
    I had done target reconciliation for lotus notes and the users got linked with OIM. I did some changes in the process form (I added CompanyName field) now when i am going target reconciliation again it is not get the companyname field in the process forms for the users. I checked the database table it contains the values for companyname. So it is not showing me the new updated process form for the users.
    Thanks & regards,

    Hi,
    I gonna tell you my trade secret.Let me understand your problem first.
    1.You created the process form and did the reconciliation and user got linked.
    2.You updated the process form and did the reconciliation again ,event got linked but process form did not get updated.
    Problem:
    See this is very old scenario that we face,atleast in my 3 years of OIM career I did faced this issue.With every provisioned resource OIM keep the information of process form in respective UD_Process form Name .Along with that it also contain the process form version so when ever you create a new version of process form it works fine for new provisioned object but OIM does not update the process form version in UD_ table for old entries. Thats why when you view the process form it will not show you the latest modified field.
    Solution:
    Every problem has solution yes I agree so what you can do to resolve the problem.First always design in a such a way that you don't need to modify the form but if you already done this mistake so this is how you can solve the problem.
    1.Take one user and provisioned it to lotus note resource.
    2.Get the usr_key of this user.
    3. select orc_key from orc where usr_key= ?? (Key that you get in step 2.
    4.select * from UD_LOTUSFORM where orc_key=?? Key that you get in step3
    5.Now you will see a field called UD_LOTUSFORM_VERSION ..See what is the value of this version.
    6.Update UD_LOTUSFORM set UD_LOTUSFORM_VERSION=?? ( Value you get in step5) WHERE 1=1 (It will update all existing entry)
    7.Run the reconciliation again.
    You are done buddy.Let me know if you have any questions.
    Regards
    Nitesh

  • Update process does not work on Tabular Form

    Hello,
    I have 2 tabular forms on one page, which are using manual update processes.
    First form is created using wizard, and therefore works perfectly.
    The update process is as follows:
    DECLARE
      lc_string VARCHAR2(4000);
    BEGIN
      FOR i IN 1..APEX_APPLICATION.G_f01.COUNT
      LOOP
         lc_string := lc_string|| '[' ||APEX_APPLICATION.G_f*03*(i) || '|' || APEX_APPLICATION.G_f*04*(i) || ']';
      END LOOP;
      --Database processing using the concatenated string here
    END;Second form is created manually, using the following code:
    SELECT apex_item.checkbox (30,
                               '#ROWNUM#',
                               'onclick="highlight_row(this,' || '#ROWNUM#'|| ')"',
                               NULL,
                               'f30_' || '#ROWNUM#'
                              ) delete_checkbox,
           CATALOG_ID,
              apex_item.hidden (31, CATALOG_ID)
           || apex_item.text (32,
                              LANG,
                              80,
                              100,
                              'style="width:100px"',
                              'f32_' || '#ROWNUM#'
           || apex_item.hidden (33, wwv_flow_item.md5 (LANG, DESCRIPTION)) LANG,
           apex_item.text (34,
                           DESCRIPTION,
                           80,
                           100,
                           'style="width:255px"',
                           'f34_' || '#ROWNUM#'
                          ) DESCRIPTION
      FROM V_CATALOGS
    UNION ALL
    SELECT     apex_item.checkbox
                              (30,
                               TO_NUMBER(9900 + LEVEL),
                               'onclick="highlight_row(this,' || '#ROWNUM#' || ')"',
                               NULL,
                               'f30_' || TO_NUMBER (9900 + LEVEL)
                              ) delete_checkbox,
               NULL,
                  apex_item.hidden (31, NULL)
               || apex_item.text (32,
                                  NULL,
                                  80,
                                  100,
                                  'style="width:100px"',
                                  'f32_' || TO_NUMBER (9900 + LEVEL)
               || apex_item.hidden (33, NULL) LANG,
               apex_item.text
                                               (34,
                                                NULL,
                                                80,
                                                100,
                                                'style="width:255px" '  ,
                                                'f34_'
                                                || TO_NUMBER (9900 + LEVEL)
                                               ) DESCRIPTION
          FROM DUAL
         WHERE :P18_TEMP = 'ADD_ROWS1'
    CONNECT BY LEVEL <= 1However, the update process does not work on this form.
    I created it using the first one as an example, but with the id's of the second form:
    DECLARE
      lc_string VARCHAR2(4000);
    BEGIN
      FOR i IN 1..APEX_APPLICATION.G_f*30*.COUNT
      LOOP
         lc_string := lc_string|| '[' ||APEX_APPLICATION.G_f*32*(i) || '|' || APEX_APPLICATION.G_f*34*(i) || ']';
      END LOOP;
      --Database processing using the concatenated string here
    END;Also, both forms are opening in a modal pop-up dialog window.
    I use a Dialog Region plug-in for that.
    Please advise, what is causing a problem with update?

    Sloger,
    if this is your tabular form
    SELECT apex_item.checkbox (30,
    ...and this is your update statement
    FOR i IN 1..APEX_APPLICATION.G_f*30*.COUNT
    ...Then you will only ever update records that have been checked. Unchecked checkboxes are not passed back in the global array. You need to have a hidden column with the ID's for the record and loop through that when you are updating/inserting. That is why the built in tabular form has a MRU and a MRD. the MRU loops through the hidden ID column. The MRD loops through the checkbox.
    Thanks,
    Tyson Jouglet

  • Error while updating Date Field on Process Form.

    Hi,
    I am using java code to pre-pop date on the process form.First I used a java code whic took java.sql.date as input and returned the same java.sql.date.But it gave an error that:java.lang.String cannot be converted to java.sql.date.......
    So I changed the java code and now it takes string as input and returns java.sql.date. This code works fine for Pre-pop adapter and the date is populated on the process form.
    But when i use the same code in a Process Task adapter to update the date, then it gives the following error:
    ERROR [ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' XELLERATE.ADAPTERS - Class/Method: tcAdpEvent/updateDataSetValuePost encounter some problems: Adapter Execution Error: updateDataObjFieldValuePost: error updating UD_OID_USR_DATE_OF_BIRTH
    ERROR [ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' XELLERATE.ADAPTERS - Class/Method: tcAdpEvent/updateDataSetValuePost encounter some problems: {1}
    Can anyone suggest any method to update date field on process form?

    Hi Abhi,
    Can you tell me how you have implemented populating an UDF based on Prepopulation of another UDF. I have a similar kind of requirement. It would be great if you share your code or relevant part of it.
    Regards,
    Sunny Ajmera

  • How to make a process form field non updatable in OIM 11G PS1

    Hello all - I have a filed in process form, which once filled should be not be updated. Could you please let me know how to achieve this?
    Should we create a process task, where in we can say 'updating this filed is not possible' ?
    I tried this. But OIM shows the filed with updated value but 'Resource History' shows status as Rejected.
    Please help. Thanks
    Manju

    The only way i would see this possible would be through an event handler if you can make it work for this form. On your pre-update, you would need to make sure to always return the original value back to the form so even if changed, it would change it back.
    -Kevin

  • Update a Process Form attribute during reconciliation

    Hi
    I wanted to updated a attribute in my process form whenever there is a reconciliation event generated for it when i run a resource reconiliation . Basically the attribute should the system time when the last reconciliation happenned ? how would i go about doing this ?
    thank

    1. Create a field on your process as a date field.You mean, the reconciliation field mapping or what?
    Or I should create a field in my resource form instead`of process?
    ***You aren't reconciling an existing date, you are populating this field after the reconciliation is performed. This will need to be on your process form because all reconiliation and provisioning actions are based on your process form.
    5. On your reconciliation insert and update task, the response code of completed, trigger your new task.Do you mean that the new task must be conditional dependent on the completion of reconciliation task?
    ***Yes. When the reconciliation task is completing, this will trigger your new task to populate the current time into your date field to show the last time the user was reconciled.
    If you are wanting to just record the time the resource itself was reconciled rather than individual users, you could create a User Defined field for your resource object and write a value within your recon code to that field. Or you could add a value onto your IT Resource and write the current time to that field.
    -Kevin

  • Update OIM field with process form fields

    Hi,
    I have configured AD as a target resource to my OIM. Now i have a requirement to update few fields of OIM , on the basis of change in the fields of process form when target recon will run. For this, as per my understanding i can use the post insert/post update adapter. I wrote the adapter code as well. But when now i am running the recon against my resource, and updating the field, it couldn't even run the adapter as nothing has been written in logs (not even the println statements mentioned in adapter code :( ). Could anyone please tell me where i am missing.

    Hi,
    I did create a task and assign it on "Event Processed" (Response) under reconciliation insert recieved and reconciliation update recieved. Now when i tried to run recon it is giving me error while processing the recon event. Error is "An error occured while processing the off lined reconciliation event. [xellerate.jms] processing reconciliation message with id <recon event id> failed" . Am i missing something.... Please help
    TIA

  • Updating the AD Process Form Using java code

    Hi,
    I am having requirement to update AD Process form OU and Groups using Scheduler.
    Cna any body provide me sample code for updating the process form?
    Thanks in advance
    Edited by: 790561 on 22/08/2011 20:03

    You need to use setProcessFormData(long ProcessInstanceKey,java.util.Map phAttributeList) in your scheduler code. Before calling this API you need to get value of ProcessInstanceKey.
    To retrieve ProcessInstanceKey , you should call getObjects()(under tcUserOperationsIntf) API, iterate through the resultset and retrieve ProcessInstanceKey.
    You can pass hashmap data similar to this
    HashMap phAttributeList= new HashMap();
    phAttributeList.put("UD_ADUSER_OU", "your-value");
    I believe the groups are available in Child Form, so you can use child form API's like updateProcessFormChildData().
    Check the below URL for updating child form API's
    Re: Child Form

  • Trigger only one process task on Process form update

    Hello,
    I'd like to trigger a single process task (a single time) when one or several attributes are updated in a process form.
    any idea how to do that?
    what I don't want to do :)
    - call the same process task on "firstname update" AND on "lastname update" => this process task would be launched twice on a single process form update/save
    thanks in advance for your help

    Create a task with the form name like such:
    UD_ADUSRLX Updated
    This task will trigger any time a value(s) are updated on the form. You will get only a single task, and not individual. But if you add this task, you don't get the option of the other tasks triggering individually.
    -Kevin

  • Process form update

    Hi Folks,
    I have a custom process form with a few fields, I have created a task for each of these fields with Task Name as '$Field_Label space Updated' to be triggered on an update of the form field. I notice that these tasks in the Process Definition are not getting triggered once the process form is updated.(by checking resource history) Is there any chance that I am missing on setting some system property?
    Thanks,
    Saiesh

    If you have followed right naming convention then it will work:
    Enabling update for provisioned user in OIM11g
    How are you changing the data in Process Form ?Are you directly doing update on Process Form through Web Console or do you have triggers like Change Field Name etc ?

  • OIM Bulk Load utility(Process Form Updates)

    Hi All,
    I am wondering whether OIM bulk laod Utitly is capable of Updating the Accounts(Targer Recon) in OIM(Updates in Process form)?... I was checking the oracle doucment and it doe not say anything about Updating the records in OIM it says of creating the accounts. Please guide me.
    Thanks in advance
    Saravani
    Edited by: 918661 on Mar 4, 2012 7:47 PM

    Don't worry. Utility support both feature
    1. Trusted recon - reconcile from trusted source(csv, databse.etc.) to OIM user profile
    2. Target recon - reconcile target account to OIM Process Form . for this you must have their coressponding user exist in OIM.
    For further details go through below doc.
    http://docs.oracle.com/cd/E14899_01/doc.9102/e14763/bulkload.htm#CHDCGGDA
    Section "15.5 Loading Account Data" will clarify your doubt
    --nayan                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

Maybe you are looking for

  • Conversion program for the open sales orders

    Hi ,      How to proceed for writing a conversion program for open sales order ?? Please share if 've any document or idea. LSMW object: 0090, Method: 0000 Business Object : BUS2032, Method : CREATEFROMDAT2, Message Type: SALESORDER_CREATEFROMDAT2 Ba

  • I'd love to get an imac but is there a way to upgrade the sound card?

    I love the new imac's.. but I would need to upgrade the sound card if I got one. I have a recording studio and i'm using a delta 1010 pci card that is compatible with macs.. I can't see how it would work with an imac.. I'm also a graphic artist and u

  • 'BAPI_GOODSMVT_CREATE' takes more time for creating material document

    Hi Experts, I m using 'BAPI_GOODSMVT_CREATE' in my custom report, it takes more time for creating Material documents. Please let me know if there is any option to overcome this issue. Thanks in advance Regards, Leo

  • DISK TOO SLOW on a POWERBOOK G4!

    Hi can someone pleeeeaasse help me quick!!! I have just spend loadsa dosh buying a midi keyboard, mic and a fast track audio device for my powerbook! I have 34gb free on the hard drive, 256mb of memory, and a 1.33ghz powerPC G4 processor. The operati

  • MacPro update Mini DisplayPort both audio and video?

    Apple confirmed to Ars that the just-updated MacBook Pros will pass both video and audio signals to an HDTV or receiver when using an miniDP to HDMI adapter. Just wondering if this is true or if anyone has tried it out yet?