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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(如何查找和使用U8的API.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

如何查找和使用U8的API.doc

1、U8 知识库文档如何查找和使用 U8 的 API摘要客户化开发中常常有将某些数据经过加工后存储至 U8 标准单据中的需求,通常客开人员是通过将数据插入物理表的方式进行,这时插入的数据未经系统的业务校验,为后续操作埋下诸多隐患。U8 的 API 接口,则是提供给客开操作系统单据的一个接口,客开只需将数据组织好,系统校验、增、删、改等操作都有不同的 API 接口来实现,调用相应 API 就可以完成操作。如何使用 APIa) API 位置如下图所示:b) API 接口描述选择服务接口,右键,可以查看该接口的描述、代码示例,如下图所示:U8 知识库文档c) API 参考代码示例U8 知识库文档实际应用

2、本文以 C代码为例,数据源采用系统中已存在单据做为数据源进行讲解。调用 API 代码示例/ / 销售订单(业务类型报错)/ / / public static void AddSO_SOMain(U8Login.clsLogin u8Login,String id, ref string vNewIDRet)/第二步:构造环境上下文对象,传入login,并按需设置其它上下文参数U8EnvContext envContext = new U8EnvContext();envContext.U8Login = u8Login;/销售所有接口均支持内部独立事务和外部事务,默认内部事务/如果是外部事务

3、,则需要传递ADO.Connection对象,并将IsIndependenceTransaction属性设置为false/envContext.BizDbConnection = new ADO.Connection();/envContext.IsIndependenceTransaction = false;/设置上下文参数envContext.SetApiContext(“VoucherType“, 12); /上下文数据类型:int,含义:U8 知识库文档单据类型:12/第三步:设置API地址标识(Url)/当前API:新增或修改的地址标识为:U8API/SaleOrder/SaveU

