SAP HR OM Badi未检测到IN_UPDATE更改

时间:2015-07-16 07:45:33

标签: sap abap

我们已经实施了BADI ZHR_INT_BAD_OM_INFTY和方法IN_UPDATE。现在,当某些用户保存其OM工作时,不会触发IN_UPDATE方法。

调试这个问题就是当你进入abap调试器" stuff"在后台得到承诺。

我们的目标是列出最近的OM变化以进行增量检测。

我们实施的代码示例:

 DATA:
      lw_old_image LIKE LINE OF old_image,
      lw_new_image LIKE LINE OF new_image,
      ls_object    TYPE hrobject.

    "-- Check if there is anything interesing in the old image
    LOOP AT old_image INTO lw_old_image
      WHERE infty IN me->get_range_infotypes( )
        AND begda LE sy-datum
        AND endda GE sy-datum.

      MOVE-CORRESPONDING lw_old_image TO ls_object.
      "-- If an object has been detected, trigger the refresh
      TRY.
          zhr_cl_int_person_masterdata=>trigger_om_object_changed( zhr_cl_om_object=>get( im_plvar  = ls_object-plvar
                                                                                          im_otype  = ls_object-otype
                                                                                          im_objid  = ls_object-objid ) ).
        CATCH zcx_hr_om.  "     " Base class for OM objects
      ENDTRY.
    ENDLOOP.

    "-- If nothing found, check if there is anything interesting in the new image
    IF ls_object IS INITIAL.
      LOOP AT new_image INTO lw_new_image
        WHERE infty IN me->get_range_infotypes( )
          AND begda LE sy-datum
          AND endda GE sy-datum.

        MOVE-CORRESPONDING lw_new_image TO ls_object.
        "-- If an object has been detected, trigger the refresh
        TRY.
            zhr_cl_int_person_masterdata=>trigger_om_object_changed( zhr_cl_om_object=>get( im_plvar  = ls_object-plvar
                                                                                            im_otype  = ls_object-otype
                                                                                            im_objid  = ls_object-objid ) ).
          CATCH zcx_hr_om.  "     " Base class for OM objects
        ENDTRY.
      ENDLOOP.
    ENDIF.

0 个答案:

没有答案