DMSQuery XML-Format

Das DMSQuery-Format ist das XML-Anfrageformat für Suchanfragen an den enaio®-Server. Es beschreibt welche Archive und Objekttypen durchsucht werden sollen, welche Felder im Ergebnis erscheinen sollen und unter welchen Bedingungen Objekte zurückgeliefert werden.

Die zugehörige Schema-Datei ist DMSQuery.xsd. Das Ergebnis einer DMSQuery-Anfrage wird im DMSContent XML-Format zurückgeliefert.

1. Verwendung

Das DMSQuery-Format wird von folgenden Jobs als Eingabe verwendet:

Job Beschreibung

dms.GetResultList

Primärer Recherche-Job — führt die Anfrage aus und liefert Treffer im DMSContent-Format zurück

dms.GetDeletedObjects

Suche im Papierkorb — Anfrage im DMSQuery-Format

dms.AddStoredQuery

Gespeicherte Suche anlegen — speichert eine DMSQuery auf dem Server

dms.UpdateStoredQuery

Gespeicherte Suche aktualisieren — ersetzt eine vorhandene DMSQuery

dms.GetStoredQuery

Gespeicherte Suche abrufen — liefert die gespeicherte DMSQuery zurück

dms.ConvertQuery

Konvertiert eine DMSQuery in ein anderes Anfrageformat (oder umgekehrt)

dms.ExecuteStoredQuery

Führt eine gespeicherte Suche aus — intern wird die gespeicherte DMSQuery verwendet

2. Anfrage-Typen (requesttype)

Das Attribut requesttype am <DMSQuery>-Element bestimmt die Struktur des zurückgelieferten DMSContent:

Wert Bezeichnung Ergebnis

LOL

Linear Object List

Tabellarische Trefferliste (<Rowset> in DMSContent). Standard und performanteste Option.

HOL

Hierarchical Object List

Hierarchische Objektliste (<ObjectList> in DMSContent) mit vollständigen Felddaten, optional mit BaseParams, Rechten, Kind- und Elternobjekten.

MIX

Mixed

HOL-Daten für das angefragte Objekt kombiniert mit LOL-Daten für Eltern und Kinder.

DTL

Detail (veraltet)

Nicht mehr verwenden — stattdessen MIX einsetzen.

3. Schnellstart — häufige Anfragemuster

3.1. Einfache Feldsuche (LOL)

Alle Dokumente eines Typs suchen, bei denen ein Feld einen bestimmten Wert hat:

<DMSQuery requesttype="LOL" pagesize="20" offset="0">
  <Archive internal_name="patient">
    <ObjectType type="DOCUMENT" internal_name="medical_letter">
      <Fields>
        <Field internal_name="date"/>
        <Field internal_name="subject"/>
        <Field internal_name="physician"/>
      </Fields>
      <Conditions>
        <ConditionObject type="DOCUMENT" internal_name="medical_letter">
          <FieldCondition internal_name="physician" operator="=">
            <Value>Dr. Müller</Value>
          </FieldCondition>
        </ConditionObject>
      </Conditions>
    </ObjectType>
  </Archive>
</DMSQuery>

3.2. Vollständige HOL-Anfrage mit Basisparametern

<DMSQuery requesttype="HOL" baseparams="1" pagesize="10" offset="0">
  <Archive internal_name="patient">
    <ObjectType type="DOCUMENT" internal_name="medical_letter">
      <Fields field_schema="ALL"/>
      <Conditions>
        <ConditionObject type="DOCUMENT" internal_name="medical_letter">
          <FieldCondition internal_name="date" operator="BETWEEN">
            <Value>2024-01-01</Value>
            <Value>2024-12-31</Value>
          </FieldCondition>
        </ConditionObject>
      </Conditions>
    </ObjectType>
  </Archive>
</DMSQuery>

4. XML-Struktur (Übersicht)

