Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
BulgaraCeha slovacaCroataEnglezaEstonaFinlandezaFranceza
GermanaItalianaLetonaLituanianaMaghiaraOlandezaPoloneza
SarbaSlovenaSpaniolaSuedezaTurcaUcraineana

AlimentosArteBiologíaComputadorasComunicacionesDeportesDerechoDiferentes
DrogasEconomíaEducaciónGeografíaGramáticaHistoriaIngenieríaLibros
LiteraturaMatemáticasMercadeoMúsicaQuímicaSaludSociologíaTurismo

Oracle Workflow

computadoras



+ Font mai mare | - Font mai mic



DOCUMENTE SIMILARE



Oracle Workflow

Introduao



Objetivos

Fornecer uma visao conceitual da tecnologia de Workflow

Entender os principais conceitos que envolvem esta tecnologia

Conhecer aplicabilidades da tecnologia e seus benefcios

Conhecer as facilidades de integraao com outras tecnologias

Gestao por processos

O conceito de processo pode ser entendido como:

1.- Uma srie de tarefas logicamente realcionadas que, quando executadas, produzem algo de valor para o cliente ou beneficirio do processo.

2.- Etapas logicamente estruturadas utilizadas para transformar recursos aplicados em algo de maior valor.

3.- Conjunto estruturado de atividades orientadas para produzir uma sada especifica, seja para um cliente ou para o mercado.

O modelo bsico de um processo possui como entrada os fornecedores da empresa e como sada o benefcio ou produto para o cliente. Para os fornecedores sao definidos requisitos necessrios para as entradas. Da mesma maneira, dos clientes tambm partem requisitos para as sadas desejadas. Com base nestas informaes as organizaes podem realizar seus processos da maneira como foram definidos.

Exemplo de Processo:

O processo de vendas da empresa ABC Comrcio e Distribuiao LTDA possui como entradas as metas de faturamento da empresa, a poltica de crdito e o seu Plano de Marketing. A partir destes dados, o processo de venda realizado com o intuito de gerar receita com as vendas, satisfaao nos clientes e aumentar a participaao da empresa no mercado.

Existem dois tipos bsicos de processos que sao Processos de Clientes ou de Negcios e Processos de Suporte.

Os processos classificados dentro do primeiro grupo sao ligados essncia do funcionamento da organizaao, possuem suporte dado por processos internos e o seu resultado o produto ou servio (recebido pelo cliente). Exemplos: vendas, desenvolvimento de produtos, prestaao de servios, atendimento de pedidos, entre outros.

Os processos do segundo grupo sao centrados na organizaao, viabilizam o funcionamento coordenado dos vrios subsistemas da organizaao e garantem suporte adequado aos processos de negcio. Exemplos: oramento empresarial, recrutamento e seleao, compras, entre outros.

No ingls existe o termo Process Management. A partir dele surgiram duas definies selelhantes em portugus. Sao elas Gestao DE Processos e Gestao POR Processos.

Gestao de Prcessos a aplicaao de conceitos de gestao de um ou mais processos da empresa. Neste modelo o processo passar por um ciclo (PDCA): Planejamento (Plan), Execuao (Do), Avaliaao (Check) e submissao a aes corretivas (Act).

Gestao por Processos uma filosofia de gestao que entende a empresa como sendo articulada pelos seus processos. Neste modelo a empresa estruturada, gerenciada, avaliada, compreendida e vivenciada em torno dos seus processos.

Diferenas entre as abordagens de Gestao Funcional e Gestao por Processos:

Na Gestao Funcional a responsabilidade da pessoa definida pelo cargo que possui dentro da empresa, os indicadores de desempenho medem o departamento, os objetivos e metas sao traados para o departamento, existe uma certa dificuldade para visualizar os clientes (tanto externos como internos), a comunicaao interdepartamental pode ser difcil e existe uma certa dificuldade para se entender causas de problemas.

Na Gestao por Processos a responsabilidade da pessoa definida pelo papel que ela desempenha dentro do processo, os indicadores de desempenho medem o processo como um todo, os objetos e metas sao traados para o processo, os clientes sao sempre explcitos e neles est o foco do processo, a comunicaao flui tranqilamente e existe uma boa visao do todo e da relaao causa-efeito.

Fundamentos de Workflow

O conceito de Workflow pode ser entendido como uma automaao de um determinado processo de negcio existente no contexto organizacional ou como sendo um conjunto de atividades relacionadas cuja execuao atinge um determinado objetivo da organizaao. A estrutura principal do processo de Workflow descrita a partir da contnua repetiao destas atividades, formando assim o chamado Modelo do Processo.

As organizaes realizam os seus propsitos atravs da execuao dos seus processos de negcio. Estes podem variar quanto ao tempo de execuao, abrangncia ou grau de estruturaao. Para um melhor rendimento dos processos, estes deveriam ser padronizados, sistematizados, otimizados, gerenciados e continuamente melhorados.

Geralmente, os problemas encontrados com a utilizaao de processos sao conseqncias de definies pouco claras das atividades e responsabilidades, dificuldades de se coordenar o trabalho entre vrias pessoas e em se acompanhar o andamento do processo.

Exemplo de Workflow 1:

Um processo de solicitaao de compras de um produto na empresa ABC Comrcio e Distribuiao LTDA inicia com o cadastro do pedido do produto. Este pedido contm a especificaao do produto, a quantidade desejada e uma descriao da necessidade. Aps a confirmaao da inclusao da solicitaao, o responsvel pela rea de compras encaminha o pedido (caso o produto nao esteja disponvel em estoque) para um estagirio realizar uma cotaao. Feita a cotaao, todos os oramentos passam por um processo de avaliaao e aprovaao por parte dos responsveis por compras e finanas. Se o valor total ultrapassar R$10.000,00, uma nova avaliaao deve ser realizada tambm pelo diretor da empresa.

Figura ‑ : Fluxo de solicitaao de produto

Exemplo de Workflow 2:

O processo de desenvolvimento de software na empresa ABC Technologies inicia no momento no qual o analista responsvel por um determinado projeto entra no sistema e realiza a especificaao formal do mdulo (podendo adicionar anexos como a entrevista com o cliente e os diagramas UML gerados no Rational Rose). Aps esta etapa, o analista envia o mdulo para o gerente de projetos juntamente com o perfil do profissional necessrio para desenvolvimento. O gerente verifica qual o profissional que est disponvel (baseado na lista de profissionais selecionada pelo sistema) e encaminha a especificaao para ele. Durante o desenvolvimento, o profissional pode dar a atividade como concluda e enviar o resultado para o analista. Este poder solicitar tantas alteraes quanto julgar necessrio at que finalize o processo dando o mdulo por concludo e gerando uma avaliaao do trabalho realizado.

Figura ‑ : Fluxo de desenvolvimento de software

O Workflow uma tecnologia que d suporte computacional definiao (modelagem) e execuao dos processos de negcio. A definiao de um modelo de processo contm a rede de atividades e suas dependncias, os seus critrios de incio e trmino, quais os participantes envolvidos, as regras de integridade e o contexto de trabalho da atividade (dados e documentos).

A execuao dos processos controlada automaticamente por softwares denominados WFMS (Workflow Management System) ou SGWF (Sistema de Gerncia de Workflow). O WFMS responsvel por interpretar a definiao do processo, controlar o andamento do processo de acordo com ela, interagir com os participantes e invocar aplicativos externos.

importante destacar que Workflow nao uma tecnologia para se desenvolver um sistema como, por exemplo, um sistema de controle de horas gastas pelos profissionais da empresa no desenvolvimento de atividades. O Workflow deve ser utilizado, no entanto, como suporte para que o fluxo de trabalho seja executado da maneira como o processo foi especificado.

Conceitos de Workflow

Instancia de Processo: Sempre que um novo fluxo de execuao iniciado baseado em um modelo de processo, o WFMS cria uma estrutura denominada Instancia de Processo. Exemplo: cada novo mdulo especificado gerar uma instancia do processo de desenvolvimento de software.

Atividade: Uma atividade ou tarefa a descriao de um passo lgico dentro do processo. Pode ser implementada como uma funao automatizada que executada pelo WFMS ou como uma atividade que necessita de interaao por parte do usurio especificado. Exemplo: desenvolvimento de um mdulo, atualizaao no sistema de RH do tempo gasto no desenvolvimento.

Participante ou Ator: Responsvel pela execuao de uma determinada atividade. Exemplo: pessoa (responsvel pela rea de gerncia de projetos) ou software (rotina que seleciona funcionrios que atendem ao perfil solicitado).

Papel: Define atributos, qualificaes, aptides e permisses compartilhadas por um conjunto de participantes. A criaao de papis permite desvincular nomes especficos de participantes dentro da definiao do processo. Isto permite a criaao de fluxos genricos. Exemplo: Analista de Sistemas, Gerente de Projetos.

Item de Trabalho (Workitem): Durante a execuao de uma instancia de processo, a instanciaao de uma atividade gera um item de trabalho. Ele rene todas as informaes necessrias para a realizaao da tarefa especificada.

Lista de Trabalho (Worklist): Rene todas as tarefas sob a responsabilidade de um certo participante. Cada linha desta lista representada por um Item de Trabalho.

Aplicabilidade de Sistemas de Workflow

Os Sistemas de Workflow possuem, tipicamente, as seguines funcionalidades:

Roteamento de Trabalho: a ordenaao das atividades a serem executadas (presentes na lista de trabalho) pode ser predefinida, auxiliando assim o responsvel a execut-la da melhor maneira possvel. As atividades podem estar classificadas por data de chegada crescente ou decrescente, data limite para a sua execuao crescente ou decrescente ou prioridades. Ao trmino da execuao de um item de trabalho, a atividade seguinte pode ter incio automaticamente. Estas atividades podem ter a sua execuao estabelecida com base em decises que estejam baseadas em regras (pode envolver variveis como tempo ou valores de banco de dados externo) ou em respostas de outros participantes (opao escolhida pelo usurio como sendo o resultado da sua tarefa). Exemplo: No processo de compra, quando o responsvel pelo estoque finalizar a sua atividade, o WFMS ir definir, baseado no resultado escolhido pelo participante, se o fluxo ir para a atividade de cotaao de valores ou se ser enviado um aviso para o solicitante indicando que o produto est disponvel no estoque.

Invocaao de aplicativos: Tipicamente, um aplicativo utilizado para a realizaao da atividade por um participante. possvel ter a vinculaao do aplicativo utilizado com as tarefas. Assim, sempre que um usurio selecionar um item na sua lista de trabalho, o aplicativo correspondente pode ser invocado automaticamente. Exemplo: No processo de desenvolvimento de software, o preenchimento do tempo gasto no desenvolvimento da atividade pode ser realizado diretamento no sistema de controle de RH.

Distribuiao Dinamica do Trabalho: Nas definies de processos, geralmente, nao sao especificados usurios, e sim papeis. Em tempo de execuao, a atividade identificada para o papel precisa ser atribuda para um participante. Esta resoluao pode ser feita manualmente (por um usurio administrador) ou automaticamente (pelo prprio WFMS utilizando tabelas de diretrio). O WFMS pode utilizar algoritmos de balanceamento de carga para a distribuiao de trabalho conseguindo, assim, equilibrar automaticamente a quantidade de trabalho entre os funcionrios.

Priorizaao do Trabalho: Cada item de trabalho possui um atributo que indica a sua prioridade. Esta pode ser determinada manualmente (por um usurio administrador ou gerente) ou automaticamente (pelo prprio WFMS baseado em alguma regra de modelagem). O WFMS pode utilizar-se de frmulas para calcular a prioridade considerando valores dos objetos manipulados, datas limites para a atividade ou processo, tempo de espera na lista de trabalho. Exemplo: atividades com prioridade normal passam a ter prioridade alta dois dias antes da sua data limite de execuao e, dependendo da implementaao da lista de trabalho, chamar a atenao do participante (aparecendo com uma coloraao vermelha).

Acompanhamento do Trabalho: O WFMS permite consultas imediatas referentes situaao de cada instancia do processo. Pode-se consultar, entre outros, qual a atividade corrente, qual o participante que a esta executando ou quanto tempo cada atividade levou para ser executada. Alm deste tipo de acompanhamento (denominado relativo) muitos WFMS suportam o acompanhamento pr-ativo, ou seja, pode-se definir que mensagens de lembrete serao enviadas quando uma atividade estiver se aproximando da sua data limite. Estes lembretes podem ser enviados por E-Mail ou criados como outros itens de trabalho definidos para o prprio participante ou para o seu superior imediato.

Geraao de Dados Estratgicos: Os dados da execuao das instancias de processos podem ser armazenados como nmero de instancias processadas por dia, tempo consumido por cada atividade e processo ou tempo ocioso de cada atividade (tempo no qual a atividade estava disponvel e nao foi processada). A anlise destes dados pode localizar gargalos e ineficincias no processo. Com esta anlise sobre os dados, torna-se possvel medir o impacto que o sistema de Workflow gerou sobre a organizaao.

Benefcios de Sistemas de Workflow

A correta modelagem dos processos e sua correspondente implementaao atravs de sistemas de Workflow podem trazer inmeros benefcios s organizaes, como:

Garantia da Integridade do Processo: geralmente as normas definidas pela organizaao nao sao aplicadas na prtica. Isto acontece por esquecimentos, desconhecimentos, negligncia ou tentativas de fraude. O uso de WFMS auxilia para que as regras do processo sejam baseadas nas regras da organizaao e que estas sejam respeitadas. Alm disso, o WFMS controla para que nenhuma atividade deixe de ser realizada e nao permite que elas sejam realizadas fora da ordem correta.

Manipulaao Eletrnica de Documentos: a manipulaao de documentos em forma de papel lenta, sujeita a erros e difcil de ser consistida. Os documentos podem ser substitudos por verses eletrnicas que sejam manipulveis e controlveis pelo sistema de Workflow.

Eliminaao do Tempo entre Atividades: em processos manuais, usualmente, h um tempo alto na transferncia de atividades entre um participante e outro. Isto pode acontecer em virtude da necessidade de transferncia de obejtos fsicos (documentos). Deste modo, um participante nao tem como saber se j pode iniciar a sua atividade ou nao. Com o WFMS a coordenaao entre as atividades feita de forma automtica. Assim que um usurio terminar sua tarefa o prximo receber a atividade seguinte do processo em sua lista de trabalho. Desta maneira, o tempo em que um processo fica pendente virtualmente eliminado.

Integraao das Atividades da Organizaao: a organizaao vista como uma coleao de departamentos dispersos e nao como uma entidade nica e os sistemas departamentais raramente sao integrados. Isto pode gerar insatisfaao dos clientes e prejuzo para a imagem da organizaao. Como WFMS, o processo pode conectar diferentes departamentos, unificando a visao da organizaao.

Vantagens e benefcios no uso de Sistemas de Workflow: maior produtividade dos funcionrios, melhor atendimento aos clientes, melhor controle do andamento das atividdes, menores tempos para a conclusao do processo.

Modelagem de Work flow

O desenvolvimento de Sistemas de Workflow possui os seguintes objetivos: proporcionar o mximo de retorno sobre o investimento, oferecer benefcios a curto, mdio e longo prazos, reduzir riscos de projetos.

Se uma empresa nao possui um processo estabelecido nao aconselhvel uma automatizaao. Nestes casos, existe uma elevada taxa de projetos fracassados. A soluao o redesenho administrativo-organizacional e, aps a correta definiao dos processos e papis, iniciar o desenvolvimento do Sistema de Workflow.

Na modelagem do processo de Workflow deve-se representar formalmente os elementos da realidade dos processos da organizaao, incluindo atividades, dependncias entre atividades, papis/participantes e regras de integridade. Cada WFMS possui sua tcnica prpria de modelagem. muito difcil modelar um processo de Workflow em uma ferramenta de um fornecedor e execut-lo em outro WFMS. Isto ocorre porque ainda nao existe uma padronizaao na linguagem de definies de processos. Este problema vem sendo parcialmente atacado pela WfMC (Workflow Management Coalition), rgao responsvel por ditar padres e modelos para desenvolvimento de sistemas de Workflow. J existe, inclusive, uma primeira versao de uma linguagem de desenvolvimento de processos utilizando XML.

Para a modelagem dos processos de Workflow em nvel de anlise e projeto, pode-se utilizar diversar abordagens. Uma delas, a mais utilizada atualmente, sao os Diagramas de Atividades definidos pela UML. Neles pode-se definir papeis, atividades executadas por eles e relacionamentos entre as tarefas.

Figura ‑ : Diagrama de atividades utilizado na modelagem de processos.

Integraao com outras tecnologias

Os Sistemas de Workflow podem ser integrados com outras tecnologias. A idia permitir a inclusao destes sistemas de maneira mais fcil nas organizaes.

Integraao com ambiente Web: permite a integraao cliente-empresa, empresa-empresa e empresa-funcionrio. Este aspecto facilita e barateia a instalaao do sistema alm de facilitar o treinamento dos usurios. A grande maioria das ferramentas de Workflow atuais j sao baseadas em ambiente Web.

Integraao com sistemas de GED/Content Management: Conjunto de tecnologias para capturar, armazenar, gerenciar, preservar, publicar e acessar documentos em meio eletrnico. Os processos de negcio geralmente envolvem a manipulaao de documentos. Com a integraao entre estas tecnologias, possvel adicionar documentos ao processo e consult-los ao longo do tramite. Uma efetiva gerncia de documentos exige o controle do ciclo de vida do documento, sendo possvel acompanhar todo o seu deslocamento pela organizaao (aprovaao, publicaao, descarte).

Integraao com SGBDs: integraao com dados e consistncias do banco de dados corporativo. A leitura do banco de dados realizada para fins de roteamento do processo.   A atualizaao do banco de dados para refletir o andamento do processo.

Exerccios

D um exemplo de um processo dentro da sua empresa, indicando atividades e papis envolvidos. Escolha um processo que possua transies diferentes partindo de uma atividade e tenha, no mnimo, dez atividades distintas.

Para o processo descrito no exerccio anterior, indique suas entradas e as sadas.

Desenhe o processo dos exerccios anteriores como um Diagrama de Atividades UML.

Espao para anotaes

Ambiente do Oracle Workflow

Objetivos

Compreender o ambiente necessrio para o desenvolvimento de Workflow

Verificar necessidades de instalaao de software para o Oracle Workflow

Instalaao do Oracle Workflow 10g

Uma tpica instalaao do Oracle Workflow 10g necessita a presena dos seguintes componentes:

Banco de dados Oracle 10g;

Oracle Workflow Server 2.6.3 instalado neste banco de dados;

Servidor Web (Oracle Apache Web Server), instalado e configurado para acessar o banco de dados onde est a instalaao do Oracle Workflow e o ambiente de administraao web do Workflow;

Oracle Workflow Client 2.6.3 e Oracle Workflow Builder 2.6.3 instalado na mquina cliente para o desenvolvimento dos modelos de processos.

At a versao 2.6.2, a instalaao do Oracle Workflow era fornecida juntamente com o CD de instalaao do banco de dados. Atualmente, na versao 2.6.3, o Oracle Workflow Server fornecido juntamente com o Oracle Application Server 10g.

A instalaao indivudual dos componentes que compe o Oracle Workflow (Server e Client) pode ser adquirida em atravs do link:

https://www.oracle.com/technology/software/products/workflow/index.html

Um detalhe importante que deve ser verificado aps o final da instalaao do Oracle Workflow a criaao de um DAD (Database Access Descriptor) a partir do Modo PL/SQL instalado pelo Oracle Apache. Para maiores informaes sobre a instalaao do Oracle Workflow o documento Workflow Administrators Guide disponvel atravs do link:

https://www.oracle.com/technology/documentation/database10g.htm

Arquitetura do Oracle Workflow

A arquitetura pode ser dividida como sendo composta por quatro camadas:

Cliente: composto pelas aplicaes que executam na mquina do cliente e pode ser exemplificadas pela Lista de Trabalho, aplicaes de monitoramento e anlise de processos e aplicaes de correio eletrnico.

Servidor de Aplicaes: Camada responsvel por receber e tratar as requisies do cliente. Nesta camada encontramos o Servidor de aplicaes   (podendo ser tanto o Oracle iAS ou o Oracle Apache Http Server).

Servidor de Banco de Dados: Nesta camada encontra-se todos os componentes necessrios para a execuao do Oracle Workflow, como o servio de diretrio (responsvel por definir todos os usurios e papis disponveis), servio de notificaes (responsvel por encainhar atividade e processar as respostas) e servio de engine (responsvel pela criaao e controle da execuao dos fluxos).

Ferramenta de Modelagem: Nesta camada de desenvolvimento encontra-se o Oracle Workflow Builder e a aplicaao de carga do Workflow para o banco denominada Workflow Loader.

Espao para anotaes

O Oracle Workflow

Objetivos

Entender os mdulos que compe o Oracle Workflow

Entender as diferentes terminologias e nomenclaturas utilizadas pelo Oracle Workfow

Introduao

O Oralce Workflow o Sistema de Gerncia de Workflow desenvolvido pela Oracle, uma das mais respeitadas empresas em matria de banco de dados do mundo.

O produto composto por cinco mdulos:

Oracle Workflow Builder: ferramenta grfica que permite a definiao e modelagem dos processos de negcio. Esta ferramente uma aplicaao do tipo Desktop.

Workflow Engine: mdulo responsvel por executar e gerenciar os processos de negcio modelados no Workflow Builder.

Notification System: mdulo responsvel por delegar as atividades e processar as respostas definidas pelos participantes do processo.

Workflow Monitor: mdulo que permite a busca e monitoramento dos processos existentes na base de dados do Oracle Workflow. Possui uma interface Web.

Business Event System: mdulo que realiza a comunicaao do Oracle Workflow com outros sistemas atravs da utilizaao de filas de mensagens. Geralmente, estas mensagens sao implementadas utilizando XML.

Com exceao do Oracle Workflow Builder, todos os demais mdulos sao implementados como uma srie de objetos de banco de dados: tabelas, vises (views), gatilhos (triggers) e aplicativos (packages) escritso em PL/SQL. A instalaao padrao do Oracle Workflow cria um usurio (geralmente denominado OWF_MGR) que ir conter todos estes objetos.

A soluao adotada pela Oracle em implementar o seu Sistema de Gerncia de Workflow atravs da utilizaao de objetos de banco de dados permite que o mesmo tire proveito de todas as funcionalidades j existentes no SGBD Oracle, pois este possui um sofisticado sistema de persistncia de informaes e de controle de acessos.

O Oracle Workflow possui um sofisticado controle de versao de processos, mantendo cada instancia executando o modelo do processo para o qual foi iniciada, mesmo que a versao atual do modelo esteja alterada. O Oracle Workflow Builder associa um nmero de versao para cada atividade criada e atualiza este nmero sempre que alteraes sao feitas em atividades existentes. As novas verses da atividade sao salvas na base de dados sem sobrescrever verses anteriores.

Por exemplo, digamos que temos na base de dados a versao 1 do processo de Desenvolvimento de Software. Algumas instancias sao iniciadas e nota-se que alteraes no modelo do processo sao necessrias e, na geraao da versao 2, duas novas atividades foram acrescentadas ao processo. As instancias que ainda estiverem ativas na Oracle Workflow irao terminar a sua execuao seguindo o modelo da versao 1 e nao irao executar as duas novas atividades.

Terminologias

Apesar do modelo de implementaao da soluao de Workflow da Oracle possuir uma boa convergncia com os padres definidos pela WfMC, existem algumas diferenas quanto a nomenclaturas e terminologias. Este captulo visa explicar estas terminologias e familializar o aluno para o uso do Oracle Workflow Builder.

Item Type

Um processo, conforme j discutido, um conjunto de atividades que possuem determinados relacionamentos. Este conjunto de atividades denominado processo.

O Oracle Workflow define que um processo um objeto chamado Item Type. Este dado identifica unicamente os modelos de processos existentes na base de dados.

Este objeto armazena a definiao de todas as atividades que podem ser utilizadas por ele. O Item Type definido como um valor textual de oito caracteres. Alm disso, deve possuir um texto de visualizaao (30 caracteres) e pode conter uma descriao.

Exemplo: O processo de desenvolvimento de softwares teria como Item Type o texto DESENVSW. O nome de visualiaao seria Processo de Desenvolvimento de Softwares e a descriao poderia conter o objetivo deste processo, autor e atual versao, entre outros.

