二次开发培训文档
一、 ECOLOGY系统框架结构
1、 主要的程序结构
Ecology
        Classbean  存放编译后的CLASS文件
        js  系统中使用的JAVASCRIPT和VBSCRIPT脚本
        Css  系统中JSP页面使用的样式
        Images
        Images_face
        Images_frame  系统中使用的图片的存放目录
        Crm
        .
        .
        Workflow    该功能分文件夹存放每个功能的文件
        WEB-INF
              Prop  系统配置文件存放
              Service 系统的接口配置文件的存放
       
二、 说明一个JSP页面,一个JAVA程序的基本组成,如何阅读JSP页面
1、 一个jsp页面通常需要包含什么内容
2、 如何阅读一个JSP页面
由于ECOLOGY系统支持多语言,因此在JSP页面上一般不出现中文,全部使用标签的形式来显示中文:
比如:在IE上显示“姓名”那么在JSP页面中将通过<%=HtmlLabelName(Language())%>这样的形式来表示,其中的数字413就是表示姓名 ,同时可以通过“select labelname from htmllabelinfo where indexid=413 and languageid=7”来获取到“姓名”这个显示名称,其中languageid=7表示中文显示名称,languageid=8表示英文显示名称.
      3、JAVA程序的基本组成
在ECOLOGY中开发JAVA程序建议继承al. BaseBean,在BaseBean中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
三、 几个常用的底层类的说明
最基本的底层类,数据库操作类,上传下载文件,如何构建缓存,基本的工具类
四、 页面权限控制的说明,怎样在页面中引用权限,怎么样新增一个权限,如何在新开发的模块上引入权限控制
在这一部分将描述:新增的页面如何保持和ECOLOGY的风格保持一致;新增的页面上引用ECOLOGY中的权限;新增的页面上引用新的ECOLOGY中还没有的权限;
1、 可以根据<泛微协同商务系统(Ecology)_JSP式样编写指南>保证新开发的页面在风格上和原有系统保持一致
2、 使用ECOLOGY分页控件实现数据的分页显示
3、 引用系统中的权限
首先从系统的权限设置中到需要引用的权限名称,如下如到“地址类型维护”这个权限,其ID为41,然后通过“select rightdetail from systemrightdetail where rightid=41”得到其rightdetail=AddAddressType:Add”,那么在JSP页面中通过如下语句,就可以使得只有的“地址类型维护”这个权限用的用户可以查看该页面<% if (!HrmUserVarify.checkUserRight("AddAddressType:Add ", user) ) {
response.sendRedirect("/notice/noright.jsp");
return;
}
%>
     
 
4、 新增新的权限控制新功能的查看
     
五、 系统的人员组织结构的介绍
1、 主要数据结构
2、 如何从缓存中获取人员信息(对三个缓存的简单介绍)
 
六、 对流程,文档数据的存放说明(主数据,明细数据,一般信息等在数据库中如何存放,主要为了考虑报表的问题)
1、 文档的主要数据结构
文档信息的主要存储表
DOCDETAIL:文档信息存储表,主要存放文档的基本信息
DOCDETAILCONTENT: 文档内容存放表(如果是ORACLE数据库,如果文档的类型是HTML文档,那么文档内容存放在该表中,SQLSERVER数据库不用该表)
DOCIMAGEFILE:文档,附件关联表,此表记录文档和附件(WORD,EXCEL格式文档在数据库中按照附件格式存放)的关系(即一个文档关联了几个附件)
IMAGEFILE:附件路径存放表,此表记录了文档的附件(或者WORD,EXCE)存放在文件服务器上的位置
DOCSHARE:文档共享表
SHARINNERDOC:文档共享明细表,此表存放了该表具体共享给那些用户了
2、 流程的主要数据结构
这里主要介绍流程的数据存放结构及如果通过流程类型获取到流程的字段信息,流程的载体分为表单和单据两类,表单和单据的区别在于:所有使用表单的流程数据存放在同一个表中,而单据每个单据对应着一张独立的数据表
1、 接口文档怎么看表单
一、对于表单而言流程的数据信息存放在三个数据表中
Workflow_requestbase:该表存放了流程的基本信息:标题,创建人,创建时间,流程类型等等
Workflow_form:该表存储了流程的具体信息通过REQUESTID字段和Workflow_requestbase
表关联
Workflow_formdetail:该表存放了流程的明细信息,同样通过REQUESTID字段和Workflow_requestbase表关联
二、通过流程的类型如何获取该流程使用了Workflow_form和Workflow_formdetail表中哪些字段
在Workflow_form和Workflow_formdetail表中存放了大量字段,所有使用表单的流程的字段都在这两个表中,如何获取每个流程使用了那些字段呢?
A、 到流程的类型ID,假定为wfid
B、 到流程用了哪个表单 select formid from  workflow_base where id=wfid and isbill=’0’
C、 获得该表单用到了哪些主字段:
select (
select  fieldlable from workflow_fieldlable where workflow_fieldlable.fieldid=workflow_formfield.fieldid and langurageid=7  and workflow_fieldlable.formid=workflow_formfield.formid) as name, (select fieldname from workflow_formdict where id=fieldid) from workflow_formfield  where formid=上面获取的FORMID  and (isdetail is null or isdetail=’’)