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)
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 XSD: DVMBPELProcess.xsd (Clique sobre o nome para fazer o download do arquivo)
Nome WSDL: DVMBPELProcess.wsdl (Clique sobre o nome para fazer o download do arquivo)
Após criá-los no seu projeto deveremos ter:
Agora vamos criar um DVM, com o botão direito clique sobre a pasta SOA Content e clique em New …
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
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:
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
Abaixo inseri apenas mais alguns Estados para nossos testes:
Agora crie um BPEL baseado neste WSDL:
Após criado nosso BPEL, arraste um Assign para dentro dele conforme abaixo:
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:
Agora em Advanced Functions escolha a opção DVM Functions e clique em Insert Into Expression
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”,””)
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:
Clique no seu projeto: DVMBpel [1.0] e clique em Test
Em seguida coloque um Estado para realizarmos o teste, abaixo coloquei AMAPA que deverá retornar AP
Request:
Response:
“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
Selecione DVMBpel_rev1.0 e clique em Open
Clique em Edit
Clique agora no sinal + para adicionar mais um Estado e mais uma Sigla
Na tela abaixo entre com o nome do Estado e a Sigla (No meu caso, Estado TOCANTINS, Sigla: TO)
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 o DVM não salvará as alterações.
Após clicar em Commit clique em Yes conforme abaixo para confirmar suas alterações:
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.