Worum es geht
Rollennamen vergibst du nicht von Hand. Der Generator bildet sie beim Build aus dem API-Pfad des Modells. Den Pfad kennst du aus der URL: Modell question im Ordner audit liegt unter /api/rest/audit/question/….
Die Umformung
-
1HubModell
Questionim Ordneraudit -
2Generatorbildet den API-Pfad: Ordner und Modellname in Kleinbuchstaben →
/audit/question -
3Generatorentfernt die Schrägstriche am Anfang und Ende, ersetzt die übrigen durch
-→audit-questionDas ist die Basisrolle. Sie gilt für jede Operation, die im Hub nicht markiert ist. -
4GeneratorREAD ist im Hub markiert → hängt
-readan:audit-question-read -
5Generatorschreibt alle Rollen in die Metadaten des Modells und in den RollenkatalogErgebnis: Nach dem Build stehen die Namen fest. Zur Laufzeit rechnet CDMS nichts mehr aus.
Die Regeln
| Regel | Beispiel |
|---|---|
| Ordner und Modellname werden kleingeschrieben | Audit/Question → audit-question |
| Jeder Ordner wird ein Namensteil, von außen nach innen | audit/checklisten/question → audit-checklisten-question |
Leerzeichen in Ordnernamen werden - | Ordner Meine Daten → meine-daten-… |
| CamelCase wird nicht getrennt | SponsorInvoice → sponsorinvoice |
| Modell ohne Ordner: nur der Modellname | Machine → machine |
| Die Ebene (System, Mandant, Benutzer) spielt keine Rolle | ein Benutzer-Modell note im Ordner crm → crm-note |
| Aktionsrolle: Operation in Kleinbuchstaben anhängen | -create, -read, -update, -delete |
Ein Untertyp eines abstrakten Modells bekommt seine Rollen aus seinem eigenen Ordner und Namen. Er erbt keine Rollen vom abstrakten Modell.
Beispiele
| Ordner | Modell | im Hub markiert | Rollen |
|---|---|---|---|
| audit | Question | READ | lesen und suchen: audit-question-read, alles andere: audit-question |
| – | Machine | CREATE, READ, UPDATE, DELETE | machine-create, machine-read, machine-update, machine-delete; Download, Historie, Rollback: machine |
| – | Gauge | nichts | gauge für jede Operation |
| tenant/accounting | SponsorInvoice | nichts | tenant-accounting-sponsorinvoice |
Feldrollen
Eine Feldrolle gehört zu einem Feld, nicht zu einem Modell: zu einer Beziehung oder zu einem einfachen Feld. Ihr Name setzt sich aus drei Teilen zusammen:
-
1HubModell
Company(ohne Ordner) mit der Beziehungemployees, Feldrolle für READ markiert -
2Generatornimmt die Basisrolle des Modells, das das Feld hat →
company -
3Generatorhängt den Feldnamen in Kleinbuchstaben an →
company-employees -
4Generatorhängt die Operation an →
company-employees-readErgebnis: Eine Feldrolle hat immer eine Operation am Ende. Eine „Basis-Feldrolle“ ohne Operation gibt es nicht.
Erbt ein Modell das Feld von einem abstrakten Modell, trägt die Feldrolle den Namen des abstrakten Modells, denn dort ist das Feld festgelegt. Was eine Feldrolle erlaubt, steht unter Rechte auf Beziehungen (Feldrollen) und Geschützte Werte.
Eigene Namen
In einer Modelldatei (YAML) kann ein Endpunkt mit roleRequired: <name> einen eigenen Rollennamen tragen. Dieser Name gilt unverändert und geht jeder Regel oben vor. Im Hub gibt es diese Angabe nicht. Siehe Modellrollen.
Fallen
Wie es weitergeht
- Welche Operation welche Rolle verlangt: Modellrollen
- Wo du Operationen markierst: Modellieren im Hub