ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:32.58KB ,
资源ID:5191646      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5191646.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(U8API开发手册.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

U8API开发手册.docx

1、U8API开发手册U8API开发手册作者:商平锋版权所有:用友软件股份有限公司1.简介U8API是为U8客户化应用开发提供的一套标准化的U8ERP业务编程接口。是U8UAP二次开发体系的重要组成部分。它包括一整套涵盖U8ERP采购、销售、库存、制造(规划中)、财务(规划中)、基本档案(规划中)等业务模块的API接口资源。U8API的推出为U8标准产品更好的适应用户的个性化需求,更好的实现客户化交付提供了有力支持。U8API按照U8ERP业务产品模块进行分类,并以U8主要业务实体(单据、档案、凭证)作为操作对象,提供了常用的基本操作。比如:对于库存的收发单据,提供“新增”、“审核”、“弃审”、“

2、删除”、“装载”、“修改”六个API接口。目前,U8API提供了供应链采购、销售、库存三个产品的所有单据的增删改、审核/弃审等API接口,后续版本会逐步将制造、财务、基本档案等模块的API纳入进来。U8API通过“U8API资源管理器”对U8范围内所有API进行集中统一分类管理,形成了一套完整的U8API资源库。U8API的使用者可以使用“U8API资源管理器”浏览、查看API及其接口定义,并可辅助进行代码生成(目前支持C#和VB语言);API的开发者可以通过此工具发布、注册API,所有业务API都必须在“U8API资源管理器”中进行注册。U8API还提供了一套运行时调用框架U8APIBrok

3、er。它是所有U8API的调用代理,用户要使用某个API只需调用U8APIBroker即可,无需直接访问真正的API。U8APIBroker作为一个服务代理中间件,起到了隔离API的提供者与使用者的作用,降低了耦合依赖关系。U8API与U8EAI接口从功能上看比较相识,但它们的特性有差别。U8API采用传统的编程模型,更靠近底层,业务逻辑粒度更细,而且还需要或依赖一些特定的上下文环境,比如:login、事务等;而U8EAI接口则是完全松耦合的,采用XML和请求/响应的消息传递模式,且业务粒度比较粗放。这些特性的差别决定了它们的应用领域不同,U8API更适合于U8内部的功能扩展和客户个性化开发,

4、而U8EAI则适合外部系统与U8之间以业务数据交换为特征的应用集成开发。应用.1. API总体应用过程2.1.1 API浏览查找在“开始”-“程序”-“用友ERP-U8”-“UAP”目录下找到“U8API资源管理器”,单击,登录,进入“U8API资源管理器”。在左侧 “U8API” 树形节点下,找到某某模块,如“库存管理”模块(可以看到下面列有很多个单据,如盘点单、采购入库单等),展开要操作的单据,分两个子节点:“事件”和“服务接口”,在“服务接口”下可以看到该单据提供的API接口,如“添加新单据”、“审核单据”等。双击这些节点出现该API的详细描述,如下图所示。在节点上右键单击弹出“上下文菜

5、单”,在“代码示例”菜单项上弹出下一级子菜单,单击它们,如单击“VB代码示例”则可以看到调用该API的VB示例代码,如下图所示。直接拷贝这些代码,然后在集成开发环境(IDE)中编辑和编译这些代码,即能实现调用U8标准API。利用这些代码示例时,请按照其中每一步骤的提示说明正确操作,如添加必要的引用、按照自动生成的代码填入正确的参数等。正确使用则可以调用成功,否则会返回详细的错误信息。以下代码中均以VB为例, C#语言请具体查看对应的C#代码示例部分。图2.1 接口描述图 代码示例2.1.2 API调用过程 组件引用针对两种语言,需要引用不同的组件。(1)VB:%U8SOFT%UFMOMU8AP

6、IFramework tlb、%U8SOFT%UFMOMU8APIFramework tlb、%U8SOFT%UFMOMU8APIFramework tlb、添加Microsoft XML 引用如下图、所示。(2)C#:%U8SOFT%Integererop、%U8SOFT%Integererop、%U8SOFT%UFMOMU8APIFramework、%U8SOFT%UFMOMU8APIFramework、%U8SOFT%UFMOMU8APIFramework如下图、所示。其中,%U8SOFT%表示U8-872的安装目录。图 添加对U8API框架类库引用(.tlb)图 添加Microsoft

7、 XML 引用图 添加对引用图 添加对引用图 添加对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内容”中各个模块中介绍的“

8、开发步骤”。下面重点介绍几个关键要点和步骤:环境上下文、API地址、APIBroker、普通参数赋值、BO参数赋值。 环境上下文环境上下文指在调用U8API时需要初始化的调用环境,包括Login、事务、特殊的业务参数等。环境上下文被初始化后,相关的环境参数会被业务API使用。Dim u8EnvCtx As New U8EnvContext Login需要将U8Login对象传递给环境上下文,U8Login对象必须已经登录过。Set = ologin 事务如果需要由外部发起事务,则可以发起事务的ADO Connection对象传递给环境上下文:Set = new ()同时需要设置一个外部事务标记

9、: = true 特殊业务参数特殊业务参数指调用某些API需要设置的特定上下文参数,比如:销售的API必须要设置如VoucherType上下文参数,设置方法为: VoucherType, 23 API地址API地址是指API在U8API系统中的唯一标识,也叫API的URI,通过该标识唯一确定一个U8API。如,API地址U8API/SaleOrder/Save代表销售订单中的“新增或修改”这样一个API接口。 APIBrokerAPIBroker是所有U8API的调用代理接口。使用U8所有API都必须通过APIBroker间接调用。APIBroker作为一个服务代理中间件,起到了隔离API的提

10、供者与使用者的作用,降低了耦合依赖关系。调用API的时候,需要首先创建一个APIBroker, 然后调用其Connect,传入API地址和环境上下文:Dim u8apiBroker As New U8ApiComBroker U8API/SaleOrder/Save, u8EnvCtx 普通参数赋值API参数分两种类型:BO参数和普通参数。普通参数是指非单据表头/表体类型的参数,包括基本类型参数(String、Integer等)、知名对象参数(Connection、DOMDocument等)。普通参数的赋值采用如下方式: VoucherState, 2 BO参数赋值BO参数即单据表头或表体类型

11、的参数。对BO参数,支持两种方式传入,一种传BO对象,另一种传DOM对象。以下分别介绍: 传BO对象给BO表头参数或表体参数赋值,推荐使用BO对象(BussinessObject)。例如:Dim domHead As BusinessObjectSet domHead = (domHead) = 1; 设置行数,不设置也可 给BO对象的字段赋值,值可以是真实类型,也可以是无类型字符串 以下代码示例只设置第一行值。各字段定义详见API服务接口定义 * 以下是必输字段* domHead(0).SetValue poid,; 主关键字段,Integer类型 domHead(0).SetValue d

12、podate,; 日期,Date类型 domHead(0).SetValue cpoid,; 订单编号,String类型 * 以下是非必输字段* domHead(0).SetValue ipresent,; 现存量,String类型 domHead(0).SetValue cmaketime,; 制单时间,Date类型 domHead(0).SetValue cmodifytime,; 修改时间,Date类型在此种情况下U8 API框架会对BO对象各字段进行参数校验。对字段进行赋值时,值可以是真实类型,也可以是无类型的字符串。 传DOM对象给BO表头参数或表体参数赋值,也支持直接传入DOM对象

13、(DOMDocument)。例如:Dim domHead As New domHead , domHead但是,在此种情况下U8 API框架不会对DOM对象进行参数验证。请在使用该方法之前,确保DOM对象的正确性。2.1.3 API典型应用场景 执行单一操作单一操作指一项任务只需要一个API完成,比如:单据新增、审核/弃审、删除等单一操作。这是API调用最常见的场景,只需按照API的接口规范构造参数直接调用即可。 执行复合操作复合操作,即一项任务由多个API的协作来完成。比如,自定义的单据维护界面的主要逻辑,一般由以下四个步骤构成:7) 加载单据;8) 在编辑界面上显示;9) 用户修改单据字段

