Einführen zusätzlicher Parameter für Ordnerstruktur auf Object Store
This commit is contained in:
@@ -1,10 +1,6 @@
|
||||
create or replace package body pck_auto_import as
|
||||
|
||||
c_module constant varchar2(20) := 'PCK_AUTO_IMPORT';
|
||||
c_eingang_prefix constant varchar2(10) := 'eingang/';
|
||||
c_marker constant varchar2(50) := '_READY_FOR_DB_PROCESSING_';
|
||||
-- Zielordner nach erfolgreicher Verarbeitung — ggf. in sy_parameter auslagern
|
||||
c_target_prefix constant varchar2(20) := 'verarbeitet/';
|
||||
|
||||
procedure p_import_file (
|
||||
i_object_key in varchar2
|
||||
@@ -56,15 +52,22 @@ create or replace package body pck_auto_import as
|
||||
l_file_etag varchar2(256);
|
||||
-- Verarbeitungsvariablen
|
||||
l_marker_key varchar2(1024);
|
||||
l_target_folder varchar2(1024);
|
||||
l_target_folder varchar2(4000 char);
|
||||
l_target_prefix varchar2(4000 char);
|
||||
l_eingang_prefix varchar2 (4000 char);
|
||||
l_zip_name varchar2(512);
|
||||
l_file_content blob;
|
||||
l_meta pck_net_storage.t_object_meta;
|
||||
l_remaining number;
|
||||
|
||||
begin
|
||||
-- Zielordner Name zusammenstellen
|
||||
l_target_prefix := pck_system.f_get_par_wert_by_programmid('NETSTORE_BA_PREFIX') || 'Verarbeitet ' || to_char(sysdate, 'YYYY') || '/';
|
||||
l_eingang_prefix := pck_system.f_get_par_wert_by_programmid('NETSTORE_BA_PREFIX') || pck_system.f_get_par_wert_by_programmid('NETSTORE_BA_IMPORT');
|
||||
|
||||
-- Unterordner in eingang/ auflisten (Delimiter '/' liefert nur direkte Kinder)
|
||||
l_folder_cursor := pck_net_storage.f_list_objects(
|
||||
i_prefix => c_eingang_prefix
|
||||
i_prefix => l_eingang_prefix
|
||||
,i_delimiter => '/'
|
||||
);
|
||||
|
||||
@@ -81,7 +84,7 @@ create or replace package body pck_auto_import as
|
||||
|
||||
-- Der Marker ist eine Datei mit speziellem Namen, welche vom quarkus automaton in einen entpackten zip-ordner gelegt wird um zu signalisieren, dass alle Dateien des ZIPs erfolgreich in den ordner gelegt wurden.
|
||||
-- Das verhindert die verarbeitung von unvollständig entpackten zips
|
||||
l_marker_key := l_folder_name || c_marker;
|
||||
l_marker_key := l_folder_name || pck_system.f_get_par_wert_by_programmid('NETSTORE_MARKER_NAME');
|
||||
|
||||
-- Marker prüfen: -20001 = nicht vorhanden → Upload noch nicht abgeschlossen
|
||||
begin
|
||||
@@ -99,10 +102,10 @@ create or replace package body pck_auto_import as
|
||||
-- Zip-Namen aus Ordnerpfad ableiten: eingang/<zip-name>/ → <zip-name>
|
||||
l_zip_name := substr(
|
||||
l_folder_name
|
||||
,length(c_eingang_prefix) + 1
|
||||
,length(l_folder_name) - length(c_eingang_prefix) - 1
|
||||
,length(l_eingang_prefix) + 1
|
||||
,length(l_folder_name) - length(l_eingang_prefix) - 1
|
||||
);
|
||||
l_target_folder := c_target_prefix || l_zip_name || '/';
|
||||
l_target_folder := l_target_prefix || l_zip_name || '/';
|
||||
|
||||
-- Alle Dateien im Unterordner auflisten (kein Delimiter = flach, alle Tiefen)
|
||||
l_file_cursor := pck_net_storage.f_list_objects(
|
||||
|
||||
Reference in New Issue
Block a user