<DMSQuery requesttype="LOL|HOL|MIX"
          pagesize="20" offset="0" maxhits="-1"
          baseparams="0" variants="0" rights="0"
          combined="0" sql="0" icons="0"
          disablesearchgroups="1" narrowsearch="0"
          status="0" fileinfo="0" object_inserts="0"
          registercontext="0" outputformat="0">

  <!-- Optionale Parameterdefintionen für parametrisierte Anfragen -->
  <Params>
    <Param name="myParam"><Value>Suchbegriff</Value></Params>
  </Params>

  <!-- Ein oder mehrere Archive -->
  <Archive internal_name="archive1">

    <!-- Objekttyp-Anfrage -->
    <ObjectType type="DOCUMENT" internal_name="invoice" alias="Rechnung">
      <Fields field_schema="DEF">
        <Field internal_name="date" sortpos="1" sortorder="DESC"/>
        <Field internal_name="amount"/>
      </Fields>
      <Conditions>
        <ConditionObject type="DOCUMENT" internal_name="invoice">
          <FieldCondition internal_name="status" operator="=" bool_op="AND">
            <Value>approved</Value>
          </FieldCondition>
          <FieldCondition internal_name="amount" operator=">=" bool_op="AND">
            <Value>1000</Value>
          </FieldCondition>
        </ConditionObject>
      </Conditions>
      <!-- HOL: Kinderobjekte anfragen -->
      <ChildObjects child_schema="DEF" export_depth="1">
        <ChildObjectType type="REGISTER" internal_name="invoice_items">
          <Fields field_schema="ALL"/>
        </ChildObjectType>
      </ChildObjects>
      <!-- HOL: Pfad zu Elternobjekten anfragen -->
      <ParentObjects parent_schema="DEF">
        <SubObjectType type="FOLDER" internal_name="company"/>
      </ParentObjects>
      <!-- Verknüpfte Objekte aus anderem Archiv -->
      <ExternalObjects>
        <ExternalArchive internal_name="contacts">
          <ExternalObjectType internal_name="contact_person">
            <Fields field_schema="MIN"/>
          </ExternalObjectType>
        </ExternalArchive>
      </ExternalObjects>
    </ObjectType>

    <!-- Suche über Basisparameter (Ordner) -->
    <FolderBaseParams>
      <Creator><Value>admin</Value></Creator>
      <Created><From>2024-01-01</From><To>2024-12-31</To></Created>
    </FolderBaseParams>

    <!-- Volltextsuche -->
    <FulltextQuery>
      <Fulltext MODE="PATTERN">
        <Value>Entlassungsbrief</Value>
      </Fulltext>
    </FulltextQuery>

  </Archive>
</DMSQuery>

5. Elemente und Attribute

5.1. <DMSQuery> (Wurzelelement)

5.1.1. Ergebnis-Steuerung

Attribut Typ Standard Beschreibung

requesttype

requesttypes

LOL

Anfragetyp: LOL, HOL, MIX oder DTL (veraltet)

pagesize

xs:long

0

Maximale Trefferanzahl pro Antwort (0 = alle)

offset

xs:long

0

0-basierter Startindex für Seitenblättern

maxhits

xs:long

-1

Absolutes Trefferlimit (-1 = kein Limit)

baseparams

xs:short

0

1 = Basisparameter (Ersteller, Datum, Archivstatus …) zurückliefern

variants

xs:short

0

1 = Dokumentvarianten-Informationen zurückliefern (nur HOL)

combined

xs:short

0

1 = Informationen zu kombinierten Dokumenten zurückliefern (nur HOL)

rights

xs:short

0

1 = Zugriffsrechte je Objektinstanz zurückliefern

fileinfo

xs:short

0

1 = Dateiinformationen (MIME-Typ, Größe, Seitenanzahl) zurückliefern

object_inserts

xs:short

0

1 = Erlaubte Kinderobjekt-Typen und -Anzahlen zurückliefern

icons

xs:short

0

1 = Icon-ID je Objekt zurückliefern

sql

xs:short

0

1 = Ausgeführtes SQL-Statement in Ergebnisdokument schreiben (nur LOL)

5.1.2. Suchverhalten

Attribut Typ Standard Beschreibung

disablesearchgroups

xs:short

1

1 = Suchgruppen deaktivieren; 0 = Suchgruppen des Benutzers anwenden

narrowsearch

xs:short

0

0 (broad) = Bei Registerklauseln werden auch Objekte direkt unterhalb der Ordnerebene zurückgeliefert.
1 (narrow) = Nur Objekte in den explizit angegebenen Registern.

registercontext

xs:short

0

0 = Registerklauseln werden bei HOL ignoriert; nur Objekte in Registern werden angefragt

status

xs:short

0

Statusfilter für Objekte (reserviert)

outputformat

xs:short

Numerischer Ausgabeformatcode (ergänzend zu requesttype)

5.2. <Params> / <Param>

Optionale Parameterdefinitionen für parametrisierte Anfragen. Parameter ermöglichen es, eine DMSQuery-Vorlage zu speichern und zur Laufzeit mit Werten zu befüllen (z. B. für gespeicherte Suchen via dms.ExecuteStoredQuery).

Das name-Attribut auf <Param> ist im XSD nicht formal definiert, aber in der Praxis erforderlich, da <FieldCondition> über <ParamValue ref="name"> darauf verweist.

Jedes <Param> enthält genau einen der folgenden Wert-Typen:

Kindelement Bedeutung

<Value>Wert</Value>

Fester Standardwert

<NULL/>

Parameter ist leer (NULL)

<LinkedValue ref="link_name"/>

Wert wird zur Laufzeit aus dem Feld mit dem angegebenen link_name übernommen

<DMSQuery requesttype="LOL">
  <Params>
    <Param name="arzt"><Value>Dr. Müller</Value></Param>
    <Param name="datumVon"><Value>2024-01-01</Value></Param>
    <Param name="datumBis"><Value>2024-12-31</Value></Param>
  </Params>
  <Archive internal_name="patient">
    <ObjectType type="DOCUMENT" internal_name="medical_letter">
      <Fields><Field internal_name="subject"/></Fields>
      <Conditions>
        <ConditionObject type="DOCUMENT" internal_name="medical_letter">
          <FieldCondition internal_name="physician" operator="=">
            <ParamValue ref="arzt"/>
          </FieldCondition>
          <FieldCondition internal_name="date" operator="BETWEEN">
            <ParamValue ref="datumVon"/>
            <ParamValue ref="datumBis"/>
          </FieldCondition>
        </ConditionObject>
      </Conditions>
    </ObjectType>
  </Archive>
</DMSQuery>

5.3. <Archive>

Bestimmt das zu durchsuchende Archiv. Mindestens eines der Attribute id, name, internal_name oder osguid muss angegeben werden. Mehrere <Archive>-Elemente sind erlaubt (archivübergreifende Suche).

internal_name ist nur bei archivübergreifenden Abfragen (mehrere <Archive>-Elemente) erforderlich — vorausgesetzt, auch die enthaltenen <ObjectType>-Elemente verwenden internal_name. Bei Einzelarchiv-Anfragen kann das Attribut entfallen.
Attribut Typ Standard Beschreibung

id

xs:long

0

Numerische Archiv-ID

name

xs:string

Anzeigename

internal_name

xs:string

Interner Name (empfohlen)

osguid

xs:string

GUID

Kindelemente (beliebige Kombination, mehrfach erlaubt):

  • <ObjectType> — typisierte Objektsuche

  • <FolderBaseParams> — Ordnersuche über Basisparameter

  • <RegisterBaseParams> — Registersuche über Basisparameter

  • <DocumentBaseParams> — Dokumentsuche über Basisparameter

  • <FulltextQuery> — Volltextsuche

5.4. <ObjectType>

Definiert den gesuchten Objekttyp sowie die gewünschten Ausgabefelder und Suchbedingungen.

Attribut Typ Standard Beschreibung

type

objecttypes

FOLDER, REGISTER oder DOCUMENT (zur Disambiguierung bei gleichem Namen empfohlen)

id

xs:long

0

Numerische ID des Objekttyps

name

xs:string

Anzeigename

internal_name

xs:string

Interner Name (empfohlen)

osguid

xs:string

GUID

table

xs:string

Datenbanktabellenname

alias

xs:string

Aliasname, der in der Trefferliste erscheint (schnellerer Zugriff bei mehreren Objekttypen)

Kindelemente:

Element Zweck

<Fields> (optional)

Welche Felder im Ergebnis erscheinen sollen

<Conditions> (optional)

Filterbedingungen — welche Objekte zurückgeliefert werden

<ChildObjects> (optional, nur HOL)

Kinderobjekte, die hierarchisch mitgeliefert werden sollen

<ParentObjects> (optional, nur HOL)

Elternpfad (Ordner/Register), der mitgeliefert werden soll

<ExternalObjects> (optional)

Verknüpfte Objekte aus anderen Archiven

5.5. <Fields> / <Field>

<Fields> listet die Felder, die im Ergebnis zurückgegeben werden sollen.

Attribut auf <Fields> Typ Standard Beschreibung

field_schema

field_schema

DEF

Vorauswahl der zurückzugebenden Felder (überschreibbar durch einzelne <Field>-Elemente)

Das Attribut field_schema auf <Fields> steuert, welche Felder standardmäßig einbezogen werden — einzelne <Field>-Elemente ergänzen oder überschreiben diese Auswahl.

Attribut auf <Field> Typ Standard Beschreibung

name

xs:string

Anzeigename des Felds

internal_name

xs:string

Interner Name (empfohlen)

dbname

xs:string

Datenbankspaltname

osguid

xs:string

GUID

system

xs:short

0

1 = Systemfeld (z. B. OBJECT_ID, folder_id)

sortpos

xs:long

0

Sortierposition im Ergebnis (0 = keine Sortierung, 1 = primäres Sortierfeld, …)

sortorder

xs:string

Sortierrichtung: ASC (aufsteigend) oder DESC (absteigend)

link_name

xs:string

Aliasname für den Feldwert — ermöglicht Nutzung als Bedingungswert in <ExternalObjectType> via <LinkedValue ref="link_name">

Systemfelder für Positionsinformationen (nur in Relation-Tabellen): folder_id, register_id, register_type.

5.6. <Conditions> / <ConditionObject>

<Conditions> enthält entweder eine Liste von <ConditionObject>-Elementen oder eine Liste von <ObjectID>-Elementen (direkter Abruf nach ID).

5.6.1. Variante 1 — Feldbasierte Bedingungen (<ConditionObject>)

Jedes <ConditionObject> trägt dieselben Identifikationsattribute wie <ObjectType> und enthält beliebig viele Bedingungselemente:

Multiple <ConditionObject>-Elemente werden mit AND verknüpft.

5.6.2. Variante 2 — Direktabruf nach ID (<ObjectID>)

<Conditions>
  <ObjectID>9823</ObjectID>
  <ObjectID>9824</ObjectID>
</Conditions>

5.7. <FieldCondition>

Die zentrale Bedingung für ein Indexfeld.

Attribut Typ Standard Beschreibung

internal_name

xs:string

Interner Feldname (empfohlen)

dbname

xs:string

Datenbankspaltname

name

xs:string

Anzeigename

system

xs:short

0

1 = Systemfeld

operator

ComparisonOperators

=

Vergleichsoperator

bool_op

BooleanOperators

AND

Verknüpfung mit der vorigen Bedingung: AND oder OR

Als Kindelement (Wert der Bedingung) ist genau einer der folgenden Typen anzugeben — bei BETWEEN, IN und NOT IN sind zwei bzw. mehrere <Value>-Elemente erforderlich:

Kindelement Bedeutung

<Value>text</Value>

Literaler Vergleichswert

<Value special="1">#BENUTZER#</Value>

Platzhalterwert (vgl. Platzhalter)

<ParamValue ref="paramname"/>

Verweis auf einen deklarierten <Param>-Parameter

<LinkedValue ref="link_name"/>

Verweis auf den Feldwert eines Felds im Hauptobjekt (für <ExternalObjectType>)

<NULL/>

Prüfung auf NULL (kein Wert)

<SpecialValue>text</SpecialValue>

Interner Spezialwert

<!-- Gleichheit -->
<FieldCondition internal_name="status" operator="="><Value>approved</Value></FieldCondition>

<!-- Datumsbereich -->
<FieldCondition internal_name="date" operator="BETWEEN">
  <Value>2024-01-01</Value>
  <Value>2024-12-31</Value>
</FieldCondition>

<!-- Liste von Werten -->
<FieldCondition internal_name="category" operator="IN">
  <Value>A</Value>
  <Value>B</Value>
  <Value>C</Value>
</FieldCondition>

<!-- NULL-Prüfung -->
<FieldCondition internal_name="archived_by" operator="="><NULL/></FieldCondition>

<!-- Aktuell angemeldeter Benutzer -->
<FieldCondition internal_name="owner" operator="=">
  <Value special="1">#BENUTZER#</Value>
</FieldCondition>

<!-- OR-Verknüpfung mit voriger Bedingung -->
<FieldCondition internal_name="type" operator="=" bool_op="OR"><Value>letter</Value></FieldCondition>

5.8. <FieldGroup>

Gruppiert mehrere Bedingungen zu einer logischen Einheit. Ermöglicht verschachtelte AND/OR-Ausdrücke.

Attribut Typ Pflicht Beschreibung

operator

BooleanOperators

Ja

AND oder OR — verbindet alle Elemente innerhalb der Gruppe

Kindelemente: <FieldCondition>, <TableCondition>, Datumsbedingungen, <FieldGroup> (rekursiv).

<!-- (status = "open" OR status = "pending") AND amount >= 500 -->
<ConditionObject type="DOCUMENT" internal_name="invoice">
  <FieldGroup operator="OR">
    <FieldCondition internal_name="status" operator="="><Value>open</Value></FieldCondition>
    <FieldCondition internal_name="status" operator="="><Value>pending</Value></FieldCondition>
  </FieldGroup>
  <FieldCondition internal_name="amount" operator=">=" bool_op="AND">
    <Value>500</Value>
  </FieldCondition>
</ConditionObject>

5.9. <TableCondition>

Bedingung für ein Tabellenfeld (Grid-Control). Jede <TableColumn> entspricht einer Spalte des Tabellenfelds und trägt dieselben Attribute und Kindelemente wie <FieldCondition>.

Attribut Typ Standard Beschreibung

name / internal_name / dbname

xs:string

Identifikation des Tabellenfelds

row

xs:long

0

Zeilennummer (0 = beliebige Zeile)

<!-- Suche nach Rechnungen, die eine Position mit Betrag > 1000 enthalten -->
<TableCondition internal_name="positions">
  <TableColumn internal_name="pos_amount" operator=">">
    <Value>1000</Value>
  </TableColumn>
</TableCondition>

5.10. <ChildObjects>

Nur für HOL-Anfragen. Bestimmt, welche Kinderobjekte hierarchisch mitgeliefert werden.

Attribut Typ Standard Beschreibung

child_schema

object_schema

DEF

DEF = nur explizit aufgelistete Typen; ALL = alle Objekttypen des Archivs

export_depth

xs:short

0

Tiefe der Hierarchie (0 = eine Ebene, 1 = zwei Ebenen, …)

field_schema

field_schema

Standard-Feldauswahl für alle Kinder

Kindelemente: <ChildObjectType> (je ein Element pro anzufragendem Kindtyp) oder <SubObjectType>.

<ChildObjectType> trägt dieselben Identifikationsattribute wie <ObjectType> plus: - alias — Aliasname für die Trefferliste - <Fields> — gewünschte Felder - <SubConditions> — zusätzliche Filterbedingungen für die Kinderobjekte (nur HOL) - <ExternalObjects> — verknüpfte Fremdarchiv-Objekte der Kinder

5.11. <ParentObjects>

Nur für HOL-Anfragen. Liefert den Pfad zu übergeordneten Objekten (Ordner, Register) mit.

Attribut Typ Standard Beschreibung

parent_schema

object_schema

DEF

Welche Elterntypen zurückgeliefert werden

field_schema

field_schema

Standard-Feldauswahl für Elternobjekte

Kindelemente: - <ParentObjectType>+ — explizite Elterntypen - <SubObjectType> — das eigentliche Zielobjekt im Pfad

5.12. <ExternalObjects>

Verknüpfte Objekte aus anderen Archiven — ermöglicht archivübergreifende Joins. Jedes <ExternalArchive> identifiziert ein Fremdarchiv (via archive_ident-Attribute) und enthält optional ein <ExternalObjectType>-Element, das den fremden Objekttyp und seine Felder/Bedingungen definiert.

Feldwerte des Hauptobjekts können als Bedingungswerte verwendet werden:

  1. Im Hauptobjekt das <Field>-Element mit link_name="meinAlias" versehen.

  2. Im <ExternalObjectType> die Bedingung mit <LinkedValue ref="meinAlias"/> formulieren.

<ObjectType type="DOCUMENT" internal_name="invoice">
  <Fields>
    <Field internal_name="customer_id" link_name="cust_ref"/>
  </Fields>
  <ExternalObjects>
    <ExternalArchive internal_name="contacts">
      <ExternalObjectType internal_name="company">
        <Fields>
          <Field internal_name="company_name"/>
        </Fields>
        <SubConditions>
          <FieldCondition internal_name="id" operator="=">
            <LinkedValue ref="cust_ref"/>
          </FieldCondition>
        </SubConditions>
      </ExternalObjectType>
    </ExternalArchive>
  </ExternalObjects>
</ObjectType>

5.13. Basisparameter-Suche

Suche nach Basisparametern (Metadaten) ermöglicht die Filterung ohne Kenntnis der Indexfelder.

5.13.1. <FolderBaseParams> / <RegisterBaseParams>

Suche nach Ordnern oder Registern anhand von Metadaten. Enthält die Kindelemente:

Element Beschreibung

<Creator><Value>name</Value></Creator>

Erstellt von (bis zu 2 Werte; implizit OR-verknüpft)

<Created><From>datum</From><To>datum</To></Created>

Erstelldatum-Bereich

<Modifier><Value>name</Value>…</Modifier>

Zuletzt geändert von

<Modified><From>datum</From><To>datum</To></Modified>

Änderungsdatum-Bereich

<Owner operator="=" bool_op="OR"><Value>name</Value>…</Owner>

Besitzer (immer OR-verknüpft)

<ChildObjects>…</ChildObjects>

Kinderobjekte der gefundenen Elternobjekte anfragen (HOL)

5.13.2. <DocumentBaseParams>

Wie <FolderBaseParams>, zusätzlich:

Element Beschreibung

<ArchiveState><ArchiveStateValue>ARCHIVED</ArchiveStateValue></ArchiveState>

Filter nach Archivierungsstatus (ein oder mehrere Werte; implizit OR)

<Locked><LockStateValue>UNLOCKED</LockStateValue></Locked>

Filter nach Checkout-Status

5.14. <FulltextQuery>

Volltextsuche über alle Dokumente des Archivs.

<FulltextQuery>
  <Fulltext MODE="PATTERN">
    <Value>Entlassung* AND Müller</Value>
  </Fulltext>
</FulltextQuery>

Optionale Steuerattribute (für die RetrievalWare-Volltext-Engine):

Attribut Typ Standard Beschreibung

MODE

FullTextSearchModeType

PATTERN

Suchmodus

EXPANSION_LEVEL_PROPERTY

xs:short

4

Expansionsstufe für Synonyme

FUZZY_SPELL_HALF_WORDS

xs:boolean

false

Fuzzy-Suche für halbe Wörter

FUZZY_SPELL_THRESHOLD

xs:short

0

Schwellwert für Fuzzy-Rechtschreibkorrektur

MAX_FUZZY_SPELL_PROPERTY

xs:short

15

Maximale Fuzzy-Alternativen

MAX_REG_EXPR_PROPERTY

xs:short

4

Maximale Regex-Expansionen

WORD_EXPANSION_LIMIT_PROPERTY

xs:short

20

Limit für Worterweiterungen

6. Aufzählungstypen

6.1. requesttypes

Wert Ergebnis-Format Beschreibung

LOL

DMSContent <Rowset>

Linear Object List — tabellarisches Format

HOL

DMSContent <ObjectList>

Hierarchical Object List — vollständige Objektdaten

MIX

DMSContent <ObjectList>

Mixed — HOL-Daten + optionale LOL-Daten für Eltern/Kinder

DTL

Veraltet — stattdessen MIX verwenden

6.2. field_schema

Wert Beschreibung

DEF

Standard-Felder gemäß Objekttyp-Konfiguration

ALL

Alle Felder des Objekttyps

ALLREL

Alle Felder inklusive relationaler (verknüpfter) Felder

MIN

Minimaler Feldsatz (nur ID und Pflichtfelder)

6.3. object_schema

Wert Beschreibung

DEF

Nur explizit aufgelistete Typen

ALL

Alle Objekttypen des Archivs

REGISTER

Nur Registertypen

DOCUMENTS

Nur Dokumenttypen

6.4. objecttypes

Wert Bedeutung

FOLDER

Ordner

REGISTER

Register

DOCUMENT

Dokument

6.5. ComparisonOperators

Operator Bedeutung

=

Gleich

<> / !=

Ungleich

<

Kleiner als

<=

Kleiner oder gleich

>

Größer als

>=

Größer oder gleich

IN

Wert ist in einer Liste — mehrere <Value>-Elemente angeben

NOT IN

Wert ist nicht in einer Liste

BETWEEN

Wert liegt zwischen zwei Grenzen — genau zwei <Value>-Elemente angeben

NOT BETWEEN

Wert liegt nicht zwischen zwei Grenzen

6.6. BooleanOperators

Wert Bedeutung

AND

Verknüpfung mit UND (Standard)

OR

Verknüpfung mit ODER

6.7. FullTextSearchModeType

Wert Bedeutung

PATTERN

Mustererkennung mit Wildcards (*, ?)

BOOLEAN

Boolesche Ausdrücke (AND, OR, NOT)

CONCEPT

Konzeptuelle Suche (semantische Ähnlichkeit)

6.8. Platzhalter (special="1")

Spezialwerte werden in <Value special="1"> eingesetzt und zur Laufzeit durch den Server aufgelöst:

Platzhalter Aufgelöster Wert

BENUTZER

Anmeldename des aktuellen Benutzers

BESITZER

Besitzer des aktuellen Benutzers

DATUM

Aktuelles Datum

ANLEGER

Ersteller (Anmeldename)

ANLEGEDATUM

Erstelldatum

ARCHIVAR

Archivar (Anmeldename)

ARCHIVIERUNGSDATUM

Archivierungsdatum

COMPUTER-NAME

Rechnername des Clients

COMPUTER-IP

IP-Adresse des Clients

COMPUTER-GUID

GUID des Clients

7. Vollständige Beispiele

7.1. Mehrstufige Suche mit FieldGroup (OR/AND-Kombination)

