泛微SDK API接口说明描述文档格式.docx
《泛微SDK API接口说明描述文档格式.docx》由会员分享,可在线阅读,更多相关《泛微SDK API接口说明描述文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
进入门篇:
第一个程序:
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)。
\ProgramFiles\WeaverServer\SDKProperty.xml
<
APIClient>
IPLimitEnabled="
1"
>
IP>
127.0.0.1<
/IP>
/IPLimit>
<
/APIClient>
Enabled="
:
是
(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"
'
信息发送者
RECEIVER"
wwjs"
信息接收者
SMS"
测试"
信息内容
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
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"
);
Accept:
*/*\r\n"
Accept-Encoding:
gzip,deflate\r\n"
Accept-Language:
zh-cn\r\n"
Cache-Control:
no-cache\r\n"
Connection:
Keep-Alive\r\n"
Content-Length:
"
+data.getBytes().length+"
\r\n"
Content-Type:
application/x-\r\n"
Host:
++"
User-Agent:
Mozilla/4.0(compatible;
MSIE6.0;
WindowsNT5.0)\r\n"
Pragma:
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&
value4……”);