Avaliação de Produtos: Oracle Process Cloud Services (Oracle PCS)

No mercado de automação de processos há mais de 20 anos, a Oracle acaba de lançar uma solução para automação de processos simples, leve e que roda em ambiente na nuvem: o Oracle Process Cloud Service, ou Oracle PCS.
Com o foco na automação de processos, o produto possui recursos interessantes para a modelagem e execução de processos, todos disponibilizados em um ambiente simples de boa usabilidade que permitem tanto o usuário de negócios com a área de TI realizarem a automação de seus processos.

 

Na lista abaixo analisamos como a plataforma atende a alguns dos principais requisitos de BPMS:
  • Modelagem com BPMN: Possui suporte tanto a nível de modelagem como a nível de implementação e execução de grande parte dos recursos oferecidos pela notação BPMN.

    Modelagem do processo com BPMN

  • Modelagem de Formulários: Com o uso da tecnologia Webforms, permite o desenvolvimento de formulários em ambiente visual de forma fácil e rápida com os recursos de arrastar e soltar. É possível definir um formulário para cada atividade ou reaproveitar um mesmo formulário em várias atividades, agilizando o desenvolvimento da automação.

    Editor de formulário visual (WYSIWYG)

  • Regras de Negócio em Formulários: Possui uma linguagem nativa de script que manipulam as propriedades dos elementos dos formulários. A linguagem permite a configuração de regras de negócio básicas e avançadas, mas de acordo com o que se deseja fazer, um conhecimento e familiaridade com programação começa a se fazer necessário.
  • Integração com Sistemas: Possui nativamente a chamada de serviços. Contudo, como o ambiente está em ambiente cloud e não existe hoje formas de se estabelecer uma VPN ou um túnel privado com o cliente, faz-se necessário que os serviços estejam disponíveis em ambiente público na web.

    Configuração de acionamento de serviços pelo processo

  • Orquestração de Sistemas: Apesar de não ter recursos mais poderosos para a implementação de processos de natureza sistêmica, o PCS se integra naturalmente com outro produto da Oracle chamado ICS – Integration Cloud Service – que permite a configuração de um barramento de serviços em ambiente de nuvem, facilitando a orquestração deste tipo de necessidade.
  • Gestão de Conteúdo: De forma similar como resolve as necessidades de processos sistêmicos, o PCS se integra de forma nativa com o Oracle Documents, plataforma de gestão de documentos na nuvem da Oracle que permite o compartilhamento, colaboração, visualização, controle de versão e trâmite dos documentos ao longo dos processos.
  • Motor de Regras: Possui um ambiente próprio para a configuração de regras de negócio que são consumidas por atividades do processo através da configuração de tabelas de decisão.

    Criação de Regras de Negócio

  • Ambiente de Execução: Bastante prático e funcional, possui uma lista de trabalho onde são executadas as atividades humanas. Permite a criação de filtro para a seleção de atividades e a consulta de onde está um determinado processo e qual o seu histórico de execução.

    Ambiente de execução do processo

  • Mobile: Possui aplicativo próprio para iOS eAndroid para a execução de processos em ambiente mobile.
  • Indicadores e Relatórios: Disponibiliza uma série de relatórios e dashboards pré-prontos que permitem o acompanhamento de qualquer processo modelado na plataforma. Contudo, possui nativamente poucos recursos de customização destes indicadores.

    Indicadores e relatórios do Oracle PCS

Nesta solução de BPM, a Oracle provê todo o ambiente e infraestrutura do produto, tendo um modelo de licenciamento baseado na compra de créditos que podem ser utilizados o licenciamento por usuário, com valores distintos de acordo com o tipo de usuário: Administrador, Participante e Invocador.

 

Na avaliação da iProcess…

… o Oracle PCS chega como um bom produto para a implementação de processo de baixa e média complexidade, sendo uma plataforma bastante produtiva para o desenvolvimento dos processos a que se propõem e tendo um bom custo x benefício para empresas que querem rapidamente implementar muitos processos com predominância de atividades humanas na sua organização.
É uma solução de rápida adoção, visto que podem ser adquiridos poucos usuários a um custo acessível e que o ambiente em algumas horas já estará disponível para as áreas de Ti e negócios dada a facilidade da automação na nuvem.
Como pontos a melhorar está a necessidade dos serviços do cliente terem que estar expostos na web para serem evocados e pouca customização de relatórios e indicadores.

 

Para conhecer um pouco mais do Oracle PCS, assista aos vídeos abaixo.

 

Vídeo 1: Os benefícios da automação de processos com o Oracle Process Cloud Services

Vídeo 2: Demonstração de utilização do Oracle Process Cloud Services

Para mais informações, fale com a iProcess ou entre em contato com a gente no email contato@iprocess.com.br.

Tratamento de falhas em processos automatizados no Oracle BPM

Processos automatizados com a utilização de Suítes de BPM (BPMS) podem trazer grandes benefícios para a organização através do controle e gerenciamento da execução das atividades, além da possibilidade de acionar ações em outros sistemas de informação da organização, como gravar ou obter dados importantes para as tarefas do processo.

Na implantação de uma solução automatizada, um dos aspectos técnicos mais importantes a serem planejados está relacionado ao gerenciamento das falhas que podem acontecer no decorrer da execução do processo.

Isto é fundamental para garantir que, em caso de falhas, o problema possa ser resolvido ou mitigado, evitando que o processo fique parado.

No Oracle BPM, existem situações em que você poderá encontrar problemas inesperados que levam seu processo automatizado a falhar. Uma destas situações são erros de sistemas na execução de um processo.

Erros de sistema são consequências de uma falha no software ou hardware onde o BPMN está rodando. Pode ser ocasionado por várias causas. Alguns exemplos de causas de erros de sistemas são:

  • Falha na conexão com o Banco de dados
  • Perda de conectividade
  • Problema com o disco rígido
  • Indisponibilidade de serviço sendo invocado

Para recuperar os erros de sistema é possível utilizar no Enterprise Manager a opção de recuperação de falhas.

Neste post será descrito um exemplo de como definir a política de erros para processos com problemas, que permitem intervenção de usuário.

Neste exemplo, é definida uma política de falhas onde a mesma será recuperada manualmente pelo Administrador. Por exemplo,  em um processo de compras, o usuário cadastra o orçamento solicitado pelo cliente informando os dados do cliente (endereço, cep, CPF/CNPJ) e dados da compra (produtos desejados e quantidades). Neste momento todos os itens solicitados no orçamento estão em estoque. O usuário envia este orçamento ao cliente e aguarda o retorno positivo ou negativo. Caso o retorno seja positivo, o processo segue seu fluxo normal. Uma tarefa de serviço automática é chamada para verificar se ainda existem os itens solicitados em estoque. Porém, o serviço que faz a validação do estoque estava fora do ar no momento em que o processo precisou. Com isso, gerou-se uma falha no fluxo do processo.

No Oracle BPM, são necessários dois arquivos para definir o que deve acontecer quando ocorre um erro na execução do processo BPMN:

  • fault-policies.xml
  • fault-bindings.xml

O uso destes arquivos devem ser configurados no composite do processo BPM e adicionados no diretório do processo.

No Oracle BPM 11g…

No Oracle BPM 11g, basta criar manualmente os dois arquivos dentro do diretório do processo (conforme figura abaixo).

Diretório - arquivos

Exemplo da configuração no composite.xml:

<component name="PocAprovadores">
    <implementation.bpmn src="processes/PocAprovadores.bpmn"/>
    <property name="oracle.composite.faultPolicyFile">fault-policies.xml</property>
    <property name="oracle.composite.faultBindingFile">fault-bindings.xml</property>
</component>

A ação de intervenção de usuário é definida com a tag ora-humam-intervention no arquivo fault-policies.xml. Sem a política de falhas, as instancias BPMN não irão gerar falhas recuperáveis:

<faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <faultPolicy version="1.0" id="DefaultPolicy"
                xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns="http://schemas.oracle.com/bpel/faultpolicy"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <Conditions>
      <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
                  name="bpelx:bindingFault">
           <condition>
               <action ref="ora-human-intervention"/>
           </condition>
       </faultName>
       <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
                  name="bpelx:remoteFault">
           <condition>
               <action ref="ora-human-intervention"/>
           </condition>
       </faultName>
       <faultName xmlns:task="http://xmlns.oracle.com/bpel/workflow/taskService"
                  name="task:operationErroredFault">
           <condition>
               <action ref="ora-human-intervention"/>
           </condition>
       </faultName>
       <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
                  name="bpelx:selectionFailure">
           <condition>
               <action ref="ora-human-intervention"/>
           </condition>
       </faultName>
       <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
                  name="bpelx:runtimeFault">
           <condition>
               <action ref="ora-human-intervention"/>
           </condition>
       </faultName>
       <faultName>
           <condition>
               <action ref="ora-human-intervention"/>
           </condition>
       </faultName>
   </Conditions>
   <Actions>
           <Action id="ora-human-intervention">
               <humanIntervention/>
           </Action>
           <Action id="ora-rethrow-fault">
                <rethrowFault/>
           </Action>
           <Action id="ora-terminate">
                <abort/>
           </Action>
           <Action id="ora-replay-scope">
                <replayScope/>
           </Action>
           <Action id="ora-retry">
               <retry>
                   <retryCount>5</retryCount>
                   <retryInterval>10</retryInterval>
                   <exponentialBackoff/>
                   <retryFailureAction ref="ora-human-intervention"/>
               </retry>
           </Action>
   </Actions>
   </faultPolicy>
</faultPolicies>

Onde “retryCount” é a quantidade de vezes que vai tentar recuperar o erro, “retryInterval” é o tempo programador de intervalo entre as tentativas de recuperação do erro, “retryFailureAction“ é a ação que será tomada se todas as tentativas de recuperação de erros falharem.

O arquivo fault-bindings associa a política de falhas definidas no arquivo fault-policies.xml ao composite do processo:

<faultPolicyBindings version="1.0"
                    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <composite faultPolicy="DefaultPolicy"/>
</faultPolicyBindings>

Uma vez definida a intervenção de usuário como ação, é possível recuperar as falhas no Enterprise Manager.

NO ORACLE BPM 12c…

No Oracle BPM 12c, existe uma nova opção da criação do arquivo fault-policies pelo JDeveloper.  Toda vez que é criado um arquivo fault-policies pelo editor, você basicamente está criando um novo arquivo XML com a política de falhas padrão. Ou seja, criando o arquivo fault-policies.xml na pasta do processo.

Através do JDeveloper, este arquivo pode ser configurado pelo editor de forma amigável.

Fault-Policies Oracle 12 c As falhas são categorizadas na seção “Fault Handler” em “System faults” – bindings faults, mediator faults and remote faults – e “Service Faults” – uma lista de falhas definidas pelo WSDL que seu composite utiliza.

Para cada tratamento de exceção é possível selecionar uma ação padrão, da lista de ações definidas.

Nota: assim como no 11g, para que o processo identifique e use o tratamento de erros, é preciso criar manualmente o arquivo fault-bindings.xml e relacionar a política criada.

Também é preciso configurar manualmente os arquivos de tratamentos de falhas no composite.xml.


Referências: