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