Handling task classes

Create, get, modify and delete your task classes

The TaskClassService service exposes all operations available around TaskClass type components.

Retrieving task classes

Retrieve all task classes

The examples below show how to retrieve all task classes.


GET {{core}}/rest/taskclass HTTP/1.1

-- URL parameters -- 
core: FlowerDocs Core host

-- Headers -- 
token: {{token}}


    @Autowired
    private TaskClassService taskClassService;

    public List<TaskClass> getAll() throws FunctionalException, TechnicalException
    {
        return taskClassService.getAll();
    }

Retrieve a defined list of task classes

The examples below show how to retrieve a list of task classes from their identifiers.


GET {{core}}/rest/taskclass/{ids} HTTP/1.1

-- URL parameters -- 
core: FlowerDocs Core host
ids: list of task class identifiers

-- 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);
    }

Creating task classes

The examples below show how to create a task class.


POST {{core}}/rest/taskclass HTTP/1.1

-- URL parameters -- 
core: FlowerDocs Core host

-- 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);
    }

Modifying task classes

The examples below show how to modify a task class.


POST {{core}}/rest/taskclass/{ids} HTTP/1.1

-- URL Parameters -- 
core: FlowerDocs Core host
ids : comma-separated list of task class identifiers to be updated

-- 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);
    }


If you use the REST service, any information that has not been filled in will be emptied: you need to send the entire task class, not just the information to be modified.

Deleting task classes

The examples below show how to delete a list of task classes.


DELETE {{core}}/rest/taskclass/{ids} HTTP/1.1

-- URL Parameters -- 
core: FlowerDocs Core host
ids : comma-separated list of task class identifiers to be deleted

-- Headers --
token: {{token}}


    @Autowired
    private TaskClassService taskClassService;
    
    public void deleteTaskClasses() throws FunctionalException, TechnicalException
    {
        List<Id> taskClassesIds = Lists.newArrayList(new Id("taskClassId"));
        taskClassService.delete(taskClassesIds);
    }


Before deleting a task class, it’s important to make sure you’ve deleted all instances of this class, as well as all references to it in workflow objects.