Le service Task expose toutes les opérations disponibles autour des composants de type TASK.
Récupération de tâche
Les exemples ci-dessous indiquent comment récupérer des tâches à partir d’une liste d’identifiant.
GET {{core}}/rest/tasks/{ids} HTTP/1.1
-- Paramètres d'URL --
core : host
ids : identifiants des tâches à récupérer
-- Headers --
token: {{token}}
Content-Type: application/json
    @Autowired
    private TaskService taskService;
    public List<Task> get() throws TechnicalException, FunctionalException
    {
        List<Id> ids = Lists.newArrayList(new Id("taskId"));
        return taskService.get(ids);
    }
Création de tâche
Les exemples ci-dessous indiquent comment créer une liste de tâches en utilisant l’opération suivante.
GET {{core}}/rest/tasks/ HTTP/1.1
-- Paramètres d'url --
core: host de FlowerDocs core
-- Headers --
token: {{token}}
Content-Type: application/json
-- Body (json) --
[
  {
    "workflow": "Inform",
    "assignee": "fadmin",
    "category": "TASK",
    "data": {
        "classId": "GEC_Step3_CourrierLu",
        "owner": "clm",
        "ACL": "ACL_TASK"
    },
    "name": "3-Courrier lu",
    "tags": [
        {
            "value": [
                "Jean"
            ],
            "name": "PrenomClient",
            "readOnly": false
        },
        {
            "value": [
                "123456"
            ],
            "name": "RefClient",
            "readOnly": false
        },
        {
            "value": [
                "DUPONT"
            ],
            "name": "NomClient",
            "readOnly": false
        }
    ],
    "attachments": [
        {
            "componentIds": [
                "c46de78c-92d4-45ef-b262-8395aa76a4a8"
            ],
            "id": "Courrier",
            "category": "DOCUMENT",
            "order": 0
        }
    ]
  }
]
    @Autowired
    private TaskService taskService;
    public List<Task> create() throws FunctionalException, TechnicalException
    {
        Task task = new Task();
        task.setAssignee("user_responsable");
        task.getData().setACL(new Id("acl-creation"));
        task.getData().setClassId(new Id("demandeConge_creation"));
        task.getData().setOwner("jna");
        task.setName("Demande de congé");
        task.setTags(new Tags());
        task.getTags().getTags().add(TagBuilder.name("RefClient").value("TT2587496").build());
        task.getTags().getTags().add(TagBuilder.name("DureeConge").value("5").build());
        return taskService.create(Arrays.asList(task));
    }
Modification de tâche
Cette opération permet de mettre à jour les données d’une tâche : tags et data (identifiant de la classe, nom de la tâche, ACL …).
GET {{core}}/rest/tasks/{ids} HTTP/1.1
-- Paramètres d'URL --
core: host de FlowerDocs core
ids: identifiants des tâches à mettre à jour
-- Headers --
token: {{token}}
Content-Type: application/json
-- Body (json) --
[
  {
    "workflow": "Inform",
    "assignee": "fadmin",
    "category": "TASK",
    "data": {
        "classId": "GEC_Step3_CourrierLu",
        "owner": "clm",
        "ACL": "ACL_TASK"
    },
    "name": "3-Courrier lu",
    "tags": [
        {
            "value": [
                "Jean"
            ],
            "name": "PrenomClient",
            "readOnly": false
        },
        {
            "value": [
                "123456"
            ],
            "name": "RefClient",
            "readOnly": false
        },
        {
            "value": [
                "DUPONT"
            ],
            "name": "NomClient",
            "readOnly": false
        }
    ],
    "attachments": [
        {
            "componentIds": [
                "c46de78c-92d4-45ef-b262-8395aa76a4a8"
            ],
            "id": "Courrier",
            "category": "DOCUMENT",
            "order": 0
        }
    ]
  }
]
    @Autowired
    private TaskService taskService;
    public List<Task> update(Task task) throws FunctionalException, TechnicalException
    {
        task.getTags().getTags().add(new Tag(Arrays.asList("DUPONT"), "NomClient", false));
        return taskService.update(Arrays.asList(task));
    }
Recherche de tâche
Les opérations de recherche fonctionnent toutes sur le même modèle décrit ici.
Suppression de tâche
Les exemples ci-dessous indiquent comment supprimer une liste de tâches à partir d’une liste d’identifiant.
DELETE {{core}}/rest/tasks/{ids} HTTP/1.1
-- Paramètres d'URL --
core: host de FlowerDocs core
-- Headers --
token: {{token}}
Content-Type: application/json
    @Autowired
    private TaskService taskService;
    public void delete() throws FunctionalException, TechnicalException
    {
        List<Id> ids = Lists.newArrayList(new Id("taskId"));
        taskService.delete(ids);
    }
Application d’une réponse
Réponse simple
Les exemples ci-dessous indiquent comment appliquer une réponse simple sur une liste de tâches à partir d’une liste d’identifiant.
PUT {{core}}/rest/tasks/{ids}/answer HTTP/1.1
-- Paramètres d'URL --
core: host de FlowerDocs core
ids : identifiants des tâches sur lesquels appliquer la réponse
-- Headers --
token: {{token}}
Content-Type: application/json
-- Body (json) --
{
  "id": "Refuser"
}
    @Autowired
    private TaskService taskService;
    public void answer() throws FunctionalException, TechnicalException
    {
        Answer answer = new Answer();
        answer.setId(new Id("Refuser"));
        taskService.answer(Lists.newArrayList(new Id("taskId")), answer);
    }
Réponse avec motif
Les exemples ci-dessous indiquent comment appliquer une réponse avec motif sur une liste de tâches à partir d’une liste d’identifiant.
PUT {{core}}/rest/tasks/{ids}/answer HTTP/1.1
-- Paramètres d'URL --
core: host de FlowerDocs core
ids : identifiants des tâches sur lesquels appliquer la réponse
-- Headers --
token: {{token}}
Content-Type: application/json
-- Body (json) --
{
  "id": "Refuser",
   "type": "com.flower.docs.domain.taskclass.ReasonedAnswer",
   "tags": [
      {
        "name": "Commentaire",
        "value": [
          "Le justificatif n'est pas à jour."
        ]
      }
    ]
}
    @Autowired
    private TaskService taskService;
    public void answer() throws FunctionalException, TechnicalException
    {
        ReasonedAnswer answer = new ReasonedAnswer();
        answer.setId(new Id("Refuser"));
        answer.setTags(null);
        answer.setTags(new Tags());
        answer.getTags().getTags().add(TagBuilder.name("Commentaire").value("Le jusitifcatif n'est pas à jour.").build());
        taskService.answer(Lists.newArrayList(new Id("taskId")), answer);
    }
Assignation de tâche
Les exemples ci-dessous indiquent comment assigner une liste de tâches à un utilisateur à partir d’une liste d’identifiant.
PUT {{core}}/rest/tasks/{ids}/assignee/{username} HTTP/1.1
-- Paramètres d'URL --
core: host de FlowerDocs core
ids: identifiants des tâches à assigner
username: identifiant de l'utilisateur assigné
-- Headers --
token: {{token}}
Content-Type: application/json
    @Autowired
    private TaskService taskService;
    public void assign() throws FunctionalException, TechnicalException
    {
        List<Id> ids = Lists.newArrayList(new Id("taskId"));
        taskService.assign(ids, "jna");
    }