cancel
Showing results for 
Search instead for 
Did you mean: 

retrieve the data from Cluster table ZL

Former Member
0 Kudos

how to display the data in Cluster table ZL? How to retrieve the data from ZL ? Is any Tcode is tehre to view the data in ZL?

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

Look at the below link

http://fuller.mit.edu/hr/cluster_tables.html

Regards

Sudheer

Former Member
0 Kudos

hi,

report zporgr0100

line-size 252

line-count 60(1)

no standard page heading

message-id zx.

***********************************************************************

  • Database Tables & Infotypes

***********************************************************************

tables: pcl1, " HR Cluster1

pcl2, " HR Cluster1

pa0003, " Master data - Payroll Status

cskt, " Cost Center Texts

t528t, " Positions Texts

t513s, " Job Titles

pernr, " Logical PNP

t001p, " Personnel Subarea

t500p, " Personnel Area

t501, " Employee Group

t503k, " Employee Subgroup

csks. " Cost Center

infotypes:0000,0001.

*include rpclst00.

include rpc2rx00.

include rpc2rxx0.

include rpc2cd00.

*include rpc2ps00.

*include rpc2pt00.

*include rpcfvp00.

*include rpcfdc10.

*include rpcfdc00.

include rpppxd00.

include rpppxd10.

***********************************************************************

  • Declaration of Internal Tables

***********************************************************************

  • Internal Table for Output Data

data: begin of rep_tab occurs 0,

kostl like pa0001-kostl, " Cost Center

pernr like pa0001-pernr, " Personal Number

ename like pa0001-ename, " Employee Name

ctext like cskt-ltext, " Cost Center Text

ptext like t528t-plstx, " Position Text

ot1 type p decimals 2, " Jan OT Amount

ot2 type p decimals 2, " Feb OT Amount

ot3 type p decimals 2, " Mar OT Amount

ot4 type p decimals 2, " Apr OT Amount

ot5 type p decimals 2, " May OT Amount

ot6 type p decimals 2, " Jun OT Amount

ot7 type p decimals 2, " Jul OT Amount

ot8 type p decimals 2, " Aug OT Amount

ot9 type p decimals 2, " Sep OT Amount

ot10 type p decimals 2, " Oct OT Amount

ot11 type p decimals 2, " Nov OT Amount

ot12 type p decimals 2, " Dec OT Amount

ott type p decimals 2, " Total OT Amount

end of rep_tab.

***********************************************************************

  • Declaration of Variables

***********************************************************************

data: v_mon(2) type n, " Month

v_no type i, " Data Lines

v_year(4) type c, " Year

v_date like sy-datum, " Date

v_date1 like sy-datum, " Date

v_seqnr like pc261-seqnr. " Sequence No.

***********************************************************************

  • Declaration of Constants

***********************************************************************

data: c_type like hrp1001-otype value 'S', " Object Type

c_kokrs like cskt-kokrs value '1000', " Controlling Area

c_date1 like sy-datum value '18000101', " Date

c_date2 like sy-datum value '99991231', " Date

c_x type c value 'X', " Sign

  • c_mon(2) type c value '01', " Month

c_val1(2) type c value '31', " Date

c_val2(2) type c value '12', " Month Type

c_val like p0041-dar01 value '01', " Date Type

c_lgart1 like p0008-lga01 value '0722', " Wage Type

c_lgart2 like p0008-lga01 value '0723', " Wage Type

c_1(2) type n value '01', " Month1

c_2(2) type n value '02', " Month2

c_3(2) type n value '03', " Month3

c_4(2) type n value '04', " Month4

c_5(2) type n value '05', " Month5

c_6(2) type n value '06', " Month6

c_7(2) type n value '07', " Month7

c_8(2) type n value '08', " Month8

c_9(2) type n value '09', " Month9

c_10(2) type n value '10', " Month10

c_11(2) type n value '11', " Month11

c_12(2) type n value '12'. " Month12

