Sehr geehrter Herr Martin,
vielen Dank für das freundliche Gespräch und die Unterstützung. Hier noch einmal die Fehlerbeschreibung von meiner Seite.
• Ich habe ein Mastershape erzeugt. Die Datensätze des Mastershapes wurde nicht manuell erzeugt, sondern wurden von einer Shape-Datensatz Vorlage (hier „EMS_Instrument“) übernommen. Bei den Shapedaten habe ich eine „Variable Liste“ erzeugt mit fest hinterlegten Einträgen aus der Shapedaten-Vorlage.
• Nutze ich nun dieses Mastershape in einer Zeichnung und definiere unter „Funktion“ einen frei gewählten Text welcher nicht in der vordefinierten Auswahl besteht z.B. ABC. Dieser wird jedoch nach dem Schließen und erneuten Öffnen der Zeichnung aus dem verwendeten Shape wieder entfernt/gelöscht:
• Aus meiner Sicht gleicht Visio beim Laden der Zeichnung alle in der Zeichnung verwendeten Shapes mit den Mastershapes bzw. eigentlich mit der verknüpften Datensatzvorlagen ab. Da bei diesem der Eintrag „ABC“ nicht existiert wird der Eintrag ABC gelöscht bzw. die einzelnen Datensatzvorlage einfach wieder überschrieben. (Hinweis am Rande: Dieses passiert nur, wenn die variable Liste bereits in der Datensatzvorlage Einträge enthält. Ist die variable Liste in der Datensatzvorlage leer, werden freie Eingaben in der Zeichnung nicht überschrieben.)
• Ich habe mir nun über den Weg geholfen, dass ich im Mastershape die Verknüpfung „User.CPMSetList“ zur Datensatzvorlage entfernt habe und so kein Abgleich mehr Datensatzvorlage besteht.
• Ich würde mich freuen, wenn sie mir dieses Phänomen bei ihnen auch einmal gegenprüfen könnten.
• Zur Info: Ich nutze Visio Professional 2016 im „Verfahrenstechnik“ Modus
es geht einfacher: erstellen Sie ein Shape mit Daten. Fügen Sie die Daten zu einem ShapeDatensatz hinzu:
Übertragen Sie die Daten auf ein zweites Shape. Die Daten sind auf dem zweiten Shape vorhanden. Löschen Sie den Shape-Datensatz. Die Datenfelder (und mit ihnen die Daten) werden ebenfalls gelöscht. Das kann nicht im Sinne des Erfinders sein.
Ich habe hier Visio in Office 365 Version 1905; Build 11629.20246 – das dürfte die neueste Version sein.
Umgekehrt: mir ist aufgefallen: wenn ich das Shape mit den Daten, die aufgrund eines Daten-Satzes erzeugt wurden, in eine andere Datei kopiere, wird der Shape-Datensatz mitkopiert.
Sie haben recht: der Verweis auf den Daten-Satz steht im ShapeSheet – wird die Zelle „User.CPMSetList“ gelöscht, wird die Verknüpfung aufgehoben – alles klappt wieder.
Was mich wundert: ich finde die Shape-Datensätze nicht! Weder im ShapeSheet des Dokuments noch des Zeichenblattes. Auch nicht im Zeichnungsexplorer. Irgendwo müssen sie doch gekapselt sein … Witzig: wenn ich mit dem Makro diese Aktionen aufzeichne, erhalte ich: NICHTS!
Sorry – ich muss es deutlich sagen – das ist wohl ein Bug! Heißt: „vorsichtig“ bis gar nicht mit den Shape-Datensätzen umgehen!
Ich habe in meinem Buch „Visio 2013/2016 für Entwickler“ aufgelistet:
Erstaunlicherweise stehen einige Dinge nicht im ShapeSheet. Man kann sie nur per Programmierung auslesen. Hierzu gehören:
• Werden Informationen aus einer Datenquelle mit einem Shape verknüpft, kann man aus den ShapeSheet nicht die Verknüpfung ablesen. Die Daten werden bei jeder Aktualisierung neu in die Daten des Shapes geschrieben.
• Der Name des Zeichenblattes
• Der Name des verwendeten Hintergrundblattes
Ich werde es in der nächsten Auflage um den Punkt „Shape-Datensätze“ erweitern.