OIM 11g API to retrieve old and new values

Hi
In Self Service profile, when I modify user data, OIM is triggering an approval workflow. Our requirement is to use API which should retrieve old value and new value of the attribute when the request has been raised.
We tried to use getTargetEntities() but it is retrieving only new values. Is there any other API which can do the needful?
Thanks

Use this :
HashMap<String , Serializable> eventDataMap = new HashMap<String , Serializable>();
eventDataMap.putAll(orchestration.getInterEventData());
HashMap currentUserState = new HashMap(); //HashMap that contains old values
HashMap newUserState = new HashMap(); //HashMap that contains new values
currentUserState.putAll(((User) eventDataMap.get(CURRENT_USER)).getAttributes());
newUserState.putAll(((User) eventDataMap.get(NEW_USER_STATE)).getAttributes());

Similar Messages

  • How to fetch  old  and  new value  from of a   field(non-key)  from LOGDATA

    Hello SDNers,
    i  m fecthing LOgdata  from  dbtlog table[in  our  case  the  log  is  not  getting  Updated  in CDHDR  and CDPOS table]
    i  m  using  the  same  logic  as  it  is  used  in  RSVTPROT
    but  the  problem  is
    "  IT  is  fetching  OLD  and  NEW VALUE  after  Update from same  field LOGDATA  of  dbtlog  table BUT  when i  used  same  logic  it  is  FEtching  only  OLD  VALUEs,
    CAN  U  GUYS  PLS  TELL  ME  HOW TO FECTH  OLD  VALUE  and  NEW  VALUE  of a PArticular  field(non-key field, fecthing  key  field  is  not an  issue) From LOGDATA  field  of DBTLOG.
    thx  a  lot  in advance
    Regards
    Kuldeep

    Hi,
    May be this link is useful to you.

  • How to check old and new value for a text item attached to a lov?

    Hi,
    I am new to Forms.
    I need your help in following.
    I have a form which has a text item which is attached to a LOV. I want to track what changes are being done using that form. So i want to know what was old value and what is new value.
    I can get the new value as it is there in form field. how can i know what was the old value.
    Thanks
    Prashant Pathak

    This is wrong:
    name_in(':' ||l_audit_block.field_name)
    this is right and will get you the current value of the the item:
    name_in('l_audit_block.field_name');
    Assuming the name of you block is "l_audit_block" and the name of your item is "field_name".
    Please note name_in() returns your current value for an item. In your case this may or may not be the "old" value. I define "old" value as the value it was when it was queried. If that is what you are looking for you need to use the get_item_property() call that Steve described above.
    --pat                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Review Page old and new values

    Hello everyone,
    In the review page of my custom page, along with the existing details, i also want to display the old values(default values when the page opened). I know we can do this by saving the existing values in the session variables but i was just wondering if there is any other way to do that as we have this wonderful feature of ViewObject in OAFramework.
    Thanks in advance for your help.
    PK

    Hi,
    Try the following, it might help,
    Create two ViewObject Instances(like VO1, VO2)
    When you load the page, execute both the VOs and get the existing values,
    But associate your page items to only VO2,
    After updating the values, check the values in VO1,
    This should be your existing values.
    Thanks.
    With Regards,
    Kali.

  • Get old and new values from DBTABLOG table

    Hi,
    I am developing a report to display all changes to some fields of PKHD table over a date range. CDHDR & CDPOS do not capture the changes while DBTABLOG does. But the variable key field (LOGDATA) in DBTABLOG does hold encrypted values which need to be decrypted. Is there any FM or a way out to get them ?
    Please let me know. Thanks a lot.
    Regards
    Neeraj

    Use DBLOG_READ and then work with the data like in the following sample
    * Constants (cf. SAP RSVTPTOP)
      CONSTANTS: type_i4 LIKE x031l-fieldtype VALUE 'AC',       "UF160698B
                 type_i2 LIKE x031l-fieldtype VALUE 'A8',
                 type_f  LIKE x031l-fieldtype VALUE '88'.       "UF160698E
    * First - informations from directory
            REFRESH fld_list.
            CALL FUNCTION 'GET_FIELDTAB'
              EXPORTING
                langu                     = sy-langu
                only                      = ' '
                tabname                   = 'TEVEN'
                withtext                  = 'X'
    *       IMPORTING
    *         HEADER                      =
    *         RC                        =
              TABLES
                fieldtab                  = fld_list
              EXCEPTIONS
                internal_error            = 1
                no_texts_found            = 2
                table_has_no_fields       = 3
                table_not_activ           = 4
                OTHERS                    = 5.
            LOOP AT fld_list INTO fld WHERE keyflag = 'X'.
              ADD fld-intlen TO keylen.
            ENDLOOP.
    * Then extract data log
            REFRESH obj_list.
            obj-tab = 'TEVEN'.
            INSERT obj INTO  TABLE obj_list.
            CALL FUNCTION 'DBLOG_READ'
              EXPORTING
                from_day                   = s-aedtm-low
    *           FROM_TIME                  = '000000'
                to_day                     = s-aedtm-high
    *           TO_TIME                    = '235959'
                obj_list                   = obj_list
    *         ACCESS_DATABASE            = 'X'
    *         ACCESS_ARCHIVES            = ' '
    *         AUTO_ARCH_SEL              = ' '
    *         USER_LIST                  =
              CHANGING
                log_list                   = log_list
              EXCEPTIONS
                archive_access_error       = 1
                no_archives_found          = 2
                OTHERS                     = 3.
    *   Extract data from returned tables
            LOOP AT log_list INTO log.
              LOOP AT fld_list INTO fld.
                IF fld-keyflag = 'X'.
                  ASSIGN log-logkey+fld-offset(fld-intlen)
                    TO <hexa> TYPE 'X'.
                ELSE.
                  fld-offset = fld-offset - keylen.
                  ASSIGN log-logdata+fld-offset(fld-intlen)
                    TO <hexa> TYPE 'X'.
                  fld-offset = fld-offset + keylen.
                ENDIF.
                CASE fld-inttype.
                  WHEN 's'.
                    f_type = type_i2.
                  WHEN 'I'.
                    f_type = type_i4.
                  WHEN 'F'.
                    f_type = type_f.
                ENDCASE.
                IF 'sIF' CS fld-inttype.
                  feld = <hexa>.
                  CALL FUNCTION 'DB_CONVERT_FIELD_TO_HOST'
                       EXPORTING
                            type        = f_type
                       CHANGING
                            field       = feld
                       EXCEPTIONS
                            wrong_param = 1
                            OTHERS      = 2.
                  ASSIGN feld TO <hexa> TYPE 'X'.
                ENDIF.
                ASSIGN <hexa> TO <char> TYPE 'C'.
                teven+fld-offset(fld-intlen) = <char>.
              ENDLOOP.
    *     Here structure teven is filled
            ENDLOOP.
    Regards

  • How to use audit command to track the old and new values by any DML?

    Hi,
    I want to track all the changes done by any DML. I also want to capture who did it, when it was done and where it was done.
    Or is it possible to capture the user realted details in CDC feature of Oracle 10g?
    Which will be the best possible solution?

    You can Capture DML statements fired on a database by the following way, too.
    satyaki>
    satyaki>select * from v$version;
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
    PL/SQL Release 10.2.0.3.0 - Production
    CORE    10.2.0.3.0      Production
    TNS for 32-bit Windows: Version 10.2.0.3.0 - Production
    NLSRTL Version 10.2.0.3.0 - Production
    Elapsed: 00:00:00.22
    satyaki>
    satyaki>AUDIT ALL BY SCOTT BY ACCESS;
    Audit succeeded.
    Elapsed: 00:00:01.80
    satyaki>
    satyaki>Regards.
    Satyaki De.

  • :OLD and :NEW values comparision in OAF

    Hi All,
    I have a requirement in which i have to compare some fields whether they are updated or not.
    If any update is done i have to perform some action.
    Is there a scope in OAF to capture whether the field is updated or not.
    Regards,
    Krishna

    Hi,
    For that, you can create global variables for each field on which u want to perform the check.
    Then assign them their current values in PR method.
    Now wherever u want to put the logic, just get current values of those fields and compare them with global variables.
    --Sushant                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Fetching old and New Data in HRMS for 'Update' Transactions

    Hi All,
    I need to find out the old and new values for a person_id from HRMS tables (Per_all_people,Address,contacts etc) based on Person Id. Do we have any Standard Script or has someone prepared such script and can share with me. I am not expecting the Corrected records to be fetched as it overrides the same line but atleast for such records which comes under 'Update'.
    For Example, If for Perso_id 123, the Telephone# was 8888 and then it is updated to 9999. So my query Should return somethign like:
    Information From To Effective Date
    Telephone 8888 9999 28-Nov-2011
    Note: Can't use any triggers.
    Thanks

    Hi,
    You need to include a new keyfigure in the cube and map with both the new and old compcodes and the write a field routine with the logic that meets your requirement by passing the values of  PSPNR into the internal table and get the output for the keyfigure value. Also you use if else condition as per the requirement.
    Hope this helps...
    Rgs,
    Ravikanth.

  • Error while creating authorisation policy using OIM 11g API

    Hi,
    We have a requirement to create ‘Authorization Policies’ (assign Data Constraints, Permissions & Assignments) using OIM 11g API’s.  I am using ‘oracle.iam.authzpolicydefn.api.PolicyDefinitionService & oracle.iam.authzpolicydefn.vo.AuthzPolicy’.  But when I am trying to attach Entity/Feature (User Management) to authorisation policy, it is throwing exception.  Below is the code snippet which I am trying to implement.
    Line1: PolicyDefinitionService policyService = oimClient.getService(PolicyDefinitionService.class);
    Line2: AuthzPolicy authPolicy = new AuthzPolicy();
    Line3: authPolicy.setName("Test Authz Policy");
    Line4: authPolicy.setDisplayName("Test Authz Policy Dsp Name");
    Line5: authPolicy.setDescription("Test Authz Policy Description");
    Line6: Feature feature = oimClient.getService(Feature.class);
    Line7: Action featureAction = feature.getAction(FeatureManagerConstants.Features.USER_MGMT.getId());
    Line8: List<Action> actions = new ArrayList<Action>();
    Line9: actions.add(featureAction);
    Line10: authPolicy.setActions(actions);
    Line11: policyService.createPolicy(authPolicy);
    Exception: oracle.iam.platform.utils.NoSuchServiceException: java.lang.ClassNotFoundException: oracle.iam.authzpolicydefn.api.FeatureDelegate
    The above exception is throwing at Line6.
    Let me know if anyone implemented.
    - Kalyan Mutya

    If you are using JDeveloper , can you able to get class after giving "." .If yes no than it is the problem with the jar file you are using .Check whether you can able to import oracle.iam.authzpolicydefn.api.Feature.
    Thanks ,
    Animesh anand

  • Difference when using old and new PCA datasources

    Hello experts,
    We have implemented the new PCA datasources provided by business content version 3.3. We have built a new infocube (ZPCA_C01) as we were not concerned about the appropriate performance of these new datasources 0EC_PCA_3 and 0EC_PCA_4.
    After loading the new cube (ZPCA_C01) with the new datasources 0EC_PCA_3 and 4, we made a comparison to the content of the old cube 0PCA_C01, that was loaded with 0EC_PCA_1.
    For thesame period (2005.001-002) there is a difference between the contents of the cubes. When checking the results I found that this may be caused by the fact, that 0EC_PCA_4 does not populate "Total credit postings" and "Total debit postings" fields in the new cube, however, we have a couple of records in table GLPCA, where ACTIV = 'PRC4', and that have a corresponding record in GLPCT, where there is a figure in
    TSL02 field. It results in the fact that>
    - 0EC_PCA_1 extracts the figure from GLPCT for Posting Period 2,
    - 0EC_PCA_4 does not extract the same figure from GLPCA.
    Can you please help me with the above problem? Do you know how Credit and Debit figures get to BW from GLPCA, where ACTIV='PRC4'?
    Thanks,
    Csaba

    user10871298 wrote:
    Hi
    I am exeuting a trigger and while retrieving a date field from it using :OLD and :NEW variables, it leaves the timestamp part.
    for example,the actual value for start_date field in the table is '10/12/2005 7:04:25 PM', but when I use :NEW.start_date , it returns only '10/12/2005' .
    How to make it return the timestamp also?
    Thanks.How are you determining that it's missing the time component from it?
    If it's a DATE datatype then it will have both date and time components. If you take that and store it in a DATE datatype column then that too will store the date and time components. If you then go and view that data, it will have both date and time components unless you have your local settings (NLS settings etc) set so that dates are displayed without the time portion. That doesn't mean the data is not there, but that you are not displaying it when you query it.

  • T.code FF7A: how to see old and NEW open items?

    Hi All,
    I've filled the "Cash Managemeng Group" in the master data of a Customer.
    The report Cash Manag.& Forecast doesn't update its old open line Items.
    Only the documents successive to the insertion of the "Cash Managemeng Group" in the master data are updated in the report.
    Could anyone tell how to obtain all the items (old and new) in the report?
    Thanks
    Gandalf

    There are a couple options depending on the additional details of your situation....
    Within t-code FDFD, there is a button labeled Data Setup.  This button is intended for use when cash management (CM) is activated for an existing company code and CM needs to be updated with transactions created prior to the activation.  It deletes all data in cash management for the Co.Cd. and then builds the CM data for all GL, customer and vendor accounts.  There are also options to update CM for other areas (Sales, Procurement, Treasury, etc.)
    Also within t-code FDFD, there is a button labeled Correct Data.  This button can be used instead of the Data Setup button, if the CM data for a particular area needs to be corrected.  This function has the following options:  All GL accounts, All GL accounts with open items, All GL accounts w/o open items (non-open item managed accounts), All Customers/Vendors, All Customers, All Vendors.
    It's best to run these functions when transactions are not being created on the system.
    Regards,
    Shannon

  • Regarding passport registration issues, I need to have a letter from you including both the old and new imei numbers. Could you please send me an email mentioning that I have changed the phones with the given imei numbers?

    Regarding passport registration issues, I need to have a letter from you including both the old and new imei numbers. Could you please send me an email mentioning that I have changed the phones with the given imei numbers?

    You're not addressing Apple here. This is a user-to-user technical support forum. If you want to contact Apple, use the Contact Us link at the bottom right of every page for information on how to do so.
    Best of luck.

  • Please help me to merge two places.sqlite to get my old and New history at the same time, every time i rename my two places.sqlite to see my old and new history

    every time i rename my new places.sqlite to see my old history and come back rename old places.sqlite to see my new history, i tired and i found No Way to merge two places.sqlite :( but it's must be found this way for The PPL to see their old and new history :(
    Thank You all in Advance

    You can't merge history otherwise then using Sync to store the history and bookmarks of one places.sqlite on the Sync server and then disconnect.<br />
    Copy the second places.sqlite file to your Firefox profile folder with Firefox closed.
    Then setup Sync once again using that account and merge the content on the Sync server with your computer.
    * Merge this device's data with my Sync data

  • I accidently created a new apple account on my new phone, How do I merge my old and new accounts

    I had an old account but had lost access to the email. In frustration I created a new account to use with iTunes on windows. Now history repeats itself and I've a new iPhone 4 that I want to load with data from both old and new accounts. Do I need to just go to the Genius bar next time I'm in town or is there some way to log into each account, back up the data and merge to the new account?

    Actually not trying to merge the accounts, but back up the DATA i have stored in those accounts. Once I've pulled the many songs I purchased under the old account I'll burn them to something and delete the old account... and I think I've just answered my own question.
    i.e. Don't try to merge anything, just salvage music and other data (contacts, notes)

  • Error : Old and new exceptions cannot be used at the same time.

    HI ALL,
    i build a new exception class with message class and i want to replace the
    old exception that i had in the method ,what i did is delete the exception from the method
    signature and add the exception class .
    the problem is that when i try to activate the method i get error :
    Old and new exceptions cannot be used at the same time.
    CALL FUNCTION 'CALCULATE_HASH_FOR_CHAR'
          EXPORTING
            alg            = 'MD5'
            data           = iv_iss
          IMPORTING
            hash           = lv_issu
          EXCEPTIONS
            unknown_alg    = 1
            param_error    = 2
            internal_error = 3
            OTHERS         = 4.
        IF sy-subrc <> 0.
          RAISE EXCEPTION TYPE cx_user_mng EXPORTING
          textid = cx_user_mng=>wrong_isrs.
        ENDIF.
    I want to use the new exception class ,
    how can i avoid this error ?
    Best Regards
    Edited by: Joy Stpr on Jul 22, 2009 2:56 PM
    Edited by: Joy Stpr on Jul 22, 2009 3:16 PM

    Hi Joy,
    Check this link.
    [Old and New Exceptions Cannot be used at same time|Urgent problem, give me a hand;
    Old and new exceptions cannot be used the same time, what does this mean???
    Regards,
    Lakshman.

Maybe you are looking for