HR模块中PA信息类型的相关函数

1、新增、删除,修改:HR_INFOTYPE_OPERATION

新增:INS

备注:这里新增是以PA0008这个信息类型为例

  DATA: ls_p0008  TYPE p0008.
"先把0008信息类型的字段赋值
    ls_p0008-waers = iv_waers.
  ls_p0008-pernr = lv_pernr.
  ls_p0008-infty = '0008'.
  ls_p0008-endda = '99991231'.
*  ls_p0008-trfar = is_input-trfar.
  ls_p0008-trfgb = 'NA'.
  ls_p0008-trfgr = '无职级'.
  ls_p0008-trfst = 'NA'.
  ls_p0008-bsgrd = '100'.
  ls_p0008-divgv = '174'.
  IF ev_sspt = '17'.
    ls_p0008-trfar  = 'I1'.
  ELSEIF ev_sspt = '12'.
    ls_p0008-trfar  = 'A5'.
  ELSEIF ev_sspt = '10'.
    ls_p0008-trfar  = 'A6'.
  ELSE.
    ls_p0008-trfar  = 'A4'.
  ENDIF.

  ls_p0008-lga01 = iv_lgart.
  ls_p0008-bet01 = iv_salar.

  DATA ls_return TYPE bapireturn1.

  "清缓存
  CALL FUNCTION 'HR_INITIALIZE_BUFFER'
    EXPORTING
      pernr = lv_pernr.
CALL FUNCTION 'HR_PSBUFFER_INITIALIZE'.

  "加锁
  CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
    EXPORTING
      number = lv_pernr
    IMPORTING
      return = ls_return.

  IF ls_return-type CA 'AEX'.
    es_message-msgty = 'E'.
    es_message-msgtx = ls_return-message.
    EXIT .
  ENDIF.
    CLEAR ls_return.
  CALL FUNCTION 'HR_INFOTYPE_OPERATION'
    EXPORTING
      infty         = '0008'
      number        = ls_p0008-pernr
      subtype       = ls_p0008-subty "子信息类型
*     objectid      = ls_pskey-objps
*     lockindicator = ls_pskey-sprps
      validityend   = ls_p0008-endda 
      validitybegin = ls_p0008-begda
*     recordnumber  = ls_pskey-seqnr
      record        = ls_p0008
      operation     = 'INS'  "INS:新增  DEL:删除 MOD      
      tclas         = 'A'
      dialog_mode   = '0'
*     nocommit      = 'X'
    IMPORTING
      return        = ls_return.

  IF ls_return-type CA 'AEX'.
    es_message-msgty = 'E'.
    es_message-msgtx = ls_return-message.
  ELSE.
    es_message-msgty = 'S'.
    es_message-msgtx = '成功'.
  ENDIF.

  "解锁
  CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
    EXPORTING
      number = lv_pernr.

删除:DEL

修改:MOD

2、读取PA信息类型:HR_READ_INFOTYPE

 DATA: lt_p0001 TYPE TABLE OF p0001,
        ls_p0001 TYPE p0001.
        
 CALL FUNCTION 'HR_READ_INFOTYPE'
    EXPORTING
      pernr           = iv_user  "员工号
      infty           = '0001'
      begda           = iv_begda "查询的开始日期
      endda           = iv_endda "查询的结束日期
*     BYPASS_BUFFER   = ' '
*     LEGACY_MODE     = ' '
*    importing
*     subrc           =
    TABLES
      infty_tab       = lt_p0001
    EXCEPTIONS
      infty_not_found = 1
      OTHERS          = 2.
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.

** 得到的内表数据lt_p0001就是信息类型PA0001的数据 **

3、入职,生成新工号用:HR_PAD_HIRE_EMPLOYEE

4、加锁:BAPI_EMPLOYEE_ENQUEUE

** 锁定员工,对员工操作前,都必须锁定**

 CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
    EXPORTING
      number = lv_pernr
    IMPORTING
      return = ls_return.

  IF ls_return-type CA 'AEX'.
    es_message-msgty = 'E'.
    es_message-msgtx = ls_return-message.
    EXIT .
  ENDIF.

5、解锁:BAPI_EMPLOYEE_DEQUEUE

加锁和解锁是一起使用的,只要有加锁那必定要有解锁

  "解锁
  CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
    EXPORTING
      number = lv_pernr.
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值