Einführung
Eine Instanz auf Enforce umstellen, und die bekannten Einschränkungen
Schrittweise einführen
enforce ist der Standard. Auf einer Instanz mit Skripten oder anderen Systemen, die Formulare über REST starten, erreichen Sie ihn schrittweise und beobachten das Protokoll, bevor Sie etwas ablehnen:
- Setzen Sie
LAUNCH_VALIDATION=logfür die ganze Instanz (vor dem Upgrade, bei einem Upgrade). - Lassen Sie die Instanz eine Weile in diesem Modus laufen und prüfen Sie das Protokoll: Warnungen
would refusezeigen Starts, die die Regeln verletzen; Warnungenextravars differzeigen Formulare, die auf dem Server etwas anders berechnen (einen Zeitstempel, externe Daten). Entscheiden Sie für jedes Formular, ob das eine Rolle spielt. - Stellen Sie diese Formulare auf
launchValidation: enforceum. Aufrufer, die ungültige Werte oder erfundene Extravars gesendet haben, erhalten jetzt ein422mit dem Grund. - Wenn sich jedes Formular wie erwartet verhält, entfernen Sie
LAUNCH_VALIDATION(oder setzen Sie es aufenforce) für die ganze Instanz.
Einschränkungen
Die Start-Validierung deckt noch nicht alles ab:
- Wizard-Formulare können nicht mit Änderungen neu gestartet werden, und ein Wizard-Job, der vor 7.0 gestartet wurde, kann unter
enforcenicht neu gestartet werden (er hat seine Schrittwerte nicht gespeichert). Der MCP-Server kann keine Wizard-Formulare starten. - Die Auflösung von Platzhaltern im Browser verwendet noch eine eigene Kopie des Servercodes; in seltenen Grenzfällen (
__undefined__, Anführungszeichen in Ausdrücken) könnten beide einen Platzhalter unterschiedlich auflösen.logzeigt solche Unterschiede. runLocal-Ausdrücke laufen im Browser in dessen JavaScript-Engine und auf dem Server in einer Sandbox; derselbe Code liefert dasselbe Ergebnis, außer wo er von Zeitzone oder Sprache des Browsers abhängt.
Wizard-Formulare
Ein Wizard wird Schritt für Schritt geprüft: Der Browser sendet die Werte jedes Schritts, und der Server prüft jeden Schritt, den der Benutzer absenden würde, gegen dessen eigenes Unterformular.
- Ein Schritt wird ausgelassen, wenn er
optionalist und der Benutzer ihn übersprungen hat, oder wenn seinwhenfalse ist. - Ein Schritt liest die früheren Schritte über
$(__parent__.<step>.<field>), mit ihren geprüften Werten. - Fehler nennen den Schritt und das Feld, als
<step>.<field>. - Unter
enforcewerden die Extravars auf dem Server aufgebaut, jeder Schritt unter seinemdefaultModel. - Dateifelder werden in einem Wizard nicht unterstützt.