4、8ApiAddress myApiAddress = new U8ApiAddress(“U8API/SaleOrder/Save“);/第四步:构造APIBrokerU8ApiBroker broker = new U8ApiBroker(myApiAddress, envContext);/第五步:API参数赋值/给BO表头参数domHead赋值,此BO参数的业务类型为销售订单,属表头参数。BO参数均按引用传递/提示:给BO表头参数domHead赋值有两种方法/方法一是直接传入MSXML2.DOMDocumentClass对象/broker.AssignNormalValue(“domHe

5、ad“, new MSXML2.DOMDocumentClass()ADODB.Connection conn = new ADODB.ConnectionClass();ADODB.Recordset rs = new ADODB.RecordsetClass();MSXML2.DOMDocument domhead = new MSXML2.DOMDocumentClass();string strConn = string.Format(“Provider=SQLOLEDB;Initial Catalog=0;Data Source=1;“, “UFData_“ + u8Login.ge

6、t_cAcc_Id() + “_“ + u8Login.cIYear, u8Login.dbServerName);conn.Open(strConn, “sa“, u8Login.SysPassword, 0);string sql = “select top 1 * from SaleOrderQ where id=“ + id + “;rs.Open(sql, conn, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockOptimistic, -1);rs.Save(domhead, ADODB.Persi

7、stFormatEnum.adPersistXML);U8APIHelper.FormatDom(ref domhead, “A“);broker.AssignNormalValue(“DomHead“, domhead);domhead.selectSingleNode(“/rs:data/z:row“).attributes.getNamedItem(“id“).nodeValue = “;MSXML2.DOMDocument domBody = new MSXML2.DOMDocumentClass();/domBody.RowCount = 1;ADODB.Connection con

8、n1 = new ADODB.ConnectionClass();ADODB.Recordset rs1 = new ADODB.RecordsetClass();string strConn1 = string.Format(“Provider=SQLOLEDB;Initial Catalog=0;Data Source=1;“, “UFData_“ + u8Login.get_cAcc_Id() + “_“ + u8Login.cIYear, U8 知识库文档u8Login.dbServerName);conn1.Open(strConn, “sa“, u8Login.SysPasswor

9、d, 0);sql = “select top 1 * from SaleOrderSQ where id=“ + id + “;rs1.Open(sql, conn, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockOptimistic, -1);rs1.Save(domBody, ADODB.PersistFormatEnum.adPersistXML);U8APIHelper.FormatDom(ref domBody, “A“);broker.AssignNormalValue(“domBody“, do

10、mBody);domBody.selectSingleNode(“/rs:data/z:row“).attributes.getNamedItem(“id“).nodeValue = “;domBody.selectSingleNode(“/rs:data/z:row“).attributes.getNamedItem(“autoid“).nodeValue = “;/给普通参数VoucherState赋值。此参数的数据类型为int,此参数按值传递,表示状态:0增加;1修改broker.AssignNormalValue(“VoucherState“, 0);/该参数vNewID为INOUT型

11、普通参数。此参数的数据类型为string,此参数按值传递。在API调用返回时,可以通过GetResult(“vNewID“)获取其值broker.AssignNormalValue(“vNewID“, “);/给普通参数DomConfig赋值。此参数的数据类型为MSXML2.IXMLDOMDocument2,此参数按引用传递,表示ATO,PTO选配MSXML2.IXMLDOMDocument2 DomConfig = new MSXML2.DOMDocumentClass();broker.AssignNormalValue(“DomConfig“, DomConfig);/第六步:调用API

12、if (!broker.Invoke()/错误处理Exception apiEx = broker.GetException();if (apiEx != null)if (apiEx is MomSysException)MomSysException sysEx = apiEx as MomSysException;Console.WriteLine(“系统异常:“ + sysEx.Message);/todo:异常处理else if (apiEx is MomBizException)U8 知识库文档MomBizException bizEx = apiEx as MomBizExcep

13、tion;Console.WriteLine(“API异常:“ + bizEx.Message);/todo:异常处理/异常原因String exReason = broker.GetExceptionString();if (exReason.Length != 0)Console.WriteLine(“异常原因:“ + exReason);/结束本次调用,释放API资源broker.Release();return;/第七步:获取返回结果/获取返回值/获取普通返回值。此返回值数据类型为System.String,此参数按值传递,表示成功为空串string result = broker.G

14、etReturnValue() as System.String;/获取out/inout参数值/获取普通INOUT参数vNewID。此返回值数据类型为string,在使用该参数之前,请判断是否为空vNewIDRet = broker.GetResult(“vNewID“) as string;/结束本次调用,释放API资源broker.Release();return;参见附件:SO_SOMain.cs如何调用事件插件客户化开发如果需要在标准单据的保存前后、审核前后、弃审前后等按钮操作时加入个性化逻辑时,则可调用相应的按钮事件插件接口。a) 事件插件位置:U8 知识库文档事件分为同步插件和异

15、步插件,所谓同步插件就是指插件接口逻辑包含在平台事件的事务中;所谓异步插件就是指插件接口逻辑不包含在平台事件的事务中,插件的逻辑执行情况不影响平台的事件操作。b) 插件事件描述选择事件,右键,可以查看插件事件描述,如下图所示:U8 知识库文档在事件描述中描述了事件接口方法名(例如:Save_Before) ,参数个数、参数名称(domhead、dombody、ermsg) ,参数类型。U8 知识库文档参考附件:U8apic) 如何调用事件插件以调用销售订单保存前同步插件为例:右键同步插件所有任务注册同步插件U8 知识库文档输入插件编码、插件名称,进入插件绑定页签:勾选“修改”在下拉框中选择插件

16、类型(本例以 MSDCOM 为例):选择 dll 路径、类名、方法名,如下图所示:U8 知识库文档点击“自动匹配”按钮进行测试,如果测试成功则完成插件注册。实际应用本文以 VB 代码为例,注册销售订单保存前事件插件。销售订单保存前事件插件Public Function Audit_After(domh As DOMDocument, domb As DOMDocument, erstr As String) As BooleanMsgBox “OK“domh.save “E:ZYRXML付款单_domh.xml“domb.save “E:ZYRXML付款单_domb.xml“If MsgBox(“保存后插件接口插件接口 Audit_After 配置成功“, vbYesNo) = vbYes ThenAudit_After = TrueElseAudit_After = FalseEnd IfEnd Function参考附件:U8api登录 U8,新增销售订单,点击保存按钮,弹出对话框如下图所示:U8 知识库文档在指定目录下生成的销售订单表头、表体的 XML 文件,如下图所示:

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报