- Dieses Thema hat 2 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 2 Monaten, 3 Wochen von mamo.
- Beitrag
-
- 23. August 2024 um 10:09 Uhr
Hallo wertes Transconnect Team,Wir haben einen Prozess entwickelt, der unter verschiedenen Regeln über einen HTTP- Adapter (Eingehend), CMIS Anfragen an verschiedene Systeme verteilen kann. Er soll per Konfiguration, siehe Beispiel: Wie kann ich im Projekt Konstanten definieren, die dann in verschiedenen Prozessen und Transformationen verwendet werden?, flexibel einen konfigurierten Adapter verwenden oder den Adapter im Input Mapping des Adapters, beim Erzeugen der Nachricht, per Attribut aus einer Konfiguration übergeben können.
Ich habe in der Dokumentation bisher noch keine Möglichkeit für Transconect 2.3.5 gefunden. Ich kann zwar Attribute übergeben die primitive Datentypen enthalten, aber leider keine Adapter über dessen Namen z.B.: “HTTP/Name des Adapters” referenzieren. In späteren Versionen, scheint mir die Möglichkeit: Einen Prozess innerhalb eines Prozesses zu starten und den Adapter zu übergeben, als mögliche Lösung da zu sein. Dafür müsste aber für jedes Zielsystem ein eigner Prozess erstellt werden, der den dort konfigurierten Adapter an den allgemein definierten Prozess weiterreicht. Dieses „copy and paste“ möchte ich aber gern vermeiden.
Gibt es hier eventuell noch andere Ansätze dieses Problem zu lösen?
00
- Antworten
-
- 26. August 2024 um 10:53 Uhr
Hallo,Das dynamische auswählen von Adaptern aus Prozessen, ohne diese vorher in dem Prozess eingeführt zu haben, ist wie sie bereits geschildert haben nicht möglich. Auch um sie dem Prozessaufruf als Variable übergeben zu können müssen sie vorher in dem aufrufenden Prozess als Variable eingeführt werden. Das könnte entsprechend der Anhänge aussehen. In dem übergeordneten Prozess wurden hier die einzelnen Adapter als Variablen am Prozessbeginn eingeführt. Über eine/mehrere Alternativen kann die Verarbeitung dem richtigen Prozessaufruf zugeordnet werden. Diese kann dann der Adapter als Variable übergeben werden. Im Prozessaufruf wird dann der übergebene Adapter verwendet. Je nach Anwendungsfall kann hier für jeden Prozessaufruf derselbe Prozess verwendet werden.
Soweit ich das Problem verstehe, geht es hier darum verschiedene Eingehende Http Anfragen auf unterschiedliche Verarbeitungen/Zielsysteme zu verteilen. Das Problem könnte gegebenenfalls auch mit dem neuen, regelbasierten Http Adapter gelöst werden. Mit diesem können regeln definiert werden, auf dessen Basis anhand von URL, Headern, Http-Methoden usw. verschiedene Nachrichtentypen erzeugt werden können. So könnte für jede unterschiedliche CMIS Nachricht eine andere Transconnect Nachricht erzeugt werden, die dann auch passend verarbeitet werden kann. Der regelbasierte Adapter findet sich ab Version 3.4.0. im TRANSCONNECT®. Ob der hier helfen kann ist jedoch ebenfalls vom Anwendungsfall abhängig.
Viele Grüße,
Benjamin Krüger
00- 26. August 2024 um 15:10 Uhr
Hallo Herr Krüger,Vielen Dank erstmal für das Feedback. Nach Absatz 1 ließe sich, so wie ich es schon zu Beschreiben versucht habe, mit jeweils einem separaten Prozess erzeugen die, die Adapterreferenz an einen Standardprozess weiterreichen.
Am Einfachsten wäre es, den Adapter per Konfiguration mitzugeben. Eventuell ein Feature Request für zukünftige Entwicklungen? Über den Attributnamen müsste ja die Zuordnung zum Prozessparameter möglich sein und anhand des Aufbaus des Namens z.B. HTTP/Name des Adapters könnte man die Auswahl treffen. Sicherheitsaspekte müssten natürlich auch beachtet werden.
Eventuell könnte man auch einen Prozess, für die Auswahl zwischenlagern, der je nach angebundener Quelle (Im Pfad der URL erkennbar) einen bestimmten Adapter weiterreicht.
Ja, wie Sie es beschrieben haben, soll das System eingehende Requests unterschiedlicher Quellsysteme auf unterschiedliche Zielsysteme nach verschiedenen Regeln verteilen. Als Beispiel wäre: die Ablage in einer E-Akte oder ggf. die Weiterleitung in ein Archiv, zu bestimmten Regeln zu nennen. Dazu kommt, dass die Quellsysteme durchaus andere Protokollformen (REST, CMIS, …) benutzen könnten. Zurzeit wird aber nur CMIS unterstützt. Als Ziel kommen lediglich CMIS kompatible Systeme zu Einsatz.
Den Regelbasierten Adpater werde ich prüfen, ob er für diese Zwecke geeignet ist. Vermutlich wird Dieser auch effizienter sein, als die Nutzung von definierten XSLT Funktionen. Vermutlich kann man dann auch auf die xslt 1.0 Funktionen wie „java.put(…)“ zur Übergabe verschiedener HTTP-Header und den Status-Code verzichten, da er ja für die Rückgabe eine spezielle Struktur, mit Support dafür, verspricht.
Feedback folgt 🙂
00
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.