Logo.CortexAG

Anmelden +

CortexDB zu CortexDB

Innerhalb Ihrer Datenbank können Sie Inhalte von Datensätzen und auch das komplette Datenmodell mit Hilfe dieser Import-Funktion ändern. Bei der Daten-Quelle und dem Ziel handelt es sich somit um dieselbe Datenbank. Generell setzt sich dafür die Quelle aus einer Listendefinitionen und den Datensätzen einer Selektion oder eines Datensatztyps zusammen. Die Datensätze werden dann auf Basis der Listenkonfiguration aufbereitet. Dadurch können Sie auch berechnete Listeninhalte für die Änderung der Datensätze nutzen.

Dadurch, dass für diese Import-Funktion eine Listendefinition als Grundlage herangezogen wird, sind die globalen Einstellungen und die "ImportSection“ identisch mit dem csv-Import. Nur der Bereich für die Einstellungen des "ReaderModul“ ist entsprechend anzupassen. Dem "ReaderModul“ ist der Typ "ctx“ zuzuweisen. Dieser Konfigurationsblock enthält dann die Angaben für die Listendefinitionen ("ListDef“) und den Datensatztypen oder Selektion.

Wenn alle Datensätze eines Datensatztyps geändert werden sollen, ist die Angabe für den Datensatztyp zu setzen:

<ReaderModul typ="ctx">
  <ListDef>[.......]</ListDef>
  <Datensatztyp>[....]</Datensatztyp>
</ReaderModul>

Sollen nur die Datensätze einer zuvor gespeicherten Selektion geändert werden, ist die Angabe für den Selektionsnamen zu setzen:

<ReaderModul typ="ctx">
  <ListDef>[.......]</ListDef>
  <Selektion>[....]</Selektion>
</ReaderModul>

Beachten Sie, dass eine Aktualisierung der Datensätze anhand der Datensatz-ID durchgeführt werden kann. Damit entfällt die Angabe einer Referenz, weil ein Datensatz bereits eindeutig gefunden wird. Das Quellfeld für die ID wird daher in der Konfiguration als "#IId“ angegeben.

Das nachfolgende Beispiel zeigt die Aktualisierung aller Datensätze einer Satzart anhand der Datensatz-ID und einer erstellten Liste:

<?xml version="1.0" encoding="UTF-8"?>
<CtxImport>
  <Global>
    <LoginIP>127.0.0.1</LoginIP>
    <LoginPort>29001</LoginPort>
    <LoginUser>admin</LoginUser>
    <LoginPW>adm#13qzy2!</LoginPW>
    <ImportModus>u</ImportModus>
  </Global>
  <ReaderModul typ="ctx">
    <ListDef>Personenliste</ListDef>
    <Datensatztyp>PERS</Datensatztyp>
  </ReaderModul>
  <ImportSection datensatztyp="PERS">
    <Referenz></Referenz>
    <IId>getChar('#IId')</IId>
    <Feld>perName=getChar('Name')</Feld>
    <Feld>perVorn=getChar('Vorname')</Feld>
    <Feld>perAOrt=getChar('Ort')</Feld>
    <Feld>perSuch=getChar('Vorname')+getChar('Name')</Feld>
  </ImportSection>
</CtxImport>

 

Hinweise:

Beachten Sie, dass in diesem Beispiel in der "ImportSection“ die Referenz leer bleibt, weil folgende Angabe automatisch als Referenz behandelt wird:

<IId>getChar('#IId')</IId>

Alternativ können Sie in der Listendefinition auch das Systemfeld "Datensatz-ID" einblenden und dieses in dem genannten IId-Knoten eintragen:

<IId>getChar('Datensatz-ID')</IId>

Hier ist zu beachten, dass die zweite Möglichkeit ggf. schneller abgearbeitet wird, als die zuerst genannte.
 

Beachten Sie ferner, dass die genutzte Liste sequentiell je Datensatz abgearbeitet wird. Die Nutzung von berechneten Feldern ist also nur bedingt möglich. Listen-übergreifende Berechnungen können daher nicht genutzt werden.

 

Wiederholfelder

Wiederholfelder können ab der Implex-Version 2.0.10 geschrieben und geändert werden. Um die eingesetzte Version festzustellen verwenden Sie folgenden Implex-Aufruf:

java -jar Implex.jar --version

 

Die allgemeine Form für den Import eines Wiederholfeldes aus einer Listendefinition besteht aus dem Knoten "WiederholGruppe" mit einem start-Attribut und beinhaltet dann eine Feld-Angabe:

<WiederholGruppe start="___WDHL___">
<Feld deltaliste="d">Synonym=getChar('soureField')</Feld>
</WiederholGruppe>

Hier ist zu beachten, dass das start-Attribut den Wert "___WDHL___" beinhaltet (drei Unterstriche vor und hinter WDHL). Dadurch wird festgelegt, dass der Inhalt des Knotens als Wiederholfeld zu behandelt ist.

Ergänzend dazu können Sie das Attribut deltaliste="d" für das Feld angeben. Damit bleiben bei einer Aktualisierung des Datensatzes nur die Feldinhalte bestehen, die als Daten geliefert werden. Die Inhalte, die nicht in der Quelle vorliegen, werden entfernt.

 

Hinweise:

Beachten Sie hierbei, dass die Auswirkungen der einzelnen Parameter bei Wiederholfeld-Gruppen unerwartete Auswirkungen haben kann. Eine Aktualisierung von Gruppen wird daher nicht empfohlen.

Weiterhin ist zu beachten, dass das Quellfeld (also: getChar('sourceField')...) ein "echtes" Datenbank-Wiederhofeld sein muss. Der Inhalt dieses Feldes kann per JavaScript überschrieben werden; relevant ist hierbei der Typ des Feldes, damit der ImPlex feststellen kann, dass ein Wiederholfeld gelesen wird. Ein per JavaScript gesetztes Objekt reicht an dieser Stelle nicht aus.

 

 Hinweise zur Online-Hilfe
 

© 2017 Cortex AG
(letzte Aktualisierung: 12.04.2017)

 Haftungsausschluss 

Impressum    AGB