插件案例 —— 自动下推 自动审核

案例背景:
像入库配置了自动下推到应付后,可以选择应付到自动审核的状态。那么我们想扩展开发任意流程的自动下推,然后下游单据自动审核,如何操作呢?
案例需求:自动下推后自动审核
一、自动下推
如图,在审核操作上,配置自动下推服务。

配置默认的自动下推单据转换规则。

二、下游单据自动审核
比如上图配置的是XX流程到物料清单的流程,那么我们在物料清单上保存操作,配置插件。

代码如下,可通用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using Kingdee.BOS;
using Kingdee.BOS.Util;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Orm;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.App;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.Interaction;
namespace 你的命名空间
{
[HotUpdate]
public class MaterialListSave : AbstractOperationServicePlugIn
{
///
/// 保存操作完毕,事务结束之前,进行自动提交、审核
///
///
public override void EndOperationTransaction(EndOperationTransactionArgs e)
{
string saveTime = "";
this.Option.TryGetVariableValue<string>("ConvertType", out saveTime);
//只有从自动下推的,才自动提交审核
if (string.Compare(saveTime, "AutoPush", true) != 0)
{
return;
}
// 取到需要自动提交、审核的单据内码
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 = ServiceFactory.GetSubmitService(this.Context);
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<KeyValuePair<object, object>> pkEntityIds = new List<KeyValuePair<object, object>>();
foreach (var pkValue in pkArray)
{
pkEntityIds.Add(new KeyValuePair<object, object>(pkValue, ""));
}
List<object> paras = new List<object>();
paras.Add("1");
paras.Add("");
// 调用审核操作
ISetStatusService setStatusService = ServiceFactory.GetSetStatusService(this.Context);
// 如下调用方式,需显示交互信息
IOperationResult auditResult = setStatusService.SetBillStatus(this.Context,
this.BusinessInfo,
pkEntityIds,
paras,
"Audit",
auditOption);
// 判断审核结果,如果失败,则内部会抛出错误,回滚代码
if (CheckOpResult(auditResult) == false)
{
插件案例 —— 自动下推 自动审核
案例背景:像入库配置了自动下推到应付后,可以选择应付到自动审核的状态。那么我们想扩展开发任意流程的自动下推,然后下游单据自动审核,...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



