Le service TaskClassService expose toutes les opérations disponibles autour des composants de type TaskClass.
Récupération des classes de tâches
Récupération de toutes les classes de tâches
Les exemples ci-dessous indiquent comment récupérer toutes les classes de tâches.
GET {{core}}/rest/taskclass HTTP/1.1
-- Paramètre d'URL -- 
core: host de FlowerDocs core
-- Headers -- 
token: {{token}}
    @Autowired
    private TaskClassService taskClassService;
    public List<TaskClass> getAll() throws FunctionalException, TechnicalException
    {
        return taskClassService.getAll();
    }
Récupération d’une liste définie de classes de tâches
Les exemples ci-dessous indiquent comment récupérer une liste de classes de tâches à partir de leurs identifiants.
GET {{core}}/rest/taskclass/{ids} HTTP/1.1
-- Paramètre d'URL -- 
core: host de FlowerDocs core
ids: liste d'identifiants de classes de tâches
-- Headers -- 
token: {{token}}
    @Autowired
    private TaskClassService taskClassService;
    public List<TaskClass> getTaskClasses() throws FunctionalException, TechnicalException
    {
        List<Id> taskClassesIds = Lists.newArrayList(new Id("taskClassId"));
        taskClassesIds.add(new Id("taskClass2Id"));
        return taskClassService.get(taskClassesIds);
    }
Création de classes de tâches
Les exemples ci-dessous indiquent comment créer une classe de tâches.
POST {{core}}/rest/taskclass HTTP/1.1
-- Paramètre d'URL -- 
core: host de FlowerDocs core
-- Headers -- 
token: {{token}}
Content-Type: application/json
-- Body (json) --
[
  {
    "answers": [
      {
        "displayNames": [
          {
            "language": "FR",
            "value": "Traiter"
          }
        ],
        "id": "Treat"
      }
    ],
    "autoAssign": true,
    "category": "TASK",
    "data": {
      "ACL": "acl-treatment",
      "creationDate": "2024-03-07 1354.854 +0100",
      "lastUpdateDate": "2024-03-07 1354.854 +0100",
      "owner": "fadmin"
    },
    "displayNames": [
      {
        "language": "FR",
        "value": "Traitement du courrier"
      }
    ],
    "icon": "fa fa-clone",
    "id": "GEC_traitement",
    "tagReferences": [
      {
        "descriptions": [
          {
            "language": "FR",
            "value": "Référence du client"
          }
        ],
        "mandatory": true,
        "multivalued": false,
        "order": 0,
        "readonly": false,
        "tagName": "NumReference",
        "technical": false
      }
    ],
    "technical": true,
    "workflow": "GEC"
  }
]
    @Autowired
    private TaskClassService taskClassService;
    
    public void createTaskClasses() throws FunctionalException, TechnicalException
    {
        List<I18NLabel> answerLabels = new ArrayList<>();
        I18NLabel answerlabelFR = new I18NLabel("Traiter", "FR");
        answerLabels.add(answerlabelFR);
        List<I18NLabel> classLabels = new ArrayList<>();
        I18NLabel classlabelFR = new I18NLabel("Traitement du courrier", "FR");
        classLabels.add(classlabelFR);
        Answer treatAnswer = new Answer();
        treatAnswer.setId(new Id("Treat"));
        treatAnswer.setDisplayNames(answerLabels);
        List<Answer> answers = new ArrayList<>();
        answers.add(treatAnswer);
        TagReference tag = new TagReference();
        tag.setTagName("NumReference");
        tag.setMandatory(true);
        List<TagReference> tags = new ArrayList<>();
        tags.add(tag);
        TaskClass taskClass = new TaskClass();
        taskClass.setId(new Id("GEC_Traitement"));
        taskClass.setAnswers(answers);
        taskClass.setTagReferences(tags);
        taskClass.setData(new Data());
        taskClass.getData().setACL(new Id("acl-treatment"));
        taskClass.setIcon("fa fa-clone");
        taskClass.setAutoAssign(true);
        taskClass.setWorkflow(new Id("GEC"));
        taskClass.setDisplayNames(classLabels);
        List<TaskClass> taskClasses = new ArrayList<>();
        taskClasses.add(taskClass);
        taskClassService.create(taskClasses);
    }
Modification de classes de tâches
Les exemples ci-dessous indiquent comment modifier une classe de tâche.
POST {{core}}/rest/taskclass/{ids} HTTP/1.1
-- Paramètre d'URL -- 
core: host de FlowerDocs core
ids : liste des identifiants de classe de tâches à mettre à jour, séparés par des virgules
-- Headers --
token: {{token}}
Content-Type: application/json
-- Body (json) --
[
  {
    "answers": [
      {
        "displayNames": [
          {
            "language": "FR",
            "value": "Traiter"
          }
        ],
        "id": "Treat"
      },
      {
        "displayNames": [
          {
            "language": "FR",
            "value": "Refuser"
          }
        ],
        "id": "Refuse"
      }
    ],
    "autoAssign": false,
    "category": "TASK",
    "data": {
      "ACL": "acl-treatment",
      "creationDate": "2024-03-07 1354.854 +0100",
      "lastUpdateDate": "2024-03-07 1354.854 +0100",
      "owner": "fadmin"
    },
    "displayNames": [
      {
        "language": "FR",
        "value": "Traitement du courrier"
      }
    ],
    "icon": "fa fa-envelope",
    "id": "GEC_traitement",
    "tagReferences": [
      {
        "descriptions": [
          {
            "language": "FR",
            "value": "Référence du client"
          }
        ],
        "mandatory": true,
        "multivalued": false,
        "order": 0,
        "readonly": false,
        "tagName": "NumReference",
        "technical": false
      }
    ],
    "technical": true,
    "workflow": "GEC"
  }
]
    @Autowired
    private TaskClassService taskClassService;
    
    public List<TaskClass> updatetaskClass(TaskClass taskClass) throws FunctionalException, TechnicalException
    {
        List<I18NLabel> answerLabels = new ArrayList<>();
        I18NLabel answerlabelFR = new I18NLabel("Refuser", "FR");
        answerLabels.add(answerlabelFR);
        Answer refuseAnswer = new Answer();
        refuseAnswer.setId(new Id("Refuse"));
        refuseAnswer.setDisplayNames(answerLabels);
        taskClass.setIcon("fa fa-envelope");
        taskClass.getAnswers().add(refuseAnswer);
        taskClass.setAutoAssign(false);
        List<TaskClass> taskClasses = new ArrayList<>();
        taskClasses.add(taskClass);
        return taskClassService.update(taskClasses);
    }
En utilisant le service REST, les informations non renseignées seront vidées : il faut envoyer la totalité de la classe de tâche et non pas seulement les informations à modifier.
        Suppression de classes de tâches
Les exemples ci-dessous indiquent comment supprimer une liste de classes de tâches.
DELETE {{core}}/rest/taskclass/{ids} HTTP/1.1
-- Paramètre d'URL -- 
core: host de FlowerDocs core
ids : liste des identifiants de classe de tâches à supprimer, séparés par des virgules
-- Headers --
token: {{token}}
    @Autowired
    private TaskClassService taskClassService;
    
    public void deleteTaskClasses() throws FunctionalException, TechnicalException
    {
        List<Id> taskClassesIds = Lists.newArrayList(new Id("taskClassId"));
        taskClassService.delete(taskClassesIds);
    }
Avant de supprimer une classe de tâche, il est important de s’assurer d’avoir bien supprimé toutes les instances de cette classe, ainsi que les références à celle-ci au niveau des objets de type workflow.