<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DEMMQH4yeSp7ImA9WhVbEE4.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047</id><updated>2012-05-26T14:48:01.091+02:00</updated><category term="Oracle Service Bus" /><category term="Adobe Flex" /><category term="AS" /><category term="AIA" /><category term="B2B" /><category term="jdeveloper 11g webcenter" /><category term="SOA" /><category term="WebLogic" /><category term="RubyAMF" /><category term="Exadel Fiji" /><category term="OWSM" /><category term="XQuery" /><category term="ldap" /><category term="Axis" /><category term="Siebel" /><category term="adf security" /><category term="adf excel gui" /><category term="Ruby on Rails" /><category term="EDN" /><category term="MDS" /><category term="Adobe Flex LifeCycle" /><category term="MySQL" /><category term="jsf" /><category term="java" /><category term="jdeveloper 11gR2" /><category term="jdeveloper 11g soa suite" /><category term="SCA" /><category term="Tuscany" /><category term="Coherence" /><category term="hudson" /><category term="web services" /><category term="NoSQL" /><category term="SAML" /><category term="JCache" /><category term="Metro (WSIT)" /><category term="adf" /><category term="jdeveloper 10.1.3" /><category term="OEPE" /><category term="jheadstart" /><category term="android" /><category term="Skinning" /><category term="adf bc (bc4j)" /><category term="EclipseLink" /><category term="Maven" /><category term="WLST" /><category term="Adobe Flex Blazeds" /><category term="jms" /><category term="adf taskflow" /><category term="jdeveloper 11g" /><title>Java / Oracle SOA blog</title><subtitle type="html">About Java, JDeveloper, OEPE and Oracle OSB &amp;amp; SOA suite</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://biemond.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>290</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Java/OracleSoaBlog" /><feedburner:info uri="java/oraclesoablog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>52.259167</geo:lat><geo:long>5.606944</geo:long><feedburner:emailServiceId>Java/OracleSoaBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;C0IFR344eCp7ImA9WhVUE0k.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-6285673101681136015</id><published>2012-05-18T13:45:00.000+02:00</published><updated>2012-05-18T13:45:16.030+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-18T13:45:16.030+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g soa suite" /><category scheme="http://www.blogger.com/atom/ns#" term="SOA" /><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g" /><title>SOA Suite PS5 Email (UMS) Adapter</title><content type="html">With the release of Soa Suite Patch Set 5 we can now try out the new UMS Email adapter. The UMS adapter allows you to listen for new mail or send a mail from a service component. Combined with BPEL it’s now relative  easy to process email bodies or attachments. &amp;nbsp;To read more and test it yourself check &lt;a href="http://technology.amis.nl/2012/05/18/proces-email-with-the-new-ums-adapter-of-soa-suite-ps5/"&gt;my blogpost on Amis Technology&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-6285673101681136015?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/6285673101681136015/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2012/05/soa-suite-ps5-email-ums-adapter.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/6285673101681136015?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/6285673101681136015?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/XWs9pPQyv0o/soa-suite-ps5-email-ums-adapter.html" title="SOA Suite PS5 Email (UMS) Adapter" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://biemond.blogspot.com/2012/05/soa-suite-ps5-email-ums-adapter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08HQ38zcCp7ImA9WhVWFEk.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-1374088301590391934</id><published>2012-04-26T15:10:00.004+02:00</published><updated>2012-04-26T15:10:32.188+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-26T15:10:32.188+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic" /><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g soa suite" /><category scheme="http://www.blogger.com/atom/ns#" term="adf" /><category scheme="http://www.blogger.com/atom/ns#" term="adf bc (bc4j)" /><category scheme="http://www.blogger.com/atom/ns#" term="EDN" /><title>Publish EDN JMS events from ADF BC</title><content type="html">With ADF BC ( Business Components ) you can fire Event Delivery Network CRUD events from ADF BC entities which can be captured and handled by the Oracle SOA Suite. In this blogpost we will use the JMS implementation of EDN plus WebLogic Store and Forward for the reliable delivery to the SOA Suite server ( this way we can bounce SOA without effecting the Web Applications ).&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
To make this possible on a different ADF WebLogic server then the SOA Suite Server, we need to do the following steps.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
First we need to add a WebLogic shared Library. &amp;nbsp;Copy the &lt;b&gt;oracle.soa.fabric_11.1.1&lt;/b&gt; and &lt;b&gt;oracle.soa.workflow_11.1.1&lt;/b&gt; folders from the SOA Suite Oracle Home ( &amp;nbsp;Oracle_SOA1\soa\modules ) to your own WebLogic Middleware home. Put those two folders on the same level directory level.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Then we can add these jars to our own WebLogic Server. Go to deployments and add the following jar&amp;nbsp;&amp;nbsp;oracle.soa.workflow_11.1.1\oracle.soa.workflow.wc.jar ( this contains a manifest which loads the other jars ). Target this shared library to the right WebLogic servers.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-f8cTSZjYyD4/T5k_PsCqwXI/AAAAAAAAFJw/nYcyAahmKZw/s1600/Screen+Shot+2012-04-26+at+2.24.37+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="211" src="http://1.bp.blogspot.com/-f8cTSZjYyD4/T5k_PsCqwXI/AAAAAAAAFJw/nYcyAahmKZw/s400/Screen+Shot+2012-04-26+at+2.24.37+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
We need to add this shared library reference to the weblogic-application.xml deployment descriptor of the ADF Web application. This is the only place where it works ( WEB-INF/lib does not work )&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-wQlv8i7cDos/T5lAZ6pwTYI/AAAAAAAAFJ4/19rsalPqKKQ/s1600/Screen+Shot+2012-04-26+at+2.32.17+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="294" src="http://4.bp.blogspot.com/-wQlv8i7cDos/T5lAZ6pwTYI/AAAAAAAAFJ4/19rsalPqKKQ/s640/Screen+Shot+2012-04-26+at+2.32.17+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Now we can create an EDN definition and add a publication to an ADF BC entity. Go the Business Events part of your entity editor.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-k6ZBDnU7wDc/T5lBFlL4CuI/AAAAAAAAFKA/Ry4BJ_7l1sI/s1600/Screen+Shot+2012-04-26+at+2.34.54+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="406" src="http://1.bp.blogspot.com/-k6ZBDnU7wDc/T5lBFlL4CuI/AAAAAAAAFKA/Ry4BJ_7l1sI/s640/Screen+Shot+2012-04-26+at+2.34.54+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
We need to decide if we want to use &lt;b&gt;EDN-AQ&lt;/b&gt; or &lt;b&gt;EDN-JMS&lt;/b&gt;. The AQ implementation is the default EDN implementation but this requires some datasources to the soa-infra database. This can be Ok in a small server network but I don't want this dependency to this SOA Suite Server in my WebLogic Server.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So I will go for the JMS implementation and create the required Queue and Connection Factories on my own WebLogic Server ( you can also do this with JMS Foreign Server ).&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Then those JMS message are stored locally and we will use WebLogic Store and Forward for the reliable delivery to the SOA Suite server. This way we can bounce the SOA Suite server without effecting our Web Applications.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
For the EDN-AQ implementation read &lt;a href="http://adfblogs.blogspot.com/2011/08/adf-integration-with-soa-1-business.html"&gt;this blogpost&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
To enable the EDN-JMS implementation you need to do the following steps which are described in &lt;a href="http://biemond.blogspot.com/2011/06/configure-en-test-jms-based-edn-in-soa.html"&gt;this blogpost&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
We need to create the following JMS artefacts.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Create a JMS Server with a file or jdbc persistence.&lt;/div&gt;
&lt;div&gt;
Create a JMS Modules with a sub-deployment&amp;nbsp;targeted&amp;nbsp;to this JMS server.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Create a JMS Connection Factory called&amp;nbsp;&lt;b&gt;EDNConnectionFactory&lt;/b&gt; with JNDI name&amp;nbsp;&lt;b&gt;jms/fabric/EDNConnectionFactory&lt;/b&gt;, disable XA and targeted this to your WebLogic server.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Create a JMS Connection Factory called &lt;b&gt;xaEDNConnectionFactory&lt;/b&gt;&amp;nbsp;with JNDI name&amp;nbsp;&lt;b&gt;jms/fabric/xaEDNConnectionFactory&lt;/b&gt;, enable XA and targeted this to your WebLogic server.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Create a Queue called&amp;nbsp;&lt;b&gt;EDNQueue&lt;/b&gt; with JNDI name&lt;b&gt;&amp;nbsp;jms/fabric/EDNQueue&lt;/b&gt;&amp;nbsp;and use the subdeployment so its targeted to the JMS server.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-JovG5cw8KgI/T5lGz-SVAEI/AAAAAAAAFKM/tigdBlMV0Sw/s1600/Screen+Shot+2012-04-26+at+2.59.45+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="154" src="http://3.bp.blogspot.com/-JovG5cw8KgI/T5lGz-SVAEI/AAAAAAAAFKM/tigdBlMV0Sw/s640/Screen+Shot+2012-04-26+at+2.59.45+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
When we start our ADF Web application and change some data, we can take a look at the Queue. Here we will see the EDN events.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-fe_sntPrp9I/T5lHdAZK_sI/AAAAAAAAFKU/ndowOatwpP8/s1600/Screen+Shot+2012-04-26+at+3.01.30+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="256" src="http://3.bp.blogspot.com/-fe_sntPrp9I/T5lHdAZK_sI/AAAAAAAAFKU/ndowOatwpP8/s640/Screen+Shot+2012-04-26+at+3.01.30+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-QztxfG2dALA/T5lHdSz3KmI/AAAAAAAAFKY/wj5xB1TuaSw/s1600/Screen+Shot+2012-04-26+at+3.01.49+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="386" src="http://2.bp.blogspot.com/-QztxfG2dALA/T5lHdSz3KmI/AAAAAAAAFKY/wj5xB1TuaSw/s640/Screen+Shot+2012-04-26+at+3.01.49+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Last step is to setup Store and Forward. For this we can follow this &lt;a href="http://middlewaremagic.com/weblogic/?p=7969"&gt;Middleware Magic blogpost&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
See&amp;nbsp;&lt;a href="http://biemond.blogspot.com/2011/06/publish-to-edn-from-java-osb-with-jms.html"&gt;this blogpost&lt;/a&gt;&amp;nbsp;how to fire EDN events &amp;nbsp;from Java and OSB instead of ADF BC.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
cheers&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-1374088301590391934?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/1374088301590391934/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2012/04/publish-edn-jms-events-from-adf-bc.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/1374088301590391934?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/1374088301590391934?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/sm_lN7AR2mk/publish-edn-jms-events-from-adf-bc.html" title="Publish EDN JMS events from ADF BC" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-f8cTSZjYyD4/T5k_PsCqwXI/AAAAAAAAFJw/nYcyAahmKZw/s72-c/Screen+Shot+2012-04-26+at+2.24.37+PM.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://biemond.blogspot.com/2012/04/publish-edn-jms-events-from-adf-bc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MFRHo-eSp7ImA9WhVXFE8.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-1414176687070284053</id><published>2012-04-14T20:50:00.001+02:00</published><updated>2012-04-14T20:50:15.451+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-14T20:50:15.451+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g soa suite" /><title>Retrieve or set a HTTP header from Oracle BPEL</title><content type="html">With Oracle SOA Suite 11g patch &lt;b&gt;12928372&lt;/b&gt; &amp;nbsp;you can finally retrieve or set a HTTP header from BPEL. This patch comes with Patch Set 5 ( 11.1.1.6 ) &amp;nbsp;and this patch can also be applied on PS3 ( 11.1.1.4 ), please download it from &lt;a href="http://support.oracle.com/"&gt;http://support.oracle.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I made a simple test case with soapUI which adds an username and a message as HTTP header to the &amp;nbsp;service invocation. &amp;nbsp;In a second testcase I will mock this service in soapUI and BPEL will invoke this service and set an extra HTTP header property.&lt;br /&gt;
&lt;br /&gt;
First step is to add a property to the binding.ws element of the service in the composite.xml.

