Diese Funktionalität ermöglicht aus F-Script heraus, den Zugang zum
ServiceBus. Damit lassen sich alle Services die wir in OpaccERP zur
Verfügung stellen, auch in F-Script nutzen. (z.B. GetBo, SaveBo usw.) So
können auch BOs gespeichert werden, für die es bisher keinen IBOS gab. Das
bedeutet aber auch, dass für neue BOs keine IBOS mehr implementiert
werden. Es ist ausserdem möglich, einen Service aus F-Script heraus
mandantenübergreifend zu nutzen. Beispielsweise könnte man mit dem
F-Script (VERPSAVE.FF) in einem Mandanten eine Verkaufsdokument-Position
bearbeiten und gleichzeitig in einem anderen Mandanten eine
Einkaufsdokument-Position erstellen.
Services und Results können mit variablen Namen definiert werden und
stehen während der ganzen Laufzeit des Scripts zur Verfügung. Damit hält
der objektorientierte Gedanke Einzug in F-Script. Ist beispielsweise in
einem Resultat ein Verkaufsdokument (SalDoc) abgelegt, so kann während der
ganzen Laufzeit des Scripts auf die Attribute dieses "Objektes"
zugegriffen werden.
Eine weitere Funktionalität in die mit dem Nutzen von Services in
F-Script einher geht, ist die Suchrichtung resp. Suchanweisung. In
F-Script war es bisher nicht möglich, eine Liste rückwärts zu durchsuchen.
Diese Funktionalität lässt sich mit der Suchanweisung p resp.
pe nutzen. (Also das Pendant zu n und ne)
Da sämtliche BIZ Services auch über die OXAS LiveDocumentation
ausgeführt bzw. getestet werden können, stellt diese Anwendung eine grosse
Hilfe beim Erstellen von F-Scripts dar welche ServiceBus Funktionalität
nutzen. Es empfiehlt sich also eine vertiefte Einarbeitung in das Thema
OXAS LiveDocumentation.
Übersicht
Da F-Script
sehr tief in der Business-Logik (BIZ) verwurzelt ist, ist es technisch
nicht möglich direkt aus dem F-Script heraus auf das public interface des
ServiceBus zuzugreifen. Deshalb wird zusätzlich im Hintergrund eine neue
Instanz des BIZ gestartet. Dieser "Shadow BIZ" bietet dann dieselbe
Business-Funktionalität wie der ServiceBus selber. Und genau diese
Funktionalität wird dann vom F-Script genutzt. (z.B. ausführen von
GetBo)
Da nun auch in dieser Instanz des BIZ wiederum F-Scripts
laufen können, ergibt sich folgende Einschränkung:
F-Scripts
die hier laufen haben ab der vierten Stufe keinen Zugang zur
Business-Funktionalität des ServiceBus. d.h. in diesen Scripts können
keine Services ausgeführt werden. (Siehe auch nachfolgendes
Beispiel.)
Beispiel (Abfragen ob
der Zugang zum ServiceBus möglich ist.)
-
Stufe 1: In OpaccERP BackOffice oder der OXAS LiveDocumentation
wird ein F-Script (run1.ff) gestartet. In diesem F-Script wird mit dem
Service System_RunScript ein weiteres F-Script (run2.ff)
gestartet.
-
Stufe 2: In diesem F-Script (run2.ff) wird mit dem Service
System_RunScript ein weiteres F-Script (run3.ff) gestartet.
-
Stufe 3: In diesem F-Script (run3.ff) wird mit dem Service
System_RunScript ein weiteres F-Script (run4.ff) gestartet.
-
Stufe 4: In diesem F-Script (run4.ff) wird mit dem Service
System_RunScript ein weiteres F-Script (run5.ff) gestartet.
-
Stufe 5: In diesem F-Script (run5.ff) ist nun kein Zugang zum
ServiceBus mehr möglich. d.h. in der Stufe 5 kann in einem F-Script
kein Service mehr ausgeführt werden.
Die Abfrage ob in einem F-Script der Zugang zum ServiceBus
möglich ist, efolgt über den Befehl «zXCNT(busActive)\I» (Siehe auch BIZ
Services / Sprachelemente)
Als Vermittler zwischen Clients
(Consumer) und den verschiedenen Plugins (BIZ, DMAS, Search, Common, etc.)
leitet der ServiceBus Anfragen zu den entsprechenden Services weiter und
gibt die Antworten der Services anschliessend wieder an die Clients
zurück.
Beispiel
(Search)
Eine Suchanfrage aus OpaccERP BackOffice wird via
ServiceBus an das Search Plugin weitergeleitet. Dort wird die Suchanfrage
bearbeitet und das Resultat dann über den ServiceBus an OpaccERP
BackOffice zurückgegeben.
Damit die
Weiterleitung korrekt erfolgen kann, muss dem Service ein Präfix
vorangestellt werden, welche das entsprechende Plugin
bestimmt.
Einzige Ausnahme sind hier die Services des BIZ Plugin,
welche ohne das Präfix "BIZ" verwendet werden können.
Beachten Sie,
dass nur die Services des BIZ Plugin über die Opacc ApplicationServices
Documentation ausgeführt werden können. Alle anderen Services müssen,
beispielsweise um Funktionen zu testen, über das ServiceBus Frontend
ausgeführt werden.
\insyde\ui\ServiceBusClient\Opacc.ServiceBus.Client.Frontend.App.exe
Das
Einbinden dieser Services in F-Script, unterscheidet sich von Plugin zu
Plugin teils erheblich. Die vorliegende Dokumentation ist deshalb nach
Plugins aufgegliedert und zeigt in diversen Beispielen die Anwendung der
jeweiligen Services innerhalb von F-Script.
BIZ - Services des
BIZ-Plugin bzw. des Business-Servers
Die Services des
Business-Servers sind wohl die bekanntesten Services. Es sind dies u.a.
GetBo, SaveBo, etc.
Da wir bei BIZ auch von der "Basis" sprechen,
können diese Services ohne das Präfix "BIZ" verwendet
werden.
Prinzipiell müsste man aber, beispielsweise bei einem GetBo
Service, "BIZ.GetBo" schreiben.
DMS - Services des
DMAS Plugin
Die Services des DMAS Plugin stellen Funktionen zur
Verfügung, mit welchen beispielsweise nach archivierten Dokumenten gesucht
werden kann.
DMAS-Services muss immer das Präfix "DMS" vorangestellt
werden.
Search - Services
des Search Plugin
Die Services des Search Plugin stellen
Funktionen zur Verfügung, mit welchen die Enterprise Search genutzt werden
kann.
Search-Services muss immer das Präfix "Search" vorangestellt
werden.
Common - Services
des ServiceBus
Die Services des ServiceBus stellen Funktionen
zur Verfügung, welche von allen Komponenten genutzt werde können. So
beispielsweise das Erstellen von Log-Einträgen.
Common-Services muss
immer das Präfix "Common" vorangestellt werden.