Em algumas situações, no BPEL com SOA Suite, precisamos recuperar/alterar dados em tempo de execução sem ser necessário refazer e re-implantar a aplicação. Para resolver esse problema, o recurso de preferências vem bem a calhar. No JDeveloper, para o Oracle SOA Suite 11g, abra o composite.xml do seu projeto, selecione o componente BPEL e na janela de propriedades (Property Inspector - Ctrl+Shift+I) adicione uma propriedade nova com o nome bpel.preference.<Nome da propriedade>:
O código do composite.xml deve ter uma parte parecida com essa:
<component name="PrefsBPELProcess" version="2.0"> <implementation.bpel src="PrefsBPELProcess.bpel"/> <property name="bpel.config.transaction" type="xs:string" many="false">required</property> <property name="bpel.preference.nome" type="xs:string" many="false" override="may">Sem Nome</property> </component>
Agora é só recuperar no BPEL, utilizando a função: ora:getPreference('nome'). Para mudar o valor padrão, acesse o Enterprise Manager, expanda o nó WebLogic Domain, escolha o domínio com SOA e clique com o botão direito e escolha a opção System MBean Browser. Navegue na seguinte estrutura: Application Defined MBeans, oracle.soa.config, Server : <Nome do servidor>, SCAComposite, <Nome do seu projeto>, SCAComposite.SCAComponent, <Nome do seu BPEL>. Selecione o atributo Properties e altere para o valor que você quiser.
O projeto para testes está disponível aqui.