# Smart Element : Cycle de vie

Cette collection décrit les états et les transitions du cycle de vie associé à un Smart Element.

# URL

/api/v2/smart-elements/<docid>/workflows/

# Méthodes

La collection workflows implémente les éléments suivants:

  • Collection:
Action URL Action effectuée
GET api/v2/smart-elements/<docid>/workflows/states/ Retourne la liste des états pour le Smart Element docid
POST N/A
PUT N/A
DELETE N/A
GET api/v2/smart-elements/<docid>/workflows/transitions/ Retourne la liste des transitions pour le Smart Element docid
POST N/A
PUT N/A
DELETE N/A
  • Ressource:
Action URL Action effectuée
GET api/v2/smart-elements/<docid>/workflows/states/<state> Retourne les caractéristiques de l'état state
POST api/v2/smart-elements/<docid>/workflows/states/<state> Change l'état du Smart Element docid
PUT N/A
DELETE N/A
GET api/v2/smart-elements/<docid>/workflows/transitions/<transition> Retourne les caractéristiques de la transition transition
POST api/v2/smart-elements/<docid>/workflows/transitions/<transition> Change la transition du Smart Element docid
PUT N/A
DELETE N/A

# Récupérer les caractéristiques d'un état

# URL

GET api/v2/smart-elements/<docid>/workflows/states/<state>

Récupération des caractéristiques de l'état state du Smart Element docid.
Exemple: GET api/v2/smart-elements/DEVBILL/workflows/states/wfam_bill_e1

# Contenu

Le contenu de la requête est une donnée JSON.

# En cas de réussite

