GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

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

A description...

Será aberto uma tela como abaixo:

Em seguida selecione Generic Project

A description...

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

A description...

Agora que criamos um Projetovazio vamos criar um BPEL

A description...

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

A description...

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.

A description...

Pronto, ele deverá ficar assim:

A description...

Abra o seu BusinessRuleBPELProcess.bpel

A description...

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

A description...

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

A description...

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

A description...

Na próximatela 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

A description...

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

A description...

Em Name: Coloque TipoPessoa e clique na Lupa

A description...

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

A description...

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

A description...

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

A description...

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

A description...

Clique em Variables e clique no sinal +

A description...

Em Name coloque Mensagem e clique na lupa

A description...

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

A description...

Clique em OK novamente

A description...

Na tela abaixo selecione o nome Mensagem e clique em OK

A description...

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

A description...

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

A description...

Vamos agora dar nomes aos Bois A description...
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:

A description...

 Agora vamos definir nossas

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

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

A description...

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

A description...

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

A description...

Em <target> selecione Mensagem

A description...

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

A description...

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

A description...

Agora abaixo de THEN clique em Paste Rule

A description...

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:

A description...

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

A description...

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

A description...

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

A description...

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

A description...

 Agora arraste outro Assign abaixo de TipoPessoaRule e renomeie para OutputAssign

A description...

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

A description...

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:

A description...

Clique no seu projeto: BusinessRuleBpel [1.0]

A description...

Clique em Test

A description...

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

A description...

Veja abaixo o resultado:

A description...

Faça novamente o teste colocando em inputPJ e depois qualquer outronome…
Duvidas ? Deixe seu comentário e faça download deste ProjetoA description...

Abraços e até a Próxima

Share

You may also like...

Deixe um comentário

O seu endereço de e-mail não será publicado.