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>

Last updated