Aller au contenu
Documentation

Valider et suivre

Lire les violations qu'oppose l'API à un graphe et les corriger, essayer un flux sur une fiche, puis suivre et piloter ses exécutions.

4 min de lecture Mise à jour le 10 novembre 2026

Les violations

POST https://staging-api.docage.com/Flows/Validate juge un graphe sans rien écrire ; la création, l'enregistrement d'un modèle actif et l'activation jugent de même. Un refus est un 422 et une liste de violations :

JSON
[ { "Rule": "ReglageObligatoire", "Message": "…", "FlowNodeId": "…", "FlowLinkId": null, "ParameterName": "TemplateId" } ]
  • Rule est stable : c'est elle qu'un programme lit pour corriger. Message est la phrase, en français, pour un humain ; il nomme chaque étape comme le diagramme la montre, jamais par son identifiant.
  • FlowNodeId désigne l'étape ; FlowLinkId le lien, quand le défaut est celui d'une flèche ; ParameterName le réglage, tel qu'il s'écrit dans le graphe — la clé d'un réglage dans Configuration, une propriété de l'étape, du lien, du déclencheur ou du flux, avec son rang dans une liste (Cases[0].Blocks[2].Condition).
  • Le cycle attendu : proposer, valider, corriger la règle nommée, valider de nouveau, jusqu'à 200.