Item Key

Cada Insancia de Processo criada e iniciada no Oracle Workflow deve possuir um valor identificador. O Oracle Workflow chama este identificador de Item Key. Uma instancia unicamente identificada pela composiao do par Item Type e Item Key.

Um Item Key deve ser nico para um determinado Item Type. Porm Item Types diferentes podem possuir mesmos valores para Item Key.

O Item Key um valor textual e pode ser definido de acordo com o padrao de identificaao de dados da empresa. Pode ser um valor numrico seqencial ou um outro dado qualquer.

Exemplo: Para o processo de desenvolvimento de softwares podemos ter os pares DESENVSW + 01 e DESENVSW + SIST_RH_MOD_01 como identificadores de instancias diferentes, sendo 01 e SIST_RH_MOD_01 como Item Key.

User Key

Cara Instancia de Processo pode possuir um texto para auxlio na identificaao das instancias no mdulo de busca e monitoraao de processos. Este valor denominado User Key.

O User Key pode conter qualquer dado e deve ser definido de modo a auxiliar o participante a consultar o seu processo.

Exemplo: O processo de desenvolvimento de softwares pode ter como identificaao o par DESENVSW + 01. Para o User Key poderia ser definido o texto Sistema RH Mdulo 01.

Processes

Um processo ou sub-processo uma estrutura que armazena um conjunto de atividades interligadas por transies. Um processo sempre possui uma nica funao que indica o seu incio e uma ou mais funes que indicam o seu final.

Um sub-processo um processo inserido dentro de um processo. A idia de sub-processos interessante pois permite encapsular em uma estrutura uma determinada parte do modelo, melhorando a legibilidade da definiao do processo.

Activities

Todas as atividades que podem ser executadas no Oracle Workflow sao classificadas como Activities. Existem trs tipos bsicos de atividades definidos no produto que sao funes, eventos e notificaes.

Fazendo uma analogia com o modelo de Orientaes a Objetos, se pode entender atividades como sendo a super classe da qual todas as demais atividades sao extendidads.

Functions

Funes sao atividades automatizadas que sao executadas pelo Workflow Engine. Este tipo de atividade exige que seja definida a rotina a ser executada. Estas rotinas sao, geralmente, implementada em PL/SQL.

Events

Eventos sao atividades que realizam comunicaao com as filas de mensagens definidas pelo Oracle Workflow. Estas atividades sao muito interessantes quando se deseja que o Workflow realize uma comunicaao assncrona com outros sistemas. Existem dois tipo bsicos de eventos: envio de mensagem e espera mensagens.

Notifications

Notificaes sao um tipo especial de atividade que define a iteraao do Oracle Workflow com algum participante do sistema. Estas atividades sao sempre acompanhadas de uma mensagem que indica para o participante em que consiste a tarefa que esta sobre a sua responsabilidade. O participante pode ser definido como um usurio do sistema ou um papel.

As notificaes podem conter funes PL/SQL associadas denominadas Post Notifications. Estas rotinas definem o que pode ser executado na base do Workflow quando a notificaao finalizada, por exemplo.

Messages

Mensagens sao objetos especiais que indicam para o participante a tarefa que este deve executar. Uma mensagem sempre composta por um ttulo (utilizado na lista de trabalho para identificar o item de trabalho) e um corpo da mensagem.

No corpo da mensagem pode estar presente qualquer informaao que o autor do processo de Workflow julgar necessrio. Como os mdulos de lista de trabalho sao geralmente implementados para sistemas web, a mensagem pode ser especificada utilizando tags HTML.

Attributes

Existem trs tipos de atributos que podem ser utilizados no Oracle Workflow.

Cada Instancia de Processo pode conter um nmero nao limitado de atributos. Eles sao utilizados tanto para controle quanto para armazenar informaes definidas pelo participante que iniciou o fluxo. Estes atributos estao sempre acessveis por todas as atividades presentes no processo.

As atividades podem conter atributos de controle. Estes atributos devem ser definidos em nvel de especificaao do modelo do processo e sao utilizados para controle e roteamento de trabalho.

As mensagens tambm podem conter atributos. Eles sao utilizados para auxiliar o participanete a desenvolver a sua tarefa. Estes atributos sao geralmente do tipo SEND e podem refletir atributos definidos no processo. Existem tambm atributos definidos como sendo do tipo RESPOND. Estes atributos irao armazenar respostas definidas pelo participante e irao ser implementados como campos de formulrio pelo aplicativo de lista de trabalho e poderao ser utilizados para tomadas de decises sobre os possveis caminhos que o fluxo pode tomar ou para auxiliar outros atores a desenvolverem suas atividades.

Lookup Types

Tanto funes como notificaes podem ter um tipo de retorno associado que utiizado para modelar as possveis transaes de roteamento de trabalho. Para modelar estas informaes, o Oracle Workflow define estruturas que armazenam todas as opes disponveis. Esta estrutura denominada Lookup Type.

Um Lookup Type possui um nome de identificaao interno nico e uma descriao que permite a sua identificaao visual.

Exemplo: No processo de desenvolvimento de software, um Lookup Type que pode ser definido teria o nome interno definido como APROVACAO_MODULO e a descriao seria Aprovaao de Mdulo Desenvolvido.

Lookup Codes

Cada um dos itens que estao disponveis para um Lookup Type denominado Lookup Code. Ele tambm definido como tento um nome interno e um nome de identificaao visual.

Exemplo: Para o Lookup Type APROVACAO_MODULO, pode-se ter trs possuveis Lookup Codes definidos como APROVADO (Mdulo Aprovado), REPROVADO (Mdulo Reprovado) e CANCELADO (Mdulo Cancelado).

Exerccios

Defina um Item Type para o processo definido no exerccio do Captulo 1. Defina tambm um nome de visualizaao e uma descriao.

Seguindo o processo definido no exerccio do Captulo 1, defina quais as atividades que poderiam ser implementadas como funes automatizadas e quais poderiam ser definidas como notificaes.

Seguindo o processo definido no exerccio do Captulo 1, defina quais os atributos poderiam estar disponveis para o processo.

Seguindo o processo definido no exerccio do Captulo 1, e baseado nas possveis rotas entre as atividades, defina os Lookup Types e Lookup Codes que podem estar disponveis no seu Item Type.

Espao para anotaes

Oracle Workflow Builder

Objetivos

Conhecer a ferramenta de modelagem de processos do Oracle Workflow

Identificar as estruturas que fazem parte desta ferramenta

Aprender como iniciar o desenvolvimento de processos de negcio

Overview do Oracle Workflow Builder

O Oracle Workflow Builder uma ferramenta grfica utilizada para a criaao, visualizaao e modificaao de modelos de processos de Workflow. O software (do tipo Desktop) possui uma Janela de Navegaao (Navigator) utilizada para a definiao de atividades e componentes que serao utilizados pelos processos e janelas auxiliares que exibem os processos definidos.

Um processo de Workflow pode ser salvo de duas maneiras: como um arquivo localizado na estrutura de diretrios padrao das mquinas ou no banco de dados. Sempre que um processo estiver salvo no banco de dados, ele estar disponvel para a execuao (a menos que uma aplicaao controle a inicializaao de processos). Os processos deverao ser sempre salvos no usurio no qual o Oracle Workflow foi instalado (geralmente denominado OWF_MGR).

Figura ‑ : Visao geral do Oracle Workflow Builder

Estrutura da rvore de Navegaao do Workflow Builder

O Navigator exibe uma rvore hierrquica de navegaao para cada modelo de processo criado e carregado no Oracle Workflow Builder. A raiz da rvore, denominada Data Store indica se o modelo de processo carregado est salvo em arquivo ou no banco de dados. Para cada Data Store existe, pelo menos, um Item Type definido. O Item Type sempre representado pelo primeiro ramo da rvore que um cone em forma de folha com o canto direito dobrado para dentro e com texto escrito em azul.

Figura ‑ : Processo salvo em arquivo (esquerda) e em banco de dados (direita)

Cada modelo de processo possui sete ramos principais que definem os componentes disponveis para o Item Type:

Atributos (Attributes): Lista de atributos disponveis para o processo. Cada atributo pode representar uma informaao associada ao modelo de processo. Cada instancia criada possui uma cpia de todos os atributos e define valores particulares. Exemplo: No processo de Desenvolvimento de Software os atributos que devem ser definidos na criaao de uma nova instancia sao o identificador do mdulo cadastrado no sistema de modelagem da empresa, o username do Analista responsvel e o perfil de desenvolvedor necessrio para a implementaao do mdulo.

Processos (Processes): Lista de processos e sub-processos definidos para o Item Type atual. Exemplo: No processo de Desenvolvimento de Software o fluxo principal que inicia com a especificaao e termina com a aprovaao do mdulo implementado constitui o processo principal. A etapa de avaliaao do que foi implementado poderia ser agrupara em um sub-processo melhorando a legibilidade do processo principal.

Notificaes (Notifications): Lista de atividades do tipo notificaes associadas ao Item Type atual. Exemplo: No processo de Desenvolvimento de Software uma notificaao seria enviada ao desenvolvedor selecionado pelo Gerente de Projetos indicando a tarefa atribuda a ele.

Funes (Functions): Lista de atividade do tipo funao associadas ao Item Type atual. Uma funao esta sempre associada a uma rotina implementa pelo desenvolvedor do modelo do processo. Exemplo: No processo de Desenvolvimento de Software uma funao seria responsvel por busca na base de dados da empresa todos os desenvolvedores que atendam ao perfil solicitado pelo analista e que estejam com tempo de alocaao disponvel.

Eventos (Events): Lista de atividades do tipo eventos associadas ao Item Type atual. Exemplo: Digamos que o processo de Desenvolvimento de Software seja necessrio avisar de forma assncrona uma aplicaao externa ao Oracle Workflow quando o mdulo estiver pronto. Um evento de envio de mensagem seri disparado.

Mensagens (Messages): Lista de mensagens que as atividades do tipo notificaao associadas ao Item Type atual podem enviar para os participantes. Exemplo: A notificaao de desenvolvimento de mdulo, enviada ao desenvolvedor selecionado deve conter uma mensagem indicando o analista que solicitou a implementaao, bem como o que deve ser implementado, qual a prioridade deste desenvolvimento e o prazo.

Lookup Types: Lista de Lookup Types associados ao Item Type atual. Cada Lookup Type deve ter pelo menos um Lookup Code associado.

Figura ‑ : Estrutura da rove de navegaao do Workflow Builder

Cada Data Store tambm possui um ramo a partir da raiz que conte as definies de Diretrio (Directory Service). Nele sao listados os papis (roles) que estao que foram carregados a partir do banco de dados do Workflow.

Figura ‑ : Ramo da rvore para manipulaao de papis

Sempre que o Data Store representar uma conexao com o banco de dados e existirem outros modelos de processos que nao foram carregados para o Workflow Builder, um ramo denominado Hidden Item Types ir aparecer. Quando ele for acionado (duplo clique no seu cone) ser exibida uma janela listando os demais modelos disponveis (ao lado direito), bem como os modelos j carregados (lado esquerdo). A paritr desta janela, novos modelos poderao ser acionados para o Data Store atual.

Figura ‑ : Ramo da rvore para manipulaao dos Item Type disponveis

Utilizando o Quick Start Wizard para criaao rpida de novos processos

O Quick Start Wizard uma opao disponibilizada pelo Oracle Workflow Builder que possibilita a criaao das estruturas bsicas para a definiao de processos rapidamente. Ele baseado em um arquivo denominado wftemplate.wft como sendo um modelo previamente definido pela Oracle.

Para acessar o Quick Start Wizard, abra o Oracle Workflow Builder, clique no menu File e na opao Quick Start Wizard ou pressione as teclas de atalho Ctrl + Q. Uma janela ser apresentada solicitando as informaes mnimas para a criaao de um novo modelo de processo.

 

Figura ‑ : Janela principal do Quick Start Wizard

As informaes que serao solicitadas para a definiao do modelo do Processo, na rea New Item Type sao:

Internal Name: Nome interno identificador do novo Item Type. Deve ser especificado um valor textual de, no mximo, 8 caracteres e em maisculo. Assim como todas as definies de nomes internos no Oracle Workflow Builder, este dado nao deve conter espaos ou outros caracteres especiais como vrgulas, pontos, entre outros. O novo Item Type nao pode existir na base de dados do Oracle Workflow.

Display Name: Nome curto utilizado para a identificaao visual do processo. Deve ter, no mximo, 80 caracteres.

Persistence Type: Deve ser escolhido Temporary ou Permanent. Este dado utilizado para controlar quanto tempo os dados de execuao de cada instancia do Item Type sao armazenadas na trilha de auditoria do Oracle Workflow. O tipo Permanent mantm os dados por tempo indeterminado at que sejam removidos manualmente enquanto que o tipo Temporary mantm os dados por um tempo especificado.

Number Of Days: Se o tipo de persistncia escolhido for Temporary, deve ser especificado o nmero de dias a partir da data de finalizaao de uma instancia antes que os dados contidos na trilha de auditoria possam ser excludos.

O Quick Start Wizard tambm cria um processo padrao para o novo Item Type. Para a definiao do processo, identificado pela rea New Process, sao solicitados os seguintes dados:

Internal Name: Nome interno identificador do processo. O nome deve ser escrito em maisculas e nao pode estar repetido dentro do mesmo processo. Deve ter, no mximo, 30 caracteres.

Display Name Nome curto para a identificaao visual do processo. Deve ter, no mximo, 80 caracteres.

Quando todos os dados estiverem especificados e o botao Ok for clicado, o Quick Start Wizard ir gerar uma nova estrutura do Data Store denominada Untitled-n na janela do Navigator.

Um novo Item Type ser criado neste Data Store utilizando as informaes especificadas pelo desenvolvedor. Voc pode notar que um segundo Item Type denominado Standard tambm est disponvel no Data Store criado. Este Item Type (discutido mais adiante no curso) contm uma srie de funes padres definidas pela Oracle que podem ser utilizadas sempre que atenderem as necessidades do processo.

Um processo tambm definido e uma janela indicando o seu contedo aberta. O processo j ir conter duas funes definidas, uma de incio e outra de final de fluxo. A partir deste ponto, o desenvolvimento do fluxo pode ser iniciado.

A figura exibida no item Overview do Oracle Workflow Builder ilustra a tela gerada pelo Quick Start Wizard.

Criando um novo modelo de processo

Para criar um novo modelo de processo crie um novo Data Store a partir do menu File, opao New, ou pressione as teclas de atalho Ctrl + N. Para criar um novo Item Type, clique com o botao direito sobre o cone representativo do Data Store e clique em New Item Type.

Ser exibida uma janela com trs abas: Item Type, Role e Access.

Os dados que deverao ser especificados na aba denominada Item Type se devem ser:

Internal Name: Nome interno identificador do novo Item Type. Deve seguir as mesmas normas utilizadas pelo Quick Start Wizard. Este campo obrigatrio.

Display Name: Nome curto utilizado para a identificaao visual do processo. Deve ter, no mximo, 80 caracteres. Este campo obrigatrio.

Description: Descriao opcional do Item Type. O texto pode conter informaes detalhadas sobre o uso do processo, informaes necessrias para iniciar uma nova instancia, autor, entre outros.

Persistence: Esta informaao deve ser selecionada da mesma maneira que o item Persistence Type do Quick Start Wizard.

Number Of Days: Esta informaao tambm deve ser seleciona da mesma maneira que no Quick Start Wizard.

Selector: Deve identificar uma rotina PL/SQL que indica para o Oracle Workflow o nome interno do processo principal que deve ser executado sempre que uma nova instancia for criada e nenhum processo for identificado. Ser detalhado mais adiante no curso.

Figura ‑ : Aba Item Type para criaao de um novo processo

Abrindo um modelo de processo existente

Para abrir um processo j existente, o desenvolvedor pode proceder de duas maneiras: abrir um processo salvo em arquivo ou salvo no banco de dados.

Para abrir um processo deve-se selecionar o menu File e a opao Open ou pressionar as teclas de atalho Ctrl + O. Uma janela ser apresentada para a seleao do modelo do processo desejado.

Para abrir um modelo salvo em arquivo, selecione a opao File e clique no botao Browse. Uma janela de seleao de arquivo ser aberta e o desenvolvedor dever buscar o diretrio e o arquivo que contm o processo desejado. Aps a seleao, clique em Open. O processo ser carregado e ficar disponvel no Navigator.

Para abrir um modelo salvo no banco de dados, selecione a opao Database. Preencha os campos User, Password e Connect com o usurio de banco no qual foi instalado o Oracle Workflow Builder, a senha deste usurio e o nome de conexao com o banco de dados.

O campo Effective opcional e deve conter uma data a partir da qual se deseja abrir um modelo de processo. Este campo deve ser utilizado sempre que se desejar abrir uma versao do procesos que passou a estar ativa a partir de uma data especfica.

 

Figura ‑ : Janela para abertura de um processo j existente

Salvando um modelo de processo

Para salvar um processo, o desenvolvedor pode proceder de duas maneiras: salvar em arquivo ou no banco de dados.

Para salvar um processo deve-se selecionar o menu File e a opao Save ou Save As. Caso o processo j esteja salvo, a opao Save ir simplesmente atualizar o processo, seja em arquivo ou no banco de dados (no caso de banco de dados, uma nova versao do processo criada por esta opao).

Caso o processo ainda nao esteja salvo e a opao Save for selecionada ou a opao Save As seja escolhida, uma janela ser apresentada para a salvar o processo. A janela semelhante de abertura de processos.

Para salvar um modelo em arquivo, selecione a opao File e clique no botao Browse. Uma janela de seleao de arquivo ser aberta e o desenvolvedor dever buscar o diretrio e indicar um nome para o arquivo que ir armazenar o processo. Aps a seleao, clique em Save.

Para salvar um modelo no banco de dados, selecione a opao Database. Preencha os campos User, Password e Connect com o usurio de banco no qual foi instalado o Oracle Workflow Builder, a senha deste usurio e o nome de conexao com o banco de dados.

O campo Effective opcional e pode ser utilizado para se especificar uma data futura a partir da qual esta versao do processo estar disponvel para uso no Oracle Workflow.

Exerccios

Utilizando o Quick Start Wizard, crie um Item Type e um processo para o modelo definido nos exerccios do Captulo 3.

Salve o processo criado utilizando o sistema de arquivos.

Espao para anotaes

Modelando Processos de Workflow

Objetivos

Entender as diferentes abordagens de modelagem de processos de negcio

Aprender a criar os principais objetos definidos no Oracle Workflow

Entender a utilizaao de todos os campos das propriedades dos objetos

Escolhendo o tipo de modelagem

Antes de iniciar o desenvolvimento de um modelo de processo no Oracle Workflow Builder, deve-se planejar cuidadosamente o processo que ser desenvolvido. Deve-se determinar quais atividades devem estar presentes, sua ordem, quais os resultados definem as diferentes transies do processo, quais usurios (ou perfis) devem estar envolvidos e o que eles precisam saber para realizar suas atividades.

Outro ponto que deve ser planejado a abordagem de desenvolvimento do processo. Existem duas maneiras:

Top-Down: Neste tipo de abordagem deve-se definir em alto nvel o processo, criando o diagrama bsico do processo, ou seja, criar apenas as atividades, notificaes e as transies entre elas. Aps a definiao do processo inteiro, volta-se para gerar os objetos de suporte necessrios para cada atividade.

Bottom-Up: Este tipo de abordagem deve ser utilizada no caso de se desejar um desenvolvimento mais programtico. Primeiro, se define os objetos de suporte, tais como rotinas PL/SQL, atributos e mensagens. Aps, cria-se os objetos que definem as atividades, notificaes e processos. Por final, se definem os diagramas e se as transies entre as atividades.

Desenvolvendo notificaes

Conforme j discutido, notificaes sao um tipo especial de atividade que realiza a iteraao do processo de Workflow com algum participante. Existem dois tipos de notificaes:

Tomada de Decisao (Response Required): atividade onde o usurio dever realizar uma tarefa e, ao final, tomar uma decisao baseada nas opes disponveis. Este tipo de atividade est sempre associada a um conjunto de resultados (Item Type). Sempre que o Workflow Engine encontra este tipo de atividade, o andamento do fuxo suspenso at que o usurio finalize a tarefa ou que o tempo limite para a sua execuao seja alcanado (situaao de timeout). Exemplo: Desenvolvimento de um mdulo.

Aviso (For Your Information FYI): atividade que apenas definem uma mensagem de aviso ou lembrete. Nao requer nenhuma tomada de decisao por parte do usurio. O Workflow Engine nunca tranca a execuao do fluxo para este tipo de atividade. Exemplo: Aviso para o Analista que o desenvolvimento do mdulo est atrasado.

Para iniciar o desenvolvimento de uma nova notificaao, clique com o botao direito do mouse sobre o item Notifications dentro Item Type correspondente e selecione a opao New Notification. Ir ser aberta uma janela para definiao das propriedades da notificaao.

 

Figura ‑ : Propriedades principais de uma notificaao

As propriedades da aba Activity que deverao ser definidas sao:

Internal Name: Nome interno identificador da notificaao. Deve ser escrito em maisculas e nao pode estar repetido dentro das atividades (funes, notificaes, eventos ou processos). Deve ter, no mximo, 30 caracteres. Este campo obrigatrio.

Display Name: Nome de identificaao visual da notificaao. Deve ter, no mximo, 240 caracteres. Este campo obrigatrio.

Description: Descriao opcional da notificaao. O texto pode conter informaes detalhadas sobre o uso da notificaao, o que o participante deve fazer, qual o papel que ir receber esta notificaao, entre outros.

Icon: Deve ser selecionado um cone padrao que ir representar visualmente a notificaao.

Function Name: Post Notification que ser executada sempre que a notificaao for criada, finalizada ou atingir o seu prazo limite. Geralmente, este estas rotinas sao utilizadas para validar o preenchimento de campos obrigatrios em notificaes do tipo Response Required. uma funao PL/SQL e dever ser especificada da seguinte maneira <Nome_Da_Package>.<Nome_Da_Rotina>. Caso o usurio do Workflow nao possua sinnimos para a package especificada ou esta estiver salva em um usurio diferente (recomendado), o caminho da Post Notification dever ser precedido pelo nome do usurio seguido de um ponto. Esta rotina possui uma assinatura padrao que ser estudada mais adiante no curso.

Result Type: Lista contendo o nome de visualizaao de todos os Lookup Types criados para o Item Type atual. Tambm exibido todos os Lookup Types criados nos demais Item Types carregados no Data Store atual. Se a notificaao que esta sendo modelada for do tipo Response Required este campo de seleao obrigatria. Todos os Lookup Codes definidos para o Lookup Type selecionado aparecerao como possveis resultados para a notificaao (botes de aao ou uma caixa de seleao, caso o nmero de resultados possveis ultrapasse quatro). Se a notificaao for do tipo For Your Information, este campo deve ficar marcado com a opao <None>.

Message: Lista contendo o nome de visualizaao de todas as mensagens definidas para o Item Type atual. Dever ser selecionada a mensagem que ser enviada juntamente com a notificaao modelada. Este campo obrigatrio. Se a notificaao for do tipo Response Required, a mensagem selecionada deve, obrigatoriamente, definir o mesmo Lookup Type selecionado no campo Result Type como seu resultado. Se a notificaao for do tipo For Your Information, a mensagem selecionada nao poder ter resultados definidos. Mensagens serao estudadas mais adiante neste captulo.

Desenvolvendo funes automatizadas

Funes automatizadas sao a representaao visual de rotinas executadas automaticamente pelo Workflow Engine.

Para iniciar o desenvolvimento de uma nova funao, clique com o botao direito do mouse sobre o item Functions dentro Item Type correspondente e selecione a opao New Function. Ir ser aberta uma janela para definiao das propriedades da funao.

Figura ‑ : Propriedades principais de uma funao

As propriedades da aba Activity que deverao ser definidas sao:

Internal Name: Nome interno identificador da funao. Deve ser escrito em maisculas e nao pode estar repetido dentro das atividades (funes, notificaes, eventos ou processos). Deve ter, no mximo, 30 caracteres. Este campo obrigatrio.

Display Name: Nome de identificaao visual da funao. Deve ter, no mximo, 240 caracteres. Este campo obrigatrio.

Description: Descriao opcional da funao. O texto pode conter informaes detalhadas sobre como a funao funciona, dados que precisa para executar, dados gerados, entre outros.

Icon: Deve ser selecionado um cone padrao que ir representar visualmente a funao.

Function Name: Campo obrigatrio que especifica a rotina que ser executada pela funao. Se for uma rotina PL/SQL, dever ser especificada da seguinte maneira <Nome_Da_Package>.<Nome_Da_Rotina>. Caso o usurio do Workflow nao possua sinnimos para a package especificada ou esta estiver salva em um usurio diferente (recomendado), o caminho da rotina dever ser precedido pelo nome do usurio seguido de um ponto. Esta rotina possui uma assinatura padrao que ser estudada mais adiante no curso.

Function Type: Tipo da rotina executada pela funao. Pode ser PL/SQL, External ou External Java. O curso ir abordar o desenvolvimento de rotinas PL/SQL.

Result Type: Lista contendo o nome de visualizaao de todos os Lookup Types criados para o Item Type atual. Tambm exibido todos os Lookup Types criados nos demais Item Types carregados no Data Store atual. Se a funao definir um resultado, este dever ser definido pela rotina PL/SQL correspondente, conforme ser abordado adiante no curso.

Cost: Valor representando o nmero de segundos que o Workflow Engine ir levar para executar a atividade. Caso este tempo seja desconhecido, um valor estimado pode ser definido inicialmente e, aps alguns testes, atualizado. Geralmente, um custo alto deve ser associado para rotinas complexas e que levam muito tempo executando. O valor estipulado deve estar entre 0.00 e 1,000,000.00. O Workflow Engine pode ser configurado de maneira a postergar a execuao de atividades com o custo maior do que um valor especificado. O Engine continua entao processando a prxima atividade pendente que pode ser executada.

Desenvolvendo processos

Processos (ou Sub-Processos) sao objetos que armazenam um conjunto de atividades e suas transies.

Para iniciar o desenvolvimento de um novo processo, clique com o botao direito do mouse sobre o item Processes dentro Item Type correspondente e selecione a opao New Process. Ir ser aberta uma janela para definiao das propriedades do processo.

Figura ‑ : Propriedades principais de um processo

As propriedades da aba Activity que deverao ser definidas sao:

Internal Name: Nome interno identificador do processo. Deve ser escrito em maisculas e nao pode estar repetido dentro das atividades (funes, notificaes, eventos ou processos). Deve ter, no mximo, 30 caracteres. Este campo obrigatrio.

Display Name: Nome de identificaao visual do processo. Deve ter, no mximo, 240 caracteres. Este campo obrigatrio.

Description: Descriao opcional do processo. O texto pode conter informaes detalhadas sobre qual a finalidade do processo, em qual processo est includo (se for um sub-processo), entre outros.

Icon: Deve ser selecionado um cone padrao que ir representar visualmente o processo. Quando um sub-processo includo em um processo, o cone selecionado ser exibido com uma pequena engrenagem amarela no seu canto superior direito.

Result Type: Lista contendo o nome de visualizaao de todos os Lookup Types criados para o Item Type atual. Tambm exibido todos os Lookup Types criados nos demais Item Types carregados no Data Store atual. Um sub-processo pode conter um resultado que ser utilizado para roteamento de trabalho.

Runnable Flag: Indica se o objeto que est sendo criado um processo (flag selecionada) ou um sub-processo (flag nao selecionada). Processos que possurem a flag selecionada, poderao ser inicializados como fluxos principais de instancias de processos.

Desenvolvendo atributos

Para iniciar o desenvolvimento de um novo atributo, primeiro, deve-se escolher a origem dele, ou seja, se um atributo de processo, atividade ou mensagem. Aps, clique com o botao direito do mouse sobre a origem (item Attributes, item que representa a mensagem desejada, item que representa a funao ou notificaao), dentro Item Type correspondente e selecione a opao New Attribute. Ir ser aberta uma janela para definiao das propriedades do atributo.

 

Figura ‑ : Propriedades principais de um atributo

As propriedades da aba Attribute que deverao ser definidas sao:

Internal Name: Nome interno identificador do atributo. Deve ser escrito em maisculas e nao pode estar repetido dentro dos atributos do grupo para o qual esta sendo criado. Deve ter, no mximo, 30 caracteres. Este campo obrigatrio.

Display Name: Nome de identificaao visual do atributo. Deve ter, no mximo, 240 caracteres. Este campo obrigatrio.

Description: Descriao opcional do atributo. O texto pode conter informaes detalhadas sobre qual a utilizaao do atributo, de onde obtido o seu valor, entre outros.

Type: Tipo de dado que o atributo ir armazenar no campo Value. Alguns tipos de dados podem necessitar de valores adicionais. Os valores que estao disponveis sao:

TEXT: Indica que o valor do atributo um texto. O campo Lenght poder ser preenchido com o tamanho mximo de caracteres permitidos para o texto.

NUMBER: Indica que o valor do atributo um nmero. O campo Format poder ser preenchido com a mscara de exibiao para o nmero (utilizado em atributos de mensagem). Exemplo: a mscara 0.00 indica que o valor do atributo ser exibido como um nmero antes da vrgula e dois depois e, se nenhum valor for especificado, ser mostrado o nmero 0.

DATE: Iindica que o valor do atributo uma data. O campo Format poder ser preenchido com a mscara de exibiao para a data (utilizado em atributos de mensagem). Exemplo: a mscara dd/mm/yyyy hh24:mi:ss indica que o valor do atributo ser exibido como sendo dia, ms, ano, horas (formato 24 horas), minutos e segundos.

LOOKUP: Indica que o valor do atributo um dos Lookup Codes especificados pelo campo Lookup Type. Quando for um atributo de mensagem do tipo Respond e tiver sendo utilizada a Lista de Trabalho implementada pelo prprio Oracle Worflow, este atributo ser apresentado como uma caixa de seleao (combo box) onde cada linha um dos Lookup Codes possveis.

FORM: Indica que o valor do atributo o nome de uma funao do Oracle Applications. Este tipo de atributo nao muito utilizado.

URL: Indica que o valor do atributo um link, ou seja, um endereo padrao na Internet. Na implementaao de Lista de Trabalho do Oracle Workflow este atributo transformado, automaticamente, em uma tag html de link (<A>) quando fazendo parte de uma mensagem. O campo Frame Target tambm utilizado pela implementaao de Lista de Trabalho da Oracle e indica em que pgina ou frame a URL deve ser carregada.

DOCUMENT: Indica que o valor do atributo um documento do tipo PL/SQL, denominado PL/SQL Document. Este tipo deve ser utilizado como atributo de mensagem para mostrar valores que devem ser gerados em tempo de execuao. O campo Value deve, obrigatoriamente, conter o nome da rotina PL/SQL correspondente, especificada da seguinte maneira: plsql:<procedure>/<document_identifier>, onde procedure o caminho de acesso rotina (da mesma forma como deve ser especificado as rotinas de controle de atividades) e document_identifier deve ser um valor que identifica o documento. Este valor poder ser utilizado pela rotina para realizar a busca dos dados que deverao ser exibidos. Pode ser um valor fixo ou o valor armazenado em um outro atributo. Para especificar um atributo deve-se utilizar &ATTRIBUTE_NAME, onde ATTRIBUTE_NAME deve ser o nome interno do atributo. Exemplo: plsql:RGARCIA.Wf_Desenv_Sw_Pkg.criaPLSQLDocument/123 e plsql:RGARCIA.Wf_Desenv_Sw_Pkg.criaPLSQLDocument/&COD_MODULO.

ROLE: Indica que o valor do atributo ser um usurio ou papel vlido para o Oracle Workflow. Na implementaao de Lista de Trabalho da Oracle, quando um atributo presente em uma mensagem o seu valor de exibiao (geralmente o nome do usurio) automaticamente recuperado. Se for um atributo de requisiao de dados, gerada uma tela de busca de usurios, chamada LOV.

ATTRIBUTE: Indica que o valor do atributo o nome interno de um outro atributo do processo. Este tipo de dados nao muito utilizado.

EVENT: Indica que o valor do atributo uma mensagem definida pelo Business Event System. A estrutura interna armazena o tipo de dados WF_Event_T definido como sendo um tipo do banco.

Se o atributo que est sendo definido for de mensagem, um campo denominado Source dever ser escolhido. Se o valor for Send, significa que o atributo ser utilizado para exibiao de dados para o usurio, ou seja, ser exibido no corpo da mensagem. Se o valor for Respond significa que o usurio dever preencher algum valor nele e um campo de formulrio ser exibido na tela.

Atributos de mensagem e atividade possuem uma particularidade especial que referenciar um atributo de processo. Esta caracterstica importante pois, quando um atributo deste tipo, ele assume o valor do atributo de processo que referenciado automaticamente. Para definir esta particularidade, deve-se criar um atributo de atividade ou mensagem normalmente e selecionar, na rea, Default, o valor Item Attribute no campo Type e no campo Value deve-se selecionar o atributo de processo correspondente.

Outra forma de fazer isto clicar sobre o atributo de processo desejado e, segurando o botao, arrastar o atributo para a atividade/notificaao correspondente. Um novo atributo ser criado com o mesmo nome do atributo do processo e os dados dos campos Type e Value j estarao definidos.

Desenvolvendo mensagens

Para iniciar o desenvolvimento de uma nova mensagem, clique com o botao direito do mouse sobre o item Messages dentro Item Type correspondente e selecione a opao New Message. Ir ser aberta uma janela para definiao das propriedades da mensagem.

 

Figura ‑ : Propriedades principais de uma mensagem

As propriedades da aba Message que deverao ser definidas sao:

Internal Name: Nome interno identificador da mensagem. Deve ser escrito em maisculas e nao pode estar repetido dentro das atividades (funes, notificaes, eventos ou processos). Deve ter, no mximo, 30 caracteres. Este campo obrigatrio.

Display Name: Nome de identificaao visual da mensagem. Deve ser, no mximo, 240 caracteres. Este campo obrigatrio.

Description: Descriao opcional da mensagem. O texto pode conter informaes detalhadas sobre o texto presente na mensagem, qual a notificaao que a utiliza, entre outros.

Priority: Prioridade da mensagem. Pode ser baixa, mdia ou alta. Na implementaao de Lista de Trabalho do Oracle Workflow, notificaes com prioridade alta aparecem no topo da lista enquanto que notificaes com prioridade baixa aparecem no final da lista.

 

Figura ‑ : Propriedades do ttulo e corpo de uma mensagem

As propriedades da aba Body que deverao ser definidas sao:

Subject: Ttulo da mensagem. Esta mensagem ser utilizada como identificaao da notificaao na Lista de Trabalho.

Body: Corpo da mensagem. Pode ser definido como texto plano, na aba Text Body ou com o formato de tags Html, na aba HTML Body.

Tanto no ttulo da mensagem, quanto no corpo, se podem referenciar atributos. Esta particularidade interessante para que os valores armazenados nos atributos possam ser exibidos para auxiliar o participante a resolver a sua tarefa. Para utilizar esta particularidade, o atributo deve ter a opao Send selecionada no campo Source. O atributo deve ser referenciado pelo seu nome interno (em maisculas) precedido do caractere &.

Exemplo: Se a mensagem DESENVOLVER_MODULO possuir o atributo NOME_ANALISTA (do tipo Role), este poder ser referenciado no corpo da mensagem da seguinte maneira: &NOME_ANALISTA. O Oracle Workflow ir resolver o username armazenado neste campo e exibir o seu nome (armazendo como nome de exibiao nas tabelas de diretrio).

 

Figura ‑ : Propriedade do resultado de uma mensagem

As propriedades da aba Result que deverao ser definidas sao:

Display Name: Campo obrigatrio que utilizado pela implementaao de Lista de Trabalho do Oracle Workflow para indicar o local onde deve ser selecionado o resultado para a notificaao. Exemplo: Resultado:, Mdulo aprovado?.

Description: Descriao opcional do resultado da notificaao. O texto pode conter informaes que indiquem em que implica cada um dos resultados, entre outros.

Lookup Type: Lista contendo o nome de visualizaao de todos os Lookup Types criados para o Item Type atual. Tambm exibido todos os Lookup Types criados nos demais Item Types carregados no Data Store atual. Este campo obrigatrio para mensagens que serao enviadas juntamente com notificaes do tipo Response Required e deve ser selecionado o mesmo Lookup Type definido na notificaao.

Default: Esta rea tem o mesmo objetivo da rea de mesmo nome das propriedades dos atributos. Deve ser utilizada para se definir um valor padrao como resultado da mensagem. Na implementaao de Lista de Trabalho da Oracle, para os resultados gerados como caixa de seleao (combo box), estes dados servem para indicar qual o valor j estar selecionado automaticamente.

Desenvolvendo Lookup_Types

Para iniciar o desenvolvimento de um novo Lookup_Type, clique com o botao direito do mouse sobre o item Lookup Types dentro Item Type correspondente e selecione a opao New. Ir ser aberta uma janela para definiao das propriedades do Lookup Type.

 

Figura ‑ : Propriedades principais de um Lookup Types

As propriedades da aba Lookup Type que deverao ser definidas sao:

Internal Name: Nome interno identificador do Lookup Type. Deve ser escrito em maisculas e nao pode estar repetido dentro dos Lookup Types do Data Store. Deve ter, no mximo, 30 caracteres. Este campo obrigatrio.

Display Name: Nome de identificaao visual do Lookup Type. Deve ser, no mximo, 240 caracteres. Este campo obrigatrio.

Description: Descriao opcional do Lookup Type. O texto pode conter informaes detalhadas sobre qual a finalidade, onde utilizado, entre outros.

Desenvolvendo Lookup_Codes

Para iniciar o desenvolvimento de um novo Lookup_Code, clique com o botao direito do mouse sobre o Lookup Type que ir armazen-lo e selecione a opao New Lookup Code. Ir ser aberta uma janela para definiao das propriedades do Lookup Code.

 

Figura ‑ : Propriedades principais de um Lookup Code

As propriedades da aba Lookup Code que deverao ser definidas sao:

Internal Name: Nome interno identificador do Lookup Code. Deve ser escrito em maisculas e nao pode estar repetido dentro do Lookup Type especificado. Deve ter, no mximo, 30 caracteres. Este campo obrigatrio.

Display Name: Nome de identificaao visual do Lookup Code. Deve ser, no mximo, 240 caracteres. Este campo obrigatrio. Dica: deve ser curto e representar bem a opao disponvel. Por exemplo: Se o Lookup Type ao qual este Lookup Code est associado for definido como resposta para uma notificaao, este valor ser representado como sendo um botao.

Description: Descriao opcional do Lookup Code. O texto pode conter informaes detalhadas sobre qual a finalidade, onde utilizado, entre outros.

Exerccios

Utilizando o processo modelado nos exerccios dos captulos anteriores, crie no Oracle Workflow Builder todos os processos e sub-processos que julgares necessrio.

Crie no Oracle Workflow Builder todas as funes e notificaes que serao utilizadas no seu processo. Defina tambm o nome de uma package genrica que ir armazenar todas as rotinas do seu processo. Para cada uma das atividades do tipo funao, defina um nome para uma rotina. Para atividades do tipo notificaao que voc imagina que seja necessrio gerar alguma validaao, associe um nome de uma rotina tambm.

Crie todos os Lookup Types e Lookup Codes que serao utilizados pelo seu processo.

Cria todos os atributos de processo que serao necessrios.

Crie todas as mensagens que irao ser enviadas juntamente com as notificaes.

Implemente os ttulos e corpos das mensagens. Defina os atributos de mensagens que serao utilizados e trabalhe com eles.

Espao para anotaes

Desenhando processos de Workflow

Objetivos

Aprender a inserir as atividades criadas nos processos

Aprender a definir transies entre as atividades nos processos

Aprender a definir propriedades adicionais das atividades nos processos

Definindo atividades em processos

Aps os objetos estarem definidos no Navigator, deve-se comear a construao do fluxo de Workflow propriamente dito. A primeira coisa a ser feita selecionar qual o processo ser desenhado e abrir ele (clicando duas vezes sobre o seu cone no Navigator). Se voc escolheu o processo criado pelo Quick Start Wizard, ir notar que ele j possui duas funes inseridas (uma para incio e outra para fim). Estas funes estao definidas no Item Type Standard e nao realizam nenhuma aao, sendo utilizadas meramente para definir incio e fim de um processo. Estas funes podem ser alteradas por outras definidas pelo desenvolvedor, deste que sejam identificadas como de incio ou fim. Maiores detalhes sobre elas serao vistos em seguida.

Este processo de incluir atividades nos processo pode ser entendido como uma instanciaao da atividade (basicamente como feito com objetos Java, no qual se tem a classe que representa o modelo do objeto e se geram as instancias que sao os objetos desta classe em execuao). Uma mesma atividade pode estar instanciada uma ou mais vezes em um determinado processo. A cada nova instanciaao, a atividade ganha um nome identificador da instancia denominado Instance Label (visto com mais detalhes adiante neste captulo).

Para inserir um objeto no seu processo existem duas maneiras:

1.- As janelas do Navigator e do processo podem ser alinhadas de modo que estejam visveis lado-a-lado. Desta maneira, pode-se selecionar o objeto desejado (funao, notificaao, ou outro processo) e arrast-lo da janela do Navigator para a janela do processo, definindo a melhor posiao para a sua visualizaao.

2.- Na janela do processo, existe uma barra de ferramentas. Nela, existem 17 botes organizados em 6 grupos. O segundo grupo de botes desta barra define as aes de inclusao de objetos no processo. Da esquerda para a direita, os botes disponibilizam a inclusao de um sub-processo, notificaao, funao e evento. Para utiliz-los, basta clicar sobre o botao correspondente e clicar em espao disponvel da rea de modelagem do processo. Ser aberta uma janela para a seleao do objeto correspondente. Esta janela praticamente idntica de propriedades (vista no captulo anterior), diferenciando apenas pelo fato de possuir um campo denominado Item Type. Nele, estarao listados todos os Item Types do Data Store atual. Deve-se selecionar o Item Type que possui o objeto desejado e, aps, selecionar o objeto propriamente dito (utilizando os campos Internal Name ou Display Name). Aps a validaao da seleao, o objeto ir aparecer no local especificado.

 

Figura ‑ : Barra de ferramentas para inclusao de objetos em processos

Figura ‑ : Janela de seleao de notificaes para inclusao em processo

Definindo transies entre atividades

Para definir transies entre as atividades de um processo, basta clicar com o botao direito do mouse (e segurar) na atividade de origem e arrastar at a atividade de destino. Se a atividade de origem nao possuir valores de sada, uma seta ser criada entre as duas atividades.

Caso a atividade de origem possua resultados possveis definidos, um menu chamado Results ser aberto para a seleao da transiao. Nele estarao visveis todos os Lookup Codes definidos para o Lookup Type especificado como resultado e ainda as seguintes opes adicinais: Default, Any e Timeout (est s exibida se a atividade tiver uma data limite estipulada).

Default: O Workflow Engine ir seguir o fluxo pela transiao Default caso nenhuma transiao definida atender ao resultado da atividade. Isto permite que o processo de modelagem e manutenao seja simplificado com transies em que um nico resultado permite seguir adiante o processo.

Any: O Workflow Engine ir seguir o fluxo pela transiao Any independente do resultado com o qual a atividade for concluda. Isto permite incluir atividades genricas no processo que o Engine poder executar paralelamente ao fluxo.

Timeout: O Workflow Engine ir seguir o fluxo pela transiao de Timeout sempre que uma atividade nao for concluda no prazo estipulado. Esta transiao ser estudada com mais detalhes no Mdulo II deste curso.

 

Figura ‑ : Definiao de uma transiao entre atividades

Trabalhando com atividades pr-definidas

O Oracle Workflow j fornece uma srie de processos de teste e de rotinas genricas no momento da sua instalaao. Estas rotinas estao localizadas no Item Type Standard e devem ser utilizadas caso atendam a necessidade do processo que est sendo desenvolvido.

 

Figura ‑ : cones representativos das atividades pr-definidas

And: Funao que aguarda at que todas as suas transies de entrada sejam concludas antes de continuar o fluxo.

Or: Funao que aguarda at que apenas uma das suas transies de entrada seja concluda antes de continuar o fluxo.

Assign: Funao de atribuiao de valores a um determinado atributo do processo.

Get Event Property: Funao que obtm uma das propriedades de um objeto do tipo Event.

Set Event Property: Funao que define valores para uma das propriedades de um objeto do tipo Event.

Compare Date: Funao que realiza uma comparaao entre datas.

Compare Event Property: Funao que realiza uma comparaao entre propriedades de dois objetos do tipo Event.

Compare Execution Time: Funao que realiza uma comparaao entre o tempo de execuao de duas funes.

Compare Number: Funao que realiza uma comparaao entre valores numricos.

Compare Text: Funao que realiza uma comparaao entre valores textuais.

Loop Counter: Funao que conta o nmero de execues de repetiao em uma determinada etapa do processo.

Launch Process: Funao que realiza o dispara de novos processos.

Start: Funao que nao realiza nenhuma operaao. utilizada apenas para demarcar o incio de um novo processo.

End: Funao que nao realiza nenhuma operaao. utilizada apenas para demarcar o final de um processo.

Role Resolution: Funao que escolhe um usurio dentro de um conjunto de usurios definidos em uma role.

Continue Flow: Funao que determina que um processo que estava em espera pode continuar seu fluxo de execuao. Deve ser utilizada em processos filhos (detalhe).

Wait For Flow: Funao que determina que um processo ir ficar suspenso at que receba um aviso externo para que possa continuar seu fluxo de execuao. Deve ser utilizada em processos pai (mestre).

Noop: Funao que nao realiza nenhuma operaao.

Block: Funao que bloqueia o fluxo de execuao do processo at que uma funao externa ou uma operaao manual a complete. Esta funao interessante pois permite atrasar um processo at que seja atingida uma condiao em particular externa ao fluxo.

Notify: Funao que envia uma mensagem para um determinado participante.

XML Get Tag Value, XML Compare Tag Value (Text, Date ou Number), XML Transform: Funes que realizam manipulaao de valores XML presentes em um objeto do tipo Event.

Get Monitor URL: Gera a URL para acesso pgina de monitoraao do processo.

Definindo opes de instancias para atividades

Aps a definiao das atividades que devem fazer parte de um determinado fluxo (criaao das instancias) e da geraao relacionamentos entre elas, algumas informaes adicionais de execuao poderao ser definidas.

Para acessar estar informaes, basta abrir a tela de ediao de propriedades das atividades, a partir da instancia criada no processo. As abas que indicam estas informaes de instancia sao denominadas Node e Node Attributes.

Cada instancia mantm um conjunto de informaes prprias e, se existirem vrias instancias da mesma atividade, a alteraao das propriedades nestas abas em uma instancia nao refletida nas outras.

 

Figura ‑ : Aba Node das propriedades de uma atividade

Os campos definidos na aba Node sao:

Label: Nome de instancia da atividade. composto pelo seu nome interno original acrescido de uma constante numrica que indica o nmero de vezes que a atividade j foi instanciada no Item Type atual.

Start/End: Esta opao indica se a atividade uma atividade de execuao normal (Normal) ou se indica o incio (Start) ou fim (End) de um processo. Se o valor selecionado for End, ir aparecer uma caixa de seleao (combo box) ser exibida ao lado e, se o processo possuir um Lookup Type definido como resultado, a lista ir conter todos os Lookup Codes correspondentes.

Comment: Comentrios adicionais que podem ser definidos para indicar caractersticas especiais da instancia, entre outros.

Timeout: Este campo ser estudado em detalhes no mdulo II deste curso. Ele utilizado para definir datas limites para a execuao das atividades.

Priority: Este campo indica a prioridade da atividade s est disponvel quando esta for do tipo notificaao. Se for escolhido o valor Constant, dever ser selecionada uma opao no campo Value que ser exibido abaixo. As opes vlidas sao High, Normal e Low. Se for escolhido o valor Item Attribute significa que a prioridade estar armazenada em um atributo do processo. No campo Value, que ir aparecer abaixo, dever ser selcionado o atributo correspondente. Nestes casos, s estarao disponveis atributos do tipo numrico. O valor das prioridades deve estar entre 1 e 99. Valores entre 1 e 33 indicam prioridades altas, valores entre 34 e 66 indicam prioridades mdias e valores entre 67 e 99 indicam prioridades baixas.

Performer: Este opao s faz sentido quando utilizada com atividades do tipo notificaao, embora tambm esteja disponvel para funes. Se o campo Type for definido com a opao Constant poder se inserir livremente no campo Value o username do usurio ou role que ir receber a notificaao. Se o campo Type estiver definido com o valor Item Attribute, no campo Value estar disponvel uma lista de atributos do processo do tipo Text ou Role que poderao conter as informaes necessrias.

 

Figura ‑ : Aba Node Attributes das propriedades de uma atividade

A aba Node Attributes deve ser utilizada para se definir valor para atributos de atividade (definidos diretamente para as funes e notificaes). Os campos definidos nesta aba sao:

Name: Este campo mostra uma lista contendo todos os atributos disponveis para a atividade. Assim que um deles selecionado os campos Type e Value ficam disponveis.

Type: Deve ser selecionada a opao que indica se o valor do campo ser fixo (Constant) ou ser um valor armazenado em algum atributo do processo (Item Attribute).

Value: Se o tipo especificado for Constant, este campo estar disponvel para ediao do valor livremente. Se o valor selecionado for Item Attribute, este campo ir mostrar os atributos de processo disponveis e um deles dever ser selecionado para representar o valor.

Um detalhe importante pode ser observado para nas propriedades de instancias de atividades do tipo notificaao. Na aba notification estar disponvel um campo denominado Expand Roles. Se esta opao estiver desmarcada, significa para o Workflow Engine que, se esta notificaao for encaminhada para uma role, todos os usurios que fizerem parte dela receberao a mesma atividade. Nesta opao, o primeiro que finalizar a atividade ir remover este Item de Trabalho da lista dos demais participantes. Esta opao complicado pois pode gerar problemas e deve ficar desmarcada apenas se a notificaao for enviada a um nico participante.

Se a opao Expand Roles estiver selecionada, indica que ser enviada uma notificaao para cada um dos participantes definidos na role correspondente. Deste modo, cada usurio ser responsvel pela sua atividade em particular. Esta opao sempre exige o uso de uma Post Notification. Ela ser utilizada para definir o resultado final da notificaao que far com que o fluxo siga para a prxima atividade.

Exerccios

Utilizando o Item Type criado pelos exerccios do captulo anterior, instancie as atividades nos processos correspondentes. Utilize as funes pr-definidas se necessrio.

Para os processos definidos, gere as transies necessrias, conforme se aplicam a regra de negcio do seu processo.

Indique as propriedades de instancia que serao necessrias para o correto funcionamento do seu fluxo.

Espao para anotaes

Padres da API PL/SQL

Objetivos

Entender o motivo pelo qual aconcelhvel o uso de PL/SQL para se trabalhar com o Oracle Workflow

Conhecer as assinaturas padres para as rotinas que devem ser implementadas

Entender como trabalhar com rotinas PL/SQL no Oracle Workflow

Utilizando rotinas PL/SQL

Existem trs tipos de linguagens de programaao que podem ser utilizadas para a implementaao de rotinas para controle do Oracle Workflow. A opao mais comum e mais indicada at o momento a utilizaao de rotinas implementadas em PL/SQL. O uso desta linguagem mais indicado pois, por ser um cdigo que executa dentro do banco de dados, mais rpido, alm de permitir funes de consulta, inclusao e alteraao de registros diretamente em tabelas.

Para implementar um cdigo PL/SQL pode-se utilizar o software PL/SQL Developer. Este software possui uma regiao denominada browser onde se encontram todos os objetos de banco de dados disponveis para o usurio conectado no sistema. Com o botao direito sobre o objeto denominado package deve-se criar uma nova estrutura que ser responsvel por armazenar todas as rotinas especificadas para o fluxo implementado no Oracle Workflow.

O Oracle Workflow armazena o caminho de acesso para a rotina implementada em PL/SQL. Normalmente, as rotinas sao especificadas utilizando-se o nome do componente (package) onde estao implementadas as rotinas seguido de um ponto e do nome da rotina. Exemplo: Wf_Desenv_Sw_Pkg.Valida_Resposta_Analista. Neste caso, para que o mtodo seja executado corretamente esta package deve ter sido criada e compilada no usurio que contm a instalaao do Workflow (normalmente denominado OWF_MGR).

Esta prtica nao muito recomendada pois aumenta a probabilidade de acidentes (exclusao, por exemplo) sobre os objetos que compe o produto. A alternativa o desenvolvimento das packages em usurios separados e a definiao de acessos de leitura nelas para o usurio do Workflow. Nestes casos, do ponto de vista do Oracle Workflow, pode-se proceder de duas maneiras: A primeira a criaao de um sinnimo para a package dentro do usurio do Workflow e a segunda e mais aconcelhvel a utilizaao do nome do usurio antes de se referenciar a package. O exemplo anterior ficaria: RGARCIA.Wf_Devenv_Sw_Pkg.Valida_Resposta_Analista.

Assinaturas de mtodos padres

Todas as rotinas PL/SQL que serao executadas pelas notificaes e funes no Oracle Workflow devem, obrigatoriamente, seguir o padrao de assinatura descrito a seguir. Isto necessrio para que o Workflow Engine possa executar as rotinas corretamente.

O Oracle Workflow define, automaticamente savepoints antes de executar qualquer rotina PL/SQL (tanto definidas por desenvolvedores como as rotinas padrao do produto). Isto acontece para que o Engine consiga desfazer as operaes quando encontra um erro em alguma funao/notificaao. importante destacar que nenhuma rotina implementada em PL/SQL pode ser comandos commit. Caso o Workflow Engine encontre um commit em uma rotina e uma outra executada em seguida apresente erro de execuao, um novo outro erro ser disparado no momento que o Engine tentar voltar atrs para recuperar os savepoints.

O padrao de assinatura para as rotinas PL/SQL executadas pelo Oracle Workflow em notificaes e funes apresentado no Cdigo -1.

procedure <procedure_name> (

itemType in varchar2,

itemKey in varchar2,

actId in number,

funcMode in varchar2

resultOut out varchar2

Cdigo ‑ : Assinatura de mtodos implementados para funes e notificaes

Existem, como j foram mencionados e serao detalhadas a seguir, rotinas que selecionam automaticamente o processo principal a ser executado quando uma instancia for criada. A assinatura do mtodo exibida no Cdigo

procedure <procedure_name> (

itemType in varchar2,

itemKey in varchar2,

activity_Id in number,

command in varchar2

resultOut in out varchar2

Cdigo ‑ : Assinatura de mtodos implementados para seleao de processos

No Captulo 3, foram apresentados os tipos de atributos disponveis no Oracle Workflow. Um deles, o tipo DOCUMENT, quando especificado, sempre exige uma rotina PL/SQL para controle. A assinatura deste mtodo exibida no Cdigo

procedure <procedure_name> (

document_id in varchar2,

display_type in varchar2,

document in out varchar2,

document_type in out varchar2

Cdigo ‑ : Assinatura de mtodos implementados para controle de PL/SQL Documents

Trabalhando com rotinas PL/SQL

Rotinas de Atividades

Todas as rotinas utilizadas para tratamento de funes e notificaes possuem sempre cinco parametros, sendo que quatro destes sao chamados de parametros de entrada (pois sao os dados que o Oracle Workflow envia para a rotina) e um definido como sendo um parametro de sada (pois a partir dele que o Oracle Workflow sabe o resultado da execuao da rotina).

Os parametros recebidos pelas rotinas PL/SQL sao:

itemType: Nome interno do Item Type, conforme definido no Oracle Workflow Builder, para o qual est definida a instancia de processo que est executando a rotina.

itemKey: Identificador da instancia de Workflow que est executando a rotina. Este identificador nico para o Item Type recebido.

actId: Identificador numrico da instancia da atividade que est executando a rotina. Este identificador gerado pelo Oracle Workflow Builder sempre que uma nova versao de um processo (ou sub-processo) gerada.

funcMode: Modo de execuao da atividade. Ser visto em detalhes a seguir.

resultOut: Se a atividade correspondente possuir um resultado associado pelo Oracle Workflow Builder, este parametro deve ser utilizado para retornar o valor correto quando a rotina terminar o seu processamento. Este parametro tambm ser visto com mais detalhes a seguir.

O Oracle Workflow pode executar o mtodo definido para a atividade (tanto funao como notificaao) diversas vezes para a mesma instancia. Para cada uma destas execues associado um modo de execuao (enviado no parametro funcMode) que deve ser verificado pela rotina para a execuao da sua operaao corretamente. Os modos disponveis sao:

RUN: Disponvel em atividades do tipo funao e notificaao. Indica que a atividade est sendo executada em modo normal.

CANCEL: Disponvel apenas quando a atividade do tipo funao. Indica que a atividade est sendo cancelada. Uma atividade ter a sua rotina executada neste modo quando fizer parte de um fluxo de repetiao que est sendo executado pela segunda vez.

RESPOND: Disponvel apenas quando a atividade do tipo notificaao. Indica que a atividade est sendo executada no momento em que um usurio a est finalizando. Este modo deve ser utilizado sempre que uma validaao de campos de respostas necessria. Caso algum campo obrigatrio nao esteja preenchido, uma exceao deve ser gerada e a mensagem correspondente ser exibida para o usurio. Detalhe: o Workflow Engine sempre executa a rotina em modo RUN aps a execuao com sucesso desta em modo RESPOND.

FORWARD: Disponvel apenas quando a atividade do tipo notificaao. Indica que a notificaao est sendo delegada para um outro participante.

TRANSFER: Disponvel apenas quando a atividade do tipo notificaao. Indica que a notificaao est sendo transferida para outro participante.

TIMEOUT: Disponvel apenas quando a atividade do tipo notificaao. Indica que a notificaao nao foi concluda no prazo estipulado. Este modo interessante para que se execute rotinas especificas para controle de atrasos, como o envio de E-Mails, por exemplo.

O resultado da rotina, associado ao parametro resultOut deve ser sempre um valor que indica para o Oracle Workflow como deve tratar o fluxo de execuao do processo a partir desta atividade. Exemplo: se a atividade possuir duas possveis transies de sadas (modeladas como um Lookup Type), a rotina associada dever verificar os dados necessrios e definir qual deles dever ser seguido durante a execuao. Outros valores tambm estao disponveis. Sao eles:

COMPLETE:<Lookup_Code>: outra maneira de se indicar o resultado da atividade. A primeira informar apenas o Lookup Code correspondete ao resultado. A segunda informar o Lookup Code associado ao valor complete.

WAITING: indica que a atividade ainda est pendente, esperando at que uma outra atividade seja finalizada antes que esta possa ser concluda. Exemplo: A funao And, definida pelo Item Type Standard, utiliza este resultado enquanto uma das transies de entrada ainda nao foi finalizada.

DEFERRED:<Date>: indica que a atividade ter a sua execuao postergada para ser executada em background at a data especificada. A data deve estar no formato to_char(<data_string>, Wf_Engine.Date_Format).

NOTIFIED:<Notification_Id>:<Assigned_User>: indica que uma entidade externa ser notificada que uma aao deve ser realizada. O Notification_Id e o Assigned_User sao opcionais. Nestes casos, a entidade externa necessita executar uma rotina para finalizar explicitamente a atividade.

ERROR:<Error_Code>: indica que a atividade encontrou um erro durante a sua execuao, retornando ele.

O parametro resultOut ignorado sempre que o modo de execuao da rotina for RESPOND, FORWARD ou TRANSFER.

Rotinas de Seleao de Processo

Como comentado em captulos anteriores, nas propriedades de um Item Type, existe o campo Selector. Este campo deve conter uma rotina que pode ser utilizada para selecionar o processo principal a ser executado. Este rotina executada sempre que uma nova instancia de processo for iniciada sem que seja informado o processo principal que deve ser executado.

Os parametros recebidos por esta rotina representam:

itemType: Nome interno do Item Type, conforme definido no Oracle Workflow Builder, para o qual est definida a instancia de processo que est executando a rotina.

itemKey: Identificador da instancia de Workflow que est executando a rotina. Este identificador nico para o Item Type recebido.

activity_Id: Identificador numrico da instancia da atividade que est executando a rotina. Este identificador gerado pelo Oracle Workflow Builder sempre que uma nova versao de um processo (ou sub-processo) gerada. Este parametro sempre ser null quando o comando executado for RUN.

command: Modo de execuao da atividade. Se o comando for RUN significa que a rotina est executando em modo de seleao de processo. Ela sempre executada deste modo quando um processo nao especificado na inicializaao da instancia. Se o comando for SET_CTX significa que a rotina est executando em modo de definiao de um contexto de informaes que as funes do Item Type necessitam para executar. Nao muito utilizada. Se o comando for TEST_CTX significa que a rotina est executando em modo de verificaao de o contexto atual est correto antes de executar uma funao. Este modo tambm nao muito utilizado.

Rotinas de PL/SQL Documents

PL/SQL Documents sao atributos especiais que devem ser utilizados sempre que houver uma necessidade de se gerar dados variveis para uma determinada mensagem. O atributo est sempre associado a uma rotina PL/SQL que dever realizar este processamento.

Os parametros recebidos por esta rotina representam:

document_Id: Valor que identifica unicamente um documento. Este valor especificado no campo Value de definiao de propriedades do atributo correspondente. Pode ser utilizado pela rotina para a realizaao da busca pelos dados necessrios para gerar a resposta.

display_type: Este campo sempre um dos trs valores que identificam o tipo de contedo utilizado para a representaao do corpo da mensagem da notificaao. Os valores possveis sao: TEXT/PLAIN (documento inserido em uma mensagem baseada em texto simples), TEXT/HTML (documento inserido em uma mensagem baseada em formato HTML, ou seja, o desenvolvimento do documento pode ser realizado utilizando-se tags HTML) ou (documento representado de forma separada da mensagem, como um anexo).

document: Este parametro de sada deve receber o texto que ser exibido na mensagem no lugar onde se enontra o atributo do tipo DOCUMENT. O texto deve conter, no mximo, 32K de tamanho.

document_type: Parametro de sada onde o tipo de contedo do documento pode ser especificado. Os tipos vlidos sao TEXT/PLAIN, TEXT/HTML e .

Exerccios

Utilizando o PL/SQL Developer, crie uma package para o fluxo desenvolvido at o presente momento.

Implemente as rotinas definidas no fluxo na package criada. Nao se esquea que na especificaao da package deve ficar apenas a assinatura do mtodo e a sua implementaao deve estar no corpo.

Defina os resultados possveis para as funes de forma fixa, pois as rotinas para interaao com o Oracle Workflow serao vistas no curso de Oracle Workflow II.

Espao para anotaes

Interagindo com Sistemas de Workflow

Objetivos

Conhecer todos os recursos disponibilizados pela Oracle para testes e administraao do Oracle Workflow

Entender como trabalhar com a lista de trabalho e as atividades encaminhadas para os usurios

Compreender o meanismo de busca e monitoramento de processos

Oracle Worflow Home Page

A Oracle desenvolveu e disponibiliza juntamente com a instalaao padrao do Oracle Workflow um timo ambiente para testes e administraao dos processos de Workflow. Esta aplicaao denominada de Oracle Workflow Home Page por ser uma aplicaao em ambiente web. A tela inicial da aplicaao exibida na Figura -1. Os requisitos para a sua execuao estao disponveis no Captulo 2.

Figura ‑ : Pgina principal de administraao e uso do Oracle Workflow

Nesta pgina estao disponveis as opes de lista de trabalho, pesquisa de processos e notificaes (incluindo uma srie de filtros), preferncias do usurio e demais configuraes da aplicaao.

Configuraes globais

A partir da pgina principal, pode-se acessar o menu denominado Global Workflow Preferences. Este menu ir carregar a pgina apresentada na Figura -2 que indica as configuraes gerais da aplicaao. Dentre as opes, a que merece destaque o usurio definido como Administrador do Workflow. Inicialmente, todos os usurios estao habilitados como administradores (indicado pelo * no campo Workflow Administrator).

Figura ‑ : Pgina de visualizaao das configuraes globais

Para se alterar qualquer uma das informaes exibidas nesta pagina, deve-se entrar na pgina de ediao das preferncias (botao Update localizado na parte inferior da tela). A pgina que ser exibida ilustrada pela Figura -3. Se o usurio com perfil de administraao for alterado, a maioria dos links listados na Figura -1 nao estarao disponveis para os demais usurios. Eles ficarao com acesso apenas a sua lista de trabalho individual e a pginas de pesquisas. Estas, porm, ficarao restritas aos fluxos nos quais o usurio esta definido como proprietrio (owner) e nas notificaes sob sua responsabilidade (j concludas ou ainda nao).

Figura ‑ : Pgina de ediao das configuraes globais

Inicializando processos de Workflow

A partir da pgina principal, pode-se acessar o menu denominado Launch Processes. Este menu ir carregar a pgina apresentada na Figura -4 que lista todos os processos de Workflow disponveis na base de dados.

Figura ‑ : Pgina contendo a lista de processos disponveis na base de dados

Para se criar e iniciar manualmente uma nova instancia de um processo, basta escolher o processo desta lista e clicar no link correspondente ao nome de exibiao (coluna Item Type). A pgina que ser aberta (ilustrada pela Figura -5) necessita algumas informaes para que o processo possa ser iniciado, algumas obrigatrias, outras nao.

Figura ‑ : Pgina contndo os campos de criaao de instancias

O campo que de preenchimento obrigatrio o que indica o Item Key identificador da nova instancia. Se o valor informado j estiver em uso pelo Oracle Workflow, ger gerada uma exceao quando o botao Ok for clicado.

O campo User Key opcional e deve ser utilizado para uma fcil localizaao da instancia pela pesquisa de processos. Por exemplo, o Item Key pode ser definido como sendo P123V5. Este identificador complicado para um usurio decorar e se ele quiser consultar a situaao da sua instancia, torna-se bastante complicado. Neste caso, o User Key poderia ser definido como Processo de Rafael Garcia, facilitando a memorizaao da identificaao e a busca por ele.

O campo Process Name, tambm opcional, pode ser utilizado para informar qual o processo principal que dever ser utilizado pelo Oracle Workflow como fluxo principal de execuao da instancia. Se este campo nao for selecionado, e s existir apenas um processo executvel (flag Runnable da tela de propriedades do processo marcada) o Oracle Workflow ir executar este processo. Porm, se dois ou mais processos estiverem disponveis, a rotina Selector (definida na tela de propriedades do Item Type) ser executada. No caso de nao definida, uma exceao gerada.

O campo Process_Owner nao de preenchimento obrigatrio, mas aconcelhvel que seja sempre definido. Este campo indica qual o usurio que o proprietrio da instancia. Por padrao, este campo vem com o usurio logado no sistema.

Os demais campos, sao todos os campos definidos como atributos do processo. Esta insterface s til para a fase de testes do processo de Workflow, uma vez que, atributos de controle interno do fluxo estarao disponveis para o usurio nesta tala. Isto acontece porque muitas vezes sao utilizados diversos atributos para a correta manipulaao de um determinado fluxo, porm poucos sao necessrios na inicializaao.

Figura ‑ : Pgina de exemplo de criaao de instancia

Lista de Trabalho

A partir da pgina principal, pode-se acessar a lista de trabalho do usurio logado no sistema atravs do menu denominado Worklist. Este link sempre indica a quantidade de atividades pendentes para o usurio (entre parnteses). As Figuras -7 e -8 ilustram a lista de trabalho de um usurio com perfil de administraao sobre o Oracle Workflow contendo uma atividade pendente na sua lista.

Figura ‑ : Exemplo de Lista de Trabalho com uma atividade

Figura ‑ : Exemplo de Lista de Trabalho com uma atividade

Interagindo com atividades de Workflow

A partir da pgina representada pela Figura -10, pode-se acessar a atividade propriamente dita. A Figura -9 ilustra uma atividade de Workflow conforme apresentada pela implementaao padrao do Oracle Workflow.

Figura ‑ : Exemplo de tela de detalhe de atividade

Nesta tela pode-se encontrar as seguintes informaes:

Usurio ou role para o qual a atividade foi enviada, representado pelo campo To no cabealho da atividade.

Data e hora na qual a atividade foi criada, representada pelo campo Sent no cabealho da atividade.

Ttulo da atividade a ser executada, representado pelo campo Subject no cabealho da atividade.

Corpo da atividade, definido logo aps o cabealho. Esta mensagem definida no Oracle Workflow Builder na tela de propriedades de objetos do tipo mensagens.

Na parte inferior da tela encontra-se a rea de interaao do usurio com o Workflow. Todos os campos modelados no Oracle Workflow Builder como sendo campos do tipo RESPOND serao apresentados como campos de formulrio, conforme o campo Comentrios. O resultado da notificaao, definido como sendo um Lookup Type contendo dois Lookup Codes (Aprovar e Reprovar) apresentado como sendo um botao de aao para cada Lookup Code ou uma combo box (caso o nmero de Lookup Codes seja maior do que quatro).

O botao Reassign pode ser utilizado para delegar a atividade para um outro usurio do sistema.

Pesquisando e monitorando processos

A partir da pgina principal, pode-se acessar a pgina de pesquisa de processos atravs do menu denominado Find Processes. Este link ir carregar a pgina apresentada na Figura -10 que permite uma srie de filtros sobre as instancias que serao pesquisadas. Para usurios sem perfil de administraao s estarao disponveis para buscar instancias criadas pelo usurio logado no sistema.

Figura ‑ : Tela para pesquisa de processos

Aps a seleao de alguns parametros e da validaao da busca pelo botao Find, a tela ilustrada pela Figura -11 ser exibida. Nela estarao presentes todas as instancias de processos que atendam ao filtro aplicado. Para cada instancia, algumas informaes de identificaao estarao definidas, bem como ser indicada a sua situaao, podendo ser: em andamento (nenhum cone especial), concluda (cone em forma de bandeira quadriculada), suspenso (cone em forma de semforo com a luz amarela visvel) ou em erro (cone em forma de semforo com a luz vermelha visvel).

Figura ‑ : Resultado da busca por instancias de processos

Para se visualizar detalhes do processo, como quais as atividades que j foram concludas ou quais ainda estao pendentes, deve-se clicar no link correspondente ao nome de exibiao do processo que indica o fluxo principal de execuao da instancia.

A Figura -12 ilustra a tela inicial dos detalhes de um processo. Por padrao, apenas as notificaes sao exibidas inicialmente.

Figura ‑ : Notificaes executadas ao longo do ciclo de vida da instancia

Caso seja desejado visializar todas as atividades que fizeram parte do ciclo de vida de execuao da instancia, deve-se clicar no botao Advanced Options. Ser aberta uma tela na qual poder ser feito um filtro em quais atividades podem ser exibidas. A Figura -13 ilustra esta tela inicial com todas as opes assinaladas, ou seja, serao exibidas todas as atividades executadas pelo processo.

Figura ‑ : Todas atividades executadas ao longo do ciclo de vida da instancia

Um recurso interessante disponibilizado pela Oracle o Workflow Monitor. Esta aplicaao um Applet Java que mostra de forma visual o andamento do processo. Ao se clicar no botao View Diagram presente na tela ilustrada pela figura anterior, est aplicaao carregada.

O Applet ir montar uma representaao visual do processo exatamente como ela foi modelada pelo Oracle Workflow Builder, utilizando, inclusive, os mesmo cones. O caminho j percorrido pelo fluxo estar marcado como uma coloraao verde.

Esta ferramenta tambm apresenta as opes de administraao (visveis apenas se o usurio logado no sistema for o administrador do Workflow). Atravs destas opes possvel suspender, abortar ou reiniciar uma instancia, bem como se cancelar ou repetir a execuao de uma determinada atividade. A Figura -14.

Figura ‑ : Exemplo da visao geral do Workflow Monitor

Exerccios

Utilizando a Oracle Workflow Home Page crie algumas instancias do seu fluxo. Define alguns colegas como participantes dele.

Acesse a sua lista de trabalho e visualize se voc possui alguma atividade encaminha por outro colega. Interaja com o processo de Workflow conforme indicado na mensagem da atividade.

Faa algumas buscar referentes s instancias de processos criadas para o seu fluxo.

Visualize o grfico destas instancias e realize algumas operaes de administraao, como abortar um processo, repetir a execuao de uma atividade j concluda ou cancelar uma atividade.

Espao para anotaes



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 2093
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved