U8API开发手册(VB版)

内容发布更新时间 : 2024/5/2 11:46:35星期一 下面是文章的全部内容请认真阅读。

Set u8EnvCtx.U8Login = ologin '传入login

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

Dim u8apiBroker As New U8ApiComBroker

u8apiBroker.Connect \U8API/PuStoreIn/Add \

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 \字段值\主关键字段,Integer类型 DomHead(0).SetValue \字段值\委外期初标志,String类型 DomHead(0).SetValue \字段值\入库单号,String类型 ??

/***************************** 以下是非必输字段 ****************************/ DomHead(0).SetValue \字段值\修改人,String类型 DomHead(0).SetValue \字段值\修改日期,Date类型 DomHead(0).SetValue \字段值\制单时间,Date类型

??

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

??

当不传入一个参数变量时,在API调用返回时,可以通过GetResult(参数名)获取其值;当不必传入一个参数变量时,在API调用返回时,可以直接引用该参数。

4) 给“INOUT型”参数赋值 对“INOUT型”型参数,则不论是否是一般值类型,都需要传入参数变量。其他与“OUT型”参数一样。

5. 调用API

If u8apiBroker.InvokeApi() = False Then

'错误处理

MsgBox u8apiBroker.GetLastError()

If u8apiBroker.ErrorType = ExceptionType_Business Then

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

ElseIf u8apiBroker.ErrorType = ExceptionType_System Then End If

注意:对调用失败,可以获取出错信息,如果是API框架的原因,则报告MomSysException异常,如果是业务组件的原因,则报告MomBizException异常。

6. 获取返回结果

1) 获取BO对象

在“装载单据”时,通过GetBoParam方法获取表头或表体参数 Dim DomHeadRet As BusinessObject

Set DomHeadRet = u8apiBroker.GetBoParam(\) MsgBox DomHeadRet.RowCount '获取返回BO对象的行数

注意:

如果要取原始的XMLDOM对象结果,请使用GetResult(\Dim DomHeadRet As New MSXML2.DOMDocument

Set DomHeadRet = u8apiBroker. GetResult(\) 以上获取的行数是BO对象的实际行数。

'获取BO对象各字段的值。以下代码示例只取第一行。字段定义详见API服务接口定义

'***************************** 以下是必输字段 ****************************’ Dim idRet As Integer

idRet = CInt(DomHeadRet(0).GetValue(\主关键字段,Integer类型 Dim bomfirstRet As String

bomfirstRet = CStr(DomHeadRet(0).GetValue(\委外期初标志,String类型 Dim ccodeRet As String

ccodeRet = CStr(DomHeadRet(0).GetValue(\入库单号,String类型 ??

/***************************** 以下是非必输字段 ****************************/ Dim cmodifypersonRet As String

cmodifypersonRet = CStr(DomHeadRet(0).GetValue(\修改人,String类型 Dim dmodifydateRet As Date

dmodifydateRet = CDate(DomHeadRet(0).GetValue(\修改日期,Date类型 Dim dnmaketimeRet As Date

dnmaketimeRet = CDate(DomHeadRet(0).GetValue(\制单时间,Date类型 ??

2)

获取普通返回值

代码如下:

'获取普通返回值。此返回值数据类型为String,此参数按值传递,具体请参考服务接口定义 Dim result As String

4)

获取普通“OUT型”或“INOUT型”返回值

如前所述,对普通“OUT型”或“INOUT型”参数,如果是一般值类型,则通过GetResult方法获取其返回值,否则直接使用该引用。

如,

'获取普通OUT参数curID。此返回值数据类型为String,在使用该参数之前,请判断是否为空

'获取普通OUT参数CurDom。此返回值数据类型为MSXML2.IXMLDOMDocument2,前面已定义该参数,请直接使用 ??

Dim curIDRet As String

curIDRet = CStr(u8apiBroker.GetResult(\)) result = CStr(u8apiBroker.GetReturnValue())

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi