2009-03-09 19 views
1

Ermöglicht ABAP Schreiben in stdout und stderr? Ich muss kleine Programme schreiben, um Schnittstellenverbindungen zu SAP-Systemen über einen Job Scheduler (Cronacle) zu testen. Zum Beispiel, starten/schreiben 'Hallo Welt!' + Datum + Zeit, um zu stdout/exit. Ich bin ein .net-Programmierer, der mit diesem scheinbar TRIVIAL-Programm beauftragt ist, und ich stecke fest.ABAP Stdout und Stderr

Antwort

1

Appliaction Log (Transaktion SLG0, SLG1) Tische BAL *, ist sehr, sehr cool für Tracing ... es ist viel Spaß, weil es für den Hintergrund gut, auch ist Aufgaben, verschiedene Benutzerkonten, die für den Benutzer unsichtbar sind, und das Löschen alter Trace-Einträge können während ihrer Erstellung definiert werden. Es ist himmlisch, dass ich nicht mehr debuggen muss.

1

Ich gehe davon aus, dass Sie SAP auf einem UNIX/Linux-basierten System mit einem ABAP-Stack ausführen. SAP versucht, so viel wie möglich von dem zugrunde liegenden Betriebssystem zu abstrahieren. Diese Technik würde Windows mit einigen geringfügigen Änderungen beibehalten.

Um mit dem Betriebssystem zu interagieren, schauen Sie in SM49 "Externe OS-Befehle" von hier aus können Sie einen Befehl einrichten, um cat auszuführen und die gewünschten Werte an die Konsole zu übergeben.

Ich würde denken, Sie wären besser dran, Ihre Nachrichten in eine Datei auf dem Host-System durch schreiben. Das zu tun;

OPEN DATASET i_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT. 

dann schreiben Sie Daten in die Datei mit;

TRANSFER wa_text TO i_file. 

dann, wenn Sie fertig sind vergessen Sie nicht

CLOSE DATASET i_file. 

Sie können es auf den Inhalt der Datei suchen dann direkt in AL11 oder abholen aus dem Host. Wenn Sie die Nachrichten so sehen möchten, wie sie auf dem Unix-Host gedruckt werden. Verbinden Sie sich mit einer Konsole und verwenden Sie weniger + F/var/log/oder Tail. Unter Windows bin ich sicher, dass es einen gleichwertigen Ersatz gibt.

1

Es gibt mehrere Optionen, um "Debugging-Informationen" zu schreiben, so wie Sie gefragt haben. Zwei Möglichkeiten, die in früheren Antworten erwähnt wurden, sind das Anwendungsprotokoll (SLG1- und SBAL * -Funktionsmodule) und das Schreiben in eine Datei.

Für Ihre Situation erwähnen Sie jedoch laufende Programme im Hintergrund. In diesem Fall ist es am besten, wenn Sie einfach Nachrichten mit NACHRICHT ausgeben (Sie können die Ausgabe von Nachrichten an die Hintergrundverarbeitung einschränken, indem Sie den Wert von SY-BATCH überprüfen).

Nachrichten, die von einem im Hintergrund ausgeführten Programm ausgegeben werden, werden im Jobprotokoll angezeigt, wenn Sie zu SM37 wechseln.