SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Get Payroll



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> HR
View previous topic :: View next topic  
Author Message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1639

PostPosted: Sat Oct 27, 2007 2:23 pm    Post subject: Get Payroll Reply with quote

Dont forget to insert the Logical databse PNP in the attributes of the program

Code:
*&---------------------------------------------------------------------*
*& Report Z_PNP_GET_PAYROLL *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

REPORT EXAMPLE_PNP_GET_PAYROLL.

* These three tables need to be declared for the selection screen-.
* Currently, the declarations of pyorgscreen, pytimescreen HAS to
* be done in addition to setting selection screen = 900 .
TABLES: pernr,pyorgscreen,pytimescreen.

* Declare the country specific structure:
* payXX_result with XX = country code, e.g. payDE_result for Germany
* Country = 99 is an exception: If this structure is used, the
* international part of every payroll result is returned regardless
* of country code. In the other case, pernr's whose country code do
* not fit the structure are skipped.
NODES: payroll TYPE pay99_result.

* this section is example specific
TABLES: t512t.
DATA: wa_rt LIKE LINE OF payroll-inter-rt.
DATA: wa_crt LIKE LINE OF payroll-inter-crt.
DATA: wa_wpbp LIKE LINE OF payroll-inter-wpbp.
Data: g_result_counter type i.

* Declarations for modifying the result list after GET PERNR
DATA mylist LIKE pc261 OCCURS 0 .
DATA wa_mylist LIKE LINE OF mylist.
DATA pay TYPE REF TO cl_pay. "global class

INITIALIZATION.
* nothing to do here

*----------------------------------------
GET pernr.
* A progress indicator based on the number of pernrs processed / total
* number of selected pernrs is automatically calculated & displayed.


WRITE: / 'Currently working on:'(021), pernr-pernr.
g_result_counter = 0.

* The infotypes could be accessed here as in any other PNP
* based report. The same holds true for the infotype based
* authorizations.



* You can use the methods of class "pay" to read and modify
* the list of payroll result that is going to be processed at
* the <get> event. However, these method calls might
* change with the next release.

CREATE OBJECT pay.
* pay->LDB = 'SAPDB_MY_OWN_LDB'. "only if you copied the LDB PNP

* CALL METHOD pay->read_result IMPORTING list = mylist.
*
* "delete mylist index 2. "For example: Remove an unwanted payroll result
*
* CALL METHOD pay->write_result EXPORTING list = mylist.
*
*--------------------------------------
* After all payroll results for ONE pernr are processed, the event GET
* LATE is triggered. A good place to e. g. sum up results.
GET pernr LATE.

SKIP 1.
WRITE: / 'Found'(022), g_result_counter, 'results for #'(023),
pernr-pernr.
if g_result_counter = 0.
write: /
'No results ? Did you assign the right structure to node PAYROLL?'(024).
endif.
ULINE.

*--------------------------------------
GET payroll.
* At the event <payroll> the complex struture payroll is filled
* with the payroll result for the specific person. The structure
* of payroll is as declared above.

g_result_counter = g_result_counter + 1.

* Print some parts of the result (ignore splits for simplicity)
WRITE: / '*****************************************************'.
WRITE: / 'Seqnr = '(014), payroll-evp-seqnr,
'In period ='(015), payroll-inter-versc-inper,
'For period ='(016), payroll-inter-versc-fpper,
'Pay date ='(017), payroll-inter-versc-paydt.

LOOP AT payroll-inter-wpbp INTO wa_wpbp.
WRITE: / 'Personal Area ='(018), wa_wpbp-werks,
'Sub Area ='(019), wa_wpbp-btrtl.
ENDLOOP.
SKIP 1.

LOOP AT payroll-inter-rt INTO wa_rt.
SELECT SINGLE * FROM t512t
WHERE sprsl EQ sy-langu
AND molga EQ payroll-inter-versc-molga
AND lgart EQ wa_rt-lgart.
WRITE: / wa_rt-lgart,
t512t-lgtxt,
wa_rt-betrg CURRENCY payroll-inter-versc-waers.
ENDLOOP.
SKIP 1.

WRITE: / 'Cumulations:'(020).
LOOP AT payroll-inter-crt INTO wa_crt.
SELECT SINGLE * FROM t512t
WHERE sprsl EQ sy-langu
AND molga EQ payroll-inter-versc-molga
AND lgart EQ wa_crt-lgart.
WRITE: / wa_crt-lgart,
t512t-lgtxt,
wa_crt-betrg CURRENCY payroll-inter-versc-waers.
ENDLOOP.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> HR All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.