Anwender Reports
Categories:
Anwender Reports müssen in dem ${KIESELSTEIN_DATA}/reports
Ordner abgelegt werden.
Der reports Ordner muss immer reports
genannt sein.
Namenskonvention
{KIESELSTEIN_DATA} … bezeichnet jenes Verzeichnis, welches in deiner Kieselstein ERP Installation mit der Umgebungsvariablen / Environment definiert ist. In der Regel ist dies für Windows ?:\kieselstein_data\ für Linux /opt/kieselstein/data
{KIESELSTEIN_DIST} … bezeichnet das Verzeichnis, welches in der Environment Variablen hinterlegt ist. In der Regel ist dies für Windows ?:\kieselstein_dist\ für Linux /opt/kieselstein/dist
Finden des zu verwendenden Reports
Je nachdem wo du deine Reports hinterlegst, wird der entsprechende Report verwendet. Die Logik dafür ist folgende:
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.
D.h. die Reports, welche sich unter {KIESELSTEIN_DIST} befinden, werden bei jedem Update überschrieben. Die Pflege der Anwender-Reports unter Data liegen in deiner Verantwortung.
Anzeige welcher Report verwendet wird
Um den richtigen Report bearbeiten zu können, muss man auch wissen, welcher Report für den Druck den tatsächlich verwendet wird. Daher wird im Titel des Reports und in den üblichen Listen-Auswertungen der verwendete Pfad angezeigt.
Eine wichtige Information ist der führende Buchstabe vor dem Reportpfad. Hier bedeutet S, dass dies ein Standard-Report ist und ein A steht für den Anwender-Report.
D.h. die Standard-Reports findest du unter …/kieselstein/dist/wildfly-26.1.2.Final/kieselstein/reports/… und die Anwenderreports unter …/kieselstein/data/reports/…
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.
Sicherung der Reports
WICHTIG
Denke daran, dass nun nur mehr die Reports von ../kieselstein/data/reports gesichert werden müssen.Ü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))
);