泛微OA ecology 二次开发实例 开发完整说明 联系客服

发布时间 : 星期三 文章泛微OA ecology 二次开发实例 开发完整说明更新完毕开始阅读8a3e4f9155270722192ef7c7

二次开发培训文档

一、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页面中将通过<%=SystemEnv.getHtmlLabelName(413,user.getLanguage())%>这样的形式来表示,其中的数字413就是表示姓名 ,同时可以通过“select labelname from htmllabelinfo where indexid=413 and languageid=7”来获取到“姓名”这个显示名称,其中languageid=7表示中文显示名称,languageid=8表示英文显示名称.

delete from HtmlLabelIndex where id=81249 delete from HtmlLabelInfo where indexid=81249 INSERT INTO HtmlLabelIndex values(81249,'选择范围') INSERT INTO HtmlLabelInfo VALUES(81249,'选择范围',7) INSERT INTO HtmlLabelInfo VALUES(81249,'Range of choice',8) INSERT INTO HtmlLabelInfo VALUES(81249,'選擇範圍',9)

3、JAVA程序的基本组成

在ECOLOGY中开发JAVA程序建议继承weaver.general. BaseBean,在BaseBean中主要封装了两个方法:写日志文件,获取配置文件中的参数值。

public String getPropValue(String fname , String key) public void writeLog(Object obj)

三、页面权限控制的说明,怎样在页面中引用权限,怎么样新增一个权限,如何在新开发

的模块上引入权限控制

在这一部分将描述:新增的页面如何保持和ECOLOGY的风格保持一致;新增的页面上引用ECOLOGY中的权限;新增的页面上引用新的ECOLOGY中还没有的权限; 1、 可以根据<泛微协同商务系统(Ecology)_JSP式样编写指南>保证新开发的页面

在风格上和原有系统保持一致

泛微协同商务系统(Ecology)_JSP式样编写

2、 引用系统中的权限

首先从系统的权限设置中找到需要引用的权限名称,如下如找到“地址类型维护”这个权限,其ID为41,然后通过“select rightdetail from systemrightdetail where rightid=41”得到其rightdetail=

“AddAddressType:Add”,那么在JSP页面中通过如下语句,就可以使得只有的“地址类型维护”这个权限用的用户可以查看该页面<% if

(!HrmUserVarify.checkUserRight(\AddAddressType:Add \ response.sendRedirect(\ return; } %>

3、 新增新的权限控制新功能的查看

新增功能模块添加权限控制.doc

四、系统的人员组织结构的介绍

1、 主要数据结构

HrmResource(人员HrmSubCompany(分HrmDepartment(部基本信息表).doc部信息表).doc门信息表).doc

2、 如何从缓存中获取人员信息(对三个缓存的简单介绍)

五、对流程,文档数据的存放说明(主数据,明细数据,一般信息等在数据库中如何存放,主要为了考虑报表的问题)

1、 文档的主要数据结构

文档信息的主要存储表

DOCDETAIL:文档信息存储表,主要存放文档的基本信息

DOCDETAILCONTENT: 文档内容存放表(如果是ORACLE数据库,如果文档的类型是HTML文档,那么文档内容存放在该表中,SQLSERVER数据库不用该表)

DOCIMAGEFILE:文档,附件关联表,此表记录文档和附件(WORD,EXCEL格式文档在数据库中按照附件格式存放)的关系(即一个文档关联了几个附件) IMAGEFILE:附件路径存放表,此表记录了文档的附件(或者WORD,EXCE)存放在文件服务器上的位置 DOCSHARE:文档共享表

SHARINNERDOC:文档共享明细表,此表存放了该表具体共享给那些用户了

DocDetail.docImageFile.docDocImageFile.docshareinnerdoc.docDocShare.doc

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=’’)

哪些明细字段:

select (select fieldname from

workflow_formdictdetail where id=fieldid) from workflow_formfield where formid=上面获取的FORMID and isdetail=’1’

2、 单据

对于表单而言流程的数据信息存放在三个数据表中

Workflow_requestbase:该表存放了流程的基本信息:标题,创建人,创建时间,流程类型等等 Workflow_form:该表只存放Workflow_requestbase和单据表之间的关系信息

各单据主表:该表存储了流程的具体信息通过REQUESTID字段和Workflow_requestbase表关联,如何获取该表呢:

A、 找到流程的类型ID,假定为wfid

B、 找到流程用了哪个单据 select formid form workflow_base

where id=wfid and isbill=’1’ C、 通过单据ID可以获取到该单据使用的字段

Select * from workflow_billfield where billid= formid

D、 通过单据ID找到其用了那个表存储流程主信息,那个表存