Da es so wie gewünscht anscheinend nicht im Standard des PDM-Systems enthalten ist, würde ich eine Eigenentwicklung in Erwägung ziehen. Wenn Du dich mit .NET auskennst, und das lässt Dein Profil vermuten, sollte das kein Problem darstellen. Der Zeitaufwand ist aus meiner Sicht überschaubar.
Je nach Erfahrung und Können sollte ein eigener StateGuard seine Arbeit in ein paar Tagen zuverlässig erledigen. Alles was dazu benötigt wird, ist ein PDM-Add-in und etwas SQL. Via PDM API wird das Add-in realisiert, das sich in EdmCmd_PreState einklinkt. Wird das Event ausgelöst, startet die SQL-Abfrage und gibt z. B. ja oder nein zurück. Um den Statuswechsel bei Bedarf zu verhindern, muss mbCancel != 0 gesetzt werden.
Aus Sicherheitsgründen sollte die SQL-Abfrage immer in eine Stored Procedure ausgelagert werden. Selbstverständlich kann die Stückliste auch via API ausgelesen werden, das ist aber aufwendiger und die Abarbeitung wesentlich langsamer.
Vorlagen für fertige PDM Add-ins sind im Netz mehr als genug zu finden, und eine gute Grundlage der erforderlichen SQL-Abfrage wird von Dassault angeboten.
Siehe: https://forum.solidworks.com/thread/217644
Datei: Contains.sql.zip
Das Ergebnis entspricht grundsätzlich dem, was im Reiter Contains der Datenkarte angezeigt wird.
Aus meiner Sicht haben Eigenentwicklungen den großen Vorteil, dass man bei Anpassungen und Weiterentwicklungen unabhängig ist.
------------------
Mit freundlichen Grüßen
Ulf-Dirk Stockburger
BiI SAP-PDM
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP