7.4 Changer d'état

7.4.1 URL

POST /api/v1/documents/<documentId>/workflows/states/<stateid>

Le document documentId passe dans le nouvel état donné stateId. La transition liée à ce changement d'état est exécutée.

Note : Seul l'utilisateur "admin", peut changer l'état d'un document lorsqu'aucune transition n'est valide.

Exemple :

POST /api/v1/documents/<documentId>/workflows/states/<stateid>

7.4.2 Content

Le contenu est une structure JSON qui comprend les informations suivantes :

  1. comment : Texte à insérer dans l'historique
  2. parameters : Liste des valeurs des paramètres indexés par leur identifiant

Exemple :

{
    "comment" : "Mon commentaire de transition"
    "parameters": {
        "my_referencedate": "2015-06-23",
        "my_validation": "yes"
    }
}

7.4.3 Structure de retour

Le retour est une donnée JSON.

7.4.3.1 En cas de réussite :

La partie data contient :

  1. uri : URI préférentielle d'accès à la ressource;
  2. state : Nouvel état du document
    1. id : identifiant de l'état,
    2. isCurrentState : indique si cet état est l'étape courante,
    3. label : intitulé de l'état (localisé en fonction de la langue de l'utilisateur)
    4. activity : intitulé de l'activité (localisé en fonction de la langue de l'utilisateur)
    5. displayValue : intitulé calculé en fonction des valeurs de "activity" et "label"
    6. color : code couleur (#RRGGBB) associé à l'état

Exemple :

{
    "success": true,
    "messages": [
        {
            "type": "warning",
            "contentText": "Avertissement : Pas de modèle de courriel",
            "code": "WORKFLOW_TRANSITION"
        },
        {
            "type": "notice",
            "contentText": "12:00 - Bulle changement d'état vers Transmis"
        }
    ],
    "data": {
        "state": {
            "id": "my_transmited",
            "isCurrentState": true,
            "label": "Transmis",
            "activity": "Vérification de l'adoption",
            "displayValue": "Vérification de l'adoption",
            "color": "#A8E5FF"
        }
    }
}

7.4.3.2 En cas d'échec

Les raisons d'échecs spécifiques à cette requête sont

Raison Status HTTP Error Code
Échec de la transition (droit, m0, m1) 403 Forbidden CRUD0230
Pas de cycle de vie associé 404 No workflow detected CRUD0227

Exemple :

{
    "success": false,
    "messages": [
        {
            "type": "error",
            "contentText": "Erreur : Pas d'adresse pour le contrôleur",
            "code": "CRUD0230"
        }
    ],
    "data": null,
    "exceptionMessage": "Cannot use transition \"Erreur : Pas d'adresse pour le contrôleur\" "
}
×