Famille Règles
Taille (jugée d'abord) GrapheTropGrand : 500 étapes, 1 000 liens, 100 déclencheurs et 200 variables au plus ; au-delà, découper en flux reliés par des étapes call. Un corps de graphe pèse 2 Mo au plus (413).
Identité (jugée ensuite) NoeudSansIdentifiant, NoeudEnDouble, NumeroEnDouble
Réglages du flux NomObligatoire, PlafondInvalide, RetentionInvalide, ReglageHorsPlage, ReglageObligatoire, DureeInvalide
Bornes des étapes TentativesHorsPlage, IterationsHorsPlage, DureeInvalide, StatutFinalInvalide
Forme du graphe LienPendant, AucunPointDEntree, NoeudInatteignable, FourcheImplicite, OrdonneSansBranche, OrdreAmbigu, PlusieursDefauts, ConditionSansEffet, ConvergenceImplicite, DoubleExecution, AppelDeSoiMeme, Cycle, LienSurLuiMeme
Cartes du flux et des déclencheurs PlusieursCartesDeFlux, FluxSansPremiereEtape, LienVersLaCarteDuFlux, DeclencheurSansCarte, DeclencheurInconnu, DeclencheurSansSuite, DeclencheurQuiContourneLeFlux, LienVersDeclencheur
Déclencheurs ChampSurveilleManquant, FormulaireManquant, FicheManquante, PorteeSansFiche, ChampDateManquant, RelationSurveilleeManquante, EvenementDeLienInvalide, ConditionIllisible, ConditionChampInconnu
Fiche visée CibleNonChoisie, CibleSansEtapePrecedente, CibleEtapeInconnue, CibleHorsAmont, CibleSansFiche, CibleDeMauvaisType, CibleInterne, CibleLienSansDeclencheur, ConditionSansFiche
Étape condition ConditionSansCas, CleDeSortieInvalide, CasSansCondition, BlocSansCritere, PresenceSurVariables, SortieDeConditionInconnue, ConditionSurSortieDeCondition, ConditionSansSortie
Attentes et branches d'erreur ConditionDAttenteManquante, BrancheDErreurManquante, BrancheDErreurSansEffet
Boucles TypeDeBoucleManquant, CorpsDeBoucleManquant, PlusieursCorpsDeBoucle, CorpsDeBoucleInvalide, CorpsDeBoucleMalRelie, SortieDeCorpsDeBoucle, ConditionSurCorpsDeBoucle, RegimeSurCorpsDeBoucle, CorpsHorsBoucle
Exécution pendant l'enregistrement EtapeNonInterne, ActionNonInterne, RegimesMelanges, SortieDeBrancheInterne, BrancheInterneMalPlacee, TypeInterneIncoherent
Variables VariableInconnue, VariableEnDouble, VariableDeSortieInconnue, NomDeVariableReserve
Configuration d'une action ActionInconnue, ProprieteObligatoireManquante, ChampManquant, CheminInvalide, GrilleVide, GrilleIllisible, AdresseNonAutorisee, CreationDeFlux, FluxAppeleManquant, RechercheSansPropriete, ProprietesDeRechercheIllisibles, ProprieteDeRechercheSansValeur
Données de l'organisation DestinataireSansDynamique, FluxAppeleIntrouvable, FluxAppeleNonAppelable, AppelCirculaire, TypeDeFicheInconnu, ChampSurveilleInconnu, ChampDateInconnu, ChampInconnu, PipelineDUneAutreFamille, CreationDeCarteGenerique, DevisSansPipelineChiffre, RelationInconnue, ProprieteDeRechercheInconnue, PipelineManquant, ModeleSurUneCarte
Droit de publier PublicationReservee : l'utilisateur n'administre pas l'organisation du flux. Le graphe n'y est pour rien : enregistrez le flux inactif, et faites-le activer.

Quelques règles à connaître :

  • Cycle : un graphe ne revient pas sur ses pas. Pour répéter une étape sur plusieurs fiches, c'est une boucle (forEach).
  • TypeDeFicheInconnu : la clé d'un type n'existe pas, ou pas à cette casse — cherchez-la par GET https://staging-api.docage.com/Flows/References/Types.
  • BrancheDErreurSansEffet : seule une étape qui peut échouer porte une branche d'erreur — une action, un appel de flux, une boucle, une attente jusqu'à une date ou une condition, une approbation à délai maximum.
  • AdresseNonAutorisee : l'adresse d'un webhook appelé est publique, en https:// ; les champs y sont admis dans le chemin et la requête, jamais dans l'hôte.
  • CheminInvalide : une liste à écrire (destinataires, intervenants, classeurs) dans la grille d'une modification, ou un chemin Flow_… qui n'est pas la sortie d'une étape.

Essayer sur une fiche

POST https://staging-api.docage.com/Flows/{id}/DryRun/{entityId} déroule le flux sur une vraie fiche sans rien écrire : il rend le graphe tel qu'il se serait déroulé, étapes et liens marqués. Une fiche d'une autre organisation, ou que l'utilisateur ne voit pas, est refusée. Montrez ce déroulé avant de faire activer un flux.

Suivre une exécution

GET https://staging-api.docage.com/Flows/{id}/Graph?withNames=true, avec l'identifiant de l'exécution, rend son statut (RunStatus), sa fin (EndedOn) et son erreur ; par étape, son statut, ses dates, sa tentative, sa sortie (Output), les fiches qu'elle a produites (Outputs) et son erreur ; par lien, son verdict (Outcome) et, quand la condition n'a pas pu être jugée, le motif (OutcomeDetail).

Statut d'une exécution Valeur
En attente, en cours 0, 1
En attente d'un délai, d'une approbation, d'un flux appelé 2, 3, 7
Terminée : réussie, en échec, annulée 4, 5, 6
  • Une étape vaut 0 en attente, 1 en cours, 2 réussie, 3 en échec, 4 sautée (branche non retenue), 5 en nouvelle tentative, 6 hors délai. Un lien vaut 0 non examiné, 1 emprunté, 2 condition fausse, 3 écarté sans lecture (une autre branche l'a emporté).
  • Aucun signal n'est poussé : relisez l'exécution toutes les cinq secondes jusqu'à un statut terminé, puis arrêtez. Ne demandez withNames=true que pour comprendre : chaque identifiant cité y est relu.
  • POST https://staging-api.docage.com/Flows/{id}/Replay crée une exécution neuve sur la même fiche ; POST https://staging-api.docage.com/Flows/{id}/CancelRun annule une exécution sans défaire ce qui est fait ; POST https://staging-api.docage.com/Flows/{id}/RespondToApproval/true (ou false) répond à l'approbation qui attend. Un refus est un 422 qui dit pourquoi.
  • Un parcours se lit dans la même forme : GET https://staging-api.docage.com/Transactions/{id}/Graph rend ses étapes, leurs états et son statut.