Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Logical Database - ABAP Report

Former Member
0 Likes
1,080

How Do Everyone!

I wrote an ABAP report many moons ago and it has now come back to haunt me!

Basically, it is using the logical database PCH (Personnel planning) and it

produces an ALV list of all people working at our company.

It now seems to sticking in some sort of infinite loop. I have commented out

ALL the code apart from the GET objec. statement. When I now run the

program the SAP GUI progress displays from 1% to 100%, it then starts again

at 1% and through to 100%. It is repeating this process numerous times. The

program is not actually finishing. The user has to stop the transaction.

I can't explain why this is happening. Can anyone help me out on this?

Any ideas would be much appreciated.

Thanks

Andy

6 REPLIES 6
Read only

Former Member
0 Likes
882

Hi Andy

I think that data you are trying hit may be too much. Generally when you are running your program for the first time after logging with PCH LDB, it takes long runtime than the subsequent runs. Hope you are not usng any evaluation paths for this LDB. Can you provide us with more regarding the selection screen, it should help us to analyse it better.

~Ranganath

Read only

Former Member
0 Likes
882

Hi

Are you sure have u commented all the coding part???? Eventhough it is showing some process???? Ok then have u activated the report again???? If not activate it and do one thing ask your basis person to kill that report. after that plz paste ur code here we will make modiifications for ur code according to ur requirement

Reward for all helpfull answers

Regards

Pavan

Read only

0 Likes
882

Hi guys, thanks for replying. I have definitely commented out and re-activated

the code. Here is the code:

REPORT zhrr006 LINE-SIZE 120.

=====================================================================

  • Report : Establishment Register *

=====================================================================

  • *

  • Title : Establishment Register *

  • Author : Andy Scott *

  • Date : 29/11/2005 *

  • Purpose : This is a new report based on the existing *

  • ZHRR001 report but without the additional data: *

  • - Ethnic Origin *

  • - Disability Flag *

  • - Acutal Salary *

  • *

=====================================================================

  • *

  • Amendment History: *

  • ------------------ *

  • *

  • Date User ID Request Number Brief Description *

  • ---- -------- --------------- ------------------ *

  • 29/11/05 CSSCOTTA DV1K911022 Initial development *

  • 14/12/05 CSSCOTTA DV1K911103 Remove Lines Where Pos. Text *

  • Is Blank *

  • 14/09/06 CSSCOTTA DV1K913191 Used FM: *

  • REUSE_ALV_GRID_DISPLAY *

  • In order to use Column Set *

  • 26/09/06 CSSCOTTA DV1K913636 Add Cost Centre Description *

  • 08/08/07 CSSCOTTA DV1K918300 Temporary change to allow *

  • testing in debugger mode. *

=====================================================================

*EJECT

----


  • A L V S T U F F

----


TYPE-POOLS: slis.

DATA: alv_layout TYPE slis_layout_alv,

alv_fieldcat TYPE slis_t_fieldcat_alv,

fieldnames LIKE LINE OF alv_fieldcat.

DATA: variant LIKE disvariant.

TABLES: objec,

gdstr,

t501t,

t503t,

t500p, " Personnel Sub Area

t001p, " Personnel Area

t505s, " Religion

hrp1000,

hrp1001,

cskt. " DV1K913636

INFOTYPES: 0000,

0001,

0002,

0007,

0008,

0077, " Additional Data

0071,

0222,

1005,

1013,

1011,

1001,

1010,

0442.

DATA: name LIKE p0001-ename,

vacant(1) TYPE c,

count_occupied TYPE n,

wa_num_recs TYPE i.

DATA: BEGIN OF z_date,

z_cccc(4) TYPE c,

z_mm(2) TYPE c,

z_dd(2) TYPE c,

END OF z_date.

DATA: z-ddmmyyyy(10) TYPE c.

TYPES: BEGIN OF org_line,

orgobjid LIKE objec-objid,

orgshort LIKE objec-short,

orgstext LIKE objec-stext.

TYPES: END OF org_line.

TYPES: BEGIN OF pos_line,

posobjid LIKE objec-objid,

posshort LIKE objec-short,

