Aller au contenu
SurfaceDocs
ENCommencer
DocsRéférence du Model

WorkspaceRule · types

Interfaces, valeurs et contrats nommés de WorkspaceRule.

Les types ci-dessous définissent les objets nommés et leurs relations. Les propriétés héritées sont incluses dans les tableaux. Les types dérivés d’un schéma renvoient à sa structure; une déclaration TypeScript ne remplace pas les contrôles sémantiques du compilateur.

WorkspaceRule

Admitted complete Rule declaration using the shared scalar and typed expression grammar.

export type WorkspaceRule = z.infer<typeof workspaceRuleSchema>;

ModelRuleExpression

Expression syntax accepted by the complete Model Rule declaration.

export type ModelRuleExpression = WorkspaceRule['expression'];
type ModelRuleExpression = import("./WorkspaceModelFoundationDeclarations.js").ScalarModelRuleExpression | { kind: "exact-compare"; operator: "eq" | "ne" | "lt" | "lte" | "gt" | "gte"; left: import("./WorkspaceExactData.js").ManagedExactDataExpression; right: import("./WorkspaceExactData.js").ManagedExactDataExpression; } | { kind: "integer-compare"; schema: { kind: "integer"; minimum: string; maximum: string; unit: { kind: "dimensionless"; } | { kind: "unit"; key: string; } | { kind: "currency"; key: string; }; }; operator: "eq" | "ne" | "lt" | "lte" | "gt" | "gte"; left: { kind: "field"; field: { definitionPath: string; fieldKey: string; }; } | { kind: "literal"; value: string; }; right: { kind: "field"; field: { definitionPath: string; fieldKey: string; }; } | { kind: "literal"; value: string; }; } | { kind: "real-compare"; schema: { kind: "real"; representation: "binary64"; precisionBits: 53; minimum: number; maximum: number; tolerance: { absolute: number; relative: number; }; unit: { kind: "dimensionless"; } | { kind: "unit"; key: string; }; }; operator: "approximately-equal" | "not-approximately-equal"; left: { kind: "field"; field: { definitionPath: string; fieldKey: string; }; } | { kind: "literal"; value: number; }; right: { kind: "field"; field: { definitionPath: string; fieldKey: string; }; } | { kind: "literal"; value: number; }; };

Toutes les références

Exemples appliqués : Vérifier avant de confirmer

Une règle exige une entreprise; une autre interdit un montant négatif ou nul.

Configuration

Fragment à placer dans rules[]. Propriétés et valeurs admises.

{
  "contract": "WorkspaceRule@1",
  "key": "company-required",
  "label": "Entreprise renseignée",
  "expression": {
    "kind": "present",
    "field": {
      "definitionPath": "workspace/clients/surface/client",
      "fieldKey": "company"
    }
  }
}

Variante et raccordement

Fragment à placer dans rules[]. Propriétés et valeurs admises.

{
  "contract": "WorkspaceRule@1",
  "key": "positive-amount",
  "label": "Montant positif",
  "expression": {
    "kind": "compare",
    "field": {
      "definitionPath": "workspace/quotes/surface/quote",
      "fieldKey": "amount"
    },
    "operator": "gt",
    "value": 0
  }
}

Exemple de disposition UI

La disposition illustrative ci-dessous situe cette configuration dans l’app Clients/Soumissions. Chaque fragment s’insère à l’emplacement indiqué; ses références aux Fields, Queries et Actions correspondent aux déclarations du Model.

  1. Entreprise *
  2. État *
  3. Notes
  4. Créer le client
DISPOSITION ILLUSTRATIVEApp Clients / Soumissions
SurfaceClients / Atelier NordExemple
WorkspaceRule · typesVérifier avant de confirmer
Clients
Nouveau client
Entreprise *Atelier Nord
État *Prospect

Les notes s’enrichissent dans la fiche après création.

AnnulerCréer le client
Recherchez un concept, un champ ou une action.Esc