Hi
I've checked the include RVADOPFO, this is the std code to open a form, the fm ADDR_GET_NEXT_COMM_TYPE is to format the address data, if this fm returns excpetion = 5, you should check which parameter is missing or is wrong.
As you can see in the following code RVADOPFO
IF NOT NAST-TCODE IS INITIAL AND NAST-NACHA EQ '5'.
* ... use stratagy to get communication type
CALL FUNCTION 'ADDR_GET_NEXT_COMM_TYPE'
EXPORTING
STRATEGY = NAST-TCODE
* ADDRESS_TYPE =
* ADDRESS_NUMBER = VBDKA-ADRNR
* PERSON_NUMBER = VBDKA-ADRNP
ADDRESS_NUMBER = ADDR_KEY-ADDRNUMBER
PERSON_NUMBER = ADDR_KEY-PERSNUMBER
IMPORTING
COMM_TYPE = LVS_COMM_TYPE
COMM_VALUES = LVS_COMM_VALUES
* TABLES
* STRATEGY_TABLE =
EXCEPTIONS
ADDRESS_NOT_EXIST = 1
PERSON_NOT_EXIST = 2
NO_COMM_TYPE_FOUND = 3
INTERNAL_ERROR = 4
PARAMETER_ERROR = 5
OTHERS = 6.
IF SY-SUBRC <> 0.
retcode = sy-subrc.
SYST-MSGTY = 'E'.
perform protocol_update.
ENDIF.
ENDIF.
* convert communication data
MOVE-CORRESPONDING NAST TO LVS_SNAST.
MOVE SY-REPID TO LVF_PROGRAM.
CALL FUNCTION 'CONVERT_COMM_TYPE_DATA'
EXPORTING
PI_COMM_TYPE = LVS_COMM_TYPE
PI_COMM_VALUES = LVS_COMM_VALUES
PI_SCREEN = US_SCREEN
* PI_NEWID =
PI_COUNTRY = US_COUNTRY
PI_REPID = LVF_PROGRAM
PI_SNAST = LVS_SNAST
IMPORTING
PE_ITCPO = LVS_ITCPO
PE_DEVICE = LVF_DEVICE
PE_MAIL_RECIPIENT = LVS_RECIPIENT
PE_MAIL_SENDER = LVS_SENDER
EXCEPTIONS
COMM_TYPE_NOT_SUPPORTED = 1
RECIPIENT_CREATION_FAILED = 2
SENDER_CREATION_FAILED = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
RETCODE = SY-SUBRC.
SYST-MSGTY = 'E'.
PERFORM PROTOCOL_UPDATE.
ENDIF.
check retcode eq 0. <--------------------------------------
The progam stops the running if RETCODE (so the sy.subrc ) is not equal 0
That means if the fm ADDR_GET_NEXT_COMM_TYPE fails, the fm OPEN_FORMS is not called.
Now the problem is to know the rest of you code, because the include RVADOPFO should be placed in the routine like this:
FORM FORM_OPEN USING US_SCREEN US_COUNTRY.
INCLUDE RVADOPFO.
ENDFORM.
and that routine should be called in your print program, like this:
PERFORM FORM_OPEN USING PROC_SCREEN VBDKL-LAND1.
CHECK RETCODE = 0.
It's very import the check after the form, because if the form raises an error, the print program is stopped without any error.
Max