‎2006 Jul 24 2:53 PM
hi
can any one tell me where the valuse for overtime value, sick value stored ( i mean wage types) after the py is run
thanks
‎2006 Jul 24 4:03 PM
> hi
> can any one tell me where the valuse for overtime
> value, sick value stored ( i mean wage types) after
> the py is run
>
> thanks
HI AMIT,
thanx for ur reply
i am using FM cd_read_last so that i can get all the details from the cluster table.....
i need which wage types holds these information(overtime value,sick value, holiday value)
thanx
‎2006 Jul 24 3:04 PM
Hi sandeep,
1. U want some wage types,
after the payroll is run.
( the remuneration statement)
2. U won't get it DIRECTLY from any table.
(Its stored in cluster format)
3. Use this logic and FM.
DATA: myseqnr LIKE hrpy_rgdir-seqnr.
DATA : mypy TYPE payin_result.
DATA : myrt LIKE TABLE OF pc207 WITH HEADER LINE.
SELECT SINGLE seqnr FROM hrpy_rgdir
INTO myseqnr
WHERE pernr = mypernr
AND fpper = '200409'
AND srtza = 'A'.
IF sy-subrc = 0.
CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
EXPORTING
clusterid = 'IN'
employeenumber = mypernr
sequencenumber = myseqnr
CHANGING
payroll_result = mypy
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.
myrt[] = mypy-inter-rt.
READ TABLE myrt WITH KEY lgart = '1899'.
4. the internal table myrt
will contain what u require.
regards,
amit m.
‎2006 Jul 24 4:03 PM
> hi
> can any one tell me where the valuse for overtime
> value, sick value stored ( i mean wage types) after
> the py is run
>
> thanks
HI AMIT,
thanx for ur reply
i am using FM cd_read_last so that i can get all the details from the cluster table.....
i need which wage types holds these information(overtime value,sick value, holiday value)
thanx
‎2006 Jul 24 8:01 PM
You can check it in T512T table. It contains the list of wage types and their description. Hope this helps.
Sandeep
‎2006 Jul 25 3:04 PM
Sandeep,
Check this program. Its just a sample of how to do.
&----
*& Report Z_TEST2
*&
&----
*&
*&
&----
REPORT Z_TEST2.
TABLES : pernr,
pcl1,
pcl2,PA0015.
INFOTYPES: 0001,0007,0015.
TYPE-POOLS: SLIS.
DATA: num TYPE pc261-seqnr.
dat1 TYPE pc261-paydt,
dat2 TYPE pc261-paydt.
DATA:
GT_FIELDCAT TYPE
SLIS_T_FIELDCAT_ALV,
gt_layout TYPE slis_layout_alv.
INCLUDE rpclst00.
INCLUDE rpc2rx09.
INCLUDE rpc2rxx0.
INCLUDE rpc2rgg0.
INCLUDE rpcfdcg0.
INCLUDE rpcdatg0.
INCLUDE rpc2cd00.
INCLUDE rpc2ps00.
INCLUDE rpc2pt00.
INCLUDE rpcfdc10.
INCLUDE rpcfdc00.
INCLUDE rpppxd00.
INCLUDE rpppxd10.
INCLUDE rpcfvp09.
INCLUDE rpcfvpg0.
INCLUDE rpppxm00.
Data: begin of itab occurs 0,
pernr like pa0001-pernr,
bukrs like pernr-bukrs,
basic_hrs type pa0015-betrg,
basic_value type pa0015-betrg,
overtime_hours type pa0015-betrg,
overtime_value type pa0015-betrg,
holiday_value type pa0015-betrg,
sick_value type pa0015-betrg,
other_value type pa0015-betrg,
ni_value type pa0015-betrg,
total type pa0015-betrg,
end of itab.
START-OF-SELECTION.
GET pernr.
CLEAR ITAB.
rp-provide-from-last p0001 space pn-begda pn-endda.
if sy-subrc = 0.
if p0001-bukrs not in pnpbukrs.
reject.
endif.
endif.
itab-pernr = pernr-pernr.
itab-bukrs = pernr-bukrs.
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = pernr-pernr
BUFFER =
NO_AUTHORITY_CHECK = ' '
IMPORTING
MOLGA =
TABLES
in_rgdir = rgdir
EXCEPTIONS
NO_RECORD_FOUND = 1
OTHERS = 2
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'CD_READ_LAST'
EXPORTING
begin_date = pn-begda
end_date = pn-endda
IMPORTING
out_seqnr = num
TABLES
rgdir = rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
rx-key-pernr = pernr-pernr.
rx-key-seqno = num.
rp-imp-c2-rg.
LOOP AT rt where lgart = '/5UT'. "Base hrs
itab-basic_hrs = rt-anzhl.
WRITE: / wa_rt-lgart,
t512t-lgtxt,
wa_rt-betrg CURRENCY payroll-inter-versc-waers.
ENDLOOP.
LOOP AT rt where lgart = '1002'. "Regular Salary
itab-basic_value = rt-betrg.
itab-total = rt-betrg.
ENDLOOP.
LOOP AT rt where lgart = '/852'. "Overtime hours
itab-overtime_hours = rt-anzhl.
ENDLOOP.
LOOP AT rt where lgart = 'M805'. "Overtime value 1.0 times
itab-overtime_value = rt-betrg.
itab-total = itab-total + rt-betrg.
ENDLOOP.
LOOP AT rt where lgart = 'M850'. "Holiday Value
itab-holiday_value = rt-betrg.
itab-total = itab-total + rt-betrg.
ENDLOOP.
LOOP AT rt where lgart = '/842'. "Sick value
itab-sick_value = rt-betrg.
itab-total = itab-total + rt-betrg.
ENDLOOP.
LOOP AT rt where lgart = 'MJ40'. "Other
itab-other_value = rt-betrg.
itab-total = itab-total + rt-betrg.
ENDLOOP.
LOOP AT rt where lgart = '1002'. " NI. idi correct kaadu, something pettesa
itab-ni_value = rt-betrg.
itab-total = itab-total + rt-betrg.
ENDLOOP.
READ TABLE rgdir WITH KEY seqnr = num.
IF sy-subrc = 0.
*
LOOP AT rt WHERE lgart = '1027'.
WRITE:/ pernr-pernr,pernr-sname,rt-anzhl,rt-betrg.
*
ENDLOOP.
LOOP AT rt WHERE lgart = '/852'.
WRITE: rt-anzhl.
ENDLOOP.
*
LOOP AT rt WHERE lgart = '/301'.
WRITE: rt-betrg.
ENDLOOP.
LOOP AT crt where lgart = '1500'.
WRITE: CRT-BETRG.
ENDLOOP.
*
LOOP AT rt where lgart = '/101'.
write: rt-betrg.
*
ENDLOOP.
*ENDIF.
IF num NE 0.
WRITE :/'record exists'.
ENDIF.
append itab.
End-of-selection.
perform build_layout.
perform fieldcat_init using GT_FIELDCAT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = gt_layout
IT_FIELDCAT = gt_fieldcat[]
TABLES
T_OUTTAB = itab
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
*FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
.
IF rs_selfield-fieldname = 'EBELN'.
SET PARAMETER ID 'BES' FIELD rs_selfield-value.
CALL TRANSACTION 'ME23N'.
ENDIF.
*ENDFORM. "user_command
&----
*& Form FIELDCAT_INIT
&----
text
----
-->RT_FIELDCATtext
----
FORM FIELDCAT_INIT
USING RT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: POS TYPE I VALUE 1.
clear ls_fieldcat.
POS = POS + 1.
LS_FIELDCAT-COL_POS = POS.
LS_FIELDCAT-FIELDNAME = 'PERNR'.
ls_fieldcat-seltext_m = 'PERNR'.
ls_fieldcat-inttype = 'c'.
ls_fieldcat-outputlen = '8'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'BUKRS'.
ls_fieldcat-seltext_m = 'Company Code'.
ls_fieldcat-inttype = 'c'.
ls_fieldcat-outputlen = '4'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'BASIC_HRS'.
ls_fieldcat-seltext_m = 'Basic Hours'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'BASIC_VALUE'.
ls_fieldcat-seltext_m = 'Basic Value'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'OVERTIME_HOURS'.
ls_fieldcat-seltext_m = 'Overtime Hours'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'OVERTIME_VALUE'.
ls_fieldcat-seltext_m = 'Overtime Value'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-do_sum = 'X'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'HOLIDAY_VALUE'.
ls_fieldcat-seltext_m = 'Holiday Value'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'SICK_VALUE'.
ls_fieldcat-seltext_m = 'Sick Value'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'OTHER_VALUE'.
ls_fieldcat-seltext_m = 'Other Value'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'TOTAL_VALUE'.
ls_fieldcat-seltext_m = 'TOTAL'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
ENDFORM. "fieldcat_init
&----
*& Form bulid_layout
&----
text
----
FORM build_layout .
gt_layout-no_input = 'X'.
gt_layout-colwidth_optimize = 'X'.
ENDFORM. " bulid_layout
‎2006 Jul 25 9:13 PM
&----
*& Report Z_TEST2
*&
&----
*&
*&
&----
REPORT Z_TEST2.
TABLES : pernr,
pcl1,
pcl2,PA0015.
INFOTYPES: 0001,0007,0015.
TYPE-POOLS: SLIS.
DATA: num TYPE pc261-seqnr.
dat1 TYPE pc261-paydt,
dat2 TYPE pc261-paydt.
DATA:
GT_FIELDCAT TYPE
SLIS_T_FIELDCAT_ALV,
gt_layout TYPE slis_layout_alv.
Data: gt_t_sort TYPE slis_t_sortinfo_alv.
INCLUDE rpclst00.
INCLUDE rpc2rx09.
INCLUDE rpc2rxx0.
INCLUDE rpc2rgg0.
INCLUDE rpcfdcg0.
INCLUDE rpcdatg0.
INCLUDE rpc2cd00.
INCLUDE rpc2ps00.
INCLUDE rpc2pt00.
INCLUDE rpcfdc10.
INCLUDE rpcfdc00.
INCLUDE rpppxd00.
INCLUDE rpppxd10.
INCLUDE rpcfvp09.
INCLUDE rpcfvpg0.
INCLUDE rpppxm00.
Data: begin of itab occurs 0,
pernr like pa0001-pernr,
bukrs like pernr-bukrs,
basic_hrs type pa0015-betrg,
basic_value type pa0015-betrg,
overtime_hours type pa0015-betrg,
overtime_value type pa0015-betrg,
holiday_value type pa0015-betrg,
sick_value type pa0015-betrg,
other_value type pa0015-betrg,
ni_value type pa0015-betrg,
total type pa0015-betrg,
end of itab.
START-OF-SELECTION.
GET pernr.
CLEAR ITAB.
rp-provide-from-last p0001 space pn-begda pn-endda.
if sy-subrc = 0.
if p0001-bukrs not in pnpbukrs.
reject.
endif.
endif.
itab-pernr = pernr-pernr.
itab-bukrs = pernr-bukrs.
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = pernr-pernr
BUFFER =
NO_AUTHORITY_CHECK = ' '
IMPORTING
MOLGA =
TABLES
in_rgdir = rgdir
EXCEPTIONS
NO_RECORD_FOUND = 1
OTHERS = 2
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'CD_READ_LAST'
EXPORTING
begin_date = pn-begda
end_date = pn-endda
IMPORTING
out_seqnr = num
TABLES
rgdir = rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
rx-key-pernr = pernr-pernr.
rx-key-seqno = num.
rp-imp-c2-rg.
LOOP AT rt where lgart = '/5UT'. "Base hrs
itab-basic_hrs = rt-anzhl.
WRITE: / wa_rt-lgart,
t512t-lgtxt,
wa_rt-betrg CURRENCY payroll-inter-versc-waers.
ENDLOOP.
LOOP AT rt where lgart = '1002'. "Regular Salary
itab-basic_value = rt-betrg.
itab-total = rt-betrg.
ENDLOOP.
LOOP AT rt where lgart = '/852'. "Overtime hours
itab-overtime_hours = rt-anzhl.
ENDLOOP.
LOOP AT rt where lgart = 'M805'. "Overtime value 1.0 times
itab-overtime_value = rt-betrg.
itab-total = itab-total + rt-betrg.
ENDLOOP.
LOOP AT rt where lgart = 'M850'. "Holiday Value
itab-holiday_value = rt-betrg.
itab-total = itab-total + rt-betrg.
ENDLOOP.
LOOP AT rt where lgart = '/842'. "Sick value
itab-sick_value = rt-betrg.
itab-total = itab-total + rt-betrg.
ENDLOOP.
LOOP AT rt where lgart = 'MJ40'. "Other
itab-other_value = rt-betrg.
itab-total = itab-total + rt-betrg.
ENDLOOP.
LOOP AT rt where lgart = '1002'. " NI. idi correct kaadu, something pettesa
itab-ni_value = rt-betrg.
itab-total = itab-total + rt-betrg.
ENDLOOP.
READ TABLE rgdir WITH KEY seqnr = num.
IF sy-subrc = 0.
*
LOOP AT rt WHERE lgart = '1027'.
WRITE:/ pernr-pernr,pernr-sname,rt-anzhl,rt-betrg.
*
ENDLOOP.
LOOP AT rt WHERE lgart = '/852'.
WRITE: rt-anzhl.
ENDLOOP.
*
LOOP AT rt WHERE lgart = '/301'.
WRITE: rt-betrg.
ENDLOOP.
LOOP AT crt where lgart = '1500'.
WRITE: CRT-BETRG.
ENDLOOP.
*
LOOP AT rt where lgart = '/101'.
write: rt-betrg.
*
ENDLOOP.
*ENDIF.
IF num NE 0.
WRITE :/'record exists'.
ENDIF.
append itab.
End-of-selection.
perform build_layout.
perform sub_build_sort_catalogue using gt_t_sort.
perform fieldcat_init using GT_FIELDCAT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_SORT = gt_t_sort
IS_LAYOUT = gt_layout
IT_FIELDCAT = gt_fieldcat[]
TABLES
T_OUTTAB = itab
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
*FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
.
IF rs_selfield-fieldname = 'EBELN'.
SET PARAMETER ID 'BES' FIELD rs_selfield-value.
CALL TRANSACTION 'ME23N'.
ENDIF.
*ENDFORM. "user_command
&----
*& Form sub_Build_sort_catalogue
&----
Building Sort Catalog
----
<-- L_T_SORT : Internal table for sort catalog
----
FORM sub_build_sort_catalogue CHANGING l_t_sort TYPE slis_t_sortinfo_alv.
DATA: l_v_sortcat TYPE slis_sortinfo_alv.
CLEAR l_v_sortcat.
Sort the fields with Planned Incoming Payment in alv
l_v_sortcat-spos = '1'.
l_v_sortcat-fieldname = 'BUKRS'.
*l_v_sortcat-subtot = 'X'.
l_v_sortcat-up = 'X'.
APPEND l_v_sortcat TO l_t_sort.
CLEAR l_v_sortcat.
ENDFORM. " sub_Build_sort_catalogue
&----
*& Form FIELDCAT_INIT
&----
text
----
-->RT_FIELDCATtext
----
FORM FIELDCAT_INIT
USING RT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: POS TYPE I VALUE 1.
clear ls_fieldcat.
POS = POS + 1.
LS_FIELDCAT-COL_POS = POS.
LS_FIELDCAT-FIELDNAME = 'PERNR'.
ls_fieldcat-seltext_m = 'PERNR'.
ls_fieldcat-inttype = 'c'.
ls_fieldcat-outputlen = '8'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'BUKRS'.
ls_fieldcat-seltext_m = 'Company Code'.
ls_fieldcat-inttype = 'c'.
ls_fieldcat-outputlen = '4'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'BASIC_HRS'.
ls_fieldcat-seltext_m = 'Basic Hours'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'BASIC_VALUE'.
ls_fieldcat-seltext_m = 'Basic Value'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'OVERTIME_HOURS'.
ls_fieldcat-seltext_m = 'Overtime Hours'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'OVERTIME_VALUE'.
ls_fieldcat-seltext_m = 'Overtime Value'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-do_sum = 'X'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'HOLIDAY_VALUE'.
ls_fieldcat-seltext_m = 'Holiday Value'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'SICK_VALUE'.
ls_fieldcat-seltext_m = 'Sick Value'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'OTHER_VALUE'.
ls_fieldcat-seltext_m = 'Other Value'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'TOTAL_VALUE'.
ls_fieldcat-seltext_m = 'TOTAL'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
ENDFORM. "fieldcat_init
&----
*& Form bulid_layout
&----
text
----
FORM build_layout .
gt_layout-no_input = 'X'.
gt_layout-colwidth_optimize = 'X'.
gt_LAYOUT-TOTALS_TEXT = 'TOTAL'.
gt_LAYOUT-ZEBRA = 'X'.
ENDFORM. " bulid_layout
‎2006 Jul 26 3:26 PM
&----
*& Report Z_TEST2
*&
&----
*&
*&
&----
REPORT Z_TEST2.
TABLES : pernr,
pcl1,
pcl2,PA0015.
INFOTYPES: 0001,0007,0015.
TYPE-POOLS: SLIS.
INCLUDE rpclst00.
INCLUDE rpc2rx09.
INCLUDE rpc2rxx0.
INCLUDE rpc2rgg0.
INCLUDE rpcfdcg0.
INCLUDE rpcdatg0.
INCLUDE rpc2cd00.
INCLUDE rpc2ps00.
INCLUDE rpc2pt00.
INCLUDE rpcfdc10.
INCLUDE rpcfdc00.
INCLUDE rpppxd00.
INCLUDE rpppxd10.
INCLUDE rpcfvp09.
INCLUDE rpcfvpg0.
INCLUDE rpppxm00.
select-options: s_kostl for p0001-kostl.
DATA: num TYPE pc261-seqnr.
DATA:
GT_FIELDCAT TYPE
SLIS_T_FIELDCAT_ALV,
gt_layout TYPE slis_layout_alv.
Data: gt_t_sort TYPE slis_t_sortinfo_alv.
Data: begin of itab occurs 0,
pernr like pa0001-pernr,
kostl like pernr-kostl,
basic_hrs type pa0015-betrg,
basic_value type pa0015-betrg,
overtime_hours type pa0015-betrg,
overtime_value(8) type p decimals 2,
holiday_value type pa0015-betrg,
sick_value type pa0015-betrg,
other_value type pa0015-betrg,
ni_value type pa0015-betrg,
total(8) type p decimals 2,
end of itab.
START-OF-SELECTION.
GET pernr.
CLEAR ITAB.
rp-provide-from-last p0001 space pn-begda pn-endda.
if sy-subrc = 0.
if p0001-kostl not in s_kostl.
reject.
endif.
endif.
itab-pernr = pernr-pernr.
itab-kostl = p0001-kostl.
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = pernr-pernr
BUFFER =
NO_AUTHORITY_CHECK = ' '
IMPORTING
MOLGA =
TABLES
in_rgdir = rgdir
EXCEPTIONS
NO_RECORD_FOUND = 1
OTHERS = 2
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'CD_READ_LAST'
EXPORTING
begin_date = pn-begda
end_date = pn-endda
IMPORTING
out_seqnr = num
TABLES
rgdir = rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
rx-key-pernr = pernr-pernr.
rx-key-seqno = num.
rp-imp-c2-rg.
LOOP AT rt where lgart = '/5UT'. "Base hrs
itab-basic_hrs = rt-anzhl.
WRITE: / wa_rt-lgart,
t512t-lgtxt,
wa_rt-betrg CURRENCY payroll-inter-versc-waers.
ENDLOOP.
LOOP AT rt where lgart = '1002'. "Regular Salary
itab-basic_value = rt-betrg.
itab-total = rt-betrg.
ENDLOOP.
LOOP AT rt where lgart = '/852'. "Overtime hours
itab-overtime_hours = rt-anzhl.
ENDLOOP.
LOOP AT rt where lgart = 'M805'. "Overtime value 1.0 times
itab-overtime_value = rt-betrg.
itab-total = itab-total + rt-betrg.
ENDLOOP.
LOOP AT rt where lgart = 'M850'. "Holiday Value
itab-holiday_value = rt-betrg.
itab-total = itab-total + rt-betrg.
ENDLOOP.
LOOP AT rt where lgart = '/842'. "Sick value
itab-sick_value = rt-betrg.
itab-total = itab-total + rt-betrg.
ENDLOOP.
LOOP AT rt where lgart = 'MJ40'. "Other
itab-other_value = rt-betrg.
itab-total = itab-total + rt-betrg.
ENDLOOP.
LOOP AT rt where lgart = '1002'. " NI. idi correct kaadu, something pettesa
itab-ni_value = rt-betrg.
itab-total = itab-total + rt-betrg.
ENDLOOP.
READ TABLE rgdir WITH KEY seqnr = num.
IF sy-subrc = 0.
*
LOOP AT rt WHERE lgart = '1027'.
WRITE:/ pernr-pernr,pernr-sname,rt-anzhl,rt-betrg.
*
ENDLOOP.
LOOP AT rt WHERE lgart = '/852'.
WRITE: rt-anzhl.
ENDLOOP.
*
LOOP AT rt WHERE lgart = '/301'.
WRITE: rt-betrg.
ENDLOOP.
LOOP AT crt where lgart = '1500'.
WRITE: CRT-BETRG.
ENDLOOP.
*
LOOP AT rt where lgart = '/101'.
write: rt-betrg.
*
ENDLOOP.
*ENDIF.
IF num NE 0.
WRITE :/'record exists'.
ENDIF.
append itab.
End-of-selection.
perform build_layout.
perform sub_build_sort_catalogue using gt_t_sort.
perform fieldcat_init using GT_FIELDCAT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
i_structure_name = 'ITAB'
IT_SORT = gt_t_sort[]
IS_LAYOUT = gt_layout
IT_FIELDCAT = gt_fieldcat[]
TABLES
T_OUTTAB = itab
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
*FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
.
IF rs_selfield-fieldname = 'EBELN'.
SET PARAMETER ID 'BES' FIELD rs_selfield-value.
CALL TRANSACTION 'ME23N'.
ENDIF.
*ENDFORM. "user_command
&----
*& Form sub_Build_sort_catalogue
&----
Building Sort Catalog
----
<-- L_T_SORT : Internal table for sort catalog
----
FORM sub_build_sort_catalogue CHANGING l_t_sort TYPE slis_t_sortinfo_alv.
DATA: l_v_sortcat TYPE slis_sortinfo_alv.
CLEAR l_v_sortcat.
Sort the fields with Planned Incoming Payment in alv
l_v_sortcat-spos = '1'.
l_v_sortcat-fieldname = 'KOSTL'.
l_v_sortcat-subtot = 'X'.
l_v_sortcat-up = 'X'.
APPEND l_v_sortcat TO l_t_sort.
CLEAR l_v_sortcat.
ENDFORM. " sub_Build_sort_catalogue
&----
*& Form FIELDCAT_INIT
&----
text
----
-->RT_FIELDCATtext
----
FORM FIELDCAT_INIT
USING RT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: POS TYPE I VALUE 1.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'kostl'.
ls_fieldcat-seltext_m = 'Company Code'.
ls_fieldcat-key = ' '. "SUBTOTAL KEY
ls_fieldcat-inttype = 'c'.
ls_fieldcat-outputlen = '4'.
append ls_fieldcat to rt_fieldcat.
*
ls_fieldcat-fieldname = 'KOSTL'.
ls_fieldcat-tabname = 'ITAB'.
*FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT
ls_fieldcat-key = ' '. "SUBTOTAL KEY
ls_fieldcat-no_out = ' '.
ls_fieldcat-seltext_l = 'Cost Centre'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
LS_FIELDCAT-COL_POS = POS.
LS_FIELDCAT-FIELDNAME = 'PERNR'.
ls_fieldcat-seltext_m = 'PERNR'.
ls_fieldcat-inttype = 'c'.
ls_fieldcat-outputlen = '8'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'BASIC_HRS'.
ls_fieldcat-seltext_m = 'Basic Hours'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'BASIC_VALUE'.
ls_fieldcat-seltext_m = 'Basic Value'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'OVERTIME_HOURS'.
ls_fieldcat-seltext_m = 'Overtime Hours'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
*
*
*
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'OVERTIME_VALUE'.
ls_fieldcat-seltext_m = 'Overtime Value'.
ls_fieldcat-inttype = 'CURR'.
*ls_fieldcat-do_sum = 'X'. "SUM UPON DISPLAY
*ls_fieldcat-no_out = ' '.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
*clear fieldcat_in.
ls_fieldcat-fieldname = 'OVERTIME_VALUE'.
ls_fieldcat-tabname = 'ITAB'.
ls_fieldcat-ref_fieldname = 'MENGE'. "<- REF FIELD IN THE DICTIONNARY
ls_fieldcat-ref_tabname = 'MSEG'. "<- REF TABLE IN THE DICTIONNARY
ls_fieldcat-no_out = ' '.
ls_fieldcat-do_sum = 'X'. "SUM UPON DISPLAY
ls_fieldcat-seltext_s = 'Overtime Value'.
append ls_fieldcat to rt_fieldcat.
*
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'HOLIDAY_VALUE'.
ls_fieldcat-seltext_m = 'Holiday Value'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'SICK_VALUE'.
ls_fieldcat-seltext_m = 'Sick Value'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'OTHER_VALUE'.
ls_fieldcat-seltext_m = 'Other Value'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
append ls_fieldcat to rt_fieldcat.
*
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
ls_fieldcat-fieldname = 'TOTAL'.
ls_fieldcat-seltext_m = 'TOTAL'.
ls_fieldcat-inttype = 'CURR'.
ls_fieldcat-outputlen = '15'.
ls_fieldcat-do_sum = 'X'. "SUM UPON DISPLAY
append ls_fieldcat to rt_fieldcat.
*ls_fieldcat-tabname = 'ITAB'.
*ls_fieldcat-ref_fieldname = 'MENGE'. "<- REF FIELD IN THE DICTIONNARY
*ls_fieldcat-ref_tabname = 'MSEG'. "<- REF TABLE IN THE DICTIONNARY
*ls_fieldcat-no_out = ' '.
*append ls_fieldcat to rt_fieldcat.
ENDFORM. "fieldcat_init
&----
*& Form bulid_layout
&----
text
----
FORM build_layout .
gt_layout-no_input = 'X'.
gt_layout-colwidth_optimize = 'X'.
gt_LAYOUT-TOTALS_TEXT = 'TOTAL'.
gt_LAYOUT-ZEBRA = 'X'.
ENDFORM. " bulid_layout