<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>openbravo &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/openbravo/</link>
	<description>Feed of posts on WordPress.com tagged "openbravo"</description>
	<pubDate>Thu, 26 Nov 2009 06:04:37 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Opening up to Open Source]]></title>
<link>http://tabulacrypticum.wordpress.com/2009/11/19/opening-up-to-open-source/</link>
<pubDate>Thu, 19 Nov 2009 21:16:41 +0000</pubDate>
<dc:creator>The Crypticum Keeper</dc:creator>
<guid>http://tabulacrypticum.wordpress.com/2009/11/19/opening-up-to-open-source/</guid>
<description><![CDATA[It&#8217;s funny the turns Life takes. I started programming in the eartly 1980s, on Timex Sinclair,]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>It&#8217;s funny the turns Life takes.</p>
<p>I started programming in the eartly 1980s, on <a href="http://en.wikipedia.org/wiki/Timex_Sinclair_1000">Timex Sinclair</a>, <a href="http://en.wikipedia.org/wiki/Commodore_64">Commodore 64</a> and <a href="http://en.wikipedia.org/wiki/TRS-80">TRS-80</a> computers in short order.  In those wild days when high-level languages were really coming into their own, free and open source software seemed more readily available than retail equivalents.  Hobbyist magazines, online bulletin boards and even the fledgling internet (pre WWW) were stuffed with code just waiting for eager learners like to me to take and tweak.  There wasn&#8217;t much in the way of formal free and open source protocol at the time&#8211; that evolved soon enough though.</p>
<p>But as I evolved myself, from hobbyist to ad hoc developer for various employers, I found myself drawn in deeper and deeper to the closed source world.  I discovered I had a liking and knack for Visual Basic and thus fell into the Microsoft development vortex.</p>
<p>It&#8217;s a seductive and powerful sucker, too.  It was all too easy to be &#8220;bought off&#8221; by events with (<em>ironically</em>) free training, free food and even giveaways of free software.  I ultimately joined a Microsoft program that dumped thousands of dollars of tools in my lap for an embarrassingly small outlay.  Resistance was futile.</p>
<p>Yep, I was assimilated.</p>
<p><!--more--></p>
<p>Flash forward to 2005 when Nokia hired me to do data mining/management for factory quality assurance.  At first it was the usual: Microsoft SQL Server, the Office suite, VB.NET and even Oracle.  The only real challenge I faced at the time was ramping up SQL skills to an enterprise level.</p>
<p>Then, as <a href="http://tabulacrypticum.wordpress.com/2009/07/29/why-i-love-nokias-internet-tablets/">I&#8217;ve mentioned in previous articles</a>, the <a href="http://en.wikipedia.org/wiki/Nokia_770">Nokia 770 internet tablet</a> burst into my life.</p>
<p>At first it was an utterly alien object, this Linux-driven refugee from an old Star Trek show.  I only knew it mobilized the Internet like nothing else at the time&#8230; and <a href="http://tabulacrypticum.wordpress.com/2009/09/14/mid-use-case-mobile-auditing-and-inspection/">I wanted to put it to work</a>.</p>
<p>I eventually took on a new role as quality engineer for certain Nokia products and that included the 770 and then the N800, which I helped launch.  Supporting the tablets meant getting acquainted with something I had marvelled at from afar but never touched until then:</p>
<p><strong>Linux.</strong></p>
<p>At first I had to perform all device flashing from a Linux command line.  A helpful colleague introduced me to Ubuntu and after acquiring a laptop for the work I dug in.  Just not too deeply&#8211; I was still using Windows tools for the bulk of my labors so I didn&#8217;t really have time to invest in becoming a Linux guru&#8230; although the desire was certainly there.</p>
<p>And now a few years and turns later, I find myself in another role where the old trusted tools need not apply.  I haven&#8217;t even coded in VB for over a year!  Couple that with my current employer&#8217;s strong desire to save money and wham!  I&#8217;m back in the open source world.</p>
<p>Which is fine because I&#8217;m embarrassed that after a few years embedded in the Maemo culture I&#8217;ve barely picked up anything.  I want to do more application testing and even some development but I still lack the foundation.</p>
<p>So I&#8217;m excited by the opportunity I have in my employment to investigate a process workflow solution (<em><a href="http://tabulacrypticum.wordpress.com/2009/11/22/processmaker-workflows-from-open-source/">more on that in another article</a></em>) that&#8217;s completely open source and takes full advantage of the open source ecosystem (MySQL, Apache, <a href="http://en.wikipedia.org/wiki/Openbravo">OpenBravo</a>, <a href="http://en.wikipedia.org/wiki/KnowledgeTree">Knowledgetree</a>, <a href="http://en.wikipedia.org/wiki/Zimbra">Zimbra</a>).  This is my chance to pull free of the Microsoft vortex, at least a little bit, and gain some proficiency in what I think will ultimately become the status quo.</p>
<p>I&#8217;m ready now to get into Qt&#8230; Python&#8230; and whatever else looks useful.  <a href="http://talk.maemo.org/showthread.php?t=34517&#38;highlight=windows">How-To posts like those at talk.maemo.org showing how to get Windows developers onto Maemo devices</a> are just adding irresistable fuel to the fire.</p>
<p>Hello (open source) World, here I (finally) come!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Ubiquity command for searching in Openbravo's wiki]]></title>
<link>http://katratxo.wordpress.com/2009/11/19/obs-ubiquity-command/</link>
<pubDate>Thu, 19 Nov 2009 17:34:13 +0000</pubDate>
<dc:creator>katratxo</dc:creator>
<guid>http://katratxo.wordpress.com/2009/11/19/obs-ubiquity-command/</guid>
<description><![CDATA[If you are a command-liner (like me) you should take a look the Ubiquity extension for Firefox. Don’]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>If you are a command-liner (like me) you should take a look the <a href="https://mozillalabs.com/ubiquity/">Ubiquity</a> extension for <a href="http://www.mozilla.com/firefox">Firefox</a>.</p>
<blockquote><p><strong>Don’t just surf the web — command it!</strong></p>
<p>Ubiquity is a time-saving Firefox extension that simplifies common web activities by letting you give commands to Firefox&#8230;</p></blockquote>
<p>Ubiquity extension provides an API that allows you create your own commands. I took a moment and created a command to search some term in the wiki: <strong>obs</strong>.</p>
<p>You can see it in action:<br />
<span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/acVpiVREvQQ&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/acVpiVREvQQ&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p>You can grab the command&#8217;s code from here:<br />
<a href="http://bitbucket.org/iperdomo/labs/raw/tip/ubiquity/obs.js">http://bitbucket.org/iperdomo/labs/raw/tip/ubiquity/obs.js</a></p>
<p>I hope it saves you some time.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ScrapBook]]></title>
<link>http://galderromo.wordpress.com/2009/11/19/scrapbook/</link>
<pubDate>Thu, 19 Nov 2009 00:36:05 +0000</pubDate>
<dc:creator>galderromo</dc:creator>
<guid>http://galderromo.wordpress.com/2009/11/19/scrapbook/</guid>
<description><![CDATA[I would like to talk about a very useful tool I have just find out: ScrapBook. ScrapBook is a Mozill]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I would like to talk about a very useful tool I have just find out: <a href="https://addons.mozilla.org/en-US/firefox/addon/427">ScrapBook</a>.</p>
<p>ScrapBook is a <a href="http://www.mozilla.com/en-US/firefox/upgrade.html">Mozilla Firefox</a> add-on to save web pages and have a look at them later offline. It is really useful when your Internet connectivity is very bad or slow.</p>
<p>It saves web pages, single or multiple. I mean, not just a single web page but all related links in the page you are saving. You can decide depth. You can later on highlight some text, add a sticky comment, remove some content you do not want to save from a page, etc. It also includes folder and page management for &#8220;scraped&#8221; items, importation and exportation tools, size calculation features, etc.</p>
<p>A really interesting for those who have limited connectivity and need to check some documentation web pages frequently.</p>
<p>For example, I have the Openbravo wiki (http://wiki.openbravo.com) &#8220;scraped&#8221; on my laptop. It is amazingly useful. I get the information as if I would have the wiki on my localhost. Here you have a screenshot:</p>
<p><img src="http://galderromo.wordpress.com/files/2009/11/scrapbook.png" alt="Scrapbook" width="400" /></p>
<p>Do you have any similar interesting tools useful for Openbravo Community?</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Shipments Awaiting Invoice report]]></title>
<link>http://rafarodapalacios.wordpress.com/2009/11/17/shipments-awaiting-invoice-report/</link>
<pubDate>Tue, 17 Nov 2009 15:01:35 +0000</pubDate>
<dc:creator>Rafa Roda Palacios</dc:creator>
<guid>http://rafarodapalacios.wordpress.com/2009/11/17/shipments-awaiting-invoice-report/</guid>
<description><![CDATA[Mike is a bit stressed. Sarah, the accountant, just e-mailed him announcing that the company has inv]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Mike is a bit stressed. Sarah, the accountant, just e-mailed him announcing that the company has invoiced 6% less than usual while orders remained stable. Were these orders properly shipped? Mike is 100% sure that last month he shipped the regular quantity of goods. Well, he is the warehouse manager, he is in charge of shipping what customers order, but how can he know if these shipments have been properly invoiced? &#8220;Actually, that&#8217;s not my job.&#8221;, he thinks. Sarah thinks exactly the same; she ensures that customers are invoiced but doesn&#8217;t have a clue which goods have been shipped or how.</p>
<p>Do they perhaps need a report that identifies the shipments not yet invoiced? How lucky they are: Openbravo ERP has a <a href="http://forge.openbravo.com/projects/shipmentawaitinginvoice" target="_blank">Shipment Awaiting Invoice report</a> module.</p>
<p><strong>Functionality</strong></p>
<p><a href="http://forge.openbravo.com/plugins/mwiki/index.php/Shipmentawaitinginvoice/Specifications" target="_blank">Shipments Awaiting Invoice report</a> aims to answer the following business question: if we are receiving a regular quantity of orders for regular amounts, why are we collecting less money?</p>
<ul>
<li>Is there a problem with the shipments?</li>
<li>Or are the goods correctly shipped, but these shipments are not properly invoiced?</li>
</ul>
<p>Grouped by business partners and shipments, the Shipments Awaiting Invoice report will display in HTML or PDF format:</p>
<ul>
<li>The shipment line product,</li>
<li>the ordered quantity,</li>
<li>the shipped quantity,</li>
<li>the quantity invoiced</li>
<li>and the pending amount to be invoiced (as the pending quantity to be invoiced multiplied by the product price).</li>
</ul>
<p><img class="aligncenter size-full wp-image-68" title="Report" src="http://rafarodapalacios.wordpress.com/files/2009/11/report2.png" alt="Report" width="700" height="236" /></p>
<p>This data can be filtered by:</p>
<ul>
<li>Shipment date</li>
<li>Business partner</li>
<li>Order document number (the complete or partial sales order document number in our Openbravo ERP system).</li>
<li>Shipment document number (the complete or partial goods shipment document number in our Openbravo ERP system).</li>
<li><a href="http://wiki.openbravo.com/wiki/Functional_Documentation/Sales_Management#Delivery_Terms" target="_blank">Delivery terms</a></li>
<li><a href="http://wiki.openbravo.com/wiki/Functional_Documentation/Sales_Management#Sales_Order_Attribute" target="_blank">Form of Payment</a></li>
<li><a href="http://wiki.openbravo.com/wiki/Functional_Documentation/Sales_Management#Sales_Order_Attribute" target="_blank">Payment Terms</a></li>
<li>Organization</li>
</ul>
<p><img class="aligncenter size-full wp-image-67" title="Filter Window" src="http://rafarodapalacios.wordpress.com/files/2009/11/filter-window1.png" alt="Filter Window" width="700" height="340" /></p>
<p><strong>Technical design</strong></p>
<p><a href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_To_Create_and_Package_a_Module" target="_blank">Packaged in a module</a>, this report is made of a <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_To_Create_a_Manual_Window" target="_blank">manual filter window</a> and a <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_to_develop_a_report" target="_blank">Jasper Report template</a>.</p>
<p>This simple development was tackled component by component:</p>
<ol>
<li><a href="http://forge.openbravo.com/plugins/mwiki/index.php/Shipmentawaitinginvoice/Development_Status#Iteration_1:_Module_Development" target="_blank">Definition of the module</a>,</li>
<li><a href="http://forge.openbravo.com/plugins/mwiki/index.php/Shipmentawaitinginvoice/Development_Status#Iteration_2:_Development_in_Application_Dictionary" target="_blank">development of the Application Dictionary components</a>,</li>
<li><a href="http://forge.openbravo.com/plugins/mwiki/index.php/Shipmentawaitinginvoice/Development_Status#Iteration_3:_UI_development_.28View.29" target="_blank">development of the filter and report user interfaces</a>,</li>
<li><a href="http://forge.openbravo.com/plugins/mwiki/index.php/Shipmentawaitinginvoice/Development_Status#Iteration_4:_Xsql_development_.28Model.29" target="_blank">development of the database query</a></li>
<li>and <a href="http://forge.openbravo.com/plugins/mwiki/index.php/Shipmentawaitinginvoice/Development_Status#Iteration_5:_Servlet_development_.28Controller.29" target="_blank">development of the controller servlet</a>.</li>
</ol>
<p>You can find the <a href="http://forge.openbravo.com/plugins/mwiki/index.php/Shipmentawaitinginvoice/Technical_Documentation" target="_blank">technical documentation</a> in the project&#8217;s Forge and the code versioned and publicly available in the <a href="https://code.openbravo.com/erp/mods/org.openbravo.reports.shipmentsawaitinginvoice/" target="_blank">Openbravo source code repositories</a>.</p>
<p><strong>Extension</strong></p>
<p>Sarah and Mike do not really need all the filter fields:</p>
<ul>
<li>Sarah does not need to know about <em>Shipments Document No.</em> or <em>Delivery Terms</em> filter fields</li>
<li>and Mike does not want to be confused by <em>Form of Payment</em> or <em>Payment Terms</em>.</li>
</ul>
<p>In order to achieve these functional requirements:</p>
<ul>
<li>Two <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_to_change_an_existing_report" target="_blank">new reports will extend the original</a> Shipments Awaiting Invoice report. We will call them, for instance, Shipments Awaiting Invoice for Accountants and Shipments Awaiting Invoice for Warehouse Managers.</li>
<li>Accountant and Warehouse Manager <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_to_define_users_roles_privileges_menus#Assign_a_Privilege_to_a_Role" target="_blank">roles will be granted access</a> to the Shipments Awaiting Invoice for Accountants report and to the Shipments Awaiting Invoice for Warehouse Managers report respectively.</li>
<li> The filter window of the Shipments Awaiting Invoice for Accountants report will hide <em>Shipments Document No.</em> and <em>Delivery Terms</em> filter fields.</li>
<li>The filter window of the Shipments Awaiting Invoice for Warehouse Managers report will hide <em>Form of Payment</em> and <em>Payment Terms</em> filter fields.</li>
</ul>
<p><strong>Summary</strong></p>
<p>Based on some business needs, we went through the <a href="http://wiki.openbravo.com/wiki/Development_Documentation_Style_Guide" target="_blank">functional and technical documentation</a> of a simple report module, pointing to the <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide" target="_blank">relevant sections to develop it</a> and presenting its <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_to_change_an_existing_report" target="_blank">extension possibilities</a>.</p>
<p>Feel free to <a href="http://wiki.openbravo.com/wiki/ERP/2.50/ModularityVideos/Install_Module" target="_blank">download and install</a> the <a href="http://forge.openbravo.com/projects/shipmentawaitinginvoice/module" target="_blank">Shipments Awaiting Invoice report module</a>. You are welcome to <a href="http://forge.openbravo.com/projects/shipmentawaitinginvoice/forum" target="_blank">provide feedback in the project&#8217;s forum</a> and <a href="https://issues.openbravo.com/set_project.php?project_id=17;20" target="_blank">log issues and feature requests in the issue tracker</a>.</p>
<p>Mike and Sarah are now in a better mood: once the shipments that were not invoiced were identified, they could take action on them and the company is again following its regular income path.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Critical change in Openbravo 2.50 public API]]></title>
<link>http://iciordia.wordpress.com/2009/11/17/critical-change-in-openbravo-2-50-public-api/</link>
<pubDate>Tue, 17 Nov 2009 11:44:19 +0000</pubDate>
<dc:creator>Ismael Ciordia</dc:creator>
<guid>http://iciordia.wordpress.com/2009/11/17/critical-change-in-openbravo-2-50-public-api/</guid>
<description><![CDATA[There has been a critical change in Openbravo 2.50 public API to be released in MP9 (November 30th, ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div><span style="font-family:Arial;font-size:x-small;">There has been a critical change in Openbravo 2.50  public API to be released in MP9 (November 30th, 2009). DAL implementation of  columns referenced as Number in the Aplication Dictionary are mapped now to  BigDecimal intead of Float. Getters and Setters for those columns are no longer  using Float data type but BigDecimal. For example, instead of</span></div>
<div><span style="font-family:Arial;font-size:x-small;"><br />
<span style="font-family:Courier New;"> java.lang.Float  org.openbravo.model.common.currency.ConversionRate.getDivideRateBy()</span></span></div>
<div><span style="font-family:Arial;font-size:x-small;"><br />
now it is implemented as</span></div>
<div><span style="font-family:Arial;font-size:x-small;"><br />
<span style="font-family:Courier New;"> java.math.BigDecimal  org.openbravo.model.common.currency.ConversionRate.getDivideRateBy()</span></span></div>
<div><span style="font-family:Arial;font-size:x-small;"><span style="font-family:Courier New;"><br />
</span></span></div>
<div><span style="font-family:Arial;font-size:x-small;">Main reason for this change is that original API  (using Float) was wrong: arithmetic operations with Float properties might  result in wrong results since java can not represent float-point  precisely</span></div>
<div><span style="font-family:Arial;font-size:x-small;"><br />
</span></div>
<div><span style="font-family:Arial;font-size:x-small;">As a result, modules and customizations using DAL  getters or setters of columns with reference Number will need to be fixed before  updating your instances to MP9. The fix is quite simple: just replace the Float  method (in getters) or the Float parameter (in setters) by a BigDecimal  one.</span></div>
<div><span style="font-family:Arial;font-size:x-small;"><br />
</span></div>
<div><span style="font-family:Arial;font-size:x-small;">By November 15th 2009, from almost 100 published  modules there are only three affected by this API change:<br />
</span>
<p>&#160;</p>
<ul>
<li><span style="font-family:Arial;font-size:x-small;">Invoice Register  Book</span></li>
<li><span style="font-family:Arial;font-size:x-small;">POS Sync Webservice</span></li>
<li><span style="font-family:Arial;font-size:x-small;">IDL</span></li>
<li><span style="font-family:Arial;font-size:x-small;">347 report</span></li>
</ul>
</div>
<div><span style="font-family:Arial;font-size:x-small;">The four of them will be fixed by Openbravo team  and a new versions including that fix will be published at the same time MP9 is  published, so updates applied from Central Repository -using scan for updates in  Openbravo Module Management window- will be transparently applied without  errors. Openbravo team will continuously monitor new published modules during  the next months to avoid an instance running MP9 or higher to use a module using  old API. We will keep all of you updated on our findings.</span></div>
<div><span style="font-family:Arial;font-size:x-small;"><br />
</span></div>
<div><span style="font-family:Arial;font-size:x-small;">You have to take care about your not published  modules. It is very simple to check if your module is broken because of this  change: update your development instance to current pi repository -or to MP9  after publishing- and build the system: the error will be clearly raised by your  system.</span></div>
<div><span style="font-family:Arial;font-size:x-small;"><br />
</span></div>
<div><span style="font-family:Arial;font-size:x-small;">Openbravo is strongly commited to keep its public  API stable within major versions but there is no point to keep stable something  if it is wrong. We have tried to minimize the pain by temporarily creating  duplicated getters and setters using both data types (Float and BigDecimal) and  setting the Float ones as deprecated to allow a gradual fix of the problem. But  it is not possible to have two methods with identical signature and different  return type and other approaches would have lead into a more painful solution of  the problem.</span></div>
<div><span style="font-family:Arial;font-size:x-small;"><br />
</span></div>
<div><span style="font-family:Arial;font-size:x-small;">I apologize for any inconvenience it might cause. This alert has been  announced in Openbravo Developers forum:</span></div>
<div><span style="font-family:Arial;font-size:x-small;"><br />
</span></div>
<div><span style="font-family:Arial;font-size:x-small;"><a href="http://forge.openbravo.com/plugins/espforum/view.php?group_id=100&#38;forumid=549512&#38;topicid=7005952">http://forge.openbravo.com/plugins/espforum/view.php?group_id=100&#38;forumid=549512&#38;topicid=7005952</a></span></div>
<div><span style="font-family:Arial;font-size:x-small;"><br />
</span></div>
<div><span style="font-family:Arial;font-size:x-small;">Please monitor that thread to keep updated on the  issue.</span></div>
<div><span style="font-family:Arial;font-size:x-small;">Thanks,</span></div>
<div><span style="font-family:Arial;font-size:x-small;">Ismael</span></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The perfect fit]]></title>
<link>http://openbravoqa.wordpress.com/2009/11/16/the-perfect-fit/</link>
<pubDate>Mon, 16 Nov 2009 14:28:48 +0000</pubDate>
<dc:creator>obqateam</dc:creator>
<guid>http://openbravoqa.wordpress.com/2009/11/16/the-perfect-fit/</guid>
<description><![CDATA[Very often, people is using the term &#8220;QA&#8221; for grouping so many disciplines that the very]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Very often, people is using the term &#8220;QA&#8221; for grouping so many disciplines that the very concept of <a href="http://en.wikipedia.org/wiki/Quality_assurance" target="_blank">Quality Assurance</a> has become something difficult to describe.</p>
<p>In a <a href="http://openbravoqa.wordpress.com/2009/11/06/next-steps-in-quality-assurance/" target="_blank">previous post</a>, we were trying to describe what Quality is. If the concept of Quality is so diffuse, it is not surprising that the discipline that must assure it was also diffuse.</p>
<h3>Quality Assurance or Quality Control?</h3>
<p>No, we are not going to start a new QA vs QC debate here. We will try just to put some borderline that works with our objectives of improving Quality.</p>
<p>Software Development is a complex process. Generally speaking, you could say that is like if process of building a house started by designing and making plaster panels, cutting down the trees to make the wood you will need, and so on. And, as an industry, it is not mature enough to be fully reliable. Would you buy a car with a sticker in the steering wheel saying:</p>
<div class="wp-caption alignright" style="width: 244px"><img class=" " title="Enzo Ferrari" src="http://upload.wikimedia.org/wikipedia/commons/2/2b/Scarsdale_Concours_Enzo_2.jpg" alt="Enzo Ferrari car" width="234" height="176" /><p class="wp-caption-text">An Enzo Ferrari (source Wikipedia)</p></div>
<p style="padding-left:30px;"><em>ACarForYou ltd. do not represent or warrant to you that:</em></p>
<p style="padding-left:30px;"><em>(a) your use of this car will meet your <strong>requirements</strong>,<br />
(b) your use of this car will be uninterrupted, timely, <strong>secure </strong>or free from accidents,</em><br />
<em> (c) any information obtained by you as a result of your use of this car will be <strong>accurate </strong>or reliable, and<br />
(d) that <strong>defects </strong>in the components provided to you as part of this car will be corrected.</em></p>
<p>However, Software industry makes millions while including a text like that in the <a href="http://en.wikipedia.org/wiki/Software_license_agreement" target="_blank">EULA</a>s.</p>
<p>A well established discipline in other industries like Quality Assurance is, in Software, a matter of opinion. But there are some basics to work with.</p>
<p>Nowadays, every development task has some kind of inherent quality process. There are spell checkers, autocompletion abilities, and other useful stuff. Even a basic task like compiling will take care of a number of issues.</p>
<p>A well-trained developer is also able to run the code (s)he just wrote to test a kind of flows and check that after fixing the compilation-time errors, the code actually <em>do anything</em>.</p>
<p>We cannot say this tasks do nothing for improving code&#8217;s quality, although we will say it is not Quality Assurance nor Quality Control. It is part of Coding Phase. Does it mean that not Quality Assurance exist during Coding Phase? Of course not.</p>
<p>Nice things as <a href="http://en.wikipedia.org/wiki/Software_peer_review" target="_blank">Peer Reviews</a> happens while coding. If you see a programmer using <a href="http://en.wikipedia.org/wiki/Vim_%28text_editor%29" target="_blank">Vim</a> for developing <a href="http://en.wikipedia.org/wiki/Java_%28software_platform%29" target="_blank">Java</a> (<a href="http://java.sun.com/" target="_blank">get it</a>) code, probably you would suggest switching to <a href="http://en.wikipedia.org/wiki/Eclipse_%28software%29" target="_blank">Eclipse</a> (<a href="http://www.eclipse.org/" target="_blank">get it</a>) or other IDE.</p>
<p>We, as a Quality Assurance department, believe that no specific task adds quality <em>per se</em>. Peer reviews are not suitable for most of the projects. They are expensive since most valuable resources (experienced developers) are the bottleneck. And may be Vim is just what meet developer&#8217;s requirements about an IDE, so installing and fine-tuning Eclipse is basically a cool way to waste time.</p>
<p>So, the major goal is to find the <em>perfect fit</em>. A set of processes, tools and disciplines that maximize the quality of the developed code.</p>
<p>Continuing this set of posts we will go deep into some processes, like Black Box Testing (including automation), Unit Testing and User Acceptance Testing.</p>
<p>We will analyze some tools that helps us, like Defect Tracking System, Test Cases Manager and Shared Virtual Machines.</p>
<p>We expect also to cover disciplines such as Agile Development, Professional Testing and Project Management among others.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Orders Awaiting Delivery report]]></title>
<link>http://rafarodapalacios.wordpress.com/2009/11/16/orders-awaiting-delivery-report/</link>
<pubDate>Mon, 16 Nov 2009 06:55:14 +0000</pubDate>
<dc:creator>Rafa Roda Palacios</dc:creator>
<guid>http://rafarodapalacios.wordpress.com/2009/11/16/orders-awaiting-delivery-report/</guid>
<description><![CDATA[Ring, ring, &#8230; - &#8220;Hello?&#8221; - &#8220;Hi Matt, it&#8217;s Tim.&#8221; - &#8220;Hi Tim,]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Ring, ring, &#8230;<br />
- &#8220;Hello?&#8221;<br />
- &#8220;Hi Matt, it&#8217;s Tim.&#8221;<br />
- &#8220;Hi Tim, how&#8217;s the family?&#8221;<br />
- &#8220;Well, but what about the status of my order 89276523D?&#8221;<br />
- &#8220;Uhmmm&#8230;, wait a second please.&#8221;<br />
- &#8220;Sure.&#8221;<br />
15 minutes later&#8230;<br />
- &#8220;Tim? Are you still there?&#8221;<br />
- &#8220;Yes! I am!&#8221;<br />
- &#8220;OK, so I talked to the warehouse guy and he told me that there has been an inventory shortage. So I talked to the production guy and he told me that he did not receive the raw materials. Then I talked to the purchase guy and &#8230;&#8221;<br />
- &#8220;Don&#8217;t tell me stories Matt&#8230; My components haven&#8217;t been shipped yet, right?&#8221;<br />
- &#8220;No, Sir&#8230;&#8221;<br />
- &#8220;Grrrr! Bye!&#8221;<br />
- &#8220;Is this a definitive goodbye?&#8221;<br />
Tu, tu, tu, &#8230;</p>
<p>Did you find it funny? Tim, the customer, did not&#8230; neither did Matt, the sales representative. Poor Matt, how easy would his life be if he could know, right away, the shipping status of any sales order. And how much easier if customers could directly check the status of their orders by themselves, without having to phone him. Fortunately, Openbravo ERP is here and the <a href="http://forge.openbravo.com/projects/ordersawaitingdlivery" target="_blank">Orders Awaiting Delivery report</a> module is what Matt needs.</p>
<p><strong>Functionality</strong></p>
<p><a href="http://forge.openbravo.com/plugins/mwiki/index.php/Ordersawaitingdlivery/Specifications" target="_blank">Orders Awaiting Delivery report</a> aims to provide a meaningful piece of information to sales representatives and managers:</p>
<ul>
<li>What is the status of this sales order?</li>
<li>Have all the order lines&#8217; products been shipped yet or not?</li>
<li>If not, do we have enough stock to proceed with the shipment?</li>
</ul>
<p>And this information can afterwards lead to more questions:</p>
<ul>
<li>If there was enough stock, why have the order lines&#8217; products not been shipped yet? Is there any problem with our shipping company?</li>
<li>If there was no stock, why are we in inventory shortage? Problems in our production chain or problems with our suppliers?</li>
</ul>
<p>Grouped by business partners and orders, the Orders Awaiting Delivery report will display in HTML or PDF format:</p>
<ul>
<li>The order line product,</li>
<li>the ordered quantity,</li>
<li>the pending quantity to be shipped (as the ordered quantity minus the already shipped quantity)</li>
<li>and the quantity available in stock.</li>
</ul>
<p><img class="aligncenter size-full wp-image-53" title="Report" src="http://rafarodapalacios.wordpress.com/files/2009/11/report1.png" alt="Report" width="699" height="325" /></p>
<p>This data can be filtered by:</p>
<ul>
<li>Order date</li>
<li>Business partner</li>
<li><a href="http://wiki.openbravo.com/wiki/Functional_Documentation/Sales_Management#Delivery_Terms" target="_blank">Delivery terms</a></li>
<li>Order document number (the complete or partial sales order document number in our Openbravo ERP system).</li>
<li>Order reference (the complete or partial purchase order document number in the customer&#8217;s information system).</li>
<li>Organization</li>
</ul>
<p><img class="aligncenter size-full wp-image-54" title="Filter Window" src="http://rafarodapalacios.wordpress.com/files/2009/11/filter-window.png" alt="Filter Window" width="700" height="342" /></p>
<p><strong>Technical design</strong></p>
<p><a href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_To_Create_and_Package_a_Module" target="_blank">Packaged in a module</a>, this report is made of a <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_To_Create_a_Manual_Window" target="_blank">manual filter window</a> and a <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_to_develop_a_report" target="_blank">Jasper Report template</a>.</p>
<p>The 3 steps of this simple development were:</p>
<ol>
<li>The <a href="http://forge.openbravo.com/plugins/mwiki/index.php/Ordersawaitingdlivery/Development_Status#Iteration_1:_Module_definition" target="_blank">definition of the module</a>,</li>
<li>the <a href="http://forge.openbravo.com/plugins/mwiki/index.php/Ordersawaitingdlivery/Development_Status#Iteration_2:_Orders_Awaiting_Delivery_filter_window" target="_blank">development of the filter window</a></li>
<li>and the <a href="http://forge.openbravo.com/plugins/mwiki/index.php/Ordersawaitingdlivery/Development_Status#Iteration_3:_Orders_Awaiting_Delivery_Report" target="_blank">design of the report template</a>.</li>
</ol>
<p>You can find the <a href="http://forge.openbravo.com/plugins/mwiki/index.php/Ordersawaitingdlivery/Technical_Documentation" target="_blank">technical documentation</a> in the project&#8217;s Forge and the code versioned and publicly available in the <a href="https://code.openbravo.com/erp/mods/org.openbravo.reports.ordersawaitingdelivery/" target="_blank">Openbravo source code repositories</a>.</p>
<p><strong>Extension</strong></p>
<p>This report may not fill all Matt&#8217;s needs, so let&#8217;s extend it.</p>
<p>From a functional side, Matt wants:</p>
<ul>
<li>That customers can directly access Orders Awaiting Delivery report in his Openbravo ERP system, so they do not have to call him for the information.</li>
<li>The customers have only access to their orders, avoiding that they see others&#8217; data.</li>
</ul>
<p>In order to achieve these functional requirements:</p>
<ul>
<li>A <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_to_change_an_existing_report" target="_blank">new report will extend the original</a> Orders Awaiting Delivery report. We will call it, for instance, Orders Awaiting Delivery for Customers.</li>
<li>A <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_to_define_users_roles_privileges_menus#Create_a_Role" target="_blank">new role will be created</a>, having only access to the new Orders Awaiting Delivery for Customers report.</li>
<li>A <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_to_define_users_roles_privileges_menus#Create_a_User" target="_blank">new user will be created</a>. This user is associated to a business partner.</li>
<li> The filter window for the Orders Awaiting Delivery for Customers report will only display order date, order document number and order reference filter fields.</li>
<li>Business partner filter field will not be displayed but will be defaulted. The default value will be the associated business partner of the logged user.</li>
</ul>
<p><strong>Summary</strong></p>
<p>Based on some business needs, we went through the <a href="http://wiki.openbravo.com/wiki/Development_Documentation_Style_Guide" target="_blank">functional and technical documentation</a> of a simple report module, pointing to the <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide" target="_blank">relevant sections to develop it</a> and presenting its <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_to_change_an_existing_report" target="_blank">extension possibilities</a>.</p>
<p>Feel free to <a href="http://wiki.openbravo.com/wiki/ERP/2.50/ModularityVideos/Install_Module" target="_blank">download and install</a> the <a href="http://forge.openbravo.com/projects/ordersawaitingdlivery/module" target="_blank">Orders Awaiting Delivery report module</a>. You are welcome to <a href="http://forge.openbravo.com/projects/ordersawaitingdlivery/forum" target="_blank">provide feedback in the project&#8217;s forum</a> and <a href="https://issues.openbravo.com/set_project.php?project_id=17;20" target="_blank">log issues and feature requests in the issue tracker</a>.</p>
<p>Ring, ring, &#8230;<br />
- &#8220;Hello?&#8221;<br />
- &#8220;Hi Matt, it&#8217;s Tim.&#8221;<br />
- &#8220;Oh, Tim, it&#8217;s been a long time&#8230; Did you receive the components?&#8221;<br />
- &#8220;Yes, I did. No problem. How&#8217;s the family?&#8221;<br />
- &#8220;Uhmmm&#8230; Well, thanks.&#8221;<br />
- &#8220;I&#8217;m just phoning you to tell you that your Orders Awaiting Delivery for Customers report just rocks.&#8221;<br />
- &#8220;I&#8217;m glad to hear that.&#8221;<br />
- &#8220;Bye! Take care!&#8221;<br />
- &#8220;You too, bye!&#8221;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Next steps in Quality Assurance]]></title>
<link>http://openbravoqa.wordpress.com/2009/11/06/next-steps-in-quality-assurance/</link>
<pubDate>Fri, 06 Nov 2009 18:17:50 +0000</pubDate>
<dc:creator>obqateam</dc:creator>
<guid>http://openbravoqa.wordpress.com/2009/11/06/next-steps-in-quality-assurance/</guid>
<description><![CDATA[In Software Development, quality is a must. Every company, from start-ups to market leaders, seek fo]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In Software Development, quality is a must. Every company, from start-ups to market leaders, seek for deliver quality. But the real question is, <em>what quality means?</em></p>
<h3>Quality? What Quality?</h3>
<p>According <a href="http://www.iso.org" target="_blank">ISO</a>, quality is:</p>
<p style="padding-left:30px;"><em>&#8220;The totality of features and characteristics of a product or service that bear on its ability to satisfy stated or implied needs&#8221;</em></p>
<p>And it is a very comfortable definition. Only problem is that cannot be used directly to measure the quality level of a working piece of software.</p>
<p>So, some extra work is required. First, I will remove the &#8220;or service&#8221; part, since I would like to talk about Development.</p>
<h3>Business, Process and Product Requirements</h3>
<p>For each of us dealing with Software Development, it will sound familiar to say that &#8220;stated or implied needs&#8221; is an abstract way of naming the <a href="http://en.wikipedia.org/wiki/Requirement" target="_blank">Requirements</a>.</p>
<p>So, simplifying the ISO statement, we could say that quality is:</p>
<p style="padding-left:30px;"><em>&#8220;The totality of features and characteristics of a product <span style="text-decoration:line-through;">or service</span> that bear on its ability to satisfy <span style="text-decoration:line-through;">stated or implied needs</span> Requirements&#8221;</em></p>
<p>Now is crystal clear, isn&#8217;t it? (If your answer is &#8216;yes&#8217;, please stop reading this post)</p>
<h3>Improvement areas</h3>
<p>There are several classifications for the features and characteristic of a product, but I like the <a href="http://en.wikipedia.org/wiki/ISO_9126" target="_blank">ISO 9126:1991</a> way:</p>
<ul>
<li>Functionality: <em>A set of attributes that bear on the existence of a set of functions and their specified properties. The functions are those that satisfy stated or implied needs. (ISO 9126: 1991, 4.1)</em></li>
</ul>
<ul>
<li> Reliability: <em>A set of attributes that bear on the capability of software to maintain its level of performance under stated conditions for a stated period of time. (ISO 9126: 1991, 4.2) </em></li>
</ul>
<ul>
<li> Usability: <em>A set of attributes that bear on the effort needed for use, and on the individual assessment of such use, by a stated or implied set of users. (ISO 9126: 1991, 4.3)</em></li>
</ul>
<ul>
<li> Efficiency: <em>A set of attributes that bear on the relationship between the level of performance of the software and the amount of resources used, under stated conditions. (ISO 9126: 1991, 4.4) </em></li>
</ul>
<ul>
<li> Maintainability: <em>A set of attributes that bear on the effort needed to make specified modifications. (ISO 9126: 1991, 4.5) </em></li>
</ul>
<ul>
<li> Portability: <em>A set of attributes that bear on the ability of software to be transferred from one environment to another. (ISO 9126: 1991, 4.6) </em></li>
</ul>
<h3>What is Quality all about?</h3>
<p>Drilling down into the definition of quality until something meaningful happened is far from easy. And the main issue about it is due to the fact that quality is a perception. One single attribute cannot define quality by itself. Deliverance of zero-bug software is a major objective but it cannot be isolated from the rest. A Java function doing nothing will accomplish the goal.</p>
<p>The idea then is to gather as much information from different sources, seeking for a comprehensive list of requirements to fulfill. And, after that, negotiating priorities according Company strategic goals will lead us to the next level.</p>
<p>In next posts we will start the process that (hopefully) will significantly improve current quality level</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ERP 2.50: experimenting with PostgreSQL 8.4 and OpenJDK 6]]></title>
<link>http://jpabloae.wordpress.com/2009/11/05/erp-2-50-experimenting-with-postgresql-8-4-and-openjdk-6/</link>
<pubDate>Thu, 05 Nov 2009 16:02:44 +0000</pubDate>
<dc:creator>jpabloae</dc:creator>
<guid>http://jpabloae.wordpress.com/2009/11/05/erp-2-50-experimenting-with-postgresql-8-4-and-openjdk-6/</guid>
<description><![CDATA[Currently Openbravo ERP 2.50 officially supports PostgreSQL 8.3 and Sun JDK 6. By the time when thes]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Currently Openbravo ERP 2.50 <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Openbravo_ERP_Installation#Software">officially supports</a> PostgreSQL 8.3 and Sun JDK 6. By the time when these versions were taken as our base, PostgreSQL 8.4 did not exist and OpenJDK 6 was an on-going project still not ready. One year later the situation is quite different:</p>
<ul>
<li>PostgreSQL 8.4.1 is the latest and greatest of the PostgreSQL releases.</li>
<li>OpenJDK 6 is completed and a very real alternative to Sun&#8217;s JDK.</li>
</ul>
<p>For those unfamiliar with OpenJDK, here&#8217;s a bit of history: on 2006 Sun decided to <a href="http://www.sun.com/software/opensource/java/project_overview.jsp">open their JDK</a> and license it under the <a href="http://www.gnu.org/licenses/gpl-2.0.html">GPL</a>. Some work was required for that, though: about 4% of the code was proprietary, dependent on 3rd parties who didn&#8217;t want to open those components. So the <a href="http://openjdk.java.net">OpenJDK project</a> started rewriting those parts and getting the rest ready. Now OpenJDK 6 has passed the <a title="Technology Compatibility Kit" href="http://en.wikipedia.org/wiki/Technology_Compatibility_Kit">Technology Compatibility Kit</a> tests and claims to be a fully compatible Java 6 implementation.</p>
<p>Using OpenJDK will allow us to have a 100% open source and free software stack. Also,  as most modern Linux distributions include it as the default JDK, setting up Openbravo ERP will be easier. For example Ubuntu ships OpenJDK as the default one and in the next <a href="https://wiki.ubuntu.com/LucidLynx">10.04 LTS</a> Sun&#8217;s JDK will be available in the <a href="http://www.ubuntu.com/community/ubuntustory/components">multiverse</a> repository or in none at all.</p>
<p>On the other hand supporting PostgreSQL 8.4 has the obvious benefits of enjoying the <a href="http://www.postgresql.org/docs/8.4/static/release-8-4.html">improvements</a> of this new major version.</p>
<p>So let&#8217;s play a bit with them to see how they behave with our latest release, <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Release_Notes/2.50MP8">Openbravo ERP 2.50MP8</a>.</p>
<h3>PostgreSQL 8.4</h3>
<p>I&#8217;ve run two tests using version 8.4.1:</p>
<ul>
<li>Full build of Openbravo ERP 2.50MP8 (<em>ant install.source</em>): no surprises, our code builds cleanly with this new major version. The build times are similar compared to PostgreSQL 8.3.8.</li>
<li>Functional test (smoke test): this is usually a bit more tricky. But good news! No problems at all, it passes all the smoke test cleanly! Nice.</li>
</ul>
<h3>OpenJDK 6</h3>
<p>Now the hard part. Let&#8217;s see how it goes:</p>
<ul>
<li>Full build of Openbravo ERP 2.50MP8 (<em>ant install.source</em>): ouch, it fails the first time when it minifies the JavaScript files using <a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a>. But no worries, it&#8217;s a <a href="https://bugs.launchpad.net/ubuntu/+source/openjdk-6/+bug/287035">known issue</a> that has a <a href="https://bugs.launchpad.net/ubuntu/+source/openjdk-6/+bug/255149">simple workaround</a>, acceptable for now. After deleting the conflictive file the build finishes successfully. So the first big test passed, this looks promising.</li>
<li>Functional test (smoke test): so I set up Tomcat to run with OpenJDK, start the smoke tests on Openbravo ERP 2.50MP8 and 100% successfully completed! Yes, all of them.</li>
</ul>
<p>Honestly, I&#8217;m quite impressed. I expected PostgreSQL 8.4 to work well, but I didn&#8217;t have as much faith on OpenJDK as my fellow <a href="http://gnuyoga.blogspot.com">Sree</a> had. Congratulations to the OpenJDK team, you&#8217;ve done a great job.</p>
<h3>Continuous Integration</h3>
<p>You want proofs of all this? We&#8217;ve set up continuous builds and functional tests of our bleeding edge ERP code. Have a look at the <a href="http://builds.openbravo.com/view/experimental/">experimental jobs </a>in our <a href="http://builds.openbravo.com">build farm</a>. This will help us detecting mismatches between our current stack and the new candidates.</p>
<p>The full builds will be run every 3 days and the smoke tests once per week. You can also check the trend and health of these builds.</p>
<h3>Conclusions</h3>
<p>My initial conclusions are clearly positive: the core of Openbravo ERP works well with PostgreSQL 8.4 and OpenJDK 6. It&#8217;s too early to say when we will officially support them, but this is an important milestone. The continuous builds and tests, as well as some manual QA and developer work will help us on taking the decision.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[RM updates: home page face-lift and automation]]></title>
<link>http://jpabloae.wordpress.com/2009/11/04/rm-updates-home-page-face-lift-and-automation/</link>
<pubDate>Wed, 04 Nov 2009 21:58:15 +0000</pubDate>
<dc:creator>jpabloae</dc:creator>
<guid>http://jpabloae.wordpress.com/2009/11/04/rm-updates-home-page-face-lift-and-automation/</guid>
<description><![CDATA[Continuing with our promised updates about what has been done in the Release Management team during ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Continuing with our <a href="http://jpabloae.wordpress.com/2009/10/15/rm-updates-continous-integration-ubuntu-javadoc-release-notes/">promised updates</a> about what has been done in the Release Management team during the last 2 weeks, other than the publication of the <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Release_Notes/2.50MP7">2.50MP7</a> and <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Release_Notes/2.50MP8">2.50MP8 </a>releases.</p>
<h3>Homepage face-lift</h3>
<p>We have given a face-lift to the <a href="http://wiki.openbravo.com/wiki/Release_Management">Release Management homepage</a>, with the following major changes:</p>
<ul>
<li>Release schedules and security have now a greater weight.</li>
<li>We have updated the our <a href="http://wiki.openbravo.com/wiki/Release_Management#What_keeps_us_busy">subprojects</a> (what keeps us busy).</li>
<li>The <a href="http://wiki.openbravo.com/wiki/Release_Management#Documentation">RM related documentation</a> has been organized into 4 sections.</li>
</ul>
<h3>Automation</h3>
<ul>
<li><a href="http://builds.openbravo.com/job/erp_devel_main-javadoc/">New job</a> to automatically create the API documentation (javadoc) for new maintenance packs.</li>
<li><a href="http://code.openbravo.com/tools/rm/releaser">Huge progress</a> towards achieving a total release automation.</li>
</ul>
<p>For a complete list of the on-going stories we&#8217;ve been working on, check the <em>Sprint 26</em> page of our <a href="https://spreadsheets.google.com/ccc?key=0AjMsaCphoKkzcFBXWkFTVDlKZzVGdDBuM1JuR2N3Rmc">Scrum spreadsheet</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Advanced Payment business flow automated]]></title>
<link>http://obdeving.wordpress.com/2009/11/02/advanced-payment-business-flow-automated/</link>
<pubDate>Mon, 02 Nov 2009 15:43:34 +0000</pubDate>
<dc:creator>apagola</dc:creator>
<guid>http://obdeving.wordpress.com/2009/11/02/advanced-payment-business-flow-automated/</guid>
<description><![CDATA[Openbravo has just released Advanced Payments Pack. This pack supports the management of advanced pa]]></description>
<content:encoded><![CDATA[Openbravo has just released Advanced Payments Pack. This pack supports the management of advanced pa]]></content:encoded>
</item>
<item>
<title><![CDATA[Tip: Mercurial authentication comfort]]></title>
<link>http://jpabloae.wordpress.com/2009/11/02/tip-mercurial-authentication-comfort/</link>
<pubDate>Mon, 02 Nov 2009 09:11:57 +0000</pubDate>
<dc:creator>jpabloae</dc:creator>
<guid>http://jpabloae.wordpress.com/2009/11/02/tip-mercurial-authentication-comfort/</guid>
<description><![CDATA[Mercurial 1.3 has a nice feature that makes our coding lives easier. You can define your authenticat]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Mercurial 1.3 has a nice feature that makes our coding lives easier. You can define your authentication credentials globally, so that it will remember your username, the password, or both in any repository cloned from <a href="http://code.openbravo.com">code.openbravo.com</a>. There&#8217;s therefore no need to define the credentials individually in every repository.</p>
<p>Example of the relevant section to be added to $HOME/.hgrc:</p>
<pre class="brush: xml;">
[auth]
ob.prefix = code.openbravo.com
ob.username = johndoe
ob.password = supersecret
</pre>
<p>If you only want it to remember the username, then remove the password line.</p>
<p>And if you still are using an older version (<em>hg version</em>), you can follow <a href="http://wiki.openbravo.com/wiki/Mercurial_Manual_for_Openbravo_Developers#Installation">these instructions</a> to update to 1.3.1.</p>
<p>For more information about this feature check the <a href="http://www.selenic.com/mercurial/hgrc.5.html">hgrc(5)</a> man page.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Inter-Company Documents Module ]]></title>
<link>http://obdeving.wordpress.com/2009/10/29/inter-company-documents-module/</link>
<pubDate>Thu, 29 Oct 2009 15:03:19 +0000</pubDate>
<dc:creator>apagola</dc:creator>
<guid>http://obdeving.wordpress.com/2009/10/29/inter-company-documents-module/</guid>
<description><![CDATA[Does your company perform sales &#8211; purchases between internal organizations? Do you need to cre]]></description>
<content:encoded><![CDATA[Does your company perform sales &#8211; purchases between internal organizations? Do you need to cre]]></content:encoded>
</item>
<item>
<title><![CDATA[Extending existing Procedures at Openbravo]]></title>
<link>http://obdeving.wordpress.com/2009/10/27/extending-existing-procedures-at-openbravo/</link>
<pubDate>Tue, 27 Oct 2009 15:37:34 +0000</pubDate>
<dc:creator>gorkaion</dc:creator>
<guid>http://obdeving.wordpress.com/2009/10/27/extending-existing-procedures-at-openbravo/</guid>
<description><![CDATA[Need to modify a core Procedure? Some times while we are developing a new functionality or customizi]]></description>
<content:encoded><![CDATA[Need to modify a core Procedure? Some times while we are developing a new functionality or customizi]]></content:encoded>
</item>
<item>
<title><![CDATA[Human Capital Management available for Openbravo ERP 2.50MP6!]]></title>
<link>http://obdeving.wordpress.com/2009/10/27/human-capital-management-available-for-openbravo-erp-2-50mp6/</link>
<pubDate>Tue, 27 Oct 2009 15:36:53 +0000</pubDate>
<dc:creator>apagola</dc:creator>
<guid>http://obdeving.wordpress.com/2009/10/27/human-capital-management-available-for-openbravo-erp-2-50mp6/</guid>
<description><![CDATA[Human Capital Management capabilities are now available in Openbravo ERP! Human Capital Management m]]></description>
<content:encoded><![CDATA[Human Capital Management capabilities are now available in Openbravo ERP! Human Capital Management m]]></content:encoded>
</item>
<item>
<title><![CDATA[mBravo: Openbravo + Android]]></title>
<link>http://an6roi6es.wordpress.com/2009/10/26/mbravo-openbravo-android/</link>
<pubDate>Mon, 26 Oct 2009 11:01:24 +0000</pubDate>
<dc:creator>androidess</dc:creator>
<guid>http://an6roi6es.wordpress.com/2009/10/26/mbravo-openbravo-android/</guid>
<description><![CDATA[mBravo es una aplicación que demuestra las capacidades de los dispositivos Android para conectarse a]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img src="http://www.theinit.com/mbravo/mb_logoredomdo96.png" alt=""><a href="http://bubiloop.com/android-tools-mBravo-Demo" target="_blank">mBravo</a> es una aplicación que <strong>demuestra las capacidades de los dispositivos Android para conectarse a los web-services REST del ERP Openbravo (v2.50)</strong>.</p>
<p>En este momento, es posible sacar una <strong>foto del código de barras de un producto</strong> (el código puede insertarse manualmente) y verificar si se encuentra dentro de los datos maestros del ERP.</p>
<p>Si lo está, <strong>se muestra información básica del producto, completada con el stock que dicho producto</strong> tiene en los almacenes (stock total).</p>
<p>Esta demo es una primera, rápida aproximación para mostrar cómo dispositivos con Google Android pueden comunicarse con <a href="http://www.openbravo.com/">Openbravo ERP</a> a través de las nuevas funcionalidades via web-services REST.</p>
<p>La aplicación puede descargarse desde el Android Market, y <strong>no es necesario disponer de una instalación de Openbravo</strong> para utilizarla, ya que inicialmente se encuentra configurada para conectarse a la <strong>demo online de Openbravo ERP</strong>.</p>
<p>Más información y ejemplos de uso preconfigurados en la página de <a href="http://www.theinit.com/mbravo">mBravo</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Expense Report for Employees or how to extend a Core report]]></title>
<link>http://obdeving.wordpress.com/2009/10/26/expense-report-for-employees-or-how-to-extend-a-core-report/</link>
<pubDate>Mon, 26 Oct 2009 08:58:10 +0000</pubDate>
<dc:creator>gorkaion</dc:creator>
<guid>http://obdeving.wordpress.com/2009/10/26/expense-report-for-employees-or-how-to-extend-a-core-report/</guid>
<description><![CDATA[Hi all, this is the first post of the Tips &amp; Tricks category. In the articles of this category w]]></description>
<content:encoded><![CDATA[Hi all, this is the first post of the Tips &amp; Tricks category. In the articles of this category w]]></content:encoded>
</item>
<item>
<title><![CDATA[Recorded Extension Module webinars available! ]]></title>
<link>http://iciordia.wordpress.com/2009/10/24/recorded-extension-module-webinars-available/</link>
<pubDate>Sat, 24 Oct 2009 09:01:44 +0000</pubDate>
<dc:creator>Ismael Ciordia</dc:creator>
<guid>http://iciordia.wordpress.com/2009/10/24/recorded-extension-module-webinars-available/</guid>
<description><![CDATA[Recorded &#8220;Extension Module&#8221; webinars and related resources are available in Developers G]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div>
<div>
<p>Recorded &#8220;Extension Module&#8221; webinars and related resources are available in <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Extension_Module_Demonstrations_Videos">Developers Guide</a> at Openbravo wiki. Next sessions will be published at the same location.</p>
<p>Do not miss the opportunity to learn how to develop your own Openbravo modules!</p>
</div>
</div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Verifying WAD windows before generating them (II)]]></title>
<link>http://alostale.wordpress.com/2009/10/20/verifying-wad-windows-before-generating-them-ii/</link>
<pubDate>Tue, 20 Oct 2009 14:56:57 +0000</pubDate>
<dc:creator>alostale</dc:creator>
<guid>http://alostale.wordpress.com/2009/10/20/verifying-wad-windows-before-generating-them-ii/</guid>
<description><![CDATA[As explained in my previous post, a new verification has been added before compiling WAD windows to ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>As explained in my previous <a href="http://alostale.wordpress.com/2009/10/16/verifying-wad-windows-before-generating-them/">post</a>, a new verification has been added before compiling WAD windows to detect possible errors.</p>
<p>The problem has appeared with the &#8220;Identifier verification&#8221; which forces all the tables used in the tabs to be generated to have at least one column set as identifier. This is strictly mandatory just in case the table is a part of a foreign key, but as now modules expose all their tables as part of their public API, we decided to force all tables to have identifier. But as before it did compile, it is possible there were modules with tables without identifier.</p>
<p>To solve this problem, now the verification does not stop the compilation process in case errors are found, but it is highly recommendable to fix them in your modules as soon as you see them to prevent possible incompatibilities with other modules. In a future core release, this check by default will stop the process, in case it is not successful.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Verifying WAD windows before generating them]]></title>
<link>http://alostale.wordpress.com/2009/10/16/verifying-wad-windows-before-generating-them/</link>
<pubDate>Fri, 16 Oct 2009 14:07:14 +0000</pubDate>
<dc:creator>alostale</dc:creator>
<guid>http://alostale.wordpress.com/2009/10/16/verifying-wad-windows-before-generating-them/</guid>
<description><![CDATA[Although developing automatic windows in Openbravo ERP is quite straight forward and saves a lot of ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Although developing automatic windows in Openbravo ERP is quite straight forward and saves a lot of coding time, in case something goes wrong it can be difficult to find out where the problem is. Of course you have the compilation log, but this is not always as user friendly as it should be. In many occasions, it is quite hard to figure out the root cause for the error. It must be inferred from a ton of lines of log and some times it fails in a place that it is not expected, for example a missing identifier for a table can cause a SQL error.</p>
<p>Currently we are working on improving the build process, and one of the improvements we are putting in place (it is already pushed to pi) is a verifier that is run before generating WAD windows, this verifier will check a number of common mistakes that make the tabs not to be properly generated and will display a clear message about this stopping the process.</p>
<p>The idea is to gradually include new checks to this verifier, now we just look for tables without identifier and for tables without primary key. Any feedback on which checks would be useful is welcome.</p>
<p>I hope this makes life a little bit easier to Openbravo ERP developers.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[RM updates: Continous Integration, Ubuntu, Javadoc, Release Notes]]></title>
<link>http://jpabloae.wordpress.com/2009/10/15/rm-updates-continous-integration-ubuntu-javadoc-release-notes/</link>
<pubDate>Thu, 15 Oct 2009 09:19:57 +0000</pubDate>
<dc:creator>jpabloae</dc:creator>
<guid>http://jpabloae.wordpress.com/2009/10/15/rm-updates-continous-integration-ubuntu-javadoc-release-notes/</guid>
<description><![CDATA[Like in any other team, some of the tasks we do in the Release Management Team have consequences in ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Like in any other team, some of the tasks we do in the <a href="http://wiki.openbravo.com/wiki/Release_Management">Release Management Team</a> have consequences in users, other times in developers and some times even in other company staff. We feel it&#8217;s important to notify other teams about what has been done. Not the progress or the future plans, we have<a href="http://wiki.openbravo.com/wiki/Scrum/Scrum-of-Scrums"> Scrum of Scrums</a> for that. But about the actual specific results.</p>
<p>So this is a simple as this: whenever there&#8217;s something new we think it could useful to a specific groups of users we&#8217;ll write a short summary to them. This will happen every 2 weeks.</p>
<h3>Continuous Integration</h3>
<ul>
<li>There&#8217;s a new set of tests called<a href="http://builds.openbravo.com/job/erp_devel_pi-sanity-tests/"> erp_sanity_tests</a>. This intends to collect various basic checks that are not worth to keep as a single Hudson job. As for now there&#8217;s one included, to <em>Check if the primary keys of the database in erp/devel/pi that were present as columns in erp/stable/2.40 have a onCreateDefault value set</em>.New tests are accepted either by describing them to us or by sending us the code to be run.</li>
<li>The<a href="http://builds.openbravo.com/job/erp_devel_main-obquickstart/"> QuickStart</a> and <a href="http://builds.openbravo.com/job/erp_devel_pi-module-installation-test/">Module Installation</a> jobs have been moved from <a href="http://builds.openbravo.com/computer/slave1/">slave1</a> to <a href="http://builds.openbravo.com/computer/slave2/">slave2</a>. We currently have 4 machines for <a href="http://builds.openbravo.com">builds.openbravo.com</a>, and with this change one 100% dedicated to smoke tests.This affect developers in the way that now smoke tests will be finished quicker without interruptions from other jobs.</li>
</ul>
<h3>Ubuntu package</h3>
<p>There was a demand for instructions on how to install the <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Openbravo_ERP_Installation#Ubuntu_Installation">Ubuntu package</a> with Tomcat in one server and PostgreSQL in another. This steps are currently manual and they&#8217;ve been <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Openbravo_ERP_Installation#Dual-server_configuration">documented</a>.</p>
<h3>Release Notes</h3>
<p>They have been refactored. Now there&#8217;s a <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Release_Notes">main page</a> where you can see all the versions.</p>
<p>Then you can access the specific summary notes for each release. Check <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Release_Notes/2.50MP6">2.50MP6</a> for an example.</p>
<p>And if you&#8217;re interested in more details, the <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Release_Changelog#2.50MP6">Changelog</a> page shows the complete list of fixed issues.</p>
<p>The 3 pages are linked. And the idea is to replace the Changelog page at some point, by delegating in <a href="https://issues.openbravo.com">Mantis</a> to do this automatically.</p>
<h3>Openbravo ERP API Javadoc</h3>
<p>The Openbravo ERP API is now available for <a href="http://code.openbravo.com/docs/">online viewing</a>.</p>
<p>This includes all the releases since 2.50, as well as docs for <a href="https://code.openbravo.com/erp/devel/main">erp/devel/main</a> and <a href="https://code.openbravo.com/erp/devel/pi">erp/devel/pi</a>, which are automatically updated in each incremental build of our continous integration framework.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Bi-weekly "Extension Module" Demonstrations]]></title>
<link>http://iciordia.wordpress.com/2009/10/13/bi-weekly-extension-module-demonstrations/</link>
<pubDate>Tue, 13 Oct 2009 16:33:19 +0000</pubDate>
<dc:creator>Ismael Ciordia</dc:creator>
<guid>http://iciordia.wordpress.com/2009/10/13/bi-weekly-extension-module-demonstrations/</guid>
<description><![CDATA[Open to all Openbravo Community members, this series of webinars will demonstrate through real exten]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div>
<p><span style="font-family:Arial;font-size:11pt;" lang="EN-GB"><span style="font-size:x-small;">Open to all Openbravo Community members, this series of webinars will demonstrate through real extension modules the potential of Openbravo modularity, will help you better understand development techniques, processes and tools you can use to create extension modules, and will show concrete functional solutions to address specific requirements that might inspire you to create your own solutions.</span></span></p>
<p><span style="font-family:Arial;font-size:11pt;" lang="EN-GB"><span style="font-size:x-small;">Take a look at this <a href="http://forge.openbravo.com/plugins/espforum/view.php?group_id=100&#38;forumid=886716&#38;topicid=7003847">post</a> to see next demonstrations calendar and more details</span></span></p>
</div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Pluging and unpluging]]></title>
<link>http://galderromo.wordpress.com/2009/10/06/pluging-and-unpluging/</link>
<pubDate>Tue, 06 Oct 2009 13:09:06 +0000</pubDate>
<dc:creator>galderromo</dc:creator>
<guid>http://galderromo.wordpress.com/2009/10/06/pluging-and-unpluging/</guid>
<description><![CDATA[As everybody knows, modularity has been the main improvement included on OpenbravoERP 2.50. Modulari]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>As everybody knows, <a href="http://wiki.openbravo.com/wiki/Projects/Modularity">modularity</a> has been the main improvement included on <a href="http://wiki.openbravo.com/wiki/ERP/2.50/ReleaseNotes">OpenbravoERP 2.50</a>.</p>
<p>Modularity gives plenty of options and flexibility when developing, backing up, sharing, updating, customizing, populating, training, installing, etc.</p>
<p>- <em>Developing</em>: When having more than a development on the same environment, being able to separate each artifact into modules makes developments much more structured. You can package a module and plug or unplug it.</p>
<p>- <em>Managing</em>: If you want to manage and supervise your developers work, is easy to do it plug in the modules, verifying and unplug in.</p>
<p>- <em>Backing up</em>: Is enough to execute ant package.module to have a backup of whatever you are developing. If you get on the wrong way, you can unplug the module and plug in your backup.</p>
<p>- <em>Sharing</em>: Sending developments from one developer to other is easy. Sharing developments with de community using the central repository is very easy too.</p>
<p>- <em>Updating</em>: Jumping from one maintenance pack to other is easy using modules. Plug in the .obx file is enough.</p>
<p>- <em>Customizing</em>: It is possible to customize in a development environment (once customization flag is set to true), hide some fields, show other owns, change properties (read only, mandatory, drop down, length, etc.), etc. Then, you can export this parametrization and move it to production environment easily. If other developers of the project need to include some more parametrizations, can install same module, generate a new version, make changes and apply it in production environment.</p>
<p>- <em>Populating</em>: Using reference data populating parametrization tables is very easy. </p>
<p>- <em>Training</em>: Having needed sample data in order to build a demo or a training with not to much effort is simple using modularity.</p>
<p>- <em>Installing</em>: Once you have developed all the modules by different developers, it is easy to plug in all the new modules into production environment. You can build a production environment from scratch and adapt it using already developed modules. Plug in the modules and it&#8217;s ready.</p>
<p>And for sure, there are many more utilizations for modularity. </p>
<p>Do you have some more?</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Ideas for Openbravo ERP development builds live testing]]></title>
<link>http://jpabloae.wordpress.com/2009/10/01/ideas-for-openbravo-erp-development-builds-live-testing/</link>
<pubDate>Thu, 01 Oct 2009 17:37:08 +0000</pubDate>
<dc:creator>jpabloae</dc:creator>
<guid>http://jpabloae.wordpress.com/2009/10/01/ideas-for-openbravo-erp-development-builds-live-testing/</guid>
<description><![CDATA[Many of our developers and power users are frequently requesting live installations where to test da]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Many of our developers and power users are frequently requesting live installations where to test daily or even hourly builds of the development repositorios (pi, main, etc). We already had this internally in the headquarters of Pamplona (the so called <em>tecnicia14</em> machine) and it was pretty popular among the local developers and even the consultants. In this post I collect some ideas and ask for feedback.</p>
<p>I&#8217;ve been thinking on why this is useful, who the target users are, how this fits with our current continuous integration framework (builds.openbravo.com), what the frequency should be, etc.</p>
<p>To begin with, adding this feature is on the <a href="http://wiki.openbravo.com/wiki/Release_Management/Continuous_Integration_Vision#MileStone_2">second milestone</a> in the <a href="http://wiki.openbravo.com/wiki/Release_Management/Continuous_Integration">Openbravo Continous Integration project</a>.</p>
<h3>Target audience</h3>
<p>Firstly, I basically see three groups of users interested in this:</p>
<ol>
<li><strong>Developers and power users:</strong> it&#8217;s obviously interesting for them to test the latest versions with different databases and running on different environments.</li>
<li><strong>Sporadic users</strong> who want to test the latest developments and see how the progress is going.</li>
<li><strong>QA team</strong>: they need these environments all the time, all the day.</li>
</ol>
<p>The QA team has one big restriction: they need to be the only ones accessing the ERP at that time. And vice versa, developers don&#8217;t want to share the environment with QA: imagine them testing the DeleteClient functionality.</p>
<p>So the proposal is to have two different environments:</p>
<ul>
<li><strong>live.builds.openbravo.com</strong><em>:</em> for developers, power users and sporadic curious users. Open to the world.</li>
<li><strong>liveqa.builds.openbravo.com</strong><em>:</em> for the QA team. Restricted access.</li>
</ul>
<h3>Candidate jobs</h3>
<p>Given that we use Hudson as our CI framework, these would naturally be two different Hudson nodes. Having a look at the list of builds I&#8217;ve detected the following candidates:</p>
<ul>
<li><a href="http://builds.openbravo.com/job/erp_devel_pi-full-oracle/">erp_devel_pi-full-oracle</a>: full periodic build of the <a href="https://code.openbravo.com/erp/devel/pi">erp/devel/pi</a> repository using an Oracle 11g database (<em>ant install.source</em>).</li>
<li><a href="http://builds.openbravo.com/job/erp_devel_pi-full-pgsql/">erp_devel_pi-full-pgsql</a>: full periodic build of the <a href="https://code.openbravo.com/erp/devel/pi">erp/devel/pi</a> repository using a PostgreSQL 8.3.x database (<em>ant install.source</em>).</li>
<li><a href="http://builds.openbravo.com/job/erp_devel_main-full-oracle/">erp_devel_main-full-oracle</a>: full periodic build of the <a href="https://code.openbravo.com/erp/devel/main">erp/devel/main</a> repository using an Oracle database (<em>ant install.source</em>).</li>
<li><a href="http://builds.openbravo.com/job/erp_devel_main-full-pgsql/">erp_devel_main-full-pgsql</a>: full periodic build of the <a href="https://code.openbravo.com/erp/devel/main">erp/devel/main</a> repository using a PostgreSQL 8.3.x database (<em>ant install.source</em>).</li>
<li><a href="http://builds.openbravo.com/job/erp_stable_2.40-full-oracle/">erp_stable_2.40-full-oracle</a>: full periodic build of the <a href="https://code.openbravo.com/erp/stable/2.40">erp/devel/2.40</a> repository using an Oracle 11g database (<em>ant install.source</em>).</li>
<li><a href="http://builds.openbravo.com/job/erp_stable_2.40-full-pgsql/">erp_stable_2.40-full-pgsql</a>: full periodic build of the <a href="https://code.openbravo.com/erp/stable/2.40">erp/devel/2.40</a> repository using a PostgreSQL 8.3.x database (<em>ant install.source</em>).</li>
<li><a href="http://builds.openbravo.com/job/erp_stable_2.3x-full-oracle/">erp_stable_2.3x-full-oracle</a>: full periodic build of the <a href="https://code.openbravo.com/erp/stable/2.3x">erp/devel/2.3x</a> repository using an Oracle 11g database (<em>ant install.source</em>).</li>
<li><a href="http://builds.openbravo.com/job/erp_stable_2.3x-full-pgsql/">erp_stable_2.3x-full-pgsql</a>: full periodic build of the <a href="https://code.openbravo.com/erp/stable/2.3x">erp/devel/2.3x</a> repository using an Oracle 11g database (<em>ant install.source</em>).</li>
<li><a href="http://builds.openbravo.com/job/erp_devel_main-obquickstart/">erp_devel_main-obquickstart</a> (liveqa only): full periodic build of the latest <a href="https://code.openbravo.com/erp/devel/main">erp/devel/main</a> tag with the <a href="http://rokatopenbravo.blogspot.com/2009/09/quickstart-erp-for-life-in-week.html">QuickStart template</a>.</li>
</ul>
<p>The incremental jobs are only useful for testing the upgrade process, but not for live testing. That&#8217;s why they&#8217;re not included here.</p>
<h3>Implementation</h3>
<ul>
<li>Every time one of the selected builds is successful we could create a tarball with a database dump and the WAR file, placing them in a known location. The sources could also be shipped, because some of the modularity features require this.</li>
<li>Then, the every new Hudson job would take their correspondent files and reset the environments using this database dump and WAR file.</li>
</ul>
<p>As the reset process would take 5 minutes at most, the frequency could be 1-4 times a day.</p>
<h3>Resources</h3>
<p>Three machines would be required for this:</p>
<ul>
<li>One for Oracle (shared). Because a bug in the ERP shouldn&#8217;t affect the daily builds.</li>
<li>One for Tomcat and PostgreSQL (live.builds.openbravo.com).</li>
<li>One for Tomcat and PostgreSQL (liveqa.builds.openbravo.com).</li>
</ul>
<h3>Open questions</h3>
<p>Anything is open to questions, of course, but this is a list of topics I have brainstormed:</p>
<ul>
<li>Is there any other build you would include?</li>
<li>Would you find useful to test the ERP in other operating systems and architectures other than Linux and x86/x86_64?</li>
<li>What reset frequency would be reasonable?</li>
<li>If QA needs a separate environment, do developers need it too?</li>
</ul>
<p>What else other than listed above would be of interest for you in these live testing machines?</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Switching from Oracle to PostgreSQL]]></title>
<link>http://galderromo.wordpress.com/2009/09/11/switching-from-oracle-to-postgresql/</link>
<pubDate>Fri, 11 Sep 2009 10:50:21 +0000</pubDate>
<dc:creator>galderromo</dc:creator>
<guid>http://galderromo.wordpress.com/2009/09/11/switching-from-oracle-to-postgresql/</guid>
<description><![CDATA[We, consultants, aren&#8217;t so techie as developers are and changes take a bit longer. During last]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>We, consultants, aren&#8217;t so techie as developers are and changes take a bit longer. During last couple of months I&#8217;m introducing myself to <a href="http://www.postgresql.org" target="_blank">PostgreSQL</a>: installing sources, developing, installing database client, etc.</p>
<p>Just in case you are in a similar situation:<br />
- On config/Openbravo.properties file, bbdd.sid parameter is a different concept from what you are used to in Oracle. In case you have an environments and want to install a second one, bbdd.sid must be different. Otherwise, when executing ant install.source your first database user will be erased. Conclusion, when using PostgreSQL, per each OpenbravoERP installation you will need a different database.sid. This is, bbdd.sid concept is different in Oracle and in PostgreSQL.</p>
<p>- When accessing database throw a terminal-based front-end, Oracle uses SQL+ while PostgreSQL uses psql. They are very similar and really helpful when accessing OpenbravoERP server using ssh connection.</p>
<p>Please feel free to comment any additional main differences when switching from Oracle to PostgreSQL.</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