***********************************************************************

  • Selection-screen

***********************************************************************

parameters:

p_year like pc2b0-pabrj obligatory. " Payroll Year

***********************************************************************

  • At selection-screen

***********************************************************************

at selection-screen.

  • Validate the Selection Screen fields

perform validate_screen.

***********************************************************************

  • Start-of-Selection

***********************************************************************

start-of-selection.

  • Selection of Period

perform get_period.

  • Get PERNR from LDB

get pernr.

  • Get the Master data from infotype 0001

perform get_master_data.

***********************************************************************

  • Top-of-page

***********************************************************************

top-of-page.

  • Write the Report and Column Headings

perform top_of_page.

***********************************************************************

  • End-of-Page

***********************************************************************

end-of-page.

write /1(252) sy-uline.

***********************************************************************

  • End-of-Selection

***********************************************************************

end-of-selection.

  • Display the Output Report.

perform display_report.

***********************************************************************

  • Form-Routines

***********************************************************************

&----


*& Form validate_screen

&----


  • Validation of selection Screen fields

----


form validate_screen.

  • Validation of Cost Center

clear csks.

if not pnpkostl[] is initial.

select single kostl

into csks-kostl

from csks

where kostl in pnpkostl.

if sy-subrc <> 0.

message e999 with 'Invalid Cost Center'(003).

endif.

endif.

  • Validation of Personnel Number

clear pa0003.

if not pnppernr[] is initial.

select pernr

from pa0003 up to 1 rows

into pa0003-pernr

where pernr in pnppernr.

endselect.

if sy-subrc <> 0.

message e999 with 'Incorrect Personal Number Entered'(002).

endif.

endif.

  • Validation of Personnel Area

clear t500p.

if not pnpwerks[] is initial.

select persa

from t500p up to 1 rows

into t500p-persa

where persa in pnpwerks.

endselect.

if sy-subrc <> 0.

message e999 with 'Incorrect Personnel Area Entered'(001).

endif.

endif.

  • Validation of Personnel Sub Area

clear t001p.

if not pnpbtrtl[] is initial.

select btrtl

from t001p up to 1 rows

into t001p-btrtl

where btrtl in pnpbtrtl.

endselect.

if sy-subrc <> 0.

message e999 with 'Incorrect Personnel Sub Area Entered'(037).

endif.

endif.

  • Validation of Employee Group

clear t501.

if not pnppersg[] is initial.

select persg

from t501 up to 1 rows

into t501-persg

where persg in pnppersg.

endselect.

if sy-subrc <> 0.

message e999 with 'Incorrect Employee Group Entered'(038).

endif.

endif.

  • Validation of Employee Sub Group

clear t503k.

if not pnppersk[] is initial.

select persk

from t503k up to 1 rows

into t503k-persk

where persk in pnppersk.

endselect.

if sy-subrc <> 0.

message e999 with 'Incorrect Employee Sub Group Entered'(039).

endif.

endif.

endform. "validate_screen

&----


*& Form get_period

&----


  • Get the Correct Period based on Selection screen selection

----


form get_period.

clear: v_year,v_mon, v_date, v_date1.

v_year = sy-datum+0(4).

v_mon = sy-datum+4(2).

if pnptimr1 = c_x. " Current Date

pnpbegda = sy-datum.

pnpendda = sy-datum.

elseif pnptimr2 = c_x. " Current Month

concatenate v_year v_mon c_val into v_date.

concatenate v_year v_mon c_val1 into v_date1.

pnpbegda = v_date.

pnpendda = v_date1.

elseif pnptimr3 = c_x. " Current Year

concatenate v_year c_val c_val into v_date.

concatenate v_year c_val2 c_val1 into v_date1.

pnpbegda = v_date.

pnpendda = v_date1.

elseif pnptimr4 = c_x. " Upto Today

pnpbegda = c_date1.

pnpendda = sy-datum.

