O Flowable é uma plataforma open source para gerenciamento de processos de negócios (BPM). Este guia aborda a estrutura típica de um projeto Flowable, incluindo diretórios, scripts de inicialização e configurações essenciais.
Organização de Diretórios do Projeto
Um projeto Flowable padrão segue uma estrutura de diretórios bem definida:
.
├── documentacao # Recursos de documentação
│ ├── conf.py # Arquivo de configuração do Sphinx
│ ├── principal.rst # Documento principal
│ └── ...
├── fonte-flowable # Código-fonte do Flowable
│ ├── bin # Scripts para iniciar o sistema
│ ├── lib # Bibliotecas de dependência
│ ├── src # Código-fonte do projeto
│ └── ...
├── utilitarios # Scripts auxiliares
│ ├── bd # Operações de banco de dados
│ ├── deploy # Processos de implantação
│ └── ...
└── README.md # Descrição do projeto
A pasta documentacao contém todos os materaiis de documentação, gerados com a ferramenta Sphinx.
Dentro de fonte-flowable, encontra-se o código-fonte do Flowable, incluindo scripts de execução, bibliotecas e arquivos de desenvolvimento.
A pasta utilitarios armazena scripts para inicialização de banco de dados, implantação e outras tarefas de suporte.
O arquivo README.md oferece uma visão geral do projeto e instruções para configuração inicial.
Scripts de Inicialização do Sistema
No diretório fonte-flowable/bin, estão disponíveis scripts para lançamento do Flowable:
executar.sh: Script para Linux ou macOS que inicia o serviço Flowable.executar.bat: Comando em lote para sistemas Windows.
Esses scripts configuram variáveis de ambiente, carregam dependências e invocam a máquina virtual Java para ativar o motor Flowable.
Um exemplo simplificado do script executar.sh:
#!/bin/bash
export CAMINHO_FLOWABLE=/opt/flowable
cd $CAMINHO_FLOWABLE
java -jar lib/flowable-engine.jar --server.port=8080
A variável CAMINHO_FLOWABLE indica o local de instalação, enquanto flowable-engine.jar é o arquivo principal para execução.
Configurações do Motor Flowable
O comportamento do Flowable é controlado pelo arquivo flowable.cfg.xml, geralmente localizado em fonte-flowable/conf ou definido em tempo de execução. Configurações importantes incluem:
databaseType: Tipo de banco de dados, comomysql,postgresouh2.jdbcUrl: Endereço de conexão com o banco de dados.jdbcDriver: Classe do driver JDBC utilizado.jdbcUsername: Usuário para autenticação no banco.jdbcPassword: Senha correspondente ao usuário.databaseSchemaUpdate: Define se o esquema do banco deve ser atualizado automaticamente (trueoufalse), útil durante instalações ou upgrades.
Exemplo de configuração em XML:
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<bean id="configProcessEngine" class="org.flowable.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="databaseType" value="postgres"/>
<property name="jdbcUrl" value="jdbc:postgresql://localhost:5432/flowable_db"/>
<property name="jdbcDriver" value="org.postgresql.Driver"/>
<property name="jdbcUsername" value="admin"/>
<property name="jdbcPassword" value="s3nh4"/>
<property name="databaseSchemaUpdate" value="true"/>
</bean>
</beans>
Ao integrar com Spring Boot, as configurações podem ser movidas para um arquivo application.yml no diretório src/main/resources.
Esta estrutura é comum em projetos Flowable, mas ajustes específicos podem ser necessários dependendo do ambiente.