14、;10) 提交保存。以上步骤需要进行两次API调用:1) 加载单据时候调用“加载API”,以获取单据BO对象(或原始DOM对象)并在界面上展现;2) 用户在修改单据时其实就是在修改BO对象,用户保存单据时调用“保存API”,此时要将此BO对象传给“保存API”(而不用构造新的BO对象)。 代码示例(1) 首先,登陆;构造u8login对象并登陆Dim ologin As ObjectSet ologin = CreateObject()If Not (AS, (default)001, 2008, demo, , 2008-7-7, localhost) Then MsgBox (2) 然后,

15、通过LOAD接口获取BO对象;构造环境上下文对象,传入login,并按需设置其它上下文参数Dim u8EnvCtx As New U8EnvContextSet = ologin设置上下文参数 VoucherType, 上下文值 构造APIBroker,调用Connect,传入Api的地址标识(Url),传入上下文Dim u8apiBroker As New U8ApiComBroker “装载单据的地址标识”, u8EnvCtxAPI参数赋值 参数名, 参数值调用LOAD接口APIIf () = False Then 错误处理 MsgBox () If = ExceptionType_Bus

16、iness Then 处理API业务错误 ElseIf = ExceptionType_System Then 处理系统错误 End IfElse 获取返回结果获取表头或表体的BO对象,如果要取原始的XMLDOM对象结果,请使用GetResult(参数名)Dim domHeadOrBodyRet As BusinessObject Set domHeadOrBodyRet = (表头或表体参数名)MsgBox 获取返回BO对象的行数End If(3) 接着,BO对象经用户修改重新赋值,并传递给UPDATE接口提交保存;修改获取的BO对象,对需要更改的字段重新赋值domHeadOrBodyRet

