cancel
Showing results for 
Search instead for 
Did you mean: 

How can I create my own workflow without Nuxeo Studio?

yanngourcuff_
Champ in-the-making
Champ in-the-making

Hi, I would like to know how can I use more than the Serial and the Parallel default ones. I don't want to rely on Nuxeo Studio.

I believe it is possible to do so by using an XML file, but I don't know how to write it. The XML files of the defaults workflows are rather cryptics. Is there anyone who can recommand a tutorial?

Thanks

8 REPLIES 8

Esheng_
Champ on-the-rise
Champ on-the-rise

I want to know the answer to this question too.

you should upvote the question rather than post an answer, don't you think so ?

yanngourcuff_
Champ in-the-making
Champ in-the-making

UP please...

Amir_Buzo
Confirmed Champ
Confirmed Champ

well i tried a couple of ways to define workflow without studio but it's hard to maintain. The generated xml for workflow tasks and routing tasks is zipped. No idea what kind of tool do they use to generate the workflow schema.

Amir_Buzo
Confirmed Champ
Confirmed Champ

Well according to my research https://github.com/nuxeo-archives/nuxeo-core/blob/master/nuxeo-core-io/src/main/java/org/nuxoweo/ecm... the workflows are zipped and archive with zipheader and a marker file and interpreted by a document model importer. So i think you should prepare your workflow xml zip it and marked it.

Amir_Buzo
Confirmed Champ
Confirmed Champ

Well according to my research https://github.com/nuxeo-archives/nuxeo-core/blob/master/nuxeo-core-io/src/main/java/org/nuxoweo/ecm... the workflows are zipped and archive with zipheader and a marker file and interpreted by a document model importer. So i think you should prepare your workflow xml zip it and marked it.

ssze_
Star Contributor
Star Contributor

Hi,

in case someone still needs it. We create workflows manually via our own gitlab. We create two projects, one holding the workflows only that will lead to the zip archive containing the workflows, the other holding the rest of the customizing (incl. the schema used in the workflows):

  • my_customizing
  • my_customizing_workflow.

We can then produce a "my_customizing.jar" with workflows with this script:

    - git clone git@gitlab:abc/my_customizing_workflow.git workflow
    - cd workflow
    - find . -maxdepth 1 -type d -regex ./[^.].* -exec zip -r {}.zip {} \;
    - find . -maxdepth 1 -type f -name '*.zip' -exec zip -r {} .nuxeo-archive \;
    - find . -maxdepth 1 -type f -name '*.zip' -exec mv {} ../data/ \;
    - cd ../
    - jar -cfM my_customizing.jar META-INF OSGI-INF data web

The .nuxeo-archive is actually an empty file.

In the my_customizing_workflow.git there is one directory per workflow. Each step inside the workflow is a separate folder again, e.g. Task0001, Task0002. And inside each of these folders there is the respective document.xml holding the workflow / task information.

Each workflow and task have their own schema which we store in the data/schema structure of the my_customizing project.

<extension target="org.nuxeo.ecm.core.schema.TypeService" point="schema">
	<schema name="my_wf" prefix="my_wf" override="true" src="data/schemas/my_wf.xsd"/>
	<schema name="Task0001" prefix="Task0001" override="true" src="data/schemas/Task0001.xsd"/
</extension>

And we reference the corresponding facets there too:

<extension target="org.nuxeo.ecm.core.schema.TypeService" point="doctype">
    <facet name="facet-Task0001">
        <schema name="Task0001"/>
    </facet>
    </extension>

We add the filters to handle the required rules:

<extension target="org.nuxeo.ecm.platform.actions.ActionService" point="filters">
    <filter id="filter@wf@my_wf">
        <rule grant="true">
            <permission>Write</permission>
            <group>administrators</group>
        </rule>
    </filter>
    </extension>

The workflow itself is called via the routing service:

<extension target="org.nuxeo.ecm.platform.routing.service" point="routeModelImporter">
    <template-resource id="my_wf" path="data/my_wf.zip"/>
</extension>

The workflow and task document.xmls are easy to understand besides the visualization component you can view in the Admin section or when the workflow is executed. But this should be mainly playing around with the coordinates.

Hope this info helps you.

Stefan

[ssze](https

Getting started

Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.