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: 

call_invalid error

Former Member
0 Kudos

Hi experts

this is my code, it's working pakka.

but for few inputs it gives the following error, what could be the reason.

Exception condition "CALL_INVALID" raised.

RAISE_EXCEPTION

Thanks in advance.

Regards

Rajaram

report test

TABLES : vbep,VBAP,stpo,mara,stpox,STKO,MAST.

TYPE-POOLS : slis.

  • Data Declarations

DATA : fcat TYPE slis_t_fieldcat_alv,

it_sort TYPE SLIS_T_SORTINFO_ALV ,

wa_sort type slis_sortinfo_alv,

ls_fcat LIKE LINE OF fcat,

fheader TYPE TABLE OF slis_listheader WITH NON-UNIQUE DEFAULT KEY

WITH HEADER LINE INITIAL SIZE 0.

DATA :i_repid LIKE sy-repid,

gs_layout TYPE slis_layout_alv,

week type n.

DATA: l_index TYPE sy-tabix.

*Internal Tables

DATA : BEGIN OF itab OCCURS 0,

VBELN like vbap-VBELN, "SALE ORDER

posnr LIKE vbap-POSNR, "LINE ITEM

STLNR1 like vbap-STLNR,

STLNR like STPO-STLNR,

MATNR LIKE VBAP-MATNR,

ARKTX LIKE VBAP-ARKTX,

MEINS LIKE VBAP-MEINS,

IDNRK LIKE STPO-IDNRK,

werks like vbap-werks,

MAKTX LIKE MAKT-MAKTX,

KWMENG LIKE VBAP-KWMENG,

MENG LIKE VBAP-ABLFZ,

STLAL LIKE MAST-STLAL,

STLAN LIKE MAST-STLAN,

CAPID LIKE TC04-CAPID,

UMVKZ LIKE VBAP-UMVKZ,

VRKME LIKE VBAP-VRKME,

END OF itab.

DATA: wa LIKE LINE OF itab.

DATA : BEGIN OF it_final OCCURS 0,

VBELN like vbap-VBELN, "SALE ORDER

posnr LIKE vbap-POSNR, "LINE ITEM

STLNR1 like vbap-STLNR,"BOM

STLNR like STPO-STLNR, "BOM no

MATNR LIKE VBAP-MATNR, "MATERIAL

ARKTX LIKE VBAP-ARKTX, "DESC

MEINS LIKE VBAP-MEINS, "BUn

IDNRK LIKE STPO-IDNRK, "COMPONENT

werks like vbap-werks, "PLANT

MAKTX LIKE MAKT-MAKTX, "DESC

MNGKO LIKE STPO-MENGE, "CONSUMPTION

ROANZ LIKE STPO-ROANZ, "BASE QTY

MEINS1 LIKE STPO-MEINS, " Un

KWMENG LIKE VBAP-KWMENG, "ORDER QTY

STLAL LIKE MAST-STLAL,

STLAN LIKE MAST-STLAN,

CAPID LIKE TC04-CAPID,

END OF it_final.

data : ibom1 like stpox occurs 0 with header line,

ibom2 like stpox occurs 0 with header line.

  • Selection Screen

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

SELECT-OPTIONS: zso FOR vbep-vbeln OBLIGATORY.

SELECT-OPTIONS: zli FOR vbep-posnr.

SELECT-OPTIONS: ZPL FOR VBAP-WERKS.

PARAMETERS ZQTY TYPE STKO-BMENG.

SELECTION-SCREEN END OF BLOCK bk1.

gs_layout-colwidth_optimize = 'X'.

  • Select query to read all the materials from sales order

select A~VBELN

A~POSNR

A~MATNR

A~ARKTX

A~STLNR

A~WERKS

A~KWMENG

A~MEINS

A~UMVKZ

A~VRKME

B~MATNR

B~STLAL

B~STLAN

INTO CORRESPONDING FIELDS OF TABLE ITAB

FROM VBAP AS A

INNER JOIN MAST AS B ON A~MATNR = B~MATNR

WHERE A~VBELN IN ZSO

AND A~POSNR IN ZLI

AND A~WERKS IN ZPL.

loop at itab.

if itab-VRKME = 'PAC' or itab-VRKME = 'PAK'.

itab-kwmeng = itab-kwmeng * itab-UMVKZ.

modify itab.

endif.

endloop.

  • Select all the alternative BOM against the material

sort itab by matnr.

  • Assigning the order quantity if required qunatity zero

loop at itab.

if zqty is initial.

itab-meng = itab-KWMENG.

modify itab.

endif.

ENDLOOP.

  • Assigning required quantity as the base quantity

loop at itab.

if zqty is initial.

exit.

else.

move zqty to itab-meng.

modify itab.

endif.

if itab-MATNR = ' '.

delete itab.

endif.

endloop.

  • Assigning all the corresponding fields from itab to itab1.

loop at itab.

IF ITAB-STLAN = '1'.

ITAB-CAPID = 'PP01'.

ELSEIF ITAB-STLAN = '5'.

ITAB-CAPID = 'SD01'.

ELSEIF ITAB-STLAN = '6'.

ITAB-CAPID = 'PC01'.

ELSEIF ITAB-STLAN = '4'.

ITAB-CAPID = 'INST'.

ELSEIF ITAB-STLAN = '2'.

ITAB-CAPID = 'ENGG'.

ELSEif itab-stlan <> 1

or itab-stlan <> 2

or itab-stlan <> 5

or itab-stlan <> 6

or ITAB-STLAN <> 4.

itab-capid = ' '.

ENDIF.

if zqty is initial.

itab-MENG = itab-meng.

else.

itab-meng = itab-meng.

itab-kwmeng = zqty.

