泛微SDK API接口说明描述.docx
《泛微SDK API接口说明描述.docx》由会员分享,可在线阅读,更多相关《泛微SDK API接口说明描述.docx(8页珍藏版)》请在冰豆网上搜索。
泛微SDKAPI接口说明描述
泛微法务部提请浏览者保护本文件的知识产权!
谢谢您的配合!
Weavere-cologyServerAPI
【文档目的】
本文档将介绍泛微e-cologyServer所提供的二次扩展功能,包括API接口的说明、二次扩展应用的实现、以及部分扩展功能的示例程序。
通过本文档,您可以了解到如何通过泛微e-cologyServer所提供的API接口进行一些个性化的功能扩展以及应用集成。
【应用范围】
泛微e-cologyServer作为企业管理平台,一方面为企业提供丰富的内部管理的功能模块(人力资源管理、工作流程管理、知识管理、项目管理、客户管理、财务管理、资产管理等),另一方面为企业的其他应用提供了丰富的集成、扩展接口。
基于ServerAPI的扩展,可实现企业应用在ERP系统、财务系统,PDM等方面的集成以及无线应用方面的快速增强。
【开发人员】
泛微e-cologyServerSDK为开发人员提供C、Jave以及基于COM的API接口,适合于Windows平台上支持COM标准的任何开发语言和平台(VB、VC++、ASP、JAVA、PB、Delphi、LotusScript等)。
WeaverServerSDK同时提供一个轻量HTTPServer,使非Windows平台也能够以HTTP请求的方式调用SDK。
本SDK的示例程序将以Java为主。
【示例源程序】
本SDK接口的测试源程序位于SDK安装目录下的Sample目录,通过所提供的VBScript测试程序,可以快速了解、检测SDK安相关接口的功能。
【最后更新】
2004年01月
一、概述
概述】
通过这个章节的学习,您在能够在短短的几分钟迅速成为WeaverServerSDK应用专家。
1. 进入门篇:
第一个程序:
Hello,world
2. 初级篇:
HTTPSDK跨平台调用
3. 提高篇:
面向对象编程
4. 进阶篇:
高性能与复杂应用
二、开发向导
1、应用框架
WeaverServer为开发人员提供的API接口主要包括两部分:
服务端和代理端,其中服务端安装在WeaverServer所在机器上,代理端安装在调用API的应用服务器上。
系统架构如下:
WeaverServerSDKAPI与SDK服务器可以安装在不同服务器上,他们之间通过TCP通信。
通过使用SDKAPI可调用WeaverServer所提供的扩展功能
2、准备工作
在开始编写扩展程序之前,需要先准备好WeaverServer以及SDK的开发环境:
【1】安装WeaverServer环境
安装WeaverServer后,系统会提示重新启动,请在安装SDK之后再重新启动。
【2】安装SDK
安装SDK的工作包括两部分:
WeaverAPIServer和WeaverAPIComponent。
其中,WeaverAPIServer需安装在WeaverServer机器上,WeaverAPIComponent需安装在调用WeaverAPI的应用服务器上。
【3】配置SDK信息
应用服务器与WeaverServer的通信是通过WeaverAPIComponent实现的,所以需要对APIComponent进行一些简单配置,包括WeaverServer的机器IP以及通信端口。
【文件位置】
C:
\ProgramFiles\WeaverSDK\WeaverServerAPI.ini
【配置项】
[Common]
Host=127.0.0.1
Port=6000
【说明】
Host:
WeaverServer所在机器IP
Port:
与WeaverServer的通信端口
【4】配置WeaverServer
如果WeaverServer和SDK安装在不同服务器,需要配置Weaver服务器的APIIP设置(警告:
默认仅本机能够使用SDK)。
【文件位置】
C:
\ProgramFiles\WeaverServer\SDKProperty.xml
【配置项】
127.0.0.1
【说明】
Enabled="1":
是
(1)否(0)对可调用API的机器作IP限制
192.168.0.12:
可访问WeaverServerAPI接口的机器IP
【5】准备就绪
3、编写一个扩展程序
编写第一个扩展程序
--------------------------------------------------------------------------------
WeaverServer和SDK环境准备就绪后,我们可以开始第一个程序的编写。
下面例子将演示,如何通过Weaver的API,扩展自己的应用。
【示例】通过API,编写信息发送应用
处理程序如下(sendsms.vbs):
dimWeaverObj
dimWeaverParams
dimWeaverResult
SetWeaverObj=CreateObject("Weaverserver.Weaverobj")
SetWeaverParams=CreateObject("Weaverserver.collection")
WeaverObj.Name="SMSOBJECT"
WeaverParams.Add"SENDER","900"'信息发送者
WeaverParams.Add"RECEIVER","wwjs"'信息接收者
WeaverParams.Add"SMS","测试"'信息内容
WeaverParams.Add"CUT",0'1:
自动切割信息0:
不切割
Onerrorresumenext
WeaverResult=Weaverobj.Call2(&H1001,WeaverParams)'“为发送信息指令”PRO_SMS_SEND,
if(err.number<0)thenWeaverResult=err.Description
msgboxWeaverResult
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
对于创建HTTPPOST请求的说明
如果要创建一个工作流请求,那么必须用程序创建一个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-\r\n");
out.print("Host:
"++"\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代表请求的页面名称为服务器的名称
比如
那么file=/weaver/weaver.TestPostHead
注意:
处理POST请求的是一个固定的jsp文件,不同的仅仅时不同,而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=value1&field_main2=value2&field_detail2_1=value3&field_detail3_1=
value4……”);