Usando DB Adapter no SOA Suite 12c

Quando você tem um processo BPEL, e ele precisa executar uma operação em uma tabela de banco de dados, por exemplo, inserir um funcionário, você tem que usar o adaptador de banco de dados. O adaptador de banco de dados expõe ao SOA, tabelas e SQL de forma transparente e não intrusiva.

Neste post, vou criar um Processo BPEL para inserir funcionários na tabela EMPLOYEES do HR Schema. Melhores práticas, tais como a utilização de MDS e Mediador, não são o objetivo deste post. Faça o download do aplicativo de amostra: SOADBAdapterApp.zip.

Crie uma aplicação SOA.
No Step 1, defina o Application Name e Application Package Prefix.

using-db-adapter-in-soa-suite-12c1

No Step 2, defina o Project Name.

using-db-adapter-in-soa-suite-12c2

No Step 3, escolha Empty Composite e clique em Finish para criar a aplicação.

using-db-adapter-in-soa-suite-12c3

Crie o XSD de funcionários.
Na janela Applications, clique com o botão direito na pasta Schemas dentro do Projeto e escolha New > From Gallery.
Na caixa de diálogo New Gallery, escolha SOA Tier > Interfaces > XML Schema, e clique em OK.
Defina o File Name e Target Namespace, e clique em OK.

using-db-adapter-in-soa-suite-12c4

Cole o seguinte código dentro do arquivo XSD:

<xsd:element name="createEmployeeRequest">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="employee" type="employeeType"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

<xsd:element name="createEmployeeResponse">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="status" type="xsd:string" minOccurs="0"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

<xsd:complexType name="employeeType">
  <xsd:sequence>
    <xsd:element name="firstName" type="xsd:string" minOccurs="0"/>
    <xsd:element name="lastName" type="xsd:string"/>
    <xsd:element name="email" type="xsd:string"/>
    <xsd:element name="hireDate" type="xsd:date"/>
    <xsd:element name="jobId" type="xsd:string"/>
  </xsd:sequence>
</xsd:complexType>

using-db-adapter-in-soa-suite-12c5

Crie o contrato de serviço (WSDL).
Na janela Applications, clique com o botão direito na pasta WSDLs dentro do Projeto e escolha New > From Gallery.
Na janela New Gallery, escolha SOA Tier > Interfaces > SOA WSDL Document, e clique em OK.
Na caixa de diálogo Create WSDL, preencha o formulário e clique em OK.

using-db-adapter-in-soa-suite-12c6

Abra o arquivo EmployeeProject.
Para criar o processo BPEL, clique com o botão direito na seção Components, e escolha Insert > BPEL Process.
Na caixa de diálogo Create BPEL Process, preencha o formulário e clique em OK.

using-db-adapter-in-soa-suite-12c7

Para criar o Database Adapter, clique com o botão direito na seção External References e escolha Insert > Database.
No Step 1, defina o DBAdapter Name e clique em Avançar.

using-db-adapter-in-soa-suite-12c8

No Step 2, escolha a conexão de banco de dados, defina o JNDI Name e clique em Avançar.

using-db-adapter-in-soa-suite-12c9

No Step 3, escolha a opção Insert Only e clique em Avançar.

using-db-adapter-in-soa-suite-12c10

No Step 4, clique no botão Import Tables, escolha a tabela EMPLOYEES do HR Schema e clique em Avançar.

using-db-adapter-in-soa-suite-12c11

No Step 5, clique em Next.

using-db-adapter-in-soa-suite-12c12

No Step 6, clique em Next.

using-db-adapter-in-soa-suite-12c13

No Step 7, clique no botão Search, selecione EMPLOYEES_SEQ como Sequence e clique em Avançar.
Desta forma, a operação de inserção, vai usar essa seqüência para gerar uma chave única.

using-db-adapter-in-soa-suite-12c14

No Step 8, clique em Next.

using-db-adapter-in-soa-suite-12c15

No Step 9, clique em Finish.

using-db-adapter-in-soa-suite-12c16

Crie uma ligação entre o CreateEmployeeBPELProcess e o HrDbReference.

using-db-adapter-in-soa-suite-12c17

Dê um clique duplo no componente CreateEmployeeBPELProcess para criar o fluxo do processo.
Arraste dois compoentes Assign e um Invoke, e solte dentro do processo.

using-db-adapter-in-soa-suite-12c18

Crie uma ligação entre o Invoke e o HrDbReference.
No Edit Invoke, preencha o formulário, crie as variáveis de entrada e de saída, e clique em OK.

using-db-adapter-in-soa-suite-12c19

Clique duas vezes no primeiro compotente Assign, ligue os parâmetros e clique em OK.

using-db-adapter-in-soa-suite-12c20

Clique duas vezes no segundo compotente Assign, ligue uma expressão ‘Sucesso’ para o parâmetro de status da variável de saída, e clique em OK.

using-db-adapter-in-soa-suite-12c21

Nós terminamos nosso processo BPEL!
Agora, inicie o Integrated WebLogic Server e vá para o WebLogic Server Administration Console.
Vá para Services > Data Sources e crie um novo.

using-db-adapter-in-soa-suite-12c22

Vá para Deployments e clique em DbAdapter.
Vá para a guia Configuration e, em seguida, Outbound Connection Pools.
Clique no botão New, escolha javax.resource.cci.ConnectionFactory e crie uma nova Outbound Connection.

using-db-adapter-in-soa-suite-12c23

Clique na Outbound Connection que você criou e defina:

  • sequencePreallocationSize para coincidir com o valor de incremento em sua seqüência (que é 1 por padrão).
  • XADataSourceName para o JNDI Name de seu Data Source.

using-db-adapter-in-soa-suite-12c24

Clique em Salvar.
Vá para Deployments e atualize o DbAdapter.
Volte para o JDeveloper e implante seu projeto SOA no Integrated WebLogic Server.
Vá para o Enterprise Manager (EM) e teste o serviço.

using-db-adapter-in-soa-suite-12c25

using-db-adapter-in-soa-suite-12c26

Waslley Souza

Autor: Waslley Souza

Consultor Oracle com foco em tecnologias Oracle Fusion Middleware e SOA. Certificado Oracle WebCenter Portal, Oracle ADF e Java.

Deixe uma resposta

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