Link-Element
Ein Link Element beschreibt eine zu erzeugende Verknüpfung, wobei eine Verknüpfungsseite dabei stets das ausgehende Dokument ist. Somit muss nur noch das Verknüpfungsziel definiert werden. Das Attribut object gibt das Datenobjekt des Verknüpfungsziels an. Das Attribut attribute gibt den zu verwendenden Verknüpfungstyp an.
<Links>
<Link object="ADDRESS" attribute="ITDDOCADR" mandatory="false" single="true">
<Filter>"ADRNUMBER = '" + GetFileName().Split('_', '.')[1] + "'"</Filter>
</Link>
</Links>
Die genauen Bezeichnungen der Verknüpfungsrollen finden Sie in der CAS genesisWorld Managementkonsole. Wenn Sie eine allgemeine Verknüpfung setzen möchten, verwenden Sie die Bezeichnung 'Verbindung'.
Das optionale Attribut mandatory gibt an, ob diese Verknüpfung zwingend erforderlich ist. Steht der Wert auf "false" und der Zieldatensatz kann nicht ermittelt werden, so wird das Dokument trotzdem importiert (ohne Verknüpfung). Steht der Wert auf "true" und der Zieldatensatz kann nicht ermittelt werden, wird das Dokument nicht importiert und als Fehler protokolliert.
Das optionale Attribut single gibt an, ob nur ein Datensatz der Ergebnismenge verknüpft wird oder alle. Steht der Wert auf "true" wird nur eine Verknüpfung zum ersten gefundenen Datensatz erstellt.
Das Element Filter gibt den SQL Filterstring an, der für die Identifizierung des Zieldatensatzes der Verknüpfung verwendet wird.
Im initialen Beispiel wird nach der Adresse gesucht, wo die Adressnummer (Adrnumber) identisch ist mit dem Wert des Dateinamens (zweiter Teil bis zum Unterstrich) und eine Primärverknüpfung gesetzt.
Gut zu wissen
Handelt es sich um eine gerichtete Verknüpfung (z.B. m:1 Primärverknüpfung) kann programmtechnisch nur eine Verknüpfung gesetzt werden. Ist dabei beispielsweise die Adressnummer der Firma identisch mit der des Ansprechpartners und man möchte das Dokument immer zur Firma archivieren, ist die Filterabfrage entsprechend zu erweitern.
<Filter>"ADRNUMBER = '" + GetFileName().Split('_', '.')[1] + "' and gwiscompany = 1"</Filter>
Sollte das Filterfeld (z.B. Adressnummer) in den Bestandsdaten leere Werte enthalten, müssen Sie die Abfrage ebenfalls erweitern:
<Filter>"ADRNUMBER = '" + GetFileName().Split('_', '.')[1] + "' and gwiscompany = 1 and ADRNUMBER !=''"</Filter>
Grundsätzlich können x-beliebig viele Verknüpfungen beim Archivieren gesetzt werden, hier ein Beispiel mit einer Primärverknüpfung zur Adresse sowie eine allgemeine Verknüpfung zur Verkaufschance:
<Links>
<Link object="ADDRESS" attribute="ITDDOCADR">
<Filter>"ADRNUMBER = '" + GetFileName().Split('_', '.')[1] + "' and gwiscompany = 1"</Filter>
</Link>
<Link object="GWOPPORTUNITY" attribute="Verbindung">
<Filter>"OPPORTUNITYNUMBER = '" + GetFileName().Split('_', '[', '.')[2] + "' and OPPORTUNITYNUMBER !=''"</Filter>
</Link>
</Links>
Copy link