|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册账号
×
U890 产成品入库单
当执行到: if (!broker.Invoke()) 这句时报错信息如下:未将对象引用设置到对象的实例,请问各位大虾,该如何解决?
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using UFIDA.U8.MomServiceCommon;
using UFIDA.U8.U8MOMAPIFramework;
using UFIDA.U8.U8APIFramework;
using UFIDA.U8.U8APIFramework.Meta;
using UFIDA.U8.U8APIFramework.Parameter;
using MSXML2;
namespace QTN.DAL
{
class U8API
{
public Boolean ProductIn(out string msg)
{
//第一步:构造u8login对象并登陆(引用U8API类库中的Interop.U8Login.dll)
//如果当前环境中有login对象则可以省去第一步
U8Login.clsLogin u8Login = new U8Login.clsLogin();
String sSubId = "AS";
String sAccID = "(default)@999";
String sYear = "2010";
String sUserID = "demo";
String sPassword = "";
String sDate = "2010-07-11";
String sServer = "ericshu3";
String sSerial = "";
if (!u8Login.Login(ref sSubId, ref sAccID, ref sYear, ref sUserID, ref sPassword, ref sDate, ref sServer, ref sSerial))
{
msg = "登陆失败,原因:" + u8Login.ShareString;
Marshal.FinalReleaseComObject(u8Login);
return false;
}
//第二步:构造环境上下文对象,传入login,并按需设置其它上下文参数
U8EnvContext envContext = new U8EnvContext();
envContext.U8Login = u8Login;
//第三步:设置API地址标识(Url)
//当前API:添加新单据的地址标识为:U8API/ProductIn/Add
U8ApiAddress myApiAddress = new U8ApiAddress("U8API/ProductIn/Add");
//第四步:构造APIBroker
U8ApiBroker broker = new U8ApiBroker(myApiAddress, envContext);
//第五步:API参数赋值
//给普通参数sVouchType赋值。此参数的数据类型为System.String,此参数按值传递,表示单据类型:10
broker.AssignNormalValue("sVouchType", "10");
//给BO表头参数DomHead赋值,此BO参数的业务类型为产成品入库单,属表头参数。BO参数均按引用传递
//提示:给BO表头参数DomHead赋值有两种方法
//方法一是直接传入MSXML2.DOMDocumentClass对象
//broker.AssignNormalValue("DomHead", new MSXML2.DOMDocumentClass())
//方法二是构造BusinessObject对象,具体方法如下:
BusinessObject DomHead = broker.GetBoParam("DomHead");
DomHead.RowCount = 1; //设置BO对象(表头)行数,只能为一行
//给BO对象(表头)的字段赋值,值可以是真实类型,也可以是无类型字符串
//以下代码示例只设置第一行值。各字段定义详见API服务接口定义
/****************************** 以下是必输字段 ****************************/
DomHead[0]["id"] = 1; //主关键字段,int类型
DomHead[0]["ccode"] = "0000000001"; //入库单号,string类型
DomHead[0]["ddate"] = "2010-07-01"; //入库日期,DateTime类型
DomHead[0]["cwhname"] = ""; //仓库,string类型
/***************************** 以下是非必输字段 ****************************/
DomHead[0]["cmodifyperson"] = ""; //修改人,string类型
DomHead[0]["dmodifydate"] = ""; //修改日期,DateTime类型
DomHead[0]["dnmaketime"] = ""; //制单时间,DateTime类型
DomHead[0]["dnmodifytime"] = ""; //修改时间,DateTime类型
DomHead[0]["dnverifytime"] = ""; //审核时间,DateTime类型
DomHead[0]["dchkdate"] = ""; //检验日期,DateTime类型
DomHead[0]["iavaquantity"] = ""; //可用量,string类型
DomHead[0]["iavanum"] = ""; //可用件数,string类型
DomHead[0]["ipresentnum"] = ""; //现存件数,string类型
DomHead[0]["ufts"] = ""; //时间戳,string类型
DomHead[0]["cpspcode"] = ""; //产品,string类型
DomHead[0]["iproorderid"] = ""; //生产订单ID,string类型
DomHead[0]["cmpocode"] = "0000000025"; //生产订单号,string类型
DomHead[0]["cprobatch"] = ""; //生产批号,string类型
DomHead[0]["iverifystate"] = ""; //iverifystate,string类型
DomHead[0]["iswfcontrolled"] = ""; //iswfcontrolled,string类型
DomHead[0]["ireturncount"] = ""; //ireturncount,string类型
DomHead[0]["cdepname"] = ""; //部门,string类型
DomHead[0]["crdname"] = ""; //入库类别,string类型
DomHead[0]["dveridate"] = ""; //审核日期,DateTime类型
DomHead[0]["cmemo"] = ""; //备注,string类型
DomHead[0]["cchkperson"] = ""; //检验员,string类型
DomHead[0]["cmaker"] = "demo"; //制单人,string类型
DomHead[0]["chandler"] = ""; //审核人,string类型
DomHead[0]["itopsum"] = ""; //最高库存量,string类型
DomHead[0]["caccounter"] = ""; //记账人,string类型
DomHead[0]["ilowsum"] = ""; //最低库存量,string类型
DomHead[0]["ipresent"] = ""; //现存量,string类型
DomHead[0]["isafesum"] = ""; //安全库存量,string类型
DomHead[0]["cbustype"] = "成品入库"; //业务类型,int类型
DomHead[0]["cpersonname"] = ""; //业务员,string类型
DomHead[0]["cdefine1"] = ""; //表头自定义项1,string类型
DomHead[0]["cdefine11"] = ""; //表头自定义项11,string类型
DomHead[0]["cdefine12"] = ""; //表头自定义项12,string类型
DomHead[0]["cdefine13"] = ""; //表头自定义项13,string类型
DomHead[0]["cdefine14"] = ""; //表头自定义项14,string类型
DomHead[0]["cdefine2"] = ""; //表头自定义项2,string类型
DomHead[0]["cdefine3"] = ""; //表头自定义项3,string类型
DomHead[0]["csource"] = "生产订单"; //单据来源,int类型
DomHead[0]["cdefine5"] = ""; //表头自定义项5,int类型
DomHead[0]["cdefine15"] = ""; //表头自定义项15,int类型
DomHead[0]["cdefine6"] = ""; //表头自定义项6,DateTime类型
DomHead[0]["brdflag"] = "1"; //收发标志,string类型
DomHead[0]["cdefine7"] = ""; //表头自定义项7,double类型
DomHead[0]["cdefine16"] = ""; //表头自定义项16,double类型
DomHead[0]["cdefine8"] = ""; //表头自定义项8,string类型
DomHead[0]["cdefine9"] = ""; //表头自定义项9,string类型
DomHead[0]["cdefine10"] = ""; //表头自定义项10,string类型
DomHead[0]["cvouchtype"] = "10"; //单据类型,string类型
DomHead[0]["cwhcode"] = "01"; //仓库编码,string类型
DomHead[0]["crdcode"] = "12"; //入库类别编码,string类型
DomHead[0]["cdepcode"] = "0503"; //部门编码,string类型
DomHead[0]["cpersoncode"] = ""; //业务员编码,string类型
DomHead[0]["vt_id"] = 63; //模版号,int类型
DomHead[0]["cdefine4"] = ""; //表头自定义项4,DateTime类型
//给BO表体参数domBody赋值,此BO参数的业务类型为产成品入库单,属表体参数。BO参数均按引用传递
//提示:给BO表体参数domBody赋值有两种方法
|
|