FUBA EXCEPTIONS Protokolieren

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

Getting started ... Alles für einen gelungenen Start.
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

FUBA EXCEPTIONS Protokolieren

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
Hallo Experten,
ich Habe ein FUBA in Programm ausgeruffen.
meistens alles ok, aber gibt es auch Extentions. Wie kann man Fehler Protokoliren in ein Ausgabe Datei lassen.
Danke.
So habe ich gemacht, aber bei mir alle Messeg leer sind, deshalb soll ich manuel zuweisen. Und gern möchte ich bei Ausgabe Datei so haben:
zum Beispiel: Fehler :unknown_dp_error = 14
Danke.
Call Fuba '123'
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22
.
IF sy-subrc <> 0.
ls_messege-msgid = sy-msgid.
ls_messege-msgno = sy-subrc.
ls_messege-msgv1 = sy-msgv1.
ls_messege-msgv2 = sy-msgv2.
ls_messege-msgv3 = sy-msgv3.
ls_messege-msgv4 = wa_trdir-name.
ls_messege-msgv1_src = sy-msgv4.
ls_messege-msgv2_src = 'FEHLER'.
ELSE.

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


Re: FUBA EXCEPTIONS Protokolieren

Beitrag von nickname8 (Specialist / 134 / 17 / 19 ) »
Mach dir doch eine Log-Tabelle mit folgenden Feldern:

UNAME
DATUM
UZEIT
Zeitstempel (oft reicht die sekundengenaue aufzeichnung von UZEIT nicht)
MSGID
MSGTY
MSGNO
MSGV1
MSGV2
MSGV3
MSGV4
CHAR300

und damit füllst du was in der sy - Struktur steht.
Vergiss nicht, vorher ein GET TIME aufzurufen, damit die sy-zeiten aktualisiert werden.

Ich habe mir eine Methode in der Art gebaut und fülle die Methode jeweils entweder mit variablen vom Typ bapiret, bapiret2, sy und anderen diversen Rückgabetabellen.

Re: FUBA EXCEPTIONS Protokolieren

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
nickname8 hat geschrieben:Mach dir doch eine Log-Tabelle mit folgenden Feldern:

UNAME
DATUM
UZEIT
Zeitstempel (oft reicht die sekundengenaue aufzeichnung von UZEIT nicht)
MSGID
MSGTY
MSGNO
MSGV1
MSGV2
MSGV3
MSGV4
CHAR300

und damit füllst du was in der sy - Struktur steht.
Vergiss nicht, vorher ein GET TIME aufzurufen, damit die sy-zeiten aktualisiert werden.

Ich habe mir eine Methode in der Art gebaut und fülle die Methode jeweils entweder mit variablen vom Typ bapiret, bapiret2, sy und anderen diversen Rückgabetabellen.

Danke für Antwort, etwas änliches habe ich schon gemacht, aber es ist kein Standard lösung und bei mir MSGNO
MSGV1
MSGV2
MSGV3
MSGV4 immer leer sind, nur SY-... gefühlt.

Re: FUBA EXCEPTIONS Protokolieren

Beitrag von nickname8 (Specialist / 134 / 17 / 19 ) »
Debug dir das hier mal:

Code: Alles auswählen.

DATA: ls_mess TYPE lmess.

DATA: rfc_db_opt  TYPE TABLE OF rfc_db_opt.
DATA: rfc_db_fld  TYPE TABLE OF rfc_db_fld.
DATA: tab512      TYPE TABLE OF tab512.
DATA: char300     TYPE char300.

CALL FUNCTION 'RFC_READ_TABLE'
  EXPORTING
    query_table = 'TEST'
*   DELIMITER   = ' '
*   NO_DATA     = ' '
*   ROWSKIPS    = 0
*   ROWCOUNT    = 0
  TABLES
    options     = rfc_db_opt
    fields      = rfc_db_fld
    data        = tab512
  EXCEPTIONS
    OTHERS      = -1.

IF sy-subrc <> 0.

  MOVE-CORRESPONDING sy TO ls_mess.

  MESSAGE ID ls_mess-msgid TYPE ls_mess-msgty NUMBER ls_mess-msgno
    WITH ls_mess-msgv1 ls_mess-msgv2 ls_mess-msgv3 ls_mess-msgv4
    INTO char300.

ENDIF.

Re: FUBA EXCEPTIONS Protokolieren

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
nickname8 hat geschrieben:Debug dir das hier mal:

Code: Alles auswählen.

DATA: ls_mess TYPE lmess.

DATA: rfc_db_opt  TYPE TABLE OF rfc_db_opt.
DATA: rfc_db_fld  TYPE TABLE OF rfc_db_fld.
DATA: tab512      TYPE TABLE OF tab512.
DATA: char300     TYPE char300.

CALL FUNCTION 'RFC_READ_TABLE'
  EXPORTING
    query_table = 'TEST'
