CONZEPT 16 bietet eine große Zahl von Prozedurbefehlen. Die meisten können in allen Umgebungen, wie im SOA-Service oder auf dem Server per RmtCall()
, ausgeführt werden. Einige Befehle sind jedoch nicht in allen Umgebungen verfügbar. Heute möchte ich die Gründe dafür näher beleuchten.
Benötigt Oberfläche
Alle Befehle, die mit Win
, Com
, Prt
, Tapi
und Pdf
anfangen, benötigen Zugriff auf Funktionen der Benutzeroberfläche. Dieser Zugriff wird die über die c16_objw.dll
durchgeführt und ist normalerweise nur im Standard- oder Advanced-Client aktiv. Daneben gibt es Befehle wie SckListen()
, FsiMonitorOpen()
oder JobEvent()
, die Ereignisse zur Folge haben und daher ebenfalls die c16_objw.dll
benötigen.
Über den Eintrag c16_proc_extended
der Konfigurationsdatei kann im SOA-Service (32-Bit) die c16_objw.dll
eingebunden und somit auf Oberflächenfunktionen zugegriffen werden. Standardmäßig kann der SOA-Service nicht mit der Oberfläche interagieren. Falls Dialoge angezeigt werden müssen, ist es daher notwendig in der Windows-Verwaltung der Dienste den Haken bei „Datenaustausch zwischen Dienst und Desktop zulassen“ zu setzen. Dies sollte jedoch nur gesetzt werden, wenn es zwingend erforderlich ist, Dialoge im SOA-Service anzuzeigen.
Wird bei der DLL-Schnittstelle die c16_pgxe.dll
verwendet, ist auch hier ein Zugriff auf Win
-Befehle möglich.
Komponentenspezifische Befehle
Einige Befehlsgruppen sind speziell für bestimmte Komponenten konzipiert worden und sind daher nur in diesen Komponenten ausführbar. Hierzu zählen die Befehle, die mit folgenden Kürzeln anfangen:
Ppc
– DruckprozessorWse
– Web-SchnittstelleJob
– Standard-, Advanced-Client und SOA-ServiceSvc
– SOA-Service
Befehle mit eingeschränkten Möglichkeiten
Einige Befehle sind zwar in mehreren Komponenten ausführbar, unterliegen jedoch in bestimmten Umgebungen gewissen Einschränkungen. Zum Beispiel kann der Befehl SckConnect()
überall verwendet werden. Die Verschlüsselung mit _SckSSLv2
, _SckSSLv3
bzw. _SckTLSv1
ist nur im Client, Druckprozessor, Server, SOA-Service und in der Programmierschnittstelle möglich. Hierzu wird die Bibliothek c16_ssl_wXX.dll
benötigt.
Die Job
-Befehle können zwar im Client ausgefüht werden, jedoch kann mit JobStart()
nur ein neuer Thread (_JobThread
) in dem Clientprozess gestartet werden.
Woran erkenne ich, ob der Befehl in der Zielumgebung ausführbar ist?
In der Dokumentation ist bei jeder Funktion oben rechts eine Reihe von Piktogrammen, die die Komponenten symbolisieren, in denen die Funktion ausgeführt werden kann. Ist ein Piktogramm nicht vorhanden, kann die Funktion in der Komponente nicht ausgeführt werden.
Die Symbole zeigen von links nach rechts:
- Standard- & Advanced-Client
- Server
- DLL- und PHP-Schnittstelle
- Web-Schnittstelle
- Druckprozessor
- ODBC-Schnittstelle
- SOA-Service
Im Anhang des Artikels finden Sie eine Liste der Funktionen und deren Ausführbarkeit auf den unterschiedlichen Komponenten von CONZEPT 16.
2 Antworten
@alco
Einfach den SOA-Service mit auf dem Server installieren, damit können eigene Dienste per Socket bereitgestellt werden.
Schade das der SckListen-Befehl nicht auf dem Server funktioniert, man könnte damit sehr schön einen eigenen Dienst auf dem Server bereitstellen.