Definicja procesu


Format dokumentu XML opisującego proces

<?xml version="1.0" encoding="UTF-8"?>
<process name="hetman.proc" prefix="hetman" manager="hetman.SampleManager" stateView="hetman.view" errorView="hetman.error" breakView="hetman.break">
    <connectors>
        <connector name="connector1"/>
        <connector name="connector2"/>
        <connector .....
    </connectors>
    <states>
        <!-- full definition of state -->
        <state 
            id="STATE_A" 
            view="hetman.proc.STATE_A.view
        >
            <params>
                <param name="name1" value="1111" type="Long"/>
                <param name="name2" value="1980-08-28" type="Date" format="yyyy-MM-dd"/>
                <param name="name3" value="value3"/>
            </params>
            <transitions>
                <!-- full definition of transition -->
                <transition 
                    destination="STATE_B" 
                    label="State B" 
                    breakAfterTransition="true"
                    redirectAfterTransitionURL="http://..." 
                    action="hetman.proc.STATE_B.action" 
                    condition="hetman.proc.STATE_B.condition" 
                    form="hetman.proc.STATE_B.form"
                >
                    <params>
                        <param name="name1" value="value1"/>
                        <param name="name2" value="value2"/>
                        <param .....
                    </params>                    
                    <privs>
                        <priv id="8" />
                        <priv name="ADMIN"/>
                        <priv .....
                    </privs>                    
                </transition>
                <group name="GROUP_1" form="hetman.proc.groups.GROUP_1.form">
                    <transition destination="STATE_C" label="State C"/>
                    <transition destination="STATE_D" label="State D"/>
                </group>
            </transitions>
        </state>    
        <state id="STATE_B">
            <transitions>
                <transition destination="STATE_E"/>
            </transitions>
        </state>
        <state id="STATE_C"/>
        <state id="STATE_D"/>
 
 
        <!-- subprocess definition -->
        <subprocess name="SUBPROCESS_1">
            <state id="STATE_E" first="true">
                <transitions>
                    <transition destination="STATE_F" />
                <transitions/>    
            </state>            
            <state id="STATE_F">
                <transitions>
                    <transition destination="STATE_G" />
                    <transition destination="STATE_H" />
                <transitions/>    
            </state>
            <state id="STATE_G" last="true" success="true"/>
            <state id="STATE_H" last="true" success="false"/>
        </subprocess>    
 
    </states>
</process>

Opis atrybutów procesu

Element /process

Opis atrybutów stanu

Element /process/states/state

Opis atrybutów parametrów stanu

Element /process/states/state/params/param

Opis atrybutów przejścia

Element /process/states/state/transitions/transition

Opis atrybutów uprawnień do przejścia

Element /process/states/state/transitions/transition/privs/priv

Definicja podprocesu

Aby dla danego procesu włączyć obsługę podprocesów należy zdefiniować przynajmniej jeden podproces. Stany podprocesu należy objąć tagiem subprocess. Jeżeli dany proces ma uruchomioną obsługę podprocesów, stany nie wchodzące w skład żadnego podprocesu automatycznie tworzą podproces główny o nazwie MAIN.

Przykładowa definicja podprocesu:

<states>
    ...
    ...
 
    <!-- subprocess definition -->
    <subprocess name="SUBPROCESS_1">
        <state id="STATE_E" first="true">
            <transitions>
                <transition destination="STATE_F" />
            <transitions/>    
        </state>            
        <state id="STATE_F">
            <transitions>
                <transition destination="STATE_G" />
                <transition destination="STATE_H" />
            <transitions/>    
        </state>
        <state id="STATE_G" last="true" success="true"/>
        <state id="STATE_H" last="true" success="false"/>
    </subprocess>    
 
</states>

Element /process/states/subprocess

Element process/states/subprocess/state