Two PERNR for an Employee Possible?
Hi Friends,
I have two categories of Employees.
a. Satff - Pernr in series 3
b. Workers - Pernr in series 2
<b>When one worker is promoted to Staff, his PERNR changes.</b>
<b>But will this bring all his old Payroll data ? Is it Legal to have 2 F16?</b>
OR <b>we'll have to keep one PERNR throughout</b> ?
Would really apreciate your Reply.
Regds,
Sri
Dear Sri,
I would suggest you to use one pernr through out. If you would like to have 2 pernr's then you will have to delimit the old pernr data. I guess it will be problem for gratuity and all if you change the pernr in between as the new pernr will be considered as new employee.
Hope this will help.
Regards,
Naveen.
Similar Messages
-
Standard SAP Report to get Manager PERNRs for specified Employee PERNRs
Hello All,
Is there any standard report whcih I can use to pass Employee PERNRs in the selection, and get the respective Manager PERNRs as output?
Thanks,
NSNakul,
For you information, PA and OM is be organized in the O-S-P(organization-position-person) format
There is no direct relationship between the employee to employee. It is like
Employee to Employee position
Then position to position (A002 - Reporting line)
Then position to employee (Reporting Manager).
For any coding part Check this link
Re: Getting reporting data of all pernrs
Regards,
Anand babu R -
Is It Possible To Create Different Personnel Number For One Employee
HI Experts,
My Client need to get Different Personnel number for one employee,i.e for Trainee one Personnel number need to generate and same person when moving from Trainee to Probation another new personnel number should generate and again when same person move from Probation to Permanent another new personnel number should generate.
1. How to generate 3 different Personnel number for One employee?
2. How these 3 Personnel number should get linked, if want to get report for this one employee?
Kindly help me.
Thanks,
Lavanya
Message was edited by: Sikindar AHi Lavanya,
Your requirement can be fulfilled but not recommended...
As you want to generate different position number at different stage of employment....
i.e Trainee to Probation to Permanent...
First go for Trainee Position Hiring .... and generate first Number Say 5000000
Then suppose employee complete training after 1 Yrs.. then again go PA 40 enter date as 01.01.2015 say... & execute... & give Ref. Personnel Number (5000000) & different position number... this time...
This will link up all the personnel date from previous hiring record... & as per your need you can modify it.... Finally one more number be generated....
Similarly,, you can do for Permanent employee...
Once training or Probation period gets completed you can lock/ separate that employee number
Report ...
You can get necessary details in IT0031...& with different Position numbers which you will using at different stage of hiring...
Hope this should sort your issue..
Regards,
Veeram -
Is it possible for two owners for one table in oracle?
SQL> select owner,table_name
2 from dba_tables
3 where table_name = 'DEPT';
OWNER TABLE_NAME
MANO DEPT
SCOTT DEPT
SQL>
SQL>
SQL> show user;
USER is "MANO"Hi,
It is not two owners for 2 tables but twotables and two owners.
Login as Mano
do a
insert into dept values (blahh..blahh..);
commit;Now login as scott
select * from dept;You will see the difference.
What you need to understand is there are physically two tables owned by two different users with the same name.
Hope it clears your confusion.
Cheers!!!
Bhushan -
Reading payroll results for an employee from ABAP-HR?
Hi,
I dont know whether i must post this question in this category ? but i had a problem in reading of the payroll data for employees.
I used the function of PYXX_READ_PAYROLL_RESULT and passed the PERNR(employee number), SEQNR, RELID(clusterid) for a given period of say PN-BEGDA AND PN-ENDDA. And i took the payroll structure of germany (its PAYDE_RESULT). program is showing the exceptions since between the selected periods i had many different country employees other than germany DE. how can i solve that problem ? if i use PAY99_RESULT then i cant read the National wage types? how to solve this problem?
which function i must use so that i must get all the payroll data of the employees between the given period with inter/national payroll details and also which structure(like PAYDE_RESULT) i must use for holding the payroll data that is unique?
please help me.
***Ratings are must for a possible answer.Hi KK,
In this sample code...you will find the use of the method i meantioned.
REPORT zgratuity_ipcl MESSAGE-ID zh.
TABLES : pernr , pa0001, pa0008 , pa0000 , t569v.
TYPE-POOLS: slis.
CONSTANTS:
gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
INFOTYPES: 0008 ,0001,0002,0000.
DATA : period(6),
pay_period(6),
c_period(6).
DATA: number LIKE pc261-seqnr.
DATA : refdt LIKE p0000-begda.
DATA: ason_yr LIKE p0347-scryy,
ason_mon LIKE p0347-scrmm.
DATA : BEGIN OF it_0000 OCCURS 100,
pernr LIKE pa0000-pernr,
stat2 LIKE pa0000-stat2,
massn LIKE pa0000-massn,
begda LIKE pa0000-begda,
endda LIKE pa0000-endda,
END OF it_0000.
DATA : g_molga LIKE t512t-molga.
DATA: BEGIN OF package,
lga LIKE p0008-lga01,
bet LIKE p0008-bet01,
END OF package.
DATA : BEGIN OF rgdir OCCURS 0.
INCLUDE STRUCTURE pc261.
DATA : END OF rgdir.
DATA : BEGIN OF rx-key OCCURS 0.
INCLUDE STRUCTURE pc200.
DATA : END OF rx-key.
DATA : BEGIN OF crt OCCURS 0. "result table
INCLUDE STRUCTURE pc208.
DATA : END OF crt.
DATA : b_date LIKE sy-datum,
e_date LIKE sy-datum.
DATA : darate LIKE t539j-gwcht.
DATA : gamt TYPE p.
DATA : BEGIN OF it_0001 OCCURS 100,
pernr LIKE pa0000-pernr,
ename LIKE pa0001-ename,
bukrs LIKE pa0001-bukrs,
persk LIKE pa0001-persk,
persg LIKE pa0001-persg,
werks LIKE pa0001-werks,
END OF it_0001.
**start of mod by tejas on 31.05.06
DATA : BEGIN OF it_final_sup OCCURS 100,
pernr LIKE pa0001-pernr, "PL No
ename LIKE pa0001-ename, "NAME
persg LIKE pa0001-persg, "EMP GROUP
persk LIKE pa0001-persk, "ESG
zzpla LIKE pa0001-zzpla, "PLANT/BUSINESS
orgeh LIKE pa0001-orgeh, "ORG UNIT
orgtx LIKE t527x-orgtx, "ORG UNIT TEXT
gbdat LIKE pa0002-gbdat, "DOB
termn LIKE pa0019-termn, "DOJ
zzrtdt LIKE pa0002-zzrtdt,"DOR
sepdt LIKE pa0000-begda,
no_years TYPE i, "SERVICE YEARS
stat2 LIKE pa0000-stat2, "STATUS
s_text(15), "STATUS TEXT
basic LIKE pa0008-bet01, "BASIC
da LIKE pa0008-bet01, "DA
total LIKE pa0008-bet01, "TOTAL
crt LIKE pc207-betrg, "GRTUITY
massn LIKE pa0000-massn,
begda LIKE pa0000-begda,
ason(6) ,
dates LIKE pa0002-zzrtdt,
END OF it_final_sup.
DATA : BEGIN OF it_final_nonsup OCCURS 100,
pernr LIKE pa0001-pernr, "PL No
ename LIKE pa0001-ename, "NAME
persg LIKE pa0001-persg, "EMP GROUP
persk LIKE pa0001-persk, "ESG
zzpla LIKE pa0001-zzpla, "PLANT/BUSINESS
orgeh LIKE pa0001-orgeh, "ORG UNIT
orgtx LIKE t527x-orgtx, "ORG UNIT TEXT
gbdat LIKE pa0002-gbdat, "DOB
termn LIKE pa0019-termn, "DOJ
zzrtdt LIKE pa0002-zzrtdt,"DOR
sepdt LIKE pa0000-begda,
no_years TYPE i, "SERVICE YEARS
stat2 LIKE pa0000-stat2, "STATUS
s_text(15), "STATUS TEXT
basic LIKE pa0008-bet01, "BASIC
da LIKE pa0008-bet01, "DA
total LIKE pa0008-bet01, "TOTAL
crt LIKE pc207-betrg, "GRTUITY
massn LIKE pa0000-massn,
begda LIKE pa0000-begda,
ason(6) ,
dates LIKE pa0002-zzrtdt,
END OF it_final_nonsup.
DATA : BEGIN OF it_final OCCURS 100,
pernr LIKE pa0001-pernr, "PL No
ename LIKE pa0001-ename, "NAME
persg LIKE pa0001-persg, "EMP GROUP
persk LIKE pa0001-persk, "ESG
zzpla LIKE pa0001-zzpla, "PLANT/BUSINESS
orgeh LIKE pa0001-orgeh, "ORG UNIT
orgtx LIKE t527x-orgtx, "ORG UNIT TEXT
gbdat LIKE pa0002-gbdat, "DOB
termn LIKE pa0019-termn, "DOJ
zzrtdt LIKE pa0002-zzrtdt,"DOR
sepdt LIKE pa0000-begda,
no_years TYPE i, "SERVICE YEARS
stat2 LIKE pa0000-stat2, "STATUS
s_text(15), "STATUS TEXT
basic LIKE pa0008-bet01, "BASIC
da LIKE pa0008-bet01, "DA
total LIKE pa0008-bet01, "TOTAL
crt LIKE pc207-betrg, "GRTUITY
massn LIKE pa0000-massn,
begda LIKE pa0000-begda,
ason(6) ,
dates LIKE pa0002-zzrtdt,
END OF it_final.
**end of mod by tejas on 31.05.06
DATA : f_pabrj LIKE t549s-pabrj,
f_pabrp LIKE t549s-pabrp.
DECLARATIONS FOR ALV DISPLAY
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_layout TYPE slis_layout_alv ,
gs_print TYPE slis_print_alv,
gt_filter TYPE slis_t_filter_alv,
gt_sp_group TYPE slis_t_sp_group_alv,
gt_alv_graphics TYPE dtc_t_tc,
gt_excluding TYPE slis_t_extab ,
gt_events TYPE slis_t_event,
gt_print TYPE slis_print_alv.
DATA: gt_list_top_of_page TYPE slis_t_listheader.
DATA: g_boxnam TYPE slis_fieldname VALUE 'BOX',
p_f2code LIKE sy-ucomm VALUE '&ETA',
p_lignam TYPE slis_fieldname VALUE 'LIGHTS',
g_save(1) TYPE c VALUE 'X',
g_default(1) TYPE c VALUE 'X',
g_exit(1) TYPE c,
gx_variant LIKE disvariant,
g_variant LIKE disvariant,
g_repid LIKE sy-repid.
DATA : result TYPE pay99_result.
DATA : crt_header TYPE LINE OF hrpay99_crt.
INITIALIZATION.
SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.
SELECT-OPTIONS : sstat2 FOR pa0000-stat2.
SELECTION-SCREEN: END OF BLOCK b2.
*SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
*SELECTION-SCREEN : SKIP.
*PARAMETERS : P_STAT2 LIKE PA0000-STAT2.
*SELECTION-SCREEN : SKIP.
*SELECTION-SCREEN : END OF BLOCK B1.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-name = 'PNPABKRS-LOW'.
screen-required = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
AT SELECTION-SCREEN." on pnppabrj.
IF pnptimr9 = 'X'.
CONCATENATE pnpdispj pnpdispp INTO period.
CONCATENATE pnpdispp pnpdispj INTO pay_period.
ELSE.
CONCATENATE pnppabrj pnppabrp INTO period.
CONCATENATE pnppabrp pnppabrj INTO pay_period.
ENDIF.
IF period < '200505'.
MESSAGE e001 WITH
'Gratuity report is for period after month Auguest 2005' .
STOP.
ENDIF.
SELECT SINGLE * FROM t569v
WHERE abkrs = pnpxabkr.
CONCATENATE t569v-pabrj t569v-pabrp INTO c_period.
IF period > c_period.
MESSAGE e001 WITH 'Payroll for this period is not yet processed' .
STOP.
ENDIF.
CONCATENATE pnppabrj pnppabrp INTO period.
CONCATENATE pnppabrp pnppabrj INTO pay_period.
IF period =< '200505'.
MESSAGE e001 WITH 'Program is not valid for this period' pnppabrj
*pnppabrp.
ENDIF.
START-OF-SELECTION.
GET pernr.
PERFORM fill_data.
END-OF-SELECTION.
PERFORM final_data.
PERFORM display_data.
*& Form FILL_DATA
text
--> p1 text
<-- p2 text
FORM fill_data.
SORT p0000 BY pernr.
SORT p0001 BY pernr.
SORT p0002 BY pernr.
SORT p0008 BY pernr.
start mod made by kinjal for payroll dates
IF pnptimr9 = 'X'.
CALL FUNCTION 'HR_GB_PERIOD_DATES'
EXPORTING
abkrs = pnpxabkr
PERMO =
pabrj = pnpdispj
pabrp = pnpdispp
IMPORTING
begda = b_date
endda = e_date .
EXCEPTIONS
PERIOD_NOT_FOUND = 1
OTHERS = 2
ELSE.
CALL FUNCTION 'HR_GB_PERIOD_DATES'
EXPORTING
abkrs = pnpxabkr
PERMO =
pabrj = pnppabrj
pabrp = pnppabrp
IMPORTING
begda = b_date
endda = e_date
EXCEPTIONS
PERIOD_NOT_FOUND = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
CONCATENATE pnppabrj pnppabrp '01' INTO b_date.
CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'
EXPORTING
iv_date = b_date
IMPORTING
EV_MONTH_BEGIN_DATE =
ev_month_end_date = e_date.
end of modification
*DATA FETCHING FOR SUPERVISOR EMPLOYEES
LOOP AT p0001 WHERE begda <= e_date AND
endda >= e_date AND
persg = 'R' OR
persg = 'P'
AND
( persk >= '11' AND
persk <= '17'
OR
( persk >= 'IA' AND
persk <= 'IJ'
MOVE-CORRESPONDING p0001 TO it_final_sup.
READ TABLE p0002 WITH KEY pernr = p0001-pernr BINARY SEARCH.
IF sy-subrc = 0.
MOVE-CORRESPONDING p0002 TO it_final_sup.
ENDIF.
LOOP AT p0000 WHERE pernr = p0001-pernr AND begda <= e_date AND endda
>= e_date AND stat2 IN sstat2.
SELECT SINGLE orgtx INTO it_final_sup-orgtx FROM t527x
WHERE sprsl = 'EN'
AND orgeh = p0001-orgeh.
SELECT SINGLE text1 INTO it_final_sup-s_text FROM t529u
WHERE sprsl = 'EN'
AND statn = '2'
AND statv = p0000-stat2.
MOVE-CORRESPONDING p0000 TO it_final_sup.
IF p0000-massn = 'A6'.
MOVE p0000-begda TO it_final_sup-zzrtdt.
ELSE.
it_final_sup-zzrtdt = ' '.
ENDIF.
ENDLOOP.
IF sy-subrc <> 0.
CONTINUE.
ENDIF.
SELECT SINGLE termn INTO it_final_sup-termn FROM pa0019
WHERE pernr = p0001-pernr
AND tmart = '06'.
IF sy-subrc = 0.
CALL FUNCTION 'HR_HK_DIFF_BT_2_DATES'
EXPORTING
date1 = sy-datum
date2 = it_final_sup-termn
output_format = '05'
IMPORTING
years = ason_yr
months = ason_mon
DAYS =
EXCEPTIONS
invalid_dates_specified = 1
OTHERS = 2
IF ason_mon > 6.
ason_yr = ason_yr + 1.
ENDIF.
MOVE ason_yr TO it_final_sup-no_years.
ENDIF.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT p0008 WHERE begda <= e_date AND endda >= e_date AND pernr =
p0001-pernr.
DO 20 TIMES VARYING package-lga FROM p0008-lga01 NEXT p0008-lga02
VARYING package-bet FROM p0008-bet01 NEXT p0008-bet02.
CASE package-lga.
WHEN '0010'.
it_final_sup-basic = package-bet + it_final_sup-basic.
WHEN '0I10'.
it_final_sup-da = package-bet + it_final_sup-da.
ENDCASE.
ENDDO.
it_final_sup-total = it_final_sup-basic + it_final_sup-da.
ENDLOOP.
BREAK-POINT.
start mod made by kinjal
it_final_sup-zzrtdt = it_final_sup-zzrtdt - 1.
CALL FUNCTION 'HR_PAYROLL_PERIODS_GET'
EXPORTING
get_begda = it_final_sup-zzrtdt
GET_ENDDA =
get_permo = '67'
IMPORTING
get_pabrj = f_pabrj
get_pabrp = f_pabrp
TABLES
GET_PERIODS =
EXCEPTIONS
no_period_found = 1
no_valid_permo = 2
OTHERS = 3
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF it_final_sup-stat2 <> '3'.
CONCATENATE it_final-dates+4(2) INTO period.
CONCATENATE f_pabrj f_pabrp INTO period.
it_final_sup-ason = period.
ENDIF.
end of mod
rx-key-pernr = p0001-pernr.
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = p0001-pernr
IMPORTING
molga = g_molga
TABLES
in_rgdir = rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
LOOP AT rgdir WHERE fpper = period AND inper = period.
ENDLOOP.
With this Seq. number as a key for cluster Key
we can read the RT table from the cluster/..
IF 2
IF sy-subrc EQ 0.
rx-key-seqno = rgdir-seqnr.
IMPORT crt FROM DATABASE pcl2(in) ID rx-key.
IF NOT crt[] IS INITIAL.
PERFORM resultstab.
ENDIF.
APPEND it_final_sup.
CLEAR it_final_sup.
ENDIF.
LOOP AT rgdir WHERE
inper = period AND
srtza = 'A'.
rx-key-seqno = rgdir-seqnr.
number = rgdir-seqnr.
CLEAR rt.
REFRESH rt.
Importing Result table cluster
IMPORT rt FROM DATABASE pcl2(in) ID rx-key.
IF NOT rt[] IS INITIAL.
PERFORM resultstab.
ENDIF.
ENDLOOP.
APPEND it_final.
CLEAR IT_FINAL.
ENDLOOP.
RP-PROVIDE-FROM-LAST P0008 SPACE B_DATE E_DATE.
BREAK-POINT.
DO 10 TIMES varying PACKAGE-LGA from p0008-lga01 next p0008-lga02
varying package-bet from p0008-bet01 next p0008-bet02.
compute itab-gross = itab-gross + package-bet.
IF sy-index = 10.
itab-pernr = p0008-pernr.
append itab.
endif.
enddo.
*DATA FETCHING FOR NON SUPERVISOR EMPLOYEES
LOOP AT p0001 WHERE begda <= e_date AND
endda >= e_date AND
persg = 'R' OR
persg = 'P'
AND
persk >= 'IL' AND
persk <= 'IV'
MOVE-CORRESPONDING p0001 TO it_final_nonsup.
READ TABLE p0002 WITH KEY pernr = p0001-pernr BINARY SEARCH.
IF sy-subrc = 0.
MOVE-CORRESPONDING p0002 TO it_final_nonsup.
ENDIF.
LOOP AT p0000 WHERE pernr = p0001-pernr AND begda <= e_date AND endda
>= e_date AND stat2 IN sstat2.
SELECT SINGLE orgtx INTO it_final_nonsup-orgtx FROM t527x
WHERE sprsl = 'EN'
AND orgeh = p0001-orgeh.
SELECT SINGLE text1 INTO it_final_nonsup-s_text FROM t529u
WHERE sprsl = 'EN'
AND statn = '2'
AND statv = p0000-stat2.
MOVE-CORRESPONDING p0000 TO it_final_nonsup.
IF p0000-massn = 'A6'.
MOVE p0000-begda TO it_final_nonsup-sepdt.
MOVE p0000-begda TO refdt.
ELSE.
MOVE it_final_nonsup-zzrtdt TO refdt.
MOVE e_date TO refdt.
ENDIF.
ENDLOOP.
IF sy-subrc <> 0.
CONTINUE.
ENDIF.
SELECT SINGLE termn INTO it_final_nonsup-termn FROM pa0019
WHERE pernr = p0001-pernr
AND tmart = '06'.
IF sy-subrc = 0.
CALL FUNCTION 'HR_HK_DIFF_BT_2_DATES'
EXPORTING
date1 = refdt
date2 = it_final_nonsup-termn
output_format = '05'
IMPORTING
years = ason_yr
months = ason_mon
DAYS =
EXCEPTIONS
invalid_dates_specified = 1
OTHERS = 2
IF ason_mon > 6.
ason_yr = ason_yr + 1.
ENDIF.
MOVE ason_yr TO it_final_nonsup-no_years.
ENDIF.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT p0008 WHERE begda <= refdt AND endda >= refdt AND
LOOP AT p0008 WHERE begda <= e_date AND endda >= e_date AND
pernr = p0001-pernr.
DO 20 TIMES VARYING package-lga FROM p0008-lga01 NEXT p0008-lga02
VARYING package-bet FROM p0008-bet01 NEXT p0008-bet02.
CASE package-lga.
WHEN '0010'.
it_final_nonsup-basic = package-bet.
ENDCASE.
ENDDO.
ENDLOOP.
IF it_final_nonsup-massn = 'A6'.
SELECT SINGLE gwcht FROM t539j
INTO darate
WHERE molga = '40'
AND bwlga = '0I10'
AND begda <= it_final_nonsup-begda
AND endda >= it_final_nonsup-begda.
ELSE.
SELECT SINGLE gwcht FROM t539j
INTO darate
WHERE molga = '40'
AND bwlga = '0I10'
AND begda <= e_date
AND endda >= e_date.
ENDIF.
it_final_nonsup-da = ( it_final_nonsup-basic * darate ) / 100.
it_final_nonsup-total = it_final_nonsup-basic + it_final_nonsup-da.
gamt = 0.
gamt = ( it_final_nonsup-total * 15 * it_final_nonsup-no_years )
/ 26.
IF gamt >= 350000.
gamt = 350000.
ENDIF.
MOVE gamt TO it_final_nonsup-crt.
CLEAR gamt.
CLEAR refdt.
APPEND it_final_nonsup.
CLEAR it_final_nonsup.
LOOP AT rgdir WHERE
inper = period AND
srtza = 'A'.
rx-key-seqno = rgdir-seqnr.
number = rgdir-seqnr.
CLEAR rt.
REFRESH rt.
Importing Result table cluster
IMPORT rt FROM DATABASE pcl2(in) ID rx-key.
IF NOT rt[] IS INITIAL.
PERFORM resultstab.
ENDIF.
ENDLOOP.
APPEND it_final.
CLEAR IT_FINAL.
ENDLOOP.
ENDFORM. " FILL_DATA
" GET_GRATUITY
*& Form RESULTSTAB
text
--> p1 text
<-- p2 text
FORM resultstab.
LOOP AT crt WHERE lgart = '9GRA' AND cumty = 'U'.
it_final_sup-crt = abs( crt-betrg ).
ENDLOOP.
ENDFORM. " RESULTSTAB
*& Form DISPLAY_DATA
text
--> p1 text
<-- p2 text
FORM display_data.
IF it_final[] IS INITIAL.
MESSAGE i001 WITH 'No data found'.
STOP.
ENDIF.
g_repid = sy-repid.
PERFORM e01_fieldcat_init USING gt_fieldcat[].
PERFORM eventtab_build CHANGING gt_events.
PERFORM e04_comment_build USING gt_list_top_of_page[].
PERFORM display_report.
ENDFORM. " DISPLAY_DATA
*& Form E01_FIELDCAT_INIT
text
-->P_GT_FIELDCAT[] text
FORM e01_fieldcat_init USING e01_lt_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
gs_layout-group_change_edit = 'X'.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PERNR'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-seltext_l = 'Pers No'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ENAME'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-seltext_l = 'Name'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PERSK'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-seltext_l = 'ESG Cd'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ZZPLA'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-seltext_l = 'Plant/Business'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ORGTX'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-seltext_l = 'Org.Unit'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'GBDAT'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-seltext_l = 'Dt.Of Birth'.
ls_fieldcat-datatype = 'DATS'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'TERMN'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-seltext_l = 'Dt.Of Joining'.
ls_fieldcat-datatype = 'DATS'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ZZRTDT'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-seltext_l = 'Superannuation Dt'.
ls_fieldcat-datatype = 'DATS'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'SEPDT'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-seltext_l = 'Dt.Of Seperation'.
ls_fieldcat-datatype = 'DATS'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'NO_YEARS'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-seltext_l = 'Service Years'.
ls_fieldcat-datatype = 'CHAR'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'S_TEXT'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-seltext_l = 'Status'.
ls_fieldcat-datatype = 'CHAR'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BASIC'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-seltext_l = 'Basic'.
ls_fieldcat-datatype = 'CHAR'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'DA'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-seltext_l = 'DA'.
ls_fieldcat-datatype = 'CHAR'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'TOTAL'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-seltext_l = 'Total'.
ls_fieldcat-datatype = 'CHAR'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'CRT'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-seltext_l = 'Gratuity'.
ls_fieldcat-datatype = 'CHAR'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
ENDFORM. " E01_FIELDCAT_INIT
*& Form EVENTTAB_BUILD
text
<--P_GT_EVENTS text
FORM eventtab_build CHANGING lt_events TYPE slis_t_event.
CONSTANTS:
gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lt_events.
READ TABLE lt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE gc_formname_top_of_page TO ls_event-form.
APPEND ls_event TO lt_events.
ENDIF.
ENDFORM. " EVENTTAB_BUILD
*& Form E04_COMMENT_BUILD
text
-->P_GT_LIST_TOP_OF_PAGE[] text
FORM e04_comment_build USING e04_lt_top_of_page TYPE slis_t_listheader
DATA: ls_line TYPE slis_listheader.
DATA : v_text(100) TYPE c,
v_text1(100) TYPE c,
date1(10),
date2(10).
v_pernrlines TYPE i,
v_pernrchar(5).
DESCRIBE TABLE it_pernr LINES v_pernrlines.
MOVE v_pernrlines TO v_pernrchar.
CONCATENATE b_date6(2) '.' b_date4(2) '.' b_date+0(4) INTO date1.
CONCATENATE e_date6(2) '.' e_date4(2) '.' e_date+0(4) INTO date2.
CONCATENATE 'Gratuity Information for ' date1 'to' date2
INTO v_text SEPARATED BY space.
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = v_text.
APPEND ls_line TO e04_lt_top_of_page.
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = v_text1.
APPEND ls_line TO e04_lt_top_of_page.
ENDFORM. " E04_COMMENT_BUILD
*& Form DISPLAY_REPORT
text
--> p1 text
<-- p2 text
FORM display_report.
gs_layout-colwidth_optimize = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_background_id = 'ALV_BACKGROUND'
i_callback_program = g_repid
i_callback_user_command = 'USER_COMMAND'
i_structure_name = 'IT_FINAL'
is_layout = gs_layout
it_fieldcat = gt_fieldcat
it_special_groups = gt_sp_group[]
it_sort = gt_sort[]
it_filter = gt_filter[]
i_save = g_save
is_variant = g_variant
it_events = gt_events
is_print = gs_print
it_alv_graphics = gt_alv_graphics[]
it_excluding = gt_excluding
TABLES
t_outtab = it_final.
ENDFORM. " DISPLAY_REPORT
FORM top_of_page *
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
i_logo = 'ENJOYSAP_LOGO'
it_list_commentary = gt_list_top_of_page.
ENDFORM . "TOP_OF_PAGE
FORM user_command USING g_ucomm TYPE sy-ucomm
g_field TYPE slis_selfield.
CASE g_ucomm.
WHEN '&IC1'.
ENDCASE.
ENDFORM. "USER_COMMAND
*& Form FINAL_DATA
text
--> p1 text
<-- p2 text
FORM final_data.
LOOP AT it_final_sup.
MOVE-CORRESPONDING it_final_sup TO it_final.
APPEND it_final.
CLEAR it_final.
ENDLOOP.
LOOP AT it_final_nonsup.
MOVE-CORRESPONDING it_final_nonsup TO it_final.
APPEND it_final.
CLEAR it_final.
ENDLOOP.
SORT it_final BY pernr.
ENDFORM. " FINAL_DATA
<b>Reward if useful,</b>
Regards,
Tejas -
Manager Applies leave for his employee!!
Hi All,
We are planning to implement ESS, and instead of giving all the employes access to portal, have thought of using 'ESS in MSS' or in latest version its in 'Related Activities' of General Information Page.
Its a standard process to achieve this, but implementing this requires more work for the manager , as he has to apply leave for all of his team members(Sub ordinates); Is there any possibility that this task of applying leaves can be delegated to a member of the department/org unit??( i.e., a person who is not cheif/head of the org unit).
How can this be acheived?Dear Sravanthi
You can try giving the MSS role in the portal. But I am not sure if this will fetch the subordinate information because in the standard the organisational structure views MSS_LTV_EE_ALL and MSS_LTV_EE_DIR are used to fetch the pernr of the employees. Check in the view cluster VC_TWPC_ORGVWGRP. (T-Code SM34)
To fetch data from the organizational structure, the system first get the root objects. As start object, the evaluation path always contains the user (manager) who is logged on.
Starting from each individual root object, the system uses the evaluation path in the Evaluation Path field to determine
organizational objects that lie below the root object.
I am not sure if there is a standard organisational view for your requirement. I think you need to tweak the code a little bit get the
subordinate of the manager when the delegated employee is logged on.
Hope this helps.
Regards
Roy -
LSO and Self-Service for My Employee
Hi,
Anyone know whether the LSO BSP application is compatible with MSS Self-Service for My Employee ....ie the manager acts as the employee.....
Any info on this greatfully received....
Thanks
JHello Jambo,
unfortunatelly it is not. The ESS in MSS functionality is a hightly integrated application, with the XSS Floorplan Manager (FPM) as the integrating part. The LSO BSP application does not have access to this FPM. Thus it would not get notified if you select an employee.
A possible solution tho could look like this:
Create a FPM application (WD Java) which serves as a proxy application
check this link out (How to guide) https://wiki.sdn.sap.com/wiki/display/profile/How-toaddacustomWebDynproiViewtotheMSSEmployeeProfile%28ECC+6.0%29
Call the BSP application within this WD Java application and somehow pass the pernr to it.
Just an idea tho
regards,
Markus -
History of Appraisal Document for an Employee MSS
Dear Expert.
I am implementing PM (Appraisal Document) ESS/MSS with BP 1.41. However I have the following doubt:
When an employee had a "Organizational Change" and the boss want see the appraisals that were did for this emplooyee.
My question is: With the MSS The boss can see this appraisal also ?
Thanks in advance
Regards
CarmenIn order to display an appraisal document, access to the template, the
appraiser and the appraisee is needed. Besides the two ways outlined
above, you can also disable the authority check against the appraiser.
You can do this in the appraisal template in the 'Processing' tab; the
setting is called 'No Authorization Check for Appraiser'. Despite the
slightly misleading description, this option disables the check against
the appraiser, so for accessing a document only the objects of the
template and the appraisee are checked. This is convenient, if managers
should be able to see old documents of their employees, no matter who
did the appraisal.
To enable that flag in the template, you might need to unrelease the
template first. In your test system you can either set the flag directly
in table 'HRP5025' or take a look at note '888650'. The report included
in that note allows you to temporary unrelease a template. If you use
that report, please only change this flag, since changing other
settings, might result in data inconsistency. When you are finished,
release the template again.
or if you dont want to set this parameter, you can consider the BADI
In order to see or find an appraisal document, you need to have
structural authorization for the objects involved; for all employees and
the appraisal template.
In case 1, the appraiser of department 2 does not have the authorization
to display the personal data of appraiser 1.
In case 2, appraiser 2 does not have the necessary authorization to
display the appraisee of the document.
Thus this is the expected system behavior. I can think of two possible
solutions:
1) You could enhance the structural authorization of the affected
appraisers.
2) Implement the BAdI 'HRHAP00_AUTHORITY'. With this BAdI you can
whitelist certain documents by adding them to 'T_APPRAISAL_ID'. If you
set 'NO_STANDARD_CHECK', these documents pass the authorization check
and can be displayed.
Edited by: Siddharth Rajora on Aug 30, 2011 3:41 PM -
Relevance of activate two ledgers for accounting in two different standards
Hi, we are implementing sap erp 6.0 but I have a big question:
From suggestions of our consultants we are activating two ledgers for financial information (one undes IFRS "international financial reporting standards" and Mexican financial reporting standards but i can see the functionallity of activate it because we only have one Controlling Society, and controlling (product costing) only uses data from the main ledeger, So I can't get product costing for two accounting standards, and i will have to account manully some differences between those 2 standards.
So, i can't see the real benefit of using two ledgers, when we just have one controlling ledger...
Best Regards...
For example: some employee bennefits must be part of product costing under ifrs, but in mexigan gaap are not allowed.
Other example is depreciation, which is different under IFRS and Mexican gaap.Hi Angela,
I am not so clear on the method that you are saying (linear method) if possible can you please give some details on the same
Mean while can you please have a look on "Depreciation Key -> Calculation methods -> Multi level method" , hope it will helps you to identify solution for your requirement !!
Multi-Level Method - Asset Accounting (FI-AA) - SAP Library
Thanks,
Bose -
Income Tax deducted for withdrawn employee
Hi Experts
In my Client One employee is withdrawn on 31.04.2011n he got final settelement in that month,But in the june payroll for that employee income tax deducted,we have cheked all his prevoius payroll cluster but not able to get the solution.Can anyone tell why this happend
regards
AakashAakash,
Once employee moves to employement status zero, payroll will only be executed if there is some master data change. Without that it is not possible. So just check if system ws triggering some retro for this test case. Also you can check IT0003 'Earliest MD change' for the reason. Alongwith it even if the user has deleted the record, you can still do the simulation run and check the results for the employee. from result you can easily track if there was any chnage.
Edited by: Praveen Tiwari on Jun 24, 2011 7:30 PM -
Issue while creating Absence Quota for one employee
Hi Friends,
Our customer has a weird issue. When time evaluation is run, One Absence Quota type (Leave in Bank) is not getting generated for Only One Employee.
This leave type has been updated with quota in IT 2006 after running PT60 for all other employees in the PA. The issue is only with one employee.
This absence quota is assigned "Increase" in table V_556A_B (Permit Generation of Quotas in Time Evaluation)
Can any one please suggest how to generate the missing quota for this employee. Thank you !!Hi
Thanks for your replies !!
Please find the screenshots attached.
Leave in Bank Absence type which is valid for 2014 is missing in IT 2006 instead This absence quota valid upto 31.12.9999 is present.
Current requirement is to remove the quota which is valid upto 31.12.9999 and replace the quota which is valid upto 31.12.2014.
I have checked for some PERNRs with same EG/ESG/PA/PSA combination. They have the absence quota valid upto 31.12.2014 Only. -
Income Tax not Calculated for one employee.
Hi experts,
we have updated our patch lvl upto 86. Budget Changes Note is applied already. Now the Problem is with one employee.
Out of 1000 employees for one employee /436, /446 and /450 generated correctly with correct figure. But /460 is not generated.
I can see in the log /451 is generated with the amount exactly as /450.
Why system is not generating /460?
Can anyone guide me?
Regards
NasimWell the reaults are surprising as cross financial arrear /616 is only 1385.96 and relief generated by this is 18776. Which is simply not possible. Even in FY 2010-2011 relief should not be generated as relief only comes when employee is end up paying more taxes than last year tax on arrears. Now since tax slabs are increased, relief will not be egenrated.
This issue you can check with OSS message.
IF you want to deactivate the Section 89 relief implementation switch S89SW constant as 0 in table V_T511K. It may also activated on employee level, then you need to check IT0588/ subtype 4. Before deactivating it check out the impact after deactivation in case of retro as i may increase/ decrease the past tax.
Please note that implementation level switch supposed to be activated/ deactivated only once in lifetime of SAP system. -
How to remove a network activity for one employee from the worklist?
Hi,
We are using the SAP project system where project resources are assigned network activities. In the worklist in the ESS timesheet, the assigned network activities are displayed for the employee. The problem is when several employees are assigned for a network activity, and one of them no longer should register hours on this activity. How can you remove the assignment (using dates etc.) for only one person so that the network activity no longer is present in his worklist in the timesheet?
Regards,
PetterWell for this pernr you need to have a special coding to check for network and pernr.
other would be a simple way using cats0003 to validate data an employee records here you can have a individual check
for this pernr that he doesnt record for this activity and throw an error when he does! this is simpler -
Can you have two psswords for an Itunes account?
My kids have i pods. They tell me they need the password I set up for normal use of the i pods. I have had problems with them buying apps they thought where free etc. Is it possible to have one password for purchases and one for normal use and free apps?
I have to say that trying to reach anyone at Apple for customer support is impossible. I have tried evrything, called, email,web links. Worst customer service set up I have ever seen. Sorry, very frustrated. Impossible to get an actual cus support rep. It is a simple question too.
Thanks for any advise.You cannot have two passwords for one Apple ID. If you set up restrictions - I believe that you can require a password for in app purchases. You can simply restrict app purchases as well with restrictions but that would restrict the downloading of free apps as well.
Settings>General>Restrictions.
See this article.
IOS: Understanding Restrictions
http://support.apple.com/kb/ht4213 -
How can we load apps without creating an Apple ID for each employee?
We have at least two apps that we'd like to distribute to our company iPads. We would like to hand the employee the iPad with everything loaded. We don't care if they create their own Apple ID and manage it after the fact but when the employee gets the iPad, it should have the apps they require.
How do we load these apps without creating an Apple ID for each employee? If we load the apps from App Store with our Apple ID, the app requires that username and password whenever there is an update. The employee can not update the app without our username and password or they have to delete and reinstall the app with their own credentials. Is there a way to load an app so that it doesn't require the credentials of the person that loaded it whenever there's an update?Turn on computer.
Open itunes.
Connect a device.
Select what you want to sync.
Sync
Repeat for the otehr device
Maybe you are looking for
-
Hi, I am trying to use SDO_GEOM.WITHIN_DISTANCE on geodetic data, but I don't want to use meter as unit for the tolerance. I thought I simply can set the unit to 'Degree', but this does not work: select SDO_GEOM.WITHIN_DISTANCE( MDSYS.SDO_GEOMETRY('P
-
I am creating a fillable form with Digital signature approval. I want to have the approval sign the document and it automatically saves as a unique name so it can then be emailed to the next approver. Help - I am not a programmer!
-
Trying to format text in filemaker using AS
i have a db in failmaker and often cut and paste (drag and drop) entries into the db from other programs. when i do this FM preserves the formatting of the source. i dont know how to avoid this. so i thought that a little AS which scans entries and r
-
Output Module - Multiple compositions render
AE CC / Mac / Mavericks After adding a comp to the render queue, I'm getting a message when I go to output that says "not yet specified" I have comp name set to default in the settings but it still is "not yet specified" when I add comps to the rende
-
Last month's date in cron?
Hi folks, I'm trying to write a cron command that'll create a new folder sometime after the first of the month which will be named with the year and month of LAST month. I want to load each month's awstats files in those folders after the log has bee