电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

#使用技巧# K3Cloud BOS 设计 Python & C# 单据转换插件 自动提交审核

来源:金蝶云社区作者:金蝶2024-09-164

#使用技巧# K3Cloud BOS 设计 Python & C# 单据转换插件 自动提交审核

# K3Cloud BOS 设计 Python & C# 单据转换插件 自动提交审核 @[toc](目录) > > ***强调:*** `C#`中使用`this`关键字的,在C#语法中,是可以省略的,但是在 `Python`中,`this`一定要加上!!! # 1.场景 > 二开单据,下推到下游单据 > 1. 下游单据不需要人员操作,自动【提交审核】 # 2.方案 > 二开单据→下推【销售订单】 > 1. 在二开单据中,审核操作下,配置自动下推功能 > 2. 在单据转换插件中,配置插件, > **注意:** > 该方法,一定要注意界面上的下推功能, > 配置好单据转换规则后,如果点击界面下推 ,并且跳转到【销售订单】新增界面时, > 后台会直接生成【销售订单】,如果再点击保存,会出现两张【销售订单】 > 所以,该功能需要进制从下推按钮操作 **配置单据转换插件** ![image.webp](/download/01007213bf0d06774d5a8fd1d7c918099e97.webp) ## 1.依次 保存、提交、审核 ### C# 代码 ```csharp public override void AfterConvert(AfterConvertEventArgs e) { base.AfterConvert(e); string key = e.TargetBusinessInfo.GetEntity(0).Key; List<DynamicObject> list = new List<DynamicObject>(); foreach (var ed in e.Result.FindByEntityKey(key)) { DynamicObject dy = ed.DataEntity; list.Add(dy); } FormMetadata formMetadata = (FormMetadata)AppServiceContext.MetadataService.Load(this.Context, "SAL_SaleOrder", true); IOperationResult operationResult = AppServiceContext.SaveService.Save(this.Context, formMetadata.BusinessInfo, list.ToArray(), null, "");// 保存 if (operationResult.IsSuccess) { List<DynamicObject> list2 = operationResult.SuccessDataEnity.ToList<DynamicObject>(); object[] pkArray = (from p in list2 select p[0]).ToArray();// p[0] 可替代为p["分录Id"] operationResult = AppServiceContext.SubmitService.Submit(this.Context, formMetadata.BusinessInfo, pkArray, "Submit", null);// 提交 if (operationResult.IsSuccess) { List<KeyValuePair<object, object>> pkEntityIds = new List<KeyValuePair<object, object>>(); foreach (var pkValue in pkArray) { pkEntityIds.Add(new KeyValuePair<object, object>(pkValue, "")); } List<object> paras = new List<object>(); paras.Add("1"); paras.Add(""); operationResult = AppServiceContext.SetStatusService.SetBillStatus(this.Context, formMetadata.BusinessInfo, pkEntityIds, paras, "Audit", null);// 审核 } } var s = operationResult.OperateResult.GetFailResult()[0].Message; this.OperationResult.OperateResult = operationResult.OperateResult; this.OperationResult.IsSuccess = operationResult.IsSuccess; this.OperationResult.ValidationErrors = operationResult.ValidationErrors; this.OperationResult.OperateResult = operationResult.OperateResult; } ``` > **审核 代码 替换** > `operationResult = AppServiceContext.SetStatusService.SetBillStatus(this.Context, formMetadata.BusinessInfo, pkEntityIds, paras, "Audit", null);` > 替换为 > `operationResult = AppServiceContext.AuditService.Audit(this.Context, formMetadata.BusinessInfo, pkArray, null);` ```csharp operationResult = AppServiceContext.SetStatusService.SetBillStatus(this.Context, formMetadata.BusinessInfo, pkEntityIds, paras, "Audit", null); // 替换为python 代码中,已经替换为Audit operationResult = AppServiceContext.AuditService.Audit(this.Context, formMetadata.BusinessInfo, pkArray, null); ``` ### 2.python 代码 > **完整代码** ```python def AfterConvert(e): key = e.TargetBusinessInfo.GetEntity(0).Key ls = e.Result.FindByEntityKey(key) ids = List[DynamicObject]() for billObj in ls: ob = billObj.DataEntity ids.Add(ob) pkArray = ids.ToArray() formMetadata = MetaDataServiceHelper.Load(this.Context, "SAL_SaleOrder") operationResult = BusinessDataServiceHelper.Save(this.Context, formMetadata.BusinessInfo, pkArray, None, "") if (operationResult.IsSuccess): ids = operationResult.SuccessDataEnity keys = List[object]() for ob in ids: keys.Add(ob[0]) # 可以使用ob["分录Id"] pkArray = keys.ToArray() operationResult = BusinessDataServiceHelper.Submit(this.Context, formMetadata.BusinessInfo, pkArray,"Submit", None) if operationResult.IsSuccess: operationResult = BusinessDataServiceHelper.Audit(this.Context, formMetadata.BusinessInfo, pkArray, None) this.OperationResult.OperateResult = operat

#使用技巧# K3Cloud BOS 设计 Python & C# 单据转换插件 自动提交审核

# K3Cloud BOS 设计 Python & C# 单据转换插件 自动提交审核@[toc](目录)> > ***强调:*** `C#`中使用`this`关键字的,在C#语...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信