Time management (leave Types)
Hi all,
I have some issue in creating leave types likes my employee has different leave conditions according to the employee groups , Eg : if i am taking Earned leave into consideration they have 20 days quota for staff, 25 for trainees , 15 for other group likewise one group can avail 10 days leave at a time other can avail 5 leave at a time , now i am confused how to do this ,if i have to create seprate leave types for all the groups or their is some other method to do it.
Regards,
Vinny
Edited by: vinny on Sep 22, 2008 2:16 PM
Hi
I think you can use QUOMO feature for this type of scenarios.
This will accrue leaves differently for different employee sub-groups.
But where as that utilisation for one e.group 10 and for another e.group 15, that is the problem. I think you can tackle this by writing Custom PCR.
Check it out if this can help you.
Regards
Venu
Similar Messages
-
Time Management - Processing Type, Schema TM00 and Absence Type
Just like to understand how the processing type is use in TM. Where do we tight the processing type to the absence type? How the schema make use of processing in the time evaluation processing?
Appreciate some sharing on this topics. TQ.HI
In the TIme evaluation , you can write your absences or LOP in time wage types or create FM to add the LOP day to 2001 .
Rest of the devaiations can be put in time wage types and can be read in payroll .
Regards
sameer -
Time Management _selection Rules
Hi all,
What is the use of selection rule concept in Time management Module....
How we will use this in real time...can any one of u explain me in detail with good examples...
is there any relation between these two table T553A and T553S?
Thanks & Regards,
Avanthika.kHi,
Please go through the attached thread which is giving the information with examples...
Time management-day type selection rule
Best Regards,
enkat.
Edited by: Venkateswara Sarma Bhamidipati on Feb 11, 2011 3:43 AM -
Time Management- Wrong Day Types coming when updating leave records
Dear Experts
Can anyone help me on what I should do to change my Day Type in Time management. The greatest challenge is that the system is not able to read the day type for Work/Paid. Despite that I have created my dailly working schedules, work schedule rule and my calender showing working and non-working periods, I still face a challenge when I want to give employees leave because the system says the whole period is a non working period. If I check in the employeeu2019s personal work schedule I notice that all the day types are Off/Paid hence that leave cannot be given especially if its vacation which does not count weekends and public holidays.
I am using the same customization as that I was using in the testing environment and was working fine but then in production, it is not. Where exactly can I check and change so that the day types are read correctly. When I run time evaluation, the system is accruing days normally but then it is picking Day type 1(one) in Table PSP
thanxHi,
For the daily WSR that you used (in table V_T550A) check that in Valuation section Daily WS class does not have value 0
Cheers -
How to remove annual leave accrued in time management
Hi all.
I have question in Time management. When I run some employees, their annual leave increase 15 days every day. So at the end of the year
their annual leave become more than 10000 days. How I want to stop this.What I want annual leave for this staff is 15 days every year and
the max carry forward can is 15 days per year. Can you help me.I'm too new in time management let alone negative time management.
ThanksI believe you are referring to Absence Quota Accrual right?
If it is, table T556C (SM30) has all the customizing for counting and deduction rule. For the counting rule, check if you haven't set a multiplier.
But more important, is to check V_T559L -> Selection Rules. I believe you have a bad customizing for the ACcrual Period. If you want to accrue yearly based, I would recommend maintaining IT0041 with the date employee entered company and use it on the field Rel. to Date Type.
Of course, you can accrue as per calendar year as well.
Please check that and get back in case you still have issues.
Regards,
Bentow. -
About 2/3 of the time I leave Firefox, it is evidently retained in memory so I can't restart it without using the task manager. I don't use Norton or Skype programs. How do I keep this from happening?
== After I have used Firefox and "closed" it.See this:
https://support.mozilla.com/en-US/kb/Firefox+hangs#Hang_at_exit -
Attendance type for training in negative time management
Hi,
We are using negative time management. Attendance Type T-Training is created. I have specified in the integration switch PLOGI-TIME 1 and specified the attendance type in SEMIN-APART. But even when I firmly book a business event, the attendance type is not stored in the attendances of the employees who are booked to the training event.
Is the attendance stored automatically when the business event is firmly booked in negative time management? Or this is applicable only to the Positive Time Management?
Please help.
Regards,
Sasi.Hi Dear,
In "Specify Attendance Types" node under Integration with Time mgmt in TEM node in SPRO. Kindly check the following points:
PLOGI,,TIME,,1,,Integration switch: Training and Event Mgmt/ Time
SEMIN AINST "value as maintained in Time Managment" for Attendance type for instructor in T554S
SEMIN APART "value as maintained in Time Managment" for Attendance type for instructor in T554S
SEMIN TIMEP According to your requirement
kindly check the value for the above two field under
Time Management --> Time Data recording and Administration --> Attendance/Actual Working Time --> Define Attendance Type
and check the value maintained Trainee Attendance and Trainer Attendance. Following is maintained as default.
01 0420 Trainee Attendance
01 0425 Trainer Attendance
let me know if you have any issues.
Thanks and Best Regards
Puneet -
Time Management - Annual Leave carry forward ceiling
Dear All,
We are implementing SAP HCM - Negative Time Management. Here the sceanrio is to have a ceiling for the Annual leave carry forward. For example , the employees should not be able to carry forward not more than 15 days of Annual leave
Guess we can achieve this using User Exit ? Would be helpful if anyone could tell me the Name of the User Exit to be used
Thanks in advance.
Kind regards
SathyaNo iam not looking for Annual leave entitlements.
We need to have ceiling on Annual Leave Carry Forward. for example let say an employee has 20 days as Annual leave Balance he / she can carry forward only 15 out of that 20 days to next year.
Kind regards
sathya -
ABAP-HR, Time Management
Hi,
In HR-ABAP, i want to know complete funciton modules, macros and few sample programs that are related to TIME MANAGEMENT in HR-ABAP.
How to generate a report for different type of leaves, Starting time and ending time of employee daily, his shedules, etc.,
Hoping for best results with in less time.
Thanks&Regards.
Shiva.Use this BAPI in your Report
BAPI_EMPATTABS_GETDETAIL -
Waht does time management status 0 without payroll integration mean
In our project, the client does not want to use time evaluation and so, we have set the time management status value as 0 (no time evaluation). Also, the client is not implementing (at least now) SAP-Payroll, as they are processing payroll through a different software. We have configured work schedules ( they need just 4 different work schedules) and assigned appropriate ork schedules to all employees in infotype 0007. We have also configured one absence quota (Earned Leave of 20 days per year).
My query is how will the system behave now with time management status value as 0? Can we process absence quotas? What is the use of work schedules, in this context, as any way the system does not evaluate employee time in Time Management. Neither the time wage types are evaluted in Payroll, as SAP Payroll is not implemented.
-ShambhviMy thanks to all of you. I would like to summarize the answer for my query:
Since time management status = 0, there won't be any time evaluation, which means attendance and absence data, even if entered won't be evaluated in Time Management. Since Payroll is not implemented, the question of time data getting evaluated in Payroll does not exist. However, absence quotas can be maintained, irrespective of the value of time managment status.
Please correct me, if my understanding is wrong
-Shambhvi -
Hi Experts,
I am very new to Time Module both Technically and Functionally. Please share any good document if you have. (Functional: Steps involved in Time Management; Technical: Relation between several tables and access to time results)
Mainly i have to complete one object from client which is on Time and Quota balances.
I have to send a flat file with the following information.
Absence Quota Type,
Quota Text,
Sick Leave Quota Beginning Balance
Sick Leave Quota Accrued
Sick Leave Quota YTD Used
Sick Leave Quota Remaining
Sick Leave Quota every pay period
Greatly appreciated if any one gives step by step logic for this,
Thank you,
Ravi.if u want to give the above information
try the tcode PT_QTA10 once ................ -
Regarding Time management in HR
Hi Experts,
I am new to HR-Abap, Can any body give brief idea about time management in hr in Techincal point of view .
Thanks and regards,
Sravanthi.Hi
In time related infotypes records are multiple for a single pernr
say for example LEAVES
within a time for PERNR you will find different types of leaves
go and see the infotypes data practically PA2001 and PA2005, r etc
see the sample report on time related data
REPORT zh_absence_quota
NO STANDARD PAGE HEADING
MESSAGE-ID zh_msg
LINE-SIZE 169
LINE-COUNT 60(1).
T A B L E S D E C L A R A T I O N S
TABLES: pernr, " Logical PNP
t001p, " Personnel Subarea
t529u, " Employment Status
t500p, " Personnel Area
t501, " Employee Group
t503k, " Employee Subgroup
t549a, " Payroll Area
t554s, " Absence Type
t554t, " Absence Type Texts
t556a, " Quota Type
t527x, " Orgn. Unit
t556b, " Quota Type Text
pa0003. " Payroll Status
INFOTYPES:
0000, " Actions
0001, " Organizational Assignment
2006, " Absence Quota
2001. " Absences
T Y P E S D E C L A R A T I O N S
Employee Absence Structure
TYPES: BEGIN OF s_2001,
pernr TYPE persno, " Personal Number
awart TYPE awart, " Absence Type
subty TYPE subty, " Sub Type
endda TYPE endda, " End date
begda TYPE begda, " Begin date
abrtg TYPE abrtg, " Absence days
ename TYPE emnam, " employee Name
atext TYPE abwtxt, " Absence Type Text
END OF s_2001.
Employee Absence Quota Structure
TYPES: BEGIN OF s_2006,
pernr TYPE persno, " Personal Number
ktart TYPE abwko, " Absence Quota Type
year(4) TYPE n, " Year
subty TYPE subty, " Sub Type
endda TYPE endda, " End date
begda TYPE begda, " Begin date
anzhl TYPE ptm_quonum, " Absence Entitlement days
ename TYPE emnam, " employee Name
ktext TYPE kotxt, " Absence Type Text
kverb TYPE kverb, " Deduction Quota days
anzhb TYPE ptm_quonum, " Balance days
END OF s_2006.
Combined Employee Absence and Quota Structure
TYPES: BEGIN OF s_rep,
pernr TYPE persno, " Personal Number
ktart TYPE abwko, " Absence Quota Type
year(4) TYPE n, " Year
anzhl TYPE ptm_quonum, " Absence Entitlement days
kverb TYPE kverb, " Deduction Quota days
anzhb TYPE ptm_quonum, " Balance days
ktext TYPE kotxt, " Quota Type Text
awart TYPE awart, " Absence Type
abrtg TYPE abrtg, " Absence days
ename TYPE emnam, " employee Name
atext TYPE abwtxt, " Absence Type Text
endda TYPE endda, " End date
begda TYPE begda, " Begin date
END OF s_rep.
Declaration of Variables
DATA : gv_atext TYPE abwtxt, " Absence Type Text
gv_ktext TYPE kotxt, " Absence Type Text
gv_title1 TYPE sylisel, " Report title
gv_year(4) TYPE c, " Year
gv_mon(2) TYPE c, " Month
gv_hrs TYPE abwtg, " Hours
gv_date TYPE sydatum, " Date
gv_date1 TYPE sydatum, " Date
gv_dial. " Color flag
Declaration of Constants
CONSTANTS :
c_x TYPE c VALUE 'X', " Sign
c_1 TYPE persg VALUE '1', " Emp Group
c_pernr(8) TYPE n VALUE '00000000', " Pernr
c_moabw TYPE moabw VALUE '01', " Per SA Grouping
c_mozko TYPE mozko VALUE '01', " Per SA Grouping
c_mopgk TYPE mopgk VALUE '1', " Emp SGrp Grouping
c_endda TYPE sydatum VALUE '99991231', " End Date
c_val1(2) TYPE c VALUE '31', " Date Type
c_val2(2) TYPE c VALUE '12', " Date Type
c_val LIKE p0041-dar01 VALUE '01', " Date Type
c_date1 LIKE sy-datum VALUE '18000101'. " Date
I N T E R N A L T A B L E S D E C L A R A T I O N S
DATA: i_2001 TYPE STANDARD TABLE OF s_2001 WITH HEADER LINE,
i_2006 TYPE STANDARD TABLE OF s_2006 WITH HEADER LINE,
i_rep1 TYPE STANDARD TABLE OF s_2006 WITH HEADER LINE,
i_rep TYPE STANDARD TABLE OF s_rep WITH HEADER LINE.
S E L E C T I O N S C R E E N
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_ktart FOR t556a-ktart, " Absence Quota Type
s_awart FOR t554s-subty. " Absence Type
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(33) text-003. " Quota & Absence
PARAMETERS: p_qa RADIOBUTTON GROUP rb1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(33) text-004. " Quota
PARAMETERS: p_q RADIOBUTTON GROUP rb1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(33) text-005. " Absence
PARAMETERS: p_a RADIOBUTTON GROUP rb1.
SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK b2.
I N I T I A L I Z A T I O N *
INITIALIZATION.
A T S E L E C T I O N - S C R E E N *
AT SELECTION-SCREEN.
Validate the screen fields
PERFORM validate_screen.
S T A R T - O F - S E L E C T I O N *
START-OF-SELECTION.
Selection of Period
PERFORM get_period.
Get PERNR from LDB
GET pernr.
IF p0000-stat2 <> '0'.
Get the data from PA0001,PA2001, PA2006
PERFORM get_pers_data.
ENDIF.
T O P - O F - P A G E *
TOP-OF-PAGE.
Header of the List
PERFORM header.
E N D - O F - P A G E *
Footer
END-OF-PAGE.
IF p_qa = c_x.
Display both Absence and Quota Data
WRITE /1(188) sy-uline.
ELSEIF p_q = c_x.
Display only Quota Data
WRITE /1(114) sy-uline.
ELSEIF p_a = c_x.
Display only Absence Data
WRITE /1(125) sy-uline.
ENDIF.
E N D - O F - S E L E C T I O N *
END-OF-SELECTION.
Combine the Absence and Quota Data
PERFORM append_data.
IF p_qa = c_x.
Display both Absence and Quota Data
PERFORM display_qa_data.
ELSEIF p_q = c_x.
Display only Quota Data
PERFORM display_q_data.
ELSEIF p_a = c_x.
Display only Absence Data
PERFORM display_a_data.
ENDIF.
*& Form validate_screen
Validation of Selection Screen fields
FORM validate_screen .
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 Personnel Number'(006).
ENDIF.
ENDIF.
Validation of Employee Status
CLEAR t529u.
IF NOT pnpstat2[] IS INITIAL.
SELECT SINGLE statv
INTO t529u-statv
FROM t529u
WHERE statv IN pnpstat2 AND
statn = '2' AND
sprsl = sy-langu.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Invalid Employee Status'(007).
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'(008).
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'(009).
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'(010).
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'(011).
ENDIF.
ENDIF.
Validation of Payroll Area
CLEAR t549a.
IF NOT pnpabkrs[] IS INITIAL.
SELECT abkrs
FROM t549a UP TO 1 ROWS
INTO t549a-abkrs
WHERE abkrs IN pnpabkrs.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Employee Payroll Area'(026).
ENDIF.
ENDIF.
Validation of Absence Type
CLEAR t554s.
IF NOT s_awart[] IS INITIAL.
SELECT subty
FROM t554s UP TO 1 ROWS
INTO t554s-subty
WHERE subty IN s_awart AND
moabw EQ c_moabw AND
endda EQ c_endda.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Employee Absence Type'(012).
ENDIF.
ENDIF.
Validation of Absence Quota Type
CLEAR t556a.
IF NOT s_ktart[] IS INITIAL.
SELECT ktart
FROM t556a UP TO 1 ROWS
INTO t556a-ktart
WHERE ktart IN s_ktart AND
mopgk EQ c_mopgk AND
mozko EQ c_mozko AND
endda EQ c_endda.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Employee Quota Type'(013).
ENDIF.
ENDIF.
ENDFORM. "validate_screen
*& Form get_period
Get the Correct Period based on Selection screen selection
FORM get_period.
CLEAR: gv_year,gv_mon, gv_date, gv_date1.
gv_year = sy-datum+0(4).
gv_mon = sy-datum+4(2).
IF pnptimr1 = c_x. " Current Date
pnpbegda = sy-datum.
pnpendda = sy-datum.
ELSEIF pnptimr2 = c_x. " Current Month
CONCATENATE gv_year gv_mon c_val INTO gv_date.
CONCATENATE gv_year gv_mon c_val1 INTO gv_date1.
pnpbegda = gv_date.
pnpendda = gv_date1.
ELSEIF pnptimr3 = c_x. " Current Year
CONCATENATE gv_year c_val c_val INTO gv_date.
CONCATENATE gv_year c_val2 c_val1 INTO gv_date1.
pnpbegda = gv_date.
pnpendda = gv_date1.
ELSEIF pnptimr4 = c_x. " Upto Today
pnpbegda = c_date1.
pnpendda = sy-datum.
ELSEIF pnptimr5 = c_x. " From Today
pnpbegda = sy-datum.
pnpendda = c_endda.
ELSE.
IF ( pnpbegda IS INITIAL AND pnpendda IS INITIAL ).
pnpbegda = c_date1.
pnpendda = c_endda.
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_pers_data
Get the Absence and Quota Data from PA0001,PA2001,PA2006
FORM get_pers_data.
DATA: lv_year1(4) TYPE n,
lv_year2(4) TYPE n,
lv_date1 TYPE sydatum,
lv_date2 TYPE sydatum,
lv_anzhb TYPE ptm_quonum. " Last Year Balance days
Get data from Respective Infotypes
rp_provide_from_last p0001 space pnpbegda pnpendda.
Absence Data
LOOP AT p2001 WHERE pernr = pernr-pernr AND
begda GE pnpbegda AND
endda LE pnpendda.
IF p2001-awart IN s_awart.
i_2001-pernr = pernr-pernr.
i_2001-subty = p2001-subty.
i_2001-awart = p2001-awart.
i_2001-abrtg = p2001-abrtg.
i_2001-begda = p2001-begda.
i_2001-endda = p2001-endda.
READ TABLE p0001 WITH KEY pernr = p2001-pernr.
i_2001-ename = p0001-ename.
Get the Absence Type Text
CLEAR gv_atext.
SELECT SINGLE atext INTO gv_atext FROM t554t
WHERE sprsl = sy-langu AND
moabw = c_moabw AND
awart = p2001-awart.
IF sy-subrc = 0.
i_2001-atext = gv_atext.
ENDIF.
APPEND i_2001.
CLEAR i_2001.
ENDIF.
ENDLOOP.
Quota Data
LOOP AT p2006 WHERE pernr = pernr-pernr AND
begda GE pnpbegda AND
endda LE pnpendda.
IF p2006-ktart IN s_ktart.
i_2006-pernr = pernr-pernr.
i_2006-subty = p2006-subty.
i_2006-begda = p2006-begda.
i_2006-endda = p2006-endda.
i_2006-year = p2006-endda+0(4).
i_2006-ktart = p2006-ktart.
i_2006-anzhl = p2006-anzhl.
i_2006-kverb = p2006-kverb.
i_2006-anzhb = p2006-anzhl - p2006-kverb.
READ TABLE p0001 WITH KEY pernr = p2001-pernr.
i_2006-ename = p0001-ename.
Get the Quota Type Text
CLEAR gv_ktext.
SELECT SINGLE ktext INTO gv_ktext FROM t556b
WHERE sprsl = sy-langu AND
mopgk = c_mopgk AND
mozko = c_mozko AND
ktart = p2006-ktart.
IF sy-subrc = 0.
i_2006-ktext = gv_ktext.
ENDIF.
APPEND i_2006.
CLEAR i_2006.
ENDIF.
ENDLOOP.
For Vacation Quota (80) get the Balance of the Last Year and
add to the Current Year Quota
LOOP AT i_2006.
IF i_2006-ktart = '80'.
lv_year1 = i_2006-endda+0(4).
lv_year2 = lv_year1 - 1.
CONCATENATE lv_year2 '01' '01' INTO lv_date1.
CONCATENATE lv_year2 '12' '31' INTO lv_date2.
LOOP AT p2006 WHERE pernr = i_2006-pernr AND
begda GE lv_date1 AND
endda LE lv_date2 AND
ktart = '80'.
lv_anzhb = p2006-anzhl - p2006-kverb.
i_rep1-pernr = i_2006-pernr.
i_rep1-ktext = i_2006-ktext.
i_rep1-anzhl = p2006-anzhl.
i_rep1-kverb = p2006-kverb.
i_rep1-ename = i_2006-ename.
i_rep1-begda = p2006-begda.
i_rep1-endda = p2006-endda.
i_rep1-anzhb = lv_anzhb.
i_rep1-ktart = '80'.
i_rep1-year = lv_year2.
APPEND i_rep1.
CLEAR: i_rep1.
ENDLOOP.
ENDIF.
CLEAR: lv_year1, lv_year2,
lv_date1, lv_date2,lv_anzhb.
ENDLOOP.
SORT i_rep1 BY pernr ktart.
ENDFORM. "get_pers_data
*& Form append_data
Put the Absence and Quota Data into one Report Int Table
FORM append_data.
CLEAR: i_rep.
REFRESH: i_rep.
SORT i_2001 BY pernr awart.
SORT i_2006 BY pernr ktart year.
Move I_REP1 data into i_2006
LOOP AT i_rep1.
MOVE-CORRESPONDING i_rep1 TO i_2006.
APPEND i_2006.
CLEAR i_2006.
ENDLOOP.
Move the Absence and Quota Data into a final Int Table
LOOP AT i_2006.
i_rep-pernr = i_2006-pernr.
i_rep-ename = i_2006-ename.
i_rep-ktart = i_2006-ktart.
i_rep-anzhl = i_2006-anzhl.
i_rep-kverb = i_2006-kverb.
i_rep-ktext = i_2006-ktext.
i_rep-anzhb = i_2006-anzhb.
i_rep-year = i_2006-year.
CLEAR i_2001.
CASE i_2006-ktart.
WHEN '81'.
PERFORM get_2001 USING i_2006-pernr '1000' i_2006-year.
WHEN '50'.
PERFORM get_2001 USING i_2006-pernr '1002' i_2006-year.
WHEN '80'.
PERFORM get_2001 USING i_2006-pernr '1001' i_2006-year.
WHEN '56'.
PERFORM get_2001 USING i_2006-pernr '1003' i_2006-year.
WHEN '51'.
PERFORM get_2001 USING i_2006-pernr '1004' i_2006-year.
WHEN '52'.
PERFORM get_2001 USING i_2006-pernr '1005' i_2006-year.
WHEN '54'.
PERFORM get_2001 USING i_2006-pernr '1006' i_2006-year.
WHEN '53'.
PERFORM get_2001 USING i_2006-pernr '1007' i_2006-year.
WHEN '55'.
PERFORM get_2001 USING i_2006-pernr '1008' i_2006-year.
WHEN '57'.
PERFORM get_2001 USING i_2006-pernr '1009' i_2006-year.
WHEN '90'.
PERFORM get_2001 USING i_2006-pernr '2000' i_2006-year.
WHEN '58'.
PERFORM get_2001 USING i_2006-pernr '2001' i_2006-year.
WHEN '59'.
PERFORM get_2001 USING i_2006-pernr '2002' i_2006-year.
WHEN '91'.
PERFORM get_2001 USING i_2006-pernr '2003' i_2006-year.
ENDCASE.
IF sy-subrc <> 0.
APPEND i_rep.
ENDIF.
CLEAR i_rep.
ENDLOOP.
SORT i_rep BY pernr ktart year.
DELETE i_rep WHERE pernr = ' '.
ENDFORM. " append_data
*& Form display_qa_data
Display the Absence and Quota Data
FORM display_qa_data.
DATA: lv_flag, " New Flag
lv_tot2 TYPE ptm_quonum. " Absence Balance days
IF i_rep[] IS INITIAL.
MESSAGE i000 WITH 'No Data found'(014).
ELSE.
LOOP AT i_rep.
toggle color
PERFORM toggle_color.
IF lv_flag <> space.
NEW-LINE.
ENDIF.
AT NEW pernr.
READ TABLE i_rep INDEX sy-tabix.
WRITE:/1 sy-vline,2(8) i_rep-pernr,
10 sy-vline,11(40) i_rep-ename.
ENDAT.
AT NEW ktart.
READ TABLE i_rep INDEX sy-tabix.
WRITE: 1 sy-vline, 10 sy-vline,
51 sy-vline,52(25) i_rep-ktext.
ENDAT.
AT NEW year.
READ TABLE i_rep INDEX sy-tabix.
WRITE: 1 sy-vline, 10 sy-vline,
51 sy-vline,
77 sy-vline, 78(4) i_rep-year,
82 sy-vline, 83(11) i_rep-anzhl,
94 sy-vline, 95(25) i_rep-atext,
120 sy-vline,133 sy-vline,
144 sy-vline,
155 sy-vline,156(13) i_rep-anzhb,
169 sy-vline.
lv_tot2 = lv_tot2 + i_rep-anzhb.
ENDAT.
WRITE: 1 sy-vline, 10 sy-vline,
51 sy-vline, 77 sy-vline,
82 sy-vline, 94 sy-vline,
120 sy-vline,121(12) i_rep-abrtg NO-ZERO,
133 sy-vline,134(10) i_rep-begda NO-ZERO,
144 sy-vline,145(10) i_rep-endda NO-ZERO,
155 sy-vline,169 sy-vline.
NEW-LINE.
AT END OF pernr.
WRITE : /1(169) sy-uline.
SUM.
FORMAT COLOR 3.
WRITE:/1 sy-vline, 10 sy-vline,
51 sy-vline, 77 sy-vline,
82 sy-vline, 94 sy-vline,
120 sy-vline,121(12) i_rep-abrtg,
133 sy-vline,144 sy-vline,
155 sy-vline, 156(13) lv_tot2,
169 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(169) sy-uline.
CLEAR lv_tot2.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. " display_qa_data
*& Form display_q_data
Display only the Quota Data
FORM display_q_data.
DATA: lv_flag. " New Flag
SORT i_2006 BY pernr ktart year.
IF i_2006[] IS INITIAL.
MESSAGE i000 WITH 'No Data found'(014).
ELSE.
LOOP AT i_2006.
Toggle Color
PERFORM toggle_color.
IF lv_flag <> space.
NEW-LINE.
ENDIF.
AT NEW pernr.
READ TABLE i_2006 INDEX sy-tabix.
WRITE: /1 sy-vline, 2(8) i_2006-pernr,
10 sy-vline,11(40) i_2006-ename.
ENDAT.
AT NEW ktart.
READ TABLE i_2006 INDEX sy-tabix.
WRITE: 1 sy-vline,10 sy-vline,
51 sy-vline,52(25) i_2006-ktext.
ENDAT.
AT NEW year.
READ TABLE i_2006 INDEX sy-tabix.
WRITE: 1 sy-vline, 10 sy-vline,
51 sy-vline,
77 sy-vline,78(4) i_2006-year,
82 sy-vline,83(11) i_2006-anzhl,
94 sy-vline,95(13) i_2006-anzhb,
108 sy-vline.
NEW-LINE.
ENDAT.
AT END OF pernr.
WRITE : /1(108) sy-uline.
SUM.
FORMAT COLOR 3.
WRITE: /1 sy-vline, 10 sy-vline,
51 sy-vline,
77 sy-vline, 82 sy-vline,
94 sy-vline, 95(13) i_2006-anzhb,
108 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(108) sy-uline.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. " display_q_data
*& Form display_a_data
Display Only the Absence Quota
FORM display_a_data.
DATA: lv_flag. " New Flag
SORT i_2001 BY pernr awart.
IF i_2001[] IS INITIAL.
MESSAGE i000 WITH 'No Data found'(014).
ELSE.
LOOP AT i_2001.
Toggle Color
PERFORM toggle_color.
IF lv_flag <> space.
NEW-LINE.
ENDIF.
AT NEW pernr.
READ TABLE i_2001 INDEX sy-tabix.
WRITE: /1 sy-vline, 2(10) i_2001-pernr,
10 sy-vline,11(40) i_2001-ename.
ENDAT.
WRITE: 1 sy-vline, 10 sy-vline,
51 sy-vline,52(25) i_2001-atext,
77 sy-vline,78(12) i_2001-abrtg,
90 sy-vline,91(10) i_2001-begda,
101 sy-vline,102(10) i_2001-endda,
112 sy-vline.
NEW-LINE.
AT END OF pernr.
WRITE : /1(112) sy-uline.
SUM.
FORMAT COLOR 3.
WRITE: /1 sy-vline, 10 sy-vline,
51 sy-vline,
77 sy-vline,78(12) i_2001-abrtg,
90 sy-vline,101 sy-vline,
112 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(112) sy-uline.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. " display_a_data
*& Form header
Write the Report Header
FORM header .
data : lv_pers type pbtxt,
lv_orgn type orgtx.
gv_title1 = sy-title. " Set List Header
IF p_qa = c_x.
NEW-PAGE LINE-SIZE 193.
ELSEIF p_a = c_x.
NEW-PAGE LINE-SIZE 125.
ELSEIF p_q = c_x.
NEW-PAGE LINE-SIZE 119.
ENDIF.
Standard header
FORMAT RESET.
CALL FUNCTION 'Z_STANDARD_HEADER'
EXPORTING
title1 = gv_title1.
Get the Personal Area and Org.Unit Texts
clear : lv_pers,lv_orgn.
select single name1 into lv_pers
from t500p where persa = pnpwerks-low.
select single orgtx into lv_orgn
from t527x where sprsl = sy-langu and
orgeh = pnporgeh-low and
endda = c_endda.
if not lv_pers is initial.
write : /2 'Personal Area:'(017), 17(25) lv_pers color 7.
endif.
if not lv_orgn is initial.
write : /2 'Organization Unit:'(021), 20(25) lv_orgn color 3.
endif.
IF p_qa = c_x.
FORMAT COLOR COL_HEADING.
WRITE : /1(169) sy-uline.
WRITE:/1 sy-vline,2(8) 'Emp.No'(015) CENTERED,
10 sy-vline,11(40) 'Employee Name'(016) CENTERED,
51 sy-vline,52(25) 'Quota Description'(018) CENTERED,
77 sy-vline,78(4) 'Year'(027),
82 sy-vline,83(11) 'Entitlement'(019),
94 sy-vline,95(25) 'Absence Description'(022) CENTERED,
120 sy-vline,121(12) 'Absence days'(023),
133 sy-vline,134(10) 'From Date'(024),
144 sy-vline,145(10) 'To Date'(025),
155 sy-vline,156(13) 'Quota Balance'(020),
169 sy-vline.
WRITE : /1(169) sy-uline.
ELSEIF p_q = c_x.
FORMAT COLOR COL_HEADING.
WRITE : /1(108) sy-uline.
WRITE:/1 sy-vline,2(8) 'Emp.No'(015) CENTERED,
10 sy-vline,11(40) 'Employee Name'(016) CENTERED,
51 sy-vline,52(25) 'Quota Description'(018) CENTERED,
77 sy-vline,78(4) 'Year'(027),
82 sy-vline,83(11) 'Entitlement'(019),
94 sy-vline,95(13) 'Quota Balance'(020),
108 sy-vline.
WRITE : /1(108) sy-uline.
ELSEIF p_a = c_x.
FORMAT COLOR COL_HEADING.
WRITE : /1(112) sy-uline.
WRITE:/1 sy-vline,2(8) 'Emp.No'(015) CENTERED,
10 sy-vline,11(40) 'Employee Name'(016) CENTERED,
51 sy-vline,52(25) 'Absence Description'(022) CENTERED,
77 sy-vline,78(12) 'Absence days'(023),
90 sy-vline,91(10) 'From Date'(024),
101 sy-vline,102(10) 'To Date'(025),
112 sy-vline.
WRITE : /1(112) sy-uline.
ENDIF.
ENDFORM. " header
*& Form toggle_color
This routine alters the color of the records in the list
FORM toggle_color.
IF gv_dial = space.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
gv_dial = c_x.
ELSE.
FORMAT COLOR 1 INTENSIFIED OFF.
CLEAR gv_dial.
ENDIF.
ENDFORM. " toggle_color
*& Form get_2001
Get the ABsence type for each Quota type
FORM get_2001 USING p_pernr TYPE persno
p_value TYPE awart
p_year.
LOOP AT i_2001 WHERE pernr = p_pernr AND
awart = p_value AND
endda+0(4) = p_year.
i_rep-awart = i_2001-awart.
i_rep-abrtg = i_2001-abrtg.
i_rep-atext = i_2001-atext.
i_rep-begda = i_2001-begda.
i_rep-endda = i_2001-endda.
APPEND i_rep.
ENDLOOP.
ENDFORM. " get_2001
Regards
anji -
Hi Gurus,
I am trying to understand Time management concepts, pls help me on the following -
1) what is factory calendar, and special rules in factory calendar, and how is it different from holiday calendar.Is factory calendar applicable only to factories or to normal organisations under any circumstances?
2) I am trying to understand reference time in defining dynamic breaks in break schedules and i came across planned working time and normal working time. What is the difference between planned working time and normal working time?
thanks
KavitaKavitha
there is smthg called special rules on Factory calendar, pls check and if possible pls help me understand special rules in factory calendar.....have awarded points for ur guidance
*I BELIVE SPECIAL RULE FOR PM AND PP Module not for HR. any way thanks for asking i got new point*
*see example here*
*You do that using a special rule for the calendar. SCAL is the transaction code. Click the Maintain button then select the Factory calendar radio button and press the change (pencil) button.*
*Select your calendar then press the change (pencil) button again. Click on the Special rules button then the Create button (paper). Enter the From and To date(s) [same date if only one day] then if it WILL be a work day check the Workday field and you will need to enter Text.*
*If, for example, the day is a normal workday and you want to shut down for that date (or date range), this time leave the Workday check box empty.*
*Click the paper button when you're done entering the data then the save button (or the F-11 key). You're done.*
*This is configuration data therefore configuration for SCAL and SCA6_U must be allowed in your profile.*
also can u help me with the DWS class concept, i know DWS class 0 is for off days but what abt others 1-9, are they customer specific, and where are the DWS classes defined, i mean table name.
*DWS. 0 (work paid)*
*1-- Off--paid*
2Offunpaid
3 off--special day and
4 to 9 are customer specific are the days types.
Hope you got clarity with this
Best Regards -
Hi everyone....
I just have some special cases in Time Management:
1-i want to count the absence days in different way as follows: if the start date and the end date of the
absence (of annual leave type only) is exactly before and after holiday, then the holiday should be included
in the count too, for example:
the employee took an annual leave from 30-05 to 01-06 and we defined 31-05 as a holiday, then this absence
should be three days not only two.
so can this be done without using schema.
2-our customer have many projects to work in, and the attendance should be recorded manually, the case is
that when the attendance of the employee recorded it should have something like comment to be able to know
what project the employee attended, i handled this by using InfoType 2002 and made attendance types, one
for each project, but this means that when some project closes or when a new project assigned to the company
this means that they should come back to me as a support, so doese anyone have an extra idea.
3-the last thing i want is to have some standard report that can use the time statement i made like pt60,
to be available for admins to use anytime as pt60 uses it only in time evaluation, and if anyone have some
good links or books for making time statements please send.
Regards;
EvanQuestion no.1...
It will be standard behaviuor of the system that it will deduct the sadwich holidays. Please check the calendar days in 2001. if its not so then let me know.
Question no.2....
Ask the ABAPER to Apend the structure of IT2001 and give the text box there. Through this you will be able to enter the text against each holiday for all leave types. If so then make it mandatory field otherwise remain as optional.
Question no.3....
You have two options.
1. Make a ABAPED report for view purpose.
2. Give them the authorization to view the cluster table report. Run t-code se38 and check this report RPCLSTB2. It will contain all data regarding time management of employee. -
Time Management - Building Rules
Hi All,
How to built rules in Time management so tht one absence type cannot be followed by another absence type for example Medical leave cannot be followed by Piad Leave but can be followed by Casual leave. ?I am also working on time managment module and my scenario is CL should not be combined with any other type of leave (PL, SL). I was tring to chk the program - SAPMYXYWS90300017H, but could not find as to which transaction code to look in... Can U please tell me how to access this program..I have tried exploring it in se80 & se38...
Thanx
Maybe you are looking for
-
Some of my music and all of my playlists gone!
I recently upgraded from a macbook to an iMac + macbook air. I did the whole macbook to macbook file shuffle, but somehow I did not get all the music from my old itunes into my new itunes. Additionally, none of my playlists came through. I've resiste
-
Pls provide India macbook technical support group mail id?
Hi, My MacBook Pro was suddenly went very very slow then called customer care. I did whatever they suggested Like, clear all caches, trash, verify the permissions, then erase and reinstalled but no use. As per apple support Finally formatted the HDD
-
1st Gen playback choppy and glitchy all of a sudden
I have a 1stGen that all of a sudden has very choppy playback when playing movies that are on the hard drive. It's a newer device and had about 10 Gb free on the hard drive. Any suggestions?
-
For How long will the posting threads last
Hello Every One, I 'd like to know, if i am collection all the necessary links which has the corresponding thread ids mentioned along with them. What would be the duration of their lasting. please give complete details on this. Regards, karthik
-
NamedQuery Results are Cached - I Need to retrieve live database results
I've developed an application EJB3 web application which uses Entity Beans and NamedQueries to retrieve my results. Aswell as my main EJB3 web application I also have an external interface (Oracle Stored Procedure) which is updating data in my databa