二次开发培训文档一、ECOLOGY系统框架结构1、主要的程序结构EcologyClassbean存放编译后的CLASS文件js系统中使用的JAVASCRIPT和VBSCRIPT脚本Css系统中JSP页面使用的样式ImagesImages_faceImages_frame系统中使用的图片的存放目录Crm..Workflow该功能分文件夹存放每个功能的文件WEB-INFProp系统配置文件存放Service系统的接口配置文件的存放二、说明一个JSP页面,一个JAVA程序的基本组成,如何阅读JSP页面1、一个jsp页面通常需要包含什么内容2、如何阅读一个系统已有JSP页面由于ECOLOGY系统支持多语言,因此在JSP页面上一般不出现中文,全部使用标签的形式来显示中文:比如:在IE上显示“姓名”那么在JSP页面中将通过%=SystemEnv.getHtmlLabelName(413,user.getLanguage())%这样的形式来表示,其中的数字413就是表示姓名,同时可以通过“selectlabelnamefromhtmllabelinfowhereindexid=413andlanguageid=7”来获取到“姓名”这个显示名称,其中languageid=7表示中文显示名称,languageid=8表示英文显示名称,languageid=9表示繁体显示名称.3、JAVA程序的基本组成在ECOLOGY中开发JAVA程序建议继承weaver.general.BaseBean,在BaseBean中主要封装了两个方法:写日志文件,获取配置文件中的参数值。写日志的方法:writeLog(Objectobj)日志会输出到weaver/ecology/log/ecology中获取配置文件数据:getPropValue(Stringfname,Stringkey)比如获取weaver.properties中的DriverClasses的值,代码如下:getPropValue(“weaver”,”DriverClasses”)三、如何添加多语言版本的标签添加的标签请使用负的ID,ID值通过sql获取Selectmin(id)-1fromHtmlLabelIndex然后使用下面的sql插入标签,注意修改下面sql中对应的值,如果是oracle数据库,请把“GO”替换成“/”deletefromHtmlLabelIndexwhereid=-32166GOdeletefromHtmlLabelInfowhereindexid=-32166GOINSERTINTOHtmlLabelIndexvalues(-32166,'预算项目维护')GOINSERTINTOHtmlLabelInfoVALUES(-32166,'预算项目维护',7)GOINSERTINTOHtmlLabelInfoVALUES(-32166,'Budgetprojectmaintenance',8)GOINSERTINTOHtmlLabelInfoVALUES(-32166,'預算項目維護',9)GO四、页面权限控制的说明这一部分将讲解怎样在页面中引用权限,怎么样新增一个权限,如何在新开发的模块上引入权限控制,1、引用系统中的权限首先从系统的权限设置中找到需要引用的权限名称,如下图找到“表单维护”这个权限,其ID为591,然后通过“selectrightdetailfromsystemrightdetailwhererightid=591”得到其rightdetail=“FormManage:All”,那么在JSP页面中通过如下语句,就可以使得有“表单维护”这个权限的用户可以查看该页面%@includefile=/systeminfo/init.jsp%%if(!HrmUserVarify.checkUserRight(FormManage:All,user)){response.sendRedirect(/notice/noright.jsp);return;}%2、如何新增新的权限如何在新建的功能模块上添加新的权限(JSP页面添加权限控制)第一步:通过类似的sql先添加一个需要的权限deletefromSystemRightDetailwhererightid=1000000GOdeletefromSystemRightsLanguagewhereid=1000000GOdeletefromSystemRightswhereid=1000000GOinsertintoSystemRights(id,rightdesc,righttype)values(1000000,'客户环境报表维护','7')GOinsertintoSystemRightsLanguage(id,languageid,rightname,rightdesc)values(1000000,9,'客戶環境報表維護','客戶環境報表維護')GOinsertintoSystemRightsLanguage(id,languageid,rightname,rightdesc)values(1000000,8,'CustomerSystemReport','CustomerSystemReport')GOinsertintoSystemRightsLanguage(id,languageid,rightname,rightdesc)values(1000000,7,'客户环境报表维护','客户环境报表维护')GOinsertintoSystemRightDetail(id,rightdetailname,rightdetail,rightid)values(42717,'客户环境报表维护','CE_CustomerSystemReportMaint',1000000)GO在数据库中执行完上面的sql后,在系统权限管理中就可以看到添加的该权限了!注意:以上SQL语句中的id请用负数或者统一使用1000000以上的值(这样可以避免和我们升级可能给出的权限重复),并保证不重复,同时保证SystemRightDetail的字段rightdetail也不能重复,上面插入SystemRightDetail表数据的sql,其中42717目前没有实际意义,但也请不要重复,可以使用一个非常大的数据,比如500000。第二步:在要控制权限的页面上加上以下的程序就可以%@includefile=/systeminfo/init.jsp%%if(!HrmUserVarify.checkUserRight(CE_CustomerSystemReportMaint,user)){response.sendRedirect(/notice/noright.jsp);return;}%五、流程数据存储说明这里主要介绍流程的数据存放结构及如果通过流程类型获取到流程的字段信息,流程的载体分为表单和单据两类,表单和单据的区别在于:所有使用表单的流程数据存放在同一个表中,而单据每个单据对应着一张独立的数据表流程数据存储说明.docx几个常用表的表结构workflow_bill.docworkflow_requestbase.docworkflow_base.docworkflow_currentoperator.docworkflow_requestLog.doc六、文档数据存储说明1、文档的主要数据结构文档信息的主要存储表:DOCDETAIL:文档信息存储表,主要存放文档的基本信息DOCDETAILCONTENT:文档内容存放表(如果是ORACLE数据库,如果文档的类型是HTML文档,那么文档内容存放在该表中,SQLSERVER数据库不用该表)DOCIMAGEFILE:文档,附件关联表,此表记录文档和附件(WORD,EXCEL格式文档在数据库中按照附件格式存放)的关系(即一个文档关联了几个附件)IMAGEFILE:附件路径存放表,此表记录了文档的附件(或者WORD,EXCE)存放在文件服务器上的位置DOCSHARE:文档共享表SHARINNERDOC:文档共享明细表,此表存放了该表具体共享给那些用户了2、对应的表结构DocDetail.docImageFile.docDocImageFile.docshareinnerdoc.docDocShare.doc