一 ECOLOGY系统框架结构
Ecology系统说明e-cology8.0
文件页面编码为UTF-8
e-cology8.0
JDK
版本 1.6
e-cology8.0
应用服务器为Resin
Ecology安装目录说明
ecology
:OA主程序目录JDK
:Java目录Resin
:应用服务器的目录
ecology主要目录说明
ecology
classbean
存放编译后的CLASS文件
js
系统中使用的JAVASCRIPT和VBSCRIPT脚本
css
系统中JSP页面使用的样式
images
images_face
images_frame
系统中使用的图片的存放目录
log
系统中日志存放目录
sqlupgrade
升级SQL脚本目录
workflow
各功能分文件夹存放每个功能的文件
WEB-INF
lib
系统依赖Jar文件目录
prop
系统配置文件存放
service
系统的接口配置文件的存放
securitylog
安全补丁日志
securityXML
自定义安全补丁配置目录
二 JSP页面
- 一个jsp页面通常需要包含什么内容
<%@ page language="java" contentType="text/html; charset=GBK" %>
<%@ page import="weaver.general.*" %>
<%@ page import="weaver.conn.*" %>
<%@ page import="java.util.*" %> <!--导入需要的JAVA程序-->
<%@ include file="/systeminfo/init.jsp" %> <!--验证用户是否已经登录系统,获取用户的基本信息-->
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" /> <!--数据库操作类,通过RS操作数据-->
<HTML>
<HEAD>
<LINK href="/css/Weaver.css" type=text/css rel=STYLESHEET> <!--引入CSS-->
<SCRIPT language="javascript" src="/js/weaver.js"></script> <!--引入通用脚本文件-->
</head>
<BODY>
<%
//验证用户权限,如果不需要验证权限,可以不用一下三句
if (!HrmUserVarify.checkUserRight("REPORT:VIEW" ,user) ) {
response.sendRedirect("/notice/noright.jsp");
return;
}
%>
<%
String imagefilename = "/images/hdMaintenance.gif";
String titlename = "基本页面";
String needfav ="1";
String needhelp ="";
%>
<%@ include file="/systeminfo/TopTitle.jsp" %>
<!--此处设置右键菜单-->
<%@ include file="/systeminfo/RightClickMenuConent.jsp" %>
<%
RCMenu += "{菜单1,javascript:weaver.submit(),_self} " ; //这个菜单触发脚本(一个菜单包含两行)
RCMenuHeight += RCMenuHeightStep;
RCMenu += "{菜单2,/hrm/hrmrespource.jsp,_self} " ; //这个菜单可以去其他页面
RCMenuHeight += RCMenuHeightStep;
%>
<%@ include file="/systeminfo/RightClickMenu.jsp" %>
<table width=100% height=100% border="0" cellspacing="0" cellpadding="0">
<colgroup>
<col width="10">
<col width="">
<col width="10">
<tr>
<td height="10" colspan="3"></td>
</tr>
<tr>
<td ></td>
<td valign="top">
<TABLE class=Shadow>
<tr>
<td valign="top">
<!--具体信息-->
<div>具体信息</div>
</td>
</tr>
</table>
</td>
<td ></td>
</tr>
</table>
</body></html>
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表示英文显示名称,
languageid=9表示繁体显示名称.
3、JAVA程序的基本组成
在ECOLOGY中开发JAVA程序建议继承weaver.general. BaseBean,在BaseBean中主要封装了两个方法:写日志文件,获取配置文件中的参数值
写日志的方法:writeLog(Object obj) 日志会输出到 weaver/ecology/log/ecology中
获取配置文件数据:getPropValue(String fname , String key)
比如获取weaver.properties中的DriverClasses的值,代码如下:
getPropValue(“weaver”,” DriverClasses”)
package weaver.interfaces.workflow.action;
import java.text.SimpleDateFormat;
import java.util.Date;
import weaver.soa.workflow.request.RequestInfo;
import weaver.general.BaseBean;
import java.text.SimpleDateFormat;
import java.util.*;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.Cell;
import weaver.soa.workflow.request.DetailTable;
import weaver.soa.workflow.request.Property;
import weaver.soa.workflow.request.Row;
/**
* @Auther: bw.ren
* @Date: 2020-1-3 14:51
* @Description:
*/
public class TestAction extends BaseBean implements weaver.interfaces.workflow.action.Action{
private SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public String execute(RequestInfo requestInfo) {
//获取配置文件参数值
String var18 = this.getPropValue("actionProp", "table_name");
writeLog("打印日志:"+formatter.format(new Date()));
return Action.SUCCESS;
}
}
三 添加多语言版本标签
添加的标签请使用负的ID,ID值通过sql获取
Select min(id)-1 from HtmlLabelIndex |
然后使用下面的sql插入标签,注意修改下面sql中对应的值,如果是oracle数据库,请把“GO”替换成“/”
delete from HtmlLabelIndex where id=-32166 |
四流程相关数据存储
常用流程相关存储说明,详情见表结构说明文档,以下说明以自定义表单
为例,自定义表单isbill=1
,数据库存储的表名为id<0
对应表名为 formtable_main_(id*-1)
,id>0
为固定表名,参见workflow_bill.tablename
数据库表名 | 中文说明 | 备注 |
---|---|---|
workflow_base | 流程基本信息 | isbill=1 |
workflow_bill | 流程表单信息 | id > 0固定表名 id < 0 动态生成 |
workflow_billfield | 表单字段信息 | |
workflow_billdetailtable | 表单明细表 | |
workflow_nodebase | 节点信息 | |
workflow_flownode | 流程节点信息 | |
workflow_nodelink | 流程出口信息 | |
workflow_nodegroup | 节点操作人信息 | |
workflow_groupdetail | 节点操作人详情 | |
workflow_requestbase | 请求基本信息 | |
workflow_currentoperator | 请求节点操作人 | |
workflow_requestlog | 请求签字意见 | |
workflow_nownode | 请求当前节点 | |
workflow_browserurl | 系统浏览按钮信息 | |
workflow_selectitem | 下拉框信息 |
五 人力资源相关数据存储
表名 | 说明 | 备注 |
---|---|---|
HrmResource | 人力资源基本信息表 | - |
HrmResource_online | 人员在线信息表 | - |
HrmResourceManager | 系统管理员信息表 | - |
HrmDepartment | 人力资源部门表 | - |
HrmDepartmentDefined | 人力资源部门自定义字段信息表 | - |
HrmSubCompany | 人力资源分部表 | - |
hrmroles | 角色信息表 | - |
hrmrolemembers | 角色人员 | - |
hrmjobtitles | 岗位信息表 | - |
六 文档相关相关数据存储
表名 | 说明 | 备注 |
---|---|---|
Docdetail | 文档信息表 | - |
DocDetailLog | 文档操作日志表 | - |
DocImageFile | 文档附件图片表 | - |
ImageFile | 文件存放信息表 | - |
shareinnerdoc | 文档共享表(针对内部人员) | - |
DocShare | 文档共享信息表 | - |
DocShareDetail | 文档共享信息详细表 | - |
DocSecCategory | 文档子目录表 | - |
七 数据源 DataSource
该接口主要用来在
e-cology
配置和异构系统的数据库的链接方式,通过此链接在e-cology
中直接操作其他系统的数据。该接口适用于SQLSERVER
,ORACLE
,MYSQL
,DB2
,INFORMIX
,SYBASE
结构型数据库。
后台设置
路径:集成中心
– 数据源设置
程序调用
//引入相关的类
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import weaver.general.BaseBean;
import weaver.general.StaticObj;
import weaver.interfaces.datasource.DataSource;
//调用数据源生成jdbc链接
DataSource ds = (DataSource)StaticObj.getServiceByFullname(("datasource.local"),DataSource.class);
//local为配置的数据源标识
Connection conn = null ;
try{
conn = ds.getConnection();
ResultSet rs = conn.createStatement().executeQuery("select top 10 lastname,password from hrmresource");
while(rs.next()){
System.out.println("name-->"+rs.getString("lastname")+" pwd-->"+rs.getString("password"));
}
rs.close();
}catch(Exception e){
writeLog(e);
}finally{
try {
conn.close();
} catch (SQLException e) {
}
}
注意点
数据源返回的
JDBC Connection
在使用完毕时,必须记得关闭链接。