Skip to Content
0
Former Member
Dec 25, 2007 at 06:27 AM

ABAP HR

207 Views

Hi all

am doing a sample prgram in ABAP HR which is the ZP_POSTCODE that i got in the net when i copied and pasted it i got an error like

"PERNR is not a node of the logixcal database __S".

Am also putting the code below.please help.

Vijay

&----


*& Report ZP_POSTCODE

*&

&----


*&

*&

&----


REPORT ZP_POSTCODE.

type-pools: slis. "ALV Declarations

NODES: pernr.

INFOTYPES: 0000, 0001, 0002, 0006, 0008, 0014, 0105, 0121.

SELECTION-SCREEN BEGIN OF BLOCK pcode WITH FRAME TITLE text-s01.

SELECT-OPTIONS: so_pcode FOR p0006-pstlz.

SELECTION-SCREEN END OF BLOCK pcode.

TYPES: BEGIN OF t_output,

pernr TYPE p0001-pernr, "personnel name

anredtxt TYPE t522t-atext, "title (based on p0002-anred)

fname TYPE p0002-vorna, "first name

lname TYPE p0002-nachn, "last name

orgtx TYPE t527x-orgtx, "dept

fte TYPE p0008-bsgrd, "fte

parking(20) TYPE c,

payslip TYPE t526-sachn, "payslip address

telno TYPE p0105-usrid_long, "tel number(p0105-usrty = 0020)

email TYPE p0105-usrid_long, "email (p0105-usrty = MAIL)

postcode type p0006-pstlz,

END OF t_output.

DATA: it_output TYPE STANDARD TABLE OF t_output INITIAL SIZE 0,

wa_output TYPE t_output.

*ALV data declarations

data: fieldcatalog type slis_t_fieldcat_alv with header line,

gd_tab_group type slis_t_sp_group_alv,

gd_layout type slis_layout_alv,

gd_repid like sy-repid,

gt_events type slis_t_event,

gd_prntparams type slis_print_alv,

gd_count(6) type n,

gd_outtext(70) type c,

gd_lines type i.

*START-OF-SELECTION.

START-OF-SELECTION.

clear: gd_count.

GET pernr.

  • Infotype 0121 is used to store multiple contracts for personnel.

  • Field p0121-hpern contains the personnel number for the main contract.

PROVIDE * from p0121 between pn-begda and pn-endda.

  • Check if main contract

if p0121-pernr ne p0121-hpern.

reject.

endif.

ENDPROVIDE.

add 1 to gd_count.

concatenate 'Processing personnel data'(m10) gd_count into gd_outtext

separated by ' '.

  • Display indicator for employee count

perform progress_indicator using gd_outtext.

  • Retrieve datd from infotypes

rp_provide_from_last p0000 space pn-begda pn-endda.

rp_provide_from_last p0001 space pn-begda pn-endda.

rp_provide_from_last p0002 space pn-begda pn-endda.

rp_provide_from_last p0006 space pn-begda pn-endda.

rp_provide_from_last p0008 space pn-begda pn-endda.

rp_provide_from_last p0014 space pn-begda pn-endda.

  • Check post code

CHECK p0006-pstlz IN so_pcode. "cp

  • Post code

wa_output-postcode = p0006-pstlz.

  • Personnel number

wa_output-pernr = pernr-pernr.

  • Personnel title

SELECT SINGLE atext

FROM t522t

INTO wa_output-anredtxt

WHERE sprsl EQ sy-langu AND

anred EQ p0002-anred.

  • First name

wa_output-fname = p0002-vorna.

  • Last name

wa_output-lname = p0002-nachn.

  • Organizational Unit text (dept)

SELECT SINGLE orgtx

FROM t527x

INTO wa_output-orgtx

WHERE sprsl EQ sy-langu AND

orgeh EQ p0001-orgeh AND

endda GE sy-datum.

  • FTE

wa_output-fte = p0008-bsgrd.

  • Parking / travel deducted?

CASE p0014-lgart.

