SAP HR 人事数据BAPI

HR模块人事数据BAPI的使用

DATA: ZRETURN TYPE BAPIRETURN1,
        ZPAKEY  TYPE BAPIPAKEY.
  DATA: LV_BEGDA TYPE BEGDA,
        LV_ENDDA TYPE ENDDA.
  DATA: RETURN    LIKE BAPIRETURN1,
        L_MESSAGE LIKE BAPIRETURN1-MESSAGE.
  DATA: LS_P0006 TYPE P0006,
        LS_P9015 TYPE P9015,
        LS_P0041 TYPE P0041,
        LS_P3211 TYPE P3211,
        LS_P0185 TYPE P0185,
        LS_P0002 TYPE P0002,
        LS_P0529 TYPE P0529,
        LS_P0016 TYPE P0016,
        LS_P0105 TYPE P0105,
        LS_P0533 TYPE P0533,
        LS_P9006 TYPE P9006,
        LS_P9001 TYPE P9001,
        LS_P0023 TYPE P0023.

*锁定人员编号
    CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
      EXPORTING
        NUMBER = GS_OUT-PERNR
      IMPORTING
        RETURN = RETURN.
    IF RETURN-TYPE = 'E'.

    ENDIF.

*现居住地址
    LS_P0006-PERNR = GS_OUT-PERNR.
    LS_P0006-INFTY = '0006'.
    LS_P0006-SUBTY = '1'.
*    LS_P0006-OBJPS = .
*    LS_P0006-SPRPS = .
    LS_P0006-ENDDA  = LV_ENDDA.
    LS_P0006-BEGDA  = LV_BEGDA.
    LS_P0006-ANSSA  = '2'.
    LS_P0006-STRAS  = GS_OUT-STRAS.
    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        INFTY         = LS_P0006-INFTY
        NUMBER        = LS_P0006-PERNR
*       SUBTYPE       = '1'
*       OBJECTID      =
*       LOCKINDICATOR =
        VALIDITYEND   = LS_P0006-ENDDA
        VALIDITYBEGIN = LS_P0006-BEGDA
*       RECORDNUMBER  =
        RECORD        = LS_P0006
        OPERATION     = 'INS'
*       TCLAS         = 'A'
        DIALOG_MODE   = '0'
*       NOCOMMIT      =
*       VIEW_IDENTIFIER        =
*       SECONDARY_RECORD       =
      IMPORTING
        RETURN        = ZRETURN
        KEY           = ZPAKEY.

    IF ZRETURN-TYPE = 'E'.
      GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
    ENDIF.
*户籍所在地
    CLEAR: LS_P0006,ZRETURN,ZPAKEY.
    LS_P0006-PERNR = GS_OUT-PERNR.
    LS_P0006-INFTY = '0006'.
    LS_P0006-SUBTY = '1'.
*    LS_P0006-OBJPS = .
*    LS_P0006-SPRPS = .
    LS_P0006-ENDDA  = LV_ENDDA.
    LS_P0006-BEGDA  = LV_BEGDA.
    LS_P0006-ANSSA  = '3'.
    LS_P0006-STRAS  = GS_OUT-STRAS1.
    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        INFTY         = LS_P0006-INFTY
        NUMBER        = LS_P0006-PERNR
*       SUBTYPE       = '1'
*       OBJECTID      =
*       LOCKINDICATOR =
        VALIDITYEND   = LS_P0006-ENDDA
        VALIDITYBEGIN = LS_P0006-BEGDA
*       RECORDNUMBER  =
        RECORD        = LS_P0006
        OPERATION     = 'INS'
*       TCLAS         = 'A'
        DIALOG_MODE   = '0'
*       NOCOMMIT      =
*       VIEW_IDENTIFIER        =
*       SECONDARY_RECORD       =
      IMPORTING
        RETURN        = ZRETURN
        KEY           = ZPAKEY.

    IF ZRETURN-TYPE = 'E'.
      GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
    ENDIF.

*职位管理 (个人)
    CLEAR:ZRETURN,ZPAKEY.
    LS_P9015-PERNR = GS_OUT-PERNR.
    LS_P9015-INFTY = '9015'.
*    LS_P9015-SUBTY = '1'.

    LS_P9015-ENDDA  = LV_ENDDA.
    LS_P9015-BEGDA  = LV_BEGDA.
    CASE GS_OUT-ZZ9015A.
      WHEN '产品及营销'.
        LS_P9015-ZZ9015A = '01'.
      WHEN '研发'.
        LS_P9015-ZZ9015A = '02'.
      WHEN '专业管理'.
        LS_P9015-ZZ9015A = '03'.
      WHEN '高管'.
        LS_P9015-ZZ9015A = '04'.
      WHEN '实习'.
        LS_P9015-ZZ9015A = '05'.
      WHEN '残疾人'.
        LS_P9015-ZZ9015A = '06'.
    ENDCASE.
    LS_P9015-ZZ9015B = GS_OUT-ZZ9015B.
    LS_P9015-ZZ9015C = GS_OUT-ZZ9015C.

    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        INFTY         = LS_P9015-INFTY
        NUMBER        = LS_P9015-PERNR
*       SUBTYPE       = '1'
*       OBJECTID      =
*       LOCKINDICATOR =
        VALIDITYEND   = LS_P9015-ENDDA
        VALIDITYBEGIN = LS_P9015-BEGDA
*       RECORDNUMBER  =
        RECORD        = LS_P9015
        OPERATION     = 'INS'
*       TCLAS         = 'A'
        DIALOG_MODE   = '0'
*       NOCOMMIT      =
*       VIEW_IDENTIFIER        =
*       SECONDARY_RECORD       =
      IMPORTING
        RETURN        = ZRETURN
        KEY           = ZPAKEY.

    IF ZRETURN-TYPE = 'E'.
      GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
    ENDIF.
*日期说明
    CLEAR:ZRETURN,ZPAKEY.
    LS_P0041-PERNR = GS_OUT-PERNR.
    LS_P0041-INFTY = '0041'.
    LS_P0041-SUBTY = '1'.

    LS_P0041-ENDDA  = LV_ENDDA.
    LS_P0041-BEGDA  = LV_BEGDA.
    LS_P0041-DAR12  = '01'.
    LS_P0041-DAT12  = GS_OUT-DAT01.
    LS_P0041-DAR11  = '02'.
    LS_P0041-DAT11  = GS_OUT-DAT02.
    LS_P0041-DAR10  = '14'.
    LS_P0041-DAT10  = GS_OUT-DAT03.

    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        INFTY         = LS_P0041-INFTY
        NUMBER        = LS_P0041-PERNR
*       SUBTYPE       = '1'
*       OBJECTID      =
*       LOCKINDICATOR =
        VALIDITYEND   = LS_P0041-ENDDA
        VALIDITYBEGIN = LS_P0041-BEGDA
*       RECORDNUMBER  =
        RECORD        = LS_P0041
        OPERATION     = 'INS'
*       TCLAS         = 'A'
        DIALOG_MODE   = '0'
*       NOCOMMIT      =
*       VIEW_IDENTIFIER        =
*       SECONDARY_RECORD       =
      IMPORTING
        RETURN        = ZRETURN
        KEY           = ZPAKEY.

    IF ZRETURN-TYPE = 'E'.
      GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
    ENDIF.
*个人证件
    CLEAR:ZRETURN,ZPAKEY.
    LS_P0185-PERNR = GS_OUT-PERNR.
    LS_P0185-INFTY = '0185'.
    LS_P0185-SUBTY = '01'.

    LS_P0185-ENDDA  = LV_ENDDA.
    LS_P0185-BEGDA  = LV_BEGDA.
    LS_P0185-ICTYP  = '01'.
    LS_P0185-ICNUM  = GS_OUT-ICNUM.

    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        INFTY         = LS_P0185-INFTY
        NUMBER        = LS_P0185-PERNR
*       SUBTYPE       = '1'
*       OBJECTID      =
*       LOCKINDICATOR =
        VALIDITYEND   = LS_P0185-ENDDA
        VALIDITYBEGIN = LS_P0185-BEGDA
*       RECORDNUMBER  =
        RECORD        = LS_P0185
        OPERATION     = 'INS'
*       TCLAS         = 'A'
        DIALOG_MODE   = '0'
*       NOCOMMIT      =
*       VIEW_IDENTIFIER        =
*       SECONDARY_RECORD       =
      IMPORTING
        RETURN        = ZRETURN
        KEY           = ZPAKEY.

    IF ZRETURN-TYPE = 'E'.
      GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
    ENDIF.
*个人数据
    CLEAR:ZRETURN,ZPAKEY.
    LS_P0002-PERNR = GS_OUT-PERNR.
    LS_P0002-INFTY = '0002'.
    LS_P0002-SUBTY = '1'.

*    SELECT SINGLE ENDDA BEGDA INTO (LS_P0002-ENDDA,LS_P0002-BEGDA) FROM PA0002 WHERE PERNR = GS_OUT-PERNR.
    SELECT SINGLE * INTO CORRESPONDING FIELDS OF LS_P0002 FROM PA0002 WHERE PERNR = GS_OUT-PERNR.
    LS_P0002-BEGDA  = GS_OUT-GBDAT.
    LS_P0002-GBDAT  = GS_OUT-GBDAT.
    SELECT SINGLE FAMST INTO @DATA(LV_FAMST) FROM T502T WHERE SPRSL = '1' AND FTEXT = @GS_OUT-FATXT.
    LS_P0002-FAMST = LV_FAMST.
    SELECT SINGLE BLAND INTO @DATA(LV_BLAND) FROM T005U WHERE SPRAS = '1' AND LAND1 = 'CN' AND BEZEI = @GS_OUT-ZZ0002A.
    LS_P0002-ZZ0002A = LV_BLAND.

    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        INFTY         = LS_P0002-INFTY
        NUMBER        = LS_P0002-PERNR
*       SUBTYPE       = LS_P0002-SUBTY
*       OBJECTID      =
*       LOCKINDICATOR =
        VALIDITYEND   = LS_P0002-ENDDA
        VALIDITYBEGIN = LS_P0002-BEGDA
*       RECORDNUMBER  =
        RECORD        = LS_P0002
        OPERATION     = 'INS' "'MOD'
*       TCLAS         = 'A'
        DIALOG_MODE   = '0'
*       NOCOMMIT      =
*       VIEW_IDENTIFIER        =
*       SECONDARY_RECORD       =
      IMPORTING
        RETURN        = ZRETURN
        KEY           = ZPAKEY.

    IF ZRETURN-TYPE = 'E'.
      GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
    ENDIF.
*附加个人数据 (中国)
    CLEAR:ZRETURN,ZPAKEY.
    LS_P0529-PERNR = GS_OUT-PERNR.
    LS_P0529-INFTY = '0529'.
    LS_P0529-SUBTY = '1'.

    LS_P0529-ENDDA  = LV_ENDDA.
    LS_P0529-BEGDA  = LV_BEGDA.
    SELECT SINGLE RACKY INTO @DATA(LV_RACKY) FROM T505S WHERE SPRSL = '1' AND MOLGA = '28' AND LTEXT = @GS_OUT-RACKY.
    LS_P0529-RACKY = LV_RACKY.

    CASE GS_OUT-YYXX.
      WHEN 'A型血'.
        LS_P0529-YYXX = '1'.
      WHEN 'B型血'.
        LS_P0529-YYXX = '2'.
      WHEN 'AB型血'.
        LS_P0529-YYXX = '3'.
      WHEN 'O型血'.
        LS_P0529-YYXX = '4'.
    ENDCASE.
    SELECT SINGLE PCODE INTO @DATA(LV_PCODE) FROM T7CN5R WHERE LANGU = '1' AND PTEXT = @GS_OUT-PCODE.
    LS_P0529-PCODE = LV_PCODE.

    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        INFTY         = LS_P0529-INFTY
        NUMBER        = LS_P0529-PERNR
*       SUBTYPE       = '1'
*       OBJECTID      =
*       LOCKINDICATOR =
        VALIDITYEND   = LS_P0529-ENDDA
        VALIDITYBEGIN = LS_P0529-BEGDA
*       RECORDNUMBER  =
        RECORD        = LS_P0529
        OPERATION     = 'INS'
*       TCLAS         = 'A'
        DIALOG_MODE   = '0'
*       NOCOMMIT      =
*       VIEW_IDENTIFIER        =
*       SECONDARY_RECORD       =
      IMPORTING
        RETURN        = ZRETURN
        KEY           = ZPAKEY.

    IF ZRETURN-TYPE = 'E'.
      GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
    ENDIF.
*通讯
    CLEAR:ZRETURN,ZPAKEY.
    LS_P0105-PERNR = GS_OUT-PERNR.
    LS_P0105-INFTY = '0105'.
    LS_P0105-SUBTY = '1'.

    LS_P0105-ENDDA  = LV_ENDDA.
    LS_P0105-BEGDA  = LV_BEGDA.

    LS_P0105-USRTY = '0002'.
    LS_P0105-USRID = GS_OUT-USRID.

    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        INFTY         = LS_P0105-INFTY
        NUMBER        = LS_P0105-PERNR
