DocumentFields-Element

Im Bereich DocumentFields definieren Sie, die einzelnen Felder, welche beim Import befüllt werden sollen.

<DocumentFields>
  <DOCDATE>GetFileDate()</DOCDATE>
  <DOCNUMER>GetFileName().Split('_', '.')[2]</DOCNUMER>
  <KEYWORD>"Bestellung Nr. " + GetFileName().Split('_', '.')[2]</KEYWORD>
  <CATEGORY>"Bestellung"</CATEGORY>
  <OWNERNAME>"Alle (öffentlich)"</OWNERNAME>
</DocumentFields>

Das Element wird dabei immer so bezeichnet, wie das Feld in der Datenbank heisst (Beispiel: Stichwort = KEYWORD). Der Inhalt der Elemente ist Programmcode und kann beliebig zusammengestellt werden. Bitte beachten Sie, dass der Datentyp des Programmcodes mit dem Feldtyp übereinstimmen muss.

FALSCH: <KEYWORD>GetFileDate()</KEYWORD>

Das Feld Keyword ist ein varchar-Feld, somit muss der Datums-Wert in einen String gewandelt werden.

RICHTIG: <KEYWORD>GetFileDate().ToString()</KEYWORD>

FALSCH: <DOCDATE>"14.07.2014"</DOCDATE>

Das Feld DocDate ist ein Datumsfeld welches keinen String-Wert aufnehmen kann.

RICHTIG: <DOCDATE>DateTime.Parse("14.07.2014")</DOCDATE>

Soll ein Text ausgegeben werden, muss dieser in Anführungszeichen gesetzt werden. Sollte in solchen Elementen Zeichen notwendig sein, die in XML-Elementen nicht erlaubt sind (z.B. > oder <), kann der komplette Inhalt in CData-Tags eingefasst werden. Beispiel:

<DocumentFields>
  <Keyword><![CDATA["Dokument < Auftrag vom " + DateTime.Now.ToString()]]></Keyword>
</DocumentFields>

Für den Zugriff auf Informationen der Quelldatei stehen folgende Funktionen zur Verfügung:b

Um eine hohe Flexibilität und Erweiterbarkeit zu erreichen, wurde die Anwendung so erstellt, dass verschiedene Werte als C#-Programmcode interpretiert werden. Somit kann bei der Definition der Parameter auf die komplette .NET Bibliothek und sogar eigene Bibliotheken zugegriffen werden. Als Faustregel gilt: Alle Werte, die innerhalb von Elementen definiert werden, sind Programmcode und müssen entsprechend formuliert sein. Hier einige oft eingesetzte Beispiele:

Soll ein Text ausgegeben werden, muss dieser in Anführungszeichen gesetzt werden. Beispiel:

<CATEGORY>"Rechnung"</CATEGORY>

Dies lässt sich auch individuell kombinieren, wenn Sie etwa eine fixe Bezeichnung sowie einen Bestandteil aus dem Dateinamen kombinieren möchten. Beispiel:

<KEYWORD>"Rechnung Nr. " + GetFileName().Split('_', '.')[2]</KEYWORD>

Automatische Dokumentnummer

Die Dokumentennummer lässt sich mit folgendem Befehl automatisch generieren. Dabei wird die nächst verfügbare Nummer aus CAS genesisWorld ausgelesen und gesetzt.

<DOCNUMBER>GenerateNewNumber()</DOCNUMBER>

Gut zu wissen

Da diese Routine nichts von dem Datensatz weiss, wo die generierte Nummer eingetragen werden soll, kann diese nicht prüfen, ob dort bereits eine vorhanden ist. Sprich: wird der Versionstyp ‘NewOrUpdateDocument’ verwendet und ist das Dokument bereits vorhanden, wird auch dort eine neue Nummer generiert.

Um im Fall 'NewOrUpdateDocument' nur eine Nummer zu generieren, wenn es das Dokument noch nicht im CRM gibt, steht folgende Option zur Verfügung:

<DOCNUMBER>GenerateNewNumberIfNotExists("DOC_BELEGNUMMER = '" + GetFileName().Split('_')[0] + "'")</DOCNUMBER>

Das Beispiel generiert eine neue Nummer, wenn der Datensatz über den angegebenen Filter (im Beispiel Datenbankfeld DOC_BELEGNUMMER) nicht gefunden wird.

Teilnehmer/Fremdzugriffsrechte

Die Teilnehmer und Fremdzugriffsrechte lassen sich ebenfalls individuell vergeben. Dabei muss der Wert eine kommaseparierte Liste von Benutzer- oder Gruppennamen enthalten. Werden keine Angaben gemacht, werden die Dokumente mit dem Teilnehmer 'Alle öffentlich' archiviert. Beispiel:

<OWNERNAME>"Buchhaltung, Verwaltung"</OWNERNAME>
<FOREIGNEDITPERMISSION>"-1"</FOREIGNEDITPERMISSION>

Mit FOREIGNEDITPERMISSION lassen sich die Fremdzugriffsrechte setzen. Dabei werden folgende Werte unterstützt:

Im obigen Beispiel würde das Dokument mit den Teilnehmern 'Buchhaltung' und 'Verwaltung' archiviert werden und das Fremdzugriffsrecht auf persönlich gesetzt. Es ist dabei wichtig, dass die Schreibweise 1:1 den Gruppen/Benutzernamen aus CAS genesisWorld entsprechen.

Last updated