Anwendungslog im Update Task funktioniert nicht

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Anwendungslog im Update Task funktioniert nicht

Beitrag von Xilukarim (ForumUser / 56 / 10 / 5 ) »
Hallo,

ich habe ein Problem mit einem meiner Programme. Es geht um ein Druckprogramm zu Transportaufträgen, eine Kopie des Standardprogramms RLVSDR00.

Die Transportaufträge werden im Entwicklungs- und Q-System (3 Monate alte Kopie vom Produktivsystem) für alle Testfälle ordentlich gedruckt. Nur im Produktivsystem zickt es rum, d.h. manchmal wird gedruckt, manchmal nicht. Leider wird das Druckprogramm im Update-Task und in einem Job ausgeführt (über RSNAST00), so dass mir das Debuggen dort sehr schwer fällt (Hinweise habe ich auf SCN gelesen, funktioniert aber noch nicht). Wenn ich das Druckprogramm direkt über SA38 ausführe, wird ordentlich gedruckt.

Jetzt habe ich mir gedacht, ich verwende mal das Anwendungslog und habe mein Programm mit lauter Meldungen vollgepackt. Aber auch hier ist es so, das die Meldungen nur erzeugt und gespeichert werden, wenn das Programm direkt aufgerufen wird, aber nicht wenn es über RSNAST00 gedruckt wird. Da das Programm ja ab und zu funktioniert, müssten hier zumindest Meldungen generiert werden, passiert aber nicht. Das ist ein Verhalten was in allen System gleich ist.

Habt ihr eine Idee wie ich hier dem Fehler auf die Spur kommen kann bzw. das Anwendungslog zum laufen bekomme?

Danke schonmal!

VG Xilukarim
ECC 6.07
Netweaver 7.40

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Anwendungslog im Update Task funktioniert nicht

Beitrag von jocoder (Specialist / 339 / 3 / 101 ) »
Ein paar Hinweise, wo noch nach dem Fehler gesucht werden kann:
Existieren in der sm13 abgebrochene Verbuchungssätze?
Was steht im Job-Log (sm37)?

Kannst du kurz posten, wie dein Anwendungslog gesichert wird, um auszuschließen, ob eine verbotene Anweisung in der Verbuchung ausgeführt wird?

Folgende Benutzer bedankten sich beim Autor jocoder für den Beitrag:
Xilukarim


Re: Anwendungslog im Update Task funktioniert nicht

Beitrag von msfox (Specialist / 307 / 50 / 63 ) »
Ohne es jetzt konkret zu testen....
Für das Anwendungslog erstellst du ja zunächst ein "Instanz" und erhälst ein "Handle". Mit diesem schreibst du dann immer ins Anwendungslog.
Irgendwann beendest du Instanz vom Anwendungslog.
Nun ist entscheidend, wo das COMMIT WORK absetzt, damit der Verbucher die Fuba aus dem IN UPDATE TASK ausführten kann. Erfolgt das Commit nach dem beenden der Instanz vom Anwendungslog, wird natürlich nix mehr gelogt.

Folgende Benutzer bedankten sich beim Autor msfox für den Beitrag:
Xilukarim


Re: Anwendungslog im Update Task funktioniert nicht

Beitrag von Xilukarim (ForumUser / 56 / 10 / 5 ) »
jocoder hat geschrieben:
29.07.2020 12:45
Ein paar Hinweise, wo noch nach dem Fehler gesucht werden kann:
Existieren in der sm13 abgebrochene Verbuchungssätze?
Was steht im Job-Log (sm37)?
SM13 ist leer, und im Job-Log wurde alles normal verarbeitet (keine Fehlermeldung)

jocoder hat geschrieben:
29.07.2020 12:45
Kannst du kurz posten, wie dein Anwendungslog gesichert wird, um auszuschließen, ob eine verbotene Anweisung in der Verbuchung ausgeführt wird?

Code: Alles auswählen.

form log_save_db.

  call FUNCTION 'BAL_DB_SAVE'
     exporting
*      I_CLIENT             = SY-MANDT    " Mandant, in dem neue Protokolle gesichert werden sollen
       I_IN_UPDATE_TASK     = 'X'    " In UPDATE TASK sichern
*      I_SAVE_ALL           = SPACE    " Alle Protokolle im Hauptspeicher sichern
      I_T_LOG_HANDLE       = value BAL_T_LOGH( ( g_log_handle ) )    " Tabelle der Protokoll-Handles
*      I_2TH_CONNECTION     = SPACE    " FALSE: keine Sekundärverbindung
*      I_2TH_CONNECT_COMMIT = SPACE    " FALSE: kein COMMIT im Baustein
*      I_LINK2JOB           = 'X'    " boolsche Variable (X=true, -=false, space=unknown)
*    importing
*      E_NEW_LOGNUMBERS     =     " Tabelle mit den neuen Protokollnummern
*      E_SECOND_CONNECTION  =     " Name der Sekundärverbindung
    exceptions
      LOG_NOT_FOUND        = 1
      SAVE_NOT_ALLOWED     = 2
      NUMBERING_ERROR      = 3
      OTHERS               = 4
    .
  if sy-subrc <> 0.
*   message id sy-msgid type sy-msgty number sy-msgno
*              with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  endif.
endform.
Ich habe aber jetzt eine andere Idee. Ich werde die Meldungen als "normale" Meldungen im Job ausgeben, die sollten dann ja funktionieren.

Wenn mir jemand noch eine Idee zum Debuggen geben kann, immer her damit. Ich habe verschiedene Einstellungen im Debugger ausprobiert:

Screenshot Einstellungen Debugging.png

Im SCN habe ich zwar einiges gefunden, aber die Postings sind teilweise recht alt und ich finde die entsprechenden Menüpunkte so nicht. z.B. hier: https://answers.sap.com/questions/60697 ... -task.html
ECC 6.07
Netweaver 7.40

Re: Anwendungslog im Update Task funktioniert nicht

Beitrag von a-dead-trousers (Top Expert / 4286 / 214 / 1142 ) »
Verbuchungsdebugging aktivieren.
Break-Point in deinem Coding aktivieren. (Am Besten gleich einen Externen)
Im normalen Debugger bis zum COMMIT WORK springen.
Nach F5 beim COMMIT WORK solltest du im Verbucherprozess landen.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Xilukarim

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Anwendungslog im Update Task funktioniert nicht

Beitrag von Xilukarim (ForumUser / 56 / 10 / 5 ) »
a-dead-trousers hat geschrieben:
30.07.2020 08:01
Verbuchungsdebugging aktivieren.
Break-Point in deinem Coding aktivieren. (Am Besten gleich einen Externen)
Im normalen Debugger bis zum COMMIT WORK springen.
Nach F5 beim COMMIT WORK solltest du im Verbucherprozess landen.
Vielen Dank, werde ich mal probieren (sobald ich den Commit im Standard-SAP-Code gefunden habe)
ECC 6.07
Netweaver 7.40

Re: Anwendungslog im Update Task funktioniert nicht

Beitrag von Xilukarim (ForumUser / 56 / 10 / 5 ) »
LÖSUNG GEFUNDEN!

Das Programm kann sowohl direkt als Report, als auch über RSNAST00 gestartet werden. Woran ich nicht gedacht habe ist, dass beim Start über RSNAST00 die Ereignisse Start-of-Selection und End-Of-Selection nicht prozessiert werden. Da hatte ich den Start und das Speichern des Anwendungslogs drin.

Ich habe das jetzt in Teile des Programms verlagert, die auf alle Fälle ausgeführt werden und jetzt klappt es auch.

Hätte ich hier eine vernünftige Fehlerverwaltung drin:

Code: Alles auswählen.

 
if sy-subrc <> 0.
*   message id sy-msgid type sy-msgty number sy-msgno
*              with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  endif.
wäre mir das auch vorher im Job-Log aufgefallen.

Danke an alle für die Hilfe!

Xilukarim
ECC 6.07
Netweaver 7.40

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2321
Views
starting new task <-> in update task
von Matthias_L. » 13.09.2007 19:15 • Verfasst in ABAP® Core
1
Antw.
4661
Views
SET UPDATE TASK LOCAL
von ewx » 16.06.2008 18:13 • Verfasst in ABAP® Core
2
Antw.
4946
Views
CALL FUNCTION IN UPDATE TASK
von Frank59 » 27.11.2006 13:38 • Verfasst in ABAP® Core
6
Antw.
2651
Views
Authority-check und Update Task
von GastX » 11.11.2016 19:37 • Verfasst in ABAP® Core
1
Antw.
2838
Views
Emailversand eines PDF Spool in Update Task
von Tron » 29.01.2020 15:46 • Verfasst in Tips + Tricks & FAQs

Über diesen Beitrag



Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.