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.
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 :
[ { "Rule": "ReglageObligatoire", "Message": "…", "FlowNodeId": "…", "FlowLinkId": null, "ParameterName": "TemplateId" } ]Ruleest stable : c'est elle qu'un programme lit pour corriger.Messageest la phrase, en français, pour un humain ; il nomme chaque étape comme le diagramme la montre, jamais par son identifiant.FlowNodeIddésigne l'étape ;FlowLinkIdle lien, quand le défaut est celui d'une flèche ;ParameterNamele réglage, tel qu'il s'écrit dans le graphe — la clé d'un réglage dansConfiguration, 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 parGET 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, enhttps://; 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 cheminFlow_…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
0en attente,1en cours,2réussie,3en échec,4sautée (branche non retenue),5en nouvelle tentative,6hors délai. Un lien vaut0non examiné,1emprunté,2condition 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=trueque pour comprendre : chaque identifiant cité y est relu. POST https://staging-api.docage.com/Flows/{id}/Replaycrée une exécution neuve sur la même fiche ;POST https://staging-api.docage.com/Flows/{id}/CancelRunannule une exécution sans défaire ce qui est fait ;POST https://staging-api.docage.com/Flows/{id}/RespondToApproval/true(oufalse) répond à l'approbation qui attend. Un refus est un422qui dit pourquoi.- Un parcours se lit dans la même forme :
GET https://staging-api.docage.com/Transactions/{id}/Graphrend ses étapes, leurs états et son statut.