Alle XML-Importjobs entsprechen alle demselben Schema und können daher zum großen Teil allgemein behandelt werden. Sie haben alle dieselben Eingabeparameter und im Wesentlichen dieselben Rückgabeparameter. So gibt es beispielsweise den Job 'XMLInsert', der die Übergabeparameter 'Flags', 'Options' und 'XML' besitzt.
Durch die 'Flags' wird das allgemeine Verhalten des Jobs (z. B. Fehlerlistengenerierung oder XML-Validierung) gesteuert. Über den Parameter 'Options' können bestimmte Überprüfungen (z. B. Schüsselfeldprüfung) an- bzw. ausgeschaltet werden. Der Parameter 'XML' enthält die Daten, die das einzufügende Objekt beschreiben. Der Parameter 'JobUserGUID' ermöglich es, den Benutzerkontext für diesen Job zu ändern.
Beispiel:
Das Beispiel zeigt ein XML, mit dem ein Dokument vom Typ 'Dokumenttyp-Name', der im Schrank 'Schrank-Name' liegt, mit dem Job 'XMLInsert' eingefügt wird. Dabei wird in den Indexdaten des neuen Dokumentes das Feld mit dem Namen 'Feld-Name' der Wert 'Mein Wert' eingefügt.
<?xml version="1.0" encoding="UTF-8"?>
<DMSData>
<Archive name="Schrank-Name">
<ObjectType name="Dokumenttyp-Name" type="DOCUMENT">
<Object>
<Fields>
<Field name="Feld-Name">Mein Wert</Field>
</Fields>
</Object>
</ObjectType>
</Archive>
</DMSData>
Als Rückgabeparameter gibt es einerseits die Objekt-ID des neu eingefügten Objektes, des Weiteren gibt es optional (siehe Flags) einen XML-Text, der die aufgetretenen Fehler beschreibt. Jeder Job hat über die Parameter hinaus einen Rückgabewert. Dieser ist im Erfolgsfall '0' oder qualifiziert einen eventuell aufgetretenen Fehler grob.
Über den Parameter 'XML' wird die Objektbeschreibung im XML-Format übergeben. Das XML muss Base64 kodiert werden, da der Server ansonsten Probleme hat, Sonderzeichen zu übertragen. Auch UTF-16/UCS-4-Formate könnten ansonsten nicht übertragen werden. Zu der XML-Struktur existiert ein Schema, gegen das das XML validiert werden kann. Um dieses Schema einsehen zu können, existiert der Job 'GetXMLSchema'. Diesem übergibt man im Parameter Schema den Wert 'DMSData' und erhält in der Rückgabe-Dateiliste das Import-Schema. Werden Attribute gesetzt, sollen sie jedoch nicht vom Job ausgewertet werden, so sind Text-Attribute mit dem Leer String '' zu setzen, numerische Attribute sind mit dem Wert '-1' vorzubelegen.
Der hierarchische Aufbau der XML-Struktur entspricht der folgenden Grafik.
DMSData: Dieser Tag stellt das Root Tag des XML dar. Über das optionale Attribut 'query_language' lässt sich die Sprache für die DMS Bezeichner angeben. Als Wert wird der entsprechende Sprachcode erwartet, z. B. '7' für Deutsch oder '9' für Englisch. Wird diese Attribut nicht angegeben oder auf '0' gesetzt, wird als Anfragesprache die Defaultsprache angenommen.
Archive: Über die Attribute dieser Tags wird der Schrank identifiziert, in dem der zu behandelnde Objekttyp liegt oder einfügt werden soll. Werden keine möglichen Attribute angegeben, wird versucht, anhand des zu importierenden Objekttypen den entsprechenden Schrank zu ermitteln. Dieses geht jedoch zu Lasten der Performance und sollte daher nach Möglichkeit vermieden werden. Der Schrank kann anhand seiner Attribute id (ID des Objekttyps), name (Name des Schranks), internal_name (interner Schrankname) oder osguid (GUID des Schranks) identifiziert werden.
ObjectType: Innerhalb dieser Tags wird der Objekttyp des zu behandelnden Objektes festgelegt. In den Attributen muss über den Typ ('type') festgelegt werden, ob es sich um einen Ordner, Register oder Dokument handelt (Mögliche Werte sind 'FOLDER', REGISTER' und 'DOCUMENT'). Der Objekttyp selbst kann anhand seiner Attribute: name (Name), internal_name (interner Name), id (Objekttyp ID), table (Tabellenname), osguid (GUID) oder einer gültigen Kombination aus maintype und cotype (Haupt- und Untertyp) ermittelt werden.
Object: Dieser Tag umfasst Informationen zum konkret zu behandelnden Objekt. Muss durch den Job ein bereits bestehendes Objekt auf dem Server festgelegt werden (z. B. bei XMLUpdate), so muss hier die object_id (ID des Ordners, Registers oder Dokuments) als Attribut hinterlegt werden. Soll ein Standort festgelegt werden (z. B. bei XMLInsert()), so wird dieser hier als Kombination von register_id, register_type (Registerid, Registertyp) und/oder folder_id (Ordnerid) beschrieben. Zusätzlich ist es möglich, im Fall eines Dokumentes den maintype (Haupttypen) festzulegen. Varianten von W-Dokumenten können durch Füllen des Attributes 'variantparent_id' (ID des Dokuments, dem die Variante hinzugefügt werden soll) angegeben werden (siehe auch Options: Variantsamelevel, Variantsetactive). Die Unterelemente dieser Tags müssen unbedingt in der vorgegebenen Reihenfolge im XML angegeben werden. Es ist möglich, durch die Angabe des Attributes 'concurrency_timestamp' im Zusammenhang mit dem Zeitstempel des Feldes 'MODIFYTIME', das vorab angefragt werden muss, zu überprüfen, ob dieses Objekt seit seiner Abfrage von einem anderen Benutzer verändert worden ist. In diesem Falle wird eine Aktualisierung verweigert. Über das Attribut sourceparent_id kann beim Verschieben und Löschen eines Dokumentes, das mehrere Standorte besitzt, bestimmt werden, welcher Standort verschoben werden soll.
Warnung: Wird der Haupttyp eines Dokumentes geändert, wenn gleichzeitig die Dokumentenhistorie geführt wird, dann wird bei der Wiederherstellung einer älteren Dokumentversion lediglich das Dokument wiederhergestellt, nicht jedoch der geänderte Haupttyp. Dieses kann bei der Bearbeitung des Dokumentes zu Inkonsistenzen führen!
Fields: Dieser Tag darf für jedes Objekt lediglich einmal vorhanden sein und stellt eine Liste aller Felder dar, die behandelt werden sollen.
Field: Dieser Tag beschreibt das Feld, das eingefügt oder verändert werden soll. Das Feld kann anhand der Attribute: name (Name des Feldes auf dem Datenblatt), internal_name (interner Feldname), dbname (Feldname in Datenbank), sortpos (Tabposition auf dem Datenblatt) oder der osguid (GUID) identifiziert werden. Der Text des Elementes enthält den Wert, der dem Feld zugeordnet werden soll. Dabei ist es auch möglich einen Wert auf 'leer' zu setzen, indem man das Attribut ' field_function' (s.u.) angibt. Ist das Feld ein Systemfeld, so ist dieses dadurch zu kennzeichnen, dass das System-Attribut (system) den Wert '1' erhält. Mögliche Systemfelder sind:
Datenbankname | Interner Name | Bedeutung |
---|---|---|
OSOWNER | OBJECT_USERGUID | Besitzer des Objektes |
FOREIGNID | OBJECT_FOREIGNID | Fremd ID eines Verweises |
SYSTEMID | OBJECT_SYSTEMID | System ID eines Objektes |
Warnung: Wird über die System ID (=0) und eine entsprechende Foreign ID auf ein Dokument verwiesen, das wiederum ein Variantenverwaltung besitzt, so kann es zu inkonsistenten Zuständen kommen, wenn Varianten mit Haupttypen aktiviert werden, die nicht mit dem Haupttyp des Verweises übereinstimmen!
Darüber hinaus kann optimonal ein Attribut 'field_function' gesetzt werden. Es existieren folgende erlaubt Werte:
Attributwert | Bedeutung |
---|---|
NULL | Der Feldwert wird leer eingefügt (Als DB-Null) |
OBJECT_ID | Der Wert des Feldes entspricht der eindeutigen internen ID des Objektes |
USER | Der Name des abgemeldeteten Benutzers |
MultiFields: Dieser Tag darf für jedes Objekt lediglich einmal vorhanden sein und stellt eine Liste aller Mehrfachfelder dar, die behandelt werden sollen. Mehrfachfelder sind nur im Falle von Dokumenten erlaubt.
Multifield: Durch dieses Element wird ein bestimmtes Mehrfachfeld eines Dokumentes identifiziert. Das Multifeld kann anhand der Attribute: name (Name des Mehrfachfelds), internal_name (interner Name), dbname (Name des Feldes in der Datenbank) oder der osguid (GUID) identifiziert werden.
Page: Dieses Element bezeichnet eine bestimmte Seite, dessen Seitennummer in dem Attribut id angegeben werden muss.
Value: Hier stehen die entsprechenden Werte, die den angegebenen Seiten entsprechen. Der Wert steht im Text des Elementes.
TableFields: Dieser Tag darf für jedes Objekt lediglich einmal vorhanden sein und stellt eine Liste aller zu behandelnden Tabellenfelder des Objektes dar.
TableField: Durch dieses Element wird ein bestimmtes Tabellenfeld (Table control) eines Objektes identifiziert. Ein Tabellenfeld kann anhand der Attribute: name (Name), internal_name (interner Name), dbname (Name in der Datenbank) oder der osguid (GUID) identifiziert werden.
Row: Dieser Tag beschreibt eine Zeile eines Tabellenfeldes. Es ist damit die Zusammenfassung aller Spalten einer bestimmten Zeile. (Alternativ zu dieser Angabe von Tabellenfeldeinträgen kann man diese auch durch eine (LOL) Angabe von Rows und Columns bestimmen. Siehe unten).
Field: Dieser Tag ist der Wert einer konkreten Spalte einer Zeile des Tabellenfeldes. Es kann lediglich über die Attribute name (Name), internal_name (internen Namen) oder dbname (Name in der Datenbank) identifiziert werden. Der Elementtext beinhaltet den Wert, der hinzugefügt werden soll.
Darüber hinaus kann optimonal ein Attribut 'field_function' gesetzt werden (zu Details: siehe oben)
ODER
Columns: Dieser Tag ist eine Sammlung von Column-Tags.
Column: Dieser Tag beschreibt ein Feld innerhalb eines Tabellencontrols. Das Feld kann anhand seiner Attribute name (Name), internal_name (internen Namen) oder dbname (Name in der Datenbank) werden. In den folgenden Tags unter Rows stehen die Feldwerte in der Reihenfolge, in der hier die Spalten aufgeführt worden sind.
Rows: Dieser Tag beschreibt eine Liste von Row-Tags und damit eine Sammlung von Zeilen des Tabellen Controls.
Row: Hier wird eine Zeile beschrieben, die einer Zeile in dem Tabellen Control entspricht.
Value: Dieser Tag beschreibt einen Feldwert einer Zeile. Das zugeordnete Feld muss unter dem Tag 'Column' an der entsprechenden Stelle ebenfalls angegeben worden sein. Der Text des Elementes entspricht dem Wert des Feldes.
Darüber hinaus kann optimonal ein Attribut 'field_function' gesetzt werden (zu Details: siehe oben)
Remarks: Dieser Tag beschreibt eine Liste von Notizen, die dem Objekt zugeordnet werden sollen.
RemarkText: Dieser Tag beschreibt einen Notiztext für das angegebene Objekt. Der Elementtext entspricht dem Text der Notiz.
RemarkObject: Dieser Tag beschreibt ein Objekt, das über die Notizen mit dem angegebenen Objekt verknüpft werden soll. Das zu verknüpfende Objekt ist über die Attribute object_id (ID des Objekts) und object_type (Typ des Objekts) zu bestimmen.
Jeder Job besitzt einen Parameter Flags. Durch die Flags können das allgemeine Verhalten des Jobs gesteuert werden. Die Flags können auch kombiniert werden. Soll zum Beispiel eine Fehlerliste in Dateiform (Flags = 1) und UTF-16 codiert (Flags = 16) zurückgeliefert werden, muss im Parameter Flags der Wert '17' (1+16) übergeben werden. Es existieren folgende Flags:
Flag | Beschreibung |
---|---|
1 | Die Fehlerliste wird in Dateiform zurückgeliefert. |
2 | Der Job liefert keine Fehlerliste zurück. |
4 | Durch den Job wird keine Validierung mit der XSD-Datei durchgeführt. |
8 | Die mitgelieferten Dateien werden am Server nicht gelöscht. |
16 | Die zurückgelieferte Fehlerliste wird in UTF-16 codiert. (Defaultwert UTF-8) |
Durch den Parameter 'Options' können bestimmte Überprüfungen an- bzw. ausgeschaltet werden. Dies kann teilweise zu erheblicher Performancesteigerung führen. Der Parameterwert ist eine Semikolon-separierte Liste mit dem Format OPTION1=1;OPTION2=0;....
Option | Beschreibung | Default | nutzbar im Job |
---|---|---|---|
APPENDFILESTOFRONT | gibt an für Update und varinatenerzeugung ob anzuhängende Files vor (1) oder nach dem Bestehenden angehängt werden (0) | (0) Option nicht aktiv | XMLInsert |
XMLUpdate | |||
ARCHIVABLE | gibt an, ob das Dokument den Status archivierbar (1) oder nicht archivierbar erhält (0) | XMLInsert: | |
(0)Option nicht aktivXMLUpdate: | |||
Option nicht definiert | XMLInsert | ||
XMLUpdate | |||
XMLCopy | |||
ARCHIVEIMMEDIATELY | gibt an, ob das Dokument sofort archiviert wird (1) oder nicht (0)Hinweis: Kann das Dokument nicht archiviert werden, wird kein Dokument ohne Seiten angelegt. | (0) Option nicht aktiv | XMLInsert |
ARCHIVEIMMEDIATELYOBJDEF | gibt an, ob zu einem Dokument, das sofort archiviert wird (ARCHIVEIMMEDIATELY), die Objektdefinition ebenfalls archiviert wird (1) oder nicht (0). | (0) Option nicht aktiv | XMLInsert |
CHECKACCESS | für das Objekt werden die Benutzerrechte geprüft (1) oder nicht geprüft (0) | (1) Option aktiv | XMLInsert |
XMLUpdate | |||
XMLMove | |||
XMLDelete | |||
XMLCopy | |||
CHECKCATALOGUE | es wird geprüft, ob alle übergebenen Katalogeinträge auch im Original-Katalog enthalten sind (1) oder nicht geprüft (0) | (1) Option aktiv | XMLInsert |
XMLUpdate | |||
CHECKEXISTENCE | es wird geprüft, ob das angegebene Objekt an der angegebenen Position existiert (1) oder nicht geprüft (0) | (1) Option aktiv | XMLInsert XMLUpdate |
XMLMove | |||
XMLDelete | |||
XMLCopy | |||
CHECKKEYFIELDS | es wird geprüft, ob Schlüsselfelder eindeutig sind (1) oder nicht geprüft (0) | (1) Option aktiv | XMLInsert |
XMLUpdate | |||
CHECKOBLIGATION | es wird geprüft, ob alle Pflichtfelder gesetzt wurden (1) oder nicht geprüft (0) | (1) Option aktiv | XMLInsert |
XMLUpdate | |||
CHECKPOSITION | es wird geprüft, ob angegebene (Ziel-)Objekte (z. B. Ordner) existieren (1) oder nicht geprüft (0) | (1) Option aktiv | XMLMove |
XMLCopy | |||
CHECKREADONLY | es wird geprüft, ob keine Felder verändert wurden, für die keine Schreibrechte bestehen (1) oder nicht geprüft (0) | (1) Option aktiv | XMLUpdate |
DELETECASCADING | gibt an, ob Objekte kaskadierend gelöscht werden sollen, auch wenn sie Unterobjekte enthalten (1) oder nicht (0) | (0)Option nicht aktiv | XMLDelete |
COPYCASCADING | gibt an, ob Objekte kaskadierend kopiert werden sollen, wenn sie Unterobjekte enthalten (1) oder nicht (0) | (0)Option nicht aktiv | XMLCopy |
FULLTEXTFILEATTACHED | Gibt an, ob die letzte übermittelte Datei die Volltextdaten für das Dokument enthalten soll (1) oder nicht (0) | (0)Option nicht aktiv | XMLInsertXMLUpdate |
HARDDELETE | gibt an, ob das Objekt endgültig gelöscht werden soll, also nicht in den Papierkorb verschoben wird (1) oder nicht (0) | (0)Option nicht aktiv | XMLDelete |
INITFIELDS | gibt an, ob alle nicht gesetzten Felder mit den Defaultwerten belegt werden sollen (1) oder nicht (0) | (1) Option aktiv | XMLInsert |
XMLUpdate | |||
INUSERTRAY | gibt an, ob das Objekt in die Benutzer-Ablage eingefügt werden soll (1) oder nicht (0) | (0) Option nicht aktiv | XMLMoveXMLInsert |
INWFTRAY | gibt an, ob das Objekt in die Workflow-Ablage eingefügt werden soll (1) oder nicht (0) | (0) Option nicht aktiv | XMLMoveXMLInsert |
REPLACEFILES | gibt an, ob bereits gespeicherten Dateien durch die übergebenen Dateien ersetzt (1) oder angehängt werden (0) | XMLInsert (Varianten): (1) Option aktiv, XMLUpdate: (0) Option nicht aktiv | XMLUpdateXMLInsert |
REPLACEMULTIFIELDS | gibt an, ob die übergebenen Multifelder die Originalen ersetzen sollen (1) oder angehängt werden (0) | (0) Option nicht aktiv | XMLUpdate |
REPLACEREMARKS | gibt an, ob die übergebenen Notizen die Originalen ersetzen sollen (1)oder angehängt werden (0) | (0 )Option nicht aktiv | XMLUpdate |
REPLACETABLEFIELDS | gibt an, ob die übergebenen Tabellenfelder die Originalen ersetzen sollen (1) oder angehängt werden (0) | (0) Option nicht aktiv | XMLUpdate |
TRUNCATEVALUES | gibt an, ob übergebene Strings abgeschnitten werden sollen, wenn sie länger sind, als definiert (1) oder nicht (0) | (0) Option nicht aktiv | XMLInsert |
XMLUpdate | |||
TYPELESS | gibt an, ob das Objekt als typenlos in die Ablage eingefügt werden soll (1) oder nicht (0) | (0) Option nicht aktiv | XMLInsert |
UPDATEALLFIELDS | gibt an, ob nicht angegebene Felder auf leer gesetzt werden sollen (1) oder nicht (0) | (0) Option nicht aktiv | XMLInsert |
XMLUpdate | |||
VARIANTSAMELEVEL | gibt an, ob die Variante auf der gleichen Ebene (1) oder als 'Untervariante' (0) eingefügt werden soll | (0) Option nicht aktiv | XMLInsert |
VARIANTSETACTIVE | gibt an, ob die neue Variante im selben Schritt als 'Aktive' (1) gesetzt wird oder nicht (0) | (0) Option nicht aktiv | XMLInsert |
VARIANTTRANSFERRETENTION | gibt an, ob die neue Variante die geplante Retention Zeit vom Original Dokument übernehmen soll (1) oder nicht (0) | (0) Option nicht aktiv | XMLInsert |
LINKDOCUMENT | gibt an, ob ein Dokument nur einen neuen Standort erhalten soll (1) oder nicht (0) | (0) Option nicht aktiv | XMLCopy |
WFTOUSERTRAY | Gibt an, ob beim Verschieben eines Dokumentes dieses von der Workflowablage in die Benutzerablage verschoben werden soll (1) oder nicht (0) | (0) Option nicht aktiv | XMLMove |
KEEPLINKWHENEXISTS | Gibt an, ob ein bereits existierender Link als Fehler gewertet werden soll (1) oder nicht (0) | ||
(Gilt für XMLCopy nur in Zusammenhang mit der Option LINKDOCUMENT) | (0) Option nicht aktiv | XMLCopy | |
XMLMove | |||
DELETEVARIANTMODE | Gibt an, ob das Löschen einer gegebenen inaktiven Variante zum Löschen des gesamten Variantenbaums führt (1) oder nicht (0) | (0) Option nicht aktiv | XMLDelete |
COPYINDEXONLY | Gibt an, ob nur die Indexdaten kopiert werden (1) oder nicht (0) | (0) Option nicht aktiv | XMLCopy |
COPYCREATEHISTORY | Gibt an, ob Informationen zum Kopieren in die Historie eingetragen werden (1) oder nicht (0) | (1) Option aktiv | XMLCopy |
Durch den Parameter 'JobUserGUID' kann der Benutzer Kontext des XML Jobs geändert werden. Dies gilt im Zusammenhang mit allen XMLImport-Jobs, also allen Jobs 'XML…', die Modifikationen an Objekten im DMS vornehmen. Wird hier die GUID des Benutzers angegeben, so werden alle Checks (z. B. Zugriffsrechte), sowie Ablagen oder ähnliches nur von dem angegebenen Benutzer verwendet.
Achtung: Diese Option ist lediglich verfügbar, wenn die entsprechenden Jobs von anderen Jobs aus dem Server heraus aufgerufen werden. Einem Client wird das Setzen dieser Option jedoch stets verweigert!
Jedem Job, der Übergabe Dateien auswertet, kann stattdessen eine Anzahl Parameter übergeben werden. Die Parameter lauten aufsteigend File_0, File_1, usw. Dieser Parameter ist vom Typ String und beinhaltet einen Datei-Pfad, die Datei muss somit nicht mehr in der Dateiliste übertragen werden. Dieses ist für den Fall gedacht, dass der Aufrufer sich selber auf dem Rechner des Servers befindet, in dem Fall fällt der Übertragungsaufwand der Datei über den Netzwerkadapter weg. Es ist in diesem Falle aber unbedingt sicherzustellen, dass dieser Pfad (ob lokal oder UNC-Notation) vom Server mit lesenden bzw. schreibenden Rechten erreichbar ist. Es kann entweder nur eine Liste von Dateien übergeben werden oder eben eine Menge File-Parameter, eine Mischung von beidem ist nicht zulässig.
Jeder Job generiert neben jobspezifischen Rückgabewerteneine Rückgabenummer. Diese ist im Erfolgsfall stets '0'. Ist ein Fehler aufgetreten, so kann er über die Rückgabenummer grob qualifiziert werden. Für eine detaillierte Analyse sind jedoch die genauen Fehlermeldungen unerlässlich. Es existieren folgende Rückgabenummern:
Fehlernummer | Beschreibung |
---|---|
0 | Der Job ist erfolgreich ausgeführt worden. |
-1 | Es ist ein allgemeiner Fehler aufgetreten. (In diesem Falle kann der Fehler nicht näher spezifiziert werden) |
-2 | Es ist kein Schrank angegeben worden. |
-3 | Der angegebene Schrank ist unbekannt. |
-4 | Es ist kein Registertyp angegeben worden. |
-5 | Der angegebene Registertyp ist unbekannt. |
-6 | Es wurde kein Dokumenttyp angegeben. |
-7 | Der angegebene Dokumenttyp ist unbekannt. |
-8 | Das angegebene Register befindet sich nicht im angegebenen Ordner. |
-9 | Der angegebene Dokumenttyp ist in dem angegebenen Schrank nicht zugelassen. |
-10 | Die benötigte Identifizierung des Ordners fehlt. |
-11 | Die benötigte Identifizierung des Dokumentes fehlt. |
-12 | Die benötigte Identifizierung des Registers fehlt. |
-13 | Die benötigte Identifizierung des Registers ist unbekannt. |
-14 | Die benötigte Identifizierung des Ordners ist unbekannt. |
-15 | Die benötigte Identifizierung des Dokumentes ist unbekannt. |
-16 | Die Aktualisierung des Ordners ist fehlgeschlagen. |
-17 | Die Aktualisierung des Dokumentes ist fehlgeschlagen. |
-18 | Die Aktualisierung des Registers ist fehlgeschlagen. |
-21 | Das Dokument wurde bereits archiviert. |
-22 | Das angegebene/benötigte Objekt ist unbekannt. |
-23 | Die ID des angegebenen Registers existiert nicht auf dem Archivserver. |
-24 | Der Feldname konnte nicht aufgelöst werden. |
-28 | Der Wert für ein gegebenes Feld ist nicht erlaubt. |
-29 | Die angegebene ObjektId ist ungültig. |
-30 | Die Pflichtfelder sind nicht gefüllt worden. |
-31 | Der angegebene Wert stimmt nicht mit dem Typ auf dem Archivserver überein. |
-32 | Die angegebene/benötigte Datei existiert nicht. |
-40 | Ein Übergabeparameter ist fehlerhaft oder fehlt vollständig. |
-47 | Der Benutzer besitzt die entsprechenden Rechte auf dem Archivserver nicht. |
-51 | Das Dokument besitzt keine Seiten. |
-65 | Es konnte kein Index vom Server bezogen werden. |
-68 | Das Verschieben von Ordnern ist nicht erlaubt. |
-89 | Die Beziehung zwischen Dokument und Register ist nicht erlaubt. |
-90 | Verweisdokumente können nicht ohne Angabe eines Standortes verschoben werden |
-94 | Es sind keine Dokument-Seiten erlaubt. |
-1001 | Der angegebene Wert konnte im zugehörigen Katalog nicht gefunden werden. |
-1002 | Das Schlüsselfeld ist nicht eindeutig. |
-1003 | Es wurde versucht, ein schreibgeschütztes Feld zu setzen. |
-1004 | Es wurde keine Dokumentliste angegeben. |
-1005 | Das angegebene Objekt liegt ist mit einem Workflow-Prozess verbunden. |
-1006 | Die angefragte Funktionalität ist in der vorliegenden Version nicht implementiert. |
-1007 | Beim Lesen der Objektdefinitionen vom ObjDefReader ist ein Fehler aufgetreten. |
-1008 | Es konnte auf ein angefordertes File nicht zugegriffen werden. |
-1009 | Das Objekt liegt im Papierkorb. |
-1010 | Das Dokument liegt in einer Mappe. |
-1011 | Die Rekurrierungstiefe ist zu groß, die Aktion wurde abgebrochen. |
-1012 | Das Zielregister ist ein Kind des zu verschiebenden Registers. |
-1013 | Es wurde eine System ID, jedoch keine Foreign ID angegeben. |
-1014 | Einem Verweisdokument können keine Seiten hinzugefügt werden. |
-1015 | Das Dokument kann nicht auf ein anderes Dokument verweisen, da es Seiten besitzt. |
-1016 | Beim Parsen des XML Textes ist ein Fehler aufgetreten. |
-1017 | Bei der Validierung des XML Textes ist ein Fehler aufgetreten. |
-1018 | Der XML Text ist unvollständig. |
-1019 | Der angegebene Besitzer konnte nicht ermittelt werden. |
-1020 | Der Objekttyp ist bei dieser Operation ungültig. |
-1021 | Es darf nicht kaskadierend gelöscht werden, das Objekt besitzt jedoch noch Unterobjekte. |
-1022 | Der Verweis wurde nicht gefunden. |
-1023 | Das angegebene Systemfeld darf nicht vom Benutzer geändert werden. |
-1024 | Ein Jobparameter fehlt. |
-1025 | Der angegebene Parameterwert ist ungültig. |
-1026 | Es ist für den Benutzer nicht möglich, die Rechteprüfung abzustellen. |
-1027 | Für ein Tabellenfeld wurden mehr Werte angegeben als Spalten vorhanden sind. |
-1028 | Beim Einfügen der Notiz-Objekte/-Texte ist ein Fehler aufgetreten. |
-1029 | Ein XML Element ist unbekannt. |
-1030 | Ein Objekttyp ist auf dem DMS Server nicht gefunden worden. |
-1031 | Ein Objekt Feld ist auf dem DMS Server nicht gefunden worden. |
-1032 | Der Job wurde auf Benutzeranfrage hin abgebrochen. |
-1033 | Die angegebene Bedingung ist ungültig. |
-1034 | Ein XML Attribut ist fehlerhaft. |
-1035 | Ein notwendiges XML Attribut fehlt. |
-1036 | Es dürfen nur Dokumente ausgecheckt werden. |
-1037 | Das Dokument ist eingecheckt worden. |
-1038 | Das Dokument ist ausgecheckt worden. |
-1039 | Das Dokument wurde an einen anderen Benutzer ausgecheckt. |
-1040 | Das Dokument wurde an eine andere Station ausgecheckt. |
-1041 | Das Dokument kann nicht ausgecheckt worden, da es keine Seiten besitzt. |
-1042 | Das Dokument befindet sich nicht in der Workflow-Ablage. |
-1043 | Das Dokument befindet sich in der Workflow-Ablage. |
-1044 | Die Parent-Variante des Dokumentes konnte nicht ermittelt werden. |
-1045 | Es dürfen nur für W-Dokumente neue Varianten angelegt werden. |
-1046 | Die Dokument-Variante konnte nicht ermittelt werden. |
-1047 | Die Angaben für die Benutzerdaten sind nicht eindeutig |
-1048 | Ein konkurrierende Aktualisierung eines Objektes ist fehlgeschlagen |
-1049 | Die Anfrage wurde nicht gefunden |
-1050 | Die Kopie des Objektes existiert bereits an dem angegebenen Standort |
-1051 | Das Anfrageformat wird nicht unterstützt |
-1052 | Der Schrankname konnte nicht ausgelesen werden |
-1053 | Der Dokumentenname konnte nicht ausgelesen werden |
-1054 | Der Registername konnte nicht ausgelesen werden |
-1055 | Ein Ausdruck besitzt ein ungültiges Format |
-1056 | Der Sektionsname ist ungültig |
-1057 | Allgemeiner Fehler beim Auslesen der Anfrage |
-1058 | Unbekannter Anfragetyp |
-1059 | Die Neue Variante ist angelegt worden, konnte jedoch nicht auf 'Aktiv' gesetzt werden |
-1060 | Die Anfrage konnte nicht bearbeitet werden. |
-1061 | Das Verschieben bzw. Verlinken von Objekten ist systemweit gesperrt |
-1062 | Der Standort des Objektes konnte nicht ermittelt werden |
-1063 | Das Dokument existiert bereits an dem Standort |
-1064 | Das Kopieren von Objekten mit Schlüsselfeldern ist nicht erlaubt |
-1065 | Das angegebene Passwort ist falsch |
-1066 | Das neue und das alte Passwort unterscheiden sich nicht |
-1067 | Die Volltextanfrage enthält nur zu ignorierende Wörter |
-1068 | Es steht nicht genügend Speicher zur Verfügung |
-1069 | Der Zugriff auf einen Systemressource wurde verweigert. |
-1070 | Im Job XMLImport ist als Aktion bzgl. der Anzahl von Treffern 'Fehler' angegeben worden |
Die folgenden Beschreibungen sind allgemeingültig, gelten also für alle XML Import Jobs.
Datumsfelder können in den unten aufgeführten Formaten importiert werden. Dabei entspricht TT dem immer zweistelligen Tag ('09' statt '9'), MM dem Monat und JJ dem zweistelligen bzw. JJJJ dem vierstelligen Jahr.
Zeitfelder können im Format HH:MM:SS, wobei HH der zweistelligen Stunden, MM den Minuten und SS der Sekunden entspricht, importiert werden. Zeitstempel werden grundsätzlich im Format TT.MM.JJJJ HH:MM:SS importiert, wobei das Datum und die Zeit durch ein Leerzeichen getrennt sind.
Alle Felder können den Wert über das Attribut ' field_function' auch den Wert NULL annehmen. In diesem Fall bedeutet dies, dass das Feld als leer erwünscht wird. Ein numerisches Feld oder auch Textfeld kann den Wert der internen ID des Objektes über dasselbe Attribut annehmen. In diesem Falle wird der Wert des Feldes durch die neue oder bestehende ID des entsprechenden Objektes ersetzt.
Sollte ein Fehler aufgetreten sein, so kann er zwar anhand der Fehlernummer im Rückgabewert bestimmt werden, jedoch ist der exakt aufgetretene Fehler oftmals nicht hinreichend genau beschrieben. Aus diesem Grund erzeugen alle Jobs eine Fehlerliste. Diese kann im Job nach der Ausführung mit GetErrorList() ermittelt werden. In dieser Fehlerliste stehen die genauen Beschreibungen der zuletzt aufgetretenen Fehler. Die zuerst beschriebenen Fehler sind die aussagekräftigsten. Diese Fehlerliste wird auch standardmäßig im Rückgabeparameter 'DMSResult' als XML geliefert. Optional kann dieses XML auch als Rückgabe-Datei zurückgeliefert werden.
Beispiel:
XML-Fehlerliste
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DMSData>
<Messages>
<Message Sourcename="oxjobdms">Das Feld >Tabelle - Spalte2< besitzt
einen Katalog; der Wert >7< konnte jedoch nicht im Katalog
gefunden werden</Message>
<Message Sourcename="oxjobdms">SAX Fehler: Common exception</Message>
<Message Sourcename="oxjobdms">Beim XML Import ist ein Fehler
aufgetreten</Message>
</Messages>
</DMSData>
Ansonsten können alle auf dem Server aufgetretenen Fehler im Rahmen der üblichen Serverprotokollierung eingesehen werden.