<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel>
<title>Claremont</title>
<link>http://www.claremont.co.uk</link>
<description>Claremont is a leading professional services organisation and Oracle Gold partner that uses Oracle software to help businesses to improve processes and performance to achieve competitive advantage.</description>
<lastBuildDate>Fri, 17 May 2013 11:01:58 GMT</lastBuildDate>
<generator>Capitan CMS 4.0</generator>
<language>en-gb</language>
<copyright>Copyright: (C) Claremont, see http://www.claremont.co.uk for terms and conditions of reuse.</copyright> 
<atom:link href="http://www.claremont.co.uk/xml/rss1.xml" rel="self" type="application/rss+xml" />
<item>
<title>Off his seat and into the saddle!</title>
<pubDate>Thu, 16 May 2013 11:48:59 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/off-his-seat-and-into-the-saddle-/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/off-his-seat-and-into-the-saddle-/</guid>
<description>

&lt;p&gt;&lt;img alt=&quot;Matt on his bike&quot; height=&quot;228&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/image/matt_bike.jpg&quot; style=&quot;float: left; margin-right: 10px;&quot; title=&quot;Matt on his bike&quot; width=&quot;150&quot;/&gt;Claremont&amp;rsquo;s Matt Christie will be getting off his seat and getting into the saddle for charity. He will be raising money for the British Heart Foundation, the nation&amp;rsquo;s heart charity that saves lives through pioneering research and providing vital information to help people reduce their own heart health risks, campaigning for change and supporting and caring for heart patients.&lt;/p&gt;
&lt;p&gt;As one of Claremont&amp;rsquo;s Managed Services consultants, his role involves long periods of time sitting in front of a monitor. Realising the health risks of his current lifestyle, Matt decided to make some changes, getting fitter, losing weight and look after his own health and well being. &lt;br/&gt;&lt;br/&gt;So, on Sunday 19th May, Matt will be cycling 40 miles in the Cotswold Bike Ride - a largely uphill ride around the beautiful countryside of Gloucestershire. Matt is determined to reach his goal of completing the challenge and raising money for this great charity and maybe earn himself a small Scrumpy when he completes his challenge! &lt;br/&gt;&lt;br/&gt;Please support Matt by donating: &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.justgiving.com/Matt-Christie&quot;&gt;http://www.justgiving.com/Matt-Christie&lt;/a&gt;&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
</item>

<item>
<title>Authenticating Database Users Securely with Microsoft Active Directory</title>
<pubDate>Mon, 22 Apr 2013 13:48:08 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/authenticating-database-users-securely-with-microsoft-active-directory/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/authenticating-database-users-securely-with-microsoft-active-directory/</guid>
<description>

&lt;p&gt;Last year one of our clients had a need to authenticate users from a disparate set of databases against Microsoft Active Directory. We configured a high availability solution for them using the Oracle Identity Management suite that allowed them to do this and meet a critical audit requirement at a very low cost.&lt;br/&gt;&lt;br/&gt;We returned this year to provide some additional enhancements to their solution and provide additional training for their DBA team and oversee their DR tests. One interesting requirement was to configure SSL authentication between Oracle Virtual Directory (OVD) and the back end Microsoft Active Directory farm. &lt;br/&gt;&lt;br/&gt;This was achieved by configuring the AD adapter within OVD, to first of all use the SSL port, and secondly to import the Microsoft Active Directory root CA certificate into the OVD &amp;ldquo;adapters.jks&amp;rdquo; java keystore.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;First of all, we backup the existing keystore:&lt;br/&gt;&lt;br/&gt;&lt;span class=&quot;redtext&quot;&gt;cd $ORACLE_INSTANCE/config/OVD/ovd1&lt;/span&gt;&lt;br/&gt;&lt;span class=&quot;redtext&quot;&gt;cp &amp;ndash;r keystores keystores.bak&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Then we use the java keytool from within the OVD Oracle home to import the certificate:&lt;br/&gt;&lt;br/&gt;&lt;span class=&quot;redtext&quot;&gt;$ORACLE_HOME/jdk/jre/bin/keytool -import &amp;ndash;trustcacerts -alias &quot;AD_ROOTCA&quot; &amp;ndash;file /home/orafmwd/ad_rootca.cer -keystore $ORACLE_INSTANCE/config/OVD/ovd1/keystores/adapters.jks&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Once the certificate is in place, we can now go ahead and configure the AD adapter to use the SSL port (636 is the standard AD SSL port), and set the SSL Authentication Mode:&lt;br/&gt;&lt;br/&gt;&lt;img alt=&quot;Screenshot of Authentication process&quot; height=&quot;277&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/image/ODSM_Console_AD_SSL_config3.jpg&quot; title=&quot;Screenshot of Authentication process&quot; width=&quot;600&quot;/&gt;&amp;nbsp;&lt;br/&gt;&lt;br/&gt;From this point onwards all communication between Oracle Virtual Directory and Microsoft AD will be done securely over SSL.&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Managing a Large Oracle Database SGA</title>
<pubDate>Wed, 27 Mar 2013 11:24:53 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/managing-a-large-oracle-database-sga/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/managing-a-large-oracle-database-sga/</guid>
<description>

&lt;p&gt;Recently one of our customers experienced a number of performance related issues. These tended to be demonstrated during periods when the customer was running batch-type activities during the working day, clashing with the online user load. Due to business requirements rescheduling the batch work to out of hours was not an option, so a workable solution was required.&lt;/p&gt;
&lt;p&gt;The database is Oracle version 11.2.0.3 with a 60Gb System Global Area (&amp;ldquo;SGA&amp;rdquo;) and 40GB Program Global Area (&amp;ldquo;PGA&amp;rdquo;) running on a virtual server with 16 CPU cores, 128Mb RAM and using the Oracle Linux 5.8 operating system (&amp;ldquo;OS&amp;rdquo;). The OS uses huge pages, hence sga_target rather than memory_target is used in Oracle&amp;rsquo;s initialisation parameters, and the virtualisation platform is Oracle VM.&lt;/p&gt;
&lt;p&gt;Initial analysis was performed with Oracle Enterprise Manager (OEM) and showed the following load profile during an affected period:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Load profile image (1)&quot; height=&quot;110&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/image/MS_diag1.jpg&quot; title=&quot;Load profile image (1)&quot; width=&quot;600&quot;/&gt;&lt;/p&gt;
&lt;p&gt;On face value, this would look to be a pretty typical storage IO issue, the blue on the above graph being dominant and showing IO to be circa 65% of all wait time in the database. However, the issue only affected online user performance during the periods where we see &amp;ldquo;red&amp;rdquo; on the graph. This is related to concurrency waits on blocking locks.&lt;/p&gt;
&lt;p&gt;After running some targeted tests set up to replicate the scenario over a sustained period of time, we saw the following:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Load Profile Image (2)&quot; height=&quot;149&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/image/MS_diag2.jpg&quot; title=&quot;Load Profile Image (2)&quot; width=&quot;600&quot;/&gt;&lt;/p&gt;
&lt;p&gt;Eventually under this load the system would get to a state where it ran out of redo space and the infamous &amp;ldquo;checkpoint incomplete&amp;rdquo; error message occurred. It was also noted that the blocking locks were sessions waiting on the &amp;ldquo;ckpt&amp;rdquo; background process, producing, amongst others, the &amp;ldquo;enq KO: Fast Object Checkpoint&amp;rdquo; wait event.&lt;/p&gt;
&lt;p&gt;A checkpoint is a point in time, before which all dirty buffers associated with historical SCNs&amp;nbsp; (or System Change Numbers) have been written to the physical data files and the datafile headers and controlfiles are updated to record this SCN. The checkpoint incomplete error occurs when the next redo log group is still awaiting the write of some dirty buffers (those which have changed) associated with the log group&amp;rsquo;s redo data.&amp;nbsp; The database hangs completely until the redo log group becomes available or until another empty one is added.&lt;/p&gt;
&lt;p&gt;In this instance, the system had 25 1Gb redo log groups, so over a period of time 25Gb of redo had been generated before it was able to be written to disk. A slow IO subsystem was looking likely considering the nature of the performance graphs OEM gave us.&amp;nbsp; However, something wasn&amp;rsquo;t quite stacking up - the time it took to force the database into this state was ample to write this size of data to data files under normal circumstances.&lt;/p&gt;
&lt;p&gt;The issue was actually related to a new feature in Oracle 11g &amp;ndash; fast object checkpointing.&amp;nbsp; Fast object checkpointing is a mechanism intended to improve performance of direct path reads on data objects. A direct path read can only occur when there are no dirty buffers associated with the data block in memory &amp;ndash; otherwise it would be data-inconsistent, or not actually a direct read. Therefore a fast object checkpoint will attempt to checkpoint all changes on an object-by-object basis rather than sequentially through SCN. This is to cut down on unnecessary duplicated writes to disk of buffer changes in the event of direct reads occurring. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;We found the redo log groups were remaining active (i.e. the changes stored in them had not been written to datafiles) longer than seemed desirable. The large SGA has the ability to cache large amounts of data and since the database was also large (circa 3.5Tb), this data often pertained to the same object. Therefore a single direct read request on such an object caused the writing of all the blocks for a specific object to disk before completing a checkpoint. We saw contention in buffer cache latches and eventually ran into the dreaded checkpoint incomplete error where the database hangs causing user sessions to timeout and all manner of problems.&lt;/p&gt;
&lt;p&gt;The fix was simply to set _db_fast_obj_ckpt=FALSE in the database&amp;rsquo;s initialisation parameters. This turned off fast object checkpointing and reverted to the old fashioned style of checkpointing, regardless as to object, based on a &amp;ldquo;first come, first served&amp;rdquo; basis. This means that the checkpoints completed more quickly, allowing the database to continue processing forwards without hanging on the checkpoint incomplete message.&amp;nbsp; The trade-off here was a degradation of performance in direct reads, but overall system performance was tested and found to have improved to a large degree, for example some batch processes take around 5 times less time to complete. More importantly, the system was then able to outlast sustained periods of load before redo space became a problem.&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Claremont Delivers @Claremont Oracle Accelerate Solution for Professional Services based on Oracle E-Business Suite 12.1</title>
<pubDate>Thu, 21 Mar 2013 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/accredited_accelerate_solution/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/accredited_accelerate_solution/</guid>
<description>

&lt;p&gt;&lt;strong&gt;&lt;img alt=&quot;Oracle Accelerate logo&quot; class=&quot;COMleft&quot; height=&quot;68&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/image/SW_O_Accel4MidsizeCompanies_clr_-_72dpi.jpg&quot; style=&quot;margin-right: 15px;&quot; title=&quot;Oracle Accelerate logo&quot; width=&quot;247&quot;/&gt;United Kingdom, March 21, 2013&lt;/strong&gt; - Claremont today announced &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=https://solutions.oracle.com/scwar/sc/Solution/SCSP-SRIYPEWR.html&quot;&gt;@Claremont an Oracle Accelerate solution for the Professional Services industry&lt;/a&gt;. @Claremont provides customers with access to the Oracle E-Business Suite 12.1 for an affordable, monthly fixed cost. &lt;a href=&quot;http://www.claremont.co.uk/&quot;&gt;Claremont&lt;/a&gt; is an &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.oracle.com/us/solutions/midsize/accelerate/overview/index.html&quot;&gt;Oracle Accelerate solution&lt;/a&gt; provider and a Gold level member in &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.oracle.com/partners/index.html&quot;&gt;Oracle PartnerNetwork&lt;/a&gt; (OPN).&lt;br/&gt;&lt;br/&gt;The &lt;a href=&quot;http://www.claremont.co.uk/services/claremont_saas/&quot;&gt;@Claremont&lt;/a&gt; Oracle Accelerate solution provides midsize companies with easy, low cost access to the Oracle E-Business Suite 12.1. For a fixed- per user/-per month- charge, &lt;a href=&quot;http://www.claremont.co.uk/services/claremont_saas/&quot;&gt;@Claremont &lt;/a&gt;includes licenses for the Oracle E-Business Suite 12.1, with a rapid implementation, secure hosting and access to industry leading managed services. &lt;br/&gt;&lt;br/&gt;This Oracle Accelerate Solution for Professional Services delivered by Claremont offers adaptive business processes and a high-quality ownership experience to professional services organizations worldwide that rely on Oracle for better business insight and to help them grow. This pre-integrated professional business applications package helps customers retain key talent and tackle complex global projects within their business.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;&amp;ldquo;In today&amp;rsquo;s tough economic climate, we are confident that @Claremont will help businesses to gain competitive advantage by using the Oracle E-Business Suite 12.1 in an easily consumable and affordable way. We are delighted that Oracle has reviewed @Claremont as an Oracle Accelerate solution in recognition of this.&amp;rdquo;&lt;/em&gt;&lt;/strong&gt; said Mark Vivian, Claremont Managing Director.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.9em;&quot;&gt;&lt;span class=&quot;redtext&quot;&gt;About Oracle Accelerate&lt;/span&gt;&lt;br/&gt;Oracle Accelerate provides simple to deploy, packaged, enterprise-class software solutions to growing midsize organizations through Oracle&amp;rsquo;s network of expert partners. Created by Oracle&amp;#39;s expert partners, Oracle Accelerate solutions are simple to deploy, industry-specific packaged solutions, designed for fast time to benefit, which means getting the right solution in place quickly, inexpensively and with a controlled scope and predictable returns. The best Oracle Accelerate Solutions are based on Oracle Business Accelerators, which are powerful, cloud-based rapid implementation tools developed and maintained by Oracle to get you up and running on a wide range of Oracle Applications, both quickly and reliably. Oracle has more than 290,000 midsize customers who buy Oracle to grow. To find out more, visit www.oracle.com/accelerate. &lt;br/&gt;&lt;strong/&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.9em;&quot;&gt;&lt;span class=&quot;redtext&quot;&gt;About Oracle PartnerNetwork&lt;/span&gt;&lt;br/&gt;Oracle PartnerNetwork (OPN) Specialized is the latest version of Oracle&amp;#39;s partner program that provides partners with tools to better develop, sell and implement Oracle solutions. OPN Specialized offers resources to train and support specialized knowledge of Oracle products and solutions and has evolved to recognize Oracle&amp;rsquo;s growing product portfolio, partner base and business opportunity. Key to the latest enhancements to OPN is the ability for partners to differentiate through Specializations. Specializations are achieved through competency development, business results, expertise and proven success. To find out more visit &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.oracle.com/partners/index.html&quot;&gt;http://www.oracle.com/partners&lt;/a&gt;.&lt;strong/&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.9em;&quot;&gt;&lt;span class=&quot;redtext&quot;&gt;About Claremont&lt;/span&gt;&lt;br/&gt;Claremont is a leading professional services organisation and Oracle Investment Partner that uses Oracle software to help businesses to improve processes and performance to achieve competitive advantage. Claremont employs only the most knowledgeable consultants with deep industry and business expertise to work with customers through the full systems lifecycle. To find out more visit &lt;a href=&quot;http://www.claremont.co.uk/&quot;&gt;http://www.claremont.co.uk.&lt;/a&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;###&lt;strong/&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.9em; margin-bottom: 10px;&quot;&gt;&lt;span class=&quot;redtext&quot;&gt;Trademarks&lt;/span&gt;&lt;br/&gt;Oracle and Java are registered trademarks of Oracle and/or its affiliates. &lt;strong/&gt;&lt;/p&gt;
&lt;p class=&quot;redtext&quot; style=&quot;font-size: 0.9em; margin-bottom: 5px;&quot;&gt;Useful Links:&lt;/p&gt;
&lt;ul style=&quot;font-size: 0.9em; margin-top: 5px;&quot;&gt;&lt;li&gt;Oracle for Midsize Companies: &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.oracle.com/midsize&quot;&gt;www.oracle.com/midsize&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Oracle Accelerate: &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.oracle.com/accelerate&quot;&gt;www.oracle.com/accelerate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Oracle Accelerate Solutions: &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.oracle.com/accelerate-solutions&quot;&gt;www.oracle.com/accelerate-solutions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Oracle Business Accelerators: &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.oracle.com/oba%20&quot;&gt;www.oracle.com/oba &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Midsize.oracle.com: &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.oracle.com/us/solutions/midsize/accelerate/overview/index.html&quot;&gt;midsize.oracle.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Oracle Accelerate Media: &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.oracle.com/accelerate-media&quot;&gt;www.oracle.com/accelerate-media &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Oracle PartnerNetwork Knowledge Zone: Oracle Accelerate for Midsize Companies: &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.oracle.com/goto/acceleratepartners/index.html&quot;&gt;www.oracle.com/goto/acceleratepartners/index.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Oracle Business Accelerators for Partners: &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.oracle.com/goto/obapartners%20&quot;&gt;www.oracle.com/goto/obapartners &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Oracle ERP for Midsize Companies: &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.oracle.com/us/solutions/midsize/enterprise-class-erp-1375433.html%20&quot;&gt;http://www.oracle.com/us/solutions/midsize/enterprise-class-erp-1375433.html &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Grow Your Business with Oracle Accelerate: &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.youtube.com/watch?v=UO-NhqFW9hM__AND__feature=plcp%20&quot;&gt;http://www.youtube.com/watch?v=UO-NhqFW9hM&amp;amp;feature=plcp &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
</item>

<item>
<title>We’ve got Specialized!</title>
<pubDate>Wed, 6 Feb 2013 16:14:10 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/specialized_status/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/specialized_status/</guid>
<description>

&lt;p&gt;&lt;img alt=&quot;Oracle Specialized logo&quot; class=&quot;COMleft&quot; height=&quot;105&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/image/O_SpecGold_OracleE-BusSuiteFM_clr.jpg&quot; style=&quot;margin-right: 15px;&quot; title=&quot;Specialized logo&quot; width=&quot;194&quot;/&gt;&lt;/p&gt;
&lt;p&gt;Claremont has been awarded the Oracle E-Business Suite (EBS) R12.1 Financial Management Specialization by Oracle. The Specialization recognises partner organisations that are proficient in selling, implementing and/or developing Oracle E-Business Suite EBS R12.1 Financial Management modules. Oracle partners who achieve this Specialization are differentiated in the marketplace through proven expertise in Oracle E-Business Suite (EBS) R12.1 Financial Management solutions. &lt;br/&gt;&lt;br/&gt;&lt;em&gt;&amp;ldquo;Claremont is a stand out partner in the Oracle economy, demonstrated by their Investment Partner status internally within Oracle. This Specialization is further evidence of their expertise and the great work that they do with their customers&amp;rdquo;&lt;/em&gt;. Tim North, Partner Manager, UK Channels and Alliances, Oracle Corporation.&lt;br/&gt;&lt;br/&gt;&lt;em&gt;&amp;ldquo;We are pleased to receive this Specialization from Oracle in recognition of our capabilities and successful delivery track record around the core Financials components of Oracle E-Business. Our team have a passion for delivery excellence, and it is great for them to receive this certification.&amp;rdquo;&lt;/em&gt; said Mark Vivian, Managing Director, Claremont. &lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
</item>

<item>
<title>Trust in us pays off!</title>
<pubDate>Thu, 24 Jan 2013 14:41:35 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/nationaltrust/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/nationaltrust/</guid>
<description>

&lt;p&gt;&lt;img alt=&quot;National Trust&quot; class=&quot;CONleft&quot; height=&quot;125&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/articles_1/image/nt-story-logo.jpg&quot; style=&quot;margin-right: 15px;&quot; title=&quot;National Trust&quot; width=&quot;125&quot;/&gt;After 9 months in the planning and execution, Claremont is pleased to announce that they have completed the transition of the National Trust&amp;rsquo;s Oracle E-Business CRM system into their data centres, and commenced a 5 year managed services contract for DBA Support &amp;amp; Hosting. The transition project was delivered on time and to budget and was completed without a major hitch.&lt;/p&gt;
&lt;p&gt;Claremont was selected over a number of Tier 1 Systems Integrators in the procurement process, in particular for its flexible and agile approach to solving problems and delivering business goals for the Trust.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sarah Flannigan&lt;/strong&gt;, Chief Information Officer, National Trust commented: &amp;ldquo;&lt;em&gt;Selecting Claremont to support our CRM system has turned out to be one of the best procurement decisions we have made in recent times: They employ good people and have been completely committed to our mutual success&amp;rdquo;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Managing Director of Claremont, &lt;strong&gt;Mark Vivian&lt;/strong&gt; added: &lt;em&gt;&amp;ldquo;This is another example of how our ethos of employing the very best consultants, maintaining a genuine customer focus, and working collaboratively with our customers delivers great results. We are proud to have the National Trust as a long term customer.&amp;rdquo;&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;greybox&quot;&gt;For more info please view the &lt;a href=&quot;http://www.claremont.co.uk/cmsfiles/claremont/docs/casestudies/National_Trust_2013.pdf&quot;&gt;National Trust Case Study &lt;/a&gt;(PDF)&lt;/span&gt;&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
</item>

<item>
<title>Steve&#39;s departure</title>
<pubDate>Fri, 29 Jun 2012 12:30:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/steves_departure/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/steves_departure/</guid>
<description>

&lt;p&gt;Claremont can announce that, after a very enjoyable 7.5 years at the helm, current MD Steve Crosby has decided to leave the company. Keen to have more time to pursue a number of other interests Steve leaves with the very best wishes of everyone at Claremont and, to his credit, with the company in excellent health.&lt;/p&gt;
&lt;p&gt;From 1st July, Mark Vivian will bring his vast experience, drive and flair to the role of MD and everyone at Claremont is really looking forward to supporting him through the next stage of the company&amp;rsquo;s development as it consolidates its position as the leading independent Oracle specialist in the UK.&lt;/p&gt;
&lt;p&gt;Mark&amp;rsquo;s time as Claremont&amp;rsquo;s Operation&amp;rsquo;s Director gives him a unique insight into every aspect of the Claremont business which, combined with his earlier management and VP roles, makes him the ideal person to take the business forward.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
</item>

<item>
<title>Racing for Life</title>
<pubDate>Wed, 20 Jun 2012 10:37:01 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/racing_for_life/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/racing_for_life/</guid>
<description>

&lt;p&gt;&lt;img alt=&quot;Sisko before Race for Life&quot; height=&quot;300&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/articles_1/image/Sisko.JPG&quot; style=&quot;float: left; margin-left: 7px; margin-right: 7px;&quot; width=&quot;177&quot;/&gt;&lt;/p&gt;
&lt;p&gt;Our fabulous Finnish import Sisko is fast becoming a member of the fitness elite at Claremont who choose to run for charity!&lt;/p&gt;
&lt;p&gt;Considering that she has never ran a race in her life, her time and commitment to her training for the Race for Life in aid of the charity Cancer Research UK, on the 2nd September, demonstrates her detemination to rise to a challenge and push herself physically, to help a cause close to her heart, even challenging herself to complete the race in under 30 minutes!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Cancer touches so many lives, so please help her raise money for her chosen charity as any donation will make a big difference to the people who need your money most. Cancer Reseach UK is a charity entirely funded by the public.&lt;/p&gt;
&lt;p&gt;To donate, please click on this link: &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.justgiving.com/Sisko-Poikolainen&quot;&gt;http://www.justgiving.com/Sisko-Poikolainen &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You will see from the photograph that Sisko is a very well groomed and polished member of the Claremont team (see fingernails) and we very much look forward to seeing the photograph after she has completed the race! Good luck Sisko!&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
</item>

<item>
<title>Taking up the Local Leap challenge</title>
<pubDate>Mon, 20 Feb 2012 14:49:05 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/locally_leaping/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/locally_leaping/</guid>
<description>

&lt;p&gt;&lt;img height=&quot;417&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/articles_1/image/team.jpg&quot; title=&quot;claremont_team&quot; width=&quot;527&quot;/&gt;&lt;/p&gt;
&lt;p&gt;(From left to right) Jonathan Stuart, Michael Lane,&amp;nbsp;Ian Monaghan, Mike Hewlett and Balaraman Ramaswamy.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A team of Claremont employees took time out from their hectic&amp;nbsp;work schedules to volunteer in the local community&amp;nbsp;in aid of the National Trust&amp;rsquo;s &amp;lsquo;Local Leap&amp;rsquo; day on the 29th February, which marked the 100th anniversary of&amp;nbsp;the death of its founder, Octavia Hill.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The National Trust encouraged all 5000 of its employees, and those employed as suppliers to the National Trust, to get involved in the volunteering exercise and&amp;nbsp;provide assistance wherever it was required locally.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It was an excellent opportunity for Claremont to &amp;lsquo;Go Local&amp;rsquo; as ambassadors for the National Trust, using their&amp;nbsp;time&amp;nbsp;to improve&amp;nbsp;the local surroundings and make&amp;nbsp;a valuable&amp;nbsp;contribution.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The location for the volunteering opportunity for those who work out of the National Trust&amp;rsquo;s award winning central office, an innovative and sustainable building construction in itself, was The Cotswold Water Park.&lt;/p&gt;
&lt;p&gt;So, for the waterproof and welly wearing volunteers, tasks included coppicing, felling Alder trees - to allow existing reed beds to flourish, and lighting&amp;nbsp;bonfires.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Claremont&amp;rsquo;s&amp;nbsp;Managed Services&amp;nbsp;Director, Jonathan Stuart, commented &lt;em&gt;&amp;ldquo;This&amp;nbsp;was an excellent team work exercise. Everyone pulled together and&amp;nbsp;got&amp;nbsp;involved&amp;nbsp;in the project. It was a great feeling&amp;nbsp;to get out into the fresh air and do something physical, and help the local community at the same time.&amp;rdquo;&amp;nbsp; &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Click &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.nationaltrust.org.uk/what-we-do/news/view-page/item744161/&quot;&gt;here&lt;/a&gt; to see the National Trust&amp;#39;s news release.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
</item>

<item>
<title>Keep on running...</title>
<pubDate>Fri, 17 Feb 2012 16:06:18 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/marathon_runners/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/marathon_runners/</guid>
<description>

&lt;p&gt;The Virgin London Marathon is one of the great British sporting events, combining elite athletics, mass participation and record&amp;ndash;breaking fundraising in one race. The course is a gruelling 26 miles 385 yards long which passes through the streets of London from Blackheath to the famous finish line at The Mall on Sunday April 22nd.&lt;/p&gt;
&lt;p&gt;Sadly, not all of the athletes are elite...&lt;/p&gt;
&lt;p&gt;But, in the spirit of charity fundraising and competitiveness, Claremont&amp;rsquo;s Laura Humphreys and Mark Vivian have decided to take up the punishing challenge.&lt;/p&gt;
&lt;p&gt;This, in turn, has created a North / South divide within Claremont - as Laura, from our Newcastle HQ office, will be taking on Mark, a Director&amp;nbsp;from our Guildford office - and it&amp;rsquo;s competitive!&lt;/p&gt;
&lt;h3&gt;In the red corner...&lt;/h3&gt;
&lt;p class=&quot;COMleft&quot; style=&quot;width: 200px;&quot;&gt;&lt;img alt=&quot;Laura Humphreys&quot; height=&quot;250&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/articles_1/image/laura-humphreys-marathon.jpg&quot; title=&quot;Laura Humphreys&quot; width=&quot;175&quot;/&gt;&lt;/p&gt;
&lt;p class=&quot;COMleft&quot; style=&quot;width: 400px; margin-left: 10px;&quot;&gt;Having notched up more physio sessions due to injury, than actual hours of training, we have Laura Humphreys:&lt;br/&gt;&lt;br/&gt;&lt;span class=&quot;bluetext&quot;&gt;Office:&lt;/span&gt; Newcastle&lt;br/&gt;&lt;span class=&quot;bluetext&quot;&gt;Height:&lt;/span&gt; 5ft 3&amp;frac14; inches &lt;br/&gt;&lt;span class=&quot;bluetext&quot;&gt;Weight: &lt;/span&gt;9st&lt;br/&gt;&lt;span class=&quot;bluetext&quot;&gt;Likes:&lt;/span&gt; Playing squash, learning Geordie phrases&lt;br/&gt;&lt;span class=&quot;bluetext&quot;&gt;Dislikes:&lt;/span&gt; A phobia of bananas, especially with drawn on faces&lt;br/&gt;&lt;span class=&quot;bluetext&quot;&gt;Charity:&lt;/span&gt; The Stroke Association &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.stroke.org.uk&quot;&gt;(www.stroke.org.uk)&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;COMclear&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p&gt;&lt;span class=&quot;bluetext&quot;&gt;About the charity:&lt;/span&gt; Every year an estimated 150,000 people in the UK have a stroke. Of all people who suffer from a stroke, about a third are likely to die within the first 10 days, about a third are likely to make a recovery within one month and about a third are likely to be left disabled and needing rehabilitation.&lt;/p&gt;
&lt;p&gt;The Stroke Association funds research into prevention, treatment and better methods of rehabilitation, and helps stroke patients and their families directly through its Life After Stroke Services. These include Information, Advice and Support, Communication Support and Life After Stroke grants.&lt;/p&gt;
&lt;p&gt;The Stroke Association is the only UK wide charity solely concerned with combating strokes in people of all ages.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;bluetext&quot;&gt;Reason:&lt;/span&gt; This charity is of personal significance to Laura who has witnessed the consequences of family members who have suffered from strokes and would like to personally do something to contribute to the work of the charity.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To donate, please follow this link:&lt;/strong&gt; &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.justgiving.com/Laura-Humphreys2&quot;&gt;http://www.justgiving.com/Laura-Humphreys2&lt;/a&gt;&lt;/p&gt;
&lt;h3 style=&quot;color: #222b39;&quot;&gt;In the blue corner...&lt;/h3&gt;
&lt;p class=&quot;COMleft&quot; style=&quot;width: 200px;&quot;&gt;&lt;img alt=&quot;Mark Vivian&quot; height=&quot;250&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/articles_1/image/mark-vivian-marathon.jpg&quot; title=&quot;Mark Vivian&quot; width=&quot;175&quot;/&gt;&lt;/p&gt;
&lt;p class=&quot;COMleft&quot; style=&quot;width: 400px; margin-left: 10px;&quot;&gt;Also doing his best to keep physios in work down South due to injury, we have Mark &amp;lsquo;roadrunner&amp;rsquo; Vivian:&lt;br/&gt;&lt;br/&gt;&lt;span class=&quot;bluetext&quot;&gt;Office:&lt;/span&gt; Guildford&lt;br/&gt;&lt;span class=&quot;bluetext&quot;&gt;Height:&lt;/span&gt; 6ft 2 inches&lt;br/&gt;&lt;span class=&quot;bluetext&quot;&gt;Weight: &lt;/span&gt;13st 6lbs&lt;br/&gt;&lt;span class=&quot;bluetext&quot;&gt;Likes:&lt;/span&gt; Playing and watching sport, bating Geordies&lt;br/&gt;&lt;span class=&quot;bluetext&quot;&gt;Dislikes:&lt;/span&gt; Losing (particularly to girls)&lt;br/&gt;&lt;span class=&quot;bluetext&quot;&gt;Charity:&lt;/span&gt; Fight for Sight (&lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.fightforsight.org.uk&quot;&gt;www.fightforsight.org.uk&lt;/a&gt;)&lt;/p&gt;
&lt;div class=&quot;COMclear&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p&gt;&lt;span class=&quot;bluetext&quot;&gt;About the charity:&lt;/span&gt; Since 1965, Fight for Sight has raised funds to support medical research into a wide-range of eye conditions. These include macular degeneration, glaucoma, cataract, diabetic retinopathy as well as the causes of childhood blindness. Fight for Sight is&amp;nbsp;also funding research into the treatment of retinal detachment. They receive no government or statutory funding and are therefore dependent on voluntary donations.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;bluetext&quot;&gt;Reason:&lt;/span&gt; Fight for Sight works closely with Moorfields Eye Hospital, where Mark has had personal experience over recent years with his wife Sally, who has undergone several operations there as a result of a detached retina and subsequent complications that have left her partially sighted. They have witnessed for themselves the excellent work that Moorfields do, the part that Fight for Sight has played, and the way that the quality of people&amp;#39;s lives are changed as a result.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To donate, please follow this link:&lt;/strong&gt; &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://uk.virginmoneygiving.com/MarkVivian&quot;&gt;http://uk.virginmoneygiving.com/MarkVivian&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;greybox&quot;&gt;&lt;strong&gt;Please give generously as every penny you donate does make a difference. Claremont supports both Laura and Mark&amp;nbsp;in their efforts to raise money for their respective charities.&lt;/strong&gt;&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
</item>

<item>
<title>Claremont strikes GOLD!</title>
<pubDate>Wed, 19 Oct 2011 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/claremont_strikes_gold/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/claremont_strikes_gold/</guid>
<description>

&lt;p&gt;Claremont is very pleased to announce that it has achieved the highest accolade from Investors in People - Gold.&amp;nbsp; Investors in People is a business improvement tool administered by the UK Commission for Employment and Skills and is supported by the Department for Business, Innovation and Skills (BIS).&lt;/p&gt;
&lt;p&gt;The Investors in People framework measures strategies that improve an organisation&amp;rsquo;s performance, and evaluates their effectiveness, suggesting improvements if required.&lt;/p&gt;
&lt;p&gt;External assessors gather evidence and measure it against a standard framework and criteria by reviewing an organisation&amp;rsquo;s policies, procedures and practices and interviewing its employees.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Independent Assessor Graeme Mills, commented,&lt;/p&gt;
&lt;p&gt;&quot;Since I began conducting IIP assessments some years ago, I have interviewed employees from a wide range of organisations and this is the first time that I have awarded an Investors In People Gold award.&amp;nbsp; Less than 1% of businesses who are IIP accredited achieve the Gold award, so this really is an excellent achievement by Claremont; everyone in the team can rightly be proud of their contribution.&quot;&lt;/p&gt;
&lt;p&gt;Steve Crosby, Managing Director&amp;nbsp;at Claremont, said,&lt;/p&gt;
&lt;p&gt;&quot;This is another fantastic achievement in what has been a tremendous year for Claremont.&amp;nbsp; We are very proud of the progress we have made as a business this year and it is particularly pleasing that the measures that we have taken to improve a wide range of processes has been recognised by both our employees and the people at IIP.&amp;nbsp; We strive to create a working environment that recognises individual contribution but also provides the opportunity for employees to develop their skills through a wide range of learning and development initiatives.&amp;nbsp; Claremont has certainly found the process of working towards the IIP accreditation to be extremely beneficial and we hope that this accolade will cement our position as the employer of choice for the leading Oracle E-Business specialists&quot;.&lt;br/&gt;&lt;br/&gt;This, along with being in the Sunday Times Tech Track 100 top performing private companies in September, demonstrate Claremont&amp;rsquo;s confident outlook.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
</item>

<item>
<title>Claremont HQ ladies jump from the Tyne Bridge for charity!</title>
<pubDate>Thu, 13 Oct 2011 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/claremont_hq_ladies_jump_from_the_tyne_bridge_for_charity/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/claremont_hq_ladies_jump_from_the_tyne_bridge_for_charity/</guid>
<description>

&lt;p&gt;&lt;img alt=&quot;From left to right: Louise Ryan-Smith, Stacey Wilkins, Laura Humphreys and Sisko Poikolainen&quot; height=&quot;548&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/articles_1/image/zip-wire.jpg&quot; title=&quot;From left to right: Louise Ryan-Smith, Stacey Wilkins, Laura Humphreys and Sisko Poikolainen&quot; width=&quot;600&quot;/&gt;&lt;/p&gt;
&lt;p&gt;From left to right: Louise Ryan-Smith, Stacey Wilkins, Laura Humphreys&amp;nbsp;and Sisko Poikolainen.&lt;/p&gt;
&lt;p&gt;On Sunday 30th October, the lovely ladies from Claremont&amp;#39;s HQ dressed in fancy dress and threw themselves off the Tyne Bridge in a sponsored Zipwire challenge&amp;nbsp;in aid of Headway Wearside.&lt;/p&gt;
&lt;p&gt;Headway Wearside supports families, carers and individuals all of which have been affected by brain injury. Headway Wearside provide support, advice and guidance on an array of issues which may impact on the individuals following accident or injury. Headway Wearside is often the stepping stone required in order for individuals to progress onto suitable rehabilitation support services or seek the relevant support required after a life changing event.The Wearside Group works in partnership with a number of organisations such as Momentum, in order to try and provide a full pathway of support, advice and activities prior to individuals making a step into rehabilitation services.&lt;/p&gt;
&lt;p&gt;The charity&amp;#39;s website: &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://headwaywearside.org.uk/&quot;&gt;http://headwaywearside.org.uk/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This challenge was undertaken in fancy dress and the girls thoroughly enjoyed the challenge, raising over &amp;pound;1000 for the charity!&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can still make your donation to this worthy cause. If you would like to, please follow this link and donate what you can! Thanks!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://uk.virginmoneygiving.com/fundraiser-web/fundraiser/showFundraiserProfilePage.action?userUrl=ClaremontHQ&quot;&gt;http://uk.virginmoneygiving.com/team/claremontUK &lt;/a&gt;&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
</item>

<item>
<title>Claremont wins a place on the National League of Britain&#39;s Fastest-Growing Tech Stars</title>
<pubDate>Mon, 19 Sep 2011 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/claremont_tech_stars/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/claremont_tech_stars/</guid>
<description>

&lt;p&gt;&lt;img alt=&quot;Tech Track 100&quot; class=&quot;COMright&quot; height=&quot;250&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/articles_1/image/tech-track.gif&quot; title=&quot;Tech Track 100&quot; width=&quot;156&quot;/&gt;Claremont has achieved a place in the Sunday Times Microsoft Tech Track 100 for 2011.&lt;/p&gt;
&lt;p&gt;The league table, which ranks Britain&amp;rsquo;s one hundred privately-owned technology, media and telecoms (TMT) companies with the fastest-growing sales over the last three years of available accounts.&lt;/p&gt;
&lt;p&gt;Scott Dodds, general manager, business strategy and marketing at Microsoft, the title sponsor of the league table commented:&lt;/p&gt;
&lt;p&gt;&quot;Privately-owned technology companies are making a great contribution to the economy despite difficult trading conditions. It is especially encouraging to see that the cloud computing continues to provide such significant opportunities by helping technology firms to open up new markets and cut costs for their customers&quot;.&lt;/p&gt;
&lt;p&gt;Claremont Managing Director, Steve Crosby, said:&lt;/p&gt;
&lt;p&gt;&quot;This is a great achievement for Claremont. To be in the Microsoft Tech Track 100 shows our credibility in the market place. Our position demonstrates our achievements and our inclusion in it is public recognition of the great growth record and profitability of the business over recent years&quot;.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
</item>

<item>
<title>Supporting our Superhero for Cancer Research Charity</title>
<pubDate>Thu, 15 Sep 2011 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/supporting_our_superhero_for_cancer_research_charity/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/supporting_our_superhero_for_cancer_research_charity/</guid>
<description>

&lt;p&gt;&lt;img alt=&quot;Michael Lane&quot; height=&quot;330&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/articles_1/image/Mike_Cropped.jpg&quot; style=&quot;float: left; margin-right: 10px;&quot; title=&quot;Michael Lane&quot; width=&quot;200&quot;/&gt;Claremont employee Michael Lane offered up his time and his dignity in the process of raising money for charity, Cancer Research UK.&lt;/p&gt;
&lt;p&gt;Michael, a managing consultant at Claremont, signed up to take part in the Sutton Park Superman event on 11th September where he dressed up as a superhero and raced 9km, enduring a hosing down with water, a run through foam and crawling under cargo nets - as if running 9km alone wasn&amp;rsquo;t tough enough!&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;#39;The big C&amp;#39; affects so many people in so many different ways. With your help, Cancer Research UK can discover new ways to prevent, diagnose and treat cancer. It&amp;#39;s not too late - please take the time to go to this link &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.justgiving.com/Michael-Lane&quot;&gt;http://www.justgiving.com/Michael-Lane&lt;/a&gt; and sponsor Michael. Don&amp;rsquo;t forget to register for Gift Aid so that Cancer Research UK can claim more of the donated cash!&lt;/p&gt;
&lt;p&gt;Thank you.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
</item>

<item>
<title>Claremont&#39;s MD runs for brain injury charity</title>
<pubDate>Thu, 15 Sep 2011 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/claremonts_md_runs_for_brain_injury_charity/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/claremonts_md_runs_for_brain_injury_charity/</guid>
<description>

&lt;div style=&quot;float: left;&quot;&gt;&lt;img alt=&quot;Steve before&quot; height=&quot;234&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/articles_1/image/steve_before.jpg&quot; title=&quot;Steve before&quot; width=&quot;175&quot;/&gt;&lt;p&gt;Steve before&lt;/p&gt;
&lt;/div&gt;
&lt;div style=&quot;float: left; margin-left: 20px;&quot;&gt;&lt;img alt=&quot;Steve after&quot; height=&quot;234&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/articles_1/image/steve_after.jpg&quot; title=&quot;Steve after&quot; width=&quot;175&quot;/&gt;&lt;p&gt;Steve after&lt;/p&gt;
&lt;/div&gt;
&lt;div style=&quot;clear: both;&quot;&gt;
&lt;p&gt;Claremont&amp;#39;s very own chief, Steve Crosby, dusted off his well-worn trainers to participate in this year&amp;#39;s Great North Run - all 13.1 miles of it!&lt;/p&gt;
&lt;p&gt;Having participated in the GNR on several occasions previously, Steve ran for a less publicised charity, and aimed to complete the challenge within a reasonable time.&lt;/p&gt;
&lt;p&gt;In his own words before the race, Steve said: &quot;The run promises to be a truly unpleasant experience for me with my few training runs to date&quot;.&lt;/p&gt;
&lt;p&gt;But, by hook or by crook, he got to the finish line in aid of a charity very close to his heart.&lt;/p&gt;
&lt;p&gt;The Pituitary Foundation is one of only a handful of UK charities that promote the relief and treatment of people with brain injuries, and offer information and support about related conditions and diseases to families, friends and carers.&lt;/p&gt;
&lt;p&gt;The Run took place on the 18th September, and all donations, big or small, are&amp;nbsp;still gratefully received.&lt;/p&gt;
&lt;p&gt;To make a donation, please follow this link - &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.justgiving.com/Steve-Crosby0&quot;&gt;http://www.justgiving.com/Steve-Crosby0&lt;/a&gt; and please don&amp;#39;t forget to register for Gift Aid so that the Pituitary Foundation can claim more of the funds donated.&lt;/p&gt;
&lt;/div&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
</item>

<item>
<title>Claremont Supports Charity Crisis</title>
<pubDate>Thu, 12 May 2011 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/claremont_supports_charity_crisis/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/claremont_supports_charity_crisis/</guid>
<description>

&lt;p&gt;&lt;img alt=&quot;Team Mucky Duck&quot; height=&quot;278&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/articles_1/image/Cropped_Mucky_Duck.jpg&quot; title=&quot;Team Mucky Duck&quot; width=&quot;550&quot;/&gt;&lt;/p&gt;
&lt;p&gt;Crisis, the national charity for single homeless people, became one step closer to opening a new Skylight centre in Oxford following a fund raising high-tech treasure hunt at the weekend.&lt;/p&gt;
&lt;p&gt;Claremont employee, George Gallant (pictured centre), was part of a team that took on several challenges around London and Oxford, wearing a tutu, in a bid to raise money and awareness for Crisis.&lt;/p&gt;
&lt;p&gt;&quot;The tutu raised a lot of smiles. It was a brilliant event. I am extremely grateful to friends and family and the Claremont team, customers and associates who helped steer our team to the top of the leader board for the most amount of money raised!&quot; said George.&lt;/p&gt;
&lt;p&gt;Crisis Skylight is an award winning education, training and employment centre for homeless and vulnerably housed people in London, Newcastle and now Oxford.&lt;/p&gt;
&lt;p&gt;In addition to financial contributions to charitable causes, Claremont actively encourages and supports its employees in voluntary work.&lt;/p&gt;
&lt;p&gt;If you wish to support George and donate to the &amp;ldquo;Crisis: Mission Oxford&amp;rdquo; cause, please go to &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.virginmoneygiving.com/team/muckyducks&quot;&gt;www.virginmoneygiving.com/team/muckyducks&lt;/a&gt; and make your donation.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
</item>

<item>
<title>Re-launch celebrated with European deal and major recruitment drive</title>
<pubDate>Fri, 28 Jan 2011 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/relaunch_celebrated_with_european_deal_and_major_recruitment_drive/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/i/relaunch_celebrated_with_european_deal_and_major_recruitment_drive/</guid>
<description>

&lt;p&gt;A professional services company has marked its re-launch by winning a pan-European deal and appointing three new directors to drive the next stage of its expansion.&lt;/p&gt;
&lt;p&gt;Premiertec Consulting Ltd, which services some of the biggest multinationals in the world from its Newcastle headquarters, has been re-launched under a new name, Claremont, following significant growth and development.&lt;/p&gt;
&lt;p&gt;The company offers implementation and training services to clients of software giant Oracle and now plans to increase its focus on support services both in the North East and across Europe.&lt;/p&gt;
&lt;p&gt;In the last year it has doubled its annual sales to &amp;pound;12m, growing its workforce to 20 and network of associates to 50 in the process.&lt;/p&gt;
&lt;p&gt;As it looks to ramp up its investment into its support services division, it has appointed three new directors in David Golding, Jonathan Stuart and Mark Vivian.&lt;br/&gt;The new recruits all join the firm from the UK offices of Japanese technology empire Hitachi and are expected to oversee the rapid growth of the Claremont brand in the coming years.&lt;/p&gt;
&lt;p&gt;A key area of focus for the company&amp;#39;s new directors will be the group&amp;rsquo;s support services related to Oracle&amp;rsquo;s internationally-used E-Business Suite.&lt;/p&gt;
&lt;p&gt;Meanwhile, the company has landed a new contract with its long-standing client Ricoh - the global supplier of print, document and IT services.&lt;/p&gt;
&lt;p&gt;After successfully deploying a leasing solution to Ricoh&amp;#39;s UK business, Claremont has been awarded an additional contract, worth &amp;pound;6m over two years, to roll out the solution to several European locations.&lt;/p&gt;
&lt;p&gt;Managing director Steve Crosby said: &amp;ldquo;We decided to launch under a new name to reflect the fact that we have evolved almost unrecognisably since our inception six years ago.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;These are exciting times for the business and we are delighted to have been able to bring directors of the calibre of David, Jonathan and Mark into the company. They will be instrumental in managing the next stage of our development.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Our new contract with Ricoh, which gets underway this month, is testament to the fact that we are now able to more than meet the demands of some the world&amp;rsquo;s biggest firms.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Claremont&amp;#39;s predecessor was set up in Glasgow in 2004 before Morpeth-born Mr Crosby opted to relocate it to his native North East in January 2008.&lt;/p&gt;
&lt;p&gt;As well as its head office in Newcastle city centre, it has operations in the South East, alongside India and the US, which are used to handle some back office duties as well as servicing the firm&amp;rsquo;s multinational clients.&lt;/p&gt;
&lt;p&gt;The company is also Oracle&amp;#39;s partner of choice when it comes to property, estate management and asset management solutions.&lt;/p&gt;
&lt;p&gt;The Claremont brand and the new website, &lt;a href=&quot;http://www.claremont.co.uk&quot;&gt;www.claremont.co.uk&lt;/a&gt;, were designed by North East-based creative agency El Roboto.&lt;/p&gt;
&lt;p&gt;&quot;El Roboto&amp;#39;s work has been instrumental in helping us to strengthen our relationship with our clients, by developing a brand which provides a better fit for the company&amp;#39;s vision and values whilst also building on the enthusiasm amongst our staff and stakeholders&quot; said Mr Crosby.&lt;/p&gt;
&lt;p&gt;For more information on Claremont&amp;#39;s range of services, solutions and products, please visit: &lt;a href=&quot;http://www.claremont.co.uk&quot;&gt;www.claremont.co.uk&lt;/a&gt;&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_news/">Claremont News</category>
</item>

<item>
<title>Oracle skills shortage in an economic downturn</title>
<pubDate>Fri, 12 Mar 2010 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/oracle_skills_shortage_in_an_economic_downturn/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/oracle_skills_shortage_in_an_economic_downturn/</guid>
<description>

&lt;p&gt;One of our recruiters was asked by a customer why it was difficult to find the right skills for an Oracle E-Business Suite project. It felt like a strange question to hear in the current economic climate - especially while so many IT professionals are affected by unemployment - but he had a point, there will always be Oracle skills that are hard to find.&lt;/p&gt;
&lt;p&gt;The Oracle skills market has changed more in the last two years than it has in the last two decades. The economic downturn has undoubtedly slowed a significant amount of project churn, which in turn has given a greater transparency of what skills really are in demand, together with a sudden and perhaps harsh view of what skills have been left on the shelf.&lt;/p&gt;
&lt;p&gt;Oracle EBS Functional consultants have had a busy time since the new millennium. The demand for these skills led to more people entering these roles without the previously necessary academic credentials. Since the recent economic downturn, many Functional consultants would argue that they have never seen this level of uncertainty before. Functional Core Financials and Oracle CRM consultants have perhaps seen the slowest times of all Oracle consultants, I could name a dozen people in my own network who have thrown in the laptop and moved out of the Oracle world altogether.&lt;/p&gt;
&lt;p&gt;Oracle EBS Technical consultants have seen their demand change over the years. While there is still demand for technical EBS skills, Oracle users are using less customisations in their solutions, and we have seen a lot of technical consultants move towards more functional duties.&lt;/p&gt;
&lt;p&gt;Throughout the nineties the traditional Oracle consultant was more likely to be a SQL Forms or SQL Reports developer. In a keynote speech in 2000, Larry Ellison announced that &amp;#39;In the future there will be two types of technical Oracle Consultant: a Java Architect and a DBA.&amp;#39; Whilst the Oracle community at the time were sceptical about this statement, it has been heading in that direction ever since: the recent acquisition of Java has been described as &amp;#39;the most important software Oracle has ever acquired.&amp;#39;&lt;/p&gt;
&lt;p&gt;Having asked our Consultancy team, our recruiters and our customers what technical skills they consider the most difficult to find, the most common answer is OA Framework and ADF. I have asked the same question for Oracle EBS Financials functional knowledge and the answer is FSAH and E-Biz Tax. Fusion Middleware and SOA/BPEL skills still continue to be in demand.&lt;/p&gt;
&lt;p&gt;Whilst there is a distinct shortage in these skills, as well as specialist modules such as Oracle Contracts and Oracle Enterprise Asset Management, we could argue that the term &amp;ldquo;skills shortage&amp;rdquo; could appear a little insulting to those who have been benched in recent months (or even years), so perhaps we need to characterise the problem as a &amp;#39;skills transfer&amp;#39; issue.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>So anyway why do you call it IWMS?</title>
<pubDate>Tue, 2 Mar 2010 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/so_anyway_why_do_you_call_it_iwms/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/so_anyway_why_do_you_call_it_iwms/</guid>
<description>

&lt;p&gt;I was asked this question by a customer during a recent demonstration of Premiertec&amp;#39;s Integrated Workplace Management System.&lt;/p&gt;
&lt;h3&gt;IWMS &amp;ndash; The Background&lt;/h3&gt;
&lt;p&gt;The term &amp;#39;Integrated Workplace Management System&amp;#39;, or &amp;#39;IWMS&amp;#39; (to satisfy our lust for acronyms), originated from a university academic, and was subsequently co-opted by Gartner. Up until recently, Gartner produced an IWMS market assessment, including a Gartner Magic Quadrant, and without a common term like IWMS there would have been no other way to group a load of vendors together in a comparison document.&lt;/p&gt;
&lt;p&gt;During their initial analysis of the facilities and real estate space, it was observed that the market was moving from point solutions to integrated solutions. It was also observed that there was a trend toward defining the facilities and real estate domain more broadly as workplace management, to recognise the advent of workplace mobility and the solutions needed to manage the virtual workplace. Thus, the two trends were combined to the single acronym IWMS.&lt;/p&gt;
&lt;p&gt;Although it is recognised that the IWMS definition is very broad, and therefore less useful to describe a market that is becoming more industry verticalized, users still need a coherent framework to evaluate vendors and market trends. Many vendors have used the IWMS blueprint provided in the IWMS market analysis containing the Magic Quadrant to enhance their products and re-align their messages.&lt;/p&gt;
&lt;h3&gt;So why do we call it IWMS?&lt;/h3&gt;
&lt;p&gt;If you type IWMS into Wikipedia you get the following description:&lt;br/&gt;&lt;em&gt;IWMS is an enterprise platform that supports the planning, design, management, utilization and disposal of an organisation&amp;#39;s location based assets. IWMS systems assist organisations in optimizing the use of workplace resources, including the management of a company&amp;rsquo;s real estate portfolio, infrastructure and facilities assets. Four of the primary areas of functionality include Lease Administration, Project Management, Space Management and Maintenance Management.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Premiertec have decided to place strategic focus on delivering the IWMS solution to market. They have therefore designed and delivered an IWMS solution which is built on the latest Oracle E-Business Suite R12.1 platform. This incorporates integration between the following modules - Oracle Property Manager, Oracle Projects, Oracle Enterprise Asset Management, Oracle Site Hub, Oracle Service and Oracle Financials applications. Known as the Premiertec Integrated Workplace Management System (PIWMS), this solution supports the entire real estate lifecycle through a complete, end-to-end Real Estate Management solution.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Tale of one deployment</title>
<pubDate>Tue, 19 Jan 2010 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/tale_of_one_deployment/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/tale_of_one_deployment/</guid>
<description>

&lt;p&gt;Recently we built a killer ADF Fusion application for one of our customers. The solution was built on time using JDeveloper 11g build 5536 (version important). We tested deployment on the integrated WebLogic server on one our Windows XP Pro laptops, deployed test WebLogic 10.3 server on Windows 2003 machine, installed matching ADF Runtime libraries and were in eager anticipation to see our creation run in a production-like environment.&lt;br/&gt;&lt;br/&gt;Little did we know...&lt;br/&gt;&lt;br/&gt;The first crises happened when during deployment WebLogic could not find class oracle.adf.share.weblogic.listeners.ADFApplicationLifecycleListener. Thanks to this note we realized that we need to open EAR and comment the listener. And then listeners JpsAppVersionLifecycleListener and JpsApplicationLifecycleListener met the same finale thanks to the note . And finally, listener WLLifecycleListener was removed from EAR. With all those removals, the application was tested on the integrated WebLogic Server.&lt;br/&gt;&lt;br/&gt;Finally, WebLogic deployer said that application is successfully deployed. Phew... If you think this is it, then listen to this.&lt;br/&gt;&lt;br/&gt;We try to access the application. Application, definitely, fails complaining that we provided NULL password for the database. That was a surprise. You cannot define a data source without specifying password to the database schema. We found a note that we need to add certain parameters to JAVA_PROPERTIES in the setDomainEnv.cmd file. It worked on Windows XP, and did not work on Windows 2003. So, the solution was to change how Application Modules reference the database connection. We switched from JDBC URL to JDBC Data Source.&lt;br/&gt;&lt;br/&gt;We access the first page of our application which contains both charts and non-graphical elements. Non-graphical elements rendered ok. BINGO!!!! But all charts failed&amp;hellip; The log files provided a very interesting error. It was looking for a data source with name jdbc.NAMEDS instead of jdbc/NAMEDS. So, we had to create an additional data source with JNDI name jdbc.NAMEDS.&lt;br/&gt;&lt;br/&gt;Finally it worked. It took us a week to figure out all these steps to understand how to deploy the application. I still do not feel comfortable with removal of the listeners. There must be a way to plug in libraries into the setDomainEnd.cmd file for the libraries to be seen.&lt;br/&gt;&lt;br/&gt;Our next task is to connect to our application via an OCI driver. Stay tuned.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Location, Location, Location Part 2</title>
<pubDate>Thu, 1 Oct 2009 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/location_location_location_part_2/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/location_location_location_part_2/</guid>
<description>

&lt;p&gt;While building a report, I was asked to print report title that matches the name of the concurrent program, date the report was executed, and the only report parameter with its meaning.&lt;br/&gt;&lt;br/&gt;The title of the report and execution date is simple. The parameter reads its values from an independent value set. So, I started to think how to get hold of the value set ID and what table do I need to read for the meaning, etc. And then!!! I recollected my own blog.&lt;br/&gt;&lt;br/&gt;The resulting query is here without much explanations.&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select fcr.actual_start_date report_start_date&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , fcp.user_concurrent_program_name&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , fu.user_name submitted_by&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , fcr.argument1 parameter_code&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , oe_sys_parameters_util.get_value(fdfcu.flex_value_set_id, fcr.argument1) parameter_description&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; from fnd_concurrent_requests fcr&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , fnd_concurrent_programs_vl fcp&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , fnd_user fu&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , FND_DESCR_FLEX_COL_USAGE_VL fdfcu&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; where fcr.concurrent_program_id = fcp.concurrent_program_id&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and fcr.requested_by = fu.user_id&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and fdfcu.descriptive_flexfield_name = &amp;#39;$SRS$.&amp;#39;|| fcp.concurrent_program_name&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and fdfcu.application_column_name = &amp;#39;ATTRIBUTE1&amp;#39;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and fcr.request_id = fnd_global.conc_request_id&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Connecting the dots</title>
<pubDate>Mon, 28 Sep 2009 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/connecting_the_dots/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/connecting_the_dots/</guid>
<description>

&lt;p&gt;While doing research for the next release of Hermes, Premiertec&amp;#39;s flagship project management tool, I came across a task where I had to parse a string like&lt;span class=&quot;redtext&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;redtext&quot;&gt;apps.xxpt_chain_controller_pkg.execute&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;into procedure name, package name and optional schema name. To achieve this I had to count the number of dots in the string.&lt;/p&gt;
&lt;p&gt;Being naturally lazy, I decided to give Internet a spin and find a ready answer. To my dismay, all the ready-to-go answers were PL/SQL procedures of questionable quality. The ingenuity of developers did not go beyond reading the string symbol by symbol and, literally, counting dots.&lt;/p&gt;
&lt;p&gt;If you are interviewing a PL/SQL developer, please, use this example as an interview question with the proper answer as&lt;span class=&quot;redtext&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;redtext&quot;&gt;select length(p_string) &amp;ndash; length(replace(p_string, &amp;#39;.&amp;#39;)) from dua&lt;/span&gt;l&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Uploading Excel Spreadsheet into Oracle eBusiness Suite Part 6</title>
<pubDate>Mon, 21 Sep 2009 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/uploading_excel_spreadsheet_into_oracle_ebusiness_suite_part_6/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/uploading_excel_spreadsheet_into_oracle_ebusiness_suite_part_6/</guid>
<description>

&lt;p&gt;Writing Java Concurrent Program&lt;br/&gt;Any Java class that implements interface oracle.apps.fnd.cp.request.JavaConcurrentProgram can be registered as a concurrent program.&lt;br/&gt;The only method which needs to be implemented is&lt;br/&gt;public void runProgram(oracle.apps.fnd.cp.request.CpContext cpcontext)&lt;br/&gt;CpContext provides developer with all attributes of a PL/SQL concurrent program such as output file, log file, and return status plus a database connection. A typical implementation of this method looks like&lt;br/&gt;public void runProgram(CpContext cpcontext) {&lt;br/&gt;try {&lt;br/&gt;// read parameters&lt;br/&gt;// execute business logic&lt;br/&gt;cpcontext.getReqCompletion().setCompletion(ReqCompletion.NORMAL, &amp;ldquo;Request Completed Normal&amp;rdquo;);&lt;br/&gt;} catch (Exception ex) {&lt;br/&gt;// report exception&lt;br/&gt;cpcontext.getReqCompletion().setCompletion(ReqCompletion.ERROR, &amp;ldquo;Error building output file&amp;rdquo;);&lt;br/&gt;} finally {&lt;br/&gt;cpcontext.releaseJDBCConnection();&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;Though this template is small, it does illustrate the key differences between Java and PL/SQL concurrent program.&lt;br/&gt;By default, Java concurrent program completes with an error, unlike PL/SQL program which completes successfully. Hence, it is imperative to set up not only completion in error, but also when program completes successfully.&lt;br/&gt;At the end of the execution of the Java concurrent program, you must release JDBC connection back to the pool.&lt;br/&gt;Reading Parameters&lt;br/&gt;Concurrent program parameters are accessible via method cpcontext. getParameterList. This method returns an instance of oracle.apps.fnd.util.ParameterList class. This class provides an Enumeration interface to access all the parameters passed to the program in the order defined during the concurrent program registration. This class has one interesting drawback. You can read the parameters only once.&lt;br/&gt;Each concurrent program parameter is represented by an instance of class oracle.apps.fnd.util.NameValueType. It is clear from the name of the class that it provides name, type and string value of the parameter. It means that if you have a date value as the parameter to the concurrent program, it will be available to the Java concurrent program as a canonical string.&lt;br/&gt;I found it useful to have a utility that converts the ParameterList into a Map.&lt;br/&gt;static public Map convertParameters(ParameterList parameterList)&lt;br/&gt;{ Map result = new HashMap();&lt;br/&gt;while( parameterList.hasMoreElements() ) {&lt;br/&gt;NameValueType nameValueType = parameterList.nextParameter();&lt;br/&gt;if (nameValueType.getValue() != null)&lt;br/&gt;{&lt;br/&gt;result.put(nameValueType.getName(), nameValueType.getValue());&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;return result;&lt;br/&gt;}&lt;br/&gt;Map provides a better controlled access to the list of parameters. The method can be enhanced to recognize the type of the value and convert them from String into BigDecimal or Date.&lt;br/&gt;Reporting Exception&lt;br/&gt;Exception.printStackTrace() does not work here!!!&lt;br/&gt;If you really want the user to see the exception stack, you need to print it into the oracle.apps.fnd.cp.request.LogFile. An instance of this class is available via cpcontext.getLogFile(). This class provides an OutputStream like interface, though it is not an implementation of java.io.OutputStream.&lt;br/&gt;LogFile provides a number of methods to write strings into the output stream like&lt;br/&gt;write(String message, int level)&lt;br/&gt;Here, level specifies the debugging level which can be set from LogFile.STATEMENT to LogFile.EXCEPTION.&lt;br/&gt;In order to report exception to the log file, you can use the following code&lt;br/&gt;StringWriter writer = new StringWriter();&lt;br/&gt;ex.printStackTrace(new PrintWriter(writer));&lt;br/&gt;logFile.writeln(writer.toString(), logFile.EXCEPTION);&lt;br/&gt;Writing Output&lt;br/&gt;The key task of the concurrent program which we are writing is to read the CLOB that contains the file contents and write it into its output stream. The output of a concurrent program can later be accessed by SQL&amp;#42;Loader, other concurrent program or, even, OAF web pages and services outside of Oracle eBusiness Suite.&lt;br/&gt;To access the database, we need to get hold of the database connection. An instance of the connection can received from cpcontext.getJDBCConnection().&lt;br/&gt;The following method retrieves the CLOB from the database as and InputStream which is then converted into a String.&lt;br/&gt;protected String getOutput(Connection connection, BigDecimal primaryKey) throws SQLException, IOException&lt;br/&gt;{&lt;br/&gt;String statement = &amp;ldquo;select file_contents from xxpt_file_upload_tmp where id = :1&amp;Prime;;&lt;br/&gt;String result;&lt;br/&gt;PreparedStatement stmt = null;&lt;br/&gt;ResultSet resultSet = null;&lt;br/&gt;try {&lt;br/&gt;stmt = connection.prepareStatement(statement);&lt;br/&gt;stmt.setBigDecimal(1, primaryKey);&lt;br/&gt;resultSet = stmt.executeQuery();&lt;br/&gt;resultSet.next();&lt;br/&gt;result =streamToString( resultSet.getAsciiStream(1) );&lt;br/&gt;resultSet.close();&lt;br/&gt;resultSet = null;&lt;br/&gt;stmt.close();&lt;br/&gt;stmt = null;&lt;br/&gt;} finally&lt;br/&gt;{&lt;br/&gt;if (resultSet != null)&lt;br/&gt;{&lt;br/&gt;try { resultSet.close(); } catch (SQLException ex) {}&lt;br/&gt;}&lt;br/&gt;if (stmt != null)&lt;br/&gt;{&lt;br/&gt;try { stmt.close(); } catch (SQLException ex) {}&lt;br/&gt;}&lt;br/&gt;try { connection.commit(); } catch (SQLException ex) {}&lt;br/&gt;}&lt;br/&gt;return result;&lt;br/&gt;}&lt;br/&gt;In this code streamToString method read the InputStream into a String.&lt;br/&gt;An instance of oracle.apps.fnd.cp.request.OutFile get be obtained using methof cpcontext.getOutFile(). This class provides OutputStream like interface, though it is not an implementation of java.io.OutputStream. Writing a string into the output is as simple as&lt;br/&gt;cpcontext.getOutFile().write(fileContents);&lt;br/&gt;Submit Concurrent Program from Java&lt;br/&gt;Oracle provides Java classes to submit a concurrent program. Definitely, one can call PL/SQL procedure directly using JDBC connection, though the Java wrapper is much nicer and easier to use.&lt;br/&gt;Class oracle.apps.fnd.cp.request.ConcurrentRequest represents submission of a concurrent request. You can setup optional layouts, notifications, schedule and other attributes available through FND_REQUEST package.&lt;br/&gt;Constructor of ConcurrentRequest class accepts database connection instance as a parameter.&lt;br/&gt;Signature of the method that submits the concurrent request for execution&lt;br/&gt;submitRequest(String application, String program, String description, String startTime, String subrequest, Vector parameters)&lt;br/&gt;mimics parameters of the corresponding PL/SQL procedure FND_REQUEST.SUBMIT_REQUEST. Here, parameters is the vector of String in the order the parameters are specified during the concurrent program registration. If one of your parameters is a Date, it is your responsibility to convert it into the canonical string.&lt;br/&gt;So, the code that submits the concurrent program may look like&lt;br/&gt;protected void submitConcurrentProgram(Number primaryKey, String purposeCode, int orgId, Connection connection) throws IOException, SQLException, RequestSubmissionException&lt;br/&gt;{&lt;br/&gt;ConcurrentRequest request = new ConcurrentRequest(connection);&lt;br/&gt;Vector param = new Vector();&lt;br/&gt;param.add(primaryKey.stringValue());&lt;br/&gt;param.add(purposeCode);&lt;br/&gt;param.add(String.valueOf(orgId));&lt;br/&gt;int reqId = request.submitRequest(&amp;rdquo;XXPT&amp;rdquo;, &amp;ldquo;XXPTCLOBOUTPUT&amp;rdquo;, &amp;ldquo;Print CLOB&amp;rdquo;,null, false, param);&lt;br/&gt;connection.commit();&lt;br/&gt;MessageToken[] tokens = { new MessageToken(&amp;rdquo;REQUEST&amp;rdquo;, String.valueOf(reqId)) };&lt;br/&gt;OAException confirmMessage = new OAException(&amp;rdquo;XXPT&amp;rdquo;,&lt;br/&gt;&amp;ldquo;XXPT_REQUEST_SUBMIT_CONF&amp;rdquo;,&lt;br/&gt;tokens,&lt;br/&gt;OAException.CONFIRMATION,&lt;br/&gt;null);&lt;br/&gt;throw confirmMessage;&lt;br/&gt;}&lt;br/&gt;As you can see, upon successful submission of the concurrent program, we raise a confirmation exception with the request ID.&lt;br/&gt;This post concludes the series. In the course of six installments we learned the overall technical design, how to build OAF based UI to upload a file, how to parse an Excel spreadsheet into a comma delimited file, how to write a Java concurrent program and submit it from an OAF page controller. Everything I was talking about here has been built and is actively being used by our customers.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Uploading Excel Spreadsheet into Oracle eBusiness Suite Part 5</title>
<pubDate>Fri, 18 Sep 2009 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/uploading_excel_spreadsheet_into_oracle_ebusiness_suite_part_5/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/uploading_excel_spreadsheet_into_oracle_ebusiness_suite_part_5/</guid>
<description>

&lt;div id=&quot;ArticleContent&quot;&gt;
&lt;p&gt;Storing CLOB in database table&lt;/p&gt;
&lt;p&gt;Once we have the input stream converted into an ASCII string, we need to store it in the custom table. To perform this operation, we need to generate primary key, and extract the purpose for the upload.&lt;/p&gt;
&lt;p&gt;We already discussed the query which generated globally unique primary key, and creation of a view object PrimaryKeyGeneratorVO based on this query. The method which generates the primary key becomes&lt;/p&gt;
&lt;pre&gt;protected Number generatePrimaryKey()
{
OAViewObject viewObject = getPrimaryKeyGeneratorVO();
viewObject.setMaxFetchSize(1);
viewObject.executeQuery();
return (Number) (viewObject.first().getAttribute(&amp;rdquo;Id&amp;rdquo;));
}&lt;/pre&gt;
&lt;p&gt;In order to determine the select purpose, we need to walk through each row of purposes in the current range, and locate the one with checked attribute &amp;lsquo;Selected&amp;rsquo;, since this was the transient attribute designated to work with table single selection. The method is&lt;/p&gt;
&lt;pre&gt;public String getSelectedPurpose()
{
OAViewObject viewObject = getFileUploadPurposeVO();
Row[] rows = viewObject.getAllRowsInRange();
if (rows.length &amp;gt; 0)
{
for(int i=0; i
{
Row row = rows[i];
if (&quot;Y&quot;.equals(row.getAttribute(&quot;Selected&quot;))) {
return (String)row.getAttribute(&quot;LookupCode&quot;);
}
}
}
return null;
}&lt;/pre&gt;
&lt;p&gt;Now, we are ready to store data in the database. We will need the purpose of the upload later when we submit the concurrent program to print the file contents in its output. So, we extract the purpose separately and pass as a parameter to the storage procedure, which now looks like&lt;/p&gt;
&lt;pre&gt;public Number storeStream(String inputStream, String purposeCode)
{
OAViewObject viewObject = am.getXXPTFileUploadTmpVO();
viewObject.setMaxFetchSize(0);
ClobDomain myClob = new ClobDomain();
myClob.setChars(inputStream.toCharArray());
OARow row = (OARow)viewObject.createRow();
row.setAttribute(&amp;rdquo;FileContents&amp;rdquo;,myClob);
Number primaryKey = generatePrimaryKey();
row.setAttribute(&amp;rdquo;PurposeCode&amp;rdquo;, purposeCode);
row.setAttribute(&amp;rdquo;Id&amp;rdquo;, primaryKey);
viewObject.insertRow(row);
am.getTransaction().commit();
return primaryKey;
}&lt;/pre&gt;
&lt;p&gt;The method returns the primary key of the newly created record. We will later pass this key to the concurrent program that prints the output of the CLOB into its output.&lt;br/&gt;Stay with us to learn how to write Java concurrent programs.&lt;/p&gt;
&lt;/div&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Uploading Excel Spreadsheet into Oracle eBusiness Suite Part 4</title>
<pubDate>Thu, 17 Sep 2009 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/uploading_excel_spreadsheet_into_oracle_ebusiness_suite_part_4/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/uploading_excel_spreadsheet_into_oracle_ebusiness_suite_part_4/</guid>
<description>

&lt;p&gt;Converting Excel to CSV&lt;br/&gt;There are several open source and commercial Java libraries that are capable of reading Excel workbooks. Among those are Apache POI , JExcelAPI, JCom, ExtenXLS7 to name a few. We will use JExcelAPI to recognize and process Excel files.&lt;br/&gt;We assume that users are loading either Excel workbooks or ASCII files, such as XML documents or CSV files. This makes streamToString method looks like this.&lt;br/&gt;protected String streamToString(String mimeType, InputStream inputStream) throws IOException&lt;br/&gt;{&lt;br/&gt;String result;&lt;br/&gt;// check if this is an Excel spreadsheet&lt;br/&gt;if (&amp;rdquo;application/vnd.ms-excel&amp;rdquo;.equalsIgnoreCase(mimeType))&lt;br/&gt;{&lt;br/&gt;try {&lt;br/&gt;result = xlsToString(inputStream);&lt;br/&gt;} catch (jxl.read.biff.BiffException ex)&lt;br/&gt;{ // if not, then assume this is an ASCII stream&lt;br/&gt;inputStream.reset();&lt;br/&gt;result = streamToString(inputStream);&lt;br/&gt;}&lt;br/&gt;} else&lt;br/&gt;{ // otherwise an ASCII stream&lt;br/&gt;result = streamToString(inputStream);&lt;br/&gt;}&lt;br/&gt;return result;&lt;br/&gt;}&lt;br/&gt;This method interprets the mimeType of the inbound file, and either reads it as an Excel workbook using method xlsToString(InputStream) or converts it into a string using method streamToString(InputStream). We will omit details of streamToStream(InputStream) method, as it reads characters from the input stream and appends them to a string, and concentrate on xlsToString(InputStream).&lt;br/&gt;The body for this method was borrowed from here. The method interprets the input stream as an Excel workbook and converts each sheet into a comma separated format.&lt;br/&gt;private final static String CSV_SEPARATOR = &amp;ldquo;,&amp;rdquo;;&lt;br/&gt;private String xlsToString(InputStream stream) throws jxl.read.biff.BiffException&lt;br/&gt;{&lt;br/&gt;StringWriter stringWriter = new StringWriter();&lt;br/&gt;BufferedWriter bufferedWriter = new BufferedWriter(stringWriter);&lt;br/&gt;try {&lt;br/&gt;WorkbookSettings ws = new WorkbookSettings();&lt;br/&gt;ws.setLocale(new Locale(&amp;rdquo;en&amp;rdquo;, &amp;ldquo;EN&amp;rdquo;));&lt;br/&gt;Workbook w = Workbook.getWorkbook(stream, ws);&lt;br/&gt;// Gets the sheets from workbook&lt;br/&gt;for (int sheet = 0; sheet &amp;lt; w.getNumberOfSheets(); sheet++)&lt;br/&gt;{&lt;br/&gt;Sheet s = w.getSheet(sheet);&lt;br/&gt;Cell[] row = null;&lt;br/&gt;// Gets the cells from sheet&lt;br/&gt;for (int i = 0 ; i &amp;lt; s.getRows() ; i++)&lt;br/&gt;{&lt;br/&gt;row = s.getRow(i);&lt;br/&gt;if (row.length &amp;gt; 0)&lt;br/&gt;{&lt;br/&gt;bufferedWriter.write(formatExcelCell(row[0]));&lt;br/&gt;for (int j = 1; j &amp;lt; row.length; j++)&lt;br/&gt;{&lt;br/&gt;bufferedWriter.write(CSV_SEPARATOR);&lt;br/&gt;bufferedWriter.write(formatExcelCell(row[j]));&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;bufferedWriter.newLine();&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;bufferedWriter.flush();&lt;br/&gt;} catch(jxl.read.biff.BiffException ex)&lt;br/&gt;{&lt;br/&gt;throw ex;&lt;br/&gt;}&lt;br/&gt;catch (Exception ex)&lt;br/&gt;{&lt;br/&gt;throw OAException.wrapperException(ex);&lt;br/&gt;}&lt;br/&gt;return stringWriter.toString();&lt;br/&gt;}&lt;br/&gt;Method formatExcelCell is responsible for converting the contents of a cell into the one compatible with CSV file format. Namely&lt;br/&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp; double each double quote&lt;br/&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp; surround contents with double quotes if contents contains a double quote or comma&lt;br/&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp; convert date into DD-MMM-YYYY format&lt;br/&gt;The formatExcelCell method body is&lt;br/&gt;private final static String QUOTE_STRING = &amp;ldquo;&amp;rdquo;&quot;;&lt;br/&gt;private SimpleDateFormat dateFormatter = new SimpleDateFormat(&amp;rdquo;d-MMM-yyyy&amp;rdquo;);&lt;br/&gt;private String formatExcelCell(Cell cell)&lt;br/&gt;{&lt;br/&gt;if (cell == null) return null;&lt;br/&gt;String rowCell = cell.getContents();&lt;br/&gt;// format the date&lt;br/&gt;if ( cell.getType().equals(cell.getType().DATE) )&lt;br/&gt;{&lt;br/&gt;rowCell = dateFormatter.format(((DateCell)cell).getDate());&lt;br/&gt;}&lt;br/&gt;// double each quote&lt;br/&gt;String result = rowCell.replaceAll(QUOTE_STRING, QUOTE_STRING+QUOTE_STRING);&lt;br/&gt;// surround with quotes if comma or quote is present&lt;br/&gt;if (result.indexOf(CSV_SEPARATOR) &amp;gt;0 || result.indexOf(QUOTE_STRING) &amp;gt;0)&lt;br/&gt;{&lt;br/&gt;result = QUOTE_STRING + result + QUOTE_STRING;&lt;br/&gt;}&lt;br/&gt;return result;&lt;br/&gt;}&lt;br/&gt;Here we reached the point when the incoming stream is tested to be an Excel workbook, and if so, converted into a comma separate stream. Otherwise, it is assumed that the incoming file is an ASCII stream.&lt;br/&gt;Our next task is to store the contents in the database. Stay tuned to learn how to write CLOBs using BC4J.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Uploading Excel Spreadsheet into Oracle eBusiness Suite Part 3</title>
<pubDate>Wed, 16 Sep 2009 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/uploading_excel_spreadsheet_into_oracle_ebusiness_suite_part_3/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/uploading_excel_spreadsheet_into_oracle_ebusiness_suite_part_3/</guid>
<description>

&lt;p&gt;Building UI&lt;br/&gt;First of all, we need to define business objects and explain their usage. The page we are building contains one field on top of the page where the user specifies the file to upload, and then a table below where user select the purpose for the upload.&lt;/p&gt;
&lt;p&gt;The content for the table comes from a view object FileUploadPurposeVO which is sourced by the query from the technical design. We add to it a transient updatable attribute &amp;lsquo;Selected&amp;rsquo; to allow for single table selection.&lt;/p&gt;
&lt;p&gt;The content of the uploaded file is stored in the database table XXPT_FILE_UPLOAD_TMP. So, we create an entity object XXPTFileUploadTmpEO and corresponding view object XXPTFileUploadTmpVO.&lt;br/&gt;We also need a primary key generator. The first thought, of course, is to define a custom sequence. I do not like this idea since the primary key here does not need to be sequential; it just needs to be unique. So, the sequence will be an extra custom database object without a very good need. We can also define or reuse a document sequence. However, this is a lot of application setups for a primary key which will live only a couple of seconds.&lt;/p&gt;
&lt;p&gt;The approach I prefer is to use the GUID generated by the database and convert it into a number. The following query generates unique number each run you execute it. &lt;br/&gt;select okc_p_util.raw_to_number(sys_guid()) id from dual&lt;br/&gt;We build a view object PrimaryKeyGeneratorVO based on this query. This view object completes our data model.&lt;br/&gt;There are many examples available over the internet and in the Developer&amp;rsquo;s Guide on how to build an OAF page. We will skip those here. The relevant assumption is that the table which displays the upload purposes is a single selection table with an action button &amp;lsquo;submitButton&amp;rsquo;.&lt;br/&gt;This makes the page controller entry point look like this&lt;br/&gt;/&amp;#42;&amp;#42;&lt;br/&gt;&amp;#42; Procedure to handle form submissions for form elements in&lt;br/&gt;&amp;#42; a region.&lt;br/&gt;&amp;#42; @param pageContext the current OA page context&lt;br/&gt;&amp;#42; @param webBean the web bean corresponding to the region&lt;br/&gt;&amp;#42;/&lt;br/&gt;public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)&lt;br/&gt;{&lt;br/&gt;super.processFormRequest(pageContext, webBean);&lt;br/&gt;OAApplicationModule am = pageContext.getApplicationModule(webBean);&lt;br/&gt;if (pageContext.getParameter(&amp;rdquo;submitButton&amp;rdquo;) != null)&lt;br/&gt;{ processFileUpload(pageContext, webBean, am);&lt;br/&gt;}&lt;br/&gt;}&lt;br/&gt;Method processFileUpload is performing the following tasks&lt;br/&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp; get hold of the binary file contents&lt;br/&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp; convert binary file contents into an ASCII stream&lt;br/&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp; store ASCII in the file in the database&lt;br/&gt;&amp;bull;&amp;nbsp;&amp;nbsp;&amp;nbsp; submit the printing request&lt;br/&gt;The body of this method is&lt;br/&gt;protected void processFileUpload(OAPageContext pageContext, OAWebBean webBean, OAApplicationModule am)&lt;br/&gt;{&lt;br/&gt;// Get hold of the binary file contents&lt;br/&gt;DataObject fileUploadData = (DataObject)pageContext.getNamedDataObject(&amp;rdquo;fileUploadItem&amp;rdquo;);&lt;br/&gt;if (fileUploadData == null) return;&lt;br/&gt;String fileName = (String)fileUploadData.selectValue(null, &amp;ldquo;UPLOAD_FILE_NAME&amp;rdquo;);&lt;br/&gt;if (fileName == null) return;&lt;br/&gt;String contentType =(String)fileUploadData.selectValue(null, &amp;ldquo;UPLOAD_FILE_MIME_TYPE&amp;rdquo;);&lt;br/&gt;BlobDomain uploadedByteStream = (BlobDomain)fileUploadData.selectValue(null, fileName);&lt;br/&gt;if (uploadedByteStream == null) return;&lt;br/&gt;// convert binary file contents into an ASCII stream&lt;br/&gt;try {&lt;br/&gt;String inputStream = streamToString(contentType, uploadedByteStream.getInputStream() ); &lt;br/&gt;String purposeCode = getSelectedPurpose(am);&lt;br/&gt;if (purposeCode == null)&lt;br/&gt;{&lt;br/&gt;throw new OAException(&amp;rdquo;XXRFG&amp;rdquo;,&lt;br/&gt;&amp;ldquo;XXRFG_SCR0248_MISSING_PURPOSE&amp;rdquo;,&lt;br/&gt;null,&lt;br/&gt;OAException.ERROR,&lt;br/&gt;null);&lt;br/&gt;}&lt;br/&gt;// Store ASCII in the file in the database&lt;br/&gt;Number primaryKey = storeStream(inputStream , purposeCode, (UploadAMImpl)am);&lt;br/&gt;int orgId = ((OADBTransactionImpl)am.getOADBTransaction()).getOrgId();&lt;br/&gt;// submit the printing request&lt;br/&gt;submitConcurrentProgram(primaryKey, purposeCode, orgId, am.getOADBTransaction().getJdbcConnection());&lt;br/&gt;} catch (IOException ex) {&lt;br/&gt;throw OAException.wrapperException(ex);&lt;br/&gt;} catch (SQLException ex) {&lt;br/&gt;throw OAException.wrapperException(ex);&lt;br/&gt;} catch (RequestSubmissionException ex) {&lt;br/&gt;throw OAException.wrapperException(ex);&lt;br/&gt;}&lt;br/&gt;}&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Uploading Excel Spreadsheet into Oracle eBusiness Suite. Part 2</title>
<pubDate>Tue, 15 Sep 2009 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/uploading_excel_spreadsheet_into_oracle_ebusiness_suite_part_2/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/uploading_excel_spreadsheet_into_oracle_ebusiness_suite_part_2/</guid>
<description>

&lt;p&gt;Technical Design&lt;br/&gt;We build a new OAF page for the user to specify the file to upload. Since we are building a generic mechanism, the user also specifies the purpose of the upload. For example, price lists, or project budgets, or manual invoices. The list of purposes is presented as a table with name and description of the purpose for the upload. An advanced implementation can also display a URL for the file template which users can download and populate with data.&lt;/p&gt;
&lt;p&gt;The purposes can be defined via a lookup and extracted by a query below&lt;br/&gt;select lookup_code&lt;br/&gt;, meaning&lt;br/&gt;, description&lt;br/&gt;, attribute1 template_url&lt;br/&gt;from fnd_lookup_values_vl&lt;br/&gt;where lookup_type = &amp;lsquo;XXPT_FILE_UPLOAD_PURPOSE&amp;rsquo;&lt;br/&gt;and enabled_flag = &amp;lsquo;Y&amp;rsquo;&lt;br/&gt;and sysdate between start_date_active and nvl(end_date_active, sysdate)&lt;br/&gt;and view_application_id = 3&lt;br/&gt;and security_group_id = 0&lt;/p&gt;
&lt;p&gt;The data file needs to be uploaded somewhere for processing.&lt;br/&gt;Since we are building an OAF page, we have two places for data processing. We can parse the file inside the page controller, and place the data into the destination tables directly. This approach allows for immediate scan of the incoming data and error reporting. The drawback is that any change to the list of files or to the file structure itself requires changes to Java code.&lt;/p&gt;
&lt;p&gt;The only other place where we can place the data is the database. The incoming file can be placed into a customer table into a CLOB field for further processing. For that purpose, we create a table XXPT_FILE_UPLOAD_TMP with the following fields&lt;br/&gt;Field&amp;nbsp;&amp;nbsp;&amp;nbsp; Type&amp;nbsp;&amp;nbsp;&amp;nbsp; Comments&lt;br/&gt;ID&amp;nbsp;&amp;nbsp;&amp;nbsp; NUMBER&amp;nbsp;&amp;nbsp;&amp;nbsp; Primary Key, generated&lt;br/&gt;PURPOSE_CODE&amp;nbsp;&amp;nbsp;&amp;nbsp; VARCHAR2(32)&amp;nbsp;&amp;nbsp;&amp;nbsp; Purpose of the upload&lt;br/&gt;FILE_CONTENTS&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOB&amp;nbsp;&amp;nbsp;&amp;nbsp; ASCII contents of the uploaded file&lt;/p&gt;
&lt;p&gt;Since the user can upload binary files such as Excel workbooks, the page controller needs to recognize those and transform into an ASCII file. In out example we will use JExcelAPI library to transform Excel sheets into CSV stream.&lt;br/&gt;We anticipate that most of uploads are for data stored in a tabular format. This assumption makes SQL&amp;#42;Loader our preferred data upload tool. The tool is very generic and can upload any delimited or fixed width flat file into the destination tables. Changes to the data structure can easily be addressed by changing the control file. This change can be carried by most technical consultants even without knowledge of Oracle eBusiness Suite.&lt;/p&gt;
&lt;p&gt;However, it makes storing data in a database CLOB very impractical. We need it in a flat file somewhere where SQL&amp;#42;Loader can read. Since SQL&amp;#42;Loader is submitted as a concurrent request, we need to store the flat file in a place from which the concurrent manager can read it, for example, an output of another concurrent request.&lt;/p&gt;
&lt;p&gt;To achieve this, we will build a Java concurrent program that is submitted immediately after the file is uploaded into XXPT_FILE_UPLOAD_TMP table. The concurrent program dumps file contents into its output stream. This concurrent program achieves our file transport goal, i.e. data file is transported to a place where it can be processed by Oracle eBusiness Suite.&lt;/p&gt;
&lt;p&gt;The output of the concurrent program can now be passed to the SQL&amp;#42;Loader as the input data file. If the data file is an XML message, we can pass it to BI Publisher for processing, or write our own Java concurrent program to parse and process the message. We will use the implementation of the Chain of Command described in previous articles to chain the processing concurrent program.&lt;br/&gt;Stay tuned to learn how to walk each step of the design&amp;hellip;&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Uploading Excel Spreadsheet into Oracle eBusiness Suite Part 1</title>
<pubDate>Mon, 14 Sep 2009 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/uploading_excel_spreadsheet_into_oracle_ebusiness_suite_part_1/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/uploading_excel_spreadsheet_into_oracle_ebusiness_suite_part_1/</guid>
<description>

&lt;p&gt;Almost any Oracle eBusiness Suite implementation faces a requirement to upload data from Excel. Why? Sometimes, because the end users are used to Excel interface. For example, purchasing department has its own Excel template for requisitions which&amp;rsquo;s been used for years and everybody likes it and wants to keep on using it. There are also situations where Excel provides a perfect environment for data manipulation and preparation. We found this to be the case almost on all our implementation of Oracle Project Accounting with monthly updates to project budgets.&lt;/p&gt;
&lt;p&gt;Oracle&amp;rsquo;s Applications Desktop Integrator (ADI) provides means to load information from Oracle&amp;rsquo;s predefined spreadsheets for a set number of business objects, such as GL journals, GL budgets, physical inventory. When ADI meets your needs, this is the best option to go for.&lt;/p&gt;
&lt;p&gt;Upload of complex data structures from Excel, such as sales orders or purchase requisitions, requires significant Visual Basic programming. Such Excel workbooks require strict layout structure, built in real-time validations, production database connection, and are specific to the customer. Construction cost of such a template should be measured against the productivity gains. Since an Oracle eBusiness Suite implementation team typically lacks knowledge of Visual Basic, the cost of such an extension is high. We have built several Excel templates for sales order upload and manipulation using Excel 2007 for Oracle eBusiness Suite 11.5.10.&lt;br/&gt;In this post I would like to discuss an approach to load Excel spreadsheets with tabular data, such as project budgets or meter reads, into Oracle eBusiness Suite.&lt;/p&gt;
&lt;p&gt;The simplest way to load data from Excel into an Oracle database is&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;save the Excel spreadsheet as a comma delimited file&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;somehow place it on the concurrent manager tier, or anywhere where SQL&amp;#42;Loader is available&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;run SQL&amp;#42;Loader to import the file into a staging table.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;This approach shows the major data transformation needs, i.e. data should&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;be stored in an ASCII file&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;exist on the concurrent manager tier.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;It also involves significant human intervention in order to&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Convert Excel file into CSV&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Upload to concurrent manager tier&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Run SQL&amp;#42;Loader&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;What we will discuss here is how to build a friendly user interface through which a user can upload an Excel file, and see the data loaded into a staging table using SQL&amp;#42;Loader. We will build this extension in such a manner that it does not depend on the nature of the incoming data and can be reused to load different Excel spreadsheets into different staging tables.&lt;br/&gt;Want to know how? Stay tuned...&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Competence and Performance</title>
<pubDate>Mon, 2 Feb 2009 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/competence_and_performance/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/competence_and_performance/</guid>
<description>

&lt;p&gt;I have been always surprised how people with mediocre skill sets get on projects. It has not been once or twice when I worked on a project with consultants which could not deliver what was expected on a daily basis. They all passed screening interviews and have nice resumes. And yet, no matter how much the deliverable was discussed, it was not coming together&amp;hellip;.slowly becoming a snowball.&lt;/p&gt;
&lt;p&gt;The surprising answer came to me when I was reading a dictionary of linguistics. Back in the 1950 there was a famous American linguist Noam Chomsky. He introduced a dichotomy of competence and performance as related to linguistics. In simple terms, competence is a person&amp;rsquo;s potential to execute an action, while performance is his or her actual ability to execute an action.&lt;/p&gt;
&lt;p&gt;In a similar fashion, a Consultant&amp;rsquo;s resume is his or her competence. It shows what a Consultant is capable of doing or hope of being capable of doing. I can put in my resume that I can lay bricks. I saw many times how other people are doing it. I can read a couple of books and talk to other guys about the tricks of the trade. I guess I will be able to pass the interview for a brick laying job.&lt;/p&gt;
&lt;p&gt;Performance is a bit of a different story. Have I ever worked with bricks? No. Anybody who sees me working can immediately spot it. And based on the distractions closeby, such as a nearby internet cafe, I will never be able to perform on that job.&lt;/p&gt;
&lt;p&gt;An interview process is a mear attempt to guess about a Consultant&amp;rsquo;s performance based on the declared competence. And here references, come in handy as it is the only chance to probe into Consultant&amp;rsquo;s past performance. Did other clients and managers find that the Consultant was able to execute?&lt;/p&gt;
&lt;p&gt;A piece of advice - Build your network and keep your proven Consultants close.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Customer Statements with BI Publisher</title>
<pubDate>Wed, 25 Jun 2008 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/customer_statements_with_bi_publisher/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/customer_statements_with_bi_publisher/</guid>
<description>

&lt;p&gt;Everybody who has worked with Oracle Receivables has had to deal with customer statements. Customer statements show customer related transactions such as invoices, credit memos, payments, etc. Customer statements are printed with a predefined cycle. There is a special form which allows you to submit generation of a customer statement.&lt;/p&gt;
&lt;p&gt;The form submits a standard process ARXSGP written in Pro-C. This process gathers information about customer receivables activities for the reporting period throughout the Oracle eBusiness Suite, inserts the information into temporary tables and submits the report ARXSGPO to actually produce the output. The result of this operation is an ASCII file.&lt;/p&gt;
&lt;p&gt;Needless to say, you cannot present ASCII output to the customer. Now that laser printers print as fast as a small printing press, there is no excuse available to use old fashioned preprinted forms; customers want personalized graphics, personalized messages, and HiFi quality of the output.&lt;/p&gt;
&lt;p&gt;Basic BI Publisher&lt;br/&gt;Rewriting the customer statements report from scratch is not a good idea.&amp;nbsp; The standard process navigates through all of the customer related transactions and neatly places the results in the temporary tables.&amp;nbsp; The process is very fast and reliable.&amp;nbsp; You are better off staying with the standard customer statement process and enhancing it using available means.&lt;/p&gt;
&lt;p&gt;Following recommendations from Oracle, we decided to use Oracle BI Publisher to produce a presentable output.&lt;/p&gt;
&lt;p&gt;In order to use BI Publisher, we changed the output type for the ARXSGPO report to XML, associated a new data source with the report, and built a nice looking template with corporate colors, tables, footnotes, and disclaimers.&amp;nbsp; After the customer statement generation completed, we manually submitted an &amp;lsquo;XML Report Publisher&amp;rsquo; program to publish the report with BI Publisher in a PDF format.&lt;/p&gt;
&lt;p&gt;Support for Consolidated Invoice&lt;br/&gt;During testing we found that the standard customer statements report prints out individual receivables transactions rather than consolidated invoices. It transpired that the customer invoice process is customized so that it prints a consolidated invoice as one receivables transaction without any reference to individual transactions which it consolidated. It means that transaction numbers on our customer statement meant nothing to the customer since the customer never saw them on any paperwork.&lt;/p&gt;
&lt;p&gt;The next task at hand is to adjust the customer statement report so that it does not print individual transactions if they are consolidated.&lt;/p&gt;
&lt;p&gt;To handle consolidated invoices we enhanced the ARXSGPO report to show the consolidated invoice number for each transaction if such a number exists. This gave us the necessary information in the output file.&amp;nbsp; Unfortunately, we had to summarize the receivables transactions by consolidated invoice to produce the consolidated balance.&amp;nbsp; Such operation was not seen possible or desirable to perform within BI Publisher template. The help came from another XML related technology. We introduced an XSL transformation to convert the XML document generated by ARXSGPO report into an XML document with more suitable structure. You use BI Publisher template of type XSL-XML to perform such conversion. Within the XSL transformation we consolidated invoices, excluded transactions with zero balance, etc. The transformed XML document was now very easy to format into the desired PDF format.&lt;/p&gt;
&lt;p&gt;To automate the process we had to introduce a chain of command design pattern. This pattern is very much similar to request sets. We discussed this pattern in previous posts.&lt;/p&gt;
&lt;p&gt;Volume Testing&lt;br/&gt;We tested the above discussed solution to print one customer statement at a time. Developer picked up several customers to make sure most possible data combinations are explored. Once happy, we gave the solution to the users.&lt;br/&gt;After several casual tests with individual customer statement, the users got comfortable with the process and decided to test the month closing procedure which included printing customer statements for all their customers. Surely enough, customer statement report produced an XML document so big that it could not be loaded into memory for processing.&lt;/p&gt;
&lt;p&gt;It is widely known that XML document consumes significant amount of memory. We hoped that 16GB RAM machine will be able to cope with it. Tough luck!&lt;/p&gt;
&lt;p&gt;The new task is to reduce the size of the XML document.&lt;br/&gt;Another concern was the printer itself. We calculated that it would take 24 hours of continuous printing and five paper reloads to print customer statements for all customers at the end of the month. We could hardly find any volunteer to watch the printer around the clock and resolve hardware problems should they occur four o&amp;rsquo;clock in the morning.&lt;/p&gt;
&lt;p&gt;There were several possible workarounds. We could submit customer statements by alphabetical letters. It meant 26 submissions each month. Prospect of introduction of other languages shelved this approach. Alternatively, we could put customers into different statement cycles. This sounded better, but this would not represent the way the business is conducted. In short, technical difficulties should not affect the way the business processes are represented in ERP. So, we looked for a purely technical solution.&lt;/p&gt;
&lt;p&gt;We observed that the customer statement XML document is a sequence of independent statement messages. So, we wrote a process which grouped the statements into batches, each batch with a manageable number of statements. The process read the file with the XML document and sliced in into batches, 300 statements per batch. As the result of the process, we produced around 60 batches for testing.&lt;/p&gt;
&lt;p&gt;It not only allowed generating customer statements for all customers in one go, it also allowed printing customer statements to several printers. Since our monthly customer statement printing process produced multiple files, we sent the files to an array of five to six printers leveling the workload.&amp;nbsp; It reduced the total printing time for customer statements to four hours without any human intervention, a.k.a. loading paper into emptied paper trays, replacing overheated cartridges etc.&lt;/p&gt;
&lt;p&gt;Summary&lt;br/&gt;BI Publisher can be used not only to produce HiFi output, but also as an ETL tool. Combination of these two can help resolve complex tasks of XML manipulation and output management.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>AIM Your Audience</title>
<pubDate>Thu, 7 Feb 2008 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/aim_your_audience/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/aim_your_audience/</guid>
<description>

&lt;p&gt;Quality of design documents is the perpetual issue which I had to face on every implementation I had ever had a chance to work on.&lt;/p&gt;
&lt;p&gt;On my very first Oracle E-Business Suite implementation project my manager asked me to paste everything, including source code at 6pt, into one big Word document to make sure nobody reads it. I am very thankful to my manager because I learned how not to write design documents and I read AIM Guidelines, both volumes. Question to the audience: who has ever seen these documents?&lt;br/&gt;As I was advancing my skill of application design, I got more responsible for the quality of the documents which my team was delivering to the customer. I found that understanding the audience for the document was one of the key concepts which improved the quality of the deliverables. Let us look at the audience for the key design documents in AIM methodology.&lt;/p&gt;
&lt;p&gt;Functional Design (MD050) is written by a functional consultant for the customer&amp;rsquo;s subject matter expert and for the technical lead. Identifying the audience for this document is the simplest. It is clearly understood on most of the projects&lt;br/&gt;Identifying audience for technical Design (MD070) is not that obvious. The technical design is written by the technical lead for the developer and for the functional consultant. Functional consultant should validate that the desired functionality will be delivered as envisioned, developer should validate that the technical solution is clearly explained.&lt;/p&gt;
&lt;p&gt;Installation instructions (MD120) is the most abused document, especially on smaller implementation. The instructions are written by the developer for the migration team and for the technical lead. Migration team needs to validate that the instructions are clear for execution. Technical lead needs to record the list of files and other objects for reporting, interdependencies etc.&lt;/p&gt;
&lt;p&gt;Where is the source for quality? It is in variety of the audience. Let us look at MD050. Functional consultant writes this document for the customer&amp;rsquo;s subject matter expert. SME is sure to stand guard to receive the clearest document possible. This is the reason why MD050s are typically of high quality. The exception of the rule is when you are implementing a brand new product where neither SME nor functional consultant understand what to do. MD070 is written by the technical lead for the developer. This document is most abused on most of the implementations I ever participated.&lt;/p&gt;
&lt;p&gt;Predominantly, it comes from the fact that the person who writes the technical design is the one who&amp;rsquo;ll be coding it. Such setup produces the worst technical design which later translates in a very bad code. We found that the best technical designs are produced in the situation when one consulting company provides technical leads and another consulting company provides developers. With such layout developers would stand guard to ensure that the technical design is of the best quality. Similarly, MD120s are reaching the top of their quality when code migration is performed by a team of consultants not associated with the build.&lt;/p&gt;
&lt;p&gt;Summary: the key to the quality of design documents is in setting up the audience to have &amp;lsquo;natural&amp;rsquo; guardians whose success depends on the quality of the documents they receive.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Design Patterns</title>
<pubDate>Thu, 17 Jan 2008 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/design_patterns/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/design_patterns/</guid>
<description>

&lt;p&gt;The other day I came across a web site &lt;a href=&quot;http://www.claremont.co.uk/Link.php?exl=http://www.javacamp.org&quot;&gt;www.javacamp.org&lt;/a&gt; which lists Java design patterns. Highly recommend to all software designers. Even if you do not do software design for Java, knowledge of design patterns is an invaluable resource of ideas for new applications you are building.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>PIP Your AIA</title>
<pubDate>Tue, 8 Jan 2008 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/pip_your_aia/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/pip_your_aia/</guid>
<description>

&lt;p&gt;AIA stands for Application Integration Architecture.&lt;/p&gt;
&lt;p&gt;Architecture is a fundamental underlying design of computer hardware, software, or both. In other words it is an integrated set of tools and concepts which help you build new solutions.&lt;/p&gt;
&lt;p&gt;All major software vendors have their own AIA delivered via the Application Servers, JBoss from RedHat, WebSphere from IBM, Oracle 10g AS from Oracle, WebLogic from BEA, NetWeaver from SAP, WebMethods. If you look into each of the AIA from each of the vendor, you will not see much difference in terms of delivered functionality. Each architecture includes an HTTP Server, a servlet container, an Enterprise Service Bus, a BPEL Engine, etc. What does differentiate one AIA from another? PIPs!!!&lt;/p&gt;
&lt;p&gt;PIP stands for Process Integration Pack. These are prebuilt solutions for specific tasks. For example, if your company is implementing Oracle Siebel CRM and Oracle eBusiness Suite Order Management, you go with Oracle AIA and use Siebel CRM Integration Pack for Oracle Order Management. Surely, both WebSphere and WebLogic have Oracle eBS and Siebel adapters, and one can built a custom integration solution with AIA from IBM or BEA.&lt;/p&gt;
&lt;p&gt;However, only Oracle AIA with the PIP gives you the initial boost. When you implement SAP and integrate it with Siebel, your best solution would be the SAP NetWeaver for the very same reason. You use AIA from &amp;lsquo;independent&amp;rsquo; vendors like IBM, BEA or RedHat when you need to integrate multiple applications with and there are no PIPs available.&lt;/p&gt;
&lt;p&gt;For example, if you are integrating Oracle eBusiness Suite Financials with Lawson Financials, your best choice would be WebSphere because there are already adapters for both of the applications available with no PIP to boost your integration.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Going Live</title>
<pubDate>Sun, 23 Dec 2007 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/going_live/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/going_live/</guid>
<description>

&lt;p&gt;Recently, I booked a room in a prestigous London hotel. Having previously requested an early check in at the time of my reservation, I arrived at their reception desk at 10 am after a cross Atlantic red eye flight. To my annoyance I was offered to pre-register!&lt;/p&gt;
&lt;p&gt;Since their reservation system was going though an upgrade and therefore was not accessible they could not check me in. I was asked me to &amp;lsquo;come back a bit later&amp;rsquo; - around 1 pm. Without much argument, I went to the office and arrived back to the hotel around 2 pm intent this time on accessing my room.&lt;/p&gt;
&lt;p&gt;The same person who suggested I come back at 1 pm, now told me that they would not be able to check me in until 3 pm which was their regular check-in time. To cut a long story short, I eventually decamped to my room around 5 pm.&lt;/p&gt;
&lt;p&gt;Unfortunately, this was not the end of the story, two days later, my room key failed to operate the lock on the door. I went back to the registration desk and asked them to re-issue the key however, I was told that I had been &amp;rsquo;checked out&amp;rsquo;&amp;nbsp; and as they were fully booked, I was destined to seek alternative accomadation - not much fun as it extremely difficult to find a hotel room in central London during any holiday period at such short notice.&lt;/p&gt;
&lt;p&gt;The bottom line is that the company went live with a new application which supports its core business processes. Since there is no down time for the business, dealing with the company during the &amp;lsquo;go live&amp;rsquo; weekend was a challenge to say the least, data was either corrupt or not present, business processes were not working and above all people were angry. As we all know, once a business goes live with a new application, the personnel are still educating themselves for several weeks before they are &amp;rsquo;up to speed&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;After more than 10 years in the industry, it was the first time that I had direct &amp;lsquo;end-user&amp;rsquo; experience of a business which had just gone live with a new application.&lt;/p&gt;
&lt;p&gt;Moral of the Story: End users must be thoroughly trained with the new customer facing applications ahead of go live day. Communication of the progress of the go-live weekend to all parties, especially to those who interact with customers are exceptionally important. A day or two of broken service can seriously damage any company&amp;rsquo;s reputation.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Identifying Address, Active &amp; Primary Flags in the Customer Address</title>
<pubDate>Thu, 6 Dec 2007 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/identifying_address_active__primary_flags_in_the_customer_address/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/identifying_address_active__primary_flags_in_the_customer_address/</guid>
<description>

&lt;p&gt;IDENTIFYING ADDRESS&lt;br/&gt;The identifying address is an address which is held as a default address in the database against the Customer record. Customers are held in the Customer Architecture (known as Trading Community Architecture or &amp;lsquo;TCA&amp;rsquo;) as Parties, indicating that they are an entity in their own right. Only one address against a Party record can be flagged as an Identifying Address. This address is then used as a default when database level processes such as geographical searches are performed against all Parties held in the database. As a result there are a number of rules that relate to maintaining Identifying Addresses in against the Customer record:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Where addresses are added against a Customer record, one of these addresses needs to be flagged as an Identifying Address. As a result, it is not possible to save a Customer Record with an Address without flagging at least one address as the Identifying Address.&lt;/li&gt;
&lt;li&gt;Where only one address is added against a Customer record, then this will automatically default as the Identifying Address&lt;/li&gt;
&lt;li&gt;If &amp;gt; 1 address is added against the Customer record, then the user can select which address to be flagged as the Identifying Address by manually checking/unchecking the Identifying Address flag adjacent to the address record. Only one address can be flagged as the identifying address against the Customer Record&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;ACTIVE&lt;br/&gt;There are in fact 2 &amp;lsquo;Active&amp;rsquo; flags held in the Customer Address screen:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Active flag immediately under the address flag of the Customer. This flag indicates that the address is an Active and able to be used when selecting it for billing, statement, dunning or other purposes within the database.&lt;br/&gt;&lt;br/&gt;If this address flag is made inactive by the user it is no longer visible to be selected by the user for any purpose such as billing, dunning, statements etc. This means that if this address flag is made inactive by the user manually unchecking the &amp;lsquo;Active&amp;rsquo; box then all associated Party Site Uses, Customer Account Sites and Account Site Uses will become inactive. In addition, running billing, statements, dunning etc against an inactive address will result in these transactions not being able to be processed. When a Party Site is re-activated, all associated Customer Account Sites uses will become active and therefore billing, statements, dunning etc can continue.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp; Active flag held against the Site Usage (on the Business Purposes Tab). This flag is used just in respect of the associated usage on the specific address. &lt;br/&gt;&lt;br/&gt;If this flag is made inactive by the user then only that specific usage is no longer able to be performed against the Customer Address. As the Active Flag detailed in (1) above remains active, the address itself remains active and can be picked against other site usages. For example, if the Bill-To site usage flag is made Inactive, then this site can no longer be selected for billing purposes and will not allow existing invoices to be billed. However should the site have a Statement usage then the site can continue to be used to generate statements to the Customer.&lt;/p&gt;
&lt;p&gt;PRIMARY&lt;br/&gt;The Primary flag held against the Customer Site Usage indicates that the site specified as the Primary site is the default site for that site usage. There are a number of rules relating to the Primary Flag:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Only one site usage can be defined as the primary site usage against all addresses held against that customer. For example, if the Customer has 2 addresses both of which are defined as Bill-To addresses, only one of these addresses can be flagged as the Primary Bill-To Site. By only allowing one site usage to be defined as the Primary, it allows the database to identify the default address to be used for a particular Customer. This is particularly prevalent when passing transactions between the modules where no address is specified by in the source file. For example, if passing billing information from Lease Management to the Accounts Receivable module with no bill-to address specified against the Customers Contract, the system will default the bill-to address to the Primary Bill-To address held against the Customer for invoice addressing purposes.&lt;br/&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;The Oracle Customer record expects that one site usage will always be defined as the Primary Site Usage. As a result, it is not possible to remove the Primary Flag on the site usage without having another site usage flagged as the Primary. If the user deselects a Site Usage to indicate it is not the Primary Site without having selected an alternate site usage on a different address as being the Primary for that usage, then the system will reinstate the Flag on the record. Also where a user selects a new site to be the primary site for a particular usage, then any other site already indicated as the primary site for that usage against that Customer record will have its Primary Flag automatically removed when the record is saved.&lt;/li&gt;
&lt;/ul&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Building Oracle ADF BC4J JSF applications with Embedded Mule ESB</title>
<pubDate>Tue, 27 Nov 2007 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/building_oracle_adf_bc4j_jsf_applications_with_embedded_mule_esb/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/building_oracle_adf_bc4j_jsf_applications_with_embedded_mule_esb/</guid>
<description>

&lt;p&gt;During implementations of packaged software, IT consultants always face the challenge of changing the program logic. Be it an ERP application or a bug tracking solution, each customer insists on its own ways of conducting business and requires that software supports it. In many cases consultants can configure the software to meet customer&amp;rsquo;s requirements. However, there are situations when consultants have to extend the software.&lt;/p&gt;
&lt;p&gt;Software extensions are largely divided into two main categories: extensions and customizations. Extensions are formed by custom code which does not alter any of the standard code shipped with the software or which alters the code allowed to be changed, i.e. extension points. Customizations are formed by custom code which alters the standard code shipped with the software.&lt;br/&gt;In this article I discuss a technique of building extension points into an ADF BC4J application using Mule ESB.&lt;/p&gt;
&lt;p&gt;Please click here to view our &lt;a href=&quot;http://www.claremont.co.uk/cmsfiles/claremont/docs/whitepapers/WP_Embedded_Mule_ESB.pdf&quot;&gt;White Paper&lt;/a&gt;&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Service Contracts XML Publisher Reports</title>
<pubDate>Fri, 23 Nov 2007 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/service_contracts_xml_publisher_reports/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/service_contracts_xml_publisher_reports/</guid>
<description>

&lt;p&gt;Have you noticed the four OKS XML Publisher Reports which come with Oracle eBS 11.5.10? Have you noticed there is no published data source for it? Have you noticed that in the sample documents tax is hardcoded to 10%? We have. The XML generation mechanism is hardcoded inside ContractInfoAMImpl.java and some other classes with all the bugs which come with it.&lt;/p&gt;
&lt;p&gt;We created published data sources for OKS documents so that you can modify them. We rewrote ContractInfoAMImpl.java so that we never had to come back to it. All the data you need comes from the published and tested data sources. If you are interested, please, contact us and we will install this extension for you.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Murphy&#39;s Law &amp; Offshore Development</title>
<pubDate>Fri, 9 Nov 2007 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/murphys_law__offshore_development/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/murphys_law__offshore_development/</guid>
<description>

&lt;p&gt;Have you ever worked with offshore developers? Have you noticed that every onsite consultant is personally interviewed by the client or project manager, while offshore developers are just given in bulk? You cannot even request resume of offshore developers, probably, because it is as unimpressive as a new ream of paper. I noticed this practice on all projects with &amp;lsquo;blended&amp;rsquo; delivery, (read, software development offshored to India) which I had a chance to be part of.&lt;/p&gt;
&lt;p&gt;This inequality creates significant gap in experience between onsite consultants and offshore consultants. On one of the project an offshore &amp;lsquo;resource&amp;rsquo; asked me for the meaning of my request to &amp;lsquo;keep the DFF compiled&amp;rsquo;. Now I am laughing over a mug of beer when I remember that conversation, however, at that time I was about to cry; I had to delivery a very complex project with this type of &amp;lsquo;resources&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;The gap in experience creates a gap in mentality. A fresh college graduate promoted to a role of a team lead thinks that he or she is the most advanced developer ever, is given the most complex tasks on the project, and is determined to give the most complex solution to it. However, as you gain true experience in consulting you realize that tasks are not as complex as painted and, in fact, the simpler the solution the better. Do you see the fertile ground to the Murphy&amp;rsquo;s Law yet? Exactly, if you write a technical design onsite and leave some trivial things as not worth a line of documentation, offshore developer would consider it a major issue in the design document and will do it exactly opposite to what you intended.&lt;/p&gt;
&lt;p&gt;This will happen not because they are &amp;lsquo;bad&amp;rsquo; and we are &amp;lsquo;good&amp;rsquo;. This happens because of discrepancy in experience and mentality. A good friend of mine, when I asked him to double all double quotes in a string, sent me a one page long procedure which could handle at most two double quotes and crashed on the third double quote, instead of&lt;br/&gt;return replace(p_string, &amp;lsquo;&amp;rdquo;&amp;lsquo;, &amp;lsquo;&amp;rdquo;&quot;&amp;lsquo;)&lt;br/&gt;And this guy is not a novice is consulting&amp;hellip;&lt;/p&gt;
&lt;p&gt;Resume: read Murphy&amp;rsquo;s Laws. They are not jokes written by drunkards and losers. They are wisdom recorded by experienced people with critical view on life.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>MD200</title>
<pubDate>Tue, 23 Oct 2007 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/md200/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/md200/</guid>
<description>

&lt;p&gt;Many large scale projects hope to reduce the development cycle by combining design documents into one, so called &amp;#39;MD200&amp;#39;. In fact it not only delays code delivery, but also hinders the design flaws and solution interaction. Functional and technical design documents are completely different documents in terms of both contents and audience.&lt;/p&gt;
&lt;p&gt;I suggest investing significant amount of time into the technical design documents. The technical design documents must contain a full set of UML diagrams to describe flows within the solution and inter solution dependencies; a complete set of pseudo logic, queries, error handling etc.&lt;/p&gt;
&lt;p&gt;By the time technical design passes the acception by the technical lead or solution architect, it reaches the quality where a developer of any qualification can assemble an effective code within a short and manageable period of time. This is how high quality of the delivered code with offshore development centers must be achieved.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Development Standard Cheat Sheet</title>
<pubDate>Tue, 16 Oct 2007 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/development_standard_cheat_sheet/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/development_standard_cheat_sheet/</guid>
<description>

&lt;p&gt;Many large implementations which we took part in, have volumes of development standards document which nobody reads. Truly, one need to be a saint to read 50+ pages of text and memorize intricacies of naming. What we find useful, is having a cheat-sheet with most &amp;lsquo;critical&amp;rsquo; standards whose violation render severe damage to the development process. Adjusted to my current implementation the cheat sheet or survivor&amp;rsquo;s guide looks like this.&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Name for any custom object should start with &amp;lsquo;[customer_tech_name]_[gap_number]_&amp;rsquo; with proper casing, i.e. Profile Name &amp;lsquo;BOLINF_4000_SAMPLE&amp;rsquo;&lt;/li&gt;
&lt;li&gt;User name for any custom object should start with &amp;lsquo;[customer_short_name]: &amp;lsquo;, i.e Profile User Name &amp;lsquo;MB: Sample Profile&amp;rsquo;&lt;/li&gt;
&lt;li&gt;Any custom object which requires registration to an application must be registered to &amp;lsquo;Custom Application&amp;rsquo;, i.e. Profile Application&lt;/li&gt;
&lt;li&gt;Any custom PL/SQL procedure should not exceed 4 printed pages, otherwise PL/SQL procedure must be re-factored into smaller procedures&lt;/li&gt;
&lt;li&gt;Any custom Java method should not exceed 1 printed page, otherwise Java method must be re-factored into smaller methods or classes&lt;/li&gt;
&lt;li&gt;Any business logic of a professional form must reside in the database PL/SQL packages so that it can be reused by non-forms gaps, such as data conversion. Likewise, any business logic of OAF page must reside in the database PL/SQL packages.&lt;/li&gt;
&lt;li&gt;No loose procedure or functions. All procedures or functions must be packaged.&lt;/li&gt;
&lt;li&gt;MD120 must have no manual steps except for validation&lt;/li&gt;
&lt;li&gt;Each development object must have its own installation file, i.e. do not install multiple views with one file&lt;/li&gt;
&lt;li&gt;File name for an object must reflect the name of the object, i.e. BOLINF_4000_SAMPLE.ldt rather than BOLINF4000A.ldt&lt;/li&gt;
&lt;/ol&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>JFreeChart</title>
<pubDate>Thu, 4 Oct 2007 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/jfreechart/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/jfreechart/</guid>
<description>

&lt;p&gt;There is a great article about JFreeChart on OTN. We used this library in earlier versions of Hermes and liked it a lot. Though, the general direction with Hermes is to report using Excel or other reporting tools, we may bring some visual reports back into it using JFreeChart.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Version Control Tools</title>
<pubDate>Sat, 29 Sep 2007 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/version_control_tools/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/version_control_tools/</guid>
<description>

&lt;p&gt;The most common screen which I see when using IBM ClearCase is the unavailability screen on top of the fact that it requires client software installed. Never saw anything like this with Mercury PVCS.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Screen shot&quot; height=&quot;219&quot; src=&quot;http://www.claremont.co.uk/cmsfiles/claremont/articles_1/image/Screen_shot.jpg&quot; title=&quot;Screen shot&quot; width=&quot;333&quot;/&gt;&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>x_msg_data</title>
<pubDate>Wed, 12 Sep 2007 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/x_msg_data/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/x_msg_data/</guid>
<description>

&lt;p&gt;Everybody who works with Oracle eBusiness Suite PL/SQL APIs knows the list of standard parameters which each public API must have. There are two IN parameters: p_api_version, and p_init_msg_list; and thee OUT parameters: x_return_status, x_msg_count, x_msg_data.&lt;/p&gt;
&lt;p&gt;The reason for IN parameters is quite easy. You use p_api_version to separate major changes to the business logic. Practically, though, it is always 1.0. You use p_init_msg_list to initialize the message list which may exist in the current database transaction. x_return_status is a very important OUT parameter, it says whether API successfully finished.&lt;/p&gt;
&lt;p&gt;For a long time I could not understand importance of x_msg_count and x_msg_data OUT parameters. Even if you do not provide them, you can retrieve their values using FND_MSG_PUB package.&lt;/p&gt;
&lt;p&gt;Understanding came suddenly when I was building a BPEL process. The process called a custom PL/SQL API and needed to send a notification should the API fail. I definitely provided x_return_status parameter to the API, so the error identification was easy. The trouble came when I needed to compile the text for notification. Since I did not provide x_msg_data parameter to my API I did not know what the reason for failure was. I could no longer use FND_MSG_PUB to retrieve the message. This is when I appreciated OUT parameter x_msg_data. Now I need to understand importance of x_msg_count...&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Version Control</title>
<pubDate>Fri, 31 Aug 2007 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/version_control/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/version_control/</guid>
<description>

&lt;p&gt;Any ERP project of a considerate size uses one or another system to store project documentation. Steering committee or another project body decides how to store project documents, such as functional requirements, technical design, functional design etc. and defines the version control system for storing these documents. Such decisions often results in a complex hierarchical structure where there is at least one folder per gap or solution. Unfortunately, the same concept is blindly applied to the version control of development objects such as PL/SQL packages, views, tables, workflows etc.&lt;/p&gt;
&lt;p&gt;It is the most common misconception that development objects must be grouped and stored by solution which they serve. First of all, the name of the object does not necessarily tell you what solution it belongs to. Though you can add solution number into the name of a custom object, this will not work for standard objects. It is almost guaranteed that there will be shared objects which are owned by multiple solutions, such as CUSTOM.pll in Oracle Forms. The typical workaround is to move shared objects into separate folder, which makes the matter even worse.&lt;/p&gt;
&lt;p&gt;Not only the object does not have a permanent home, you do not easily know what folder the object currently belongs to. Though Hermes helps us with identification of shared objects and hints on their location in the version control system, this is not the way development objects should be stored in a version control system.&lt;/p&gt;
&lt;p&gt;We found that the best approach to storing development objects in a version control system is by object type: one folder for all PL/SQL objects which are installed in APPS schema, one folder for all PL/SQL objects which are stored in BOLINF (or other custom schema), one folder for all lookup types LDT files, one folder for workflows etc. This approach guarantees permanent home for each object and simplifies the creation of migration scripts since the name and type of the object uniquely identifies its location in the version control system.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>Naming Conventions</title>
<pubDate>Mon, 20 Aug 2007 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/naming_conventions/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/naming_conventions/</guid>
<description>

&lt;p&gt;Each Oracle eBusiness Suite implementation has heated debates on the object and file naming convention.&lt;/p&gt;
&lt;p&gt;When it comes to the naming convention for custom objects there are debates on whether to include gap number, application module or some other identifying information into the name of the object. Let us consider a naming convention for a PL/SQL package in the form ____PKG, for example XBOL_1201_AR_SAMPLE_PKG. When you do a vanilla implementation with minimum number of gaps, any naming convention will do. However, when implementation is complex with numerous gaps, which is very typical for Oracle Lease Management implementation, adding &amp;lsquo;identifying&amp;rsquo; information into the object name may be very misleading.&lt;/p&gt;
&lt;p&gt;The first misleading identifier is the gap number. Developer would put the gap number of the gap which created the object. However, other gaps may add their code into the object, thus sharing the ownership of the object. The package no longer belongs to gap 1201, it is shared between gaps. Because of that saying that package XBOL_1201_AR_SAMPLE_PKG is owned by gap 2033 is rather misleading. Adding the application name to the object name may not add as much benefit as expected.&lt;/p&gt;
&lt;p&gt;Though this identifier is rather stable, developers need to have clear vision as what application a package extends. This is especially true for packages which perform cross application operations such as linking OKS and IB, OE and INV. We suggest that identifying information such as gap number and application is kept outside of the object name in an external tool such as Hermes.&lt;/p&gt;
&lt;p&gt;File naming convention also varies between projects. We came across a project where PL/SQL packages were stored in files with the name like .pls, for example XBOL1342A.pls. This is an exceptionally misleading convention. Even though Oracle Development also follows similar 8 character convention for PL/SQL packages, it does not mean this is the best practice. File which stores an object must have full object name as part of the file name. You may want to add suffixes to, say, LDT files to tell LDTs for lookups from LDTs for profile options. Hermes provides default file naming convention for most objects you need to create during Oracle eBusiness Implementation.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>BPEL - False Error</title>
<pubDate>Sun, 12 Aug 2007 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/bpel__false_error/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/bpel__false_error/</guid>
<description>

&lt;p&gt;The other day I had to design a BPEL process to interface data into Oracle eBusiness Suite. I built the validation logic via a PL/SQL procedure and expected to use Oracle Applications adapter to call it from the BPEL process. Everything went fine except the output variable from the invocation process did not seem to be populated.&lt;/p&gt;
&lt;p&gt;Using the transformation node I dragged the return parameter to a local variable which produced the following code:&lt;br/&gt;&amp;lt;ns1:result&amp;gt; &amp;lt;xsl:value-of select=&amp;rdquo;/db:OutputParameters/db:X_RETURN_STATUS&amp;rdquo;/&amp;gt; &amp;lt;/ns1:result&amp;gt;&lt;br/&gt;and it did not work.&lt;/p&gt;
&lt;p&gt;I verified the output variable and it did have the data populated. To my dismay, the namespace for X_RETURN_STATUS note was reset to &amp;ldquo;&amp;rdquo;. This was the reason why the generated code did not work. The obvious fix was&lt;br/&gt;&amp;lt;ns1:result&amp;gt; &amp;lt;xsl:value-of select=&amp;rdquo;/db:OutputParameters/X_RETURN_STATUS&amp;rdquo;/&amp;gt; &amp;lt;/ns1:result&amp;gt;&lt;br/&gt;which caused, however, an error in the XSL transformation since &amp;ldquo;db&amp;rdquo; schema did not assume a namespace&amp;rsquo;less node. Maybe this is a bug in Oracle BPEL 10.3.1.0 engine, but this was the solution.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

<item>
<title>New Dog, Old Tricks</title>
<pubDate>Wed, 1 Aug 2007 00:00:00 GMT</pubDate>
<link>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/new_dog_old_tricks/</link>
<guid>http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/i/new_dog_old_tricks/</guid>
<description>

&lt;p&gt;11.5.10 CU1 patch introduced personalization for professional forms for Oracle eBusiness Suite. Personalization avoids changes to CUSTOM.pll to enable new menu items, add event handlers etc. Since most of the actions which can be done via CUSTOM.pll can now be done via personalization, it may be seen as a fall back approach to introduce changes to professional forms. But it is not always the case.&lt;/p&gt;
&lt;p&gt;We had a task to execute a custom action when a sub-line on a Service Contract is terminated. The first solution was, definitely, to create personalization on WHEN-BUTTON-PRESSED event for the Terminate button. And it did not work. After some investigation we learned that this button did not trigger the above mentioned event. It means, forms personalization is not the solution in this case. No changes to CUSTOM.pll can help rectify the situation either.&lt;br/&gt;The solution was in &amp;lsquo;old&amp;rsquo; technologies. Oracle Contracts declared an event when a contract line is terminated. So, we defined an independent condition which listens to this event and executes the desired custom logic.&lt;/p&gt;
&lt;p&gt;The lesson learn&amp;rsquo;t was - new technology, such as personalization, while it can help with many common tasks, does not necessarily make previous technology obsolete. This is something a designer should always keep in mind.&lt;/p&gt;
</description>
<category domain="http://www.claremont.co.uk/claremont/about_us/articles/claremont_blog/">Claremont Blog</category>
</item>

</channel>
</rss>