有两种方法可以获得员工的molga
方法一:使用read_molga类,根据员工的personnel number获得molga
在这种方法下,需要注意read_molga类的实例,是通过工厂类cl_hrpa_masterdata_factory的get_read_molga
方法获得的。
方法二:根据员工在infotype 0001中维护的人事范围获得,查询表t500p获得molga
下面是通过两种方法获得员工molga的程序代码示例:
注:该程序使用的LDB是 PNPCE
REPORT ztest13.
tables: pernr.
nodes: peras.
infotypes: 0001.
get peras.
"方法一:使用read_molga类,根据员工的personnel number获得molga
DATA: read_molga TYPE REF TO cl_hrpa_molga,
molga type molga.
FIELD-SYMBOLS: <gs_p0001> type p0001.
cl_hrpa_masterdata_factory=>get_read_molga(
IMPORTING read_molga = read_molga
).
molga = read_molga->read_molga_by_pernr( tclas = 'A' pernr = pernr-pernr ).
write : / 'way 1 : molga of ', pernr-pernr , molga.
"方法二:根据员工在infotype 0001中维护的人事范围获得,查询表t500p获得
LOOP AT p0001 ASSIGNING <gs_p0001> WHERE begda <= pn-endda
AND endda >= pn-begda.
data: ls_t500p type t500p.
ls_t500p = cl_hr_t500p=>read( <gs_p0001>-werks ).
if ls_t500p is not initial.
write: / 'way 2 : molga of ', pernr-pernr ,ls_t500p-molga.
endif.
endloop.