Bonjour/Bonsoir,
J'ai une base de données contenant des données sur des événements qui
progressent à travers plusieurs états.
Pour chaque état, il y a des activités subséquentes qui peuvent ou non
être elles-mêmes en cours, en attente ou terminées.
Chacune de ces activités subséquentes, à son tour, a une ou des activités
subséquentes qui peuvent être en cours, en attente ou terminées.
Pour illustrer, supposons une sollicitation; on a donc l'étape
d'invitation qui est ou non effectuée. Celle-ci est suivi soit d'une
réponse du candidat (acceptation/refus), soit d'un silence auquel cas on
enverra une lettre de rappel au bout de quelques jours (en attente).
Après ces quelques jours, cette lettre de rappel peut avoir été envoyée ou
non (statut en cours ou à faire). Si elle a été envoyée, alors après X
jours, si aucune réponse n'a été reçue, on considère que l'invitation est
refusée.
La relation entre les étapes n'est pas nécessairement linéaire; ainsi une
activité de source externe (une réponse du candidat) peut être subséquente
à n'importe quelle autre, puisqu'elle peut arriver à tout moment.
Le but est de connaitre le statut de l'événement (à quelle étape il est
rendu) et l'état de cette étape (en attente, en cours ou terminée).
Sur papier, cela se conçoit bien; mais quand vient le temps de traduire ça
en code VB, ca devient un peu plus complexe. Je devine que cela peut se
faire en utilisant une multitude de IF impriqués, mais je présume aussi
que la récursivité pourait grandement simplifier la chose..
Est-ce que quelqu'un aurait un point de vue là dessus, un exemple de code
ou une source de laquelle je pourrais m'inspirer ?
Merci !
Bonjour/Bonsoir,
J'ai une base de données contenant des données sur des événements qui
progressent à travers plusieurs états.
Pour chaque état, il y a des activités subséquentes qui peuvent ou non
être elles-mêmes en cours, en attente ou terminées.
Chacune de ces activités subséquentes, à son tour, a une ou des activités
subséquentes qui peuvent être en cours, en attente ou terminées.
Pour illustrer, supposons une sollicitation; on a donc l'étape
d'invitation qui est ou non effectuée. Celle-ci est suivi soit d'une
réponse du candidat (acceptation/refus), soit d'un silence auquel cas on
enverra une lettre de rappel au bout de quelques jours (en attente).
Après ces quelques jours, cette lettre de rappel peut avoir été envoyée ou
non (statut en cours ou à faire). Si elle a été envoyée, alors après X
jours, si aucune réponse n'a été reçue, on considère que l'invitation est
refusée.
La relation entre les étapes n'est pas nécessairement linéaire; ainsi une
activité de source externe (une réponse du candidat) peut être subséquente
à n'importe quelle autre, puisqu'elle peut arriver à tout moment.
Le but est de connaitre le statut de l'événement (à quelle étape il est
rendu) et l'état de cette étape (en attente, en cours ou terminée).
Sur papier, cela se conçoit bien; mais quand vient le temps de traduire ça
en code VB, ca devient un peu plus complexe. Je devine que cela peut se
faire en utilisant une multitude de IF impriqués, mais je présume aussi
que la récursivité pourait grandement simplifier la chose..
Est-ce que quelqu'un aurait un point de vue là dessus, un exemple de code
ou une source de laquelle je pourrais m'inspirer ?
Merci !
Bonjour/Bonsoir,
J'ai une base de données contenant des données sur des événements qui
progressent à travers plusieurs états.
Pour chaque état, il y a des activités subséquentes qui peuvent ou non
être elles-mêmes en cours, en attente ou terminées.
Chacune de ces activités subséquentes, à son tour, a une ou des activités
subséquentes qui peuvent être en cours, en attente ou terminées.
Pour illustrer, supposons une sollicitation; on a donc l'étape
d'invitation qui est ou non effectuée. Celle-ci est suivi soit d'une
réponse du candidat (acceptation/refus), soit d'un silence auquel cas on
enverra une lettre de rappel au bout de quelques jours (en attente).
Après ces quelques jours, cette lettre de rappel peut avoir été envoyée ou
non (statut en cours ou à faire). Si elle a été envoyée, alors après X
jours, si aucune réponse n'a été reçue, on considère que l'invitation est
refusée.
La relation entre les étapes n'est pas nécessairement linéaire; ainsi une
activité de source externe (une réponse du candidat) peut être subséquente
à n'importe quelle autre, puisqu'elle peut arriver à tout moment.
Le but est de connaitre le statut de l'événement (à quelle étape il est
rendu) et l'état de cette étape (en attente, en cours ou terminée).
Sur papier, cela se conçoit bien; mais quand vient le temps de traduire ça
en code VB, ca devient un peu plus complexe. Je devine que cela peut se
faire en utilisant une multitude de IF impriqués, mais je présume aussi
que la récursivité pourait grandement simplifier la chose..
Est-ce que quelqu'un aurait un point de vue là dessus, un exemple de code
ou une source de laquelle je pourrais m'inspirer ?
Merci !
Bonjour/Bonsoir,
J'ai une base de données contenant des données sur des événements qui
progressent à travers plusieurs états.
Pour chaque état, il y a des activités subséquentes qui peuvent ou non
être elles-mêmes en cours, en attente ou terminées.
Chacune de ces activités subséquentes, à son tour, a une ou des
activités subséquentes qui peuvent être en cours, en attente ou
terminées.
Pour illustrer, supposons une sollicitation; on a donc l'étape
d'invitation qui est ou non effectuée. Celle-ci est suivi soit d'une
réponse du candidat (acceptation/refus), soit d'un silence auquel cas
on enverra une lettre de rappel au bout de quelques jours (en
attente).
Après ces quelques jours, cette lettre de rappel peut avoir été
envoyée ou non (statut en cours ou à faire). Si elle a été envoyée,
alors après X jours, si aucune réponse n'a été reçue, on considère que
l'invitation est refusée.
La relation entre les étapes n'est pas nécessairement linéaire; ainsi
une activité de source externe (une réponse du candidat) peut être
subséquente à n'importe quelle autre, puisqu'elle peut arriver à tout
moment.
Le but est de connaitre le statut de l'événement (à quelle étape il
est rendu) et l'état de cette étape (en attente, en cours ou
terminée).
Sur papier, cela se conçoit bien; mais quand vient le temps de
traduire ça en code VB, ca devient un peu plus complexe. Je devine
que cela peut se faire en utilisant une multitude de IF impriqués,
mais je présume aussi que la récursivité pourait grandement
simplifier la chose..
Est-ce que quelqu'un aurait un point de vue là dessus, un exemple de
code ou une source de laquelle je pourrais m'inspirer ?
Bonjour/Bonsoir,
J'ai une base de données contenant des données sur des événements qui
progressent à travers plusieurs états.
Pour chaque état, il y a des activités subséquentes qui peuvent ou non
être elles-mêmes en cours, en attente ou terminées.
Chacune de ces activités subséquentes, à son tour, a une ou des
activités subséquentes qui peuvent être en cours, en attente ou
terminées.
Pour illustrer, supposons une sollicitation; on a donc l'étape
d'invitation qui est ou non effectuée. Celle-ci est suivi soit d'une
réponse du candidat (acceptation/refus), soit d'un silence auquel cas
on enverra une lettre de rappel au bout de quelques jours (en
attente).
Après ces quelques jours, cette lettre de rappel peut avoir été
envoyée ou non (statut en cours ou à faire). Si elle a été envoyée,
alors après X jours, si aucune réponse n'a été reçue, on considère que
l'invitation est refusée.
La relation entre les étapes n'est pas nécessairement linéaire; ainsi
une activité de source externe (une réponse du candidat) peut être
subséquente à n'importe quelle autre, puisqu'elle peut arriver à tout
moment.
Le but est de connaitre le statut de l'événement (à quelle étape il
est rendu) et l'état de cette étape (en attente, en cours ou
terminée).
Sur papier, cela se conçoit bien; mais quand vient le temps de
traduire ça en code VB, ca devient un peu plus complexe. Je devine
que cela peut se faire en utilisant une multitude de IF impriqués,
mais je présume aussi que la récursivité pourait grandement
simplifier la chose..
Est-ce que quelqu'un aurait un point de vue là dessus, un exemple de
code ou une source de laquelle je pourrais m'inspirer ?
Bonjour/Bonsoir,
J'ai une base de données contenant des données sur des événements qui
progressent à travers plusieurs états.
Pour chaque état, il y a des activités subséquentes qui peuvent ou non
être elles-mêmes en cours, en attente ou terminées.
Chacune de ces activités subséquentes, à son tour, a une ou des
activités subséquentes qui peuvent être en cours, en attente ou
terminées.
Pour illustrer, supposons une sollicitation; on a donc l'étape
d'invitation qui est ou non effectuée. Celle-ci est suivi soit d'une
réponse du candidat (acceptation/refus), soit d'un silence auquel cas
on enverra une lettre de rappel au bout de quelques jours (en
attente).
Après ces quelques jours, cette lettre de rappel peut avoir été
envoyée ou non (statut en cours ou à faire). Si elle a été envoyée,
alors après X jours, si aucune réponse n'a été reçue, on considère que
l'invitation est refusée.
La relation entre les étapes n'est pas nécessairement linéaire; ainsi
une activité de source externe (une réponse du candidat) peut être
subséquente à n'importe quelle autre, puisqu'elle peut arriver à tout
moment.
Le but est de connaitre le statut de l'événement (à quelle étape il
est rendu) et l'état de cette étape (en attente, en cours ou
terminée).
Sur papier, cela se conçoit bien; mais quand vient le temps de
traduire ça en code VB, ca devient un peu plus complexe. Je devine
que cela peut se faire en utilisant une multitude de IF impriqués,
mais je présume aussi que la récursivité pourait grandement
simplifier la chose..
Est-ce que quelqu'un aurait un point de vue là dessus, un exemple de
code ou une source de laquelle je pourrais m'inspirer ?
gibé wrote:Bonjour/Bonsoir,
Bonjour,J'ai une base de données contenant des données sur des événements qui
progressent à travers plusieurs états.
Typique d'une situation que l'on peut modéliser avec un automate
à états finis.Pour chaque état, il y a des activités subséquentes qui peuvent ou non
être elles-mêmes en cours, en attente ou terminées.
Tout à fait : c'est quasimment la description canonique d'un automate.Chacune de ces activités subséquentes, à son tour, a une ou des
activités subséquentes qui peuvent être en cours, en attente ou
terminées.
Idem, c'est un automate.Pour illustrer, supposons une sollicitation; on a donc l'étape
d'invitation qui est ou non effectuée. Celle-ci est suivi soit d'une
réponse du candidat (acceptation/refus), soit d'un silence auquel cas
on enverra une lettre de rappel au bout de quelques jours (en
attente).
Après ces quelques jours, cette lettre de rappel peut avoir été
envoyée ou non (statut en cours ou à faire). Si elle a été envoyée,
alors après X jours, si aucune réponse n'a été reçue, on considère que
l'invitation est refusée.
L'illustration est parfaite.La relation entre les étapes n'est pas nécessairement linéaire; ainsi
une activité de source externe (une réponse du candidat) peut être
subséquente à n'importe quelle autre, puisqu'elle peut arriver à tout
moment.
Oui et non : Une réponse de candidat ne peut pas survenir avant qu'il
ait reçu une sollicitation.Le but est de connaitre le statut de l'événement (à quelle étape il
est rendu) et l'état de cette étape (en attente, en cours ou
terminée).
Si on modélise avec un automate, et si celui-ci est bien décrit,
c'est très simple. Il suffit de mémoriser l'état courant de l'automate.
C'est même plus simple que ce que tu décris car dans un bon automate,
l'étape définit en même temps son état.Sur papier, cela se conçoit bien; mais quand vient le temps de
traduire ça en code VB, ca devient un peu plus complexe. Je devine
que cela peut se faire en utilisant une multitude de IF impriqués,
mais je présume aussi que la récursivité pourait grandement
simplifier la chose..
Non! La récursivité n'apportera rien du tout. Les If imbriqués non plus
d'ailleurs.Est-ce que quelqu'un aurait un point de vue là dessus, un exemple de
code ou une source de laquelle je pourrais m'inspirer ?
Une source complète, ce sera dur à trouver car c'est très spécifique.
En revanche, tu as un exemple complet d'implémentation d'automate à états
finis
dans un article de la FAQ. Il sert à tout autre chose, mais ce n'est pas
l'important: il explique la démarche et le code est limpide à lire.
Voici la chose :
http://faq.vb.free.fr/index.php?question3
L'étape la plus importante, c'est la défnition des états et des transitions,
comme tu le verras dans l'article.
Prenons une simplification de ton cas :
Soit une sollicitation
Etat 1: Une sollicitation doit etre envoyée
Etat 2: La sollicitation a été envoyée
Etat 3: Attente d'une réponse
Etat 4: Reponse reçue
Etat 5: délai expiré
Etat 6: un rappel doit être envoyé
etc.
L'état initial est l'état 1.
Il n'y a qu'une seule façon de passer a l'état 2 (transition),
c'est d'effectivement envoyer un courrier. Ceci provoque le passage
dans l'état 2 (fictif) car correspondant à l'état 3.
Si une réponse est reçue on passe à l'état 4
Si après un temps t (à définir) on est encore dans l'atat 3, alors passage
dans l'état 5. Délai expiré.
etc..
Il faut donc parfaitement définir tes états, définir pour tes états
et transitions une structure de donnée adaptée, puis le reste est mécanique.
Le plus simple est certainement de créer un type utilisateur pour représenter
le processus (infos diverse + état courant) puis créer une fonction à
laquelle
on passe le processus (avec son état bien sur) et la transition.
Il faut un peu réfléchir pour voir comment on peut modéliser le temps qui
passe
pour gérer le cas de la transition automatique de 3 vers 5 (qui ne dépend pas
d'une action mais de l'écoulement du temps).
Il n'y a rien de compliqué, mais c'est un peu difficile à expliquer
simplement
dans un post tel que celui ci.
Bonne prog!
gibé wrote:
Bonjour/Bonsoir,
Bonjour,
J'ai une base de données contenant des données sur des événements qui
progressent à travers plusieurs états.
Typique d'une situation que l'on peut modéliser avec un automate
à états finis.
Pour chaque état, il y a des activités subséquentes qui peuvent ou non
être elles-mêmes en cours, en attente ou terminées.
Tout à fait : c'est quasimment la description canonique d'un automate.
Chacune de ces activités subséquentes, à son tour, a une ou des
activités subséquentes qui peuvent être en cours, en attente ou
terminées.
Idem, c'est un automate.
Pour illustrer, supposons une sollicitation; on a donc l'étape
d'invitation qui est ou non effectuée. Celle-ci est suivi soit d'une
réponse du candidat (acceptation/refus), soit d'un silence auquel cas
on enverra une lettre de rappel au bout de quelques jours (en
attente).
Après ces quelques jours, cette lettre de rappel peut avoir été
envoyée ou non (statut en cours ou à faire). Si elle a été envoyée,
alors après X jours, si aucune réponse n'a été reçue, on considère que
l'invitation est refusée.
L'illustration est parfaite.
La relation entre les étapes n'est pas nécessairement linéaire; ainsi
une activité de source externe (une réponse du candidat) peut être
subséquente à n'importe quelle autre, puisqu'elle peut arriver à tout
moment.
Oui et non : Une réponse de candidat ne peut pas survenir avant qu'il
ait reçu une sollicitation.
Le but est de connaitre le statut de l'événement (à quelle étape il
est rendu) et l'état de cette étape (en attente, en cours ou
terminée).
Si on modélise avec un automate, et si celui-ci est bien décrit,
c'est très simple. Il suffit de mémoriser l'état courant de l'automate.
C'est même plus simple que ce que tu décris car dans un bon automate,
l'étape définit en même temps son état.
Sur papier, cela se conçoit bien; mais quand vient le temps de
traduire ça en code VB, ca devient un peu plus complexe. Je devine
que cela peut se faire en utilisant une multitude de IF impriqués,
mais je présume aussi que la récursivité pourait grandement
simplifier la chose..
Non! La récursivité n'apportera rien du tout. Les If imbriqués non plus
d'ailleurs.
Est-ce que quelqu'un aurait un point de vue là dessus, un exemple de
code ou une source de laquelle je pourrais m'inspirer ?
Une source complète, ce sera dur à trouver car c'est très spécifique.
En revanche, tu as un exemple complet d'implémentation d'automate à états
finis
dans un article de la FAQ. Il sert à tout autre chose, mais ce n'est pas
l'important: il explique la démarche et le code est limpide à lire.
Voici la chose :
http://faq.vb.free.fr/index.php?question3
L'étape la plus importante, c'est la défnition des états et des transitions,
comme tu le verras dans l'article.
Prenons une simplification de ton cas :
Soit une sollicitation
Etat 1: Une sollicitation doit etre envoyée
Etat 2: La sollicitation a été envoyée
Etat 3: Attente d'une réponse
Etat 4: Reponse reçue
Etat 5: délai expiré
Etat 6: un rappel doit être envoyé
etc.
L'état initial est l'état 1.
Il n'y a qu'une seule façon de passer a l'état 2 (transition),
c'est d'effectivement envoyer un courrier. Ceci provoque le passage
dans l'état 2 (fictif) car correspondant à l'état 3.
Si une réponse est reçue on passe à l'état 4
Si après un temps t (à définir) on est encore dans l'atat 3, alors passage
dans l'état 5. Délai expiré.
etc..
Il faut donc parfaitement définir tes états, définir pour tes états
et transitions une structure de donnée adaptée, puis le reste est mécanique.
Le plus simple est certainement de créer un type utilisateur pour représenter
le processus (infos diverse + état courant) puis créer une fonction à
laquelle
on passe le processus (avec son état bien sur) et la transition.
Il faut un peu réfléchir pour voir comment on peut modéliser le temps qui
passe
pour gérer le cas de la transition automatique de 3 vers 5 (qui ne dépend pas
d'une action mais de l'écoulement du temps).
Il n'y a rien de compliqué, mais c'est un peu difficile à expliquer
simplement
dans un post tel que celui ci.
Bonne prog!
gibé wrote:Bonjour/Bonsoir,
Bonjour,J'ai une base de données contenant des données sur des événements qui
progressent à travers plusieurs états.
Typique d'une situation que l'on peut modéliser avec un automate
à états finis.Pour chaque état, il y a des activités subséquentes qui peuvent ou non
être elles-mêmes en cours, en attente ou terminées.
Tout à fait : c'est quasimment la description canonique d'un automate.Chacune de ces activités subséquentes, à son tour, a une ou des
activités subséquentes qui peuvent être en cours, en attente ou
terminées.
Idem, c'est un automate.Pour illustrer, supposons une sollicitation; on a donc l'étape
d'invitation qui est ou non effectuée. Celle-ci est suivi soit d'une
réponse du candidat (acceptation/refus), soit d'un silence auquel cas
on enverra une lettre de rappel au bout de quelques jours (en
attente).
Après ces quelques jours, cette lettre de rappel peut avoir été
envoyée ou non (statut en cours ou à faire). Si elle a été envoyée,
alors après X jours, si aucune réponse n'a été reçue, on considère que
l'invitation est refusée.
L'illustration est parfaite.La relation entre les étapes n'est pas nécessairement linéaire; ainsi
une activité de source externe (une réponse du candidat) peut être
subséquente à n'importe quelle autre, puisqu'elle peut arriver à tout
moment.
Oui et non : Une réponse de candidat ne peut pas survenir avant qu'il
ait reçu une sollicitation.Le but est de connaitre le statut de l'événement (à quelle étape il
est rendu) et l'état de cette étape (en attente, en cours ou
terminée).
Si on modélise avec un automate, et si celui-ci est bien décrit,
c'est très simple. Il suffit de mémoriser l'état courant de l'automate.
C'est même plus simple que ce que tu décris car dans un bon automate,
l'étape définit en même temps son état.Sur papier, cela se conçoit bien; mais quand vient le temps de
traduire ça en code VB, ca devient un peu plus complexe. Je devine
que cela peut se faire en utilisant une multitude de IF impriqués,
mais je présume aussi que la récursivité pourait grandement
simplifier la chose..
Non! La récursivité n'apportera rien du tout. Les If imbriqués non plus
d'ailleurs.Est-ce que quelqu'un aurait un point de vue là dessus, un exemple de
code ou une source de laquelle je pourrais m'inspirer ?
Une source complète, ce sera dur à trouver car c'est très spécifique.
En revanche, tu as un exemple complet d'implémentation d'automate à états
finis
dans un article de la FAQ. Il sert à tout autre chose, mais ce n'est pas
l'important: il explique la démarche et le code est limpide à lire.
Voici la chose :
http://faq.vb.free.fr/index.php?question3
L'étape la plus importante, c'est la défnition des états et des transitions,
comme tu le verras dans l'article.
Prenons une simplification de ton cas :
Soit une sollicitation
Etat 1: Une sollicitation doit etre envoyée
Etat 2: La sollicitation a été envoyée
Etat 3: Attente d'une réponse
Etat 4: Reponse reçue
Etat 5: délai expiré
Etat 6: un rappel doit être envoyé
etc.
L'état initial est l'état 1.
Il n'y a qu'une seule façon de passer a l'état 2 (transition),
c'est d'effectivement envoyer un courrier. Ceci provoque le passage
dans l'état 2 (fictif) car correspondant à l'état 3.
Si une réponse est reçue on passe à l'état 4
Si après un temps t (à définir) on est encore dans l'atat 3, alors passage
dans l'état 5. Délai expiré.
etc..
Il faut donc parfaitement définir tes états, définir pour tes états
et transitions une structure de donnée adaptée, puis le reste est mécanique.
Le plus simple est certainement de créer un type utilisateur pour représenter
le processus (infos diverse + état courant) puis créer une fonction à
laquelle
on passe le processus (avec son état bien sur) et la transition.
Il faut un peu réfléchir pour voir comment on peut modéliser le temps qui
passe
pour gérer le cas de la transition automatique de 3 vers 5 (qui ne dépend pas
d'une action mais de l'écoulement du temps).
Il n'y a rien de compliqué, mais c'est un peu difficile à expliquer
simplement
dans un post tel que celui ci.
Bonne prog!