Warning: include_once(http://erpgenie.com/_borders/topabap.htm) [function.include-once]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/vhosts/erpgenie.com/httpdocs/abaptips/templates/rhuk_solarflare_ii/index.php on line 52

Warning: include_once() [function.include]: Failed opening 'http://erpgenie.com/_borders/topabap.htm' for inclusion (include_path='.:') in /var/www/vhosts/erpgenie.com/httpdocs/abaptips/templates/rhuk_solarflare_ii/index.php on line 52

Login

Login to view more content!!!





Lost Password?
No account yet? Register

Registered Access

Poll

What area of ABAP are you interested in?
 
Home arrow Tips and Tricks arrow ABAP Reports arrow Batch Input with 'Call Transaction'
Batch Input with 'Call Transaction' PDF Print E-mail
User Rating: / 0
PoorBest 
Written by Bence Toth   
Tuesday, 05 February 2008
Requirement:

Choose a transaction and write a Batch Input program with 'Call Transaction'. Do not use the Message tab feature of 'Call Transaction'. In this case the last error message will be at the SY-MSG* system fields. Recreate the complete error message from table T100! (This example is also used by the demonstration of SY-MSG* system  fields)

Solution:
    REPORT ZSYSTEM LINE-SIZE 255.
    TABLES: T100.
    * Batch-input data
    DATA: BEGIN OF G_BDCDATA OCCURS 100.
            INCLUDE STRUCTURE BDCDATA.
    DATA: END OF G_BDCDATA.

    DATA: G_MESSAGE(200).

    PERFORM FILL_BDCDATA.
    CALL TRANSACTION 'FI01'  USING G_BDCDATA  MODE 'N'.
    * of course it is nicer with a message itab, but this example
    * should also demostrate the use of system variables.
    SELECT SINGLE * FROM T100 WHERE
                    SPRSL = 'E'
                AND ARBGB = SY-MSGID
                AND MSGNR = SY-MSGNO.
    G_MESSAGE = T100-TEXT.

    PERFORM REPLACE_PARAMETERS  USING     SY-MSGV1
                                          SY-MSGV2
                                          SY-MSGV3
                                          SY-MSGV4
                                CHANGING  G_MESSAGE.

    WRITE: / 'System variables:'.
    SKIP.
    WRITE: / '        Sy-msgty:', SY-MSGTY.
    WRITE: / '        Sy-msgid:', SY-MSGID.
    WRITE: / '        Sy-msgno:', SY-MSGNO.
    WRITE: / '        Sy-msgv1:', SY-MSGV1.
    WRITE: / '        Sy-msgv2:', SY-MSGV2.
    WRITE: / '        Sy-msgv3:', SY-MSGV3.
    WRITE: / '        Sy-msgv4:', SY-MSGV4.
    SKIP.
    WRITE: / 'The transaction was called with a wrong country code.'.
    WRITE: / 'The error message should be either that or that you have'.
    WRITE: / '  no authorisation to execute the transaction'.
    SKIP.
    WRITE: / 'Message:'.
    SKIP.
    WRITE: / SY-MSGTY, G_MESSAGE.

    *---------------------------------------------------------------------*
    *       Build up the BDC-table                                        *
    *---------------------------------------------------------------------*
    FORM FILL_BDCDATA.
      REFRESH G_BDCDATA.

      PERFORM BDC_DYNPRO USING 'SAPMF02B' '0100'.
      PERFORM BDC_FIELD USING 'BNKA-BANKS' 'ZZZ'.
      PERFORM BDC_FIELD USING 'BDC_OKCODE' 'QQQQQ'.

    ENDFORM.

    *---------------------------------------------------------------------*
    *       FORM BDC_DYNPRO                                               *
    *---------------------------------------------------------------------*
    *       Batchinput: Start new Dynpro                                  *
    *---------------------------------------------------------------------*
    FORM BDC_DYNPRO USING P_PROGRAM P_DYNPRO.
      CLEAR G_BDCDATA.
      G_BDCDATA-PROGRAM = P_PROGRAM.
      G_BDCDATA-DYNPRO = P_DYNPRO.
      G_BDCDATA-DYNBEGIN = 'X'.
      APPEND G_BDCDATA.
    ENDFORM.                               " BDC_DYNPRO

    *---------------------------------------------------------------------*
    *       FORM BDC_FIELD                                                *
    *---------------------------------------------------------------------*
    *       Batchinput: Feld hinzufugen                                   *
    *---------------------------------------------------------------------*
    FORM BDC_FIELD USING P_FNAM P_FVAL.
      CLEAR G_BDCDATA.
      G_BDCDATA-FNAM = P_FNAM.
      G_BDCDATA-FVAL = P_FVAL.
      APPEND G_BDCDATA.
    ENDFORM.                               " BDC_FIELD
    *---------------------------------------------------------------------*
    *       FORM REPLACE_PARAMETERS                                       *
    *---------------------------------------------------------------------*
    *       ........                                                      *
    *---------------------------------------------------------------------*
    *  -->  P_PAR_1                                                       *
    *  -->  P_PAR_2                                                       *
    *  -->  P_PAR_3                                                       *
    *  -->  P_PAR_4                                                       *
    *  -->  P_MESSAGE                                                     *
    *---------------------------------------------------------------------*
    FORM REPLACE_PARAMETERS  USING    P_PAR_1
                                      P_PAR_2
                                      P_PAR_3
                                      P_PAR_4
                             CHANGING P_MESSAGE.

    * erst mal pruefen, ob numerierte Parameter verwendet wurden
      DO.
        REPLACE '&1' WITH P_PAR_1 INTO P_MESSAGE.
        IF SY-SUBRC <> 0.
          EXIT.
        ENDIF.
      ENDDO.
      DO.
        REPLACE '&2' WITH P_PAR_2 INTO P_MESSAGE.
        IF SY-SUBRC <> 0.
          EXIT.
        ENDIF.
      ENDDO.
      DO.
        REPLACE '&3' WITH P_PAR_3 INTO P_MESSAGE.
        IF SY-SUBRC <> 0.
          EXIT.
        ENDIF.
      ENDDO.
      DO.
        REPLACE '&4' WITH P_PAR_4 INTO P_MESSAGE.
        IF SY-SUBRC <> 0.
          EXIT.
        ENDIF.
      ENDDO.
    * falls keine numerierten Parameter vorh., ersetzen wie gehabt
      REPLACE '&' WITH P_PAR_1 INTO P_MESSAGE.
      CONDENSE P_MESSAGE.
      IF SY-SUBRC EQ 0.
        REPLACE '&' WITH P_PAR_2 INTO P_MESSAGE.
        CONDENSE P_MESSAGE.
        IF SY-SUBRC EQ 0.
          REPLACE '&' WITH P_PAR_3 INTO P_MESSAGE.
          CONDENSE P_MESSAGE.
          IF SY-SUBRC EQ 0.
            REPLACE '&' WITH P_PAR_4 INTO P_MESSAGE.
            CONDENSE P_MESSAGE.
          ENDIF.
        ENDIF.
      ENDIF.

    ENDFORM.                               "replace_parameters


Related Items:

 
< Prev   Next >

Google Search

Statistics

Contribution Activity
Utilities: 38
Tips and Tricks: 333
Sample Code: 164
Total Contributions: 550

Member Activity
Members: 6244 since 2/1/2007!
New: 0 since yesterday!
Visitors: 1080620
We have 1 guest online

Newest Members

Welcome our newest members:

Google Ads


Warning: include(http://erpgenie.com/_borders/bottom.htm) [function.include]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/vhosts/erpgenie.com/httpdocs/abaptips/includes/footer.php on line 22

Warning: include() [function.include]: Failed opening 'http://erpgenie.com/_borders/bottom.htm' for inclusion (include_path='.:') in /var/www/vhosts/erpgenie.com/httpdocs/abaptips/includes/footer.php on line 22