endif.

if zqty is initial.

itab-KWMENG = itab-KWMENG.

ELSE.

itab-STLAL = itab-STLAL.

endif.

modify itab.

clear : itab.

endloop.

  • Calling the function module for collecting the bom components

loop at itab.

clear : ibom1[].

CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'

EXPORTING

capid = ITAB-CAPID

datuv = sy-datum

emeng = ITAB-meng

mehrs = 'X'

mtnrv = ITAB-matnr

stlal = ITAB-stlal

werks = ITAB-werks

TABLES

stb = IBOM1

EXCEPTIONS

alt_not_found = 1

call_invalid = 2

material_not_found = 3

missing_authorization = 4

no_bom_found = 5

no_plant_data = 6

no_suitable_bom_found = 7

conversion_error = 8

OTHERS = 9.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

  • Moving all the fields to IT_FINAL.

LOOP AT IBOM1.

MOVE-CORRESPONDING ITAB TO IT_FINAL.

MOVE IBOM1-IDNRK TO IT_FINAL-IDNRK.

MOVE IBOM1-OJTXP TO IT_FINAL-MAKTX.

IF IT_FINAL-KWMENG LE 0.

MOVE 0 TO IT_FINAL-MNGKO.

ELSE.

MOVE IBOM1-MNGKO TO IT_FINAL-MNGKO.

ENDIF.

MOVE IBOM1-MEINS TO IT_FINAL-MEINS1.

APPEND IT_FINAL.

ENDLOOP.

ENDLOOP.

  • Calling the fieldcatelog

PERFORM EDIT_MASK.

i_repid = sy-repid.

PERFORM fieldcat.

wa_sort-fieldname = 'VBELN'.

wa_sort-tabname = 'IT_FINAL'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sort.

wa_sort-fieldname = 'POSNR'.

wa_sort-tabname = 'IT_FINAL'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sort.

wa_sort-fieldname = 'MATNR'.

wa_sort-tabname = 'IT_FINAL'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sort.

wa_sort-fieldname = 'ARKTX'.

wa_sort-tabname = 'IT_FINAL'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sort.

wa_sort-fieldname = 'KWMENG'.

wa_sort-tabname = 'IT_FINAL'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sort.

wa_sort-fieldname = 'STLAL'.

wa_sort-tabname = 'IT_FINAL'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sort.

wa_sort-fieldname = 'CAPID'.

wa_sort-tabname = 'IT_FINAL'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sort.

  • Calling ALV GRID

*SORT IT_FINAL ASCENDING BY VBELN POSNR MATNR.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = i_repid

is_layout = gs_layout

it_fieldcat = fcat

IT_SORT = it_sort

i_save = 'A'

TABLES

t_outtab = it_final

EXCEPTIONS

program_error = 1

OTHERS = 2.

&----


*& Form fieldcat

&----


  • text

----


FORM fieldcat.

MOVE sy-repid TO i_repid.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'VBELN'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'Sales order'.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'POSNR'.

ls_fcat-outputlen = 2.

ls_fcat-seltext_m = 'Item'.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'MATNR'.

ls_fcat-outputlen = 20.

ls_fcat-seltext_m = 'Material'.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'ARKTX'.

ls_fcat-outputlen = 30.

ls_fcat-seltext_m = 'Description'.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'MEINS'.

ls_fcat-outputlen = 30.

ls_fcat-seltext_m = 'BUn'.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-outputlen = 5.

ls_fcat-fieldname = 'KWMENG'.

IF ZQTY IS INITIAL.

ls_fcat-seltext_m = 'Order Qty'.

ELSE.

ls_fcat-seltext_m = 'Required Qty'.

endif.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'STLAL'.

ls_fcat-outputlen = 3.

ls_fcat-seltext_l = 'Alternative BOM'.

ls_fcat-seltext_m = 'Alt.BOM'.

ls_fcat-seltext_s = 'A.BOM'.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'CAPID'.

ls_fcat-outputlen = 3.

ls_fcat-seltext_l = 'BOM Application'.

ls_fcat-seltext_m = 'BOM Appl.'.

ls_fcat-seltext_s = 'BOM Ap.'.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'IDNRK'.

ls_fcat-outputlen = 15.

ls_fcat-seltext_l = 'Component'.

ls_fcat-seltext_m = 'Component'.

ls_fcat-seltext_s = 'Component'.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'MAKTX'.

ls_fcat-outputlen = 15.

ls_fcat-seltext_l = 'Description'.

ls_fcat-seltext_m = 'Description'.

ls_fcat-seltext_s = 'Description'.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'MNGKO'.

ls_fcat-outputlen = 5.

ls_fcat-seltext_l = 'Comp.Qty'.

ls_fcat-seltext_s = 'Comp.Qty'.

ls_fcat-seltext_m = 'Comp.Qty'.

APPEND ls_fcat TO fcat.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-fieldname = 'MEINS1'.

ls_fcat-outputlen = 2.

ls_fcat-seltext_l = 'Un'.

ls_fcat-seltext_s = 'Un'.

ls_fcat-seltext_m = 'Un'.

APPEND ls_fcat TO fcat.

endform. "fieldcat

&----


*& Form EDIT_MASK

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM EDIT_MASK .

loop at it_final.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'

EXPORTING

INPUT = it_final-vbeln

IMPORTING

OUTPUT = it_final-vbeln.

modify it_final.

endloop.

ENDFORM. " EDIT_MASK

1 REPLY 1

former_member223537
Active Contributor
0 Kudos

HI,

THe exception is from FM "'CS_BOM_EXPL_MAT_V2'". You need to put a break-point on the FM & debug the FM to find out why Exception no. 2 is raised.

Best regards,

Prashant