服务端保存数据无法触发值更新事件和实体服务规则原创
金蝶云社区-CecilSunshine
CecilSunshine
9人赞赏了该文章 538次浏览 未经作者许可,禁止转载编辑于2023年03月10日 10:39:45

当我们在服务端代码里通过修改数据包或者sql更新数据的时候是无法触发值更新事件和实体服务规则等前端逻辑的,这种情况可以通过创建view,修改数据的方式来触发更新

List<DynamicObject> datas = new List<DynamicObject>();            

List<IDynamicFormView> dfvs = new List<IDynamicFormView>();            

FormMetadata metaData = AppServiceContext.MetadataService.Load(this.Context, MFGFormIdConst.SubSys_PRD.PPBOMBill) as FormMetadata;            

IDynamicFormView dfv = MFGBaseDataHelperUtil.CreateBillEditView(this.Context, metaData, 480852, true);//480852是用料清单内码,根据情况赋值(MFGBaseDataHelperUtil需要引用Kingdee.K3.MFG.App)             

IBillView ibv = dfv as IBillView;            

IBillViewService ibvs = dfv as IBillViewService;            

ibvs.UpdateValue("FNumerator", 0, 11);//第二个参数0是序号,对应子项明细的FSeq-1            

ibvs.UpdateValue("FDenominator", 0, 1);            

datas.Add(dfv.Model.DataObject);            

dfvs.Add(dfv);            

if (!datas.IsEmpty())            

{                

    var result = AppServiceContext.SaveService.Save(this.Context, metaData.BusinessInfo, datas.ToArray());            

}            //关闭单据,以释放网控            

foreach (IDynamicFormView item in dfvs)            

{                

    (item as IBillView).Model.DataChanged = false;                

    (item as IBillView).Close();           

 }

图标赞 9
9人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!