WHEN '7180' OR '7181' OR '7182'.

wa_output-parking = text-002.

WHEN '7183'.

wa_output-parking = text-001.

WHEN '7171' OR '7172' or '7173' or '7174' or

'7175' or '7176' or '7177' or '7178'.

wa_output-parking = text-003.

ENDCASE.

  • Payslip Address

SELECT SINGLE sachn

FROM t526

INTO wa_output-payslip

WHERE werks EQ p0001-werks AND

sachx EQ p0001-sacha.

PROVIDE * from p0105 between pn-begda and pn-endda.

  • Telephone numbers

if p0105-usrty = '0020'.

wa_output-telno = p0105-usrid_long.

endif.

  • Email address

if p0105-usrty = 'MAIL'.

wa_output-email = p0105-usrid_long.

endif.

ENDPROVIDE.

append wa_output to it_output.

clear: wa_output.

*END-OF-SELECTION.

END-OF-SELECTION.

describe table it_output lines gd_lines.

if gd_lines gt 0.

perform build_fieldcatalog.

perform build_layout.

perform display_alv_report.

else.

message i003(zp) with 'No records found'.

endif.

&----


*& Form PROGRESS_INDICATOR

&----


  • Displays progress indicator on SAP screen

----


form progress_indicator using p_text.

call function 'SAPGUI_PROGRESS_INDICATOR'

exporting

  • PERCENTAGE = 0

text = p_text.

endform. " PROGRESS_INDICATOR

&----


*& Form BUILD_FIELDCATALOG

&----


  • Build Fieldcatalog for ALV Report

----


form build_fieldcatalog.

fieldcatalog-fieldname = 'PERNR'.

fieldcatalog-seltext_m = 'Personnel No.'.

fieldcatalog-col_pos = 0.

fieldcatalog-outputlen = 10.

  • fieldcatalog-emphasize = 'X'.

  • fieldcatalog-key = 'X'.

  • fieldcatalog-do_sum = 'X'.

  • fieldcatalog-no_zero = 'X'.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'ANREDTXT'.

fieldcatalog-seltext_m = 'Title'.

fieldcatalog-col_pos = 1.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'FNAME'.

fieldcatalog-seltext_m = 'First Name'.

fieldcatalog-col_pos = 2.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'LNAME'.

fieldcatalog-seltext_m = 'Last Name'.

fieldcatalog-col_pos = 3.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'ORGTX'.

fieldcatalog-seltext_m = 'Department'.

fieldcatalog-col_pos = 4.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'FTE'.

fieldcatalog-seltext_m = 'FTE'.

fieldcatalog-col_pos = 5.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'PARKING'.

fieldcatalog-seltext_m = 'Parking/Metrocard'.

fieldcatalog-col_pos = 6.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'PAYSLIP'.

fieldcatalog-seltext_m = 'Payslip Add.'.

fieldcatalog-col_pos = 7.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'TELNO'.

fieldcatalog-seltext_m = 'Telephone'.

fieldcatalog-col_pos = 8.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'EMAIL'.

fieldcatalog-seltext_m = 'E-mail'.

fieldcatalog-col_pos = 9.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'POSTCODE'.

fieldcatalog-seltext_m = 'Post code'.

fieldcatalog-col_pos = 10.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

endform. " BUILD_FIELDCATALOG

&----


*& Form BUILD_LAYOUT

&----


  • Build layout for ALV grid report

----


form build_layout.

gd_layout-no_input = 'X'.

gd_layout-colwidth_optimize = 'X'.

gd_layout-totals_text = 'Totals'(201).

gd_layout-zebra = 'X'.

endform. " BUILD_LAYOUT

&----


*& Form DISPLAY_ALV_REPORT

&----


  • Display report using ALV grid

----


form display_alv_report.

gd_repid = sy-repid.

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = gd_repid

is_layout = gd_layout

it_fieldcat = fieldcatalog[]

i_save = 'X'

tables

t_outtab = it_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. " DISPLAY_ALV_REPORT