elseif pnptimr5 = c_x. " From Today

pnpbegda = sy-datum.

pnpendda = c_date2.

else.

if ( pnpbegda is initial and pnpendda is initial ).

pnpbegda = c_date1.

pnpendda = c_date2.

elseif pnpbegda is initial and not pnpendda is initial.

pnpbegda = c_date1.

pnpendda = pnpendda.

elseif not ( pnpbegda is initial and pnpendda is initial ).

pnpbegda = pnpbegda.

pnpendda = pnpendda.

endif.

endif.

endform. "get_period

&----


*& Form get_master_data

&----


  • Get the Master Data from Database Tables PA0001,0002,0003

*----


form get_master_data.

  • Get data from Respective Infotypes

rp_provide_from_last p0001 space pnpbegda pnpendda.

if p0001-kostl in pnpkostl.

rep_tab-kostl = p0001-kostl.

rep_tab-pernr = p0001-pernr.

rep_tab-ename = p0001-ename.

  • Get the Position Text

clear t528t-plstx.

select single plstx into t528t-plstx from t528t

where plans = p0001-plans and

otype = c_type and

sprsl = sy-langu.

if sy-subrc = 0.

rep_tab-ptext = t528t-plstx.

endif.

  • Get the Cost Center Text

clear cskt-ltext.

select single ltext into cskt-ltext from cskt

where spras = sy-langu and

kokrs = c_kokrs and

kostl = p0001-kostl.

if sy-subrc = 0.

rep_tab-ctext = cskt-ltext.

endif.

  • Get the Overtime Payment Data

perform get_ot_data.

rep_tab-ott = rep_tab-ot1 + rep_tab-ot2 + rep_tab-ot3 +

rep_tab-ot4 + rep_tab-ot5 + rep_tab-ot6 +

rep_tab-ot7 + rep_tab-ot8 + rep_tab-ot9 +

rep_tab-ot10 + rep_tab-ot11 + rep_tab-ot12.

append rep_tab.

clear rep_tab.

endif.

sort rep_tab by kostl pernr.

delete rep_tab where kostl = ' '.

delete rep_tab where ott = 0.

endform. "get_master_data

&----


*& Form get_ot_data

&----


  • Get the Overtime Payment Data

*----


form get_ot_data.

cd-key = pernr-pernr.

rp-imp-c2-cd.

sort rgdir by seqnr.

  • To get sequence number for the payroll period

loop at rgdir where void is initial

and reversal is initial

and outofseq is initial

and srtza eq 'A'.

if rgdir-fpper+0(4) = p_year.

  • To consider offcycle run data

if not rgdir-ocrsn is initial.

v_seqnr = rgdir-seqnr.

exit.

endif.

v_seqnr = rgdir-seqnr.

endif.

if not v_seqnr is initial.

perform import_rx.

endif.

perform process_wagetypes.

endloop.

endform. "get_ot_data

include rpppxm00.

&----


*& Form Import_rx

&----


  • Import the RX data from Clusters

----


form import_rx.

rx-key-pernr = cd-key-pernr.

rx-key-seqno = v_seqnr.

rp-init-buffer.

rp-imp-c2-rx.

endform. " Import_rx

&----


*& Form Process_wagetypes

&----


  • Calculate the Overtime Amount based on Wage types

----


form process_wagetypes.

loop at rt.

if rt-lgart = c_lgart1 or rt-lgart = c_lgart2.

if rgdir-fpper+0(4) = p_year.

v_mon = rgdir-fpper+4(2).

case v_mon .

when c_1.

rep_tab-ot1 = rep_tab-ot1 + rt-betrg.

when c_2.

rep_tab-ot2 = rep_tab-ot2 + rt-betrg.

when c_3.

rep_tab-ot3 = rep_tab-ot3 + rt-betrg.

when c_4.

rep_tab-ot4 = rep_tab-ot4 + rt-betrg.

when c_5.

