Aller au contenu
SurfaceDocs
ENCommencer
DocsConstruire vos apps

Relations et tags

Modéliser des liens identifiés et des classifications utiles.

Relation ou classification

Une relation relie des objets identifiés : une soumission appartient à un client, un résultat provient d’un travail ou un document sert de source. Un tag classe un objet selon un vocabulaire. Les deux peuvent être affichés ensemble, mais ils ne remplissent pas la même fonction.

La revue d’une classification précise si le Tag concerne le contenu entier ou un passage sélectionné. Ajouter ou retirer un Tag ne réécrit ni le contenu ni ses valeurs. La carte conserve le nom retourné par Surface; si un aperçu ne comporte pas ce nom, elle le signale et laisse ses références exactes consultables dans les détails.

Élément Valeurs attendues Exemple
Type de relation Définition déclarée Soumission du client
Source et cible Identités d’objets compatibles S-1042 → Atelier Nord
Direction Entrante ou sortante selon le contexte Soumissions visibles depuis Client
Cardinalité Minimum et maximum déclarés Un client par soumission
Tags Termes du vocabulaire autorisé Prioritaire, Entretien

Définir la politique

Le Model déclare les types de relations, leurs objets compatibles et les effets des opérations. Les contrôles s’appliquent à la création et aux changements de liens. Une vue inverse n’a pas besoin de dupliquer la relation : elle interroge les liens existants dans l’autre direction.

Dans la configuration des champs liés, examinez les conséquences avant de confirmer. Si la réponse reste à vérifier, reprenez la même demande sans changer sa sélection. Si l’enregistrement est confirmé mais que l’affichage échoue, actualisez la lecture sans confirmer à nouveau. Les coordonnées techniques restent consultables dans des détails séparés des noms déclarés.

Exemple

La soumission S-1042 référence Atelier Nord. Les deux objets portent le tag Entretien. Retirer le tag ne supprime pas l’association au client. Ouvrir la fiche client affiche la soumission selon les droits et la Query déclarée.

Les intégrations configurent ces correspondances entre apps; le graphe permet d’explorer leurs relations visuellement.

Exemples appliqués : Un client, plusieurs soumissions

La contrainte porte sur les liens; le groupe de présentation affiche quatre résultats et l’accès à la liste complète.

Configuration

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

{
  "contract": "SurfaceRelationPolicy@1",
  "key": "quote-client",
  "linkTypePath": "application/client",
  "source": {
    "definitionPaths": [
      "workspace/quotes/surface/quote"
    ],
    "fields": []
  },
  "target": {
    "definitionPaths": [
      "workspace/clients/surface/client"
    ],
    "fields": []
  },
  "maximumOutgoing": 1,
  "maximumIncoming": null,
  "acyclic": false,
  "deletion": "forbid",
  "maximumTraversalNodes": 1000
}

Variante et raccordement

Fragment à placer dans presentation.recordProfiles[].detail.relatedGroups[]. Propriétés et valeurs admises.

{
  "key": "quotes",
  "label": "Soumissions",
  "queryBindingKey": "client-quotes",
  "maximumVisible": 4,
  "openAllLabel": "Voir toutes les soumissions",
  "rowIcon": null
}

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. Client sélectionné
  2. Recherche
  3. Soumissions
  4. Voir toutes les soumissions
DISPOSITION ILLUSTRATIVEApp Clients / Soumissions
SurfaceClients / Atelier NordExemple
Relations et tagsUn client, plusieurs soumissions
Clients
Soumission S-1042
Client liéAtelier Nord
Sélectionner un client⌕ Rechercher par nom…Atelier Nord ✓
Recherchez un concept, un champ ou une action.Esc