Anwender Reports

Nutzen von Anwender Reports

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.

  1. {KIESELSTEIN_DATA}/reports/{modul}/{kostenstelle}/{mandant}/{locale}
  2. {KIESELSTEIN_DATA}/reports/{modul}/{kostenstelle}/{mandant}
  3. {KIESELSTEIN_DATA}/reports/{modul}/{kostenstelle}

Standard Pfade

Ansonsten werden folgende Pfade nach einem Report durchsucht.

  1. {KIESELSTEIN_DATA}/reports/{modul}/{mandant}/{locale_country}
  2. {KIESELSTEIN_DATA}/reports/{modul}/{mandant}/{locale}
  3. {KIESELSTEIN_DATA}/reports/{modul}/{mandant}
  4. {KIESELSTEIN_DATA}/reports/{modul}
  5. {KIESELSTEIN_DIST}/wildfly-X.X.X.Final/kieselstein/reports/{modul}/{locale_country}
  6. {KIESELSTEIN_DIST}/wildfly-X.X.X.Final/kieselstein/reports/{modul}/{locale}
  7. {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))
       );