on 06-05-2007 9:54 AM
when im executing my report after passing smartform to it , by giving invoice number in selectionscreen,it's generating runtime error as
the call to the function module '/1BCDWB/SF00000032' is incorrect:
in the function module interface, u can only specify fields of a specific type and
length under "s_final".although the currently specified field " " is the correct type,
it's length is incorrect.
i declared s_final in forminterface->tables as s_final like zform1.
i defined zform1 with fields which are in t_final.
please suggest where im going wrong.
TYPES : BEGIN OF TY_FINAL,
VBELN TYPE VBRP-VBELN,"INVOICE NO
ADRNR TYPE KNA1-ADRNR, "ADDRESS FOR CONSIGNEE
BSTKD TYPE VBKD-BSTKD, "PO NUMBER
BSTDK TYPE VBKD-BSTDK, "PO DATE
ARKTX TYPE VBRP-ARKTX, "DESCRITION
PACK TYPE I, "NO OF PACKAGES
UMREZ TYPE SMEINH-UMREZ, "AVG. CONTENTS PER PACKAGE IN KGS
FKIMG TYPE VBRP-FKIMG, "TOTAL QTY IN KGS
KNUMV TYPE KONV-KNUMV,
KBETR TYPE KONV-KBETR, "SELLING RATE/KG
KBETR1 TYPE KONV-KBETR,
KWERT TYPE KONV-KWERT,
TARIFF TYPE ZFORM1-TARIFF,
DUTY TYPE ZFORM1-DUTY,
AMOUNT TYPE ZFORM1-AMOUNT,
END OF TY_FINAL.
TYPES : BEGIN OF TY_ITEM,
VBELN TYPE VBRP-VBELN,"INVOICE NO
POSNR TYPE VBRP-POSNR,
ARKTX TYPE VBRP-ARKTX, "DESCRITION
FKIMG TYPE VBRP-FKIMG, "TOTAL QTY IN KGS
BSTKD TYPE VBKD-BSTKD, "PO NUMBER
BSTDK TYPE VBKD-BSTDK, "PO DATE
AUBEL TYPE VBRP-AUBEL,
AUPOS TYPE VBRP-AUPOS,
END OF TY_ITEM.
DATA : FM_NAM TYPE RS38L_FNAM VALUE '/1BCDWB/SF00000032'.
DATA :IT_ITEM TYPE TABLE OF TY_ITEM,
W_ITEM TYPE TY_ITEM,
W_FINAL TYPE TY_FINAL,
T_FINAL TYPE TABLE OF TY_FINAL,
P TYPE I VALUE 250, "total quantity.
TOTALDUTY TYPE I VALUE 0,
CESS TYPE I,
EDCESS TYPE I,
VAT TYPE I,
FREIGHT TYPE I,
GROSSTOTAL TYPE I,
TOTAL TYPE I,
PONUMBER TYPE VBKD-BSTKD, "PO NUMBER
PODATE TYPE VBKD-BSTDK, "PO DATE
ZTERM TYPE VBKD-ZTERM, "PAYMENT TERMS
INVOICENO TYPE VBRP-VBELN.
PARAMETERS : XVBELN TYPE VBELN.
*
*
SELECT VBELN
POSNR
ARKTX
FKIMG
AUBEL
AUPOS
FROM VBRP
INTO CORRESPONDING FIELDS OF TABLE IT_ITEM
WHERE VBELN = XVBELN AND UEPOS = '000000'.
**
**
LOOP AT IT_ITEM INTO W_ITEM.
*INVOICE NO
MOVE W_ITEM-VBELN TO INVOICENO.
*DESCRIPTION
MOVE W_ITEM-ARKTX TO W_FINAL-ARKTX.
**TOTAL QUANTITY IN KGS
MOVE W_ITEM-FKIMG TO W_FINAL-FKIMG.
*PO NUMBER
SELECT SINGLE BSTKD FROM VBKD
INTO W_ITEM-BSTKD
WHERE VBELN EQ W_ITEM-AUBEL.
MOVE W_ITEM-BSTKD TO PONUMBER.
*PO DATE
SELECT SINGLE BSTDK FROM VBKD
INTO W_ITEM-BSTDK
WHERE VBELN EQ W_ITEM-AUBEL.
MOVE W_ITEM-BSTDK TO PODATE.
**
SELECT SINGLE KNUMV FROM VBRK INTO W_FINAL-KNUMV WHERE VBELN = W_ITEM-VBELN.
**SELLING RATE/KG
SELECT SINGLE KBETR FROM KONV INTO W_FINAL-KBETR WHERE KNUMV = W_FINAL-KNUMV
AND KPOSN = W_ITEM-POSNR AND KSCHL = 'PR00'.
**TOTAL TARIFF VALUE
W_FINAL-TARIFF = W_FINAL-KBETR * W_ITEM-FKIMG.
SELECT SINGLE KBETR FROM KONV INTO W_FINAL-KWERT WHERE KNUMV = W_FINAL-KNUMV
AND KPOSN = W_ITEM-POSNR AND KSCHL = 'JEXT'.
*TOTAL DUTY PAYABLE
W_FINAL-DUTY = W_FINAL-KWERT / 10.
**AMOUNT
W_FINAL-AMOUNT = W_FINAL-TARIFF + W_FINAL-DUTY.
*TOTAL DUTY FOR CESS&EDCESS
TOTALDUTY = TOTALDUTY + W_FINAL-DUTY.
APPEND W_FINAL TO T_FINAL..
CLEAR W_FINAL.
*WRITE : /10 W_ITEM-ARKTX,
30 W_ITEM-FKIMG,
60 W_FINAL-KBETR,
90 TARIFF,
120 DUTY,
160 AMOUNT.
ENDLOOP.
*SELECT SINGLE KBETR FROM KONV INTO W_FINAL-KWERT WHERE KNUMV = W_FINAL-KNUMV
AND KPOSN = W_ITEM-POSNR AND KSCHL = 'ZECS'.
*
*MOVE W_FINAL-KWERT TO CESS.
*
*SELECT SINGLE KBETR FROM KONV INTO W_FINAL-KWERT WHERE KNUMV = W_FINAL-KNUMV
AND KPOSN = W_ITEM-POSNR AND KSCHL = 'ZECX'.
*
*MOVE W_FINAL-KWERT TO EDCESS.
*CESS
CESS = TOTALDUTY * 2 / 100.
*EDCESS
EDCESS = TOTALDUTY * 1 / 100..
*TOTAL VALUE AT FOOTER
TOTAL = W_FINAL-AMOUNT + CESS + EDCESS.
*VAT
VAT = TOTAL * 4 / 100.
*FREIGHT
*GROSS TOTAL
GROSSTOTAL = TOTAL + VAT.
***************************************************************
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZSF_SD_INVOICE1'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_NAM
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION FM_NAM
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS =
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS =
USER_SETTINGS = 'X'
TOTALDUTY = TOTALDUTY
CESS = CESS
EDCESS = EDCESS
TOTAL = TOTAL
PONUMBER = PONUMBER
PODATE = PODATE
GROSSTOTAL = GROSSTOTAL
VAT = VAT
INVOICENO = INVOICENO
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
TABLES
S_FINAL = T_FINAL
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Hi,
I Hope u are aware that in smartform interface you cannot pass local internl tables but must have global types...either you have tried passing a local internal table or you changed the global str before you supplied that to the FM
santhosh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
thanku for ur answer.runtime error is not coming now.but when im executing report with invoice no. in selection screen,a message ' reference field w_final-fkimg is unknown in form'.but i declared 'w_final like zform1' in global data&accordingly placed the fields in main window&in TABLE node i gave 'loop s_final into w_final'.
please help.
User | Count |
---|---|
76 | |
9 | |
8 | |
7 | |
6 | |
5 | |
5 | |
5 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.