La partie data contient les champs suivants:

  • uri: URI préférentielle d'accès à la ressource,
  • state: caractéristique de l'étape:
    • id: identifiant de l'état,
    • isCurrentState: indique si cet état est l'étape courante,
    • label: intitulé de l'état (traduit en fonction de la locale utilisateur),
    • activity: intitulé de l'activité (traduit en fonction de la locale utilisateur),
    • displayValue: intitulé calculé en fonction des valeurs de activityet label,
    • color: code couleur (#RRGGBB) associé à l'état,
    • transition: transition qui emmène à cette étape ("null" si pas de transition possible):
      • uri: URI de la transition,
      • label: intitulé de la transition.

Exemple:

{
  "success": true,
  "data": {
    "uri": "/api/v2/smart-elements/DEVBILL/workflows/states/wfam_bill_e2",
    "state": {
      "id": "wfam_bill_e2",
      "isCurrentState": false,
      "label": "wfam_bill_e2",
      "activity": "",
      "displayValue": "Final",
      "color": "#FF4249",
      "transition": {
        "uri": "/api/v2/smart-elements/DEVBILL/workflows/transitions/t_wfam_bill_e1_e2",
        "label": "Transition initial final"
      }
    }
  },
  "messages": []
}

# En cas d'échec

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

Raison Status HTTP Code d'erreur
Smart Element inconnu 404 Document not found CRUD0200
Accès refusé au Smart Element 403 Forbidden CRUD0201
Smart Element supprimé 404 Document deleted CRUD0219
Pas de cycle de vie associé 404 No workflow detected CRUD0227
État inconnu 404 State not found CRUD0228

# Changer d'état

# URL

POST /api/v2/smart-elements/<docid>/workflows/states/<state>

Le Smart Element docid passe dans le nouvel état donné state. La transition liée à ce changement d'état est exécutée.

Note

Seul l'utilisateur "admin" peut changer l'état d'un Smart Element lorsqu'aucune transition n'est valide.

Exemple:

POST /api/v2/smart-elements/DEVBILL/workflows/states/wfam_bill_e2

# Contenu

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

  • comment: texte à insérer dans l'historique,
  • parameters: liste des valeurs des paramètres indexés par leur identifiant.

Exemple:

{
  "comment": "Mon commentaire de transition",
  "parameters": {
    "my_referencedate": "2019-08-20",
    "my_validation": "yes"
  }
}

# Structure de retour

Le retour est une donnée JSON

# En cas de réussite

La partie data contient les champs suivants:

  • uri: URI préférentielle d'accès à la ressource,
  • state: caractéristiques du nouvel état du Smart Element:
    • id: identifiant de l'état,
    • isCurrentState: indique si cet état est l'étape courante,
    • label: intitulé de l'état (traduit en fonction de la locale utilisateur),
    • activity: intitulé de l'activité (traduit en fonction de la locale utilisateur),
    • displayValue: intitulé calculé en fonction des valeurs de activityet label,
    • color: code couleur (#RRGGBB) associé à l'état,
    • transition: transition qui emmène à cette étape ("null" si pas de transition possible):
      • uri: uri de la transition,
      • label: intitulé de la transition.

Exemple:

{
  "success": true,
  "data": {
    "uri": "/api/v2/smart-elements/DEVBILL/workflows/states/wfam_bill_e2",
    "state": {
      "id": "wfam_bill_e2",
      "isCurrentState": true,
      "label": "wfam_bill_e2",
      "activity": "",
      "displayValue": "Final",
      "color": "#FF4249",
      "transition": {
        "uri": "/api/v2/smart-elements/DEVBILL/workflows/transitions/t_wfam_bill_e1_e2",
        "label": "Transition initial final"
      }
    }
  },
  "messages": []
}

# En cas d'échec

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

Raison Status HTTP Code d'erreur
Échec de la transition (droit, m0,m1) 403 Forbidden WFL0300
Transition invalide 404 Invalid transition CRUD0235

Le changement d'état hérite également des raisons d'échec liées à la récupération des caractéristiques d'un état.

# Récupération de la liste des étapes

# URL

GET /api/v2/smart-elements/<docid>/workflows/states/

Récupération des étapes suivantes possibles du Smart Element docid.

GET /api/v2/smart-structures/<family>/smart-elements/<docid>/workflows/states/

Récupération des étapes suivantes possibles du Smart Element docid de la Smart Structure family.

Les étapes possibles sont les étapes qui ont une transition pour rejoindre l'étape suivante et pour lesquelles l'utilisateur a les privilèges pour passer la transition.

Si la méthode m0 d'une transition retourne un message, l'étape suivante sera retournée en indiquant l'erreur.
Le paramètre optionnel allStates=1 permet de retourner toutes les étapes, même celles qui n'ont pas de transition.
Exemple: GET /api/v2/smart-elements/DEVBILL/workflows/states/

# Contenu

Le contenu de la requête est vide.

# Structure de retour

# En cas de réussite

La partie data contient les champs suivants:

  • uri: URI préférentielle d'accès à la ressource,

  • states: liste des états:

    • id: identifiant de l'état,

    • label: intitulé de l'état (traduit en fonction de la locale utilisateur),

    • activity: intitulé de l'activité (traduit en fonction de la locale utilisateur),

    • displayValue: intitulé calculé en fonction des valeurs de activityet label,

    • color: code couleur (#RRGGBB) associé à l'état,

    • uri: URI d'accès à l'état,

    • transition: transition qui emmène à cette étape ("null" si pas de transition possible):

      • id: identifiant de la transition,
      • uri: uri de la transition,
      • label: intitulé de la transition,
      • error: message de la méthode m0,
      • authorized: indique si l'utilisateur possède le droit d'effectuer la transition.

Exemple:

{
  "success": true,
  "data": {
    "uri": "/api/v2/smart-elements/workflows/DEVBILL/states/",
    "states": [
      {
        "id": "wfam_bill_e1",
        "label": "Initial",
        "activity": "",
        "displayValue": "Initial",
        "color": "#00CE01",
        "uri": "/api/v2/smart-elements/workflows/DEVBILL/states/wfam_bill_e1",
        "transition": null
      },
      {
        "id": "wfam_bill_e2",
        "label": "Final",
        "activity": "",
        "displayValue": "Final",
        "color": "#FF4249",
        "uri": "/api/v2/smart-elements/workflows/DEVBILL/states/wfam_bill_e2",
        "transition": {
          "id": "t_wfam_bill_e1_e2",
          "uri": "/api/v2/smart-elements/DEVBILL/workflows/transitions/t_wfam_bill_e1_e2",
          "label": "Transition initial final",
          "error": null,
          "authorized": true
        }
      }
    ]
  },
  "messages": []
}

# En cas d'échec

Les raisons spécifiques à cette requête sont:

Raison Status HTTP Code d'erreur
Smart Element inconnu 404 Document not found CRUD0200
Accès refusé au Smart Element 403 Forbidden CRUD0201
Le Smart Element n'appartient pas à la Smart Structure 404 Document is not a document of the family CRUD0220
Smart Element supprimé 404 Document deleted CRUD0219
Pas de cycle de vie associé 404 No workflow detected CRUD0227

# Récupérer les caractéristiques d'une transition

# URL

GET /api/v2/smart-elements/<docid>/workflows/transitions/<transition>

Récupération de la transition transition du Smart Element docid.

GET /api/v2/smart-structures/<family>/smart-elements/<docid>/workflows/transitions/<transition>>

Récupération de la transition transition du Smart Element docid de la Smart Structure family.

Exemple: GET /api/v2/smart-elements/DEVBILL/workflows/transitions/t_wfam_bill_e1_e2

# Contenu

Le contenu de la requête est vide.

# Structure de retour

Le retour est une donnée JSON

# En cas de réussite

la partie data contient les champs suivants:

  • uri: URI préférentielle d'accès à la ressource,
  • transition: Caractéristique de la transition
    • id: identifiant de la transition,
    • beginState: étape de départ de la transition
      • id: identifiant de l'état de départ,
      • isCurrentState: indique si c'est l'état courant du Smart Element,
      • label: intitulé de l'état (traduit en fonction de la locale de l'utilisateur),
      • activity: intitulé de l'activité (traduit en fonction de la locale de l'utilisateur),
      • displayValue: intitulé calculé en fonction des valeurs de activity et label,
      • color: code couleur (#RRGGBB) associé à l'état.
    • endState:
      • id: identifiant de l'état d'arrivée,
      • isCurrentState: indique si c'est l'état courant du Smart Element,
      • label: intitulé de l'état (traduit en fonction de la locale de l'utilisateur),
      • activity: intitulé de l'activité (traduit en fonction de la locale de l'utilisateur),
      • displayValue: intitulé calculé en fonction des valeurs de activity et label,
      • color: code couleur (#RRGGBB) associé à l'état.
    • label: intitulé de la transition (traduit en fonction de la locale de l'utilisateur),
    • askComment: (boolean) indique si un commentaire peut être associé à la transition,
    • askAttributes: liste des paramètres de transition
      • id: identifiant du paramètre (provenant de la Smart Structure du cycle de vie),
      • visibility: visibilité du paramètre,
      • label: intitulé du paramètre,
      • type: type du paramètre,
      • logicalOrder: ordre
      • multiple: indique si le type est multivalué,
      • options: options de l'attribut,
      • needed: indique si la valeur est obligatoire.

Exemple:

{
  "success": true,
  "data": {
    "uri": "/api/v2/smart-elements/DEVBILL/workflows/transitions/t_wfam_bill_e1_e2",
    "transition": {
      "id": "t_wfam_bill_e1_e2",
      "beginState": {
        "id": "wfam_bill_e1",
        "isCurrentState": true,
        "label": "Initial",
        "activity": "",
        "displayValue": "Initial",
        "color": "#00CE01"
      },
      "endState": {
        "id": "wfam_bill_e2",
        "isCurrentState": false,
        "label": "Final",
        "activity": "",
        "displayValue": "Final",
        "color": "#FF4249"
      },
      "label": "t_wfam_bill_e1_e2",
      "askComment": true,
      "askAttributes": []
    }
  },
  "messages": []
}

# En cas d'échec

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

Raison Status HTTP Code d'erreur
Accès refusé au Smart Element 403 Forbidden CRUD0201
Pas de cycle de vie associé 404 No workflow detected CRUD0227
Transition inconnu 404 Transition not found CRUD0229

La récupération des caractéristiques d'une transition hérite également des raisons d'échec liées à la récupération des caractéristiques d'un état.

# Passer une transition

# URL

POST /api/v2/smart-elements/<docid>/workflows/transitions/<transition>

Le Smart Element docid passe la transition donnée transition. La transition demandée doit exister à partir de l'état courant.

POST /api/v2/smart-structures/<family>/smart-elements/<docid>/workflows/transitions/<transition>

Le Smart Element docid de la Smart Structure family, passe la transition donnée transition. La transition demandée doit exister à partir de l'état courant.

Exemple: POST /api/v2/smart-elements/DEVBILL/workflows/transitions/t_wfam_bill_e1_e2

# Contenu

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

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

Exemple:

{
  "comment": "Mon commentaire de transition",
  "parameters": {
    "my_referencedate": "2019-08-20",
    "my_validation": "yes"
  }
}

# Structure de retour

Le retour est une donnée JSON

# En cas de réussite

La partie data contient les champs suivants:

  • uri: URI préférentielle d'accès à la ressource,
  • state: nouvel état du Smart Element
    • id: identifiant de l'état,
    • isCurrentState: indique si cet état est l'étape courante,
    • label: intitulé de l'état (traduit en fonction de la locale de l'utilisateur),
    • activity: intitulé de l'activité (traduit en fonction de la locale de l'utilisateur),
    • displayValue: intitulé calculé en fonction des valeurs de activity et label,
    • color: code couleur (#RRGGBB) associé à l'état.

Exemple:

{
  "success": true,
  "data": {
    "state": {
      "id": "wfam_bill_e2",
      "isCurrentState": true,
      "label": "Final",
      "activity": null,
      "displayValue": "Final",
      "color": "#FF4249"
    }
  },
  "messages": []
}

# En cas d'échec

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

Raison Status HTTP Code d'erreur
Transition non valide 404 invalid transition CRUD0235
Utilisation de la transition refusée 403 Forbidden WFL0300

Le passage de transition hérite également des raisons d'échec de la récupération des caractéristiques d'une transition.

# Récupérer la liste des transitions

# URL

GET /api/v2/smart-elements/<docid>/workflows/transitions/

Récupération de toutes les transitions du Smart Element docid.

GET /api/v2/smart-structures/<family>/smart-elements/<docid>/workflows/transitions/

Récupération de toutes les transitions du Smart Element docid de la Smart Structure family.

Exemple: GET /api/v2/smart-elements/DEVBILL/workflows/transitions/

# Contenu

Le contenu de la requête est vide.

# Structure de retour

Le retour est une donnée JSON.

# En cas réussite

La partie data contient les champs suivants:

  • uri: URI préférentielle d'accès à la ressource,
  • transition: liste de transition
    • uri: URI de la transition,
    • label: intitulé de la transition (traduit en fonction de la locale de l'utilisateur),
    • valid: indique si la transition existe depuis l'étape courante. Cela ne vérifie pas si l'utilisateur courant peut passer la transition

Exemple:

{
  "success": true,
  "data": {
    "uri": "/api/v2/smart-elements/workflows/transitions/",
    "transitions": [
      {
        "uri": "/api/v2/smart-elements/workflows/transitions/t_wfam_bill_e1_e2",
        "label": "t_wfam_bill_e1_e2",
        "valid": false
      }
    ]
  },
  "messages": []
}

# En cas d'échec

Les raisons d'échec spécifiques à cette requête sont héritées des raisons d'échec spécifiques à la récupération de la liste des étapes.