Macros & PNPCE LDB
Hi,
I am currently working on a program that uses PNP LDB.I want to use PNPCE instead of PNP in order to improve the performance of the program.
Will the macros defined in the current program for PNP work for PNPCE also?If not then how can I get the macros for the same functionality for PNPCE?
When I tried to change PNP to PNPCE, but made no changes to the macros, then I got an error that "space" is not recognized.Could you please help me understand how to solve the problem?
Thanks.
Sandeep.
Below are the macros for PNPCE:
For validity period : 1. RP_SET_DATA_INTERVAL_INFTY,
2. RP_SET_DATA_INTERVAL,
3. RP_SET_DATA_INTERVAL_ALL
For Mode Change: 1. PNP_SET_INFTY_MODE_BY_NAME
2. PNP_SET_INFTY_MODE_BY_NUMBER
Similar Messages
-
Not able to use macro with LDB PNPCE
Hi,
I am trying to use macro 'rp-provide-from-last' as below with LDB PNPCE.But syntax error 'unable to interpret SPACE' has occurred.
rp-provide-from-last p0001 space pn-begda pn-endda.
Please let me know how to use this macro with LDB PNPCE.The reason you are getting this error is that you would have used the GET Pernr. in start of selection.For PNPCE u have to define
Nodes : person, peras.
and then use the
Get PERSON.
Get PERAS in start of selection
and then u can use the standard macros without any errors. -
Which Syntax is best to read an infotype using PNPCE LDB ?
Hi experts,
Which syntax is best to read an infotype when we use PNPCE LDB.
Thanks.
reddyHi Iredy,
if you need to read an infotype records of the particular employee, you can use Macro RP-READ-INFOTYPE (Parameters: PERNR, INFTY, BEGDA, ENDDA)
Macro definition you can find in table TRMAC.
For RP-READ-INFOTYPE is definition as follows:
RP-READ-INFOTYPE 001 ****************************************
RP-READ-INFOTYPE 002 * RP-READ-INFOTYPE *
RP-READ-INFOTYPE 003 ****************************************
RP-READ-INFOTYPE 004 * PARAMETERS: *
RP-READ-INFOTYPE 005 * PERNR REQUESTED PERSONALNUMBER*
RP-READ-INFOTYPE 006 * INFTY REQUESTED INFOTYPNUMBER *
RP-READ-INFOTYPE 007 * INFTY-TABLE OUTPUT-TABLE LIKE PNNNN*
RP-READ-INFOTYPE 008 * BEGDA REQUESTED INTERVAL-BEGIN*
RP-READ-INFOTYPE 009 * ENDDA REQUESTED INTERVAL-END *
RP-READ-INFOTYPE 010 ****************************************
RP-READ-INFOTYPE 011 *SET DEBUGGING INTERRUPT ON *
RP-READ-INFOTYPE 012 PERFORM READ-INFOTYPE(SAPDBPNP) *
RP-READ-INFOTYPE 013 TABLES &3 *
RP-READ-INFOTYPE 014 USING &1 '&2' &4 &5
RP-READ-INFOTYPE 015 *SET DEBUGGING INTERRUPT OFF *
It means that the macro is performing read-infotype which is defined in include DBPNPF03 of the SAPDBPNP. -
hi friends.
Here i got a requirement on User-exit.For validating the current entry I should retrieve the preceding as well as later records(if there).
In this one I want to use macros in the process of validation.
But here No LDB was used.
Please, can Any one guide me on this requirement.
Is there any include program which was holding the defination for macro.
Thanks in advance.
Regards,
Chandra.Hi Chandhu,
I'm not sure that you can use the Macro's without the LDB, here is the
include you are looking for.
include dbpnpcef001. "forms implementing macros
It is much easier to create the program using the PNPCE LDB attribute,
which then gives you access to all of the Marco's as well as other
functionality for HR programming.
You need to use the Logical Database PNP to use this macro. I would also
suggest that you replace the '-' with '_'. RP_PROVIDE_FROM_LAST.
TRMAC .
The RP_PROVIDE_FROM_LAST macro retrieves the last valid data recordin the data selection period.
The macro returns code .PNP-SW-FOUND has the value 1 , if the suitableentry exists in the infotype table for the specified period . If noentry is found , the value is 0.
thanks
abdul
reward me points if usefull -
Need example report program using PNPCE LDB in SAP HR
Need example report program using PNPCE LDB in SAP HR.
and how to create a report category in sap hr for using it as cutomised selection screen.Hi,
Go through the following links, i hope it will help you.....
/people/alvaro.tejadagalindo/blog/2006/02/19/how-to-deal-with-hr-payroll-reports
http://sap.ittoolbox.com/groups/technical-functional/sap-r3-dev/893908#
A sample prog with LDB PNP
*& Report ZH_REPT_PAYMENT *
report zh_rept_payment line-size 80 no standard page
heading.
tables: pernr, " Standard Selections for HR Master Data Reporting
pcl1, " HR Cluster 1
pcl2, " HR Cluster 2
pa0009,
PA9001,
PA9006,
pa0002,
pc260 , " Cluster Directory for Payroll Results
bnka .
Infotypes
infotypes: 0001. " Organizational Assignment
Declaration of Internal Tables
data : bnka1 like bnka occurs 0 with header line .
data: begin of t_int_rep occurs 100,
bankl like pc209-bankl, " Bank Number
zlsch like pc209-zlsch, " Payment method
pernr like pernr-pernr, " Employee Number
ename like pernr-ename, " Employee Name
bankn like pc209-bankn, " Bank Account Number
betrg like pc209-betrg, " Amount to be transfered
zweck like pa0009-zweck, " Purpose
end of t_int_rep.
data: begin of int_rep occurs 100,
bankl like pc209-bankl, " Bank Number
zlsch like pc209-zlsch, " Payment method
pernr like pernr-pernr, " Employee Number
ename like pernr-ename, " Employee Name
bankn like pc209-bankn, " Bank Account Number
betrg like pc209-betrg, " Amount to be transfered
zweck like pa0009-zweck, " Purpose
begda like pa0009-begda, "Begin date
end of int_rep.
Declaration of Data Variables
data: ws_betrg like pc209-betrg, " BT Amount
w_val like spell occurs 0 with header line,
int_rep1(6), " TYPE I, " Employee Number
cnt type i value 0, " Counter
calcmolga like t500l-molga value '40', " Country Grouping
v_id(15),
calc_currency like t001-waers value 'INR'. " Currency
data : ctr type i,
dt_merge like pa0009-begda.
data: ws_totemp(6) type c,
ws_totamt(20) type c,
r_mth(9) type c,
ws_fpbeg(6) type c,
ws_fpend(6) type c,
ws_mthyr(6) type c,
ws_mthyr_r(14) type c,
r_mth_t(3) type c,
ws_amt(8) type c,
ws_bankl(14) type c,
ws_date(6) type c,
amount_word(500),
total_page type i,
pages type i,
remain type i.
data begin of i_spell.
include structure spell .
data end of i_spell .
data : c_molga type t500l-molga value '40',
c_banks type bnka-banks value 'IN'.
Standard Includes
include rpc2cd09. "Cluster CD data definition
include pc2rxin0.
include rpc2rx09.
include rpppxd00. " Data Definition buffer PCL1/PCL2
include rpppxd10. " Common Part buffer PCL1/PCL2
include rpppxm00. " Buffer Handling RoutinePCL1/PCL2
include zrpc2rox2. " Data Definition POCLSTERS (not J,K,U)
Selection Screen
selection-screen begin of block b1 with frame title text-001.
parameter: pa_mth(2) type c default sy-datum+4(2) obligatory,
pa_year(4) type c default sy-datum(4) obligatory,
p_bankl like pc209-bankl, " Bank Number
p_zlsch like pc209-zlsch. " Payment method
selection-screen end of block b1.
save_calc_currency = calc_currency.
count_top = 0.
get_pernr_flag = 0.
Top-Of-Page
top-of-page.
perform convert_month using pa_mth(2) r_mth.
ws_mthyr_r = r_mth.
concatenate ws_mthyr_r pa_year into ws_mthyr_r separated by space.
SKIP 5.
skip 1.
skip 4.
if int_rep-bankl eq ' '.
if int_rep-zlsch eq 'C' or int_rep-zlsch eq 'E' or
int_rep-zlsch eq ' '.
write: /1(85) 'CHEQUE PAYMENT STATEMENT'(047) centered.
elseif int_rep-zlsch eq 'L'.
write: /1(85) 'DEMAND DRAFT STATEMENT'(047) centered.
endif.
else.
write: /1(85) 'BANK TRANSFER STATEMENT'(002) centered.
endif.
skip.
write: /34 ws_mthyr_r,
62 'Page :'(008),69(2) sy-pagno intensified off,
' Of ',78(2) pages intensified off.
clear pages.
read table bnka1 with key bankl = int_rep-bankl .
if sy-subrc = 0.
if int_rep-zlsch eq 'T'.
write:/03(10) 'Bank Name : ', bnka1-banka.
write:/03(10) 'Branch : ', bnka1-brnch.
write:/03(10) 'Address : ', bnka1-stras.
endif.
endif.
skip.
write:/1(80) sy-uline.
write: /1 sy-vline, 2(5) 'Sl.No'(002),
7 sy-vline, 8(8) 'Emp.No.'(003),
16 sy-vline,17(35) 'Employee Name'(004).
*--added for Demand Draft
if ( int_rep-zlsch = 'l' or int_rep-zlsch = 'L' ).
write : 47 sy-vline, 48(15) 'Payable at'(005).
else.
write : 47 sy-vline,48(15) 'Account No.'(005).
endif.
write: 63 sy-vline,64(16) 'Amount'(006),
80 sy-vline.
write:/1(80) sy-uline.
end-of-page.
write:/1(80) sy-uline.
write:/2 'Printed on ', sy-datum.
Start-of-selection.
start-of-selection.
*perform h_headr.
ctr = 0.
set margin 5.
call function 'RP_GET_CURRENCY'
exporting
molga = calcmolga
importing
waers = calc_currency
exceptions
others.
if sy-subrc ne 0.
calc_currency = 'DEM'.
calc_currency = save_calc_currency.
endif.
get pernr.
cd-key-pernr = pernr-pernr.
perform import_cluster.
get_pernr_flag = 1.
check : ocd-version-molga eq calcmolga.
The table 'tabpernr' is filled with the personnel numbers
and is used after selection is finished.
move-corresponding pernr to tabpernr.
append tabpernr.
The table 'tab_rgdir' is filled
loop at rgdir.
rx-key-pernr = pernr-pernr.
unpack rgdir-seqnr to rx-key-seqno.
perform int_tab. "fill tab_rgdir
perform import_bt.
perform validate.
endloop.
End of Selection
end-of-selection.
*perform h_headr.
perform convert_date_a using pa_mth r_mth_t.
sort int_rep by bankl zlsch pernr betrg descending.
delete adjacent duplicates from int_rep
comparing bankl zlsch pernr .
sort int_rep by bankl zlsch bankn . "PERNR.
loop at int_rep.
at new bankl.
select single * into bnka1 from bnka
where banks = c_banks and
bankl = int_rep-bankl .
append bnka1.
clear bnka1.
endat.
endloop.
for Demand Draft - purpose added
loop at int_rep.
concatenate pa_year(4) pa_mth(2) '01' into dt_merge.
select single * "zweck into int_rep-zweck
from pa0009 where
pernr = int_rep-pernr and
bankl = int_rep-bankl and
zlsch = int_rep-zlsch
and begda <= dt_merge and
endda >= dt_merge .
if sy-subrc = 0.
int_rep-zweck = pa0009-zweck.
modify int_rep.
endif.
endloop.
*-for DD and Chq sorted by PAyable at and EMPNO wise
if p_zlsch = 'T' .
sort int_rep by bankl zlsch bankn . "PERNR.
else. "added for "payable at" for DD/Chq
else.
sort int_rep by zweck pernr . "PERNR.
endif.
*delete adjacent duplicates from int_rep.
t_int_rep] = int_rep[.
loop at int_rep.
*-for page of page no.
total_page = 0.
loop at t_int_rep where bankl = int_rep-bankl
and zlsch = int_rep-zlsch.
total_page = total_page + 1.
endloop.
pages = total_page div 25.
remain = total_page mod 25.
comment bcoz its adding one extra page no.
done as on 29/11/2004
if remain > 0.
pages = pages + 1.
endif.
**-end
at new bankl.
ctr = 0 .
new-page.
endat.
at new zlsch.
ctr = 0 .
new-page.
endat.
clear v_id.
select single natio
into pa0002-natio
from pa0002
where pernr eq int_rep-pernr.
*-testing......for soma
if ctr > 24.
ctr = 0 .
write:/1(80) sy-uline.
new-page .
endif.
ctr = ctr + 1 .
cnt = cnt + 1.
pack int_rep-pernr to int_rep1.
write:/1 sy-vline, 2(3) cnt intensified off,
7 sy-vline, 9(6) int_rep1 intensified off,
16 sy-vline,17(35) int_rep-ename intensified off .
if ( int_rep-zlsch = 'l' or int_rep-zlsch = 'L' ).
write : 47 sy-vline,48(15) int_rep-zweck intensified off.
else.
write:
47 sy-vline,48(15) int_rep-bankn intensified off .
endif.
write: 63 sy-vline,64(16) int_rep-betrg
intensified off currency 'INR',
80 sy-vline.
ws_betrg = ws_betrg + int_rep-betrg.
*-testing......for soma
skip.
write :
/1 sy-vline, 7 sy-vline ,16 sy-vline ,47 sy-vline,63 sy-vline,80
sy-vline .
*-end testing......for soma
at end of zlsch.
if int_rep-bankl = ' '.
call function 'HR_IN_CHG_INR_WRDS'
exporting
amt_in_num = ws_betrg
importing
amt_in_words = amount_word
EXCEPTIONS
DATA_TYPE_MISMATCH = 1
OTHERS = 2
w_val-word = amount_word.
concatenate 'INR.' w_val-word into w_val-word
separated by space.
write:/1(80) sy-uline.
write: /1 sy-vline, 7 'Total transfer:'(009),
64(16) ws_betrg intensified off currency 'INR',
80 sy-vline.
write:/1(80) sy-uline.
write: /1 sy-vline, 3 w_val-word+0(76) intensified off,
80 sy-vline.
write :/1 sy-vline, 10 w_val-word+76(70) intensified off,
80 sy-vline.
write:/1(80) sy-uline.
clear: ws_betrg,cnt.
skip 2.
write: /2 'Prepared by :'(010), '_______________'(013),
45 'Checked by :'(011),'_______________'(013).
skip 2.
write: /2 'Printed On ', sy-datum,
45 'Approved by :'(012),'_______________'(013).
clear sy-pagno.
endif.
endat.
at end of bankl.
if int_rep-bankl ' '.
call function 'HR_IN_CHG_INR_WRDS'
exporting
amt_in_num = ws_betrg
importing
amt_in_words = amount_word
EXCEPTIONS
DATA_TYPE_MISMATCH = 1
OTHERS = 2
w_val-word = amount_word.
concatenate 'INR.' w_val-word into w_val-word
separated by space.
write:/1(80) sy-uline.
write: /1 sy-vline, 7 'Total transfer:'(009),
64(16) ws_betrg intensified off currency 'INR',
80 sy-vline.
write:/1(80) sy-uline.
write: /1 sy-vline, 3 w_val-word+0(76) intensified off,
80 sy-vline.
write :/1 sy-vline, 10 w_val-word+76(70) intensified off,
80 sy-vline.
write:/1(80) sy-uline.
clear: ws_betrg,cnt.
skip 2.
write: /2 'Prepared by :'(010), '_______________'(013),
45 'Checked by :'(011),'_______________'(013).
skip 2.
write: /2 'Printed on ', sy-datum,
45 'Approved by :'(012),'_______________'(013).
clear sy-pagno.
NEW-PAGE.
endif.
endat.
endloop.
End of Page
end-of-page.
write: /2 'Prepared by :'(010), '_______________',
45 'Checked by :'(011),'_______________'.
*& Form IMPORT_CLUSTER
Importing Data from Cluster *
form import_cluster.
sy-subrc = 0.
rp-imp-c2-cd.
if sy-subrc eq 0.
if cd-version-number ne ocd-version-number.
endif.
endif. " SY-SUBRC EQ 0
endform. " IMPORT_CLUSTER
*& Form INT_TAB
Filling internal table tab_rgdir form int_tab.
*Fill internal table tab_rgdir.
move-corresponding rgdir to tab_rgdir.
tab_rgdir-pernr = pernr-pernr.
append tab_rgdir.
endform. " INT_TAB
*& Form IMPORT_bt
Import Values from Bank Transactions Table (BT) form import_bt.
rp-init-buffer.
RP-IMP-C2-RX.
rp-imp-c2-in.
if rp-imp-in-subrc eq 0.
if in-version-number ne oin-version-number.
write: / 'Schlüssel des Clusters RX:'(015),
rx-key-pernr, rx-key-seqno.
write: / 'The imported version of the cluster'(016), 'RX',
'is not current'(017).
write: / 'Imported version :'(018),
oin-version-number.
write: / 'Current version of cluster :'(019),
in-version-number.
stop.
else.
sy-subrc = 0.
endif.
else.
sy-subrc = 8.
write: /
'Inconsistencies between cluster directory and directory for'(020).
write: /
'No payroll results found for data in cluster directory'(021).
write : /
'Please contact hotline to solve the current problem'(022).
endif.
ws_fpbeg(2) = versc-fpbeg+4(2).
ws_fpbeg+2(4) = versc-fpbeg(4).
ws_fpend(2) = versc-fpend+4(2).
ws_fpend+2(4) = versc-fpend(4).
ws_mthyr(2) = pa_mth.
ws_mthyr+2(4) = pa_year.
check ws_mthyr = ws_fpbeg.
check ws_mthyr = ws_fpend.
loop at bt. "from pc209
int_rep-pernr = pernr-pernr.
int_rep-ename = pernr-ename.
int_rep-bankl = bt-bankl.
int_rep-bankn = bt-bankn.
int_rep-betrg = bt-betrg.
int_rep-zlsch = bt-zlsch.
append int_rep.
endloop.
IF P_BANKL ' ' AND P_ZLSCH ' '.
DELETE INT_REP WHERE BANKL P_BANKL.
ELSEIF P_BANKL = ' ' AND P_ZLSCH ' '.
DELETE INT_REP WHERE ZLSCH P_ZLSCH.
ELSEIF P_BANKL ' ' AND P_ZLSCH = ' '.
DELETE INT_REP WHERE BANKL P_BANKL.
ENDIF.
endform. " IMPORT_BT
*& Form CONVERT_MONTH
Fetching Month Text form convert_month using mth t_mth.
case mth.
when '01'.
t_mth = 'January'(023).
when '02'.
t_mth = 'February'(024).
when '03'.
t_mth = 'March'(025).
when '04'.
t_mth = 'April'(026).
when '05'.
t_mth = 'May'(027).
when '06'.
t_mth = 'June'(028).
when '07'.
t_mth = 'July'(029).
when '08'.
t_mth = 'August'(030).
when '09'.
t_mth = 'September'(031).
when '10'.
t_mth = 'October'(032).
when '11'.
t_mth = 'November'(033).
when '12'.
t_mth = 'December'(034).
endcase.
endform. " CONVERT_MONTH
*& Form CONVERT_DATE_A
Fetching Month Text * form convert_date_a using mth_t t_mth_t.
case mth_t.
when '01'.
t_mth_t = 'Jan.'(035).
when '02'.
t_mth_t = 'Feb.'(036).
when '03'.
t_mth_t = 'Mar.'(037).
when '04'.
t_mth_t = 'Apr.'(038).
when '05'.
t_mth_t = 'May.'(039).
when '06'.
t_mth_t = 'Jun.'(040).
when '07'.
t_mth_t = 'Jul.'(041).
when '08'.
t_mth_t = 'Aug.'(042).
when '09'.
t_mth_t = 'Sep.'(043).
when '10'.
t_mth_t = 'Oct.'(044).
when '11'.
t_mth_t = 'Nov.'(045).
when '12'.
t_mth_t = 'Dec.'(046).
endcase.
endform. " CONVERT_DATE_A
*& Form VALIDATE
text
--> p1 text
<-- p2 text form validate .
if p_bankl <> ' ' and p_zlsch ' '.
delete int_rep where bankl p_bankl.
elseif p_bankl = ' ' and p_zlsch ' '.
delete int_rep where zlsch p_zlsch.
elseif p_bankl ' ' and p_zlsch = ' '.
delete int_rep where bankl p_bankl.
endif.
endform. " VALIDATE
check this weblog.....
/people/dj.adams/blog/2003/11/13/food-for-thought-ldbs-and-abap-objects
Also , check the following link too.
http://www.datamanagementgroup.com/Resources/Articles/Article_1005_2.asp
Regards,
Harish -
Get data from PNPCE LDB in ABAP hr
Hi all,
I am workng on ABAP Hr.In it I am using PNPCE LDB, when I
use GET PERNR statement it don't give any syntax problem but the selection screen does not generate due to GET PERNR statement.
Is there any Other statement to find the PERNR.
Points will be sured for valuable answers.
Thanks
Sanket sethiA report that wants to use the PNPCE must enter this in its report attributes under Logical database.
In addition, the PERNR structure must be declared in the report using the 'TABLES PERNR' statement. You can only use the PERNR structure again in certain circumstances. The use of the 'GET PERNR' event is therefore forbidden. Instead, use the 'GET PERAS' event. Except for the PERNR-PERNR component, all other components of the PERNR structure are no longer filled and have initial values. This kind of programming (with the exception of PERNR-PERNR) therefore not permitted.
In addition to the 'GET PERAS' event, you can also use the GET PERSON' and 'GET GROUP' events. To be able to use these events, you must declare them using the NODES statement (NODES PERSON', 'NODES GROUP', or. NODES PERAS'.LdB's for HR are as follows:
PA----
PNP
Payroll----
PNPCE
Recruitment -
PAP
Orgmanagement -
PCH
PA report Example in attrubutes u have to add LDB is PNPCE
REPORT ZHR_TEST.
Type-Pools *
TYPE-POOLS : slis.
Nodes *
NODES: person,group,peras.
Tables *
TABLES: pernr,t512w,tfkbt,pa0022,pa0016,bkpf.
Infotypes *
INFOTYPES : 0000, "Actions
0001, "Org Details
0022, "Education Details
0041, "Date Specification
0002, "Personal Details
0016.
Internal Tables *
DATA :BEGIN OF t_output OCCURS 0,
pernr TYPE pernr_d, " Personnel No.
ename TYPE emnam, " Employee Name
btrtl TYPE btrtl, "Personnel Subarea
btext TYPE btext, "Personnel Subarea Text
persk TYPE persk, "Grade
ptext TYPE pktxt, "gradeText
END OF t_output.
DATA: t_fcat TYPE slis_t_fieldcat_alv.
ALV Variable
DATA : w_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
Event : GET Pernr *
GET peras.
PERFORM read_data. "Data Selection
Event : End-Of-Selection *
END-OF-SELECTION.
PERFORM f_addcat. "Field Cat
PERFORM f_display. "Display
*& Form read_data
FORM read_data.
*Organizational Assignment
rp_provide_from_last p0001 space pn-begda pn-endda.
IF pnp-sw-found EQ 1.
t_output-pernr = p0001-pernr.
t_output-ename = p0001-ename.
t_output-btrtl = p0001-btrtl.
t_output-persk = p0001-persk.
*Personal sub area text
SELECT SINGLE btext FROM t001p
INTO t_output-btext
WHERE btrtl = t_output-btrtl.
*Grade text
SELECT SINGLE ptext FROM t503t
INTO t_output-ptext
WHERE persk = t_output-persk AND
sprsl = 'EN'.
ENDIF.
APPEND t_output.
CLEAR t_output.
ENDFORM. "
*& Form f_addcat
FORM f_addcat .
*************Filling field catelog here.**************
*& Form f_display
FORM f_display.
*Local Variable
DATA : lv_repid LIKE sy-repid,
ls_layout TYPE slis_layout_alv.
lv_repid = sy-repid.
ls_layout-zebra = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = lv_repid
is_layout = ls_layout
it_fieldcat = t_fcat
i_save = 'A'
TABLES
t_outtab = t_output
EXCEPTIONS
program_error = 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.
ENDFORM. " f_display -
HR ABAP - (PNPCE - LDB)
hi,
I am using PNPCE-LDB, I want the selection screen o/p as like PNP(selection screen). guide me on this.Hi rajesh,
1. If u want your own screen,
then just don't define
TABLES : PERNR.
(no default screen of the ldb will come)
2.
report abc.
parameters : a type c.
regards,
amit m. -
Hi all,
I am workng on ABAP Hr.In it I am using PNPCE LDB, when I
use GET PERNR statement it don't give any syntax problem but the selection screen does not generate due to GET PERNR statement.
Is there any Other statement to find the PERNR.
Points will be sured for valuable answers.
Thanks
Sanket sethiIn addition, the PERNR structure must be declared in the report using the 'TABLES PERNR' statement. You can only use the PERNR structure again in certain circumstances. The use of the 'GET PERNR' event is therefore forbidden. Instead, use the 'GET PERAS' event. Except for the PERNR-PERNR component, all other components of the PERNR structure are no longer filled and have initial values.
In addition to the 'GET PERAS' event, you can also use the 'GET PERSON' and 'GET GROUP' events. To be able to use these events, you must declare them using the NODES statement ('NODES PERSON', 'NODES GROUP', or 'NODES PERAS'). -
BI: PNPCE LDB extractor - cant specify begda & endda
Hi,
I tried to create extractor using PNPCE LDB to retrieve wages, but the problem is that I cant change decision date for LDB.
It is always set up for sy-datum and I cant change it to another interval.
Can you tell me where is the problem?
thanx
Juraj -
Looping payroll results using pnpce ldb
hii experts,
Can anybody tell me how can v loop payroll results using pnpce ldb..plz provide me the syntax...or any reference report
program.Hi First Using Get peras event read the RGDIR results as below
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = p_pernr
IMPORTING
molga = p_molga
TABLES
in_rgdir = p_rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
Get the Cluster ID based on the molga value of the employee using T5001 table
Then Based on the RGDIR results loop retrive the payroll results below
LOOP AT gt_rgdir INTO wa_rgdir WHERE fpbeg LE wa_dates-endda AND fpend GE wa_dates-endda
AND srtza EQ c_a
AND payty EQ c_space.
CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
EXPORTING
clusterid = wa_t500l-relid
employeenumber = pernr-pernr
sequencenumber = wa_rgdir-seqnr
read_only_international = 'X'
CHANGING
payroll_result = gt_result
EXCEPTIONS
illegal_isocode_or_clusterid = 1
error_generating_import = 2
import_mismatch_error = 3
subpool_dir_full = 4
no_read_authority = 5
no_record_found = 6
versions_do_not_match = 7
error_reading_archive = 8
error_reading_relid = 9
OTHERS = 10. -
Hi,
I am using PNPCE LDB for one Report.
I am giving PERSONID(central personnumber) in selection screen then i am getting correct output.
When i dont give input in selection screen then need to select total data means total PERSONID's .
But i am not getting that.
Is there any problem behind that?
Can you please provide some inputs on this
Thanks in Advance
Regards
SandeepWe are using HR-Report category PNPCEALL which includes all selection criteria. We had a varient for which reporting period is all and employee status is active. When we r giving direct single Personid we r getting otput which is included in this varient. But when we r not giving any personid i.e it should work for all pernrs. But its not happening.
-
Rp_read_infotype macro wid LDB PNPCE ( Strange results )
Hi Guys,
Im working on LDB PNPCE. I was writing a report my requirement is to read all the records from 0001 and 0008, I used the macro rp_read_infotype
Well Here is the sample code what Im trying to do ..
start-of-selection.
get peras.
lc_pernr = peras-pernr.
rp_read_infotype lc_pernr 0001 t_0001 '20000601' '99991231'.
rp_read_infotype lc_pernr 0008 t_0008 '20000601' '99991231'.
write:/ 'WHy?'.
Now the funny thing with above code is that, if Im passing the same parameter like Im passing for 0008. It just getting 1 result, ( as it has 4 records in pa0001 ) ,
But in IT0008 its giving the all of 6 records .
Then I change the code , because if you select today on PNPCE selection screen it always take todays date no matter what you are passing . But its only behaving like that
for IT0001.
Then I change the code like
lc_pernr = peras-pernr.
rp_read_infotype lc_pernr 0001 t_0001 pn-begda pn-enda.
rp_read_infotype lc_pernr 0008 t_0008 '20000601' '99991231'.
Its working fine for both in this case , but just notice my macro for it0008 is still the same . its still giving the same records , Even I select ALL , DAY or period on selection screen .
My understanding is that for IT0001 it always retrieves current record where as for other infotypes it reads all records and considers passing parameters like I am doing for IT0008.
Now this is very wired behavior for this macro for PNPCE. I have checked the OSS notes , Therere few OSS note which talks about this . But we are on SAPKE47052 support pack .
That OSS notes are already in placed . Is any body out there also facing the same problem if no try to code in this way and see are you also facing the same problem . Then I should better post OSS message .
Thanks a lot!!
Saquib Khan
"Knowledge comes but wisdom lingers!!"
"Some are wise and some are otherwise"Well I read in PNPCE Documentation and my requirement is to read specific period .
<u><b>FYI</b></u>
<b>Reading Infotypes: RP_READ_INFOTYPE</b>
The RP_READ_INFOTYPE macro reads the data records of an infotype for the specified personnel numbers that are valid in the specified period, and writes these to the internal table specified. This table must be completed correctly. If no data records exist in the specified period, the PNP-SW-FOUND global switch is set to 0. Otherwise it has the value 1. In addition, an authorization check is performed for all data records. If no authorization exists for a data record, this data record is rejected (that is, it is not placed in the internal table). If data records are rejected because of missing authorization, the PNP-SW-AUTH-SKIPPED-RECORD global switch is set to 1. This switch is otherwise set to 0. The PNP-SW-IGNORELOCKEDRECORDS switch is also taken account of when the data records are read and controls whether locked data records are read or not.
Normally, infotypes are read using the HR_READ_INFOTYPE function module. The RP_READ_INFOTYPE macro can improve performance when the data records have already been read by PNPCE and are in the internal buffer. PNPCE only read the data records that were requested by the report using the INFOTYPES statement. In addition, the buffer is deleted again at the latest after 100 processed personnel numbers. If however the report requests the data records using an INFOTYPES statement, it is not particularly meaningful to request the data records again for the same personnel number using the RP_READ_INFOTYPE macro. The buffer is only useful when the data records are called for a different personnel number if these personnel numbers belong to the block of the 100 current buffered personnel numbers. Always weigh up the advantages of this macro against the consequences of its use for performance
Thanks
SK -
Hi,
I am currently working on a program that uses PNP LDB.I want to use PNPCE instead of PNP in order to improve the performance of the program.
Will the macros defined in the current program for PNP work for PNPCE also?If not then how can I get the macros for the same functionality for PNPCE?
When I tried to change PNP to PNPCE, but made no changes to the macros, then I got an error that "space" is not recognized.Could you please help me understand how to solve the problem?
Thanks.
Sandeep.Hi,
pelase go to transaction SE36
enter PNPCE as LDB
Read the available documentation.
Macros in PNCE must be written with _ instead of -.
And if you only want to have the new features like better selection screen but you do not need CE, let your report run in PNP-mode (more details in the documentation)
Kind regards,
Michael -
How to create report category for PNPCE ldb in ECC 6.0
Hi Experts,
How to create report category for the LDB pnpce in ECC6.0
Thanks in Advance,
Regards,
IFFSelf-Answered.
-
PNPCE LDB search help shows all action types?
Hi All!
I use pnpce in my program. Want to select all vacations in 302 infotype.
By "search help" button i use "HR Master Record: Infotype 0302 (Additional Actions)" sh.
P* structures (such p0298, p0302) filles up with ALL "Action types" - not only with "V7" which i specified.
Tell me pls why?
Thanks fo ideas!!
Edited by: Julius Bussche on Dec 29, 2008 11:01 AMHi,
I understood from the qn that you have used PNPCE as LDB.You want to select some specific action from F4 help in input.That is not getting populated.
Sometimes, entry might be restricted for hits.After pressing F4, make the maximum no. of hits as blank.
Maybe you are looking for
-
How can we handle for canceling the deal in XTR
Hi gurus, how do you cancel or void the deal in XTR? I found the following documents that is mentioned that current XTR does not have any functions about canceling and voiding. - Bug:3380134 POSCO: POSSIBILITY TO CANCEL AFTER BUYING STOCK AND BONDS -
-
Problem with sap start Up datbase
Dear Experts, As we are using ecc 5.0 on oracle databse and os as Hp-UX .As our development server got down for some reasons and i tried to start up.as it is saying Database is unavailable .as i tried to open database it is up.and i tried to start sa
-
Flash Professional 8 English download for MAC
Hi, I am trying to download the English version of the "flash professional 8" trial program for "MAC" but when I press download, nothing happens. I can install the french version and currently am testing the french version, however I am not fluent in
-
Need help creating a specific report
I am trying to create a specific report but to-date can not get it to work the way I want it to. I am trying to create a report that does the following: - lists all my groups I have - if the group has not registered a meeting in a specific week then
-
60GB iPod Photo Not Syncing/Connecting/Showing (New March 2005)
I have an 4G iPod photo that has worked flawlessly until one morning it stopped syncing. That is, showing up at all on the desktop. I have a Dual G5 Rev A PowerMac. No connection via FireWire 800, 400, or USB 2.0. It shows up once every 20 to 50 trie