à l'aide, API moteur de workflow

Fermé
dry - 11 avril 2017 à 15:46
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 12 avril 2017 à 19:36
Bonjour, à vous la communauté,
je suis confronté à un souci, en entreprise on me demande de développer un moteur de workflow en java . Ce moteur en question doit être une API que d'autres développeurs devront pouvoir paramétrer et l'utiliser a leur façon.

quelqu'un peut-il me donner quelques directives pour débuter , car je ne sais vraiment pas par quoi commencer.

Merci :)



2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
11 avril 2017 à 19:04
Bonjour,

Intéresses toi à des logiciels qui manipulent déjà des workflows pour voir les différentes fonctionnalités qu'ils offrent, par exemple Mantis ou Jira

A priori il s'agit juste de construire un graphe et le parcourir...
0
bonjour,
Merci, je parcours ces deux logiciels et je vous reviens car mon souci est assez spécifique et on me demande un workflow paramétrable , c'est a dire permettre a l'utilisateur de créer un ou plusieurs circuits de validation ensuite selon un formulaire qui devra être rempli, le système fait des vérifications sur ce formulaire avec ces informations puis emprunte le un circuit approprié. D'abord ma question est de savoir est ce que cela est faisable ?

Car pour moi cela sort un peu de l'ordinaire des moteurs de workflows que j'ai parcouru.

Merci
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
12 avril 2017 à 19:36
"D'abord ma question est de savoir est ce que cela est faisable ?"
Je ne vois pas ce qui rendrais la chose compliqué, un workflow c'est quand même assez simple à mettre en place.

Par contre, il faut bien analyser ton besoin, tu l'as expliqué deux fois et il en ressort deux programmes totalement différents :
  • "Ce moteur en question doit être une API que d'autres développeurs devront pouvoir paramétrer et l'utiliser a leur façon."
  • "permettre a l'utilisateur de créer un ou plusieurs circuits de validation ensuite selon un formulaire qui devra être rempli"

À qui s'adresse ton travail ? Un développeur à qui tu peux demander du code technique (implémenter une interface, étendre une classe...) ou un utilisateur lambda qui doit être accompagné de bout en bout dans la création du workflow ?

Voici une interface minimaliste que pourrais implémenter l'utilisateur de ton API et avec laquelle tu pourrais manipuler n'importe quel workflow pour en vérifier le déroulement.

public interface Workflow<W extends Enum<W> & Workflow<W>> {
    boolean isInitState();
    boolean hasNextState(W state);
}

Exemple du déroulement d'un repas au restaurant :


public enum Repas implements Workflow<Repas> {
    ENTREE, PLAT, DESSERT, ADDITION;

    @Override
    public boolean isInitState() {
        return this == ENTREE || this == PLAT;
    }

    @Override
    public boolean hasNextState(Repas state) {
        switch (this) {
        case ENTREE:
            return state == PLAT;
        case PLAT:
            return state == DESSERT || state == ADDITION;
        case DESSERT:
            return state == ADDITION;
        case ADDITION:
            return false;
        default:
            throw new IllegalStateException(this + " is not supported");
        }
    }
}
0