<?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"
	>

<channel>
	<title>Blogging about Software Development &#187; Oracle</title>
	<atom:link href="http://www.bloggingaboutjava.org/category/oracle/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bloggingaboutjava.org</link>
	<description>Blogging about Software Development</description>
	<pubDate>Wed, 03 Dec 2008 15:09:11 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Pro4Pro season starting tomorrow</title>
		<link>http://www.bloggingaboutjava.org/2008/10/pro4pro-season-starting-tomorrow/</link>
		<comments>http://www.bloggingaboutjava.org/2008/10/pro4pro-season-starting-tomorrow/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 09:31:07 +0000</pubDate>
		<dc:creator>Arjen van Schie</dc:creator>
		
		<category><![CDATA[Events]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[Pro4Pro]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=392</guid>
		<description><![CDATA[



 Tomorrow is the start of a new &#8216;Pro4Pro season&#8217;. Pro4Pro sessions are given by some of the best professionals of Logica.
“Extreem RAD : Live Web Applicatie Ontwikkeling met Oracle Application Express”
“Standardizing SOA with Oracle&#8217;s Application Integration Architecture&#8221;
“Practical Approach to SOA Adoption”




Subject: “Extreem RAD : Live Web Applicatie Ontwikkeling met Oracle Application Express”
Pro: Roel Hartman
Office: [...]]]></description>
			<content:encoded><![CDATA[<table>
<tr>
<td>
<img class="alignleft" style="padding:4px;" src="http://www.bloggingaboutjava.org/cms/wordpress2/wp-content/themes/LogicaCMG/images/pro4pro-200x85.gif" alt="" width="160" align="left" /></td>
<td> Tomorrow is the start of a new &#8216;Pro4Pro season&#8217;. Pro4Pro sessions are given by some of the best professionals of Logica.</p>
<li><strong>“Extreem RAD : Live Web Applicatie Ontwikkeling met Oracle Application Express”</strong></li>
<li><strong>“Standardizing SOA with Oracle&#8217;s Application Integration Architecture&#8221;</strong></li>
<li><strong>“Practical Approach to SOA Adoption”</strong></li>
</td>
</tr>
</table>
<p><span id="more-392"></span></p>
<p><strong>Subject: “Extreem RAD : Live Web Applicatie Ontwikkeling met Oracle Application Express”</strong><br />
Pro: Roel Hartman<br />
Office: Arnhem, the Netherlands<br />
Date: 28 oktober 2008</p>
<p><strong>Subject: “Standardizing SOA with Oracle&#8217;s Application Integration Architecture&#8221;</strong><br />
Pro: Adri Greeve<br />
Office: Rotterdam<br />
Date: 13 november 2008</p>
<p><strong>Subject: “Practical Approach to SOA Adoption”</strong><br />
Pro: Edwin van Dis<br />
Office: Amstelveen<br />
Date: 27 november 2008</p>
<p><a href="http://www.logica.nl/pro4pro/">Register for a Pro4Pro session</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/10/pro4pro-season-starting-tomorrow/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Guru4Pro: Thomas Erl @ Logica</title>
		<link>http://www.bloggingaboutjava.org/2008/10/guru4pro-thomas-erl-logica-nl/</link>
		<comments>http://www.bloggingaboutjava.org/2008/10/guru4pro-thomas-erl-logica-nl/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 09:21:03 +0000</pubDate>
		<dc:creator>Arjen van Schie</dc:creator>
		
		<category><![CDATA[Events]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[Guru4Pro]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=378</guid>
		<description><![CDATA[
Guru4Pro Thomas Erl - - ‘How to overcome the key challenges within SOA’.
Date: 20 oktober 2008
On Monday the 20th of October Logica has invited Thomas Erl to speak on the Principles of Service Design and Patterns to transform the most important challenges into a successful realization of a Service Oriented Architecture. Business analyst, functional designers [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="padding:4px;" src="http://www.logica.nl/file/10754" alt="" width="160" align="left" /><br />
<strong>Guru4Pro Thomas Erl - - ‘How to overcome the key challenges within SOA’.<br />
Date: 20 oktober 2008</strong></p>
<p>On Monday the 20th of October Logica has invited Thomas Erl to speak on the Principles of Service Design and Patterns to transform the most important challenges into a successful realization of a Service Oriented Architecture. Business analyst, functional designers and architects will gain new valuable insights on the modeling of services and supporting architecture.</p>
<p><span id="more-378"></span></p>
<p><strong>About Thomas Erl:</strong><br />
Thomas Erl is the world&#8217;s top-selling SOA author, Series Editor of the &#8220;Prentice Hall Service-Oriented Computing Series from Thomas Erl&#8221; (www.soabooks.com), and Editor of The SOA Magazine (www.soamag.com). With over 95,000 copies in print world-wide, his books have become international bestsellers. His most recent titles “SOA Design Patterns” (www.soapatterns.com) and “Web Service Contract Design and Versioning for SOA” were co-authored with a series of industry experts and are being released in the latter half of 2008.</p>
<p>Thomas is also the founder of SOA Systems Inc. (www.soasystems.com), a company specializing in SOA training, certification, and strategic consulting services with a vendor-agnostic focus. For more information, visit www.thomaserl.com.</p>
<p><strong>Program</strong><br />
18.00 uur Welcome &#038; diner<br />
19.00 uur Welcome speach<br />
19.15 uur Thomas Erl – ‘How to overcome the key challenges within SOA’<br />
20.30 uur Drinks</p>
<p><em><strong>The presentation will be in English of course.</strong></em></p>
<p><strong>Location</strong><br />
Logica, Prof. W.H. Keesomlaan 14 in Amstelveen</p>
<p>There is more info on the Logica site (in Dutch). <a href="http://www.logica.nl/guru4pro+-+thomas+erl/400013044">You can also register (”aanmeldingsformulier”) there</a>.</p>
<p><img src="http://www.logica.nl/file/3192" alt="Guru4Pro" width="200" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/10/guru4pro-thomas-erl-logica-nl/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Guru4Pro: Tom Kyte @ Logica</title>
		<link>http://www.bloggingaboutjava.org/2008/10/tom-kyte-logica/</link>
		<comments>http://www.bloggingaboutjava.org/2008/10/tom-kyte-logica/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 12:17:51 +0000</pubDate>
		<dc:creator>Roel</dc:creator>
		
		<category><![CDATA[Announcements]]></category>

		<category><![CDATA[Databases]]></category>

		<category><![CDATA[Events]]></category>

		<category><![CDATA[Guru4Pro]]></category>

		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=375</guid>
		<description><![CDATA[In the afternoon of November 3 Oracle guru Tom Kyte will talk about &#8220;11 Things about 11g&#8221; at the Logica office in Amstelveen (near Amsterdam). I have attended this presentation at ODTUG this year and I assure you it&#8217;s worthwhile! After his presentation Tom will also do an AskTom Live session. So a great opportunity [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://2.bp.blogspot.com/_1PcG7Kr-Zg8/SO85sMYEVgI/AAAAAAAAAEw/WqxtuY4YHMw/s200/asktom4.gif" alt="" align="left" />In the afternoon of November 3 Oracle guru Tom Kyte will talk about &#8220;<em>11 Things about 11g</em>&#8221; at the Logica office in Amstelveen (near Amsterdam). I have attended this presentation at ODTUG this year and I assure you it&#8217;s worthwhile! After his presentation Tom will also do an <a href="http://asktom.oracle.com/pls/asktom/f?p=100:1">AskTom</a> Live session. So a great opportunity to enhance your knowledge with everything you wanted to know about Oracle but you never dared to ask&#8230;<br />
There is more info on the <a href="http://www.logica.nl/guru4pro+-+tom+kyte/400013739">Logica site</a> (in Dutch, but Tom will do his presentation in English ofcourse). You can also register (&#8221;aanmeldingsformulier&#8221;) there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/10/tom-kyte-logica/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Oracle Developer Certification (professional)</title>
		<link>http://www.bloggingaboutjava.org/2008/09/new-oracle-developer-certification-professional/</link>
		<comments>http://www.bloggingaboutjava.org/2008/09/new-oracle-developer-certification-professional/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 12:43:17 +0000</pubDate>
		<dc:creator>Jasper</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Nice to know]]></category>

		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[PL/SQL]]></category>

		<category><![CDATA[certification]]></category>

		<category><![CDATA[OCP]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=370</guid>
		<description><![CDATA[If you would like to be an Oracle Certified Profressional on a developer level, OCA + Forms was always the only way to go. Until now! Oracle is currently running a beta exam on OCP that includes not Oracle Forms, but goes in deeper to PL/SQL. The official title: Oracle Advanced PL/SQL Developer Certified Professional. [...]]]></description>
			<content:encoded><![CDATA[<p>If you would like to be an Oracle Certified Profressional on a developer level, OCA + Forms was always the only way to go. Until now! Oracle is currently running a beta exam on OCP that includes not Oracle Forms, but goes in deeper to PL/SQL. The official title: Oracle Advanced PL/SQL Developer Certified Professional. The exam (IZ0-146) contains the following subjects:<br />
<br />
<span id="more-370"></span></p>
<ul>
<li>Oracle11g: Advanced PL/SQL</li>
<li>PL/SQL Programming Concepts: Review</li>
<li>Designing PL/SQL Code</li>
<li>Working with Collections</li>
<li>Using Advanced Interface Methods</li>
<li>Implementing Fine-Grained Access Control for VPD</li>
<li>Manipulating Large Objects</li>
<li>Administering SecureFile LOBs</li>
<li>Performance and Tuning</li>
<li>Improving Performance with Caching</li>
<li>Analyzing PL/SQL Code</li>
<li>Profiling and Tracing PL/SQL Code</li>
<li>Safeguarding Your Code Against SQL Injection Attacks</li>
</ul>
<p>More info: <a href="http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=155">http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=155</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/09/new-oracle-developer-certification-professional/feed/</wfw:commentRss>
		</item>
		<item>
		<title>APEX application for maintaining personal contracts</title>
		<link>http://www.bloggingaboutjava.org/2008/09/apex-application-for-maintaining-personal-contracts/</link>
		<comments>http://www.bloggingaboutjava.org/2008/09/apex-application-for-maintaining-personal-contracts/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 12:35:34 +0000</pubDate>
		<dc:creator>Jasper</dc:creator>
		
		<category><![CDATA[Apex]]></category>

		<category><![CDATA[Databases]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[PL/SQL]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=369</guid>
		<description><![CDATA[APEX is famous for it&#8217;s useful applications, so when the idea poped into my head that I would like to track my personal contracts, APEX was first in line to develop such an application.
The purpose of this app is to be able to track longrunning contracts with their renewalperiods. One month before you should end [...]]]></description>
			<content:encoded><![CDATA[<p>APEX is famous for it&#8217;s useful applications, so when the idea poped into my head that I would like to track my personal contracts, APEX was first in line to develop such an application.</p>
<p>The purpose of this app is to be able to track longrunning contracts with their renewalperiods. One month before you should end the contract (checked on contract enddate) you&#8217;ll receive an email. I used Oracle&#8217;s DBMS_SCHEDUAL to call the procedure that sends out the email. Also, it has an authentication scheme so that different users can use this online app. Although it&#8217;s dutch, everyone can apply <a title="Contract Notifier" href="http://apex.oracle.com/pls/otn/f?p=23729" target="_blank">now</a>.</p>
<p> <a href="http://apex.oracle.com/pls/otn/f?p=23729">http://apex.oracle.com/pls/otn/f?p=23729</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/09/apex-application-for-maintaining-personal-contracts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OWSM seminar in Copenhagen</title>
		<link>http://www.bloggingaboutjava.org/2008/09/owsm-seminar-in-copenhagen/</link>
		<comments>http://www.bloggingaboutjava.org/2008/09/owsm-seminar-in-copenhagen/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 19:05:57 +0000</pubDate>
		<dc:creator>Peter Lorenzen</dc:creator>
		
		<category><![CDATA[Events]]></category>

		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[Oracle Fusion Middleware]]></category>

		<category><![CDATA[OWSM]]></category>

		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=368</guid>
		<description><![CDATA[Tuesday the 9 of September our ½ day Oracle Web Services Manager seminar took place. There were 23 participants. Everything went according to the plan even the live demos. My colleague Erik Birklund started the day with a quick intro to the business drive for Web Services and security. The rest of the day I [...]]]></description>
			<content:encoded><![CDATA[<p>Tuesday the 9 of September our ½ day Oracle Web Services Manager seminar took place. There were 23 participants. Everything went according to the plan even the live demos. My colleague Erik Birklund started the day with a quick intro to the business drive for Web Services and security. The rest of the day I did a technical introduction to OWSM. The product is not that “big” so we got around pretty much every option. There were a couple of people present that just went live with OWSM which was nice because then we could also get their perspective on things.</p>
<p class="MsoNormal"> <span id="more-368"></span> </p>
<p class="MsoNormal">The seminar was well received and we got good evaluations. All in all a great day. You can find the presentations here <a href="http://www.logica.dk/owsm">www.logica.dk/owsm</a></p>
<p><img src="http://www.bloggingaboutjava.org/cms/wordpress2/wp-content/uploads/2008/09/owsm-copenhagen.jpg" alt="OWSM seminar Copenhagen" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/09/owsm-seminar-in-copenhagen/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Logica&#8217;s presentations at UKOUG 2008</title>
		<link>http://www.bloggingaboutjava.org/2008/09/logicas-presentations-at-ukoug-2008/</link>
		<comments>http://www.bloggingaboutjava.org/2008/09/logicas-presentations-at-ukoug-2008/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 14:13:52 +0000</pubDate>
		<dc:creator>Roel</dc:creator>
		
		<category><![CDATA[Apex]]></category>

		<category><![CDATA[Events]]></category>

		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[PL/SQL]]></category>

		<category><![CDATA[UKOUG]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=366</guid>
		<description><![CDATA[Logica does six presentations during the upcoming UKOUG on 1-5 December in Birmingham. For the record: The UKOUG is the largest European Oracle related conference with about 3,000 attendees.



When
What
Who


Monday, Dec 1, 11:00-12:00
Is my Disaster (re)covered?
Piet de Visser


Tuesday, Dec 2, 13:05-13:50
Streamlining the Sales Cycle - Integrating Salesforce.com CRM with Oracle Quoting
Paul Colton


Thursday, Dec 4, 10:45-11:30
Being Steven [...]]]></description>
			<content:encoded><![CDATA[<p>Logica does six presentations during the upcoming UKOUG on 1-5 December in Birmingham. For the record: The UKOUG is the largest European Oracle related conference with about 3,000 attendees.</p>
<table border="0" cellspacing="10">
<tbody>
<tr>
<td><strong>When</strong></td>
<td><strong>What</strong></td>
<td><strong>Who</strong></td>
</tr>
<tr>
<td>Monday, Dec 1, 11:00-12:00</td>
<td>Is my Disaster (re)covered?</td>
<td>Piet de Visser</td>
</tr>
<tr>
<td>Tuesday, Dec 2, 13:05-13:50</td>
<td>Streamlining the Sales Cycle - Integrating Salesforce.com CRM with Oracle Quoting</td>
<td>Paul Colton</td>
</tr>
<tr>
<td>Thursday, Dec 4, 10:45-11:30</td>
<td>Being Steven Feuerstein</td>
<td>Andrew Clarke</td>
</tr>
<tr>
<td>Thursday, Dec 4, 11:55-12:40</td>
<td>Designing PL/SQL applications</td>
<td>Andrew Clarke</td>
</tr>
<tr>
<td>Thursday, Dec 4, 11:55-12:40</td>
<td>Capturing Internal Demand – which Tool to use?</td>
<td>Mike Turner</td>
</tr>
<tr>
<td>Thursday, Dec 4, 15:05-15:50</td>
<td>Developing a Real-World Logistic Application with Oracle Application Express (S301752)</td>
<td>Roel Hartman</td>
</tr>
</tbody>
</table>
<p>Click <a title="UKOUG 2008 agenda" href="http://conference.ukoug.org/default.asp?p=847" target="_blank">here</a> to see the full UKOUG agenda online.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/09/logicas-presentations-at-ukoug-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Logica&#8217;s presentations at Oracle Open World 2008</title>
		<link>http://www.bloggingaboutjava.org/2008/09/logicas-presentations-at-oracle-open-world-2008/</link>
		<comments>http://www.bloggingaboutjava.org/2008/09/logicas-presentations-at-oracle-open-world-2008/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 13:51:28 +0000</pubDate>
		<dc:creator>Roel</dc:creator>
		
		<category><![CDATA[Apex]]></category>

		<category><![CDATA[Events]]></category>

		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[Oracle Fusion Middleware]]></category>

		<category><![CDATA[OOW]]></category>

		<category><![CDATA[Open World]]></category>

		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=365</guid>
		<description><![CDATA[Logica does two presentations during the upcoming Oracle Open World 2008 on 21-25 September in San Francisco.



When
Where
What
Who


Monday, Sep 22, 13:00-14:00
Moscone South, Rm 309
Developing a Real-World Logistic Application with Oracle Application Express (S301752)
Roel Hartman


Wednesday, Sep 24. 09:00-10:00
Marriott, Nob Hill CD
Practical Approach to SOA Adoption in Business Environments (S300535)
Edwin van Dis



Both presentations aren&#8217;t fully booked yet, so [...]]]></description>
			<content:encoded><![CDATA[<p>Logica does two presentations during the upcoming Oracle Open World 2008 on 21-25 September in San Francisco.</p>
<table border="0" cellspacing="10">
<tbody>
<tr>
<td><strong>When</strong></td>
<td><strong>Where</strong></td>
<td><strong>What</strong></td>
<td><strong>Who</strong></td>
</tr>
<tr>
<td>Monday, Sep 22, 13:00-14:00</td>
<td>Moscone South, Rm 309</td>
<td>Developing a Real-World Logistic Application with Oracle Application Express (S301752)</td>
<td>Roel Hartman</td>
</tr>
<tr>
<td>Wednesday, Sep 24. 09:00-10:00</td>
<td>Marriott, Nob Hill CD</td>
<td>Practical Approach to SOA Adoption in Business Environments (S300535)</td>
<td>Edwin van Dis</td>
</tr>
</tbody>
</table>
<p>Both presentations aren&#8217;t fully booked yet, so if you have the time and happen to be around&#8230;you can add these to your OOW-schedule!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/09/logicas-presentations-at-oracle-open-world-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The future of SQL Developer - the end of Designer?</title>
		<link>http://www.bloggingaboutjava.org/2008/07/the-future-of-sql-developer-the-end-of-designer/</link>
		<comments>http://www.bloggingaboutjava.org/2008/07/the-future-of-sql-developer-the-end-of-designer/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 09:40:54 +0000</pubDate>
		<dc:creator>Roel</dc:creator>
		
		<category><![CDATA[Designer]]></category>

		<category><![CDATA[Developer]]></category>

		<category><![CDATA[Developer Suite]]></category>

		<category><![CDATA[Oracle System Development]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=361</guid>
		<description><![CDATA[Last month Oracle released a statement of direction for SQL Developer (here it is). Apart from the enhanced testing capabilities the most important feature will be the support of graphical logical and physical data modeling - just like you normally would do using Oracle Designer - using the acquired CDW4ALL extension. This modeling can be [...]]]></description>
			<content:encoded><![CDATA[<p>Last month Oracle released a statement of direction for SQL Developer (<a href="http://www.oracle.com/technology/products/database/sql_developer/files/sqldeveloperstatementofdirection.htm">here</a> it is). Apart from the enhanced testing capabilities the most important feature will be the support of graphical logical and physical data modeling - just like you normally would do using Oracle Designer - using the acquired CDW4ALL extension. This modeling can be used offline (file-based, using XML files) or repository based. So Oracle seems to be moving (some) essential Designer features towards SQL Developer, therefore reducing the need for Designer - which is obviously in &#8216;maintenance mode&#8217; (no new features added).<br />
One thing that worries me a little is that this &#8220;<span style="italic;">functionality is          delivered as an optional extension</span>&#8220;. That sounds a little like $$$&#8230;., but I&#8217;m not sure about that!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/07/the-future-of-sql-developer-the-end-of-designer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Drag &#38; Drop with APEX</title>
		<link>http://www.bloggingaboutjava.org/2008/07/drag-drop-with-apex/</link>
		<comments>http://www.bloggingaboutjava.org/2008/07/drag-drop-with-apex/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 13:15:38 +0000</pubDate>
		<dc:creator>Rutger de Ruiter</dc:creator>
		
		<category><![CDATA[Apex]]></category>

		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=356</guid>
		<description><![CDATA[Creating out of the box functionality for web apps with APEX is as fun as it is challenging. Some time ago Roel Hartman and me started working on a transport and logistics application in APEX. (Roel allready blogged about it once here)
One specific part of this application was a planboard which used dragging and dropping [...]]]></description>
			<content:encoded><![CDATA[<p>Creating out of the box functionality for web apps with APEX is as fun as it is challenging. Some time ago Roel Hartman and me started working on a transport and logistics application in APEX. (Roel allready blogged about it once <a href="http://roelhartman.blogspot.com/2008/06/drag-drop-feature-in-apex.html" target="_blank">here</a>)<br />
One specific part of this application was a planboard which used dragging and dropping with orders in sort of a truck calendar. It was build in Java and had all the swingy features you&#8217;d expect.<br />
The client wanted to know if this was possible with APEX. Well, sure it is. We&#8217;ll just use the full pallete available for us with the web browser!<a href="http://apex.oracle.com/pls/otn/f?p=52879:PLANBOARD" target="_blank"> CLICK HERE TO SEE IT.</a><br />
Obviously their are many paths to take when considering the design for this sort of functionality, especially when you have APEX at your disposal to create it.</p>
<p>Should we use the available calendar?<br />
Could we use a tabular form?<br />
Do we use standard APEX DML report/forms?</p>
<p>Well, this is what we did <img src='http://www.bloggingaboutjava.org/cms/wordpress2/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><!--[if gte mso 9]&amp;gt;  Normal 0     false false false  EN-US X-NONE X-NONE              MicrosoftInternetExplorer4              &amp;lt;![endif]--><!--[if gte mso 9]&amp;gt;                                                                                                                                            &amp;lt;![endif]--> <span style="bold;"><strong>The design</strong><br />
</span><br />
<a href="http://bp0.blogger.com/_Yj6UYlI3btk/SHIDIFPwHtI/AAAAAAAAADY/zmpjK3fdkYE/s1600-h/flow.JPG"><img style="pointer;" src="http://bp0.blogger.com/_Yj6UYlI3btk/SHIDIFPwHtI/AAAAAAAAADY/zmpjK3fdkYE/s400/flow.JPG" border="0" alt="" /></a></p>
<p><span></span><span id="more-356"></span><br />
<span style="bold;">1.</span> Collect the data for the planboard view, it will show the truck number (equipment number) and the orders in the days of the week:</p>
<p class="MsoListParagraph" style="italic;" align="left"><em>Datamodel</em></p>
<p class="MsoListParagraph" style="-18pt;" align="left"><a href="http://bp3.blogger.com/_Yj6UYlI3btk/SHIEMazqyoI/AAAAAAAAADg/tHXn9UYbqvY/s1600-h/data.JPG"><img style="pointer;" src="http://bp3.blogger.com/_Yj6UYlI3btk/SHIEMazqyoI/AAAAAAAAADg/tHXn9UYbqvY/s400/data.JPG" border="0" alt="" /></a></p>
<p class="MsoListParagraph" style="-18pt;" align="left"><em><span style="italic;">Viewquery</span></em></p>
<pre><span style="x-small;">SELECT trucks.truck_id
,      to_char(to_date(load_date), 'YYYYIW') load_week
,      max(decode( rtrim(to_char(load_date,'day', 'nls_date_language = DUTCH')), 'maandag'  , order_id, null )) mon
,      max(decode( rtrim(to_char(load_date,'day', 'nls_date_language = DUTCH')), 'dinsdag'  , order_id, null )) tue
,      max(decode( rtrim(to_char(load_date,'day', 'nls_date_language = DUTCH')), 'woensdag' , order_id, null )) wed
,      max(decode( rtrim(to_char(load_date,'day', 'nls_date_language = DUTCH')), 'donderdag', order_id, null )) thu
,      max(decode( rtrim(to_char(load_date,'day', 'nls_date_language = DUTCH')), 'vrijdag'  , order_id, null )) fri
,      max(decode( rtrim(to_char(load_date,'day', 'nls_date_language = DUTCH')), 'zaterdag' , order_id, null )) sat
,      max(decode( rtrim(to_char(load_date,'day', 'nls_date_language = DUTCH')), 'zondag'   , order_id, null )) sun
FROM   trucks,</span>
<span style="x-small;">     orders
WHERE  orders.truck_id (+) = trucks.truck_id</span>
<span style="x-small;">GROUP BY trucks.truck_id,
to_char(to_date(load_date), 'YYYYIW')</span>
<span style="x-small;">ORDER BY trucks.truck_id</span></pre>
<p><img src="/DOCUME%7E1/ruiterr/LOCALS%7E1/Temp/moz-screenshot-1.jpg" alt="" /><span style="bold;">2.</span> The report region has the planboard view as source. For every column box (value or not) <span> </span>a unique id is created . These id’s make sure that a column box is a container where you can drop items in. The column boxes with a value, should show the item with its value.</p>
<p><span style="italic;">Report buildup</span></p>
<pre><a href="http://bp2.blogger.com/_Yj6UYlI3btk/SHIFK93v6fI/AAAAAAAAADw/ahD3YaEdG24/s1600-h/normal.JPG"><img style="pointer;" src="http://bp2.blogger.com/_Yj6UYlI3btk/SHIFK93v6fI/AAAAAAAAADw/ahD3YaEdG24/s320/normal.JPG" border="0" alt="" /></a>
<a href="http://bp1.blogger.com/_Yj6UYlI3btk/SHIFLKFZDII/AAAAAAAAAD4/W-8NeH9xzyo/s1600-h/cont.JPG"><img style="pointer;" src="http://bp1.blogger.com/_Yj6UYlI3btk/SHIFLKFZDII/AAAAAAAAAD4/W-8NeH9xzyo/s320/cont.JPG" border="0" alt="" /></a></pre>
<pre><a href="http://bp3.blogger.com/_Yj6UYlI3btk/SHIFK6o0bEI/AAAAAAAAADo/lip1GIvxI08/s1600-h/item.JPG"><img style="pointer;" src="http://bp3.blogger.com/_Yj6UYlI3btk/SHIFK6o0bEI/AAAAAAAAADo/lip1GIvxI08/s320/item.JPG" border="0" alt="" /></a></pre>
<p><span style="italic;">The column formatting for every day column<br />
</span></p>
<pre><a href="http://bp3.blogger.com/_Yj6UYlI3btk/SHIGlQVCMeI/AAAAAAAAAEA/IJsfMA3nB00/s1600-h/code.jpg"><img style="pointer;" src="http://bp3.blogger.com/_Yj6UYlI3btk/SHIGlQVCMeI/AAAAAAAAAEA/IJsfMA3nB00/s320/code.jpg" border="0" alt="" /></a></pre>
<p><span style="bold;">3.</span> The report region must also call a javascript function CreateDragContainer, for every container in the region. While doing this, all items inside a container (or just the values selected with the view) become draggable. With the unique id’s, movement can be tracked, and when an order item is dropped in a container, the rest of the handling can start. This is all done by Javascript, where credit must go out for a part of the dragging &amp; dropping to Mark Kahn at <a href="http://www.webreference.com/">webreference</a>.<br />
The most important part is that the id&#8217;s are filtered, and passed to application items, and that an AJAX call is made to an application process. Here&#8217;s the AJAX call code:<br />
<span style="xx-small;"><br />
<span style="courier new;">var ajaxRequest = new htmldb_Get(null,&amp;APP_ID.,&#8217;APPLICATION_PROCESS=updatePlanbord&#8217;,null);</span><br />
<span style="courier new;">if (curTarget.id.substr(0,3) == &#8216;new&#8217;){</span><br />
<span style="courier new;"> ajaxRequest.add(&#8217;P_TARGET&#8217;, curTarget.id.substring(13, curTarget.id.length));</span><br />
<span style="courier new;"> ajaxRequest.add(&#8217;P_ADDACTION&#8217;, &#8216;true&#8217;);</span><br />
<span style="courier new;"> var cDay = curTarget.id.substring(9,12);</span><br />
<span style="courier new;">}else{</span><br />
<span style="courier new;"> ajaxRequest.add(&#8217;P_TARGET&#8217;, curTarget.id.substring(9, curTarget.id.length));</span><br />
<span style="courier new;"> ajaxRequest.add(&#8217;P_ADDACTION&#8217;, &#8216;false&#8217;);</span></span></p>
<p><span style="courier new;"> var cDay = curTarget.id.substring(5,8);</span><br />
<span style="courier new;">}</span><br />
<span style="courier new;"> var cDayDate</span><br />
<span style="courier new;"> if (cDay == &#8216;mon&#8217;){</span><br />
<span style="courier new;"> cDayDate = html_GetElement(&#8217;P1_MON_DAT&#8217;).value;</span><br />
<span style="courier new;"> }else if (cDay == &#8216;tue&#8217;){</span><br />
<span style="courier new;"> cDayDate = html_GetElement(&#8217;P1_TUE_DATE&#8217;).value;</span><br />
<span style="courier new;"> }else if (cDay == &#8216;wed&#8217;){</span></p>
<p><span style="courier new;"> cDayDate = html_GetElement(&#8217;P1_WED_DATE&#8217;).value;</span><br />
<span style="courier new;"> }else if (cDay == &#8216;thu&#8217;){</span><br />
<span style="courier new;"> cDayDate = html_GetElement(&#8217;P1_THU_DATE&#8217;).value;</span><br />
<span style="courier new;"> }else if (cDay == &#8216;fri&#8217;){</span><br />
<span style="courier new;"> cDayDate = html_GetElement(&#8217;P1_FRI_DATE&#8217;).value;</span><br />
<span style="courier new;"> }else if (cDay == &#8217;sat&#8217;){</span><br />
<span style="courier new;"> cDayDate = html_GetElement(&#8217;P1_SAT_DATE&#8217;).value;</span><br />
<span style="courier new;"> }else if (cDay == &#8217;sun&#8217;){</span><br />
<span style="courier new;"> cDayDate = html_GetElement(&#8217;P1_SUN_DATE&#8217;).value;</span><br />
<span style="courier new;"> }</span></p>
<p><span style="courier new;">ajaxRequest.add(&#8217;P_PARENT&#8217;, rootContainer.id.substring(9, rootContainer.id.length));</span><br />
<span style="courier new;">ajaxRequest.add(&#8217;P_LOADDATE&#8217;, cDayDate);</span></p>
<p><span style="courier new;">ajaxRequest.GetAsync(f_AsyncReturn);</span></p>
<p><span style="bold;">4. </span>The application process can do two things, UPDATE an existing order when it is dropped in another truck, or UPDATE an existing order when it had no truck (open action) and was dropped in another truck. Here&#8217;s the code:</p>
<p><span style="xx-small;">DECLARE<br />
type_action varchar2(10);</span></p>
<p>BEGIN<br />
<span style="xx-small;">type_action </span><span style="xx-small;">:= &#8221;||:P_ADDACTION||&#8221;;</span></p>
<p>IF <span style="xx-small;">type_action</span><span style="xx-small;">= &#8216;false&#8217; THEN</span></p>
<p>UPDATE orders SET truck_id = :P_PARENT WHERE order_id = :P_TARGET AND to_date(load_date, &#8216;dd-mm-yyyy&#8217;) = to_date(&#8221;||:P_LOADDATE||&#8221;, &#8216;dd-mm-yyyy&#8217;);</p>
<p>ELSIF <span style="xx-small;">type_action </span><span style="xx-small;">= &#8216;true&#8217; THEN</span></p>
<p>UPDATE orders SET truck_id = :P_PARENT WHERE order_id = :P_TARGET;</p>
<p>INSERT INTO orders (ORDER_ID, DESTINATION, LOAD_DATE, TRUCK_ID) VALUES (ODERS_SEQ.nextval, NULL, to_date(&#8221;||:P_LOADDATE||&#8221;, &#8216;dd-mm-yyyy&#8217;), NULL);</p>
<p>END IF;<br />
COMMIT;<br />
EXCEPTION WHEN OTHERS THEN<br />
htp.p(SQLERRM);<br />
END;</p>
<p>After some CSS tricks and custom theming, you get the result you see in the browser. Needless to say, the client was quite impressed with the result, and I think it is another example of the flexibility APEX has to offer being in a web browser!</p>
<p>If you&#8217;d like to know more on this application and you&#8217;re at the Oracle Open World this year, vote for this presentation on Oracle Mix by clicking <a href="https://mix.oracle.com/ideas/30082-re-developing-a-logistic-application-in-apex-in-the-real-world">HERE</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/07/drag-drop-with-apex/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
