Zum Inhalt

Cortex-Cortex-Import

Konzept

Innerhalb Ihrer CortexEngine können Sie Inhalte von Datensätzen sowie das gesamte Datenmodell mit dieser Import-Funktion ändern.

  • Datenquelle und Ziel sind dieselbe CortexEngine Instanz.
  • Die Quelle besteht in der Regel aus einer Listendefinition und den Datensätzen einer Selektion oder eines Datensatztyps.
  • Die Datensätze werden basierend auf der Listenkonfiguration aufbereitet, so können Sie auch berechnete Listeninhalte für die Änderung der Datensätze verwenden.

Für diese Import-Funktion dient eine Listendefinition als Grundlage, damit sind die globalen Einstellungen und die ImportSection identisch mit denen des CSV-Imports. Der Abschnitt für die Einstellungen des ReaderModule muss angepasst werden, weisen Sie ihm den Typ ctx zu.

Konfiguration

Dieser Konfigurationsblock enthält die Angaben für die Listendefinitionen (ListDef) und den Datensatztyp oder die Selektion.

Wenn alle Datensätze eines Datensatztyps geändert werden sollen, müssen Sie die Angabe für den Datensatztyp setzen.

Einstellung ReaderModule und Angabe Datensatztyp
<ReaderModule type="ctx">
  <ListDef>[.......]</ListDef>
  <Recordtype>[....]</Recordtype>
</ReaderModule>

Um nur die Datensätze einer zuvor gespeicherten Selektion zu ändern, geben Sie den Selektionsnamen an.

Einstellung ReaderModule und Angabe Selektionsname
<ReaderModule type="ctx">
  <ListDef>[.......]</ListDef>
  <Selektion>[....]</Selektion>
</ReaderModule>

Eine Aktualisierung der Datensätze kann nur 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 in der Konfiguration als \#IId angegeben.

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>
    <ImportMode>u</ImportMode>
  </Global>
  <ReaderModule type="ctx">
    <ListDef>Personenliste</ListDef>
    <Recordtype>PERS</Recordtype>
  </ReaderModule>
  <ImportSection recordtype="PERS">
    <Reference></Reference>
    <IId>getChar('#IId')</IId>
    <Field>perName=getChar('Name')</Field>
    <Field>perVorn=getChar('Vorname')</Field>
    <Field>perAOrt=getChar('Ort')</Field>
    <Field>perSuch=getChar('Vorname')+getChar('Name')</Field>
  </ImportSection>
</CtxImport>

Hinweis

In diesem Beispiel bleibt in der ImportSection die Referenz leer, weil folgende Angabe automatisch als Referenz behandelt wird: <IId>getChar('#IId')</IId>

Sie können in der Listendefinition auch das Systemfeld Datensatz-ID einblenden und im genannten IId-Knoten eintragen: <IId>getChar('Datensatz-ID')</IId>

  • Die zweite Möglichkeit wird unter Umständen schneller abgearbeitet als erste.
  • Die genutzte Liste wird sequentiell je Datensatz abgearbeitet, also ist die Nutzung von berechneten Feldern nur bedingt möglich.
  • Listenübergreifende Berechnungen können daher nicht genutzt werden

Wiederholfelder

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

Import von Wiederholfeldern
<RepGroup start="___WDHL___">
    <Field deltalist=" d">Synonym=getChar('sourceField')</Field>
</RepGroup>

Das start-Attribut muss den Wert ___WDHL___ beinhalten (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 deltalist="d"für das Feld angeben. Dadurch bleiben bei einer Aktualisierung des Datensatzes nur die Feldinhalte bestehen, die als Daten geliefert werden. Inhalte, die nicht in der Quelle vorliegen, werden entfernt.

Hinweise

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

Das Quellfeld (getChar('sourceField')) muss ein Wiederholfeld sein.

  • Der Inhalt dieses Feldes kann per JavaScript überschrieben werden.
  • Wichtig ist der Feldtyp, damit der Implex erkennt, dass ein Wiederholfeld gelesen wird.
  • Ein per JavaScript gesetztes Objekt allein reicht nicht aus.