Gestion des processus

Créez, récupérez, modifiez, supprimez vos processus

Le service WorkflowService expose toutes les opérations disponibles autour des Processus.

Récupération des processus

Récupération de tous les processus

Les exemples ci-dessous indiquent comment récupérer tous les processus présents sur le scope.


# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
curl -X GET "<CORE_HOST>/rest/workflow" \
  -H "token: <TOKEN>"

    @Autowired
    private WorkflowService wkfService;

    public List<Workflow> getAllWorkflow() throws FunctionalException, TechnicalException
    {
        return wkfService.getAll();
    }

Récupération d’une liste définie de processus

Les exemples ci-dessous indiquent comment récupérer une liste de processus à partir de leurs identifiants.


# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <IDS> : liste d'identifiants de processus, séparés par des virgules
curl -X GET "<CORE_HOST>/rest/workflow/<IDS>" \
  -H "token: <TOKEN>"

    @Autowired
    private WorkflowService wkfService;

    public List<Workflow> getWorkflow() throws FunctionalException, TechnicalException
    {
        List<Id> workflowIds = Lists.newArrayList(new Id("processId"));
        workflowIds.add(new Id("processId"));
        return wkfService.get(workflowIds);
    }

Création de classes de processus

Les exemples ci-dessous indiquent comment créer un processus.


# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
curl -X POST "<CORE_HOST>/rest/workflow" \
  -H "token: <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '[
    {
        "startTaskClass": "GEC_Step0_Creation",
        "taskClasses": [
            "GEC_Step1_Distribution",
            "GEC_Step2_ATraiter",
            "GEC_Step0_Creation"
        ],
        "id": "GECTest"
    }
]'

    @Autowired
    private WorkflowService wkfService;

    public void createWorkflow() throws FunctionalException, TechnicalException
    {
        List<Id> taskClasses = new ArrayList<>();
        taskClasses.add(new Id("GEC_Step0_Creation"));
        taskClasses.add(new Id("GEC_Step1_Distribution"));
        taskClasses.add(new Id("GEC_Step2_ATraiter"));

        Workflow wkf = new Workflow();
        wkf.setId(new Id("GecTest"));
        wkf.setStartTaskClass(new Id("GEC_Step0_Creation"));
        wkf.setTaskClasses(taskClasses);

        List<Workflow> workflowList = new ArrayList<>();
        workflowList.add(wkf);

        wkfService.create(workflowList);
    }

Modification de processus

Les exemples ci-dessous indiquent comment modifier un processus.


# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <IDS> : liste des identifiants de workflow à mettre à jour, séparés par des virgules
curl -X POST "<CORE_HOST>/rest/workflow/<IDS>" \
  -H "token: <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '[
    {
        "id": "GECTest",
        "startTaskClass": "GEC_Step0_Creation",
        "taskClasses": [
            "GEC_Step1_Distribution",
            "GEC_Step2_ATraiter",
            "GEC_Step3_CourrierTraite",
            "GEC_Step0_Creation"
        ]
    }
]'

    @Autowired
    private WorkflowService wkfService;

    public List<Workflow> updateWorkflow(Workflow wkf) throws FunctionalException, TechnicalException
    {
        wkf.getTaskClasses().add(new Id("GEC_Step3_CourrierTraite"));
        List<Workflow> workflowList = new ArrayList<>();
        workflowList.add(wkf);

        return wkfService.update(workflowList);
    }


En utilisant le service REST, les informations non renseignées seront vidées : il faut envoyer la totalité du processus et pas seulement les informations à modifier.

Suppression de processus

Les exemples ci-dessous indiquent comment supprimer une liste de processus.


# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <IDS> : liste des identifiants de processus à supprimer, séparés par des virgules
curl -X DELETE "<CORE_HOST>/rest/workflow/<IDS>" \
  -H "token: <TOKEN>"

    @Autowired
    private WorkflowService wkfService;

    public void deleteWorkflow() throws FunctionalException, TechnicalException
    {
        List<Id> workflowIds = Lists.newArrayList(new Id("workflowId"));
        wkfService.delete(workflowIds);
    }


La suppression ne fait aucun contrôle : il faut donc vérifier qu’il n’y a pas d’instances en cours avant la suppression d’un processus.