HTML Dateien mit dem Workflow erstellen¶
Kopiervorlage¶
unter /application/default/workflow/builder/buildfragments.xml
liegt die Kopiervorlage zum rendern von HTML Dateien.
Diese wird nach /etc/alvine-platform/workflow/buildfragments.xml
kopiert.
In dem Step do-load-data
wird die Action \Alvine\Application\Platform\Logic\Workflow\Action\Builder\Datasource\SetDataset
konfiguriert.
Die angepasste Datasource muss hier definiert werden.
Name anpassen¶
Der name des Workflows muss so benannt sein wie die Datei.
Hier wurde die Datei buildfragments.xml
benannt.
<workflow name="buildfragments">
...
</workflow>
Datasource¶
die Datasource ist abgeleitet von \Alvine\Application\Platform\Builder\DataSource\Commerce\Item
.
Diese ist die Basis der Produkte.
Über die Traits wird das Produkt um die benötigten Daten erweitert. Siehe auch datasource
<step name="do-load-data">
<actions>
<action class="\Alvine\Application\Platform\Logic\Workflow\Action\Builder\Datasource\SetDataset">
<parameters>
<parameter name="datasource">\Customisation\Builder\DataSource\Commerce\Item</parameter>
</parameters>
</action>
</actions>
</step>
Templates¶
In dem Step do-build-fragments
werden dann die Templates definiert.
Hier im Beispiel wurde der HTML Builder verwendet.
<step name="do-build-fragments">
<actions>
<action class="\Alvine\Application\Platform\Logic\Workflow\Action\Builder\Fragment\Html" >
<parameters>
<parameter name="templateFile[0]">{CUSTOMISATIONPATH}resource/template/detail.html</parameter>
<parameter name="outputFile[0]">{CUSTOMISATIONPATH}resource/{iid}_detail.html</parameter>
<parameter name="templateFile[1]">{CUSTOMISATIONPATH}resource/template/detail_test.html</parameter>
<parameter name="outputFile[1]">{CUSTOMISATIONPATH}resource/{iid}_detail_test.html</parameter>
</parameters>
</action>
</actions>
</step>
Workflow¶
Hier ist die Dokumentation mit dem Umgang mit Workflows
initialisiert des Workflows¶
Der Workflow muss initialisiert werden.
Über die Konsole kann das über diesen Command gemacht werden:
alvine-platform workflow:init -w buildfragments
es wurde dann eine neue Queue erstellt :
/var/application/workflow/queue/build_product_fragments
ausführen des Workflows¶
Erstellen von Container¶
Damit der Workflow etwas zum abarbeiten hat müssen Container gebaut werden.
Hierfür wird eine Factory benötigt.
Welche Art von Container gebaut werden soll, ist in admission
definiert.
<admission state="new"
container-class="\Alvine\Application\Platform\Logic\Workflow\Container\Commerce\Item" />
Dem Command muss der Parameter class übergeben werden, das ist die KLasse der Factory die verwendet werden soll.
In diesem Beispiel ist es \Alvine\Application\Platform\Logic\Workflow\Factory\Commerce\Item
.
alvine-platform workflow:factory -w buildfragments --class \\Alvine\\Application\\Platform\\Logic\\Workflow\\Factory\\Commerce\\Item -a idlist=2
Workflow starten¶
alvine-platform workflow:run -w buildfragments -f new -t to-init