锘??xml version="1.0" encoding="utf-8" standalone="yes"?> iReport is a graphical tool you can use to create/edit templates (jrxml files) that will be later processed by JasperReports engine. JasperReports introduced a change in version 3.6.1 that it should fail (throw an exception) when you're trying to use a font that is not available. If you open a JasperReports template and is using a font not available in your system, you won't see the text of label. To avoid this problem you need to configure your iReport to skip this check. Openbravo 3 doesn't support out of the box any Scriplet class. Make sure your template doesn't contain any class in the template properties. The default language for expressions in Openbravo 3 is Java. Make sure that your template uses Java as language expression. @SQL=SELECT COALESCE(MAX(ColumnName),0)+10 AS DefaultValue FROM TableName WHERE xxParentColumn=@xxParentColumn@ The WHERE part of this clause needs to be replaced with the required values. The code that should appear here is the name of the column which links with the id of the parent one. For example, each record of the C_InvoiceLine belongs to a particular C_Invoice record and they are all sequenced. C_Invoice is the parent table for the lines saved in C_InvoiceLine. This table has a column named line and the default value that it takes is: @SQL=SELECT COALESCE(MAX(LINE),0)+10 AS DefaultValue FROM C_INVOICELINE WHERE C_INVOICE_ID=@C_INVOICE_ID@ The first option can be chosen if the original module author wants to
add more columns to his/her module. The second option is possible for
anyone as the columns are added by a new module to the existing one
which is not changed directly.
The main difference between these two methods is the names which
need to be chosen for the columns to comply with the modularity naming
rules.
In the Application Dictionary || Message window create a new record using the following details:
Message涓殑Message Text瀛楁鍐呭閫氳繃 %0 鏉ユ帴鍙椾紶閫掕繘鏉ョ殑鍙傛暟
]]>
You must use iReport 4.0.1 Fonts
JasperReports 3.6.1 (2009-10-26, SVN 3170) --------------------------------------------- - net.sf.jasperreports.awt.ignore.missing.font configuration property added to control font availability verifications during report filling and report AWT rendering;
Scriplet Class
Language
]]>
The new table must include the AD_Client_ID, AD_Org_ID, IsActive, Created, CreatedBy, Updated and UpdatedBy fields that are mandatory and required for security and auditory purposes of the application.
Each table must have at least one column marked as an identifier. The actual values of identifier columns later get concatenated to be shown to the user as a representation of a particular record (see the link to the Sales Order within the Sales Invoice window). These identifiers will also be used to construct dropdown lists of records of that particular table. By default all columns with column name Name are set as an identifier. In case there is no column with this Name, no identifier is set and needs to be done so manually or compilation will fail.
NOTE: The columns that are named line or seqNo are used to contain the sequence number of a record (i.e. the number of a line in an invoice). They take a default value like: How to add Columns to a Table
These changes can be done in two different locations:
How to add a Constraint
Creating a new instance of a Business Object
A business object may never be created using the Java new operator. All business objects should be created using the OBProvider factory class:
// create the object through the factory final Category bpg = OBProvider.getInstance().get(Category.class);
Hibernate will detect that a business object is new when:
So if you want to create a new business object with a specific id (by calling setId(...)) then you explicitly need to call businessObject.setNewOBObject(true). Otherwise, Hibernate will throw an exception ('count of batch update operation....').
You can change the decimal separator, the field separator, and the encoding of the file you get when you use the Export to Spreadsheet functionality in Openbravo if you need them to be different from the default values.
This is done via preferences. After logging in to Openbravo, go to the Preference window and do the following:
After creating the preference (or preferences), log out of the application. Log in again, and try the Export to Spreadsheet functionality, to see the results.
錛?錛?strong> Create Shipment from orders 鎻愮ず搴撳瓨涓嶈凍
媯鏌?/span>Order鎵鍦ㄧ殑Org錛屽叾Warehouse Tab娌℃湁閰嶇疆鐩稿簲鐨?/span>Warehouse銆?/span>
錛?錛?/span>Quotation鏃犳硶杞崲鎴?/span>Sale Order
Document Type涓殑Quotation欏圭洰蹇呴』鎸囧畾Document Type For Order
the "Quotation" document type requires a sales order document type (i.e. Standard Order) to be defined as "Document Type for Order" to allow the conversion of a sales quotation into a sales order.
(5)There are three ways of accounting in Openbravo:
(6) Payment Status
To better understand the configuration of the payment method, it is also necessary to understand the payment status related to the process steps.
During the whole Payment Cycle, the payment is defined by one status so the user knows the last step of the process that took place and the following step that should take place.
In the following explanation and diagram below, the different Payment Statuses are explained.
When you register the module, fill in the fields as follows:
When you click Register Module you will be asked to supply your username and password for the Openbravo Forge
When you have registered the module, the next stage is to export the database to create the necessary module folders.
ant export.database
You can now translate the .xml files using your preferred editor. When you have finished translating, copy them into the translation subfolder you have already created.
To package the module, 鎵ц涓嬪垪鍛戒護 ant package.module -Dmodule=modulename, where modulename is the Java package name of the module.
It is a known issue that the tree icon in the teams window does not work. If it is clicked it throws an error. Openbravo ERP does not support trees on modules yet. Still, the module has been designed to provide a mean to workaround this issue. As for that, some java files needs to be modified and the application recompiled to make the changes visible. Take into account that this is a core modification (and core modifications should not be done). If a core modification is done, whenever the system is updated with the next maintenaince pack, the changes will be lost (you will have to remember to do them again after updating the system).
Making this changes will make the tree icon work and so, the drag and drop functionality will be usable. The changes consist on adding the following lines in the following files:
} else if (TreeType.equals("HCMC_TE")) {
result = "";
else if (keyColumnName.equals("Hcmc_Team_ID"))
TreeType = "HCMC_TE";
else if (TreeType.equals("HCMC_TE"))
data = WindowTreeData.selectTeam(conn, vars.getUser(), strEditable, strParentID, strNodeId,
TreeID);
<SqlMethod name="selectTeam" type="preparedStatement" return="multiple">
<SqlMethodComment></SqlMethodComment>
<Sql>
SELECT tn.Node_ID,tn.Parent_ID,tn.SeqNo,tb.IsActive, te.HCMC_TEAM_ID AS ID, te.NAME, ' ' AS Description,te.IsSummary
FROM AD_TREENODE tn LEFT JOIN AD_TREEBAR tb ON tn.AD_Tree_ID=tb.AD_Tree_ID
AND tn.Node_ID=tb.Node_ID
AND tb.AD_User_ID = ? ,
HCMC_TEAM te
WHERE tn.Node_ID = te.HCMC_TEAM_ID
AND tn.AD_Tree_ID = ?
ORDER BY COALESCE(tn.Parent_ID, '-1'), tn.SeqNo
</Sql>
<Parameter name="adUserId"/>
<Parameter name="editable" optional="true" type="none" after="WHERE " text="tn.IsActive='Y' AND te.isActive='Y' AND "/>
<Parameter name="parentId" optional="true" after="WHERE " text="tn.Parent_ID = ? AND "/>
<Parameter name="nodeId" optional="true" after="WHERE " text="tn.Node_ID = ? AND "/>
<Parameter name="adTreeId"/>
</SqlMethod>
Notice that the line number above may change over time.
Notice that this lines should be eliminated manually if the module is unistalled.
Add Team Manager
org.openbravo.hcm.common.ad_process.HCMC_addmanager_process.java
final Calendar today = Calendar.getInstance();
final SimpleDateFormat sdf = new SimpleDateFormat();
sdf.applyPattern(bundle.getContext().getJavaDateFormat());
final Date effectiveFrom = sdf.parse(strEffectiveFrom);
final Date effectiveTo = ((strEffectiveTo != null && strEffectiveTo != "") ? sdf
.parse(strEffectiveTo) : null);
Logged in as client admin, users can be created navigating to General Setup || Security || User . In the user roles tab, roles can be assigned to this users. Later on, once the employees are inserted in the system, each employee can be associated to a user. This way, the employee can access the system with his/her own user and see their personal information.
Example: Creation of a user for an employee called Peter:
Example: Creation of a user for a manager called Mary:
This article explains in detail how to install and configure the whole stack required for a Openbravo ERP development environment, including:
The whole guide is valid for all the hardware architectures the stack supports, such as x86 or x86_64. A minimum of 2GB or RAM is recommended for x86 and 3GB for x86_64.
A development setup has different needs than a production environment. The main goal is to make the developer's life as easy as possible, while increasing the productivity.
Some of the components are configured in the same way as in a production system. In those cases a link to the production environment setup is provided.
We recommend using Linux or another UNIX-alike flavor (*BSD, OS-X, OpenSolaris). The amount of useful development tools provided by these operating systems are vastly superior to the rest, at least regarding Openbravo ERP. Do not use Windows.
Create an unprivileged user for you in this operating system. And once the environment is configured, avoid using the root user for anything related to Openbravo ERP development. Specially, do not compile as root.
Follow the installation steps to install PostgreSQL, configure an admin (postgres) password, and setup the MD5 password authentication. 8.3.5 or higher is the recommended version. Additionally, make sure the postgresql-contrib modules is installed (UUID requires it). Once it is installed, and to make the database accessible from anywhere, so that external developers or yourself can access it easily with PgAdmin3, psql or any other development tool. Locate and edit the postgresql.conf file, and uncomment the following line, assigning this new value:
listen_addresses='*'
This makes the database be listening in all the interfaces available in your system and not only in localhost (default).
Locate and edit the pg_hba.conf file, and add this line at the end:
host all all 0.0.0.0/0 md5
Or if you want more security you can change the 0.0.0.0/0 with the concrete IP that you want to give access for example 1.2.3.4/32.
Just for safety purposes, this assumes you have a firewall in your local LAN preventing outsiders to access the database.
![]() |
As an example, in Ubuntu 10.04, these file are located in /etc/postgresql/8.4/main, assuming that you have installed PostgreSQL 8.4.x |
Do not use Oracle XE 10g. It's 4GB storage limitation makes it useless for heavy development in a few days, and it has a bug that happens usually when using Openbravo ERP. Therefore, the recommended version is Standard Edition 11g (>=11.1.0.6.0).
The number of open cursors should be 3000 at least. To verify this:
SELECT value FROM v$parameter WHERE name = 'open_cursors';
To increase it:
ALTER SYSTEM SET open_cursors = 3000 SCOPE=BOTH;
Make sure that the number of processes is 150 at least. To verify this:
SELECT value FROM v$parameter WHERE name = 'processes';
To increase it:
ALTER SYSTEM set processes=150 SCOPE=SPFILE;
And restart Oracle after doing this change.
Follow the installation steps to set up the Sun JDK. Notice that version JDK 1.6 must be used for version >=2.50 developments.
The IBM JDK works well too, but almost all the developers use Sun's version. It is therefore the recommended one.
Follow the installation steps to set up the Apache Ant. Since version 2.50 Ant needs its memory settings to be tweaked. Otherwise some basic tasks like a compilation are likely to fail. Assuming you are using Bash as your shell, append the following line to your ~/.bashrc file:
export ANT_OPTS="-Xmx1024M"
For 64bit machines:
export ANT_OPTS="-Xmx1024M -XX:MaxPermSize=128M"
See the Apache Tomcat section for an explanation of what these options mean.
Close your current shell session and open a new one to apply changes.
Do not use the Tomcat version provided by your operating system's package manager. The packaged version of Tomcat is very unfriendly in terms of development due to web application deployment specifics. This especially applies to Linux distributions.
Instead, download the official distribution (version 6.0.x), and extract the files in your home directory. We recommend you to place it in ~/servers/tomcat.
Every Linux distribution and operating system packages Tomcat in a different way, with different security settings, permissions, memory setting and logging configuration. Some of these configurations are not development friendly. This is the reason of the recommendation to use the official distribution.
The default memory settings of Tomcat are not enough for a proper Openbravo ERP functioning. Thus append the following line to your ~/.bashrc
export CATALINA_OPTS="-Djava.awt.headless=true -Xms384M -Xmx512M -XX:MaxPermSize=256M"
These options are the same ones as for production environment, except for the -server option. This is useful only in production servers, because it makes the JVM to use the optimizing compiler instead of the standard one. And while this change increases significantly the performance of the server, it takes longer to warm up. And deployment speed is something that a developer appreciates.
In order to avoid the Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK error when trying to compile the application from Tomcat using the Openbravo ERP web interface, add the tools.jar library to Tomcat's classpath:
cp $JAVA_HOME/lib/tools.jar ~/servers/tomcat/lib/
In order to avoid Tomcat from auto-reloading itself, comment the WatchedResource line in conf/context.xml:
<!-- <WatchedResource>WEB-INF/web.xml</WatchedResource> -->
Configure a username and password for the Tomcat Manager, by replacing the conf/tomcat-users.xml file with these contents:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>
Replace password="admin" with your own password.
Finally, to start and stop tomcat use the following commands:
cd ~/servers/tomcat/bin
./startup.sh
./shutdown.sh
Follow the Mercurial manual for Openbravo developers to install and configure it.
Error received in IO response: liveGrid.getBackendPageSize is not a function
瑙f焙鏂規硶:
娓呴櫎嫻佽鍣ㄧ殑Cookie鍚?OK
postgresql-8.4娌℃湁瀹夎
postgresql-contrib-8.4瀹夎鍚嶰K