武汉网站开发哪家好短信营销
人员基本信息导入函数:HR_MAINTAIN_MASTERDATA
人员其他信息类型导入函数:HR_INFOTYPE_OPERATION
不逼逼,直接上代码,这两个函数还是相对简单易懂的
*根据操作类型查找对应的T529A 操作类型对应的值IF gt_alv IS NOT INITIAL.SELECT massn,stat1,stat2INTO TABLE @DATA(lt_t529a)FROM t529aFOR ALL ENTRIES IN @gt_alvWHERE massn = @gt_alv-massn.ENDIF.**操作
* pernr TYPE p0000-pernr, "人员编码
* begda TYPE p0000-begda, " 开始日期
* endda TYPE p0000-endda, " 结束日期
* massn TYPE pspar-massn, "操作类型
* massg TYPE p0000-massg, "操作原因
* plans TYPE pspar-plans, "职位
* werks TYPE pspar-werks, "人事范围
* persg TYPE pspar-persg, "员工组
* persk TYPE pspar-persk, "员工子组
**组织分配
** btrtl TYPE p0001-btrtl, "人事子范围
* abkrs TYPE p0001-abkrs, "工资范围
* ANSVH type P0001-ANSVH, "事业部
* SACHP type P0001-SACHP, "人事管理员
* SACHZ type P0001-SACHZ, "时间管理员
* SACHA type p0001-SACHA, "工资管理员
*
**个人数据
* nachn TYPE p0002-nachn, "姓名
* vorna TYPE p0002-vorna, "英文名
* name2 type p0002-name2, "曾用名
* gesch TYPE p0002-gesch, "性别码 1代表男 2代表女
* gbdat TYPE p0002-gbdat, "出生日期
* gbort TYPE p0002-gbort, "出生地
** gblnd TYPE p0002-gblnd, "出生国家
** gbdep TYPE p0002-gbdep, "省份
** natio TYPE p0002-natio, "国籍
* famst TYPE p0002-famst, "婚姻状况
* hukot TYPE p3527-hukot, "户口类型 考虑添加
* ZTELENT type P0002-ZTELENT,"人才类型*定义局部变量,局部表及结构,用于反馈数据是否导入成功DATA:lt_pprop TYPE TABLE OF pprop,ls_pprop TYPE pprop,lt_pskey TYPE TABLE OF pskey,ls_pskey TYPE pskey.DATA:lt_return LIKE bapireturn,lt_return1 LIKE bapireturn1,lt_hr_return LIKE hrhrmm_msg.DATA:lt_return_sd LIKE bapireturn1,lt_return_cj LIKE bapireturn1,ls_pa0002 LIKE p0002,ls_pa3527 LIKE p3527,lt_return2 LIKE bapireturn1,lt_key LIKE bapipakey.* 定义人事子范围 使用变量参考DATA:lv_btrtl TYPE p0001-btrtl.DATA:lv_tabix TYPE i.SORT lt_t529a BY massn.LOOP AT gt_alv INTO gs_alv.lv_tabix = sy-tabix.READ TABLE lt_t529a INTO DATA(ls_t529a) WITH KEY massn = gs_alv-massn BINARY SEARCH.IF sy-subrc = 0.
*定义信息类型是0000的数据类型ls_pprop-infty = '0000'.ls_pprop-fname = 'P0000-stat1'.ls_pprop-fval = ls_t529a-stat1 .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ls_pprop-infty = '0000'.ls_pprop-fname = 'P0000-stat2'.ls_pprop-fval = ls_t529a-stat2 .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ENDIF.*定义信息类型是0000的数据类型ls_pprop-infty = '0000'.ls_pprop-fname = 'P0000-MASSG'. "操作原因ls_pprop-fval = gs_alv-massg . "'A1'.APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.**定义信息类型是0001的数据类型
* ls_pprop-infty = '0001'.
* ls_pprop-fname = 'P0001-BTRTL'. "人事子范围
* ls_pprop-fval = gs_alv-btrtl . "'1010'.
* APPEND ls_pprop TO lt_pprop.
* CLEAR ls_pprop.
* 定义信息类型是0001的 人事自范围IF gs_alv-werks = '9300' OR gs_alv-werks = '9800' OR gs_alv-werks = '9900'.lv_btrtl = '1010'.ELSEIF gs_alv-werks = '9500'.lv_btrtl = '1020'.ELSEIF gs_alv-werks = '9600'.lv_btrtl = '1030'.ELSEIF gs_alv-werks = '9700'.lv_btrtl = '1040'.ENDIF.ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-BTRTL'. "人事子范围ls_pprop-fval = lv_btrtl .APPEND ls_pprop TO lt_pprop.CLEAR:ls_pprop,lv_btrtl.ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-ABKRS'. "工资范围ls_pprop-fval = gs_alv-abkrs .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-ANSVH'. "事业部ls_pprop-fval = gs_alv-ansvh .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-SACHP'. "人事管理员ls_pprop-fval = gs_alv-sachp .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-SACHZ'. "时间管理员ls_pprop-fval = gs_alv-sachz .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-SACHA'. "工资管理员ls_pprop-fval = gs_alv-sacha .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.*公司代码=人事范围=组??(后台字段关联关系相等)ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-BUKRS'. "公司代码ls_pprop-fval = gs_alv-werks ."'9900'.APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ls_pprop-infty = '0001'.ls_pprop-fname = 'P0001-SBMOD'. "组ls_pprop-fval = gs_alv-werks . " '9900'.APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.* 0002开始日期ls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-BEGDA'. "0002的开始日期ls_pprop-fval = gs_alv-begda .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.* 姓名 p0002-nachnls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-NACHN'. "ls_pprop-fval = gs_alv-nachn .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.* 英文名 p0002-vornals_pprop-infty = '0002'.ls_pprop-fname = 'P0002-VORNA'. "ls_pprop-fval = gs_alv-vorna .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.* 曾用名 P0002-NAME2ls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-NAME2'. "ls_pprop-fval = gs_alv-name2 .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.* 性别码 p0002-geschls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-GESCH'. "ls_pprop-fval = gs_alv-gesch .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.* 出生日期 p0002-gbdatls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-GBDAT'. "ls_pprop-fval = gs_alv-gbdat .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.* 出生地 p0002-gbortls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-GBORT'. "ls_pprop-fval = gs_alv-gbort .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.* 出生国家 p0002-gblndls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-GBLND'. "ls_pprop-fval = gs_alv-gblnd .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.* 省份p0002-gbdepls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-GBDEP'. "ls_pprop-fval = gs_alv-gbdep .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.* 国籍 p0002-natiols_pprop-infty = '0002'.ls_pprop-fname = 'P0002-NATIO'. "ls_pprop-fval = gs_alv-natio .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.* 婚姻状况 p0002-famstls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-FAMST'. "ls_pprop-fval = gs_alv-famst .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.* 人才类型 P0002-ZTELENTls_pprop-infty = '0002'.ls_pprop-fname = 'P0002-ZTELENT'. "ls_pprop-fval = gs_alv-ztelent .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.ls_pprop-infty = '3527'.ls_pprop-fname = 'P3527-HUKOT'. "ls_pprop-fval = gs_alv-hukot .APPEND ls_pprop TO lt_pprop.CLEAR ls_pprop.* 创建人员基本信息,主要用于创建对应的人员编码CALL FUNCTION 'HR_MAINTAIN_MASTERDATA'EXPORTING
* PERNR = '00000000'massn = gs_alv-massn "'Z0' "操作类型actio = 'INS' "插入操作/修改操作/删除操作tclas = 'A' "数据保留的事物类begda = gs_alv-begda "sy-datum "起始时间endda = gs_alv-endda "'99991231' "结束时间
* OBJPS =
* SEQNR =
* SPRPS =
* SUBTY =werks = gs_alv-werks "人事范围persg = gs_alv-persg "员工组persk = gs_alv-persk "员工子组plans = gs_alv-plans "职位
* DIALOG_MODE = '0'
* LUW_MODE = '1'
* NO_EXISTENCE_CHECK = ' '
* NO_ENQUEUE = ' 'IMPORTINGreturn = lt_returnreturn1 = lt_return1hr_return = lt_hr_returnTABLESproposed_values = lt_ppropmodified_keys = lt_pskey.IF lt_return-type = 'E'.CONCATENATE '创建人员编号失败' lt_return-message INTO gs_alv-zmessage.gs_alv-icon = '@5D@'.ELSE.gs_alv-zmessage = '创建人员编号成功'.gs_alv-icon = '@5B@'.READ TABLE lt_pskey INTO ls_pskey INDEX 1.IF sy-subrc = 0.gs_alv-pernr = ls_pskey-pernr.ENDIF.COMMIT WORK AND WAIT.*准备0002信息类型的数据,传入对应的数据ls_pa0002-pernr = gs_alv-pernr. "人员编号ls_pa0002-begda = gs_alv-begda. "开始日期ls_pa0002-endda = gs_alv-endda. "结束日期ls_pa0002-nachn = gs_alv-nachn. "姓名ls_pa0002-vorna = gs_alv-vorna. "英文名ls_pa0002-name2 = gs_alv-name2. "曾用名ls_pa0002-gesch = gs_alv-gesch. "性别码ls_pa0002-gbdat = gs_alv-gbdat. "出生日期ls_pa0002-gbort = gs_alv-gbort. "出生地ls_pa0002-gblnd = gs_alv-gblnd. "出生国家ls_pa0002-gbdep = gs_alv-gbdep. "省份
* ls_pa0002-natio = gs_alv-natio. "ls_pa0002-famst = gs_alv-famst. "婚姻状况ls_pa0002-ztelent = gs_alv-ztelent. "人才类型ls_pa3527-pernr = gs_alv-pernr. "人员编号ls_pa3527-begda = gs_alv-gbdat. "开始日期ls_pa3527-endda = gs_alv-endda. "结束日期ls_pa3527-hukot = gs_alv-hukot. "人才类型*锁定人员编码CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'EXPORTINGnumber = gs_alv-pernrIMPORTINGreturn = lt_return_sd.*修改0002信息类型的数据CALL FUNCTION 'HR_INFOTYPE_OPERATION'EXPORTINGinfty = '0002' "HR模块把人员信息进行了分类,不同的信息需要指定不同的信息类型number = ls_pa0002-pernr "人员编码subtype = ls_pa0002-subty "子信息类型objectid = ls_pa0002-objps "对象标识lockindicator = ls_pa0002-sprps "人力资源主数据记录的锁定标志validityend = ls_pa0002-endda "结束日期validitybegin = ls_pa0002-begda "开始日期recordnumber = ls_pa0002-seqnr "相同关键值信息类型记录的编号record = ls_pa0002 "人员信息表operation = 'MOD' "判断是插入还是修改(值域看ACTIO)tclas = 'A' "数据保留事务类,一般用默认即可dialog_mode = '0' "nocommit = '' "
* VIEW_IDENTIFIER =secondary_record = ls_pa3527IMPORTINGreturn = lt_return2key = lt_key.
*IF lt_return2 IS NOT INITIAL.CONCATENATE gs_alv-zmessage lt_return2-message '但是信息类型0002创建失败,请检查' INTO gs_alv-zmessage.gs_alv-icon = '@5D@'.ENDIF.CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'EXPORTINGnumber = gs_alv-pernrIMPORTINGreturn = lt_return_sd.ENDIF.MODIFY gt_alv FROM gs_alv INDEX lv_tabix.CLEAR:gs_alv,lt_pprop,ls_pprop,lt_pskey,ls_pskey,lt_return,lt_return1,lt_hr_return,lt_return_sd,lt_return_cj,ls_pa0002,lt_return2,lt_key,lv_tabix.ENDLOOP.