二开案例.服务插件.创建单据时不记录修改人

【应用场景】
单据在新增保存时,系统默认会将最后修改人和最后修改日期字段赋值为等于单据的当前创建人和创建日期字段的值。
某些特殊场景下,可能希望在新增保存单据时,不要记录修改人信息。受限于平台设计,目前想实现不记录修改人信息还挺麻烦的。

【案例演示】
采购订单,新增保存时,不记录修改人和修改日期。

【实现步骤】
<1>编写服务插件,代码如下。
using Kingdee.BOS;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.Metadata.FieldElement;
using Kingdee.BOS.JSON;
using Kingdee.BOS.Util;
using System.Collections.Generic;
using System.ComponentModel;
//using System.Linq;
namespace Jac.XkDemo.BOS.App.PlugIn
{
/// <summary>
/// 【服务插件】创建单据时不记录修改人
/// </summary>
[Description("【服务插件】创建单据时不记录修改人"), HotUpdate]
public class ResetModifyerAfterSaveOperationServicePlugIn : AbstractOperationServicePlugIn
{
/// <summary>
/// 修改人字段标识
/// </summary>
const string ModifierIdFieldKey = "FModifierId";
/// <summary>
/// 修改时间字段标识
/// </summary>
const string ModifyDateFieldKey = "FModifyDate";
public override void OnPrepareOperationServiceOption(OnPrepareOperationServiceEventArgs e)
{
base.OnPrepareOperationServiceOption(e);
if (!string.IsNullOrWhiteSpace(this.FormOperation.LoadKeys) && this.FormOperation.LoadKeys != "null")
{
// 设置操作完后刷新修改人字段
var loadKeys = KDObjectConverter.DeserializeObject<List<string>>(this.FormOperation.LoadKeys);
if (loadKeys == null)
{
loadKeys = new List<string>();
}
if (!loadKeys.Contains(ModifierIdFieldKey))
{
loadKeys.Add(ModifierIdFieldKey);
}
if (!loadKeys.Contains(ModifyDateFieldKey))
{
loadKeys.Add(ModifyDateFieldKey);
}
this.FormOperation.LoadKeys = KDObjectConverter.SerializeObject(loadKeys);
}
}
public override void EndOperationTransaction(EndOperationTransactionArgs e)
{
base.EndOperationTransaction(e);
if (this.FormOperation.OperationId == 8)
{
var needSaveIds = new List<object>();
foreach (var dataEntity in e.DataEntitys)
{
if (!dataEntity.DataEntityState.FromDatabase)
{
// 清除单据在内存数据包中的修改人数据
dataEntity["ModifierId_Id"] = null;
dataEntity["ModifierId"] = null;
dataEntity["ModifyDate"] = null;
needSaveIds.Add(data
二开案例.服务插件.创建单据时不记录修改人
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



