77范文网 - 专业文章范例文档资料分享平台

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

来源:网络收集 时间:2018-12-03 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

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

? 装载单据-Load方法

参数:

sVoucherType —— 单据类型:01 sWhere —— 条件串

DomHead —— 表头DOM对象 domBody —— 表体DOM对象 domPos —— 货位DOM对象 errMsg —— 错误信息

bGetBlank —— 是否获取空白单据 sBodyWhere_Order —— 表体排序方式字段

注意:其中sWhere设计为:

如果按单据号加载,则语法为ccode=N'要加载的单据号',例如broker.AssignNormalValue(\;

如果按单据ID加载,则语法为id=XXX,例如broker.AssignNormalValue(\。

? 删除单据-Delete方法

参数:

sVoucherType —— 单据类型:01 VoucherId —— 单据ID errMsg —— 错误信息 cnnFrom —— 连接对象(由调用方控制事务时需要传入连接对象) TimeStamp —— 单据时间戳

domMsg —— 返回DOM格式的信息:主要是检查可用量和控制可

用量信息

bCheck —— 是否进行业务检查 BeforCheckStock —— 是否检查可用量 bList —— 传入false

? 添加新单据- Add方法

参数:

sVoucherType —— 单据类型:01 DomHead —— 表头DOM对象 domBody —— 表体DOM对象

domPosition —— 货位DOM对象:传空 errMsg —— 返回错误信息

cnnFrom —— 连接对象,如果由调用方控制事务,则需要设置

此连接对象,否则传空

VoucherId —— 返回单据ID

domMsg —— 返回DOM格式的信息:主要返回可用量和现存量

的错误信息

bCheck —— 是否进行业务检查(是否控制可用量) bBeforCheckStock —— 是否检查可用量(检查可用量) bIsRedVouch —— 是否红字单据 sAddedState —— 传空字符串 bReMote —— 是否远程

? 修改单据-Update方法

参数:

sVoucherType —— 单据类型:01 DomHead —— 表头DOM对象 domBody —— 表体DOM对象 domPosition —— 货位DOM对象 errMsg —— 错误信息 cnnFrom —— 连接对象

domMsg —— 超可用量提示信息DOM对象(返回DOM格式的信息) bCheck —— 是否进行业务检查 bBeforCheckStock —— 是否检查可用量 bIsRedVouch —— 是否红字单据 sAddedState —— 修改状态 bUpdateNeedEas —— 传true

? 开发步骤

实现库存单据某一功能,主要有以下七个步骤: 1. 构造u8login对象并登陆

声明和创建u8login类对象前应该先引用U8API类库中的Interop.U8Login.dll,代码示例如下:

U8Login.clsLogin u8Login = new U8Login.clsLogin(); //声明u8login对象 String sSubId = \String sYear = \String sUserID = \String sPassword = \String sDate = \String sServer = \

//登陆

String sAccID = \

String sSerial = \

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

{

}

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

如果当前环境中有login对象则可以省去第一步。 2. 构造环境上下文对象,传入login

U8EnvContext envContext = new U8EnvContext();

envContext.U8Login = u8Login;

//构造环境上下文对象 //传入login

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行进行赋值。

/****************************** 以下是必输字段 ****************************/ BusinessObject DomHead = broker.GetBoParam(\DomHead.RowCount = 10; //设置行数

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

DomHead[0][\主关键字段,int类型 DomHead[0][\盘点单号,string类型 DomHead[0][\盘点日期,DateTime类型 DomHead[0][\账面日期,DateTime类型 DomHead[0][\盘点仓库,string类型 ??

/***************************** 以下是非必输字段 ****************************/ DomHead[0][\修改人,string类型 DomHead[0][\修改日期,DateTime类型 DomHead[0][\制单时间,DateTime类型 DomHead[0][\修改时间,DateTime类型 DomHead[0][\审核时间,DateTime类型

??

2) 给普通参数赋值

例如,给普通参数sVouchType(参数名)赋值:

broker.AssignNormalValue(\

注意:所有参数名不限大小写。

3) 给“OUT型”参数赋值

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

如: ??

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

//该参数domMsg为OUT型参数,由于其数据类型为MSXML2.IXMLDOMDocument2,非一般值类型,因此必须传入一个参数变量。在API调用返回时,可以直接使用该参数

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

??

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

4) 给“INOUT型”参数赋值

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

6. 调用API

//示例调用如下:

if (!broker.Invoke())

{ }

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

//错误处理

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(\异常:\//todo:异常处理

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

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 ccvcode = Convert.ToString(DomHeadRet[0][\盘点单号,string类型 DateTime dcvdate = Convert.ToDateTime(DomHeadRet[0][\盘点日期,DateTime类型 DateTime dacdate = Convert.ToDateTime(DomHeadRet[0][\账面日期,DateTime类型 string cwhname = Convert.ToString(DomHeadRet[0][\盘点仓库,string类型

注意:

??

/***************************** 以下是非必输字段 ****************************/

string cmodifyperson = Convert.ToString(DomHeadRet[0][\修改人,string类型 DateTime dmodifydate = Convert.ToDateTime(DomHeadRet[0][\修改日期,DateTime类型

DateTime dnmaketime = Convert.ToDateTime(DomHeadRet[0][\制单时间,DateTime类型

DateTime dnmodifytime = Convert.ToDateTime(DomHeadRet[0][\//修改时间,DateTime类型

DateTime dnverifytime = Convert.ToDateTime(DomHeadRet[0][\//审核时间,DateTime类型 ??

2)

获取普通返回值

代码如下:

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

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

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

如,

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

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

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库U8API开发手册(C#版)(6)在线全文阅读。

U8API开发手册(C#版)(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/334511.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: