Archive for ‘Technology’

September 1, 2012

Seamless integration of Sysfore HR & Payroll with Openbravo ERP Finance module

One of the key features required in any Human Resources and Payroll module is the ability of automated generation of financial entries for various salary processed for each of the employees. This helps all organizations to effectively track various resources cost under the respective accounting heads. In Sysfore HR & Payroll module, there are multiple levels at which you could setup these account mappings. As part of a generic setup to the finance module, the salary payable, loss of pay, overtime, standard deductions and additions accounts can be configured. This is described in the image-1 below:


Pay Components
Pay Components form the basis of any employee’s salary structure. There are pay additions or deductions which are defined for each pay grade.

Pay Additions: Some of the organizations give “Overtime Allowance” as a pay addition component in the salary. From an organization’s financial tracking it is important for the management to see such kind of salary components paid out every month. For that purpose, the pay addition is mapped against the respective COA sub account, so that when payroll is processed the G/L Journals are created. As normal, these can be verified by the accounts team before posting the transactions. See Image-2 below for details:


Pay Deductions: In certain countries, as per the prevailing law, organizations make certain deductions like tax and state insurance from the salary. “Employee State Insurance” is defined as a deduction component in the salary. From an organization’s financial operations it is important for consolidating such deductions and do the necessary remittance to the government based on the salary paid out every month. For that purpose, the pay deduction is mapped against the respective COA sub account, so that when payroll is processed the G/L Journals are created. As normal, these can be verified by the accounts team before posting the transactions. See Image-3 below for details:


Once payroll is processed in the respective salary cycle, G/L Journals will get created automatically during the payroll run as in the below Image-4:


Payroll Accounting: In the Finance module, the accounts users can review and post the G/L Journals. Thus the Sysfore HR & Payroll module gives a complete end to easy setup and integration to the Openbravo ERP Finance module. Refer Image-5 below:


March 20, 2012

Openbravo: How to use dynamic expressions

How to use dynamic expressions in Openbravo

–  Amar Singh, Sysfore


Dynamic Expressions are used to obtain values that can depend on session values. For example they can be used to to filter the records that appear in a tab by the ones that were created by the user that has logged into the application.

Session Values: 

Depending on how the definitions are; there are different kinds of session values.

It is possible to check (as System Administrator) all current values loaded in session in Openbravo by going to General Setup || Application || Session Variables window.


Session global variables: These values are generated by the java classes and are accessible from anywhere in the Openbravo application.

Columns :Values for all columns used in a tab are accessible as session variables within that tab. Additionally it is also possible to set explicitly a column a session value by setting its Stored in session attribute. This will make this value accessible not only for its tab but also for all the tabs in that window.

Auxiliary inputs:

Auxillary Inputs are used to create a session value for a concrete tab. This value can be calculated using a Dynamic Expression and its purpose is to use it in other Dynamic expressions within the tab it is defined for.

Auxiliary Inputs are defined in the Openbravo by going to Application Dictionary || Setup || Auxiliary Input tab.


Syntax and types in Dynamic Expressions

Using session values

In Dynamic expressions session values are obtained by their name surrounded by at symbols (@). Thus to get the content of a session value called myValue, it would be done typing @myValue@. Doing it in this manner it would follow the accessibility described above, but it is possible to explicitly obtain the global value (if exists) not taken into account the other ones, to do so the value would have a sharp symbol (#) as prefix. In the previous example it would be @#myValue@.

Dynamic expressions types

There are different types for Dynamic Expression, each type can be used depending on the Application Dictionary object it is defined in. A complete list of all the objects and which kind of expression can use is defined in the next section.

The types are:

Constant :It can be a constant value or a value in stored in session, this type can be used by all the objects. To set this type no prefix is needed.

Examples:  @#AD_User_ID@ 

SQL : Some objects accept SQL expressions. This type must have a @SQL= prefix followed by the SQL clause. It also accepts session values.






      WhereClause : It is a SQL where clause, in this case it is not necessary to add the @SQL= prefix.

Checks : It is used to obtain a boolean value. It does not have any prefix.

Its syntax is Javascript but the comparators are:

·      = instead of ==

·      ! instead of !=

·      & instead of &&

·      | instead of ||