JallInOne is a rich internet application that provides ERP functionalities for SMEs (Small and Midsize Enterprises). This solution includes robust functionalities allowing for the management of inventory (including up to 5 variants/subvariants, barcode support, prices at variants level), sales and financials, POS, procurement, warehouse, orders tracking, cal- outs and activities, manufacturing, documents management, reports.
Basic CRM (Customer Relationship Management) is built in as well.
The correct management of the master data (companies, languages, currencies, measure units, products and components, bills of materials, customers, vendors, etc.) is a fundamental aspect for guaranteeing the coherence and tracking of the organization processes.
Primary objectives targeted by JAllInOne are: (i) avoiding duplications by maintaining exclusive coding, (ii) sharing the relevant information among all areas of the organization, (iii) facilitating the rapid and easy flow of information between all areas implicated in the different company processes. This is achivied also by means of an accurate database design and strong code reusage in several application areas.
JAllInOne may be easily configured to meet the needs of business: e.g. companies and companies visibilities, supported languages, currencies and conversion factors, measure units and conversion factors, users and roles and features visibility, data access and visibility, forms and reports customization.
To enhance flexibility to adapt to the specific organization particularities, a rule engine is available to customize business logic and application behaviour: this allows to extend JAllInOne functionalities by adding custom code, that will be independent (does not conflict) from future releases of JAllInOne.
Moreover, JAllInOne is released on LGPL licence: since it is open source, you get it without the need to pay for licenses; you are free to decide how much are you going to invest for its adaptation without the hassle of exclusivity contracts or licenses and you can benefit of any future releases and improvements to the product.
JAllInOne front-end is built above OpenSwing GUI layer: this one provides a powerful layer including support for MDI (Multi document interface), grids, detail forms, events management, data extraction, authentication and authorizations management, internationalization settings (language, data format, etc).
The rest of this chapter will describe these topics in detail.
Graphical computer applications with a Multiple Document Interface (MDI) are those whose windows reside under a single parent window, as opposed to all windows being separate from each other (single document interface). This involves the availability of a unique environment that contains all application features.
JAllInOne MDI environment provides a menu bar and a tree menu that contain the same set of functionalities: they are organized in a hierarchical way and can be accessed through the mouse onto the tree menu or by using ALT+some key combination by using the keyboard. Also a functionality search field is provided above the tree menu: this feature simplify functionality search.
On the bottom of the frame there are two bars: one bar lists the last opened windows and allows to swith from one opened window to another by simply click with the mouse on the related button onto the bar; user can also drag ‘n' drop data from a window to another by moving the mouse over a button onto this bar to swith between two windows.
The last bar shows some UI widgets:
Grids include support for pagination, data filtering and sorting. User can quickly apply a sorting condition to a column by clicking on the column header: it is a three-state button (no sort, sort with ascending versus, sort with descending versus).
User can quickly apply a filtering condition on a column by right clicking with the mouse on a grid cell: it can apply a filtering condition for each column; filtering criteria are: “equals”, “contains”, “starts with” and “ends with”.
User can directly insert/edit/delete rows on grid. Many data format are supported for grid columns: text, number, date, currency, check-box, combo-box, images, lookups (see below). All these formats are fully supported both when rendering data and when editing data on grid.
Both a grid and a detail form can be linked to a set of buttons (aka a toolbar) to easily manage their behaviour: insert button, edit button, save button, undo/reload button, delete button; there exist also shortcuts for each of these buttons: CTRL+I to switch to insert mode, CTRL+E to switch to edit mode, CTRL+Z to undo/reload data, CTRL+S to save data, CTRL+D to delete data.
OpenSwing framework provides a feature to automatically export grid content; JAllInOne provides an “export” botton linked to grids to export grid content; supported export formats are: XLS, CSV, HTML, XML, RTF, PDF.
Both grids and detail forms support the lookup component: it is composed of an input text field and a lookup button. The text field content is validated when losting focus on it; it can be useful to quickly validate codes (e.g. item codes, customer codes, etc). The lookup button is used to show a lookup window that can contain a grid or a tree or a tree+grid. This is useful when a code must be selected by a list of codes, organized as a rows in grid or as tree nodes or as rows in grid, filtered by the selected tree node (e.g. item code selection in a tree+grid window, where tree shows item hierarchy and grid show items filtered by hierarchy level currently selected on the tree). Usually a lookup provides two buttons: the last one allows to open a managent window that allows to define new codes: this is useful when the desired code is not yet available and must be created before referring it.
Authentication and authorizations management
Authentication is required to access JAllInOne: username and password must be provided by the user.
JAllInOne allows to define a list of users. A user can be optionally mapped with an employee of the organization.
Toolbar buttons linked to grid or detail form are under the control of authorization management component of JAlInOne. That component is able to enable/disable toolbar buttons according to grants assigned to the user. Each user has a list of associated roles. A role represents a list of functionalities and for each combination role – functionality, a set of grants are linked: can show, can insert, can edit, can delete.
Moreover, JAllInOne supports data storage per company; it is possible to define many companies; there are functionalities that are independent from the company (e.g. vat, measure units, colors) and functionalities that requires company selection. So authorizations can be defined per company – role – functionalities or per role – functionalities.
JAllInOne has internationalization and localization support at several levels:
JAllInOne is written in java, so it supports Unicode standard (an industry standard designed to allow text and symbols from all of the writing systems of the world to be consistently represented and manipulated by computers), that can be used both on front-end translations and on data stored in the database (if the adopted database supports that character encoding).
User can change current used language by the specific menu item in the menu bar.
Each user has a default language associated to him.
JAllInOne provides more than 30 reports; those reports are generated by means of Jasper Report open source library. Jasper Report library is able to generate documents in PDF format (and in many other formats too). Those documents are showed inside JallInOne front-end as a preview and from that preview a user can save or print the document.
JAllInOne allows to customize reports provided with the application, through a customization functionality that prompts the user to upload a new .jasper file to use instead of the standard report template. In this way an organization can easily customize standard report templates, e.g. by adding an own logo.
There are several customizations offered by JAllInOne:
OpenSwing graphics components include some shortcut that simplify data definition and manipulation.
These are some shortcuts a user can use to speed up his work:
To obtain detailed information about OpenSwing and generic features available in JAllInOne too, you can see OpenSwing official site: