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
einen Blick auf die Anwendungsprotokollierung Take - http://help.sap.com/saphelp_nw04/helpdata/en/d3/1fa03940fab918e10000000a114084/frameset.htm
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.
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.
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.
- 1. Speichern Sie stdout, stderr und stdout + stderr synchron
- 2. paramiko kombinieren stdout und stderr
- 3. Apache Spark Stderr und Stdout
- 4. Piping popen stderr und stdout
- 5. vim filter und stdout/stderr
- 6. LLVM stdin/stdout/stderr
- 7. über stdout/stderr Umleitungen
- 8. stderr Umleitung zu stdout
- 9. Dupliziere stdout zu stderr
- 10. Piping sowohl stdout und stderr in bash?
- 11. Muting stdout und stderr während Mokka-Tests
- 12. Ruby synchronisierte Ausgabe von $ stdout und $ stderr
- 13. Redirect STDOUT und STDERR zu Datei "> &"
- 14. stdout und stderr nach SIGPIPE wiederherzustellen
- 15. Python Logging Split zwischen stdout und stderr
- 16. Redirect stdout und stderr zu Funktion
- 17. Wiederherstellen von stdout und stderr Standardwert
- 18. Protokollierung stderr und stdout mit log4j
- 19. Capturing stderr, aber nicht stdout
- 20. redirect stdout/stderr in C
- 21. Capture stderr von Python Subprozess.Popen (Befehl, stderr = subprocess.PIPE, stdout = subprocess.PIPE)
- 22. Wie Umleitung Child-Prozess stdout/stderr auf den Hauptprozess stdout/stderr in Java?
- 23. umleiten stdout und stderr auf die gleiche Datei und wiederherstellen
- 24. Wie stdout/stderr mit googletest erfassen?
- 25. Warum wird STDERR auf STDOUT umgeleitet
- 26. Redirect PostgreSQL Qt-Treiber stdout/stderr Ausgabe
- 27. Unterdrücken stdout/stderr Drucken von Python-Funktionen
- 28. , wie man richtig alle stdout/stderr erfassen
- 29. Wie erfasse ich Aufforderungen in stdout/stderr?
- 30. umleiten stderr zu stdout in c-shell