销售出库单反审核提示报错
金蝶云社区-exoplanet_
exoplanet_
0人赞赏了该文章 1,313次浏览 未经作者许可,禁止转载编辑于2015年12月10日 17:46:03

cloud5.1+10月份补丁
业务流程:销售订单-简单生产领料单-销售出库单-应收单
我们开发了一个插件简单生产领料单进行审核时,自动下推销售出库单,并且经行提交,审核。
经过测试,发现销售出库单审核之后,现在反审核提示:出库单关联的上游订单XSDD000481已有退货业务,不允许反审核 经查,这张单子是我们新做的,不存在退货业务。
我们把调用审核的代码贴出来,请帮助我们看一下。
///

/// 操作事务结束执行监听函数,该函数在数据库操作事务内进行


///


/// 事件对象
public override void AfterExecuteOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterExecuteOperationTransaction e) {
base.AfterExecuteOperationTransaction(e);
DynamicObject[] records = e.DataEntitys;
if (records != null && records.Count() > 0) {
foreach (DynamicObject record in records) {
// 当领用类型为“租用”、“销售”时,自动生成销售出库
DynamicObject billType = record["BillType"] as DynamicObject;
if ("JDSCLL01_SYS".Equals(Convert.ToString(billType["Number"])))
{
// 获取对应转换规则
List rulers = ConvertServiceHelper.GetConvertRules(this.Context, "SP_PickMtrl", "SAL_OUTSTOCK");
if (rulers != null && rulers.Count > 0) {
// 组装参数信息
ListSelectedRowCollection rows = new ListSelectedRowCollection();
rows.Add(new ListSelectedRow(Convert.ToString(record["Id"]), string.Empty, 0, "SP_PickMtrl"));
OperateOption option = OperateOption.Create(); option.SetVariableValue(BOSConst.CST_ConvertValidatePermission, true);
// 下游单据生成
ConvertOperationResult result = ConvertServiceHelper.Push(this.Context, new PushArgs(rulers.FirstOrDefault(), rows.ToArray()), option);
// 目标单信息
DynamicObject[] destObjects = result.TargetDataEntities.Select(r => r.DataEntity).ToArray();
if (destObjects != null && destObjects.Count() > 0) {
FormMetadata destMetadata = MetaDataServiceHelper.Load(context, "SAL_OUTSTOCK", true) as FormMetadata;
// 执行数据保存
IOperationResult oprtResult = Kingdee.BOS.App.ServiceHelper.GetService().Save(this.Context, destMetadata.BusinessInfo, destObjects);
if (oprtResult.IsSuccess) {
// 执行数据提交
oprtResult = Kingdee.BOS.App.ServiceHelper.GetService().Submit(this.Context, destMetadata.BusinessInfo, new Object[] { Convert.ToInt64(oprtResult.SuccessDataEnity.FirstOrDefault()["Id"]) }, "Submit");
if (oprtResult.IsSuccess) {
// 执行数据审核
List paras = new List(); paras.Add("1"); paras.Add("");
List> keyValuePairs = new List>();
keyValuePairs.Add(new KeyValuePair(Convert.ToInt64(oprtResult.SuccessDataEnity.FirstOrDefault()["Id"]), ""));
Kingdee.BOS.App.ServiceHelper.GetService().SetBillStatus(this.Context, destMetadata.BusinessInfo, keyValuePairs, paras, "Audit");

报错提示如图: