[PDM] Warunek przejścia: równość między dwiema zmiennymi

Cze wszystkim

Czy pisząc warunek przejścia, możemy porównać ze sobą wartości dwóch zmiennych?

Dziękuję.

Witam @jerome.lamar , witaj na forum.

Czy mógłby Pan podać przykład porównania, którego chciałby Pan dokonać?

Z pamięci (nie używam już pdm) nie ma możliwości bezpośredniego porównania 2 zmiennych. Trzeba być sprytnym w definiowaniu kilku warunków, a nawet tworzyć konkretne zmienne używane tylko dla warunków przejścia.

Bardzo interesuje mnie ten temat!
Staram się porównywać podczas przejścia imię osoby, która przechodzi przejście (zmienna Transmitter Name) z imieniem i nazwiskiem ostatniej osoby, która zmodyfikowała plan (u nas jest to konkretna zmienna _ModifiéPar), aby zablokować podstępnego małego faceta, który dobrze się bawi omijając procedury walidacji dokumentów. Jeśli ktoś ma napiwek, przyjmę go!

Witam @lmoreau

Istnieje specjalna opcja obsługi podstępnych maluchów w PDM:

Nie zezwalaj na sekwencyjne zmiany stanu Nie zezwala na wykonanie dwóch sekwencyjnych przejść stanu. Na przykład możesz użyć tej opcji, aby uniemożliwić użytkownikom zatwierdzanie własnych plików.

Ustawianie praw przejścia - 2024 - Pomoc SOLIDWORKS PDM

Już go używam :wink:
Zasadniczo, gdy użytkownik ukończy plan, składa wniosek o walidację poprzez przejście. Opcja " zabroń sekwencyjnego chgt" uniemożliwia zatem temu użytkownikowi walidację własnego planu.

Ale ten podstępny mały facet (który jest również podstępny i złośliwy) poprosił innego użytkownika o złożenie wniosku o walidację (bez nigdy pracy nad planem), aby móc później samodzielnie zweryfikować się bez ograniczeń.
W związku z tym staram się zmusić osobę, która składa wniosek o walidację, aby była autorem planu.

A jeśli jakiś plan zostanie rozpoczęty przez kogoś i zakończony przez inny (rzadki przypadek w naszym kraju), znajdę w tym czasie rozwiązanie.

Witam

Więc o ile się nie mylę, w warunkach przejść nie jest to możliwe (nie można odzyskać nazwy użytkownika, który dokonał zmiany stanu).
Z drugiej strony, jeśli nazwa użytkowników jest identyczna z nazwą zapisaną w zmiennej, która wyświetla autora planu, powinniśmy być w stanie uciec od skryptów wysyłających.

1 polubienie

Witam

Niestety spotkałem się z kilkoma potwierdzeniami, że nie da się postawić warunku na porównanie dwóch zmiennych względem siebie.

Z drugiej strony, Cyril.f podsunął mi pomysł na skrypty Dispatch.
Skrypt musi być włączony " podczas przechodzenia stanu ".
Plik, w którym przechowywane są plany objęte tym zakazem samowalidacji, musi zostać wypełniony.
Musisz wybrać stan przybycia, tj. status VALID i zaznaczyć pole " Przed zmianą statusu "

Poniższy skrypt pozwala na porównanie twórcy planu (czyli tego, który stworzył plik, a nie tego, który umieścił go w walidacji) z zalogowanym użytkownikiem (czyli tym, który przejdzie przejście walidacji)

Przetestowałem to, wygląda na to, że działa.
Powodzenia

3 polubienia

Dokładnie tak. Nie podałem szczegółów, ale to jest ten typ skryptu

1 polubienie

Cóż, jest więcej do zrobienia niż testowanie! Dziękuję bardzo!!

Witam

Gratulujemy scenariusza.

Może to być jednak trochę zbyt ograniczające: Na przykład dużo pracujemy, kopiując (3D+MEP). Tak więc ktokolwiek tworzy 3D, zwykle kopiuje istniejący, a następnie modyfikuje 3D. Osobą, która będzie aktualizować rysunek, jest często ktoś inny. W takim przypadku skrypt uniemożliwia twórcy pliku sprawdzenie pracy swojego kolegi, który wykonał/zmodyfikował rysunek.

Witam

Oczywiście musisz dostosować scenariusz do sytuacji. W domu też dużo pracujemy z kopiami. Ale mamy zmienną na karcie danych, która pozwala nam odzyskać identyfikator osoby wykonującej kopię (a nie oryginalnego twórcy). W 90% przypadków to osoba, która wykonała kopię, będzie odpowiedzialna za modyfikację pliku. Wszystko, co musisz zrobić, to zmodyfikować parametry zmiennych w skrypcie, aby pobrać tę zmienną z mapy danych:
image

Następnie, jeśli mamy:
ID1: Oryginalny twórca
ID2: Kreator kopii
ID3: Modyfikator pliku
ID4: Walidacja plików
ID5: Walidator plików
To wielu użytkowników do śledzenia. I nawet nie wiem, jak odzyskać ID3, który tylko zmodyfikował plik, nie dokonując żadnych zmian stanu ani przejść...