请问下后台代码创建单据,如何触发实体服务规则,值更.....
金蝶云社区-云社区用户5kC73565
云社区用户5kC73565
1人赞赏了该文章 1,335次浏览 未经作者许可,禁止转载编辑于2016年01月21日 02:27:23


请问下后台代码创建单据,如何触发实体服务规则,值更新事件

我发现我们之前做的系统对接项目,写的代码大部分单位换算,
值携带以及实体服务规则代码都是代码处理, 实体服务规则+值更新事件似乎没有触发,
代码如下,是否有方法触发

DynamicFormModelProxy stkTransferOrderModel = DynamicFormModelHelper.CreateModelProxy(ctx, stkTransferOrderBusInfo, null);
FormServiceProvider provider = new FormServiceProvider();
provider.Add(typeof(IDefaultValueCalculator), new DefaultValueCalculator());
stkTransferOrderModel.SetContext(ctx, stkTransferOrderBusInfo, provider);
stkTransferOrderModel.DataObject = stkTransferOrderObj;
//单据类型 FBillTypeID
stkTransferOrderModel.SetValue("FBillNo", billHeader.BillNo); //单据编号
stkTransferOrderModel.SetValue("FBillTypeID", "ce8f49055c5c4782b65463a3f863bb4a"); //单据类型
stkTransferOrderModel.SetValue("FBusinessType", "NORMAL"); //业务类型
stkTransferOrderModel.SetValue("FTransferDirect", "GENERAL"); //调拨方向
stkTransferOrderModel.DeleteEntryData("FBillEntry");
stkTransferOrderModel.BatchCreateNewEntryRow("FBillEntry", billEntitys.Count);
for (int i = 0; i < billEntitys.Count; i++)
{
stkTransferOrderModel.SetItemValueByNumber("FMaterialId", billEntitys[i].MaterialCode, i);
stkTransferOrderModel.SetValue("FQty", billEntitys[i].Quantity, i);
stkTransferOrderModel.SetItemValueByNumber("FSrcStockId", billEntitys[i].InStockCode, i);
stkTransferOrderModel.SetItemValueByNumber("FDestStockId", billEntitys[i].OutStockCode, i);
stkTransferOrderModel.SetValue("KeeperTypeOutId", "BD_KeeperOrg", i);//调出保管者类型
stkTransferOrderModel.SetValue("FBASEQTY", billEntitys[i].Quantity, i); //调拨数量BaseQty
stkTransferOrderModel.SetItemValueByNumber("FUnitID", billEntitys[i].Unit, i);//单位 FBaseUnitId
stkTransferOrderModel.SetItemValueByNumber("FBaseUnitId", billEntitys[i].Unit, i);//单位
}