找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 3638|回复: 3

[其他] API 开发 请教:调用删除单据后就不能新增单据了

[复制链接]
发表于 2014-6-25 17:24:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
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


发表于 2015-2-11 13:18:31 | 显示全部楼层
你想说什么?
回复 点赞 拍砖

使用道具 举报

发表于 2015-6-2 16:37:33 | 显示全部楼层
这是标准的东西,是否可以共同研究下!
回复 点赞 拍砖

使用道具 举报

发表于 2022-12-15 14:17:18 | 显示全部楼层
学习学习
回复 点赞 拍砖

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-5-26 20:55 , Processed in 0.034716 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表