Baisc pay change
Hi All,
When we tried to change the basic pay IT 0008, in the payroll its throughout below error
"Division by zero not performed
Calculation rule XPPF*/810"
How to fix this in factoring,
How w ecan fix this issue
SD
Hi,
Check out this forum: Error Division by zero not performed during run payroll
There is a similar issue. You may uses other wagetype to do the factor (/801, /802...) if it fix better to you.
Kind Regards,
Edoardo
Similar Messages
-
Standard report on promotion and pay changes
Hi All,
Is there any standard report which captures promotion data along with pay changes.
Regards
Aryanquery can be created to extract information from master records i.e Infotypes. For example, by creating a query , the data relating to an employee contained in various Infotypes can be extracted.
Proceedure :
Decide on the various Infotypes we want to make the query. Decide on the area where we want to query i.e Global area or Standard area. Standard area is client specific and globel area will include all clients.
Menu : HR u2013 PM u2013 Admn - Information System - Adhoc Query
Select area standard and select the user group already created
Creation of new query :
TC SQ03 - Select Environment u2013 Select Standard Area - Enter -- If new user group is to be created, enter name of the user group, click on create and enter necessary information and exit after saving
TC SQ02 - Enter name of the Infoset u2013 Create u2013 enter name of Infoset - Data source -- > Table join by basis table u2013 give name of table e.g pa0000 - Enter - Click on insert table if we want to include more tables u2013 give name of table one by one and after finishing, place cursor on the joining lines and right click to delete unwanted relationships - check - and go back - field groups - include all table fields - click on generate button - go out
TC SQ03 - Select user group - eg. Payroll
Infoset - Enter name of newly created Infoset
Assign users and Infosets - Assign infosets - put tick on payroll - save and go back
TC PAAH - Expand the nodes and put tick on relevant fields depending upon necessity
Save the query by giving the same name as infoset for easyness.. -
Quick pay change required.
Hi , I have a question regarding quick pay.
Please read this
Currently, all quick pays are manual checks. This has created hardship for the employees who have direct deposit, as they anticipate all of their paychecks being automatically deposited to their accounts. When there are mistakes, it is a huge inconvenience to the employee who must now collect their check, make the deposit and wait for the check to clear. With direct deposit, there is no wait period; the money is available immediately.
We are requesting that all Quick Pays default to the payment method on the employee's record with the option to select manual check. (there are instances where supervisors wish to hand delivery bonus checks).
Can anybody give me a solution for this.
thanks
kumarwhat is your legislation?
I thought the core system should do it by default: run quickpay, and the pre-payments on top of it, what distributes the money all over the personal payment methods. -
WF notification in case Employee Data changes
Hello Experts,
We are looking to get some kind of notification if Infotype 8(Basic Pay) of an employee is changed. I was wondering if anyone has implement this scenario before..
We need to send some information if the basic pay changes like a workflow message to a user's sap inbox.
Please advise.
thank you very much in advance.
MridulaMridula,
You may use business object "BASICPAY" nad event " Changed" to trigger notifications.
Regards
SVS -
HCM Process and Forms - Changes to Form Issue
We have a scenario within HCM processes and forms where the changes being made by an intermediate approval step is not being sent to the next level approver. For example, in a pay change the initiating manager sends the pay change to his/her boss for approval, then once approved the form is sent to HR for final approval and update into R/3.
In this scenario the initiating manager starts the process and makes appropriate updates to the form (including comments). This then routes to that manager's manager for updates/approval. When processing the form, the approving manager can see the information input by the initiating manager. The approving manager then has the opportunity to make appropriate changes within the form and add comments before it is approved and sent to HR for final approval.
Once the approving manager makes changes and sends this to HR, when HR processes the form they see the changes as if it was sent by initiating manager (HR does not see the changes made by the approving manager).
I appreciate any insight you may have on this issue.
Regards,
BradSounds like you process is designed incorrectly and your are having problems with your process object integrity. You need to be careful with loops/branches when designing your process. Are you doing it all in the same Form Scenario and just using multiple steps? The form scenario will "share" the "data" hence you can have issues. You can split it to a differnt form scenario and pass the data over from the other FS to your FS. Then you know you will have your own data there. I often see people trying to do their whole process within one form scenario and use multiple steps without realizing the data integrity issues with that.
Hope this helps. -
PCR (Personnel Change Request) in ess/mss workflow number
Hi ,
i am working on PCR (Personnel Change Request) Hr workflow
object it is es/mss object.please tell me is there any standard workflow available for this .if so please tell me the workflow number.
Regards,
charita.Hi,
Find the following workflows on the ESS/MSS side,
Personnel Data Change 30300008 (Bank) 01000015 (Address)
Name and Marital Status Change 1200170
New Hire 17900011
Re Hire 17900011 to be customized
Pay Change 20000003
Special Payment WS50000041
Domestic Transfer WS50000031
International Transfer WS50000031 to be customized
Seperation WS50000041 to be customized
Position Change WS50000041 to be customized
Leave Request 12300111
For ESS follow the link for Help,
http://help.sap.com/saphelp_erp2005/helpdata/en/f6/263359f8c14ef98384ae7a2becd156/frameset.htm
Reward for useful answers!
Richard A -
Question about:Job Pricing & Basic Pay Range Restriction...
Hi Experts,
I did servral settings to acheive Basic Pay Range Restriction(Warning) which uses Job Pricing concept:
1-Define Pay Grades And Levels
In this step, I build a records to describe a payment range for certain evaluation points
2-Create a record of infotype 1050(Evaluation Results) for certain position(let it be 10000001), in which I evaluate this position as 20 points.
3-Assign 10000001 to an employee
But when I input 0008 baisc pay amount for this employee, range check does not happen as expected. Is there any steps I missed?
It's urgent.
Thanks in adv.
Br,KeeIn-line to tht check the IT1005
http://help.sap.com/saphelp_47x200/helpdata/en/66/9bb8923aff11d189370000e829fbbd/frameset.htm -
A FUNCTION MODULE FOR THE HR MODULE FOR PAYROLL OF EMPLOYEES
hi,
i want some a function module or code where i need to get the payroll details like the basic pay ,hra,special allowance,medical allowance,other allowance of an employee on the monthly basis.
the data that i have on ot os not on the basis of months it contains datd of more than one month.like the baisc pay of an employee is given on a radom day basis of more than one month.
but i need to bifercatethe data on monthly basis.
waiting for the reply.
thanks and regardsHi,
Use the fun module
RP_FILL_WAGE_TYPE_TABLE_EXT
which willget PA0008 results.
but to get the real payroll results you have to import data from clusters by writing the program. Data will be fetch from RT and CRT internal tables based on the Wage Types
see the sample code:
report zporgr0100
line-size 252
line-count 60(1)
no standard page heading
message-id zndc.
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 points if useful
regards,
Anji -
Creation of new employment status
Hi,
We want to create new Employment Status similar to "0" - Withdrawn. This status should have same features like status "0". I have created a new status "4" and assigned the same to an action. However, the attributes of the new status "4" are not same as "0".
Eg: I have assigned the new status "4" to the termination action. When I execute this action the system updates the employment status to "4". However, I can execute a transfer action or pay change action on the same date of termination action. Ideally system does not allow 2 status change actions on same day. The system allows payroll to be run with the employment status as "4".
Please let me know of any missing configuration or anything I need to check.
Thanks.Hi all,
thanks for reply.
we can create new status from table V_T529U with description.
We can assign that status to Perticular action also but after that when i run quota generation or payroll for that employee, logically it should not allow me.
but in this case , it is allowing which is not in case with standard employment status 0- withdrawn.
from my understanding , we can not create new standard employment status in sap hr as it refelects in all payroll and time related standard programs , which we can not change by adding new status.
Please give your observations may b i am wrong. -
How to implement Strategy pattern in ABAP Objects?
Hello,
I have a problem where I need to implement different algorithms, depending on the type of input. Example: I have to calculate a Present Value, sometimes with payments in advance, sometimes payment in arrear.
From documentation and to enhance my ABAP Objects skills, I would like to implement the strategy pattern. It sounds the right solution for the problem.
Hence I need some help in implementing this pattern in OO. I have some basic OO skills, but still learning.
Has somebody already implemented this pattern in ABAP OO and can give me some input. Or is there any documentation how to implement it?
Thanks and regards,
TapioKeshav has already outlined required logic, so let me fulfill his answer with a snippet
An Interface
INTERFACE lif_payment.
METHODS pay CHANGING c_val TYPE p.
ENDINTERFACE.
Payment implementations
CLASS lcl_payment_1 DEFINITION.
PUBLIC SECTION.
INTERFACES lif_payment.
ALIASES pay for lif_payment~pay.
ENDCLASS.
CLASS lcl_payment_2 DEFINITION.
PUBLIC SECTION.
INTERFACES lif_payment.
ALIASES pay for lif_payment~pay.
ENDCLASS.
CLASS lcl_payment_1 IMPLEMENTATION.
METHOD pay.
"do something with c_val i.e.
c_val = c_val - 10.
ENDMETHOD.
ENDCLASS.
CLASS lcl_payment_2 IMPLEMENTATION.
METHOD pay.
"do something else with c_val i.e.
c_val = c_val + 10.
ENDMETHOD.
Main class which uses strategy pattern
CLASS lcl_main DEFINITION.
PUBLIC SECTION.
"during main object creation you pass which payment you want to use for this object
METHODS constructor IMPORTING ir_payment TYPE REF TO lif_payment.
"later on you can change this dynamicaly
METHODS set_payment IMPORTING ir_payment TYPE REF TO lif_payment.
METHODS show_payment_val.
METHODS pay.
PRIVATE SECTION.
DATA payment_value TYPE p.
"reference to your interface whcih you will be working with
"polimorphically
DATA mr_payment TYPE REF TO lif_payment.
ENDCLASS.
CLASS lcl_main IMPLEMENTATION.
METHOD constructor.
IF ir_payment IS BOUND.
me->mr_payment = ir_payment.
ENDIF.
ENDMETHOD.
METHOD set_payment.
IF ir_payment IS BOUND.
me->mr_payment = ir_payment.
ENDIF.
ENDMETHOD.
METHOD show_payment_val.
WRITE /: 'Payment value is now ', me->payment_value.
ENDMETHOD.
"hide fact that you are using composition to access pay method
METHOD pay.
mr_payment->pay( CHANGING c_val = payment_value ).
ENDMETHOD. ENDCLASS.
Client application
PARAMETERS pa_pay TYPE c. "1 - first payment, 2 - second
DATA gr_main TYPE REF TO lcl_main.
DATA gr_payment TYPE REF TO lif_payment.
START-OF-SELECTION.
"client application (which uses stategy pattern)
CASE pa_pay.
WHEN 1.
"create first type of payment
CREATE OBJECT gr_payment TYPE lcl_payment_1.
WHEN 2.
"create second type of payment
CREATE OBJECT gr_payment TYPE lcl_payment_2.
ENDCASE.
"pass payment type to main object
CREATE OBJECT gr_main
EXPORTING
ir_payment = gr_payment.
gr_main->show_payment_val( ).
"now client doesn't know which object it is working with
gr_main->pay( ).
gr_main->show_payment_val( ).
"you can also use set_payment method to set payment type dynamically
"client would see no change
if pa_pay = 1.
"now create different payment to set it dynamically
CREATE OBJECT gr_payment TYPE lcl_payment_2.
gr_main->set_payment( gr_payment ).
gr_main->pay( ).
gr_main->show_payment_val( ).
endif.
Regads
Marcin -
How to raise an event from a program
Hi,
I am creating a workflow for HR, the person will request a basic pay change than, this will start the workflow. For this i am making a screen from where i need to triger the event for the workflow.
Does anybody has any idea? of how to raise an event from a program. or has anybody worked on a scenario like this
Khusro HabibYou can also use the FM SAP_WAPI_CREATE_EVENT which is a little newer I think. (I don't have access to a system today so that may not be the exact name of the FM but if you search SE37 under SAPWAPIEVENT* you should find it.
the parameters will be the event name, and the object key. The object key will be the key field of the workflow object you are using.
For example if you were using the saled document object then the object key would be the sales document number. Carefull how you enter the object key, it can be a little tricky on whether or not you need the leading zeros in the input parameter.
Hope this helps.
Brent -
hai experts....
is any business objects in HR module like MM (bus2012,2010...)and SD (bus2032...)etc...
please give me with the infotypes....
thanks and regards ,
velu.....Hi,
Find the following HR Related workflows / some fo them are in ESS/MSS ,
Personnel Data Change 30300008 (Bank) 01000015 (Address)
Name and Marital Status Change 1200170
New Hire 17900011
Re Hire 17900011 to be customized
Pay Change 20000003
Special Payment WS50000041
Domestic Transfer WS50000031
International Transfer WS50000031 to be customized
Seperation WS50000041 to be customized
Position Change WS50000041 to be customized
Leave Request 12300111
For ESS follow the link for Help,
http://help.sap.com/saphelp_erp2005/helpdata/en/f6/263359f8c14ef98384ae7a2becd156/frameset.htm
Reward for useful answers!
Richard A -
Reasons(standard) for Payroll lock
Dear All,
We want to capture the reason for payroll locking.Where we can do this configuration. We have a option to capture reasons, like while doing basic pay changes, Actions, etc..We are looking similarly for this also.
Could you share other possibilities..
Thanks in advance.
Team,. give ytour inputs on this. Plz.
MVR
Edited by: MVR on Feb 22, 2011 10:45 AMHi,
Nilesh's solution is a great one.
The matter is that IT0003 is not time-dependent.
If you want to keep track of payroll lock reasons in a time-dependent manner; another option would be to create a brand new infotype just for this purpose (with one field reason code, text of which is to be held in lookup table -as said by Nilesh-)
Regards,
Dilek -
Reporting who could access a system
Hi
I need to be able to generate a report on which users could have accessed a given system in a given timeframe (ie. the last 2 weeks), I have been through the menus and I can't seem to find any report-type that fits this requirement.
Is it possible to do this, if so, which direction should I proceed? I'd imagine that it is a combination of running the reconcile on regular intervals and logging the accountIds that is returned, and afterwards generate a audit report with the desired info.
I'm running IDM 7.1 and my resource is Solaris and possibly shell-script adapters (for Linux and FreeBSD).
Any pointers and help is greatly appreciated.
Regards
ThomasAlex
We have load balancing on the ITS servers but last year the number of users who tried to logon was double that of the concurrent number of users for the load balancing. Is there a way of setting the load balancing to allow no more that the maximum number its load balanced for?
We have staged pay change notifications according to grade so we don't experience this high load at any other time.
Thanks
Diane -
Pull Current and First Previous Record
Hello, I am not having any luck on how to do this...
I am doing a salary history report. I want to pull the current salary and the first previous salary only to compare the difference of the last two pay rates in the history.
The salary history records contain more than 2 records. Some have up to 10 records in salary history. How can I pull only the last two records? Is this possible?
Any help would be appreciated. Thank you!Yes I tried that but it did not work like I wanted it to right now. Maybe i need to set up my report differently.
Right now, I have selected only the records with a 10/31/09 date. I wanted to pull all the employees who got a pay change on 10/31/09 and see how much of an increase they got. When I use the previous forumula it pulls from the employees pay rate in the report instead of from the database.
For example:
Current Previous
Employee A: $12
Employee B: $10 $12
Employee C: $11 $10
Employee D: $9 $11
Should I remove the selection criteria for the 10/31/09? I only want to view the employees who have a pay record on the 10/31/09 though.
Maybe you are looking for
-
Hi guys, in my school there is a classroom with iMacs G5 and my job is to take care of it. So I decide to set firmware passwords on all iMacs. When I set firmware password on first iMac and I reboot it, that iMac cant boot to os x and single user eve
-
How to find JPanel viewable or drawing area size
hi, I have a two small question. First one is, I have a JPanel what I need is to find the viewable area size or the drawing size of the Panel. I don't want to get the size of the Title bar. All I need is how to find the actual drawing area not includ
-
Can I send a gift certificate by email to Guam?
Can a US resident buy a gift certificate for US serviceman in Guam?
-
Sources of Captivate information
Hi, I am trying to understand how feature requests and support work and where to find information on Adobe Captivate . Can people please advise if there are other sources of information? Support The official support area http://helpx.adobe.com/capti
-
InDesign CC 2014 Preferences Issue
I am running InDesign CC 2014. When I open a new document, the new document shows the page width and height in points or picas. I have set my preferences to inches but that doesn't seem to do anything. Didn't have this issue before.