CodamAIDocs
Themafertig

Was CRMS ist

Ein Bericht ist Vorlage plus Daten. Was CRMS dabei übernimmt, was es bewusst nicht tut, und warum die Anwendung die Daten vorbereitet.

Ausprägungen
Vorschau (PREVIEW)endgültiges Dokument (FINAL)flüchtiges Dokument (TRANSIENT)

Worum es geht

CRMS heißt CodamAI Reporting Management System. Es erzeugt Berichte: PDF, HTML, Word-Dateien und Tabellen. Ein Bericht entsteht immer aus zwei Teilen:

  • der Vorlage: Sie legt fest, wie der Bericht aussieht. Sie ist in FreeMarker geschrieben, einer Vorlagensprache mit Platzhaltern wie ${customer.name}.
  • der Payload: Das sind die Daten für genau diesen einen Bericht, zum Beispiel Kunde, Datum und Positionen eines Audits.

CRMS setzt die Payload in die Vorlage ein und gibt das fertige Dokument zurück.

Ein Bericht entsteht

  1. 1
    Benutzer→Client
    klickt auf „Bericht erzeugen“
  2. 2
    Client→CDMS
    liest die Daten, die in den Bericht sollen, und bereitet sie auf
  3. 3
    Client→CRMS
    schickt eine Render-Anfrage: Schlüssel der Vorlage, Format, Modus und Payload
  4. 4
    CRMS→CIAS
    fragt, wer anfragt und in welchem Mandanten
  5. 5
    CRMS
    sucht die veröffentlichte Revision der Vorlage, die für diese Person gilt
  6. 6
    CRMS
    prüft die Payload, bevor die Vorlage sie sieht
  7. 7
    CRMS
    Payload verstößt gegen die Regeln → 422 mit allen Verstößen
  8. 8
    CRMS
    setzt die Payload in einer abgeschotteten Umgebung ein und erzeugt das Format
  9. 9
    CRMS→Dateispeicher
    legt ein endgültiges Dokument verschlüsselt ab, nur im Modus FINAL
  10. 10
    CRMS→Client
    gibt das Dokument zurück
    Ergebnis: Die Bytes des Dokuments, dazu Schlüssel, Scope, Sprache, Revision und Hash der Vorlage, aus der es entstand

Jedes Dokument sagt, aus welcher Revision der Vorlage es kommt. Eine Revision ist ein fester, nicht mehr änderbarer Stand der Vorlage. So lässt sich später nachweisen, mit welchem Text ein Bericht erzeugt wurde.

Was CRMS tut und was nicht

Aufgaben von CRMS
CRMS tut
Vorlagen und Dokumente
  • verwaltet Vorlagen mit Sprachvarianten und Revisionen
  • gibt Vorlagen über eine Freigabekette frei
  • prüft die Payload
  • rendert PDF, HTML, DOCX, XLSX, CSV und ODS
  • legt endgültige Dokumente in einer Hash-Kette ab
  • prüft und bewahrt sie auf, bis ihre Frist endet
CRMS tut nicht
das bleibt bei der Anwendung
  • liest keine Fachdaten, auch nicht aus CDMS
  • ändert keine Fachdaten
  • rechnet nicht: keine Summen, keine Formeln
  • entscheidet nicht, wann ein Bericht entsteht
  • verwaltet keine Benutzer und Rollen, das tut CIAS

Warum die Anwendung die Daten vorbereitet

Eine Vorlage wird im laufenden System geschrieben, von Menschen mit einer Vorlagenrolle. Darum darf sie nichts außer Werte einsetzen:

  • Kein Zugriff auf Java. Die Vorlage kann keine Klassen erzeugen und keine Methoden aufrufen. FreeMarker-Befehle wie ?new und ?api sind abgeschaltet.
  • Nur vorbereitete Werte in der Payload: Text, Zahlen, Wahrheitswerte, Datum und Zeitpunkt, dazu Listen und Objekte daraus. Ein beliebiges Java-Objekt wird abgewiesen, weil es der Vorlage seine Methoden in die Hand geben würde.
  • Höchstens zwei Ebenen tief: title, customer.name, items[].amount. Was die Vorlage braucht, bereitet die Anwendung flach auf.
  • Keine Dateien von außen. Bilder, Schriften und Stylesheets kommen nur aus der Vorlage selbst (asset:<name>) oder aus der Anfrage (attachment:<name>). Jede andere Adresse wird abgewiesen, bevor sie aufgerufen wird.
  • Keine Formeln. Auch eine Tabelle enthält nur fertige Werte. Eine Formel, die aus einem Payload-Wert zusammengesetzt wird, wäre ein Einfallstor.

Wie die Payload genau geprüft wird, steht unter Die Payload-Prüfung.

Drei Modi

Jede Render-Anfrage nennt einen Modus. Er entscheidet, ob das Dokument gespeichert wird.

PREVIEWFINALTRANSIENT
gespeichertnieja, als nächste Revision seiner Dokumentkettenie
Kennzeichensichtbares Wasserzeichen und Merkmal crms-previewkeins, es ist das Originalnur das Merkmal crms-transient in den Metadaten
wofürprüfen, wie ein Bericht aussiehtder Bericht, der zählteine Kopie zum Herunterladen, nur aus Systemvorlagen

Die Einzelheiten stehen unter Vorschau, endgültig, flüchtig.

Fallen

Weiter

Suchen