[Conception] Générateur de business rules
Bonjour
Je suis confronté à un gros problème conceptuel. A chaque fois que je crois avoir trouvé la solution je rencontre une nouvelle contrainte qui annule la solution. En fait, pendant de mon stage dans une banque je dois développer un workflow manager qui va récupérer des events de quelques tables dans 3 bases de données(plusieurs tables pour chaque), puis il efféctu quelques actions. Les events peuvent êtres récupérés de différentes manières (des select totalement différents), donc chaque règle a son propre select plus ou moins (il y'a des jointures, des comparaisons des imbrications, des doubles requêtes... etc).
Mon soucis maintenant c'est que l'utilisateur final veut pouvoir rajouter les règles par lui même, l'utilisateur est non-informaticien (non-développeur pour pas dire un analpc (c.f analphabète? ôO)) !
Solution 1) Scripting -> L'utilisateur ne sait pas scripter
Solution 2) Couche scripting + couche génératrice de scripts sur base des choix de l'utilisateur en passant par la GUI
La couche de scripting va t-être développée quoi qu'il arrive, donc maintenant le truc le plus chaud c'est la couche supérieur qui va générer ces scripts. J'ai pensé alors à faire une interface intuitive proche de celle du générateur de queries dans access c'est un bon départ mais ca s'applique qu'aux règles très très basiques (y'en aura pas plus de 2 à mon avis)
Exemples de pseudos-règles:
Règle 1:
- Lire les données X dans la table T qui ont une entrée (fk) dans la table Z
- Prendre les records dont la date d'échéance est dans les dix jours
- Faire: Afficher: id, nom, prénom, date (donc là on a une restriction de ce qu'il faut afficher)
// Bon ça a l'air simple jusque là
Règle 2:
- Lire les données Z dans la table T. Pour chaque record chercher ses entrées dans la table T1 qui ont des entrées dans la table T2
- Prendre les records et les afficher en les groupant par date de fin, et en affichant le total pour chaque
- Faire: envoyer un mail à quelqu'un // ca c'est pas du tout un problème, le soucis c'est vraiment les critères de selection
On voit bien la totale différence entre les deux règles, la première prend dans deux tables, la deuxième fait 3joins... J'arrive pas à trouver un compromis assez puissant pour représenter ça dans un GUI ! Généricité quoi
Ma question au final est:
Quelqu'un aurait une piste pour moi ? Une pratique, un tools ou n'importe quoi qui pourrait m'aider dans cette conception ? Même un tip de généricité pourrait m'être d'une grande aide
Note: Je peux refuser de faire ce module mais honnêtement je veux vraiment tenter de le faire ça fera un bon + pour mon travail de fin d'année
PS: J'ai pensé à une représentation sous forme de tree de toutes ces données mais la complexité est toujours là je reste bloqué
Merci d'avance