Skip to main content
Skip table of contents

Parallel Process Starter

Dieser Adapter führt einen X4 -Prozess in einem beliebigen Benutzerordner in <X4>/X4DB beliebig oft parallel aus und ermöglicht es, die Ergebnisse anschließend wieder zu synchronisieren. Der Adapter erwartet ein Input-XML-Dokument mit zu verarbeitenden Daten, jeweils abgelegt innerhalb von beliebig benannten Kindelementen unterhalb des Wurzel-Elements. Der Adapter gibt je nach Konfiguration ein XML-Dokument oder eine Base64-kodierte Zeichenkette aus.

Mit dem Parallel Process Starter können Sie über dynamische Parameter den Prozessnamen (und -pfad) zur Laufzeit setzen. Außerdem besitzt jeder über den Parallel Process Starter gestartete X4-Prozess eine eigene Prozessinstanz-ID, wird in einem separaten Thread ausgeführt und er kann daher nicht auf Variablen des aufrufenden Prozesses zugreifen.

Eigenschaften (Properties)

Operation

Bestimmt, welche Operation der Funktions-Adapter durchführt

Mögliche Werte: Execute: Prozess(e) ausführen

Parameter

Adapter

Hauptklasse des Adapters (nicht verändern!)

Mögliche Werte: de.softproject.integration.adapter.parallelprocessstarter.Adapter: Hauptklasse (Standard)

X4ProcessURL

Pfad zum auszuführenden X4-Prozess

Mögliche Werte: Beliebige gültige x4db:-URL zum X4-Prozess im X4 Repository (z. B. x4db:/1/Project/Folder/Process.wrf)

MaxThread

Anzahl der Threads, die genutzt werden sollen

Mögliche Werte:

  • Beliebige positive ganze Zahl (z.B. 3)
  • 0 oder negative ganze Zahl: parallele Ausführung nicht beschränken (z.B. -1)
InputIsBase64

Gibt das Datenformat für den Adapter-Input an

Mögliche Werte:

    • True: Der Inhalt jedes Elements ist eine Base64-kodierte Zeichenkette, die dekodiert als Input an den Kind-Prozess weitergegeben wird.
    • False: Der XML-Elementinhalt wird direkt an den Kind-Prozess weitergegeben.
expandOutput

Steuert das Ausgabeformat des Adapters

Mögliche Werte:

    • True: Das Ergebnis wird komplett als XML-Dokument ausgegeben.
    • False: Das Ergebnis wird als Base64-kodierte Zeichenkette ausgegeben.

Statuswerte

1Die Operation wurde erfolgreich ausgeführt.
0

Die Operation wurde erfolgreich ausgeführt, jedoch ohne Ergebnis.

-1Die Operation ist aufgrund eines technischen Fehlers fehlgeschlagen.

Input

Im Input-XML-Dokument kann ein beliebig benanntes Wurzel-Element beliebig viele Kind-Elemente enthalten. Für jedes Kind-Element wird ein X4-Prozess aufgerufen und der Elementknoten als Input übergeben.

Beispiel-Input

XML
<SomeRootElement>
  <SomeInputElement/>
  <SomeInputElement>with some content</SomeInputElement>
  <SomeInputElement someAttribute="someValue">more content</SomeInputElement>
</SomeRootElement>

Mit dem Parameter  InputlsBase64:False  wird das oben genannte Beispiel wie folgt ausgeführt:

Prozessaufruf 1

XML
<SomeInputElement/>

Prozessaufruf 2

XML
<SomeInputElement>with some content</SomeInputElement>

Prozessaufruf 3

XML
<SomeInputElement someAttribute="someValue">more content</SomeInputElement>

Output

Das Ergebnis der Prozess-Ausführung könnte im obigen Beispiel wie folgt aufgebaut sein:

Output

XML
 <Results>
  	<Result childProcessStatus="1" childProcessPid="4711" encoding="UTF-8" content-type="text/plain">...some base64 string...</Result>
  	<Result childProcessStatus="1" childProcessPid="4712" encoding="UTF-8" content-type="text/plain">...some base64 string...</Result>
  	<Result someAttribute="someValue" childProcessStatus="1" childProcessPid="4713" encoding="UTF-8" content-type="text/plain">...some base64 string...</Result>
</Results>

Im Falle eines Fehlers wird kein Result-Element erzeugt, sondern z.B. folgendes Ergebnis ausgegeben:

Output im Fehlerfall

XML
<Error attributesFromInput="">
  	<TopException class="java.lang.NullPointerException">exception message</TopException>
  	<CausedByException class="some.other.Exception">exception message</CausedByException>
</Error>
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.