# 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 deactivityetlabel,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 deactivityetlabel,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 deactivityetlabel,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 transitionid: identifiant de la transition,beginState: étape de départ de la transitionid: 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 deactivityetlabel,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 deactivityetlabel,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 transitionid: 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: ordremultiple: 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 Elementid: 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 deactivityetlabel,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 transitionuri: 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.