U8API开发手册(VB版) 下载本文

'调用LOAD接口API

If u8apiBroker.InvokeApi() = False Then

'错误处理

MsgBox u8apiBroker.GetLastError()

If u8apiBroker.ErrorType = ExceptionType_Business Then

'处理API业务错误 '处理系统错误

ElseIf u8apiBroker.ErrorType = ExceptionType_System Then End If '获取返回结果

'获取表头或表体的BO对象,如果要取原始的XMLDOM对象结果,请使用GetResult(参数名) Dim domHeadOrBodyRet As BusinessObject

Set domHeadOrBodyRet = u8apiBroker.GetBoParam(\表头或表体参数名\) MsgBox domHeadOrBodyRet.RowCount '获取返回BO对象的行数 ?? End If

Else

(3) 接着,BO对象经用户修改重新赋值,并传递给UPDATE接口提交保存;

'修改获取的BO对象,对需要更改的字段重新赋值 domHeadOrBodyRet(0).SetValue \字段名\,\新的字段值\

??

'重传入新“新增或修改”API的地址标识和环境上下文

u8apiBroker.Connect \新增或修改”API的地址标识\, u8EnvCtx '表头或表体参数赋值

u8apiBroker.SetBoParam \表头或表体参数名\, domHeadOrBodyRet 'API参数赋值

u8apiBroker.AssignNormalValue \参数名\, \参数值\ ??

'调用UPDATE接口API

If u8apiBroker.InvokeApi() = False Then

?? End If

(4) 最后,获取返回结果。

'获取普通返回值

Dim result As String

result = CStr(u8apiBroker.GetReturnValue()) '获取out/inout参数值 ??

'结束本次调用,释放API资源 u8apiBroker.Disconnect Set u8apiBroker = Nothing

2.2. API内容 2.2.1 采购管理

? 功能介绍

为了支持U8二次开发对业务单据的开发,本功能提供了实现采购业务单据各种操作功能的编程接口。使用采购管理的API开发接口,可以对库存管理中的采购到货单、采购普通发票、采购专用发票、采购订单、请购单、采购运费发票等单据进行审核、弃审、获取(或装载)、新增、修改、删除。

? 使用环境

必须安装.NET FrameWork 2.0; 必须安装U8-872版本的采购管理产品; 必须安装API适配器组件PUAPIConcrete.dll

? 接口说明

采购管理二次开发接口说明:

? 审核单据-ConfirmPO方法

参数:

domHead —— 单据表头,DOM对象,必输 API上下文:

VoucherType —— 单据类型,具体类型参看API上下文描述 bPositive —— 红蓝标识:True,蓝字 ;False,红字 sBillType —— 为空串

sBusType —— 业务类型:普通采购,直运采购,受托代销

? 弃审单据- CancelconfirmPO方法

参数:

domHead —— 单据表头,DOM对象,必输 API上下文:

VoucherType —— 单据类型,具体类型参看API上下文描述 bPositive —— 红蓝标识:True,蓝字 ;False,红字 sBillType —— 为空串

sBusType —— 业务类型:普通采购,直运采购,受托代销

? 装载单据-Load方法

参数:

DomHead —— 表头DOM对象 domBody —— 表体DOM对象 strWhere —— 过滤条件串 varVoucherID —— 单据主表ID strLocateWhere —— 定位条件串 API上下文:

VoucherType —— 单据类型,具体类型参看API上下文描述 bPositive —— 红蓝标识:True,蓝字 ;False,红字 sBillType —— 为空串

sBusType —— 业务类型:普通采购,直运采购,受托代销

? 删除单据-Delete方法

参数:

DomHead —— 表头DOM对象 domBody —— 表体DOM对象

CurDom —— 返回DOM格式错误信息 API上下文:

VoucherType —— 单据类型,具体类型参看API上下文描述 bPositive —— 红蓝标识:True,蓝字 ;False,红字 sBillType —— 为空串

sBusType —— 业务类型:普通采购,直运采购,受托代销

? 新增或修改新单据- VoucherSave方法

参数:

DomHead —— 单据表头,DOM对象,必输 domBody —— 单据表体,DOM对象,必输

VoucherState —— 保存状态,必输。2增加;1修改 ;0非编辑 curID —— 返回单据头ID

CurDom —— 返回DOM格式错误信息 UserMode —— 使用模式,0:CS;1:BS API上下文:

VoucherType —— 单据类型,具体类型参看API上下文描述 bPositive —— 红蓝标识:True,蓝字 ;False,红字 sBillType —— 为空串

sBusType —— 业务类型:普通采购,直运采购,受托代销

? 开发步骤

调用采购单据某一API,主要有以下六个步骤: 1. 构造u8login对象并登陆

声明和创建u8login类对象前应该先引用U8API类库中的Integererop.U8Login.dll,

代码示例如下:

Dim ologin As Object

Set ologin = CreateObject(\U8Login.clsLogin\ '声明u8login对象 '登陆

If Not ologin.login(\, \, \, \, \, \, \) Then

MsgBox ologin.ShareString

注意:如果当前环境中有login对象则可以省去第一步。

2. 构造环境上下文对象,传入login,并按需设置其它上下文参数

Dim u8EnvCtx As New U8EnvContext Set u8EnvCtx.U8Login = ologin

'设置上下文参数

u8EnvCtx.SetApiContext \, \上下文值\上下文数据类型:int,含义:单据类型,采购订单 u8EnvCtx.SetApiContext \, \上下文值\上下文数据类型:bool,含义:红蓝标识:True,蓝字 u8EnvCtx.SetApiContext \, \上下文值\上下文数据类型:string,含义:为空串

u8EnvCtx.SetApiContext \, \上下文值\上下文数据类型:string,含义:业务类型:普通采购,直运采购,受托代销

'构造环境上下文对象 '传入login

注意:如果是外部事务,则需要传递ADO.Connection对象,并将IsIndependenceTransaction设置为true:

Set u8EnvCtx.BizDbConnection = new ADO.Connection() u8EnvCtx.IsIndependenceTransaction = true

3. 构造ApiBroker对象,调用Connect,传入API的地址标识(Url)和环境上下文

Dim u8apiBroker As New U8ApiComBroker

u8apiBroker.Connect \U8API/PurchaseOrder/VoucherSave\

4. API对象参数赋值

1) 给BO表头参数DomHead或表体参数domBody赋值有两种方法,如下: 方法一是直接传入MSXML2.DOMDocumentClass对象,代码如下:

Dim domHead As New MSXML2.DOMDocument domHead.load \

u8apiBroker.AssignNormalValue \DomHead\

方法二是构造BusinessObject对象,具体方法如下:

'首先通过GetBoParam方法获取表头或表体参数

Dim DomHead As BusinessObject

Set DomHead = u8apiBroker.GetBoParam(\DomHead\DomHead.RowCount = 1 '设置行数

'给BO对象的字段赋值,值可以是真实类型,也可以是无类型字符串 '以下代码示例只设置第一行值。各字段定义详见API服务接口定义

注意:表体的行数只能为一行,可以对表体设置多行。当设置行数为某个值时,行数并不限定为该最大值,可以一直顺序添加至任意行,但有一个规则:例如当设置为10时,可以对第0、1、??9行赋值,当对第10行赋值时候,则会顺序添加一个新行,但此时是不能对第11行赋值的,当添加一个新行(第10行)后,又可以对第11行进行赋值。

'****************************** 以下是必输字段 *****************************' ??

'***************************** 以下是非必输字段 ****************************'

DomHead(0).SetValue \字段值\现存量,String类型 DomHead(0).SetValue \字段值\制单时间,Date类型 DomHead(0).SetValue \字段值\修改时间,Date类型 DomHead(0).SetValue \字段值\主关键字段,Integer类型 DomHead(0).SetValue \字段值\业务类型,String类型 DomHead(0).SetValue \字段值\日期,Date类型 DomHead(0).SetValue \字段值\订单编号,String类型

??

2) 给普通参数赋值 例如,

'给普通参数VoucherState(参数名)赋值。此参数的数据类型为Integer,此参数按值传递,具体请参考服务接口定义

u8apiBroker.AssignNormalValue \VoucherState\参数值\ '参数类型:Integer 注意:所有参数名不限大小写。

3) 给“OUT型”参数赋值

为方便用户使用U8API,如果参数数据类型为一般值类型,如String、Integer、Long、Double、Boolean、Date等,则不必传入一个参数变量(传入也可);否则,则必须一个参数变量。

如: ??

'该参数curID为OUT型参数,由于其数据类型为String,为一般值类型,因此不必传入一个参数变量。在API调用返回时,可以通过GetResult(\获取

'该参数CurDom为OUT型参数,由于其数据类型为MSXML2.IXMLDOMDocument2,非一般值类型,因此必须传入一个参数变量。在API调用返回时,可以直接使用该参数

Dim CurDom As New MSXML2.IXMLDOMDocument2

u8apiBroker.AssignNormalValue \CurDom\'参数类型:MSXML2.IXMLDOMDocument2

??