|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册账号
×
VB代码如下,根据标准代码改的,但是运行后原来可以新增单据的代码就会出错,请高手指教。
Public Function DeleteVouchesU8Api(VType As String, ByRef hData As HeaderData, rsData As Object) As Boolean
On Error GoTo ErrHandler
DeleteVouchesU8Api = False
'第一步:构造u8login对象并登陆
'如果当前环境中有login对象则可以省去第一步
Dim ologin As Object
Set ologin = CreateObject("U8Login.clsLogin")
If Not ologin.login("AS", "(default)@001", "2008", "demo", "", "2008-7-8", "localhost") Then
MsgBox ologin.ShareString
Else
'第二步:构造环境上下文对象,传入login,并按需设置其它上下文参数
Dim u8EnvCtx As New U8EnvContext
Set u8EnvCtx.U8Login = ologin
'第三步:构造ApiBroker对象,调用Connect,传入Api的地址标识(Url),传入上下文
Dim u8apiBroker As New U8ApiComBroker
u8apiBroker.Connect "U8API/ProductIn/Delete", u8EnvCtx
'第四步:API参数赋值
'给普通参数sVouchType赋值。此参数的数据类型为String,此参数按值传递,表示单据类型:10
u8apiBroker.AssignNormalValue "sVouchType", VType '参数类型:String
'给普通参数VouchId赋值。此参数的数据类型为String,此参数按值传递,表示单据Id
u8apiBroker.AssignNormalValue "VouchId", hData.VouchId '参数类型:String
'该参数errMsg为OUT型参数,由于其数据类型为String,为一般值类型,因此不必传入一个参数变量。在API调用返回时,可以通过GetResult("errMsg")获取其值
'给普通参数cnnFrom赋值。此参数的数据类型为ADODB.Connection,此参数按引用传递,表示连接对象:由调用方控制事务时需要传入连接对象
u8apiBroker.AssignNormalValue "cnnFrom", Nothing '参数类型:ADODB.Connection
'给普通参数TimeStamp赋值。此参数的数据类型为Object,此参数按值传递,表示单据时间戳
u8apiBroker.AssignNormalValue "TimeStamp", hData.Ufts '参数类型:Object
'该参数domMsg为OUT型参数,由于其数据类型为MSXML2.IXMLDOMDocument2,非一般值类型,因此必须传入一个参数变量。在API调用返回时,可以直接使用该参数
Dim domMsg As New MSXML2.DOMDocument
u8apiBroker.AssignNormalValue "domMsg", domMsg '参数类型:MSXML2.IXMLDOMDocument2
'给普通参数bCheck赋值。此参数的数据类型为Boolean,此参数按值传递,表示是否进行业务检查
u8apiBroker.AssignNormalValue "bCheck", True '参数类型:Boolean
'给普通参数bBeforCheckStock赋值。此参数的数据类型为Boolean,此参数按值传递,表示检查可用量
u8apiBroker.AssignNormalValue "bBeforCheckStock", True '参数类型:Boolean
'给普通参数bList赋值。此参数的数据类型为Boolean,此参数按值传递,表示传入false
u8apiBroker.AssignNormalValue "bList", False '参数类型:Boolean
'第五步:调用API
If u8apiBroker.InvokeApi() = False Then
'第六步:错误处理
MsgBox u8apiBroker.GetLastError()
If u8apiBroker.ErrorType = ExceptionType_Business Then
'处理API业务错误
ElseIf u8apiBroker.ErrorType = ExceptionType_System Then
'处理系统错误
End If
Else
'第七步:获取返回结果
'获取返回值
'获取普通返回值。此返回值数据类型为Boolean,此参数按值传递,表示
Dim result As Boolean
result = CBool(u8apiBroker.GetReturnValue())
DeleteVouchesU8Api = result
'获取out/inout参数值
'获取普通OUT参数errMsg。此返回值数据类型为String,在使用该参数之前,请判断是否为空
Dim errMsgRet As String
errMsgRet = CStr(u8apiBroker.GetResult("errMsg"))
hData.ErrMsg = errMsgRet
'获取普通OUT参数domMsg。此返回值数据类型为MSXML2.IXMLDOMDocument2,前面已定义该参数,请直接使用
End If
'结束本次调用,释放API资源
u8apiBroker.Disconnect
Set u8apiBroker = Nothing
End If
Exit Function
ErrHandler:
hData.ErrMsg = Err.Description
Err.Clear
'MsgBox Err.Description
End Function
|
|