Application Development 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: 

Error

0 Kudos

Hi all,

I got run time error from this program, pls verify its urgrent.

Thanks

siva

REPORT zfi_monthly_os_re NO STANDARD PAGE HEADING.

************************************************************************

  • TABLES *

************************************************************************

TABLES: bkpf,

vbak,

vbfa,

bsid,

t009b,

bsad.

************************************************************************

  • Data Declaration *

************************************************************************

DATA: it_bkpf LIKE bkpf OCCURS 0 WITH HEADER LINE.

DATA: it_bsid1 LIKE bsid OCCURS 0 WITH HEADER LINE.

DATA: it_prps LIKE prps OCCURS 0 WITH HEADER LINE.

DATA: it_vbap LIKE vbap OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF it_vbak OCCURS 0,

ps_psp_pnr TYPE ps_psp_pnr,

kunnr TYPE kunnr,

vbeln TYPE vbak-vbeln,

END OF it_vbak.

DATA: BEGIN OF it_disp OCCURS 0,

ps_psp_pnr TYPE vbak-ps_psp_pnr,

amt1 LIKE bsad-dmbtr,

amt2 LIKE bsad-dmbtr,

amt3 LIKE bsad-dmbtr,

amt4 LIKE bsad-dmbtr,

amt5 LIKE bsad-dmbtr,

amt6 LIKE bsad-dmbtr,

coll TYPE p DECIMALS 4,

END OF it_disp.

DATA: BEGIN OF it_wa ,

ps_psp_pnr TYPE vbak-ps_psp_pnr,

amt1 LIKE bsad-dmbtr,

amt2 LIKE bsad-dmbtr,

amt3 LIKE bsad-dmbtr,

amt4 LIKE bsad-dmbtr,

amt5 LIKE bsad-dmbtr,

amt6 LIKE bsad-dmbtr,

coll TYPE p DECIMALS 4,

END OF it_wa.

DATA: BEGIN OF it_bsid OCCURS 0,

zterm TYPE bsid-zterm,

kunnr TYPE bsid-kunnr,

dmbtr TYPE bsid-dmbtr,

monat TYPE bsid-monat,

gjahr TYPE bsid-gjahr,

vbeln LIKE bsid-vbeln,

END OF it_bsid.

DATA: BEGIN OF it_bsad OCCURS 0,

zterm TYPE bsad-zterm,

kunnr TYPE bsad-kunnr,

dmbtr TYPE bsad-dmbtr,

monat TYPE bsad-monat,

gjahr TYPE bsad-gjahr,

vbeln LIKE bsad-vbeln,

END OF it_bsad.

DATA: g_first_day LIKE sy-datum,

g_past_day LIKE sy-datum,

g_year LIKE bsid-gjahr,

g_period LIKE bsid-monat.

DATA: v_date(10) TYPE c.

DATA: v_date1 LIKE sy-datum.

DATA v_days(10) TYPE n.

DATA: i_yy LIKE bkpf-gjahr.

DATA: i_mm LIKE t009b-poper.

DATA: g_first(2) TYPE c.

DATA: xt001 TYPE t001.

DATA: w_curry LIKE bkpf-gjahr ,

w_currm LIKE bkpf-monat.

***********************************************************

  • ALV Declaration

***********************************************************

TYPE-POOLS: slis.

DATA:st_layout TYPE slis_layout_alv,

it_fieldcat TYPE slis_t_fieldcat_alv,

it_listheader TYPE slis_t_listheader,

it_event TYPE slis_t_event,

keyinfo TYPE slis_keyinfo_alv.

DATA:ls_selfield TYPE slis_selfield.

DATA: v_repid LIKE sy-repid.

*****************************************************************

  • Selection Screen

*****************************************************************

SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001.

SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-000.

SELECT-OPTIONS: s_proj FOR vbak-ps_psp_pnr . "Project

SELECT-OPTIONS: s_year FOR bkpf-gjahr . "Fiscal year

SELECT-OPTIONS: s_period FOR t009b-poper. "Period

SELECTION-SCREEN: END OF BLOCK b.

SELECTION-SCREEN: END OF BLOCK a.

*****************************************************************

  • TOP OF PAGE.

****************************************************************

*TOP-OF-PAGE.

*****************************************************************

  • Initialazation

*****************************************************************

v_repid = sy-repid.

*****************************************************************

  • Start-of-selection

*****************************************************************

START-OF-SELECTION.

PERFORM get_fiscalyear.

PERFORM get_bsid.

PERFORM disp .

PERFORM fill_layout_structure.

