> For the complete documentation index, see [llms.txt](https://docs.artwin.ch/dokumentimporter/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.artwin.ch/dokumentimporter/dokumentation/job-definition/code-element.md).

# Code-Element

Das optionale Element `Code` kann C#-Programmcode enthalten, der von den oben gezeigten Stellen aufgerufen werden kann. Hier können externe Spezialfunktionen (z.B. Datenbank-Lookups) oder Feldübersetzungen implementiert werden. Beispiel der Anwendung des Codes:

```csharp
<Code>
      string TranslateInitial(string value)
      {
        if(value.Equals("BE", StringComparison.OrdinalIgnoreCase))
          return "Bestellung";
if(value.Equals("LI", StringComparison.OrdinalIgnoreCase))
          return "Lieferschein";
        return value;
      }
    </Code>
```

Danach der Code in den normalen DocumentFields verwendet werden:

```xml
<CATEGORY>TranslateInitial(GetFileName().Substring(0,2)</CATEGORY>
```

Im obigen Beispiel werden die ersten zwei Zeichen des Dateinamens ausgelesen und über den `Code` in die ausgeschriebenen Bezeichnungen übersetzt (BE = Bestellung, LI = Lieferschein). Dabei wird die Gross-/Kleinschreibung ignoriert. Ein weiteres Beispiel wäre:

```csharp
<Code>
       string GetNumericPart(string text)
        {
            System.Text.RegularExpressions.Match match =
System.Text.RegularExpressions.Regex.Match(text, "-?[0-9]+");

            if (match.Success)
                return match.Value;

            return "";
        }
    </Code>
```

Anwendung des Codes:

```xml
<DOCNUMBER>GetNumericPart(GetFileName().Split('_')[0])</DOCNUMBER>
```

Im obigen Beispiel wird nur der Zahlenwert rausgefilter. Dies kann praktisch sein, wenn der Dateiname unterschiedlich daherkommt `K11054_Muster.pdf` oder `KA11054_Muster.pdf`. Mit der Funktion wird immer der Wert `11054` extrahiert. Mit entsprechenden Programmierkenntnissen sind hier den Möglichkeiten kaum Grenzen gesetzt.

## Assembly-Element

Für den Fall, dass externer Programmcode eingebunden werden soll, können über Assembly-Elemente .NET DLLs eingebunden werden. Das Attribut name enthält dabei den vollständigen Pfad der DLL. Liegt die Datei im Programmverzeichnis, wird kein Pfad benötigt.

```xml
<Assemblies>
  <Assembly name="MyNewExternalAssembly.dll"/>
</Assemblies>
```
