Академический Документы
Профессиональный Документы
Культура Документы
1 - Release Notes
Table of contents
OpenERP v6.1 - (DRAFT) Release Notes Table of contents Introduction Usability Improvements Objective: making ERP affordable for small businesses Install, Test and Start Using: No Configuration A smarter welcome page Ready-to-use, using the new many2one fields Best practices by default The Setup Cookbook The configuration panel Example 1: Configure the company Example 2: Setting Up Your Invoicing Methods Example 3: Create new users Import Your Initial Data Automated import and sync from other applications A smart Import tool for end-users Easier to Use Reviewed tooltips Follow the status of the documents with the new progress bar Simplification of complex screens Easier to Learn Books Drive your Sales & Marketing Activities with OpenERP Integrate your Logistic Processes with OpenERP Streamline your Manufacturing Processes with OpenERP Buzzy ERP: Social, Viral & Mobile Be Social: Collaborate with Partners Share your documents easily Embed content in your website Improved Email Integration Automated Email notifications by default OpenERP Mobile: access everywhere New Modules Touchscreen Point-of-Sale Generic Payroll Engine Assets Portal The New Web Interface Revolution Challenges & Objectives New and Improved Features Fast like a rocket ! The New Kanban View: Everything at a Glance Customizable Dashboards Simple and reusable advanced filters. Dynamic Gantt Charts Technical Improvements Modularity New architecture, not reinventing the wheel New debugging facilities Framework Improvements (technical) Speed improvements in the framework (OpenERP kernel) Multi-thread for scheduled operations
WSGI - Web Service Gateway Interface Unaccent searches Proper UTC storage of date and time values Running openerp from the repositories Business Applications Improvements Projects & Tasks: Improved productivity CRM: Improve your sales productivity Simple and fast access to your tasks - Todos based on tasks in CRM HR Recruitment: improved screens Accounting & Finance Invoicing Methods Contract management based on analytic accounts Delivery Price Management New Outlook Plugin Cleaning & Maturity (technical) Improved tests and testing tools Manual & automated testing made easy: RunBot Improved Test Coverage: 65% and counting Community feedback, bugfixes & small features Improving developers life Objects Instantiation & definition Simplified field declaration Developer mode YAML Tests Improvements
Introduction
OpenERP 6.1 includes countless contributions from partners and community members, for which we are very grateful: bug reports and bug corrections, translations, suggestions, new features, etc. The release brings strong usability improvements, new features and a lot of framework cleanup (core engine and web interface). Our focus has been to make OpenERP easier and faster to deploy and configure than ever, and to improve and cleanup the underlying code base (mainly the core framework and web interface). The biggest challenge was certainly the complete rewrite of the web interface from scratch using a better architecture, and leveraging state-of-the-art web technologies. It was a 70+ man-months job which we achieved in less than 8 months with a team of 9 developers. As usual, all our developments are released under the open source AGPL licence. Enjoy your first look at OpenERP 6.1! We are looking forward to your feedback and impressions!
Usability Improvements
Objective: making ERP affordable for small businesses
We want OpenERP v6.1 to be easier to install, to configure and to use. For years, full featured ERPs have been only accessible by large enterprises with big budgets. We think we can change the market with OpenERP and provide all the features necessary to be a comprehensive ERP solution, while keeping the software easy to use with affordable implementation costs. In order to design robust software, our usability experts organized user testing sessions with lambda users to identify what could be simplified in OpenERP. For the v6.1, we wanted new users to be able to test the software without having to configure anything. OpenERP is now ready to use out-of-the-box and the configuration wizards can be optionally launched afterwards. A new user can create their first sales order in two clicks after the installation!
1depending
on the modules you install, there is only one configuration wizard which is still required,: it's the chart of account selection according to your country. If you install a module based on accounting, you will have to answer its wizard.
Two clicks after the installation new users can start creating their first document (e.g. a sales order). But there are no customers or products registered in the database yet. So, it was important to be able to easily create, on-thefly, a new customer or a product directly from a sales order. Most of the beta tests we organized emphasized the same difficulties as lambda users on the use of many2one relation fields. So, we completely redesigned the relation field to now look like a selection box. We also added autocompletion, quick-create and a more... option to open the search window. These new features allow new users to create their first sales order by creating the partner and the product on-thefly, simply by entering the name of the customer in the customer field. Of course, in order to allow this, we had to do a lot of small improvements on main OpenERP documents: when you create a partner, it automatically creates an address by default when you create a product with only a name, it correctly sets most of the fields: related taxes, category, income/expense accounts, ...
All the configuration wizards have been reviewed for v6.1 in order to be more business oriented. In total, we developed 39 configuration steps to cover all standard modules. Below, you will find three examples of these configuration wizards.
invoice with the correct information, as reprinted invoices always appear like the original print (Note: this is a legal requirement in several countries) The new configuration screen looks like this:
Overview of the improvements: There is no wizard anymore, simply the normal company definition form, so that users can easily modify it at a later point-in-time; We have added new fields for the VAT and other references; The bank account data comes directly from the bank account configuration wizard (that creates journals, accounts,...); All parameters of the company are configured from this screen, entering information in the various tabs.
A new configuration wizard (shown above) has been introduced to help setup your system according to your invoicing needs: invoice based on sales orders, deliveries, project tasks, timesheets, contracts, etc
We made numerous improvements in the user definition form in v6.1. The major enhancement was to the access rights configuration. Instead of assigning a list of groups to users, we created a dynamic view that represents all the applications. It's now more intuitive, administrators just have to activate the applications they want to give a user access to. Then, they can specify her role in this application (manager, user ...). Groups are configured by default, which means that most users don't even have to understand the concept of group. In the simplified view of OpenERP, we hid everything related to groups. The administrator can simply grant application access to users without having to understand the underlying group-based access management. On a technical point of view, the group system of OpenERP did not change between v6.0 and v6.1, and its flexibility is still present for those who still need to fine-tune it. We have simply introduced a more userfriendly interface to manage them. The only small change is that there is now a notion of group inheritance (e.g. a sales manager is automatically a sales user by default).
With this new import wizard, users select the CSV file they want to load into OpenERP, and using a new preview mode, identify how to map data to OpenERP fields. Users are provided with a sample view of data and the mappings directly below the selected fields. The export data wizard has also been reworked so that users can export any list of records, modify the data using familiar spreadsheet applications (e.g. to cleanse the data) and re-import the data back into OpenERP again. OpenERP will automatically detect which records should be created as new and which records should be updated.
Easier to Use
Reviewed tooltips
OpenERP received a lot of feedback from our training sessions, our OpenERP online customers and our Launchpad contributors on areas and concepts that were not easy to understand in OpenERP. We used this feedback to refine terms, documentation and tooltips that needed to be improved for better clarity. We reviewed many of the tips displayed on the top of screens, tooltips on fields and terminology within the application. Also some terms have been renamed to better match the concept or the wording used in the industry. For example: The terms "Real &Virtual stock" have been replaced by "Quantity On Hand & Forecast Quantity"
steps, we replaced the usual status field by a progress bar that shows all steps and highlights the current one. The examples below show what it looks like for pickling list that is ready to process and a sales order in exception.
Easier to Learn
Books
A lot of effort was made to make OpenERP easier to use and more affordable to integrate. But we know enterprise management can require very complex flows and some users will still face some difficulties integrating OpenERP into their IT topology. That's why we worked on a new series of six (6) books for endusers, that cover most of the management and business activities in OpenERP. Drive your Sales & Marketing Activities with OpenERP Integrate your Logistic Processes with OpenERP Streamline your Manufacturing Processes with OpenERP Open Source Accounting with OpenERP You can purchase these books on Amazon or through our online store: http://www.openerp.com/catalog/150 We also updated our online documentation on: http://doc.openerp.com
OpenERP, we launched the Certified Training Partner program with our main OpenERP partners, to have established OpenERP certified training centers all around the world. Finally, you don't have to go to Belgium anymore to get quality OpenERP training! In the past 5 months of 2011, we have opened 16 new training centers worldwide in coordination with OpenERP partners.
From this screen, customers can: print the document pay online (for invoices and prepaid sales orders) import the document into their own ERP or management software (the actual EDI import)
To push a document into a recipients own management software, they have three (3) alternatives: 1. If they already use OpenERP, providing the link the destination OpenERP instance is all that is required. For example, a customer invoice will be instantly imported as a draft supplier invoice into the target database. 2. If recipients use a third-party management software, the document is provided in a modern and simple electronic format (JSON) to make importing it very quick and easy. We expect that community users will quickly develop additional connectors to import OpenERP documents into 3rd party specific systems. 3. Its also possible to create a new OpenERP Online instance in one click, with the document already imported into it. This is helpful for those who would like to test-drive OpenERP. We also hope to introduce soon an automated EDI integration gateway, where new documents created for your customers and suppliers in your OpenERP instance would automatically be imported into their own OpenERP instances, after having established a connection between them. This capability will really open a new era of productivity between companies and allow them to cost-effectively connect, exchange information, and work together.
New Modules
Touchscreen Point-of-Sale
The new touchscreen OpenERP Point of Sale interface: is a web client module works offline if you have no internet connection to the server and/or you restart the browser synchronizes automatically with the OpenERP server when the connection is available works on any touchscreen device like an ipod, ipad or any tablet pc. The current features are: selectable products through barcode reader, browsing categories, or text search multiple tickets can be recorded at the same time multiple payment methods allowed
As it is a web client module, its very easy to extend the Point of Sale module to add new features or extend current ones (credit card payments, restaurant tables management, ...) You can get more information about this module here: http://www.openerp.com/products/pos
Assets
OpenERP v6.1 includes a complete asset management module. Its features are: support for multiple depreciation methods: linear, progressive, ; generation of the depreciation board as graph or a grid ;
Portal
The portal module allows administrators to easily create customized access for your customers and suppliers to various documents in order to collaborate efficiently. Based on the new sharing capabilities, you can design custom portals in a few clicks by selecting which resources and what access rights you want to provide to your partners.
The above picture is a screenshot of the partner portal we provide to official OpenERP partners. From this portal they can track their support tickets, ask for a database migration and follow the migration progress, check the status of the leads we forwarded to them, etc... We also developed a way to easily contact or give access to several partners to the portal and to manage the logins you give to your partners. Learn more here: http://www.openerp.com/partner-portal
This was a big challenge for us. It was a 70+ man-months effort and we wanted it to be ready for v6.1. We had to release this new web user interface in only 8 months using a team of 9 developers. The result is quite amazing and were very pleased: it has more features than v6.0, with fewer lines of code it's faster than the v6 client, and even faster than the GTK client for most operations developing new modules is much easier with this new client than before many hard-to-solve glitches from the previous version are now gone
Below youll find the XML code of the new kanban view displayed above:
<?xml version="1.0"?> <kanban> <templates> <t t-name="kanban-box"> <div class="oe_employee_vignette"> <div class="oe_employee_image"> <a type="edit"><img t-att-src="kanban_image('hr.employee', 'photo', record.id.value)" class="oe_employee_picture"/></ a> </div><div class="oe_employee_details"> <h4> <a type="edit"><field name="name"/> (<field name="login"/>)</a> </h4> <ul> <li t-if="record.job_id.raw_value"><field name="job_id"/></li> <li t-if="record.work_location.raw_value"><field name="work_location"/></li> <li t-if="record.work_phone.raw_value">Tel: <field name="work_phone"/></li> <li t-if="record.mobile_phone.raw_value">Mobile: <field name="mobile_phone"/></li> <li t-if="record.work_email.raw_value"><a t-attf-href="mailto:#{record.work_email.value}"><field name="work_email"/></a></li> </ul> </div> </div> <script> $('.oe_employee_picture').load(function() { if($(this).width() > $(this).height()) { $(this).addClass('oe_employee_picture_wide') } }); </script> </t> </templates>
</kanban>
Customizable Dashboards
Dashboards of each application are now fully customizable directly from the user interface. You can change the layout of the dashboard (1, 2, or 3 columns), insert or remove some info (lists, graphs, ...) using your custom filters, rename or drag & drop the elements.
Technical Improvements
Modularity
OpenERP addons are now automatically also web addons. They may easily extend the user interface by defining new widgets or extending already existing widgets. An inheritance system similar to the one used in python is available at Javascript level. They may also define new views or new types of client-specific actions. With this approach one can easily enhance the user experience of any functional addons. To get inspiration, have a look at the web-enabled modules that are part of the standard distribution: pad, point_of_sale, share, edi... In fact, the new web interface is simply a set of such addons, all named web_* and located in the openerpweb project. The modular architecture is used to split the major features in separate modules.
In additional to generic Javascript and Web debugging tools, OpenERP 6.1 also features a debug mode with developer tooltips on every field, and a very handy debug menu giving one-click access to edit the current action or view. Have a look at improving developers lifes for more details!
The Web Service Gateway Interface (WSGI) layer makes it possible to run the OpenERP server as an application served through a WSGI-compliant web server. Together with the almost stateless nature of the OpenERP server, this means the WSGI-compliant web server can run multiple processes of the application: you can finally make use of all those CPU cores! For instance, using Gunicorn, it becomes straightforward to maintain, say, 4 concurrent processes to handle requests. Gunicorn will monitor the processes and fork them as needed. It can also kill a process after a number of requests have been handled, preventing possible memory leaks to affect the system. (As the cache mentioned above are seldom written, a simple strategy is to kill a worker process whenever the cache has to be invalidated.) Several things have also been done to shorten database creation time. Instead of using the full power of the framework when loading the translations, we can directly write in database (we dont expect ir_translations to be inherited in a meaningful way at database initialization time). Another improvement is to cache (i.e. dump and restore) the resulting database. This is something we already tried on the OpenERP Online and works pretty well. We did the performance tests on a database having a number of sales orders. installation of a new database in English installation of a new database with a language pack second installation of a new database loading a partner form from the web client reading 1000 orders at once reading 100x 10 sales orders
conforming web server. We also have made room to accommodate a future JSON-RPC transport, in addition to the existing XML-RPC one.
Unaccent searches
The OpenERP Server can use the unaccent PostgreSQL contrib module (or actually any installed function named unaccent) to perform search operations ignoring accented characters. The server must be started with the --unaccent flag if you want to activate this feature.
One of the advantages of the new web interface architecture and the server WSGI capabilities is that it becomes trivial to embed the web interface as a WSGI service running in the same process as the regular OpenERP server. There is no need to manage a separate web process anymore, even though it is still possible to do it thanks to the built-in server integrated in the web project. Here is a little bit of explanation on how this works. In order to deploy OpenERP from the source, you will usually use the three main OpenERP projects: the server project, hosted at repository lp:openobject-server/6.1 (post-release URL) the web interface project, hosted at repository lp:openerp-web/6.1 (post-release URL) the functional addons project, hosted at repository lp:openobject-addons/6.1 (post-release URL) You can download the tarball that contains all three repositories in a single package or download the three repositories separately. When all projects are packaged together what happens is simple: the contents of the functional addons and web addons (the web interface is simply a series a web addons) are all merged together inside the addons subdirectory that is located inside the openerp/addons directory of the main server project. They all appear as a unique list of OpenERP modules, core, web and functional ones mixed. In that configuration, running the complete OpenERP service is as simple as starting the openerp-server program at the root of the package, without any special configuration (except of course the database parameters). If instead of you'd like to keep the various repositories separated (for example in a development environment), you must ensure to pass the required --addons-path command-line parameters to indicate where your functional and web addons are located or to set it equivalently in the configuration file. A typical invocation would be: ./server/6.1/openerp-server --addons-path=addons/6.1,web/6.1/addons (Watch out, the web addons are located in the addons subdirectory fo the web project) Developers may also find it convenient to use our all-in-one Makefile that helps you download the source code branches right from the repository, setting up the directory layout and --addons-path for you. Here is how you can use it from the command line (after installing Bazaar, our source version control system): $ bzr cat -d lp:~openerp-dev/openerp-tools/trunk setup.sh | sh $ make help # << Read the available commands $ make init-trunk # << Fetch the trunk projects $ make server # << Start OpenERP Server with embedded Web Finally, it is still possible to run the web interface as a separate process (e,g, for debugging purposes), using the openerp-web program located at the root of the web project. You should however know that some of the web capabilities might be restricted, and in particular you should be sure that all regular addons which include a web part are visible to the openerp-web process, otherwise their web part will be unavailable. You can do this by copying them or creating a symbolic link insid5e the addons subdirectory.
Simple and fast access to your tasks - Todos based on tasks in CRM
OpenERP developed a to-do application in the CRM that enables salesmen to link their opportunities to a light task list. This application enables salesmen to have a simple to do list that is pre-filtered on their own tasks. They continue managing their opportunities as usual and are also able to create a to-do list directly in the opportunity itself.
We give you the freedom to install it only if you want, as the application does not get installed by default. So, just access the configuration and install from the features of the CRM selecting "To Do list". After installing it, an extra tab will appear in your Sales module, called "My Tasks". The good news is that it's available both on the GTK and the webclient.
Now picture this: a salesman can create a new task in the "My Tasks" menu entry in the CRM. In this list, he can see all his to do things, the timing, and even the context. This list is exactly the same as the one you have in Project management. This means that all recorded tasks in the system from project management or opportunities are grouped in the same view. From this list, the user can see his own tasks, the ones he directly created and the ones that have been assigned to him. This gives him quick access to all things he has to do today, this week this month or in the long term. This feature is based on the "Getting Things Done" methodology. It is a way to organize and manage
tasks following the timing and the context of the "resolution of the task". It is for this reason that by installing this application, a new menu tab is added also in project management.
Localizations modules: The system that installs all the elements of a Chart of Accounts (COA) template has been refactored in order to allow easier extension of its feature coverage. It has also been enhanced and you can now define a chart template that completes another one. This is very useful if, at installation time, you want to offer a choice between the classic "Chart of Accounts" or the "Chart of Account for Food industry'. In v6.0, even if the Food industry COA had 2 new accounts and 1 new tax in comparison to the classic COA, you had to define the whole common structure twice. Now you can just define the Food COA as an extension of the classic COA and if you choose it during the installation process, accounts, taxes and tax grids of both will be installed.
Invoicing Methods
You can now choose in only one wizard what is your invoicing policy. In the configuration overview, configure your invoicing method in the Sales Management section. As before, specify if you invoice on Sales Orders or on deliveries, in order to define the default method. A new characteristic is that in the same wizard, you choose if you charge delivery fees. If you are not a resseller, but a service company and you invoice on timesheet or task work, you can also choose these options in this wizard. If you choose to invoice on time work, decide if you invoice per day or per hours worked. All these options install the right modules so that you can directly use them or configure them according to your need.
How to define delivery methods and pricing: 1) Create a carrier and a product (the carrier is the shipping company, e.g. UPS and the product represents a particular shipping service from this carrier, e.g. International freight) 2) Specify the cost 3) Choose "Free if more than" if relevant. This means that the delivery price will not be taken into account if the order total is higher than this amount. Youre done! You may also assign a specific delivery method to a customer, to reuse it for each order. The advanced mode gives you access to the more detailed pricelist grid, similarly to the 6.0 version.
The idea in v6.1 was to improve existing tests to make them shorter and more effective, simulating as fully as possible a series of real interactions with a user. New features of course came with the corresponding test scenarios as well. The net result is a test suite comprising 200 individual scenarios, representing about 1900 test steps, and covering an impressive 65% of the whole codebase! The code coverage statistics are available in real-time on RunBot.
Our goal is to qualify all launchpad bug reports within a few days (not fix them, but validate them) and review merge proposals within two weeks. We have been quite efficient at managing bug reportson Launchpad in 2011, but theres a lot of room for improvement in merge proposals review. OpenERP R&D teams have to follow the same process as community contributors (i.e. making merge proposals, to be peer-reviewed and finally approved or rejected by team leaders). In 2011, we have reviewed more than 2200 such merge proposals, created both by the community and by OpenERP developers for their daily work (one bugfix or one feature = 1 merge proposal). In the same interval, more than 2500 branches based on the official project branches have been
created.
Based on the above, the system would automatically use the following default names: the relation table will be named res_groups_res_users_rel (res_groups < res_users) the source foreign key column will be named res_users_id the destination foreign key column will be named res_groups_id This will work symetrically from any endpoint of the relationship, so these can still be declared on any of the two endpoints, or on both. Matching foreign key constraints will also be properly created. On additional benefit of this feature may not be obvious: this makes many-to-many fields inheritable
through the existing OpenERP inheritance mechanism, because the system will automatically use appropriate names in inheriting classes, avoid ID conflicts and foreign key issues. And of course this works for the new TransientModel and AbstractModel classes which replace the former osv_memory, as well as for all regular Model (osv.osv) classes. Note: this new automatic naming system only works for one single symmetrical many-to-many relationship between the source and destination models. For multiple many-to-many relationships between the same models and for relationships where source and destination models are the same, non-conflicting names (rel, id1, id2) should still be provided explicitly when declaring the fields, in order to avoid conflicts.
Developer mode
The 6.1 web interface features a developer mode, providing additional tools for developers. The debug mode is turned on globally by simply appending a debug parameter to the OpenERP URL or by clicking activate developer mode from the about dialog. As an example, if your current OpenERP URL is http://oe.acme.org/web/webclient/home#id=123 , you can enable debug mode by connecting to http://oe.acme.org/web/webclient/home?debug instead. Watch out for the hash mark (#) in the address, which separates the URL from the fragment identifier (a bookmark within the page). You should not add anything after that hash mark, in fact its easier to delete it and everything that follows, before adding the debug parameter to the URL. Once in debug mode, youll notice that every field has an enhanced tooltip that gives the technical description of all its properties. You should also spot a new debugging menu that will appear next to the main title of every view, as shown in the screenshot below. This menu gives you one-click access to several developer tools, such as an editor for the action that opened this view, an editor for the views that are currently displayed, direct links to customize the object model or its workflow, etc. A real life-saver! We also encourage you to explore the Javascript debugging tools of your browser (Firebug for Firefox, built-in developer tools for Chrome/Safari and Internet Explorer) and particularly the Javascript console and request/network monitoring panel, as they will provide valuable insight on the internals of the OpenERP interface and its communication with the OpenERP Server.
The main file format used to develop tests scenarios is YAML. You just need to add a .YML file in a module to ship a fully automated test scenario that will be executed at each installation of your module on a demo database. The above scenario would be implemented like this:
I create a purchase order for Asus with 5 PCE of PC1, and 1 PCE of PC2 !record {model: purchase.order, id: purchase_new}: partner_id: base.res_partner_asus order_line: - product_id: product.product_product_pc1 product_qty: 5.0 - product_id: product.product_product_pc2
Every YAML file is composed of a set of operations separated by a line containing a dash character (-). If you write a line of text without a particular expression, OpenERP will consider it as a comment to be displayed when the test is running. The tag "!record" allows to create an OpenERP object. Since the v6.1 (in trunk), you just need to pass the fields you want to write as if you recorded them in the user interface. OpenERP will automatically simulate the default_get and on_change calls to retrieve other fields: shipping address, product unit of measure, etc. The above code creates a purchase order with two lines. The great advantage of this feature is that it tests and executes all these methods on the purchase.order and purchase.order.line object: default_get, fields_get, fields_view_get, onchange_warehouse_id, onchange_partner_id, onchange_product_id. In your YAML file, you can also add assertions to check the values of a record. These assertion can be Python code (using unittests) or YAML assert tag.
I test that the purchase order total is 5*450+300 EUR = 2550 EUR !assert {model: purchase.order, id: purchase_new} - amount_total: 2550.0 - state: draft
And you can also use any python code to perform your tests.
I validate the purchase order and I check that a draft invoice has been generated !python: {model: purchase.order} self.validate(cr, uid, ref('purchase_new')) po = self.browse(cr, uid, ref('purchase_new')) assert len(po.invoice_ids)==1, "You should have one invoice related to this PO"
That's it! In order to continuously test the evolution of OpenERP, every commit made by a developer is fully tested against thousands of tests that are provided in OpenERP by default. See RunBot.