*   DELIMITER   = ' '
*   NO_DATA     = ' '
*   ROWSKIPS    = 0
*   ROWCOUNT    = 0
  TABLES
    options     = rfc_db_opt
    fields      = rfc_db_fld
    data        = tab512
  EXCEPTIONS
    OTHERS      = -1.

IF sy-subrc <> 0.

  MOVE-CORRESPONDING sy TO ls_mess.

  MESSAGE ID ls_mess-msgid TYPE ls_mess-msgty NUMBER ls_mess-msgno
    WITH ls_mess-msgv1 ls_mess-msgv2 ls_mess-msgv3 ls_mess-msgv4
    INTO char300.

ENDIF.
Danke aber es ist di fast gleiche lösung , wie bei mir. Ich bekomme kein Richtege fehler beschreibung. Ich bekomme nuemmer von Fehler zum beispiel 14, aber erleuturn von Fehler 'unknown_dp_error ' bekomme ich nicht.

Re: FUBA EXCEPTIONS Protokolieren

Beitrag von nickname8 (Specialist / 134 / 17 / 19 ) »
Dann guck mal im FUBA was passiert, bevor 'unknown_dp_error' "geraised" wird. Da wird sicherlich die sy-Struktur mit msgid etc gefüllt.
In der SE91 kannst du gucken, welche Fehlermeldung sich dahinter verbrigt oder so wie ich mit MESSAGE ... INTO var die Nachricht in eine Variable schreiben.
Bitte nochmal genau die ls_mess und char300-Variablen in meinem Programm im Debugger angucken.

Re: FUBA EXCEPTIONS Protokolieren

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
autohandel7 hat geschrieben:aber bei mir alle Messeg leer sind, deshalb soll ich manuel zuweisen.
Dann musst du das manuell machen:

Code: Alles auswählen.

CASE sy-subrc.
  WHEN ...
  WHEN 14.
    "Fehlernummer 001: "Fehler bei Funktionsbaustein &: SUBRC=& - &"
     message 001(zz) with '123' sy-subrc 'unknown_dp_error'.
ENDCASE.
Eine Fehlernummer aus dem Funktionsbaustein bekommst du nur, wenn der RAISE mit MESSAGE ... RAISING erzeugt wurde. Das passiert jedoch leider eher selten.
Man kann die EXCEPTION auch leider nicht dynamisch ermitteln, da du in dem Programm festlegst, dass 14 = unknown_dp_error ist.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
autohandel7


Re: FUBA EXCEPTIONS Protokolieren

Beitrag von deejey (Specialist / 418 / 128 / 45 ) »
Es werden ja nicht bei allen FuBa sy-msg-Inhalte zurückgeliefert sondern einfach nur sy-subrc, in dem Fall muss man eben sy-subrc im Klartext protokollieren

Re: FUBA EXCEPTIONS Protokolieren

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Ich befürchte, ihr habt ihn alle falsch verstanden. Seine Frage ist viel einfacher. Er will keinen MESSAGE und keine Messageparameter haben; sein Baustein erzeugt sowas gar nicht. Er will einfach nur den Namen der Exception anstelle der Nummer haben. Im einfachsten Fall will er den dann per WRITE (oder auf andere Weise) ausgeben.

Da aber das Mapping zwischen Name und Nummer der Exception nirgendwo festgelegt ist, sondern er das ja gerade mit seinem CALL FUNCTION erst (willkürlich) festlegt, gibt es keine andere Lösung, als direkt danach das Mapping aus dem CALL FUNCTION nochmal zu wiederholen und abhängig vom SY-SUBRC eine Stringvariable mit dem Text zu befüllen. Ab 7.40 würde sich hier ein Konstrukt mit SWITCH anbieten, in älteren Releases ein dicker CASE.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
autohandel7


Re: FUBA EXCEPTIONS Protokolieren

Beitrag von deejey (Specialist / 418 / 128 / 45 ) »
Das meine ich ja, den Klarnamen der Exception hart kodietrt protokollieren

Folgende Benutzer bedankten sich beim Autor deejey für den Beitrag:
autohandel7


Seite 1 von 1

Vergleichbare Themen

36
Antw.
10874
Views
Exceptions
von ewx » 13.08.2015 16:25 • Verfasst in ABAP Objects®
2
Antw.
1021
Views
Queued RFC und Exceptions?
von marcus » 07.03.2005 12:54 • Verfasst in ABAP® Core
2
Antw.
1596
Views
Exceptions und Vererbung
von SaskuAc » 08.11.2018 13:43 • Verfasst in ABAP® für Anfänger
6
Antw.
3007
Views
ABAP OO und Exceptions
von moo_jo » 15.08.2019 18:28 • Verfasst in ABAP Objects®
2
Antw.
1415
Views
Exceptions Texte von Funktionsbausteinen
von JohnLocklay » 24.01.2019 17:38 • Verfasst in ABAP® Core

Ü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.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 72
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141