Guten Morgen allerseits,
vor einiger Zeit hatte ich in diesem Brett eine Anfrage zur Strukturkopie per EPDM-API gestellt. Das kann hier nachgelesen werden.
Mittlerweile funktioniert die automatisierte Strukturkopie per EPDM-API (auch durch die freundlichen und kompetente Unterstützung eines Mitarbeiters unseres Resellers) zu unserer Zufriedenheit.
Nur das Befüllen der Datenkarten klappt nicht so richtig und da hoffe ich auf Eure Hilfe.
Istzustand:
In meinem Programm nutze ich die IEdmBatchUpdate2-, IEdmVariableMgr5- und IEdmVariable5-Schnittstellen.
IEdmBatchUpdate2 Interface
IEdmVariableMgr5 Interface
IEdmVariable5 Interface
Der freundliche und kompetente Mitarbeiter unseres Resellers gab uns den folgenden Rat:
„Ordner“-Datenkarte befüllen, direkt nach dem der Ordner erstellt wurde (oder nach dem geprüft wurde, ob der Ordner vorhanden ist) und bevor die Dateien hineinkopiert werden. Über Vererbung (muss im EPDM aktiviert werden) werden die „Datei“-Datenkarten automatisch befüllt, wenn die Datenkarten-Variablen gleich benannt wurden.
Ein weiterer Rat des freundlichen und kompetenten Mitarbeiters unseres Resellers:
IEdmBatchUpdate2-Interface nutzen zum befüllen/aktualisieren der Datenkarten.
Die Hilfe zum IEdmBatchUpdate2 Interface gibt folgende wichtige Informationen (besonders der letzte Absatz):
Code:
This interface: inherits from IDispatch. See IDispatch Interface (Automation).
supersedes IEdmBatchUpdate, which can only update file variables.
To set the values of file and folder card variables:
Access this interface by calling IEdmVault7::CreateUtility, passing in EdmUtility.EdmUtil_BatchUpdate.
Call IEdmBatchUpdate2::SetVar once for each file card variable you want to update. You must first check out the files whose card varibles you want to update.
Call IEdmBatchUpdate2::SetFolderVar once for each folder card variable you want to update.
Call IEdmBatchUpdate2::CommitUpdate to commit all of the file and folder card variable changes.
Prior to SOLIDWORKS PDM Professional 6.2, the only way to set file card variables was to use IEdmEnumeratorVariable, which can handle only one file or folder card variable at a time. As of SOLIDWORKS PDM Professional 6.2, you should use IEdmBatchUpdate2, which can handle several file and folder card variables at a time.
Als Vorlage habe ich das folgende Beispielprogramm genommen:
Batch Update Card Variables Example (VB.NET)
bzw.
Batch Update Card Variables Example (C#)
Ergebnis:
Der Ordner (bzw. der Ordner und der Unterordner) werden von meinem Programm angelegt, dann wird/werden die Order-Datenkarten mit Daten befüllt und anschließend die Baugruppe und ihre Einzelteile in den Unterordner kopiert und die Referenzen angepasst.
Bei den Ordner-Datenkarten und der Datei-Datenkarte der Baugruppe (*.SLDASM) sind die Variablen mit den von meinem Programm erzeugten Werten befüllt und stimmen mit meinen Werten überein. Nur bei den Einzelteilen (*.SLDPRT) stimmt die Datenkarte nicht (Die Karteireiter @ und Standard fehlen) und die Variablen sind leer.
Frage:
Warum werden die Datei-Datenkarten (trotz eingestellter Vererbung) nicht mit den von meinem Programm erzeugten Werten befüllt?
Habt Ihr eine Idee, woran das liegt und wie ich doch noch zu meinem Ziel komme?
Mit freundlichen Grüßen,
SWX-Quäler
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP