Phoenix Criminal Lawyer

Utilizando BPEL com DBAdapter

Neste post, vou explicar como utilizar o DBAdapter com BPEL, para isso, além de utilizar o JDeveloper e o Weblogic, também vou utilizar o SQL Developer.

Primeiramente vamos criar um projeto novo, com o JDeveloper aberto, vá em File > New, escolha Applications e em itens selecione SOA Application.

Na tela seguinte de um nome para sua aplicação (no meu caso BPELWithDBAdapter) e clique em next. Agora, de um nome ao seu projeto (no meu caso BPELWithDBAdapter, você pode alterar conforme a sua necessidade). Selecione um template para o composite que contenha o BPEL e clique em finish.

Feito isso, irá abrir uma janela para que defina um nome ao bpel, sua especificação e template.
OBS.: O template que vamos utilizar nesse exemplo é o Synchronous.

Clique com o botão direiro sobre o BPEL criado e clique em edit, primeiramente, vamos inserir um Assign entre os componentes de entrada e saída e logo após o assign adicione um invoke.
Qualquer dúvida sobre os passos iniciais acima, veja também: http://brunogualda.com.br/introducao-ao-bpel/.

Nesse momento, sua tela deverá estar conforme apresentado abaixo:

Agora vamos adicionar o DBAdapter, este que será responsável pela comunicação entre a base de dados e a requisição do serviço que estamos criando. Vá em BPEL Services e arraste o componente Database Adapter para o Partner Links no canto direito do BPEL. Irá carregar um tela de boas vindas, pode clicar em next. Na tela seguinte, dê um nome para o service name e clique em next.

É chegado o momento de configurarmos uma conexão com a base de dados, para isso, clique no sinal de +, uma tela irá se abrir requisitando que forneça as informações de conexão com sua base de dados, após o fornecimento dos dados você pode checar se está tudo OK clicando em Test Connection, se tudo correr conforme esperado, no campo inferior irá apresentar a mensagem “Sucess!“, então, podemos clicar em OK.

De volta a tela de configuração do service connection, deve-se alterar o nome da JNDI que foi criada juntamente com o data source, no meu caso: eis/DB/DTExample. E clique em next.

Caso ainda não tenha configurado nenhum data source, veja mais sobre em: http://brunogualda.com.br/configuracao-de-data-source-no-weblogic/.

Agora, vamos selecionar o tipo de operação que desejamos efetuar. Neste exemplo irei utilizar a inserção de dados. Para isso, selecione a opção Perform an Operation on a Table e marque a opção Insert Only. Agora clique em next.

Em select table, clique em Import Tables para selecionar a tabela que deseja efetuar a inserção dos dados. Estou utilizando a tabela ‘PESSOA’ para efetuar esta inserção. Clique em next.

Na tela seguinte, marque os campos da tabela que pretende definir as primary keys, neste exemplo, todos e clique em next e next novamente, pois não teremos nenhum relacionamento entre tabelas.

Após o passo acima, pode-se clicar em next até que a opção finish seja ativada e então clique nela para finalizar. Ao efetuar estes passos, deverá constar uma tela conforme apresentada abaixo, onde é definido as informações do WSDL que está sendo criado. Clique em OK.

Nesse momento, vamos efetuar a ligação entre o invoke e o dbadapter. Para isso, clique na seta ao lado do invoke e arraste até o dbAdapter, será aberta uma tela para edição do invoke. Aqui podemos configurar um nome para o invoke, a operação que será executada e a entrada dos dados. Para o exemplo, utilizei o nome InsereDados, em operation mantém-se Insert e np campo input, clique no sinal de + para adicionar a variável de entrada, ao fazer isso você poderá definir um nome para sua variável. No meu caso, irei manter o nome padrão.

A tela de edição do invoke deverá estar igual ou parecida a apresentada abaixo, isso irá depender do nome que você utilizou na variável. Clique em OK.

Agora devemos alterar o valor das variáveis de entrada no XSD criado pelo BPEL, onde elas serão responsáveis pela passagem dos valores a base de dados. Vá em Applicarion Navigatior, abra o arquivo BPELProcessWithDBAdapter.xsd, na parte inferior clique em source, sua tela deverá estar conforme a imagem abaixo:

Altere a variável input adicionando as variáveis que serão responsáveis por passar os dados para a base de dados. Veja abaixo:

De volta ao BPEL, clique com o botão direito no Assign para editá-lo. Na tela que se abre há varias abas, nesses momento vamos trabalhar apenas na aba General onde vamos alterar o nome do Assign para algo mais amigável, por exemplo AtribuiDados. Agora vamos utilizar a aba Copy Rules, nesse ponto vamos fazer a atribuição dos valores que será passado no BPEL e inseridos na base.
No lados esquerdo da tela expanda inputVariable > payload > client:process, e no lado esquerdo expandir InsertDados_insert_InputVariable > PessoaCollection > ns2:PessoaCollection: PessoaCollection > ns2:Pessoa : Pessoa. Agora faça a ligação dos campos correspondentes, a edição do assign deverá ficar da seguinte forma:

Faça o deploy da aplicação. Veja como efetuar deploy da aplicação em: http://brunogualda.com.br/como-efetuar-deploy-do-jdeveloper-no-weblogic/

Acesse a url do servidor em http://localhost:7001/em (no meu caso), clique sobre a aplicação BPELWithDBAdapter, deverá carregar uma tela conforme apresentada abaixo:

Clique em Test, nas variáveis insira os valores correspondentes e clique em Test Web Service

Para verificar se a ação foi bem sucedida, acesse a base de dados na tabela e veja se os dados foram inseridos com sucesso.

Download do projeto
Downlo do script

Testebot