Hallo Florian,
ja das geht. Hierzu brauchst du zwei Dinge:
Server API Call krn.SendMessageToClients
Mit dem API Call krn.SendMessageToClients
kann man enaio Windows Clients Nachrichten senden.
Parameter
Parameter |
Inhalt |
Bemerkung |
Flags |
0 |
Nicht relevant, einfach 0 mitgeben |
Computer |
|
Würde ich in Ihrem Fall leer lassen, ausser Sie wissen sicher den Computernamen |
Instance |
ax |
Für den Windows Client immer ax setzen. Kann im Prinzip auch leer gelassen werden |
User |
Benutzernamen |
Name des Benutzers. Kann auch leer gelassen werden. |
Message |
StartEvent |
Es gibt Message und StartEvent zur Auswahl. Message erzeugt ein Popup, StartEvent löst den Event StartAction aus |
Info |
|
Nicht relevant |
Text |
1082,262148;1086,262148 |
Text für das Popup bzw. kann dies im Event ausgelesen werden |
Broadcast |
3 |
Verteilt den Event über alle Server Instanzen. |
Details zum Job gibt es im Server-API Handbuch auf Seite 335
Als Client Event würde der Aufruf des API Endpunkts z.B. dann also so aussehen:
Dim Job: Set Job = DrtSession.CreateJob("krn", "SendMessageToClients")
Job.AddInParam "Flags", 0, 2
Job.AddInParam "Computer", "", 1
Job.AddInParam "Instance", "ax", 1
Job.AddInParam "User", "uw", 1
Job.AddInParam "Message", "StartEvent", 1
Job.AddInParam "Info", "", 1
Job.AddInParam "Text", "1082,262148;1086,262148", 1
Job.AddInParam "Broadcast", 3, 2
Job.Execute
Aber Sie können dies natürlich auch über Server-Events, Server-API, die Client COM Schnittstelle etc. auslösen. Ich habe dieses Beispiel gewählt, da du dies schnell in einen Click Event eines Buttons hinzufügen kannst und so den Effekt direkt siehst.
Client Event StartAction
Im enaio Fullclient gibt es einen Event ‚StartAction‘ im Bereich Allgemeine Events
.
Dieser Event wird beim Empfang eines Events ausgeführt (wenn Message = StartEvent).
Das obere Bespiel z.B. führt dazu, dass dieser Event ausgelöst wird und den Inhalt von Text
als temporäre Event Datei (asfile.Filename
) mit kommt.
In diesem Code-Beispiel öffnet sich dann zum Beispiel eine Liste von Objekten als neue Trefferliste im enaio Client.
Function Main()
Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim File: Set File = FSO.OpenTextFile(asfile.Filename)
Dim IDs: IDs = File.ReadAll
File.Close
application.OpenResultList IDs, "Titel der Trefferliste"
End Function
Main()
Einschränkungen
- Der Webclient, Mobile Apps und der Electron Client besitzen leider aktuell diese Funktionalität nicht.
- Events werden nicht gespeichert bis das Zielsystem erreichbar ist. Das heisst, wenn der gewünschte Client nicht gerade am enaio Server angemeldet ist, dann wird er die Nachricht nicht im nach hinein erhalten
- Es gibt für diesen API Endpunkt keine Webschnittstelle. Hier bieten wir als Microservice den SendMessageService an.
Hilft dir das weiter?