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
Führen Sie nun im Form Editor einen Doppelklick auf den hinzugefügten Button aus, um in die Code-Ansicht zu wechseln.
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: |
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: |
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