天天看点

ABAP HR 通过信息类型修改人员信息

虽然是通过录屏可以实现,但是想尝试通过从最根本出发,直接操作信息类型,实现人员信息的创建和修改。

      调用FM: HR_INFOTYPE_OPERATION实现某信息的批量修改。为了操作不受影响,一般会在调用 HR_INFOTYPE_OPERATION之前,先在系统锁定此人,操作完之后在对此人解锁。锁定人员调用FM: BAPI_EMPLOYEE_ENQUEUE,解锁人员调用: BAPI_EMPLOYEE_DEQUEUE。

      1   HR_INFOTYPE_OPERATION的用法示例。     

    l_wa_pa0008-pernr = g_wa_extrec-pernr.                           "人员编号

    l_wa_pa0008-begda = g_wa_extrec-begda.                           "开始日期

    l_wa_pa0008-endda = g_wa_extrec-endda.                           "支付结束日期

    l_wa_pa0008-preas = g_wa_extrec-preas.                           "更改原因

    l_wa_pa0008-trfar = g_wa_extrec-trfar.                           "类型

    l_wa_pa0008-trfgr = g_wa_extrec-trfgr.                           "组

    l_wa_pa0008-trfst = g_wa_extrec-trfst.                           "级别

    l_wa_pa0008-trfgb = l_trfgb.

    l_wa_pa0008-lga01 = '1000'.

    l_wa_pa0008-lga02 = '1001'.

    l_wa_pa0008-lga03 = '1002'.

    l_wa_pa0008-bet01 = g_wa_extrec-jbgz.                            "基本工资

    l_wa_pa0008-bet02 = g_wa_extrec-gwgz.                            "岗位工资

    l_wa_pa0008-bet03 = g_wa_extrec-fdgz.                            "浮动工资

 call function 'HR_INFOTYPE_OPERATION'

        exporting

          infty          = c_infty_0008     "输入信息类型

          number    = l_wa_pa0008-pernr  "本次处理的人员编号

          record      = l_wa_pa0008           "需要修改或者创建的信息

          operation = c_actio_ins              "操作类型(INS或者 DEL等)

        importing

          return    = l_wa_bapireturn1

          key       = l_wa_bapipakey.

通过l_wa_bapireturn1-type判断是否执行成功。如果需要处理子信息类型,可以 SUBTYPE = 子类型来处理。

  2 锁定人员

        call function 'BAPI_EMPLOYEE_ENQUEUE'

      exporting

        number = g_wa_extrec-pernr

      importing

        return = l_wa_bapireturn1.

  一般判断锁定成功后,再进行相关的操作。

3 解锁人员

       call function 'BAPI_EMPLOYEE_DEQUEUE'

      exporting

        number = l_wa_pa0008-pernr.

转载自:http://hi.baidu.com/hellohainiao/item/9c3d830c1e06ab9fa3df4387