17、(0).SetValue 字段名,新的字段值重传入新“新增或修改”API的地址标识和环境上下文 新增或修改”API的地址标识, u8EnvCtx表头或表体参数赋值 表头或表体参数名, domHeadOrBodyRetAPI参数赋值 参数名, 参数值调用UPDATE接口APIIf () = False Then End If(4) 最后,获取返回结果。获取普通返回值 Dim result As String result = CStr()获取out/inout参数值结束本次调用,释放API资源Set u8apiBroker = Nothing.2. API内容.2.1 采购管理 功能介绍为了支持

18、U8二次开发对业务单据的开发,本功能提供了实现采购业务单据各种操作功能的编程接口。使用采购管理的API开发接口,可以对库存管理中的采购到货单、采购普通发票、采购专用发票、采购订单、请购单、采购运费发票等单据进行审核、弃审、获取(或装载)、新增、修改、删除。 使用环境必须安装.NET FrameWork ;必须安装U8-872版本的采购管理产品;必须安装API适配器组件 接口说明采购管理二次开发接口说明: 审核单据-ConfirmPO方法参数:domHead 单据表头,DOM对象,必输API上下文:VoucherType 单据类型,具体类型参看API上下文描述bPositive 红蓝标识:Tru

19、e,蓝字 ;False,红字sBillType 为空串 sBusType 业务类型:普通采购,直运采购,受托代销 弃审单据- CancelconfirmPO方法参数:domHead 单据表头,DOM对象,必输API上下文:VoucherType 单据类型,具体类型参看API上下文描述bPositive 红蓝标识:True,蓝字 ;False,红字sBillType 为空串 sBusType 业务类型:普通采购,直运采购,受托代销 装载单据-Load方法参数:DomHead 表头DOM对象domBody 表体DOM对象strWhere 过滤条件串varVoucherID 单据主表IDstrLoc

20、ateWhere 定位条件串API上下文:VoucherType 单据类型,具体类型参看API上下文描述bPositive 红蓝标识:True,蓝字 ;False,红字sBillType 为空串 sBusType 业务类型:普通采购,直运采购,受托代销 删除单据-Delete方法参数:DomHead 表头DOM对象domBody 表体DOM对象CurDom 返回DOM格式错误信息API上下文:VoucherType 单据类型,具体类型参看API上下文描述bPositive 红蓝标识:True,蓝字 ;False,红字sBillType 为空串 sBusType 业务类型:普通采购,直运采购,受

