Page tree
Skip to end of metadata
Go to start of metadata

Soffid Business Processes use JBoss JBPM engine. You can find the original JBPM documentation here.

In order to develop a new business process addon you need Eclipse Java EE IDE for Web Developers and three pluguins installed on it:

The business process addon can be build using the com.soffid.tools:maven-par-plugin addon.

They follow the JBPM conventions for .par files:

  • /processdefinition.xml contains the business process definition that you define. Example:

    <?xml version="1.0" encoding="UTF-8"?>
    <process-definition xmlns="urn:jbpm.org:jpdl-3.3"
    	name="Recertification process">
    	<description>
    		Process to execute recertification tasks.
    	</description>
    
    	<start-state name="Start">
    		<description>
    			Starts a recertification process
    		</description>
    		<transition to="Select groups"></transition>
    		<event type="before-signal">
    			<action name="Create recertification process" class="com.soffid.iam.recertification.bpm.CreateRecertificationProcessHandler"></action>
    		</event>
    	</start-state>
    
    	<task-node name="Select groups">
    		<description>
    			Selects one or more business units.
    			...
    		</description>
    		<task name="Select business units">
    			<assignment pooled-actors="SEU_ADMIN, SEU_ADMINISTRADOR, SOFFID_ADMIN"></assignment>
    		</task>
    		<transition to="Cancelled" name="Cancel"></transition>
    		<transition to="Create recertification task" name="Recertificate"></transition>
    	</task-node>
    	<node name="Create recertification task">
    		<action name="Create recertification info" class="com.soffid.iam.recertification.bpm.CreateRecertificationTaskHandler"></action>
    		<transition to="Waiting for group certification"></transition>
    	</node>
    	<state name="Waiting for group certification" async="true">
    		<transition to="Cancelled" name="Cancel"></transition>
    		<transition to="End" name="End"></transition>
    	</state>
    
    	<end-state name="Cancelled"></end-state>
    	<end-state name="End"></end-state>
    
    	<event type="process-end">
    		<action class="com.soffid.iam.recertification.bpm.ProcessFinishedHandler"></action>
    	</event>
    </process-definition>
    
  • /processimage.jpg contains a bitmap representation of the definition you have created. Example:



  • /gpd.xml contains the position of business process elements on processimage.jpb bitmap. Example:

    <?xml version="1.0" encoding="UTF-8"?>
    <root-container name="Recertification process" width="743" height="369">
      <node name="Start" x="16" y="14" width="132" height="36">
        <edge>
          <label x="5" y="-10"/>
        </edge>
      </node>
      <node name="Select groups" x="260" y="14" width="203" height="36">
        <edge>
          <label x="-135" y="-21"/>
          <bendpoint w1="314" h1="0" w2="-1" h2="-207"/>
        </edge>
        <edge>
          <label x="5" y="-10"/>
        </edge>
      </node>
      <node name="Create recertification task" x="259" y="124" width="207" height="36">
        <edge>
          <label x="5" y="-10"/>
        </edge>
      </node>
      <node name="Waiting for group certification" x="258" y="219" width="210" height="36">
        <edge>
          <label x="-14" y="-20"/>
        </edge>
        <edge>
          <label x="5" y="-10"/>
        </edge>
      </node>
      <node name="Cancelled" x="610" y="221" width="132" height="36"/>
      <node name="End" x="297" y="332" width="132" height="36"/>
    </root-container>



  • /classes directory contains the java compiled classes that support the business process that you implement.

Some additional files must be included

  • /ui.xml file describes some aspects not covered by processdefinition.xml, just like permissions, user interface and process versioning and upgrade. Example:

    <?xml version="1.0" encoding="UTF-8"?>
    <process>
    	<tag>${pom.version}</tag>
    	<roles>
    		<initiator>
    			<role name="SEU_ADMIN" />
    			<role name="SOFFID_ADMIN" />
    		</initiator>
    		<supervisor>
    			<role name="SEU_ADMIN" />
    			<role name="SOFFID_ADMIN" />
    		</supervisor>
    		<observer>
    			<role name="SEU_ADMIN" />
    			<role name="SOFFID_ADMIN" />
    		</observer>
    	</roles>
    	<task name="Select business units">
    		<file path="ui/recertificateBUform.zul" />
    	</task>
    	
    	<upgrade>
    		<process>
    			<tag>${project.version}</tag>
    		</process>
    	</upgrade>
    </process>



  • /ui directory contains the user interface (ZK) components that are needed to render the workflow tasks.

 

  • No labels