自动提交、审核的嵌套调用操作
金蝶云社区-云社区用户28843792
云社区用户28843792
0人赞赏了该文章 1,622次浏览 未经作者许可,禁止转载编辑于2016年10月26日 10:43:02

问题:


出现问题的操作:1,销售订单自动保存、提交、审核;
2,销售订单审核的时候自动下推销售出库单,下推后,销售出库单执行SAVE操作;
3,销售出库单执行自动提交、审核。
说明:我使用了嵌套调用操作,在执行审核时候就出错了
// 取到需要自动提交、审核的单据内码
object[] pkArray = (from p in e.DataEntitys
select p[0]).ToArray();

// 设置提交参数
// using Kingdee.BOS.Orm;
OperateOption submitOption = OperateOption.Create();
submitOption.SetIgnoreWarning(this.Option.GetIgnoreWarning());
submitOption.SetInteractionFlag(this.Option.GetInteractionFlag());
submitOption.SetIgnoreInteractionFlag(this.Option.GetIgnoreInteractionFlag());

// 创建提交服务:using Kingdee.BOS.Contracts; using Kingdee.BOS.App;
ISubmitService submitService = ServiceHelper.GetService();
IOperationResult submitResult = submitService.Submit(
this.Context, this.BusinessInfo,
pkArray, "Submit", submitOption);

// 判断提交结果,如果失败,则内部会抛出错误,回滚代码
if (CheckOpResult(submitResult) == false)
{
return;
}

// 构建操作可选参数对象
OperateOption auditOption = OperateOption.Create();
auditOption.SetIgnoreWarning(this.Option.GetIgnoreWarning());
auditOption.SetInteractionFlag(this.Option.GetInteractionFlag());
auditOption.SetIgnoreInteractionFlag(this.Option.GetIgnoreInteractionFlag());

// 构建单据主键参数
List> pkEntityIds = new List>();
foreach (var pkValue in pkArray)
{
pkEntityIds.Add(new KeyValuePair(pkValue, ""));
}

List paras = new List();
paras.Add("1");
paras.Add("");

// 调用审核操作
ISetStatusService setStatusService = ServiceHelper.GetService();

// 如下调用方式,需显示交互信息
IOperationResult auditResult = setStatusService.SetBillStatus(this.Context,
this.BusinessInfo,
pkEntityIds,
paras,
"Audit",
auditOption);

// 判断审核结果,如果失败,则内部会抛出错误,回滚代码
if (CheckOpResult(auditResult) == false)
{
return;
}

正常操作:
1,销售订单操作不变;
2,自动下推后不调用销售出库单的自动提交、审核操作,自己手动操作,提示:存在负库存,库存更新失败。


想要结果:
销售订单审核自动下推销售出库单,销售出库单也自动提交、审核能把具体的异常提示出来,比如上面的:存在负库存,库存更新失败。