HR_INFOTYPE_OPERATION: 锁定人员编号 *锁定人员编号 CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE' EXPORTING number = pernr-pernr * IMPORTING * RETURN = . BAPI_EMPLOYEE_DEQUEUE: 解锁人员编号 *解除锁定 CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE' EXPORTING number = pernr-pernr * IMPORTING * RETURN = . HR_INFOTYPE_OPERATION: 保存、修改、删除、锁定infotype记录 *新建信息类型 保存、修改、删除、锁定 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' "INS,MOD,DEL,插入,修改,保存 * TCLAS = 'A' dialog_mode = '1' * NOCOMMIT = * VIEW_IDENTIFIER = * SECONDARY_RECORD = IMPORTING return = zreturn key = zpakey. COMMIT WORK. HR_READ_INFOTYPE: 读取Infotype里面的数据 读取该人员编号下的某种信息类型(如:人力资源主记录:信息类型0001)的数据 传入pernr 人员编号 infty 信息类型; 传出 subrc 返回码 infty_tab(表) 查询到的数据 DATA: lv_pernr TYPE pernr-pernr, "人员编号 lv_infty TYPE prelp-infty, "信息类型 lv_subrc TYPE sysubrc . DATA lt_0001 TYPE TABLE OF p0001. lv_pernr = '00000042'. lv_infty = '0001'. CALL FUNCTION 'HR_READ_INFOTYPE' EXPORTING * TCLAS = 'A' pernr = lv_pernr infty = lv_infty * BEGDA = '18000101' * ENDDA = '99991231' * SPRPS = '*' * BYPASS_BUFFER = ' ' * LEGACY_MODE = ' ' IMPORTING subrc = lv_subrc TABLES infty_tab = lt_0001 * EXCEPTIONS * INFTY_NOT_FOUND = 1 * INVALID_INPUT = 2 * OTHERS = 3 . IF sy-subrc <> 0. * Implement suitable error handling here ENDIF.
RH_STRUC_GET:
注意:
参数act_objid不可以直接赋值=‘10’,通过定义参数lv_objid(NUMC8类型)
常用评估路径:
O-O | 高级别的组织单位 |
O-O-OR | 较高级合法结构 |
O-O-P | 组织单位的内部人员(直接组织分配) |
O-O-S | 组织结构中组织单位之下的所有职位 |
O-O-S-BU | PMG: 财政状况的组织结构 |
O-O-S-P | 依据组织结构的人员分配 |
O-O-VACS | 评估外部发布 O B750 S (从 O 到 O 到空缺职位) |
O-O_DOWN | 组织结构(向低级排序) |
CALL FUNCTION 'RH_STRUC_GET' EXPORTING act_otype = lv_otype_o "O 对象类型 act_objid = lv_orgeh " 对象标识 act_wegid = 'O-O_DOWN' act_plvar = lv_plvar "01 计划版本 act_begda = sy-datum act_endda = sy-datum TABLES result_objec = lt_objec EXCEPTIONS no_plvar_found = 1 no_entry_found = 2 OTHERS = 3.
4.6 获取人员工资项
使用到了3个FM:
1) CU_READ_RGDIR薪资报表中用于获取期间
2) PYXX_READ_PAYROLL_RESULT根据索引号得到工资数据
3) CU_READ_RGDIR 获取索引
2、3一般搭配使用
函数PYXX_READ_PAYROLL_RESULT的PAYROLL_RESULT参数是动态类型的,
根据国家地区不同,参考不同的类型:
clusterid = 'RG'(英国)时,payroll_result参数的类型为PAYGB_RESULT
clusterid = 'CN'(中国)时,payroll_result参数的类型为PAYCN_RESULT
......
CALL FUNCTION 'CU_READ_RGDIR' EXPORTING persnr = pernr * BUFFER = * NO_AUTHORITY_CHECK = ' ' * IMPORTING * MOLGA = TABLES in_rgdir = gt_rgdir EXCEPTIONS no_record_found = 1 others = 2 . CALL FUNCTION 'CD_READ_LAST' EXPORTING begin_date = pn-begda end_date = pn-endda IMPORTING out_seqnr = gv_nr TABLES rgdir = gt_rgdir EXCEPTIONS no_record_found = 1 others = 2. IF sy-subrc = 0. CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT' EXPORTING * CLUSTERID = 'CN' employeenumber = pernr sequencenumber = gv_nr * READ_ONLY_BUFFER = ' ' * READ_ONLY_INTERNATIONAL = ' ' * ARC_GROUP = ' ' * CHECK_READ_AUTHORITY = 'X' * FILTER_CUMULATIONS = 'X' * CLIENT = * IMPORTING * VERSION_NUMBER_PAYVN = * VERSION_NUMBER_PCL2 = CHANGING payroll_result = gs_payresult EXCEPTIONS illegal_isocode_or_clusterid = 1 error_generating_import = 2 import_mismatch_error = 3 subpool_dir_full = 4 no_read_authority = 5 no_record_found = 6 versions_do_not_match = 7 error_reading_archive = 8 error_reading_relid = 9 others = 10 . ENDIF.