Phoenix Criminal Lawyer

Introdução ao BPEL

Nos últimos tempos tenho trabalho com conceitos inerentes a arquitetura SOA-Service Oriented Architecture (veja mais aqui). Trata-se de uma arquitetura que permite a criação de serviços de negócios que podem ser reutilizados e compartilhados. Dentre os serviços, temos o BPEL-Business Process Execution Language (veja mais aqui). BPEL é uma linguagem de orquestração baseada em XML que descreve processos de negócios executáveis.
Bem, mas nesse momento, não entrarei em méritos explicativos, vamos colocar a mão na massa que é mais interessante.

Já com o JDeveloper aberto, vá em File > New, escolha Applications e em itens selecione SOA Application, conforme apresentado abaixo:

Na tela seguinte de um nome para sua aplicação.

Agora um nome para o projeto, em available e selected, marque as opções conforme a figura abaixo:

Na tela seguinte você pode definir um nome para o composite, e o template que deseja iniciar. Para o nosso exemplo, selecione a opção Composite With BPEL Process, feito isso, clique em finish.

Deverá apresentar uma tela conforme figura abaixo:

Essa tela é apresentada porque selecionamos a opção de inserir um BPEL no composite. Nela, podemos definir algumas informações, como o nome do BPEL, a url, o template do BPEL e sua especificação. Para o nosso exemplo, irei utilizar a especificaçao 2.0, o nome do BPEL será BPELIntroducao, nosso Namespace http://introducao.bpel.gualda.com.br/IntroducaoBPEL/IntroducaoBPEL/BPELIntroducao (o namespace pode ser matindo de forma original ou alterado conforme sua necessidade). O próximo passo é a definição do nosso template, veja na figura abaixo que temos várias definições, como por exemplo, Asynchronous e Synchronous, onde o primeiro envia uma requisição e não espera resposta para prosseguir, caso contrário ocorre no segundo. Neste nosso exemplo, vamos escolher a opção Synchronous e clicar em OK.

Sua tela deverá estar assim:

Clique com o botão direiro sobre o BPEL e clique em edit, é a partir desse ponto que vamos começar a definir o que o serviço deverá executar. Primeiramente, vamos inserir um Assign entre os componentes de entrada e saída.

Agora vamos alterar o nome da variável de entrada para ficar uma coisa mais amigável. Em Application Navigator, abra o arquivo BPELIntroducao.xsd, este foi criado juntamente com o BPEL, na parte inferior e clique em source, sua tela deverá estar conforme a imagem abaixo:

Altere a variável input para o nome que desejar, em meu caso, irei substituir por nome. Devolta ao BPEL, vamos agora editar o Assign que inserimos, clique com o botão direito, edit. Na tela em que se abre, no lado direito expanda inputVariable > paylod > client:process > client:nome e do lado esquerdo, outputVariable > payload > client:processResponse > client:result. Faça a ligação entre a variável nome criada e a variável result, conforme apresentado abaixo:

Agora, vamos adicionar uma expressão. Arraste a expression builder sobre o result, uma tela conforme abaixo deverá ser apresentada:

Em Functions, selecione String Functions e dê duplo clique sobre concat para adicionar ao campo Expression na parte superior. Dentro do concat, insira a mensagem que desejar entre aspas simples e coloque uma vírgula logo em seguida. Agora, em BPEL Variables selecione client:nome e dê duplo clique para adicionar após a mensagem inserida.

Clique em OK e OK novamente.

Agora efetue o deploy da aplicação. Veja aqui como fazer deploy: http://brunogualda.com.br/como-efetuar-deploy-do-jdeveloper-no-weblogic/.

Após efetuar o deploy, clique sobre a aplicação, deverá carregar uma tela conforme apresentada abaixo.

Clique em Test, na variável nome, insira o nome e clique em Test Web Service:

Veja agora que o valor passado na variável foi concatenado com o valor passado no assing.

Download do projeto

Testebot