Client Command per Form Editor via AESB statisch an einen Client senden

Navigation:  Client Commands > Tools > Client Command Editor > Commandlist > AESB >

Client Command per Form Editor via AESB statisch an einen Client senden

Version 1.0.0

Um über eine AESB-Verbindung ein Client Command statisch an einen Client zu senden gehen Sie wie folgt vor:

 

Fügen Sie ein neues Client Command mit Hilfe des Client Command Editors hinzu und wählen aus, dass es sich um ein Consolen Script handelt.

 

Legen Sie zunächst eine ACMP Variable an, indem Sie das Kommando Set project variable aus dem Bereich Variables in das Bearbeitungsfenster ziehen. Geben Sie hier einen Namen an und schließen Sie das Fenster.

 

Ziehen Sie nun das Kommando Form Editor aus dem Bereich Dialogs in das Bearbeitungsfenster und bearbeiten Sie die Form über den entsprechenden Button.

 

Nachdem sich der Form Editor geöffnet hat, fügen Sie einen Button hinzu, mit welchem Sie die AESB Anbindung durchführen können. Über die Caption können Sie den Anzeigenamen des Buttons anpassen.

 

Formular erstellen

Formular erstellen

 

Führen Sie nun im Form Editor einen Doppelklick auf den hinzugefügten Button aus, um in die Code-Ansicht zu wechseln.

 

Code-Ansicht

Code-Ansicht

 

Der Cursor befindet sich nun innerhalb des hinzugefügten Buttons, sodass Sie diesen bearbeiten können. Im oberen Teil des Fensters werden Ihnen die verwendeten Klassen sowie die Prozeduren für den OK-Button und Abbrechen-Button angezeigt. Diese werden automatisch hinzugefügt und müssen nicht angepasst werden.

 

Hinweis

Hinweis:

Es ist nicht zwingend notwendig einen Button zu verwenden.

 

Deklarieren Sie innerhalb der Button-Prozedur zunächst die folgenden Variablen und Konstanten mit den angebenen Typen und weisen die jeweiligen Werte zu:

 

Variablen für die Funktion AddSICSConnection

Parameter

Typ

Beschreibung

Protocol

TProtocolType

Hier wird das Protokoll (HTTP (0) oder HTTPS (1)) für die auzubauende AESB-Verbindung gespeichert

ConnectionTimeout

string

Hier tragen Sie ein, wann ein Timeout erreicht werden soll

Konstanten für die Funktion AddSICSConnection

Server

string

Hier tragen Sie den Servernamen ein

Port

string

Hier tragen Sie den Serverport ein

Username

string

Hier tragen Sie den AESB-Benutzer ein

Passwort

string

Hier tragen Sie das Passwort des AESB-Benutzers ein

TargetConnectionVariable

string

In dieser Projektvariable wird die Verbindung zum AESB gespeichert

Variablen für die Funktion SICSPublish

ExchangeType

TExchangeType

Hier wird der Exchange Typ (Direct (0) oder Routing (1)) eingetragen. Weisen Sie dieser Variable den Wert 'Routing' zu

OptionalParameters

TStrings

Hier werden optionale Parameter für den Aufruf gespeichert

ResultMessages

TStrings

Hier wird automatisch die Ergebnismeldungen gepeichert

AAckMessages

string


AResult

string


AErrorCode

Integer

Hier wird automatisch der Fehlercode eingetragen

Konstanten für die Funktion SICSPublish

MessageID

string

Hier tragen Sie die Message ID ein. Diese können Sie individuell vergeben. Syntax: {0F910571-4216-4C7A-9031-A7BCA0F03D5B}

VirtualRouter

string

Hier wird der Virtual Router eingetragen. Weisen Sie dieser Konstante den Wert 'VCMN' zu

RoutingKey

string

Mit dem Routing Key geben Sie an, wohin der AESB die Verbindung aufbauen soll. Wisen Sie dieser Konstante den Wert '?.Aagon.Components.ACMPServer.*' zu

Tag

string

Hier tragen Sie den Tag ein. Weisen Sie dieser Konstante den Wert 'ICQL' zu

MessageBody

string

In dieser Konstante wird der Ablauf des Client Commands sowie das Ziel gespeichert

CallBackVirtualRouter

string

Die CallBack Funktionalität muss nicht konfiguriert werden

CallbackRoutingKey

string

Die CallBack Funktionalität muss nicht konfiguriert werden

ConnectionString

string

In dieser Variable werden die Werte der Verbindung zum AESB gespeichert

 

var

  Protocol: TProtocolType = '0';

  ConnectionTimeout: String = '30';

  ExchangeType: TExchangeType = 'Routing';

  OptionalParameters: TStrings = '';                                                                       

  ResultMessages: TStrings = '';

  AAckMessages: string = '';

  AResult: string = '';

  AErrorCode: Integer = 0;

  Result: Integer = 0;

 

const

  Server: string = 'ACMP-SERVER';

  Port: string = '3900';

  Username: string = 'Operator';

  Passwort: string = 'operator';

  TargetConnectionVariable: string = '';

  ConnectionString: string = '';

  MessageID: string = '{0F910571-4216-4C7A-9031-A7BCA0F03D5B}';

  VirtualRouter: string = 'VCMN';

  RoutingKey: string = '?.Aagon.Components.ACMPServer.*';

  Tag: string = 'ICQL';

  MessageBody: string = '<ICQL><ACMP><EnqueueClientCommand version="1">' +                

            '<TEnqueueClientCommandRequest_V1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' +

            '<ClientId>%ClientID´%</ClientId>' + 

            '<ClientCommandId>%ClientCommandID%</ClientCommandId>' +    

            '</TEnqueueClientCommandRequest_V1></EnqueueClientCommand></ACMP></ICQL>';

  CallbackVirtualRouter: string = '';

  CallbackRoutingKey: string = ''; 

 

Nachdem Sie alle notwendigen Variablen und Konstanten angelegt und mit Werten gefüllt haben, rufen Sie nach dem Begin die Prozedur AddSICSConnection wie folgt auf:

 

AddSICSConnection(%Protocol%, %Server%, %Port%,  %Username%, %Passwort%, %ConnectionTimeout%, %TargetConnectionVariable%);

 

 

Hinweis

Hinweis:

Beachten Sie, dass Sie die Konstanten Server, Port, Username und Passwort an Ihre Umgebung anpassen.

Die %ClientID% im MessageBody kopieren Sie vorher aus einer Abfrage und die %ClientCommandID% können Sie sich aus den Einstellungen des benötigten Client Commands kopieren.

 

 

Nachdem Sie die AESB-Verbindung hinzugefügt haben, lesen Sie den Inhalt der Projektvariable %TargetConnectionVariable% mit GetVarContent() wie folgt aus und speichern die Werte in der Konstante %ConnectionString%:

 

ConnectionString := GetVarContent(%TargetConnectionVariable%);

 

Speichern Sie nun das Ergebnis mit der Funktion SICSPublish:

 

Result := SICSPublish(%ConnectionString%, %MessageID%, %VirtualRouter%, %RoutingKey%, %ExchangeType%, %Tag%, %MessageBody%, %CallbackVirtualRouter%, %CallbackRoutingKey%, %OptionalParameter%, %ResultMessages%, %AAckMessage%, %AResult%, %AErrorCode%);

 

Geben Sie die beiden TStrings OptionalParameters sowie ResultMessages wieder frei %OptionalParameters%.free; und %ResultMessages%.free;

Zuletzt bearbeitet am 22.11.2018