[PDM] Condition de transition : égalité entre deux variables

Bonjour à tous,

Dans l’écriture d’une condition de transition, peut-on comparer les valeurs de deux variables entre elles ?

Merci.

Bonjour @jerome.lamar , bienvenue sur le forum.

Pourriez-vous donner un exemple de comparaison que vous souhaitez effectuer ?

De mémoire (je n’utilise plus pdm), il n’est pas possible de comparer directement 2 variables. Il faut ruser dans la définition de plusieurs conditions, voir créer des variables spécifiques utilisée uniquement pour les conditions de transition.

Je suis très intéressé par ce sujet!
Je cherche à comparer lors d’une transition le nom de celui qui passe la transition (variable Nom émetteur) avec le nom de la dernière personne ayant modifié le plan (chez nous c’est une variable spécifique _ModifiéPar) pour bloquer un petit sournois qui s’amuse à passer outre les procédure de validation de document. Si quelqu’un à une astuce, je prends!

Bonjour @lmoreau

Il y a une option spécifique pour gérer les petit sournois dans PDM :

Interdire les changements d’état séquentiels Ne permet pas d’effectuer deux transitions d’état séquentielles. A titre d’exemple, vous pouvez utiliser cette option pour empêcher les utilisateurs d’approuver leurs propres fichiers.

Définition de droits de transition - 2024 - Aide de SOLIDWORKS PDM

Je l’utilise dejà :wink:
En gros, lorsqu’un utilisateur à terminer un plan, il fait une demande de validation via une transition. L’option « interdire les chgt séquentiels » interdit donc à cet utilisateur de valider son propre plan.

Mais ce petit sournois (qui est aussi fourbe et vicieux), a demandé à un autre utilisateur de faire la demande de validation (sans jamais avoir bosser sur le plan), pour pouvoir s’auto valider ensuite sans restriction.
Je cherche donc à forcer celui qui fait la demande de validation à être l’auteur du plan.

Et si un plan est commencé par quelqu’un et fini par un autre (cas rare chez nous) je trouverai une parade à ce moment là.

Bonjour,

Alors sauf erreur de ma part, dans les conditions des transitions ce n’est pas possible (on ne peut pas récupérer le nom de l’utilisateur qui a effectué le changement d’état).
En revanche, si le nom des utilisateurs est identique au nom inscrit dans la variable qui affiche l’auteur du plan alors on doit pouvoir s’en sortir avec les scripts dispatch.

1 « J'aime »

Bonjour,

Malheureusement, j’ai eu plusieurs confirmation qu’il est impossible de poser une condition sur la comparaison de deux variables entre elles.

En revanche, Cyril.f m’a donné une idée avec les scripts Dispatch.
Le script doit être activé « pendant la transition d’état ».
Il faut renseigner le dossier où son stocké les plans soumis à cette interdiction d’autovalidation.
Il faut sélectionner ton état d’arrivée, donc l’état VALIDE, et cocher la case « Avant modification de l’état »

Le script suivant permet de comparer le créateur du plan (donc celui qui a créé le fichier, pas celui qui l’a mis en validation) avec l’utilisateur connecté (donc celui qui passe la transition de validation)

Je l’ai testé, ça a l’air de fonctionner.
Bon courage

3 « J'aime »

C’est tout à fait ça. je n’ai pas détaillé mais c’est bien ce type de script

1 « J'aime »

Et bien ya plus qu’à tester! Merci beaucoup!!

Bonjour,

Félicitation pour ton script.

Il risque néanmoins d’être un peu trop limitant : Par exemple nous travaillons beaucoup par copie (3D+MEP). Donc celui qui crée le 3D copie généralement un existant, puis modifie le 3D. Celui qui va faire la mise à jour de la mise en plan est souvent quelqu’un d’autre. Dans ce cas là, ton script empêche le créateur du fichier de vérifier le travail de son collègue qui a fait/modifié la mise en plan.

Bonjour,

Bien sûr, il faut adapter le script à la situation. Chez nous, nous fonctionnons aussi beaucoup avec les copies. Mais nous avons une variable sur la carte de donnée qui permet de récupérer l’ID de celui qui fait la copie (et non du créateur original). Dans 90% des cas, c’est celui qui aura fait la copie qui sera responsable de la modification du fichier. Il suffit alors de modifier le paramétrage des variables du script pour aller récupérer cette variable sur la carte de donnée :
image

Après, si on a :
ID1 : créateur original
ID2 : créateur de la copie
ID3 : modificateur du fichier
ID4 : mise en validation du fichier
ID5 : validateur du fichier
Ça fait beaucoup d’utilisateur à tracer. Et je ne sais même pas comment récupérer l’ID3, qui n’a fait que modifier le fichier, sans effectuer aucun changement d’état ni transition…