| Quicklinks |
Who needs ABAPers??? The functional person's tool for stress testing and data conversions.. |
|
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
|