Anwender Reports
Categories:
Anwender Reports müssen in dem ${KIESELSTEIN_DATA}/reports
Ordner abgelegt werden.
Der reports Ordner muss immer reports
genannt sein.
Pfade mit einer Kostenstelle
Falls eine Kostenstelle vorhanden ist werden zuerst folgende Pfade durchsucht.
- {KIESELSTEIN_DATA}/reports/{modul}/{kostenstelle}/{mandant}/{locale}
- {KIESELSTEIN_DATA}/reports/{modul}/{kostenstelle}/{mandant}
- {KIESELSTEIN_DATA}/reports/{modul}/{kostenstelle}
Standard Pfade
Ansonsten werden folgende Pfade nach einem Report durchsucht.
- {KIESELSTEIN_DATA}/reports/{modul}/{mandant}/{locale_country}
- {KIESELSTEIN_DATA}/reports/{modul}/{mandant}/{locale}
- {KIESELSTEIN_DATA}/reports/{modul}/{mandant}
- {KIESELSTEIN_DATA}/reports/{modul}
- {KIESELSTEIN_DIST}/wildfly-X.X.X.Final/kieselstein/reports/{modul}/{locale_country}
- {KIESELSTEIN_DIST}/wildfly-X.X.X.Final/kieselstein/reports/{modul}/{locale}
- {KIESELSTEIN_DIST}/wildfly-X.X.X.Final/kieselstein/reports/{modul}
Hinweis:
Das impliziert auch, dass die Subdirectorys der Kostenstellen sich nicht mit den Mandantennummern überschneiden dürfen.
Migration der Reports
Alter Pfad {KIESELSTEIN_DIST}/wildfly-X.X.X.Final/kieselstein/reports/{modul}/anwender/{mandant}/{sprache} Neuer Pfad KIESELSTEIN_DATA/reports/{modul}/{mandant}/{sprache}
Auf Linux kann man find . -name "anwender" -type d
verwenden um die Pfade aller Anwenderreport Ordner zu finden.
Beispiele:
-
{KIESELSTEIN_DIST}/wildfly-26.1.2.Final/kieselstein/reports/allgemein/anwender/001/en
-
{KIESELSTEIN_DATA}/reports/allgemein/anwender/001/en
-
{KIESELSTEIN_DIST}/wildfly-26.1.2.Final/kieselstein/reports/rechnung/anwender/001
-
{KIESELSTEIN_DATA}/reports/rechnung/001
-
{KIESELSTEIN_DIST}/wildfly-26.1.2.Final/kieselstein/reports/finanz/anwender
-
{KIESELSTEIN_DATA}/reports/finanz
WICHTIG
In einigen alten Reports sind teilweise auch direkte Zuweisungen wie z.B. für Logos oder ähnlichem enthalten. Diese Reports müssen überarbeitet werden.
Übertragung der Report-Einstellungen
Nachdem nun die Strukturen der Reports geändert wurden, können mit nachfolgendem Script diese Werte übernommen werden.
update lp_standarddrucker ls
set c_reportname = case when ls.c_reportname like '%/anwender/%.jasper' then '../../../../data/reports' || substr(replace(ls.c_reportname, '/anwender', '/' || substr(ls.c_reportname, 0, POSITION('/' IN ls.c_reportname))), POSITION('/' IN ls.c_reportname))
when ls.c_reportname like '%\anwender\\%.jasper' then '..\..\..\..\data\reports' || substr(replace(ls.c_reportname, '\anwender', '\' || substr(ls.c_reportname, 0, POSITION('\' IN ls.c_reportname))), POSITION('\' IN ls.c_reportname))
end
where (c_reportname like '%/anwender/%.jasper' or c_reportname like '%\anwender\\%.jasper')
and not exists (
select 7 from lp_standarddrucker ls2
where ls2.c_pc = ls.c_pc
and ls2.c_drucker = ls.c_drucker
and ls2.mandant_c_nr = ls.mandant_c_nr
and ls2.c_reportname = case when ls.c_reportname like '%/anwender/%.jasper' then '../../../../data/reports' || substr(replace(ls.c_reportname, '/anwender', '/' || substr(ls.c_reportname, 0, POSITION('/' IN ls.c_reportname))), POSITION('/' IN ls.c_reportname))
when ls.c_reportname like '%\anwender\\%.jasper' then '..\..\..\..\data\reports' || substr(replace(ls.c_reportname, '\anwender', '\' || substr(ls.c_reportname, 0, POSITION('\' IN ls.c_reportname))), POSITION('\' IN ls.c_reportname))
end
and (ls2.reportvariante_i_id = ls.reportvariante_i_id or (ls2.reportvariante_i_id is null and ls.reportvariante_i_id is null))
);