posstext LIKE objec-stext,

vacant(15) TYPE c,

eegrp(20) TYPE c,

eesub(20) TYPE c,

trfg1 LIKE p1005-trfg1,

trfs1 LIKE p1005-trfs1,

trfg2 LIKE p1005-trfg2,

trfs2 LIKE p1005-trfs2,

wkavg LIKE p1011-wkavg,

poscartyp(15) TYPE c,

aedtm LIKE hrp1000-aedtm,

uname LIKE hrp1000-uname.

TYPES: END OF pos_line.

TYPES: BEGIN OF per_line,

pernr LIKE pernr-pernr,

vorna LIKE p0002-vorna,

nachn LIKE p0002-nachn,

begda LIKE p0001-begda,

kostl LIKE p0001-kostl,

trfgr LIKE p0008-trfgr,

trfst LIKE p0008-trfst,

wostd LIKE p0007-wostd,

percartype(15) TYPE c,

poststart LIKE p0000-begda.

TYPES: END OF per_line.

DATA: wa_orgline TYPE org_line,

wa_perline TYPE per_line,

wa_posline TYPE pos_line,

org_line TYPE org_line,

per_line TYPE per_line,

pos_line TYPE pos_line.

DATA: BEGIN OF output_table OCCURS 0,

orgobjid LIKE objec-objid,

orgshort LIKE objec-short,

orgstext LIKE objec-stext,

posobjid LIKE objec-objid,

posshort LIKE objec-short,

posstext LIKE objec-stext,

vacant(15) TYPE c,

eegrp(20) TYPE c,

eesub(20) TYPE c,

trfg1 LIKE p1005-trfg1,

trfs1 LIKE p1005-trfs1,

trfg2 LIKE p1005-trfg2,

trfs2 LIKE p1005-trfs2,

wkavg LIKE p1011-wkavg,

poscartyp(15) TYPE c,

pernr LIKE pernr-pernr,

vorna LIKE p0002-vorna,

nachn LIKE p0002-nachn,

kostl LIKE p0001-kostl,

kostl_descr LIKE cskt-ltext, "DV1K913636

trfgr LIKE p0008-trfgr,

trfst LIKE p0008-trfst,

wostd LIKE p0007-wostd,

percartype(15) TYPE c,

poststart LIKE p0000-begda,

werks LIKE p0001-werks,

name1 LIKE t500p-name1,

btrtl LIKE p0001-btrtl,

btext LIKE t001p-btext,

ltext LIKE t505s-ltext,

disabtxt(3) TYPE c,

ansal LIKE p0008-ansal,

scref LIKE p0071-scref,

aedtm LIKE hrp1000-aedtm,

uname LIKE hrp1000-uname,

END OF output_table.

DATA: eesub(20) TYPE c,

eegrp(20) TYPE c,

cartyp(10) TYPE c,

pr_id LIKE objec-objid,

previous_otype LIKE objec-otype.

INITIALIZATION.

pchotype = 'O'.

pchwegid = 'O-S-P'.

pchostat = '1'.

pchistat = '1'.

pchplvar = '01'.

pchztr_a = space.

pchztr_z = 'X'.

pchobeg = sy-datum.

pchoend = sy-datum.

pchbegda = sy-datum.

pchendda = sy-datum.

z_date = sy-datum.

CONCATENATE z_date-z_dd '/' z_date-z_mm '/' z_date-z_cccc INTO

z-ddmmyyyy.

sy-tvar0 = z-ddmmyyyy.

START-OF-SELECTION.

GET objec.

----


  • O R G U N I T

----


*

  • IF objec-otype = 'O'.

  • CLEAR output_table.

  • FORMAT COLOR COL_HEADING.

  • MOVE: objec-objid TO wa_orgline-orgobjid,

  • objec-short TO wa_orgline-orgshort,

  • objec-stext TO wa_orgline-orgstext.

  • ENDIF.

----


  • P O S I T I O N

----


*

  • IF objec-otype = 'S'.

  • MOVE-CORRESPONDING wa_orgline TO output_table.

*

  • PERFORM obtain_last_changed USING objec-objid.

*

  • cartyp = ' '.

  • PROVIDE persg persk FROM p1013

  • wkavg FROM p1011

  • subty hilfm FROM p1010

  • trfg1 trfg2

  • trfs1 trfs2 FROM p1005

  • BETWEEN pc-begda AND pc-endda.

  • PERFORM get_text USING p1013-persg

  • CHANGING eegrp.

  • PERFORM get_text_sub USING p1013-persk

  • CHANGING eesub.

*

  • IF p1010-subty = '0001'.

  • IF p1010-hilfm = '001'.

  • cartyp = 'Essential'.

  • ENDIF.

  • IF p1010-hilfm = '002'.

  • cartyp = 'Casual'.

  • ENDIF.

  • ENDIF.

  • vacant = 'X'.

  • CLEAR count_occupied.

  • MOVE: objec-objid TO output_table-posobjid,

  • objec-short TO output_table-posshort,

  • objec-stext TO output_table-posstext,

  • eegrp TO output_table-eegrp,

  • eesub TO output_table-eesub,

  • p1005-trfg1 TO output_table-trfg1,

  • p1005-trfs1 TO output_table-trfs1,

  • p1005-trfg2 TO output_table-trfg2,

  • p1005-trfs2 TO output_table-trfs2,

  • p1011-wkavg TO output_table-wkavg,

  • cartyp TO output_table-poscartyp,

  • hrp1000-aedtm TO output_table-aedtm,

  • hrp1000-uname TO output_table-uname.

*

    • move fields to wa_posline in case more than one position

  • MOVE: objec-objid TO wa_posline-posobjid,

  • objec-short TO wa_posline-posshort,

  • objec-stext TO wa_posline-posstext,

  • eegrp TO wa_posline-eegrp,

  • eesub TO wa_posline-eesub,

  • p1005-trfg1 TO wa_posline-trfg1,

  • p1005-trfs1 TO wa_posline-trfs1,

  • p1005-trfg2 TO wa_posline-trfg2,

  • p1005-trfs2 TO wa_posline-trfs2,

  • p1011-wkavg TO wa_posline-wkavg,

  • cartyp TO wa_posline-poscartyp,

  • hrp1000-aedtm TO output_table-aedtm,

  • hrp1000-uname TO output_table-uname.

*

    • check if position is vacant and append if it is

  • LOOP AT p1001 WHERE objid = objec-objid

  • AND rsign = 'A'

  • AND relat = '008'

  • AND begda LE pc-begda

  • AND endda GE pc-begda.

  • ADD 1 TO count_occupied.

  • vacant = space.

  • ENDLOOP.

  • IF vacant = 'X'.

  • MOVE 'Unoccupied' TO output_table-vacant.

  • MOVE 'Unoccupied' TO wa_posline-vacant.

  • APPEND output_table.

  • ELSE.

  • IF count_occupied > 1.

  • CONCATENATE 'Occupied'

  • ' x'

  • count_occupied

  • INTO output_table-vacant.

  • CONCATENATE 'Occupied'

  • ' x'

  • count_occupied

  • INTO wa_posline-vacant.

  • ELSE.

  • MOVE 'Occupied' TO output_table-vacant.

  • MOVE 'Occupied' TO wa_posline-vacant.

  • ENDIF.

*

  • ENDIF.

    • append output_table.

    • clear output_table.

  • pr_id = objec-objid.

  • previous_otype = objec-otype.

  • ENDPROVIDE.

  • ENDIF.

----


  • P E O P L E

----


*

  • IF objec-otype = 'P' .

  • MOVE-CORRESPONDING wa_orgline TO output_table.

*

  • PERFORM obtain_pos_start USING p0001-plans p0002-pernr.

*

  • IF previous_otype = 'P'.

  • MOVE-CORRESPONDING wa_posline TO output_table.

  • ENDIF.

*

  • cartyp = space.

  • PROVIDE vorna nachn

  • pernr FROM p0002

  • persk begda

  • kostl werks btrtl

  • bukrs FROM p0001

  • trfgr trfst FROM p0008

  • wostd FROM p0007

  • scref FROM p0071

  • subty FROM p0442

  • BETWEEN pc-begda AND pc-endda.

  • CONCATENATE p0002-vorna p0002-nachn INTO name

  • SEPARATED BY space.

  • IF p0442-subty = 'ESSE'.

  • cartyp = 'Essential'.

  • ENDIF.

  • IF p0442-subty = 'CASU'.

  • cartyp = 'Casual'.

  • ENDIF.

*

  • MOVE: p0002-pernr TO output_table-pernr,

  • p0002-nachn TO output_table-nachn,

  • p0002-vorna TO output_table-vorna,

  • p0001-kostl TO output_table-kostl,

  • p0007-wostd TO output_table-wostd,

  • p0008-trfgr TO output_table-trfgr,

  • p0008-trfst TO output_table-trfst,

  • cartyp TO output_table-percartype.

*

    • Pension %

  • READ TABLE p0071 WITH KEY endda = '99991231'.

  • MOVE p0071-scref TO output_table-scref.

*

  • PERFORM new_additional_data USING p0001-werks

  • p0001-btrtl

  • p0077-racky

  • p0002-pernr. " DV1K910467

*

*

  • SORT p0000 BY begda DESCENDING.

  • LOOP AT p0000.

  • IF p0000-massn = '50' OR

  • p0000-massn = '53' OR

  • p0000-massn = '56' OR

  • p0000-massn = '97' .

    • MOVE: p0000-begda TO output_table-poststart.

*

  • EXIT.

  • ENDIF.

  • ENDLOOP.

*

  • SKIP.

  • APPEND output_table.

  • CLEAR output_table.

  • ENDPROVIDE.

  • pr_id = objec-objid.

  • previous_otype = objec-otype.

  • ENDIF.

  • Remove entries from the table where the position text is blank

DELETE output_table WHERE posstext IS INITIAL. " DV1K911103

  • How many recs to display

DESCRIBE TABLE output_table LINES wa_num_recs.

END-OF-SELECTION.

IF wa_num_recs > 0.

PERFORM get_fieldnames.

PERFORM display_alv_grid.

ELSE.

CALL FUNCTION 'POPUP_NO_LIST'.

ENDIF.

&----


*& Form GET_TEXT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_text USING p_p1013-persg

CHANGING p_ee-grp.

SELECT SINGLE * FROM t501t

WHERE sprsl = sy-langu

AND persg = p1013-persg.

IF sy-subrc = 0.

eegrp = t501t-ptext.

ELSE.

eegrp = 'No ee group'.

ENDIF.

ENDFORM. " GET_TEXT

*

&----


*& Form GET_TEXT_SUB

&----


  • text

----


  • -->P_P1013_PERSK text

  • <--P_EESUB text

----


FORM get_text_sub USING p_p1013-persk

CHANGING p_eesub.

SELECT SINGLE * FROM t503t

WHERE sprsl = sy-langu

AND persk = p_p1013-persk.

IF sy-subrc = 0.

p_eesub = t503t-ptext.

ELSE.

p_eesub = 'No ee sub group'.

ENDIF.

ENDFORM. " GET_TEXT_SUB

&----


*& Form get_fieldnames

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_fieldnames .

----


  • Org Unit

----


*

MOVE: 'Org Id' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'ORGOBJID' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Org Unit Abbreviation

----


*

MOVE: 'Org Abrev' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'ORGSHORT' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Org Unit Description

----


*

MOVE: 'Org Description' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'ORGSTEXT' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Position ID

----


*

MOVE: 'Position ID' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'POSOBJID' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Position Abbreviation

----


*

MOVE: 'Pos Abrev' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'POSSHORT' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Position Description

----


*

MOVE: 'Position Description' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'POSSTEXT' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Postion Occupied?

----


*

MOVE: 'Occupied?' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'VACANT' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Employee Grp

----


*

MOVE: 'Employee Grp' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'EEGRP' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Employee Subgrp

----


*

MOVE: 'Employee Subgrp' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'EESUB' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • From Pay Scale Group

----


*

MOVE: 'From Pay Scale Grp' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'TRFG1' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • From Level

----


*

MOVE: 'From Lvl' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'TRFS1' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • To Pay Scale Group

----


*

MOVE: 'To Pay Scale Grp' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'TRFG2' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • To Level

----


*

MOVE: 'To Lvl' TO fieldnames-seltext_l,

'OUTPUT_TABLE' TO fieldnames-tabname,

'TRFS2' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Position Wk Hours

----


*

MOVE: 'Position Wk Hours' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'WKAVG' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Position Car Type

----


*

MOVE: 'Position Car Type' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'POSCARTYP' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Personnel No

----


*

MOVE: 'Personnel No.' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'PERNR' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • First Name

----


*

MOVE: 'First Name' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'VORNA' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Last Name

----


*

MOVE: 'Last Name' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'NACHN' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Employee Cost Centre

----


*

MOVE: 'Emp. Cost Centre' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'KOSTL' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Employee Cost Centre Description

----


*

MOVE: 'Emp. Cost Centre Descr.' TO fieldnames-seltext_l , "DV1K913636

'OUTPUT_TABLE' TO fieldnames-tabname,

'KOSTL_DESCR' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Emp Pay Scale Group

----


*

MOVE: 'Emp Pay Scale Grp' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'TRFGR' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Emp Pay Scale Lvl

----


*

MOVE: 'Emp Pay Scale Lvl' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'TRFST' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Emp Wk Hours

----


*

MOVE: 'Emp Wk Hours' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'WOSTD' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Emp Car Type

----


*

MOVE: 'Emp Car Type' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'PERCARTYPE' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Position Start Date

----


*

MOVE: 'Position Start Date' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'POSTSTART' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

----


  • Personnel Area

----


*

CLEAR fieldnames.

MOVE: 'Personnel Area' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'WERKS' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

MOVE: 'Personnel Area Text' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'NAME1' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

----


  • Personnel Sub Area

----


*

CLEAR fieldnames.

MOVE: 'Personnel Sub Area' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'BTRTL' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

CLEAR fieldnames.

MOVE: 'Personnel Sub Area Text' TO fieldnames-seltext_l ,

'OUTPUT_TABLE' TO fieldnames-tabname,

'BTEXT' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

----


  • Ethnic Origin

----


*

CLEAR fieldnames.

MOVE: 'Ethnic Origin' TO fieldnames-seltext_l,

'OUTPUT_TABLE' TO fieldnames-tabname,

'LTEXT' TO fieldnames-fieldname,

'X' TO fieldnames-no_out. " Place in column set only

APPEND fieldnames TO alv_fieldcat.

----


  • Disability

----


*

CLEAR fieldnames.

MOVE: 'Disability' TO fieldnames-seltext_l,

'OUTPUT_TABLE' TO fieldnames-tabname,

'DISABTXT' TO fieldnames-fieldname,

'X' TO fieldnames-no_out. " Place in column set only

APPEND fieldnames TO alv_fieldcat.

----


  • Salary

----


*

CLEAR fieldnames.

MOVE: 'Actual Salary' TO fieldnames-seltext_l,

'OUTPUT_TABLE' TO fieldnames-tabname,

'ANSAL' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

----


  • Pension

----


*

CLEAR fieldnames.

MOVE: 'Pension %' TO fieldnames-seltext_l,

'OUTPUT_TABLE' TO fieldnames-tabname,

'SCREF' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

----


  • Position Details Changed On

----


*

CLEAR fieldnames.

MOVE: 'Position Details Changed On' TO fieldnames-seltext_l,

'OUTPUT_TABLE' TO fieldnames-tabname,

'AEDTM' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

----


  • Position Details Changed By

----


*

CLEAR fieldnames.

MOVE: 'Position Details Changed By' TO fieldnames-seltext_l,

'OUTPUT_TABLE' TO fieldnames-tabname,

'UNAME' TO fieldnames-fieldname.

APPEND fieldnames TO alv_fieldcat.

ENDFORM. " get_fieldnames

&----


*& Form display_alv_grid

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_alv_grid .

alv_layout-zebra = 'X'.

alv_layout-colwidth_optimize = 'X'.

