BPEL

Criando uma Business Rule no BPEL

“Uma Business Rule é uma regra que define ou restringe algum aspecto do negócio. Sua declaração é resolvida como verdadeira ou falsa. Business Rules buscam determinar a estrutura de negócio ou para controlar ou influenciar o comportamento do negócio. ”

“http://en.wikipedia.org/wiki/Business_rule”

Aqui vamos criar uma simples Business Rule que definirá conforme nosso parâmetro de entrada se é uma pessoa do tipo FISICA ou do tipo JURIDICA

Antes de mais nada é interessante que você tenha certeza que seu COMPOSER esteja ativo em seu Domínio, para isso consulte o post: Ativando SOA Composer no Oracle SOA Suite 11g

Feito isso, vamos criar um projeto chamado BusinessRuleBpel

Clique em File >> New

Imagem Blog UansCarvalho

Será aberto uma tela como abaixo:

Em seguida selecione Generic Project

Imagem Blog UansCarvalho

Em Project Name coloque BusinessRuleBpel e em Project Technologies selecione o nome SOA e clique na setinha > para que o nome vá para a direita e fique como abaixo:

Clique em Next e Finish em seguida, deixando o Composite Template em Empty Composite

Imagem Blog UansCarvalho

Agora que criamos um Projeto vazio vamos criar um BPEL

Imagem Blog UansCarvalho

Agora com o botão direito clique Componets > Insert > BPEL Process

Imagem Blog UansCarvalho

Clique em BPEL 2.0 Specification

Em name coloque BusinessRuleBPELProcess

Em Template selecione Synchronous BPEL Process e clique em OK

Deixe selecionado a opção Expose as a SOAP service, pois este será o responsável por criar um WSDL e XSD default o qual iremos alterar para nossos testes.

Imagem Blog UansCarvalho

Pronto, ele deverá ficar assim:

Imagem Blog UansCarvalho

Abra o seu BusinessRuleBPELProcess.bpel

Imagem Blog UansCarvalho

Entre o receiveInput e o replyOutput arraste um componente Business Rule conforme abaixo:

Imagem Blog UansCarvalho

Renomeie a Rule1 para TipoPessoaRule, para isso basta dar um duplo clique sobre o nome.

Imagem Blog UansCarvalho

Dê um duplo clique sobre a caixinha TipoPessoaRule e clique no sinal de + ao lado de Dictionary

Imagem Blog UansCarvalho

Na próxima tela vamos definir o nome de nossa Rule, e os parâmetros de entrada (input) e saída (outPut).

Em Name: coloque TipoPessoaRules e clique no sinal de + em seguida em Add input Variable

Imagem Blog UansCarvalho

Agora clique na segunda caixinha Variables dentro de Process e clique no sinal de +

Imagem Blog UansCarvalho

Em Name: Coloque TipoPessoa e clique na Lupa

Imagem Blog UansCarvalho

Em Project Schema Files, selecione a opção process e clique em OK

Imagem Blog UansCarvalho

Em seguida vamos inicializar nossa Rule com nosso input

Então, clique na guia Initialize e selecione a opção payload dentro de inputVariable conforme abaixo:

Veja que em XPath ficará como $inputVariable.payload

Imagem Blog UansCarvalho

Deixe Selecionado a opção TipoPessoa e clique em OK

Imagem Blog UansCarvalho

Agora novamente na tela abaixo clique no sinal + e agora clique em Add OutputVariable

Imagem Blog UansCarvalho

Clique em Variables e clique no sinal +

Imagem Blog UansCarvalho

Em Name coloque Mensagem e clique na lupa

Imagem Blog UansCarvalho

Em Project Schema Files selecione a opção processResponse e clique em OK

Imagem Blog UansCarvalho

Clique em OK novamente

Imagem Blog UansCarvalho

Na tela abaixo selecione o nome Mensagem e clique em OK

Imagem Blog UansCarvalho

Pronto, sua tela deverá estar conforme abaixo, veja que agora já definimos nosso input e Output, agora clique em OK

Imagem Blog UansCarvalho

Após clicado em OK foi criado então nossa rule TipoPessoaRules.rules conforme abaixo, então clique em Create Rule para definirmos nossas regras através de IF/THEN

Imagem Blog UansCarvalho

Vamos agora dar nomes aos Bois 🙂

Coloque os nomes conforme abaixo, lembrando que para renomear basta clicar sobre o nome e dar um ENTER

  • Ruleset1 – Renomeie para TipoPessoaRuleset
  • Rule1 – Renomeie para PessoaFisicaRule

Deverá ficar assim:

Imagem Blog UansCarvalho

Agora vamos definir nossas condições:

Logo abaixo do IF clique em <insert test> e aparecerá automaticamente <operand> == <operand>

Clique no primeiro <operand> e selecione a opção TipoPessoa >> input

Imagem Blog UansCarvalho

Agora no segundo <operand> coloque entre aspas duplas “PF” e pressione ENTER

Imagem Blog UansCarvalho

Em THEN clique em <Insert Action> e selecione assert new

Imagem Blog UansCarvalho

Em <target> selecione Mensagem

Imagem Blog UansCarvalho

Em <edit properties> ao clicar irá aparecer a tela abaixo, então na guia Value coloque entre aspas duplas “TIPO PESSOA FISICA” , dê um ENTER e clique em OK

Imagem Blog UansCarvalho

Vamos agora definir a regra para pessoa JURIDICA e depois uma regra para caso a pessoa não nos informe nenhum dos dois.

Para facilitar vamos copiar nossa Rule e renomeá-la

Logo ao lado de PessoaFisicaRule clique com o botão direito do mouse e clique em Copy

Imagem Blog UansCarvalho

Agora abaixo de THEN clique em Paste Rule

Imagem Blog UansCarvalho

Mude os parâmetros conforme abaixo:

  • Renomeie Rule2 para PessoaJuridicaRule
  • No IF clique novamente em tipoPessoa e altere para TipoPessoa.input
  • Em “PF” mude para “PJ”
  • Em THEN coloque “TIPO PESSOA JURIDICA” em result

Deverá então ficar conforme abaixo:

Imagem Blog UansCarvalho

Agora novamente copie qualquer uma das regras e coloque a abaixo deixando a tela conforme parâmetros abaixo:

Imagem Blog UansCarvalho

Então agora teremos as três seguintes regras:

Imagem Blog UansCarvalho

Até aqui OK, nossas Rules já foram definidas.

Agora volte ao BusinessRuleBPELProcess.bpel e adicione um Assign após nosso receiveInput, em seguida renomeie para TipoPessoaAssign

Imagem Blog UansCarvalho

Dentro de nosso TipoPessoaAssign ligue nosso payload de inputVariable (lado esquerdo) para TipoPessoa (lado direito) e clique em OK

Imagem Blog UansCarvalho

Agora arraste outro Assign abaixo de TipoPessoaRule e renomeie para OutputAssign

Imagem Blog UansCarvalho

Abra o OutputAssign e dentro dele ligue Mensagem (lado esquerdo) até Payload do seu outputVariable (lado direito)

Imagem Blog UansCarvalho

Realize o deploy localmente do nosso projeto e vamos testa-lo

 

No seu Browser vá no endereço http://localhost:10000/em

Obs: A porta 10000 é o numero que escolhi ao criar o meu Domínio.

Faça o Login:

Imagem Blog UansCarvalho

Clique no seu projeto: BusinessRuleBpel [1.0]

Imagem Blog UansCarvalho

Clique em Test

Imagem Blog UansCarvalho

Em input coloque por exemplo PF e em seguida clique em Test Web Service

Imagem Blog UansCarvalho

Veja abaixo o resultado:

Imagem Blog UansCarvalho

Faça novamente o teste colocando em input PJ e depois qualquer outro nome

 

Duvidas ? Deixe seu comentário e faça download deste Projeto :-)

 

Abraços e até a Próxima

/:-D

 

 

Criei este Blog destinado a desenvolvedores e interessados na Tecnologia Oracle SOA Suite, minha idéia é que no futuro ele sirva de referência para Analistas e Desenvolvedores desde aprendizes a especialistas. Já existem alguns Posts interessantes que abordam um pouco do meu dia a dia, no passar do tempo irei alimentar este Blog com o máximo de informações possíveis, por isso peço por gentileza aos interessados e afins que caso tenham alguma dúvida, sugestão ou crítica que me digam para que eu possa da melhor forma suprir as expectativas e na medida do possível sanar todas as duvidas que vierem a surgir ou até mesmo criar novos Posts abordando algum tópico que venha a ser relevante para todos os interessados. Obrigado Uans Carvalho

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *