Skip to content

Instantly share code, notes, and snippets.

@adolfobrunno
Last active November 24, 2017 12:20
Show Gist options
  • Save adolfobrunno/63f24612c3dfc4e42985388c1855959f to your computer and use it in GitHub Desktop.
Save adolfobrunno/63f24612c3dfc4e42985388c1855959f to your computer and use it in GitHub Desktop.
Novos elementos BPMN
<audora:task situation="está no passo 2" status="2"> <!-- 'situation' e 'status' são obrigatórios -->
<audora:script attribute="valorCobrado" value="1000"/>
<audora:script attribute="idDepartamento" value="10"/>
<audora:restrict attribute="idCargo" value="2"/>
<audora:restrict attribute="idDepartamento" value="10"/>
</audora:task>
<bpmn2:process id="Process_1" isExecutable="false">
....
<audora:process instance="fluxo_teste_workflow_1"/> <!-- Faz referência ao campo 'instancia' do módulo 'Fluxo' -->
....
</bpmn2:process>
<bpmn2:subProcess id="SubProcess_0difqui">
....
<audora:subProcess reference="fluxo_workflow_3"/>
....
</bpmn2:subProcess>
<audora:sequenceFlow>
<audora:condition>
<audora:acts operator="AND">
<audora:act instance="apelacao" signed="false"/> <!-- não usa mais o id -->
</audora:acts>
</audora:condition>
</audora:sequenceFlow>
<bpmn2:startEvent id="StartEvent_18ek49g">
<bpmn2:messageEventDefinition />
<bpmn2:extensionElements>
<audora:startEvent trigger="email" type="message"> <!-- trigger é obrigatório e será um elemento de uma lista tipos de mensagens que vamos definir (a princípio, só existe 'email')-->
<audora:attribute name="idContratoHonorario" value="4" /> <!-- aqui é o mesmo elemento usado na audora:condition -->
<audora:attribute name="valorCobrado" value="4000" />
</audora:startEvent>
</bpmn2:extensionElements>
</bpmn2:startEvent>
<bpmn:intermediateThrowEvent id="StartEvent_1">
<bpmn:messageEventDefinition /> <!-- Aqui vai seguir o mesmo conceito do elemento bpmn2:conditionalEventDefinition -->
<bpmn2:extensionElements>
<audora:intermediateThrowEvent type="message">
<audora:message instance="email" receivers="agenteResponsavel, agenteAutor"> <!-- instance é um elemento da mesma lista de tipos de mensagens acima -->
"Lorem ipsum dolor sit amet ....."
</audora:message>
</audora:intermediateThrowEvent>
</bpmn2:extensionElements>
</bpmn:intermediateThrowEvent>
<bpmn:intermediateCatchEvent id="intermediateCatchEvent_1gnwnhq">
<bpmn:incoming>SequenceFlow_1g7i09a</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_1g7i09a</bpmn:outgoing>
<bpmn:messageEventDefinition />
<bpmn2:extensionElements>
<audora:intermediateCatchEvent type="message"> <!-- Aqui vamos precisar refazer o conditionalIntermediateCatchEvent que já existe implementado. Type será o retorno da ação Workflow.GetEventTypes -->
<audora:message instance="email" />
</audora:intermediateCatchEvent>
</bpmn2:extensionElements>
</bpmn:intermediateCatchEvent>
<bpmn:intermediateCatchEvent id="intermediateCatchEvent_1gnwnhq">
<bpmn:incoming>SequenceFlow_1g7i09a</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_1g7i09a</bpmn:outgoing>
<bpmn:timerEventDefinition />
<bpmn2:extensionElements>
<audora:intermediateCatchEvent type="timer">
<audora:timer limit="10" unit="days" />
</audora:intermediateCatchEvent>
</bpmn2:extensionElements>
</bpmn:intermediateCatchEvent>
<bpmn2:startEvent id="StartEvent_18ek49g">
<bpmn2:timerEventDefinition />
<bpmn2:extensionElements>
<audora:startEvent type="timer" trigger="0 0/2 8-17 * * ?"> <!-- type será o retorno da action Workflow.GetEventTypes -->
<audora:attribute name="idContratoHonorario" value="4" /> <!-- aqui é o mesmo elemento usado na audora:condition -->
<audora:attribute name="valorCobrado" value="4000" />
</audora:startEvent>
</bpmn2:extensionElements>
</bpmn2:startEvent>
<bpmn2:startEvent id="StartEvent_18ek49g">
<bpmn2:conditionalEventDefinition />
<bpmn2:extensionElements>
<audora:startEvent type="conditional" trigger="ServicoRealizado"> <!-- trigger será o nome do bean -->
<audora:condition> <!-- mesma tag utilizada no sequenceFlow -->
<audora:attributes>
<audora:attribute name="instancia" signal="=" value="teste"/>
</audora:attributes>
</audora:condition>
<audora:attribute name="idContratoHonorario" value="4" /> <!-- aqui é o mesmo elemento usado na audora:condition -->
<audora:attribute name="valorCobrado" value="4000" />
</audora:startEvent>
</bpmn2:extensionElements>
</bpmn2:startEvent>
<audora:complexGateway>
<audora:required>SequenceFlow_02jjpgy</audora:required>
<audora:required>SequenceFlow_02jjpgy</audora:required>
</audora:complexGateway>
<bpmn2:extensionElements>
<audora:scriptTask>
<audora:sysActions>
<audora:sysAction name="Adicionar Ato">
<audora:pars key="instancia" value="peticao_inicial" />
<audora:pars key="idModeloDocumento" value="120" />
</audora:sysAction>
</audora:sysActions>
</audora:scriptTask>
</bpmn2:extensionElements>
<bpmn2:incoming>SequenceFlow_1gvk3de</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_1667i71</bpmn2:outgoing>
</bpmn2:scriptTask>
<bpmn2:eventBasedGateway id="EventBasedGateway_1pob1ec">
<bpmn2:incoming>SequenceFlow_1qu27jj</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_1a2e1sr</bpmn2:outgoing>
<bpmn2:outgoing>SequenceFlow_1og936c</bpmn2:outgoing>
<bpmn2:extensionElements>
<audora:eventBasedGateway situation="Aguardando eventos" status="5" />
</bpmn2:extensionElements>
</bpmn2:eventBasedGateway>
<audora:intermediateCatchEvent type="timer" situation="Aguardando prazo ser cumprido" status="98"> <!-- Para todos os tipos de intermediateCatchEvent -->
<audora:sequenceFlow>
<audora:condition>
<audora:acts operator="AND">
<audora:act instance="apelacao" signed="false"/>
</audora:acts>
....
<audora:form instance="instancia"> <!-- Elemento já existe. Serão add filhos -->
<audora:pars key="cpf" value="processo.agenteResponsavel.documento"/> <!-- Elemento igual ao utilizado em audora:scriptTask -->
<audora:pars key="contratoHonorario" value="processo.contratoHonorario"/>
<audora:validation> <!-- Elemento novo -->
<audora:condition> <!-- Igual ao que já é utilizado no audora:sequenceFlow, mas só com a opção de add attributes -->
<audora:attributes operator="AND"> <!-- Elemento já existe. Add somente o atributo "operator", igual ao que existe em audora:acts -->
<audora:attribute name="mapeamento" signal="=" value="valor"/> <!-- Elemento já existe -->
</audora:attributes>
</audora:condition>
</audora:validation>
</audora:form>
....
</audora:condition>
</audora:sequenceFlow>
@adolfobrunno
Copy link
Author

O retorno da action GetActions, que lista as scriptTasks disponíveis será assim agora:

{ "response": [{ "nome": "Arquivar", "descricao": "Arquivar processo", "parametros": {} }, { "nome": "RemoverRelator", "descricao": "Remover relator", "parametros": {} }, { "nome": "SortearRelator", "descricao": "Sortear relator", "parametros": {} }, { "nome": "AnexarAto", "descricao": "Adicionar Ato", "parametros": { "Servico": "instancia", "DocumentoModelo": "id" } }, { "nome": "DefinirRelatorComoResponsavel", "descricao": "Definir relator como responsável", "parametros": {} }, { "nome": "SortearResponsavel", "descricao": "Sortear responsável", "parametros": {} }, { "nome": "Distribuir", "descricao": "Distribuir processo", "parametros": {} }], "status": 200 }

Atenção para o novo atributo "parametros", que será um mapa de chave valor, que deverá ser informado ao criar (no bpmn) a scriptTask.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment