N style="mso-spacerun: yes">
Clique aqui para ler todos os artigos desta edição
Oracle Workflow
por Alexandre da Silva Oliveira
Para entender a necessidade de utilizar uma solução de workflow em uma empresa é preciso enxergá-la de uma maneira ampla, visualizando funcionários, fornecedores e clientes interagindo com as informações e com os processos que são realizados. Devemos levar em conta também a demanda e a agilidade desta interação. A base dessa interdependência está fundamentada nas informações manipuladas entre seus participantes.
Para facilitar o gerenciamento e a visualização dos processos, poderíamos desenvolver um sistema que refletisse esses processos. No entanto, isso exigiria a análise e o entendimento do relacionamento entre as pessoas e a informação, além da alocação de um ou mais programadores para a tarefa. Além disso, o desenvolvimento pode se apresentar tão complexo quanto os próprios processos imaginados, sendo que mudanças e novas complexidades poderão aparecer no decorrer do desenvolvimento, tornando-o ainda mais demorado e dispendioso. Lembre-se que vivemos em um mundo onde as regras, necessidades, objetivos e processos mudam constantemente, portanto, qualquer solução imaginada deve ser flexível para acomodar todas essas variações. Foi pensando nisso que a Oracle criou o Oracle Workflow.
No Oracle Workflow, todos os processos são criados em um ambiente gráfico, clicando e arrastando, desenhando os fluxos, definindo seus caminhos, interrupções e permissões, o que ajuda no entendimento do processo e na sua manutenção. As regras de negócios também podem ser referenciadas em seu fluxo, permitindo a modularização de sua lógica.
O funcionamento do Oracle Workflow pode ser analisado considerando quatro partes: servidor, desenvolvimento, administração e notificações.
Servidor
O Oracle Workflow tem seu engine dentro de um esquema - coleção de objetos pertencentes a um usuário do Oracle - onde fica toda sua estrutura, composta por: tabelas, views, filas avançadas (Advanced Queue), procedures, funções e as APIs (Application Program Interfaces), que serão utilizadas pelos fluxos, administração e pelos desenvolvedores.
Desenvolvimento
É feito no Workflow Builder (Figura 1). Este possui as principais estruturas para desenvolver fluxos como: loops, fluxos paralelos, junções condicionais, sub-processos, funções, setas, and, or, eventos de negócios, permitindo customização através do PL/SQL ou Java.
O fluxo poderá ser armazenado tanto no banco de dados Oracle quanto em arquivo com extensão WFT, permitindo que o trabalho seja feito off-line sem acessar o repositório de dados.
Figura 1. Workflow Builder, ambiente gráfico para desenvolvimento.
Administração
O ambiente administrativo possui uma série de funcionalidades que permitem ao administrador, dentre outras, realizar o acompanhamento dos processos, efetuar testes e personalizar o ambiente de trabalho.
O ambiente administrativo (Figura 2) roda no Oracle HTTP Server (ver Nota 1) e foi desenvolvido em PL/SQL com código aberto usando as APIs do Workflow. Estas APIs estão documentadas com exemplos de códigos em PL/SQL e Java, detalhes de sua utilização, além de mostrar o funcionamento do Workflow e dos componentes.
Nota 1. Oracle HTTP Server
O Oracle HTTP Server é baseado no Apache, que suporta a linguagem PL/SQL para Web através do módulo chamado modplsql. Desta forma, o DBA pode personalizar o ambiente administrativo do Oracle Workflow e/ou criar um ambiente em sua própria aplicação.
Figura 2. Ambiente administrativo do Workflow.
A visualização dos processos pode ser feita de forma textual ou gráfica através do Workflow Monitor (Figura 3). Ele é um applet que apresenta graficamente todo o fluxo, qual processo está sendo executado, e qual a sua situação. Na parte inferior, há informações detalhadas sobre o fluxo, como: ambiente, tempo, notificações e valores dos atributos do processo. Os botões inferiores permitem alterar o comportamento do fluxo, como pular uma etapa do processo, abortar ou suspender.
Figura 3. Workflow Monitor - Visualização gráfica do processo com informações detalhadas.
Notificações
Se durante o andamento do fluxo houver a necessidade da interferência de uma pessoa que participe e influencie no processo em andamento, ele será avisado através de notificações.
No Oracle Workflow, as notificações são acessadas pela interface Web administrativa (Figura 4) com total controle das mensagens ou, por e-mail. As mensagens podem ser em formato texto ou HTML, sendo personalizadas com dados do processo no corpo do e-mail. Também há a opção de enviar arquivos anexados.
Figura 4. Notificações via Web Browser.
Lógicas de Negócios
No Oracle Workflow, quando for necessário usar uma lógica mais complexa e específica para determinado negócio podemos criar Lógicas de Negócios para complementar as funcionalidades do fluxo.
A Listagem 1 mostra uma lógica de negócio desenvolvida em PL/SQL, chamada TEM_CREDITO, para calcular o saldo do cliente e detectar se a liberação do crédito será automática ou dependerá do diretor da empresa para a aprovação. Ela fará parte do processo solicitação de crédito, que será criado mais adiante. O crédito é baseado no saldo disponível na conta do cliente, sendo que terá aprovação automática caso o saldo seja maior ou igual a R$ 300,00.
...