segunda-feira, 21 de junho de 2010

Exemplo processo BPMN Pedido de Férias (Com jbpm)



<?xml version="1.0" encoding="UTF-8"?>
<definitions id="Pedido de Férias-id"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schema.omg.org/spec/BPMN/2.0 ../../../../../../../../../../bpmn/src/main/resources/BPMN20.xsd" xmlns="http://schema.omg.org/spec/BPMN/2.0" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://jbpm.org/example/bpmn2/vacation_request" xmlns:jbpm="http://jbpm.org/bpmn2">  <process id="Pedido de Férias" name="Pedido de Férias">
<startEvent id="startNode" />
<userTask id="Formulário  de Pedido de Férias" name="Formulário  de Pedido de Férias" implementation="other"> <potentialOwner resourceRef="user">
<resourceAssignmentExpression>
<formalExpression>Usuario.Usuario</formalExpression>
</resourceAssignmentExpression>
</potentialOwner>
<rendering id="pedido-ferias.html-form">
<jbpm:form>pedido-ferias.html</jbpm:form>
</rendering>
</userTask>
<userTask id="Verificar Pedido de Férias" name="Verificar Pedido de Férias" implementation="other">
<potentialOwner resourceRef="user">
<resourceAssignmentExpression>
<formalExpression>Usuario.Usuario</formalExpression>
</resourceAssignmentExpression>
</potentialOwner>
<rendering id="verifica-pedido-ferias.html-form">
<jbpm:form>verifica-pedido-ferias.html</jbpm:form>
</rendering>
</userTask>
<endEvent id="node-aceitar-ferias-id" name="node-aceitar-ferias-name" />
<endEvent id="node-recusar-ferias-id" name="node-aceitar-ferias-id" />
<sequenceFlow id="startFlow" name="startToFistNode"
    sourceRef="startNode" targetRef="Formulário  de Pedido de Férias" />
<sequenceFlow id="Pedir Férias" name="Pedir Férias"
    sourceRef="Formulário  de Pedido de Férias" targetRef="Verificar Pedido de Férias" >
<conditionExpression xsi:type="tFormalExpression">${jbpm_outcome == 'Pedir Férias'}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="Aceitar Férias" name="Aceitar Férias"
    sourceRef="Verificar Pedido de Férias" targetRef="node-aceitar-ferias-id" >
<conditionExpression xsi:type="tFormalExpression">${jbpm_outcome == 'Aceitar Férias'}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="Recusar Férias" name="Recusar Férias"
    sourceRef="Verificar Pedido de Férias" targetRef="node-recusar-ferias-id" >
<conditionExpression xsi:type="tFormalExpression">${jbpm_outcome == 'Recusar Férias'}</conditionExpression>
</sequenceFlow>
</process>
</definitions>


Formulários:

Formulário de Pedido de Férias

<h1>Pedido de férias</h1>
<h2>Aqui você faz seu pedido de férias</h2>
<table border="0">
<tbody>
<tr><td>Usuário Pedido de Férias: </td>
<td><input id="usuarioPedidoFerias" name="usuarioPedidoFerias" type="hidden" value="#{userLogin}" />
    #{userLogin}
</td></tr>
<tr><td>Dias de férias: </td>
<td><input id="diasFerias" name="diasFerias" type="text" value="${diasFerias}" /></td>
</tr>
</tbody>
</table>


Formulário de Verificação de Férias

<h1>Verificação de pedido de férias</h1>
<h2>Dados do pedido de férias:</h2>
<table border="0">
<tbody><tr><td>Usuário: : </td>
<td><input id="usuarioPedidoFerias" name="usuarioPedidoFerias" type="hidden" value="${usuarioPedidoFerias}" />
${usuarioPedidoFerias}</td>
</tr><tr><td>Quantidade de  dias: </td><td><input id="diasFerias" name="diasFerias" type="hidden" value="${diasFerias}" />${diasFerias}</td></tr>
</tbody>
</table>

Nenhum comentário: