泛微协同商务系统Ecology系统底层包开发指南
泛微协同商务系统
E c o l o g y系统底层包开
发指南
文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]
底层包开发指南
目录
1. 引言
1.1 概述
本文档为泛微协同商务系统(Ecology)程序员开发指导文档,讲述了开发底层工具包的应用,常用功能的开发。
2. 底层包应用及范例
本章对ecology系统的底层工具包进行讲解,开发人员可以从这里学到怎样利用底层的工具包进行开发
2.1 最基本的继承类
继承的例子如下:
java bean 的继承
public class ResourceComInfo extends BaseBean {
public void doSomething() { 2003年8月12日2004-01-102004-03-10String debugInfo = "This is test" ;
roperties。
比如:
系统的运行目录为 d:\ecology\,那么属性文件必须放在d:\ecology\WEB-INF\prop\ 目录下,取名为,其中thefilename是任意的。
在属性文件中某一个键值的值用等号来赋值,等号后面的值必须放在一行,如果一行不够写(或者为了查看的方便),可以用 \ 来链接多行。否则其它行的值不能被键值取得。等号左右都可以有空格,对键值和键值的值没有影响。
比如:
thekeyname = thevalue
将键值的值放到多行:
thekeyname = thevalue1 \
thevalue2 \
thevalue3
thevalue4
这时候thekeyname 的值为thevalue1thevalue2thevalue3 ,thevalue4 取不到,因为thevalue3后面没有 \
在程序中要取得上述属性文件中键值thekeyname的值,使用方法:
getPropValue(“thefilename” , “thekeyname”) ;
获取属性文件的值的例子如下:
public class ResourceComInfo extends BaseBean {
private void setResourceInfo() throws Exception{
业务处理过程……….
String keyValue = getPropValue(“thefilename” , “thekeyname”) ; getConfigFile() 来获取,当主属性文件名称因为需要改变得时候,不必改变所有用到这个属性文件的类,只需要改变GCONST类中常量的值
2.2 怎样获取系统的运行目录
类提供了一个静态方法getRootPath() ,返回系统的运行目录,比如系统的运行目录为d 盘的ecology目录,将返回d:\ecology\
获取系统的运行目录的例子如下:
public class TestBean extends BaseBean {
import ;
public void getSysRunPath(){
String sysRunPath = GCONST. GetRootPath() ;
..……
}
2、使用指定的链接池ecologytest执行SQL语句
RecordSet rs = new RecordSet() ;
(" update TB_Example set name = 'the new value' " , "ecologytest" ) ;
3、使用指定的链接池ecologytest执行存储过程 PD_Example_UpdateById
存储过程PD_Example_UpdateById 如下:
CREATE PROCEDURE [PD_Example_UpdateById]
(@name varchar(100),
@id int,
@flag integer output,
@msg varchar(80) output)
AS
update TB_Example set name = @name where id = @id
GO
RecordSet rs = new RecordSet() ;
String newname = ....... ;
String id = ...... ;
String procpara = newname + () + id ;
( "PD_Example_UpdateById" , procpara , "ecologytest" ) ;
4、在一个客户程序多个执行之间,查询结果可以保留到下一次查询
RecordSet rs = new RecordSet() ;
(" select * from TB_Example ") ;
(" update TB_Example set name = 'the new value '") ;
while( () ) {
String thename = ("name") ; ..…….
}
(" select * from TB_Example ") ;
while( () ) {
String thename = ("name") ; ..……
}
访问和运行数据库脚本的例子:
public class ResourceComInfo extends BaseBean {
private void setResourceInfo() throws Exception{
业务处理过程……….
String sqlStr = “select * from Hrmresorce” ;
RecordSet rt = new RecordSet() ;
(sqlStr) ;
while()){
String id = ("id"));
String loginid = ("loginid"));
String lastname = ("lastname"));
持对一个或多个由属性文件定义的数据库连接池的访问.客户程序可以调用getInstance()方法访问本类的唯一实例。
对于一个链接池集合来说,可以有多个链接池,分别链接不同的数据库。应用程序指定链接池的名称来调用不同的链接池。如果应用程序没有指定链接池的名称,将使用默认的链接池。默认链接池的指定有两种方式:
1、在Application Server设置的初始参数serverName的值,以Resin 为例:
2、如果Application Server没有相应设置,则系统使用属性文件()中设置的默认链接池名称:
DefaultPoolName = ecology
对于所有的链接池,系统需要加载相应的 JDBC Driver来建立与相应数据库的链接。这些 Driver 在属性文件()中指定,多个Driver中间用空格隔开:
对于每一个链接池需要用到的参数在属性文件()中指定,属性文件中参数的名称以链接池的名称开头,中间加入小数点,比如链接池 ecology 的参数指定为:
10.1.1.205:1433;DatabaseName=ecology DBConnectionPool类的管理和设置:
数据库链接池,所有创建的链接存放在链接池中,在客户端链接数据库时从链接池中取出链接,客户端在完成数据库操作后将链接返回链接池。
链接池创建链接需要用到的参数在属性文件()中指定,属性文件中参数的名称以链接池的名称开头,中间加入小数点,比如链接池 ecology 的参数指定为:
public class MutiFileUpload extends DynamicServlet {
public void doProcess(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
FileUpload fu = new FileUpload(request) ;
String fileDesc = ("filedesc") ; /* 1*/
String[] fileFieldNames = {" accessory1"," accessory2"} ;
String[] fileIds = (fileFieldNames) ; /*2*/
String[] fileNames = () ; /*3*/
getParameter() 方法,而不能使用 () 方法,否则不能得到filedesc的值!
注释2:使用uploadFiles方法上传accessory1和accessory2中的文件,同时返回保存在ImageFile 表中的文件基本信息的键值imagefileid,可以将这个imagefileid记录到其它地方以便今后调用。
注释3:使用getFileNames方法获取上传文件的真实名称(包括后缀名)
将代码保存到 /src/weaver/test/ 文件中。访问来测试一下,看看日志文件中的记录是否正确。页面提交,文件上传完毕后将再次返回页面。你可以查看ImageFile表来检查文件的具体存放位置等信息。
文件的存放位置在系统设置模块中设置,如果没有设置,将存放在系统运行目录下的filesystem 目录下。
2.3 如何访问已经上传的文件
在jsp页面或者html页面中访问已经上传的文件非常简单,只需要调用类,并传递需要访问的文件id ,这个文件id,就是在文件上传中返回的 imagefileid。
访问上传的文件有两种方式,一种是非下载方式,这种方式如果浏览器能够显示访问的文件类型,那么就会在浏览器中直接显示。另一种是下载方式,无论访问的文件是什么类型,都使用弹出下载窗口的形式下载。
对非下载方式的链接访问
对下载方式的链接访问
如果知道要访问的文件是图片,并需要在浏览页面中直接显示这个图片,可以使用下面的代码访问
当然如果对于对应的文档,你没有权限,那么这个地址会让你返回到登录页面
2.4 如何通过EXCEL导入数据
我们可以通过EXCEL导入一些数据实现系统的初始化,导入一个EXCEL需要用到. ExcelParse,在ECOLOGY中导入一个EXCEL很简单,. ExcelParse进行了封装,通过调用其中的方法:init(String filename)和getValue(String sheetname , String rownum , String columnnum)就可以实现
实例
这是一个EXCEL导入的例子
下面是的例子
FileUploadToPath fu = new FileUploadToPath(request) ; rim() ;
String lastname = ( ("1", ""+recordercount , "2" ) ).trim() ;
String sex = ( ("1", ""+recordercount , "3" ) ).trim() ;
String department = ( ("1", ""+recordercount , "4" ) ).trim() ;
String subcompany = ( ("1", ""+recordercount , "5" ) ).trim() ;
String jobtitle = ( ("1", ""+recordercount , "6" ) ).trim() ;
String manager = ( ("1", ""+recordercount , "7" ) ).trim() ;
String status = ( ("1", ""+recordercount , "8" ) ).trim() ;
String location = ( ("1", ""+recordercount , "9" ) ).trim() ;
String loginid = ( ("1", ""+recordercount , "10" ) ).trim() ;
String password = ( ("1", ""+recordercount , "11" ) ).trim() ;
String seclevel = ( ("1", ""+recordercount , "12" ) ).trim() ;
if( recordercount == 1 ) continue ; }
ExcelSheet,. ExcelRow进行了封装
实例
<%@ page language="java" contentType="text/html; charset=GBK" %>
<%@ page import=".*," %>
<%
ExcelSheet es = new ExcelSheet() ;
(“EXCEL第n列的值”) ;
(er) ; 果是第一次调用此方法,则创建实例
*
* @return StaticObj 唯一实例
*/
public static StaticObj getInstance()
/**
* 获取 mainKey 对应的第一层对象值
*
* @param key 主键名称
* @return Object 对于的第一层对象值
*/
public Object getObject(String key)
/**
* 设置 mainKey 对应的第一层对象值
*
* @param key 主键名称
* @param obj mainKey 对应的第一层对象值
*/
public void putObject(String key, Object obj)
/**
* 从缓存中清除 mainKey 对应的第一层对象值
*
* @param key 主键名称
*/
public void removeObject(String key)
/**
* 获取 mainKey - subkey 对应的第二层对象值
*
* @param HashKey 主键名称
* @param RecKey 子主键名称
* @return Object 对于的第二层对象值
*/
public Object getRecordFromObj (String HashKey, String RecKey)
/**
* 设置 mainKey - subkey 对应的第二层对象值
*
* @param HashKey 主键名称
* @param RecKey 子主键名称
* @param obj mainKey - subkey对于的第二层对象值
*/
public void putRecordToObj (String HashKey, String RecKey, Object obj)
/**
* 从缓存中清除 mainKey - subkey 对应的第二层对象值
*
* @param HashKey 主键名称
* @param RecKey 子主键名称
*/
public void removeRecordFromObj (String HashKey, String RecKey)
/**
* 从缓存中清除所有对象值
*
*/
public void clearRecord()
ResourceComInfo 类主要提供人力资源信息中常用的一些信息的缓存,比如人员名称,所在部门。对于这些信息,都需要一个键值。常见的键值是这些信息在数据库表中的Primary Key,比如人力资源ID,其它模块和功能在关联人力资源信息的时候,只记录
人力资源的ID,当需要获取人力资源的其它信息,如人员名称,所在部门的时候,从ResourceComInfo类提供的统一接口中获取。
import .*;
import .*;
import .*;
/**
* Title: 人力资源缓存信息接口类
* Description: 对其它模块和功能提供统一的获取人力资源信息的接口
* Copyright: Copyright (c) 2002
* Company: weaver
* @author liuyu
* @version
*/
public class ResourceComInfo extends BaseBean {
/* 1 */
private ArrayList ids = null; rim() ;
}
/* 2 */
/**
* 获取当前人力资源信息指针指向的人力资源记录的部门id
*
* @return String 当前人力资源信息指针指向的人力资源记录的部门id
*/
public String getDepartmentID(){
return ((String)(current_index))).trim() ;
}
/**
* 获取人力资源id对应的人力资源名称信息
*
* @param key 人力资源id (为人力资源信息的键值)
* @return String 人力资源id对应的人力资源名称信息
*/
public String getResourcename(String key) {
int index=(key);
if(index!=-1) return ((String)(index)).trim();
else return "";
}
/**
* 获取人力资源id对应的人力资源登录名信息
*
* @param key 人力资源id (为人力资源信息的键值)
* @return String 人力资源id对应的人力资源登录名信息
*/
public String getLoginID(String key) {
int index=(key);
if(index!=-1) return ((String)(index)).trim() ;
else return "";
}
/**
* 获取人力资源id对应的人力资源部门信息
*
* @param key 人力资源id (为人力资源信息的键值)
* @return String 人力资源id对应的人力资源部门信息
*/
public String getDepartmentID(String key) {
int index=(key);
if(index!=-1) return ((String)(index)).trim() ;
else return "";
}
/**
* 获取人力资源id对应的人力资源安全级别信息
*
* @param key 人力资源id (为人力资源信息的键值)
* @return String 人力资源id对应的人力资源安全级别信息 */
public String getSeclevel(String key) {
int index=(key);
if(index!=-1) return ((String)(index)).trim() ;
else return "";
}
/**
* 获取人力资源id对应的人力资源状态信息
*
* @param key 人力资源id (为人力资源信息的键值)
* @return String 人力资源id对应的人力资源状态信息
*/
public String getStatus(String key) {
int index=(key);
if(index!=-1) return ((String)(index)).trim() ;
else return "";
}
/* 4 */
/**
* 清除人力资源缓存信息
*
*/
public void removeResourceCache() {
/* 3 */
("ResourceInfo");
}
/**
* 删除指定缓存信息
* @param key 指定缓存
*/
public void deleteResourceInfoCache(String key) {
int index = (key);
if (index != -1) {
(index);
(index);
(index);
(index);
}
array_size = ();
}
/**
* 更新指定缓存信息
* @param key 指定缓存
*/
public void updateResourceInfoCache(String key) {
int index = (key);
if (index != -1) {
RecordSet rs = new RecordSet();
("select * from HrmResource where id = " + key);
if ()) {
(index, ("id")));
(index, ("loginid")));
(index, ("lastname")));
(index, ("sex")));
(index, ("email")));
;
("ResourceInfo");
("ids");
(ht);
(msg);
}
}
}
}
}
以上代码需要注意的几个地方:
注释1:这里所定义的队列,用于依次存放人力资源的所需信息。所需信息是根据我们的需要来确定的,但是必须明确一点,只有那些经常用到的信息采放到缓存中,否则将会造成缓存的臃余。
注释2:这里的指针和方法用于一些程序遍历人力资源的所有信息。比如如下在jsp页面中的应用:
<%
while()) {
%>
()%>
<%
}
%>
注释3:缓存中的一级键值设置为相应的类名,根据这个键值来判断缓存中是否有相应的信息,或者清除缓存中的该信息。需要注意的是,缓存中的键值信息必须唯一,不能重复!
注释4:在不是必须的时候,更新人力资源的时候一定要使用更新指定的缓存的方式,而不要把缓存清空,等待下一次使用到该缓存的时候在重新初始化该缓存。
注释5:对数据更新频率不高,使用频率确相对较高数据请尽量使用缓存的方式存取数据,而不是直接从数据库中读取。
2.5 其它底层类基本方法
ECOLOGY中,还有一些常用的工具类,是在开发中基本都会使用到的,大家还需要看看如下几个类的API 文档:
提供了大量基本的工具方法(其中提供了对字符,数据等的处理),其中null2String方法,fromScreen方法,toScreen 方法,TokenizerString ,toHtml方法是大家需要关注的方法。
提供对日期操作的工具方法,如:日期转化,日期加减
. SendMail :
提供了邮件发送的基本方法,其中send方法,sendhtml方法,sendMiltipartText方法是大家需要关注的方法。
提供了文件处理的工具方法。其中createDir方法,copy方法,moveFileTo方法,DeleteFile方法,extractFileName方法,extractFileExt方法,extractFilePath方法是大家需要关注的方法。
泛微协同办公平台(e-cology)协同版RTX与ecology结合的操作手册
协同版RTX与ecology结合的操作手册 第一步(RTX服务器): 在服务器上安装RTX协同版服务器端。默认安装。(服务器端程序可以解压后的 ecology\resource\RTXSVR_361_ADV_Build_2256.exe文件) 第二步(RTX服务器):也是在RTX服务器上面进行操作! 请将解压缩后的ecology目录中的RTX目录下的五个文件,拷贝到JDK对应的BIN目录下。如JDK可能被安装在D:\weaver\JDK目录下,则这五个文件要拷贝到D:\weaver\JDK\Bin目录下。是要拷到rtx服务器上面的jdk里面; 注: 1、拷贝这五个文件是为了保证java类可以通过本地方法调用RTX的功能。 2、以后的说明所认为的系统的安装目录为D:\weaver 第三步(RTX服务器): 到RTX服务器端安装的目录下,假设为E:\Program Files\Tencent\RTXServer,找到AppConnConfig.XML文件,用记事本打开: 请将此处的1改成0
泛微协同商务系统人力资源管理解决方案
泛微协同商务系统人力资源管理解决方案 泛微软件 2003-1-6 投稿一、解决方案综述 人力资源管理模块e-HRM是泛微协同商务系统e-cology中的一个重要组件,它提供一套完整的、灵活的人力资源解决方案,并且与泛微协同商务系统的其他组件协同以实现人力资源的全面管理和扩展性应用。e-HRM不同于传统的人力资源管理系统,通过与其他模块的协同工作,实现人力资源管理的全方位化和个性化。 基于协同商务系统建立的人力资源管理与企业信息门户相结合以提供给用户个性化的内容和应用。用户可以从纷繁复杂的日常工作中解脱出来而专注于与自身最相关的业务和信息。e-HRM完全个性化的应用能够大大提升人力资源管理的效率:直接上司可以在线查看下属的个人和工作情况,对员工的绩效表现作出评价,必要的时候还可以以各种方式对员工作出告示,员工可以查看自己的工作情况并及时作出相应的工作安排调整,也可以选择把工作交付给他人,人力资源经理可以在线发布招聘信息并对人力资源库进行维护。 通过e-HRM,可以自定义企业的组织机构,地理位置、人员信息结构,使得e-HRM的管理完全贴合企业的实际状况,从而适应企业发展和业务调整的需要;e-HRM适应本地化要求,支持中英文不同的版本,用户可以在两个界面中自由切换;并且,e-HRM让企业定义不同分支机构和不同部门的工作时间表或者特定的工作流。 e-HRM使员工数据结构化,完全简化了对员工数据的维护和处理。e-HRM提供了全套的员工数据,不仅如此,所有与员工相关的数据,不管这些数据来自系统的什么入口,都会在人力资源信息表中有所体现。例如销售人员负责的客户和他与客户进行的每笔交易,都将被自动记录在他的人力资源档案中,大大提升了人力资源管理的全方位化并为企业提供全面的人力资源绩效分析。 e-HRM强大的报表和统计功能,可以使企业以多种角度对人力资源进行分析,帮助企业制订合理的人力资源管理政策。 e-HRM提供基于组织和人员角色的人力资源管理功能。用户对信息的查看、操作以及相关应用都将由用户工作级别、职务、安全级别和角色来决定,并且提供完备的日志功能以对系统进行严密的监控,保证了系统的安全性。 e-HRM人力资源管理基本框架:
泛微协同办公系统知识文档管理解决方案
e-Document: 知识文档管理 e-Document,创建知识积累、共享、利用和创新的平台。 1.问题的提出 作为公司最大财富的知识,没有得到积累、共享和利用,并且随着人员流动而丧失。我们需要从不同的地方收集信息:打电话,找文件,等待他人帮助,接收电子邮件和备忘录。但是,这种信息获取方式取决于个人能力,以及他人是否愿意提供。总之,获取信息的效率太低。现在,很多公司致力于使用群组和网络技术实现对数据库的快速、便捷的访问――但信息仍然需要被复制,企业仍然需要维护不同的数据库。 2.解决方案 e-Document的解决方案:搭建知识积累、共享、利用和创新的平台。 ●人们可以将宝贵的时间用在分析、判断、解释信息和采取行动上,而非最基础的收集信息上; ●市场信息、管理经验、专业技能,无论是成文的信息、还是脑海里的构思,皆可发布、分类和 归集; ●强大的搜索、个性化的分发,随时随地可迅速获得需要的信息和知识; ●一人对一人的交流,或多人对多人的沟通,充分运用群体智慧,知识在分享中得到更新。
3.模块架构 各种来源,各种格式的知识文档,都可以上传或下载,并通过一定的流程发布到公司知识库;知识文档分类存放后,员工可根据文档、目录的权限,以及搜索引擎很方便的利用知识库内的信息,同时系统可根据相关的设置将知识发送到不同的门户:包括内部门户、外部门户(外部网站,客户门户,分销商门户和供应商门户),这样可以为不同的部门和不同的用户提供个性化的信息。 4.模块综述 e-Document提供了全面的知识文档管理的框架,对知识进行完全规范化的组织,并允许用户在任何地点和时间编辑、存储和创建任何类型的文档; e-Document可以管理内部和外部网站,并针对不同的目标用户制订不同的网站内容,通过与信息门户的结合,用户获得完全个性化的界面和内容服务; e-Document维护动态的知识库,用户可以自由地就某个主题进行广泛的讨论以获取信息和经验,同时,也可以利用已有的知识库对自己的知识进行补充,还可利用各种知识管理工具提升对知识的分析、利用; e-Document严格的安全限制和完备的日志功能,保证文档的读取和操作的安全性; e-Document与其他模块的协同工作,完整地管理文档从创建、维护、审批、分发、归档的整个生命周期。
泛微协同工作流解决方案
本文格式为WORD,能编辑和复制,感谢您的阅读。 泛微协同工作流解决方案 一.工作流程管理的一些说明 在企业的实际管理和运营过程中,采用手工处理工作任务经常会遇到这些问题:工作效率低下,为了签发一份合同而在各个部门奔波,并且经常因为负责人不在而造成工作的延误;工作流相关资料不能有效和统一的管理;工作流的审批意见不能完整地保存并归档;工作流牵涉到的相关数据更新必须人工二次录入,甚而引发更多的待处理任务…… 而对工作流程的电子化管理可以大大提升企业运营的效率。工作流程是对一整套规则与过程的描述,以便管理在协同工作进程中的信息流通与业务活动。它的目标在于根据企业实际规范和业务操作来定义电子化的工作流,以智能的方式处理过程,保证工作中的某项任务完成后,按预定的规则实时地把工作传送给处理过程中的下一步,保留工作流转进程中的操作痕迹,更重要的是,保证相关数据的自动更新。 一个好的工作流程管理软件可以从以下几个关键因素来评判: §流转路径的智能化 §跟踪与监控信息 §与其他应用相结合 §高度的灵活性采用计算机化的工作流程解决方案是可以帮助人们把作业环境规范化,减少失误与重复劳动,缩短办理周期,提供过程优化的依据,从而达到提高效率和科学管理的目的。 二、工作流程管理总体特点
基于泛微协同商务系统的工作流程管理模块(e-Workflow),为企业搭建一个高效、灵活的工作流程平台,用户可以自行定义所需要的各种流程应用。 e-Workflow工作流程管理基本框架: 它的特点包括: 1)信息的集成性 泛微协同商务是基于“协同”思想体系设计的系统,打破存在于企业的信息孤岛,在各种信息之间建立千丝万缕的联系,并且提供快捷和友好的方式供用户查询。因而所有存储的信息,无论其来源(例如来
泛微协同办公平台(e-cology)系统安装、升级、重装手册_SQL_Server版本
泛微协同办公系统(e-cology)系统安装、备份、升级、重装手册SUBMITTED BY WEAVER SOFTWARE
目录 1.前言 (2) 2.体系结构 (3) 2.1.J2EE架构简介 (3) 2.2.ecology系统在J2EE架构下的实现 (4) 3.系统配置策略 (7) 4.系统安装和卸载 (8) 4.1.安装前准备 (8) 4.2.系统安装 (9) 4.3.系统卸载 (18) 5.系统备份 (19) 5.1.备份程序文件 (19) 5.2.备份文档、图片文件 (19) 5.3.备份数据库文件 (19) 6.系统升级 (20) 6.1.停止RESIN服务 (20) 6.2.备份程序文件夹 (20) 6.3.备份数据库文件夹 (20) 6.4.使用系统升级文件包 (20) 6.5.启动resin服务 (20) 6.6.升级失败后,系统恢复的方法 (20) 7.系统重装 (21) 7.1.拷贝备份的程序、文档图片文件夹 (21) 7.2.安装resin服务 (21) 7.3.修改配置文件 (21)
1.前言 本文档的主要内容是从技术角度对ecology系统的架构、产品安装、升级、重装等进行阐述,并从系统安全、性能和配置等方面对ecology系统的应用和实施提供依据和指导。无论是较小型的应用场合,还是高可靠、高安全要求的大型应用场合,希望本文件给你提供有价值的内容。
2.体系结构 e-cology系统是一个基于J2EE架构的大型分布式应用。采用J2EE的三层架构体系。可选择多种系统环境,满足不同类型、不同规模企业的需要。企业可以根据自己的实际情况构建合适的应用环境。结合操作系统、应用平台或第三方的产品,我们还可以构筑高安全、高性能、高可靠的应用环境。 2.1.J2EE架构简介 基于J2EE的企业应用技术已经成为许多企业电子商务环境的核心驱动引擎,泛微定位技术高端,全面采用J2EE技术规范,全面支持Enterprise JavaBeans标准。 2.1.1.简介J2EE J2EE是一种利用Java 2平台来简化诸多与多级企业解决方案的开发、部署和管理相关的复杂问题的体系结构。提供了对 EJB、Servlets、JSP、JDBC、CORBA以及XML技术的全面支持。J2EE提供了一个企业级的计算模型和运行环境用于开发和部署多层体系结构的应用。它通过提供企业计算环境所必需的各种服务,使得部署在J2EE平台上的多层应用可以实现高可用性、安全性、可扩展性和可靠性。 2.1.2.J2EE的优点 J2EE具有以下优点: 1.平台无关性。用户不必将自己捆绑在某一种硬件或操作系统上,可以根据自身的情况选择合适的硬件、操作系统、数据库。 2.J2EE是一种组件技术,已完成的组件能被方便地移植到任何其它地方。 3.J2EE作为中间件,提供了强大的功能,使开发人员只需要关注商业逻辑,因而能加快开发速度,提高系统的运行效率和稳定性。
泛微协同办公平台ecology系统流程搭建一般技巧使用
联系人李允 中国上海浦东软件园陆家嘴分园峨山路91弄101号3层 邮政编码:200127 电话:+8621 传真:+8621 手机:+86 电邮:liyun
目录 1.1、新添字段时注意事项........................... 1.2、明细字段使用技巧............................. 2、表单管理使用技巧................................... 2.1、表单管理中的行、列字段规则使用技巧........... 2.2、图形化表单的使用技巧......................... 图形化表单的标准化............................ 图形化表单中公式的设置技巧.................... 图形化表单中打印的设置技巧.................... 3、流程设置使用技巧................................... 3.1、直接上级的设置............................... 3.2、人力资源条件的使用........................... 3.3、角色的使用................................... 3.4、相关文档、相关流程、附件等的使用............. 3.5、操作者批次的使用............................. 3.6、流程编号的使用............................... 4、manager字段使用技巧 ............................... 4.1、第三个节点使用manager字段................... 4.2、使用manager字段作为判断条件使用............. 4.3、manager字段结合节点前(或节点后)赋值操作....
泛微协同商务系统 Ecology 系统底层包开发指南
底层包开发指南 目录 1. 引言 (2) 1.1概述 (2) 1.2定义 ..................................... 错误!未定义书签。 2.底层包应用及范例 (2) 2.1最基本的继承类 (2) 2.2怎样记录日志 (3) 2.3怎样获取属性文件的值 (9) 2.4怎样获取系统的运行目录 (12) 2.5怎样访问和运行数据库脚本 (13) 2.6如何上传一个文件 (23) 2.7如何访问已经上传的文件 (31) 2.8如何使用缓存提高系统效率 (32) 2.9其它底层类基本方法 (61)
1.引言 1.1概述 本文档为泛微协同商务系统(Ecology)程序员开发指导文档,讲述了开发底层工具包的应用,常用功能的开发。 2.底层包应用及范例 本章对ecology系统的底层工具包进行讲解,开发人员可以从这里学到怎样利用底层的工具包进行开发 2.1最基本的继承类 系统中每一个java bean 都需要继承 weaver.general.BaseBean 类。这个类实现了记录日志和获取属性文件值的方法。继承这两个类的其它类可直接应用这些方法来记录日志,获取属性文件某一个属性的值。方法的实现见后面的例子。 继承的例子如下: java bean 的继承 public class ResourceComInfo extends BaseBean { public void doSomething() { //某一个方法 方法的处理………
writeLog(s) ; // 写日志 } } 2.2怎样记录日志 继承了weaver.general.BaseBean ,可以直接使用 writeLog方法记录日志信息。注意这里是使用,而不是调用,因为这个方法是这两个被继承类中的方法。 注意writeLog 方法的使用: /** * 将某个对象写入Log文件 * @param obj 被写入的对象 */ public void writeLog(Object obj) 我们看到,可以被记入日志的是任意一个java对象。这些java对象将被自动转换成字符串对象(String)记入到日志文件中。日志文件将每天生成一个,以日志文件名称中的日期来区别,比如:ecology_20030812.log,代表2003年8月12日的日志。当天的日志为ecology.log。每一条日志的记录格式为:
泛微协同商务系统(Ecology)_JSP式样编写指南
泛微协同商务系统(Ecology) JSP式样编写指南
1阴影外框 (3) 1.1效果图 (3) 1.2代码 (3) 2卡片样式 (4) 2.1效果图 (4) 2.2代码 (4) 3非分页列表样式 (5) 3.1效果图 (5) 3.2代码 (5) 4多选浏览框样式 (6) 4.1效果图 (6) 4.2代码 (6) 5单选浏览框样式 (8) 5.1效果图 (8) 5.2代码 (9) 6右键按钮 (10) 6.1效果图 (10) 6.2代码 (10) 7输入框样式 (11) 7.1效果图 (11) 7.2代码 (11) 8浏览按钮样式 (11) 8.1效果图 (11) 8.2代码 (11) 9按钮样式(文档相关) (11) 9.1效果图 (11) 9.2代码 (11) 10按钮样式(添加明细) (11) 10.1效果图 (11) 10.2代码 (12) 11树形 (12) 11.1效果图 (12) 11.2代码 (12) 11.3数据源格式........................................................................................ 错误!未定义书签。12单选框树形. (12) 12.1效果图 (13) 12.2代码 (13) 13分页列表 (13) 14页面保护 (15) 14.1效果图 (15) 14.2代码 (15)
1 阴影外框 1.1 效果图 1.2 代码
| |||