# Version-Element

Über das `Version` Element kann gesteuert werden, ob ein neues Dokument erstellt werden soll, eine neue Version eingecheckt oder ein vorhandenes Dokument aktualisiert werden soll. Das Attribut `type` gibt dabei die Aktion an.

```xml
<Version type="NewVersionOrDocument">
  <Comment>GetFileName().Split('_')[1]</Comment>
  <Filter>"DOCNUMBER = '" + GetFileName().Split('_')[0] + "'"</Filter>
</Version>
```

Folgende Werte stehen zur Verfügung:

<table><thead><tr><th width="252">Funktion</th><th>Beschreibung</th></tr></thead><tbody><tr><td>"NewDocument"</td><td>Es wird stets ein neues Dokument erstellt.</td></tr><tr><td>"NewVersionOrDocument"</td><td>Es wird eine neue Version erstellt, wenn das Dokument gefunden wird, ansonsten wird ein neues Dokument erstellt</td></tr><tr><td>"NewOrUpdateDocument"</td><td>Es wird ein Dokument aktualisiert, wenn das Dokument gefunden wird, ansonsten wird ein neues Dokument erstellt</td></tr></tbody></table>

Das Element `Filter` gibt bei `NewVersionOrDocument` und `NewOrUpdateDocument` den SQL-Filter an, der verwendet wird, um das bereits vorhandene Dokument in der Datenbank zu finden. Der Inhalt des Elements besteht aus Programmcode.

Bei der Funktion `NewVersionOrDocument` ist es zudem möglich, einen Version-Kommentar zu definieren oder aus dem Dateinamen auszulesen. Wird kein Wert festgelegt, wird als Kommentar 'Dokumentimporter' verwendet.

```xml
<Comment>"Eigener Kommentar"</Comment>
```

Im initialen Beispiel wird nach dem Dokument gesucht, wo die Dokumentennummer (Docnumber) identisch ist mit dem Wert des Dateinamens (erster Teil bis zum Unterstrich). Der Versionskommentar wird ebenfalls aus dem Dateinamen ausgelesen (Dateiname, Wert nach dem ersten Unterstrich).

{% hint style="info" %}
**Gut zu wissen**

Der Zieldatensatz muss eindeutig identifiziert werden können. Werden mehrere Ergebnisse zurückgeliefert, wird dies als Fehler interpretiert. Dies gilt ebenfalls für den Fall, wenn das Dokument zum Archivierungszeitpunkt in Bearbeitung ist. Beachten Sie zudem, dass der User (unter welchem der Importer läuft) vollständige Fremdzugriffsrechte auf die Datensätze haben muss.
{% endhint %}

{% hint style="danger" %}
**Backup/Testdatenbank**

Mit der Funktion "NewVersionOrDocument" oder "NewOrUpdateDocument" wird aktiv nach einem bestehenden Dokumenten gesucht und dieses überschrieben. Bitte stellen Sie daher vor der Erstausführung des Dokumentimporters sicher, dass Sie über ein Backup der **Datenbank** und dem **Dokumentarchiv** verfügen! Idealerweise testen Sie den Job zuerst auf einer CRM-Testdatenbank. Die Zieldatenbank können Sie nach dem erfolgreichen Test einfach im [Login-Element](/dokumentimporter/dokumentation/job-definition/login-element.md) umkonfigurieren.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.artwin.ch/dokumentimporter/dokumentation/job-definition/version-element.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
