Monday, February 24, 2020

12c SOA - DVM - lookup multiple domain values

Here I will show you how to get multiple domain values from a DVM using dvm:lookupValue1M() function.

Implementation steps:
Create a SOA Project

 Select Empty composite
 Create the contract schema which is used for exposing the client.

 <?xml version="1.0" encoding="windows-1252" ?>
<xsd:schema xmlns:xsd="" xmlns="http://www.citydetails.poc"
            targetNamespace="http://www.citydetails.poc" elementFormDefault="qualified">
  <xsd:element name="clientRequest">
        <xsd:element name="cityName" type="xsd:string"/>
  <xsd:element name="clientResponse">
        <xsd:element name="cityName" type="xsd:string"/>
        <xsd:element name="cityCode" type="xsd:string"/>
        <xsd:element name="state" type="xsd:string"/>
        <xsd:element name="capital" type="xsd:string"/>

Create WSDL based on this schema.

 Take a BPEL Process and select based on wsdl template and choose the created the wsdl.

 Create a City DVM

 In the BPEL, Drag and drop Transformation activity and use dvm:lookupValue1M() function to get multiple values and store them in a variable and then use the variable in fields mapping.

We use dvm:lookupValue and dvm:lookupValue1M XPath functions to look up a domain value map for a single value or multiple values at runtime from DVM tables. Here I have used the dvm:lookupValue1M Xpath function in XSL to get the city detail by passing CityName as a KeyColumn to lookup dvm table.

 <?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:socket="" xmlns:oracle-xsl-mapper="" xmlns:dvm="" xmlns:mhdr="" xmlns:oraxsl="" xmlns:oraext="" xmlns:xsi="" xmlns:ns0="http://www.citydetails.poc" xmlns:xsd="" xmlns:xp20="" xmlns:xsl="" xmlns:xref="" exclude-result-prefixes=" oracle-xsl-mapper xsi xsd xsl ns0 socket dvm mhdr oraxsl oraext xp20 xref"
         <oracle-xsl-mapper:source type="WSDL">
            <oracle-xsl-mapper:schema location="../WSDLs/cityDetails.wsdl"/>
            <oracle-xsl-mapper:rootElement name="clientRequest" namespace="http://www.citydetails.poc"/>
         <oracle-xsl-mapper:target type="WSDL">
            <oracle-xsl-mapper:schema location="../WSDLs/cityDetails.wsdl"/>
            <oracle-xsl-mapper:rootElement name="clientResponse" namespace="http://www.citydetails.poc"/>
      <!--GENERATED BY ORACLE XSL MAPPER Build 151013.0700.0085) AT [MON FEB 17 13:56:32 IST 2020].-->
   <!--User Editing allowed BELOW this line - DO NOT DELETE THIS LINE-->
    <xsl:variable name="CityDetails"
   <xsl:template match="/">
            <xsl:value-of select="/ns0:clientRequest/ns0:cityName"/>
            <xsl:value-of select="$CityDetails/CityCode"/>
            <xsl:value-of select="$CityDetails/State"/>
            <xsl:value-of select="$CityDetails/Capital"/>
 Deploy and test

No comments:

Post a Comment

Featured Post

11g to 12c OSB projects migration points

1. Export 11g OSB code and import in 12c Jdeveloper. Steps to import OSB project in Jdeveloper:   File⇾Import⇾Service Bus Resources⇾ Se...