Dokumente suchen, die (offen ODER ausstehend) UND Betrag ≥ 500 sind:

<DMSQuery requesttype="LOL" pagesize="50" offset="0" baseparams="0">
  <Archive internal_name="accounting">
    <ObjectType type="DOCUMENT" internal_name="invoice">
      <Fields>
        <Field internal_name="invoice_number" sortpos="1" sortorder="DESC"/>
        <Field internal_name="date"/>
        <Field internal_name="status"/>
        <Field internal_name="amount"/>
      </Fields>
      <Conditions>
        <ConditionObject type="DOCUMENT" internal_name="invoice">
          <FieldGroup operator="OR">
            <FieldCondition internal_name="status" operator="=">
              <Value>open</Value>
            </FieldCondition>
            <FieldCondition internal_name="status" operator="=">
              <Value>pending</Value>
            </FieldCondition>
          </FieldGroup>
          <FieldCondition internal_name="amount" operator=">=" bool_op="AND">
            <Value>500</Value>
          </FieldCondition>
        </ConditionObject>
      </Conditions>
    </ObjectType>
  </Archive>
</DMSQuery>

7.2. HOL-Anfrage mit BaseParams und Zugriffsrechten

Alle Dokumente des aktuellen Benutzers aus dem Jahr 2024, mit Basisparametern und Rechten:

<DMSQuery requesttype="HOL" baseparams="1" rights="1" pagesize="20" offset="0">
  <Archive internal_name="patient">
    <ObjectType type="DOCUMENT" internal_name="medical_letter">
      <Fields field_schema="ALL"/>
      <Conditions>
        <ConditionObject type="DOCUMENT" internal_name="medical_letter">
          <FieldCondition internal_name="date" operator="BETWEEN">
            <Value>2024-01-01</Value>
            <Value>2024-12-31</Value>
          </FieldCondition>
        </ConditionObject>
      </Conditions>
    </ObjectType>
    <DocumentBaseParams>
      <Owner operator="=">
        <Value special="1">#BENUTZER#</Value>
      </Owner>
      <ArchiveState>
        <ArchiveStateValue>ARCHIVED</ArchiveStateValue>
        <ArchiveStateValue>ARCHIVABLE</ArchiveStateValue>
      </ArchiveState>
    </DocumentBaseParams>
  </Archive>
</DMSQuery>

7.3. Suche über Tabellenfeld

Rechnungen mit einer Position über 1.000 €, sortiert nach Rechnungsnummer:

<DMSQuery requesttype="LOL" pagesize="20" offset="0">
  <Archive internal_name="accounting">
    <ObjectType type="DOCUMENT" internal_name="invoice">
      <Fields>
        <Field internal_name="invoice_number" sortpos="1" sortorder="ASC"/>
        <Field internal_name="date"/>
      </Fields>
      <Conditions>
        <ConditionObject type="DOCUMENT" internal_name="invoice">
          <TableCondition internal_name="positions">
            <TableColumn internal_name="pos_amount" operator=">">
              <Value>1000</Value>
            </TableColumn>
          </TableCondition>
        </ConditionObject>
      </Conditions>
    </ObjectType>
  </Archive>
</DMSQuery>

7.4. Volltextsuche mit Kinderobjekten (HOL)

Volltextsuche im Archiv und hierarchische Rückgabe mit Unterregistern:

<DMSQuery requesttype="HOL" baseparams="0" pagesize="10" offset="0">
  <Archive internal_name="patient">
    <FulltextQuery>
      <ChildObjects child_schema="DEF">
        <ChildObjectType type="DOCUMENT" internal_name="medical_letter">
          <Fields field_schema="DEF"/>
        </ChildObjectType>
      </ChildObjects>
      <Fulltext MODE="PATTERN">
        <Value>Entlassungsbrief*</Value>
      </Fulltext>
    </FulltextQuery>
  </Archive>
</DMSQuery>