<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AMIS Technology Blog</title>
	<atom:link href="http://technology.amis.nl/feed/" rel="self" type="application/rss+xml" />
	<link>http://technology.amis.nl</link>
	<description></description>
	<lastBuildDate>Mon, 21 May 2012 18:59:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>The Future of Forms &#8211; presentations and other resources from the May 15th event at AMIS</title>
		<link>http://technology.amis.nl/2012/05/20/the-future-of-forms-presentations-and-other-resources-from-the-may-15th-event-at-amis/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-future-of-forms-presentations-and-other-resources-from-the-may-15th-event-at-amis</link>
		<comments>http://technology.amis.nl/2012/05/20/the-future-of-forms-presentations-and-other-resources-from-the-may-15th-event-at-amis/#comments</comments>
		<pubDate>Sun, 20 May 2012 19:49:32 +0000</pubDate>
		<dc:creator>Lucas Jellema</dc:creator>
				<category><![CDATA[ADF & JHeadstart]]></category>
		<category><![CDATA[Devel. + PL/SQL tools]]></category>
		<category><![CDATA[Java, JEE, OAS and WebLogic Server]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[forms modernization]]></category>
		<category><![CDATA[forms2adf]]></category>
		<category><![CDATA[formspider]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[jheadstart]]></category>
		<category><![CDATA[oraformsfaces]]></category>
		<category><![CDATA[oraplayer]]></category>
		<category><![CDATA[pitss]]></category>
		<category><![CDATA[yo!forms]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/?p=17953</guid>
		<description><![CDATA[Tuesday May 15th, Nieuwegein &#8211; The Netherlands: During an intense day  and evening, close to 120 Forms developers and architects gathered for discussions, explorations and exchange of experience around the use of Oracle Forms and more importantly: the future of the current Forms applications,  [...]]]></description>
			<content:encoded><![CDATA[<p>Tuesday May 15th, Nieuwegein &#8211; The Netherlands: During an intense day  and evening, close to 120 Forms developers and architects gathered for discussions, explorations and exchange of experience around the use of Oracle Forms and more importantly: the future of the current Forms applications, Forms-using organizations and Forms developers. Various scenarios, approaches and tools and technology stacks were discussed, hybrid landscapes sketched and pros and cons evaluated.</p>
<p>An interesting line up of international experts on Forms had joined their collective forces and minds to present the most complete overview of the Future of Forms available anywhere in the world today. From relatively new and specialized solutions such as OraPlayer and Yo!Forms to more proven (OraFormsFaces) and mature, architecturally driven future scenarios from PITSS and Oracle Consulting complemented with Forms modernization and integration stories as well as the official strategy from Oracle product management.</p>
<p>This article provides access to most presentations that were on offer during this day. Some other resources are listed as well.</p>
<p><span id="more-17953"></span></p>
<p>Every speaker did a general presentation of about 30 minutes as an introduction to his or her special approach. Most speakers did a second presentation of 45 minutes in break out sessions to cover in more detail what was discussed briefly and as a teaser in the general session. Most speakers also did a hands-on, technical deep dive or Q&amp;A session in the evening for an even more focused audience.</p>
<h3>General session</h3>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/FormstoFuture-historyevolutionarchitectureandfuture_15thmay2012.pdf" target="_blank">Forms to Future &#8211; history, evolution, architecture and future &#8211; Lucas Jellema</a></p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Grant_Ronald_SkypeSlides_Forms_Strategy_Keynote.pdf" target="_blank">Oracle Forms Product Strategy and Statement of Direction &#8211; Grant Ronald</a></p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/FrancoisDegrelle_LAF_Presentation.pdf" target="_blank">Modernizing Forms using Pluggable Java Components and the Forms Look and Feel project &#8211; François Degrelle</a></p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/OraPlayer_30_final.pdf" target="_blank">To infinity and beyond: Extend the life of your Oracle Forms application by running your existing Forms from next generation technologies/platforms without migration &#8211; Mia Urman</a> (and the video for the demo Mia showed: <a href="http://technology.amis.nl/wp-content/uploads/2012/05/OraPlayerMobileFull_hd.zip" target="_blank">download 2Mb video</a>)</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Holland_Forms2ADF_PITSS_30mins.pdf" target="_blank">Forms 11g, ADF and APEX: Co-existence in Enterprise Applications &#8211; Madi Serban</a></p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/quintessence-yoforms.pdf">Rendering Forms to alternative platforms using YoForms &#8211; Oliver Tickell and Don Smith</a></p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/OraFormsFaces-Part1.pdf" target="_blank">Partial and or Gradual migration by embedding existing Forms in new UI technology &#8211; Wilfred van der Deijl</a></p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/FORMS2ADF_AMIS2012.pdf" target="_blank">JHeadstart: Real world experiences for migrating Forms to ADF &#8211; Steven Davelaar</a></p>
<p>&nbsp;</p>
<h3>Parallel Break-Out sessions</h3>
<p>Modernizing Forms using Pluggable Java Components and the Forms Look and Feel project &#8211; François Degrelle (this session consisted of demo, Q&amp;A and technical discussions; no slides are available)</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/FORMS2ADF_AMIS2012.pdf" target="_blank">JHeadstart: Real world more detailed experiences for migrating Forms to ADF &#8211; Steven Davelaar</a> (this session was a more detailed rendition of the general session by Steven Davelaar; there is no specific slide set for this session)</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/quintessence-yoforms.pdf">Demonstrating YoForms &#8211; on your laptop/ smartphone &#8211; Oliver Tickell and Don Smith</a> (same slide-deck as for the general session)</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/OraFormsFaces-Part2.pdf" target="_blank">Embedding existing Forms in new ADF applications using OraFormsFaces for perfect co-existence &#8211; Wilfred van der Deijl</a></p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/FutureOfForms_Serban_2.pdf" target="_blank">Forms 11g, ADF and APEX: Co-existence in Enterprise Applications &#8211; Madi Serban</a></p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/OraPlayer_45_Final.pdf" target="_blank">Run Oracle Forms business process from any UI (or service): Integrate, Go Mobile, SOA or BPM in minutes without migration &#8211; Mia Urman</a></p>
<p>Note: this session also showcased a number of demonstrations, available on YouTube:<br />
1) <a href="http://www.youtube.com/watch?v=PcBu8xBJMDw">Recording a simple Oracle Forms scenario</a> using the unique OraPlayer Toolbar ;<br />
2) Using the OraPlayer generator wizard to <a href="http://www.youtube.com/watch?v=0YHHBcxG2kI">Wrap the scenario file recorded in step 1 with a Java API, then import it into Jdeveloper to create an ADF DataControl</a>;<br />
3) Create a default page in ADF to attach to the Forms business logic &#8211; <a href="http://youtu.be/A8eYcHWcx7s">http://youtu.be/A8eYcHWcx7s</a> ;<br />
4) <a href="http://www.youtube.com/watch?v=rscmJdOoXjA">Running an ADF system that runs 2 seperate Oracle Forms scenario&#8217;s from ADF buttons and ADF text boxes binded to OraPlayer output parameters (Oracle forms wrapped by OraPlayer)</a></p>
<p>&nbsp;</p>
<h3>Additional Resources</h3>
<p>Some additional resources around the Future of Forms are listed here:</p>
<p><a href="https://twitter.com/#!/search/realtime/fof12" target="_blank">Tweets on the Future of Forms event</a></p>
<p><a href="http://www.gartner.com/technology/reprints.do?id=1-198LN9P&amp;ct=120208&amp;st=sb" target="_blank">Gartner Report on Oracle Forms modernization options</a></p>
<p><a href="http://www.oracle.com/technetwork/issue-archive/2010/toolssod-3-129969.pdf" target="_blank">Oracle Forms Product Statement of Direction</a></p>
<p><a href="http://oracleformsinfo.wordpress.com/2012/05/16/future-so-bright-i-got-to-wear-shades-thoughts-on-future-of-forms-conference-may-15/" target="_blank">Mia Urman&#8217;s blogpost on the 15th of May event</a></p>
<p><a href="http://www.quintessencesystems.com/snippets.php" target="_blank">Olivier Tickell&#8217;s article on the Future of Forms event</a></p>
<p><a href="https://blogs.oracle.com/grantronald/entry/is_this_the_best_forms" target="_blank">Grant Ronald&#8217;s blog article announcing the event</a></p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/ODTUG-Technical-JournalQ1-2012-TheFutureOfForms.pdf" target="_blank">Lucas Jellema &#8211; The Future of Forms &#8211; Article in ODTUG Technical Journal, Q1 2012</a></p>
<p><a href="http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/459564_en-gb.pdf" target="_blank">Grant Ronald &#8211; Ten Years Younger -The Oracle Forms Makeover &#8211; Article in ODTUG Technical Journal, Q3 2011</a></p>
<p><a href="http://www.slideshare.net/lucasjellema/the-future-of-forms-is-forms-and-some-friends-ukoug-2011-with-grant-ronald" target="_blank">The Future of Forms is …. Forms (and friends) &#8211; Presentation on Slideshare from UKOUG 2011 by Grant Ronald and Lucas Jellema</a></p>
<h3>Websites and blogs for speakers, solutions and vendors</h3>
<p><a href="http://fdtool.free.fr/LAF/doc/Oracle_Forms_Look_and_Feel_project.htm" target="_blank">Forms Look and Feel Project</a></p>
<p><a href="http://forms.pjc.bean.over-blog.com/" target="_blank">Oracle Forms Community &#8211; Pluggable Java Components &amp; Java Beans; Library</a></p>
<p><a href="http://fdegrelle.over-blog.com/" target="_blank">Francois Degrelle&#8217;s Blog</a></p>
<p><a href="http://pitss.com/us/products/pitss-con-overview/" target="_blank">PITSS.CON</a> (Madi Serban)</p>
<p><a href="http://www.quintessencesystems.com/yoforms.php" target="_blank">YO!Forms</a> (Oliver Tickell and Don Smith)</p>
<p><a href="http://www.quintessencesystems.com/snippets.php" target="_blank">Snippets &#8211; blog by Oliver Tickell</a></p>
<p><a href="http://www.oracle.com/technetwork/developer-tools/jheadstart/overview/index.html" target="_blank">JHeadstart 11g Product Center on OTN</a></p>
<p><a href="http://blogs.oracle.com/jheadstart/" target="_blank">Oracle JHeadstart Blog</a> (Steven Davelaar et al.)</p>
<p><a href="http://oracleformsinfo.wordpress.com/" target="_blank">Mia Urman&#8217;s Blog</a></p>
<p><a href="http://oraplayer.com/" target="_blank">OraPlayer</a></p>
<p><a href="http://technology.amis.nl/" target="_blank">AMIS Technology Blog</a> (Lucas Jellema et al.)</p>
<p><a href="http://www.commit-consulting.com/oraformsfaces/" target="_blank">OraFormsFaces</a> (Wilfred van der Deijl)</p>
<p><a href="http://theformspider.com/" target="_blank">Formspider</a></p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2012/05/20/the-future-of-forms-presentations-and-other-resources-from-the-may-15th-event-at-amis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jekyll and Hyde or The case of the multiple identity syndrome &#8211; Using Identity Cross References in Oracle 11g SOA Suite</title>
		<link>http://technology.amis.nl/2012/05/19/jekyll-and-hyde-or-the-case-of-the-multiple-identity-syndrome-using-identity-cross-references-in-oracle-11g-soa-suite/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=jekyll-and-hyde-or-the-case-of-the-multiple-identity-syndrome-using-identity-cross-references-in-oracle-11g-soa-suite</link>
		<comments>http://technology.amis.nl/2012/05/19/jekyll-and-hyde-or-the-case-of-the-multiple-identity-syndrome-using-identity-cross-references-in-oracle-11g-soa-suite/#comments</comments>
		<pubDate>Sat, 19 May 2012 05:23:12 +0000</pubDate>
		<dc:creator>Lucas Jellema</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SOA & Oracle Fusion Middleware]]></category>
		<category><![CDATA[cross reference]]></category>
		<category><![CDATA[mediator]]></category>
		<category><![CDATA[soa suite]]></category>
		<category><![CDATA[soa suite 11g]]></category>
		<category><![CDATA[transformation]]></category>
		<category><![CDATA[xref]]></category>
		<category><![CDATA[xslt]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/?p=17951</guid>
		<description><![CDATA[&#160;
The 11g SOA Suite brings us the Service Fabric that has messages flowing from one SCA Service Component to the next &#8211; Mediators and BPEL processes are called from inbound adapter services or external consumers and may call out to references to external providers or outbound adapter service. In  [...]]]></description>
			<content:encoded><![CDATA[<h3>&nbsp;</h3>
<p>The 11g SOA Suite brings us the Service Fabric that has messages flowing from one SCA Service Component to the next &#8211; Mediators and BPEL processes are called from inbound adapter services or external consumers and may call out to references to external providers or outbound adapter service. In this idyllic world, much of the work actually going on is the mapping of messages from one (service’s) domain to the next. Of course we try to converse as much as possible in terms of canonical message structures, but sooner or later we come to the boundary of our domain and need to transform again to some domain or service specific message structure.<br />
<h3>Domain Value Mapping</h3>
</p>
<p>In addition to the mapping of the message structure, we usually have to put up with some level of value mapping as well: different domains frequently use -slightly or hugely -different labels for the same concept. One domain may use M, F and N for gender whereas another has MALE, FEMALE and UNKNOWN or even MAN, WOMAN and UNDECIDED. Messages that have to convey the gender will have to abide by the vocabulary in the target domain. That means that frequently message have to undergo domain value mapping in addition to plain structure-based transformation. The Mappings in the SOA Suite can make use of Domain Value Maps &#8211; dictionaries of domain specific values that are mapped across domains &#8211; and associated XPath functions that can do lookups in the DVM to replace a value from one domain &#8211; M &#8211; with the corresponding value from another domain &#8211; MALE.<br />
<h3>Identity Mapping</h3>
</p>
<p>A special type of value mapping concerns identity mapping. It is not uncommon for entities to exist in various domains. Patients, Suppliers, Doctors, Equipment and the likes more often than not are recorded in multiple systems &#8211; for example in the Financial and HR system, the Planning and Medical Information Systems. A specific entity has an identifier in each of these systems. However, this identifier &#8211; frequently a meaningless numerical value &#8211; is different in each system. For example: Dr. Boris Jankovic is known as 90210 in the Financial domain, has id-value 666 in the Planning application and is HMSA007 in the Medical Information system. When a message concerning this doctor is sent between services, we need to map the good doctor’s identity to maintain a reference to the same person in the context of each domain. </p>
<p>The Cross Reference functionality that the SOA Suite provides can be used to map identities across domains. This facility uses a database table &#8211; default name is XREF_DATA &#8211; that contains records per entity with the identity values in all domains. The definition of a <i>cross reference</i> is stored in a file, for example Doctor.xref. The file contains the name of the cross reference as well as all the End Systems (identity domains) that are mapped. This file is exposed from the MDS, to be used across components and composite applications. In addition to all real identity domains, it is a good idea to add a ‘canonical’ domain that contains the common or generic identifier that is used to identify the entity in all canonical, domain independent, messages that flow through the service fabric. </p>
<p>This article discusses and demonstrates the use of this cross reference functionality</p>
<p><span id="more-17951"></span>
<p>The Cross Reference Table then logically looks like this:<br />
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="122">&nbsp;</td>
<td valign="top" width="102">
<p>FINANCIAL</p>
</td>
<td valign="top" width="161">
<p>CANONICAL</p>
</td>
<td valign="top" width="123">
<p>PLANNING</p>
</td>
<td valign="top" width="130">
<p>MEDICAL</p>
</td>
</tr>
<tr>
<td valign="top" width="122">
<p>Boris Jankovic, Shrink</p>
</td>
<td valign="top" width="102">
<p>90210</p>
</td>
<td valign="top" width="161">
<p>92182172178326721</p>
</td>
<td valign="top" width="123">
<p>666</p>
</td>
<td valign="top" width="130">
<p>HMSA007</p>
</td>
</tr>
<tr>
<td valign="top" width="122">
<p>John Minder, Pediatrician</p>
</td>
<td valign="top" width="102">
<p>71243</p>
</td>
<td valign="top" width="161">
<p>82172178817273631</p>
</td>
<td valign="top" width="123">
<p>-</p>
</td>
<td valign="top" width="130">
<p>MYMY123</p>
</td>
</tr>
</tbody>
</table>
<p>Note that not all entities need to exist &#8211; already or at all &#8211; in all End Systems.<br />
<h3>Interacting with the Cross Reference at run time</h3>
</p>
<p>The mapping itself is invoked through XPath functions in Mappings between XSD documents representing distinct (identity) domains. There is of course an XPath function to find the identity of an entity in a certain domain given the identity in another domain: </p>
<p>xref:lookupXRef(&#8220;Doctor.xref&#8221;,&#8221;FINANCIAL&#8221;,&#8221;90210&#8243;,&#8221;CANONICAL&#8221;,true()) </p>
<p>This function call will access the Doctor cross reference to try to find the canonical identity for a Doctor identified by 90210 in the Financial domain. If no identity is found for this entity, an exception will be thrown, due to the last parameter being set to true. Note how similar this function is to the dvm:lookupValue() function. </p>
<p>However, the values in the Cross Reference are not static, as new entities are created, updated and even removed all the time. We have a set of XPath functions at our disposal to add, modify and remove entries from the Cross Reference (table). This allows us for example to ensure that when the ‘CreateDoctorInPlanningSystem’ service is invoked from the Financial domain, the Doctor is added to the Cross Reference with her identity in the Financial domain along with the new identity in the Planning System. The XPath function populateXRefRow is used like this to create a new record in the Cross Reference that contains the FINANCIAL identity as well as the CANONICAL identity. The latter identity is generated as GUID value. This value is also returned by the function and assigned in this XSL snippet to the identifier element in the target document: </p>
<p><font face="Courier New">&lt;inp1:identifier&gt;</font> </p>
<p><font face="Courier New">&lt;xsl:value-of select=&#8217;xref:populateXRefRow(&#8220;Doctor.xref&#8221;,&#8221;FINANCIAL&#8221;,/top:FinDoctorsCollection/top:FinDoctors/top:id,&#8221;CANONICAL&#8221;,orcl:generate-guid(),&#8221;ADD&#8221;)&#8217;/&gt;</font> </p>
<p><font face="Courier New">&lt;/inp1:identifier&gt;</font> </p>
<p>When we want to add the identity in another End System for an entity that already exists in the Cross Reference, we can use this XPath expression: </p>
<p><font face="Courier New">xref:populateXRefRow(&#8220;Doctor.xref&#8221;,&#8221;CANONICAL&#8221;,$initial.request/inp1:Doctor/inp1:identifier,&#8221;PLANNING&#8221;,/db:OutputParameters/db:ADD_STAFF_MEMBER,&#8221;LINK&#8221;)</font> </p>
<p>Here we add the value in element ADD_STAFF_MEMBER as the Identity in the PLANNING domain to the Cross Reference record that has the value in inp1:identifier as its CANONICAL identity.<br />
<h3>Example of using the Cross Reference facility</h3>
</p>
<p>Let’s take a closer look at an example. The hospital has a FINANCIAL application; this is where doctors &#8211; records for doctors working in the hospital &#8211; are first created and get assigned their first identity. When a new doctor is created, this new doctor needs to be registered in the PLANNING application. This Planning domain has its own stubborn way of assigning identities to its records, so the doctor will get a second identity when registered in the Planning application. </p>
<p>We need to make sure that future message exchange between FINANCIAL and PLANNING regarding a specific doctor are correctly interpreted. Therefore, we need to build the Cross Reference to map doctor identities from and to these two systems. We will create a Composite Application that finds new doctor records in the FINANCIAL system and propagates them to PLANNING, meanwhile recording the identities from both FINANCIAL and PLANNING in the Cross Reference, as well as a canonical identity, assigned by the Composite Application. </p>
<p>The steps we go through: </p>
<p>Start JDeveloper; Create a new Application; Create a new SOA Project with Composite Application </p>
<p>Create a Mediator called PropagateAndXRefFDoctor. Its WSDL will be specified later. </p>
<p>Create a new Cross Reference, called Doctor: </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image002.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image002_thumb.jpg" width="535" height="382"/></a> </p>
<p>Specify the first two End Systems &#8211; FINANCIAL and PLANNING. The press OK. </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image004.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image004_thumb.jpg" width="428" height="310"/></a> </p>
<p>In the property page that now appear, add the third End System: CANONICAL. </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image006.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image006_thumb.jpg" width="607" height="183"/></a> </p>
<p>Create an XSD with the Canonical Doctor message format: </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image008.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image008_thumb.jpg" width="379" height="312"/></a> </p>
<p>Now we can create the WSDL for Mediator PropagateAndXRefFDoctor based on this XSD. The Mediator’s OfferNewDoctorForProcessing operation is one way (to reply) and takes a Canonical Doctor message as input. </p>
<p>Create a Database Adapter Service that polls for new records in the FIN_DOCTORS table (using the XREFFED_YN column as the logical delete flag). Note: the DoctorTables.sql script contains the DDL and DML statements for creating the table and its data. </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image010.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image010_thumb.jpg" width="413" height="178"/></a> </p>
<p>Now wire the Database Adapter Service ReadNewDoctorRecords to a new Mediator ProcessNewDoctorsFromFinancialDomain.This Mediator has a simple task: map the messages from the Database Adapter Service to the Canonical Doctor format.  </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image012.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image012_thumb.jpg" width="425" height="292"/></a> </p>
<p>Create the required mapping DoctorFromFinancialDB_To_CanonicalDoctor.xsl.  </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image014.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image014" border="0" alt="clip_image014" src="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image014_thumb.jpg" width="642" height="164"/></a> </p>
<p>The key element in this mapping is the function in the mapping from top:id in the source tree to inp1:identifier in the target tree: the code under the icon is: </p>
<p><font face="Courier New">&lt;inp1:identifier&gt;</font> </p>
<p><font face="Courier New">&lt;xsl:value-of select=&#8217;xref:populateXRefRow(&#8220;Doctor.xref&#8221;,&#8221;FINANCIAL&#8221;,/top:FinDoctorsCollection/top:FinDoctors/top:id,&#8221;CANONICAL&#8221;,orcl:generate-guid(),&#8221;ADD&#8221;)&#8217;/&gt;</font> </p>
<p><font face="Courier New">&lt;/inp1:identifier&gt;</font> </p>
<p>Here we use the populateXRefRow function to add a row to the Cross Reference Doctor. This new row has an Identity value for the FINANCIAL End System &#8211; derived from the top:id element which has the value from the FIN_DOCTORS table’s ID column for this doctor &#8211; and the CANONICAL identity, derived using the generate-guid() XPath function. When a message has been mapped using this XSL Map, an entry is created in the Cross Reference that maps a doctor between FINANCIAL and CANONICAL (two database records are created for this). </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/image2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/05/image_thumb2.png" width="654" height="445"/></a> </p>
<p>Wire this Mediator top to the second Mediator PropagateAndXRefFDoctor that deals in canonical messages only: </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image018.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image018" border="0" alt="clip_image018" src="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image018_thumb.jpg" width="429" height="224"/></a> </p>
<p>Now create a new Database Adapter Service CreateDoctorInPlanningDomain, outbound, that calls the Database PLSQL function add_staff_member, that will add the doctor to the table PLN_STAFF. The function will assign an identity to the doctor record in the PLANNING domain. It will return this identity to the invoker of the function. </p>
<p><font face="Courier New">create or replace function add_staff_member</font> </p>
<p><font face="Courier New">( p_given_name in varchar2</font> </p>
<p><font face="Courier New">, p_family_name in varchar2</font> </p>
<p><font face="Courier New">, p_staff_role in varchar2</font> </p>
<p><font face="Courier New">) return varchar2</font> </p>
<p><font face="Courier New">is</font> </p>
<p><font face="Courier New">l_id pln_staff.id%type;</font> </p>
<p><font face="Courier New">begin</font> </p>
<p><font face="Courier New">l_id := substr(extract(day from sysdate )|| to_char(sysdate,&#8217;SS&#8217;)||p_family_name,1,15);</font> </p>
<p><font face="Courier New">insert into pln_staff</font> </p>
<p><font face="Courier New">(id, given_name, family_name, staff_role)</font> </p>
<p><font face="Courier New">values </font> </p>
<p><font face="Courier New">( l_id</font> </p>
<p><font face="Courier New">, p_given_name, p_family_name, p_staff_role</font> </p>
<p><font face="Courier New">);</font> </p>
<p><font face="Courier New">return l_id;</font> </p>
<p><font face="Courier New">end;</font> </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image020.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image020" border="0" alt="clip_image020" src="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image020_thumb.jpg" width="681" height="193"/></a> </p>
<p>Create the mapping from the Canonical Doctor message to the Input Message. This mapping is straightforward, no Cross Reference issues at this point. </p>
<p>However, the return message from the CreateDoctorInPlanningDomain service is something else altogether: that message contains the identity assigned to the doctor in the PLANNING domain. And that identity should somehow be added to the Cross Reference, associating it with the Canonical and the Financial identities for this same doctor. </p>
<p>We need to invoke the XPath function populateXRef() again, this time in the mode “LINK” &#8211; since we want to link a new identity value reference to an already existing entity record in the cross reference. The record we want to add this link to is found using the Canonical Identity &#8211; that we have in the Canonical Doctor message that was the input for the PropagateAndXRefFDoctor Mediator.  </p>
<p>We first need the context for this XPath function to be executed. That means there has to be a Mapping for the response from the CreateDoctorInPlanningDomain service to another target service. The Mediator itself is one-way, it does not return a reply. So what we can do is send the response to another target service, meaningful or not, to have the identity in the PLANNING domain added to the Cross Reference. </p>
<p>Let’s create a File Adapter Service &#8211; WriteNewXReffedDoctorToLogFile &#8211; that writes every new doctor with his or her various identities to a log file. We go through the usual steps: create a sample file, run the File Adater Configuration Wizard and have it bring up the Native Format Builder wizard. Pretty soon we have the outbound File Adapter Service available. </p>
<p>We can now configure the Synchronous Reply part of the Routing Rule in the PropagateAndXRefDoctor Mediator. The target service for the reply is the outbound File Adapter Service. </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/image3.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/05/image_thumb3.png" width="650" height="362"/></a> </p>
<p>In order to have access to the original request message sent to the mediator in the mapping of the reply from CreateDoctorInPlanningDomain to the WriteNewXReffedDoctorToLogFile service, we need to check the checkbox Include Request in Reply Payload when creating the mapping. </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/image4.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/05/image_thumb4.png" width="610" height="206"/></a> </p>
<p>The Canonical Doctor Request message is available in the $initial.request XSL variable and is visible in the Source Tree in the visual mapper. </p>
<p>We will need to special XPath functions this time: one that adds the PLANNING identity to the Cross Reference, in much the same way as we saw before &#8211; using the Canonical Identifier from the original message: </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/image5.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/05/image_thumb5.png" width="597" height="553"/></a> </p>
<p>The XPath function we need here is: </p>
<p><font face="Courier New">&lt;imp1:PlanningIdentifier&gt;</font> </p>
<p><font face="Courier New">&lt;xsl:value-of select=&#8217;xref:populateXRefRow(&#8220;Doctor.xref&#8221;,&#8221;CANONICAL&#8221;,$initial.request/inp1:Doctor/inp1:identifier,&#8221;PLANNING&#8221;,/db:OutputParameters/db:ADD_STAFF_MEMBER,&#8221;LINK&#8221;)&#8217;/&gt;</font> </p>
<p><font face="Courier New">&lt;/imp1:PlanningIdentifier&gt;</font> </p>
<p>We use the CANONICAL identifier to find the proper record in the Cross Reference Doctor.xref and add a link to this same record for the PLANNING identifier found in the ADD_STAFF_MEMBER element. </p>
<p>Next we also need to provide the value of the FINANCIAL identity to the Log File. However, that identity is not available in the Canonical Doctor message &#8211; as it should not of course. That means we have to use the Cross Reference to look up this financial identity &#8211; a perfect demonstration of the main purpose of that Cross Reference. </p>
<p>Instead of the populateXRefRow() function, this time we use lookupXRef(). Using the CANONICAL identifier in the Doctor(.xref) Cross Reference, we retrieve the identifier for the FINANCIAL End System: </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image028.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image028" border="0" alt="clip_image028" src="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image028_thumb.jpg" width="656" height="471"/></a> </p>
<p>In plain XSL code that looks like this: </p>
<p><font face="Courier New">&lt;imp1:FinancialIdentifier&gt;</font> </p>
<p><font face="Courier New">&lt;xsl:value-of select=&#8217;xref:lookupXRef(&#8220;Doctor.xref&#8221;,&#8221;CANONICAL&#8221;,$initial.request/inp1:Doctor/inp1:identifier,&#8221;FINANCIAL&#8221;,false())&#8217;/&gt;</font> </p>
<p><font face="Courier New">&lt;/imp1:FinancialIdentifier&gt;</font><br />
<h5>Summary</h5>
</p>
<p>This completes our composite application. New doctor records in the FIN_DOCTORS table are found by the inbound database adapter service. This services pushes messages with doctor data to the first Mediator that maps them to the proper canonical format and creates a record in the Cross Reference with the Financial and Canonical identities for the new doctor record. </p>
<p>The second Mediator receives a canonical message and sends it &#8211; properly transformed &#8211; to the outbound database adapter service that uses the PL/SQL function add_staff_member to create the doctor in its PLN_STAFF table. The function and the service return the identifier assigned to the doctor in the PLANNING domain. </p>
<p>Finally, the second Mediator routes the response from the CreateDoctorInPlanningDomain &#8211; combined with the original request message &#8211; to the WriteNewXReffedDoctorToLogFile service. In the mapping to this outbound log-file writing service, the Planning identity of the doctor is added to the cross reference. The financial identity is retrieved from the cross reference to be added to the log file. </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image030.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image030" border="0" alt="clip_image030" src="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image030_thumb.jpg" width="643" height="422"/></a><br />
<h3>Deploying and Running the Composite Application</h3>
</p>
<p>We deploy the composite application. </p>
<p>It picks up the records in the FIN_TABLE. When processing is complete, this is what the FIN_TABLE tells us: </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image032.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image032" border="0" alt="clip_image032" src="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image032_thumb.jpg" width="415" height="172"/></a> </p>
<p>And here is the now new contents in PLN_STAFF: </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image034.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image034" border="0" alt="clip_image034" src="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image034_thumb.jpg" width="388" height="188"/></a> </p>
<p>When we look in the XREF_DATA table that holds the data for the Cross References, we find these records: </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/image6.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/05/image_thumb6.png" width="886" height="311"/></a> </p>
<p>Finally we check the log file that is written and there we find entries for each new doctor along with the three identities for each doctor. </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image038.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image038" border="0" alt="clip_image038" src="http://technology.amis.nl/wp-content/uploads/2012/05/clip_image038_thumb.jpg" width="944" height="129"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2012/05/19/jekyll-and-hyde-or-the-case-of-the-multiple-identity-syndrome-using-identity-cross-references-in-oracle-11g-soa-suite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Proces email with the new UMS adapter of SOA Suite PS5</title>
		<link>http://technology.amis.nl/2012/05/18/proces-email-with-the-new-ums-adapter-of-soa-suite-ps5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=proces-email-with-the-new-ums-adapter-of-soa-suite-ps5</link>
		<comments>http://technology.amis.nl/2012/05/18/proces-email-with-the-new-ums-adapter-of-soa-suite-ps5/#comments</comments>
		<pubDate>Fri, 18 May 2012 11:38:04 +0000</pubDate>
		<dc:creator>Edwin Biemond</dc:creator>
				<category><![CDATA[Oracle Development Tools]]></category>
		<category><![CDATA[SOA & Oracle Fusion Middleware]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[11g]]></category>
		<category><![CDATA[BPEL]]></category>
		<category><![CDATA[fusion middleware]]></category>
		<category><![CDATA[jdeveloper 11g]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[soa suite 11g]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/?p=17882</guid>
		<description><![CDATA[With the release of Soa Suite Patch Set 5 we can now try out the new UMS adapter. UMS stands for User Messaging Service but in this case it only supports email. The UMS adapter allows you to listen for new mail or send a mail from a service component. Combined with BPEL it&#8217;s now relative  easy  [...]]]></description>
			<content:encoded><![CDATA[<p>With the release of Soa Suite Patch Set 5 we can now try out the new UMS adapter. UMS stands for User Messaging Service but in this case it only supports email. The UMS adapter allows you to listen for new mail or send a mail from a service component. Combined with BPEL it&#8217;s now relative  easy to process email bodies or attachments. Remember that in PS5 the UMS adapter is still a  preview version so you can&#8217;t claim support and you can only use the Oracle forums for your ums questions.</p>
<p>It&#8217;s important to know that the UMS adapter does not work like a JMS topic or like EDN. So you can&#8217;t have two UMS adapters which are polling on the same mailbox.</p>
<p>In this blogpost I will show you how to setup and configure UMS, Listen plus send a mail and handle attachments.</p>
<p>We start with configuring our SOA Suite domain.</p>
<p>1st step is to copy two UMS libraries to your SOA Suite domain folder. Copy sdpmessagingclient.jar and sdpmessagingcommon.jar to the lib folder of the SOA Suite WebLogic Domain. You can find these jars at MiddlewareHome\Oracle_SOA1\communications\modules\oracle.sdp.client_11.1.1</p>
<p>2nd Install the UMS resource adapter.  Open the WebLogic Console and deploy the UMSAdapter.rar, you can find this adapter at MiddlewareHome\Oracle_SOA1\soa\connectors . Make sure you targeted this Resource Adapter to the SOA managed WebLogic server. And restart the SOA Suite Server.</p>
<p>3rd Check if the usermessagingdriver-email and usermessagingserver applications are active and targeted to the to the SOA managed WebLogic server. You can check this in the deployments of the weblogic console.</p>
<p>4th Configure the UMS Email driver.  For this we need to go the Enterprise Manager application. When everything is Ok you should see the User Messaging Service. Here we can select usermessagingdriver-email and in the menu we can go the Email Driver Properties.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-11.46.38-AM.png"><img class="alignnone size-medium wp-image-17885" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-11.46.38-AM-300x190.png" alt="" width="300" height="190" /></a></p>
<p>Here we can set some defaults, like the default mail address, Cost and Speed ( cpu priority )</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-11.54.29-AM.png"><img class="alignnone size-medium wp-image-17887" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-11.54.29-AM-300x111.png" alt="" width="300" height="111" /></a></p>
<p>The UMS settings for outgoing mail.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-11.59.05-AM.png"><img class="alignnone size-medium wp-image-17888" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-11.59.05-AM-300x80.png" alt="" width="300" height="80" /></a></p>
<p>The incoming settings are more complex because I will read two mail accounts, this is because I need one mail account for every polling UMS adapter.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.04.48-PM.png"><img class="alignnone size-medium wp-image-17889" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.04.48-PM-300x100.png" alt="" width="300" height="100" /></a></p>
<p>To make this work I can use a &#8220;,&#8221; between the values so for IncomingMailIDs I use this as value soa@local.nl,soa2@local.nl , do the same for IncomingUserIDs = soa,soa2  and for the IncomingUserPasswords, I use CleartextPassword and also use a &#8220;,&#8221; between the passwords.</p>
<p>Restart the SOA Suite server.</p>
<p>&nbsp;</p>
<p>At last we must enable the UMS adapter in JDeveloper.  Go to the JDev11.1.1.6\jdeveloper\integration\seed\soa\configuration folder and open the soa-config.xml. Find the adapterType with this ${UMS_ADAPTER_COMPONENT_NAME_L}  as name and remove the preview = true attribute. Now You will see the new UMS adapter in your SOA Component Palette.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.25.21-PM1.png"><img class="alignnone size-medium wp-image-17894" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.25.21-PM1-90x300.png" alt="" width="90" height="300" /></a></p>
<p>&nbsp;</p>
<p>In the next part we can finally try this out.</p>
<p>Let&#8217;s start with an easy one. Sending a mail from a composite. For this we need to drag the UMS adapter to the External Reference of the Composite.</p>
<p>Don&#8217;t change Connection JNDI name.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.32.59-PM.png"><img class="alignnone size-medium wp-image-17895" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.32.59-PM-300x146.png" alt="" width="300" height="146" /></a></p>
<p>Choose for Outbound Send Notification. You can choose to receive the Mail Message Id as response, else it will be One Way.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.33.21-PM.png"><img class="alignnone size-medium wp-image-17896" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.33.21-PM-300x144.png" alt="" width="300" height="144" /></a></p>
<p>Provide the Mail Header settings.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.34.12-PM.png"><img class="alignnone size-medium wp-image-17897" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.34.12-PM-300x188.png" alt="" width="300" height="188" /></a></p>
<p>For Message Schema you got 3 options ( this talks about the mail body ) , off course Opaque, Message is a big String or based on a XML Schema.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.34.55-PM.png"><img class="alignnone size-medium wp-image-17898" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.34.55-PM-300x155.png" alt="" width="300" height="155" /></a></p>
<p>&nbsp;</p>
<p>Next we can take a look at incoming part of the UMS adapter. Drag the UMS adapter to exposed Services side of the composite.</p>
<p>Don&#8217;t change the default Connection JNDI Name</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.46.35-PM.png"><img class="alignnone size-medium wp-image-17899" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.46.35-PM-300x123.png" alt="" width="300" height="123" /></a></p>
<p>Choose Listener as Operation Mode, Polling does not work in this Preview Adapter and the UMS email driver already polls every few seconds.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.46.51-PM.png"><img class="alignnone size-medium wp-image-17900" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.46.51-PM-300x169.png" alt="" width="300" height="169" /></a></p>
<p>Provide the mail adress this must match with your incoming UMS configuration.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.47.33-PM.png"><img class="alignnone size-medium wp-image-17901" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.47.33-PM-300x112.png" alt="" width="300" height="112" /></a></p>
<p>Also provide the message type.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.47.47-PM.png"><img class="alignnone size-medium wp-image-17902" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.47.47-PM-300x157.png" alt="" width="300" height="157" /></a></p>
<p>&nbsp;</p>
<p>We can also define a message filter which can accept or ignore the incoming mails. The pattern string should be a java regexp. To test this pattern you can use this url  <a title="http://www.regexplanet.com/advanced/java/index.html" href="http://www.regexplanet.com/advanced/java/index.html" target="_blank">http://www.regexplanet.com/advanced/java/index.html</a></p>
<p>Too bad this feature does not work yet in this technical preview.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.48.19-PM.png"><img class="alignnone size-medium wp-image-17903" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.48.19-PM-300x147.png" alt="" width="300" height="147" /></a></p>
<p>&nbsp;</p>
<p>And also you can do a custom Java Callout ( I didn&#8217;t test it and don&#8217;t know the possibilities of this feature).</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.48.44-PM.png"><img class="alignnone size-medium wp-image-17904" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-12.48.44-PM-300x93.png" alt="" width="300" height="93" /></a></p>
<p>&nbsp;</p>
<p>To test this I need to add the employee xml in the body of the mail ( not as attachment)  and send it to soa@local.nl. As response I will get a mail.</p>
<p>The request I will receive in SOA Suite.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-1.04.25-PM.png"><img class="alignnone size-medium wp-image-17905" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-1.04.25-PM-300x248.png" alt="" width="300" height="248" /></a></p>
<p>And the response</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-1.05.45-PM.png"><img class="alignnone size-medium wp-image-17906" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-1.05.45-PM-300x215.png" alt="" width="300" height="215" /></a></p>
<p>&nbsp;</p>
<p>Last part of this blogpost is about, how to handle mail attachments.</p>
<p>For this I will use the second mail address soa2@local.nl and also change the message type to String. A BPEL service component will write these attachments to a server location.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-1.13.47-PM.png"><img class="alignnone size-medium wp-image-17907" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-1.13.47-PM-300x174.png" alt="" width="300" height="174" /></a></p>
<p>This is the request I received in the BPEL component. You can see that we only get a reference to the attachments.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-1.13.17-PM.png"><img class="alignnone size-medium wp-image-17908" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-1.13.17-PM-300x117.png" alt="" width="300" height="117" /></a></p>
<p>So in BPEL we need to use a ForEach to handle every attachment and write this to a file.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-1.17.29-PM.png"><img class="alignnone size-medium wp-image-17909" src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-18-at-1.17.29-PM-300x204.png" alt="" width="300" height="204" /></a></p>
<p>To load the attachment and assign it to the file adapter input variable I need to use ora:getAttachmentContent</p>
<p>&lt;assign name=&#8221;AssignInput&#8221;&gt;<br />
&lt;copy&gt;<br />
&lt;from&gt;ora:getAttachmentContent(&#8216;ReceiveMail_InputVariable&#8217;,'body&#8217;<br />
,&#8217;/ns3:message/ns3:attachment/ns3:Attachment[$ForEachCounter]&#8216;)<br />
&lt;/from&gt;<br />
&lt;to&gt;$InvokeWriteFile_InputVariable.opaque&lt;/to&gt;<br />
&lt;/copy&gt;<br />
&lt;/assign&gt;</p>
<p>and this leads to two files.</p>
<p>Here you can download the UMS workspace <a title="https://github.com/biemond/soa11g_examples/tree/master/UmsSOA" href="https://github.com/biemond/soa11g_examples/tree/master/UmsSOA" target="_blank">https://github.com/biemond/soa11g_examples/tree/master/UmsSOA</a></p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2012/05/18/proces-email-with-the-new-ums-adapter-of-soa-suite-ps5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle E-Learning Resources</title>
		<link>http://technology.amis.nl/2012/05/12/oracle-e-learning-resources/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oracle-e-learning-resources</link>
		<comments>http://technology.amis.nl/2012/05/12/oracle-e-learning-resources/#comments</comments>
		<pubDate>Sat, 12 May 2012 14:58:47 +0000</pubDate>
		<dc:creator>Marco Gralike</dc:creator>
				<category><![CDATA[AMIS]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[E-Learning]]></category>
		<category><![CDATA[Oracle E-Learning]]></category>
		<category><![CDATA[otn]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/?p=17863</guid>
		<description><![CDATA[There is a lot of new stuff out there nowadays, regarding products and/or functionality or others. This is also true for Oracle and in short it&#8217;s not easy to follow all those innovations and/or new products. So from time to time I have a watch on stuff that interests me on the YouTube Oracle  [...]]]></description>
			<content:encoded><![CDATA[<p>There is a lot of new stuff out there nowadays, regarding products and/or functionality or others. This is also true for Oracle and in short it&#8217;s not easy to follow all those innovations and/or new products. So from time to time I have a watch on stuff that interests me on the YouTube <a href="http://www.youtube.com/user/OracleLearning">Oracle E-Learning Channel</a>. That said, there is just too much out there, which is great, but not so practical to follow via YouTube. Via YouTube you could of course, as I did, create you on channels for specific topics or interests, like my &#8220;<a href="http://www.youtube.com/playlist?list=PL171076EE9B3C81AC">Oracle &#8211; Data Centre Transformation Master Class</a>&#8220;, but it can become an annoying bit of doing it especially concerning a topic like &#8220;Oracle Enterprise Manager 12c Cloud Control&#8221;.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-12-at-16.44.36.png"><img src="http://technology.amis.nl/wp-content/uploads/2012/05/Screen-Shot-2012-05-12-at-16.44.36.png" alt="" title="Oracle E-Learning APEX Menu" width="300" height="119" class="alignleft size-medium wp-image-3493" /></a></p>
<p>Today, finally also paying attention to the last slide on almost all presentations, I had a look at: <a href="http://www.oracle.com/goto/oll">http://www.oracle.com/goto/oll </a>. This is the entry page of the Oracle E-Learning group. This link will re-direct you to the central, by Oracle APEX serviced, pages that contain an overview of all the Oracle topics out there, provided via the E-Learning team and believe me, those are great, also one of the reasons I subscribed on their YouTube Channel anyway. I really wished I had done it sooner though. It not also provides with a great overview, it also has a link to the <a href="http://apex.oracle.com/pls/apex/f?p=60370:1:0">mobile device link</a> (up in the left corner) that can be used with your mobile phone or iPad/Android alternative to read and see those resources. Probably the most coolest thing, and really thanks for that, is the &#8220;Bookmark&#8221; bit. If you click it, you will be asked to authenticate yourself via your Oracle OTN account, which gives you a central place to tag the bookmarks you find useful, search in all available topics. If, like AMIS, you participate (and are allowed access to) in a lot of Oracle beta testing of different products, there will also a beta button that guides you to the latest demo&#8217;s on those features and products.  </p>
<p>In all, a great service from Oracle to those who want to accelerate their knowledge or lookup a demo after having read about it in the Oracle manuals.</p>
<p>HTH with the links provided in this post</p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2012/05/12/oracle-e-learning-resources/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>15 mei: Een dag over de toekomst van en met Oracle Forms bij AMIS (gratis toegang)</title>
		<link>http://technology.amis.nl/2012/05/10/15-mei-een-dag-over-de-toekomst-van-en-met-oracle-forms-bij-amis-gratis-toegang/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=15-mei-een-dag-over-de-toekomst-van-en-met-oracle-forms-bij-amis-gratis-toegang</link>
		<comments>http://technology.amis.nl/2012/05/10/15-mei-een-dag-over-de-toekomst-van-en-met-oracle-forms-bij-amis-gratis-toegang/#comments</comments>
		<pubDate>Thu, 10 May 2012 06:36:32 +0000</pubDate>
		<dc:creator>Lucas Jellema</dc:creator>
				<category><![CDATA[AMIS]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/?p=17860</guid>
		<description><![CDATA[Ben je werkzaam bij een organisatie die Oracle Forms gebruikt en ben je een (of de meest) ervaren ontwikkelaar in jullie team of misschien wel de applicatie architect, dan denk je ongetwijfeld wel eens over de toekomst. Wat zijn de plannen van Oracle met Forms? En hoe kan je aan de toenemende  [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/05/image_thumb.png" width="70" height="65"/></a>Ben je werkzaam bij een organisatie die Oracle Forms gebruikt en ben je een (of de meest) ervaren ontwikkelaar in jullie team of misschien wel de applicatie architect, dan denk je ongetwijfeld wel eens over de toekomst. Wat zijn de plannen van Oracle met Forms? En hoe kan je aan de toenemende verwachtingen en eisen van de gebruikers en de business blijven voldoen met zo&#8217;n volwassen technologie als Forms? Hoe kan je de Forms applicatie combineren en integreren met nieuwe concepten als SOA en Web Services, als Web 2.0 en ADF of .NET en in mobiele toepassingen? </p>
<p>Natuurlijk, er zijn allerlei nieuwe tools en technologieen om compleet nieuwe applicaties te ontwikkelen, maar dat is helemaal niet zo aanlokkelijk. De bestaande investering in de Forms-applicatie dreigt verloren te gaan en de kennis en vaardigheden die ontwikkelaars moeten opbouwen voor een ander platform zijn zeer aanzienlijk. Er zijn vast subtielere manieren om de huidige Forms applicaties te moderniseren en met moderne technologie te combineren.</p>
<p>Op dinsdag 15 mei organiseert AMIS een evenement onder de titel: &#8220;The Future of Forms&#8221; &#8211; bedoeld voor ervaren Forms ontwikkelaars en applicatie architecten van Forms applicaties. De vragen die hierboven worden gesteld komen op deze dag aan bod en diverse manieren en tools om met Forms te moderniseren worden gepresenteerd, gedemonstreerd en bediscussieerd. Als je serieus bezig bent met de toekomst van de Forms applicaties in jouw organisatie &#8211; en je eigen toekomst natuurlijk &#8211; dan zou je dit bijzondere evenement niet mogen missen.</p>
<p>Erkende sprekers uit Nederland, Duitsland, Frankrijk, UK en Israel verzorgen een uitgebreid programma aan presentaties en demonstraties, vanaf &#8216;s ochtends 9 uur tot pakweg 17.30. Zie voor de details van het programma: <a title="Dagprogramma 15 mei Future of Forms" href="http://www.amis.nl/theme/amis/uploadedFiles/PDF/Future%20of%20Forms%20EN%20DAG.pdf" target="_blank">Dagprogramma 15 mei Future of Forms</a>. De toegang tot dit evenement is gratis. Aanmelden kan via de website: <a title="http://www.amis.nl/Event-inschrijving/?event_id=41" href="http://www.amis.nl/Event-inschrijving/?event_id=41" target="_blank">registreren voor The Future of Forms</a>. </p>
<p><span id="more-17860"></span>
<p>Het programma voor 15 mei staat hier weergegeven. NB: er is ook een avondprogramma met hands-on sessies. Hierin kan je kiezen uit zes verschillende workshops waarin je in detail kennis kan maken met een van verschillende moderniseringsrichtingen. Zie voor details over dit avondprogramma: <a href="http://www.amis.nl/event-inschrijving/?event_id=44" target="_blank">The Future of Forms &#8211; Workshops &amp; Deep Dive</a>.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/05/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/05/image_thumb1.png" width="691" height="863"/></a></p>
<p>&nbsp;</p>
<p>De korte beschrijvingen van de presentaties zijn als volgt:</p>
<p><strong><em>Forms to Future &#8211; history, evolution, architecture and future &#8211; </em></strong>Lucas Jellema<br />Oracle Forms starting from its earliest incarnations have been around for more than a quarter of century. The vast majority of today&#8217;s Forms &#8211; and Forms developers &#8211; have their roots in mid-90s Client/Server technology- even though WebForms introduced widely adopted three-tier deployment. The world obviously has changed. End user groups are more diverse with different and more advanced needs, working on flexible locations and odd moments. Technology advances have been made on different platforms and devices, new architecture patterns have been embraced and agile development striving for business agility is all the rage. Applications developed using Forms technology have not seen a lot of change. And it is about time that they do. This session looks back at the long history of Forms and the key ingredients to its success. It then quickly focuses on where business and end-user requirements are today and what approaches are available for meeting current and future demands with the current Forms applications as starting point.</p>
<p>The main approaches available for &#8216;a Future from [and quite possibly with] Forms&#8217; to be discussed are:<br /> Evolve/improve/&#8221;pimp&#8217; existing Forms, continue to run as Forms with a modern look and feel<br /> Integrate Forms a in SOA environment &#8211; hook up to push-mechanisms, queuing interaction and workflow managers<br /> Embed in Web 2.0 (UI integration with ADF, .NET or other &#8216;modern&#8217; web technologies)<br /> Wrap as service (publish business logic from Forms and reuse with new User Interfaces or WebServices on top of them)<br /> Render to new platforms (render Forms as they are to new platforms such as Java free browsers and mobile devices)<br /> Migrate to new technology stack and architecture (semi)-automatically migrate/convert Forms to a new technology<br /> Migrate to new technology stack and architecture : rebuild functionality from scratch in a new technology stack &#8211; leveraging functionality and experience from the Forms application &#8211; but no more<br />Each of this approaches is subsequently discussed in much more detail by the speakers that contribute to this event.</p>
<p><strong><em>Modernizing Forms using Pluggable Java Components and the Forms Look and Feel project</em></strong> &#8211; François Degrelle<br />In this presentation, we will see that Oracle Forms is an open product into which we can plug third party widgets to increase the capabilities. These plug-ins are called &#8220;Java Beans&#8221; and can push the standard product boundaries. As an example, you will see a presentation and a demonstration of the &#8220;Forms Look and Feel Project&#8221; plug-in, that is a set of tools that permits decorating a Forms module by reading the graphical properties from an external CSS file, and also providing over one hundred new features. You will learn how the PJC-architecture and the substantial library of community contributed components easily allow for adding attractive, modern features to your Forms &#8211; including Google Maps and PDF Reader. </p>
<p><strong><em>To infinity and beyond: Extend the life of your Oracle Forms application by running your existing Forms from next generation technologies/platforms without migration</em></strong> &#8211; Mia Urman </p>
<p>Does your Oracle Forms system have core business logic that you wish you could share as business processes or webservices? Want to integrate Forms with your next generation systems without costly and risky migration projects? Then we have a solution for you! In this brief session we will present OraPlayer, a tool that allows companies to wrap the business logic trapped within their Oracle Forms systems and upgrade fast-track to a modernized, SOA or mobile enabled environment.</p>
<p><strong><em>Forms 11g, ADF and APEX: Co-existence in Enterprise Applications</em></strong> &#8211; Madi Serban &amp; Andreas Gaede<br />For some time now, Oracle Forms has addressed all the needs for database development. And it still does. The next challenge is taking advantage of the newest features in Forms 11g and integrating enterprise Forms applications with other modern technologies, like ADF and APEX. We will present and exemplify live our first-hand experience of migrating large, enterprise Oracle Forms applications to Forms 11g, ADF and APEX. The exemplified case studies are taken from our latest migration projects. The demonstration will not only take into consideration the web layout redesign, but will also offer solutions for dealing with true challenges like: how to assess the amount of work, how to re-use components and preserve the investment in Oracle Forms, how to ensure a smooth coexistence of Forms 11g, ADF and APEX. Come and join us in discussing the lessons we have learnt from our latest migration projects, the dos and don’ts and much more.</p>
<p><strong><em>Rendering Forms to alternative platforms using YoForms</em></strong> &#8211; Oliver Tickell &amp; Don Smith<br />One aspect of the communications revolution of recent years is the ubiquity of handheld devices &#8211; iPads, Blackberries, Androids and numerous generic Smartphones. Increasingly Forms users want to deploy their applications to such devices &#8211; and to do so in a universal way so as not to be tied to any particular technology. We determined that this would best be achieved by rendering to the browser using only HTML and JavaScript. A further requirement was pixel-accurate rendition &#8211; necessary because so many forms are laid out with pixel accuracy. We also wanted to reproduce precisely the original functionality so that Forms users would experience no change in application behaviour. We were intially uncertain if this would even be possible. But we can now tell you that not only is it possible, but we have done it. Our solution, YoForms, is written entirely in JEE6 enterprise Java and runs on any standards compliant application server. It communicates with the browser via a lightweight AJAX layer designed to minimise traffic volume, and uses a small subset of HTML features to eliminate browser / device-specific display variations.</p>
<p>In our first presentation we will set out the overall architecture of YoForms and will demonstrate its operation on a low-performance laptop computer running Windows XP, Oracle 10g XE database, Apache Tomcat application server, and Internet Explorer, Google Chrome and Mozilla Firefox.</p>
<p><strong><em>Partial and or Gradual migration by embedding existing Forms in new UI technology</em></strong> &#8211; Wilfred van der Deijl<br />Thousands of companies have a large investment in Oracle Forms, often running their core applications. Many are considering moving to Oracle JDeveloper and Oracle Application Development Framework (ADF) to enter the new era of enterprise application development. Oracle does not offer a migration solution other than re-developing your application in ADF. This brief session introduces OraFormsFaces, a toolkit that allows you to integrate existing Forms applications in your new ADF, or other, web application. This allows for a hybrid application consisting of both Oracle Forms and new web technology. Over time you can remove individual Forms and replace them with new web technology.</p>
<p><strong><em>JHeadstart: Real world experiences for migrating Forms to ADF</em></strong> &#8211; Steven Davelaar </p>
<p>In this presentation Steven will share his experiences with various customers he helped moving from Oracle Forms to ADF. He will explain how the JHeadstart toolkit helped these customers. In addition he will discuss common pitfalls, lessons learned, and some guidelines that can be extracted from these modernization projects.</p>
<h2>Parallel Sessions </h2>
<p><strong><em>Run Oracle Forms business process from any UI (or service): Integrate, Go Mobile, SOA or BPM in minutes without migration</em></strong> &#8211; Mia Urman <br />Having trouble integrating your Oracle Forms applications with other Java/ADF/.Net / APEX/ portal systems in your organization? Want to enter the Mobile, Cloud or SOA world with your EXISTING Forms applications? Want to create webservices or ADF data controls from Forms business processes? Well we can help! In this brief session I will show how using OraPlayer we can reuse the business logic trapped within our existing Oracle Forms systems and deploy to new environments and platforms without costly and risky migration projects. Including live demos of running Oracle Forms business logic silently from an ADF faces UI and a mobile application.</p>
<p><strong><em>More details on Modernizing Forms using Pluggable Java Components and the Forms Look and Feel project</em></strong> &#8211; François Degrelle<br />In this presentation, we will see that Oracle Forms is an open product into which we can plug third party widgets to increase the capabilities. These plug-ins are called &#8220;Java Beans&#8221; and can push the standard product boundaries. As an example, you will see a presentation and a demonstration of the &#8220;Forms Look and Feel Project&#8221; plug-in, that is a set of tools that permits decorating a Forms module by reading the graphical properties from an external CSS file, and also providing over one hundred new features. You will learn how the PJC-architecture and the substantial library of community contributed components easily allow for adding attractive, modern features to your Forms &#8211; including Google Maps and PDF Reader.</p>
<p><strong><em>JHeadstart in depth: Real world experiences for migrating Forms to ADF</em></strong> &#8211; Steven Davelaar <br />In this presentation Steven will share his experiences with various customers he helped moving from Oracle Forms to ADF. He will explain how the JHeadstart toolkit helped these customers. In addition he will discuss common pitfalls, lessons learned, and some guidelines that can be extracted from these modernization projects.</p>
<p><strong><em>Demonstrating YoForms &#8211; on your laptop / smartphone</em></strong> &#8211; Oliver Tickell &amp; Don Smith<br />In our second presentation we will make our YoForms application available to participants via a local WiFi network, so that they can access it on their laptop, notebook, smartphone or any other device equipped with a browser. The session will feature the application itself, and the &#8216;treeview&#8217; which presents any open YoForms session in tree format, including both form definition and live application data. Users will be able to edit the live session and observe the result take immediate effect. </p>
<p><strong><em>Embedding existing Forms in new ADF applications using OraFormsFaces for perfect co-existence</em></strong> &#8211; Wilfred van der Deijl <br />After the brief session explaining the unique benefits of OraFormsFaces, this session will go into more detail. We will demonstrate, with live demos, how to take an existing Oracle Forms application and to integrate it with a basic ADF application. You can see how little, if any, changes are needed to the Forms application and how easy it is to use the OraFormsFaces JSF components within JDeveloper. Keep in mind, that even though the demo focuses on ADF and JDeveloper you can use OraFormsFaces with any HTML/JavaScript web technology.</p>
<p><strong><em>Forms 11g, ADF and APEX: Co-existence in Enterprise Applications</em></strong> &#8211; Madi Serban &amp; Andreas Gaede<br />For some time now, Oracle Forms has addressed all the needs for database development. And it still does. The next challenge is taking advantage of the newest features in Forms 11g and integrating enterprise Forms applications with other modern technologies, like ADF and APEX. We will present and exemplify live our first-hand experience of migrating large, enterprise Oracle Forms applications to Forms 11g, ADF and APEX. The exemplified case studies are taken from our latest migration projects. The demonstration will not only take into consideration the web layout redesign, but will also offer solutions for dealing with true challenges like: how to assess the amount of work, how to re-use components and preserve the investment in Oracle Forms, how to ensure a smooth coexistence of Forms 11g, ADF and APEX. Come and join us in discussing the lessons we have learnt from our latest migration projects, the dos and don’ts and much more.</p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2012/05/10/15-mei-een-dag-over-de-toekomst-van-en-met-oracle-forms-bij-amis-gratis-toegang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Future of Forms &#8211; 15th of May &#8211; Nieuwegein, The Netherlands</title>
		<link>http://technology.amis.nl/2012/04/27/the-future-of-forms-15th-of-may-nieuwegein-the-netherlands/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-future-of-forms-15th-of-may-nieuwegein-the-netherlands</link>
		<comments>http://technology.amis.nl/2012/04/27/the-future-of-forms-15th-of-may-nieuwegein-the-netherlands/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 05:24:27 +0000</pubDate>
		<dc:creator>Lucas Jellema</dc:creator>
				<category><![CDATA[ADF & JHeadstart]]></category>
		<category><![CDATA[Devel. + PL/SQL tools]]></category>
		<category><![CDATA[Java, JEE, OAS and WebLogic Server]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SOA & Oracle Fusion Middleware]]></category>
		<category><![CDATA[ace]]></category>
		<category><![CDATA[ACE Director]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[modernization]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/?p=17839</guid>
		<description><![CDATA[Sporting a selection of the world&#8217;s best known speakers in the area of Oracle Forms and Forms modernization &#8211; on Tuesday 15th May AMIS will host an all day event around Forms, aimed at application architects and lead developers. During this event, we will discuss and demonstrate the most relevant  [...]]]></description>
			<content:encoded><![CDATA[<p>Sporting a selection of the world&#8217;s best known speakers in the area of Oracle Forms and Forms modernization &#8211; on Tuesday 15th May AMIS will host an all day event around Forms, aimed at application architects and lead developers. During this event, we will discuss and demonstrate the most relevant options for moving Forms applications (and Forms developers) to the future. Registration for this event is free &#8211; the capacity is limited. See this link for the full program, the abstracts for all the presentations and the biographies of the speakers: <a href="http://www.amis.nl/theme/amis/uploadedFiles/PDF/Future%20of%20Forms%20EN%20DAG.pdf">http://www.amis.nl/theme/amis/uploadedFiles/PDF/Future%20of%20Forms%20EN%20DAG.pdf</a>.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/image11.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/04/image_thumb11.png" width="233" height="286"/></a></p>
<p><span id="more-17839"></span><br />
<h3>The Future of Forms</h3>
<p>Many organizations embarked on Oracle Forms at some point in the &#8217;90s. Terminal-based (3.0 and before), Client/Server or using the Forms applet in a Web Browser. And in many of those organizations, the application(s) built in Forms are still an important factor. Key applications providing core back office functionality for a fairly highly skilled end user community.</p>
<p>Change is coming though. From the business and the end users of these applications, requirements are stated for more modern, more user friendly and more intuitive user interfaces &#8211; that for some functionality should be available on mobile devices as well. And this functionality should be delivered in an agile way: flexible with a high rate of quickly applied changes.</p>
<p>The technology arena has also undergone some dramatic changes. Client/Server is largely gone and use of Applets is also somewhat frowned upon. A traditional data-driven user interface (CRUD-style) is not acceptable anymore. HTML (Web 2.0) UIs for browser and mobile is much more in vogue. And of course the application needs to interact with the Service Oriented Architecture. Forms is no longer the strategic development platform at Oracle for applications with a User Interface (ADF has taken over that role). However, Oracle is still evolving Forms and Forms 11g today offers many options for creating a fairly modern and advanced user interface.<br />Abandoning Forms is not really an option for the short term. The investment needed to completely replace the Forms application is simply too big and time it will take too long to even seriously consider. Besides, there is generally no real need to completely drop the Forms application. The business requirements can frequently addressed for only selected areas of functionality and specific groups of users, using a variety of methods &#8211; most of them allowing for a hybrid scenario where Forms and other technologies are blended together:<br />•&nbsp;&nbsp;&nbsp; evolve/improve/&#8221;pimp&#8217; existing Forms that continue to run as Forms with modern look and feel<br />•&nbsp;&nbsp;&nbsp; integrate Forms in a SOA &amp; BPM environment <br />•&nbsp;&nbsp;&nbsp; embed Forms in Web 2.0 &#8211; UI integration with ADF, .NET or other &#8216;modern&#8217; web technologies<br />•&nbsp;&nbsp;&nbsp; wrap Forms as service (publish business logic from Forms and reuse with new UIs or WebServices on top of them)<br />•&nbsp;&nbsp;&nbsp; render Forms to new platforms (render existing Forms as they are to new platforms such as Mobile browsers)<br />•&nbsp;&nbsp;&nbsp; migrate (selected) Forms to a new technology<br />•&nbsp;&nbsp;&nbsp; rebuilt (selected) Forms in a new technology</p>
<p>During this event, several experts will present and demonstrate their vision and possible solutions &#8211; including Wilfred vd Deijl with OraFormsFaces, Mia Urman with OraPlayer, and Steven Davelaar demonstrating JHeadstart, as well as Francois Degrelle showing Pluggable Java Components and the Forms Look &amp; Feel project, Oliver Tickell with YoForms and Madi Serban presenting the migration solutions from PITSS. Lucas Jellema kicks off with a presentation on the history, evolution and future of Forms and its role in an enterprise architecture and the day is concluded with a panel discussion with all the experts, discussing the future of Forms. After dinner, for real &#8220;techies&#8221;, there is option of technical deep dive &amp; hands-on sessions.</p>
<p>&nbsp;</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/image12.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/04/image_thumb12.png" width="724" height="892"/></a>
<p>The following document provides in depth details on program for this day: <a title="http://www.amis.nl/theme/amis/uploadedFiles/PDF/Future%20of%20Forms%20EN%20DAG.pdf" href="http://www.amis.nl/theme/amis/uploadedFiles/PDF/Future%20of%20Forms%20EN%20DAG.pdf">http://www.amis.nl/theme/amis/uploadedFiles/PDF/Future%20of%20Forms%20EN%20DAG.pdf</a>.</p>
<p>Registration for this all- day event can be done via: <a href="http://www.amis.nl/event-inschrijving/?event_id=41">http://www.amis.nl/event-inschrijving/?event_id=41</a>.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3>Evening Session &#8211; Technical Deep Dive and Hands-On</h3>
<p>In the evening, a second event is staged, where in technical deep dive and hands-on sessions, experienced developers can get up close and personal with six modernization options. This evening gives the perfect opportunity for Forms developers to get a hands-on experience with one or two methods for modernizing the Forms experience. The architects of a number of largely complementary solutions to the modernization challenge will host up close &amp; personal sessions where in depth questions can be asked, experiences discussed and tools tried out. Strong technical skills and several years for Forms experience are strongly recommended to truly benefit from the availability of this fine selection of speakers. </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/image13.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/04/image_thumb13.png" width="734" height="336"/></a></p>
<p>The following document provides in depth details on the six sessions staged in the evening <a title="http://www.amis.nl/theme/amis/uploadedFiles/PDF/Future%20of%20Forms%20EN%20AVOND.pdf" href="http://www.amis.nl/theme/amis/uploadedFiles/PDF/Future%20of%20Forms%20EN%20AVOND.pdf">http://www.amis.nl/theme/amis/uploadedFiles/PDF/Future%20of%20Forms%20EN%20AVOND.pdf</a>.</p>
<p>Registration for this technical evening event can be done via: <a href="http://www.amis.nl/event-inschrijving/?event_id=44">http://www.amis.nl/event-inschrijving/?event_id=44</a>.</p>
<h2>Hands-on and In-Depth Sessions</h2>
<p><em><strong>Migrating Real Life Applications to Forms11g, ADF and APEX (Madi Serban &amp; Andreas Gaede)</strong></em><br />Join us in a practical session of migrating real life applications to Forms 11g, ADF and APEX. Got a complex application or migration example? We will take the challenge! We will discuss and exemplify the most interesting situations and solutions met in our latest projects.</p>
<p><strong><em>Getting hands-on with YoForms (Oliver Tickell and Don Smith)</em></strong><br />One aspect of the communications revolution of recent years is the ubiquity of handheld devices &#8211; iPads, Blackberries, Androids and numerous generic Smartphones. Increasingly Forms users want to deploy their applications to such devices &#8211; and to do so in a universal way so as not to be tied to any particular technology. We determined that this would best be achieved by rendering to the browser using only HTML and JavaScript. A further requirement was pixel-accurate rendition &#8211; necessary because so many forms are laid out with pixel accuracy. We also wanted to reproduce precisely the original functionality so that Forms users would experience no change in application behaviour. We were intially uncertain if this would even be possible. But we can now tell you that not only is it possible, but we have done it. Our solution, YoForms, is written entirely in JEE6 enterprise Java and runs on any standards compliant application server. It communicates with the browser via a lightweight AJAX layer designed to minimise traffic volume, and uses a small subset of HTML features to eliminate browser / device-specific display variations.</p>
<p>We will use this hands-on session to explore areas of particular interest in greater depth, in an informal and responsive style. YoForms will again be enabled over the WiFi network to facilitate a fully interactive approach. </p>
<p><strong><em>OraPlayer Handson: Two heads are better than one: Create HTML,ADF and Mobile UI&#8217;s for an existing Oracle Forms business processes (service). (Mia Urman) </em></strong></p>
<p>In this session you will see first-hand how you can run Oracle Forms business processes from any technology or UI. We will show how the same Oracle Forms system runs with the usual java applet on weblogic, then from a pure HTML UI in the browser, then from an ADF faces application using an &#8220;OraPlayer-Forms business process&#8221; data control and finally on your OWN mobile phone (wireless network permitting). We will then see how easy it is to maintain ( maintain one system and delpoy anywhere) when we change the FMB&#8217;s business logic in the Forms developer and see the change automatically reflected in all the UI&#8217;s.</p>
<p><strong><em></em></strong>&nbsp;</p>
<p><strong><em>JHeadstart Hands-on (Steven Davelaar) </em></strong></p>
<p>By following this hands-on session, you&#8217;ll experience first-hand how Oracle JHeadstart 11g can help you in building a best-practice ADF web application. You will built a transactional web application based on 6 tables of the Oracle HR schema, that includes rich functionality like quick and advanced search, a wizard in a popup window, a shuttle picker, a tree control, validation using list of values, conditionally dependent items, a graph, dynamic breadcrumbs, context-sensitive linking, validation rules and multi-language support. In addition, you will see how you can easily customize the generated artifacts and how you can preserve these customizations upon regeneration. Since no Java coding is required to implement the tutorial, even developers with minimal-to-no Java skills can follow along.</p>
<p><strong><em>Deep dive with OraFormsFaces (Wilfred van der Deijl)</em></strong><br />While the time is too short for a complete environment set up and initiation to ADF &#8211; the first natural habitat for embedd Forms wih OraFormsFaces, this deep dive is not so much about hands-on, but intended to take a deep dive with OraFormsFaces. Wilfred will show advanced demos, explain about real life experiences gathered around the world and discuss various migration strategies. In this intimate setting, there is also plenty of opportunity for discussion and detailed Q&amp;A.</p>
<p><strong><em>Forms 11g &#8211; How modern can Forms itself be? (Lucas Jellema)</em></strong><br />Forms 11g is quite something else than Forms 6.0. Many features have been added over the last decade, including Pluggable Java Components, Java Script integration, SOA integration and the WebLogic Server infrastructure. As a result, quite attractive, modern looking and interacting applications can be created using Forms 11g. In this hands-on session, participants will receive a Virtual Machine with Forms 11g and a number of labs that clearly demonstrate the power of some of these new features and make evident that a revitalization of Forms is within reach. To participate in this session, Forms development skills are a prerequisite.</p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2012/04/27/the-future-of-forms-15th-of-may-nieuwegein-the-netherlands/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jamming with Fusion Middleware at OBUG 2012</title>
		<link>http://technology.amis.nl/2012/04/25/jamming-with-fusion-middleware-at-obug-2012/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=jamming-with-fusion-middleware-at-obug-2012</link>
		<comments>http://technology.amis.nl/2012/04/25/jamming-with-fusion-middleware-at-obug-2012/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 07:20:26 +0000</pubDate>
		<dc:creator>Lucas Jellema</dc:creator>
				<category><![CDATA[ADF & JHeadstart]]></category>
		<category><![CDATA[AMIS]]></category>
		<category><![CDATA[Java, JEE, OAS and WebLogic Server]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SOA & Oracle Fusion Middleware]]></category>
		<category><![CDATA[adf]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[edn]]></category>
		<category><![CDATA[fmw]]></category>
		<category><![CDATA[human task]]></category>
		<category><![CDATA[jheadstart]]></category>
		<category><![CDATA[soa suite]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/?p=17830</guid>
		<description><![CDATA[The all-star, mostly ACE(D) team consisting of Lonneke, Steven, Luc, Edwin, Ronald and Lucas did a very entertaining jam session with Fusion Middleware most of all day yesterday at the OBUG 2012 Connect Conference (Oracle Benelux User Group). The third performance of its kind &#8211; ODTUG 2011 and UKOUG  [...]]]></description>
			<content:encoded><![CDATA[<p>The all-star, mostly ACE(D) team consisting of Lonneke, Steven, Luc, Edwin, Ronald and Lucas did a very entertaining jam session with Fusion Middleware most of all day yesterday at the OBUG 2012 Connect Conference (Oracle Benelux User Group). The third performance of its kind &#8211; ODTUG 2011 and UKOUG 2011 in Long Beach, California (USA) and Birmingham (UK) being the preceding gigs &#8211; successfully realized an end-to-end business process implementation with ingredients such as ADF, JHeadstart, Human Task, BPEL, Mediator, AQ, Event Delivery Network, Technology Adapters, UMS for Emails en of course the database.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/04/image_thumb1.png" width="697" height="278"/></a>&nbsp;</p>
<p>In front of a live audience, the challenge was outlined. The high level design introduced and the various components discussed. The left-hand screen (for the audience) displayed the business process and the work done to it in terms of design and implementation. The screen in the middle demonstrated the user interface development using ADF and the right hand screen played various roles, from service development to Enterprise Manager display, BPM worklist and Email client.</p>
<p>The members of the band played the following instruments: Steven on ADF and JHeadstart, Luc on ADF and ADF DVT (Data Visualization Components) for the business dashboard, Ronald on SOA Suite &#8211; Mediator, Adapters &#8211; and Lonneke on BPEL and Human Task. Edwin played virtually every instruments and Lucas was the lead singer and audience participation person.</p>
<p><span id="more-17830"></span>
<p>Being a fairly unknown group of artists, we do not yet have the luxury of groupies and roadies that prepare the stage for us.</p>
<p>Here is what we had accomplished after the first architectural discussions about the layout of our performance area:</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/image2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/04/image_thumb2.png" width="392" height="274"/></a></p>
<p>Next the cables for the network:</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/image3.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/04/image_thumb3.png" width="370" height="272"/></a></p>
<p>and:</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/image4.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/04/image_thumb4.png" width="430" height="514"/></a></p>
<p>Then the real work got underway:</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/image5.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/04/image_thumb5.png" width="491" height="365"/></a></p>
<p>The business challenges by the way was the following: the company organizing conferences such as ODTUG, UKOUG, OBUG and OOW has this key business process of coordinating the presentations that make up the beef of the conference. This process is started with speakers submitting abstracts that need to be reviewed; upon acceptance, the speaker needs to upload the slides for the presentation, the presentation should be planned in the overall schedule, the speaker should be informed and when the presentation has taken place, an evaluation should be executed and the results fed back to the speaker. Only then &#8211; weeks and months after it was commenced &#8211; is the process complete.</p>
<p>During this live development show, we implemented two user interfaces (yellow tier in the picture below): the Speaker Portal and the Back Office Portal &#8211; the latter including the Dashboard. The Portals communicate with the database (green tier) via ADF BC, with the Human Workflow Engine in the SOA Suite and with the Event Delivery Network, also in the SOA Suite (red tier). The process coordination or orchestration takes place in BPEL (could also be BPM) and is positioned in the blue tier. The process works with various services and adapters &#8211; the red tier again &#8211; to get started, allocate tasks and retrieve and manipulate data.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/image6.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/04/image_thumb6.png" width="969" height="611"/></a></p>
<p>Even though we have done it before, we can also do it better and a lot of discussion and brainstorming takes place during the session:</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/image7.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/04/image_thumb7.png" width="342" height="239"/></a></p>
<p>much to the enlightenment of the audience:</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/image8.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/04/image_thumb8.png" width="444" height="301"/></a></p>
<p>and work continues during our own breaks &#8211; when the audience is in the break-out sessions around the conference venue:</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/image9.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/04/image_thumb9.png" width="403" height="295"/></a></p>
<p>We were able to complete the session with an end-to-end demo of a speaker submitting an abstract through the speaker portal, the dashboard being updated with this information in the back office portal, a message getting published to AQ in the database, triggering an inbound AQ adapter that initiates a SOA Composite application. After the initial transformation, the Mediator in this instance invoked the Business Process &#8211; a second SOA Composite with a BPEL process and several Human Task components. The BPEL process initiates a Human Task allocated to the Back Office staff. An email is sent to all staff members and through the special Task UI in the Back Office Portal &#8211; ADF interacting with the Human Workflow API &#8211; the abstract submitted by the speaker is accepted. The process continues now the task is complete, updates the database via a service call and sends an email to inform the speaker of acceptance (or rejection) and a request for uploading the slides of the presentation via the speaker portal. The upload will cause the speaker portal to publish an event &#8211; slides uploaded event &#8211; from ADF BC to the Event Delivery Network in SOA Suite where the process will pick it up and once again continue with the next step &#8211; a human task for scheduling the exact slot for the presentation.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/image10.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/04/image_thumb10.png" width="244" height="182"/></a></p>
<p>As always, it was great fun to collaborate with this high class team. Great job. We should do it again some time…</p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2012/04/25/jamming-with-fusion-middleware-at-obug-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OBUG 2012 &#8211; Live Fusion Middleware Application Development Demo by all star team</title>
		<link>http://technology.amis.nl/2012/04/20/obug-2012-live-fusion-middleware-application-development-demo-by-all-star-team/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=obug-2012-live-fusion-middleware-application-development-demo-by-all-star-team</link>
		<comments>http://technology.amis.nl/2012/04/20/obug-2012-live-fusion-middleware-application-development-demo-by-all-star-team/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 14:32:54 +0000</pubDate>
		<dc:creator>Lucas Jellema</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SOA & Oracle Fusion Middleware]]></category>
		<category><![CDATA[adf]]></category>
		<category><![CDATA[bpm]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[fmw]]></category>
		<category><![CDATA[live]]></category>
		<category><![CDATA[obug]]></category>
		<category><![CDATA[soa suite 11g]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/?p=17763</guid>
		<description><![CDATA[Next Tuesday, 24th of April in the MECC in Maastricht during the Oracle Benelux User Group conference, an all star team of Oracle Fusion Middleware specialists will present and perform a very special session: a live and interactive application development demonstration. This session is planned in  [...]]]></description>
			<content:encoded><![CDATA[<p>Next Tuesday, 24th of April in the MECC in Maastricht during the Oracle Benelux User Group conference, an all star team of Oracle Fusion Middleware specialists will present and perform a very special session: a live and interactive application development demonstration. This session is planned in two parts: 11.00-12.45 and 14.30-15.45. </p>
<p>Many articles and presentations discuss various parts of Oracle Fusion Middleware, such as ADF or SOA Suite, WebCenter or Oracle Service Bus. Usually they do so in an isolated fashion and not seldom only in a theoretical (&#8216;slideware&#8217;) fashion. In this very special session, attendees will see at close range how it all comes together and what steps are necessary to create a real end-to-end FMW application. A team of brave developers (doing database, ADF, SOA Suite, OSB and BPM) will develop an end-to-end Fusion Middleware application over the course of the afternoon. Their work will be monitored live on a number of big screens, while a moderator solicits audience suggestions for functional requirements and explains what is being done. </p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://technology.amis.nl/wp-content/uploads/2012/04/image_thumb.png" width="1000" height="270"/></a></p>
<p><span id="more-17763"></span>
<p>Many concepts and components from FMW appear in an integrated, meaningful context during this session. Attendees will now see first hand how it all comes together and what steps are necessary to create a real FMW application. They also get the chance to participate, help direct the team effort by contributing to the functional requirements, ask questions, get live demonstrations for an answer and get real insight in the FMW development process. This is the perfect way for the audience to get from an abstract idea of what FMW is all about to a clear understanding of what the Fusion Middleware development tools look like and how developers will work together in creating mutually interacting components that together constitute a FMW application architecture. </p>
<p>If you ever wondered about Fusion Middleware development &#8211; what it actually entails to create an ADF application or implement a SOA Suite Composite Application or what you should do to design a business process using BPM and implement a custom user interface for performing the human tasks in the process and what options are available to exchange events and achieve data integration across tiers &#8211; then this session will bring it all to life for you. </p>
<p>This session is a walk-in event &#8211; that you can also walk out of. Just come and watch the demo for short while or join for the full three hour event. Pick and choose as you like, to get the most out of it.</p>
<p>The team that staged this event at the ODTUG 2011 (Long Beach, California) and UKOUG 2011 (Birmingham, UK) now brings it home to Maastricht. Among its members are Fusion Middleware specialists from Vennster and AMIS Services, including Lonneke Dikmans, Ronald van Luttikhuizen, Luc Bors, Edwin Biemond and Lucas Jellema complemented with well know Oracle veteran Steven Davelaar from Oracle Consulting Services. </p>
<p>More details on OBUG 2012 are here: : <a href="http://www.obug.nl/images/stories/2012/Publish%20Connect%20program/index.html">http://www.obug.nl/images/stories/2012/Publish%20Connect%20program/index.html</a>. Registration for this OBUG conference is done via <a href="http://www.obug.nl/index.php?option=com_ckforms&amp;view=ckforms&amp;id=8&amp;lang=nl">http://www.obug.nl/index.php?option=com_ckforms&amp;view=ckforms&amp;id=8&amp;lang=nl</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2012/04/20/obug-2012-live-fusion-middleware-application-development-demo-by-all-star-team/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bind two activities to one button in a Humantask</title>
		<link>http://technology.amis.nl/2012/04/16/bind-two-activities-to-a-button-in-a-humantask/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bind-two-activities-to-a-button-in-a-humantask</link>
		<comments>http://technology.amis.nl/2012/04/16/bind-two-activities-to-a-button-in-a-humantask/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 17:22:30 +0000</pubDate>
		<dc:creator>Marcel van de Glind</dc:creator>
				<category><![CDATA[ADF & JHeadstart]]></category>
		<category><![CDATA[AMIS]]></category>
		<category><![CDATA[SOA & Oracle Fusion Middleware]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/?p=17502</guid>
		<description><![CDATA[Ever forgot to Save your changes in Humantasks before pressing the Approve or Reject button?
&#160;
In a SOA environment I have a humantask in a BPEL process. The humantask has an Approve and a Reject outcome.
The humantask offers the possibility to change al kinds of process related data. By default  [...]]]></description>
			<content:encoded><![CDATA[<h3>Ever forgot to Save your changes in Humantasks before pressing the Approve or Reject button?</h3>
<p>&nbsp;</p>
<p>In a SOA environment I have a humantask in a BPEL process. The humantask has an Approve and a Reject outcome.<br />
The humantask offers the possibility to change al kinds of process related data. By default these changes are not saved when you press the Approve or Reject button. As a result It happens often that changes are not saved by making the mistake not saving changes before Approvement.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/Save.bmp"><img class="alignnone  wp-image-17693" src="http://technology.amis.nl/wp-content/uploads/2012/04/Save.bmp" alt="" width="261" height="159" /></a></p>
<h4>Change the default button behaviour</h4>
<p>In this blog I will decribe how to change the behaviour behind the &#8216;Approve&#8217; button. I will change it to &#8216;Save and Approve&#8217;. On first hand I though this would be very simple. Add a second action to the button and tha&#8217;s all. But it is not possible to directly bind multiple actions to a button. However it is still possible by binding a new action to the button that on it&#8217;s turn executes multiple actions.</p>
<p>This can be implemented with a <em><strong>Managed Bean</strong></em>. I will descibe how to create the Managed Bean and to bind it to the Approve  and Reject button. <span id="more-17502"></span></p>
<p>At first, open the humantask (jspx file). In source mode find the ‘<strong>Approve</strong>’ <em>commandToolbarButton.</em></p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/fig1.bmp"><img src="http://technology.amis.nl/wp-content/uploads/2012/04/fig1.bmp" alt="" /></a></p>
<p>&nbsp;</p>
<p>Change the values of the <strong>Action</strong> and <strong>ActionListener</strong> properties. You can do this directly in the source code or via the properties window in the bottom-right. I prefer this last option because it makes things a litle easier.</p>
<p>Select the left arrow behind <strong>Action</strong>. Then select ‘<em>closeTaskFlow’</em>.  This takes care of closing the taskform after pressing the <em>Approve</em> button.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/fig2.bmp"><img src="http://technology.amis.nl/wp-content/uploads/2012/04/fig2.bmp" alt="" /></a></p>
<p>&nbsp;</p>
<p>Now, select the right arrow behind <strong>ActionListener</strong>. Then select <em>Edit. The following </em>window appears.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/fig3.bmp"><img src="http://technology.amis.nl/wp-content/uploads/2012/04/fig3.bmp" alt="" /></a></p>
<p>&nbsp;</p>
<p>Select ‘New’ behind Managed Bean.<br />
Specify the Bean details as shown in the image below:</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/fig4.bmp"><img src="http://technology.amis.nl/wp-content/uploads/2012/04/fig4.bmp" alt="" /></a></p>
<p>&nbsp;</p>
<p>After pressing <em>OK </em>we will get back in the &#8217;Edit Property&#8217; window. The name of the new Managed Bean is shown.<br />
Add a method to the Bean. Press <em>New</em> behind Method.</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/fig5.bmp"><img src="http://technology.amis.nl/wp-content/uploads/2012/04/fig5.bmp" alt="" /></a></p>
<p>&nbsp;</p>
<p>Specify a Method name (e.g. <strong>saveApprove</strong>) and press <em>OK</em></p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/fig6.bmp"><img src="http://technology.amis.nl/wp-content/uploads/2012/04/fig6.bmp" alt="" /></a></p>
<p>&nbsp;</p>
<p>Press <em>OK</em> again.</p>
<p>A java class ‘<strong>MedewerkerHT.java</strong>’ is now available in the <em>Application Source</em>. Change/replace the source code of this class:</p>
<pre class="wp-code-highlight prettyprint">package amis.nl;

import javax.faces.event.ActionEvent;
import oracle.adf.model.BindingContext;
import oracle.binding.BindingContainer;
import oracle.binding.OperationBinding;

public class MedewerkerHT {
    public MedewerkerHT() {
    }

    public void saveApprove(ActionEvent actionEvent) {

        // Save changes
  BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry(); 
        OperationBinding method = bindings.getOperationBinding(&quot;update&quot;); 
        if (method != null) {
            method.execute(); 
        }

       // Perform original function
        bindings = BindingContext.getCurrent().getCurrentBindingsEntry(); 
        method = bindings.getOperationBinding(&quot;APPROVE&quot;); 
        if (method != null) {
            method.execute();
        }
    } 

    public void saveReject(ActionEvent actionEvent) {
        // Save changes
  BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry(); 
        OperationBinding method = bindings.getOperationBinding(&quot;update&quot;); 
        if (method != null) {
            method.execute(); 
        }

        // Perform original function
        bindings = BindingContext.getCurrent().getCurrentBindingsEntry(); 
        method = bindings.getOperationBinding(&quot;REJECT&quot;); 
        if (method != null) {
            method.execute();
        }
    } 
}</pre>
<p>The class contains the implementation for both the <strong>Approve</strong> and the <strong>Reject</strong> Button.</p>
<p>&nbsp;</p>
<p>In the humantask the sourcecode of the commandToolbarButton is changed into:</p>
<pre class="wp-code-highlight prettyprint">&amp;lt;af:commandToolbarButton actionListener=&quot;#{&lt;strong&gt;customization.saveApprove&lt;/strong&gt;}&quot;
             text=&quot;#{wf:getResourceValue('APPROVE', 'bindings.customActions')}&quot;
              disabled=&quot;#{!bindings.APPROVE.enabled}&quot;
              action=&quot;&lt;strong&gt;closeTaskFlow&lt;/strong&gt;&quot;
              partialSubmit=&quot;false&quot;
              visible=&quot;#{wf:isCustomActionAvailable('APPROVE', 'bindings.customActions')}&quot;
       id=&quot;ctb2&quot;&amp;gt;
                    &amp;lt;f:attribute name=&quot;DC_OPERATION_BINDING&quot; value=&quot;bindings.APPROVE&quot;/&amp;gt;
&amp;lt;/af:commandToolbarButton&amp;gt;</pre>
<p>The actionListener is binded to the new created Managed Bean</p>
<p>For the reject button almost the same steps are required. Even though it is not needed to create the Bean and Method again. Now it is possible to select the existing one.</p>
<p>The two functions are now binded to the same button.</p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2012/04/16/bind-two-activities-to-a-button-in-a-humantask/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generating a PDF-document with some plsql: as_pdf_mini =&gt; as_pdf3</title>
		<link>http://technology.amis.nl/2012/04/11/generating-a-pdf-document-with-some-plsql-as_pdf_mini-as_pdf3/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=generating-a-pdf-document-with-some-plsql-as_pdf_mini-as_pdf3</link>
		<comments>http://technology.amis.nl/2012/04/11/generating-a-pdf-document-with-some-plsql-as_pdf_mini-as_pdf3/#comments</comments>
		<pubDate>Wed, 11 Apr 2012 21:04:21 +0000</pubDate>
		<dc:creator>Anton Scheffer</dc:creator>
				<category><![CDATA[AMIS]]></category>
		<category><![CDATA[Devel. + PL/SQL tools]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/?p=17718</guid>
		<description><![CDATA[It has been more than a year since I published my previous blog on generating PDF with pl/sql.
In that time I&#8217;ve rewritten as_pdf two times, so now its time for as_pdf3

The most important improvement is Truetype Fonts
[code]
declare
x pls_integer;
begin
as_pdf3.init;
as_pdf3.write( 'But others  [...]]]></description>
			<content:encoded><![CDATA[<p>It has been more than a year since I published my previous <a href="http://technology.amis.nl/2010/10/20/as_pdf-generating-a-pdf-document-with-some-plsql/">blog</a> on generating PDF with pl/sql.<br />
In that time I&#8217;ve rewritten as_pdf two times, so now its time for <strong>as_pdf3</strong><br />
<span id="more-17718"></span><br />
The most important improvement is Truetype Fonts<br />
[code]<br />
declare<br />
x pls_integer;<br />
begin<br />
as_pdf3.init;<br />
as_pdf3.write( 'But others fonts and encodings are possible using TrueType fontfiles.' );<br />
x := as_pdf3.load_ttf_font( 'MY_FONTS', 'refsan.ttf', 'CID', p_compress =&gt; false );<br />
as_pdf3.set_font( x, 12 );<br />
as_pdf3.write( 'The Windows MSReference SansSerif font contains a lot of encodings, for instance', -1, 700 );<br />
as_pdf3.set_font( x, 15 );<br />
as_pdf3.write( 'Albanian: Kush mund të lexoni këtë diçka si kjo', -1, -1 );<br />
as_pdf3.write( 'Croatic: Tko može čitati to nešto poput ovoga', -1, -1 );<br />
as_pdf3.write( 'Russian: Кто может прочитать это что-то вроде этого', -1, -1);<br />
as_pdf3.write( 'Greek: Ποιος μπορεί να διαβάσει αυτό το κάτι σαν αυτό', -1, -1 );<br />
--<br />
as_pdf3.set_font( 'helvetica', 12 );<br />
as_pdf3.write( 'Or by using a TrueType collection file (ttc).', -1, 600 );<br />
as_pdf3.load_ttc_fonts( 'MY_FONTS', 'cambria.ttc', p_embed =&gt; true, p_compress =&gt; false );<br />
as_pdf3.set_font( 'cambria', 15 ); -- font family<br />
as_pdf3.write( 'Anton, testing 1,2,3 with Cambria', -1, -1 );<br />
as_pdf3.set_font( 'CambriaMath', 15 ); -- fontname<br />
as_pdf3.write( 'Anton, testing 1,2,3 with CambriaMath', -1, -1 );<br />
--<br />
as_pdf3.set_font( 'helvetica', 12 );<br />
as_pdf3.write( 'Or if you need to generate a PDF report in Chinese:', -1, 520 );<br />
as_pdf3.set_font( as_pdf3.load_ttf_font( 'MY_DIR', 'simfang.ttf', 'CID', p_compress =&gt; false ), 12 );<br />
as_pdf3.write( 'Chinese: 在中国的一个简单的句子', -1, -1 );<br />
--<br />
as_pdf3.save_pdf;<br />
end;<br />
[/code]</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/fonts.png"><img class="alignnone size-medium wp-image-17720" src="http://technology.amis.nl/wp-content/uploads/2012/04/fonts.png" alt="fonts" width="703" height="503" /></a></p>
<p>But some more things, headers en footers:<br />
[code]<br />
declare<br />
t_rc sys_refcursor;<br />
t_query varchar2(1000);<br />
begin<br />
as_pdf3.init;<br />
as_pdf3.load_ttf_font( 'MY_FONTS', 'COLONNA.TTF', 'CID' );<br />
as_pdf3.set_page_proc( q'~<br />
begin<br />
as_pdf3.set_font( 'helvetica', 8 );<br />
as_pdf3.put_txt( 10, 15, 'Page #PAGE_NR# of "PAGE_COUNT#' );<br />
as_pdf3.set_font( 'helvetica', 12 );<br />
as_pdf3.put_txt( 350, 15, 'This is a footer text' );<br />
as_pdf3.set_font( 'helvetica', 'B', 15 );<br />
as_pdf3.put_txt( 200, 780, 'This is a header text' );<br />
as_pdf3.put_image( 'MY_DIR', 'amis.jpg', 500, 15 );<br />
end;~' );<br />
as_pdf3.set_page_proc( q'~<br />
begin<br />
as_pdf3.set_font( 'Colonna MT', 'N', 50 );<br />
as_pdf3.put_txt( 150, 200, 'Watermark Watermark Watermark', 60 );<br />
end;~' );<br />
t_query := 'select rownum, sysdate + level, ''example'' || level from dual connect by level as_pdf3.query2table( t_query );<br />
open t_rc for t_query;<br />
as_pdf3.refcursor2table( t_rc );<br />
as_pdf3.save_pdf;<br />
end;<br />
[/code]</p>
<p><a href="http://technology.amis.nl/wp-content/uploads/2012/04/tables.png"><img class="alignnone size-medium wp-image-17720" src="http://technology.amis.nl/wp-content/uploads/2012/04/tables.png" alt="" /></a></p>
<p>And the code for this package: <a href="http://technology.amis.nl/wp-content/uploads/2012/04/as_pdf3_3.txt">as_pdf3</a></p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2012/04/11/generating-a-pdf-document-with-some-plsql-as_pdf_mini-as_pdf3/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
	</channel>
</rss>