21、托代销 新增或修改新单据- 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,主要有以下六个步

22、骤:1 构造u8login对象并登陆 声明和创建u8login类对象前应该先引用U8API类库中的,代码示例如下:Dim ologin As ObjectSet ologin = CreateObject() 声明u8login对象登陆If Not (AS, (default)001, 2008, demo, , 2008-7-7, localhost) Then MsgBox 注意:如果当前环境中有login对象则可以省去第一步。2 构造环境上下文对象,传入login,并按需设置其它上下文参数Dim u8EnvCtx As New U8EnvContext 构造环境上下文对象Set = ol

23、ogin 传入login设置上下文参数 VoucherType, 上下文值 上下文数据类型:int,含义:单据类型,采购订单 bPositive, 上下文值 上下文数据类型:bool,含义:红蓝标识:True,蓝字 sBillType, 上下文值 上下文数据类型:string,含义:为空串 sBusType, 上下文值 上下文数据类型:string,含义:业务类型:普通采购,直运采购,受托代销注意:如果是外部事务,则需要传递对象,并将IsIndependenceTransaction设置为true: Set = new () = true3 构造ApiBroker对象,调用Connect,传入

24、API的地址标识(Url)和环境上下文Dim u8apiBroker As New U8ApiComBroker U8API/PurchaseOrder/VoucherSave, u8EnvCtx4 API对象参数赋值1) 给BO表头参数DomHead或表体参数domBody赋值有两种方法,如下:方法一是直接传入对象,代码如下:Dim domHead As New DomHead, domHead方法二是构造BusinessObject对象,具体方法如下:首先通过GetBoParam方法获取表头或表体参数 Dim DomHead As BusinessObject Set DomHead =

25、(DomHead) = 1 设置行数给BO对象的字段赋值,值可以是真实类型,也可以是无类型字符串以下代码示例只设置第一行值。各字段定义详见API服务接口定义注意:表体的行数只能为一行,可以对表体设置多行。当设置行数为某个值时,行数并不限定为该最大值,可以一直顺序添加至任意行,但有一个规则:例如当设置为10时,可以对第0、1、9行赋值,当对第10行赋值时候,则会顺序添加一个新行,但此时是不能对第11行赋值的,当添加一个新行(第10行)后,又可以对第11行进行赋值。 * 以下是必输字段 * DomHead(0).SetValue poid,字段值 主关键字段,Integer类型 DomHead(0

26、).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) 给普通参数赋值例如,给普通参数Vouche

27、rState(参数名)赋值。此参数的数据类型为Integer,此参数按值传递,具体请参考服务接口定义 VoucherState, 参数值 参数类型:Integer注意:所有参数名不限大小写。3) 给“OUT型”参数赋值为方便用户使用U8API,如果参数数据类型为一般值类型,如String、Integer、Long、Double、Boolean、Date等,则不必传入一个参数变量(传入也可);否则,则必须一个参数变量。如:该参数curID为OUT型参数,由于其数据类型为String,为一般值类型,因此不必传入一个参数变量。在API调用返回时,可以通过GetResult(curID)获取该参数Cu

28、rDom为OUT型参数,由于其数据类型为,非一般值类型,因此必须传入一个参数变量。在API调用返回时,可以直接使用该参数 Dim CurDom As New CurDom, CurDom 参数类型:当不传入一个参数变量时,在API调用返回时,可以通过GetResult(参数名)获取其值;当不必传入一个参数变量时,在API调用返回时,可以直接引用该参数。4) 给“INOUT型”参数赋值对“INOUT型”型参数,则不论是否是一般值类型,都需要传入参数变量。其他与“OUT型”参数一样。5 调用API If () = False Then 错误处理 MsgBox () If = ExceptionType_Business Then 处理API业务错误 ElseIf = ExceptionType_System Then 处理系统错误 End If 注意:对调用失败,可以获取出错信息,如果是API框架的原因,则报告MomSysException异常,如果是业务组件的原因,则报告MomBizException异常。6 获取返回结果1) 获取BO对象在“装载单据”时,通过GetBoParam方法获取表头或表体参数Dim DomHeadRet As BusinessObject Set DomHeadRe

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1