OIM API Data Object Manager Functionality

Hi all,
I am working on creating a script for a client that will automate attaching handlers to data objects. In the design console this action can be performed on the Development Tools > Business Rule Definition > Data Object Manager screen. Does anyone know where in the API I can perform this operation?
Regards,
Luke

After more investigation I have discovered that the DVT table in the oim schema stores the information about the event handlers that have been attached to a data object. I hope this helps shed more light on the situation. If anyone has any suggestions about where I can look for the API information please let me know. I have already looked through the java docs here:
http://otndnld.oracle.co.jp/document/products/id_mgmt/idm_903/doc_cd/javadocs/operations/index.html

Similar Messages

  • How to move multiple decision tables values into results data object

    Hi Carsten and other experts,
    I am building a BRF+ function and have a question, I would probably try to give an example to better explain the issue.
    1. Function Signature
    Context elements:  C1, C2, C3
    2. Ruleset has two decision tables DT1 and DT2.
    DT1 take C1, C2, C3 as inputs to provide C4 and C5.
    DT2 takes C5 takes as inputs to provide C6.
    What should be results data object for function to get C4,C5 and C6 as Function Output parameters?
    I have tried different combination of structures and table and couldn't figure out how it behaves.
    Thank you
    Kris

    The function gets a result structure with components C4, C5, C6.
    In a ruleset assigned to the function you have a rules that calls the two decision tables DT1/2.
    Create a structure for DT1 with C4 and C5 as components. Make the structure the result of your decision table.
    DT2 has C6 as a result.

  • OIM API - how do you get a tcUtilityFactory in an Entity Adapter?

    How does one get a tcUtilityFactory in an Entity Adapter? I thought I could map it as a parameter and pass it it as a Database Reference object, but when I go to the Mappings in Data Object Manager, the only possibilities for mappings are Entity Fields (USR_*)
    I know in a scheduled class you can do something like getDatabase(), does that exist if you extend a tcBaseEvent?

    First, I was able to resolve it by using getDatabase(), but to address what you guys are saying...
    Yes, I can create a a variable in my adapter of type Object and map it as you describe, that's all fine. But if my adapter is an Entity Adapter then, when you want to use it you have to:
    1. Go to Development Tools -> Business Rule Def -> Data Object Manager
    2. Lookup the Users form
    3. Assign the adapter to Pre-Insert (or whatever)
    4. MAP IT... this is where what i'm saying won't work... you cannot MAP to the variable you defined when you created the adapter. You have no choices there for Database References... the only choices you have are User fields.. look for yourselves.

  • Transaction Management - OIM API

    We wanted to know how to handle transaction from OIMClient, when we make OIM API call.
    eg:
    from a java client, we invoke create organization and provision resource to that organization.
    i.e we end up calling two OIM api calls
    1)
        organizationManager.create(organizationObj);
    2)
    tcOrganizationOperationsIntf.provisionObject(orgKey,resourceKey);
    Now, if 2nd one fails, then transaction should be rolled back and organization create should be rolled back. we wanted single unit of work to be achieved.
    how can this be achieved?
    how do we control transaction from OIMClient/API?
    public String createOrganization(OrganizationVO ovo) {
      String result = "";
      OrganizationManager omgr = null; // OIMClient API
      Organization org = null; // OIMClient API
      try { 
      omgr=ULMServiceLocator.getInstance().getOrganizationManager();
      org = new Organization();
      org.setAttribute("Organization Name", ovo.getOrgName());
      org.setAttribute("Organization Customer Type", ovo.getOrgType());
      result = omgr.create(org);
      tcUtilityFactory ioutilityFactory = ULMServiceLocator.getInstance().getcUtilityFactory();
      //TODO
      tcOrganizationOperationsIntf utilityFactory1 = (tcOrganizationOperationsIntf) ioutilityFactory
      .getUtility("Thor.API.Operations.tcOrganizationOperationsIntf");
      long l1 = utilityFactory1.provisionObject(Long.parseLong(result),
      123l);
      } catch (oracle.jrf.UnknownPlatformException e) {
      e.printStackTrace();
      } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      return result;

    Hi Abhay,
    <b>If there is another way to add a record to Main table and Lookup/Qualified/Hierarchy table simultaneously then there is no need of Transaction.</b>
    There are no direct methods currently(as of MDM 5.5SP3) available in MDM API.
    You have to build your own logic to implement.
    Regarding the Transaction management, I guess you are talking aboout two phase commit scenarios. I would say you can achieve this using EJB's in which u write the business logic (In this case the MDM API code).
    For Example:
    Adding a record to Main table,
    Let say 2 fields
    1. Free text field.
    Its straight forward method, use A2iFiled object and assign some value to it.
    2. Lookup field.
    For this.
    First get the Record id for the value, which you are trying to add, from the lookup table.
    If the lookup table does not find the value in the table, it return zero or some negative value(which I am not sure).
    Based on the return value you can add the value into the lookup table and then into the main table.
    Just putting a sample scenario. Hope this helps.
    Thanks and regards
    Subbu

  • 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

  • BPM Process Data Object vs Managed Bean

    I need to store an ID which is the primary key of a record in a database in my BPM process so that I can use that to set the bind variable on my view object query. Is it better to store this ID in a process data object or in a managed bean and why is one better than the other?

    I suggest to do the other way.
    Store the BPM Process Instance Id in the Database when you create data in the table.
    Pass this Instance Id to the VO query parameters.
    You can create a page binding of this instance Id from the Data Controls
    I am assuming there is a 1-1 relation between your BPM Process and Database Row.

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

  • Data Integrity Manager & Synchronize Objects

    Hi there,
    I have 2 questions regading data integrity and synchronization. If any of you can help me out, I would really appreciate it.
    1) Synchronize Objects (R3AS4): Is this only used to sync the customizing objects or can it be used to sync master data objects as well? When I run this transaction, I get the message tat "Synchronization Ware not activated". Do any of you know how to activate this?
    2) Data Integrity Manager: How do I choose betweeen a header level comparison and detail comparison. When I try to run it , nothing seems to happen, and I just get the message "0 objects are equal" and "0 objects are not equal" when I run it. I am just using the DIMA wizard to start the comparison. Do any of you have the "Data Integrity Manager Cookbook"? If so, can you please send ot to me?
    Thanks in advance
    Max

    Hello Max,
    Here are the steps that I just did in my system:
    - transaction SDIMA
    - New DIMa Instance wizard
    - name = customer / object = customer
    - RFC destination = <R/3> / filter mode = All filter / flag to start compare on wizard completion
    - no filter settings
    - complete
    So the compare start as soon as the wizard is finished.
    You can see the status of the job in the right of the screen. (it takes some time for BP). When the status is green, the job is finished.
    Maybe you will have the message "0 objects are equal, 0 objects are not equal" but you should also have just above a message like "421 object(s) exist in both systems".
    I don't think that the fact that you are not sending BP back to R/3 is a problem to use DIMA.
    Hope this will help you.
    Regards,
    Frédéric

  • How to retrieve the BRF+  function result data object of type table in ABAP

    Hi,
    I am calling a BRF+ function from Abap....If the result data object of the function is element then i am able to get the value back in ABAP...Suppose the result data object of the function is of table type,I couldnt retrieve the value....Can you please help me how to retrieve the table data object value of the function from abap....
    Regards,
    Dheepak.

    Hi,
    Thanks carsten and Tiwari for your reply...
    Tiwari,
    I understand that if i know the data type of the result data object which i am going to get i can declare it my ABAP program and get the values....But i am developing a generic program which calls the various BRF+ functions based on the function id...So i am not aware what is the data type of the result data object....so is there a any way to handle this situation...Please advice...
    Carsten,
    I used the GET_DATA_OBJECT_STRUCTURE method of class CL_FDT_FUNCTION_PROCESS to get the data object structure...i am able to get whether it is an element or structure or internal table...
    But is there any way to get the data type of the object...For example if it is going to be an element of type BELNR_D,is it possible to get the BELNR_D value in my program...Please advice...
    Thanks,
    Dheepak.

  • ORA-10561: block type 'TRANSACTION MANAGED DATA BLOCK', data object# 237

    Hello,
    I encountered ORA-10561 while I was recovering my DB.
    Problem Background :-
    I took a hotbakup of my DB running in Windows, I edited the Pfile and recreated the control file
    I was able to succesfully mount the DB
    The I gave the below command to apply the redologs and recover the DB
    And the errors followed as mentioned.
    The HOTBACKUP was copied and restored using a USB-PENdrive. I suspect that the datafiles and / or ARCHIVE LOGS would have had some format issues due to O/S {WINXP ---> RHEL5}
    If this is the case ? then I would like to know how to convert the format of the files(Datafiles and or Redologs)
    into acceptable format
    >
    SQL> recover database until time '2010-03-15:18:08:05' using backup controlfile;
    ORA-00279: change 3447582 generated at 03/15/2010 17:41:42 needed for thread 1
    ORA-00289: suggestion : /home/oracle/NEW/ARCHIVE/ARC0000000144_0706577643.0001
    ORA-00280: change 3447582 for thread 1 is in sequence #144
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    /home/oracle/NEW/ARCHIVE/ARC00144_0706577643.001
    ORA-00283: recovery session canceled due to errors
    ORA-10562: Error occurred while applying redo to data block (file# 1, block#
    1658)
    ORA-10564: tablespace SYSTEM
    ORA-01110: data file 1: '/home/oracle/NEW/oradata/O1_MF_SYSTEM_5M9ZKSSW_.DBF'
    ORA-10561: block type 'TRANSACTION MANAGED DATA BLOCK', data object# 237
    ORA-00600: internal error code, arguments: [4502], [0], [], [], [], [], [], []
    >
    Thanks in advance.
    Regards,
    Valli

    You need to give much more information:
    What version of Oracle? 10gR2 is not a version, 10.2.0.1 is a version.
    What version of Windows, exactly? What version of linux?
    ORA-600 means you need to talk to Oracle support. There is an ora-600 lookup tool, which basically searches the knowledge base (for ora-600[4502] in your case, which brings up a bunch of really, really, really old docs).
    How exactly did you take the "hot backup?" There are a number of ways to do things with that name, some of which are just plain wrong.
    How exactly did you get the backup from one machine to another? Which exact commands did you use to copy the files to the usb and from the usb? Did you do it more than once?
    Why are you using the backup controlfile syntax? There are valid reasons, and invalid reasons to do that.
    What exactly did you change in the pfile?
    What does the alert log say about all this?

  • How to Create Resource Object in OIM through SQL queries or OIM APIs

    Hello,
    I have to create few (100) resource Objects in OIM. I was creating manually through Design console one by one. In future we might need to create many more Resource Objects .It takes lot of time if we do it through Manually.
    Is there any possiblity we can create Resource Objects through SQL query or OIM APIs ???
    Thanks!!

    Yes. I do it all the time.
    If you are using 11G 11.1.1.3
    Go here
    http://fredforester.org/code/xmlstarters/
    Download the files.
    RESCFORM.xml is an example resource built from the template
    buildtemplate.sh is a shell script that creates a resource from the template
    index.php - you dont need this
    templateresource.xml - this is the template resource. it was created by building a simple resource with all its basic tasks and components then editing it and renaming things so I can find them with sed
    to create Resource C you would
    ./buildtemplate.sh RESCFORM "Resc Resource" "Resc Process"
    you would end up with a file called RESCFORM.xml where when imported would have
    UD_RESCFORM
    Resc Resource Resouce Defintion
    Resc Process Process Defition with basic tasks pointing to a dummy adapter.
    You can optionally create your own prepop so it will get assigned to the form when you import.
    Good luck

  • LabVIEW MilliSecs support manager function and Tick Count block diagram object

    Is the output of the support manager function MilliSecs (used in a CIN) directly comparable with the time returned by the Tick Count (ms) block diagram object? i.e. if they have the same value then it is the 'same' time allowing for OS specific time resolution

    > Is the output of the support manager function MilliSecs (used in a
    > CIN) directly comparable with the time returned by the Tick Count (ms)
    > block diagram object? i.e. if they have the same value then it is the
    > 'same' time allowing for OS specific time resolution
    The LV diagram node is built upon the MilliSecs() function, which is
    built upon various OS specific functions. It is safe to treat them as
    though they are the same function and represent the same clock.
    Greg McKaskle

  • Disabling resources via OIM API. Which appKey?

    Hi gurus!
    I'm developing my own scheduler tasks that use the OIM API to manage users and their resources. I'm working with OIM version 9.0.3
    One of these tasks has to disable a provisioned resource for an user, by using the tcUserOperationsIntf.enableAppForUser() method. This method has two parameters: the user key and the app key. So, before the invokation, I have to find them.
    I know how to get the user key, but I don't know which object key must I choose between the OBI_KEY, ORC_KEY and OIU_KEY.
    I've tried to do it with obi_key and oiu_key, and sometimes works with obi_key and sometimes with oiu_key. What is the difference between these two keys?
    This is my code:
         tcResultSet users = findUser(userLogin); //this method uses the tcUserOperationsIntf.findUsers() api method
         if (users != null) {
    tcResultSet resources = findResource("resource_name"); // this method uses the tcObjectOperationsIntf.findProvisionableObjects() api method
    long userKey = users.getLongValue("Users.Key");
    long resourceKey = resources.getLongValue("Objects.Key");
         tcResultSet resource = findResourceByUser(userKey, resourceKey, "Objects.Key"); //this method uses the tcUserOperationsIntf.getObjects() api method
    if (resource != null) {
    long obiKey = resource .getLongValue("Object Instance.Key");
    String status = resource .getStringValue("Objects.Object Status.Status");
    long oiuKey = recurso.getLongValue("Users-Object Instance For User.Key");
    if ("Disabled".equals(status)) {
    userUtil.enableAppForUser(userKey, oiuKey); //userUtil is an instance of tcUserOperationsIntf
    Edited by: bucle on 25-nov-2008 4:49

    What these are is roughly explained in the API Usage Guide for Meta Data mapping.
    OBI = Object Instance : There are lots of object instances including users.
    OIU = Object Instance for User : These are the object instances that actually belong to a user, for example a provisioned resource.
    You want the OIU which is returned by the getObjects method as the first value.
    Edited by: user809225 on 25-Nov-2008 14:09

  • How to get year,month,date from a Date object?

    thanks

    The getTime() method will return the number of milliseconds since January 1, 1970, 00:00:00 GMT. You can then write a number of functions to calculate the date from this.
    The toString() function returns a string with the current value of the object - i.e 2002-10-17 (it's unusual formatting (YYYY-MM-DD) is useful when validating an input in real time, though beyond this, I've no idea why they put it this way around). You can then use string function substirng() to break this down into parts.
    i.e. if your Date object was called today:
    String DD = today.toString().substring()(8)
    String MM = today.toString().substring()(5,2)
    String YYYY = today.toString().substring()(0,4)
    There are other methods (see API) - but these have been deprecated - that means, although they can be used, they are not recomended.
    There is also a Calendar object, though this seems to have the same problems.
    Hope this helps :)

  • Object Manager calls: do they use database or search?

    I am at a customer undergoing a 4.5 to 6.1 upgrade. Part of the upgrade is writing an app to consolidate our ~14,000 web services to a base set. I am using .NET and the remote APIs to do this.
    My question is, do ObjectManager calls make direct calls to the database or do they use the search index? If it uses search, then I would need to wait for it to build, before running the app, which of course would take hours to build.
    Spy tells me that they are database calls, but I wanted to get confirmation of that.
    Thanks,
    Daryl Vogan

    If you're using the IDK, the IDK function you use isn't making the call, but the existing layers of functionality does.
    IDK -> http -> portal -> server api -> db
    and vice versa back.
    Search index is not used in the Object Manager.

Maybe you are looking for