Einleitung

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

bus01.gif
 
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.
servicebus_einleitung_1.jpg
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.