Zum Inhalt springen

ABAP: Batch-Input


Ringo

Empfohlene Beiträge

Moinsen allerseits.

Ich soll bei mir im Betrieb ein Batch-Input Programm via CALL TRANSACTION schreiben.

Kennt jemand von euch ein einführendes Tutorial dafür?

Da ich vorher sowas noch nicht gemacht habe fehlt mir dafür jegliche Kentniss und ich weiss sogut wie nichts darüber.

Danke im Voraus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hier mal n kleines beispielprog...

die bdctab ist das eigentliche "Script" dass man der transacktion mitgibt...

mit sm35 aufzeichnen was du machen willst und die dann ansehn welche werte du dafür in das script schreiben musst

gibt aber sicher auch nen anderen weg das zu lösen, ich hab die batch idee hier zum. auch verworfen und hab den standard geändert

*TABLES: tmsqwlf,

*        tmsqwl,

*        usr02,

*        tmsbuftxt.

*

*DATA: bdctab        LIKE bdcdata   OCCURS 0 WITH HEADER LINE,

*      i_tms         LIKE tmsbuftxt OCCURS 0 WITH HEADER LINE,

*      i_tms2        LIKE tmsqwl    OCCURS 0 WITH HEADER LINE,

*      tr_txt(15)    TYPE c,

*      bdc_txt(20)   TYPE c,

*      count         TYPE i,

*      count2        TYPE i,

*      count_char(2) TYPE c.

*

*SELECTION-SCREEN BEGIN OF BLOCK eins WITH FRAME.

*PARAMETERS: p_bus(2) TYPE c,

*            p_kus(3) TYPE c,

*            p_pqr(8) TYPE c.

*

*SELECTION-SCREEN ULINE.

*

*SELECT-OPTIONS: sel_trq FOR tmsbuftxt-trkorr,

*                sel_own FOR usr02-bname.

*

*SELECTION-SCREEN ULINE.

*

*SELECT-OPTIONS: sel_dat FOR tmsqwl-as4date.

*

*SELECTION-SCREEN END OF BLOCK eins.

*

*SELECTION-SCREEN BEGIN OF BLOCK zwei WITH FRAME TITLE text-001.

*PARAMETERS: c_own AS CHECKBOX,

*            c_dep AS CHECKBOX,

*            c_adm AS CHECKBOX.

*SELECTION-SCREEN END OF BLOCK zwei.

*

*IF sel_dat IS NOT INITIAL.

*  SELECT * FROM tmsqwl INTO TABLE i_tms2 WHERE as4date IN sel_dat.

*

*  LOOP AT i_tms2.

*    SELECT SINGLE * FROM tmsbuftxt WHERE owner  IN sel_own

*                                     AND trkorr =  i_tms2-trkorr.

*    CLEAR i_tms.

*    MOVE-CORRESPONDING tmsbuftxt TO i_tms.

*    APPEND i_tms.

*  ENDLOOP.

*ELSE.

*  SELECT * FROM tmsbuftxt INTO TABLE i_tms WHERE owner  IN sel_own

*                                             AND trkorr IN sel_trq.

*ENDIF.

*

*

*IF p_pqr IS INITIAL.

*  CONCATENATE p_bus p_kus INTO tr_txt SEPARATED BY space.

*ELSE.

*  CONCATENATE p_bus p_kus p_pqr INTO tr_txt SEPARATED BY space.

*ENDIF.

*

*CONDENSE tr_txt.

*

*LOOP AT i_tms.

*  FIND tr_txt IN i_tms-text.

*  IF sy-subrc <> 0.

*    DELETE i_tms.

*    CONTINUE.

*  ELSE.

*    IF c_own = 'X'.

*      SELECT SINGLE * FROM tmsqwlf WHERE trkorr     = i_tms-trkorr

*                                     AND step       = 'SAP01'

*                                     AND deleted    = ''

*                                     AND new_import = ''.

*      IF sy-subrc <> 0.

*        DELETE i_tms.

*        CONTINUE.

*      ENDIF.

*    ENDIF.

*    IF c_dep = 'X'.

*      SELECT SINGLE * FROM tmsqwlf WHERE trkorr     = i_tms-trkorr

*                                     AND step       = 'SAP02'

*                                     AND deleted    = ''

*                                     AND new_import = ''.

*      IF sy-subrc <> 0.

*        DELETE i_tms.

*        CONTINUE.

*      ENDIF.

*    ENDIF.

*    IF c_adm = 'X'.

*      SELECT SINGLE * FROM tmsqwlf WHERE trkorr     = i_tms-trkorr

*                                     AND step       = 'SAP03'

*                                     AND deleted    = ''

*                                     AND new_import = ''.

*      IF sy-subrc <> 0.

*        DELETE i_tms.

*        CONTINUE.

*      ENDIF.

*    ENDIF.

*  ENDIF.

*  count = count + 1.

*ENDLOOP.

*

*IF count = 0.

*  WRITE:/ 'no transports found with this selection!'.

*  EXIT.

*ENDIF.

*

**Transaktion aufrufen

*CLEAR bdctab.

*bdctab-dynbegin = 'T'.	

*bdctab-fnam = 'STMS_QA'.

