2016 Feb 24 6:52 AM
Iam printing a script for cash payments in fbcj transaction.I collected data from three internal tables into a final internal table.But while executing iam getting error stating that 'write form is invalid start form is missing.here is my code:
PARAMETERS: P_COCODE TYPE TCJ_POSITIONS-COMP_CODE,
P_BRANCH TYPE TCJ_POSITIONS-CAJO_NUMBER.
DATA: BEGIN OF ITAB1 OCCURS 0,
COMP_CODE TYPE TCJ_POSITIONS-COMP_CODE,
CAJO_NUMBER TYPE TCJ_POSITIONS-CAJO_NUMBER,
P_PAYMENTS TYPE TCJ_POSITIONS-P_PAYMENTS,
GL_ACCOUNT TYPE TCJ_POSITIONS-GL_ACCOUNT,
KOSTL TYPE TCJ_POSITIONS-KOSTL,
PRCTR TYPE TCJ_POSITIONS-PRCTR,
END OF ITAB1.
DATA:BEGIN OF ITAB2 OCCURS 0,
CAJO_NUMBER TYPE TCJ_DOCUMENTS-CAJO_NUMBER,
DOCUMENT_DATE TYPE TCJ_DOCUMENTS-DOCUMENT_DATE,
DOCUMENT_NUMBER TYPE TCJ_DOCUMENTS-DOCUMENT_NUMBER,
END OF ITAB2.
DATA:BEGIN OF ITAB3 OCCURS 0,
CAJO_NUMBER TYPE TCJ_CJ_NAMES-CAJO_NUMBER,
CAJO_NAME TYPE TCJ_CJ_NAMES-CAJO_NAME,
END OF ITAB3.
DATA: BEGIN OF ITAB4 OCCURS 0,
COMP_CODE TYPE TCJ_POSITIONS-COMP_CODE,
CAJO_NUMBER TYPE TCJ_POSITIONS-CAJO_NUMBER,
P_PAYMENTS TYPE TCJ_POSITIONS-P_PAYMENTS,
GL_ACCOUNT TYPE TCJ_POSITIONS-GL_ACCOUNT,
KOSTL TYPE TCJ_POSITIONS-KOSTL,
PRCTR TYPE TCJ_POSITIONS-PRCTR,
DOCUMENT_DATE TYPE TCJ_DOCUMENTS-DOCUMENT_DATE,
DOCUMENT_NUMBER TYPE TCJ_DOCUMENTS-DOCUMENT_NUMBER,
CAJO_NAME TYPE TCJ_CJ_NAMES-CAJO_NAME,
END OF ITAB4.
DATA: WA_TAB1 LIKE LINE OF ITAB1,
WA_TAB2 LIKE LINE OF ITAB2,
WA_TAB3 LIKE LINE OF ITAB3,
WA_TAB4 LIKE LINE OF ITAB4.
SELECT COMP_CODE CAJO_NUMBER P_PAYMENTS GL_ACCOUNT KOSTL PRCTR FROM TCJ_POSITIONS INTO TABLE ITAB1 WHERE COMP_CODE = P_COCODE AND
CAJO_NUMBER = P_BRANCH.
SELECT CAJO_NUMBER DOCUMENT_DATE DOCUMENT_NUMBER FROM TCJ_DOCUMENTS INTO TABLE ITAB2 FOR ALL ENTRIES IN ITAB1 WHERE COMP_CODE = ITAB1-COMP_CODE
AND CAJO_NUMBER = ITAB1-CAJO_NUMBER.
SELECT CAJO_NUMBER CAJO_NAME FROM TCJ_CJ_NAMES INTO TABLE ITAB3 FOR ALL ENTRIES IN ITAB1 WHERE COMP_CODE = ITAB1-COMP_CODE AND
CAJO_NUMBER = ITAB1-CAJO_NUMBER.
LOOP AT ITAB1 INTO WA_TAB1.
WA_TAB4-COMP_CODE = WA_TAB1-COMP_CODE.
WA_TAB4-CAJO_NUMBER = WA_TAB1-CAJO_NUMBER.
WA_TAB4-P_PAYMENTS = WA_TAB1-P_PAYMENTS.
WA_TAB4-GL_ACCOUNT = WA_TAB1-GL_ACCOUNT.
WA_TAB4-KOSTL = WA_TAB1-KOSTL.
WA_TAB4-PRCTR = WA_TAB1-PRCTR.
READ TABLE ITAB2 WITH KEY CAJO_NUMBER = WA_TAB1-COMP_CODE.
WA_TAB4-DOCUMENT_DATE = WA_TAB2-DOCUMENT_DATE.
WA_TAB4-DOCUMENT_NUMBER = WA_TAB2-DOCUMENT_NUMBER.
READ TABLE ITAB3 WITH KEY CAJO_NUMBER = WA_TAB1-COMP_CODE.
WA_TAB4-CAJO_NAME = WA_TAB3-CAJO_NAME.
APPEND WA_TAB4 TO ITAB4.
ENDLOOP.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
FORM = 'ZCASHPAYMENTS'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'E1'.
LOOP AT ITAB4 INTO WA_TAB4.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'E2'.
ENDLOOP.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'E3'.
LOOP AT ITAB4 INTO WA_TAB4.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'E4'.
ENDLOOP.
CALL FUNCTION 'CLOSE_FORM'.
Iam attaching a screen of text element too and I used only one page window
2016 Feb 24 7:04 AM
Did you try adding the WINDOW/FUNCTION parameter in WRITE_FORM?
2016 Feb 24 7:10 AM
2016 Feb 24 7:21 AM
did you try setting a breakpoint in your Open_Form / Start_Form and check if its calling the correct form name?
2016 Feb 24 9:02 AM
Hi Rakesh,
Please check in TNAPR table if correct form name and print program name mentioned in NACE transaction.
Also pass window name in write_form.
Regards,
Pravin
2016 Feb 24 6:07 PM
The error message is telling you exactly what the problem is. You have not included a call to FM START_FORM. Please read the documentation on this FM.
Rob
2016 Feb 24 6:08 PM
Hello Rakesh,
What is the Correspondence type which you are using to print?
1) Check in transaction OB77 whether that correspondence type is existing.
2) Check in transaction OB78 whether the program is assigned to that correspondence type for your company code.
3) Transaction SPRO --> IMG --> Financial Accounting --> Bank accounting --> Business transaction --> Bill of exchange transaction --> Bill of exchange receivable --> Bill of exchange receivable Failed payment transaction --> Make and check settings for correspondence --> Define Form Names for Correspondence Print
Check whether the form name is configured to the correspondence and company code, also if there is Form ID, remove that form ID and try.
4) Check in SMOD for enhancement "RFKORIEX" whether there is any custom code implemented which is causing the issue.
Regards,
Thanga