Uitrollen
Een instantie naar enforce brengen, en de bekende beperkingen
Uitrollen
enforce is de standaard. Op een instantie met scripts of andere systemen die formulieren via REST starten, bereik je die stap voor stap, waarbij je het log in de gaten houdt voordat er iets wordt geweigerd:
- Stel
LAUNCH_VALIDATION=login voor de hele instantie (vóór het upgraden, bij een upgrade). - Draai een tijdje in deze modus en bekijk het log: waarschuwingen
would refusewijzen op starts die de regels overtreden; waarschuwingenextravars differwijzen op formulieren die iets anders berekenen op de server (een tijdstempel, externe gegevens). Bepaal per formulier of dat ertoe doet. - Zet die formulieren op
launchValidation: enforce. Aanroepers die ongeldige waarden of verzonnen extravars stuurden, krijgen nu een422met de reden. - Gedraagt elk formulier zich zoals verwacht, verwijder dan
LAUNCH_VALIDATION(of zet het openforce) voor de hele instantie.
Beperkingen
Launch-validatie dekt nog niet alles:
- Wizardformulieren kunnen niet met wijzigingen opnieuw worden gestart, en een wizardjob die vóór 7.0 is gestart, kan onder
enforceniet opnieuw worden gestart (hij sloeg zijn stapwaarden niet op). De MCP-server kan geen wizardformulieren starten. - Het oplossen van placeholders in de browser gebruikt nog een eigen kopie van de code van de server; in zeldzame randgevallen (
__undefined__, aanhalingstekens binnen expressies) kunnen de twee een placeholder verschillend oplossen.logbrengt zulke verschillen aan het licht. runLocal-expressies draaien in de browser in de JavaScript-engine van de browser, en op de server in een sandbox; dezelfde code geeft hetzelfde resultaat, behalve waar die afhangt van de tijdzone of de locale van de browser.
Wizardformulieren
Een wizard wordt stap voor stap gecontroleerd: de browser stuurt de waarden van elke stap, en de server controleert elke stap die de gebruiker zou indienen tegen het eigen subformulier van die stap.
- Een stap wordt weggelaten wanneer hij
optionalis en de gebruiker hem oversloeg, of wanneer zijnwhenfalse is. - Een stap leest de eerdere stappen via
$(__parent__.<step>.<field>), met hun gecontroleerde waarden. - Fouten noemen de stap en het veld, als
<step>.<field>. - Onder
enforceworden de extravars op de server opgebouwd, elke stap onder zijndefaultModel. - Bestandsvelden worden in een wizard niet ondersteund.