*APPEND bdctab.

*

*CLEAR bdctab.

*bdctab-program = 'SAPMSSY0'.	

*bdctab-dynpro = '120'.

*bdctab-dynbegin = 'X'.

*APPEND bdctab.

**####################

**Refresh

*CLEAR bdctab.

*bdctab-fnam = 'BDC_CURSOR'.	

*bdctab-fval = '38413'.

*APPEND bdctab.

*

*CLEAR bdctab.

*bdctab-fnam = 'BDC_OKCODE'.	

*bdctab-fval = '=REFR_WL'.

*APPEND bdctab.

**####################

**Filter Button

*CLEAR bdctab.

*bdctab-program = 'SAPMSSY0'.	

*bdctab-dynpro = '120'.

*bdctab-dynbegin = 'X'.

*APPEND bdctab.

*

*CLEAR bdctab.

*bdctab-fnam = 'BDC_CURSOR'.	

*bdctab-fval = '07/17'.

*APPEND bdctab.

*

*CLEAR bdctab.

*bdctab-fnam = 'BDC_OKCODE'.	

*bdctab-fval = '=FILT'.

*APPEND bdctab.

**####################

**multiple selection

*CLEAR bdctab.

*bdctab-program = 'SAPLTMSU_IQ'.	

*bdctab-dynpro = '504'.

*bdctab-dynbegin = 'X'.

*APPEND bdctab.

*

*CLEAR bdctab.

*bdctab-fnam = 'BDC_CURSOR'.	

*bdctab-fval = 'SO_TRKOR-LOW'.

*APPEND bdctab.

*

*CLEAR bdctab.

*bdctab-fnam = 'BDC_OKCODE'.	

*bdctab-fval = '=%002'.

*APPEND bdctab.

**####################

**Transporte eingeben

*CLEAR bdctab.

*bdctab-program = 'SAPLALDB'.	

*bdctab-dynpro = '3000'.

*bdctab-dynbegin = 'X'.

*APPEND bdctab.

*

*CLEAR bdc_txt.

*bdc_txt = '=P+'.

*

*IF count < 8.

*  CLEAR bdc_txt.

*  bdc_txt = '=ACPT'.

*ENDIF.

*

*CLEAR bdctab.

*bdctab-fnam = 'BDC_OKCODE'.	

*bdctab-fval = bdc_txt.

*APPEND bdctab.

*

*CLEAR bdctab.

*bdctab-fnam = 'BDC_SUBSCR'.	

*bdctab-fval = 'SAPLALDB

*3010SCREEN_HEADER'.

*APPEND bdctab.

*

*count2 = 0.

*

*LOOP AT i_tms.

*

*  CLEAR bdc_txt.

*  count2 = count2 + 1.

*  count_char = '00'.

*  count_char = count_char + count2.

*  CONCATENATE 'RSCSEL-SLOW_I(' count_char ')'INTO bdc_txt.

*

*  CLEAR bdctab.

*  bdctab-fnam = bdc_txt.

*  bdctab-fval = i_tms-trkorr.

*  APPEND bdctab.

*

*  IF count2 = 8.

*    count2 = 1.

*

*    CLEAR bdctab.

*    bdctab-program = 'SAPLALDB'.	

*    bdctab-dynpro = '3000'.

*    bdctab-dynbegin = 'X'.

*    APPEND bdctab.

*

*    CLEAR bdc_txt.

*    bdc_txt = '=P+'.

*

*    CLEAR bdctab.

*    bdctab-fnam = 'BDC_OKCODE'.	

*    bdctab-fval = bdc_txt.

*    APPEND bdctab.

*

*    CLEAR bdctab.

*    bdctab-fnam = 'BDC_SUBSCR'.	

*bdctab-fval = 'SAPLALDB

*3010SCREEN_HEADER'.

*    APPEND bdctab.

*

*  ENDIF.

*

*ENDLOOP.

**letzten screen leer lassen, jedoch nötig wegen ACPT code...

*CLEAR bdc_txt.

*bdc_txt = '=ACPT'.

*

*CLEAR bdctab.

*bdctab-fnam = 'BDC_OKCODE'.	

*bdctab-fval = bdc_txt.

*APPEND bdctab.

*

*CLEAR bdctab.

*bdctab-fnam = 'BDC_SUBSCR'.	

*bdctab-fval = 'SAPLALDB

*3010SCREEN_HEADER'.

*APPEND bdctab.

*

**#########################

**selektion erneut bestätigen

*CLEAR bdctab.

*bdctab-program = 'SAPLTMSU_IQ'.	

*bdctab-dynpro = '504'.

*	

*bdctab-dynbegin = 'X'.

*APPEND bdctab.

*

*CLEAR bdctab.

*bdctab-fnam = 'BDC_CURSOR'.	

*bdctab-fval = 'SO_TRKOR-LOW'.

*APPEND bdctab.

*

*CLEAR bdctab.

*bdctab-fnam = 'BDC_OKCODE'.	

*bdctab-fval = '=OKAY'.

*APPEND bdctab.

**#########################

*

*CALL TRANSACTION 'STMS_QA' USING bdctab MODE 'E'.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...