Ringo Geschrieben 12. Dezember 2005 Geschrieben 12. Dezember 2005 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. Zitieren
-roTekuGeL- Geschrieben 12. Dezember 2005 Geschrieben 12. Dezember 2005 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'. Zitieren
Empfohlene Beiträge
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.