PLM.二开案例.ECN变更单自动同步更新服务案例

【应用场景】
变更单新增操作,自动同步更新制造用料清单
【案例演示】
变更单新增一个操作,用于自动同步更新制造用料清单
【实现步骤】
<1>编写服务插件
你可能需要以下引用

代码示例:
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.K3.Core.MFG;
using Kingdee.K3.Core.MFG.EntityHelper;
using Kingdee.K3.MFG.App;
using Kingdee.K3.MFG.Contracts;
using Kingdee.K3.MFG.Contracts.ENG;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Xml.Serialization;
namespace ISV.MFGSync.Common.BusinessEntity
{
[Description("插件示例:ECN自动同步更新")]
public class ECNSyncMFGService : AbstractOperationServicePlugIn
{
public override void OnPreparePropertys(PreparePropertysEventArgs e)
{
e.FieldKeys.Add("FSyncContext");
e.FieldKeys.Add("FIsERPSynSuccess");
base.OnPreparePropertys(e);
}
public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e)
{
var allSyncBomIds = new List<long>();
foreach (var row in e.SelectedRows)
{
var data = row.DataEntity;
if (!Convert.ToBoolean(data["IsERPSynSuccess"])) continue; //判断ECN是否下推
if (data["SyncContext"] == null || data["SyncContext"] == DBNull.Value) continue; //获取已下推的数据列表,没有则跳过
/*
* ECN变更单下推后,将对应的制造物料清单内码以XML的形式序列化在了FSyncContext字段上
* 可反序列化出来直接使用
*/
var syncxml = data["SyncContext"].ToString();
var serializer = new XmlSerializer(typeof(HashSet<long>));
try
{
using (StringReader reader = new StringReader(syncxml))
{
allSyncBomIds.AddRange((HashSet<long>)serializer.Deserialize(reader));
}
}
catch (InvalidOperationException)
{ //历史版本数据存在类型不一致的情况,按需处理
}
}
if (allSyncBomIds.Any())
{
var result = BomSyncUpdate(allSyncBomIds);
if (result != null)
{
this.OperationResult.MergeResult(result);
}
}
}
private IOperationResult BomSyncUpdate(List<long> bomIds)
{
IOperationResult result = new OperationResult();
FormMetadata bomMeta = MetaDataServiceHelper.LoadPLM.二开案例.ECN变更单自动同步更新服务案例
【应用场景】变更单新增操作,自动同步更新制造用料清单【案例演示】变更单新增一个操作,用于自动同步更新制造用料清单【实现步骤】<1>编...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



