44.2、操作插件 BeforeExecuteOperationTransaction事务开始前事件原创
金蝶云社区-林荫大道cc
林荫大道cc
9人赞赏了该文章 8669次浏览 未经作者许可,禁止转载编辑于2020年07月12日 13:51:14
封面


业务场景:采购订单,单据体字段FHHID如果已存在重复,保存的时候提示报错


续 


44.1


1、删除上一节代码


            e.CancelMessage = "测试终止操作执行";
            e.Cancel = true;



2、


        //本节使用的方法,事务开始前事件
        public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e)
        {
            base.BeforeExecuteOperationTransaction(e);
            
            //所选择的行,循环,读取单据体POOrderEntry
            foreach(ExtendedDataEntity extended in e.SelectedRows)
            {
                int flog = 0;
                
                DynamicObject dy = extended.DataEntity;
                
                DynamicObjectCollection docPriceEntity = dy["POOrderEntry"] as DynamicObjectCollection;
               
                foreach(DynamicObject HHentity in docPriceEntity)
                {
                    //如果FHHID已存在,报错
                    if(Convert.ToString(HHentity["FHHID"]) !="0")
                    {
                        if(flog ==0)
                        {
string sqlselect = "/*dialect*/select 1 cut from t_PUR_POOrderEntry where FENTRYID<>" + HHentity["ID"] + " and  FHHID=" + HHentity["FHHID"];
                            dtTable = DBUtils.ExecuteDataSet(this.Context,sqlselect).Tables[0];
                            
                            if(dtTable.Rows.Count >0)
                            {
                                flog = 1;
                            }
                        }
                    }
                }
                if(flog ==1)
                {
                    throw new KDBusinessException("", "FHHID导入重复数据!");
                }
            }
        }

image.png



3、最终效果,打开采购订单,填写第三方ID 1001



image.png



4、再复制新增一张采购订单,填写相同的第三方ID,单据体字段FHHID如果已存在重复,保存的时候提示报错;


image.png


总目录链接

https://vip.kingdee.com/article/64993872014591232



44.2.zip(57.88KB)

赞 9