PERFORM fill_field_catalog_table.

PERFORM get_event USING it_event.

PERFORM fill_listheader USING it_listheader.

PERFORM call_alv_function.

END-OF-SELECTION.

&----


*& Form get_fiscalyear

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_fiscalyear .

IF NOT s_year IS INITIAL AND s_period IS NOT INITIAL.

PERFORM given_date.

ELSE.

PERFORM system_date.

ENDIF.

ENDFORM. " get_fiscalyear

&----


*& Form given_date

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM given_date .

i_yy = s_year-low.

i_mm = s_period-low.

PERFORM get_date.

PERFORM get_past6month.

ENDFORM. " given_date

&----


*& Form system_date

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM system_date .

PERFORM get_current USING sy-datum.

ENDFORM. " system_date

&----


*& Form get_current

&----


  • text

----


  • -->P_G_FIRST_DAY text

----


FORM get_current USING p_g_first_day.

CALL FUNCTION 'FTI_FISCAL_YEAR_MONTH_GET'

EXPORTING

i_bukrs = '1000'

i_budat = p_g_first_day "FTIS_DATUM-INITIAL

IMPORTING

e_gjahr = w_curry

e_monat = w_currm.

CONCATENATE w_curry w_currm '01' INTO g_first_day.

PERFORM get_past6month.

ENDFORM. " get_current

&----


*& Form get_date

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_date .

SELECT SINGLE * INTO xt001 FROM t001

WHERE bukrs = '1000'. "< Your company code

CALL FUNCTION 'FIRST_DAY_IN_PERIOD_GET'

EXPORTING

i_gjahr = i_yy

i_periv = xt001-periv

i_poper = i_mm

IMPORTING

e_date = g_first_day.

ENDFORM. " get_date

&----


*& Form get_past6month

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_past6month .

CALL FUNCTION 'CCM_GO_BACK_MONTHS'

EXPORTING

currdate = g_first_day

backmonths = 6

IMPORTING

newdate = g_past_day.

ENDFORM. " get_past6month

&----


*& Form get_bsid

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_bsid .

SELECT ps_psp_pnr vbeln kunnr FROM vbak INTO CORRESPONDING FIELDS OF TABLE it_vbak

WHERE ps_psp_pnr IN s_proj.

SORT it_vbak BY ps_psp_pnr .

DELETE ADJACENT DUPLICATES FROM it_vbak.

SELECT dmbtr gjahr monat kunnr vbeln zterm

FROM bsad

INTO CORRESPONDING FIELDS OF TABLE it_bsad

FOR ALL ENTRIES IN it_vbak

WHERE kunnr = it_vbak-kunnr

AND bukrs = '1000'

AND blart = 'RE'.

ENDFORM. " get_bsid

&----


*& Form disp

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM disp .

DELETE ADJACENT DUPLICATES FROM it_vbak.

LOOP AT it_vbak .

MOVE it_vbak-ps_psp_pnr TO it_wa-ps_psp_pnr.

LOOP AT it_bsad WHERE kunnr = it_vbak-kunnr .

CALL FUNCTION 'J_1A_SD_CI_DUEDATE_GET' "TO GET OVERDUE DATE

EXPORTING

iv_vbeln = it_bsad-vbeln

iv_zterm = it_bsad-zterm

IMPORTING

ev_netdate = v_date1

EXCEPTIONS

fi_document_not_found = 1.

CALL FUNCTION 'DAYS_BETWEEN_TWO_DATES' " CALCULATING THE OUTSTANDING DAYS

EXPORTING

i_datum_bis = g_past_day

i_datum_von = v_date1

IMPORTING

e_tage = v_days

EXCEPTIONS

days_method_not_defined = 1

OTHERS = 2.

IF v_days > 1 AND v_days <= 30.

MOVE it_bsad-dmbtr TO it_wa-amt1.

ELSEIF v_days > 30 AND v_days <= 60.

MOVE it_bsad-dmbtr TO it_wa-amt2.

ELSEIF v_days > 60 AND v_days <= 90.

MOVE it_bsad-dmbtr TO it_wa-amt3.

ELSEIF v_days > 60 AND v_days <= 90.

MOVE it_bsad-dmbtr TO it_wa-amt4.

ELSEIF v_days > 90 AND v_days <= 150.

MOVE it_bsad-dmbtr TO it_wa-amt5.

ELSEIF v_days > 150 AND v_days <= 180.

MOVE it_bsad-dmbtr TO it_wa-amt6.

ENDIF.

it_wa-coll = it_wa-amt1 + it_wa-amt2 + it_wa-amt3 + it_wa-amt4 + it_wa-amt5 + it_wa-amt6.

IF NOT it_wa IS INITIAL.

COLLECT it_wa INTO it_disp.

CLEAR it_wa.

CLEAR it_disp.

ENDIF.

ENDLOOP.

ENDLOOP.

ENDFORM. " disp

*****************************************************************

  • END OF PAGE.

*****************************************************************

END-OF-PAGE.

WRITE: / 'PAGENO: ', sy-pagno.

********************************************************************

*FORM FOR ALV LAYOUT STRUCTURE

********************************************************************

FORM fill_layout_structure .

st_layout-zebra = 'X'.

st_layout-colwidth_optimize = 'X'.

ENDFORM. "fill_layout_structure

********************************************************************

*FORM FOR ALV FIELD CATALOG TABLE

********************************************************************

FORM fill_field_catalog_table .

PERFORM fill_field_catalog USING :

'PS_PSP_PNR' 'PROJECT ' 'IT_DISP' ' ' space,

'AMT1' 'O/S PERIOD1 (AMT) ' 'IT_DISP' space space,

'AMT2' 'O/S PERIOD2 (AMT) ' 'IT_DISP' space space,

'AMT3' 'O/S PERIOD3 (AMT) ' 'IT_DISP' space space,

'AMT4' 'O/S PERIOD4 (AMT) ' 'IT_DISP' space space,

'AMT5' 'O/S PERIOD5 (AMT) ' 'IT_DISP' space space,

'AMT6' 'O/S PERIOD6 (AMT) ' 'IT_DISP' space space,

'COLL' 'COLLECTION FOR THE MONTH KEY IN PERIOD ' 'IT_DISP' space space.

ENDFORM. "fill_field_catalog_table

********************************************************************

*FORM FOR FILLING FIELD CATALOG

********************************************************************

FORM fill_field_catalog USING f d t p s.

DATA: wa_fieldcat TYPE slis_fieldcat_alv.

STATICS v_pos TYPE i VALUE 1.

wa_fieldcat-row_pos = 1.

wa_fieldcat-col_pos = v_pos.

wa_fieldcat-fieldname = f.

wa_fieldcat-seltext_m = d.

wa_fieldcat-tabname = t.

wa_fieldcat-fix_column = p.

wa_fieldcat-do_sum = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

v_pos = v_pos + 1.

ENDFORM. "fill_field_catalog

********************************************************************

*FORM FOR FILLING LISTHEADER

********************************************************************

FORM fill_listheader USING it_listheader TYPE slis_t_listheader.

DATA : wa_listheader TYPE slis_listheader.

CLEAR wa_listheader.

wa_listheader-typ = 'H'.

wa_listheader-info = 'Noel Gifts International Limited '.

APPEND wa_listheader TO it_listheader.

WRITE : sy-datum TO v_date DD/MM/YYYY NO-GAP.

wa_listheader-typ = 'S'.

wa_listheader-key = ' Overall Outstanding as at ' .

wa_listheader-info = v_date.

APPEND wa_listheader TO it_listheader.

ENDFORM. "fill_listheader

********************************************************************

*FORM FOR GET_EVENT

********************************************************************

FORM get_event USING it_event TYPE slis_t_event.

DATA : wa_event TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = it_event.

READ TABLE it_event WITH KEY name = slis_ev_top_of_page INTO wa_event.

IF sy-subrc = 0.

MOVE 'TOP_OF_PAGE' TO wa_event-form.

APPEND wa_event TO it_event.

ENDIF.

ENDFORM. "get_event

********************************************************************

*FORM FOR TOP_OF_PAGE(to assign form for the top-of-page event)

********************************************************************

FORM top_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = it_listheader.

ENDFORM. "top_of_page

********************************************************************

*FORM FOR ALV FUNCTIONS

********************************************************************

FORM call_alv_function.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = v_repid

i_callback_user_command = 'CALL_TCODE '

is_layout = st_layout

it_fieldcat = it_fieldcat[]

i_save = 'A'

it_events = it_event[]

TABLES

t_outtab = it_disp[].

ENDFORM. "call_alv_function

1 REPLY 1

Former Member
0 Kudos

If the error is a timeout, it's likely due to the satement:

SELECT ps_psp_pnr vbeln kunnr
  FROM vbak
  INTO CORRESPONDING FIELDS OF TABLE it_vbak
  WHERE ps_psp_pnr IN s_proj.

If so, I don't think there's much more that you can do other than running it in the background.

Rob