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.
Beispiel
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>
Beispiel
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
Funktion
Beschreibung
GetFileDate()
Liefert das Änderungsdatum der zu importierenden Datei zurück
GetFileDate().ToShortDateString()
Liefert das Änderungsdatum der zu importierenden Datei in der Kurzform (dd.mm.YYYY) zurück
GetFileName()
Liefert den Namen der zu importierenden Datei (ohne Pfad inkl. Dateiendung) zurück
System.IO.Path.GetFileNameWithoutExtension(GetFileName())
Liefert den Namen der zu importierenden Datei (ohne Pfad und ohne Dateiendung) zurück
GetFilePath()
Liefert den vollständigen Pfad der zu importierenden Datei zurück
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:
Funktion
Beschreibung
GetFileName().Split('_', '.')[0]
Splittet den Dateinamen in einzelne Bereiche. Als Trennzeichen wird nach dem '_' oder '.' gesucht. Die [0] gibt an, welcher Wert zurückgeliefert wird.
Beispiel: der Dateiname lautet 1023_Rechnung_23923.pdf
Ergebnis: mit [0] wird der Wert 1023 zurückgeliefert.
Mit [1] würde der Wert Rechnung und mit [2] der Wert 23923 zurückgeliefert.
GetFileName().Substring(0,2)
Liefert einen Bestandteil (Substring) des Dateinamens zurück. Dabei ist die Startposition und die Länge des Wertes einstellbar.
Beispiel: der Dateiname lautet RE1023_23923.pdf
Ergebnis: mit (0,2) wird der Wert RE zurückgeliefert.
Mit (3,4) würde der Wert 1023 und mit (8,5) der Wert 23923 zurückgeliefert.
Die Methode setzt voraus, dass der Dateiname immer im gleichen Schema daherkommt.
LeftOf(GetFileName(), "_")
Liefert den Text, der links neben dem angegebenen Trenner steht
RightOf(GetFileName(), "_")
Liefert den Text, der rechts neben dem angegebenen Trenner steht
RightOfLastElement (System.IO.Path.GetFileNameWithoutExtension(GetFileName()),"-")
Liefert den Text von rechts bis zu einem definierten Trenner (im Beispiel - )
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:
Wert
Beschreibung
"-1"
Das Dokument wird mit dem Fremdzugriffsrecht 'persönlich' archiviert
"0"
Das Dokument wird mit dem Fremdzugriffsrecht 'vertraulich' archiviert
"65535"
Das Dokument wird mit dem Fremdzugriffsrecht 'vollständige Rechte' archiviert
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.
Copy link
On this page
Automatische Dokumentnummer
Teilnehmer/Fremdzugriffsrechte