Worum es geht
Eine Render-Anfrage nennt nur den Schlüssel der Vorlage, etwa audit-report, und vielleicht eine Sprache. Welche Ausgabe und welche Revision dann wirklich rendert, entscheidet CRMS. Diese Suche heißt Auflösung.
Die Reihenfolge
flowchart TB
A["Anfrage: Schlüssel + Sprache"] --> U{"USER-Ausgabe<br/>der Person?"}
U -->|"veröffentlicht in<br/>passender Sprache"| OK["diese Revision rendert"]
U -->|"keine oder nichts<br/>veröffentlicht"| T{"TENANT-Ausgabe<br/>des Mandanten?"}
T -->|"veröffentlicht in<br/>passender Sprache"| OK
T -->|"keine oder nichts<br/>veröffentlicht"| S{"SYSTEM-Ausgabe?"}
S -->|"veröffentlicht in<br/>passender Sprache"| OK
S -->|"keine oder nichts<br/>veröffentlicht"| NF["404 template-not-found"]
In jeder Ausgabe probiert CRMS die Sprachen in dieser Reihenfolge:
-
1CRMSdie angefragte Sprache genau so:
de-CH -
2CRMSnur die Sprache, ohne Region:
de -
3CRMSdie Standardvariante der Ausgabe, zum Beispiel
en -
4CRMShat keine dieser Varianten eine veröffentlichte Revision, geht es zum nächsten Scope
Nennt die Anfrage keine Sprache, nimmt CRMS die Sprache, die CIAS für die Person gewählt hat, sonst die Standardsprache der Installation. Mehr unter Sprache und Zeitzone.
Was übersprungen wird
- Ein Scope, den die Installation nicht zulässt (
CODAMAI_CRMS_TEMPLATE_SCOPES). IstUSERabgeschaltet, sucht CRMS gar nicht nach Personen-Ausgaben. TENANTfür eine Person ohne Mandant. Es gibt keinen Mandanten, dessen Ausgabe passen könnte.- Eine Ausgabe ohne veröffentlichte Revision. Hat eine Person nur einen Entwurf oder eine Revision in Prüfung, bricht das ihre Berichte nicht. CRMS sucht einfach weiter.
Beispiele
Die Plattform hat audit-report mit den Varianten de (Standard) und en. Der Mandant acme hat eine eigene Ausgabe mit nur de.
| Wer fragt | Sprache | Eigene USER-Ausgabe | Was rendert |
|---|---|---|---|
| Person bei acme | de | keine | TENANT acme, Variante de |
| Person bei acme | de-CH | keine | TENANT acme, Variante de (Region fällt weg) |
| Person bei acme | en | keine | TENANT acme, Variante de, weil de dort die Standardvariante ist |
| Person bei acme | de | nur ein Entwurf | TENANT acme, Variante de. Der Entwurf zählt nicht |
| Person bei einem anderen Mandanten | en | keine | SYSTEM, Variante en |
| Person bei einem anderen Mandanten | fr | keine | SYSTEM, Variante de (Standardvariante) |
Was das Dokument über seine Herkunft sagt
Jedes Ergebnis nennt, woher es kommt. Über REST stehen diese Angaben in Headern der Antwort:
| Header | Inhalt | Beispiel |
|---|---|---|
Crms-Template-Key | der Schlüssel | audit-report |
Crms-Template-Scope | der Scope der Ausgabe, die gewonnen hat | TENANT |
Crms-Template-Variant | die Sprache der Variante, die benutzt wurde | de |
Crms-Template-Revision | die ID der Revision | 0b7e… |
Crms-Template-Revision-Hash | der Ketten-Hash dieser Revision | sha-256:9f86… |
Ein endgültiges Dokument hält dieselben Angaben dauerhaft fest, siehe Endgültige Dokumente.