Systemintegration

Die Schleupen.CS.SI_Systemintegration (kurz: SI) ist Teil der Schleupen.CS Plattform und unterstützt die Übertragung einfacher und komplexer Objektstrukturen über Systemgrenzen hinweg: SI kann zum Datenabgleich zwischen Schleupen.CS 3.0 und einem externen System für redundante Datenbestände verwendet werden. Für einen Datenabgleich muss dabei ein Mapping der unterschiedlichen Datenstrukturen beschrieben und die Systeme an die SystemIntegration durch Konfiguration der Endpunkte angebunden werden. Die Datenstrukturen können jeweils auch komplexe Objektstrukturen sein und Abhängigkeiten untereinander besitzen. 

Es wird ein uni- und bidirektionaler Transfer unterstützt. Hierbei werden Operationen für das Lesen (aus einem Quellsystem), Mappen, Schreiben (in ein Zielsystem) von Daten in sogenannten SI-Adaptern implementiert. Der Transfer selber kann durch Ereignisse wie erfassen, importieren oder verändern ausgelöst werden. SI ermöglicht die Verwaltung von Objektschlüsseln (ID, GUID, UUID) und fachlichen Schlüsseln und beachtet die Reihenfolge der Änderungen an einem Objekt. Änderungen an Objekten mit einem fachlichen Bezug können verkettet werden. SI stellt ein Monitoring für die Überwachung von Synchronisationen zur Verfügung.

Grundlegender Ablauf

Im folgenden Diagramm ist die grundlegende Funktionsweise von SI ersichtlich. Dargestellt ist ein externes System, das mit einem Geschäftsprozessserver (GPS) kommuniziert und einen Datenabgleich ausgehend von dem externen System nach Schleupen.CS 3.0 mithilfe von SI durchführt. 

Grundlegende Funktionsweise von SI

Hierbei werden folgende Schritte durchgeführt:

  1. Das externe System hat eine Datenänderung festgestellt. Mithilfe des Services Schleupen.CS.AP.SI.Demands.DemandActivityService wird ein sogenannter Demand eingestellt, mit dem SI ein Datenabgleich initiiert wird, also einen Datenaustauschauftrag darstellt.
  2. SI ruft auf Basis des Demands den passenden SI-Adapter auf. Im ersten Schritt wird dieser angesprochen, um die geänderten Daten vom externen System zu laden.
  3. Im zweiten Schritt werden die Datentypen auf den Ziel-Service gemappt (in diesem Fall: ein Service von Schleupen.CS 3.0).
  4. Zuletzt werden die Daten über den Adapter und den dort konfigurierten Ziel-Service in das Ziel-System geschrieben.

Der Ablauf in die umgekehrte Richtung erfolgt analog. 

Die Konfiguration der Services, die lesen, mappen und schreiben, erfolgt per Powershell-Cmdlets. 

Das folgende Codebeispiel zeigt exemplarisch die Konfiguration und Anbindung der Services:

# Lesender Service
New-ServiceConfiguration -OperationType ReadForeign -ServiceClient SYPersonServiceClient -ProtocolType Http -UrlContextPath Schleupen/CS.SY/Personen/PersonService.svc -Method QueryPerson ...
# Mapping-Service
New-ServiceConfiguration -OperationType Map -ServiceClient PersonMapActivityServiceClient -UrlContextPath Schleupen.CS.AP.SI.ZDAdapterCS2030.Personen.PersonMapActivityService_3.1 -ProtocolType Http -Method Map ...
# Schreibende Service
New-ServiceConfiguration -OperationType CreateOwn -ServiceClient PersonActivityServiceClient -ProtocolType Http -UrlContextPath Schleupen.CS.AP.ZD.Personen.PersonActivityService_3.4 -Method SaveChanges ..

Ein Mapping per Mapping-Service wird wie folgt implementiert:

[ServiceBehavior]
[ErrorHandlerBehavior(typeof(UnhandledFaultAssembler<Personen.MapPersonActivityService.V3_1.UnhandledFaultContract>))]
public class MapPersonActivityService : IMapPersonActivityService
{
  private readonly IPersonMapController personMapController;
  ...
  [OperationBehavior]
  [IdempotentOperationBehavior]
  public MapResponse Map(MapRequest request)
  {
    if (request == null) { throw new ArgumentNullException(nameof(request)); }
    ...
    var outbountResult = Map(request.InboundObject);
    return new MapResponse(outbountResult);
  }
  ...
}

Komponenten von SI

Die folgenden Abbildung stellt die beteiligten Komponenten von SI dar:

Cookie Consent mit Real Cookie Banner