Add a property with name&amp;nbsp;&lt;b&gt;oracle.webservices.http.headers&lt;/b&gt; and as value the HTTP headers you want to use in BPEL&lt;br /&gt;
&amp;lt;property name="oracle.webservices.http.headers"&amp;gt;&lt;span style="color: blue;"&gt;username&lt;/span&gt;,&lt;span style="color: blue;"&gt;message&lt;/span&gt;&amp;lt;/property&amp;gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-m3CZk6xn9Ac/T4nAjmQumhI/AAAAAAAAFGI/0tCtT5R1ceg/s1600/Screen+Shot+2012-04-14+at+8.12.28+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="152" src="http://1.bp.blogspot.com/-m3CZk6xn9Ac/T4nAjmQumhI/AAAAAAAAFGI/0tCtT5R1ceg/s640/Screen+Shot+2012-04-14+at+8.12.28+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Next step is to define some BPEL variables for those HTTP Headers&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ZSLx05mRyLQ/T4nAkIeN_hI/AAAAAAAAFGQ/4d4q7Ne6uBk/s1600/Screen+Shot+2012-04-14+at+8.13.03+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://1.bp.blogspot.com/-ZSLx05mRyLQ/T4nAkIeN_hI/AAAAAAAAFGQ/4d4q7Ne6uBk/s640/Screen+Shot+2012-04-14+at+8.13.03+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
In the receive activity of the BPEL process we can use fromProperty to copy the HTTP header property value to the BPEL variable.&amp;nbsp;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Do this in the BPEL source mode.&amp;nbsp;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-qc2sCHOQC5c/T4nAks49yfI/AAAAAAAAFGY/NLhOnwZWvRs/s1600/Screen+Shot+2012-04-14+at+8.13.26+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://1.bp.blogspot.com/-qc2sCHOQC5c/T4nAks49yfI/AAAAAAAAFGY/NLhOnwZWvRs/s640/Screen+Shot+2012-04-14+at+8.13.26+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Now you can use these variables in BPEL, I will use these vars in the return message.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Let's invoke the service from soapUI, we need to set the HTTP header properties with their values.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-UDbU1Srzdtc/T4nAibUPOWI/AAAAAAAAFF8/BGzNE4lJ4B0/s1600/Screen+Shot+2012-04-14+at+8.11.27+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="252" src="http://1.bp.blogspot.com/-UDbU1Srzdtc/T4nAibUPOWI/AAAAAAAAFF8/BGzNE4lJ4B0/s640/Screen+Shot+2012-04-14+at+8.11.27+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
When we want to invoke a reference service and we also want to set some HTTP header properties.&lt;br /&gt;
&lt;br /&gt;
We need also need to set the http.headers property on the binding.ws element on the reference in the composite.xml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;property name="&lt;b&gt;oracle.webservices.http.headers&lt;/b&gt;"&amp;gt;&lt;span style="color: blue;"&gt;username&lt;/span&gt;,&lt;span style="color: blue;"&gt;message&lt;/span&gt;,&lt;span style="color: blue;"&gt;message2&lt;/span&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-t6N5bNmkgeA/T4nAlCd_JBI/AAAAAAAAFGg/BNlWpK3ggiY/s1600/Screen+Shot+2012-04-14+at+8.14.11+PM.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="258" src="http://2.bp.blogspot.com/-t6N5bNmkgeA/T4nAlCd_JBI/AAAAAAAAFGg/BNlWpK3ggiY/s640/Screen+Shot+2012-04-14+at+8.14.11+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
On the invoke of the reference service we need to use the toProperty and set the BPEL vars to these HTTP header properties.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Y7IeAzQp1xw/T4nAlzo2zUI/AAAAAAAAFGs/BqKYyTRkJVk/s1600/Screen+Shot+2012-04-14+at+8.14.35+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="216" src="http://1.bp.blogspot.com/-Y7IeAzQp1xw/T4nAlzo2zUI/AAAAAAAAFGs/BqKYyTRkJVk/s640/Screen+Shot+2012-04-14+at+8.14.35+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
When we test it again in soapUI we can see the invoke request of the soapUI mockservice, this contains the HTTP headers which we set in the BPEL process.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-7dxzPDr3TRs/T4nAizlx5JI/AAAAAAAAFGE/32NqNVXfQJE/s1600/Screen+Shot+2012-04-14+at+8.11.46+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/-7dxzPDr3TRs/T4nAizlx5JI/AAAAAAAAFGE/32NqNVXfQJE/s640/Screen+Shot+2012-04-14+at+8.11.46+PM.png" width="630" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-1414176687070284053?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/1414176687070284053/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2012/04/retrieve-or-set-http-header-from-oracle.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/1414176687070284053?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/1414176687070284053?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/7BKXMVCdLbE/retrieve-or-set-http-header-from-oracle.html" title="Retrieve or set a HTTP header from Oracle BPEL" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-m3CZk6xn9Ac/T4nAjmQumhI/AAAAAAAAFGI/0tCtT5R1ceg/s72-c/Screen+Shot+2012-04-14+at+8.12.28+PM.png" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://biemond.blogspot.com/2012/04/retrieve-or-set-http-header-from-oracle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04NQ347eyp7ImA9WhVQF0k.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-8149231472245086546</id><published>2012-04-04T22:09:00.000+02:00</published><updated>2012-04-06T22:59:52.003+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-06T22:59:52.003+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="adf" /><category scheme="http://www.blogger.com/atom/ns#" term="adf bc (bc4j)" /><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g" /><title>Deploy your ADF UIX applications to WebLogic</title><content type="html">Just a quick blogpost how you can deploy your old ADF UIX ( 10.1.2) &amp;nbsp;applications to the WebLogic 11g ( 10.3.5 ) application server. Off course this is not supported by Oracle, who cares, your old 10.1.2 OC4J container is also end of life. &amp;nbsp;When it works, it works :-) &lt;br /&gt;
&lt;br /&gt;
First you need to create a JDBC DataSource in the WebLogic Console.&lt;br /&gt;
&lt;br /&gt;
You need to use the &lt;b&gt;oracle.jdbc.OracleDriver driver class ( don't use XA, disable global commit ) &lt;/b&gt;else you will get some strange oracle BLOB errors.&lt;br /&gt;
&lt;br /&gt;
Set &lt;b&gt;Statement cache size to 0&lt;/b&gt; ( in the connection pool Tab of the datasource )&lt;br /&gt;
&lt;br /&gt;
also in the advanced options of the datasource you should &lt;b&gt;de-select Wrap Data Types&lt;/b&gt;.&lt;br /&gt;
By default, data type objects for Array, Blob, Clob, NClob, Ref, SQLXML, and Struct, plus ParameterMetaData and ResultSetMetaData objects are wrapped with a WebLogic wrapper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you don't do this then ADF BC ( BC4J ) can't do its passivation in the ps_txn table ( this contains a BLOB datatype) and your applications behaves very strange&lt;br /&gt;
or you can set jbo.passivationstore to file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next step is to make a shared library ( just use a war template ), For this I use an exploded folder so I can easily add and remove some jars.&lt;br /&gt;
&lt;br /&gt;
I have a folder called adf.uix ( or a war with this name )&lt;br /&gt;
&lt;br /&gt;
Folder META-INF&lt;br /&gt;
&amp;nbsp; &amp;nbsp;File MANIFEST.MF with the following content&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Manifest-Version: 1.0&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Extension-Name: adf.uix&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Specification-Title: adf.uix&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Specification-Version: 1.0&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Implementation-Version: 10.1.2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folder WEB-INF&lt;br /&gt;
&amp;nbsp; A empty web.xml file with the following content&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;?xml version = '1.0' encoding = 'windows-1252'?&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" &amp;nbsp; &amp;nbsp; "http://java.sun.com/dtd/web-app_2_3.dtd"&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;web-app&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/web-app&amp;gt;&lt;br /&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; Folder lib with all the 10.1.2 jars which I needed.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-w5Z6IS7hK6w/T3ynPpJKcZI/AAAAAAAAFDM/pZmtOo9rBoU/s1600/Screen+Shot+2012-04-04+at+9.55.21+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="234" src="http://2.bp.blogspot.com/-w5Z6IS7hK6w/T3ynPpJKcZI/AAAAAAAAFDM/pZmtOo9rBoU/s640/Screen+Shot+2012-04-04+at+9.55.21+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Deploy the shared library to WebLogic.&lt;br /&gt;
&lt;br /&gt;
Next step is to unpack the war of your uix application ( we don't need the ear )&lt;br /&gt;
&lt;br /&gt;
We need to create a weblogic deployment descriptor called weblogic.xml and put this in the WEB-INF folder. ( you can delete the orion one )&lt;br /&gt;
&lt;br /&gt;
This weblogic descriptor contains a reference to our just created shared library. Also set the WEB-INF/lib as preferred classloading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version = '1.0' encoding = 'windows-1252'?&amp;gt;&lt;br /&gt;
&amp;lt;weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app"&amp;gt;&lt;br /&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;lt;container-descriptor&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;prefer-web-inf-classes&amp;gt;true&amp;lt;/prefer-web-inf-classes&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;lt;/container-descriptor&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;lt;library-ref&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;library-name&amp;gt;adf.uix&amp;lt;/library-name&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;lt;/library-ref&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;lt;/weblogic-web-app&amp;gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This is the content of my WEB-INF/lib folder&amp;nbsp;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-DwULqDU5vAs/T3yo4sByIJI/AAAAAAAAFDU/fW0PnxCFKtA/s1600/Screen+Shot+2012-04-04+at+10.01.57+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="414" src="http://2.bp.blogspot.com/-DwULqDU5vAs/T3yo4sByIJI/AAAAAAAAFDU/fW0PnxCFKtA/s640/Screen+Shot+2012-04-04+at+10.01.57+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Zip everything to a new war file or use the exploded folder.&lt;br /&gt;
&lt;br /&gt;
When you use jdk1.6 or higher you can set -Djava.awt.headless=true so cabo uix does not need X-Windows or Windows desktop to generate gif images.&lt;br /&gt;
&lt;br /&gt;
And when you don't see the images then you should also use an exploded folder instead of a war so cabo uix has a file path to store the generated images. Or make an UIX configuration class which contains cabo paths to a folder of the weblogic server.&lt;br /&gt;
&lt;br /&gt;
Deploy the war or exploded folder &amp;nbsp;to weblogic, test it and delete your own OC4J Container.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-Ut3pcbSorgc/T3ypT6DUBzI/AAAAAAAAFDc/AbmOvziHEQ4/s1600/Screen+Shot+2012-04-04+at+10.04.14+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="348" src="http://2.bp.blogspot.com/-Ut3pcbSorgc/T3ypT6DUBzI/AAAAAAAAFDc/AbmOvziHEQ4/s640/Screen+Shot+2012-04-04+at+10.04.14+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-8149231472245086546?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/8149231472245086546/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2012/04/deploy-your-adf-uix-applications-to.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/8149231472245086546?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/8149231472245086546?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/U-p1QFx4JpM/deploy-your-adf-uix-applications-to.html" title="Deploy your ADF UIX applications to WebLogic" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-w5Z6IS7hK6w/T3ynPpJKcZI/AAAAAAAAFDM/pZmtOo9rBoU/s72-c/Screen+Shot+2012-04-04+at+9.55.21+PM.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://biemond.blogspot.com/2012/04/deploy-your-adf-uix-applications-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8HRn84fSp7ImA9WhVQFEo.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-2366465033206782755</id><published>2012-04-03T20:29:00.002+02:00</published><updated>2012-04-03T20:30:37.135+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-03T20:30:37.135+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g soa suite" /><category scheme="http://www.blogger.com/atom/ns#" term="web services" /><title>How to use the Human WorkFlow Web Services</title><content type="html">There are different ways to interact with the Human WorkFlow services of the Oracle SOA Suite or &amp;nbsp;BPM. You can use java and use it in your own application, like I did in &lt;a href="http://biemond.blogspot.com/2011/10/working-with-human-worklist-api-and.html"&gt;this blogpost&lt;/a&gt;,&amp;nbsp;use the BPM Worklist application or invoke the Human WorkFlow web services.&lt;br /&gt;
&lt;br /&gt;
In this blogpost I will describe how you can do that and&amp;nbsp;especially&amp;nbsp;how you can query the Human task with your own ordering and restrictions.&lt;br /&gt;
&lt;br /&gt;
You can try these examples from soapUI or any other web service framework / tool.&lt;br /&gt;
&lt;br /&gt;
In this blogpost we will invoke these two WF web services&lt;br /&gt;
&lt;br /&gt;
TaskQueryService, This WS can be used for task retrieval or do a query on the WorkFlow service.&lt;br /&gt;
The WSDL url = http://soa-server:8001/integration/services/TaskQueryService/TaskQueryService?WSDL&lt;br /&gt;
&lt;br /&gt;
TaskService, This WS can be used for CRUD actions on the human tasks.&lt;br /&gt;
The WSDL url =&amp;nbsp;http://soa-server:8001/integration/services/&lt;wbr&gt;&lt;/wbr&gt;TaskService/TaskServicePort?&lt;wbr&gt;&lt;/wbr&gt;WSDL&lt;br /&gt;
&lt;br /&gt;
Both services got two endpoints, &lt;b&gt;be aware you should always use the endpoint of TaskQueryServicePort&lt;/b&gt; and not the SAML port unless you like to use SAML authentication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;service name="TaskQueryService"&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;port name="&lt;wbr&gt;&lt;/wbr&gt;TaskQueryServicePortSAML" binding="tns:&lt;wbr&gt;&lt;/wbr&gt;TaskQueryServiceSOAPBinding"&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;soap:address location="http://172.16.0.4:&lt;wbr&gt;&lt;/wbr&gt;8001/integration/services/&lt;wbr&gt;&lt;/wbr&gt;TaskQueryService/&lt;wbr&gt;&lt;/wbr&gt;TaskQueryService2/*"/&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;/port&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;lt;port name="TaskQueryServicePort" binding="tns:&lt;wbr&gt;&lt;/wbr&gt;TaskQueryServiceSOAPBinding"&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;lt;soap:address location="http://172.16.0.4:&lt;wbr&gt;&lt;/wbr&gt;8001/integration/services/&lt;wbr&gt;&lt;/wbr&gt;TaskQueryService/&lt;wbr&gt;&lt;/wbr&gt;TaskQueryService"/&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;lt;/port&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;/service&amp;gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
When we know our Human TaskId &amp;nbsp;( something like this 3fa4e9f7-5719-4efa-8215-ad2b47fcbace )&lt;br /&gt;
then you can use the &lt;b&gt;getTaskDetailsById&lt;/b&gt; operation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;soapenv:Envelope xmlns:soapenv="&lt;a href="http://schemas.xmlsoap.org/soap/envelope/" style="color: #1155cc;" target="_blank"&gt;http://schemas.&lt;wbr&gt;&lt;/wbr&gt;xmlsoap.org/soap/envelope/&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:tas="&lt;a href="http://xmlns.oracle.com/bpel/workflow/taskQueryService" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;taskQueryService&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:com="&lt;a href="http://xmlns.oracle.com/bpel/workflow/common" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;common&lt;/a&gt;"&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;soapenv:Header/&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;soapenv:Body&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #222222;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: blue;"&gt;tas:taskDetailsByIdRequest&lt;/span&gt;&lt;span style="color: #222222;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:workflowContext&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;com:credential&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:login&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;weblogic&lt;/span&gt;&lt;/b&gt;&lt;span style="color: red;"&gt;&amp;lt;/com:&lt;wbr&gt;&lt;/wbr&gt;login&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:password&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;weblogic1&lt;/span&gt;&lt;/b&gt;&lt;span style="color: red;"&gt;&amp;lt;/com:&lt;wbr&gt;&lt;/wbr&gt;password&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/com:credential&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/com:workflowContext&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #222222;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas:taskId&amp;gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;3fa4e9f7-5719-&lt;wbr&gt;&lt;/wbr&gt;4efa-8215-ad2b47fcbace&lt;/span&gt;&lt;span style="color: #222222;"&gt;&amp;lt;/tas:&lt;/span&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;span style="color: #222222;"&gt;taskId&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas:taskDetailsByIdRequest&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;/soapenv:Body&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;/soapenv:Envelope&amp;gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
In this case I use workflowContext for authentication. You can also do it on behalf of someone else.&lt;br /&gt;
&lt;br /&gt;
Sometimes you only got a Human WorkFlow number then you can use the &lt;b&gt;getTaskDetailsByNumber&lt;/b&gt; operation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;soapenv:Envelope xmlns:soapenv="&lt;a href="http://schemas.xmlsoap.org/soap/envelope/" style="color: #1155cc;" target="_blank"&gt;http://schemas.&lt;wbr&gt;&lt;/wbr&gt;xmlsoap.org/soap/envelope/&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:tas="&lt;a href="http://xmlns.oracle.com/bpel/workflow/taskQueryService" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;taskQueryService&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:com="&lt;a href="http://xmlns.oracle.com/bpel/workflow/common" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;common&lt;/a&gt;"&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;soapenv:Header/&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;soapenv:Body&amp;gt;&lt;/div&gt;
&lt;div style="font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="background-color: rgba(255, 255, 255, 0.917969); color: #222222;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="background-color: white;"&gt;&lt;span style="color: #222222;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: blue;"&gt;tas:&lt;wbr&gt;&lt;/wbr&gt;taskDetailsByNumberRequest&lt;/span&gt;&lt;span style="color: #222222;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:workflowContext&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;com:credential&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:login&amp;gt;weblogic&amp;lt;/com:&lt;wbr&gt;&lt;/wbr&gt;login&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:password&amp;gt;weblogic1&amp;lt;/com:&lt;wbr&gt;&lt;/wbr&gt;password&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/com:credential&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/com:workflowContext&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #222222;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas:taskNumber&amp;gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;200000&lt;/span&gt;&lt;span style="color: #222222;"&gt;&amp;lt;/tas:&lt;/span&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;span style="color: #222222;"&gt;taskNumber&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas:&lt;wbr&gt;&lt;/wbr&gt;taskDetailsByNumberRequest&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;/soapenv:Body&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;/soapenv:Envelope&amp;gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
When you don't know the taskId or the task number or want to do bulk operations then you can do a search on the humantask services. &amp;nbsp;The &lt;b&gt;queryTasks&lt;/b&gt; operation is very&amp;nbsp;powerful&amp;nbsp;and there is not really a restriction.&lt;br /&gt;
&lt;br /&gt;
let's start with a simple one. In this request I want to search for a task number and also want to have some extra attributes ( blue part ) &amp;nbsp;in the response together with the Comments, Attachments and the Payloads ( red part ).&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;soapenv:Envelope xmlns:soapenv="&lt;a href="http://schemas.xmlsoap.org/soap/envelope/" style="color: #1155cc;" target="_blank"&gt;http://schemas.&lt;wbr&gt;&lt;/wbr&gt;xmlsoap.org/soap/envelope/&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:tas="&lt;a href="http://xmlns.oracle.com/bpel/workflow/taskQueryService" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;taskQueryService&lt;/a&gt;" \&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:com="&lt;a href="http://xmlns.oracle.com/bpel/workflow/common" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;common&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:tas1="&lt;a href="http://xmlns.oracle.com/bpel/workflow/taskQuery" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;taskQuery&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:task="&lt;a href="http://xmlns.oracle.com/bpel/workflow/task" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/task&lt;/a&gt;"&lt;wbr&gt;&lt;/wbr&gt;&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;soapenv:Header/&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;soapenv:Body&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas:taskListRequest&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:workflowContext&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;com:credential&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:login&amp;gt;weblogic&amp;lt;/com:&lt;wbr&gt;&lt;/wbr&gt;login&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:password&amp;gt;weblogic1&amp;lt;/com:&lt;wbr&gt;&lt;/wbr&gt;password&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/com:credential&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/com:workflowContext&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskPredicateQuery&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:displayColumnList&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:displayColumn&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;textAttribute1&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;displayColumn&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:displayColumn&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;textAttribute2&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;displayColumn&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:displayColumn&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;textAttribute3&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;displayColumn&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:displayColumnList&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:optionalInfoList&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskOptionalInfo&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;Comments&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;taskOptionalInfo&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskOptionalInfo&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;Attachments&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;taskOptionalInfo&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskOptionalInfo&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;Payload&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;taskOptionalInfo&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:optionalInfoList&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;b&gt;&amp;nbsp; &lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:predicate&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;b&gt;&lt;span style="background-color: rgba(255, 255, 255, 0.917969);"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="background-color: white;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;lt;tas1:assignmentFilter&amp;gt;All&amp;lt;/&lt;wbr&gt;&lt;/wbr&gt;tas1:assignmentFilter&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;b&gt;&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:clause&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;b&gt;&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:column&amp;gt;taskNumber&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;column&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;b&gt;&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:operator&amp;gt;EQ&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;operator&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;b&gt;&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:value&amp;gt;200001&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;value&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;b&gt;&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:clause&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;b&gt;&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:predicate&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:taskPredicateQuery&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas:taskListRequest&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;/soapenv:Body&amp;gt;&lt;/div&gt;
&lt;span style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;&amp;lt;/soapenv:Envelope&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
In the &lt;b&gt;predicate&lt;/b&gt; part we are using the old style for defining our restriction ( clause after predicate ). In the next queryTasks examples I will show the ones which also will be supported in the coming soa suite releases. &amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;assignmentFilter&lt;/b&gt; can have the following values: All, My, Group, My+Group, My+Group+All, Reportees, Creator, Owner, Previous, Admin&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;operator&lt;/b&gt; can have the following values:&amp;nbsp;EQ, NEQ, GT, GTE, LT, LTE, LIKE, NOT_LIKE, IN, NOT_IN, CONTAINS, NOT_CONTAINS, BEGINS, NOT_BEGINS, ENDS, NOT_ENDS, BEFORE, AFTER, ON, NEXT_N_DAYS, LAST_N_DAYS, IS_IN_FUTURE, IS_IN_PAST, IS_NULL, IS_NOT_NULL&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
To know all the possible &lt;b&gt;displayColumn&lt;/b&gt; values you can decompile the &lt;b&gt;TableConstants&lt;/b&gt; class located in the&lt;b&gt; oracle.bpel.services.workflow.repos&lt;/b&gt; package. Or look at the WF tables in the soa-infra schema.&lt;br /&gt;
&lt;br /&gt;
The &lt;b&gt;optionalInfoList&lt;/b&gt; can contain the following values: Actions, GroupActions, CustomActions, Attachments, Comments, Payload, ShortHistory, TemplateTasks&lt;br /&gt;
&lt;br /&gt;
In this query I have a predicate with two clauses which do a search on the text attributes ( tableName attribute is in almost all cases WFTask , check the soa-infa database or the TableConstants class ) and the second one has an AND operator on the first one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;soapenv:Envelope xmlns:soapenv="&lt;a href="http://schemas.xmlsoap.org/soap/envelope/" style="color: #1155cc;" target="_blank"&gt;http://schemas.&lt;wbr&gt;&lt;/wbr&gt;xmlsoap.org/soap/envelope/&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:tas="&lt;a href="http://xmlns.oracle.com/bpel/workflow/taskQueryService" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;taskQueryService&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:com="&lt;a href="http://xmlns.oracle.com/bpel/workflow/common" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;common&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:tas1="&lt;a href="http://xmlns.oracle.com/bpel/workflow/taskQuery" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;taskQuery&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:task="&lt;a href="http://xmlns.oracle.com/bpel/workflow/task" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/task&lt;/a&gt;"&lt;wbr&gt;&lt;/wbr&gt;&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;soapenv:Header/&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;soapenv:Body&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas:taskListRequest&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:workflowContext&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;com:credential&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:login&amp;gt;weblogic&amp;lt;/com:&lt;wbr&gt;&lt;/wbr&gt;login&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:password&amp;gt;weblogic1&amp;lt;/com:&lt;wbr&gt;&lt;/wbr&gt;password&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/com:credential&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/com:workflowContext&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskPredicateQuery startRow="1" endRow="10"&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:displayColumnList&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:displayColumn&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;textAttribute1&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;displayColumn&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:displayColumn&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;textAttribute2&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;displayColumn&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:displayColumn&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;textAttribute3&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;displayColumn&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:displayColumnList&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:optionalInfoList&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskOptionalInfo&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;Comments&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;taskOptionalInfo&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskOptionalInfo&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;Attachments&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;taskOptionalInfo&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskOptionalInfo&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;Payload&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;taskOptionalInfo&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:optionalInfoList&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:predicate&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:assignmentFilter&amp;gt;All&amp;lt;/&lt;wbr&gt;&lt;/wbr&gt;tas1:assignmentFilter&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #222222;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;lt;tas1:predicate&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:column tableName="&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;WFTask&lt;/span&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;"&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:columnName&amp;gt;&lt;/span&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;textAttribute1&lt;/span&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;&amp;lt;/tas1:&lt;/span&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;span style="color: blue;"&gt;columnName&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:column&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:operator&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;EQ&lt;/span&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;operator&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:value&amp;gt;MyTask&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;value&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:clause&lt;/span&gt;&lt;span style="color: #20124d;"&gt; &lt;b&gt;joinOperator="AND"&lt;/b&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:column &amp;nbsp;tableName="&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;WFTask&lt;/span&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;"&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:columnName&amp;gt;&lt;/span&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;textAttribute2&lt;/span&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;columnName&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:column&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:operator&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;EQ&lt;/span&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;operator&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:value&amp;gt;1234&amp;lt;/tas1:value&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:predicate&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:predicate&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:taskPredicateQuery&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas:taskListRequest&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;/soapenv:Body&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;/soapenv:Envelope&amp;gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
In the next example we will add some ordering and use a valuelist in a predicate clause ( for this we need to use the IN operator).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;soapenv:Envelope xmlns:soapenv="&lt;a href="http://schemas.xmlsoap.org/soap/envelope/" style="color: #1155cc;" target="_blank"&gt;http://schemas.&lt;wbr&gt;&lt;/wbr&gt;xmlsoap.org/soap/envelope/&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:tas="&lt;a href="http://xmlns.oracle.com/bpel/workflow/taskQueryService" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;taskQueryService&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:com="&lt;a href="http://xmlns.oracle.com/bpel/workflow/common" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;common&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:tas1="&lt;a href="http://xmlns.oracle.com/bpel/workflow/taskQuery" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;taskQuery&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp;&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:task="&lt;a href="http://xmlns.oracle.com/bpel/workflow/task" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/task&lt;/a&gt;"&lt;wbr&gt;&lt;/wbr&gt;&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;soapenv:Header/&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;soapenv:Body&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas:taskListRequest&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:workflowContext&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;com:credential&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:login&amp;gt;weblogic&amp;lt;/com:&lt;wbr&gt;&lt;/wbr&gt;login&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:password&amp;gt;weblogic1&amp;lt;/com:&lt;wbr&gt;&lt;/wbr&gt;password&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/com:credential&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/com:workflowContext&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskPredicateQuery&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:displayColumnList&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:displayColumn&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;textAttribute1&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;displayColumn&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:displayColumn&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;textAttribute2&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;displayColumn&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:displayColumn&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;textAttribute3&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;displayColumn&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:displayColumnList&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:optionalInfoList&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskOptionalInfo&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;Comments&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;taskOptionalInfo&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskOptionalInfo&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;Attachments&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;taskOptionalInfo&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskOptionalInfo&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;Payload&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;taskOptionalInfo&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:optionalInfoList&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:predicate&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:assignmentFilter&amp;gt;My+&lt;wbr&gt;&lt;/wbr&gt;Group&amp;lt;/tas1:assignmentFilter&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:predicate&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:column tableName="&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;WFTask&lt;/span&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;"&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:columnName&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;state&lt;/span&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;columnName&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:column&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:operator&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;IN&lt;/span&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;operator&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:valueList&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:value&amp;gt;ASSIGNED&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;value&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:value&amp;gt;INFO_REQUESTED&amp;lt;/&lt;wbr&gt;&lt;/wbr&gt;tas1:value&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:value&amp;gt;OUTCOME_UPDATED&amp;lt;/&lt;wbr&gt;&lt;/wbr&gt;tas1:value&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:valueList&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:predicate&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:predicate&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:ordering&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:column&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;priority&lt;/span&gt;&lt;/b&gt;&lt;span style="color: red;"&gt;&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;column&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:table&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;WFTask&lt;/span&gt;&lt;/b&gt;&lt;span style="color: red;"&gt;&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;table&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:sortOrder&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;ASCENDING&lt;/span&gt;&lt;/b&gt;&lt;span style="color: red;"&gt;&amp;lt;/&lt;wbr&gt;&lt;/wbr&gt;tas1:sortOrder&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:nullFirst&amp;gt;false&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;nullFirst&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:column&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;taskNumber&lt;/span&gt;&lt;/b&gt;&lt;span style="color: red;"&gt;&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;column&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:table&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;WFTask&lt;/span&gt;&lt;/b&gt;&lt;span style="color: red;"&gt;&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;table&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:sortOrder&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;DESCENDING&lt;/span&gt;&lt;/b&gt;&lt;span style="color: red;"&gt;&amp;lt;/&lt;wbr&gt;&lt;/wbr&gt;tas1:sortOrder&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:nullFirst&amp;gt;false&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;nullFirst&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:ordering&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:taskPredicateQuery&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas:taskListRequest&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;/soapenv:Body&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;/soapenv:Envelope&amp;gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
For the Ordering I need to provide the column and table values (&amp;nbsp;table element is in almost all cases WFTask , check the soa-infa database or the TableConstants class&amp;nbsp;)&lt;br /&gt;
&lt;br /&gt;
The last query task has a more complex predicate, for this we need to use lhs , logicalOperator and rhs elements. And the rhs element contains an another lhs , logicalOperator and rhs section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;soapenv:Envelope xmlns:soapenv="&lt;a href="http://schemas.xmlsoap.org/soap/envelope/" style="color: #1155cc;" target="_blank"&gt;http://schemas.&lt;wbr&gt;&lt;/wbr&gt;xmlsoap.org/soap/envelope/&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:tas="&lt;a href="http://xmlns.oracle.com/bpel/workflow/taskQueryService" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;taskQueryService&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:com="&lt;a href="http://xmlns.oracle.com/bpel/workflow/common" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;common&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:tas1="&lt;a href="http://xmlns.oracle.com/bpel/workflow/taskQuery" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/&lt;wbr&gt;&lt;/wbr&gt;taskQuery&lt;/a&gt;"&amp;nbsp;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="white-space: pre-wrap;"&gt; &lt;/span&gt;xmlns:task="&lt;a href="http://xmlns.oracle.com/bpel/workflow/task" style="color: #1155cc;" target="_blank"&gt;http://xmlns.&lt;wbr&gt;&lt;/wbr&gt;oracle.com/bpel/workflow/task&lt;/a&gt;"&lt;wbr&gt;&lt;/wbr&gt;&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;soapenv:Header/&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;soapenv:Body&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas:taskListRequest&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:workflowContext&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;com:credential&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:login&amp;gt;weblogic&amp;lt;/com:&lt;wbr&gt;&lt;/wbr&gt;login&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:password&amp;gt;weblogic1&amp;lt;/com:&lt;wbr&gt;&lt;/wbr&gt;password&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/com:credential&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/com:workflowContext&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskPredicateQuery startRow="1" endRow="10"&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:displayColumnList&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:displayColumn&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;textAttribute1&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;displayColumn&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:displayColumn&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;textAttribute2&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;displayColumn&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:displayColumn&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;textAttribute3&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;displayColumn&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:displayColumnList&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:optionalInfoList&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskOptionalInfo&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;Comments&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;taskOptionalInfo&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskOptionalInfo&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;Attachments&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;taskOptionalInfo&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:taskOptionalInfo&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;Payload&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;taskOptionalInfo&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:optionalInfoList&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:predicate&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:assignmentFilter&amp;gt;My+&lt;wbr&gt;&lt;/wbr&gt;Group&amp;lt;/tas1:assignmentFilter&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #222222;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:predicate&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;lhs&lt;/span&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:column tableName="WFTask"&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:columnName&amp;gt;state&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;columnName&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:column&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:operator&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;IN&lt;/span&gt;&lt;/b&gt;&lt;span style="color: red;"&gt;&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;operator&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:valueList&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:value&amp;gt;ASSIGNED&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;value&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:value&amp;gt;INFO_REQUESTED&amp;lt;/&lt;wbr&gt;&lt;/wbr&gt;tas1:value&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:value&amp;gt;OUTCOME_UPDATED&amp;lt;/&lt;wbr&gt;&lt;/wbr&gt;tas1:value&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:valueList&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;lhs&lt;/span&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:logicalOperator&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;AND&lt;/span&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;wbr&gt;&lt;/wbr&gt;tas1:logicalOperator&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;rhs&lt;/span&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;&amp;lt;tas1:&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;lhs&lt;/span&gt;&lt;/b&gt;&lt;span style="color: red;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #20124d;"&gt;&amp;lt;tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:column tableName="WFTask"&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:columnName&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;textAttribute1&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;columnName&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:column&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:operator&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;EQ&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #20124d;"&gt;&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;operator&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:value&amp;gt;MyTask&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;value&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:clause joinOperator="&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;AND&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #20124d;"&gt;"&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:column tableName="WFTask"&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:columnName&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;textAttribute2&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;columnName&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:column&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:operator&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;EQ&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #20124d;"&gt;&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;operator&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:value&amp;gt;1234&amp;lt;/tas1:value&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #20124d;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;lhs&lt;/span&gt;&lt;/b&gt;&lt;span style="color: red;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:logicalOperator&amp;gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;OR&lt;/span&gt;&lt;/b&gt;&lt;span style="color: red;"&gt;&amp;lt;/&lt;wbr&gt;&lt;/wbr&gt;tas1:logicalOperator&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;rhs&lt;/span&gt;&lt;/b&gt;&lt;span style="color: red;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #073763;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #073763;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:column tableName="WFTask"&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #073763;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas1:columnName&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;textAttribute2&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;columnName&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #073763;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:column&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="background-color: rgba(255, 255, 255, 0.917969); color: #073763;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:operator&amp;gt;&lt;/span&gt;&lt;b style="background-color: white;"&gt;&lt;span style="color: #20124d;"&gt;EQ&lt;/span&gt;&lt;/b&gt;&lt;span style="background-color: rgba(255, 255, 255, 0.917969); color: #073763;"&gt;&amp;lt;/tas1:&lt;wbr&gt;&lt;/wbr&gt;operator&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #073763;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas1:value&amp;gt;123&amp;lt;/tas1:value&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: #073763;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:clause&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: red;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;rhs&lt;/span&gt;&lt;/b&gt;&lt;span style="color: red;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:&lt;/span&gt;&lt;b&gt;&lt;span style="color: #20124d;"&gt;rhs&lt;/span&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:predicate&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas1:predicate&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tas1:taskPredicateQuery&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas:taskListRequest&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;/soapenv:Body&amp;gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;lt;/soapenv:Envelope&amp;gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At last we can also try update a Task with a particular outcome. For this we need to use the TaskService &lt;br /&gt;
http://soa-server:8001/integration/services/&lt;wbr&gt;&lt;/wbr&gt;TaskService/TaskServicePort?&lt;wbr&gt;&lt;/wbr&gt;WSDL&lt;br /&gt;
&lt;br /&gt;
Use the right endpoint ( not the SAML one ) and use the operation &lt;b&gt;updateTaskOutcome &lt;/b&gt;( this is the easiest way )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&lt;br /&gt;
&amp;nbsp; &amp;nbsp; xmlns:tas="http://xmlns.oracle.com/bpel/workflow/taskService"&lt;br /&gt;
&amp;nbsp; &amp;nbsp; xmlns:com="http://xmlns.oracle.com/bpel/workflow/common"&lt;br /&gt;
&amp;nbsp; &amp;nbsp; xmlns:task="http://xmlns.oracle.com/bpel/workflow/task"&lt;br /&gt;
&amp;nbsp; &amp;nbsp; xmlns:tas1="http://xmlns.oracle.com/bpel/workflow/TaskEvidenceService"&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;soapenv:Header/&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;soapenv:Body&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tas:updateTaskOutcome&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:workflowContext&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;com:credential&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:login&amp;gt;humantask&amp;lt;/com:login&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;com:password&amp;gt;Welcome01&amp;lt;/com:password&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/com:credential&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/com:workflowContext&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas:taskId&amp;gt;&lt;span style="color: blue;"&gt;&lt;b&gt;3e80842f-75c9-4e3d-b441-a7f339df4109&lt;/b&gt;&lt;/span&gt;&amp;lt;/tas:taskId&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tas:outcome&amp;gt;&lt;span style="color: blue;"&gt;&lt;b&gt;OK&lt;/b&gt;&lt;/span&gt;&amp;lt;/tas:outcome&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tas:updateTaskOutcome&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;/soapenv:Body&amp;gt;&lt;br /&gt;
&amp;lt;/soapenv:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Just provide the taskId and what the outcome should be.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-2366465033206782755?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/2366465033206782755/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2012/04/how-to-use-human-workflow-web-services.html#comment-form" title="12 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/2366465033206782755?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/2366465033206782755?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/vRqZ6XZaWtw/how-to-use-human-workflow-web-services.html" title="How to use the Human WorkFlow Web Services" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><thr:total>12</thr:total><feedburner:origLink>http://biemond.blogspot.com/2012/04/how-to-use-human-workflow-web-services.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUICRXY9fip7ImA9WhVQEkQ.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-4649493837835634570</id><published>2012-03-31T18:56:00.000+02:00</published><updated>2012-04-01T17:19:24.866+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-01T17:19:24.866+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MySQL" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="JCache" /><category scheme="http://www.blogger.com/atom/ns#" term="NoSQL" /><category scheme="http://www.blogger.com/atom/ns#" term="jsf" /><title>JCache on NoSQL MySQL Cluster 7.2 ( Memcached )</title><content type="html">With the release of MySQL Cluster 7.2 and the support for the native Memcached API we can also use the HA cluster for NoSQL besides&amp;nbsp;JPA, SQL.&lt;br /&gt;
In this blogpost I will try out this NoSQL feature with JCache ( alias JSR 107 or javax.cache , it will be part of Java EE 7 and it will also work in Java 6 ). &amp;nbsp;JCache defines a standard Java Caching API for use by developers and a standard SPI (“Service Provider Interface”) for use by implementers. Coherence of Oracle will also support JCache. For more information see &lt;a href="http://gregluck.com/blog/archives/category/jcache/"&gt;Greg Luck's blog&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
With JCache and MySQL Cluster alone we can't get this example running. We also need to have Memcached JCache provider. &amp;nbsp;Leen Toelen already did the hard work, he made one which uses spymemcached as memcache client. So for this we need to download &lt;a href="https://github.com/toelen/spymemcached-jcache"&gt;his code at github&lt;/a&gt;, after this we also need to download the &lt;a href="http://code.google.com/p/spymemcached"&gt;latest spymemcached jars&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The code of Leen will work with JCache version 0.4, so we need to download the 0.4 version jars at&amp;nbsp;&lt;a href="https://oss.sonatype.org/index.html#nexus-search;quick~javax-cache"&gt;https://oss.sonatype.org/index.html#nexus-search;quick~javax-cache&lt;/a&gt;&amp;nbsp;. You can find the source code at &lt;a href="https://github.com/jsr107"&gt;JSR107 github repositories&lt;/a&gt;. For the JCache provider you also need to &lt;a href="http://mvnrepository.com/artifact/javax.enterprise/cdi-api"&gt;download the CDI-API jar&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
For more information on Memcached or MySQL you can read&lt;a href="http://www.clusterdb.com/mysql-cluster/scalabale-persistent-ha-nosql-memcache-storage-using-mysql-cluster/"&gt; this great blog of clusterdb&lt;/a&gt;, he explains it really well, like&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;How to setup your MySQL and Memcached environment&lt;/li&gt;
&lt;li&gt;What is memcached&lt;/li&gt;
&lt;li&gt;How it works&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Let it work on your existing tables&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
or you can read the MySQL Cluster 7.2 whitepaper which can be downloaded at MySQL.com&lt;br /&gt;
&lt;br /&gt;
So we start by downloading MySQL Cluster 7.2 and configuring this cluster. I won't explain this here, there are a lot of great blogs or guides which can help you with this.&lt;br /&gt;
&lt;br /&gt;
After we got the cluster running we need to create the memcached database.&lt;br /&gt;
&lt;br /&gt;
Also we need to have at least 10 API or MYSQLD entries in the config.ini of the cluster. After this change you need to reload this config file with the ndb_mgmd daemon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[NDBD DEFAULT]&lt;br /&gt;
NoOfReplicas=2&lt;br /&gt;
DataDir=/usr/cluster/data&lt;br /&gt;
DataMemory=80M&lt;br /&gt;
IndexMemory=18M&lt;br /&gt;
&lt;br /&gt;
[MYSQLD DEFAULT]&lt;br /&gt;
[NDB_MGMD DEFAULT]&lt;br /&gt;
DataDir= /usr/cluster/data&lt;br /&gt;
&lt;br /&gt;
[TCP DEFAULT]&lt;br /&gt;
&lt;br /&gt;
# Management Server&lt;br /&gt;
[NDB_MGMD]&lt;br /&gt;
NodeId=1&lt;br /&gt;
HostName=172.16.0.20 # IP address of this server&lt;br /&gt;
&lt;br /&gt;
# Storage Nodes&lt;br /&gt;
[NDBD]&lt;br /&gt;
NodeId=2&lt;br /&gt;
HostName=172.16.0.21 # IP address of storage-node-1&lt;br /&gt;
DataDir= /usr/cluster/data&lt;br /&gt;
&lt;br /&gt;
[NDBD]&lt;br /&gt;
NodeId=3&lt;br /&gt;
HostName=172.16.0.22 # IP address of storage-node-2&lt;br /&gt;
DataDir= /usr/cluster/data&lt;br /&gt;
&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
[MYSQLD]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then we need to create the ndbmemcache database&lt;br /&gt;
&lt;br /&gt;
mysql -p &amp;lt; /usr/share/mysql/memcache-api/ndb_memcache_metadata.sql&lt;br /&gt;
mysql&amp;gt; show databases;&lt;br /&gt;
+--------------------+&lt;br /&gt;
| Database &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;br /&gt;
+--------------------+&lt;br /&gt;
| information_schema |&lt;br /&gt;
| mysql &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;br /&gt;
| ndbinfo &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;br /&gt;
| ndbmemcache &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;br /&gt;
| performance_schema |&lt;br /&gt;
| test &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;br /&gt;
+--------------------+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We can start memcached on the cluster nodes (what you like &amp;nbsp;) and it needs to connect to the NDB management service.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/usr/sbin/memcached -E /usr/lib64/ndb_engine.so -u mysql -e "connectstring=mgt.alfa.local:1186;role=db-only" -vv&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
you should see a output like &amp;nbsp;this.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
17-Mar-2012 21:12:55 CET NDB Memcache 5.5.19-ndb-7.2.4 started [NDB 7.2.4; MySQL 5.5.19]&lt;/div&gt;
&lt;div&gt;
Contacting primary management server (mgt.alfa.local:1186) ...&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Connected to "mgt.alfa.local:1186" as node id 6.&lt;/div&gt;
&lt;div&gt;
Retrieved 3 key prefixes for server role "db-only".&lt;/div&gt;
&lt;div&gt;
The default behavior is that:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; GET uses NDB only&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; SET uses NDB only&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; DELETE uses NDB only.&lt;/div&gt;
&lt;div&gt;
The 2 explicitly defined key prefixes are "b:" (demo_table_large) and "t:" (demo_table_tabs)&lt;/div&gt;
&lt;div&gt;
Connected to "172.16.0.20" as node id 7.&lt;/div&gt;
&lt;div&gt;
Server started with 4 threads.&lt;/div&gt;
&lt;div&gt;
Priming the pump ...&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Connected to "172.16.0.20" as node id 8.&lt;/div&gt;
&lt;div&gt;
Scheduler: using 2 connections to cluster 0&lt;/div&gt;
&lt;div&gt;
Scheduler: starting for 1 cluster; c0,f0,t1&lt;/div&gt;
&lt;div&gt;
done [0.677 sec].&lt;/div&gt;
&lt;div&gt;
Loaded engine: NDB Memcache 5.5.19-ndb-7.2.4&lt;/div&gt;
&lt;div&gt;
Supplying the following features: compare and swap, persistent storage, LRU&lt;/div&gt;
&lt;div&gt;
&amp;lt;49 server listening (auto-negotiate)&lt;/div&gt;
&lt;div&gt;
&amp;lt;50 server listening (auto-negotiate)&lt;/div&gt;
&lt;div&gt;
&amp;lt;51 send buffer was 126976, now 268435456&lt;/div&gt;
&lt;div&gt;
&amp;lt;52 send buffer was 126976, now 268435456&lt;/div&gt;
&lt;div&gt;
&amp;lt;51 server listening (udp)&lt;/div&gt;
&lt;div&gt;
&amp;lt;52 server listening (udp)&lt;/div&gt;
&lt;div&gt;
&amp;lt;51 server listening (udp)&lt;/div&gt;
&lt;div&gt;
&amp;lt;52 server listening (udp)&lt;/div&gt;
&lt;div&gt;
&amp;lt;51 server listening (udp)&lt;/div&gt;
&lt;div&gt;
&amp;lt;52 server listening (udp)&lt;/div&gt;
&lt;div&gt;
&amp;lt;51 server listening (udp)&lt;/div&gt;
&lt;div&gt;
&amp;lt;52 server listening (udp)&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
When we go to the cluster management console ( ndb_mgm) &amp;nbsp;and type &lt;b&gt;show&lt;/b&gt;, we should see something like this&lt;br /&gt;
&lt;br /&gt;
ndb_mgm&amp;gt; show&lt;br /&gt;
Cluster Configuration&lt;br /&gt;
---------------------&lt;br /&gt;
[ndbd(NDB)]&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;2 node(s)&lt;br /&gt;
id=2&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@172.16.0.21 &amp;nbsp;(mysql-5.5.19 ndb-7.2.4, Nodegroup: 0, Master)&lt;br /&gt;
id=3&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@172.16.0.22 &amp;nbsp;(mysql-5.5.19 ndb-7.2.4, Nodegroup: 0)&lt;br /&gt;
&lt;br /&gt;
[ndb_mgmd(MGM)]&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;1 node(s)&lt;br /&gt;
id=1&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@172.16.0.20 &amp;nbsp;(mysql-5.5.19 ndb-7.2.4)&lt;br /&gt;
&lt;br /&gt;
[mysqld(API)]&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;24 node(s)&lt;br /&gt;
id=4&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@172.16.0.21 &amp;nbsp;(mysql-5.5.19 ndb-7.2.4)&lt;br /&gt;
id=5&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@172.16.0.22 &amp;nbsp;(mysql-5.5.19 ndb-7.2.4)&lt;br /&gt;
id=6&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@172.16.0.21 &amp;nbsp;(mysql-5.5.19 ndb-7.2.4)&lt;br /&gt;
id=7&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@172.16.0.21 &amp;nbsp;(mysql-5.5.19 ndb-7.2.4)&lt;br /&gt;
id=8&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@172.16.0.21 &amp;nbsp;(mysql-5.5.19 ndb-7.2.4)&lt;br /&gt;
id=9&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@172.16.0.22 &amp;nbsp;(mysql-5.5.19 ndb-7.2.4)&lt;br /&gt;
id=10&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@172.16.0.22 &amp;nbsp;(mysql-5.5.19 ndb-7.2.4)&lt;br /&gt;
id=11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@172.16.0.22 &amp;nbsp;(mysql-5.5.19 ndb-7.2.4)&lt;br /&gt;
id=12 (not connected, accepting connect from any host)&lt;br /&gt;
id=13 (not connected, accepting connect from any host)&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
We are ready to do some test in java and we start with spymemcached java library ( in the memcachedclient I connect to my two memcached servers and use the default port 11211).&lt;br /&gt;
Just create a MemcachedClient and do your set or get operations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/2266277.js?file=Test1.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
&lt;br /&gt;
With this as result&lt;br /&gt;
2012-03-31 17:29:33.190 INFO net.spy.memcached.MemcachedConnection: &amp;nbsp;Added {QA sa=/172.16.0.21:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue&lt;br /&gt;
2012-03-31 17:29:33.205 INFO net.spy.memcached.MemcachedConnection: &amp;nbsp;Added {QA sa=/172.16.0.22:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue&lt;br /&gt;
2012-03-31 17:29:33.221 INFO net.spy.memcached.MemcachedConnection: &amp;nbsp;Connection state changed for sun.nio.ch.SelectionKeyImpl@10c832d2&lt;br /&gt;
2012-03-31 17:29:33.221 WARN net.spy.memcached.MemcachedConnection: &amp;nbsp;Could not redistribute to another node, retrying primary node for greetings.&lt;br /&gt;
2012-03-31 17:29:33.221 INFO net.spy.memcached.MemcachedConnection: &amp;nbsp;Connection state changed for sun.nio.ch.SelectionKeyImpl@47808199&lt;br /&gt;
&lt;span style="color: red;"&gt;There is no message&lt;/span&gt;&lt;br /&gt;
Process exited with exit code 0.&lt;br /&gt;
&lt;br /&gt;
Run it again.&lt;br /&gt;
&lt;br /&gt;
2012-03-31 17:30:47.662 INFO net.spy.memcached.MemcachedConnection: &amp;nbsp;Added {QA sa=/172.16.0.21:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue&lt;br /&gt;
2012-03-31 17:30:47.678 INFO net.spy.memcached.MemcachedConnection: &amp;nbsp;Added {QA sa=/172.16.0.22:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue&lt;br /&gt;
2012-03-31 17:30:47.694 INFO net.spy.memcached.MemcachedConnection: &amp;nbsp;Connection state changed for sun.nio.ch.SelectionKeyImpl@10c832d2&lt;br /&gt;
2012-03-31 17:30:47.694 INFO net.spy.memcached.MemcachedConnection: &amp;nbsp;Connection state changed for sun.nio.ch.SelectionKeyImpl@47808199&lt;br /&gt;
&lt;span style="color: red;"&gt;Hello World!&lt;/span&gt;&lt;br /&gt;
Process exited with exit code 0.&lt;br /&gt;
&lt;br /&gt;
We can see that the greetings key with its value is stored into the database ( you can also configure that this key is stored in memory instead of the database )&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-NtJRPbBLz2Q/T3cj_XVaWvI/AAAAAAAAFBw/wlXtu_FfMN0/s1600/Screen+Shot+2012-03-31+at+5.31.42+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="218" src="http://1.bp.blogspot.com/-NtJRPbBLz2Q/T3cj_XVaWvI/AAAAAAAAFBw/wlXtu_FfMN0/s640/Screen+Shot+2012-03-31+at+5.31.42+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
When we change the &amp;nbsp;key to b:greetings then the value will be stored in the large demo table which optimized for bigger values ( max 3mb) .&lt;br /&gt;
&lt;br /&gt;
From &lt;a href="http://www.clusterdb.com/mysql-cluster/scalabale-persistent-ha-nosql-memcache-storage-using-mysql-cluster/"&gt;clusterdb&lt;/a&gt; blogpost.&lt;br /&gt;
By default, the normal limit of 14K per row still applies when using the Memcached API; however, the standard configuration treats any key-value pair with a key-pefix of “b:” differently and will allow the value to be up to 3 Mb (note the default limit imposed by the Memcached server is 1 Mb and so you’d also need to raise that). Internally the contents of this value will be split between 1 row in ndbmemcache.demo_table_large and one or more rows in ndbmemcache.external_values.
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-m8--ksO8QTI/T3ckASM6asI/AAAAAAAAFB4/9UgCZLASoyU/s1600/Screen+Shot+2012-03-31+at+5.32.58+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://1.bp.blogspot.com/-m8--ksO8QTI/T3ckASM6asI/AAAAAAAAFB4/9UgCZLASoyU/s640/Screen+Shot+2012-03-31+at+5.32.58+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Now let's try the same with JCache. &lt;br /&gt;
&lt;br /&gt;
First create a javax.cache.spi.CachingProvider file in the following folder META-INF\services&lt;br /&gt;
This file must contain the JCache provider class name, in this case &amp;nbsp;net.spy.memcached.jcache.SpyCachingProvider&lt;br /&gt;
Then we need to create a SpyCachingProvider, set the Java parameter and configure the CacheManager &amp;amp; Cache.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/2266603.js?file=TestJCache.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
In combination with CDI you can also use annotations. Enable CDI and inject this bean in your class.&lt;br /&gt;
&lt;script src="https://gist.github.com/2266612.js?file=TestJCacheAnnotations.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-4649493837835634570?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/4649493837835634570/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2012/03/jcache-on-nosql-mysql-cluster-72.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/4649493837835634570?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/4649493837835634570?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/b1xqnOPimx8/jcache-on-nosql-mysql-cluster-72.html" title="JCache on NoSQL MySQL Cluster 7.2 ( Memcached )" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-NtJRPbBLz2Q/T3cj_XVaWvI/AAAAAAAAFBw/wlXtu_FfMN0/s72-c/Screen+Shot+2012-03-31+at+5.31.42+PM.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://biemond.blogspot.com/2012/03/jcache-on-nosql-mysql-cluster-72.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8FQnc5fSp7ImA9WhVRFkQ.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-4582111192782286056</id><published>2012-03-25T18:26:00.002+02:00</published><updated>2012-03-25T18:26:53.925+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-25T18:26:53.925+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="EclipseLink" /><title>Oracle bulk insert or select from Java with Eclipselink</title><content type="html">Database Bulk operations like a 10.000 rows insert operation from java can be hard and costly plus you won't come near the time when you do the same in PL/SQL. So the solution is to pass on the array of java JPA entities to a PL/SQL package and let the optimized Oracle Database do the hard work.&lt;br /&gt;
&lt;br /&gt;
To make this work in java we need to use&amp;nbsp;&lt;a href="http://www.eclipse.org/eclipselink/downloads/"&gt;eclipselink&lt;/a&gt;&amp;nbsp;at least version 2.3.2, this has the required java classes.&lt;br /&gt;
&lt;br /&gt;
In this blogpost I will show you, how you can retrieve all the departments from the HR demo schema. Add a new department and do a multi insert.&lt;br /&gt;
&lt;br /&gt;
On the PLSQL side we need to define PLSQL row and table types in our Oracle Package. Because Eclipselink can't handle these PLSQL table types directly we also need to define the matching Oracle Types counter parts.&lt;br /&gt;
&lt;br /&gt;
So let's create these objects in the Oracle Database under the HR schema&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/2192772.js?file=plsql.sql"&gt;
&lt;/script&gt;
&lt;br /&gt;
&lt;br /&gt;
We are ready with the Oracle Database.&lt;br /&gt;
&lt;br /&gt;
So the first step is to create the Departments entity. This entity is not based on a Table but on the Oracle Type, so we need to add&amp;nbsp;@Embeddable and&amp;nbsp;@Struct annotations.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/2192779.js?file=Departments.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
&lt;br /&gt;
We also need to create some department utils in which we define the eclipselink PLSQLrecord and PLSQLCollection variables and an ObjectRelationalDataTypeDescriptor&amp;nbsp;descriptor for the entitymanager session.&lt;br /&gt;
We need to do this else we can't map the Oracle Types to PLSQL table types. Also eclipselink need to link the Deparments class to the Oracle Type.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/2192804.js?file=DepartmentUtils.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
Off course we need to create a persistence unit which connects to the HR demo schema.&lt;br /&gt;
&lt;br /&gt;
We are ready to test our solutions.&lt;br /&gt;
&lt;br /&gt;
First we start with a single insert where we pass a department as parameter of a procedure.&lt;br /&gt;
These are the steps to make this work.&lt;br /&gt;
Define a&amp;nbsp;PLSQLStoredProcedureCall with your Oracle procedure name and all the parameters. Because we only pass on a record so we only need to use the department PLSQLrecord. Create DataReadQuery and add our department entity. Retrieve the&amp;nbsp;ServerSession and add the department descriptor.&lt;br /&gt;
And at last fire the procedure.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/2197865.js?file=TestInsert.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
In the second test we will do a multi insert. This works the same as the single result but only now we need to use the department PLSQLCollection and set our parameters to the Array type.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/2197871.js?file=TestMultiInsert.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
At last we will retrieve all the departments and we will use a function which returns an array of departments. In this case we will use&amp;nbsp;PLSQLStoredFunctionCall and also use the department PLSQLCollection. As result we get a&amp;nbsp;DatabaseRecord where we can read the RESULT key which contains all our departments.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/2197890.js?file=TestMultiSelect.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
Here you can download the project on github&amp;nbsp;&lt;a href="https://github.com/biemond/jdev11g_examples/tree/master/PLSQLWrapper"&gt;https://github.com/biemond/jdev11g_examples/tree/master/PLSQLWrapper&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-4582111192782286056?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/4582111192782286056/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2012/03/oracle-bulk-insert-or-select-from-java.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/4582111192782286056?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/4582111192782286056?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/vHpAOT4vL9k/oracle-bulk-insert-or-select-from-java.html" title="Oracle bulk insert or select from Java with Eclipselink" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://biemond.blogspot.com/2012/03/oracle-bulk-insert-or-select-from-java.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAERnk9fSp7ImA9WhVSF0s.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-989581138539663083</id><published>2012-03-14T22:31:00.004+01:00</published><updated>2012-03-14T22:31:47.765+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-14T22:31:47.765+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g soa suite" /><category scheme="http://www.blogger.com/atom/ns#" term="B2B" /><title>Processing EDIFACT documents in Oracle B2B</title><content type="html">In my &lt;a href="http://biemond.blogspot.com/2012/03/handling-custom-xml-documents-in-oracle.html"&gt;previous blogpost&lt;/a&gt; I already showed you how to process custom xml documents in Oracle B2B and pass it to the Oracle SOA Suite. In part two we will try to process an EDIFACT document. This time we need to use the Oracle Document Editor where we change the EDIFACT guideline, analyze the EDI documents against this guideline and do an export which we can import into Oracle B2B.&lt;br /&gt;
&lt;br /&gt;
Here is an example of an EDIFACT document which is used in the dutch energy world (an EDIFACT dialect called EDINE). It is an acknowledgement document called APERAK.&lt;br /&gt;
&lt;br /&gt;
UNA:+,? '&lt;br /&gt;
UNB+UNOC:3+8712423009097:14+8716867999990:14+080928:1347+1001'&lt;br /&gt;
UNH+1001+APERAK:D:96A:UN:EDINE1'&lt;br /&gt;
BGM+12E::9+A_200508030000603782+27'&lt;br /&gt;
DTM+137:200508031112:203'&lt;br /&gt;
DTM+178:200508031113:203'&lt;br /&gt;
DTM+735:2:805'&lt;br /&gt;
RFF+AAN:T200508031110N002'&lt;br /&gt;
NAD+GRP+8716867999990::9'&lt;br /&gt;
NAD+GRU+8712423009097::9'&lt;br /&gt;
ERC+00023::60'&lt;br /&gt;
FTX+AAO+++In period 199904112015 199904112030 your changes are not yet approved: because of inconsistency between other PRCs in the given period'&lt;br /&gt;
UNT+11+1001'&lt;br /&gt;
UNZ+1+1001'&lt;br /&gt;
&lt;br /&gt;
Before we can start we need to have the Message Implementation Guide ( MIG ) of this&lt;a href="http://www.edsn.nl/docs/Algemeen/mig_aperak_version_1.0.3_tcm36-9035[1].pdf"&gt; APERAK message&lt;/a&gt; and off course study the &lt;a href="http://www.edsn.nl/docs/Algemeen/functional_description_1.02.pdf"&gt;general EDIFACT Guidelines&lt;/a&gt; which explains the UNA,UNB,UNT and UNZ segments.&lt;br /&gt;
&lt;br /&gt;
First we need to identify the message. For this we need to analyze the UNH segment.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-qmaKTuQq3Ag/T1-7K4P9-PI/AAAAAAAAE74/XSxqn8Y2ipI/s1600/edi_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="208" src="http://4.bp.blogspot.com/-qmaKTuQq3Ag/T1-7K4P9-PI/AAAAAAAAE74/XSxqn8Y2ipI/s640/edi_1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
UNH+1001+&lt;span style="color: blue;"&gt;APERAK:D:96A&lt;/span&gt;:UN:EDINE1'&lt;br /&gt;
&lt;br /&gt;
The Message type is APERAK and version pluis release is D96A. These values are important for the Oracle Document Editor, this way we can detect and select the right EDIFACT APERAK definition and register it in Oracle B2B.&lt;br /&gt;
&lt;br /&gt;
Now we can startup the Oracle Document Editor ( this can be downloaded in the Prerequisites &amp;amp; Recommended Install Process of the SOA Suite download on OTN, for EDIFACT we only need&amp;nbsp;B2B Document Editor&amp;nbsp;Part 1 )&lt;br /&gt;
&lt;br /&gt;
Create a new guideline where we open the EDIFACT part and go to D96A node and select the APERAK message&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-JUpryEJI8gI/T1_ALOjG7cI/AAAAAAAAE8A/yGfujmPAfds/s1600/edi_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="412" src="http://1.bp.blogspot.com/-JUpryEJI8gI/T1_ALOjG7cI/AAAAAAAAE8A/yGfujmPAfds/s640/edi_2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This is the default implementation of the Aperak Message.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-Ka3hm2KYbJY/T1_ALt8R0ZI/AAAAAAAAE8E/N3e9HkZHzMU/s1600/edi_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="396" src="http://2.bp.blogspot.com/-Ka3hm2KYbJY/T1_ALt8R0ZI/AAAAAAAAE8E/N3e9HkZHzMU/s640/edi_3.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Because we are using an EDIFACT dialect we need to study the message implementation guide and change this guideline so it matches with the MIG. Delete Segments , Element Groups , Elements and add your own values in the element standard lists.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-9pLBzFXio0I/T1_AMJlLicI/AAAAAAAAE8M/P_zSNxqAihQ/s1600/edi_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="376" src="http://3.bp.blogspot.com/-9pLBzFXio0I/T1_AMJlLicI/AAAAAAAAE8M/P_zSNxqAihQ/s400/edi_4.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
When we are finished with the modifying part we can export this guideline. Click on &lt;b&gt;Export&lt;/b&gt; ( File menu ) &amp;nbsp;and select Oracle 2.0&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-07RnpUI4qZI/T1_ANe8pVEI/AAAAAAAAE8Y/wgYVo1Spvf0/s1600/edi_5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="553" src="http://1.bp.blogspot.com/-07RnpUI4qZI/T1_ANe8pVEI/AAAAAAAAE8Y/wgYVo1Spvf0/s640/edi_5.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Select &lt;b&gt;Show advanced options&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-aTkSoXU3z_s/T1_AP5VPJsI/AAAAAAAAE8c/pVx0VWwObp0/s1600/edi_6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="http://4.bp.blogspot.com/-aTkSoXU3z_s/T1_AP5VPJsI/AAAAAAAAE8c/pVx0VWwObp0/s320/edi_6.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;Provide your own namespace&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-RMXe9DUFvUI/T1_AQfLhSDI/AAAAAAAAE8k/CEQ6KQbCnjM/s1600/edi_7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="283" src="http://1.bp.blogspot.com/-RMXe9DUFvUI/T1_AQfLhSDI/AAAAAAAAE8k/CEQ6KQbCnjM/s400/edi_7.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Suppress Enumeration in XSD&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-ta5KK4rnH1Q/T1_ARi5DEGI/AAAAAAAAE8s/xMYIdy18FVc/s1600/edi_8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="287" src="http://2.bp.blogspot.com/-ta5KK4rnH1Q/T1_ARi5DEGI/AAAAAAAAE8s/xMYIdy18FVc/s400/edi_8.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
Then finish the export.&lt;br /&gt;
&lt;br /&gt;
Next step is to use the Analyzer so we can test the created guideline on our EDIFACT test message.&lt;br /&gt;
&lt;br /&gt;
Select the test message and select Show Advanced options ( else we can't generate a xml output based on this test message).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-LN82ukdhR6U/T1_Fl96iMwI/AAAAAAAAE9g/nU9aSPC8heM/s1600/edi_9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="448" src="http://3.bp.blogspot.com/-LN82ukdhR6U/T1_Fl96iMwI/AAAAAAAAE9g/nU9aSPC8heM/s640/edi_9.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Choose&lt;b&gt; From a guideline file&lt;/b&gt; and select your created guideline.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-WcFjpa0_RHU/T1_FiHaGzeI/AAAAAAAAE84/O803vvlPr74/s1600/edi_10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="310" src="http://2.bp.blogspot.com/-WcFjpa0_RHU/T1_FiHaGzeI/AAAAAAAAE84/O803vvlPr74/s400/edi_10.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Our test message does not contain a functional group segment so choose for Syntax 3 - no functional group.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-ltbLlpRa66c/T1_Fi-x_ycI/AAAAAAAAE88/-tiDsBNhZLE/s1600/edi_11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="488" src="http://4.bp.blogspot.com/-ltbLlpRa66c/T1_Fi-x_ycI/AAAAAAAAE88/-tiDsBNhZLE/s640/edi_11.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Oracle Document Editor can also generate a XML output but we need to enable this option.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-TiHjp-Q_how/T1_FjhxhASI/AAAAAAAAE9I/1fYYu4gaeM4/s1600/edi_12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="492" src="http://3.bp.blogspot.com/-TiHjp-Q_how/T1_FjhxhASI/AAAAAAAAE9I/1fYYu4gaeM4/s640/edi_12.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The guideline and test message does not have any errors so we are ready to use it in Oracle B2B&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-qscYkQUTvCc/T1_Fk1tT6zI/AAAAAAAAE9M/HKjpXmf4ILo/s1600/edi_13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="482" src="http://4.bp.blogspot.com/-qscYkQUTvCc/T1_Fk1tT6zI/AAAAAAAAE9M/HKjpXmf4ILo/s640/edi_13.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
To see the generated XML based on this test message we can press the &lt;b&gt;XDATA &lt;/b&gt;button. This is the XML which can be processed by Oracle SOA Suite.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-sDWIEYtSwQc/T1_FlqsWiYI/AAAAAAAAE9U/c3iIqxepP_4/s1600/edi_14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="236" src="http://1.bp.blogspot.com/-sDWIEYtSwQc/T1_FlqsWiYI/AAAAAAAAE9U/c3iIqxepP_4/s640/edi_14.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The next step is to register the APERAK guideline in Oracle B2B. For this we need go to the &lt;b&gt;Administration &lt;/b&gt;part of the B2B application.&lt;br /&gt;
&lt;br /&gt;
Go to the Document Tab and create a new version under &lt;b&gt;EDI_EDIFACT&lt;/b&gt;. This version should be called &lt;b&gt;D96A&lt;/b&gt;. &lt;br /&gt;
Also when we look at this line of our test EDIFACT message UNB+&lt;span style="color: red;"&gt;UNOC:3&lt;/span&gt;+8712423009097:14+8716867999990:14+080928:1347+1001'&lt;br /&gt;
Then we should use &lt;b&gt;UNOC &lt;/b&gt;as syntax identifier and the version is &lt;b&gt;3&lt;/b&gt;.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-ey8y6ej6SQM/T2EEctji-sI/AAAAAAAAE9o/JiyVam4YIdU/s1600/edi_16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="278" src="http://4.bp.blogspot.com/-ey8y6ej6SQM/T2EEctji-sI/AAAAAAAAE9o/JiyVam4YIdU/s640/edi_16.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Also we don't use a functional group and &lt;b&gt;UN &lt;/b&gt;is the Controlling Agency.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-xTOWedIuKHE/T2EEdWWIhwI/AAAAAAAAE9s/-LDggHNUn9g/s1600/edi_17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="324" src="http://1.bp.blogspot.com/-xTOWedIuKHE/T2EEdWWIhwI/AAAAAAAAE9s/-LDggHNUn9g/s640/edi_17.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Create the APERAK Document Type and use &lt;b&gt;FA &lt;/b&gt;as Function Group Identifier Code.&lt;br /&gt;
When we take a look at the UNH record of the test message we see that &lt;b&gt;UN &lt;/b&gt;is our Controlling Agency and &lt;b&gt;EDINE1 &lt;/b&gt;is the Transaction Association.&amp;nbsp;UNH+1001+APERAK:D:96A:&lt;span style="color: red;"&gt;UN:EDINE1&lt;/span&gt;'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-5IgeqmjNhf8/T2EEd7JG4mI/AAAAAAAAE94/JfaOKasHKbk/s1600/edi_18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="378" src="http://2.bp.blogspot.com/-5IgeqmjNhf8/T2EEd7JG4mI/AAAAAAAAE94/JfaOKasHKbk/s640/edi_18.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Create the APERAK Document Definition and upload the XSD definition and ECS file.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Vv0D96Bgf40/T2EEepeyTrI/AAAAAAAAE98/JJjUKYa0hyU/s1600/edi_19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="346" src="http://1.bp.blogspot.com/-Vv0D96Bgf40/T2EEepeyTrI/AAAAAAAAE98/JJjUKYa0hyU/s640/edi_19.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Next step is to add the EDI identifiers to all the involved Parties. This will be used to identify the agreement.&lt;br /&gt;
To know your sender or receiver identifications we can look at the UNB record.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-kZ1BsFjUd-8/T2EKKCbJglI/AAAAAAAAE-I/kwAZW0V31QE/s1600/edi_15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="432" src="http://4.bp.blogspot.com/-kZ1BsFjUd-8/T2EKKCbJglI/AAAAAAAAE-I/kwAZW0V31QE/s640/edi_15.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Add the EDI Interchange ID and Qualifier identifiers to all the involved Parties.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-dhoOWM9hsG8/T2EKKn5R1yI/AAAAAAAAE-M/Q8_fjymmmlg/s1600/edi_20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="266" src="http://4.bp.blogspot.com/-dhoOWM9hsG8/T2EKKn5R1yI/AAAAAAAAE-M/Q8_fjymmmlg/s640/edi_20.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Create the Aperak agreement between two parties where we add the EDI identifiers and select &lt;b&gt;Validate &lt;/b&gt;and &lt;b&gt;Translate &lt;/b&gt;options.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-bpJICyOfigY/T2EKLYIQEvI/AAAAAAAAE-U/5QwZPqZpPGs/s1600/edi_21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="394" src="http://4.bp.blogspot.com/-bpJICyOfigY/T2EKLYIQEvI/AAAAAAAAE-U/5QwZPqZpPGs/s640/edi_21.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Add a listening channel, so B2B will listen for new EDIFACT files.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-q0Lt_rL-D6U/T2EKMIuoYbI/AAAAAAAAE-Y/3Xae9ShLIx4/s1600/edi_22.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="427" src="http://2.bp.blogspot.com/-q0Lt_rL-D6U/T2EKMIuoYbI/AAAAAAAAE-Y/3Xae9ShLIx4/s640/edi_22.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
We should see the APERAK messages in the Business Messages&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-7TPyI7NM4bk/T2EKMlhSjyI/AAAAAAAAE-k/fmtEK3JE1_o/s1600/edi_23.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="236" src="http://1.bp.blogspot.com/-7TPyI7NM4bk/T2EKMlhSjyI/AAAAAAAAE-k/fmtEK3JE1_o/s640/edi_23.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And at last this is how the translated XML message looks like.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-SDfCGa-1OWk/T2EKNVOPscI/AAAAAAAAE-s/rj2F10am3qA/s1600/edi_24.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="282" src="http://3.bp.blogspot.com/-SDfCGa-1OWk/T2EKNVOPscI/AAAAAAAAE-s/rj2F10am3qA/s400/edi_24.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-bJMIpA19iGo/T2EKOIj7m6I/AAAAAAAAE-w/Q943Oq60psY/s1600/edi_25.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-bJMIpA19iGo/T2EKOIj7m6I/AAAAAAAAE-w/Q943Oq60psY/s400/edi_25.png" width="383" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-989581138539663083?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/989581138539663083/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2012/03/processing-edifact-documents-in-oracle.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/989581138539663083?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/989581138539663083?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/4dANfmZcG-I/processing-edifact-documents-in-oracle.html" title="Processing EDIFACT documents in Oracle B2B" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-qmaKTuQq3Ag/T1-7K4P9-PI/AAAAAAAAE74/XSxqn8Y2ipI/s72-c/edi_1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://biemond.blogspot.com/2012/03/processing-edifact-documents-in-oracle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMBQH86fyp7ImA9WhVSFEQ.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-2452663160683781581</id><published>2012-03-11T21:24:00.001+01:00</published><updated>2012-03-11T21:24:11.117+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-11T21:24:11.117+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g soa suite" /><category scheme="http://www.blogger.com/atom/ns#" term="B2B" /><category scheme="http://www.blogger.com/atom/ns#" term="SOA" /><title>Handling Custom XML documents in Oracle B2B</title><content type="html">With Oracle B2B which is a part of Oracle SOA Suite 11g R1 you can handle / interchange all kind of messages between partners. Oracle B2B supports many Documents Protocols like off course your own, EDIFACT, &amp;nbsp;HL7, RosettaNet and many more. Besides this it also supports many interchange channel protocols like AS2, Email , FTP , File etc. &lt;br /&gt;
B2B can listen on those channels and tries to identify the document together with the sender and the receiver. For this you need to register the document and create an Agreement between the two parties. &amp;nbsp;On the partner level you need to register some identifiers like a common name or an email address.&lt;br /&gt;
When the document is identified it will be translated to xml and this document can send this to an output channel, this can be a JMS Queue on which Oracle SOA Suite can listen.&lt;br /&gt;
&lt;br /&gt;
In this blogpost I made a small example in which we have an employee xml message which is delivered to an folder, B2B has a listening Channel on this folder and tries to identify it ( uses xpath and examine the file name ).&amp;nbsp;This particular Agreement says it has to deliver the message to a Queue.&lt;br /&gt;
This Queue is read by Oracle SOA Suite and the composite generates an employee response message and&amp;nbsp;uses a B2B adapter to&amp;nbsp;deliver it back to Oracle B2B.&lt;br /&gt;
The document is identified by Oracle B2B and this Agreement has email as output and the response message is delivered as an attachment in the email.&lt;br /&gt;
&lt;br /&gt;
Off course this xml&amp;nbsp;use case&amp;nbsp;can also be done in Oracle SOA Suite but in my next blogpost we will make it more interesting by doing the same but then with an EDIFACT message where B2B can validate and transform the EDIFACT and even send an Acknowledgement based on the input message.&lt;br /&gt;
&lt;br /&gt;
We start with the employee and the response schemas.&lt;br /&gt;
&lt;br /&gt;
The employee schema&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-xJEdjdshYtg/T1zrKIVuFkI/AAAAAAAAE5Q/BJaDcVUOtIs/s1600/Screen+Shot+2012-03-11+at+7.08.19+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-xJEdjdshYtg/T1zrKIVuFkI/AAAAAAAAE5Q/BJaDcVUOtIs/s400/Screen+Shot+2012-03-11+at+7.08.19+PM.png" width="398" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The employee response schema&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-4riwm54lVgU/T1zrKqjtQTI/AAAAAAAAE5Y/0JHu_70fT6M/s1600/Screen+Shot+2012-03-11+at+7.08.47+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="362" src="http://1.bp.blogspot.com/-4riwm54lVgU/T1zrKqjtQTI/AAAAAAAAE5Y/0JHu_70fT6M/s400/Screen+Shot+2012-03-11+at+7.08.47+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I will use the user weblogic for all the B2B Administration so I need to assign the IntegrationAdministrators role to the weblogic user ( this can be done in the myrealm security realm).&lt;br /&gt;
&lt;br /&gt;
We start by register these XSD documents in the Administration menu of the B2B application.&lt;br /&gt;
this is the url of the B2B application located on the soa server http://soa_server:8001/b2bconsole/faces/login.jspx&lt;br /&gt;
&lt;br /&gt;
Select the Custom Document Protocol and click on the green plus button where we create a new Document Protocol Version called Employee_XSD&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/--Rfpi3-XTFk/T1zuGcsUwZI/AAAAAAAAE5g/RXaC1rtVAMA/s1600/Screen+Shot+2012-03-11+at+7.17.36+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/--Rfpi3-XTFk/T1zuGcsUwZI/AAAAAAAAE5g/RXaC1rtVAMA/s1600/Screen+Shot+2012-03-11+at+7.17.36+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-EPgvM4QkJ_I/T1zuG1AKWGI/AAAAAAAAE5o/s-OlvjH_n6w/s1600/Screen+Shot+2012-03-11+at+7.21.17+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="198" src="http://1.bp.blogspot.com/-EPgvM4QkJ_I/T1zuG1AKWGI/AAAAAAAAE5o/s-OlvjH_n6w/s400/Screen+Shot+2012-03-11+at+7.21.17+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Save and click on the new Type button where we create a Document Type Name.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-DfCqYMCAJb4/T1zuHi2hQLI/AAAAAAAAE5w/uRUfpQeZ5k8/s1600/Screen+Shot+2012-03-11+at+7.21.42+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="187" src="http://3.bp.blogspot.com/-DfCqYMCAJb4/T1zuHi2hQLI/AAAAAAAAE5w/uRUfpQeZ5k8/s400/Screen+Shot+2012-03-11+at+7.21.42+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
On this screen we can define our Defintion and where we need to upload the XSD.&lt;br /&gt;
Important for the identification of the message is that we need to provide the Identification Expression.&lt;br /&gt;
&lt;br /&gt;
In this case I search for the element called type and see if it has employee2 as value.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-AVPKvWDdoTE/T1zuInao2kI/AAAAAAAAE50/WgfW5tyWXcs/s1600/Screen+Shot+2012-03-11+at+7.24.43+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="302" src="http://4.bp.blogspot.com/-AVPKvWDdoTE/T1zuInao2kI/AAAAAAAAE50/WgfW5tyWXcs/s640/Screen+Shot+2012-03-11+at+7.24.43+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
We do the same steps for our employee response message.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-jmGbs36hCa4/T1zuJGshp9I/AAAAAAAAE58/EW0oSgg1x9o/s1600/Screen+Shot+2012-03-11+at+7.25.03+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="312" src="http://3.bp.blogspot.com/-jmGbs36hCa4/T1zuJGshp9I/AAAAAAAAE58/EW0oSgg1x9o/s640/Screen+Shot+2012-03-11+at+7.25.03+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we can move to the Partners registration part of the B2B application. Here we will create a partner, add some identifiers, register which documents can be handled by this partner and at last the output communication channel where we can define where the message will be send to.&lt;br /&gt;
&lt;br /&gt;
First click on MyCompany, this is the master partner ( basically this is you, the owner of the B2B server ).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-4NAr3YT8omE/T1zyFLtYhdI/AAAAAAAAE6I/3Ia6Xq6pMbE/s1600/Screen+Shot+2012-03-11+at+7.38.31+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="283" src="http://2.bp.blogspot.com/-4NAr3YT8omE/T1zyFLtYhdI/AAAAAAAAE6I/3Ia6Xq6pMbE/s640/Screen+Shot+2012-03-11+at+7.38.31+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
We need to define some Identifiers which can be used in the Partner Agreements.&lt;br /&gt;
First a Generic Identifier with MyCompany as value and an other one with server@local.nl as email address.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-UmUHeHALd7s/T1zyFs9sS2I/AAAAAAAAE6Q/XiF_USD8KYc/s1600/Screen+Shot+2012-03-11+at+7.39.06+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://4.bp.blogspot.com/-UmUHeHALd7s/T1zyFs9sS2I/AAAAAAAAE6Q/XiF_USD8KYc/s640/Screen+Shot+2012-03-11+at+7.39.06+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The Document and the roles this partner can handle, for EmployeeSchema de-select Sender and for the Response de-select Receiver.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-X1HkLlV0PKI/T1zyGQ0cJbI/AAAAAAAAE6U/JuwYrNuetm0/s1600/Screen+Shot+2012-03-11+at+7.39.36+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="490" src="http://3.bp.blogspot.com/-X1HkLlV0PKI/T1zyGQ0cJbI/AAAAAAAAE6U/JuwYrNuetm0/s640/Screen+Shot+2012-03-11+at+7.39.36+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
The employee message will be&amp;nbsp;delivered&amp;nbsp;to a JMS Queue so we need to define an output channel. Define a JMS channel and provide the JNDI names of the Connection Factory and the JMS Queue.&lt;br /&gt;
&lt;br /&gt;
We also need a Trading Partner so I created a Partner called CorpA. Here we also need to define some Generic Identifiers like CorpA and client@local.nl&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ya2Nty7mtD0/T1zyHVqyPHI/AAAAAAAAE6c/maGNnTNE7U8/s1600/Screen+Shot+2012-03-11+at+7.40.03+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="256" src="http://1.bp.blogspot.com/-ya2Nty7mtD0/T1zyHVqyPHI/AAAAAAAAE6c/maGNnTNE7U8/s640/Screen+Shot+2012-03-11+at+7.40.03+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The documents, in this case CorpA is the sender of the Employee message and receiver of Response message.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-HG9fJe8lBrs/T1zyH1JAe7I/AAAAAAAAE6o/0EFEHPVW6ng/s1600/Screen+Shot+2012-03-11+at+7.40.24+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="216" src="http://3.bp.blogspot.com/-HG9fJe8lBrs/T1zyH1JAe7I/AAAAAAAAE6o/0EFEHPVW6ng/s640/Screen+Shot+2012-03-11+at+7.40.24+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
The CorpA want to receive the response as an email attachment so we need to define an email channel where we define the mail server details.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-i9ol9xDlOjw/T1zyI5qS2NI/AAAAAAAAE6w/r-z-omw6lMg/s1600/Screen+Shot+2012-03-11+at+7.40.42+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://4.bp.blogspot.com/-i9ol9xDlOjw/T1zyI5qS2NI/AAAAAAAAE6w/r-z-omw6lMg/s640/Screen+Shot+2012-03-11+at+7.40.42+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Next we need to define agreements between CorpA and MyCompany and back.&lt;br /&gt;
Select the CorpA Partner and create an Agreement&lt;br /&gt;
&lt;br /&gt;
The incoming employee message agreement.&lt;br /&gt;
&lt;br /&gt;
Here we need to select the Employee document and on the MyCompany side we need to choose the JMS channel.&amp;nbsp;Click Save and Deploy the agreement.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-XTUq9q9gSSQ/T1z68oOpenI/AAAAAAAAE64/o1WB2Xkz6Gs/s1600/Screen+Shot+2012-03-11+at+8.18.41+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="302" src="http://4.bp.blogspot.com/-XTUq9q9gSSQ/T1z68oOpenI/AAAAAAAAE64/o1WB2Xkz6Gs/s640/Screen+Shot+2012-03-11+at+8.18.41+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
In the response message agreement we need to use the Response document and on the CorpA side, select &amp;nbsp;the email channel. &amp;nbsp;Also on the the MyCompany side add the Email identifier so B2B knows who is the sender of the email. &amp;nbsp;Click Save and Deploy the agreement.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-VZ3sd-fmQ0M/T1z68zFxc-I/AAAAAAAAE68/q8fBUOJrYRI/s1600/Screen+Shot+2012-03-11+at+8.19.16+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="338" src="http://1.bp.blogspot.com/-VZ3sd-fmQ0M/T1z68zFxc-I/AAAAAAAAE68/q8fBUOJrYRI/s640/Screen+Shot+2012-03-11+at+8.19.16+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
The next part is Oracle SOA Suite which receives the employee message and creates the response message.&lt;br /&gt;
&lt;br /&gt;
Drag the B2B Adapter to the Exposed Services side of the composite.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Choose JMS as B2B integration type.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Select your AppServer Connection -&amp;gt; The weblogic domain which hosts the SOA &amp;amp; B2B software.&lt;/li&gt;
&lt;li&gt;Receive&lt;/li&gt;
&lt;li&gt;Click Next on the Basic Tab&lt;/li&gt;
&lt;li&gt;Open the Custom Document Definition and select the EmployeeSchema&lt;/li&gt;
&lt;li&gt;Select Oracle WebLogic JMS in OEMS&lt;/li&gt;
&lt;li&gt;Select your AppServer Connection -&amp;gt; The weblogic domain which hosts the SOA &amp;amp; B2B software.&lt;/li&gt;
&lt;li&gt;Lookup the Queue in the Destination name.&lt;/li&gt;
&lt;li&gt;Create an EIS connection with this name in the JMS Resource Adapter plan.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
Drag the B2B Adapter to the External References side of the composite.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Choose Default as B2B integration type.&lt;/li&gt;
&lt;li&gt;Select your AppServer Connection -&amp;gt; The weblogic domain which hosts the SOA &amp;amp; B2B software.&lt;/li&gt;
&lt;li&gt;Send&lt;/li&gt;
&lt;li&gt;Click Next on the Basic Tab&lt;/li&gt;
&lt;li&gt;Open the Custom Document Definition and select the ResponseSchema&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;br /&gt;
Add an Mediator and wire the two adapters to this mediator.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Add a transformation where we will create the response message.&lt;/li&gt;
&lt;li&gt;Add the B2B Assign Values so B2B can detect the agreement.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-AwvzIGM4O5E/T10C6p-EpcI/AAAAAAAAE7I/-xn0GZrVZ_I/s1600/Screen+Shot+2012-03-11+at+8.44.01+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="344" src="http://3.bp.blogspot.com/-AwvzIGM4O5E/T10C6p-EpcI/AAAAAAAAE7I/-xn0GZrVZ_I/s640/Screen+Shot+2012-03-11+at+8.44.01+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
You need to provide the following Assigns&lt;br /&gt;
&lt;br /&gt;
b2b.fromTradingPartnerId -&amp;gt; MyCompany&lt;br /&gt;
b2b.fromTradingPartnerType -&amp;gt; Name&lt;br /&gt;
&lt;br /&gt;
b2b.toTradingPartnerId -&amp;gt; CorpA&lt;br /&gt;
b2b.toTradingPartnerType -&amp;gt; Name&lt;br /&gt;
&lt;div&gt;
b2b.documentTypeName -&amp;gt;&amp;nbsp;EmployeeResponseType&lt;/div&gt;
&lt;div&gt;
b2b.documentProtocolName -&amp;gt; Custom&lt;/div&gt;
&lt;br /&gt;
b2b.documentProtocolVersion -&amp;gt; Employee_XSD&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-zUyqjQAUCFk/T10C7IOI-uI/AAAAAAAAE7M/bnVb8DKUJtU/s1600/Screen+Shot+2012-03-11+at+8.47.06+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="242" src="http://3.bp.blogspot.com/-zUyqjQAUCFk/T10C7IOI-uI/AAAAAAAAE7M/bnVb8DKUJtU/s640/Screen+Shot+2012-03-11+at+8.47.06+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br class="Apple-interchange-newline" /&gt;Deploy the composite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back to B2B&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The last part before we can test this B2B example is to configure a listening channel which polls for new messages.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
We need to go back to the Administration Tab of the B2B application.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Add a file channel and provide the Folder name.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Important we need to define a filename format so B2B can detect the sender. ( my custom document does not have an identification part )&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-wp6-mQgYKzc/T10EIAJgZZI/AAAAAAAAE7Y/jb6j5Q4VxB0/s1600/Screen+Shot+2012-03-11+at+8.59.03+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="378" src="http://3.bp.blogspot.com/-wp6-mQgYKzc/T10EIAJgZZI/AAAAAAAAE7Y/jb6j5Q4VxB0/s640/Screen+Shot+2012-03-11+at+8.59.03+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Now we can add a xml document to this MyCompany in folder and must be called CorpA.xml&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This is the example document with employee2 as value for the element type (else the document won't be detected).&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-glCL_89o1rA/T10HO0oV6PI/AAAAAAAAE7g/DToa1kPDiGQ/s1600/Screen+Shot+2012-03-11+at+9.11.02+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="394" src="http://1.bp.blogspot.com/-glCL_89o1rA/T10HO0oV6PI/AAAAAAAAE7g/DToa1kPDiGQ/s640/Screen+Shot+2012-03-11+at+9.11.02+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;We can see the messages and the progress in the Reports part of the B2B Application.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-OWO9eOaFe2U/T10HPeNAhnI/AAAAAAAAE7k/0AGBuoDh3Hg/s1600/Screen+Shot+2012-03-11+at+9.11.24+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="166" src="http://1.bp.blogspot.com/-OWO9eOaFe2U/T10HPeNAhnI/AAAAAAAAE7k/0AGBuoDh3Hg/s640/Screen+Shot+2012-03-11+at+9.11.24+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And the final result where we got an email with the employee response.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-m3AbDb53SgU/T10HP77G2iI/AAAAAAAAE7s/7Of5yD7W5AI/s1600/Screen+Shot+2012-03-11+at+9.12.11+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="484" src="http://2.bp.blogspot.com/-m3AbDb53SgU/T10HP77G2iI/AAAAAAAAE7s/7Of5yD7W5AI/s640/Screen+Shot+2012-03-11+at+9.12.11+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;In the next blogpost we will add some EDIFACT messages to B2B.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-2452663160683781581?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/2452663160683781581/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2012/03/handling-custom-xml-documents-in-oracle.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/2452663160683781581?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/2452663160683781581?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/iYhWwwfZAoo/handling-custom-xml-documents-in-oracle.html" title="Handling Custom XML documents in Oracle B2B" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-xJEdjdshYtg/T1zrKIVuFkI/AAAAAAAAE5Q/BJaDcVUOtIs/s72-c/Screen+Shot+2012-03-11+at+7.08.19+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://biemond.blogspot.com/2012/03/handling-custom-xml-documents-in-oracle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AAQnYzeCp7ImA9WhVTE0U.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-9023530918999754852</id><published>2012-02-28T00:35:00.001+01:00</published><updated>2012-02-28T00:35:43.880+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-28T00:35:43.880+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="adf" /><category scheme="http://www.blogger.com/atom/ns#" term="web services" /><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g" /><title>Changing your ADF Connections in Enterprise Manager with PS5</title><content type="html">With Patch Set 5 of Fusion Middleware you can finally change your ADF connections ( like a Web Service connection ) in the Enterprise Manager Web Application. So you can make one application deployment and deploy it to acceptance and production.&lt;br /&gt;
In many cases ADF and JDeveloper automatically creates connections ( like a ADF WS DataControl ) &amp;nbsp;which could not be changed after deployment, you need to do this before deployment or change the EAR.&lt;br /&gt;
With PS5 you can change these connections in the "Configure ADF Connections" menu option on the application deployment ( EM ). This is also possible with WLST where you can change and persist the attributes of the application connection MBean.&lt;br /&gt;
&lt;br /&gt;
If you want to do this you need to do the following steps&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Have a WebLogic domain which has a configured MDS repository.&lt;/li&gt;
&lt;li&gt;Add some listeners to the web.xml ( for the MBean support).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Enable MDS ( else the connection details won't be persisted ).&lt;/li&gt;
&lt;li&gt;Add an ADF Connection on the Web Service entry when you use a Web Service Proxy. &amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
In this blogpost I will show you the steps how to make this work and change in this example the endpoint of a web service.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;We start for example by adding an ADF WS DataControl.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Y6sgOHolmAI/T0wK96GPlqI/AAAAAAAAE2I/QR6CRMo9DZ4/s1600/Screen+Shot+2012-02-27+at+10.01.33+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="472" src="http://1.bp.blogspot.com/-Y6sgOHolmAI/T0wK96GPlqI/AAAAAAAAE2I/QR6CRMo9DZ4/s640/Screen+Shot+2012-02-27+at+10.01.33+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This will always add a ws connection to the connection.xml file in the ADF META-INF Folder.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-uUCt4KvHI8I/T0wK-vFkzjI/AAAAAAAAE2M/l-C_7rLAnBE/s1600/Screen+Shot+2012-02-27+at+10.03.05+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://2.bp.blogspot.com/-uUCt4KvHI8I/T0wK-vFkzjI/AAAAAAAAE2M/l-C_7rLAnBE/s640/Screen+Shot+2012-02-27+at+10.03.05+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This is also possible on a Web Service Proxy when you don't use an ADF WS DataControl.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-PZswbvUvFKc/T0wLEj4Z6QI/AAAAAAAAE3U/crsDE-D7RpM/s1600/Screen+Shot+2012-02-27+at+8.23.19+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://2.bp.blogspot.com/-PZswbvUvFKc/T0wLEj4Z6QI/AAAAAAAAE3U/crsDE-D7RpM/s640/Screen+Shot+2012-02-27+at+8.23.19+PM.png" width="412" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the service and right click on Create ADF Web Service Connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-6-jiaqF6O3I/T0wLFc2G1pI/AAAAAAAAE3c/hUROozzhp8E/s1600/Screen+Shot+2012-02-27+at+8.23.36+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="364" src="http://2.bp.blogspot.com/-6-jiaqF6O3I/T0wLFc2G1pI/AAAAAAAAE3c/hUROozzhp8E/s640/Screen+Shot+2012-02-27+at+8.23.36+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Click on OK&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-TEVaQX0N4o8/T0wLFvVa2dI/AAAAAAAAE3k/C2ZV5-PFXe4/s1600/Screen+Shot+2012-02-27+at+8.24.11+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="334" src="http://2.bp.blogspot.com/-TEVaQX0N4o8/T0wLFvVa2dI/AAAAAAAAE3k/C2ZV5-PFXe4/s640/Screen+Shot+2012-02-27+at+8.24.11+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
Use the service and finish your Application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Prepare your Application for allowing to change your ADF Connections.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
First we need to add the ADFConnectionLifeCycleCallBack and the ADFConfigLifeCycleCallBack listeners &amp;nbsp;to the web.xml. This enables the ADF Connection Mbean support.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-uGWRUsrYG7Y/T0wLGW_Xm-I/AAAAAAAAE3s/YkZONsGkmnQ/s1600/Screen+Shot+2012-02-27+at+9.20.23+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="202" src="http://3.bp.blogspot.com/-uGWRUsrYG7Y/T0wLGW_Xm-I/AAAAAAAAE3s/YkZONsGkmnQ/s640/Screen+Shot+2012-02-27+at+9.20.23+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Enable User Customizations ( across sessions using MDS ) and Enable Seeded Customizations.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-dDq7nx2VoJ8/T0wLDPel6vI/AAAAAAAAE3E/2TCfY1njeYg/s1600/Screen+Shot+2012-02-27+at+11.20.37+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="450" src="http://2.bp.blogspot.com/-dDq7nx2VoJ8/T0wLDPel6vI/AAAAAAAAE3E/2TCfY1njeYg/s640/Screen+Shot+2012-02-27+at+11.20.37+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;We are ready to deploy our application&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
You should see the MDS and Connections Tabs when you deploy from JDeveloper.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-L7GSpvYa5Gc/T0wLDtJrJOI/AAAAAAAAE3Q/aTIFm-Awbws/s1600/Screen+Shot+2012-02-27+at+11.21.10+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="348" src="http://3.bp.blogspot.com/-L7GSpvYa5Gc/T0wLDtJrJOI/AAAAAAAAE3Q/aTIFm-Awbws/s400/Screen+Shot+2012-02-27+at+11.21.10+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Optional look at the connections.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-h8mChyq5IRE/T0wK_CWQ9OI/AAAAAAAAE2Q/e7q2Dqtzjh0/s1600/Screen+Shot+2012-02-27+at+10.05.23+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="352" src="http://1.bp.blogspot.com/-h8mChyq5IRE/T0wK_CWQ9OI/AAAAAAAAE2Q/e7q2Dqtzjh0/s400/Screen+Shot+2012-02-27+at+10.05.23+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-SrJiDHTIHFE/T0wK_mOphNI/AAAAAAAAE2c/caJGkuaZu9I/s1600/Screen+Shot+2012-02-27+at+10.05.38+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-SrJiDHTIHFE/T0wK_mOphNI/AAAAAAAAE2c/caJGkuaZu9I/s400/Screen+Shot+2012-02-27+at+10.05.38+PM.png" width="397" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;After deployment we change the WSDL URL and endpoint in the Enterprise Manager.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
First select your application deployment.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-4Tp7T6gUj9I/T0wLIyZ4hvI/AAAAAAAAE4E/ra3qkp9XR5Q/s1600/adf_conn.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="486" src="http://2.bp.blogspot.com/-4Tp7T6gUj9I/T0wLIyZ4hvI/AAAAAAAAE4E/ra3qkp9XR5Q/s640/adf_conn.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Here we can see our connection. Because we enabled MDS on the application we can change the connection else you won't see the Edit , Delete buttons.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-hgwQRz4athw/T0wLAavLVRI/AAAAAAAAE2k/-S7YDgD3c8c/s1600/Screen+Shot+2012-02-27+at+11.12.59+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="204" src="http://4.bp.blogspot.com/-hgwQRz4athw/T0wLAavLVRI/AAAAAAAAE2k/-S7YDgD3c8c/s640/Screen+Shot+2012-02-27+at+11.12.59+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Change the WSDL URL by clicking on the Edit button.&amp;nbsp;Click on OK and apply the changes. The new URL is stored in the MDS repository.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-HJlgh0b0QA4/T0wLA7LDi0I/AAAAAAAAE2s/F8MnqzEkvTw/s1600/Screen+Shot+2012-02-27+at+11.13.23+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="146" src="http://2.bp.blogspot.com/-HJlgh0b0QA4/T0wLA7LDi0I/AAAAAAAAE2s/F8MnqzEkvTw/s640/Screen+Shot+2012-02-27+at+11.13.23+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Also click on Advanced Connection Configuration where we also need to change the endpoint address and click on Apply.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-EONAzpyIJWo/T0wLBYpwLpI/AAAAAAAAE20/oVMeZJkITwU/s1600/Screen+Shot+2012-02-27+at+11.13.58+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="272" src="http://1.bp.blogspot.com/-EONAzpyIJWo/T0wLBYpwLpI/AAAAAAAAE20/oVMeZJkITwU/s640/Screen+Shot+2012-02-27+at+11.13.58+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
We are ready to test the application with the new WSDL url and endpoint.&lt;br /&gt;
&lt;br /&gt;
Optional&lt;br /&gt;
&lt;b&gt;You can also change these with WLST&lt;/b&gt;,&lt;br /&gt;
for this you need to go the System MBean Browser of EM to find your mbean for example oracle.adf.share.connections:ApplicationName=YourApp,Location=WLSserver,name=ADFConnections,beantype=Runtime,type=ADFConnections,Application=YourApp&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-f1k3_CdvoVY/T0wLG3yD39I/AAAAAAAAE34/Ty5uU6x7tko/s1600/Screen+Shot+2012-02-27+at+9.33.15+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-f1k3_CdvoVY/T0wLG3yD39I/AAAAAAAAE34/Ty5uU6x7tko/s400/Screen+Shot+2012-02-27+at+9.33.15+PM.png" width="275" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-9023530918999754852?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/9023530918999754852/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2012/02/changing-your-adf-connections-in.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/9023530918999754852?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/9023530918999754852?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/gT8BnWpgejc/changing-your-adf-connections-in.html" title="Changing your ADF Connections in Enterprise Manager with PS5" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-Y6sgOHolmAI/T0wK96GPlqI/AAAAAAAAE2I/QR6CRMo9DZ4/s72-c/Screen+Shot+2012-02-27+at+10.01.33+PM.png" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://biemond.blogspot.com/2012/02/changing-your-adf-connections-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUARHg5cSp7ImA9WhVTE0U.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-5663892929664412146</id><published>2012-02-25T15:42:00.003+01:00</published><updated>2012-02-27T23:04:05.629+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-27T23:04:05.629+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic" /><category scheme="http://www.blogger.com/atom/ns#" term="adf" /><category scheme="http://www.blogger.com/atom/ns#" term="OWSM" /><category scheme="http://www.blogger.com/atom/ns#" term="MDS" /><title>Use MySQL 5.5 as MDS database repository in FMW 11g R1 PS5</title><content type="html">One of the new features of Fusion Middleware 11G R1&amp;nbsp;PatchSet 5 (PS5)&amp;nbsp;is the support for MySQL 5.5 as Meta Data Services (MDS) repository. This means you can use MySQL database as a store for ADF&amp;nbsp;personifications&amp;nbsp;or as policies store for your OWSM domain. For MDS you just need a small database which store these configurations. For the SOA infra repository ( not supported on MySQL ) &amp;nbsp;I think the Oracle Database will always be the best choice ( tuning, transactions, RAC ). &lt;br /&gt;
This way you add the MySQL database on the same machine as your WebLogic Domain without taking a lot of machine resources, less maintenance or thinking about licensing costs. &lt;br /&gt;
&lt;br /&gt;
In this blogpost I will show you the steps how to create a MDS repository for OWSM and ADF. &amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
First we start with downloading MySQL 5.5 and install it on a machine. I will use InnoDb as database engine and UTF8 as character set ( this is probably best tested by Oracle).&lt;br /&gt;
&lt;br /&gt;
Add or change the following database settings in the my.cnf of the MySQL database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
innodb_file_per_table&lt;br /&gt;
innodb_file_format=Barracuda&lt;br /&gt;
innodb_large_prefix&lt;br /&gt;
log_bin_trust_function_creators&lt;br /&gt;
&lt;br /&gt;
sql-mode=NO_BACKSLASH_ESCAPES&lt;br /&gt;
&lt;div&gt;
max_sp_recursion_depth=10&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
The first 4 settings are required by the RCU installer ( Repository Creation Utility )&lt;br /&gt;
The&amp;nbsp;sql-mode&amp;nbsp;is necessary in OWSM else you will get a SQL error ( escape ' \' &amp;nbsp;on a like ) when you start the WebLogic Domain.&lt;br /&gt;
the max_sp_recursion_depth=10 else you will get this error&amp;nbsp;Recursive limit 0 (as set by the max_sp_recursion_depth variable) was exceeded for routine mds_internal_createPackageRecursive&lt;br /&gt;
&lt;br /&gt;
Start the RCU installer and select MySQL Database as database type. I will use root as username cause it needs to create a table ( schema_version_registry) &amp;nbsp;in the test database &amp;nbsp;and it wants to create a new database.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-AZZ_pAvrY1M/T0jhohqrIiI/AAAAAAAAE0o/7FjIIBDpy2U/s1600/Screen+Shot+2012-02-23+at+12.39.50+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="475" src="http://2.bp.blogspot.com/-AZZ_pAvrY1M/T0jhohqrIiI/AAAAAAAAE0o/7FjIIBDpy2U/s640/Screen+Shot+2012-02-23+at+12.39.50+AM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
MySQL does not support all options but for us, the Metadata Services option is enough. Besides MDS, MySQL is also supports ODI ( Oracle Data Integrator ) and Enterprise Performance Management, I personally don't know these products so I can't test them for you .&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-ig8M_mAdCRg/T0jhp8GaZMI/AAAAAAAAE0s/3QyeWsr9Jg0/s1600/Screen+Shot+2012-02-23+at+12.40.37+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="482" src="http://3.bp.blogspot.com/-ig8M_mAdCRg/T0jhp8GaZMI/AAAAAAAAE0s/3QyeWsr9Jg0/s640/Screen+Shot+2012-02-23+at+12.40.37+AM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
RCU creates a dev_mds database and an user dev_mds user.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-NJLfNuKVAmU/T0jhqi6jy2I/AAAAAAAAE00/BfK7rY6txes/s1600/Screen+Shot+2012-02-23+at+12.40.55+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/-NJLfNuKVAmU/T0jhqi6jy2I/AAAAAAAAE00/BfK7rY6txes/s640/Screen+Shot+2012-02-23+at+12.40.55+AM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-r9G9ksfa9xM/T0jhrPu94zI/AAAAAAAAE08/BYijZm9ckEU/s1600/Screen+Shot+2012-02-23+at+12.41.11+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/-r9G9ksfa9xM/T0jhrPu94zI/AAAAAAAAE08/BYijZm9ckEU/s640/Screen+Shot+2012-02-23+at+12.41.11+AM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
It will create the following tables&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-tK7I8P0ytNY/T0jhr3Ti3TI/AAAAAAAAE1E/1doyxJCfkds/s1600/Screen+Shot+2012-02-23+at+12.43.04+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-tK7I8P0ytNY/T0jhr3Ti3TI/AAAAAAAAE1E/1doyxJCfkds/s400/Screen+Shot+2012-02-23+at+12.43.04+AM.png" width="313" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
For OWSM, I also created a dev1_mds database with the RCU which I will use in the WebLogic Domain creation ( EM, JRF and OWSM as domain options ) . I used the dev1_mds as database and DEV1_MDS as MySQL username&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-Nz3vDhsabKg/T0jhv8vpSvI/AAAAAAAAE10/Y0Q5ASRsnCk/s1600/Screen+Shot+2012-02-25+at+1.30.19+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="456" src="http://3.bp.blogspot.com/-Nz3vDhsabKg/T0jhv8vpSvI/AAAAAAAAE10/Y0Q5ASRsnCk/s640/Screen+Shot+2012-02-25+at+1.30.19+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-uBW2yuFMKic/T0jhwrHfP-I/AAAAAAAAE2A/DVhhJCofm4k/s1600/Screen+Shot+2012-02-25+at+1.31.02+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="456" src="http://3.bp.blogspot.com/-uBW2yuFMKic/T0jhwrHfP-I/AAAAAAAAE2A/DVhhJCofm4k/s640/Screen+Shot+2012-02-25+at+1.31.02+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Now we can start the OWSM WebLogic domain and deploy our protected Web Services.&lt;br /&gt;
&lt;br /&gt;
We can also use it in ADF, for this we need to open the Enterprise Manager application, select your domain and go to Metadata Repositories. Click on Register.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-FreVG2hfWKQ/T0jhhZog_1I/AAAAAAAAEzg/_HjRrHp0BF0/s1600/Screen+Shot+2012-02-23+at+11.06.08+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="262" src="http://4.bp.blogspot.com/-FreVG2hfWKQ/T0jhhZog_1I/AAAAAAAAEzg/_HjRrHp0BF0/s640/Screen+Shot+2012-02-23+at+11.06.08+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I create a new MySQL user which has access to the test and dev_mds database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
grant all on dev_mds.* to mds@'%' identified by 'welcome';&lt;br /&gt;
grant all on test.* to mds@'%' identified by 'welcome';&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
the test database contains the RCU&amp;nbsp;schema_version_registry table which contains all the entries.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
use mds as username and test as service name.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-a062EHVFoQQ/T0jhknfv2iI/AAAAAAAAE0I/CvnBcJR1UuE/s1600/Screen+Shot+2012-02-23+at+11.25.25+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="328" src="http://1.bp.blogspot.com/-a062EHVFoQQ/T0jhknfv2iI/AAAAAAAAE0I/CvnBcJR1UuE/s640/Screen+Shot+2012-02-23+at+11.25.25+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
Now you can register &amp;nbsp;you own MDS database repository.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ZISK-9hp1Ug/T0jhmYzlKdI/AAAAAAAAE0M/m7elbiRpkHw/s1600/Screen+Shot+2012-02-23+at+11.30.28+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="222" src="http://1.bp.blogspot.com/-ZISK-9hp1Ug/T0jhmYzlKdI/AAAAAAAAE0M/m7elbiRpkHw/s640/Screen+Shot+2012-02-23+at+11.30.28+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
That's all.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-5663892929664412146?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/5663892929664412146/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2012/02/use-mysql-55-as-mds-database-repository.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/5663892929664412146?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/5663892929664412146?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/O0ZA6pMD9Fk/use-mysql-55-as-mds-database-repository.html" title="Use MySQL 5.5 as MDS database repository in FMW 11g R1 PS5" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-AZZ_pAvrY1M/T0jhohqrIiI/AAAAAAAAE0o/7FjIIBDpy2U/s72-c/Screen+Shot+2012-02-23+at+12.39.50+AM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://biemond.blogspot.com/2012/02/use-mysql-55-as-mds-database-repository.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cFQ38-fyp7ImA9WhRaF0o.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-7527825934307835412</id><published>2012-02-20T21:50:00.001+01:00</published><updated>2012-02-20T21:50:12.157+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-20T21:50:12.157+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic" /><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g soa suite" /><category scheme="http://www.blogger.com/atom/ns#" term="SOA" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Service Bus" /><title>Configure WebLogic Resource Adapters with ANT</title><content type="html">When you use a JCA adapter in Oracle SOA Suite or OSB then you know that you need to configure a plan of some WebLogic Resource Adapter. &amp;nbsp;With this ANT script I tried to make this an easy task for you and which you can repeat on different WebLogic Domains. This ANT script can easily add multiple EIS entries to the following adapters: DbAdapter, AqAdapter and JmsAdapter in just one run. After these changes to the resource plans this script will redeploy only the changed Resource Adapter. &lt;br /&gt;
&lt;br /&gt;
Special thanks for my colleague Michel Schildmeijer for inspiring me to make this flexible script and off course for the necessary WLST code.&lt;br /&gt;
&lt;br /&gt;
Important to know.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Run this script on the AdminServer&lt;/b&gt;, else it won't find the Resource Adapter Plans&lt;/li&gt;
&lt;li&gt;&lt;b&gt;First you need to create a Plan for the 3 Resource Adapters (Db,Aq,Jms)&lt;/b&gt; and add a dummy entry, think how you name it and where you put it.&lt;/li&gt;
&lt;li&gt;When a plan is changed and you have a soa cluster or the soa weblogic instance is running on a different server then you need to copy the plan to all servers or put it on a shared storage. &amp;nbsp; &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
If you don't like this then you can always create new Resource Adapters by following&lt;a href="http://biemond.blogspot.com/2010/11/deploy-your-aq-db-or-jms-resource.html"&gt; this blogpost&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Let's explain how it works&lt;br /&gt;
&lt;br /&gt;
first you need to change some variables in this build.properties&lt;br /&gt;
&lt;br /&gt;
default this scripts runs against the weblogic dev settings. &amp;nbsp;You can change this to your own and configure the dev entries ( dev entries at the bottom of the build.properties )&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;wls.environment=dev&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Where are the adapter rars located in your FMW domain, this can be in your SOA or OSB Home of the FMW domain.&lt;br /&gt;
&lt;b&gt;connectorLocation=C:/oracle/MiddlewarePS3/Oracle_SOA1/soa/connectors/&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Then add your own EIS entries, these ones in this var will be added to weblogic.&lt;br /&gt;
&lt;b&gt;resourceAdapterEntries=hrDB,hrAQ,cf1JMS,cf2JMS&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Think if you need to set the XA or Not XA datasource property or in Jms the connectionFactoryLocation.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
# AQ entry&lt;/div&gt;
&lt;div&gt;
hrAQ.type=aq&lt;/div&gt;
&lt;div&gt;
hrAQ.eisName=eis/AQ/hr2&lt;/div&gt;
&lt;div&gt;
hrAQ.property=&lt;b&gt;xADataSourceName&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
hrAQ.value=jdbc/hrDS&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
# DB entry&lt;/div&gt;
&lt;div&gt;
hrDB.type=db&lt;/div&gt;
&lt;div&gt;
hrDB.eisName=eis/DB/hr2&lt;/div&gt;
&lt;div&gt;
hrDB.property=&lt;b&gt;dataSourceName&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
hrDB.value=jdbc/hrDS&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
# JMS entries&lt;/div&gt;
&lt;div&gt;
cf1JMS.type=jms&lt;/div&gt;
&lt;div&gt;
cf1JMS.eisName=eis/JMS/hr3&lt;/div&gt;
&lt;div&gt;
cf1JMS.property=&lt;b&gt;ConnectionFactoryLocation&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
cf1JMS.value=jms/MyCF&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
After you can run the ANT script&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;ant -f build.xml createResourceAdapterEntries&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Here you can download the code on github&lt;/div&gt;
&lt;div&gt;
&lt;a href="https://github.com/biemond/soa_tools/tree/master/ant_resourceAdapter"&gt;https://github.com/biemond/soa_tools/tree/master/ant_resourceAdapter&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Here is the whole build.properties file&amp;nbsp;&lt;/div&gt;
&lt;script src="https://gist.github.com/1871255.js?file=build.properties"&gt;
&lt;/script&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The wlst part with the wlRedeployResourceAdapter and&amp;nbsp;wlCreateResourceAdapter macrodefs&lt;/div&gt;
&lt;script src="https://gist.github.com/1871266.js?file=wlstTaskDefs.xml"&gt;
&lt;/script&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
And at last the build.xml&lt;/div&gt;
&lt;div&gt;
&lt;script src="https://gist.github.com/1871301.js?file=build.xml"&gt;
&lt;/script&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-7527825934307835412?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/7527825934307835412/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2012/02/configure-weblogic-resource-adapters.html#comment-form" title="12 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/7527825934307835412?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/7527825934307835412?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/8f0DjlBFnoc/configure-weblogic-resource-adapters.html" title="Configure WebLogic Resource Adapters with ANT" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><thr:total>12</thr:total><feedburner:origLink>http://biemond.blogspot.com/2012/02/configure-weblogic-resource-adapters.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cHRHk9eip7ImA9WhRaFUs.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-826695849339017083</id><published>2012-02-18T13:43:00.003+01:00</published><updated>2012-02-18T13:43:55.762+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-18T13:43:55.762+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic" /><category scheme="http://www.blogger.com/atom/ns#" term="adf" /><category scheme="http://www.blogger.com/atom/ns#" term="web services" /><category scheme="http://www.blogger.com/atom/ns#" term="OWSM" /><category scheme="http://www.blogger.com/atom/ns#" term="adf security" /><title>Identity propagation with OWSM</title><content type="html">OWSM allows you to pass on the identity of the authenticated user to your OWSM protected web service ( thanks to OPSS ), this username can then be used by your service. This will work on one or between different WebLogic domains. Off course when you don't want to use OWSM you can always use Oracle Access Manager OAM which can do the same. &lt;br /&gt;
For example on the client side you can have an web application which uses ADF Security or Container security, the application calls an web service with the help of a ws proxy client or an ADF ws datacontrol. The web service can be a SOA Suite, OSB proxy or a JAX-WS service.&lt;br /&gt;
To make this work we need to use SAML policies, SAML allows us to do identity propagation, other policies won't work because you need to have the password of the authenticated user which you don't have.&lt;br /&gt;
Before I show you, how this works, you need to have a SAML OWSM environment, I already did this in &lt;a href="http://biemond.blogspot.com/2011/08/do-saml-with-owsm.html"&gt;this blogpost Do SAML with OWSM&lt;/a&gt;&amp;nbsp;, in this I generated some keystores and configured OWSM &amp;nbsp;on all the WebLogic domains and deployed a web service which has the oracle server wss11_saml_token_with_message_protection_service_policy. In my case I used JAX-WS but it also works on SOA Suite and OSB. When you want to do this on different WebLogic domains then you need to make sure that the user identities exists on both domains ( or you can enable virtual users ).&lt;br /&gt;
On the client side which will be in this case an ADF Web Application which is protected by ADF Security.&amp;nbsp;In this application I will use a ADF WS Datacontrol on which we will add the SAML client policy wss11_saml_token_with_message_protection_client_policy.&lt;br /&gt;
&lt;br /&gt;
Create the ADF WS Datacontrol. Select the DataControls.dcx file and select the service in the Structure window.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-Hd6YXrAfF_Y/Tz-Y3pvaTpI/AAAAAAAAEy8/BTw8YuwBp24/s1600/Screen+Shot+2012-02-18+at+1.10.04+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-Hd6YXrAfF_Y/Tz-Y3pvaTpI/AAAAAAAAEy8/BTw8YuwBp24/s400/Screen+Shot+2012-02-18+at+1.10.04+PM.png" width="287" /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;Click on "Define Web Service Security".&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Mq-jh6IQ0QE/Tz-Y4LKAXtI/AAAAAAAAEzA/YTZibnsMCNg/s1600/Screen+Shot+2012-02-18+at+1.15.18+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="222" src="http://1.bp.blogspot.com/-Mq-jh6IQ0QE/Tz-Y4LKAXtI/AAAAAAAAEzA/YTZibnsMCNg/s320/Screen+Shot+2012-02-18+at+1.15.18+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Select oracle/wss11_saml_token_with_message_protection_client_policy in the security Tab&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-6oT6ZGldWs8/Tz-Y4-9ldRI/AAAAAAAAEzM/7Kwaw2BPnk4/s1600/Screen+Shot+2012-02-18+at+1.23.14+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="534" src="http://3.bp.blogspot.com/-6oT6ZGldWs8/Tz-Y4-9ldRI/AAAAAAAAEzM/7Kwaw2BPnk4/s640/Screen+Shot+2012-02-18+at+1.23.14+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Override Properties,&lt;br /&gt;
these settings will work on the SOA Suite server, if you want to use this on the saml server then you need to use www.amis.nl as saml.issuer.name and samlkey as keystore.recipient.alias.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-zqB7toX06gc/Tz-Y6frKB7I/AAAAAAAAEzU/r0-dHFjVcYI/s1600/Screen+Shot+2012-02-18+at+1.24.03+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="317" src="http://4.bp.blogspot.com/-zqB7toX06gc/Tz-Y6frKB7I/AAAAAAAAEzU/r0-dHFjVcYI/s400/Screen+Shot+2012-02-18+at+1.24.03+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Deploy the application to the WebLogic Server and you are ready to go.&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-826695849339017083?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/826695849339017083/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2012/02/identity-propagation-with-owsm.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/826695849339017083?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/826695849339017083?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/fUqk1eHSOHM/identity-propagation-with-owsm.html" title="Identity propagation with OWSM" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-Hd6YXrAfF_Y/Tz-Y3pvaTpI/AAAAAAAAEy8/BTw8YuwBp24/s72-c/Screen+Shot+2012-02-18+at+1.10.04+PM.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://biemond.blogspot.com/2012/02/identity-propagation-with-owsm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIESXo9fSp7ImA9WhVQGUQ.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-3992149864510069053</id><published>2012-01-01T18:18:00.000+01:00</published><updated>2012-04-09T19:28:28.465+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-09T19:28:28.465+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic" /><category scheme="http://www.blogger.com/atom/ns#" term="OEPE" /><category scheme="http://www.blogger.com/atom/ns#" term="jsf" /><title>JSF 2.0 Managed Bean Annotations and CDI on WebLogic 12c</title><content type="html">WebLogic 12c now supports Java 6 so we can now try out the JSF 2.0 Managed Bean annotations together with CDI JSR-299.&amp;nbsp;In this blogpost&amp;nbsp;I will use OEPE 12c as my IDE and deploy everything on WebLogic 12c. Off course I will tell you my experiences to get all this working in Eclipse and WebLogic 12c.&lt;br /&gt;
&lt;br /&gt;
First let's start with the JSF 2.0 Managed Bean Annotations.&lt;br /&gt;
&lt;br /&gt;
We need to remove the managed bean&amp;nbsp;definitions&amp;nbsp;from the faces-config.xml file. Then make sure that you don't use the  metadata-complete attribute ( metadata-complete="true" ) on the faces-config element, this will disable the search for JSF Managed Beans.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-Yo7S2-Wh01k/TwCP7jPRwFI/AAAAAAAAEq8/E-v5BMVpVmw/s1600/cdi_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="291" src="http://3.bp.blogspot.com/-Yo7S2-Wh01k/TwCP7jPRwFI/AAAAAAAAEq8/E-v5BMVpVmw/s640/cdi_1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Then we can add the JSF Managed Bean annotations to the java class. We can use @ManagedBean ( javax.faces.bean ) together with the right scope annotation like RequestScoped, SessionScoped or ViewScoped ( CDI does not have this View Scope ). You will see this bean in the Faces Configuration View.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-ApB14E_GgVc/TwCP8PPz1KI/AAAAAAAAErE/1X2k4jySNRY/s1600/cdi_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="315" src="http://2.bp.blogspot.com/-ApB14E_GgVc/TwCP8PPz1KI/AAAAAAAAErE/1X2k4jySNRY/s400/cdi_2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Next part of this blog is about CDI, this will be more tricky, it is possible but does not work so well in OEPE and WebLogic. I didn't have these problems with the same OEPE, Code and using Glassfish 3.11.&lt;br /&gt;
&lt;br /&gt;
So to enable CDI we need to add a beans.xml file to the WEB-INF folder. Like this with a empty beans element, this will trigger CDI.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-MaIBKn6I8QE/TwDUgtkyWYI/AAAAAAAAErQ/otTgXVBFmEY/s1600/cdi_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="90" src="http://3.bp.blogspot.com/-MaIBKn6I8QE/TwDUgtkyWYI/AAAAAAAAErQ/otTgXVBFmEY/s640/cdi_3.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
When we try to run the JSF application again then you probably will hit this NPE in the jboss Weld framework.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;javax.enterprise.resource.webcontainer.jsf.renderkit&amp;gt; &amp;lt;BEA-000000&amp;gt; &amp;lt;javax.faces.FacesException&lt;br /&gt;
javax.faces.FacesException&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;at com.sun.faces.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:142)&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119)&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;at org.apache.myfaces.extensions.validator.core.startup.ExtValLifecycleWrapper.render(ExtValLifecycleWrapper.java:79)&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Truncated. see log file for complete stacktrace&lt;br /&gt;
Caused By:&lt;span style="color: #cc0000;"&gt; java.lang.NullPointerException&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;at org.jboss.weld.el.ELCreationalContextStack.getCreationalContextStore(ELCreationalContextStack.java:33)&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;at &lt;span style="color: #cc0000;"&gt;org.jboss.weld.el.WeldValueExpression.getValue&lt;/span&gt;(WeldValueExpression.java:47)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The solution is to remove the JSP entries and rename your files from jspx to xhtml.&lt;/div&gt;
&lt;div&gt;
From this.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&amp;lt;?xml version="1.0" encoding="iso-8859-1"?&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;lt;jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; xmlns:f="http://java.sun.com/jsf/core"&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; xmlns:h="http://java.sun.com/jsf/html"&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; xmlns:trh="http://myfaces.apache.org/trinidad/html"&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; xmlns:tr="http://myfaces.apache.org/trinidad"&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;lt;jsp:directive.page contentType="text/html;charset=utf-8"/&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;lt;f:view&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;tr:document title="Bean and ExtVal validation"&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tr:form&amp;gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
To this, where we define the used jsf namespaces on the html element.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-9FBL8QUliFo/TwDW6YIxWAI/AAAAAAAAErc/T_sgH_W1gY8/s1600/cdi_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="324" src="http://4.bp.blogspot.com/-9FBL8QUliFo/TwDW6YIxWAI/AAAAAAAAErc/T_sgH_W1gY8/s640/cdi_4.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Next we can try to create a new managed bean where we will use the Named annotation together with the SessionScoped annotation of javax.enterprise.context&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-ySfPeGEtH5k/TwDW7ARluHI/AAAAAAAAErg/hu6WHsFuIeA/s1600/cdi_5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="571" src="http://4.bp.blogspot.com/-ySfPeGEtH5k/TwDW7ARluHI/AAAAAAAAErg/hu6WHsFuIeA/s640/cdi_5.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
We can also inject an EJB or a Managed Bean with the Inject annotation.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-8p18XNMGVK4/TwDYVY3U3ZI/AAAAAAAAErw/H1chVG25Iss/s1600/cdi_6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="516" src="http://3.bp.blogspot.com/-8p18XNMGVK4/TwDYVY3U3ZI/AAAAAAAAErw/H1chVG25Iss/s640/cdi_6.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I can also replace @EJB with @Inject but then I should move my EJBs to my Dynamic Web Project else I will get an Weld error. &amp;nbsp;Probably with OEPE you have an different JPA project and this ejb.jar will be deployed together with the WAR in an EAR.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
I didn't test this but you need to enable CDI on this ejb project or EAR.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
That's not all you also need to change the WebLogic Publishing mode of OEPE. This should be &lt;b&gt;Publish as an exploded archive&lt;/b&gt; else Inject won't work. ( Thanks to Steve Button for the tip. ).&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-EAp_8J6F-Oo/TwDaVxdoi6I/AAAAAAAAEr8/88vErYS1gVI/s1600/cdi_7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="370" src="http://4.bp.blogspot.com/-EAp_8J6F-Oo/TwDaVxdoi6I/AAAAAAAAEr8/88vErYS1gVI/s640/cdi_7.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This is the error I got&amp;nbsp;WELD-001408 Unsatisfied dependencies for type [DataBeanCDI] with qualifiers [@Default] at injection point [[field] @Inject private nl.amis.web.beans.DataBean.dataBeanCDI]&lt;br /&gt;
&lt;br /&gt;
This is solved in the WebLogic 12c (12.1.1) patch release of March 2012, so no need for an exploded archive&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
And now the most annoying bug, the CDI managed beans will work only once on WebLogic 12c. When you deploy or run your application the second time then the CDI Managed bean can't be found. The solution is you need to restart the WebLogic Server. This makes development with CDI almost impossible.&lt;br /&gt;
&lt;br /&gt;
This is also solved in the WebLogic 12c (12.1.1) patch release of March 2012
&lt;br /&gt;
&lt;br /&gt;
I also added and removed a patch which makes everything even a little better&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: 'times new roman', 'new york', times, serif; font-size: 16px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: 'times new roman', 'new york', times, serif; font-size: 16px;"&gt;
So, I removed with the BSU utility the following patch&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: 'times new roman', 'new york', times, serif; font-size: 16px;"&gt;
&lt;b&gt;13603813 SU Patch [53JP]&lt;/b&gt;: MERGE LABEL REQUEST ON TOP OF 12.1.1. FOR CDI BUGS&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: 'times new roman', 'new york', times, serif; font-size: 16px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: 'times new roman', 'new york', times, serif; font-size: 16px;"&gt;
and &amp;nbsp;installed&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: 'times new roman', 'new york', times, serif; font-size: 16px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: 'times new roman', 'new york', times, serif; font-size: 16px;"&gt;
&lt;b&gt;13893259 SU Patch [QPXR]&lt;/b&gt;: MERGE LABEL REQUEST ON TOP OF 12.1.1.0.0 FOR BUGS 13482794 13563205 13572075 13572176&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Also enabling fastswap in the weblogic-application.xml ( ear project ) can help you in solving weld errors.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Here you can find my example code.&lt;/div&gt;
&lt;div&gt;
&lt;a href="https://github.com/biemond/OEPE_examples/tree/master/cdi_jsf2_managedbeans"&gt;https://github.com/biemond/OEPE_examples/tree/master/cdi_jsf2_managedbeans&lt;/a&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-3992149864510069053?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/3992149864510069053/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2012/01/jsf-20-managed-bean-annotations-and-cdi.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/3992149864510069053?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/3992149864510069053?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/YVrOrgW0HZ8/jsf-20-managed-bean-annotations-and-cdi.html" title="JSF 2.0 Managed Bean Annotations and CDI on WebLogic 12c" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-Yo7S2-Wh01k/TwCP7jPRwFI/AAAAAAAAEq8/E-v5BMVpVmw/s72-c/cdi_1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://biemond.blogspot.com/2012/01/jsf-20-managed-bean-annotations-and-cdi.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMGR3g7fip7ImA9WhRWEEw.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-3182062491965087296</id><published>2011-12-27T21:23:00.003+01:00</published><updated>2011-12-27T21:23:46.606+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-27T21:23:46.606+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic" /><category scheme="http://www.blogger.com/atom/ns#" term="EclipseLink" /><category scheme="http://www.blogger.com/atom/ns#" term="jsf" /><title>Using Bean Validation together with ExtVal in JPA and JSF</title><content type="html">With the release of WebLogic 12c we can finally try out the native support for Bean Validation ( JSR-303) in JPA &amp;amp; JSF. With JSR-303 we can use this validation framework on the back-end side ( EJB Session Bean ) and on the managed bean of the JSF Web applications, so one framework which can do it all. It will save us a lot of time in making business rules and no need for validators on our JSF UI Components.&lt;br /&gt;
To make this even better I will combine this with &lt;a href="http://myfaces.apache.org/extensions/validator/"&gt;Apache MyFaces Extensions Validator&lt;/a&gt;. This framework can be used with JSF ( there is a generic library and a special one for Trinidad ) and its supports the Bean Validation. ExtVal also has some &lt;a href="https://cwiki.apache.org/confluence/display/EXTVAL/Index"&gt;extra features&lt;/a&gt;.&lt;br /&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Type-safe group validation&lt;/li&gt;
&lt;li&gt;Model validation&lt;/li&gt;
&lt;li&gt;Severity aware validation&lt;/li&gt;
&lt;li&gt;Client-side validation&lt;/li&gt;
&lt;li&gt;Sorted violation messages&lt;/li&gt;
&lt;li&gt;Dependency injection support for constraint validators&lt;/li&gt;
&lt;li&gt;Mapped constraint source (e.g. for using DTO's with BV)&lt;/li&gt;
&lt;li&gt;Support of @Valid&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
In this blog I won't give you all the possible validations options you can have in the Bean Validation or in ExtVal framework but I will try to give you a jumpstart, how to setup this up and get everything working.&lt;br /&gt;
&lt;br /&gt;
Before I start I got this working with WebLogic 12c and use OEPE 12c as my IDE. For the JSF part I use &lt;a href="http://myfaces.apache.org/trinidad/"&gt;Apache MyFaces Trinidad 2.0.0&lt;/a&gt; which support JSF 2.0.&lt;br /&gt;
&lt;br /&gt;
Let's start with the JPA part.&lt;br /&gt;
&lt;br /&gt;
Here I have created a department entity which is based on the department table of the HR demo schema in the Oracle database.&lt;br /&gt;
&lt;br /&gt;
On the departmentName attribute I added some validation annotations like NotNull , Size and Pattern.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-J0kH1zS1Fl4/TvoTRYBUcTI/AAAAAAAAEoM/ExAzvoye_uM/s1600/beanval_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="442" src="http://3.bp.blogspot.com/-J0kH1zS1Fl4/TvoTRYBUcTI/AAAAAAAAEoM/ExAzvoye_uM/s640/beanval_1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
On the Pattern annotation I added a custom resource bundle message ( use {} ), I only do it for pattern annotation because Size or NotNull will have it's own default message in JSF.&lt;br /&gt;
&lt;br /&gt;
Bean validation is the default now so we would see the Eclipselink error anymore. So when we try to persist an entity which violates these annotations we get an error like this.&lt;br /&gt;
&lt;br /&gt;
With a javax.validation.ConstraintViolationException on a prePersist callback event. This error won't give you a lot of information about the error.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-rgYpJszt7hQ/TvoWpiiR0nI/AAAAAAAAEoY/E59sgjYvRdk/s1600/beanval_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="92" src="http://4.bp.blogspot.com/-rgYpJszt7hQ/TvoWpiiR0nI/AAAAAAAAEoY/E59sgjYvRdk/s640/beanval_2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
You got the option to disable the Bean Validation in Eclipselink by setting the validation-mode to NONE. This way you will get the constraint error.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-lda4vwxLwzI/TvoWqw2dSjI/AAAAAAAAEok/zW2uIioBA_4/s1600/beanval_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="254" src="http://1.bp.blogspot.com/-lda4vwxLwzI/TvoWqw2dSjI/AAAAAAAAEok/zW2uIioBA_4/s640/beanval_4.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Like this.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-jq3AsTt0eDM/TvoWqWyd8EI/AAAAAAAAEog/DsaSXN75JbY/s1600/beanval_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="68" src="http://2.bp.blogspot.com/-jq3AsTt0eDM/TvoWqWyd8EI/AAAAAAAAEog/DsaSXN75JbY/s640/beanval_3.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
So how we can retrieve these&amp;nbsp;validations&amp;nbsp;errors. For example I can do this on the client side before I invoke the EJB Session bean or do it inside the Session Facade methods.&lt;br /&gt;
&lt;br /&gt;
We need to use the resource annotation to retrieve the Validator.&lt;br /&gt;
(@Resource Validator validator; )&lt;br /&gt;
In the department persist we can pass on the department entity to the validatior.&lt;br /&gt;
Set&amp;lt;ConstraintViolation&amp;lt;Department&amp;gt;&amp;gt; violations = validator.validate(department);&lt;br /&gt;
And loop through the violations with this as result.&lt;br /&gt;
&lt;br /&gt;
error size: 2&lt;br /&gt;
invalid value for: 'departmentName': Name must between 2 and 30 characters&lt;br /&gt;
invalid value for: 'departmentName': {departmentNameValidation}&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1524853.js?file=HrSessionBean.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we can go the JSF part.&lt;br /&gt;
Here I do the same but then from a managed bean which is called from a commandButton.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1524868.js?file=validation.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
&lt;br /&gt;
I changed the violations to Faces Messages and skip the persist part.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-O8tUc0-92A4/TvodCzCPTBI/AAAAAAAAEo0/XimZyzX9-oY/s1600/beanval_5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="224" src="http://1.bp.blogspot.com/-O8tUc0-92A4/TvodCzCPTBI/AAAAAAAAEo0/XimZyzX9-oY/s640/beanval_5.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
This is all standard Bean Validation stuff so let's check out the ExtVal part.&lt;br /&gt;
&lt;br /&gt;
I added the following libraries to the lib folder of the WEB-INF&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-rgaN1oAOoV8/TvoeUM9vTdI/AAAAAAAAEpA/jqjXhhfnSHY/s1600/beanval_6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-rgaN1oAOoV8/TvoeUM9vTdI/AAAAAAAAEpA/jqjXhhfnSHY/s320/beanval_6.png" width="268" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The jsr303-tck and the validation-api jars are from &lt;a href="http://www.hibernate.org/subprojects/validator.html"&gt;Hibernate Validator&lt;/a&gt; and the rest is from &lt;a href="http://myfaces.apache.org/extensions/validator/"&gt;MyFaces ExtVal&lt;/a&gt;. Where I remove the myfaces-extval-generic-support-2.0.5.jar because I could use the trinidad one.&lt;br /&gt;
&lt;br /&gt;
To test the validation I made a simple JSF Trinidad page where you can see there are no validator or convertors defined.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1524939.js?file=main.jsp"&gt;
&lt;/script&gt;
&lt;br /&gt;
&lt;br /&gt;
In the Trinidad table I show all the departments and change for example the department Name to 1 char which violates the Size annotation.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-BllZCIFNDHQ/TvoiEacjwNI/AAAAAAAAEpM/dWV8wFHlhXY/s1600/beanval_7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="356" src="http://3.bp.blogspot.com/-BllZCIFNDHQ/TvoiEacjwNI/AAAAAAAAEpM/dWV8wFHlhXY/s640/beanval_7.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
When I use invalid characters for the department Name then I get the resource bundle message.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-FsSIOA4rI2w/TvoiE5QfUSI/AAAAAAAAEpU/bwOp7tiK3vM/s1600/beanval_8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-FsSIOA4rI2w/TvoiE5QfUSI/AAAAAAAAEpU/bwOp7tiK3vM/s640/beanval_8.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
To make this resourcebundle work I need to set a context parameter in the web.xml which points to our own resourcebundle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;context-param&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;param-name&amp;gt;org.apache.myfaces.extensions.validator.CUSTOM_MESSAGE_BUNDLE&amp;lt;/param-name&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;param-value&amp;gt;resources.application&amp;lt;/param-value&amp;gt;&lt;br /&gt;
&amp;lt;/context-param&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last part is to show you the ExtVal part. I used this managed bean which are used in the JSF page.&lt;br /&gt;
&lt;script src="https://gist.github.com/1524982.js?file=DataBean.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
&lt;br /&gt;
departmentName use the Bean Validation framework and&amp;nbsp;departmentLocation use the ExtVal framework.&lt;br /&gt;
With this as result.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-gqsddrjaXEU/TvomMjTazPI/AAAAAAAAEpg/veSJk5-Fc3k/s1600/beanval_9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="190" src="http://3.bp.blogspot.com/-gqsddrjaXEU/TvomMjTazPI/AAAAAAAAEpg/veSJk5-Fc3k/s640/beanval_9.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
When you want to know more about ExtVal or Bean Validation you definitely should read &lt;a href="https://www.packtpub.com/sites/default/files/sample_chapters/3254_Apache%20MyFaces_SampleChapter.pdf"&gt;this example chapter of Bart Kummel's Book&lt;/a&gt; about MyFaces Development.&lt;br /&gt;
&lt;br /&gt;
Here is the example project on github.&amp;nbsp;&lt;a href="https://github.com/biemond/OEPE_examples/tree/master/beanValidation"&gt;https://github.com/biemond/OEPE_examples/tree/master/beanValidation&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-3182062491965087296?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/3182062491965087296/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2011/12/using-bean-validation-together-with.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/3182062491965087296?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/3182062491965087296?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/Y7fyc3ian4k/using-bean-validation-together-with.html" title="Using Bean Validation together with ExtVal in JPA and JSF" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-J0kH1zS1Fl4/TvoTRYBUcTI/AAAAAAAAEoM/ExAzvoye_uM/s72-c/beanval_1.png" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://biemond.blogspot.com/2011/12/using-bean-validation-together-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEGQXg4eip7ImA9WhRXEk8.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-478602244687140791</id><published>2011-12-18T16:36:00.001+01:00</published><updated>2011-12-18T16:37:00.632+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-18T16:37:00.632+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic" /><category scheme="http://www.blogger.com/atom/ns#" term="SOA" /><category scheme="http://www.blogger.com/atom/ns#" term="SCA" /><category scheme="http://www.blogger.com/atom/ns#" term="OEPE" /><title>WebLogic SCA with WebLogic 12c and OEPE 12.1</title><content type="html">Fusion Middleware Software like OSB or SOA Suite is not yet available on WebLogic 12c but this does not mean you can't develop SCA Applications. With the help of the Oracle Enterprise for Eclipse 12.1.1 ( OEPE ) we can build WebLogic SCA application and deploy it on WebLogic 12c. This allows you to&amp;nbsp;write Java applications using POJOs and, through different protocols, expose components as SCA services and access other components via references. You do this using SCA semantics configured in a Spring application context. In SCA terms, a WebLogic Spring SCA application is a collection of POJOs plus a Spring SCA context file that wires the classes together with SCA services and references.&lt;br /&gt;
&lt;br /&gt;
In this blogpost I will show you all the steps so you can try it yourself.&lt;br /&gt;
&lt;br /&gt;
Before we start, we need to install WebLogic 12c, configure a new domain and startup the AdminServer.&lt;br /&gt;
The first step is to install the WebLogic SCA shared library and target it to the AdminServer.&lt;br /&gt;
&lt;br /&gt;
Log in to the WebLogic Console and go to deployments windows.&lt;br /&gt;
Install this war &amp;nbsp;located at &lt;b&gt;wlserver_12. 1\common\deployable-libraries\weblogic-sca-1.1.war&lt;/b&gt; as a shared library and target it to the AdminServer.&lt;br /&gt;
&lt;br /&gt;
Next step is to download OEPE 12.1.1, extract it and create a new workspace.&lt;br /&gt;
&lt;br /&gt;
In this workspace we need to create a new &lt;b&gt;Dynamic Web Project&lt;/b&gt;.&lt;br /&gt;
Use wls 12 as Target runtime and also create an Ear project which will include the war.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/--DlyJM0Gy6o/Tu336N7_UiI/AAAAAAAAEmI/xQiJHPqlBcY/s1600/sca_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="608" src="http://2.bp.blogspot.com/--DlyJM0Gy6o/Tu336N7_UiI/AAAAAAAAEmI/xQiJHPqlBcY/s640/sca_1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Open the project options of your Dynamic Web Project and go to Project Facets.&lt;br /&gt;
Here we need to enable &lt;b&gt;Oracle WebLogic SCA&lt;/b&gt; and &lt;b&gt;Spring&lt;/b&gt;.&lt;br /&gt;
Click on &lt;b&gt;Further configuration required&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-EdT0i8BMB5I/Tu3362vXGuI/AAAAAAAAEmQ/vGnRQoT8ZvQ/s1600/sca_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="508" src="http://4.bp.blogspot.com/-EdT0i8BMB5I/Tu3362vXGuI/AAAAAAAAEmQ/vGnRQoT8ZvQ/s640/sca_2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Next step is to download the Spring library. Click on the download button and select Spring Framework 2.5.6 of Oracle.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-wdTJG4jHaNI/Tu338Asob8I/AAAAAAAAEmY/wrD7MxOfueg/s1600/sca_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="506" src="http://2.bp.blogspot.com/-wdTJG4jHaNI/Tu338Asob8I/AAAAAAAAEmY/wrD7MxOfueg/s640/sca_3.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Click on Next.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-8E9QydfzbWs/Tu3386rfaLI/AAAAAAAAEmg/c_jO5eOuK7g/s1600/sca_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="306" src="http://2.bp.blogspot.com/-8E9QydfzbWs/Tu3386rfaLI/AAAAAAAAEmg/c_jO5eOuK7g/s400/sca_4.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
We need to add the WebLogic SCA Shared Library, this will be added to the weblogic.xml deployment descriptor of your Web Project.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-WmDCKq46g5s/Tu339ZtxBGI/AAAAAAAAEmk/TuET2pM4Vb8/s1600/sca_5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="307" src="http://3.bp.blogspot.com/-WmDCKq46g5s/Tu339ZtxBGI/AAAAAAAAEmk/TuET2pM4Vb8/s400/sca_5.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
You can open the weblogic.xml file of your Web project and in the Shared Libraries you should see the reference.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-6vkQd2sWXtQ/Tu33-G_yadI/AAAAAAAAEms/lsfKJPuLTkI/s1600/sca_6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="272" src="http://2.bp.blogspot.com/-6vkQd2sWXtQ/Tu33-G_yadI/AAAAAAAAEms/lsfKJPuLTkI/s400/sca_6.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
When you are in the Web Perspective then you can open the spring-context.xml in the beans section of the Spring Elements.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-HCunFGQ6LBQ/Tu37sECM0bI/AAAAAAAAEnQ/lKU4xyFMT4g/s1600/sca_10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://3.bp.blogspot.com/-HCunFGQ6LBQ/Tu37sECM0bI/AAAAAAAAEnQ/lKU4xyFMT4g/s640/sca_10.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Or in the java perspective this is located in the jsca folder of the META-INF folder.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ftutDyd5okM/Tu37soHt0wI/AAAAAAAAEnU/VNIicqtwzoE/s1600/sca_11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://1.bp.blogspot.com/-ftutDyd5okM/Tu37soHt0wI/AAAAAAAAEnU/VNIicqtwzoE/s400/sca_11.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
In the Spring-context.xml we will add some spring beans which have an EJB &amp;amp; Web Service SCA service and we also add some SCA references. &lt;br /&gt;
&lt;br /&gt;
In this demo I will start with a SCA service with has a ws binding , this service has a target to a spring bean. This spring has a property to a SCA reference which an EJB binding.&lt;br /&gt;
The SCA reference calls a SCA Service which off course also has an EJB binding. The service target the next spring bean which the calls the last spring bean.&lt;br /&gt;
&lt;br /&gt;
We start with the last spring bean and end with the first SCA service.&lt;br /&gt;
This the LoggerOutput class which just do a system out.
&lt;script src="https://gist.github.com/1493637.js?file=LoggerOutput.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
Because we want to expose the next spring bean as a SCA service we need to have an interface which we can use in the SCA service.
&lt;script src="https://gist.github.com/1493642.js?file=ILoggerComponent.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
And now the implementation which calls the last spring bean LoggerOutput
&lt;script src="https://gist.github.com/1493645.js?file=LoggerComponentImpl.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
Now we have everything to make our first SCA application. This is how the spring-context will look like.
&lt;script src="https://gist.github.com/1493650.js?file=spring-context.xml"&gt;
&lt;/script&gt;
&lt;br /&gt;
This SCA service will be invoked in the second part of this blogpost where we will call this EJB from a web service.
We can use the same ILoggerComponent interface for the SCA Service ( this time a web service ) and the SCA reference will call the already created EJB SCA service.
We only need a new spring bean which pass on the message to the EJB. For this I use this LoggerPassThrough class.  
&lt;script src="https://gist.github.com/1493664.js?file=LoggerPassThrough.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
Here is the total spring-context.xml
&lt;script src="https://gist.github.com/1493666.js?file=spring-context.xml"&gt;
&lt;/script&gt;
&lt;br /&gt;
We are ready to deploy it and do a test run. Select your EAR project, right click and do run on Server.&lt;br /&gt;
Provide the details of your WebLogic 12c domain.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-DXQp8KoeQFw/Tu33-yHGsCI/AAAAAAAAEm4/k3Qck9bsGHU/s1600/sca_7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="446" src="http://4.bp.blogspot.com/-DXQp8KoeQFw/Tu33-yHGsCI/AAAAAAAAEm4/k3Qck9bsGHU/s640/sca_7.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
You can use soapUI to invoke the SCA Web Service&amp;nbsp;&lt;a href="http://localhost:7001/WebLogicSCA/LoggerService_Uri?WSDL"&gt;http://localhost:7001/WebLogicSCA/LoggerService_Uri?WSDL&lt;/a&gt;&lt;br /&gt;
or invoke the SCA EJB Service&lt;br /&gt;
ILoggerComponent logEJB = (ILoggerComponent)context.lookup("LoggerService_EJB30_JNDI");&lt;br /&gt;
&lt;br /&gt;
WebLogic also has an extension for WebLogic SCA , in the Console , go to the Preferences , Extensions and enable weblogic-sca-console. &amp;nbsp;You need to restart your WebLogic Server.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-9FmCWxzvDFg/Tu33_-sgnQI/AAAAAAAAEm8/xZ1XCe5tEBw/s1600/sca_8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="595" src="http://1.bp.blogspot.com/-9FmCWxzvDFg/Tu33_-sgnQI/AAAAAAAAEm8/xZ1XCe5tEBw/s640/sca_8.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
After this you can click on your SCA deployment and see your SCA Services and references.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-Okj5UXNsrNU/Tu34Ae66WqI/AAAAAAAAEnI/DHR8PAcBxlE/s1600/sca_9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="337" src="http://4.bp.blogspot.com/-Okj5UXNsrNU/Tu34Ae66WqI/AAAAAAAAEnI/DHR8PAcBxlE/s400/sca_9.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Download the code at github&lt;br /&gt;
&lt;a href="https://github.com/biemond/OEPE_examples/tree/master/wls12cSCA"&gt;https://github.com/biemond/OEPE_examples/tree/master/wls12cSCA&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-478602244687140791?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/478602244687140791/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2011/12/weblogic-sca-with-weblogic-12c-and-oepe.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/478602244687140791?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/478602244687140791?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/k5Fqnt0wJ98/weblogic-sca-with-weblogic-12c-and-oepe.html" title="WebLogic SCA with WebLogic 12c and OEPE 12.1" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/--DlyJM0Gy6o/Tu336N7_UiI/AAAAAAAAEmI/xQiJHPqlBcY/s72-c/sca_1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://biemond.blogspot.com/2011/12/weblogic-sca-with-weblogic-12c-and-oepe.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QBQ3oyfip7ImA9WhRSGUw.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-7892932616018005386</id><published>2011-11-21T21:43:00.001+01:00</published><updated>2011-11-21T23:42:32.496+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-21T23:42:32.496+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g soa suite" /><category scheme="http://www.blogger.com/atom/ns#" term="web services" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Service Bus" /><title>Solving __OAUX_GENXSD_.TOP.XSD with BPEL</title><content type="html">When you use an external web service in combination with a BPEL service component in an Oracle SOA Suite 11g composite and you follow this &lt;a href="http://blogs.oracle.com/aia/entry/aia_11g_best_practices_for_dec"&gt;great AIA blog&lt;/a&gt; about&amp;nbsp;&lt;i&gt;Best Practices for Decoupling Services and Avoiding Invalid Composites at Server Startup&lt;/i&gt; then you can get this&amp;nbsp;&lt;b&gt;__OAUX_GENXSD_.TOP.XSD&lt;/b&gt; error in&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;JDeveloper, when you build the composite.&lt;/li&gt;
&lt;li&gt;On the SOA Suite when the service is invoked for the second time, probably on your test or acceptance environment.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Before we start with the possible fixes, first why do you get this error.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You can only get this error when you use BPEL in your composite. With the mediator service component I don't get this error.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In my test composite I have a simple OSB proxy and use this as a reference. So I provide the WSDL url to the WS adapter and enabled the option to download the WSDL to your project. &amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-eQuvrRAYiP4/Tsq7Vp3qLpI/AAAAAAAAEhg/55GwVZxAMXM/s1600/Screen+Shot+2011-11-21+at+9.57.14+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="244" src="http://4.bp.blogspot.com/-eQuvrRAYiP4/Tsq7Vp3qLpI/AAAAAAAAEhg/55GwVZxAMXM/s640/Screen+Shot+2011-11-21+at+9.57.14+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Because I don't want any deployment problems ( invalid composites at deployment time or at a soa server reboot when the OSB proxy is down ). I downloaded the XSDs of the WSDL, fixed the WSDL imports. Now we can put the WSDL and the XSDs in our project folder or add them to a central place like the MDS.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
When we take a look at the reference part in the composite.xml you will see the following.&lt;/div&gt;
The endpoint is loaded from the Customer.wsdl ( location attribute of the binding.ws element ) and uses the port attribute to find the endpoint in the Customer.wsdl. &lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-YPtqlB4zcZ0/Tsq_sUIomdI/AAAAAAAAEhw/_Q14gQA_lJo/s1600/Screen+Shot+2011-11-21+at+10.13.39+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="134" src="http://3.bp.blogspot.com/-YPtqlB4zcZ0/Tsq_sUIomdI/AAAAAAAAEhw/_Q14gQA_lJo/s640/Screen+Shot+2011-11-21+at+10.13.39+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Here is the wsdl with the endpoint.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-RhZeOF8TRFo/Tsq_r2oe5LI/AAAAAAAAEhs/peUUlUzuOKE/s1600/Screen+Shot+2011-11-21+at+10.16.00+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="288" src="http://4.bp.blogspot.com/-RhZeOF8TRFo/Tsq_r2oe5LI/AAAAAAAAEhs/peUUlUzuOKE/s640/Screen+Shot+2011-11-21+at+10.16.00+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This works great in development ( cause you don't need to change anything) &amp;nbsp;but when you have to deploy to test or acceptance you will generate a config plan where you override the location attribute of the binding.ws (reference) with the Test OSB Proxy WSDL url, so it will use that endpoint for test or acceptance.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
On the SOA Suite you can invoke this service once and after that you can get this __OAUX_GENXSD_.TOP.XSD error. Somehow the second time the SOA Suite will retrieve the test OSB Proxy WSDL and it's XSDs from the cache and it compares it with the local XSDs of your project or MDS. When there is a difference in one of the XSDs you will get this error ( can be something minor like an element annotation ).&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
This can also happen in the JDeveloper SOA Composite builder when you load the same XSDs local and remote.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-lQKiavj4guo/Tsq7VLt5wUI/AAAAAAAAEhc/BLiIRxsWoPI/s1600/Screen+Shot+2011-11-21+at+9.57.24+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="152" src="http://1.bp.blogspot.com/-lQKiavj4guo/Tsq7VLt5wUI/AAAAAAAAEhc/BLiIRxsWoPI/s640/Screen+Shot+2011-11-21+at+9.57.24+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So the solution is to keep the XML schemas in sync ( remote and local ) but this is almost impossible or you need to build everything with Maven or ANT and always replace the XSDs in every project. This also requires a lot of unit testing.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Even then you probably don't have much influence on remote services.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So the best solution is to avoid the loading of remote WSDL. You only need to update the endpoint for the Test or acceptance environment, not to load the whole WSDL. So don't try to replace the location attribute of the binding.ws element in the composite.xml but try to update the endpoint in the WSDL located in your project or in the MDS. &amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
And if you use contract first Java (EJB) Web Services in Oracle Suite then you should always use the WSDL and the XSDs in your Java Web Services else you will get different schema imports then the original WSDL &amp;amp; XSDs.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I tested this with the Patch Set 3 version of SOA Suite 11g.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-7892932616018005386?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/7892932616018005386/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2011/11/solving-oauxgenxsdtopxsd-with-bpel.html#comment-form" title="18 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/7892932616018005386?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/7892932616018005386?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/AGMeVMB-OdE/solving-oauxgenxsdtopxsd-with-bpel.html" title="Solving __OAUX_GENXSD_.TOP.XSD with BPEL" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-eQuvrRAYiP4/Tsq7Vp3qLpI/AAAAAAAAEhg/55GwVZxAMXM/s72-c/Screen+Shot+2011-11-21+at+9.57.14+PM.png" height="72" width="72" /><thr:total>18</thr:total><feedburner:origLink>http://biemond.blogspot.com/2011/11/solving-oauxgenxsdtopxsd-with-bpel.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ECRXg-eCp7ImA9WhRTF0o.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-7224949869856167334</id><published>2011-11-08T20:14:00.000+01:00</published><updated>2011-11-08T20:14:24.650+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-08T20:14:24.650+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g webcenter" /><title>Changing a navigation model on a page in WebCenter</title><content type="html">WebCenter has a default navigation model (menu) which is located in the navigations folder and is defined as portal preference in the adf-config.xml file. But this menu is used in every page of the portal. I want to change this, so when you are not authenticated you will see the normal website links. But when you go to the internal page the menu will be switched to the application navigation model.&lt;br /&gt;
Special thanks for Maiko Rocha of the WebCenter A-Team for helping me solving this requirement.&lt;br /&gt;
&lt;br /&gt;
First I create a new jspx page based on the global template called Internal.jspx and add a navigation reference to this page in the default-navigation-model.xml.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-2jm-k7wOisQ/Trl26ikrILI/AAAAAAAAEfQ/taWr3KkDNM8/s1600/Screen+Shot+2011-11-08+at+7.36.58+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://2.bp.blogspot.com/-2jm-k7wOisQ/Trl26ikrILI/AAAAAAAAEfQ/taWr3KkDNM8/s640/Screen+Shot+2011-11-08+at+7.36.58+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Now we can create a navigation model which will be used in the internal page. This menu has a link to the home page so the user can go back to the default menu.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ejTo9eRX1OQ/Trl3_OshYJI/AAAAAAAAEfg/9pOpJucxk-g/s1600/Screen+Shot+2011-11-08+at+7.40.06+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="352" src="http://1.bp.blogspot.com/-ejTo9eRX1OQ/Trl3_OshYJI/AAAAAAAAEfg/9pOpJucxk-g/s640/Screen+Shot+2011-11-08+at+7.40.06+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Open the global template called pageTemplate_globe.jspx and go the menu part. &amp;nbsp;Here we will change the default navigation model.&lt;br /&gt;
&lt;br /&gt;
from&lt;br /&gt;
#{navigationContext.defaultNavigationModel.listModel['startNode=/, includeStartNode=false']}&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
#{navigationContext.navigationModel[ &lt;b&gt;menuSwitcher.menu&lt;/b&gt; ]&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.listModel['startNode=/, includeStartNode=false']}&lt;br /&gt;
&lt;br /&gt;
Where menuSwitcher is a request bean.&lt;br /&gt;
&lt;br /&gt;
To determine what navigation model I need to use I will check the current page and return the right navigation reference.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-EYYHPHFo6sg/Trl40pk7PWI/AAAAAAAAEfo/aXyZUeKWV0Y/s1600/Screen+Shot+2011-11-08+at+7.44.22+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="210" src="http://2.bp.blogspot.com/-EYYHPHFo6sg/Trl40pk7PWI/AAAAAAAAEfo/aXyZUeKWV0Y/s640/Screen+Shot+2011-11-08+at+7.44.22+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The request bean&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1348719.js?file=MenuSwitcher.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also use EL instead of a request bean.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;div&gt;
&lt;div&gt;
&amp;lt;af:forEach var="node" varStatus="vs"&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;items="#{navigationContext.&lt;wbr&gt;&lt;/wbr&gt;navigationModel[&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; controllerContext.&lt;wbr&gt;&lt;/wbr&gt;currentViewPort.viewId eq '/oracle/webcenter/portalapp/&lt;wbr&gt;&lt;/wbr&gt;pages/Internal.jspx' &lt;b&gt;?&lt;/b&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'/oracle/webcenter/portalapp/&lt;wbr&gt;&lt;/wbr&gt;navigations/&lt;wbr&gt;&lt;/wbr&gt;navigationModelInternal.xml' &lt;b&gt;&amp;nbsp;:&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'/oracle/webcenter/portalapp/&lt;wbr&gt;&lt;/wbr&gt;navigations/default-&lt;wbr&gt;&lt;/wbr&gt;navigation-model.xml'&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&amp;nbsp; &amp;nbsp;].listModel['startNode=/, includeStartNode=false']}"&amp;gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Here some pictures of the home page&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-rk3VrjTfvL0/Trl27WdYryI/AAAAAAAAEfU/kNGSXKpM8FQ/s1600/Screen+Shot+2011-11-08+at+7.33.24+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="197" src="http://2.bp.blogspot.com/-rk3VrjTfvL0/Trl27WdYryI/AAAAAAAAEfU/kNGSXKpM8FQ/s400/Screen+Shot+2011-11-08+at+7.33.24+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
After being authenticated, some extra menu links appears&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-dVwmMXmq67s/Trl-aublFWI/AAAAAAAAEf0/OS-42y8r7qo/s1600/Screen+Shot+2011-11-08+at+8.08.21+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="222" src="http://1.bp.blogspot.com/-dVwmMXmq67s/Trl-aublFWI/AAAAAAAAEf0/OS-42y8r7qo/s400/Screen+Shot+2011-11-08+at+8.08.21+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
And at last, the internal page with the new navigation model.
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-W_xVgUg2JTo/Trl-aFCU6SI/AAAAAAAAEfw/SfQOZqMfvCc/s1600/Screen+Shot+2011-11-08+at+8.08.36+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="177" src="http://1.bp.blogspot.com/-W_xVgUg2JTo/Trl-aFCU6SI/AAAAAAAAEfw/SfQOZqMfvCc/s400/Screen+Shot+2011-11-08+at+8.08.36+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-7224949869856167334?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/7224949869856167334/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2011/11/changing-navigation-model-on-page-in.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/7224949869856167334?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/7224949869856167334?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/L8SkcKwkFFA/changing-navigation-model-on-page-in.html" title="Changing a navigation model on a page in WebCenter" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-2jm-k7wOisQ/Trl26ikrILI/AAAAAAAAEfQ/taWr3KkDNM8/s72-c/Screen+Shot+2011-11-08+at+7.36.58+PM.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://biemond.blogspot.com/2011/11/changing-navigation-model-on-page-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcESX8-fSp7ImA9WhdaF0g.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-1994227067555483928</id><published>2011-10-28T00:22:00.000+02:00</published><updated>2011-10-28T00:53:28.155+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-28T00:53:28.155+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="adf" /><category scheme="http://www.blogger.com/atom/ns#" term="EclipseLink" /><category scheme="http://www.blogger.com/atom/ns#" term="OEPE" /><category scheme="http://www.blogger.com/atom/ns#" term="adf taskflow" /><title>Playing with ADF Task Flows in OEPE 11.1.1.8</title><content type="html">&lt;br /&gt;
Oracle released the&amp;nbsp;&lt;a href="http://www.oracle.com/technetwork/developer-tools/eclipse/downloads/index.html"&gt;Oracle Enterprise Pack for Eclipse 11g R1&lt;/a&gt; (11.1.1.8, New October 2011 ) which supports ADF Rich Faces with ADF Task Flow development. To see all the new features you can &lt;a href="http://www.oracle.com/technetwork/developer-tools/eclipse/overview/whatsnew-089747.html"&gt;go this page&lt;/a&gt;&amp;nbsp;for all the ADF or Oracle Cloud feature list.&lt;br /&gt;
&lt;br /&gt;
In this blogpost I will show you some steps how to make your own ADF Web application in OEPE.&lt;br /&gt;
&lt;br /&gt;
Before you can start you should know that the ADF application in OEPE uses JPA as model ( eclipselink), ADF BC can be used but only on runtime and you should already have WebLogic PS3 or higher installed ( together the ADF runtime option).&lt;br /&gt;
&lt;br /&gt;
This OEPE release does not have ADF wizard for ADF BC or for ADF Datacontrols but the support for ADF Task Flows is a big step forward.&lt;br /&gt;
&lt;br /&gt;
Let's start.&lt;br /&gt;
Start with a new Oracle ADF Application&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-YBpUN2IeOOk/Tqm-sgD6cgI/AAAAAAAAEaM/TjmgBwQ8ZD4/s1600/oepe_0.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="368" src="http://4.bp.blogspot.com/-YBpUN2IeOOk/Tqm-sgD6cgI/AAAAAAAAEaM/TjmgBwQ8ZD4/s400/oepe_0.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Add a new WebLogic runtime, define your WebLogic home and run the domain wizard to create a new ADF enabled domain. Make sure you add the JRF option to the domain.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/--aj56G_XzDE/Tqm-D-1l31I/AAAAAAAAEY0/1TaHuaeKRx0/s1600/oepe_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://2.bp.blogspot.com/--aj56G_XzDE/Tqm-D-1l31I/AAAAAAAAEY0/1TaHuaeKRx0/s400/oepe_2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
You should use JPA as a model project with Oracle ADF 11g JPA Project as the configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-yyu7HOjlPTg/Tqm-DfDGwkI/AAAAAAAAEYs/v3aO_9w-tIc/s1600/oepe_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-yyu7HOjlPTg/Tqm-DfDGwkI/AAAAAAAAEYs/v3aO_9w-tIc/s400/oepe_1.png" width="301" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
This will create 2 projects, Model and AdfGuiWeb and 1 ear deployment called AdfGui.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-mMbkf_xLzfI/TqnAO8DHgeI/AAAAAAAAEaU/6mkMhW8EvPM/s1600/oepe_0_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-mMbkf_xLzfI/TqnAO8DHgeI/AAAAAAAAEaU/6mkMhW8EvPM/s1600/oepe_0_2.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Create a JSP File which will be our start page.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-5D0N9EVUM74/Tqm-E95rdXI/AAAAAAAAEY4/2PhP3EIU0Mc/s1600/oepe_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="347" src="http://1.bp.blogspot.com/-5D0N9EVUM74/Tqm-E95rdXI/AAAAAAAAEY4/2PhP3EIU0Mc/s400/oepe_4.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Select the location for the JSPX page&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-qkTykmNmWUY/Tqm-FfnAcBI/AAAAAAAAEZA/H1dKXJMK-Aw/s1600/oepe_5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="277" src="http://4.bp.blogspot.com/-qkTykmNmWUY/Tqm-FfnAcBI/AAAAAAAAEZA/H1dKXJMK-Aw/s320/oepe_5.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Choose for ADF Rich Faces Page , Basic xhtml&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-zfYM8JJ5_ug/Tqm-GPMoT6I/AAAAAAAAEZM/OCCeCOriLsU/s1600/oepe_6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="536" src="http://4.bp.blogspot.com/-zfYM8JJ5_ug/Tqm-GPMoT6I/AAAAAAAAEZM/OCCeCOriLsU/s640/oepe_6.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Open the adfc-config.xml and drag the jspx page to the diagram, this will create a new view.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-gU1Hl7Owiv0/Tqm-HGR79nI/AAAAAAAAEZQ/B7eY6BrKpQM/s1600/oepe_7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="345" src="http://4.bp.blogspot.com/-gU1Hl7Owiv0/Tqm-HGR79nI/AAAAAAAAEZQ/B7eY6BrKpQM/s640/oepe_7.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Create a new ADF Fragment Task Flow which will hold the department fragments&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-NtDv80p4ygM/Tqm-HpwOEPI/AAAAAAAAEZc/HeOADAxSE98/s1600/oepe_8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/-NtDv80p4ygM/Tqm-HpwOEPI/AAAAAAAAEZc/HeOADAxSE98/s400/oepe_8.png" width="331" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Select the location.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-qGyhRLrYc2s/Tqm-I4VPBjI/AAAAAAAAEZg/XPhsFKUokHU/s1600/oepe_9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-qGyhRLrYc2s/Tqm-I4VPBjI/AAAAAAAAEZg/XPhsFKUokHU/s320/oepe_9.png" width="266" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The fragment option should be enabled.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-PXLxqQznz0I/Tqm-JcC3wyI/AAAAAAAAEZo/iVEG2dNeJjA/s1600/oepe_10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-PXLxqQznz0I/Tqm-JcC3wyI/AAAAAAAAEZo/iVEG2dNeJjA/s320/oepe_10.png" width="264" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Create a new JSP page which will be our fragment page, called department.jsff&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-RFK4iCTj0es/Tqm-JwnDBWI/AAAAAAAAEZ0/lXTL7aG-q8s/s1600/oepe_11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="303" src="http://4.bp.blogspot.com/-RFK4iCTj0es/Tqm-JwnDBWI/AAAAAAAAEZ0/lXTL7aG-q8s/s320/oepe_11.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Now choose ADF Rich Faces Page Fragment&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-SnQE79DDIKE/Tqm-K2w8pMI/AAAAAAAAEZ8/heOZcqE4nPA/s1600/oepe_12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="490" src="http://2.bp.blogspot.com/-SnQE79DDIKE/Tqm-K2w8pMI/AAAAAAAAEZ8/heOZcqE4nPA/s640/oepe_12.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Open the departments TF and drag this fragment to this Bounded Task Flow.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-nWYsuxa6b5o/Tqm-MA0pNsI/AAAAAAAAEaE/uZ8HfDpZjzQ/s1600/oepe_13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="237" src="http://4.bp.blogspot.com/-nWYsuxa6b5o/Tqm-MA0pNsI/AAAAAAAAEaE/uZ8HfDpZjzQ/s400/oepe_13.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we can go the model project and delete the model project. OEPE does not support ADF Datacontrol generation, so we will skip this for the demo.&lt;br /&gt;
&lt;br /&gt;
Now you are able to run the JSPX page. Select the startView.jspx and right click Run As -&amp;gt; Run on server.&lt;br /&gt;
&lt;br /&gt;
After a&amp;nbsp;successful run we can add an outputtext to the page and the fragment&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-qEpFxUvtSSY/TqnStUo0UkI/AAAAAAAAEa0/WBjnPd07pjM/s1600/oepe_17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="352" src="http://3.bp.blogspot.com/-qEpFxUvtSSY/TqnStUo0UkI/AAAAAAAAEa0/WBjnPd07pjM/s640/oepe_17.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Now drag the department Task Flow to the jspx start page and select Region. This will create the ADF binding pagedef file.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-LHV2GzNnkeM/TqnSuXtUbYI/AAAAAAAAEa8/FgaZpWuuBGA/s1600/oepe_18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="366" src="http://3.bp.blogspot.com/-LHV2GzNnkeM/TqnSuXtUbYI/AAAAAAAAEa8/FgaZpWuuBGA/s640/oepe_18.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
We can open the pagedef file and add your own bindings.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-IRaNLjPKuTI/TqnSvNEXKtI/AAAAAAAAEbA/JoFiIxz94BU/s1600/oepe_19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="540" src="http://2.bp.blogspot.com/-IRaNLjPKuTI/TqnSvNEXKtI/AAAAAAAAEbA/JoFiIxz94BU/s640/oepe_19.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Or open the Data Palette window which shows you the available bindings&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-jClaoZY6FiA/TqnURI7yGkI/AAAAAAAAEbM/8rPQwpjmKSE/s1600/oepe_20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-jClaoZY6FiA/TqnURI7yGkI/AAAAAAAAEbM/8rPQwpjmKSE/s400/oepe_20.png" width="350" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
At last open the project options to enable the adf.oracle.domain.webapp shared libraries&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-hBgPKbGO_BQ/TqnUs1ZoqUI/AAAAAAAAEbU/7KQJw8ObLls/s1600/oepe_21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="356" src="http://2.bp.blogspot.com/-hBgPKbGO_BQ/TqnUs1ZoqUI/AAAAAAAAEbU/7KQJw8ObLls/s640/oepe_21.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Now you can run the start page with the Bounded Task Flow fragment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As an extra you can also add some data to the page by fixing the Model project.&lt;br /&gt;
First add a database connection to the model project&lt;br /&gt;
Add JPA entitities from tables&lt;br /&gt;
Add a connection to the persistence.xml&lt;br /&gt;
&lt;br /&gt;
Add Data Model Components to the Model project. This will create a managed bean for the JSF page and an EJB Session bean for the entities&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ZuQQK6JYDag/Tqne35CQlfI/AAAAAAAAEbc/RsC7Z6w-Hn4/s1600/jpa_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="215" src="http://1.bp.blogspot.com/-ZuQQK6JYDag/Tqne35CQlfI/AAAAAAAAEbc/RsC7Z6w-Hn4/s400/jpa_1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
EJB Session Bean&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-Yp-RgEvybOk/Tqne5Ncsi8I/AAAAAAAAEbg/hXGLidUHJhs/s1600/jpa_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="282" src="http://2.bp.blogspot.com/-Yp-RgEvybOk/Tqne5Ncsi8I/AAAAAAAAEbg/hXGLidUHJhs/s400/jpa_2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
JSF bean&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-b5r-sbHkhwQ/Tqne5isuuUI/AAAAAAAAEbo/XsboWIvUMVg/s1600/jpa_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="286" src="http://1.bp.blogspot.com/-b5r-sbHkhwQ/Tqne5isuuUI/AAAAAAAAEbo/XsboWIvUMVg/s400/jpa_3.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
the managed bean code&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-MmNIrTtH2OY/TqnfW4zRePI/AAAAAAAAEb0/2M8dTmlMTWg/s1600/jpa_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="345" src="http://3.bp.blogspot.com/-MmNIrTtH2OY/TqnfW4zRePI/AAAAAAAAEb0/2M8dTmlMTWg/s400/jpa_4.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The Data Pallette, drag and drop the FindAll method to the fragment page&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-gsjUYvSj_E4/TqnfXdcVuFI/AAAAAAAAEb4/gcK7EBTq7ds/s1600/jpa_5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="316" src="http://3.bp.blogspot.com/-gsjUYvSj_E4/TqnfXdcVuFI/AAAAAAAAEb4/gcK7EBTq7ds/s640/jpa_5.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-5SWnFszCNLY/TqnfYOCn1zI/AAAAAAAAEcA/37RosE83IXM/s1600/jpa_6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="268" src="http://2.bp.blogspot.com/-5SWnFszCNLY/TqnfYOCn1zI/AAAAAAAAEcA/37RosE83IXM/s400/jpa_6.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And the result.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-iA8zFe8nSCY/TqnfY7gFtOI/AAAAAAAAEcI/rHV_-3bx0cY/s1600/jpa_7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="267" src="http://1.bp.blogspot.com/-iA8zFe8nSCY/TqnfY7gFtOI/AAAAAAAAEcI/rHV_-3bx0cY/s400/jpa_7.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-1994227067555483928?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/1994227067555483928/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2011/10/playing-with-adf-task-flows-in-oepe.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/1994227067555483928?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/1994227067555483928?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/moeEd7J7-Ms/playing-with-adf-task-flows-in-oepe.html" title="Playing with ADF Task Flows in OEPE 11.1.1.8" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-YBpUN2IeOOk/Tqm-sgD6cgI/AAAAAAAAEaM/TjmgBwQ8ZD4/s72-c/oepe_0.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://biemond.blogspot.com/2011/10/playing-with-adf-task-flows-in-oepe.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAER387eyp7ImA9WhdaE0Q.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-4261088155385106132</id><published>2011-10-23T20:31:00.001+02:00</published><updated>2011-10-23T20:31:46.103+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-23T20:31:46.103+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic" /><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g soa suite" /><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g webcenter" /><category scheme="http://www.blogger.com/atom/ns#" term="adf" /><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11gR2" /><title>Using FMW IdentityStore for your User management</title><content type="html">In Fusion Middleware you can use IdentityStore framework to do all your user, role and password management. This IDM and JPS frameworks will give you a lot options which you don't have with the standaard JAAS framework of WebLogic ( you need to create your authentication provider and add a private principal to the subject). &amp;nbsp;IDM framework works really great with LDAP identity providers like the default WebLogic internal LDAP, OpenLDAP, Oracle Internet Directory ( OID ) or Microsoft Active Directory.&lt;br /&gt;
With this you don't need to make your own software to do some user management on a particular LDAP provider, IDM can do it for you and IDM will detect the right LDAP provider. So you just need to implement this and IDM will do all the work. &lt;br /&gt;
&lt;br /&gt;
This is what you can do with IDM.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Retrieving and changing LDAP attributes of a user.&lt;/li&gt;
&lt;li&gt;User management, search, create users in a particular LDAP provider.&lt;/li&gt;
&lt;li&gt;Role management, search, create etc.&lt;/li&gt;
&lt;li&gt;Retrieve a username and password from the credential store and use it in your own application. &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
I will try to explain the different use cases in this blogpost.&lt;br /&gt;
&lt;br /&gt;
Before we begin, is good to know how the IdentityStore will work with LDAP providers. Default it only works with the internal WebLogic LDAP. If you also want to use AD or OID, then you need to add it to WebLogic authentication provider of the myrealm security realm ( no need to add it to the jps-config.xml located at domain/config/fmwconfig ,this is only necessary when you don't use WebLogic ).&lt;br /&gt;
The jps serviceInstance called idstore.ldap&amp;nbsp;can detect all the LDAP providers which are configured in WebLogic. &lt;br /&gt;
But when you have more then one LDAP providers then you got two options.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Add the &lt;b&gt;virtualize&lt;/b&gt; property with value &lt;b&gt;true&lt;/b&gt; to the &lt;b&gt;idstore.ldap&lt;/b&gt; serviceInstance ( in&amp;nbsp;jps-config.xml located at domain/config/fmwconfig )&amp;nbsp;. This will switch IDM from WebLogic to Oracle Virtual Directory mode. This will make sure that FMW applications will see all the users and roles. When you use Webcenter or SOA Suite / BPM Human worklist application then you need to add this property when you have more then one LDAP provider. In this OVD mode you can't retrieve the LDAP attributes of a user, OVD did not implement this option.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Re-order the LDAP authentication providers. The first authenticator provider will be used and the other will be ignored, ( WebLogic will still use all it's authenticators for JAAS but FMW will not &amp;nbsp;). &amp;nbsp;That's why in some forums or blogposts talk about re-ordering of the authentications providers. In most cases is setting the virtualize a better approach.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
Let's start with retrieving all the things we know about a user. Here I will retrieve its roles and all the LDAP attributes. ( this will not work with virtualize property on true and only on the first authentication provider )&lt;br /&gt;
Using LDAP attributes can be very handy for retrieving particular information which you can use in your application, like location information else you need to create a lot of roles to achieve the same. You can retrieve for example the location attribute and pass this value to the database ( Use it in Virtual Private Database VPD what Larry said it is a false cloud feature :-) ) or use it to disable some region screens.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-oW46oWyd_ww/TqRI-hvXsKI/AAAAAAAAEYI/AdS0DnkURAY/s1600/Screen+Shot+2011-10-23+at+7.03.34+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="310" src="http://3.bp.blogspot.com/-oW46oWyd_ww/TqRI-hvXsKI/AAAAAAAAEYI/AdS0DnkURAY/s400/Screen+Shot+2011-10-23+at+7.03.34+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Here I need to create JpsContext and lookup the IdentityStore. After that I can lookup the User with its UserProfile and retrieve the LDAP attributes by retrieving the PropertySet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important to know that these user operations will use the account defined in the authentication provider, there is no check if your normal user should be able to do so. So test this for a possible abuse.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1307585.js?file=IDM.class"&gt;
&lt;/script&gt;
&lt;br /&gt;
These are the steps to create a new Role in your LDAP repository. Lookup the RoloManager and use the createRole method.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-gIrxflAdDK0/TqRMUiZOzPI/AAAAAAAAEYQ/Wf9hyqF2bXY/s1600/Screen+Shot+2011-10-23+at+7.17.04+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="133" src="http://3.bp.blogspot.com/-gIrxflAdDK0/TqRMUiZOzPI/AAAAAAAAEYQ/Wf9hyqF2bXY/s400/Screen+Shot+2011-10-23+at+7.17.04+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1307600.js?file=role.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
&lt;br /&gt;
We can also create a user and assign a role to this new user. In this case also need to provide a AD property called&amp;nbsp;samaccountname. After that I can retrieve the UserManager and use the createUser method. Lookup the role and assign to this user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1307613.js?file=user.java"&gt;
&lt;/script&gt;
The last part is about how you can store your passwords in a safe way on the WebLogic Server. Every environment can have its own passwords and this can be managed by your Administrators.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-4c_ijyruhKo/TqRRX3MxB7I/AAAAAAAAEYY/_UuYbHoekM8/s1600/Screen+Shot+2011-10-23+at+7.39.18+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="271" src="http://1.bp.blogspot.com/-4c_ijyruhKo/TqRRX3MxB7I/AAAAAAAAEYY/_UuYbHoekM8/s400/Screen+Shot+2011-10-23+at+7.39.18+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
To store a password in the credential store you can use the following wlst script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
start wlst.cmd from oracle_common\common\bin not from the the weblogic server home&lt;br /&gt;
&lt;br /&gt;
connect('weblogic','weblogic1','t3://localhost:7101')&lt;br /&gt;
createCred(map="&lt;b&gt;JPS&lt;/b&gt;",key="&lt;b&gt;AD_ldap&lt;/b&gt;",user="CN=Administrator,CN=Users,DC=alfa,DC=local",password="Welcome02" ,desc="Windows LDAP user")&lt;br /&gt;
exit()&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
To allow FMW to retrieve this password I need to give the authenticated role some permissions on this map.&lt;br /&gt;
&lt;br /&gt;
Open the jazn-data.xml of your FMW application, lookup the authenticated role and add the following entries&lt;br /&gt;
oracle.security.jps.service.credstore.CredentialAccessPermission with read permission for&amp;nbsp;context=SYSTEM,mapName=&lt;b&gt;JPS&lt;/b&gt;,keyName=&lt;b&gt;AD_ldap&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Somehow I also need to do this for&amp;nbsp;mapName=j2ee-app#V2.0. The WebLogic will provide some logging to say what you are missing.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-W2ixqTY0-60/TqRVCuK_LqI/AAAAAAAAEYg/SXOnDwLhAdU/s1600/Screen+Shot+2011-10-23+at+7.49.49+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="284" src="http://4.bp.blogspot.com/-W2ixqTY0-60/TqRVCuK_LqI/AAAAAAAAEYg/SXOnDwLhAdU/s640/Screen+Shot+2011-10-23+at+7.49.49+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And here the code to retrieve it.&lt;br /&gt;
&lt;script src="https://gist.github.com/1307664.js?file=password.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
&lt;br /&gt;
You can download my sample application at github &lt;a href="https://github.com/biemond/jdev11g_examples/tree/master/ADFSecurity"&gt;https://github.com/biemond/jdev11g_examples/tree/master/ADFSecurity&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-4261088155385106132?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/4261088155385106132/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2011/10/using-fmw-identitystore-for-your-user.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/4261088155385106132?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/4261088155385106132?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/1Csh00X5UYs/using-fmw-identitystore-for-your-user.html" title="Using FMW IdentityStore for your User management" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-oW46oWyd_ww/TqRI-hvXsKI/AAAAAAAAEYI/AdS0DnkURAY/s72-c/Screen+Shot+2011-10-23+at+7.03.34+PM.png" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://biemond.blogspot.com/2011/10/using-fmw-identitystore-for-your-user.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAMQnkyeip7ImA9WhdbF0Q.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-6224112976060306780</id><published>2011-10-16T21:36:00.000+02:00</published><updated>2011-10-16T21:36:23.792+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-16T21:36:23.792+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g soa suite" /><category scheme="http://www.blogger.com/atom/ns#" term="adf" /><title>Working with the Human WorkList api and create your own WorkList application</title><content type="html">In this blogpost I will explain what is possible with the IWorkflowServiceClient ( HumanTask java client ) &amp;nbsp;so you can integrate this in your own Custom WorkList application. &amp;nbsp;This way you don't need to use the standard BPM worklist application, add some extra functionality and also don't need to create HumanTask ADF Task Flow and deploy this to the SOA Suite server.&lt;br /&gt;
&lt;br /&gt;
This demo shows you the power of Fusion Middleware where you can combine SOA Suite workflow to your own ADF applications.&lt;br /&gt;
&lt;br /&gt;
At the end of this blogpost I will show you the link for this demo application which also contains the BPEL to create the HumanTasks.&lt;br /&gt;
&lt;br /&gt;
Here are some pics of the demo application. You will get an overview of the tasks assigned to the weblogic user ( normally this will be replaced by the user of the application ). The user can search on certain field, change the ordering and control the maximum rows.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-v7jyJ9jPQUk/TpsvPBRaQlI/AAAAAAAAEX0/bICjjQLK6DM/s1600/Screen+Shot+2011-10-16+at+9.20.57+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="353" src="http://4.bp.blogspot.com/-v7jyJ9jPQUk/TpsvPBRaQlI/AAAAAAAAEX0/bICjjQLK6DM/s400/Screen+Shot+2011-10-16+at+9.20.57+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And in combination with the ADF UIShell template of Oracle you can make a multi task handling application. Every task you click on will have its own Tab. Here you can also lookup the extra information which is necessary to the user so it can handle this task.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-_mC_jn4hRd4/TpsvU35KgvI/AAAAAAAAEX8/CGv0YVnux1g/s1600/Screen+Shot+2011-10-16+at+9.23.00+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="210" src="http://4.bp.blogspot.com/-_mC_jn4hRd4/TpsvU35KgvI/AAAAAAAAEX8/CGv0YVnux1g/s640/Screen+Shot+2011-10-16+at+9.23.00+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Time to go back to the code.&lt;br /&gt;
&lt;br /&gt;
I will start with a BPEL which invokes a HumanTask and to make my life easy I will use the flexible text , date or url fields of the HumanTask for my own important data so I don't need to examine payload.&lt;br /&gt;
This way you can search on these fields and use it in your own task entity.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-Ej158jjAosQ/TpsdrNQy0dI/AAAAAAAAEXk/93-cVW2iKN8/s1600/Screen+Shot+2011-10-16+at+8.07.04+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="504" src="http://4.bp.blogspot.com/-Ej158jjAosQ/TpsdrNQy0dI/AAAAAAAAEXk/93-cVW2iKN8/s640/Screen+Shot+2011-10-16+at+8.07.04+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
And map the payload fields to the flex fields in a Assign activity. These fields are located in the systemMessageAttributes element.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-zZuaFs98TKE/TpseCC5Ph8I/AAAAAAAAEXs/rse-8Mjj58Y/s1600/Screen+Shot+2011-10-16+at+8.08.15+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="458" src="http://4.bp.blogspot.com/-zZuaFs98TKE/TpseCC5Ph8I/AAAAAAAAEXs/rse-8Mjj58Y/s640/Screen+Shot+2011-10-16+at+8.08.15+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Next is to retrieve these tasks from the java / ejb client. Todo so I need two libraries bpm-infra.jar and bpm-services.jar. Copy these jars from the soa server so you don't get serial id versioning errors.&lt;br /&gt;
&lt;br /&gt;
I will use on behalf of so I don't need to have the password of the user and I can do all the actions of behalf of this user.&lt;br /&gt;
&lt;br /&gt;
Start with a property file or you can set some java parameters&lt;br /&gt;
&lt;br /&gt;
soa.properties&lt;br /&gt;
soaserver=soaps3.alfa.local:8001&lt;br /&gt;
humantask.user=weblogic&lt;br /&gt;
humantask.password=weblogic1
&lt;br /&gt;
&lt;br /&gt;
or set these java parameters on the project&lt;br /&gt;
-Dhumantask.url&lt;br /&gt;
-Dhumantask.user&lt;br /&gt;
-Dhumantask.password&lt;br /&gt;
&lt;br /&gt;
For the tasks I will connect to the HumanTask EJB and for the Identities I need to connect the Identity SOAP Service.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1291226.js?file=connection.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
We need to have an IWorkflowContext which I can use for the query operation on the Task bean. I will first authenticate with the superuser and then on behalf of the user of my application.&lt;script src="https://gist.github.com/1291241.js?file=authenticate.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
&lt;br /&gt;
In this query on the human task I can control which attributes I want to use in my application.&lt;br /&gt;
&lt;br /&gt;
List&amp;lt;String&amp;gt; queryColumns = new ArrayList&amp;lt;String&amp;gt;();
queryColumns.add(TableConstants.WFTASK_TITLE_COLUMN.getName());&lt;br /&gt;
&lt;br /&gt;
And if I want to have the payload or the comments, I need to do this.&lt;br /&gt;
List&amp;lt;ITaskQueryService.OptionalInfo&amp;gt; optionalInfo =&lt;br /&gt;
&amp;nbsp; &amp;nbsp; new ArrayList&amp;lt;ITaskQueryService.OptionalInfo&amp;gt;(); optionalInfo.add(ITaskQueryService.OptionalInfo.COMMENTS);
optionalInfo.add(ITaskQueryService.OptionalInfo.PAYLOAD);&lt;br /&gt;
&lt;br /&gt;
Do ordering on the tasks.&lt;br /&gt;
&lt;br /&gt;
Ordering taskOrdering = null;&lt;br /&gt;
if ( "PRIO".equalsIgnoreCase(orderBy) ) {&lt;br /&gt;
&amp;nbsp;taskOrdering = new Ordering(TableConstants.WFTASK_PRIORITY_COLUMN, true,false);&lt;br /&gt;
&amp;nbsp;taskOrdering.addClause(TableConstants.WFTASK_TASKNUMBER_COLUMN, true,false);&lt;br /&gt;
} else if  ("ID".equalsIgnoreCase(orderBy) ) {&lt;br /&gt;
&amp;nbsp; taskOrdering = new Ordering(TableConstants.WFTASK_TASKNUMBER_COLUMN, false,true);&lt;br /&gt;
} else if ("ESC_DESC".equalsIgnoreCase(orderBy)  ) {&lt;br /&gt;
&amp;nbsp; taskOrdering = new Ordering(TableConstants.WFTASK_EXPIRATIONDATE_COLUMN, false, false);&lt;br /&gt;
}&amp;nbsp;else if ("ESC_ASC".equalsIgnoreCase(orderBy) ) {&lt;br /&gt;
&amp;nbsp; taskOrdering = new Ordering(TableConstants.WFTASK_EXPIRATIONDATE_COLUMN, true, false);
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
It is also possible to do a search and add a fixed where condition. For this we need to have a Predicate where we can add the states we want to see.&lt;br /&gt;
&lt;br /&gt;
List&amp;lt;String&amp;gt; correctStates = new ArrayList&amp;lt;String&amp;gt;();
 correctStates.add(IWorkflowConstants.TASK_STATE_ALERTED);
 correctStates.add(IWorkflowConstants.TASK_STATE_ASSIGNED);&lt;br /&gt;
&lt;br /&gt;
Predicate predicateBasic =
    new Predicate(&lt;br /&gt;
&amp;nbsp; TableConstants.WFTASK_STATE_COLUMN,&lt;br /&gt;
&amp;nbsp; Predicate.OP_IN,&lt;br /&gt;
&amp;nbsp; correctStates);&lt;br /&gt;
&lt;br /&gt;
predicateBasic.addClause(Predicate.AND,&lt;br /&gt;
&amp;nbsp;TableConstants.WFTASK_STATE_COLUMN,&lt;br /&gt;
&amp;nbsp;Predicate.OP_NEQ,&lt;br /&gt;
&amp;nbsp;IWorkflowConstants.TASK_STATE_STALE);&lt;br /&gt;
&lt;br /&gt;
This Predicate can be combined to an other Predicate with an other AND / OR and finally added to the queryTasks method of the workflowServiceClient.getTaskQueryService()&lt;br /&gt;
&lt;script src="https://gist.github.com/1291246.js?file=querytask.java"&gt;
&lt;/script&gt;
&lt;br /&gt;
&lt;br /&gt;
To make your life easier try to convert the tasks to your own entity &amp;nbsp;so you can use your own attributes instead of using text1 etc.&lt;br /&gt;
&lt;br /&gt;
You can download, fork or improve the Demo application at github &lt;a href="https://github.com/biemond/soa11g_examples/tree/master/HumanTaskListApp"&gt;https://github.com/biemond/soa11g_examples/tree/master/HumanTaskListApp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-6224112976060306780?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/6224112976060306780/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2011/10/working-with-human-worklist-api-and.html#comment-form" title="12 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/6224112976060306780?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/6224112976060306780?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/awIhSANa6lg/working-with-human-worklist-api-and.html" title="Working with the Human WorkList api and create your own WorkList application" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-v7jyJ9jPQUk/TpsvPBRaQlI/AAAAAAAAEX0/bICjjQLK6DM/s72-c/Screen+Shot+2011-10-16+at+9.20.57+PM.png" height="72" width="72" /><thr:total>12</thr:total><feedburner:origLink>http://biemond.blogspot.com/2011/10/working-with-human-worklist-api-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8BRXo8fyp7ImA9WhdUGU4.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-2196385146293292330</id><published>2011-10-06T22:44:00.000+02:00</published><updated>2011-10-06T22:44:14.477+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-06T22:44:14.477+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g soa suite" /><category scheme="http://www.blogger.com/atom/ns#" term="web services" /><category scheme="http://www.blogger.com/atom/ns#" term="OWSM" /><category scheme="http://www.blogger.com/atom/ns#" term="Axis" /><title>Calling an OWSM protected service with Axis2 and Rampart</title><content type="html">In a &lt;a href="http://biemond.blogspot.com/2011/09/calling-owsm-protected-service-with.html"&gt;previous blogpost&lt;/a&gt; I used Axis 1.4 in combination with WSS4J 1.5 and because Axis 1.4 is getting old so I tried the same with Axis 2 and Rampart which uses WSSJ. For all the security details like the username and how to generate certificates you can check see &lt;a href="http://biemond.blogspot.com/2011/09/calling-owsm-protected-service-with.html"&gt;my previous post&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Just like the Axis 1.4 post I will call a OSB service which has an oracle/wss10_username_token_with_message_protection_service_policy OWSM server policy.&lt;br /&gt;
&lt;br /&gt;
Before we start we need to download axis2 and the matching Rampart version, I use in this blogpost the 1.60 versions of axis2 and Rampart. &amp;nbsp;Copy the Rampart jars to the axis lib folder and the Rampart modules to the axis2 modules folder.&lt;br /&gt;
&lt;br /&gt;
Download the WSDL with it's XSDs from the Web Service.&lt;br /&gt;
&lt;br /&gt;
After that use this ANT build file to generate a ADB web service proxy client. The wsdl I used has the Customer.wsdl as name.&lt;br /&gt;
&lt;script src="https://gist.github.com/1268490.js?file=build.xml"&gt;
&lt;/script&gt;This OWSM policy have different signing and encryption options on the message of the request / response. So we need to move the right WS security policies / assertions from the Customer WSDL to a Request and Response policy file.&lt;br /&gt;
&lt;br /&gt;
Here is the Request Policy which matches with the&amp;nbsp;oracle/wss10_username_token_with_message_protection_service_policy Server policy. I also added the Rampart Configuration which contains references to the keystore and the username I used. Add the&amp;nbsp;sp:AsymmetricBinding, sp:SignedSupportingTokens and the sp:SignedParts &amp;amp; sp:EncryptedParts of the request from the customer wsdl to this policy file.&lt;br /&gt;
&lt;script src="https://gist.github.com/1268516.js?file=rampart_request.xml"&gt;
&lt;/script&gt;
We also need to do this for the Response. Add the&amp;nbsp;sp:AsymmetricBinding and the sp:SignedParts &amp;amp; sp:EncryptedParts of the response from the customer wsdl to this policy file.&lt;br /&gt;
&lt;script src="https://gist.github.com/1268531.js?file=response_policy.xml"&gt;
&lt;/script&gt;
Because we are using a keystore and a username token ( which got passwords ) we need to add a Password Callback class.&lt;br /&gt;
&lt;script src="https://gist.github.com/1268546.js?file=PWCallback.java"&gt;
&lt;/script&gt;
And here the test client which loads the Axis2 configuration with the Addressing and Rampart modules and also loads the Request and Response policy.&lt;br /&gt;
&lt;script src="https://gist.github.com/1268553.js?file=axis2testclient.java"&gt;
&lt;/script&gt;
Here you can download my code at&amp;nbsp;&lt;a href="https://github.com/biemond/soa11g_examples/tree/master/OWSM_AXIS"&gt;https://github.com/biemond/soa11g_examples/tree/master/OWSM_AXIS&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-2196385146293292330?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/2196385146293292330/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2011/10/calling-owsm-protected-service-with.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/2196385146293292330?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/2196385146293292330?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/qp900dM_Kzs/calling-owsm-protected-service-with.html" title="Calling an OWSM protected service with Axis2 and Rampart" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://biemond.blogspot.com/2011/10/calling-owsm-protected-service-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8HRXgycCp7ImA9WhdUEUs.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-6339518519110655233</id><published>2011-09-27T21:12:00.000+02:00</published><updated>2011-09-28T00:00:34.698+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-28T00:00:34.698+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g soa suite" /><title>Base64 encoding in Oracle BPEL 11g</title><content type="html">Sometimes in SOA Suite 11g you need to pass binary data to a web service reference. In SOA Suite 11g there is no standard XSLT or XPATH function which you can use. But in BEPL you can use embedded java, like &lt;a href="http://blogs.oracle.com/sdhurjati/entry/base_64_encoding"&gt;Sudheer&lt;/a&gt; already blogged about. He used the com.collaxa.common.util.Base64Encoder class which does not exists in 11g so I will use the new oracle.soa.common.util.Base64Encoder class. &lt;br /&gt;
&lt;br /&gt;
As input I will retrieve some xml from the inputVariable, get the xml as a string, encode this and set the value to a base64Binary variable.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1246375.js?file=bpel_base64_encoder.java"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-6339518519110655233?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/6339518519110655233/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2011/09/base64-encoding-in-oracle-bpel-11g.html#comment-form" title="13 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/6339518519110655233?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/6339518519110655233?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/Zu1gV0DQqi4/base64-encoding-in-oracle-bpel-11g.html" title="Base64 encoding in Oracle BPEL 11g" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><thr:total>13</thr:total><feedburner:origLink>http://biemond.blogspot.com/2011/09/base64-encoding-in-oracle-bpel-11g.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8GQXY6eSp7ImA9WhdVF08.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-8290580655300610676</id><published>2011-09-22T22:53:00.000+02:00</published><updated>2011-09-22T22:53:40.811+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-22T22:53:40.811+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic" /><category scheme="http://www.blogger.com/atom/ns#" term="SAML" /><title>Virtual Users with SAML in WebLogic</title><content type="html">A small blogpost how you can use virtual users on your SAML Service Provider WebLogic Server. A virtual user is a user who is authenticated on the SAML Identity Provider and this user is transfered ( with all his attributes and roles ) &amp;nbsp;in a SAML Token to the Service Provider, this user does not need to exists on the WebLogic server of the Service Provider.&lt;br /&gt;
Before you can use this feature you need to setup SAML 2.0 SSO on your WebLogic Domain. You can follow &lt;a href="http://biemond.blogspot.com/2009/09/sso-with-weblogic-1031-and-saml2.html"&gt;this blogpost&lt;/a&gt; for all the instructions. You can also do this with Web Services but then you need to follow&lt;a href="http://biemond.blogspot.com/2011/08/do-saml-with-owsm.html"&gt; this guide&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
First we need to enable &lt;b&gt;Generate Attributes&lt;/b&gt; on the Identity Provider Side.&lt;br /&gt;
Go to the myrealm security realm -&amp;gt; &amp;nbsp;Providers -&amp;gt; Credentials Mapping -&amp;gt; your SAML 2.0 Credential Mapping Provider -&amp;gt; Provider Specific.&lt;br /&gt;
Also do this on the imported Service Provider Partner located at the Management tab of your&amp;nbsp;SAML 2.0 Credential Mapping Provider. Open the&amp;nbsp;Service Provider Partner and also enable here&amp;nbsp;&lt;b&gt;Generate Attributes&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Next step is to configure the SAML Service Provider.&lt;br /&gt;
Go to the myrealm security realm -&amp;gt; &amp;nbsp;Providers -&amp;gt;&amp;nbsp;&amp;nbsp;Authentication -&amp;gt; your SAML 2.0 Identity Assertion Provider -&amp;gt; Management Tab. &lt;br /&gt;
Open your imported Identity Provider Partner configuration.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-nSOSWB-qwU0/TnudObofusI/AAAAAAAAEXE/0aedEJxKxVM/s1600/Screen+Shot+2011-09-22+at+10.39.54+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://3.bp.blogspot.com/-nSOSWB-qwU0/TnudObofusI/AAAAAAAAEXE/0aedEJxKxVM/s640/Screen+Shot+2011-09-22+at+10.39.54+PM.png" width="572" /&gt;&lt;/a&gt;&lt;/div&gt;
Enable&lt;b&gt; Virtual User&lt;/b&gt; and also enable &lt;b&gt;Process Attributes&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Now we need to add an extra WebLogic SAML Authentication Provider. This provider will process the virtual user SAML token with all its attributes and roles.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-XQvlJzNIiWk/Tnue40HNxcI/AAAAAAAAEXI/XJ49SzyIUqA/s1600/Screen+Shot+2011-09-22+at+10.47.12+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="338" src="http://1.bp.blogspot.com/-XQvlJzNIiWk/Tnue40HNxcI/AAAAAAAAEXI/XJ49SzyIUqA/s400/Screen+Shot+2011-09-22+at+10.47.12+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
Set the Control Flag to Sufficient also change the other authentication provider from Required to Sufficient.&lt;br /&gt;
&lt;br /&gt;
That's all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-8290580655300610676?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/8290580655300610676/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2011/09/virtual-users-with-saml-in-weblogic.html#comment-form" title="16 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/8290580655300610676?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/8290580655300610676?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/VwKj2gjMyvQ/virtual-users-with-saml-in-weblogic.html" title="Virtual Users with SAML in WebLogic" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-nSOSWB-qwU0/TnudObofusI/AAAAAAAAEXE/0aedEJxKxVM/s72-c/Screen+Shot+2011-09-22+at+10.39.54+PM.png" height="72" width="72" /><thr:total>16</thr:total><feedburner:origLink>http://biemond.blogspot.com/2011/09/virtual-users-with-saml-in-weblogic.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8DRHwzeCp7ImA9WhdUGU4.&quot;"><id>tag:blogger.com,1999:blog-1839316484051079047.post-8023429814046998635</id><published>2011-09-12T22:07:00.001+02:00</published><updated>2011-10-06T22:44:35.280+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-06T22:44:35.280+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper 11g soa suite" /><category scheme="http://www.blogger.com/atom/ns#" term="web services" /><category scheme="http://www.blogger.com/atom/ns#" term="OWSM" /><category scheme="http://www.blogger.com/atom/ns#" term="Axis" /><title>Calling an OWSM protected service with Axis 1.4 and WSS4J</title><content type="html">Not the whole world uses Fusion Middleware so sometimes it is necessary to call an Oracle Web Service Manager protected Web Service from a different java framework like Apache Axis 1.4 combined with WSS4J 1.5. In this blogpost I will show you the steps how to do this.&lt;br /&gt;
&lt;br /&gt;
First you can't use every OWSM policy with Axis. Oracle made an &lt;a href="http://download.oracle.com/docs/cd/E21764_01/web.1111/e16098/interop_axis.htm#CHDCICGG"&gt;interoperability documentation&lt;/a&gt;&amp;nbsp;page what is possible with Axis 1.4 and OWSM 11g, please check this first.&lt;br /&gt;
&lt;br /&gt;
In this post I will use the &lt;b&gt;oracle/wss10_username_token_with_message_protection_service_policy&lt;/b&gt;&amp;nbsp;OWSM server policy on a protected OSB proxy service and will call this from axis / wss4j and these frameworks will use the following policies UsernameToken, Timestamp, Signature and Encrypt.&lt;br /&gt;
&lt;br /&gt;
In this demo I will used self signed keys and these are generated by the keytool of java 1.6. Basically I create two keystores and exchange the public keys. The server keystore is imported in the OWSM configuration page and the client keystore will be used in Axis.&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias serverKey -keyalg "RSA" -sigalg "SHA1withRSA" -dname "CN=server, C=US" -keypass welcome -keystore c:\temp\server.jks -storepass welcome -validity 3650&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias clientKey -keyalg "RSA" -sigalg "SHA1withRSA" -dname "CN=client, C=US" -keypass welcome -keystore c:\temp\client_2.jks -storepass welcome  -validity 3650&amp;nbsp;
&lt;br /&gt;
&lt;br /&gt;
keytool -exportcert -alias serverKey -storepass welcome -keystore c:\temp\server.jks -file c:\temp\server.cer&lt;br /&gt;
&lt;br /&gt;
keytool -exportcert -alias clientKey -storepass welcome -keystore c:\temp\client_2.jks -file c:\temp\client.cer&lt;br /&gt;
&lt;br /&gt;
keytool -import -alias serverKey -file c:\temp\server.cer -storepass welcome -keystore c:\temp\client_2.jks
keytool -import -alias clientKey -file c:\temp\client.cer -storepass welcome -keystore c:\temp\server.jks&amp;nbsp;
&lt;br /&gt;
&lt;br /&gt;
keytool -list -storepass welcome -keystore c:\temp\client_2.jks&lt;br /&gt;
keytool -list -storepass welcome -keystore c:\temp\server.jks&lt;br /&gt;
&lt;br /&gt;
For this policy we also need to create a user called osbbook and with password weblogic1 in the myrealm security realm of WebLogic.&lt;br /&gt;
&lt;br /&gt;
The next step is to check if all is fine by creating an OWSM client in Jdeveloper 11g and using the oracle/wss10_username_token_with_message_protection_client_policy OWSM client policy . First generate a web service client and use the following code to check if it works.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1249002.js?file=CustomerManagementSOAPQSPortClient.java"&gt;&lt;/script&gt;
&lt;br /&gt;
If all is fine we can go to the Axis and WSS4J part.&lt;br /&gt;
We need to download the following software frameworks from Apache.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://axis.apache.org/axis/java/releases.html"&gt;Axis 1.4&lt;/a&gt;, not Axis2&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ws.apache.org/wss4j/download.html"&gt;WSS4J 1.5&lt;/a&gt;, Not the 1.6 version&lt;/li&gt;
&lt;li&gt;&lt;a href="http://santuario.apache.org/download.html"&gt;Apache XML Security &lt;/a&gt;for Java 1.4.5&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Download the WSDL and it's XML Schemas of the remote service and fix the schema imports of the WSDL. Put these files in your project folder.&lt;br /&gt;
&lt;br /&gt;
The first step is to generate a Web Service Proxy client based on this WSDL, for this we don't use JAX-WS but we will use the AXIS libraries.&lt;br /&gt;
Here is the ANT build file to generate the Java classes from WSDL with Axis 1.4, &amp;nbsp;I put the build.xml in my project folder of JDeveloper.
&lt;br /&gt;
&lt;script src="https://gist.github.com/1249007.js?file=build.xml"&gt;&lt;/script&gt;
&lt;br /&gt;
Add the following libraries to the project. Wss4j-1.5.12.jar, Axis.jar, Jaxrpc.jar, Saaj.jar, Wsdl4j-1.5.1.jar, Commons-discovery-0.2.jar, Commons-logging-1.0.4.jar, Log4j-1.2.8.jar, Javax.activation_1.1.0.0_1-1.jar, Javax.mail_1.1.0.0_1-4-1.jar ,Xmlsec-1.4.5.jar, Xml-apis-1.3.03.jar, Serializer-2.7.1.jar, Xalan-2.7.1.jar, XercesImpl-2.9.1.jar&lt;br /&gt;
&lt;br /&gt;
We also need to create a security property file called crypto.properties and put this in the src folder. This file contains the keystore path with its keystore password.
&lt;br /&gt;
&lt;script src="https://gist.github.com/1249012.js?file=crypto.properties"&gt;&lt;/script&gt;
&lt;br /&gt;
Create a Password callback class for all the password used in this ws client (  the password of the usernametoken and the keystore passwords )
&lt;br /&gt;
&lt;script src="https://gist.github.com/1249018.js?file=PWCallback.java"&gt;&lt;/script&gt;
We also need an Axis deployment file WSDD with the WSS4J configuration, put this file called client_deployment.wsdd in your project folder.&lt;br /&gt;
&lt;br /&gt;
For the response I need to do the following policies Signature, Timestamp and then Encrypt , this is wrong in the documentation
&lt;br /&gt;
&lt;script src="https://gist.github.com/1249027.js?file=deployment.xml"&gt;&lt;/script&gt;
&lt;br /&gt;
Use the log4j.properties to see all the messages, else you won't see the debug information of WSS4J and Axis 1.4.&lt;br /&gt;
Put this file in the src folder.
&lt;br /&gt;
&lt;script src="https://gist.github.com/1249030.js?file=log4j.properties"&gt;&lt;/script&gt;
&lt;br /&gt;
And at last the Axis test client where we load the client_deployment.wsdd file.
&lt;br /&gt;
&lt;script src="https://gist.github.com/1249032.js?file=Test.java"&gt;&lt;/script&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1839316484051079047-8023429814046998635?l=biemond.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://biemond.blogspot.com/feeds/8023429814046998635/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://biemond.blogspot.com/2011/09/calling-owsm-protected-service-with.html#comment-form" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/8023429814046998635?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1839316484051079047/posts/default/8023429814046998635?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Java/OracleSoaBlog/~3/E-xIof4MSy4/calling-owsm-protected-service-with.html" title="Calling an OWSM protected service with Axis 1.4 and WSS4J" /><author><name>Edwin Biemond</name><uri>https://profiles.google.com/113701679510703185415</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-uH4MAfpWMsI/AAAAAAAAAAI/AAAAAAAAAAA/SbF6ifmaSfU/s512-c/photo.jpg" /></author><thr:total>8</thr:total><feedburner:origLink>http://biemond.blogspot.com/2011/09/calling-owsm-protected-service-with.html</feedburner:origLink></entry></feed>

