




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
U8API开发手册作者:商平锋版权所有:用友软件股份有限公司1.简介U8API是为U8客户化应用开发提供的一套标准化的U8ERP业务编程接口。是U8UAP二次开发体系的重要组成部分。它包括一整套涵盖U8ERP采购、销售、库存、制造(规划中)、财务(规划中)、基本档案(规划中)等业务模块的API接口资源。U8API的推出为U8标准产品更好的适应用户的个性化需求,更好的实现客户化交付提供了有力支持。U8API按照U8ERP业务产品模块进行分类,并以U8主要业务实体(单据、档案、凭证)作为操作对象,提供了常用的基本操作。比如:对于库存的收发单据,提供“新增”、“审核”、“弃审”、“删除”、“装载”、“修改”六个API接口。目前,U8API提供了供应链采购、销售、库存三个产品的所有单据的增删改、审核/弃审等API接口,后续版本会逐步将制造、财务、基本档案等模块的API纳入进来。U8API通过“U8API资源管理器”对U8范围内所有API进行集中统一分类管理,形成了一套完整的U8API资源库。U8API的使用者可以使用“U8API资源管理器”浏览、查看API及其接口定义,并可辅助进行代码生成(目前支持C#和VB语言);API的开发者可以通过此工具发布、注册API,所有业务API都必须在“U8API资源管理器”中进行注册。U8API还提供了一套运行时调用框架U8APIBroker。它是所有U8API的调用代理,用户要使用某个API只需调用U8APIBroker即可,无需直接访问真正的API。U8APIBroker作为一个服务代理中间件,起到了隔离API的提供者与使用者的作用,降低了耦合依赖关系。U8API与U8EAI接口从功能上看比较相识,但它们的特性有差别。U8API采用传统的编程模型,更靠近底层,业务逻辑粒度更细,而且还需要或依赖一些特定的上下文环境,比如:login、事务等;而U8EAI接口则是完全松耦合的,采用XML和请求/响应的消息传递模式,且业务粒度比较粗放。这些特性的差别决定了它们的应用领域不同,U8API更适合于U8内部的功能扩展和客户个性化开发,而U8EAI则适合外部系统与U8之间以业务数据交换为特征的应用集成开发。2.API应用2.1. API总体应用过程2.1.1 API浏览查找在“开始”-“程序”-“用友ERP-U8”-“UAP”目录下找到“U8API资源管理器”,单击,登录,进入“U8API资源管理器”。在左侧 “U8API” 树形节点下,找到某某模块,如“库存管理”模块(可以看到下面列有很多个单据,如盘点单、采购入库单等),展开要操作的单据,分两个子节点:“事件”和“服务接口”,在“服务接口”下可以看到该单据提供的API接口,如“添加新单据”、“审核单据”等。双击这些节点出现该API的详细描述,如下图2.1所示。在节点上右键单击弹出“上下文菜单”,在“代码示例”菜单项上弹出下一级子菜单,单击它们,如单击“VB代码示例”则可以看到调用该API的VB示例代码,如下图2.2所示。直接拷贝这些代码,然后在集成开发环境(IDE)中编辑和编译这些代码,即能实现调用U8标准API。利用这些代码示例时,请按照其中每一步骤的提示说明正确操作,如添加必要的引用、按照自动生成的代码填入正确的参数等。正确使用则可以调用成功,否则会返回详细的错误信息。以下代码中均以VB为例, C#语言请具体查看对应的C#代码示例部分。图2.1 接口描述图 2.2 代码示例2.1.2 API调用过程 组件引用针对两种语言,需要引用不同的组件。(1)VB:%U8SOFT%UFMOMU8APIFrameworkUFIDA.U8.U8APIFramework. tlb、%U8SOFT%UFMOMU8APIFrameworkUFIDA.U8.MomServiceCommon. tlb、%U8SOFT%UFMOMU8APIFrameworkUFIDA.U8.U8MOMAPIFramework. tlb、添加Microsoft XML v3.0引用如下图2.3、2.4所示。(2)C#:%U8SOFT%IntegereropIntegererop.U8Login.dll、%U8SOFT%IntegereropIntegererop.MSXML2.dll、%U8SOFT%UFMOMU8APIFrameworkUFIDA.U8.U8APIFramework.dll、%U8SOFT%UFMOMU8APIFrameworkUFIDA.U8.MomServiceCommon.dll、%U8SOFT%UFMOMU8APIFrameworkUFIDA.U8.U8MOMAPIFramework.dll如下图2.5、2.6、2.7所示。其中,%U8SOFT%表示U8-872的安装目录。图2.3 添加对U8API框架类库引用(.tlb)图2.4 添加Microsoft XML v3.0引用图 2.5 添加对U8Login.dll引用图 2.6 添加对Integererop.MSXML2.dll引用图 2.7 添加对U8API框架类库引用(.dll) API调用添加必要的引用后,可以直接利用自动生成的代码示例(支持VB和C#两种语言),结合API接口详细描述,填入必要的参数值,就可以调用U8 API。总体上,对U8 API的调用分成六个步骤:1) 构造u8login对象并登陆;2) 构造环境上下文对象,传入login,并按需设置其它上下文参数;3) 构造APIBroker,调用Connect,传入API地址标识(Url)和环境上下文;4) API参数赋值;5) 调用API;6) 获取返回结果。详细的API调用过程请看下文“API内容”中各个模块中介绍的“开发步骤”。下面重点介绍几个关键要点和步骤:环境上下文、API地址、APIBroker、普通参数赋值、BO参数赋值。 环境上下文环境上下文指在调用U8API时需要初始化的调用环境,包括Login、事务、特殊的业务参数等。环境上下文被初始化后,相关的环境参数会被业务API使用。Dim u8EnvCtx As New U8EnvContextl Login需要将U8Login对象传递给环境上下文,U8Login对象必须已经登录过。Set u8EnvCtx.U8Login = ologinl 事务如果需要由外部发起事务,则可以发起事务的ADO Connection对象传递给环境上下文:Set u8EnvCtx.BizDbConnection = new ADO.Connection()同时需要设置一个外部事务标记:u8EnvCtx.IsIndependenceTransaction = truel 特殊业务参数特殊业务参数指调用某些API需要设置的特定上下文参数,比如:销售的API必须要设置如VoucherType上下文参数,设置方法为:u8EnvCtx.SetApiContext VoucherType, 23 API地址API地址是指API在U8API系统中的唯一标识,也叫API的URI,通过该标识唯一确定一个U8API。如,API地址U8API/SaleOrder/Save代表销售订单中的“新增或修改”这样一个API接口。 APIBrokerAPIBroker是所有U8API的调用代理接口。使用U8所有API都必须通过APIBroker间接调用。APIBroker作为一个服务代理中间件,起到了隔离API的提供者与使用者的作用,降低了耦合依赖关系。调用API的时候,需要首先创建一个APIBroker, 然后调用其Connect,传入API地址和环境上下文:Dim u8apiBroker As New U8ApiComBroker u8apiBroker.Connect U8API/SaleOrder/Save, u8EnvCtx 普通参数赋值API参数分两种类型:BO参数和普通参数。普通参数是指非单据表头/表体类型的参数,包括基本类型参数(String、Integer等)、知名对象参数(Connection、DOMDocument等)。普通参数的赋值采用如下方式:u8apiBroker.AssignNormalValue VoucherState, 2 BO参数赋值BO参数即单据表头或表体类型的参数。对BO参数,支持两种方式传入,一种传BO对象,另一种传DOM对象。以下分别介绍:l 传BO对象给BO表头参数或表体参数赋值,推荐使用BO对象(BussinessObject)。例如:Dim domHead As BusinessObjectSet domHead = u8apiBroker.GetBoParam(domHead)domHead.RowCount = 1; 设置行数,不设置也可给BO对象的字段赋值,值可以是真实类型,也可以是无类型字符串以下代码示例只设置第一行值。各字段定义详见API服务接口定义* 以下是必输字段*domHead(0).SetValue poid,; 主关键字段,Integer类型domHead(0).SetValue dpodate,; 日期,Date类型domHead(0).SetValue cpoid,; 订单编号,String类型* 以下是非必输字段*domHead(0).SetValue ipresent,; 现存量,String类型domHead(0).SetValue cmaketime,; 制单时间,Date类型domHead(0).SetValue cmodifytime,; 修改时间,Date类型在此种情况下U8 API框架会对BO对象各字段进行参数校验。对字段进行赋值时,值可以是真实类型,也可以是无类型的字符串。l 传DOM对象给BO表头参数或表体参数赋值,也支持直接传入DOM对象(DOMDocument)。例如:Dim domHead As New MSXML2.DOMDocumentdomHead.load domHead.xml u8apiBroker.AssignNormalValue domHead , domHead但是,在此种情况下U8 API框架不会对DOM对象进行参数验证。请在使用该方法之前,确保DOM对象的正确性。2.1.3 API典型应用场景 执行单一操作单一操作指一项任务只需要一个API完成,比如:单据新增、审核/弃审、删除等单一操作。这是API调用最常见的场景,只需按照API的接口规范构造参数直接调用即可。 执行复合操作复合操作,即一项任务由多个API的协作来完成。比如,自定义的单据维护界面的主要逻辑,一般由以下四个步骤构成:1) 加载单据;2) 在编辑界面上显示;3) 用户修改单据字段;4) 提交保存。以上步骤需要进行两次API调用:1) 加载单据时候调用“加载API”,以获取单据BO对象(或原始DOM对象)并在界面上展现;2) 用户在修改单据时其实就是在修改BO对象,用户保存单据时调用“保存API”,此时要将此BO对象传给“保存API”(而不用构造新的BO对象)。l 代码示例(1) 首先,登陆;构造u8login对象并登陆Dim ologin As ObjectSet ologin = CreateObject(U8Login.clsLogin)If Not ologin.login(AS, (default)001, 2008, demo, , 2008-7-7, localhost) ThenMsgBox ologin.ShareString (2) 然后,通过LOAD接口获取BO对象;构造环境上下文对象,传入login,并按需设置其它上下文参数Dim u8EnvCtx As New U8EnvContextSet u8EnvCtx.U8Login = ologin设置上下文参数u8EnvCtx.SetApiContext VoucherType, 上下文值 构造APIBroker,调用Connect,传入Api的地址标识(Url),传入上下文Dim u8apiBroker As New U8ApiComBrokeru8apiBroker.Connect “装载单据的地址标识”, u8EnvCtxAPI参数赋值u8apiBroker.AssignNormalValue 参数名, 参数值调用LOAD接口APIIf u8apiBroker.InvokeApi() = False Then错误处理MsgBox u8apiBroker.GetLastError()If u8apiBroker.ErrorType = ExceptionType_Business Then处理API业务错误ElseIf u8apiBroker.ErrorType = ExceptionType_System Then处理系统错误End IfElse获取返回结果获取表头或表体的BO对象,如果要取原始的XMLDOM对象结果,请使用GetResult(参数名)Dim domHeadOrBodyRet As BusinessObjectSet domHeadOrBodyRet = u8apiBroker.GetBoParam(表头或表体参数名)MsgBox domHeadOrBodyRet.RowCount 获取返回BO对象的行数End If(3) 接着,BO对象经用户修改重新赋值,并传递给UPDATE接口提交保存;修改获取的BO对象,对需要更改的字段重新赋值domHeadOrBodyRet(0).SetValue 字段名,新的字段值重传入新“新增或修改”API的地址标识和环境上下文u8apiBroker.Connect 新增或修改”API的地址标识, u8EnvCtx表头或表体参数赋值u8apiBroker.SetBoParam 表头或表体参数名, domHeadOrBodyRetAPI参数赋值u8apiBroker.AssignNormalValue 参数名, 参数值调用UPDATE接口APIIf u8apiBroker.InvokeApi() = False ThenEnd If(4) 最后,获取返回结果。获取普通返回值Dim result As Stringresult = CStr(u8apiBroker.GetReturnValue()获取out/inout参数值结束本次调用,释放API资源u8apiBroker.DisconnectSet u8apiBroker = Nothing2.2. API内容2.2.1 采购管理 功能介绍为了支持U8二次开发对业务单据的开发,本功能提供了实现采购业务单据各种操作功能的编程接口。使用采购管理的API开发接口,可以对库存管理中的采购到货单、采购普通发票、采购专用发票、采购订单、请购单、采购运费发票等单据进行审核、弃审、获取(或装载)、新增、修改、删除。 使用环境必须安装.NET FrameWork 2.0;必须安装U8-872版本的采购管理产品;必须安装API适配器组件PUAPIConcrete.dll 接口说明采购管理二次开发接口说明:n 审核单据-ConfirmPO方法参数:domHead 单据表头,DOM对象,必输API上下文:VoucherType 单据类型,具体类型参看API上下文描述bPositive 红蓝标识:True,蓝字 ;False,红字sBillType 为空串 sBusType 业务类型:普通采购,直运采购,受托代销n 弃审单据- CancelconfirmPO方法参数:domHead 单据表头,DOM对象,必输API上下文:VoucherType 单据类型,具体类型参看API上下文描述bPositive 红蓝标识:True,蓝字 ;False,红字sBillType 为空串 sBusType 业务类型:普通采购,直运采购,受托代销n 装载单据-Load方法参数:DomHead 表头DOM对象domBody 表体DOM对象strWhere 过滤条件串varVoucherID 单据主表IDstrLocateWhere 定位条件串API上下文:VoucherType 单据类型,具体类型参看API上下文描述bPositive 红蓝标识:True,蓝字 ;False,红字sBillType 为空串 sBusType 业务类型:普通采购,直运采购,受托代销n 删除单据-Delete方法参数:DomHead 表头DOM对象domBody 表体DOM对象CurDom 返回DOM格式错误信息API上下文:VoucherType 单据类型,具体类型参看API上下文描述bPositive 红蓝标识:True,蓝字 ;False,红字sBillType 为空串 sBusType 业务类型:普通采购,直运采购,受托代销n 新增或修改新单据- VoucherSave方法参数:DomHead 单据表头,DOM对象,必输 domBody 单据表体,DOM对象,必输 VoucherState 保存状态,必输。2增加;1修改 ;0非编辑curID 返回单据头ID CurDom 返回DOM格式错误信息UserMode 使用模式,0:CS;1:BSAPI上下文:VoucherType 单据类型,具体类型参看API上下文描述bPositive 红蓝标识:True,蓝字 ;False,红字sBillType 为空串 sBusType 业务类型:普通采购,直运采购,受托代销 开发步骤调用采购单据某一API,主要有以下六个步骤:1 构造u8login对象并登陆 声明和创建u8login类对象前应该先引用U8API类库中的Integererop.U8Login.dll,代码示例如下:Dim ologin As ObjectSet ologin = CreateObject(U8Login.clsLogin) 声明u8login对象登陆If Not ologin.login(AS, (default)001, 2008, demo, , 2008-7-7, localhost) ThenMsgBox ologin.ShareString注意:如果当前环境中有login对象则可以省去第一步。2 构造环境上下文对象,传入login,并按需设置其它上下文参数Dim u8EnvCtx As New U8EnvContext构造环境上下文对象Set u8EnvCtx.U8Login = ologin 传入login设置上下文参数u8EnvCtx.SetApiContext VoucherType, 上下文值 上下文数据类型:int,含义:单据类型,采购订单 u8EnvCtx.SetApiContext bPositive, 上下文值 上下文数据类型:bool,含义:红蓝标识:True,蓝字u8EnvCtx.SetApiContext sBillType, 上下文值 上下文数据类型:string,含义:为空串u8EnvCtx.SetApiContext sBusType, 上下文值 上下文数据类型:string,含义:业务类型:普通采购,直运采购,受托代销注意:如果是外部事务,则需要传递ADO.Connection对象,并将IsIndependenceTransaction设置为true: Set u8EnvCtx.BizDbConnection = new ADO.Connection() u8EnvCtx.IsIndependenceTransaction = true3 构造ApiBroker对象,调用Connect,传入API的地址标识(Url)和环境上下文Dim u8apiBroker As New U8ApiComBroker u8apiBroker.Connect U8API/PurchaseOrder/VoucherSave, u8EnvCtx4 API对象参数赋值1) 给BO表头参数DomHead或表体参数domBody赋值有两种方法,如下:方法一是直接传入MSXML2.DOMDocumentClass对象,代码如下:Dim domHead As New MSXML2.DOMDocumentdomHead.load domHead.xml u8apiBroker.AssignNormalValue DomHead, domHead方法二是构造BusinessObject对象,具体方法如下:首先通过GetBoParam方法获取表头或表体参数Dim DomHead As BusinessObjectSet DomHead = u8apiBroker.GetBoParam(DomHead)DomHead.RowCount = 1 设置行数给BO对象的字段赋值,值可以是真实类型,也可以是无类型字符串以下代码示例只设置第一行值。各字段定义详见API服务接口定义注意:表体的行数只能为一行,可以对表体设置多行。当设置行数为某个值时,行数并不限定为该最大值,可以一直顺序添加至任意行,但有一个规则:例如当设置为10时,可以对第0、1、9行赋值,当对第10行赋值时候,则会顺序添加一个新行,但此时是不能对第11行赋值的,当添加一个新行(第10行)后,又可以对第11行进行赋值。* 以下是必输字段 *DomHead(0).SetValue poid,字段值 主关键字段,Integer类型DomHead(0).SetValue cbustype,字段值 业务类型,String类型DomHead(0).SetValue dpodate,字段值 日期,Date类型DomHead(0).SetValue cpoid,字段值 订单编号,String类型* 以下是非必输字段 *DomHead(0).SetValue ipresent,字段值 现存量,String类型DomHead(0).SetValue cmaketime,字段值 制单时间,Date类型DomHead(0).SetValue cmodifytime,字段值 修改时间,Date类型2) 给普通参数赋值例如,给普通参数VoucherState(参数名)赋值。此参数的数据类型为Integer,此参数按值传递,具体请参考服务接口定义u8apiBroker.AssignNormalValue VoucherState, 参数值 参数类型:Integer注意:所有参数名不限大小写。3) 给“OUT型”参数赋值为方便用户使用U8API,如果参数数据类型为一般值类型,如String、Integer、Long、Double、Boolean、Date等,则不必传入一个参数变量(传入也可);否则,则必须一个参数变量。如:该参数curID为OUT型参数,由于其数据类型为String,为一般值类型,因此不必传入一个参数变量。在API调用返回时,可以通过GetResult(curID)获取该参数CurDom为OUT型参数,由于其数据类型为MSXML2.IXMLDOMDocument2,非一般值类型,因此必须传入一个参数变量。在API调用返回时,可以直接使用该参数Dim CurDom As New MSXML2.IXMLDOMDocument2u8apiBroker.AssignNormalValue CurDom, 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 BusinessObjectSet DomHeadRet = u8apiBroker.GetBoParam(DomHead)MsgBox DomHeadRet.RowCount 获取返回BO对象的行数注意:如果要取原始的XMLDOM对象结果,请使用GetResult(DomHead)Dim DomHeadRet As New MSXML2.DOMDocumentSet DomHeadRet = u8apiBroker. GetResult(DomHead)以上获取的行数是BO对象的实际行数。获取BO对象各字段的值。以下代码示例只取第一行。字段定义详见API服务接口定义* 以下是必输字段 *Dim poidRet As IntegerpoidRet = CInt(DomHeadRet(0).GetValue(poid) 主关键字段,Integer类型Dim cbustypeRet As StringcbustypeRet = CStr(DomHeadRet(0).GetValue(cbustype) 业务类型,String类型Dim dpodateRet As DatedpodateRet = CDate(DomHeadRet(0).GetValue(dpodate) 日期,Date类型* 以下是非必输字段 *Dim ipresentRet As StringipresentRet = CStr(DomHeadRet(0).GetValue(ipresent) 现存量,String类型Dim cmaketimeRet As DatecmaketimeRet = CDate(DomHeadRet(0).GetValue(cmaketime) 制单时间,Date类型Dim cmodifytimeRet As DatecmodifytimeRet = CDate(DomHeadRet(0).GetValue(cmodifytime) 修改时间,Date类型2) 获取普通返回值 代码如下:获取普通返回值。此返回值数据类型为String,此参数按值传递,具体请参考服务接口定义Dim result As Stringresult = CStr(u8apiBroker.GetReturnValue()3) 获取普通“OUT型”或“INOUT型”返回值如前所述,对普通“OUT型”或“INOUT型”参数,如果是一般值类型,则通过GetResult方法获取其返回值,否则直接使用该引用。如,获取普通OUT参数curID。此返回值数据类型为String,在使用该参数之前,请判断是否为空Dim curIDRet As StringcurIDRet = CStr(u8apiBroker.GetResult(curID)获取普通OUT参数CurDom。此返回值数据类型为MSXML2.IXMLDOMDocument2,前面已定义该参数,请直接使用2.2.2 销售管理 功能介绍为了支持U8二次开发对业务单据的开发,本功能提供了实现销售业务单据各种操作功能的编程接口。使用销售管理API开发接口,可以完成销售管理的销售报价单、销售订单、销售发货单、销售退货单、销售普通发票、销售专用发票、委托代销发货单、委托代销结算单、销售调拨单等单据的审核、弃审、获取、新增、修改、删除。 使用环境必须安装.NET FrameWork 2.0;必须安装U8-872版本的销售管理产品;必须安装API适配器组件SAAPIConcrete.dll; 接口说明销售管理二次开发接口及参数说明:n 审核或弃审单据-Audit方法参数:domHead 单据表头,DOM对象,必输 bVerify 审核/弃审标志,必输。true表审核;false表弃审 API上下文:VoucherType 单据类型,必输。具体类型参看API上下文描述n 删除单据-Delete方法参数:domHead 单据表头,DOM对象,必输 API上下文:VoucherType 单据类型,必输。具体类型参看API上下文描述n 装载单据-Load方法参数:domHead 单据表头,DOM对象,必输 domBody 单据表体,DOM对象,必输 VouchID 需要装载的单据号,可选 blnAuth 是否控制权限:trueAPI上下文:VoucherType 单据类型,必输。具体类型参看API上下文描述n 新增或修改单据-Save方法参数:domHead 单据表头,DOM对象,必输 domBody 单据表体,DOM对象,必输 VoucherState 保存状态,必输。0增加;1修改 VNewID 单据的id,可选 DomConfig ATO,PTO选配配置,必输,可设置为nothing API上下文:VoucherType 单据类型,必输。具体类型参看API上下文描述 开发步骤调用销售单据某一API,主要有以下六个步骤:1 构造u8login对象并登陆 声明和创建u8login类对象前应该先引用U8API类库中的Integererop.U8Login.dll,代码示例如下:Dim ologin As ObjectSet ologin = CreateObject(U8Login.clsLogin) 声明u8login对象登陆If Not ologin.login(AS, (default)001, 2008, demo, , 2008-7-7, localhost) ThenMsgBox ologin.ShareString注意:如果当前环境中有login对象则可以省去第一步。2 构造环境上下文对象,传入login,并按需设置其它上下文参数Dim u8EnvCtx As New U8EnvContext构造环境上下文对象Set u8EnvCtx.U8Login = ologin 传入login设置上下文参数u8EnvCtx.SetApiContext VoucherType, 上下文值 上下文数据类型:int,含义:单据类型:12注意:如果是外部事务,则需要传递ADO.Connection对象,并将IsIndependenceTransaction设置为true: Set u8EnvCtx.BizDbConnection = new ADO.Connection() u8EnvCtx.IsIndependenceTransaction = true3 构造ApiBroker对象,调用Connect,传入API的地址标识(Url)和环境上下文Dim u8apiBroker As New U8ApiComBroker u8apiBroker.Connect U8API/SaleOrder/Save, u8EnvCtx4 API对象参数赋值1) 给BO表头参数DomHead或表体参数domBody赋值有两种方法,如下:方法一是直接传入MSXML2.DOMDocumentClass对象,代码如下:Dim domHead As New MSXML2.DOMDocumentdomHead.load domHead.xml u8apiBroker.AssignNormalValue DomHead, domHead方法二是构造BusinessObject对象,具体方法如下:首先通过GetBoParam方法获取表头或表体参数Dim DomHead As BusinessObjectSet DomHead = u8apiBroker.GetBoParam(DomHead)DomHead.RowCount = 1 设置行数给BO对象的字段赋值,值可以是真实类型,也可以是无类型字符串以下代码示例只设置第一行值。各字段定义详见API服务接口定义注意:表体的行数只能为一行,可以对表体设置多行。当设置行数为某个值时,行数并不限定为该最大值,可以一直顺序添加至任意行,但有一个规则:例如当设置为10时,可以对第0、1、9行赋值,当对第10行赋值时候,则会顺序添加一个新行,但此时是不能对第11行赋值的,当添加一个新行(第10行)后,又可以对第11行进行赋值。* 以下是必输字段 *domHead(0).SetValue id,字段值 主关键字段,Integer类型domHead(0).SetValue csocode,字段值 订 单 号,String类型domHead(0).SetValue ddate,字段值 订单日期,Date类型* 以下是非必输字段 *domHead(0).SetValue fstockquanO,字段值 现存件数,Double类型domHead(0).SetValue fcanusequanO,字段值 可用件数,Double类型domHead(0).SetValue iverifystate,字段值 iverifystate,String类型2) 给普通参数赋值例如,给普通参数VoucherState(参数名)赋值。此参数的数据类型为Integer,此参数按值传递,具体请参考服务接口定义u8apiBroker.AssignNormalValue VoucherState, 参数值 参数类型:Integer注意:所有参数名不限大小写。3) 给“OUT型”参数赋值为方便用户使用U8API,如果参数数据类型为一般值类型,如String、Integer、Long、Double、Boolean、Date等,则不必传入一个参数变量(传入也可);否则,则必须一个参数变量。如:该参数curID为OUT型参数,由于其数据类型为String,为一般值类型,因此不必传入一个参数变量。在API调用返回时,可以通过GetResult(curID)获取该参数CurDom为OUT型参数,由于其数据类型为MSXML2.IXMLDOMDocument2,非一般值类型,因此必须传入一个参数变量。在API调用返回时,可以直接使用该参数Dim CurDom As New MSXML2.IXMLDOMDocument2u8apiBroker.AssignNormalValue CurDom, 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 BusinessObjectSet DomHeadRet = u8apiBroker.GetBoParam(DomHead)MsgBox DomHeadRet.RowCount 获取返回BO对象的行数注意:如果要取原始的XMLDOM对象结果,请使用GetResult(DomHead)Dim DomHeadRet As New MSXML2.DOMDocumentSet DomHeadRet = u8apiBroker. GetResult(DomHead)以上获取的行数是BO对象的实际行数。获取BO对象各字段的值。以下代码示例只取第一行。字段定义详见API服务接口定义* 以下是非必输字段 *Dim idRet As
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成功起跑线第13课我自信我快乐【爱自己是终身浪漫的开始】课件2025-2026学年北师大版(2015)初中心理健康七年级全一册
- 2026届江苏省无锡市锡中学实验学校九年级化学第一学期期中监测模拟试题含解析
- 精准农业种子采购与种猪健康养殖销售合同
- 矿山地质环境治理与矿山生态修复工程承包合同
- 城市更新项目私人宅基地买卖及安置补偿合同
- 教育培训机构合作合同续签及资源共享协议
- 离婚前财产分割及共同债务处理协议书
- 建筑材料销售合同签订与施工进度控制流程图
- 专干笔试考试题库及答案
- 驻马店叉车实操考试题及答案
- 【MOOC】实验室安全学-武汉理工大学 中国大学慕课MOOC答案
- (新版)海事集装箱装箱检查员考试题库及答案
- 人防工程知识培训
- 车位租赁协议
- 中建《质量标准化管理手册》水利水电工程
- 客户经理招聘笔试题及解答(某大型国企)2024年
- 幼教培训课件:《幼儿园科学核心经验与活动指导》
- 人工智能训练师理论知识考核要素细目表三级
- 部编版(2024)三年级道德与法治上册第3课《学习有方法》教学课件
- 大学语文17北方省公开课金奖全国赛课一等奖微课获奖课件
- 《财务管理学(第10版)》课件 第1、2章 总论、财务管理的价值观念
评论
0/150
提交评论