Organizing successful Meetings by Chapters Dr. Jacob Baal-Schem ([email protected])
Schem As
Transcript of Schem As
Welcome Guest
How to migrate the whole SAP environment to another server. Posted: May 10, 2006 2:15 PM Hi!
We have to discontinue a SAP Server as it is aging and on disk space. We are running SAP 4.7 SR1 1.00 in this server.
Now my question is; in the new Server how I will dump all SAP data of previous Server. I am going to install SAP $.7 SR1 2.00 IDES in new Server on Windows 2003 and Oracle 9.2.
Also, will the programs written for R/3 40 1.00 IDES will match or work in R/3 47 2.00 IDES ?
With regards,
Pratip Bhattacharyya
Posts: 661 Registered: 3/29/04 Forum Points: 1,308
Re: How to migrate the whole SAP environment to another server. Posted: May 10, 2006 3:46 PM in response to: Pratip Bhattach... Hi,
I'm not sure I understand your question but I'll give it a try.
You can copy a system from one server to another using the system copy tools from SAP (accessed via http://service.sap.com/instguides)
For deleting the system, ideally you could copy the system and then do a complete server re-install for the new install. If you don't have this luxury, then you can delete the DB schemas (and who DB?) and then delete all the SAP executables for your SID (check the /usr directories). It is easier to do the deletion before the installation of the new server.
You can use the transport system to copy the ABAP and DDIC structures from one system to another (SAP R/3 Enterprise ES 1.00 and 2.00 uses the SAP NetWeaver AS
Reply
Reply
release).
I hope this helps,Mike.
Posts: 79 Registered: 2/16/06 Forum Points: 28
Re: How to migrate the whole SAP environment to another server. Posted: May 12, 2006 11:19 AM in response to: Michael Eacrett Hi! Mike,
Thanks for your effort. But let me tell you the scenario in detail.
We have a server dl2kdv01. In this Server SAP R/3 4.7 SR1 100 IDES (Kernel 620)is running. Due to hardware problem and disk space problem management has decided to move this SAP System to a new Server dlwsdv10 where only Solution Manager is running. Ours’ is a Dev. env. SAP systems are running on Windows 2003 Server with Oracle 9.2 DB.
Now as I cannot find R/3 4.7 SR1 200 IDES. So I have downloaded R/3 4.7 SR1 2.00 IDES (Kernel 640).
Now my question is,
1. If I install the downloaded version than how I will add the database of old SAP to the new one.
Whether I have use transport client method or any other system. I need full step-by-step procedure.
2. Whether all programs and adapters designed in the earlier version will fully compatible to the new SAP System.
Hope, I have clearly describe my requirement.
You can directly mail me also.
With regards,
pratip Bhattacharyya
View Comments (0) Attachments (41) Info
Reply
Additional Features
Added by Carlos Martinez Escribano , last edited by Carlos Martinez Escribano on Aug 16, 2010 (view change) Labels: hcm, debugging, debug, payroll, hr
Add Labels
Enter labels to add to this page:Add
Tip: Looking for a label? Just start typing.
Through this document I'll show you how to debug the payroll process, focusing in payroll driver debugging. You'll find here some tips and tricks that will help you save time.As a prerequisite to understand this blog you should have a basic debugging knowledge.
Here are some interesting links for general debugging:
Classic ABAP Debugger New ABAP Debugger
Using hard break-points to debug the Schema.
Whenever you can modify the system you are analyzing (e.g. you are debugging a development system), and you have authorization to modify rules and schemas you can set a hard break-point.
For this, you have to modify your user-profile and set an Abap prefix (AB4).
Once you have a prefix of your own, you can set a break-point at a certain point in a Schema by editing the Schema (Trx PE01). For this you'll use the payroll function BREAK followed by your Abap prefix.
Example: Set a break-point in Schema E000:
Then press key F5 and set a soft break-point at PERFORM as-funktion.
You can display the current function to be processed by displaying in your debugger screen table AS (Header).
Table AS contains the Schema and its header contains the current function in the schema being processed (AS-FUNCO).
In this case the function code to be debugged is very short. Go to the next function by pressing F8. Of course you could have set a soft break-point directly at function P0092--- pe04. You can set a break-point in a payroll rule, as well. For this you'll use the payroll operation BREAK, followed by your Abap prefix.
When a pernr is rejected in the payroll log.
Just set a break-point in the command "reject". Start payroll processing in debugging mode /H, then go to... finally press F8 key, you'll reach the reject command. After that you have to take a look at "Calls" to guess where the error is coming from.For example, you run the payroll drive and get a log like this:
Go back to the selection-screen and start payroll in debugging mode with /H.
Now you are debugging the payroll and you need to reach the point of rejection:
The following routines:
FORM NEW_ABLEHNUNGFORM FILL_MSGTAB_FINAL_STEPFORM FILL_MSGTABFORM ERRORS
Are common to all the rejections so they will not add any value info, so we go to the first relevant form:
FUCHKPC
Double-clicking on it we get to the abap code and set a break-point just before the error process is triggered (Or maybe analyzing the abap code that triggers the error is enough):
When you start payroll again you'll be able to debug the code that triggered the rejection which will help you identifying the cause of the error. Find out at which point of the payroll Schema, a Wage Type is generated or a WT is set to a specific value.
Watch-points will help you a lot on this. If for example you find that WT /341 equals 1.375,00 EUR at the final payroll results and you want to know where in the payroll schema WT /341 amount was set to 1.375,00 EUR.
Start payroll in debugging mode by going to the payroll driver selection-screen and setting /H at the ok-code.Then press F8 to start the program.
Create a second watchpoint because the condition is: it-lgart = /341 and it-betrg = 1.375,00
Now both condition have to be linked by the "And" operator.
Now continue by pressing F8. The program will stop when the watchpoint condiiton is fulfilled.
You'll notice that in the watchpoint condition I used WT table IT instead of table RT. If I had set the same condition for table RT, the program would have stopped later on in the schema when WT /341 is collected to be stored in table RT which is useless. Sometimes, WTs are direcly created in table RT so in that cases, setting the condition for table RT might be useful. Many times, WTs are created within a rule operated by function PIT or PRT. In that cases, you'd better set the condition for table OT (OT-LGART, OT-BETRG...). If you do so, the program will be stopped at the relevant operation within
the rule. To see which rule is it, look internal table AS header. To know what operation is it, display the structured field OP.
By the way, if a WT is set to a specific value in a PIT rule and instead of setting the watchpoint at OT table you do it at IT table, the watchpoint will stop at the end of the rule as you can see in the code below:
FORM fupit.
LOOP AT it.
plog4_perform plog_header_cycle(h99plog0)
using it-lgart calcmolga.
MOVE ccycl TO i52c5.
MOVE-CORRESPONDING it TO i52c5.
ot = it.
PERFORM regel.
plog1_perform plog_check_rule_performed(h99plog0).
ENDLOOP.
REFRESH it.
PERFORM ot-in-it-append. "append statt collect, beinhaltet refresh ot.
ENDFORM. "END OF FUPIT
So it's more accurate to set the watchpoint at table OT than at table IT in these cases, but remember that rules are flexible and there are operations to append WTs directly to table IT.
Problems with Retros.
When there are many retro periods in the payroll run you are analyzing, the same piece of code will be reached once and again and you have to press the F8 key a lot of times before you reach the point you where the issue arises. Table APER manages the periods processed in a payroll run and it's header holds the currently processed period. In the following pic you can see that period 01.2008 is being processed in a payroll run started from in-period 01.2009.
You can use APER-PAER and APER-IAPER as watchpoint conditions so if for example you set a break-point at function EST00 (Which calculates Spanish taxes) and there are 10 retro periods to be calculated and you want to debug just the current period:
1. Deactivate (Not delete) the break-point at function EST00.
2. Set APER-PAPER = APER-IAPER as a watchpoint condition.
As an alternative to using table APER, you can assign a counter to the break-point so that it stops only after "n" ocurrencies:
e.g. Stop in function EST00 after EST00 being processed 13 times:
Finally, when the APER-PAPER is set to the payroll period you want to analyse (beause the watchpoint stopped), activate the break-point and go ahead: F8.
Reaching a payroll function or operation once the debugger is started:
Payroll functions are coded as form FUXXXX being XXXX the name of the function. e.g. function wpbp is coded as form fuwpbp. Payroll Operations are coded as OPXXX being XXXX the name of the operation. Knowing this makes easy to reach any Function / Operation.
Then press F8 key and you get to the beginning of the routine.
How to debug a Personnel Calculation Rule:
You already know that a PCR or cycle is not working as desired but do not know at what point of the rule the problem is. When a PCR is processed, a sequence of payroll operations will be processed. You can see how a rule works processing one operation in each step and monitor the intermediate results. Then you may realize the problem is that the rule is not correct or you can debug inside the operation.
Firtsly you have to reach the rule you are going to debug. For that you can set a hard break-point as stated at the beginning of this document or a watchpoint (AS-PARM1 = XXXX where XXXX is the name of the rule) AND ( OT-LGART = YYYY where YYYY is the WT to be processed by the PCR). It is important thta both watchpoint conditions are linked by the condition AND
Example:
We are going to debug PCR ESPB at Payroll Schema E000 for payroll driver RPCALCE0.
Going to the payroll log we see that WT S121 is calculated at PCR ESPB:
So now, let´s start the debugger and set the watchpoint condition AS-PARM1 = ESPB and OT-LGART = S121, here is how your debugger screen will look when the watchpoint conditions are reached:
Rule ESPB is processed by PIT Function which means that table WTs in table IT will be processed in a loop. Each time a WT is processed the table IT header will be copied to auxiliary table OT and within the PCR processing the individual operations will normally put their results in table OT. At the end of the PCR processing, table OTwill substitute table IT. Relevante fields for IT and OT are ( LGART, BETRG. BETPE, ANZHL...).
Now go inside PERFORM regel by pressing F8 and search PERFORM boper with the arrow down
-> Set a break-point on PERFORM boper.
Make sure you display at the bottom of the debugger screen the fields you want to monitor:
You can also display the current operation at the header of table OP or i52c5-op1.
Now you can deativate the watchpoint.
Click in F8 every time you want to go to the next operation (And F5 if you want to take a deeper look as to how the operation works internally):
Using counters:
It might happen that you set a breakpoint at a certain part of the code where the payroll execution goes through again and again. For example in retrocalculation or in case a your break-point is in a routine
that is placed inside a loop. E.g. you placed a break-point inside a piece of code that is executed within a loop and you want the debugger to stop only the 10th time that the break-point is reached. You can specifiy a counter for your break-point.
Click on the break-point button:
Set 10 times in the count. field.
Of course, if the break-point is reached less than 10 times, it will never stop, but you are supposed to know th number of times the break-point will be reached before hand.
Can all this be applied to the Time Evaluation?.
Yes, RPTIME00 works with the rules in the same way as the payroll drivers RPCALCX0 / HXXCALC0. In this case you may find useful to know that PER play the same role as table APER for payroll. Therefore you can use the header of PER to stop the processing at a specific day:
e.g. Set a watchpoint at PER-BEGDA = 20080901.
Good to know:
You can expand the payroll an time schema by running program RPDASC00.
help : how to configure attendance in schema (PE02) Posted: Oct 29, 2007 5:20 AM dear SAP masters,
can u help me find what's wrong with my schema? it can't work properlyVARSTP2002 :- N- Y : HRS?4.00 : - < - = : - HRS=1 - ADDZLS2816 - > : - HRS=1 - ADDZLS2816
Re: help : how to configure attendance in schema (PE02) Posted: Oct 29, 2007 7:32 AM in response to: edison edison hai..
pls modify ur PCR ( Not Schema) in the following way
outtpprtypnyhrs=d1234( create a time type )HRS?4.00 :- <- = :- HRS=1- ADDZLS2816- > :
Reply
Reply
- HRS=1- ADDZLS2816
this is my scenario :i want to create PCR so if employee who has level 8 or above (TRFST) overtime in public holiday at least 4 hours, get a transport allowance (wage type 2816)
that is the detail. i'm sorry, i dont know how to explain it more detail :"( this is my complete PCR. maybe you could understand the problem if u see that. ;-)
VARSTHOLCL //public holiday01 OUTWPTRFST //level 07 08 VARSTP2002 N Y HRS?3.99 HRS=1 ADDZLS2816
when i run PT60, although if there is a data in IT2002 that have attendance hours=7, it was read HRS<3.99 when enterred the PCR.i think my PCR didn't read attendance hours, but i don't know how to fix it..
Hi Edison,Before checking HRS?3.99,you should use HRS=PNUMthen it collects the hours.Hope this helps.Good luck
Can I suggest you some thing?VARSTHOLCL //public holiday* COLOP*1OUTWPTRFST //level* COLOP //for any other level
08VARSTP2002
N COLOP*Y HRS=PNUMHRS?4< COLOP* // for any hrs<4* // >= 4HRS=1ADDZLS2816COLOP*and please call this rule with the function PTIP.
Hi Edison,It should work I dont know why you are not getting the result.In the schema,did you call the rule like this?PTIP ZXXX GENhere ZXXX is your rule.Next time when you run the TE check the log and see how the rule has got processed,like you can see till which line it worked.instead of p2002,you can use VARSTHOLCL //public holiday* COLOP*1OUTWPTRFST //level* COLOP //for any other level
08VARSTPRSNT //EMPLOYEE AT WORK?N COLOP*Y HRS=PNUMHRS?4< COLOP* // for any hrs<4* // >= 4HRS=1ADDZLS2816COLOP*
Operation On Wage Types in PCR Posted: Jul 14, 2009 9:19 AM
Reply
Hello experts,
I want to subtract a wagetype(WT) result from other WT and store it in first WT in PCR. I want to equate the following equation in PCRA = A - Bwhere A = /3RB (Technical WT : Perk value)B = customized WT value with negative sign
Which function to use in PCR ?Thanks in advance.
Posts: 1,002 Registered: 7/2/08 Forum Points: 1,310
Re: Operation On Wage Types in PCR
Posted: Jul 14, 2009 9:39 AM in response to: DeeptiGupta Operation SUBWT
PRess F1 to read document and syntax
Regards...Sadhu
Posts: 3,119 Registered: 5/16/08 Forum Points: 6,916
Re: Operation On Wage Types in PCR
Posted: Jul 14, 2009 9:52 AM in response to: DeeptiGupta Hi Deepti,
First write a PCR to put the value of B into a variable.
i.e. * BBBB : ADDWT&BBBB
Then add this value into A in another PCR(you're adding not subtracting as value of B is already negative).
i.e. * /3RB :
AMT+& BBBB ADDWT *
Regards,
Dilek
Edited by: Dilek Ersoz on Jul 14, 2009 9:52 AM
Posts: 71 Registered: 2/27/09
Re: Operation On Wage Types in PCR
Posted: Jul 14, 2009 11:42 AM in response to: Dilek Ersoz Adak
Reply
Reply
Reply
Forum Points: 0 I created the PCR to store the value of WT B in variable.
I wrote * 1017 ADDWT&ZSAP (PCR ZCLA)
*/3RB AMT+ &ZSAP ADDWTE * (PCR ZHRR)
On simulation of payroll the PCR is not processed for the WT 1017. Also the second PCr, though it is processed the results are not changed... output is same as Input table
Posts: 3,119 Registered: 5/16/08 Forum Points: 6,916
Re: Operation On Wage Types in PCR
Posted: Jul 14, 2009 12:24 PM in response to: DeeptiGupta First check the input IT of PCR ZCLA whether there is an entry * 1017 (or anything else, e.g. 3 1017)If it is 3 1017, for example, you should write PCR ZCLA for 3 1017.Check this condition for the second PCR also.
Secondly, in the second PCR, you directly writing /3RB into RT table via operation ADDWTE *.Depends on your schema structure, but you may need to keep it in output IT via ADDWT * as I have suggested before.
Dilek
Posts: 71 Registered: 2/27/09 Forum Points: 0
Re: Operation On Wage Types in PCR
Posted: Jul 14, 2009 12:57 PM in response to: Dilek Ersoz Adak I have checked the input IT of PCR. Its * 1017. when I used with other wage type /3R9 , it processed the PCR. In the output this wage type /3R9 was not available. The second PCr was getting processed earlier as well but with no calculated results. Output is still same as input
Also I am using ADDWT * (to the output table) only.
Edited by: DeeptiGupta on Jul 14, 2009 1:05 PM
PCR to add amount in /3M3 Posted: Mar 23, 2009 8:10 AM
Reply
Reply
Reply
hi all,
i will maintain one wagetype in IT-15. what ever the amount i input in that wage type that amount has to be included in /3M3.
can we done this thru any PCR?. if Yes how to write this PCR and in schema where i have to add this PCR?
kindly inputs plz.
Posts: 13,476 Registered: 9/27/07 Forum Points: 17,166
Re: PCR to add amount in /3M3 Posted: Mar 23, 2009 8:15 AM in response to: saathi https://forums.sdn.sap.com/click.jspa?searchID=-1&messageID=7125769
Posts: 3,119 Registered: 5/16/08 Forum Points: 6,916
Re: PCR to add amount in /3M3 Posted: Mar 23, 2009 8:23 AM in response to: saathi Hi saathi,
Add the PCR just after P0015 function or the point /3M3 WT is created, whichever is later.
Your PCR should be written for XXXX WT (added via 15 IT)ADDWT * ADDWT/3M3.You may ignore ADDWT * if you don't want XXXX WT to remain in IT.
Best regards,
Dilek
Posts: 469 Registered: 1/22/08 Forum Points: 136
Re: PCR to add amount in /3M3 Posted: Mar 23, 2009 8:29 AM in response to: Dilek Ersoz Adak hi
thanks for ur reply.but, plz explain me with some more clarity on this. bcoz i never wrote a PCR.
regards,
Posts: 3,119 Registered: 5/16/08 Forum Points: 6,916
Re: PCR to add amount in /3M3 Posted: Mar 23, 2009 8:32 AM in response to: saathi Create the PCR via PE02.Then you need to integrate it into schema via PE01.
Reply
Reply
Reply
Reply
Regards,
Dilek
Posts: 469 Registered: 1/22/08 Forum Points: 136
Re: PCR to add amount in /3M3 Posted: Mar 23, 2009 8:40 AM in response to: Dilek Ersoz Adak plz answer my questions in same order.
my wagetype number is 1010. i want to maintain Rs.50/- in this wagetype. and this amount should add in /m3m.
suggest me name for new pcr.one by one line steps in pcr (what i have to write)how to add this pcr in schema and where
regards,
Posts: 469 Registered: 1/22/08 Forum Points: 136
Re: PCR to add amount in /3M3 Posted: Mar 23, 2009 3:15 PM in response to: Dilek Ersoz Adak thanx a lot. u really helped me lot. i added that pcr after function INMED.
PCR for additional payments Posted: Feb 22, 2010 10:16 AM Hi guys,
Where should I insert a PCR for additional allowance?I put it below P0015 L011 GEN NOAB line,and created it in IT0015.And I noticed even I commented out my PCR,the payment is still available in my payroll result.
I also noticed this payment keep recurring even for next months,same like recurring payments.
Please help.
TQ
Posts: 530 Registered: 4/15/08 Forum Points: 656
Re: PCR for additional payments Posted: Feb 22, 2010 11:06 AM in response to: miss hr Hi,
Why do you want to write a PCR for additional payment?
Reply
Reply
Reply
Reply
Standard P0015 will read IT0015 and give the wage types in output tables.
With RegardsShyam V
Posts: 13,476 Registered: 9/27/07 Forum Points: 17,166
Re: PCR for additional payments Posted: Feb 22, 2010 11:37 AM in response to: miss hr PIT XXXX ur PCR
in sub schema INAP payments/Deductions under P0015 try and let me know
Posts: 8 Registered: 2/10/10 Forum Points: 0
Re: PCR for additional payments Posted: Feb 23, 2010 2:29 AM in response to: Shyam V Hi,
I need to specify certain employee group to receive this allowance.I should put this condition inside my PCR,right?
TQ
Posts: 13,476 Registered: 9/27/07 Forum Points: 17,166
Re: PCR for additional payments Posted: Feb 23, 2010 4:00 AM in response to: miss hr use the operation OUTWPPERSG PERSG is Employee Group
Posts: 530 Registered: 4/15/08 Forum Points: 656
Re: PCR for additional payments Posted: Feb 23, 2010 1:50 PM in response to: miss hr HI,
I am still not convinced that for your requirement you will have to write the PCR. This is additional payment and it will be paid once or whenever required. For this kind of requirement you can provide end user a LSMW / PA70 action where in they can upload Additional Payment for a group of employee.
Still if you want to proceed further use the Operation given by Sikindar. You can query according to the Employee Subgroup.
With RegardsShyam V
Reply
Reply
Reply
Reply
Re: How I can write schema? Posted: Aug 14, 2007 11:18 AM in response to: Balwant Subhedar Hi,
To understand the concept, you have to start from scratch level. There are 8 columns in Schema editor, in which first col denotes Line number, Second denotes Function name, 3 to 6 denotes Parameters, 7th col used to deactivate the line and 8th column denotes the text of the line.
These are the list of view Function you can use in Col 2:
COPY - To include the subschema in Parameter 1.COM - To make the line as Command Line.BLOCK - Used to start same nested level like Block Beg, End.If / Else/ Endif - To check some condition in Parameter 2.Pxxxx - To process the infotype.PIT - Process Input TablePRT - Process Result TableACTIO - Process payroll RuleRAB - Read AbsencesDaypr - Day processing of Time Data.
Parameter 1 to mention the Subschema or Rule name to process.Parameter 2 can have these values : Blank, GEN, Pxx, Exx.Parameter 3 can have these values : NOAB, Blank
Mention your calculation in the corresponding Rule and include that in the Schema.
SAP HR Payroll Schemas and Personnel Calculation Rules (PCR's)
Reply
Transaction Code: PE01
Menu Path:
Human Resources Payroll Europe Great Britain Tools Maintenance Tools Schemas
Double-clicking on a sub-schema will take you to the maintenance screen for that schema.
Double-clicking on any of the rules (PCR's) will take you to the rule editor. You can tell the difference between sub-schemas a rules by looking at the parameters. The name of the sub-schema can be found in the Par 1 column. The main schema generally calls all the different sub-schemas. The sub-schemas will then call the payroll rules. In most cases, when a rule is called, there will be parameters in the Par 2 or Par 3 columns.
In the main, most sub-schemas are called by the "copy" command.
Schemas, rules and features in SAP use the following line editor commands. This allows you to move, delete, copy and insert lines. All the commands are entered in the area used for the line numbers. Overwrite any of the numbers with the commands shown below. For the commands using 1 letter - hit the return key once you have entered the letter. For the commands using 2 letters - hit the return key after the first 2 letters have been entered or after both sets have been entered.
The most commonly used commands are:
Line Command
Description
D Deletes a line
I Inserts a line
M Moves a line
C Copies a line
DD Indicates the start of a block to be deleted
DD Indicates the end of a block to be deleted
CC Indicates the start of a block to be copied
CC Indicates the end of a block to be copied
MM Indicates the start of a block to be moved
MM Indicates the end of a block to be moved
Once you have chosen the block to move or copy, you need to show where to move or copy it to in the schema. The following commands indicate where you can copy or move the lines to.
Line Command
Description
A Places the block after the chosen line
B Places the block before the chosen line
Remember when calling the PCR from the schema: GEN means that the wagetype is **** i.e. you haven't specified one and NOAB means that it will look at any EE Sub-Grouping. If you want the rule to use specific wage types or groupings, then leave either blank.
Use the print option and VAR (PAR 2) in the schema to output the variable table during processing.
Position is very important for schemas. Look to see where a similar piece of processing has taken place. If in doubt, place the rule after the similar data has been read and processed.
Commonly used Functions
Function Description
PIT Process Input Table
PRT Process Results Table
COPY Calls a schema placed in PAR1.
BLOCK Defines the start and end of a nested node
IF/ELSE/ENDIF The schema is processed if the condition is fulfilled
Pxxx Processes the information held in infotype xxxx.
ACTIOActio calls a PCR. It is processed, irrespective of whether the wage type exists or not.
Commonly used Parameters
Parameter Description
GEN Process any wage type
9000 Processes only wage type 9000
NOAB Process for any EE sub-group groupings
1 Processes the rule only for EE sub-group grouping of 1
Payroll PCR's
Transaction Code: PE02
Menu Path:
Human Resources Payroll Europe Great Britain Tools Maintenance Tools Rules
Commonly used operations in payroll configuration
Operation Description
*
This covers all the remaining entries not already specified. If you leave the line blank for the operation then the WT is dropped. Remember you always have to have an option for * in your PCR.
ADDCU Cumulates the wage type into the relevant cumulation (/101...) and valuation(/201...) wage types
ADDNA *From the IT, Number and Amt are cumulated into the OT. Blank is OT whilst E refers to the RT.
ADDNA 4067Current Num and Amt are added in to wage type 4067.
ADDWSE9N03 This operation is very similar to ADDWT. The only difference is that it writes the value to table V0 as well
ADDWSI* Store the current wage type in the IT.
ADDWT * Store wage type in IT/OT
ADDWT 1103 All the current values for amt, num and rte are added to the values that are currently held in wt 1103
ADDWT&TAdds the current wage type to the variable table as T - which can be used at a later stage
ADDWTA* The values in the wage type are copied to the previous employer table VAG - called in the rules XDPI, XDPR & XDPT
ADDWTC*The values in the current wage type are added into the CRT
ADDWTC/101The values in the current wage type are added into the CRT for the technical wage type /101
ADDWTD*The values in the current wage type are added into the Difference table DT
ADDWTD/551The values in the current wage type are added into the difference table DT for the technical wage type /551
ADDWTD/APOAdd the current wage type to the difference table (DT)
ADDWTEStore amount in Results Table (RT) - difference with line below
ADDWTE* Add the current wage type to the results table RT
ADDWTE/101Add the current wage type to the results table as /101
ADDWTH/201Add the current wage type to the old results table (ORT) as wage type /201
ADDWTI* Add the current wage type to the input table IT
ADDWTI/101The values in the current wage type are added into the input table IT for the technical wage type /101
ADDWTL*Add the current wage type to the results table last payroll (LRT)
ADDWTN Used in XLON
ADDWTN/LRP (Loans - XLON)
ADDWTWAdd the current wage type to the wage maintenance table
AMT- 9023Subtract amount field from wage type 9023 from Table IT (if wage type 9023 is available.)
AMT%33.33 Multiply the amount by 33.33%
AMT%KSAPROMultiply the amount by the value SAPRO held in table T511k
AMT-& T Amount minus the value held in variable T
AMT*-1 Amount multiplied by negative 1
AMT*12 Multiply amount by 12
AMT*KGENAU
Multiply the amount by the constant GENAU held in table T511k. GENAU is used to factor up by 4 or 5 factors of 10 to avoid the issue of errors caused by rounding.
AMT-.04 Subtract 0.4 from the amount field
AMT/2 Divide the amount by 2
AMT/KGENAUDivide the amount by the factor GENAU held in the constants table T511k
AMT/KPKWPRAmount divided by the constant PKWRP held in table T511K
AMT/KZF001Amount is divided by constant ZF001 from table T511K
AMT? *Compare the value held in the amount field for all wage types
AMT? /GPYCompare the value held in the amount field for wage type /GPY
AMT?& ZAPRCompare the value held in the amount field against the constant ZAPR
AMT?0Compare the value held in the amount field against 0
AMT?E /167Compare the amount against the value of the amount held in the results table RT for wage type /167
AMT?IGRUEBCompare the current amount against the limit held for the bank transfer
AMT+ /564 Add the amount from wage type /564 from the IT
AMT+ 0001Add amount field from wage type 0001 from Table IT (if wage type 0001 is available.)
AMT+ 9013Add amount field from wage type 9013 from Table IT (if wage type 9013 is available.)
AMT+& ZSAPAdd the value held in the variable ZSAP to the amount for the current wage type being processed
AMT+E 910BAdd the current amount to the RT and place in wage type 910B
AMT+O /ZPOAdd Amt from wage type /ZPO into VORT (Summarised ORT)
AMT< /562Checks whether the currently held amount is less that that held in the wage type /562
AMT= *This sets the amount = zero for the wage type in question
AMT= /111Store the value in the amount field of wage type /111 in the amount field of wage type 2110
AMT= 1000Store the value in the amount field of wage type 1000 in the amount field of wage type 2110
AMT= BETRGLet the amount equal the value held in the BETRG (amount) field for the wage type in question
AMT= PKWWRReset the amount on wage type xxxx to that held in the value for KWWR held in T511K
AMT= PLANS Sets the amount = position number
AMT=& /426 Set the amt = amt held on technical WT /426
AMT=& TASAReset the amount on wage type xxxx to that held in the temporary wage type TASA
AMT=0 Let the amount equal zero
AMT=A *The amount is set to the value held in the table VAG - previous employee data
AMT=E *Lets the Amt = the Amt held for the current wage type in the RT
AMT=E /167Lets the Amt = the Amt held for technical wage type /167 in the RT
AMT=KSAPLRSet the amount = the value SAPLR held in table T511k
AMT=L *Lets the Amt = the Amt held for the current wage type in the LRT - last result table
AMT=L /561Lets the Amt = the Amt held for the wage type /561 in the LRT - last result table
AMT=N /LBBAdd the amount value in technical loan wage type /LBB (loan balance) to specific loan balance wage type
AMT=N /LOPAdd the amount value in technical loan wage type /LOP (loan payment) to specific loan payment wage type
AMT=N /LRPAdd the amount value in technical loan wage type /LRP (loan repayment) to specific loan repayment wage type
AMT=Q /GPYLets the Amt = the Amt held for the wage type /561 in the OCRT - old cumulative result table
AMT=ZERO Reduce the value in the amount field to zero
AMT>* "Maximum formation: The greater value of * and the current value of the AMT field is determined
and written to the current AMT field."
AMT-1Multiply the amount by -1 - I think this should be subtract 1 from the amt
AMT50If the amount field value is smaller than 50, it is retained. Otherwise it is set at 50 (forming a minimum amount).
AMT-E /167Subtract the Amt value held in the RT for /167 from the currently stored amount
AMT-K43301Take the value held against payroll constant 43301 from the annual salary
AMT-O /167Subtract the Amt value held in the ORT for /167 from the currently stored amount
AMT-R 9019Amt for the current wage type less the value held in the RT for 9019 (Results wage types using exact splits)
AMTS /564Subtraction to zero - the value cannot be less than zero.
AMTS*Subtraction to 0 (not negative) for the current wage type
AMTS* 9013Subtraction to 0 (not negative). Current wage type less 9013
AMTSE 9043Subtraction to 0 (not negative). Current wage type less Amt held in the RT for wage type 9043
BTREC /558
"Sets the recipient data for bank transfers. Can only be run after bank transfer data has been read from an infotype. Data on wage type and amount are transferred from the current fields (OT) and retained in the transfer table together with data on the recipient of the record last read."
CMPER 0510Compares the current amount with that held for period 10 in year 05.
D Expect a decision in this line
D AMT?0The amount field value is compared with 0, and the result (‘>’, ‘=’ or ‘<’) is placed in the variable key.
D VWTCL 01 Make a decision on processing class 01
DIVID ANRDivide the amount by the number and store the result in the rate field
DIVID ARA Divide the value in amount field by the value in
the rate field and put the result in the amount field
DIVID ARRDivide the amount by the rate and store the answer in the rate for the wagetype
DIVID NRNDivide the number by the rate and store the answer in the number field
ELIMI * Eliminate all splits
ELIMI A Eliminate splits - work center period (WPBP)
ELIMI K Eliminate splits - cost accounting
ELIMI KTXEliminate the splits for cost accounting, alternative payments and variable assignment
ELIMI REliminate splits - employee sub-group grouping for PCRs
ELIMI T Eliminate splits - alternative payments (ALP)
ELIMI U Eliminate splits - bank transfer (BT)
ELIMI X Eliminate splits - variable assignment
ELIMI Y Eliminate splits - absence assignment
ELIMI Z Eliminate splits - time unit
ERROR Processing terminates for the current employee
FILLF ARestore the original values for the amount - i.e. The values that were held for the amount field in the WT before any processing in this rule
FILLF NRestore the original values for the number - i.e. The values that were held for the number field in the WT before any processing in this rule
FILLF NRA
Restore the original values for the number, rate and amount - i.e. The values that were held for the number, rate and amount fields in the WT before any processing in this rule
FILLF RRestore the original values for the rate - i.e. The values that were held in the WT before any processing in this rule
GBVRT
"GB specific processing of AWE operation GB specific operation to overwrite the average RATE of wage type /MAE in table RT in case of a retro calculation."
GCY ZUM2 Call PCR ZUM2
GCYGXALQ Calls PCR XALQ for all wage types - sets wage
type to ****
GEWRT Elimination of WPBP split in the RT
GSXP2New Changes Across End of Year solution active for GBSXP phase 2
GSXPD
Check on Implementation Date of AVERA for SxP AWE. Called in GG70 and ensures that the old and new technical wage types for averages don't both exist.
LRTST YEvaluates the status of the LRT table. Processing is only continued if the previous month falls in the current year.
MEANV 01 Calculation of averages for 01 (from table T511A)
MEANVG03Calcualation of averages for 03 (from table T511A) - not sure what the G implies
MESSGxxxxxCan use a 5 character message. Comes up whether the log is turned on or off. Can be used as a customised error message.
MODIF 1=02Sets the modifier for Wage type generation (T510S) to 02 as the employee grouping
MODIF 2=01Sets the modifier for Constant valuations (T510J) to 01 as the employee grouping
MODIF A=01Sets the modifier for the absence valuation rule (T544C) to 01
MULTI ANNMultiply the amount by the number and store as the number field for the wage type
MULTI NRAMultiply the value in number field by the value in the rate field and put the result in the amount field
NEXTR
Process the next line. Placing an * in the last column in the operation column has the same effect as "nextr". Remember to put a letter or number in the next line under the NL column.
NEXTR AContinuation line. A...Z followed by 0...9 Don't forget to put in the letter following the NEXTR in the continuation line of the next line.
NEXTR BContinuation line. A...Z followed by 0...9 Don't forget to put in the letter following the NEXTR in the continuation line of the next line.
NUM* BSGRD Multiply the value in the number field by the value held against the capacity utilization level on
infotype 0008
NUM*1.5 Multiply the value in the number field by 1.5
NUM/100 Divide the value in the number field by 100
NUM?0 Test the value in the number field against 0
NUM+ 3710Add the value in the number field of wage type 3710 to the number field in the WT being processed
NUM+& ZNILAdds the number held in the temporary variable ZNIL to the currently held value for the number
NUM+39 Add a value of 39 to the number field
NUM+C 3000Add to the NUM value from wage type 3000 held in the CRT table - to the NUM value of the WT being processed
NUM+E /852Adds the number held in technical wage type /852 to the currently held value for the number
NUM+TSAP**
Adds the number from the partial period parameter for the paid absence measured in working hours for xx is the sum of all paid absences (totalled over all classes)
NUM= 3000Set the current NUM to the value held in wage type 3000
NUM= ANZHLTransfers the value of the ANZHL field to the number field.
NUM= BWGRLSets the number equal to the valuation basis per hour
NUM= EMPCTNUM = Capacity utilization level from P0007 (called record layout fields in SAP Help)
NUM= PLANSSets the number equal to the position number of the employee
NUM= STDAZSets the number equal to the number of hours taken from IT 0007
NUM=& ZSHFSets the number equal to the number held in the temporary variable ZSHF
NUM=0 Set the number field to zero
NUM=39 Store 39 in the number field
NUM=BJRSTDSets the number equal to the position number of the employee
NUM=BTGSTDSets the number equal to the daily hours worked by the employee
NUM=BWOSTDSets the number equal to the weekly hours worked by the employee
NUM=E /SSPSet the NUM = the value of /SSP held in the results table
NUM=GSDIVPSets the number equal to the working hours for the employee for the entire payroll period
NUM=GSSOLLSet the number = planned working time measured in working hours taken from the work schedule rule
NUM=TSAU** See part period parameter help (function PARTT)
NUM=TSAX** See part period parameter help (function PARTT)
NUM=TSDIVI See part period parameter help (function PARTT)
NUM=WOSTD See part period parameter help (function PARTT)
NUM=YCURPP Set the NUM = current payroll period (?)
NUM-51 Reduce the hours held in the number field by 51
NUM-E /845Take away the number for technical wage type /845 held in the RT from the currently held number
NUM-TSDIVP
Current value in the number field less the total working time measured in working hours taken from the total working time in payroll accounting period
OPINDEvaluates operation indicator - used immediately after a database record has been read. Multiplies by -1.
OUTWPABARTLoad Work Center and Basic Pay Data - payroll area
OUTWPCTYMOLoad Work Center and Basic Pay Data - country modifier
OUTWPPAYSBDecide which payroll accounting area the employee is in
OUTWPPERSBLoad Work Center and Basic Pay Data - employee sub-group
OUTWPPERSGLoad Work Center and Basic Pay Data - employee group
OUTWPPLANT Load Work Center and Basic Pay Data -
personnel area
OUTWPPLTSCLoad Work Center and Basic Pay Data - personnel sub-area
OUTWPSHIFTLoad Work Center and Basic Pay Data - shift indicator
OUTWPTRFARLoad Work Center and Basic Pay Data - pay scale type
OUTWPWWEEKLoad Work Center and Basic Pay Data - working week from IT 0007
PCY X05D*Runs PCR X05D for all employee subgroup groupings
PCY X93B Runs PCR X93B
PPPAR AReads part period parameters: leavers during payroll period
PPPAR BReads part period parameters: paid absences during payroll period
PPPAR EReads part period parameters: new joiners during payroll period
PPPAR FReads part period parameters: leavers on the first day of the next payroll period
PPPAR PReads part period parameters: if the time unit for the payroll area is different to the time unit for the pay scale type and area
PPPAR RReads part period parameters: is the employee is in an active work centre?
PPPAR SReads part period parameters: basic pay changes during payroll period
PPPAR UReads part period parameters: for unpaid absences in the period
PRINT Prints the IT
PRINT& WTG Prints WTG from the variable table
PRINTC Prints the contents of the CRT
PRINTE Prints the contents of the RT
PRINTLPrints out the contents of the old results table (LRT)
PRINTO Prints the summarised ORT (VORT)
R Employee work centre is inactive, therefore do
nothing
R51P1?10N
You want to know if there is an entry in table T51P1 with indicator 10 for the current IT wage type. If an entry is found, processing should be continued.
R51P1=01R
You want to read the entry in table T51P1 with indicator 01 for the current IT wage type, and store it in the OT table. If an entry is found it should be rejected
R51P6A
"Operation R51P6 reads an entry from table T51P6. This table determines the characteristics of the deduction wage types. The value of the arrears characteristic should be placed in the variable key."
RE510T Read Pay Scale Table - group and level
RESET *Sets the splits back up again - has the opposite effect to the ELIMI * operation.
RESET 1 Resets the first national split (/SI)
RESET AR
Resets the amount and the rate - is the opposite of ELIMI. Reset * - resets all the split indicators. Give the meaning of all the other variables elsewhere in the document.
RESET KRResets the cost accounting and employee subgroup grouping values
RESET RResets R - is the opposite of ELIMI - resets the employee subgroup groupings for the employee
RETROChecks if the payroll run is a retroactive accounting run
ROUNDRounds off the AMT field - see SAP help for specifics
ROUND 005Rounds the AMT field up so that it is divisible by 005
ROUND +100Rounds the AMT field to the next available number
ROUNDARounds off the NUM field - see SAP help for specifics
ROUNDBRounds off the RTE field - see SAP help for specifics
ROUNDG Rounds off the AMT field - see SAP help for
specifics
RTE%33.33Multiply the value held in the rate by 33.33% - so effectively multiply by .3333
RTE-& HALFSubtract the value held in the constant HALF from the rate
RTE* BSGRDMultiply the value held in the rate by the capacity utilization level field on infotype 0008
RTE*-1Multiply the rate by negative 1 - effectively switch the sign for the value
RTE*100 Multiply percentage held in rate field by 100
RTE*KGENAUMultiply the rate by the constant GENAU held in table T511k
RTE*KGENAUMultiply the value in the rate field by the payroll constant GENAU (10,000).
RTE/100 Rate divide by 100
RTE/GKDIVI RTE/ total working time in calendar days
RTE/TADIVI RTE/ total working time in working days
RTE/TASOLLRTE/ planned working time measured in work days
RTE/TKDIVIRTE/ Total working time measured in calendar days
RTE/TSDIVIDivide the value in the rate field by the worked hours for pay period being processed.
RTE/TSDIVPRTE/ total working time measured in working hours
RTE?& VLBSCheck to see how the current rate compares against the value held in the temporary variable VLBS
RTE?0Check to see how the current rate compares against a value of zero
RTE+ 1001Adds the rate held in wage type 1001 to the currently held rate
RTE+& MMAdds the rate held in the variable MM to the currently held rate
RTE+* Adds the current rate to the IT
RTE+100.00 Adds a value of 100 to the currently held rate
RTE+BBETRG Add the amount from table to the currently held
rate
RTE+TKAU10Add the unpaid absences measured in calendar days for counting class 10 from table T554C
RTE= 1001Set the rate equal to the value held in the rate field for wage type 1001
RTE= BETRG Set the rate equal to the amount
RTE= BSGRDSet the rate equal to the capacity utilization level held on infotype 0008
RTE= BWGRL Sets the rate equal to the valuation basis per hour
RTE=& ABSets the rate equal to the value held in the temporary variable AB
RTE=0 Set the rate field to zero
RTE=10000 Store 10000 in the rate field of wage type xxxx
RTE=BBETRGSet the rate equal to the amount pulled from the table
RTE=BWOSTDSets the RTE equal to the weekly hours worked by the employee
RTE=GKSOLL Set the rate as the planned calendar days
RTE=K30551Store the value held against payroll constant 30551 in table T511 in the rate field of wage type xxxx
RTE=KGENAURTE set to the value of GENAU from table T511K (default set at 10 000)
RTE=TADIVPRTE = Total working time measured in working days
RTE=TASOLLRTE = planned working time measured in work days
RTE=TKDIVIRTE = Total working time measured in calendar days
RTE=TKSOLLStore the planned calendar days in the rate field of the wage type being processed
RTE=TSAU07RTE = unpaid absence measured in working hours for counting class 07
RTE=TSDIVPRTE = total working time measured in working hours
RTE=TSSOLLRTE = planned working time measured in working hours
RTE=ZERO Reduce the value in the amount field to zero
RTE-GKAU**Rate subtract the part period unpaid absences in calendar days for all unpaid absences (totalled over all absence counting classes)
RTE-TAAU**Rate subtract the part period unpaid absences in working days for all unpaid absences (totalled over all absence counting classes)
RTE-TKAU**Take away any unpaid absence, in calendar days, from the current rate (totalled over all absence counting classes)
RTE-TKAU20Take away any unpaid absence, in calendar days, from the current rate (for absence counting class 20)
RTE-TSAU**Take away any unpaid absence, in worked hours, from the currently held rate (totalled over all absence counting classes)
COND=F IF The condition for function IF is false
SCOND=T ALSet condition for Function LPBEG when the condition is true
SCOND=T IF The condition for function IF is true
SCOND=T IF The condition for function IF is true
SETIN A=01Set the work center - basic pay split for the wage type as 01
SETIN R=1 Set the ESG for PCR as 1
SETIN X=NXYou want to set X with number 01 as a variable split; the number of the split is to be increased by 1 by every call.
STATU 2PStatus field 2 which is valid at the start of the in-period is entered in the variable key.
SUBRC?SETThe return code set in the second example must be evaluated.
SUBRC=0 The internal return code is set to the value 0
SUBWT *Subtracts the current wage type - effectively changing the sign of the NRA.
SUBWT 1025Subtracts the current wage type (signs change) and stores it as 1025.
SUBWT&ZREGSubtracts the current wage type and stores it as a temporary variable ZREG.
SUBWTD*Subtracts the current wage type (sign change) of the NRA in the difference table (DT)
SUBWTD/551Subtracts the current wage type and stores it in the difference table (DT) as a temporary variable ZREG.
SUBWTEFlicks the sign for NRA of the currently processed wage type and stores it in the RT
SUBWTE*Subtracts the current wage type (sign change) of the NRA and stores in the results table (RT)
SUBWTE/121Flicks the sign for NRA of the currently processed wage type and stores it in the RT as technical wage type /121
SUBWTI*Flicks the sign for NRA of the currently processed wage type and stores it in the input table (IT)
SUBWTI/101Flicks the sign for NRA of the currently processed wage type and stores it in the input table (IT) as technical wage type /101
TABLE 503 Table query on employee groupings / areas
TABLE 508A Table query on shifts / time groups
TABLE 510P Table query on premium table
TABLE 512W Table query on valuation of wage types
TABLE 528B Table query on positions table in PA
TABLEALP Table query on the Alternative Payments table
TABLEP0014Table query on data held in infotype 0014 - recurring payments and deductions
TABLEP0015Table query on data held in infotype 0015 - additional payments
VAKEYALZNRPlace in the variable key - Y/N alternative payment
VAKEYAUFKZPlace in the variable key - extra pay indicator for overtime
VAKEYBNKSAPlace in the variable key - variable keys are held in a certain table
VAKEYBNKSAPlace in the variable key - type of bank details P0009
VAKEYLGART Store in the variable key the wage type
VAKEYLNCLS Place in the variable key - loan type
VAKEYLNTPY Place in the variable key - loan type P0045
VAKEYLNTYP Place in the variable key - loan type P0045
VAKEYPAYTY Place in the variable key - payroll type
VAKEYPRAKNPlace in the variable key - premium indicator time ITs
VAKEYTGRLEPlace in the variable key - variable key is filled out based on the values in the TRFGR and TRFST fields from the current PZ record
VAKEYVERSLPlace in the variable key - clearing key for overtime
VAKEYZEINH Place in the variable key - time unit
VAKEYZLSCHPlace in the variable key - payment key for bank transfers
VALBS?The system checks to see whether a valuation base exists
VALBS?0The system checks if a valuation basis is for the current wage type in table T512W. (That the "0" line of view V_T512_B is read).
VALBS0
The current wage type is evaluated with the valuation basis that is entered for the current wage type itself. (That is, the "0" line of view V_512W_B).
VALBS0 *
The system multiplies an entry that already exists in the RTE field for the current wage type with the percentage rate from a line 0 of view V_512W and then replaces the wage type names of the current wage type with the name of the wage type from the same line in V_512W.
VALBS0 BSame as VALBS0 * with the exception that the data from infotype 2010 is used.
VALBS1
Replaces the current wage type with the statement wage type that is entered in table T512W for the second wage type derived from the current wage type, and then you want to valuate this using the corresponding valuation basis.
VALEN 2 Sets the length of the variable key to 2
VALEN 3 Sets the length of the variable key to 3
VAOFF 2Variable offset - set here to 2. The system with then ignores the first 2 digits.
VARGBINDBWPlace the table field "indicator for indirect valuation" in the variable key
VARGBPRAKNPlace the table field "premium number" in the variable key
VARGBTRFKZPlace the table field "ES grouping for collective agreement provision" in the variable key
VWTCL 64 Interrogate processing class 64
WGTYP?Usually part of a decision - where the wage type is queried
WGTYP=* Passes through the wage type as unchanged
WPALL?LASTDecide if employee has had a pay change in pay period and if the one being processed is the last
WPBPCOperation WPBPC distributes the amount of the current wage type to the active WPBP periods in the payroll period.
WPBPCWThis operation splits the amounts but does not distribute them to the different periods
Z Expect to call another PCR in this line
ZERO= AN Sets the AMT and NUM to zero
ZERO= RNASet the values for the rate, number and amount equal to zero
ZERO=& ABCD Initialises the variable ABCD
ZERO=NRA Sets the NUM RTE and AMT to zero
Wishing to retrieve previous payroll period results to be used in a PCR?
You can do so by using the operation IMPRE with parameter NN (NN periods before current payroll period). Also have a look at the documentation of IMPRE.
An example in using this operation is as follows (reading the period 6 months ago):
D ZERO = NRA IMPRE 6 SUBRC?IMP *
0 AMT = O 1001SETIN A=01SETIN R=3 ZERO= NR ADDWTI1001
Search Query
SDS OffersSAP HR Services
Overview SupportData Analysis
Quality Assurance
VideoTutorials
Your Input
Please let us know if there is a particular article you would like to see.
Or give us some feedback on the site so we can improve your expe