From ba4b28cf4473e2dd8fa18dab7f7c28f0bf3414ff Mon Sep 17 00:00:00 2001 From: "Simon C. Kessler" Date: Mon, 27 Apr 2026 16:52:56 +0200 Subject: [PATCH] =?UTF-8?q?Prozedur=20zum=20erstellen=20von=20Wiedervorlag?= =?UTF-8?q?e=20in=20error-fall=20(autonomous=20transaction)=20hinzugef?= =?UTF-8?q?=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- database/packages/pck_auto_import.pkb | 55 ++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 9 deletions(-) diff --git a/database/packages/pck_auto_import.pkb b/database/packages/pck_auto_import.pkb index bfdcd87..f685940 100644 --- a/database/packages/pck_auto_import.pkb +++ b/database/packages/pck_auto_import.pkb @@ -2,6 +2,27 @@ create or replace package body pck_auto_import as c_log_module constant lg_app_log.log_module%type := 'AUTOMATISCHER_BA_IMPORT'; + PROCEDURE p_create_wv_autonomous(i_swv_bemerkung inkasso.sy_wiedervorlage.swv_bemerkung%TYPE DEFAULT NULL + ) + /*Kopf------------------------------------------------------------------------------------------------ + -- Beschreibung: Erstellt eine Wiedervorlage innerhalb eine autonomous transaction, damit rollback/commits in Fehlerfällen, diese Wiedervorlage nicht beeinflussen. + ------------------------------------------------------------------------------------------------------ + -- Parameter: — + ------------------------------------------------------------------------------------------------------ + -- MA Datum Änderung + -- SCK 2026-04-27 Prozedur erstellt + ------------------------------------------------------------------------------------------------Kopf*/ + is + PRAGMA AUTONOMOUS_TRANSACTION; + BEGIN + pck_wiedervorlage.p_wiedervorlage_anlegen (i_swv_stp_id_art => pck_stammdaten.f_get_stp_id_by_programmid('WV_IMPORT_BA_KORRES') + ,i_swv_wdatum => sysdate + ,i_swv_bemerkung => i_swv_bemerkung --'Bitte manuell Prüfen: Beim automatischen Import der BA-Datei "' || l_filename || '" ist folgende Fehler aufgetreten: "' || SQLERRM || '" (Siehe "' || i_object_key || '").' + ,i_swv_mit_id_wsachbearbeiter => pck_system.f_get_par_wert_by_programmid('BA_IMPORT_SB_MIT_ID') + ); + COMMIT; -- Nur diese autonome Transaktion + END; + procedure p_run_ba_korrespondenz_dateieingang_automation /*Kopf------------------------------------------------------------------------------------------------ -- Beschreibung: Einstiegspunkt für die APEX Automation (stündlich). @@ -57,11 +78,13 @@ create or replace package body pck_auto_import as apex_web_service.g_request_headers.delete; apex_web_service.g_request_headers(1).name := 'X-Api-Key'; + --dbms_output.put_line(l_api_key); apex_web_service.g_request_headers(1).value := l_api_key; l_response := apex_web_service.make_rest_request( p_url => l_service_url ,p_http_method => 'POST' + ,p_wallet_path => pck_system.f_get_par_wert_by_programmid('NETSTORE_WALLET_PATH') ); l_http_status := apex_web_service.g_status_code; @@ -142,11 +165,28 @@ create or replace package body pck_auto_import as ,i_object_ref => i_object_key ); - l_return := inkasso.pck_import.f_import_ba_dokument( - i_datei => i_content - ,i_dateiname => l_filename - ,i_datei_groesse => l_file_size - ); + begin + l_return := inkasso.pck_import.f_import_ba_dokument( + i_datei => i_content + ,i_dateiname => l_filename + ,i_datei_groesse => l_file_size + ); + exception when others + then + rollback; + pck_log.p_warn( + i_module => c_log_module + ,i_action => l_log_action + ,i_message => 'Aufruf von pck_import.f_import_ba_dokument für Datei "' || l_filename || '" hat einen Fehler geworfen (' || SQLERRM || '). Erstelle wiedervorlage...' + ,i_object_ref => i_object_key + ); + + -- Bei einem Import Fehler: Wiedervorlage für Sachbearbeiter erstellen & Fehlermeldung mit in die Wiedervorlage schreiben + p_create_wv_autonomous(i_swv_bemerkung => 'Bitte manuell Prüfen: Beim automatischen Import der BA-Datei "' || l_filename + || '" ist folgender Fehler aufgetreten: "' || SQLERRM || '" (Siehe "' || i_object_key || '").' + ); + raise; + end; if l_return != 1 then @@ -158,10 +198,7 @@ create or replace package body pck_auto_import as ); -- Wiedervorlage für Sachbearbeiter erstellen - pck_wiedervorlage.p_wiedervorlage_anlegen (i_swv_stp_id_art => pck_stammdaten.f_get_stp_id_by_programmid('WV_IMPORT_DATEV') -- TODO: neue WV Art? z.B. WV_IMPORT_BA_DATEN - ,i_swv_wdatum => sysdate --TODO: welches Datum? sysdate? - ,i_swv_bemerkung => 'Bitte manuell Prüfen: Die BA-Datei "' || l_filename || '" konnte nicht automatisch importiert werden (Siehe "' || i_object_key || '").' - ,i_swv_mit_id_wsachbearbeiter => pck_system.f_get_par_wert_by_programmid('BA_IMPORT_SB_MIT_ID') + p_create_wv_autonomous(i_swv_bemerkung => 'Bitte manuell Prüfen: Die BA-Datei "' || l_filename || '" konnte nicht automatisch importiert werden (Siehe "' || i_object_key || '").' ); pck_log.p_info(