1、通過函數操作。
INFOTYPES: 0001. DATA: ZRETURN TYPE BAPIRETURN1, ZPAKEY TYPE BAPIPAKEY. GET PERNR. LOOP AT P0001 WHERE ... *鎖定人員編號 CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE' EXPORTING NUMBER = PERNR-PERNR * IMPORTING * RETURN = . ... *新建信息類型 CALL FUNCTION 'HR_INFOTYPE_OPERATION' EXPORTING INFTY = '0001' NUMBER = P0001-PERNR * SUBTYPE = ' ' * OBJECTID = LOCKINDICATOR = P0001-SPRPS VALIDITYEND = P0001-ENDDA VALIDITYBEGIN = P0001-BEGDA RECORDNUMBER = P0001-SEQNR RECORD = P0001 OPERATION = 'INS' * TCLAS = 'A' DIALOG_MODE = '1' * NOCOMMIT = * VIEW_IDENTIFIER = * SECONDARY_RECORD = IMPORTING RETURN = ZRETURN KEY = ZPAKEY . COMMIT WORK.
*解除鎖定 CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE' EXPORTING NUMBER = PERNR-PERNR * IMPORTING * RETURN = . ENDLOOP.
OPERATION: MOD(change) INS(insert) COPY(copy) DEL(delete) LIS9(delimit)
批量處理可能用到的清空緩存的函數,在調用HR_INFOTYPE_OPERATION之前使用。
CALL FUNCTION 'HR_INITIALIZE_BUFFER' EXPORTING * TCLAS = 'A' PERNR = PERNR . CALL FUNCTION 'HR_PSBUFFER_INITIALIZE' .
2、更新數據庫。
PARAMETERS: P_NATIO_O LIKE P0002-NATIO DEFAULT 'DE', P_NATIO_N LIKE P0002-NATIO DEFAULT 'D'. UPDATE PA0002 SET NATIO = P_NATIO_N WHERE PERNR = P0002-PERNR AND NATIO = P_NATIO_O. IF SY-SUBRC = 0. ENDIF.