OSB DVMsDVM XPaths for OSB Sandeep Phukan [email protected] 1.SOURCE_COLUMN_VALUE. Clients can wait till Oracle releases the official support or resort to some ad hoc measures.String SourceColumnName. Let’s look at such a solution.String SourceColumnValue. The signature for the method call is public static String lookupValue(String DVMTableName. This Service gets called via a Java class that is exposed as an OSB Custom XPath. The dvm-custom xpath config file looks like this: Page |2 2011-01-02 . An OSB Proxy Service DVMLookup exposes DVMs and is based on the following xml input: This matches closely with the Oracle SOA 11g DVM lookup XPAth lookupValue(DVM_TABLE_NAME.String TargetColumnName. Overview OSB 11g R1 does not have DVM support. The customer DVMs can be added to the CommonServices/DVMs 3.DEFAULT_VALUE) 2.String DefaultValue) 4. and that many clients would have a migration path from Mediator based artifacts to OSB 11g. Now this is perfectly fine for clients who are using DVMs as part of the SOA Composites. The solution is based on custom OSB XPaths. But considering the fact that Oracle Mediator 11g has DVM functionality.Dynamic Value Mapping in OSB via Custom XPaths Sandeep Phukan I.TARGET_COLUMN_NAME. this can be a problem.SOURCE_COLUMN_NAME. dvm-custom. 4. c. In addition import these projects into OEPE.jar and dvm-custom. 3.xml. OEPE should show the custom xpath as follows: Page |3 2011-01-02 . OSB_Artifacts. Download the package DVMLookup. This contains the following: a.jar: Contains the OSB Artifacts CommonServices and TestDVMLookup CustomXPath : Contains the custom xpath components viz. Installation 1. Deploy the CommonServices and TestDVMLookup in OSB. dvmLookup.zip.properties SimpleDVMLookup: Contains the Eclipse project for the dvmLookup Java classes 2. b. Copy all the contents of CustomXPath into the location %OSB_HOME%/config/ xpath-functions Restart Weblogic and OEPE.Dynamic Value Mapping in OSB via Custom XPaths Sandeep Phukan II. Weblogic admin startup log should show the DVM client successfully initiated 5. oracle. The current Setup contains a predefined set of DVMs within CommonServices/DVMs folder: 2.com/caobusiness/DVMLookup/"> <DVMTableName>Currency_Units</DVMTableName> <SourceColumnName>Name</SourceColumnName> <SourceColumnValue>Units</SourceColumnValue> <TargetColumnName>Value</TargetColumnName> <DefaultValue>DefaultValue</DefaultValue> </dvm:LookupValue> 3. The result response should be: <soapenv:Envelope xmlns:soapenv="http://schemas.org/soap/envelope/"> <soap:Header xmlns:soap="http://schemas. Test the DVMLookup proxy service within DVMLookupTest /DVMTest with the following input in the body <dvm:LookupValue xmlns:dvm="http://xmlns.com/Tests_jws/DVMLookup/DVMLookup"> <client:result>100</client:result> </client:processResponse> </TargetColumnValue> </dvm:LookupValueResponse> </dvm:LookupValue> </soapenv:Body> </soapenv:Envelope> This completes the Post installation check Page |4 2011-01-02 .nsn. Post – Installation Checks 1.xmlsoap.Dynamic Value Mapping in OSB via Custom XPaths Sandeep Phukan III.xmlsoap.com/caobusiness/DVMLookup/"> <dvm:LookupValueResponse> <TargetColumnValue> <client:processResponse xmlns:client="http://xmlns.nsn.org/soap/envelope/"> </soap:Header> <soapenv:Body> <dvm:LookupValue xmlns:dvm="http://xmlns. You can use of the existing DVMs to insert your own values or copy the values in the template dvms. As already mentioned. paste the values and then modify the XQuery Resource with your own values. The LoadDVM stage of the proxy loads the DVM based on the DVM Table name. Hence. create a new XQuery Resource . the CommonServices/DVMs contains predefined DVMs. Open your existing DVM and create a new XQuery Resource within the CommonServices/DVMs folder in OEPE or the OSB Console. you have to add another else-if condition to insert the new DVMTable you just created. Page |5 2011-01-02 .Dynamic Value Mapping in OSB via Custom XPaths Sandeep Phukan IV. Customizations 1. 2. You would now need to insert your own dvms. w3.com/soa-utilities/osb/soa. Each lookup call takes an average of 20 ms on a 4 GB Intel Core2 Duo@2. please execute the dvmLookup.'DefaultValue')"/> </client:result> </client:processResponse> </xsl:template> </xsl:stylesheet> 2.utilities.'Name'.com/Tests_jws/DVMLookup/DVMLookup" exclude-result-prefixes="xsl client dvm"> <xsl:template match="/"> <client:processResponse> <client:result> <xsl:value-of select="dvm:lookupValue('Currency_Units'.0" xmlns:dvm="http://www.Dynamic Value Mapping in OSB via Custom XPaths Sandeep Phukan V. This would definitely perform a lot better in production boxes.sLabs.40 GHz running Weblogic Server and OSB.'Units'.dvm.utilities.dvm. java –jar %OSB_HOME%/config/xpath-functions/dvmLookup. The new namespace is: http://www.com/soa-utilities/osb/soa.org/1999/XSL/Transform" xmlns:client="http://xmlns.sLabs.oracle.jar Page |6 2011-01-02 . Usage 1. the only change is the namespace of the XPAth function. Clearly.0" encoding="UTF-8" ?> <xsl:stylesheet version="1. A typical XSLT transformation with the DVM Xpath looks like this: <?xml version="1.LookupTable 3.jar on the installed machine.LookupTable" xmlns:xsl="http://www.'Value'. The default run tests for 100 lookups on one of the predefined DVMs. To check for the exact lookup time.