Mit dem EOMS ist es ohne Weiteres möglich, Daten aus einem Redaktions-System (Pakete) zu laden und zu verwenden. Damit stellt das EOMS eine Möglichkeit dar, Daten aus einem Redaktions-System zu extrahieren. Ein Redaktions-System ist somit erst in Kombination mit einem EOMS in vollem Umfang einsetzbar.
 



Die Anbindung (Datenaustausch) eines Redaktions-System geschieht (wie alles, was ein Worker tut) über seine RCML-Spezifikation. Diese ist völlig frei programmierbar. Mehr dazu hier.

Ein Redaktions-System wird nie dauerhaft an einen Worker "angebunden", die Verbindung besteht also nur temporär für die Zeit des Datenaustauschs.


Seit Version 1.2.4 können Produktions- und Binärpakete auch dann empfangen werden, wenn der R-S Server eine Zeit lang nicht erreichbar ist (offline). Zur Konfiguration müssen in der rs.client.properties folgende Direktiven gesetzt werden:
 

Eigenschaft
Beschreibung
Standard
rs.client.production-bundle-fetcher.offline-timeoutZeit in ms, wie lange das Redaktions-System nicht erreichbar sein darf, bis keine Produktions-Pakete mehr empfangen werden dürfen.3600000
rs.client.binary-bundle-fetcher.offline-timeoutZeit in ms, wie lange das Redaktions-System nicht erreichbar sein darf, bis keine Binär-Pakete mehr empfangen werden dürfen.3600000


(Warnung) Benötigt Redaktions-System Version 2.1.1.


Typischerweise läuft eine Zusammenführung von Rohdaten und Paketen aus dem Redaktions-System folgendermaßen ab:

  1. Empfang der Rohdaten (XML) aus dem Auftrags-System (Spooler).
  2. Empfang des dazugehörigen Binär- und Produktions-Paket aus dem R-S (nur falls die Pakete nicht bereits im Cache (also auf dem Workerrechner) vorliegen).
  3. Ausführung des Programms aus dem Binär-Paket auf die XML-Rohdaten und das Produktions-Paket.
  4. Weiterverarbeitung (z.B. Rücksendung) der Ergebnisdaten.

     Sie sind aber, wie bei allem, was in RCML definiert wird, völlig frei bei der Festlegung, was getan werden soll.

Damit überhaupt Pakete vom Redaktions-System zum EOMS-Worker übertragen werden können, müssen folgende Parameter gesetzt sein:

  • docxworld-Vertrag oder docxworld-Link: Zur eindeutigen Identifizierung, welche Pakete für diesen Job (diese Rohdaten) benötigt werden.

  • binary-bundles-home: Wo sollen Binär-Pakete auf dem Workerrechner abgelegt werden?

  • production-bundles-home: Wo soll Produktions-Pakete auf dem Workerrechner abgelegt werden?

  • merge-home / runtime-home: u.a.: Wo soll die Ausführung des Programms aus dem Binär-Paket stattfinden (hier hängt es davon ab, welche Methode zur Ausführung Sie verwenden: merged oder shared. Mehr dazu finden Sie in der Elementbeschreibung von <docxworld-fetch-production-environment>).


All dies geschieht über das <docxworld-fetch-production-environment> - RCML-Element. Dieses Element kümmert sich um alles, Sie müssen nur die oben aufgeführten Parameter zur Verfügung stellen. Falls Sie sich bereits mit RCML auskennen, hier ein vollständiges (mehr ist prinzipiell nicht zu tun, um eine Basisanbindung zu realisieren) Beispiel zur Interaktion mit dem Redaktions-System. Falls Sie sich noch nicht mit RCML auskennen, ist das auch nicht schlimm. Dies lernen Sie in einem späteren Abschnitt der Dokumentation.

<workdir id="workdir" home="./WORK" />
<fetchresource id="inputFile" clear-on-shutdown="false" resource="${process['eoms.process.input']}" />
 
<docxworld-fetch-production-environment id="rsProductionEnvironment" runtime-environment="shared">

	<docxworld-contract>${process['eoms.procedure']}</docxworld-contract>
	<!-- <link-name>${process['eoms.procedure']}</link-name> -->

	<binary-bundles-home>${binaryBundleHome}</binary-bundles-home>
	<production-bundles-home>${productionBundleHome}</production-bundles-home>
	
	<runtime-home>${workdir.getAbsolutePath()}</runtime-home>
	<merge-home>${buildPath4ClientProcedure(process['eoms.client'], process['eoms.procedure'])}</merge-home>

</docxworld-fetch-production-environment>


Danach können Sie bereits mit den Paketen arbeiten. Zur Ausführung des Programms aus dem Binär-Paket, verwenden Sie am Besten den Kommandobefehl aus den XML-Rohdaten:

<exec id="rwProcess" process="rwProcess" workdir="workdir">
	<param name="cmd" value="${rsProductionEnvironment.getCommandLine(inputFile.getFile())}" />
	<commandline processor="velocity">$cmd</commandline>
</exec>


Nun schicken wir die Ergebnisdaten zurück:

<switch>
	<case condition="${rwProcess.testReturnCode('0')}">
		<message text="${'####ReturnCode OK:'+rwProcess.getReturnCode()}" />
		<upload file="workdir" destination="${process['eoms.process.output']}" />
	</case>
	<case condition="true">
		<message text="${'####Fehler ReturnCode:'+rwProcess.getReturnCode()}" />
		<upload file="workdir" destination="${process['eoms.process.output']}" />
	</case>
</switch>

Eine vollständige Anleitung finden Sie in dem HowTo Artikel Interaktion mit dem Redaktions-System.

  • Keine Stichwörter