Event message updates wrong event handler

EM Gurus.
I have a Strange problem that I'm trying to debug right now.
I'm sending an event message to inactivate an event handler.  The event handler is not updated.
When I look in log SLG1 I see that a different event handler with a different event was updated!!
I repeat the same process 4 times and each time I look in SLG1 a different Event Handler and Event Message
can be seen.
On my 5th attempt my message posts correctly.
I'm guessing there must be some bad or old data that has the same guid and each time I send a message it clears
the bad/old data.
This probably helps explain a similar problem I have seen where the Expected Event Monitor did not update as expected.
Has anybody else seen this behaviour? 
Cheers.
Zenon.

Problem solved.
A locally developed Z program was not updating using the event handler tracking id correctly.

Similar Messages

  • How to update 1 Event Handler from different SAP systems?

    Hi experts.
    I created an Event Handler via SAP 4.7 Purchase Order.
    I now need to update this same Event Handler with a control parameter from SAP 6.0.
    I was surprised to see that when I updated the Purchase Order in 6.0, EM created a new Event Handler!
    Guess I'm missing something obvious...
    Thanks.
    Zenon.

    Hello Berthold, Steffen,
    Yes it's the same PO in 4.7 and 6.0.  We implemented (upgraded) the ERP system to 6.0.  The Event Handler was orginally created from 4.7, but now we need to update it from 6.0.
    So the Event Handler (tracking id, control parms, EE etc)  can only be updated from the logical system the Eh was created in (4.7), and I can only send Event Messages (Events) from 6.0.  Correct?
    Any thought about how to approach this situation and any future upgrades?  Maybe I need to write a conversion program...
    Thanks.
    Zenon.

  • Invoice update in event handler

    Hi,
    I am executing standard procurement visibility scenario where the event handler is getting updated for ASN, GR but after I create an invoice in Tcode-MIRO , the event handler is not getting updated.
    As per the setting the invoice should happen after 30 days of GR but currently I have executed GR and MIRO transaction on the same day. Is that the reason why event handler is not getting updated for invoice verification.
    Secondly there is also no event handler created whenenevr I am creating an unexpected event like PO qtn change.
    Kindly advise.

    Hi Indraneel.
    Did you get a fix for this?
    Is the event message being sent via the extractor functions?   Do you see any details in the EM logs?
    Regards.
    Zenon

  • How to show a message in a form 'PL/SQL Button Event Handler'

    We need validate the sal of an employee, and if it is bigger the value musts
    not be inserted.
    We trying a code like the one shown in the note 134312.1 'HOW TO PASS A
    PARAMETER FROM A PORTAL FORM TO A STORED PROCEDURE' and it works in the insert event of the insert button (using 'PL/SQL Button Event Handler') and it works, but we need to show a message that says the data wasn't inserted. How can we do this?
    The code we used is:
    declare
    v_deptno scott.emp.deptno%type;
    v_empno scott.emp.empno%type;
    v_sal scott.emp.sal%type;
    mySal scott.emp.sal%type;
    v_string varchar2(256);
    blk varchar2(10):='DEFAULT';
    begin
    select sal into mySal from scott.emp where empno=7369;
    v_deptno:=p_session.get_value_as_number(p_block_name=>blk,
    p_attribute_name=>'A_DEPTNO');
    v_empno:=p_session.get_value_as_number(p_block_name=>blk,
    p_attribute_name=>'A_EMPNO');
    v_sal:=p_session.get_value_as_number(p_block_name=>blk,
    p_attribute_name=>'A_SAL');
    v_string:='You just inserted empno: '||to_char(v_empno) ||'to deptno ->
    '||to_char(v_deptno);
    if mySal < v_sal then
    doInsert;
    else
    -- We want to display a message here, when mySal > v_sal
    end if;
    end;
    ----------------------------------

    I did something similar but wasn't using a stored procedure. Couldn't you set a flag variable once you know you're not doing the insert and in the "before displaying the form" section put an IF to check if your flag was set, and if so do an HTP.Print('You are overpaid buddy!');
    Then just reset your flag.

  • Event Handling for messages

    I would like to know how to handle events for messages i maintained in zmesg01.
    messages are follow:    when gv_spfli is initial
                                 "No such flight available.
                                when  gv_scarr is initial.
                                  "Flight name not available          with help of raise event ?
    pls suggest.
    *       CLASS lcl_mytestclass DEFINITION
    class lcl_mytestclass definition.
    public section.
       data: gt_spfli type table of spfli initial size 20,
               gt_scarr type table of scarr initial size 20.
       methods: get_data.
       events: data_not_found.
    endclass.                    "lcl_mytestclass DEFINITION
    *       CLASS lcl_mytestclass IMPLEMENTATION
    class lcl_mytestclass implementation.
    method: get_data.
       select * from spfli into table gt_spfli.
       if ( sy-subrc <> 0 ).
         raise event data_not_found.
         endif.
    select * from scarr into gt_scarr
    for all entries in gt_flight where  carrname = gt_spfli-carrname.
    if sy-subrc  <> 0.
    " How to call event for flight_name_not_found ?"
    raise event flight_name_not_found.
      endmethod.                    "get_data
      endclass.                    "lcl_mytestclass IMPLEMENTATION
    *       CLASS handler DEFINITION
    class handler definition.
    public section.
       methods handle_event
               for event data_not_found of lcl_mytestclass.
    endclass.                    "handler DEFINITION
    *       CLASS handler IMPLEMENTATION
    class handler implementation.
    method handle_event.
       write: / 'Data not found'.
    endmethod.                    "handle_excess
    endclass.                    "handler IMPLEMENTATION
    data: oref type ref to lcl_mytestclass,
         h1   type ref to handler.
    start-of-selection.
    create object: oref, h1.
    set handler h1->handle_event for all instances.
    call method oref->get_data.
    Thanks in advance.
    Anee.

    Hello Anee
    Events are not used for this kind of message handling.
    If you want to collect all messages then use a message handler (see sample report ZUS_SDN_ABAP_OO_MSG_HANDLING ).
    Alternatively, you may define an exception class and raise a class-based exception which contains the detailed error message.
    The following sample report is based on the more elaborate Wiki posting
    [Message Handling - Finding the Needle in the Haystack|https://wiki.sdn.sap.com/wiki/display/profile/2007/07/09/MessageHandling-FindingtheNeedleintheHaystack]
    *& Report  ZUS_SDN_ABAP_OO_MSG_HANDLING
    *& Thread: Event Handling for messages
    *& <a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="1052131"></a>
    REPORT  zus_sdn_abap_oo_msg_handling.
    TYPE-POOLS: abap.
    *       CLASS lcl_mytestclass DEFINITION
    CLASS lcl_mytestclass DEFINITION.
      PUBLIC SECTION.
        DATA: gt_spfli TYPE TABLE OF spfli INITIAL SIZE 20,
                gt_scarr TYPE TABLE OF scarr INITIAL SIZE 20.
        METHODS: constructor.
        METHODS: get_data
                       IMPORTING
                     value(id_carrid) TYPE s_carr_id.
        METHODS: has_messages
                   RETURNING value(rd_result)  TYPE abap_bool.
        METHODS: display_messages.
        EVENTS: data_not_found.
      PROTECTED SECTION.
        DATA: mo_msglist    TYPE REF TO if_reca_message_list.
    ENDCLASS.                    "lcl_mytestclass DEFINITION
    *       CLASS lcl_mytestclass IMPLEMENTATION
    CLASS lcl_mytestclass IMPLEMENTATION.
      METHOD constructor.
        me->mo_msglist = cf_reca_message_list=>create( ).
      ENDMETHOD.                    "constructor
      METHOD has_messages.
        IF ( me->mo_msglist->is_empty( ) = abap_false ).
          rd_result = abap_true.
        ENDIF.
      ENDMETHOD.                    "has_messages
      METHOD display_messages.
    * define local data
        DATA:
          ld_handle           TYPE balloghndl,
          lt_log_handles      TYPE bal_t_logh,
          ls_profile          TYPE bal_s_prof.
        " Get log handle of collected message list
        ld_handle = me->mo_msglist->get_handle( ).
        APPEND ld_handle TO lt_log_handles.
    *   get a display profile which describes how to display messages
        CALL FUNCTION 'BAL_DSP_PROFILE_DETLEVEL_GET'
          IMPORTING
            e_s_display_profile = ls_profile.  " tree & ALV List
    *   set report to allow saving of variants
        ls_profile-disvariant-report = sy-repid.
    *     when you use also other ALV lists in your report,
    *     please specify a handle to distinguish between the display
    *     variants of these different lists, e.g:
        ls_profile-disvariant-handle = 'LOG'.
        CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
          EXPORTING
            i_s_display_profile          = ls_profile
            i_t_log_handle               = lt_log_handles
    *       I_T_MSG_HANDLE               =
    *       I_S_LOG_FILTER               =
    *       I_S_MSG_FILTER               =
    *       I_T_LOG_CONTEXT_FILTER       =
    *       I_T_MSG_CONTEXT_FILTER       =
    *       I_AMODAL                     = ' '
    *     IMPORTING
    *       E_S_EXIT_COMMAND             =
          EXCEPTIONS
            profile_inconsistent         = 1
            internal_error               = 2
            no_data_available            = 3
            no_authority                 = 4
            OTHERS                       = 5.
        IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDMETHOD.                    "display_messages
      METHOD: get_data.
        SELECT * FROM spfli INTO TABLE gt_spfli
          WHERE ( carrid = id_carrid ).
        IF ( sy-subrc NE 0 ).
    **      RAISE EVENT data_not_found.
          IF 1 = 2. MESSAGE e154(bc_datamodel_service). ENDIF.
    *   Flight not found (table SFLIGHT)
          CALL METHOD me->mo_msglist->add
            EXPORTING
    *          is_message   =
              id_msgty     = 'E'
              id_msgid     = 'BC_DATAMODEL_SERVICE'
              id_msgno     = '154'
    *          id_msgv1     =
    *          id_msgv2     =
    *          id_msgv3     =
    *          id_msgv4     =
              id_detlevel  = '1'
    *        IMPORTING
    *          es_message   =
        ENDIF.
        IF ( gt_spfli IS INITIAL ).
        ELSE.
          SELECT * FROM scarr INTO TABLE gt_scarr
          FOR ALL ENTRIES IN gt_spfli
            WHERE  carrid = gt_spfli-carrid.
        ENDIF.
        IF ( gt_scarr is initial ).
          " How to call event for flight_name_not_found ?"
    **        RAISE EVENT flight_name_not_found.
          IF 1 = 2. MESSAGE e159(bc_datamodel_service) WITH '&all'. ENDIF.
    *   Airline & not found
          CALL METHOD me->mo_msglist->add
      EXPORTING
    *          is_message   =
        id_msgty     = 'E'
        id_msgid     = 'BC_DATAMODEL_SERVICE'
        id_msgno     = '159'
        id_msgv1     = '&all'
    *          id_msgv2     =
    *          id_msgv3     =
    *          id_msgv4     =
        id_detlevel  = '2'
    *        IMPORTING
    *          es_message   =
        ENDIF.
      ENDMETHOD.                    "get_data
    ENDCLASS.                    "lcl_mytestclass IMPLEMENTATION
    *       CLASS handler DEFINITION
    CLASS handler DEFINITION.
      PUBLIC SECTION.
        METHODS handle_event
                FOR EVENT data_not_found OF lcl_mytestclass.
    ENDCLASS.                    "handler DEFINITION
    *       CLASS handler IMPLEMENTATION
    CLASS handler IMPLEMENTATION.
      METHOD handle_event.
        WRITE: / 'Data not found'.
      ENDMETHOD.                    "handle_excess
    ENDCLASS.                    "handler IMPLEMENTATION
    DATA: oref TYPE REF TO lcl_mytestclass,
         h1   TYPE REF TO handler.
    PARAMETER:
      p_carrid    TYPE s_carr_id DEFAULT 'AA'.
    START-OF-SELECTION.
    START-OF-SELECTION.
      CREATE OBJECT: oref, h1.
    **  SET HANDLER h1->handle_event FOR ALL INSTANCES.
      CALL METHOD oref->get_data( p_carrid ).
      IF ( oref->has_messages( ) = abap_true ).
        oref->display_messages( ).
      ENDIF.
    END-OF-SELECTION.
    Regards
      Uwe

  • How to reporcess event message for an event handler

    Dear Experts
    In one of our cases, we defined a task in the rule set to activate event handler when reason for rejection removed for a slaes order. We used the activity EH_ACTIVATE.
    For some of the SO event handlers, this activity was not triggered (do not know why) and the EH is still in Inactive Status. There is an option to reporcess event messages but this is disabled in Production. May I know is there any program to activate the EH in this case?
    Thanks
    Ravi

    Ravi,
    I would rather you see why the activity is not being triggered. Try reporting the events in simulation mode and check the results... If it subsequently posts then I would activate full App log logging in SAP EM and see what's going on. It's not good to be intermittently missing activities. You need to get to the bottom of it and use the correct methods in the rule set to achieve this.
    Thanks
    Kevin

  • Update password custom scheduled task orchestration event handler issue

    Hello experts,
    I am trying to run a custom scheduled to update user password in OIM 11.1.1.5
    Consider there are 5 users in the input feed file
    TSTUSR1
    TSTUSR2
    TSTUSR3
    TSTUSR4
    TSTUSR5
    Problem i am facing is when update of change password fails for a user then for the subsequent users also its getting failed. Say for TSTUSR3 the change password is failed for some reason (consider user not present) then for TSTUSR4 and TSTUSR5 also it is getting failed.
    Note: here the changepassword for TSTUSR4 and TSTUSR5 is getting called but i am getting some orchestration event handler exception as below.
    <Mar 9, 2012 6:26:12 AM CET> <Warning> <oracle.iam.platform.kernel.impl> <IAM-00 80002> <Orchestration validation failed on the event handler - The password change operation failed.>
    Exception occured during change password
    oracle.iam.identity.exception.UserManagerException: The password change operatio n failed.
    at oracle.iam.identity.usermgmt.impl.UserManagerImpl.changePassword(User ManagerImpl.java:3024)
    at oracle.iam.identity.usermgmt.impl.UserManagerImpl.changePassword(User ManagerImpl.java:2959)
    at oracle.iam.identity.usermgmt.api.UserManagerEJB.changePasswordx(Unkno wn Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJo inpointUsingReflection(AopUtils.java:310)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMetho dInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMetho dInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntrodu ctionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntrodu ctionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMetho dInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisit orImpl.visit(MethodInvocationVisitorImpl.java:37)
    at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.c allback(EnvironmentInterceptorCallbackImpl.java:54)
    at com.bea.core.repackaged.springframework.jee.spi.EnvironmentIntercepto r.invoke(EnvironmentInterceptor.java:50)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMetho dInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocat ionInterceptor.invoke(ExposeInvocationInterceptor.java:89)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMetho dInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntrodu ctionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntrodu ctionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMetho dInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopPr oxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy331.changePasswordx(Unknown Source)
    at oracle.iam.identity.usermgmt.api.UserManager_nimav7_UserManagerRemote Impl.__WL_invoke(Unknown Source)
    at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(Ses sionRemoteMethodInvoker.java:40)
    at oracle.iam.identity.usermgmt.api.UserManager_nimav7_UserManagerRemote Impl.changePasswordx(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(Remote BusinessIntfProxy.java:85)
    at $Proxy195.changePasswordx(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflecti on(AopUtils.java:307)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynami cAopProxy.java:198)
    at $Proxy328.changePasswordx(Unknown Source)
    at oracle.iam.identity.usermgmt.api.UserManagerDelegate.changePassword(U nknown Source)
    And below is the code snippet i am using
    try
    CsvReader fileName = new CsvReader(actualPath);
    fileName.readHeaders();
    while (fileName.readRecord()) {
    try
    String username = fileName.get("USR_LOGIN").toUpperCase();
    String password = fileName.get("USR_PASSWORD");
    if(!isNullOrEmpty(username)&& !isNullOrEmpty(password) )
         userAPI.changePassword(username, password.toCharArray(),true);
    else
         System.out.println("Record is empty");
         err.add(fileName.getRawRecord());     
    } catch (Exception e) {
    err.add(fileName.getRawRecord());     
    System.out.println("Exception occured during change password");
    e.printStackTrace();
    System.out.println("Continuing with next record");
    catch (Exception e) {
    e.printStackTrace();
    Your input at the earliest would be helpful.
    Thanks,
    DK
    Edited by: 875142 on Mar 8, 2012 10:56 PM

    It shouldn't but this is an OIM issue. handle yourself the possible cause.
    Myself experienced the same and it was because of policy failure.
    Try to put below check before password update.
    import oracle.iam.passwordmgmt.vo.ValidationResult;
    import oracle.iam.identity.usermgmt.vo.User;
    import oracle.iam.passwordmgmt.api.PasswordMgmtService;
    User searchedUser = null;
    ValidationResult validationResult = null;
    PasswordMgmtService pwdMgmt = Platform.getService(PasswordMgmtService.class);
    searchedUser = userAPI.getDetails(resultSet11g.getString("USR_LOGIN"), null, true);
    //Check if password is as per attached password policy
    validationResult = pwdMgmt.validatePasswordAgainstPolicy(password.toCharArray(), userLogin, searchedUser.getLocale());
    logger.debug("Result" + validationResult.isPasswordValid());
    if (validationResult.isPasswordValid()) {
    //Change the password
    userAPI.changePassword(username, password.toCharArray(),true);
    I suggest even validate if user exist or not.you can handle it using serchedUser(in above code). The above code validating policy only.
    --nayan                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Event Handler status update

    Hi all,
    We have created an Event handler using the Status Attribut profile attach to it. Now i am posting an Event using Idoc to Change the status of it.
    Could you pls advice Why status is not getting changed.
    Regards,
    Vikram

    Nevermind. I fixed it.

  • Error in post process event handler

    We should write a post process event handler that updates the manager field. So, I used the following code to update the manager field when a user gets created:
    Code:
    public EventResult execute(long processId, long eventId,
    Orchestration orchestration) {
    System.out.println("Test for Event Handler");
    try
    String userKey = getUserKey(processId, orchestration);
    System.out.println("USERKEY1"+userKey);
    UserManager userMgmt = Platform.getService(UserManager.class);
    System.out.println("USERMANAGEMENT"+userMgmt);
    System.out.println(userMgmt.modify(new User(userKey)));
    userMgmt.modify("usr_mgr_key","28",new User(userKey));
    System.out.println("USERKEY2"+userKey);
    } catch (ValidationFailedException e) {
    System.out.println("Exception1");
    } catch (AccessDeniedException e) {
    System.out.println("Exception2");} catch (UserModifyException e) {
    System.out.println("Exception3");} catch (NoSuchUserException e) {
    System.out.println("Exception4");} catch (SearchKeyNotUniqueException e) {
    return new EventResult();
    private String getUserKey (long processID, Orchestration orchestration) {
    String userKey;
    String entityType = orchestration.getTarget().getType();
    EventResult result;
    result = new EventResult();
    System.out.println("Entity Type"+entityType);
    System.out.println("Process ID"+processID);
    if (!orchestration.getOperation().equals("CREATE")) {
    userKey = orchestration.getTarget().getEntityId();
    System.out.println("UserKEY0"+userKey);
    } else {
    OrchestrationEngine orchEngine = Platform.getService(OrchestrationEngine.class);
    userKey = (String) orchEngine.getActionResult(processID);
    System.out.println("UserKEY-1"+userKey);
    return userKey;
    It compiles fine and when we try to create a user, the user gets created successfully. But, the expected behaviour of upadting the manager field with the user key '28' is not happening. My approach above - is it right or is there any other method that will make it work?
    The output message I see is:
    Test for Event Handler
    Entity TypeUser
    Process ID140343
    UserKEY-1613
    USERKEY1613
    USERMANAGEMENToracle.iam.identity.usermgmt.api.UserManagerDelegate@75ecf9ed
    <27-Feb-2012 10:56:41 o'clock GMT> <Warning> <oracle.iam.callbacks.common> <IAM-2030146> <[CALLBACKMSG] Are applicable policies present for this async eventhandler ? : false>
    oracle.iam.identity.usermgmt.vo.UserManagerResult@14da2ada
    <27-Feb-2012 10:56:44 o'clock GMT> <Error> <oracle.iam.identity.usermgmt.impl> <IAM-3051212> <An error occurred while searching for users - : [usr_mgr_key].>
    Exception4
    Thanks
    Krish

    i hope wrong coding.
    Use this code.
    UserManager userMgmt = oimClient.getService(UserManager.class);
    //Attribute you want to modify
    HashMap<String, Object> atrrMap= new HashMap<String, Object>();
    atrrMap.put("usr_manager_key", Long.valueOf("1")); //user will upadated with manager key 1 (xelsysadm) make sure usr_key 1 (manager) exist in OIM.
    //get the user to whom you want to modify
    User user = userMgmt.getDetails("usr_key", "41", null);
    user = new User(String.valueOf(user.getId()), atrrMap);
    UserManagerResult result = userMgmt.modify("usr_key", String.valueOf("41"), user);
    //UserManagerResult str = userMgmt.modify("usr_mgr_key","111",new User("41"));
    System.out.println("UserUpdate.process() "+result.getStatus());
    Also don't use UserManager class, As it will go for looping.
    Use
    EntityManager entityManager = Platform.getService(EntityManager.class);
    entityManager.modifyEntity(orchestrationTarget.getType(), userKey, mapAttrs);
    Also I am assuming you want to use Associate manager With user use case.
    Thanks,
    Kuldeep

  • Unable to get automatic event handling for OK button.

    Hello,
    I have created a form using creatobject. This form contains an edit control and Search, Cancel buttons. I have set the Search buttons UID to "1" so it can handle the Enter key hit event. Instead its caption changes to Update when i start typing in the edit control and it does not respond to the Enter key hit. Cancel happens when Esc is hit.
    My code looks like this -
    Dim oCreationParams As SAPbouiCOM.FormCreationParams
            oCreationParams = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_FormCreationParams)
            oCreationParams.UniqueID = "MySearchForm"
            oCreationParams.BorderStyle = SAPbouiCOM.BoFormBorderStyle.fbs_Sizable
                    Dim oForm As SAPbouiCOM.Form = SBO_Application.Forms.AddEx(oCreationParams)
    oForm.Visible = True
    '// set the form properties
            oForm.Title = "Search Form"
            oForm.Left = 300
            oForm.ClientWidth = 500
            oForm.Top = 100
            oForm.ClientHeight = 240
            '// Adding Items to the form
            '// and setting their properties
            '// Adding an Ok button
            '// We get automatic event handling for
            '// the Ok and Cancel Buttons by setting
            '// their UIDs to 1 and 2 respectively
            oItem = oForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
            oItem.Left = 5
            oItem.Width = 65
            oItem.Top = oForm.ClientHeight - 30
            oItem.Height = 19
            oButton = oItem.Specific
            oButton.Caption = "Search"
            '// Adding a Cancel button
            oItem = oForm.Items.Add("2", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
            oItem.Left = 75
            oItem.Width = 65
            oItem.Top = oForm.ClientHeight - 30
            oItem.Height = 19
            oButton = oItem.Specific
            oButton.Caption = "Cancel"
    oItem = oForm.Items.Add("NUM", SAPbouiCOM.BoFormItemTypes.it_EDIT)
            oItem.Left = 105
            oItem.Width = 140
            oItem.Top = 20
            oItem.Height = 16
            Dim oEditText As SAPbouiCOM.EditText = oItem.Specific
    What changes do i have to make to get the enter key to work?
    Thanks for your help.
    Regards,
    Sheetal

    Hello Felipe,
    Thanks for pointing me to the correct direction.
    So on refering to the documentation i tried out a few things. But I am still missing something here.
    I made the following changes to my code -
    oForm.AutoManaged = True
    oForm.SupportedModes = 1 ' afm_Ok
    oItem = oForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
            oItem.Left = 5
            oItem.Width = 65
            oItem.Top = oForm.ClientHeight - 30
            oItem.Height = 19
    oItem.SetAutoManagedAttribute(SAPbouiCOM.BoAutoManagedAttr.ama_Visible, 1, SAPbouiCOM.BoModeVisualBehavior.mvb_Default)
            oButton = oItem.Specific
            oButton.Caption = "OK"
    AND
    oForm.Mode = SAPbouiCOM.BoFormMode.fm_OK_MODE
    oItem = oForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
            oItem.Left = 5
            oItem.Width = 65
            oItem.Top = oForm.ClientHeight - 30
            oItem.Height = 19
    oItem.AffectsFormMode = False
    I get the same behaviour OK button changes to update and enter key does not work.
    Could you please tell me find what is it that i am doing wrong?
    Regards,
    Sheetal

  • WPF UI running in seperate runspace - able to set/get controls via synchronized hash table, but referencing the control via the hash table from within an event handler causes both runspaces to hang.

    I am trying to build a proof of concept where a WPF form is hosted in a seperate runspace and updates are handled from the primary shell/runspace. I have had some success thanks to a great article by Boe Prox, but I am having an issue I wanted to open up
    to see if anyone had a suggestion.
    My goals are as follows:
    1.) Set control properties from the primary runspace (Completed)
    2.) Get control properties from the primary runspace (Completed)
    3.) Respond to WPF form events in the UI runspace from the primary runspace (Kind of broken).
    I have the ability to read/write values to the form, but I am having difficulty with events. Specifically, I can fire and handle events, but the minute I try to reference the $SyncHash from within the event it appears to cause a blocking condition hanging both
    runspaces. As a result, I am unable to update the form based on an event being fired by a control.
    In the example below, the form is loaded and the following steps occur:
    1.) Update-Combobox is called and it populates the combobox with a list of service names and selects the first item.
    2.) update-textbox is called and sets the Text property of the textbox.
    3.) The Text value of the textbox is read by the function read-textbox and output using write-host.
    4.) An event handle is registered for the SelectionChanged event for the combobox to call the update-textbox function used earlier.
    5.) If you change the selection on the combobox, the shell and UI hangs as soon as $SyncHash is referenced. I suspect this is causing some sort of blocking condition from multiple threads trying to access the synchronized nature of the hash table, but I am
    unsure as to why / how to work around it. If you comment out the line "$SyncHash.TXT_Output.Dispatcher.Invoke("Send",[action]{$SyncHash.TXT_Output.Text = $Value})" within update-textbox the event handler will execute/complete.
    $UI_JobScript =
    try{
    Function New-Form ([XML]$XAML_Form){
    $XML_Node_Reader=(New-Object System.Xml.XmlNodeReader $XAML_Form)
    [Windows.Markup.XamlReader]::Load($XML_Node_Reader)
    try{
    Add-Type –AssemblyName PresentationFramework
    Add-Type –AssemblyName PresentationCore
    Add-Type –AssemblyName WindowsBase
    catch{
    Throw "Unable to load the requisite Windows Presentation Foundation assemblies. Please verify that the .NET Framework 3.5 Service Pack 1 or later is installed on this system."
    $Form = New-Form -XAML_Form $SyncHash.XAML_Form
    $SyncHash.Form = $Form
    $SyncHash.CMB_Services = $SyncHash.Form.FindName("CMB_Services")
    $SyncHash.TXT_Output = $SyncHash.Form.FindName("TXT_Output")
    $SyncHash.Form.ShowDialog() | Out-Null
    $SyncHash.Error = $Error
    catch{
    write-host $_.Exception.Message
    #End UI_JobScript
    #Begin Main
    add-type -AssemblyName WindowsBase
    [XML]$XAML_Form = @"
    <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Window.Resources>
    <DataTemplate x:Key="DTMPL_Name">
    <TextBlock Text="{Binding Path=Name}" />
    </DataTemplate>
    </Window.Resources>
    <DockPanel LastChildFill="True">
    <StackPanel Orientation="Horizontal" DockPanel.Dock="Top">
    <Label Name="LBL_Services" Content="Services:" />
    <ComboBox Name="CMB_Services" ItemTemplate="{StaticResource DTMPL_Name}"/>
    </StackPanel>
    <TextBox Name="TXT_Output"/>
    </DockPanel>
    </Window>
    $SyncHash = [hashtable]::Synchronized(@{})
    $SyncHash.Add("XAML_Form",$XAML_Form)
    $SyncHash.Add("InitialScript", $InitialScript)
    $Normal = [System.Windows.Threading.DispatcherPriority]::Normal
    $UI_Runspace =[RunspaceFactory]::CreateRunspace()
    $UI_Runspace.ApartmentState = [System.Threading.ApartmentState]::STA
    $UI_Runspace.ThreadOptions = [System.Management.Automation.Runspaces.PSThreadOptions]::ReuseThread
    $UI_Runspace.Open()
    $UI_Runspace.SessionStateProxy.SetVariable("SyncHash",$SyncHash)
    $UI_Pipeline = [PowerShell]::Create()
    $UI_Pipeline.Runspace=$UI_Runspace
    $UI_Pipeline.AddScript($UI_JobScript) | out-Null
    $Job = $UI_Pipeline.BeginInvoke()
    $SyncHash.ServiceList = get-service | select name, status | Sort-Object -Property Name
    Function Update-Combobox{
    write-host "`nBegin Update-Combobox [$(get-date)]"
    $SyncHash.CMB_Services.Dispatcher.Invoke($Normal,[action]{$SyncHash.CMB_Services.ItemsSource = $SyncHash.ServiceList})
    $SyncHash.CMB_Services.Dispatcher.Invoke($Normal,[action]{$SyncHash.CMB_Services.SelectedIndex = 0})
    write-host "`End Update-Combobox [$(get-date)]"
    Function Update-Textbox([string]$Value){
    write-host "`nBegin Update-Textbox [$(get-date)]"
    $SyncHash.TXT_Output.Dispatcher.Invoke("Send",[action]{$SyncHash.TXT_Output.Text = $Value})
    write-host "End Update-Textbox [$(get-date)]"
    Function Read-Textbox(){
    write-host "`nBegin Read-Textbox [$(get-date)]"
    $SyncHash.TXT_Output.Dispatcher.Invoke($Normal,[action]{$Global:Return = $SyncHash.TXT_Output.Text})
    $Global:Return
    remove-variable -Name Return -scope Global
    write-host "End Read-Textbox [$(get-date)]"
    #Give the form some time to load in the other runspace
    $MaxWaitCycles = 5
    while (($SyncHash.Form.IsInitialized -eq $Null)-and ($MaxWaitCycles -gt 0)){
    Start-Sleep -Milliseconds 200
    $MaxWaitCycles--
    Update-ComboBox
    Update-Textbox -Value $("Initial Load: $(get-date)")
    Write-Host "Value Read From Textbox: $(Read-TextBox)"
    Register-ObjectEvent -InputObject $SyncHash.CMB_Services -EventName SelectionChanged -SourceIdentifier "CMB_Services.SelectionChanged" -action {Update-Textbox -Value $("From Selection Changed Event: $(get-date)")}

    Thanks again for the responses. This may not be possible, but I thought I would throw it out there. I appreciate your help in looking into this.
    To clarify the "Respond to control events in the main runspace"... I'm would like to have an event generated by a form object in the UI runspace (ex: combo box selectionchanged event) trigger a delegate within the main runspace and have that delegate in
    the main runspace update the form in the UI runspace.
    ex:
    1.) User changes selection on combo box generating form event
    2.) Event calls delegate (which I have gotten to work)
    3.) Delegate does some basic processing (works)
    4.) Delegate attempts to update form in UI runspace (hangs)
    As to the delegates / which runspace they are running in. I see the $synchash variable if I run get-var within a delegate, but I do not see the $Form variable so I am assuming that they are in the main runspace. Do you agree with that assumption?

  • Setting Item level access rights on sharepoint list item in ItemAdding event handler

    Hi ,
    I am using sharepoint 2013. I am trying to set item level access rights when a list item is added using the following code snippet,
    public override void ItemAdding(SPItemEventProperties properties)
    base.ItemAdding(properties);
    ConfigureItemSecurity(properties);
    private void ConfigureItemSecurity(SPItemEventProperties properties)
    var item=properties.ListItem;
    SPSecurity.RunWithElevatedPrivileges(delegate()
    using (SPSite site = new SPSite(properties.SiteId))
    using (SPWeb oWeb = site.OpenWeb())
    item.ParentList.BreakRoleInheritance(true);
    oWeb.AllowUnsafeUpdates = true;
    var guestRole = oWeb.RoleDefinitions.GetByType(SPRoleType.Reader);
    var editRole = oWeb.RoleDefinitions.GetByType(SPRoleType.Editor);
    SPGroup HRGroup = oWeb.SiteGroups.Cast<SPGroup>().AsQueryable().FirstOrDefault(g => g.LoginName=="HR Team");
    SPRoleAssignment groupRoleAssignment = new SPRoleAssignment(HRGroup);
    groupRoleAssignment.RoleDefinitionBindings.Add(guestRole);
    SPUserCollection users = oWeb.Users;
    SPFieldUserValueCollection hm = (SPFieldUserValueCollection)item["HiringManager"];
    SPFieldUserValueCollection pm = (SPFieldUserValueCollection)item["ProjectManager"];
    SPFieldUserValueCollection pmChiefs = (SPFieldUserValueCollection)item["ProjectManagerChief"];
    item.BreakRoleInheritance(true);
    item.RoleAssignments.Add(groupRoleAssignment);
    foreach (SPFieldUserValue staffMember in hm)
    SetRightsOnItem(item, staffMember, editRole);
    foreach (SPFieldUserValue staffMember in pm)
    SetRightsOnItem(item, staffMember, guestRole);
    foreach (SPFieldUserValue staffMember in pmChiefs)
    SetRightsOnItem(item, staffMember, guestRole);
    item.Update();
    private void SetRightsOnItem(SPListItem item, SPFieldUserValue staffMember, SPRoleDefinition role)
    SPUser employeeUser = staffMember.User;
    var userRoleAssignment = new SPRoleAssignment(employeeUser);
    userRoleAssignment.RoleDefinitionBindings.Add(role);
    item.RoleAssignments.Add(userRoleAssignment);
    Nothing is happening though... Is the event handler the right place to do this?
    thank you

    Hi ,
    You can refer to the code working in my environment:
    using System;
    using System.Security.Permissions;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.Utilities;
    using Microsoft.SharePoint.Workflow;
    namespace ItemLevelSecurity.ItemSecurity
    /// <summary>
    /// List Item Events
    /// </summary>
    public class ItemSecurity : SPItemEventReceiver
    /// <summary>
    /// An item was added.
    /// </summary>
    public override void ItemAdded(SPItemEventProperties properties)
    SPSecurity.RunWithElevatedPrivileges(delegate()
    try
    using (SPSite oSPSite = new SPSite(properties.SiteId))
    using (SPWeb oSPWeb = oSPSite.OpenWeb(properties.RelativeWebUrl))
    //get the list item that was created
    SPListItem item = oSPWeb.Lists[properties.ListId].GetItemById(properties.ListItem.ID);
    //get the author user who created the item
    SPFieldUserValue valAuthor = new SPFieldUserValue(properties.Web, item["Created By"].ToString());
    SPUser oAuthor = valAuthor.User;
    //assign read permission to item author
    AssignPermissionsToItem(item,oAuthor,SPRoleType.Reader);
    //update the item
    item.Update();
    base.ItemAdded(properties);
    catch (Exception ex)
    properties.ErrorMessage = ex.Message; properties.Status = SPEventReceiverStatus.CancelWithError;
    properties.Cancel = true;
    public static void AssignPermissionsToItem(SPListItem item, SPPrincipal obj, SPRoleType roleType)
    if (!item.HasUniqueRoleAssignments)
    item.BreakRoleInheritance(false, true);
    SPRoleAssignment roleAssignment = new SPRoleAssignment(obj);
    SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);
    roleAssignment.RoleDefinitionBindings.Add(roleDefinition);
    item.RoleAssignments.Add(roleAssignment);
    Thanks,
    Eric
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected].
    Eric Tao
    TechNet Community Support

  • Custom event handler not executing

    Hello.
    I'm to set an event handler to execute after a user gets added a role. I have my plugin.zip file like this:
    -lib/(myjar).jar
    -plugin.xml
    Plugin.xml looks like this:
    <?xml version="1.0" encoding="UTF-8" ?>
    <oimplugins>
         <plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
              <plugin pluginclass="com.uti.oim.events.SqlRoleHandler" version="1.0" name="SqlRoleHandler" />
         </plugins>
    </oimplugins>
    Placed it in the plugins directory in my dev environment.
    customhandler.xml looks like this:
    <?xml version='1.0' encoding='UTF-8'?>
    <eventhandlers>
         <action-handler class="com.uti.oim.events.SqlRoleHandler" stage="postprocess" sync="TRUE" entity-type="RoleUser" operation="CREATE" name="SqlRoleHandler" order="1000"/>
    </eventhandlers>
    What am I doing wrong? Thanks.

    I ran into an issue with event hanlders in 11g. This might apply to yours. I was unable to create both a preprocess and postprocess task on the same object. It always threw an error on the postprocess class that it can't be case as a pre process event handler. So the solution was removal of all preprocess and just go with postprocess and use the EntityManager class to make the updates to not trigger another update. We had to process post-create user tasks for bulk recon, and could not process it in pre, so our only option was to move it all to post.
    -Kevin

  • Event Handler Exception

    Hi Friends,
    I am trying to call a BAPI from a webdynpro application when a user
    hits a button in a table. The table will have a button for each entry.
    There is an iView that has the table, a custom controller that executes
    the BAPI (model).
    I am setting the value of the custom controller context at the onAction event handler of the iView and calling the method executeBAPI once the user hits the button. The problem is it works fine for the first time. If the user hits another button of the table on the same screen it throws a nullPointer exception. ie all the subsequent calls fail.
    What could be wrong?
    java.lang.NullPointerException
         at com.sap.tc.prototype.ITView.onActionEventSelect(ITView.java:160)
         at com.sap.tc.prototype.wdp.InternalITView.wdInvokeEventHandler(InternalITView.java:160)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)
         at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:67)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doHandleActionEvent(WindowPhaseModel.java:420)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:132)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
    Thanks in advance.
    Nathan.

    Hi,
      wdThis.wdGetTCRegisterCustController().wdGetContext().currentBapi_InputElement().setCount(count);
    This is what i am doing at line 160. And i am setting some more values for the node.
    I tried to debug it. I executed this line in the debugger and it shows the following error:
    Evaluation failed. Reason(s):
              Attempt to send a message to a non object value
    Thanks
    Nathan.

  • User Recon and Event Handler  Issue in OIM11g

    Hello Experts,
    I am developing a Trusted Source Recon (User) for a proprietary application. I have devloped two java classes and put them into a jar file and placed the same jar in both ScheduleTask and EventHandlers directory of OIM.
    1.UserRecon class -- for User Recon
    2. EventHandler class -- update user's password after reconciling the user using API.
    In the User Recon class , I have defined a static HashMap variable to store the user and user's password as a class variable. The flow will be like this,
    1. Query trsuted source
    2. Reconcile user (except password because password can not be)
    3. Update the map with userid (key) and password.
    4. After reconciling , In the event handler use the same map to read user's password and set the password in OIM using API. (setXelleratePassword).
    5.After successful password set remove the entry from Map.
    The idea is to avoid making additional call to trusted source to retrieve the user's password.
    This worked in OIM9102. But when I tested the same in 11g it did not work.... Though the User Recon class updates the record into the HashMap , In the eventhandler , the HashMap is always coming as "empty".
    I did the below changes for 11g,
    1. Modified the EventHandler class to suite for 11g.
    2. Deployed the event handler as a plugin
    3. Placed the same jar file in Schedule task directory of OIM 11g
    I am unable find out where it is going wrong?? and tired of troubleshooting. Can you assist me ?
    Thanks and Regards
    INIYA

    INIYA wrote:
    Hello Experts,
    I am developing a Trusted Source Recon (User) for a proprietary application. I have devloped two java classes and put them into a jar file and placed the same jar in both ScheduleTask and EventHandlers directory of OIM.
    1.UserRecon class -- for User Recon
    2. EventHandler class -- update user's password after reconciling the user using API.
    In the User Recon class , I have defined a static HashMap variable to store the user and user's password as a class variable. The flow will be like this,
    1. Query trsuted source
    2. Reconcile user (except password because password can not be)
    3. Update the map with userid (key) and password.
    4. After reconciling , In the event handler use the same map to read user's password and set the password in OIM using API. (setXelleratePassword).
    5.After successful password set remove the entry from Map.
    The idea is to avoid making additional call to trusted source to retrieve the user's password.
    This worked in OIM9102. But when I tested the same in 11g it did not work.... Though the User Recon class updates the record into the HashMap , In the eventhandler , the HashMap is always coming as "empty".
    I did the below changes for 11g,
    1. Modified the EventHandler class to suite for 11g.
    2. Deployed the event handler as a plugin
    3. Placed the same jar file in Schedule task directory of OIM 11gHope there are two jars, if this is the case place the secondary jar in lib folder, than make it as plugin.
    >
    I am unable find out where it is going wrong?? and tired of troubleshooting. Can you assist me ?
    put the printstacktrace, so that problem can be identify
    sample code
    HashMap hash= null;
    try{
    hash = get map from other class
    //class be load at this point, if class is not loaded than you will get exception.
    }catch(Throwable t){
    // hope you will get some error or exception here
    t.printstacktrace();
    >
    Thanks and Regards
    INIYAPaste you sample code, if it couldn't help.

Maybe you are looking for

  • Itunes Store won't load and no error message. Please help!

    I have windows 7 and when I go into itunes (version 10.5) and click on the itunes store it begins to load but never finishes loading.  I have removed all anit-virus software, tried to re install all itunes software on my computer, and tried the netsh

  • How to create and run Forms?

    Hi! I have install WebLogic server and Oracle Forms. WebLogic is running... What must I do now to be able to create some simple form and run it?

  • Wait for Event FIPP - Completed Logically Deleted

    Hi WF Experts, We have a WF for Release of payments. It has 1 Fork with 2 parallel branches (both necessary). 1 Branch has the approval process for Amount release and the other branch calling the Account assignment approval Subworkflow. The approval

  • Jdeveloper -- Can't launch debugger

    WE have installed JDeveloper on several machines without any trouble. However, upon installing on an IBM T23, running WinXP, the debugger simply refuses to start. Other XP boxes work. Our code compiles with 0 errors, 0 warnings -- but when we attempt

  • Archive emails

    Hi. My emails are filling up my .mac storage space, yet everything in there I need to keep as they are a record of my business transactions. How can I archive emails (incoming and outgoing) from a smart folder to my local hard disk and then erase the