*       SUBTYPE       = '1'
*       OBJECTID      =
*       LOCKINDICATOR =
        VALIDITYEND   = LS_P0105-ENDDA
        VALIDITYBEGIN = LS_P0105-BEGDA
*       RECORDNUMBER  =
        RECORD        = LS_P0105
        OPERATION     = 'INS'
*       TCLAS         = 'A'
        DIALOG_MODE   = '0'
*       NOCOMMIT      =
*       VIEW_IDENTIFIER        =
*       SECONDARY_RECORD       =
      IMPORTING
        RETURN        = ZRETURN
        KEY           = ZPAKEY.

    IF ZRETURN-TYPE = 'E'.
      GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
    ENDIF.
*通讯:紧急联系人
    CLEAR:ZRETURN,ZPAKEY.
    LS_P0105-PERNR = GS_OUT-PERNR.
    LS_P0105-INFTY = '0105'.
    LS_P0105-SUBTY = '1'.

    LS_P0105-ENDDA  = LV_ENDDA.
    LS_P0105-BEGDA  = LV_BEGDA.

    LS_P0105-USRTY = '0004'.
    LS_P0105-YYJJLX = GS_OUT-YYJJLX.
    LS_P0105-USRID = GS_OUT-USRID1.

    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        INFTY         = LS_P0105-INFTY
        NUMBER        = LS_P0105-PERNR
*       SUBTYPE       = '1'
*       OBJECTID      =
*       LOCKINDICATOR =
        VALIDITYEND   = LS_P0105-ENDDA
        VALIDITYBEGIN = LS_P0105-BEGDA
*       RECORDNUMBER  =
        RECORD        = LS_P0105
        OPERATION     = 'INS'
*       TCLAS         = 'A'
        DIALOG_MODE   = '0'
*       NOCOMMIT      =
*       VIEW_IDENTIFIER        =
*       SECONDARY_RECORD       =
      IMPORTING
        RETURN        = ZRETURN
        KEY           = ZPAKEY.

    IF ZRETURN-TYPE = 'E'.
      GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
    ENDIF.
*人事档案管理 (中国)
    CLEAR:ZRETURN,ZPAKEY.
    LS_P0533-PERNR = GS_OUT-PERNR.
    LS_P0533-INFTY = '0533'.
    LS_P0533-SUBTY = '1'.

    LS_P0533-ENDDA  = LV_ENDDA.
    LS_P0533-BEGDA  = LV_BEGDA.

    LS_P0533-DOCAT = '01'.
    LS_P0533-YYCFDD = GS_OUT-YYCFDD.

    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        INFTY         = LS_P0533-INFTY
        NUMBER        = LS_P0533-PERNR
*       SUBTYPE       = '1'
*       OBJECTID      =
*       LOCKINDICATOR =
        VALIDITYEND   = LS_P0533-ENDDA
        VALIDITYBEGIN = LS_P0533-BEGDA
*       RECORDNUMBER  =
        RECORD        = LS_P0533
        OPERATION     = 'INS'
*       TCLAS         = 'A'
        DIALOG_MODE   = '0'
*       NOCOMMIT      =
*       VIEW_IDENTIFIER        =
*       SECONDARY_RECORD       =
      IMPORTING
        RETURN        = ZRETURN
        KEY           = ZPAKEY.

    IF ZRETURN-TYPE = 'E'.
      GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
    ENDIF.
*教育
    CLEAR:ZRETURN,ZPAKEY.
    LS_P9006-PERNR = GS_OUT-PERNR.
    LS_P9006-INFTY = '9006'.
*    LS_P9006-SUBTY = '1'.

    LS_P9006-ENDDA  = GS_OUT-ENDDA.
    LS_P9006-BEGDA  = GS_OUT-BEGDA.

    CASE GS_OUT-YYSFYJ.
      WHEN '是'.
        LS_P9006-YYSFYJ = '1'.
      WHEN '否'.
        LS_P9006-YYSFYJ = '2'.
    ENDCASE.

    CASE GS_OUT-YYJYLX.
      WHEN '初中'.
        LS_P9006-YYJYLX = '01'.
      WHEN '高中'.
        LS_P9006-YYJYLX = '02'.
      WHEN '技校'.
        LS_P9006-YYJYLX = '03'.
      WHEN '中专'.
        LS_P9006-YYJYLX = '04'.
      WHEN '大专'.
        LS_P9006-YYJYLX = '05'.
      WHEN '本科在读'.
        LS_P9006-YYJYLX = '06'.
      WHEN '本科'.
        LS_P9006-YYJYLX = '07'.
      WHEN '硕士在读'.
        LS_P9006-YYJYLX = '08'.
      WHEN '硕士研究生'.
        LS_P9006-YYJYLX = '09'.
      WHEN '博士在读'.
        LS_P9006-YYJYLX = '10'.
      WHEN '博士研究生'.
        LS_P9006-YYJYLX = '11'.
    ENDCASE.

    CASE GS_OUT-YYZGXW.
      WHEN '学士'.
        LS_P9006-YYZGXW = '1'.
      WHEN '双学士'.
        LS_P9006-YYZGXW = '2'.
      WHEN '硕士'.
        LS_P9006-YYZGXW = '3'.
      WHEN '博士'.
        LS_P9006-YYZGXW = '4'.
      WHEN '无学位'.
        LS_P9006-YYZGXW = '5'.
    ENDCASE.

    LS_P9006-YYBYXX = GS_OUT-YYBYXX.
    LS_P9006-YYXXZY = GS_OUT-YYXXZY.

    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        INFTY         = LS_P9006-INFTY
        NUMBER        = LS_P9006-PERNR
*       SUBTYPE       = '1'
*       OBJECTID      =
*       LOCKINDICATOR =
        VALIDITYEND   = LS_P9006-ENDDA
        VALIDITYBEGIN = LS_P9006-BEGDA
*       RECORDNUMBER  =
        RECORD        = LS_P9006
        OPERATION     = 'INS'
*       TCLAS         = 'A'
        DIALOG_MODE   = '0'
*       NOCOMMIT      =
*       VIEW_IDENTIFIER        =
*       SECONDARY_RECORD       =
      IMPORTING
        RETURN        = ZRETURN
        KEY           = ZPAKEY.

    IF ZRETURN-TYPE = 'E'.
      GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
    ENDIF.
*职称
    CLEAR:ZRETURN,ZPAKEY.
    LS_P9001-PERNR = GS_OUT-PERNR.
    LS_P9001-INFTY = '9001'.
*    LS_P9001-SUBTY = '1'.


    LS_P9001-ENDDA  = LV_ENDDA.
    LS_P9001-BEGDA  = LV_BEGDA.

    CASE GS_OUT-YYZCJB.
      WHEN '高级'.
        LS_P9001-YYZCJB = '1'.
      WHEN '中级'.
        LS_P9001-YYZCJB = '2'.
      WHEN '初级'.
        LS_P9001-YYZCJB = '3'.
      WHEN '技术员级'.
        LS_P9001-YYZCJB = '4'.
    ENDCASE.
    LS_P9001-YYZCMC = GS_OUT-YYZCMC.

    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        INFTY         = LS_P9001-INFTY
        NUMBER        = LS_P9001-PERNR
*       SUBTYPE       = '1'
*       OBJECTID      =
*       LOCKINDICATOR =
        VALIDITYEND   = LS_P9001-ENDDA
        VALIDITYBEGIN = LS_P9001-BEGDA
*       RECORDNUMBER  =
        RECORD        = LS_P9001
        OPERATION     = 'INS'
*       TCLAS         = 'A'
        DIALOG_MODE   = '0'
*       NOCOMMIT      =
*       VIEW_IDENTIFIER        =
*       SECONDARY_RECORD       =
      IMPORTING
        RETURN        = ZRETURN
        KEY           = ZPAKEY.

    IF ZRETURN-TYPE = 'E'.
      GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
    ENDIF.
*其他/先前雇主1
    IF GS_OUT-BEGDA1 IS NOT INITIAL.
      CLEAR:ZRETURN,ZPAKEY.
      LS_P0023-PERNR = GS_OUT-PERNR.
      LS_P0023-INFTY = '0023'.
      LS_P0023-SUBTY = '1'.

      LS_P0023-BEGDA = GS_OUT-BEGDA1.
      LS_P0023-ENDDA = GS_OUT-ENDDA1.
      LS_P0023-ARBGB = GS_OUT-ARBGB1.
      LS_P0023-YYZWGZ = GS_OUT-YYZWGZ1.

      CALL FUNCTION 'HR_INFOTYPE_OPERATION'
        EXPORTING
          INFTY         = LS_P0023-INFTY
          NUMBER        = LS_P0023-PERNR
