U8API开发手册(C#版)(5)

2018-12-03 18:57

如果是外部事务,则需要传递ADO.Connection对象,并将IsIndependenceTransaction设置为true:

envContext.BizDbConnection = new ADO.Connection(); envContext.IsIndependenceTransaction = true;

3. 设置API地址标识(Url)参数

//如当前API“新增或修改”的地址标识为:U8API/SaleOrder/Save

U8ApiAddress myApiAddress = new U8ApiAddress(\

4. 构造APIBroker

U8ApiBroker broker = new U8ApiBroker(myApiAddress, envContext);

5. API对象参数赋值

1) 给BO表头参数DomHead和表体参数domBody赋值有两种方法,如下: 方法一是直接传入MSXML2.DOMDocumentClass对象,代码如下

MSXML2.DOMDocumentClass domHead = new MSXML2.DOMDocumentClass(); domHead.load(\);

broker.AssignNormalValue(\, domHead);

方法二是构造BusinessObject对象,具体方法如下:

//首先通过GetBoParam方法获取表头表体参数

注意:设置行数为某个值,行数并不限定为该最大值,可以一直顺序添加至任意行,但有一个规则:例如当设置为10时,可以对第0、1、??9行赋值,当对第10行赋值时候,则会顺序添加一个新行,但此时是不能对第11行赋值的,当添加一个新行(第10行)后,又可以对第11行进行赋值。

/****************************** 以下是必输字段 ****************************/ domHead[0][\主关键字段,int类型 domHead[0][\订 单 号,string类型 domHead[0][\订单日期,DateTime类型 domHead[0][\业务类型,string类型 ??

/***************************** 以下是非必输字段 ****************************/ domHead[0][\现存件数,double类型 BusinessObject DomHead = broker.GetBoParam(\DomHead.RowCount = 10; //设置行数

//其中,给BO对象的字段赋值,值可以是真实类型,也可以是无类型字符串 //以下代码示例只设置第一行值。各字段定义详见API服务接口定义

domHead[0][\可用件数,double类型 domHead[0][\预发货日期,DateTime类型 domHead[0][\预完工日期,DateTime类型 domHead[0][\预发货日期,DateTime类型

??

2) 给普通参数赋值 例如,

//给普通参数VoucherState(参数名)赋值。此参数的数据类型为int,此参数按值传递,具体请参考服务接口定义

broker.AssignNormalValue(\ 注意:所有参数名不限大小写。

3) 给“OUT型”参数赋值

为方便用户使用U8API,如果参数数据类型为一般值类型,如String、Integer、Long、Single、Double、Boolean、Date,则不必传入一个参数变量(传入也可);否则,则必须一个参数变量。

如: ??

//该参数curID为OUT型参数,由于其数据类型为string,为一般值类型,因此不必传入一个参数变量。在API调用返回时,可以通过GetResult(\获取其值

//该参数CurDom为OUT型参数,由于其数据类型为MSXML2.IXMLDOMDocument2,非一般值类型,因此必

须传入一个参数变量。在API调用返回时,可以直接使用该参数

MSXML2.IXMLDOMDocument2 CurDom = new MSXML2.IXMLDOMDocument2(); broker.AssignNormalValue(\

??

当不传入一个参数变量时,在API调用返回时,可以通过GetResult(参数名)获取其值;当不必传入一个参数变量时,在API调用返回时,可以直接引用该参数。

4) 给“INOUT型”参数赋值 对“INOUT型”型参数,则不论是否是一般值类型,都需要传入参数变量。其他与“OUT型”参数一样。

6. 调用API

//示例调用如下:

if (!broker.Invoke())

{

//错误处理

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

if (apiEx is MomSysException)

}

}

{ }

else if (apiEx is MomBizException) { }

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

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

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

注意:对调用失败,可以获取出错信息,如果是API框架的原因,则报告MomSysException异常,如果是业务组件的原因,则报告MomBizException异常。

7. 获取返回结果

1) 获取BO对象

在“装载单据”时,通过GetBoParam方法获取表头或表体参数

BusinessObject DomHeadRet = broker.GetBoParam(\

Console.WriteLine(\对象行数为:\获取BO对象的行数 如果要取原始的XMLDOM对象结果,请使用GetResult(\MSXML2.DOMDocument DomHeadRet = broker. GetResult(\以上获取的行数是BO对象的实际行数。

//获取BO对象各字段的值。以下代码示例只取第一行。字段定义详见API服务接口定义

/****************************** 以下是必输字段 ****************************/ int id = Convert.ToInt32(domHeadRet[0][\主关键字段,int类型

string ccode = Convert.ToString(domHeadRet[0][\单据号,string类型 DateTime ddate = Convert.ToDateTime(domHeadRet[0][\日期,DateTime类型 string cbustype = Convert.ToString(domHeadRet[0][\业务类型,string类型 ??

/***************************** 以下是非必输字段 ****************************/ string cpayname = Convert.ToString(domHeadRet[0][\付款条件,string类型 string cpersonname = Convert.ToString(domHeadRet[0][\业 务 员,string类型 double itaxrate = Convert.ToDouble(domHeadRet[0][\税率,double类型 string cexch_name = Convert.ToString(domHeadRet[0][\币种,string类型 ??

注意:

2)

获取普通返回值

代码如下:

//获取普通返回值。此返回值数据类型为System.String,此参数按值传递,具体请参考服务接口定义 System.String result = broker.GetReturnValue() as System.String; 3)

获取普通“OUT型”或“INOUT型”返回值

如前所述,对普通“OUT型”或“INOUT型”参数,如果是一般值类型,则通过GetResult方法获取其返回值,否则直接使用该引用。

如,

//获取普通OUT参数curID。此返回值数据类型为string,在使用该参数之前,请判断是否为空 string curIDRet = broker.GetResult(\

//获取普通OUT参数CurDom。此返回值数据类型为MSXML2.IXMLDOMDocument2,前面已定义该参数,请直接使用 ??

2.2.3 库存管理

? 功能介绍

为了支持U8二次开发对业务单据的开发,本功能提供了实现库存业务单据各种操作功能的编程接口。使用库存管理的API开发接口,可以对库存管理中的采购入库单、其他入库单、其他出库单、产成品入库单、材料出库单、调拨单、组装单、拆卸单、形态转换单、盘点单、货位调整单、销售出库单、期初结存、不合格品记录单、不合格品处理单、期初不合格品、调拨申请单等单据进行审核、弃审、获取(或装载)、新增、修改、删除。

? 使用环境

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

? 接口说明

库存管理二次开发接口说明:

? 审核单据-Audit方法

参数:

sVoucherType —— 单据类型:01 VoucherId —— 单据ID errMsg —— 错误信息

cnnFrom —— 连接对象(调用方控制事务时需要传入连接对象) TimeStamp —— 单据时间戳(用于检查单据是否修改,空串时不检查) domMsg —— 返回DOM格式的信息:主要是可用量信息 bCheck —— 是否进行业务检查(是否控制可用量) bBeforCheckStock —— 是否检查可用量 bList —— 传入false MakeWheres —— 传空 sWebXml —— 传入空串

oGenVouchIds —— 获取单据ID列表(返回审核时自动生成的单据的id

列表,传空)

? 弃审单据-CancelAudit方法

参数:

sVoucherType —— 单据类型:01 VoucherId —— 单据ID errMsg —— 错误信息


U8API开发手册(C#版)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《草房子》阅读题(内容全面,有答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: