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:
<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:
<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:
<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:
<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.
<Assemblies>
<Assembly name="MyNewExternalAssembly.dll"/>
</Assemblies>
Copy link