Traitement d'une tâche utilisateur en appelant les API REST Business Automation Workflow

Une tâche utilisateur est affectée à une ou plusieurs équipes. Un membre de l'équipe s'attribue la tâche, fournit les informations pertinentes, puis la réalise.

Avant de commencer

Attention: les appels d'API REST qui renvoient une liste d'objets, par exemple GET /processes ou GET /user-tasks , peuvent inclure des paramètres de requête, tels que le nom de modèle, le nom de conteneur ou l'ID de processus. Si la valeur du paramètre pointe sur un objet inexistant (par exemple, car l'ID de processus contient une coquille), une erreur n'est pas renvoyée. A la place, l'objet JSON renvoyé par l'appel contient une liste vide. Pour plus d'informations sur les appels d'API, voir API REST de flux de travaux.

Procédure

  1. Affichez une liste de tâches non attribuées que l'utilisateur en cours est autorisé à voir.
    Les tâches non attribuées sont celles dont l'état indique ready (prêt) :
    GET /bpm/user-tasks?states=ready
    Pour filtrer la liste de tâches en n'affichant que celles associées à un processus spécifique, incluez le nom du modèle (OrderManagement par exemple) dans la requête :
    GET /bpm/user-tasks?model=OrderManagement&states=ready 
    
    Vous pouvez aussi afficher les tâches concernant une instance de processus spécifique en incluant l'ID du processus, 2072.3 par exemple, dans la requête :
    GET /bpm/user-tasks?process_id=2072.3&states=ready 
    
  2. L'utilisateur ouvre une tâche dans la liste pour examiner les données métier.
    Pour afficher les données métier, incluez le paramètre optional_parts=data dans la requête. Pour vous assurer que l'utilisateur est autorisé à afficher et à revendiquer la tâche, incluchez la propriété actions dans le paramètre optional_parts.
    Par exemple, si l'utilisateur ouvre la tâche 2078.3, vous pouvez utiliser l'appel d'API REST suivant pour afficher les détails de la tâche et renvoyer les actions que peut effectuer l'utilisateur :
    GET /bpm/user-tasks/2078.3?optional_parts=data,actions 
    
  3. L'utilisateur s'attribue la tâche.
    Par exemple, si l'utilisateur réclame la tâche 2078.3, vous pouvez utiliser l'appel d'API REST suivant :
    POST /bpm/user-tasks/2078.3/claim?optional_parts=data 
    
    La tâche passe à l'état claimed (attribuée). L'objet d'instance de tâche utilisateur renvoyé inclut l'ID utilisateur du propriétaire de la tâche et les variables actuellement définies.
  4. Le propriétaire de la tâche fournit les informations requises, puis réalise la tâche.
    Les variables de sortie de données requises pour la tâche sont transmises dans un objet JSON dans le corps de requête de l'appel /complete. Par exemple, le processeur de commande peut avoir besoin de fournir une confirmation que le stock est disponible dans un entrepôt et le coût total de la commande.
    POST /bpm/user-tasks/2078.3/complete
    ...
    {
       "output":[
          {
             "name":"inStock",
             "data":"Yes"
           }
           {
              "name":"Price",
              "data":"1000",
           }
           {
              "name":"warehouseAddress",
              "data":{
                 "street":"Mystreet", 
                 "houseNo":"12", 
                 "postCode":"1234", 
                 "city":"Mycity" 
                }
            }]
    }

Résultats

La tâche est mise à l'état terminé. L'objet d'instance de tâche utilisateur renvoyé contient les informations d'état actualisées, l'horodatage d'achèvement, et les variables mises à jour.

Etape suivante

Si vous souhaitez faire échouer une tâche intentionnellement, vous pouvez utiliser l'appel d'API REST suivant pour achever cette tâche avec un code d'erreur et des données d'erreur :
POST /user-tasks/{task_id}/fail

Un événement Erreur de fin doit être modélisé dans le service avec un code d'erreur correspondant pour que l'API soit appelée avec succès. Les données d'erreur sont une représentation JSON d'un objet pouvant représenter l'erreur elle-même ou tout autre objet. Par exemple, pour transmettre une instance d'un objet métier avec une seule variable de type Chaîne au format JSON, vous devez utiliser le format suivant :

{
"code" : "CustomErrorCode",
"data" : "{\"errorString\":\"String for custom error code\"}"
}