# 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 deactivity
etlabel
,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 deactivity
etlabel
,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 deactivity
etlabel
,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 deactivity
etlabel
,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 deactivity
etlabel
,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 deactivity
etlabel
,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.