compiere2.5.0c 2003/11/03
将源代码解压到c:/compiere
在Oracle9i中建立用户compiere(具有DBA权限);
import compiere.dmp(需要设置权限,本机安全性原则);
设置java_home和ant_home
将c:/compiere/compiere-all/utils_dev/myDevEnvTemplate.bat复制到c:/compiere/compiere-all/utils_dev/myDevEnv.bat
修改c:/compiere/compiere-all/utils_dev/myDevEnv.bat
将c:/compiere/compiere-all/serverRoot/src/main/ejb复制到c:/compiere/compiere-all/serverApps/src/main/ejb
运行c:/compiere/compiere-all/utils_dev/run_build.bat,成功后会产生安装目录c:/install
解压c:/install/Compiere_C250.zip到c盘
将c:/compiere2/utils/myEnvironmentTemplate.bat复制到c:/compiere2/utils/myEnvironment.bat
运行c:/compiere2/run_setup.bat
运行c:/compiere2/utils/RUN_Server2.bat启动应用服务器
运行compiere2/lib/compiere2.exe测试server和数据库连接通过。
浏览http://localhost/compiere需输入User/Password(SuperUser/System)
compiere2.5.1b 2004/07/06 这个版本不必将c:/compiere/compiere-all/serverRoot/src/main/ejb复制到c:/compiere/compiere-all/serverApps/src/main/ejb
运行后看到的是compiere2.5.1e@2004-06-18,是用CVS下载的源代码编译的。
compiere2.5.1f 2004/10/05
1. 将源代码解压到c:/compiere
2. 在Oracle9i中建立用户compiere(具有DBA权限);
import compiere.dmp(需要设置权限,本机安全性原则);
3. 设置java_home和ant_home
4. 将c:/compiere/compiere-all/utils_dev/myDevEnvTemplate.bat复制到c:/compiere/compiere-all/utils_dev/myDevEnv.bat
5. 修改c:/compiere/compiere-all/utils_dev/myDevEnv.bat,设置J2SDK的路径。
6. 运行c:/compiere/compiere-all/utils_dev/run_build.bat,成功后会产生安装目录c:/install
7. 解压c:/install/Compiere_C251.zip到c盘
8. 将c:/compiere2/utils/myEnvironmentTemplate.bat复制到c:/compiere2/utils/myEnvironment.bat
9. 运行c:/compiere2/run_setup.bat
10. 运行c:/compiere2/utils/RUN_Server2.bat启动应用服务器
11. 运行compiere2/lib/compiere2.exe测试server和数据库连接通过。
12. 测试http://localhost:8080
13. 浏览http://localhost/compiere需输入User/Password(SuperUser/System)
设置时显示的数据库类型是Oracle 10g(9i2)
用CVS下载的源代码编译后显示的是Release 2.5.1g_2004-09-25,sourceforge.net网站上直接下载的是compiere2.5.1f(2004-09-09)
compiere2.5.1g 2005/01/13
utils目录下有建立数据库、汉化等的批处理文件。
汉化批处理文件是RUN_TrlImport.bat,汉化文件是xml文件,放在data/zh_CN目录下,修改文件RUN_TrlImport.bat中的一行为:
@SET AD_LANGUAGE=zh_CN
文件RUN_TrlExport.bat将系统的语言信息导出为xml文件。
实施
1. 以System账号登入系统,设置System Rule:国际化设置,复制设置等
2. 以SuperUser账号/GardenWorld Admin角色登入,设置Client Rule:
修改Client信息,增加角色(Role),给角色分配权限,增加账户(User),指定组织、指定账户的角色
也可以用System账号登入系统,用General Rules-Client Rules-Initial Client Setup创建新的Client,并导入csv文件格式的会计科目设置,样本文件在data/import目录下。然后,以新建的client的角色登入,Import File Loader and Import Accounts。否则,在account element中看不到tree。
同样地,用General Rules-Data-Data Import下的子菜单可以导入csv文件格式的产品、商业伙伴、库存、订单、发票、总分类账等。
Bpartners導入文件的格式:Search Key, Name, Address1, City, State, Zip, Phone
3. 以分配的账户/角色登入,执行权限允许的操作
分析
数据库建模工具是ER/Studio
ad24.dm1 323个表
ad25.dm1 358个表 用ER/Studio打不开
2005/01/17
ad25.dm1已有456个表,用ER/Studio 5.5/6.6打不开,用
ER/Studio 6.6逆向工程产生ad25.dm1。
表名前缀主要有AD,A,C,FACT,GL,I,K,M,PA,R,S,T,W
AD: Application Dictionary
A: Assets
PA: Performance Analysis
M: Material Management
dbport目录中有相应的java文件,在包org.compiere.model中。
系统预设有如下四个账号:
SuperUser/System有三个角色System Administrator、GardenWorldAdmin和
GardenWorldUser,与账户System有相同的组织,一个客户端System,无仓库
System/System有一个角色System Administrator,一个客户端System,无仓库
GardenAdmin/GardenAdmin 有两个角色GardenWorldAdmin和GardenWorldUser,
一个客户端GardenWorld,两个组织HQ和Store,两个仓库Standard和Store
GardenUser/GardenUser 有一个角色GardenWorldUser,一个客户端GardenWorld,两个组织HQ和Store,两个仓库Standard和Store
角色决定了客户端、组织、仓库,角色System Administrator的客户端是System,不可修改;角色GardenWorldAdmin和GardenWorldUser有相同的客户端,可修改
新建一个角色后,缺省地与角色GardenWorldAdmin有相同的权限、客户端和仓库,可指定组织。
新建仓库时需指定组织,因此,不同的组织可以有不同的仓库。
Material Transaction查询库存情况,库存异动movement type共有12种:Customer Returns, Customer Shipment, Inventory In, Inventory Out, Movement To, Movement From, Production+, Production-, Vendor Receipts, Vendor Returns, Work Order+, Work Order-。
Production: Production+
Physical Inventory: Inventory In入库
Material Receipt: Vendor Receipts
Invoice(Vendor): Vendor Receipts
Inventory Move: Movement To, Movement From
Sales Order: Customer Shipment
Shipment(Customer): Customer Shipment
Inventory Valuation Report:库存盘点报表
Business Partner分为三类:Staff, Standard Customers, Vendors
Product分为:Stocked, Bill of Material, Purchased, Sold,Discontinued
目录结构
base
client
data:与数据库有关的文件,compiere发布中需要的目录
db:与数据库有关的文件
dbport
doc: 为整个compiere建立API 文档,运行Run_doc.bat成功后会建立一个API目录;每个子项目目录中一般有documentation.bat,为这个子项目建立文档,成功后文档放在doc目录中。由于国际化问题,有些子项目建档出错。
extend
install
interfaces
jboss:jboss服务器,compiere发布中需要的目录
launch
lib:compiere发布中需要的目录,包括文件CClient.jar、CTools.jar、jPDFPrinterDemo.jar、oracle.jar、postgresql.jar
postgresql.jar—PostgreSQL JDBC
oracle.jar-- Oracle JDBC 9.2 (ojdbc14)
jPDFPrinterDemo.jar-- PDF Printer from Qoppa Software (demo)
The license is included in ComPiere Support.
You can purchase the license also directly from
http://www.qoppa.com/buy/jpdfprinter.html
looks
model:Ration Rose模型文件Base.mdl、design.mdl、print.mdl
server
serverApps
serverRoot
tools
utils:compiere发布中需要的目录
utils_dev:编译源代码的批处理文件,run_build.bat是主编译文件
webStore
浏览http://localhost:8080需要输入XDB帐号/密码(compiere/khg610110)的问题,停止ORACLE的相关服务就可以了。
应用程式连接埠:1099
File|New|Build(External Build Task)可用来在Jbuilder中用ant编译工程文件。
定制compiere
增加菜单
以client admin角色登入,选General Rules-System Rules-Menu菜单进入menu window,增加menu。Summary level的menu是父菜单,用鼠标移动可以建立父子关系。 Menu的action有7种: workbench, workflow, process, report, task, window, form。它们的访问角色决定相应菜单的访问角色。因此,不必为菜单单独设置访问角色。
如何为不同的角色设置不同的菜单树?以system administrator角色登入,选General Rules-System Rules-Tree and Node Image,输入Name(myMenu),Type|Area选menu。
以client admin角色登入,选General Rules-System Rules-Menu设置myMenu菜单树。选General Rules-Client Rules-Role,设置角色的Primary Tree Menu为myMenu。但是以所设的角色登入时,菜单树并没有改变。Compiere好像不支持角色有不同的菜单树,这一点可以从数据库的表结构看到(菜单树的表结构中没有角色字段)。
增加Task
选General Rules-System Rules-Task进入Task Window输入name, OS Command
增加WorkFlow
选General Rules-System Rules-workflow进入workflow Window
增加Report&Process
选Application Dictionary-Report&Process进入Report&Process Window
需要输入classname或procedure, 如果选了Report check box, 需指定Report View和Print Format, 可指定Report参数。指定的Print Format在运行Report时没有与Report绑定,可能是用不同的角色登入时引起的。
report&process window定义report和process,process可以用java类或oracle的procedure定义。定义report时需先定义Report View, Report View 确定了数据库的表或视图,可以是现有的表或视图,也可以新增表和视图。新增表或视图有两步,先在oracle中增加表或视图,后在compiere的Table and Column Window中增加table.
选Application Dictionary-Report View进入Report View Window,
以client admin角色登入,选General Rules-Printing-Print Format进入Print Format Window可定义Print Format。选现有的table后按copy/create按钮可产生column,但是选新建的table后按copy/create按钮不能产生column,要增加Element才行。可在Format Item tab一个一个增加cloumn。Print Format也可在运行报告时定义。定义的Print Format在定义Report时没有出现在Print Format的下拉框中。
增加Form
增加类文件org.compiere.apps.form.myForm,这个类文件要按照一定的要求编写。
选Application Dictionary-Form进入Form Window, 输入name, classname(org.compiere.apps.form.myForm)等
增加Window
选Application Dictionary-Window,Tab&Field进入Window,Tab&Field Window, 在Window Tab输入name, 在Tab Tab输入name, Table, 然后点击Create Fields。增加Window可以为数据库中的表增加输入窗口。
在field tab内的field group将window内的field分组,影响window上field的显示。在tab中,一行只有一个字段。如何使一行有多个字段?Same line让这个字段与上一个字段显示在同一行。
增加Table
首先在数据库中增加Table,必须有一些必需的字段,有些主表必须有ad_client_id和ad_org_id,可能还需设置约束。
然后选Application Dictionary-Element,为每一列增加Element。
然后选Application Dictionary-Table and Column进入Table and Column Window, 输入Name, DB Table Name, Data Access Level后点击Create Columns from DB。
在column tab内,使DB Column Name和System Element对应。可指定column的reference为button,选择process为button指定动作。这样,为这个table设置的window的tab中就会出现button.
代码分析
类org.compiere.compiere是主类,它会调用org.compiere.apps.Alogin显示登录对话窗,登录对话窗有两个“OK”按钮,对应第一按钮的方法是connectionOK(),对应第二个按钮的方法是defaultsOK(),这两个方法执行成功后,org.compiere.compiere会调用org.compiere.apps.Amenu显示菜单和菜单树。在org.compiere.apps.Amenu的构造函数内建立了VTreePanel类treePanel,调用了VtreePanel的initTree()方法。org.compiere.grid.tree.VtreePanel的initTree()方法创建了MTree类vTree。MTree类通过数据库中的相关表构造树,这些表是AD_TREE,AD_TREEBAR,AD_TREENODE,AD_TREENODEBP,AD_TREENODEMM,AD_TREENODEPR。
除了菜单树以外,还有org, Account Element, Business Partner, Product与树有关。
org.compiere.apps.Amenu调用org.compiere.apps.AmenuStartItem处理多线程,根据所选菜单的action分别处理window,process&report,workbench,workflow,task,form。
AWindow调用APanel, APanel创建主菜单和工具栏,构造Window框架,调用MWindow, MWindow调用MTab设置Window中的Tab。
数据持久有关的类PO<-X_M_***<-M***,其中X_M_***与相应的数据库表相对应。
CVS
在wincvs的admin-login中的配置如下图所示:
选定存放源代码的目录。
在admin-command line中输入如下命令行:
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/compiere co compiere-all
在eclipse3.0中使用cvs的方法:
选择菜单Windows-Open Perspective-Other…,在Select Perspective窗口中选择CVS Repository Exploring,在CVS Repositories窗口中点击鼠标右键,在弹出的菜单中选择New-Repository Location,在Add CVS Repository 窗口设置好有关的项目就好了。然后选择HEAD-compiere-all, 点击鼠标右键,在弹出的菜单中选择Check Out。
2005/11/22 compiere 2.5.3a
下载了compiere 2.5.3a和Oracle10g,Oracle10g与Oracle9i有很大不同,管理界面改为Web了。按原来的经验创建数据库没有成功。
参考http://compiere-china.com/ 上的安装步骤就可以了。
2005/12/03 中文语言问题
以system登录compiere,点击General Rules/System Rules/Translation Import/export节点,点击import按钮导入XML文件,注意选择语言包XML文件所在的目录就可以了。
compiere 2.5.3a的数据库有514个表
2005/12/05 compiere 2.5.3a
在Eclipse中设置CVS获得源代码时需要设置代理服务器,在代理服务器ISA上设置端口2401,安装了ISA客户端。
在源代码的目录/compiere-all/db/ermodel中有文件ad25.dm1,用ER/Studio 6.6可以打开。
想在VS.NET中用DeKlarit逆向工程但是需要很长时间,没有耐心做完。
VS.NET有一个JAVA转换到.NET的工具JLCA3.0,需要在微软的网站下载。
2006/04/06 compiere 2.5.3b
下载了CompiereSource_253b.zip解压到c:/compiere目录中,用J2sdk1.4编译会报语法错误,用J2sdk1.5.0_05编译成功后会产生目录C:/install,但报run_setup不成功。但可解压c:/install中的Compiere_C252.tar.gz运行c:/compiere2中的run_setup.bat