泛微SDK API接口说明描述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
泛微法务部提请浏览者保护本文件的知识产权!谢谢您的配合!
Weaver e-cology Server API
【文档目的】
本文档将介绍泛微e-cology Server所提供的二次扩展功能,包括API接口的说明、二次扩展应用的实现、以及部分扩展功能的示例程序。
通过本文档,您可以了解到如何通过泛微e-cology Server所提供的API接口进行一些个性化的功能扩展以及应用集成。
【应用范围】
泛微e-cology Server作为企业管理平台,一方面为企业提供丰富的内部管理的功能模块(人力资源管理、工作流程管理、知识管理、项目管理、客户管理、财务管理、资产管理等),另一方面为企业的其他应用提供了丰富的集成、扩展接口。
基于Server API的扩展,可实现企业应用在ERP系统、财务系统,PDM等方面的集成以及无线应用方面的快速增强。
【开发人员】
泛微e-cology Server SDK 为开发人员提供C、Jave 以及基于COM的API接口,适合于Windows平台上支持COM标准的任何开发语言和平台(VB、VC++、ASP、JA V A、PB、Delphi、LotusScript等)。
Weaver Server SDK 同时提供一个轻量HTTP Server,使非Windows平台也能够以HTTP请求的方式调用SDK。
本SDK的示例程序将以Java 为主。
【示例源程序】
本SDK接口的测试源程序位于SDK安装目录下的Sample目录,通过所提供的VBScript测试程序,可以快速了解、检测SDK安相关接口的功能。
【最后更新】
2004年01月
一、概述
概述】
通过这个章节的学习,您在能够在短短的几分钟迅速成为Weaver Server SDK 应用专家。
1. 进入门篇:第一个程序:Hello,world
2. 初级篇:HTTP SDK 跨平台调用
3. 提高篇:面向对象编程
4. 进阶篇:高性能与复杂应用
二、开发向导
1、应用框架
Weaver Server为开发人员提供的API接口主要包括两部分:服务端和代理端,其中服务端安装在Weaver Server所在机器上,代理端安装在调用API的应用服务器上。
系统架构如下:
Weaver Server SDK API 与SDK服务器可以安装在不同服务器上,他们之间通过TCP通信。
通过使用SDK API可调用Weaver Server所提供的扩展功能
2、准备工作
在开始编写扩展程序之前,需要先准备好Weaver Server以及SDK的开发环境:【1】安装Weaver Server环境
安装Weaver Server后,系统会提示重新启动,请在安装SDK之后再重新启动。
【2】安装SDK
安装SDK的工作包括两部分:Weaver API Server 和Weaver API Component。
其中,Weaver API Server需安装在Weaver Server机器上,Weaver API Component需安装在调用Weaver API的应用服务器上。
【3】配置SDK信息
应用服务器与Weaver Server的通信是通过Weaver API Component实现的,所以需要对API Component进行一些简单配置,包括Weaver Server的机器IP以及通信端口。
【文件位置】
C:\Program Files\Weaver SDK\WeaverServerAPI.ini
【配置项】
[Common]
Host=127.0.0.1
Port=6000
【说明】
Host:Weaver Server所在机器IP
Port:与Weaver Server的通信端口
【4】配置Weaver Server
如果Weaver Server和SDK安装在不同服务器,需要配置Weaver服务器的API IP设置(警告:默认仅本机能够使用SDK)。
【文件位置】
C:\Program Files\WeaverServer\SDKProperty.xml
【配置项】
<APIClient>
<IPLimit Enabled="1">
<IP>127.0.0.1</IP>
</IPLimit>
</APIClient >
【说明】
Enabled = "1" :是(1)否(0)对可调用API的机器作IP限制
<IP>192.168.0.12</IP> :可访问Weaver Server API接口的机器IP
【5】准备就绪
3、编写一个扩展程序
编写第一个扩展程序
--------------------------------------------------------------------------------
WeaverServer和SDK环境准备就绪后,我们可以开始第一个程序的编写。
下面例子将演示,如何通过Weaver的API,扩展自己的应用。
【示例】通过API,编写信息发送应用
处理程序如下(sendsms.vbs):dim WeaverObj
dim WeaverParams
dim WeaverResult
Set WeaverObj = CreateObject("Weaverserver.Weaverobj")
Set WeaverParams = CreateObject("Weaverserver.collection")
= "SMSOBJECT"
WeaverParams.Add "SENDER", "900" '信息发送者
WeaverParams.Add "RECEIVER", "wwjs" '信息接收者
WeaverParams.Add "SMS", "测试" '信息内容
WeaverParams.Add "CUT",0 '1:自动切割信息0:不切割
On error resume next
WeaverResult = Weaverobj.Call2 (&H1001, WeaverParams) '“为发送信息指令”
PRO_SMS_SEND,
if( err.number < 0 ) then WeaverResult = err.Description
msgbox WeaverResult
5. 点击sendsms.vbs 运行,发送信息;
【注】发送信息时,需确保WeaverServer的对外服务已启动。
三、工作流接口案例
1、工作流对外接口使用说明
按照下面的步骤来安装并使用工作流接口:
1.1 、把接口包里解压缩后按照目录机构拷贝/覆盖到e-cology系统目录中
1.2 、把自己开发的实现了RequestOutWork接口的类放到相应的包里,并把这个类的全路径注册到接口配置文件里(\prop\requestmapping.properties),格式如下
工作流id=处理类的全路径
例如:112=weaver.workflow.request.TestWork
1.3 、在e-cology系统配置文件中加一个配置项如下:
hasOutWork = true
因为如果没有这条语句,或者其值为false,那么系统将不进行任何调用,即使在
\prop\requestmapping.properties文件里注册也不起作用只有上面的语句在主配置文件里出现,系统工作流引擎才会去\prop\requestmapping.properties文件里查找工作流相关的处理类。
完成上面的步骤就可以正常使用了,另外有两个例子文件所名了怎样创建POST请求,以及怎样实现RequestOutWork接口,路径如下:
/src/weaver/workflow/request/TestPost.java
/src/weaver/workflow/request/TestWork.java
2、工作流接口技术说明
里描述的时客户开发需要用到的类,还有一些jsp文件和java类文件这里没有说明,因为这些文件时开发当中不需要关心也不需要修改的。
/src/weaver/workflow/request/RequestOutWork.java
描述:如果需要在归档的时候执行自己定义的操作,那么必须实现这个类的execute方法,在这个方法里可以执行自己的操作,然后把这个类注册到接口的配置文件里面,这样工作流引擎就可以在归档的时候调用这个类的execute方法了。
方法:
booleanexecute(intrequestid)throwsRequestOutWorkException
功能:执行归档前自定义的操作
输入:工作流请求id
返回:是否成功
/src/weaver/workflow/request/RequestOutData.java
描述:这个类可以帮助开发者根据requestid方便的得到工作流的相关数据
方法:
RequestOutData(intrequestid)
功能:构建一个读取工作流数据的类,并且设置需要读取的工作流请求的id
输入:工作流请求id
方法:
StringgetData(StringfieldName)
功能:根据字段名称取得主表的数据
输入:字段名称
返回:字段的值
方法:
booleannext()
功能:由于明细数据时多行的数据结构,所以有这个函数来在多行之间移动。
移动到明细数据的下一行,第一次移动到的一行,第二次到第二行……
输入:无
返回:如果已经到最后一行,或者根本没有明细数据,那么返回false否则返回true
方法:
StringgetDetailData(StringfieldName)
功能:当有next()移动到需要的明细数据行时,由这个函数得到明细表的数据,如果没有明细,那么返回null
输入:明细字段名称
返回:明细字段的值
方法:
booleanloadData()
功能:读取数据库中的数据
输入:无
返回:如果成功返回true否则返回false
对于创建HTTP POST请求的说明
如果要创建一个工作流请求,那么必须用程序创建一个HTTPPOST请求,创建POST请求的方法很多,只要创建的头格式符合下面的说明即可,下面用java语言进行说明
假设out为建立连接后得到的输出流,那么创建POST请求如下所述:
out.print("POST"+file+"HTTP/1.1\r\n");
out.print("Accept:*/*\r\n");
out.print("Accept-Encoding:gzip,deflate\r\n");
out.print("Accept-Language:zh-cn\r\n");
out.print("Cache-Control:no-cache\r\n");
out.print("Connection:Keep-Alive\r\n");
out.print("Content-Length:"+data.getBytes().length+"\r\n");
out.print("Content-Type:application/x-www-form-urlencoded\r\n");
out.print("Host:"+wwwHost+"\r\n");
out.print("User-Agent:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.0)\r\n");
out.print("Pragma:no-cache\r\n");
out.print("Connection:close\r\n\r\n");
out.print(data);
蓝色行为必须项
其中
file 代表请求的页面名称wwwHost为服务器的名称
比如http://localhost/weaver/weaver.TestPostHead
那么file= /weaver/weaver.TestPostHead
wwwHost=localhost
注意:处理POST请求的是一个固定的jsp文件,不同的仅仅时wwwHost不同,而file总是相同的,都是/workflow/request/RequestOutDataFormatOperation.jsp,这个文件是处理外部来的POST 请求的固定文件
data POST请求代表数据,数据必须符合指定的格式,下面有描述
主表字段:field_主字段名称例如:field_document、field_text1
从表字段:field_从表字段名称_序列号(1、2、3……)
例如
主表字段:field_main1、field_main2
从表字段:
field_detail2_1、field_detail3_1
field_detail2_2、field_detail3_2
field_detail2_3、field_detail3_3
field_detail2_4、field_detail3_4
field_detail2_5、field_detail3_5
其中main1、main2为主字段名称detail2、detail3为从表字段名称那么数据的格式就是
field_main1=value1&field_main2=value2&field_detail2_1=value3&field_detail3_1= value4……
用java语言表示为
out.print(“field_main1=val ue1&field_main2=value2&field_detail2_1=value3&field_detail3_1= value4……”);
. .
.。