U8API开发手册(C#版) 下载本文

2.1.3 API典型应用场景 ? 执行单一操作

单一操作指一项任务只需要一个API完成,比如:单据新增、审核/弃审、删除等单一操作。这是API调用最常见的场景,只需按照API的接口规范构造参数直接调用即可。

? 执行复合操作

复合操作,即一项任务由多个API的协作来完成。比如,自定义的单据维护界面的主要逻辑,一般由以下四个步骤构成:

1) 加载单据;

2) 在编辑界面上显示; 3) 用户修改单据字段; 4) 提交保存。

以上步骤需要进行两次API调用: 1) 加载单据时候调用“加载API”,以获取单据BO对象(或原始DOM对象)并在界面

上展现;

2) 用户在修改单据时其实就是在修改BO对象,用户保存单据时调用“保存API”,此

时要将此BO对象传给“保存API”(而不用构造新的BO对象)。

代码示例:

首先,登陆;

//构造u8login对象并登陆

U8Login.clsLogin u8Login = new U8Login.clsLogin(); String sSubId = \;

String sAccID = \; String sYear = \; String sUserID = \; String sPassword = \; String sDate = \; String sServer = \; String sSerial = \;

if (!u8Login.Login(ref sSubId, ref sAccID, ref sYear, ref sUserID, ref sPassword, ref sDate, ref sServer, ref sSerial)) { }

Console.WriteLine(\登陆失败,原因:\ + u8Login.ShareString); Marshal.FinalReleaseComObject(u8Login); return;

然后,通过LOAD接口获取BO对象;

//构造环境上下文对象,传入login,并按需设置其它上下文参数

U8EnvContext envContext = new U8EnvContext(); envContext.U8Login = u8Login; //设置上下文参数

??

//设置API地址标识(Url)

U8ApiAddress myApiAddress = new U8ApiAddress(“装载单据的地址标识”); //构造APIBroker

U8ApiBroker broker = new U8ApiBroker(myApiAddress, envContext); //API参数赋值

broker.AssignNormalValue(\参数名\, \参数值\); ??

//调用LOAD接口API if (!broker.Invoke()) { }

//获取表头或表体的BO对象,如果要取原始的XMLDOM对象结果,请使用GetResult(参数名) BusinessObject DomRet = broker.GetBoParam(\表头或表体参数名\);

//错误处理

Exception apiEx = broker.GetException(); if (apiEx != null) { }

//结束本次调用,释放API资源 broker.Release(); return;

if (apiEx is MomSysException) { }

else if (apiEx is MomBizException) { }

MomBizException bizEx = apiEx as MomBizException; Console.WriteLine(\异常:\ + bizEx.Message); //todo:异常处理

MomSysException sysEx = apiEx as MomSysException; Console.WriteLine(\系统异常:\ + sysEx.Message); //todo:异常处理

接着,BO对象经用户修改重新赋值,并传递给UPDATE接口提交保存;

//修改获取的BO对象,对需要更改的字段重新赋值 DomRet[0][\字段名\] = 新的字段值;

??

//重新构造“新增或修改”API的地址标识

myApiAddress = new U8ApiAddress(\新增或修改”API的地址标识\);

//重新构造APIBroker

broker = new U8ApiBroker(myApiAddress, envContext); //表头或表体参数赋值

broker.SetBoParam(\表头或表体参数名\, DomRet); //API参数赋值

broker.AssignNormalValue(\参数名\, \参数值\); ??

//调用UPDATE接口API if (!broker.Invoke()) { }

??

最后,获取返回结果。

//获取普通返回值

System.String result = broker.GetReturnValue() as System.String; //获取out/inout参数值 ??

//结束本次调用,释放API资源 broker.Release();

2.2. API内容 2.2.1 采购管理

? 功能介绍

为了支持U8二次开发对业务单据的开发,本功能提供了实现采购业务单据各种操作功能的编程接口。使用采购管理的API开发接口,可以对库存管理中的采购到货单、采购普通发票、采购专用发票、采购订单、请购单、采购运费发票等单据进行审核、弃审、获取(或装载)、新增、修改、删除。

? 使用环境

必须安装.NET FrameWork 2.0; 必须安装U8-872版本的采购管理产品; 必须安装API适配器组件PUAPIConcrete.dll

? 接口说明

采购管理二次开发接口说明:

? 审核单据-ConfirmPO方法

参数:

domHead —— 单据表头,DOM对象,必输 API上下文:

VoucherType —— 单据类型,具体类型参看API上下文描述 bPositive —— 红蓝标识:True,蓝字 ;False,红字 sBillType —— 为空串

sBusType —— 业务类型:普通采购,直运采购,受托代销

? 弃审单据- CancelconfirmPO方法

参数:

domHead —— 单据表头,DOM对象,必输 API上下文:

VoucherType —— 单据类型,具体类型参看API上下文描述 bPositive —— 红蓝标识:True,蓝字 ;False,红字 sBillType —— 为空串

sBusType —— 业务类型:普通采购,直运采购,受托代销

? 装载单据-Load方法