Inhaltsverzeichnis
Replikations ID
Bei der Replikations ID kurz RepID, handelt es sich um eine über alle Standorte eindeutige und sich nicht mehr verändernde Kennzeichnung für jede zur Replikation vorgesehene Datei. Der Name des Datenfelds in XML_DataTemplates lautet RepID. Der Replikationsservice überprüft anhand der RepID in der Replikationsanforderung ob diese mit der zu replizierenden Datei übereinstimmt. Kommt es hier zu Abweichungen, dann wird die Repliationsanforderung nicht verarbeitet und bleibt im Übergabeverzeichnis stehen.
Wertzuweisung
Die RepID muß für jede Datei eindeutig sein, das wird erreicht in dem man eine GUID als Wert verwendet. Ein Dokument erhält nur dann eine RepID wenn das Verzeichnis (Project) in dem es abgespeichert ist auf replizierbar gesetzt wurde. Das geschieht mit der Bedingung %XML_Project:Replicate%==1. In Primus ist es üblich, zusätzlich den Standort an dem die Datei erstellt wurde anzugeben. Primus bietet dazu folgende Platzhalter an:
| Platzhalter | Beschreibung |
|---|---|
%NEWGUID% | Erzeugt eine neue GUID |
%LOCATION% | Liefert den unter ReplicationService im Attribut location eingetragenen Standort |
Die RepID setzt sich dann aus der LOCATION einem # und der NEWGUID zusammen.
Beispiel
<RepID value="%LOCATION%#%NEWGUID%" condition="'%XML_Project:Replicate%==1'" />/>
Besonderheiten
Da die RepID eindeutig sein muß ist es wichtig bei der Zuweisung darauf zu achten das diese z.B. bei Kopieroperationen nicht mit kopiert sondern geleert bzw. neu erzeugt wird. Auch ist sicherzustellen das sich die RepID niemals ändern darf, da sonst die Repliken an anderen Standorten nicht mehr aktualisiert werden. An den folgenden Stellen werden Zuweisungen der RepID vorgenommen, bzw. dürfen sie nicht vorgenommen werden:
| Abschnitt | Wertzuweisung | Beschreibung | |
|---|---|---|---|
| XML_DataTemplates | Nein | Keine Zuweisung wenn eine XML zu einem Dokument angelegt wird. Ob ein Dokument replizierbar ist kann später festgelegt werden. | |
| XML_Document | |||
| XML_DocumentAttachments | |||
| PreAssignData | |||
| AssignDocumentDataFields | Nein | Hier darf keinesfalls ein Wert zugewiesen werden, da Primus diese Einstellung nutzt um eine XML zu jedem Dokument zu erzeugen das keine hat. Arbeiten zwei Clients in ein und demselben Verzeichnis kann es sein das der eine Client eine Datei erzeugt und bevor er die dazugehörige XML anlegen kann erzeugt diese ein anderer Client. Dabei kann zweimal hintereinander eine RepID erzeugt werden, wobei dann möglicherweise die falsche RepID im Replikationsauftrag steht. | |
| AssignDocumentDataFields_NewDrawing | Ja | Wird genutzt wenn eine neue Zeichnung mittels Primus angelegt wird | |
| AssignDocumentDataFields_ADDIN | Ja | Wird vom Solid Edge Addin genutzt | |
| AssignDocumentDataFields_COPY | Ja | Wenn von einem Dokument eine Kopie erzeugt wird | |
| AssignDocumentDataFields_SMARTCOPY | Ja | Wenn von einem Dokument eine Kopie mit SmartCopy erzeugt wird | |
| AssignNewVersionDataFields | Ja | Beim erzeugen einer neuen Version | |
| AssignAttachmentsDataFields | Ja | Für Attachments | |
| AssignExportJobDocumentDataFields | Ja | ||
| AssignExportJobAttachmentsDataFields | Ja |
||
Alle nicht explizit aufgeführten Umbenenn- und Verschiebeoperationen haben keinen Einfluss auf die RepID, diese ändert sich in diesen Fällen nicht.
Da weder in XML_Document noch in AssignDocumentDataFields eine RepID zugewiesen wird, hätte dies zur Folge das direkt mit Primus erzeugte Dokumente grundsätzlich nicht repliziert würden. Daher wird zusätzlich ein Process Call angelegt, der bei neu über die Primusoberfläche angelegten Dokumenten anschließend eine RepID generiert.
Beispiel
<ProcessCalls> <AfterProcessCalls> <New> <!-- Erzeugt eine RepID nachdem über die Primusoberfläche ein neues Dokument erstellt wurde --> <Call method="SetXMLValue" parameter="%FILEPATH%|RepID|%LOCATION%#%NEWGUID%" condition="'%XML_Project:Replicate%==1'" /> </New> </AfterProcessCalls> </ProcessCalls>
