{"id":2838,"date":"2011-07-28T13:50:31","date_gmt":"2011-07-28T18:50:31","guid":{"rendered":"http:\/\/jianmingli.com\/wp\/?p=2838"},"modified":"2015-04-17T13:52:03","modified_gmt":"2015-04-17T18:52:03","slug":"soa-11g-tutorial-service-data-objects-sdo","status":"publish","type":"post","link":"https:\/\/jianmingli.com\/wp\/?p=2838","title":{"rendered":"SOA 11g Tutorial: Service Data Objects (SDO)"},"content":{"rendered":"<div class='toc wptoc'>\n<h2>Contents<\/h2>\n<ol class='toc-odd level-1'>\n\t<li>\n\t\t<a href=\"#Overview\">Overview<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Prepare_Database_Table\">Prepare Database Table<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#Create_ADF-BC_Service\">Create ADF-BC Service<\/a>\n\t\t<ol class='toc-even level-2'>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Create_an_ADF-BC_Application\">Create an ADF-BC Application<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Create_Business_Components\">Create Business Components<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Testing_Application_Module\">Testing Application Module<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Create_Service_Interface\">Create Service Interface<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Deploy_Application_Module\">Deploy Application Module<\/a>\n\t\t\t\t<ol class='toc-odd level-3'>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Configure_Module\">Configure Module<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Set_Web_App_Name_and_Context_Root\">Set Web App Name and Context Root<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Create_Deployment_Profile\">Create Deployment Profile<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Set_Application_Name\">Set Application Name<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Setup_WebLogic_Life_Cycle_Listener\">Setup WebLogic Life Cycle Listener<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Deploy\">Deploy<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t<\/ol>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Test_Customer_SDO_Service\">Test Customer SDO Service<\/a>\n\t\t\t<\/li>\n\t\t<\/ol>\n\t<li>\n\t\t<a href=\"#Using_ADF-BC_Service_in_POProcessing_Composite_Application\">Using ADF-BC Service in POProcessing Composite Application<\/a>\n\t\t<ol class='toc-even level-2'>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Add_CustomerSDOService_Reference\">Add CustomerSDOService Reference<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Wire_approveLargeOrder_BPEL_Process_to_CustomerSDO_Service\">Wire approveLargeOrder BPEL Process to CustomerSDO Service<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Use_SDO_in_BPEL\">Use SDO in BPEL<\/a>\n\t\t\t\t<ol class='toc-odd level-3'>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Bind_Primary_Key\">Bind Primary Key<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Get_Customer_Name_from_Entity_Variable\">Get Customer Name from Entity Variable<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Assign_Last_Order\">Assign Last Order<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t<\/ol>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Test\">Test<\/a>\n\t\t\t<\/li>\n\t\t<\/ol>\n\t<li>\n\t\t<a href=\"#Issues\">Issues<\/a>\n\t\t<ol class='toc-even level-2'>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Could_not_find_registry_for_CustomerApp_JBOServiceRegistry\">Could not find registry for CustomerApp_JBOServiceRegistry<\/a>\n\t\t\t\t<ol class='toc-odd level-3'>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Cause\">Cause<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Fix\">Fix<\/a>\n\t\t\t\t\t<\/li>\n<\/ol>\n<\/ol>\n<\/ol>\n<\/ol>\n<\/div>\n<div class='wptoc-end'>&nbsp;<\/div>\n<p>This is part of the <a href=\"?p=1924\">Oracle SOA11g hands on tutorials<\/a>.<\/p>\n<span id=\"Overview\"><h2>Overview<\/h2><\/span>\n<p>* <a href=\"http:\/\/www.osoa.org\/display\/Main\/Service+Data+Objects+Home\">SDO<\/a> is a standard defined by <a href=\"http:\/\/www.osoa.org\/display\/Main\/Home\">Open SOA<\/a> consortium.<br \/>\n* SDO is an abstraction layer for accessing heterogeneous data sources.<br \/>\n* SDO supports both static (e.g. entity bean) and dynamic (e.g. JDBC) data APIs.<br \/>\n* SDO supports disconnected programming models, i.e. disconnected data graphs. Data Access Service handles data access functions such as CRUD.<br \/>\n* SDO is language neutral.<br \/>\n* SOA 11g supports SDO via a new BPEL component called <strong>Entity Variables<\/strong>. Entity Variables relies on ADF-BC for data access service.<\/p>\n<span id=\"Prepare_Database_Table\"><h2>Prepare Database Table<\/h2><\/span>\n<p>* Login soademo schema from SQL*Plus and execute the following SQL statements to create a new CUSTOMERS table.<\/p>\n<pre lang=\"sql\">\r\n \r\nCREATE TABLE  CUSTOMERS \r\n(\t\r\n\tCUSTOMER_ID VARCHAR2(10) NOT NULL PRIMARY KEY, \r\n\tCUSTOMER_NAME VARCHAR2(255) NOT NULL, \r\n\tLAST_ORDER_NUMBER VARCHAR2(4000), \r\n\tLAST_ORDER_AMOUNT NUMBER(10,2)\r\n);\r\n\r\nINSERT INTO CUSTOMERS VALUES ('1111', 'Test Customer', NULL, NULL);\r\n\r\nCOMMIT;\r\n<\/pre>\n<span id=\"Create_ADF-BC_Service\"><h2>Create ADF-BC Service<\/h2><\/span>\n<span id=\"Create_an_ADF-BC_Application\"><h3>Create an ADF-BC Application<\/h3><\/span>\n<p>* Open <strong>JDev<\/strong>.<br \/>\n* Click <strong>File -> New<\/strong> to open the New Gallery dialog.<br \/>\n* Select<strong> General -> Applications -> Generic Application<\/strong>.<br \/>\n* Click <strong>OK <\/strong>to open Create Generic Application dialog.<br \/>\n&#8211; Name: <strong>CustomerSDOApp<\/strong><br \/>\n&#8211; Directory: <strong>C:\\po\\CustomerSDOApp<\/strong><br \/>\n&#8211; Package Prefix: <strong>customerapp<\/strong><br \/>\n* Click Next to go to the Name Your Project dialog.<br \/>\n&#8211; Project Name: <strong>CustomerSDO<\/strong><br \/>\n&#8211; Directory: <strong>C:\\po\\CustomerSDOApp\\CustomerSDO<\/strong><br \/>\n&#8211; Project Technologies: <strong>ADF Business Components<\/strong><br \/>\n* Click <strong>Finish<\/strong>.<br \/>\n* Save all.<\/p>\n<span id=\"Create_Business_Components\"><h3>Create Business Components<\/h3><\/span>\n<p>* Right click <strong>CustomerSDO <\/strong>project and select <strong>New&#8230;<\/strong> to open the New Gallery dialog.<br \/>\n* Select <strong>Business Tier -> ADF Business Components -> Business Components from Tables<\/strong> and click <strong>OK<\/strong>.<br \/>\n* On <strong>Initialize Business Components Project<\/strong> dialog, click the green plus icon to open the<strong> Create Database Connection<\/strong> dialog.<br \/>\n&#8211; Connection Name: <strong>soademo-jdev<\/strong><br \/>\n&#8211; Connection Type: <strong>Oracle(JDBC)<\/strong><br \/>\n&#8211; Username: <strong>soademo<\/strong><br \/>\n&#8211; Password: <strong>soademo<\/strong><br \/>\n&#8211; Host Name: <strong>localhost<\/strong><br \/>\n&#8211; SID: <strong>orcl<\/strong><br \/>\n* Click <strong>Test Connection<\/strong> button and make sure &#8220;Success!&#8221; message is returned.<br \/>\n* Click <strong>OK<\/strong>.<br \/>\n* Accept default SQL Flavor and Type Map (both Oracle) and click <strong>OK<\/strong>.<\/p>\n<p>* On Entity Objects dialog,<br \/>\n&#8211; Click <strong>Query <\/strong>button.<br \/>\n&#8211; Move <strong>CUSTOMERS <\/strong>table from Available to Selected. Click <strong>Next<\/strong>.<br \/>\n* On Updatable View Objects dialog,<br \/>\n&#8211; Move <strong>CUSTOMERS <\/strong>table from Available to Selected. Click Next.<br \/>\n* Click <strong>Next <\/strong>on Read-Only View Objects dialog.<br \/>\n* On Application Module dialog, enter<br \/>\n&#8211; Name: <strong>CustomerSDOAppModule<\/strong><br \/>\n&#8211; Click <strong>Next<\/strong>.<br \/>\n* Click <strong>Finish<\/strong>.<br \/>\n* Save all.<\/p>\n<span id=\"Testing_Application_Module\"><h3>Testing Application Module<\/h3><\/span>\n<p>* Right click <strong>CustomerSDOAppModule <\/strong>(CustomerSDO project -> Application Sources -> customerapp -> CustomerSDOAppModule) and select <strong>Run<\/strong>.<br \/>\n* On Java application, double click <strong>CustomersView1<\/strong>.<br \/>\n* Close Java application by clicking<strong> File -> Exit<\/strong>.<\/p>\n<span id=\"Create_Service_Interface\"><h3>Create Service Interface<\/h3><\/span>\n<p>* Double click <strong>CustomerSDOAppModule <\/strong>to open CustomerSDOAppModule.xml file.<br \/>\n* Click <strong>Service Interface<\/strong> on the left pane.<br \/>\n* Click <strong>green plus sign<\/strong> to open<strong> Create Service Interface<\/strong> dialog.<br \/>\n* On Service Interface dialog:<br \/>\n&#8211; Web Service Name: <strong>CustomerSDOService<\/strong><br \/>\n&#8211; Target Namespace: <strong>\/customerapp\/common\/<\/strong><br \/>\n* Click <strong>Next <\/strong>twice to go to Service View Instances.<br \/>\n&#8211; Move CustomersView1 from Available to Selected.<br \/>\n&#8211; Select <strong>CustomersView1 <\/strong>in the Selected list and then select all operations listed under Basic Operations tab (don&#8217;t forget to scroll down).<br \/>\n* Click <strong>Finish<\/strong>.<br \/>\n* Save all.<\/p>\n<span id=\"Deploy_Application_Module\"><h3>Deploy Application Module<\/h3><\/span>\n<span id=\"Configure_Module\"><h4>Configure Module<\/h4><\/span>\n<p>* Double click <strong>CustomerSDOAppModule <\/strong>to open CustomerSDOAppModule.xml file.<br \/>\n* Click <strong>Configurations<\/strong> on the left pane.<br \/>\n* Select <strong>CustomerSDOService <\/strong>as the Default Configuration.<br \/>\n* Double click <strong>CustomerSDOService<\/strong> to open <strong>Edit Business Components Configuration<\/strong> dialog and set:<br \/>\n&#8211; Datasource Name: <strong>jdbc\/soademoDatabase<\/strong><br \/>\n* Click <strong>OK<\/strong>.<br \/>\n* Save all.<\/p>\n<span id=\"Set_Web_App_Name_and_Context_Root\"><h4>Set Web App Name and Context Root<\/h4><\/span>\n<p>* Right click <strong>CustomerSDO <\/strong>project and select <strong>Project Properties<\/strong>.<br \/>\n* Select <strong>Java EE Application<\/strong> in the left side panel and set:<br \/>\n&#8211; Java EE Web Application Name: <strong>CustomerSDO-webapp<\/strong><br \/>\n&#8211; Java EE Web Context Root: <strong>customer-app<\/strong><br \/>\n* Click <strong>OK<\/strong>.<\/p>\n<span id=\"Create_Deployment_Profile\"><h4>Create Deployment Profile<\/h4><\/span>\n<p>* Right click CustomerSDO project and select <strong>Project Properties<\/strong>.<br \/>\n* Select <strong>Deployment<\/strong> in the left side panel.<br \/>\n* Click <strong>New&#8230;<\/strong> to open Create Deployment Profile dialog.<br \/>\n&#8211; Archive Type: <strong>Business Components Service Interface<\/strong><br \/>\n&#8211; Name: <strong>customerSDOProfile<\/strong><br \/>\n* Click <strong>OK <\/strong>to close Create Deployment Profile dialog.<br \/>\n* Back on Project Properties dialog.<br \/>\n* Expand <strong>customerSDOProfile<\/strong> and select <strong>MiddleTier<\/strong>.<br \/>\n* Click <strong>Edit&#8230;<\/strong> to open Edit EJB JAR Deployment Profile Properties dialog and set:<br \/>\n&#8211; EJB JAR File: C:\\po\\CustomerSDOApp\\CustomerSDO\\deploy\\<strong>customerSDO-app.jar<\/strong><br \/>\n&#8211; EAR File: C:\\po\\CustomerSDOApp\\CustomerSDO\\deploy\\<strong>customerSDO-app.ear<\/strong><br \/>\n&#8211; Enterprise Application Name: <strong>customerSDO<\/strong><br \/>\n* Click <strong>OK <\/strong>twice to close Project Properties dialog.<br \/>\n* Save all.<\/p>\n<span id=\"Set_Application_Name\"><h4>Set Application Name<\/h4><\/span>\n<p>* Select <strong>CustomerSDO<\/strong> project.<br \/>\n* Select <strong>Application -> Application Properties&#8230;<\/strong> from JDev menu bar to open Application Properties dialog. Note: don&#8217;t select Project Properties&#8230;<br \/>\n* Click <strong>Deployment<\/strong> on left side panel.<br \/>\n* Select <strong>CustomerSDO_customerSDOProfile (EAR File)<\/strong> and click <strong>Edit&#8230;<\/strong> button.<br \/>\n* Set:<br \/>\n&#8211; Application Name: <strong>CustomerSDOApp<\/strong><br \/>\n* Click OK on both dialogs.<br \/>\n* Save all.<\/p>\n<span id=\"Setup_WebLogic_Life_Cycle_Listener\"><h4>Setup WebLogic Life Cycle Listener<\/h4><\/span>\n<p>* In <strong>Application Resources<\/strong> pane, double click <strong>Descriptors -> META-INF -> weblogic-application.xml<\/strong> to open it.<br \/>\n* Click <strong>Listeners<\/strong> on the left side pane.<br \/>\n* Click <strong>green plus sign<\/strong> to add a new listener row.<br \/>\n* Enter class name:<\/p>\n<pre>\r\noracle.jbo.client.svc.ADFApplicationLifecycleListener\r\n<\/pre>\n<p>* Hit <strong>Enter <\/strong>key.<br \/>\n* Save all.<\/p>\n<span id=\"Deploy\"><h4>Deploy<\/h4><\/span>\n<p>* Select <strong>CustomerSDO<\/strong> project.<br \/>\n* From JDev menu bar, select<strong> Application -> Deploy -> CustomerSDO_customerSDOProfle<\/strong> to open Deploy  CustomerSDO_customerSDOProfle dialog.<br \/>\n* Select <strong>Deploy to Application Server<\/strong> and click Next.<br \/>\n* Select <strong>MyAppServerConnection<\/strong> and click Next.<br \/>\n* Select Deploy to selected instances in the domain and then select <strong>soa_server1<\/strong> and click <strong>Next<\/strong>.<br \/>\n* Click <strong>Finish<\/strong>.<\/p>\n<span id=\"Test_Customer_SDO_Service\"><h3>Test Customer SDO Service<\/h3><\/span>\n<p>* Point browser to <a href=\"http:\/\/localhost:8001\/customer-app\/CustomerSDOService\">http:\/\/localhost:8001\/customer-app\/CustomerSDOService<\/a><br \/>\n* Or from EM, navigate to FARM_soa_domain -> Application Deployments -> CustomerSDOApp (soa_server1) and click Test icon in the Web Service pane.<br \/>\n* Select Operation: <strong>getCustomersView1<\/strong><br \/>\n* Enter:<br \/>\n&#8211; customerId: <strong>1111<\/strong><br \/>\n* Click <strong>Invoke <\/strong>button on the bottom of the page.<br \/>\n* Check that response contains:<br \/>\n&#8211; CustomerName: <strong>Test Customer<\/strong><\/p>\n<pre lang=\"xml\">\r\n<env:Envelope xmlns:env=\"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/\">\r\n<env:Header\/><env:Body>\r\n<ns0:getCustomersView1Response xmlns:ns0=\"\/customerapp\/common\/types\/\">\r\n<ns1:result xmlns:ns1=\"\/customerapp\/common\/types\/\" \r\n\txmlns:ns0=\"\/customerapp\/common\/\" \r\n\txmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" \r\n\txsi:type=\"ns0:CustomersViewSDO\">\r\n\t<ns0:CustomerId>1111<\/ns0:CustomerId>\r\n\t<ns0:CustomerName>Test Customer<\/ns0:CustomerName>\r\n\t<ns0:LastOrderNumber xsi:nil=\"true\"\/>\r\n\t<ns0:LastOrderAmount xsi:nil=\"true\"\/>\r\n\t<\/ns1:result>\r\n<\/ns0:getCustomersView1Response>\r\n<\/env:Body>\r\n<\/env:Envelope>\r\n<\/pre>\n<span id=\"Using_ADF-BC_Service_in_POProcessing_Composite_Application\"><h2>Using ADF-BC Service in POProcessing Composite Application<\/h2><\/span>\n<span id=\"Add_CustomerSDOService_Reference\"><h3>Add CustomerSDOService Reference<\/h3><\/span>\n<p>* Drag and drop <strong>ADF-BC Service<\/strong> component onto External References lane. This opens <strong>Create ADF-BC Service<\/strong> dialog.<br \/>\n* Enter:<br \/>\n&#8211; Name: CustomerSDOService<br \/>\n&#8211; Type: Reference<br \/>\n&#8211; WSDL: http:\/\/localhost:8001\/customer-app\/CustomerSDOService?WSDL<br \/>\n&#8211; PortType: CustomerSDOService<br \/>\n&#8211; Registry: CustomerSDOApp_JBOServiceRegistry<br \/>\nNote: the registry value should be <strong>AppName_JBOServiceRegistry<\/strong>. In this case, our application name is <strong>CustomerSDOApp<\/strong>. Therefore, the registry value is <strong>CustomerSDOApp_JBOServiceRegistry<\/strong>.<br \/>\n* Click OK.<\/p>\n<span id=\"Wire_approveLargeOrder_BPEL_Process_to_CustomerSDO_Service\"><h3>Wire approveLargeOrder BPEL Process to CustomerSDO Service<\/h3><\/span>\n<p>* Drag a wire from lower right corner of approveLargeOrder BPEL Process to upper left corner of CustomerSDO reference.<br \/>\n* Save all.<\/p>\n<span id=\"Use_SDO_in_BPEL\"><h3>Use SDO in BPEL<\/h3><\/span>\n<p>* Double click <strong>approveLargeOrder<\/strong> BPEL process.<br \/>\n* Click Variable icon (x) on the main approveLargeOrder scope.<br \/>\n* Click <strong>green plus sign<\/strong> to open Create Variable dialog. Enter:<br \/>\n&#8211; Name: <strong>CustomerInfoEV<\/strong><br \/>\n&#8211; Type -> Element: <strong>{\/customerapp\/common\/}customersViewSDO<\/strong>.<br \/>\nClick magnifying glass to open <strong>Type Chooser<\/strong> dialog. Select <strong>Type Explorer -> Project WSDL Files -> CustomerSDOServiceWrapper.wsdl -> Imported WSDL -> CustomerSDOService -> Inline Schemas -> Schema -> customersViewSDO<\/strong>.<br \/>\n&#8211; <strong>Checked<\/strong>: Entity Variable<br \/>\n&#8211; Partner Link: <strong>CustomerSDOService<\/strong><br \/>\n&#8211; SDO Capable: <strong>unchecked<\/strong><br \/>\n* Click <strong>OK <\/strong>twice to exit Create Variable dialog.<\/p>\n<span id=\"Bind_Primary_Key\"><h4>Bind Primary Key<\/h4><\/span>\n<p>* Drag and drop a <strong>Bind Entity<\/strong> activity just after the <strong>receiveInput<\/strong> activity.<br \/>\n* Double click to open<strong> Bind Entity<\/strong> dialog.<br \/>\n&#8211; Name: <strong>BindCustomerId<\/strong><br \/>\n&#8211; Entity Variable: <strong>CustomerInfoEV<\/strong><br \/>\n* Click green plus sign to the right of Unique Keys to open Specify Key dialog.<br \/>\n* Click <strong>(x)<\/strong> icon to the right of Key Local Part to open <strong>Browse Entity Variable<\/strong> dialog.<br \/>\n* Select Variables -> Process -> Variables -> CustomerInfoEV -> customersViewSDO -> CustomerId<br \/>\n* Click function icon to the right of Key Value to open Expression Builder.<br \/>\n* Select inputVariable -> payload -> Order -> customerId and click OK.<br \/>\n&#8211; Key Value: bpws:getVariableData(&#8216;inputVariable&#8217;,&#8217;payload&#8217;,&#8217;\/ns2:Order\/ns2:customerId&#8217;)<br \/>\n* Click OK again on Specify Key dialog.<br \/>\n* Click OK on Bind Entity dialog.<\/p>\n<span id=\"Get_Customer_Name_from_Entity_Variable\"><h4>Get Customer Name from Entity Variable<\/h4><\/span>\n<p>* Drag and drop an Assign activity right below BindCustomerId activity. Rename it to <strong>AssignCustomerName<\/strong>.<br \/>\n* Double click new Assign activity icon to open Edit Assign dialog.<br \/>\n* Copy <strong>CustomerInfoEv -> customersViewSDO -> CustomerName<\/strong> to <strong>inputVariable -> payload -> OrderType -> customerId<\/strong>.<br \/>\n* Click OK<\/p>\n<span id=\"Assign_Last_Order\"><h4>Assign Last Order<\/h4><\/span>\n<p>* Drag and drop an Assign activity under taskSwitch icon of ManualApproval1. Rename it <strong>AssignLastOrder<\/strong>.<br \/>\n* Double click to open Edit Assign dialog.<br \/>\n* Copy <strong>outputVariable -> payload -> Order -> OrderId<\/strong> to <strong>CustomerInfoEV -> CustomersViewSDO -> LastOrderNumber<\/strong><br \/>\n* Copy bpws:getVariableData(&#8216;outputVariable&#8217;,&#8217;payload&#8217;,&#8217;\/ns2:Order\/ns2:price&#8217;) * bpws:getVariableData(&#8216;outputVariable&#8217;,&#8217;payload&#8217;,&#8217;\/ns2:Order\/ns2:qty&#8217;) to <strong>CustomerInfoEV -> CustomersViewSDO -> LastOrderAmount<\/strong>.<br \/>\n* Save all.<\/p>\n<span id=\"Test\"><h3>Test<\/h3><\/span>\n<p>* Redeploy POProcessing.<br \/>\n* Test input message with an order between 1000 and 5000:<\/p>\n<pre lang=\"xml\">\r\n<soap:Envelope xmlns:soap=\"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/\">\r\n    <soap:Body xmlns:ns1=\"http:\/\/xmlns.oracle.com\/ns\/order\">\r\n        <ns1:PurchaseOrder>\r\n            <ns1:CustID>1111<\/ns1:CustID>\r\n            <ns1:ID>1212<\/ns1:ID>\r\n            <ns1:productName>HD TV<\/ns1:productName>\r\n            <ns1:itemType>Electronics<\/ns1:itemType>\r\n            <ns1:price>900<\/ns1:price>\r\n            <ns1:quantity>10<\/ns1:quantity>\r\n            <ns1:status>Initial<\/ns1:status>\r\n            <ns1:ccType>Mastercard<\/ns1:ccType>\r\n            <ns1:ccNumber>1234-1234-1234-1234<\/ns1:ccNumber>\r\n        <\/ns1:PurchaseOrder>\r\n    <\/soap:Body>\r\n<\/soap:Envelope>\r\n<\/pre>\n<p>* Check that <strong>customerId<\/strong> field from the <strong>callbackClient <\/strong>component has been changed to <strong>Test Customer<\/strong> (not 111).<br \/>\n* Login database as <strong>soademo <\/strong>and check that <strong>LAST_ORDER_NUMBER<\/strong> and <strong>LAST_ORDER_AMOUNT<\/strong> fields have been updated to reflect the new order input message.<\/p>\n<pre>\r\nCUSTOMER_I CUSTOMER_NAME        LAST_ORDER_NUMBER    LAST_ORDER_AMOUNT\r\n---------- -------------------- -------------------- -----------------\r\n1111       Test Customer        1212                              9000\r\n<\/pre>\n<span id=\"Issues\"><h2>Issues<\/h2><\/span>\n<span id=\"Could_not_find_registry_for_CustomerApp_JBOServiceRegistry\"><h3>Could not find registry for CustomerApp_JBOServiceRegistry<\/h3><\/span>\n<span id=\"Cause\"><h4>Cause<\/h4><\/span>\n<p>* Wrong registry value (CustomerApp_JBOServiceRegistry) was used for CustomerSDOService in the composite.<br \/>\n* SDO application name is CustomerSDOApp, so the registry value should be <strong>CustomerSDOApp_JBOServiceRegistry<\/strong>.<\/p>\n<span id=\"Fix\"><h4>Fix<\/h4><\/span>\n<p>* Change CustomerSDOService component&#8217;s registry value:<br \/>\nRegistry: CustomerSDOApp_JBOServiceRegistry<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is part of the Oracle SOA11g hands on tutorials. Overview * SDO is a standard defined by Open SOA consortium. * SDO is an abstraction layer for accessing heterogeneous data sources. * SDO supports both static (e.g. entity bean) &hellip; <a href=\"https:\/\/jianmingli.com\/wp\/?p=2838\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[100],"tags":[],"class_list":["post-2838","post","type-post","status-publish","format-standard","hentry","category-soa11g"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8cRUO-JM","_links":{"self":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/2838","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2838"}],"version-history":[{"count":20,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/2838\/revisions"}],"predecessor-version":[{"id":10637,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/2838\/revisions\/10637"}],"wp:attachment":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2838"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2838"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}