Criando um Domain Value Maps (DVM) no BPEL

Por Uanderson Carvalho
Postado em Mayo 2015

Basicamente o uso do DVM serve para controle de valores: Onde podemos mapear valores através de chaves, o DVM é uma opção ao uso dos arquivos de properties do Java ou XMLCache do WLI (Weblogic Integration)

Para nosso teste vamos criar um DVM que tem o nome de alguns Estados para posteriormente mapearmos através destes nomes suas Siglas.

Primeiro criamos o nosso Projeto, no meu caso criei com o nome DVMBpel

Obs: Veja que criei um BPEL vazio (Empty Composite)

image001-2544415

Criei um XSD e um WSDL com as operações que iremos usar, abaixo segue os mesmos caso você também queira realizar os mesmos testes.

Nome XSDDVMBPELProcess.xsd  (Clique sobre o nome para fazer o download do arquivo)

Domain Value Maps

Nome WSDLDVMBPELProcess.wsdl  (Clique sobre o nome para fazer o download do arquivo)

Domain Value Maps

Após criá-los no seu projeto deveremos ter:

Domain Value Maps

Agora vamos criar um DVM, com o botão direito clique sobre a pasta SOA Content e clique em New 

Domain Value Maps

Onde está o ícone de um “Binóculo” escreva DVM e escolha a opção ao lado Domain Value Map(DVM) e clique em OK

Domain Value Maps

Agora para o nome entre com Siglas.dvm e em Domain Name coloque Estado (Este será nossa chave) e em Domain Value coloque SAO PAULO (Este será um valor default)

Novamente em Domain Name na linha abaixo coloque Sigla (Este será o nosso valor) e coloque em Domain Value coloque SP (Este será a nossa Sigla default) e deverá estar como abaixo:

Domain Value Maps

Agora clique em OK, veja que no Estado SAO PAULO e a Sigla SP foram criadas como valor default, agora vamos inserir mais alguns Estados com suas respectivas Siglas.

Para isso clique no Sinal + e em Add Domain Values

Domain Value Maps

Abaixo inseri apenas mais alguns Estados para nossos testes:

Domain Value Maps

Agora crie um BPEL baseado neste WSDL:

Domain Value Maps

Após criado nosso BPEL, arraste um Assign para dentro dele conforme abaixo:

Domain Value Maps

Dentro do Assign1 vamos expandir outputVariable do seu lado direito até client:SiglaEstado, após isso clique em Expression e arraste para dentro de client:SiglaEstado e aparecerá a tela abaixo:

Domain Value Maps

Agora em Advanced Functions escolha a opção DVM Functions e clique em Insert Into Expression

Domain Value Maps

Dentro de dvm:lookupValue() vamos colocar os parâmetros necessários conforme abaixo:

dvm:lookupValue(dvmMetadataURI as string, SourceColumnName as string,SourceValue as string, TargetColumnName as string, DefaultValue as string) as string.

No nosso caso ficará assim:

dvm:lookupValue(“Siglas.dvm”,”Estado”,($inputVariable.payload/client:NomeEstado),”Sigla”,””)

Domain Value Maps

Agora realize o deploy local 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:

Domain Value Maps

Clique no seu projeto: DVMBpel [1.0] e clique em Test

Domain Value Maps

Em seguida coloque um Estado para realizarmos o teste, abaixo coloquei AMAPA que deverá retornar AP

Request:

Domain Value Maps


Response
:

Domain Value Maps

“Voalá“.. Nosso DVM foi construído com sucesso.

Porem, vamos supor que seu projeto já está em Produção e agora queremos acrescentar mais Estados com mais Siglas.

Para isso certifique-se de que seu Composer está habilitado.

Após isso, no seu Browser entre na URL http://localhost:10000/soa/composer

Clique em Open >> Open DVM

Domain Value Maps

Selecione DVMBpel_rev1.0 e clique em Open
Domain Value Maps
Clique em Edit

Domain Value Maps

Clique agora no sinal + para adicionar mais um Estado e mais uma Sigla

 

Domain Value Maps

Na tela abaixo entre com o nome do Estado e a Sigla (No meu caso, Estado TOCANTINSSigla: TO)

Domain Value Maps

Clique em OK e veja abaixo que teremos mais um Estado, agora clique em Save e em seguida clique em Commit:

Obs: Preste muita atenção nesta hora pois você tem mesmo que clicar primeiro em Save e só depois clicar em Commit, caso você esqueça de clicar em Commit ou Save DVM não salvará as alterações.

Domain Value Maps

Após clicar em Commit clique em Yes conforme abaixo para confirmar suas alterações:

Domain Value Maps

Pronto: Seu novo Estado com a Sigla foi inserido com sucesso.

Obs: Já vi diversos problemas onde essas alterações não são adicionadas por algum Bug do próprio DVM, por isso sugiro você dar um Logout e entrar novamente na tela para certificar-se que suas alterações estão lá, caso não esteja repita os passos para adiciona-las novamente.

Faça download deste Projeto

Uanderson Carvalho é um Especialista Oracle SOA com foco em integração entre sistemas legado utilizando as tecnologias Oracle Fusion Middleware e SOA, Pós-graduado em Administração de Banco de Dados Oracle. Certificado pela Oracle como: Oracle SOA Suite 11g Certified Implementation Specialist.

Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.