Table infotype
I need to create a table infotype for PD module.
Before executing PPCI for creating tables ,dynpros ,etc what structures i need to define?
HRIXXXX
PTXXXX
Hi!
Dis yoy resolve the problem? could you tell me how did you do?
Thank you!
Similar Messages
-
HR ABAP: table/infotype relationships
Hi.
I'm experienced in doing ABAP programming for all the rest of the modules, but with ABAP HR, I am new and doing one for the first time. I need your help regarding how to find tables/infotypes and relationships to each other.
Specific work example/scenario:
From selection criteria of requisition information, I am supposed to have an output report with application and candidacy information.
1.) How can I relate Infotype 5125 with info type 5132 and 5102?
I am more comfortable with select statements hence I prefer explanation using the transparent tables HRP5125, HRP5132, etc.
2.) How can I make use of the table HRP1001 to establish relationships between different tables/infotypes of HR?
Also, kindly send any links and documents that can give an at-a-glance summary of what I can use when doing ABAP for HR for the first time.
Thanks for your help and expertise and may God bless us all!
CelesteMore exactly look at tables
- [HRP1000 |https://www.sdn.sap.com/irj/sdn/advancedsearch?query=hrp1000+&cat=sdn_all]: org. units, positions, etc.
- [HRP1001|https://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_all&query=hrp1001&adv=false&sortby=cm_rnd_rankvalue] : links between org. units, positions, etc.
Look at this thread Tables for ORG model and FM [RH_STRUC_GET|https://www.sdn.sap.com/irj/sdn/advancedsearch?query=rh_struc_get&cat=sdn_all]
Regards -
hi..
i have the value for POSITION (PLANS)....
using 'plans'....i need to get its 'werks', 'persg', 'persk'....
from which table/infotype can i get these?
regards
balaji.check IT 01 -->PA0001.
Regards
Peram -
Hi Experts,
Can you please provide me with the steps to create a custom table infotype.
Thanks
Srihi sri,
the steps to follow to create the custom infotype are
Steps to create a HR Infotype:
1) Go to Transaction PM01.
2) Enter the custom Infotype number which you want to create
(Should be a 4 digit number, start with 9).
3) Select the 'Employee Infotype' radio button.
4) Select the 'PS Structure Infotype'.
5) Click on Create... A separate table maintenance window appears...
6) Create a PS structure with all the fields you want on the Infotype
7) Save and Activate the PS structure
8) Go back to the initial screen of PM01.
9) Click on 'All' push button. It takes a few moments.
10) Click on 'Technical Characteristics'. Infotype list screen appears
11) Click on 'Change'(pencil) button
12) Select your Infotype and click on 'Detail' (magnifying glass) button
13) Give 'T591A' as subtype table
14) Give 'T591S' as subtype txt tab
15) Give your subtype field as subtype field
16) Save and come back to PM01 initial screen
17) Click on 'Infotype Characteristics' ... Infotype list screen appears
18) Click on 'Change' (pencil) button
19) Click on 'New Entries'
20) Enter your Infotype number and short text
21) Here we have to set different Infotype Characteristics as per the requirement.
(Better open another session with some standard Infotype's
infotype characteristics screen and use as the reference to fill yours)
22) Save your entries.
23) Now the Infotype is created and ready to use.
24) If you want to change the layout of the Infotype as per your requirement...
25) In the PM01 initial screen...Select 'Screen' radio button and give 2000
as the screen name, then click on edit.
26) In the next screen.. Select 'Layout Editor' and click 'Change'.
27) Screen default layout appears...here you can design/modify
the screen..change the attributes of the fields..etc.
28) Save and activate. (Don't forget to 'Activate at every level)
regards,
sreelatha gullapalli -
Insert records in a table infotype
Hi all,
I had create a table infotype using PPCI transaction.
Now I need to insert some records, but I can't find any function module for that.
With RH_INSERT_INFTY I might be able to insert the HRPnnnn record, but not the HRTnnnn records.
Can anyone help me?
Thanks,
Luis CruzFound by myself.
Function module RH_INSERT_INFTY_EXP
DATA: lt_hrp9xxx TYPE TABLE OF p9xxx,
lt_hrt9xxx TYPE TABLE OF hrt9xxx,
ls_hrp9xxx LIKE LINE OF lt_hrp9xxx,
ls_hrt9xxx LIKE LINE OF lt_hrt9xxx.
ls_hrp9xxx-plvar = '01'.
ls_hrp9xxx-otype = 'E'.
ls_hrp9xxx-objid = 'xxxxxxxxx'.
ls_hrp9xxx-infty = '9xxx'.
ls_hrp9xxx-istat = '2'.
ls_hrp9xxx-begda = '2011xxxx'.
ls_hrp9xxx-endda = '2011xxxx'.
ls_hrp9xxx-zzfield = 'xxxxxx'.
APPEND ls_hrp9xxx TO lt_hrp9xxx.
ls_hrt9xxx-tabseqnr = 1.
ls_hrt9xxx-zzfield = 'xxxx'.
APPEND ls_hrtxxx TO lt_hrt9xxx.
CALL FUNCTION 'RH_INSERT_INFTY_EXP'
EXPORTING
vtask = 'D'
TABLES
innnn = lt_hrp9xxx
tnnnn = lt_hrt9xxx
EXCEPTIONS
OTHERS = 99. -
HCM: Table infotype creation
Hi Guys,
I would like to create new customzed infotype like infotype 0028 (Internal Medical Service). I managed to create field infotype using PM01, but unable to create table like infotype 0028 (Examination Data).
is there any documentation or tutorial available on internet that will help me create Customized (9xxx) table infotype? I tried but didnt manage to find one.
Could anyone please help.
Thank you
MTAHi,
Check this link.
<<single link without accompaning text removed by moderator>>
Regards,
Srini.
Edited by: kishan P on Sep 8, 2010 10:30 AM -
I have created "field infotypes" using PPCI.
I created the prereq structure HRI9nnn ...
...selected the "field infotype" radio button...
... and hit create.
I am now trying to create a "table infotype". What are the prereqs for creating it? I tried creating a (different) HRI9nnn, selecting the "table infotype" radio button, and hitting create, but it doesn't work. I've tried a few more renditions as well.Hello,
could you create the table infotype? Could you tell me how did you do?
Thank You! -
What are table-infotypes?
I am not sure about this term and how it is different from infotypes as such.
Please suggest.First of all lets keep in mind that: in order to pass data to and from screen fields, they must have the same name as a global variable. Having said that we must define a global array containing our data and a global table view control that will be used to program the data transfers.
Let us start with the data. Assuming that the table you wish to work with corrsponds to an ABAP dictionary structure named ZMY_STRUCT, then the table definition might look something like the following:
Basic ITAB
DATA BEGIN OF tbl_mydata OCCURS 0.
DATA: sel TYPE c.
INCLUDE STRUCTURE zmy_struct.
DATA: END OF tbl_mydata.
One can reasonably ask why a table with a header line and again why an ABAP dictionary structure. The answer to both questions will be given shortly afterwards but for now let's just say that things work much easier this way, or otherwise they don't work at all :-). The table control definition should be something like
CONTROLS :
tc_mydata TYPE TABLEVIEW USING SCREEN 0200.
Make sure that the screen number corresponds to the actual screen number of your program. Next move to the screen and press the layout button to invoke the screen painter. Inside the screen drop a table control item and name it TC_MYDATA. Size it so that it fits your screen according to your needs. Double click on the table control to bring up the properties dialog box.
The sel field of the tbl_mydata table will mark the user selected lines. Getting a field symbol to point at the selected line is as easy as writing something like :
FIELD-SYMBOLS
<fs> LIKE LINE OF tbl_mydata.
READ TABLE tbl_mydata ASSIGNING <fs> WITH KEY sel = 'X' .
IF NOT <fs> IS ASSIGNED.
MESSAGE s888(sabapdocu) WITH text-e01. " No Selection
ELSE.
Do what ever you want with -...
ENDIF.
Now press F6 to invoke the screen painter Dict.Program Fields window. In the field named Table field Name enter a search patter like like TBL_MYDATA-* and press the button labeled Get from program to display the matching table entries. Select the ones you wish to add to you screen and press the green ok button at the bottom. Then click inside the table view control to create the appropriate columns. Had the tbl_mydata table been declared any other way -- i.e. using a TYPES section or without the header line, then the process or field selection through F6 would not work.
Note: At this point just save the screen and exit screen painter without performing any kind of syntax check or activation.
Moving back to the screen properties, the basic flow logic should at least contain the following
PROCESS BEFORE OUTPUT.
MODULE status_0200.
LOOP AT tbl_mydata WITH CONTROL tc_mydata
CURSOR tc_mydata-current_line.
MODULE read_tbl_line.
ENDLOOP.
PROCESS AFTER INPUT.
MODULE exit_screen_0200 AT EXIT-COMMAND.
LOOP AT tbl_mydata.
MODULE write_tbl_line.
ENDLOOP.
MODULE user_command_0200.
The basic idea is that during PBO the contents of the entire table are copied from the table to the table control. Then during PAI the contemns of the table control will be copied from the control back to the table.
Before copying any data though, we must first set the size of the table control. The best place to do this is probably at the status module. Now, although my mother told me never to use global variables, the usual approach to setting the table size during PBO, starts by declaring a global field named somthing liketotal_entries or table_size being of type i. Having done that your status_XXX module should at least contain the following.
MODULE status_0200 OUTPUT.
SET TITLEBAR 'TB_200'.
SET PF-STATUS 'SCREEN-0200'.
DESCRIBE TABLE tbl_istat LINES total_entries.
tc_mydata-lines = total_entries.
ENDMODULE. " status_0200 OUTPUT
To create the read_tbl_line module, double click on the read_tbl_line inside the screen flow editor. A message will pop up asking if the a module named read_tbl_line should be created. Answer yes and depending on the type of program you are creating select the appropriate file. After you press ok, change the text in the editor so it looks like this.
MODULE read_tbl_line OUTPUT.
MOVE-CORRESPONDING tbl_mydata TO tc_mydata.
ENDMODULE. " read_tbl_line OUTPUT
Finally the write_tbl_line PAI module does the exact opposite. It moves the data from the table control back to the internal table.
MODULE write_tbl_line INPUT.
MODIFY tbl_mydata INDEX tc_mydata-current_line.
IF sy-subrc <> 0.
APPEND tbl_mydata.
ENDIF.
ENDMODULE. " write_tbl_line INPUT
From now on any code executing during the user_command_XXX module will get a consistent copy of the data.
Screen programming in ABAP is a complex subject. This post provides only the basic template for minimal operations. More post will follow explaining how to respond to data changes, sort tables based on selected columns and dynamically changing your screen.
Regards,
Muneesh. -
Restriction for users NOT to viewa particular table/Infotype..
Hi All,
We have a requirement where employee's salary details need to be uploaded into the SAP HR database.
But in our scenario, someof our consultants have Production login and can access SE16 Tcode to view the database table entries.
Now since we need to upload the salary details into an Infotype, this infotype should not be made accssable to the consultant logins. In the meanwhile, the logins should not be restricted to user SE16 Tcode.
Hence can we put a restriction, so that these consultants can not view the particular infotype which as salary details?
They should be given access to browse SE16. But at the same time, they should not be allowed to browse PAXXXXX Infotype which contains SALARY details..
How to handle this kind of problems????
Regards
PavanHi All,
I have got a response from another user as follows. But can anyone explain me how exactly move ahead....???
We have recently dealt with a similar scenario.
What we have done is we have used the authorization object S_DEVELOP with OBJTYPE TABL(means table access).
Unfortunately we could not find a way to exclude one or several tables from selection.
Thus we have given two intervals to OBJNAME field.
First interval starts from the very first table in the system /1CN/AMFSAPH1FDT (please check your system for this) to the table just before the one we are trying to restrict (P593R).
Second interval starts from the first table after the restricted one (PABASN) to the last table in the system(ZZXXX) (please check your system for this).
In the solution above we had restricted access to all PAXXXX tables.
Regards
Pavan -
How to check from which table data is picking by datasource 0CDCY_ACT_ATTR
Hi Experts,
Could you please help me in finding out of the table from which datasource 0CDCY_ACT_ATTR is extracting.
As per my knowledge is should be extract from tables(infotypes) HRP5135 - 5141.If i am wrong please correct me.
Issue : My extractor(0cdcy_ACT_ATTR) is bringing wrong ACT_TYPE (Eg :5010) where as in table HRP5141 for that particular OBJID it is 9180( different).
Please help me why my extractor is bringing ACT_TYPE 5010.
This standard datasource and using Function Module : RCF_BIW_GET_ACTIVITY, How can i check from which table it is picking the data
Thanks in Advanve
SreeHi Sree,
In RSA3 on the first screen, you have the option to start debugging by marking the debug check box, once you put all the selections, click on execute and it will go to debug mode, then keep on pressing F5. It will debug your code line by line, then you can check for all the select statements.
Or once the debugging is started you will have the option to put break point on all the select statements in one shot, you can get in touch with your ABAP team.
Regards,
Durgesh.
Edited by: Durgesh Gandewar on Jul 24, 2011 8:20 PM -
Hi ,
Can any one please tell me all the tables to be used for making a report for overtime payments or send any report related to it.
waiting for the reply.
Thanks & Regards
RohitHi,
report zporgr0100
line-size 252
line-count 60(1)
no standard page heading
message-id zx.
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
<b>reward points for useful answers</b>
regards,
ANJI -
Hi friends
I have to read recent (last) record from the following HR tables/infotypes. Shall I use RP_PROVIDE_FROM_LAST macro? Is there any other other good way to read data? Please give me some sample code. I will appreciate ur great help.
PA0001
PA0002
PA0006
PA0008
PA0041
HRP1001
HRP1015
Thanks in advance
HariHello Hari
The following coding shows you how to read any infotype (even simultaneously) for an employee.
METHOD get_infotype_0027 .
* define local data
DATA:
lif_employee type if_pt_employee,
lt_infotypes TYPE tim_tmw_itlist_tab,
lo_control TYPE REF TO if_pt_td_control,
lo_data TYPE REF TO if_pt_td_base,
lo_pnnnn TYPE REF TO if_pt_td_itnnnn,
ls_p0027 TYPE p0027.
* Create employee instance
lif_employee = cl_pt_employee=>get_employee( p_pernr ).
* Append all required infotypes to itab
APPEND '0027' TO lt_infotypes.
CALL METHOD lif_employee->get_infotypes
EXPORTING
i_itlist = lt_infotypes
i_fromdate = id_fromdate
i_todate = id_todate
* I_FILTER =
i_noauthcheck = 'X'
IMPORTING
e_result = me->mt_infty_request
e_retcd = me->md_retcd.
* Please see documentation of parameter e_retcd...
LOOP AT me->mt_infty_request INTO lo_control.
lo_data = lo_control->data. " get data object
* Casting
TRY.
lo_pnnnn ?= lo_data.
CATCH cx_sy_move_cast_error.
CONTINUE.
ENDTRY.
* Convert infotype (semi-transparent -> transparent)
CALL METHOD cl_hr_pnnnn_type_cast=>prelp_to_pnnnn
EXPORTING
prelp = lo_pnnnn->prelp
IMPORTING
pnnnn = ls_p0027.
APPEND ls_p0027 TO rt_p0027.
ENDLOOP.
* Store infotype 0027 data
me->mt_p0027 = rt_p0027.
ENDMETHOD.
Unfortunately, I do not have a similar solution for the HRP... tables.
Regards
Uwe -
No entry in table T582A for 171
Hi Friendz,
When I executed Idoc, system is throwing message No entry in table T582A for 171. I checked in T582A and T777D (attribute/characteristics ) tables infotype is available.
Please advice to rectify this issue asap.
Thanks in advance,
$Lakshmi
Edited by: Narayana on Feb 20, 2010 3:16 AMHi Sujit,Pradeep,ERP12345
Issue resolved...
I have not used period parameter 01.but copied it to my customized one.I changed it to 01 and TE run successfully.
But my question is why after copying it is throwing this error? i cant find any logic
sorry I cant give any forum points because its already resolved...
But anybody can tell the logic then i will definitely give the points.
Thanks in advance... -
Master table for HR PD process
Dear Friend,
I need a list of all the master tables ( infotypes) for HR Personal Development process .I know the PA process bt PD nt waare abt that so plzzzzzzzzzzzzzzz .....
asap.
thanx
regrds
sandeep dabral
Edited by: SANDEEEP DABRAL on Feb 7, 2009 10:21 AMHi,
Hoping that this will help you out
HRP1000 Infotype 1000 DB Table (Objects)
HRP1001 Infotype 1001 DB Table (Relationships)
HRP1002 Infotype 1002 DB Table
HRP1003 Infotype 1003 DB Table
HRP1004 Infotype 1004 DB table
HRP1005 DB Table for Infotype 1005 (Planned Compensation)
HRP1006 Infotype 1006 DB table
HRP1007 Infotype 1007 DB Table
HRP1008 Infotype 1008 DB Table
HRP1009 Infotype 1009 DB table
HRP1010 Infotype 1010 DB table
HRP1011 Infotype 1011 DB Table
HRP1013 Infotype 1013 DB Table
HRP1014 Infotype 1014 DB Table
HRP1015 Infotype 1015 DB table
HRP1016 Infotype 1016 DB Table
HRP1017 Infotype 1016 DB Table
HRP1018 DB Table for Infotype 1018 Cost Distribution
HRP1019 DB Table for Infotype 1019 Required Positions
HRP1020 Infotype 1020 DB table
HRP1021 INFOTYPE 1021 DB TABLE
HRP1023 Infotype 1023 DB table
HRP1024 INFOTYPE 1024 DB TABLE
HRP1025 INFOTYPE 1025 DB TABLE
HRP1026 Infotype 1026 DB table
HRP1027 Infotype 1027 DB table
HRP1028 Infotype 1028 DB Table
HRP1029 Infotype 1029 DB table
HRP1030 Infotype 1030 DB table
HRP1031 Infotype 1031 DB table
HRP1032 Infotype 1032 DB Table
HRP1033 DB table for infotype 1033
HRP1034 Infotype 1034 DB table
HRP1035 Infotype 1035 DB Table
HRP1036 Infotype 1036 DB table
HRP1037 Infotype 1037 DB Table
HRP1038 Infotype 1038 DB table
HRP1039 Database Table for Infotype 1039
HRP1040 Database Table for Infotype 1040
HRP1041 DB Table for Infotype 1041
HRP1042 Infotype 1042 DB Table
HRP1043 DB Table for Infotype 1043
HRP1044 DB Table for Infotype 1044
HRP1045 DB Table for Infotype 1045
HRP1046 Database Table for Infotype 1046
HRP1047 DB Table for Infotype 1047
HRP1048 DB Table for Infotype 1048
HRP1049 Database Tables for Infotype 1049
HRP1050 DB Table for Infotype 1050 (Job Evaluation Results)
HRP1051 DB Table for Infotype 1051 (Survey Results)
HRP1060 DB Table for Infotype 1060
HRP1061 DB Table for Infotype 1061
HRP1062 DB Table for Infotype 1062
HRP1063 DB Table for Infotype 1063
HRP1201 Infotype 1201 DB Table
HRP1205 Infotype 1205 DB Table
HRP1206 Infotype 1206 DB Table
HRP1208 Infotype 1208 DB Table
HRP1209 Infotype 1209 DB Table
HRP1210 Infotype 1210 DB Table
HRP1211 Infotype 1211 DB Table
HRP1212 Infotype 1212 DB Table
HRP1213 Infotype 1213 DB Table
HRP1214 Infotype 1214 DB Table
HRP1215 Infotype 1215 DB Table
HRP1216 Infotype 1216 DB Table
HRP1217 Infotype 1217 DB Table
HRP1218 DB Table for Infotype 1218
HRP1220 DB Table for Infotype 1220 Activity Profile
HRP1221 DB Table for Infotype 1221 Excluded Activities
HRP1222 Infotype 1222- General attribute maintenance
HRP1230 DB Table for Infotype 1230
HRP1240 DB Table for Infotype 1240
HRP1250 DB table for infotype 1250
HRP1251 DB table for infotype 1251
HRP1252 DB table for infotype 1252
HRP1253 DB table for infotype 1253
HRP1254 DB Table for Infotype 1254
HRP1260 DB Table for Infotype 1260
HRP1270 DB Table for Info Type 1270
HRP1403 DB table for infotype 1403
HRP1404 DB table for infotype 1404
HRP1500 DB Table for Infotype 1500
HRP1501 DB Table for Infotype 1501
HRP1502 DB Table for Infotype 1502
HRP1503 DB Table for Infotype 1503
HRP1504 DB Table for Infotype 1504
HRP1505 DB Table for Infotype 1505
HRP1506 DB Table for Infotype 1506
HRP1507 DB Table for Infotype 1507
HRP1518 DB Table for Infotype 1518
HRP1519 DB Table for Infotype 1519
HRP1520 DB Table for Infotype 1520
HRP1600 Database Table for Infotype 1600
HRP1601 Database Table for Infotype 1601
HRPAD21 Additional data PAD21
HRPAD22 Additional data PAD22
HRPAD23 Additional data PAD23
HRPAD25 Additional data PAD25
HRPAD27 Additional data PAD27
HRPAD31 Additional data PAD31
HRPAD34 Additional Data for Relationship 'has attended'
HRPAD44 PAD44 Additional Data
HRPAD47 PAD47 Additional Data
HRPAD48 Additional Data PAD48
HRPAD50 Additional Data PAD50
HRPAD51 Additional data PAD51
HRPAD53 Additional Data PAD53
HRPAD63 PAD63 Additional Data
HRPAD77 Additional data for PAD77
HRPADBLIST Additional Data Databases
HRPADD2 Additional Data PADD2
HRPADD3 Additional Data PADD3
HRPADIC Additional Data PADD2
HRPADNLIST Additional Data Number List
HRPADNN General Additional Data Table
HRPADP1 Additional Data PADP1
HRPADP2 Additional Data PADP2
HRPADPM Additional Data PADPM
HRPADTI PADTI Additional Data
HRPADUZ PADUZ Additional Data- Requirements Assignment of Persons
HRPADXN Additional Data PADXN
HRPS_T012K For Decoupled Access to T012K (House Bank and Account)
HRPVAC List of vacant positions
HRPXXXX DB Table for Infotype XXXX
HRPYYYY DB Table for Infotype YYYY
Warm REgards,
Kapil -
I am trying to create a new custom OM Infotype, the T77* entries are not creating automatically as they should. Also screens 2000 and 3000 are not creating, could this be stopping the table entries from creating? Any help would be appreciated.
Hi,
Are you using PPCI transactio to create an Infotype
Prerequisites
You must create a structure HRI9nnn in the ABAP Dictionary and define infotype-specific fields in
this structure. The structure is created in a development class without a prefix.
No further Repository objects - such as screens or module pools that you may have created
manually - may exist for the infotype apart from those in the structure PT9nnn (or HRI9nnn).
If such Repository objects exist, delete them by choosing Check environment.
Procedure
To use the infotype copier, you must be able to program in ABAP, be familiar with
the ABAP Dictionary, the ABAP Screen Painter and the ABAP Menu Painter.
1. Enter the transaction code PPCI.
2. Enter a four digit infotype number (9nnn) and an infotype name.
Select Lang-dep. infotype if you want to create a language-dependent infotype.
Select Country-specific infotype if you want to create a country specific infotype, in
other words, an infotype that is displayed when you choose the relevant countryspecific
settings.
3. Choose Table infotype.
4. Choose Infotype Create.
The infotype copier generates all of the Repository objects that are required for the
infotype.
5. Choose Check environment to maintain the required entry in table T777I (Infotypes per
object type).
Result
All the Repository objects required for the infotype have been created. The relevant infotype
specific table entries in tables T777T (Infotype texts) and T778T (Infotypes) have been
maintained by the infotype copier. The user has maintained the relevant entry in T777I (Infotypes
per object type).
Regards
Krishna
Edited by: Krishna Gowrneni on Apr 30, 2009 8:49 PM
Maybe you are looking for
-
Patch SAPKH60013 is taking too much time.
Dear Export, We are applying patch SAPKH60013 in our development server. it is stuck on "tp user check OK". Earlier we Applied SAPKH60012 within one hour, but SAPKH60013 is running more than hours. After that we 1.Stop the SPAM 2.Run the stattistics
-
Update query with non-equijoin
I have three tables - sales_order, item and price. I want to update item.actual_price with price.list_price. The item table is joined to the sales_order table using order_id. The appropriate list_price for each order_id is where sales_order.order_dat
-
Dear Experts, I have daily schedule of Process chains . At the time of month end due to offline backup or at the time patch upgradation we need to stop the schedule for that day and next day again put in schedule. Is there any way to define custom sc
-
What is the expected range of Airport Extreme on 5 GHz band?
I just installed a AE 5 gen. I live in a wood frame home and I having difficulty receiving adequate signal levels (5 GHz) on the second floor. Total distance 40 feet and two frame walls (one wall and one ceiling). I am replacing a LinkSys E2500 th
-
Hi, I want to write a code to create a Statement or PreparedStatement and use it to add 10% to the price field for the item whose key is in the field "prod_id" in a table "Products". fields prod_id - int price - float Thanks in advance.