rep_tab-ot5 = rep_tab-ot5 + rt-betrg.

when c_6.

rep_tab-ot6 = rep_tab-ot6 + rt-betrg.

when c_7.

rep_tab-ot7 = rep_tab-ot7 + rt-betrg.

when c_8.

rep_tab-ot8 = rep_tab-ot8 + rt-betrg.

when c_9.

rep_tab-ot9 = rep_tab-ot9 + rt-betrg.

when c_10.

rep_tab-ot10 = rep_tab-ot10 + rt-betrg.

when c_11.

rep_tab-ot11 = rep_tab-ot11 + rt-betrg.

when c_12.

rep_tab-ot12 = rep_tab-ot12 + rt-betrg.

endcase.

endif.

endif.

endloop.

endform. "process_wagetypes

&----


*& Form top_of_page

&----


  • Write the Report and Column Headings

----


form top_of_page.

format color col_heading on.

write: /1(252) 'NATIONAL DRILLING COMPANY'(010) centered,

/1(252) 'Overtime Payments Details'(011) centered.

format color off.

if pnptimr1 = c_x. " Current Date

write: /2 'Period From :'(036), sy-datum, 'To:'(006), sy-datum.

elseif pnptimr2 = c_x. " Current Month

write: /2 'Period From :'(036), v_date, 'To:'(006), v_date1.

elseif pnptimr3 = c_x. " Current Year

write: /2 'Period From :'(036), v_date, 'To:'(006), v_date1.

elseif pnptimr4 = c_x. " Upto Today

write: /2 'Period From :'(036), c_date1, 'To:'(006), sy-datum.

elseif pnptimr5 = c_x. " From Today

write: /2 'Period From :'(036), sy-datum, 'To:'(006), c_date2.

else.

if ( pnpbegda is initial and pnpendda is initial ).

write: /2 'Period From :'(036), c_date1, 'To:'(006), c_date2.

elseif pnpbegda is initial and not pnpendda is initial.

write: /2 'Period From :'(036), c_date1, 'To:'(006), pnpendda.

elseif not ( pnpbegda is initial and pnpendda is initial ).

write: /2 'Period From :'(036), pnpbegda,

'To:'(006), pnpendda.

endif.

endif.

write: 219 'Report Run Date:'(018), sy-datum.

if not pnpkostl[] is initial.

if pnpkostl-high is initial.

write: /2 'Cost Center :'(004), pnpkostl-low,

219 'Time :'(020), sy-uzeit.

else.

write: /2 'Cost Center From:'(005), pnpkostl-low+7(3),

'To:'(006), pnpkostl-high,

219 'Time :'(020), sy-uzeit.

endif.

else.

write: /219 'Time :'(020), sy-uzeit.

endif.

if not pnppernr[] is initial.

if pnppernr-high is initial.

write: /2 'Personal Number :'(007), pnppernr-low,

219 'User :'(021), sy-uname.

else.

write: /2 'Personal No.From:'(008), pnppernr-low,

'To:'(006), pnppernr-high,

219 'User :'(021), sy-uname.

endif.

else.

write: /219 'User :'(021), sy-uname.

endif.

write: /219 'Page No :'(022), sy-pagno.

format color col_heading.

write /1(252) sy-uline.

write:/1 sy-vline, 10 sy-vline,

41 sy-vline,

67 sy-vline, 68(167) 'Overtime Payments(Dirhams)'(013) centered,

235 sy-vline,252 sy-vline.

format color col_heading.

write:/1 sy-vline, 2(8) 'Emp #'(019) centered,

10 sy-vline, 11(30) 'Employee Name'(012) centered,

41 sy-vline, 42(25) 'Position'(014) centered,

67 sy-vline, 68(167) sy-uline,

235 sy-vline,236(16) 'Total'(017) centered,

252 sy-vline.

write:/1 sy-vline, 10 sy-vline,

41 sy-vline,

67 sy-vline, 68(13) 'JANUARY'(024) centered,

81 sy-vline, 82(13) 'FEBRUARY'(025) centered,

95 sy-vline, 96(13) 'MARCH'(026) centered,

109 sy-vline,110(13) 'APRIL'(027) centered,

123 sy-vline,124(13) 'MAY'(028) centered,

137 sy-vline,138(13) 'JUNE'(029) centered,

151 sy-vline,152(13) 'JULY'(030) centered,

165 sy-vline,166(13) 'AUGUST'(031) centered,

179 sy-vline,180(13) 'SEPTEMBER'(032) centered,

193 sy-vline,194(13) 'OCTOBER'(033) centered,

207 sy-vline,208(13) 'NOVEMBER'(034) centered,

221 sy-vline,222(13) 'DECEMBER'(035) centered,

235 sy-vline,252 sy-vline.

format color off.

write /1(252) sy-uline.

endform. "top_of_page

&----


*& Form Display_report

&----


  • Write the Report Output

----


form display_report.

clear v_no.

describe table rep_tab lines v_no.

if v_no = 0.

message i999 with

'No Data found for the entered Selection'(015).

endif.

loop at rep_tab.

format color 3.

at new kostl.

read table rep_tab index sy-tabix.

write:/1 sy-vline, 2(12) 'Cost Center:'(009),

14(10) rep_tab-kostl,

25(30) rep_tab-ctext,

252 sy-vline.

format color off.

write /1(252) sy-uline.

endat.

format color col_normal.

write: /1 sy-vline, 2(8) rep_tab-pernr,

10 sy-vline, 11(30) rep_tab-ename,

41 sy-vline, 42(25) rep_tab-ptext,

67 sy-vline, 68(13) rep_tab-ot1 no-zero,

81 sy-vline, 82(13) rep_tab-ot2 no-zero,

95 sy-vline, 96(13) rep_tab-ot3 no-zero,

109 sy-vline,110(13) rep_tab-ot4 no-zero,

123 sy-vline,124(13) rep_tab-ot5 no-zero,

137 sy-vline,138(13) rep_tab-ot6 no-zero,

151 sy-vline,152(13) rep_tab-ot7 no-zero,

165 sy-vline,166(13) rep_tab-ot8 no-zero,

179 sy-vline,180(13) rep_tab-ot9 no-zero,

193 sy-vline,194(13) rep_tab-ot10 no-zero,

207 sy-vline,208(13) rep_tab-ot11 no-zero,

221 sy-vline,222(13) rep_tab-ot12 no-zero,

235 sy-vline,236(16) rep_tab-ott no-zero,

252 sy-vline.

at end of kostl.

write /1(252) sy-uline.

endat.

format color off.

at last.

sum.

format color 1.

write: /1 sy-vline,

10 sy-vline, 11(30) 'Total'(017) centered,

41 sy-vline,

67 sy-vline, 68(13) rep_tab-ot1 no-zero,

81 sy-vline, 82(13) rep_tab-ot2 no-zero,

95 sy-vline, 96(13) rep_tab-ot3 no-zero,

109 sy-vline,110(13) rep_tab-ot4 no-zero,

123 sy-vline,124(13) rep_tab-ot5 no-zero,

137 sy-vline,138(13) rep_tab-ot6 no-zero,

151 sy-vline,152(13) rep_tab-ot7 no-zero,

165 sy-vline,166(13) rep_tab-ot8 no-zero,

179 sy-vline,180(13) rep_tab-ot9 no-zero,

193 sy-vline,194(13) rep_tab-ot10 no-zero,

207 sy-vline,208(13) rep_tab-ot11 no-zero,

221 sy-vline,222(13) rep_tab-ot12 no-zero,

235 sy-vline,236(16) rep_tab-ott no-zero,

252 sy-vline.

write /1(252) sy-uline.

endat.

format color off.

endloop.

endform. "display_report

Reward if useful!