当前位置:首页 > 3U8API开发手册(C#版)1 - 图文
2.2.3库存管理
?功能介绍
为了支持U8二次开发对业务单据的开发,本功能提供了实现库存业务单据各种操作功能的编程接口。使用库存管理的API开发接口,可以对库存管理中的采购入库单、其他入库单、其他出库单、产成品入库单、材料出库单、调拨单、组装单、拆卸单、形态转换单、盘点单、货位调整单、销售出库单、期初结存、不合格品记录单、不合格品处理单、期初不合格品、调拨申请单等单据进行审核、弃审、获取(或装载)、新增、修改、删除。?使用环境
必须安装.NETFrameWork2.0;必须安装U8-872版本的库存管理产品;必须安装API适配器组件STAPIConcrete.dll?接口说明
库存管理二次开发接口说明:?审核单据-Audit方法参数:sVoucherType——VoucherId——errMsg——cnnFrom——TimeStamp——domMsg——bCheck——bBeforCheckStock——bList——MakeWheres——sWebXml——oGenVouchIds——单据类型:01单据ID错误信息连接对象(调用方控制事务时需要传入连接对象)单据时间戳(用于检查单据是否修改,空串时不检查)返回DOM格式的信息:主要是可用量信息是否进行业务检查(是否控制可用量)是否检查可用量传入false传空传入空串获取单据ID列表(返回审核时自动生成的单据的id列表,传空)?弃审单据-CancelAudit方法参数:sVoucherType——单据类型:01VoucherId——单据IDerrMsg——错误信息cnnFromTimeStampdomMsgbCheckbBeforCheckStockbList?装载单据-Load方法参数:sVoucherTypesWhereDomHeaddomBodydomPoserrMsgbGetBlanksBodyWhere_Order————————————连接对象(由调用方控制事务时必须传入)单据时间戳(用于检查单据是否修改,空串时不检查)超可用量提示信息DOM对象(返回DOM格式的信息)是否进行业务检查是否检查可用量传入false————————————————单据类型:01条件串表头DOM对象表体DOM对象货位DOM对象错误信息是否获取空白单据表体排序方式字段注意:其中sWhere设计为:如果按单据号加载,则语法为ccode=N'要加载的单据号',例如broker.AssignNormalValue(\\=N'0000000001'\如果按单据ID加载,则语法为id=XXX,例如broker.AssignNormalValue(\\=1\?删除单据-Delete方法参数:sVoucherTypeVoucherIderrMsgcnnFromTimeStampdomMsgbCheckBeforCheckStockbList?添加新单据-Add方法参数:sVoucherTypeDomHeaddomBodydomPositionerrMsg————————————单据类型:01单据ID错误信息连接对象(由调用方控制事务时需要传入连接对象)单据时间戳返回DOM格式的信息:主要是检查可用量和控制可用量信息——是否进行业务检查——是否检查可用量——传入false——————————单据类型:01表头DOM对象表体DOM对象货位DOM对象:传空返回错误信息cnnFromVoucherIddomMsgbCheckbBeforCheckStockbIsRedVouchsAddedStatebReMote——连接对象,如果由调用方控制事务,则需要设置此连接对象,否则传空——返回单据ID——返回DOM格式的信息:主要返回可用量和现存量的错误信息——是否进行业务检查(是否控制可用量)——是否检查可用量(检查可用量)——是否红字单据——传空字符串——是否远程?修改单据-Update方法参数:sVoucherTypeDomHeaddomBodydomPositionerrMsgcnnFromdomMsgbCheckbBeforCheckStockbIsRedVouchsAddedStatebUpdateNeedEas————————————————————————单据类型:01表头DOM对象表体DOM对象货位DOM对象错误信息连接对象超可用量提示信息DOM对象(返回DOM格式的信息)是否进行业务检查是否检查可用量是否红字单据修改状态传true?开发步骤
实现库存单据某一功能,主要有以下七个步骤:1.构造u8login对象并登陆声明和创建u8login类对象前应该先引用U8API类库中的Interop.U8Login.dll,代码示例如下:U8Login.clsLoginu8Login=newU8Login.clsLogin();StringsSubId=\StringsAccID=\StringsYear=\StringsUserID=\StringsPassword=\StringsDate=\StringsServer=\//声明u8login对象//登陆StringsSerial=\if(!u8Login.Login(refsSubId,refsAccID,refsYear,refsUserID,refsPassword,refsDate,refsServer,refsSerial)){Console.WriteLine(\+u8Login.ShareString);Marshal.FinalReleaseComObject(u8Login);return;}如果当前环境中有login对象则可以省去第一步。2.构造环境上下文对象,传入loginU8EnvContextenvContext=newU8EnvContext();envContext.U8Login=u8Login;//构造环境上下文对象//传入login3.设置API地址标识(Url)参数//如当前API“新增或修改”的地址标识为:U8API/SaleOrder/SaveU8ApiAddressmyApiAddress=newU8ApiAddress(\4.构造APIBrokerU8ApiBrokerbroker=newU8ApiBroker(myApiAddress,envContext);5.API对象参数赋值1)给BO表头参数DomHead和表体参数domBody赋值有两种方法,如下:方法一是直接传入MSXML2.DOMDocumentClass对象,代码如下MSXML2.DOMDocumentClassdomHead=newMSXML2.DOMDocumentClass();domHead.load(\);broker.AssignNormalValue(\,domHead);方法二是构造BusinessObject对象,具体方法如下://首先通过GetBoParam方法获取表头表体参数BusinessObjectDomHead=broker.GetBoParam(\DomHead.RowCount=10;//设置行数//其中,给BO对象的字段赋值,值可以是真实类型,也可以是无类型字符串//以下代码示例只设置第一行值。各字段定义详见API服务接口定义注意:设置行数为某个值,行数并不限定为该最大值,可以一直顺序添加至任意行,但有一个规则:例如当设置为10时,可以对第0、1、……9行赋值,当对第10行赋值时候,则会顺序添加一个新行,但此时是不能对第11行赋值的,当添加一个新行(第10行)后,又可以对第11行进行赋值。/******************************以下是必输字段****************************/
共分享92篇相关文档