|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册账号
×
本帖最后由 tianzhenyun 于 2013-5-24 17:10 编辑
由于之前没有做过U8 API的开发,现在遇到了很多问题,有些经过查找摸索已经解决,和大家分享一下,不过目前这个销售发货单的保存还有问题!
1、就是登录时出错,尽管登录信息都正确,但还是登录失败提示“类型不匹配”,那么这个就u8Login.dll文件的问题,在上一个篇章已经说明.
2、如果可以正常登录,单据的装载一般都没有什么问题,都可以查询到单据信息(有一点要注意,API它要的单据ID是主表的ID,就拿查询销售发货单来,参数vouchID指的是销售订单主表SO_SOMain的ID字段,而不是cSOCode订单号字段,你需要根据订单号查询ID)。
问题都集中在销售发货单的保存,在终端根据查询的销售订单信息来扫描存货,封装销售发货单实体类对象,扫描完成提交数据,在后台为API的BusinessObject对象赋值后,在“if (!broker.Invoke())”这句话直接报错,提示“未将对象设置到对象的实例”,有可能就是你赋值有问题,你要仔细检查赋值是否为null,或都赋值类型错误,如果你不知道那个变量出现问题,你可以利用ILSpy来调试,看看那个变量为null,
后来又提示一个“业务类型(0)不正确”,
是啊,业务类型为int型我把枚举类型强转为整型,这是API的“domHead[0]["cbustype"] = ""; //业务类型,int类型”原句,后来网上说是不应该传整型,而是字符串,
可是我为cbustype赋值字符串后,总是为null,赋值之后再快速监视得的还是null,哎,这就不对了,刚赋值怎么没了,上网查询之后有人说“UFIDA.U8.U8APIFramework.dll”,找一个最新的就行了,试了下,得,还真行了。可以赋值字符串了,就在我认为没问题的时候,它又出现了一个问题,但不是异常
这是broker.Invoker()方法之后得到的结果。
“获取单据前缀格式失败”这个问题已经解决,原因是没给domBody[0]["cvouchType"]这个参数赋值,它应该赋值为"05”,而我当时没注意传了空字符串导致的。但是这个参数明明在非必输字段里,也不知道U8api资源管理器中的说明是怎么写。
接着有一个问题出现了"本单据已被他人修改或修改不成功或网络冲突".
请高人指点!
|
|