variant-report = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' " DV1K913191

EXPORTING

i_grid_title = 'Establishment Register'

is_layout = alv_layout

it_fieldcat = alv_fieldcat

i_save = 'X'

is_variant = variant

TABLES

t_outtab = output_table

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_grid

*EJECT

&----


*& Form new_additional_data

&----


  • This new form will retrieve the new additional data whcih is to be *

  • added to the report: *

  • *

  • - Personnel Area *

  • - Personnel Sub Area *

  • - Ethnic Origin *

  • - Disability Flag *

  • - Acutal Salary *

----


FORM new_additional_data USING value(personnel-area)

value(personnel-subarea)

value(religion)

value(personnel-no).

DATA: annual_sal LIKE p0008-ansal.

----


  • Personnel Area

----


*

SELECT SINGLE *

FROM t500p

WHERE persa = personnel-area.

MOVE p0001-werks TO output_table-werks.

MOVE t500p-name1 TO output_table-name1.

----


  • Personnel Sub Area

----


*

rp-read-t001p personnel-area personnel-subarea space.

MOVE p0001-btrtl TO output_table-btrtl.

MOVE t001p-btext TO output_table-btext.

----


  • Ethnic Origin

----


*

SELECT SINGLE *

FROM t505s

WHERE racky = religion

AND sprsl = sy-langu

AND molga = t001p-molga.

MOVE t505s-ltext TO output_table-ltext.

----


  • Disabled ?

----


*

IF p0077-disab = '1'.

MOVE 'YES' TO output_table-disabtxt.

ELSE.

MOVE 'NO' TO output_table-disabtxt.

ENDIF.

----


  • Annual Salary

----


*

CLEAR annual_sal.

CALL FUNCTION 'RP_ANSAL_FROM_PERNR'

EXPORTING

f_date = pc-endda

f_tclas = 'A'

f_pernr = personnel-no

IMPORTING

f_ansal = annual_sal

EXCEPTIONS

internal_error = 1

error_read_0001 = 2

error_read_0008 = 3

error_at_indirect_evaluation = 4

currency_conversion_error = 5

OTHERS = 6.

IF sy-subrc <> 0.

annual_sal = 0.

ENDIF.

MOVE annual_sal TO output_table-ansal.

----


  • Cost Centre Description

----


*

CLEAR cskt.

SELECT SINGLE *

FROM cskt

WHERE kokrs = p0001-bukrs

AND kostl = p0001-kostl

AND datbi = '99991231'.

MOVE cskt-ltext TO output_table-kostl_descr.

ENDFORM. " new_additional_data

&----


*& Form obtain_last_changed

&----


  • text

----


FORM obtain_last_changed USING objid.

*

CLEAR hrp1000.

SELECT SINGLE *

FROM hrp1000

WHERE objid = objid

AND otype = 'S'

AND endda = '99991231'.

ENDFORM. " obtain_last_changed.

&----


*& Form obtain_pos_start

&----


  • text

----


FORM obtain_pos_start USING objid pernr.

*

    • Now need to provide the start date of the position

CLEAR: hrp1001.

output_table-poststart = space.

SELECT SINGLE *

FROM hrp1001

WHERE objid = objid

AND plvar = '01'

AND otype = 'S'

AND rsign = 'A'

AND relat = '008'

AND endda = '99991231'

AND sobid = pernr.

CHECK sy-subrc = 0.

output_table-poststart = hrp1001-begda.

ENDFORM. " obtain_pos_start.

Read only

0 Likes
882

Hi Andy

I can see that you are running this report for evaluation path 'O-S-P', that means get all the positions and persons attached to a given organization unit. To just check can you run this proogram for a Organization unit which is lower down in the Organization unit structure. I mean if you open the tcode PPOSE or PPOME the org. unit at the lowest level and see whether then the program doesn't go into infinite loop. Else for me this code look pretty fine.

~Ranganath

Read only

0 Likes
882

HI

Is this report still runing in background????

Regards

Pavan

Read only

0 Likes
882

I can run this program in the background, but it makes no difference.

It still seems to be in some sort of loop.

Andy