SAPBRAINSONLINE ...  SAMPLE SOURCE CODES & PROJECTS
HOME TUTORIALS ARTICLES PROJECTS JOBS TOOLS REFERENCES CHAT FORUM GUESTS

Batch Input with 'Call Transaction'

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

Bence Toth

 

SAP Technical Tutorials

ABAP
DICTIONARY
INTERNAL TABLES
ALV Reports
SAPSCRIPTS
SMARTFORMS
LSMW
BDC
ALE
IDOC
USER EXITS
TRAN
SPORTING
ITS


SAP Functional Tutorials

FI (Financial)
CO (
Controlling)
HR (
Human Resource)
LO (
Logistics)
MM (
Materials Management)
PP (
Production Planning)
QM (
Quality Management)
SD (
Sales and Distribution)
TR (
Treasury and cash)
WM (
Warehouse Management)
PS (
project Systems)
PM (
plant Maintenance)
CA (
Cross Application)


SAP Interview questions

Architecture faqs
BDC faqs
DATADICTIONARY faqs
Logical Database Faqs
Modularization Faqs
Reports Faqs
Transactions Faqs


SAP References

transaction codes
System Fields
Function Modules
SAP TABLES
code optimization


TOOLS

SQL Trace tool
Runtime Analysis
LSMW
ABAP Query
CTS


 

 

Google