Quantcast
Channel: SCN: Message List - ABAP Development
Viewing all articles
Browse latest Browse all 10425

Re: WRITE_FORM is invalid, OPEN_FORM is missing

$
0
0

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


Viewing all articles
Browse latest Browse all 10425

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>