ich möchte einen Terminauftrag anlegen und dies sofort via Call Transaction (VA01) machen. Nur, wenn der sy-subrc NE 0 ist, dann sollen die Daten in eine Batch Input Mappe geschrieben werden.
Der Call Transaction funktioniert leider nicht; wenn die Daten sofort in die Mappe geschrieben werden und diese dann abgespielt wird, klappt alles.
Offensichtlich gibt es Probleme beim Materialverkaufstext einer Position. Dort will ich den Button 'Detail' drücken und dann im SAP Script Editor den Text eingeben.
Der Unterschied beim Hellen abspielen ist folgender:
BI-Mappe: aus der Kundenauftragspos. / Materialverkaufstext ins Detail springen -> SAP-Script-Editor -> der Text aus der Mappe ist da und auch der BDC-okCode =TXBA
Call Tr.: aus der Kundenauftragspos. / Materialverkaufstext ins Detail springen -> SAP-Script-Editor -> der Text aus der Mappe ist nicht da und kein BDC-okCode
hier noch ein Stück Coding:
PERFORM ap_bdc_dynpro USING 'SAPMV45A' '4003'.
PERFORM ap_bdc_field USING 'BDC_OKCODE' '=TP_DETAIL'.
PERFORM ap_bdc_field USING 'LV70T-SPRAS' 'DE'.
PERFORM ap_bdc_dynpro USING 'SAPLSTXX' '1100'.
PERFORM ap_bdc_field USING 'BDC_OKCODE' '=TXBA'.
PERFORM ap_bdc_field USING 'RSTXT-TXPARGRAPH(01)' '*'.
PERFORM ap_bdc_field USING 'RSTXT-TXLINE(02)' wa_batch_inp-adresse.
Warum gehen beim Call Transaction der Text und der BDC-okCOde verloren?
Hallo Britta,
könnte es sein, dass irgendwo im SAPMV45A/B die Parameter SY-CALLD, SY-BINPT, SY-BATCH abgefragt werden und dadurch ein anderes Coding durchlaufen wird?
Warum unterscheidest Du zwischen Batch-input und Call Tx? Wäre auch die Verwendung von einem BAPI-Baustein möglich? Benötigst Du die Protokollierung, wie sie beim Batch-Input gegeben ist?
Hast Du schonmal darüber nachgedacht das ganze per Catt/eCatt zu erledigen?
ich benutze beim Call Tx den Zusatz OPTIONS from opt. Dort kann ich SY-CALLD nicht mitgeben?! Mit NOBINPT und NOBIEND habe ich mich schon reichlich versucht. Setze ich einen der beiden Parameter auf space, dann kommt eine Fehlermeldung (Position markieren), die ich gar nicht nachvollziehen kann. Wenn beide Parameter = 'X' sind, dann wird (so wie ich es mitgebe) der SAPscriptEditor SAPLSTXXX angesteuert, allerdings nicht das Dynpro 1100 (der Texteditor mit 72 Zeichen je Zeile), sondern das Dynpro 2101 (so eine Art Fließtexteditor), deshalb fehlen dann auch meine Texte. Ich müßte wohl herausbekommen, warum bei Call Tx nicht das übergebene Dynpro angesteuert wird?!
Verarbeitung per BAPI mache ich nicht, da dieses Programm (leider, d.h. ich finde es nicht so schön) online gestartet werden soll (Hochladen einer Excel-Datei mit den zu verarbeitenden Daten). Für die Protokollierung benötige ich die gebuchte(n) Auftragsnummer(n), die ich nach Call Tx bequem mit SET PARAMETER ID bekomme. Ansonsten soll auch noch aus dem Protokoll die Verzweigung in die VA03 mit der entsprechenden Auftragsnummer möglich sein. Deshalb habe ich es so gemacht. Für das Protokoll der abgespielten BI-Mappen mußte ich deshalb leider auch noch ein Program schreiben, das die Auftragsnummern herausfiltert.
Die Technik mit Catt/eCatt kenne ich noch nicht. Dafür ist dann wahrscheinlich der Parameter CATTMODE aus der Struktur opt gedacht?!
ich habe mir den Task durchgeschaut und denke auch, dass du einen FB benutzen solltest. Das schone daran ist, das dir dieser die Dokumentennummer direkt zurück gibt. Du mußt also keine Protokolle der Batch Input Mappen auswerten. Außerdem prozessiert der FB haargenau eine VA01 (alle Funktionen und User Exits). Probleme können nur entstehen, wenn in der VA01 Modifikationen sind, die sich unterscheidlich verhalten sollen im Dialog, Batch oder FB. Da mußt du dann etwas aufpassen.
Als FB empfehle ich dir den SD_SALESDOCUMENT_CREATE. Du mußt hier nur aufpassen, dass du die Mengen in der Struktur sales_schedules_in mitgibts. Ansonsten ist alles selbsterklärend. Falls du mal auch Aufträge simulieren willst, kannst du auch diesen Baustein verwenden.
Ich hoffe, dass ich etwas weiterhelfen konnte.