Vamos criar um processo de histórico de informações. O processo consiste em gravar a data/hora, uma mensagem da operação feita e um identificador em uma tabela do banco. Como não será necessário aguardar por uma resposta, vamos configurar o serviço como One Way BPEL Process.
Instale o plugin do SOA Suite, conforme descrito na seção Instalação JDeveloper + Extensions do post: http://www.thiagovespa.com.br/blog/2010/12/23/oracle-soa-e-bpm-suite/
Abra o JDeveloper, vá em File, New, General, Applications, SOA Application, clique OK. Dê um nome para sua aplicação e clique em Next. Dê um nome para o projeto e clique em Next. Selecione Composite With BPEL Process e clique em Finish.
Na próxima tela, selecione a especificação do BPEL (estou utilizando a 2.0), informe o nome do processo, namespace, o template (One Way BPEL Process), o Service Name e clique OK.
Ele irá criar um projeto SOA composite com o processo BPEL. No Application Navigator (Ctrl+Shift+A). Abra o XSD criado, SOA Content, xsd, HistoricoBPELProcess.xsd (no meu caso). Insira os elementos que serão enviados para o processo. O meu ficou da seguinte forma:
Se você quiser, pode utilizar o código abaixo:
<?xml version="1.0" encoding="UTF-8"?> <schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://xmlns.thiagovespa.com.br/BPELSampleApp/BPELDBAdapter/HistoricoBPELProcess" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="process"> <complexType> <sequence> <element name="identificador" type="string"/> <element name="data" type="date"/> <element name="mensagem" type="string"/> </sequence> </complexType> </element> </schema>
Abra o processo BPEL, e na Component Palette (Ctrl+Shift+P) abra a aba BPEL Services e arraste o Database Adapter para o Partner Links. Irá abrir o Adapter Configuration Wizard, clique em Next. Dê um nome para o serviço, clique em Next. Clique no + para adicionar uma nova conexão, informes os dados de conexão e clique OK. Especifique o nome JNDI para a conexão ou utilize o padrão e clique em Next.
Na próxima tela, escolha as opções a serem executadas. No nosso caso, vai ser insert only. Clique em Next.
Clique em Import Tables para selecionar a tabela de histórico. Selecione a tabela e clique OK e Next. Na próxima tela informe os relacionamentos entre tabelas. No nosso caso não teremos, então clique em Next. Selecione as colunas que serão inseridas e clique em Next. Informe os parâmetros de tentativa e sequences e clique em Next. Clique em Finish para terminar. Na tela do Create Partner Link, clique em OK.
No Component Palette, abra a aba BPEL Constructs e arraste o nó Invoke para logo abaixo do receiveInput. Clique em uma setinha lateral do Invoke e arraste até o Partner Link do DBAdapter criado. Abrirá a janela de Edição do Invoke. Mude o nome para algo mais amigável, por exemplo: insercaoHistorico. Em Input, clique no mais, insira uma nova variável e pressione OK. Faça o mesmo procedimento com o Output. Pressione OK.
Adicione uma atividade de Assign entre o receiveInput e o insercaoHistorico. Dê dois cliques e na aba Copy Rules faça as associações dos dados recebidos com os dados a serem inseridos.
Altere os nomes dos nós para ficarem mais amigáveis.
Agora vamos configurar o Database Adapter no servidor. Suba o servidor com o SOA Suite. Acesse o console do WebLogic Server. No domínio, acesse Services, Data Sources, New, Generic Data Source. Informe um Nome (DBAdapterSample), um JNDI Name (jdbc/DBAdapterSample). escolha o tipo da base (Oracle) e clique em Next. Informe o driver e clique em Next. Se for XA você não precisa configurar mais nenhuma opção, aí é só clicar em Next. Informe os dados de conexão, clique em Next. Clique em Test Configuration, se tudo for OK, clique em Next, senão clique em Back e altere as configurações. Selecione o servidor e clique em Finish.
Vá em Deployments e procure por DBAdapter. Selecione ele, clique em Configuration. Selecione Outbound Connection Pools e clique em New. Escolha javax.resource.cci.ConnectionFactory e clique em Next. Insira o JNDI Name que você informou ao criar o DBAdapter no processo BPEL (eis/DB/DBAdapterSample). Lembre-se que esse JNDI deve ser diferente do Data Source. Clique em Finish. Selecione o Outbound Connection Pool criado. Na aba Properties, atribua o valor do JNDI do Data Source (jdbc/DBAdapterSample) na propriedade xADataSourceName. Dica: pressione Enter para efetuar as alterações. Clique em Save.
Vá novamente em Deployment, marque o checkbox do DbAdapter, clique em Update. Marque a opção "Redeploy this application using the following deployment files". Clique em Next e Finish.
No JDeveloper, clique com o botão direito no projeto, Deploy e escolha a aplicação. Selecione Deploy to Application Server, clique em Next. Atribua o número de revisão e clique em Next. Caso você não tenha adicionado o servidor, clique no + e configure o servidor SOA, caso contrário, selecione o servidor e clique em Next. Escolha o Partition, clique em Next e Finish para realizar o deploy.
Acesse o Enterprise Manager, SOA, soa-infra, default (partition) e escolha sua aplicação. Clique no botão Test. Informe os 3 parâmetros e clique em Test Web Service.
Pronto.. as informações devem ter sido inseridas no banco de dados. Acompanhe o que foi feito no processo clicando no botão Lauch Flow Trace.
[...] This post was mentioned on Twitter by Bruno Gualda and Cássio & Josi, Thiago G. Vespa. Thiago G. Vespa said: Novo post: BPEL com DBAdapter http://j.mp/fZzVrp [...]
Cara, estava com um problema em meu dbadapter, em um aplicação em contexto BPM 11g, e seu artigo me ajudou a resolver o problema, como configurar a conexao de saída eis/DB, muito obrigado.
Qual o problema?
Thiago,
Tenho uma questão e espero que me ajude.
Tenho um banco de Dados onde possuo Desenvolvimento e Produção .
Quero atualizar o banco de Dados de Desenvolvimento , mas nele estão tambem as tabelas criadas pelo RCU , se eu trouxer os dados de Produção , o applications do SOA irão se perder em Desenvolvimento ?
Tipo existe alguma tabela que o SOA grava configuração de Servidores e etc ?
Obrigado.
Olá Marcos,
Não recomendo esse tipo de cópia. O correto é você migrar os dados do MDS e do SOA utilizando alguns utilitários como o WLST para exportar os dados do MDS e importar para a base correta.
Para que seria essa atualização?
Abraços
[…] e é configurado na implantação do DbAdapter no console do weblogic para mais informações vide terá a explicação de como configurar. Depois clique em […]