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>

Siehe auch