‎2008 Aug 01 4:35 AM
Hi,
I am new to ABAP programming.
I want to know how to read a cluster table, that is to retrieve data from it and put the data into my internal table.
My reqirement is to read PCL2 (RX) cluster table .
i have tried my own program but the data is not getting fetched into my internal table.
My code:
REPORT ZCLUSTER_77730.
TABLES: pernr,
pcl2,
t512t. "Wage type texts
INFOTYPES: 0000,0001,0008. "Organizational Assignment
INCLUDE: RPC2rx00.
*Table data containing directory to PCL2 payroll results file
DATA: BEGIN OF rgdir OCCURS 100.
INCLUDE STRUCTURE pc261.
DATA: END OF rgdir.
DATA: result TYPE pay99_result.
DATA: rt_header TYPE LINE OF hrpay99_rt.
DATA: country LIKE t500l-molga,
number LIKE pc261-seqnr. "Number of last payroll result
GET pernr.
rp_provide_from_last p0000 space pn-begda pn-endda.
rx-key = pernr.
IMPORT rgdir FROM DATABASE PCL2(rx) ID rx-KEY.
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = p0000-pernr
IMPORTING
molga = country
TABLES
in_rgdir = rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
IF sy-subrc = 1.
WRITE: / 'No records found for '(001), pernr-pernr.
ENDIF.
CALL FUNCTION 'CD_READ_LAST'
EXPORTING
begin_date = pn-begda
end_date = pn-endda
IMPORTING
out_seqnr = number
TABLES
rgdir = rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
IF sy-subrc = 1.
WRITE: / 'No payroll result found for'(002), pn-paper.
ELSE.
CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
EXPORTING
clusterid = 'RX'
employeenumber = p0000-pernr
sequencenumber = number
READ_ONLY_BUFFER = ' '
READ_ONLY_INTERNATIONAL = ' '
CHECK_READ_AUTHORITY = 'X'
IMPORTING
VERSION_NUMBER_PAYVN =
VERSION_NUMBER_PCL2 =
CHANGING
payroll_result = result
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
OTHERS = 8.
IF sy-subrc = 0.
PERFORM print_rx.
ELSE.
WRITE: / 'Result could not be read (003)'.
ENDIF.
ENDIF.
----
FORM PRINT_RX *
----
Print Payroll Result *
----
FORM print_rx.
FORMAT INTENSIFIED ON.
WRITE: / p0000-pernr,
p0001-ename(15),
p0001-werks,
p0001-btrtl.
FORMAT INTENSIFIED OFF.
SKIP 1.
WRITE: / 'For period/payroll area: '(004),
30 result-inter-versc-fpper+4(2),
result-inter-versc-fpper+0(4),
result-inter-versc-abkrs,
/ 'In-period/payroll area: '(005),
30 result-inter-versc-inper+4(2),
result-inter-versc-inper+0(4),
result-inter-versc-iabkrs.
SKIP 1.
WRITE: 'Results table: '(006).
SKIP 1.
LOOP AT result-inter-rt INTO rt_header.
PERFORM re512t USING result-inter-versc-molga
rt_header-lgart.
WRITE: / rt_header-lgart,
T512T-LGTXT,
rt_header-betrg CURRENCY rt_header-amt_curr.
ENDLOOP.
ENDFORM.
----
FORM RE512T *
----
Read Wage Type Texts
----
FORM re512t USING value(country_grouping)
value(wtype).
CHECK t512t-sprsl NE sy-langu
OR t512t-molga NE country_grouping
OR t512t-lgart NE wtype.
SELECT SINGLE * FROM t512t
WHERE sprsl EQ sy-langu
AND molga EQ country_grouping
AND lgart EQ wtype.
IF sy-subrc NE 0.
CLEAR t512t.
ENDIF.
ENDFORM.
A complete code would be very helpfull.
‎2008 Aug 01 4:38 AM
‎2008 Aug 01 4:38 AM
‎2008 Aug 01 5:13 AM
‎2008 Aug 08 2:06 PM