。
ant installWebService安装Web Service到应用服务器的目录。
ant install.source会执行ant core.lib,ant wad.lib,ant trl.lib,ant compile.complete,ant installWebService和ant war任务。这个任务只用于安装。
开发环境
在开发环境中内容中手工拷贝的。我们不会生成war文件因为这比较耗时。
第一次编译过程是这样的:
ant core.lib
ant wad.lib
ant trl.lib
ant compile.complete.development
然后编译整个应用程序:
ant compile.complete.development
编译特定的窗口:
ant compile.development -Dtab="window name"
编译手工代码:
ant compile.development -Dtab=xx
为了编译时避免执行翻译的任务(对于这个阶段将时间花在这上面是没有必要的),可以在命令中添加一个参数:-Dtr=no。
ant compile.development -Dtab="window name" -Dtr=no
ant compile.development -Dtab=xx -Dtr=no
生产环境
在生产环境下应用程序会打包在war文件中。这可以让我们对每一个应用程序设置正确的权限,但是我们必须将war文件发布到tomcat中,以使它能运行起来。
第一次编译的过程如下:
ant core.lib
ant wad.lib
ant trl.lib
编译整个应用程序:
ant compile.complete
ant war
ant deploy
编译指定的窗口:
ant compile -Dtab="window name"
ant war
ant deploy
编译手工代码:
ant compile -Dtab=xx
ant war
ant deploy
从源代码构建
这一节是如何从源代码构建的快速指南。你可以在 Build Openbravo from Sources看到完整的步骤。
安装Subversion
Subversion是一个源码控制工具,可以让开发者控制文件的版本。
构建前必须先安装Subverion。可以从这里
下载:
http://subversion.tigris.org *
必须同时安装OpenSSL。
现在的源代码还不支持PostgreSQL只支持Oracle。 Openbravo 2.3 将会支持PostgreSQL。
从Subversion中检出源代码
安装好Subverion后运行如下代码:
svn co https://openbravo.svn.sourceforge.net/svnroot/openbravo/trunk AppsOpenbravo
将会创建AppsOpenbravo的目录,源代码保存的目录。
快速构建指南
从创建的subversion文件的目录运行如下命令:
ant -f build.xml.template setup
这个过程会配置安装参数。
build.xml 被创建
在config目录下创建dbCon5.xml, XmlPool.xml, log4j.lcf 和 userconfig.xml
在 src 目录下创建 deploy.wsdd
使用Oracle数据库时所有这些文件都会被创建。如果使用PostgreSQL需要将dbCon5.xml 和XmlPool.xml文件名修改为dbCon5_PostrgreSQL.xml 和XmlPostgreSQL.xml。
当参数按上面的方式配置好后,再运行下面的命令。
ant install.source
这个过程编译并生成应用程序的jar文件并在lib目录下生成openbravo.war文件。需要将些文件复制到$CATALINA_HOME/webapps 目录以发布应用。
集成开发环境
一些快速入门以Eclipse来开发Openbravo ERP,可以参考以下
链接:
Openbravo数据模型
存储的数据库对象
某些情况不在Openbravo中的数据库对象(存储过程,函数和触发器)必须符合指定的规则才能使用。应用程序中存储过程时只能通过对应的AD_PInstance_ID来调用。存储过程也必须正确的管理AD_PInstance,设置返回值、设置有用的输出信息。在创建存储过程这一节会更详细的介绍如何开发一个存储过程。
实体-关系(ER)图
Openbravo的实体-关系数据库图展示了Openbravo整个的数据模型。它包括了Openbravo ERP的功能所使用的所有表和字段。
根据应用程序字典中的数据生成了文档。这些图按不同的主功能模块分成了几个章节。同一个表可能在不同的章节中出现但具体的描述只出现一次。这样做是为了强调某一个章节中主要的表与其他章节中表的关系。例子中展现了所有的关系但没有代表性的表不会出现在章节