*         SUBTYPE       = '1'
*         OBJECTID      =
*         LOCKINDICATOR =
          VALIDITYEND   = LS_P0023-ENDDA
          VALIDITYBEGIN = LS_P0023-BEGDA
*         RECORDNUMBER  =
          RECORD        = LS_P0023
          OPERATION     = 'INS'
*         TCLAS         = 'A'
          DIALOG_MODE   = '0'
*         NOCOMMIT      =
*         VIEW_IDENTIFIER        =
*         SECONDARY_RECORD       =
        IMPORTING
          RETURN        = ZRETURN
          KEY           = ZPAKEY.

      IF ZRETURN-TYPE = 'E'.
        GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
      ENDIF.
    ENDIF.
*其他/先前雇主2
    IF GS_OUT-BEGDA2 IS NOT INITIAL.
      CLEAR:ZRETURN,ZPAKEY.
      LS_P0023-PERNR = GS_OUT-PERNR.
      LS_P0023-INFTY = '0023'.
      LS_P0023-SUBTY = '1'.

      LS_P0023-BEGDA = GS_OUT-BEGDA2.
      LS_P0023-ENDDA = GS_OUT-ENDDA2.
      LS_P0023-ARBGB = GS_OUT-ARBGB2.
      LS_P0023-YYZWGZ = GS_OUT-YYZWGZ2.

      CALL FUNCTION 'HR_INFOTYPE_OPERATION'
        EXPORTING
          INFTY         = LS_P0023-INFTY
          NUMBER        = LS_P0023-PERNR
*         SUBTYPE       = '1'
*         OBJECTID      =
*         LOCKINDICATOR =
          VALIDITYEND   = LS_P0023-ENDDA
          VALIDITYBEGIN = LS_P0023-BEGDA
*         RECORDNUMBER  =
          RECORD        = LS_P0023
          OPERATION     = 'INS'
*         TCLAS         = 'A'
          DIALOG_MODE   = '0'
*         NOCOMMIT      =
*         VIEW_IDENTIFIER        =
*         SECONDARY_RECORD       =
        IMPORTING
          RETURN        = ZRETURN
          KEY           = ZPAKEY.

      IF ZRETURN-TYPE = 'E'.
        GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
      ENDIF.
    ENDIF.
*其他/先前雇主3
    IF GS_OUT-BEGDA3 IS NOT INITIAL.
      CLEAR:ZRETURN,ZPAKEY.
      LS_P0023-PERNR = GS_OUT-PERNR.
      LS_P0023-INFTY = '0023'.
      LS_P0023-SUBTY = '1'.

      LS_P0023-BEGDA = GS_OUT-BEGDA3.
      LS_P0023-ENDDA = GS_OUT-ENDDA3.
      LS_P0023-ARBGB = GS_OUT-ARBGB3.
      LS_P0023-YYZWGZ = GS_OUT-YYZWGZ3.

      CALL FUNCTION 'HR_INFOTYPE_OPERATION'
        EXPORTING
          INFTY         = LS_P0023-INFTY
          NUMBER        = LS_P0023-PERNR
*         SUBTYPE       = '1'
*         OBJECTID      =
*         LOCKINDICATOR =
          VALIDITYEND   = LS_P0023-ENDDA
          VALIDITYBEGIN = LS_P0023-BEGDA
*         RECORDNUMBER  =
          RECORD        = LS_P0023
          OPERATION     = 'INS'
*         TCLAS         = 'A'
          DIALOG_MODE   = '0'
*         NOCOMMIT      =
*         VIEW_IDENTIFIER        =
*         SECONDARY_RECORD       =
        IMPORTING
          RETURN        = ZRETURN
          KEY           = ZPAKEY.

      IF ZRETURN-TYPE = 'E'.
        GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
      ENDIF.
    ENDIF.
*其他/先前雇主4
    IF GS_OUT-BEGDA4 IS NOT INITIAL.
      CLEAR:ZRETURN,ZPAKEY.
      LS_P0023-PERNR = GS_OUT-PERNR.
      LS_P0023-INFTY = '0023'.
      LS_P0023-SUBTY = '1'.

      LS_P0023-BEGDA = GS_OUT-BEGDA4.
      LS_P0023-ENDDA = GS_OUT-ENDDA4.
      LS_P0023-ARBGB = GS_OUT-ARBGB4.
      LS_P0023-YYZWGZ = GS_OUT-YYZWGZ4.

      CALL FUNCTION 'HR_INFOTYPE_OPERATION'
        EXPORTING
          INFTY         = LS_P0023-INFTY
          NUMBER        = LS_P0023-PERNR
*         SUBTYPE       = '1'
*         OBJECTID      =
*         LOCKINDICATOR =
          VALIDITYEND   = LS_P0023-ENDDA
          VALIDITYBEGIN = LS_P0023-BEGDA
*         RECORDNUMBER  =
          RECORD        = LS_P0023
          OPERATION     = 'INS'
*         TCLAS         = 'A'
          DIALOG_MODE   = '0'
*         NOCOMMIT      =
*         VIEW_IDENTIFIER        =
*         SECONDARY_RECORD       =
        IMPORTING
          RETURN        = ZRETURN
          KEY           = ZPAKEY.

      IF ZRETURN-TYPE = 'E'.
        GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
      ENDIF.
    ENDIF.
*其他/先前雇主5
    IF GS_OUT-BEGDA4 IS NOT INITIAL.
      CLEAR:ZRETURN,ZPAKEY.
      LS_P0023-PERNR = GS_OUT-PERNR.
      LS_P0023-INFTY = '0023'.
      LS_P0023-SUBTY = '1'.

      LS_P0023-BEGDA = GS_OUT-BEGDA5.
      LS_P0023-ENDDA = GS_OUT-ENDDA5.
      LS_P0023-ARBGB = GS_OUT-ARBGB5.
      LS_P0023-YYZWGZ = GS_OUT-YYZWGZ5.

      CALL FUNCTION 'HR_INFOTYPE_OPERATION'
        EXPORTING
          INFTY         = LS_P0023-INFTY
          NUMBER        = LS_P0023-PERNR
*         SUBTYPE       = '1'
*         OBJECTID      =
*         LOCKINDICATOR =
          VALIDITYEND   = LS_P0023-ENDDA
          VALIDITYBEGIN = LS_P0023-BEGDA
*         RECORDNUMBER  =
          RECORD        = LS_P0023
          OPERATION     = 'INS'
*         TCLAS         = 'A'
          DIALOG_MODE   = '0'
*         NOCOMMIT      =
*         VIEW_IDENTIFIER        =
*         SECONDARY_RECORD       =
        IMPORTING
          RETURN        = ZRETURN
          KEY           = ZPAKEY.

      IF ZRETURN-TYPE = 'E'.
        GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
      ENDIF.
    ENDIF.
*其他/先前雇主6
    IF GS_OUT-BEGDA4 IS NOT INITIAL.
      CLEAR:ZRETURN,ZPAKEY.
      LS_P0023-PERNR = GS_OUT-PERNR.
      LS_P0023-INFTY = '0023'.
      LS_P0023-SUBTY = '1'.

      LS_P0023-BEGDA = GS_OUT-BEGDA6.
      LS_P0023-ENDDA = GS_OUT-ENDDA6.
      LS_P0023-ARBGB = GS_OUT-ARBGB6.
      LS_P0023-YYZWGZ = GS_OUT-YYZWGZ6.

      CALL FUNCTION 'HR_INFOTYPE_OPERATION'
        EXPORTING
          INFTY         = LS_P0023-INFTY
          NUMBER        = LS_P0023-PERNR
*         SUBTYPE       = '1'
*         OBJECTID      =
*         LOCKINDICATOR =
          VALIDITYEND   = LS_P0023-ENDDA
          VALIDITYBEGIN = LS_P0023-BEGDA
*         RECORDNUMBER  =
          RECORD        = LS_P0023
          OPERATION     = 'INS'
*         TCLAS         = 'A'
          DIALOG_MODE   = '0'
*         NOCOMMIT      =
*         VIEW_IDENTIFIER        =
*         SECONDARY_RECORD       =
        IMPORTING
          RETURN        = ZRETURN
          KEY           = ZPAKEY.

      IF ZRETURN-TYPE = 'E'.
        GS_OUT-MESSAGE = ZRETURN-MESSAGE && '/' && GS_OUT-MESSAGE.
      ENDIF.
    ENDIF.

*解除锁定
   CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
      EXPORTING
        NUMBER = GS_OUT-PERNR
* IMPORTING
*       RETURN = .

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值