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

Last modified by S F on 2023/12/11 10:40

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 Command 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.

hmfile_hash_b1119169.png

Formular erstellen

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

aesb-formeditor_code-ansicht_zoom80.png

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  Note:  

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

ParameterTypBeschreibung
ProtocolTProtocolTypeHier wird das Protokoll (HTTP (0) oder HTTPS (1)) für die auzubauende AESB-Verbindung gespeichert
ConnectionTimeoutstringHier tragen Sie ein, wann ein Timeout erreicht werden soll

Konstanten für die Funktion AddSICSConnection

ParameterTypBeschreibung
ServerstringHier tragen Sie den Servernamen ein
PortstringHier tragen Sie den Serverport ein
UsernamestringHier tragen Sie den AESB-Benutzer ein
PasswortstringHier tragen Sie das Passwort des AESB-Benutzers ein
TargetConnectionVariablestringIn dieser Projektvariable wird die Verbindung zum AESB gespeichert

Variablen für die Funktion SICSPublish

ParameterTypBeschreibung 
ExchangeTypeTExchangeTypeHier wird der Exchange Typ (Direct (0) oder Routing (1)) eingetragen. Weisen Sie dieser Variable den Wert 'Routing' zu
OptionalParametersTStringsHier werden optionale Parameter für den Aufruf gespeichert
ResultMessagesTStringsHier wird automatisch die Ergebnismeldungen gepeichert
AAckMessagesstring 
AResultstring 
AErrorCodeIntegerHier wird automatisch der Fehlercode eingetragen

Konstanten für die Funktion SICSPublish

ParameterTypBeschreibung 
MessageIDstringHier tragen Sie die Message ID ein. Diese können Sie individuell vergeben. Syntax: {0F910571-4216-4C7A-9031-A7BCA0F03D5B}
VirtualRouterstringHier wird der Virtual Router eingetragen. Weisen Sie dieser Konstante den Wert 'VCMN' zu
RoutingKeystringMit dem Routing Key geben Sie an, wohin der AESB die Verbindung aufbauen soll. Wisen Sie dieser Konstante den Wert '?.Aagon.Components.ACMPServer.*' zu
TagstringHier tragen Sie den Tag ein. Weisen Sie dieser Konstante den Wert 'ICQL' zu
MessageBodystringIn dieser Konstante wird der Ablauf des Client Commands sowie das Ziel gespeichert
CallBackVirtualRouterstringDie CallBack Funktionalität muss nicht konfiguriert werden
CallbackRoutingKeystringDie CallBack Funktionalität muss nicht konfiguriert werden
ConnectionStringstringIn 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  Note:  

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;

Tags:

Navigation

© Aagon GmbH 2024
Besuchen Sie unsere neue Aagon-Community