使用代码实现单据下推

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:2

使用代码实现单据下推

使用代码实现单据下推

背景:在金蝶云星空/生产制造领域中,生产订单的领料/退料/补料/调拨场景广泛使用了第三方单据下推实现,为了方便二次开发对制造流程单据下推的需求实现,本文将会介绍如何使用代码实现将指定选中单据进行下推目标单功能的基本实现。

  • 第三方下推:选中的源单不为目标单的真实上游数据,实现下推的真实源单仅为选中单据的关联单据(如生产订单关联用料清单下推生产领料单),或者以选中数据的冗余字段作为筛选真实选单的逻辑取数关系(生产备料单冗余用料清单内码下推生产领料单)。

相关接口介绍

单据转换服务简介

接口类IConvertService
一般用于服务端调用,如操作插件,需自行声明对象

IConvertService service = Kingdee.BOS.App.ServiceHelper.GetService<IConvertService>();

服务类ConvertServiceHelper
常用于表单插件的调用,如表单插件,列表插件,直接使用

相关服务方法简介

获取转换规则GetConvertRules/GetConvertRule

使用源单与目标单确定获取所有相关的规则

string sourceFormId = 'SAL_SaleOrder';

string targetFormId = 'PRD_MO';

var rules = ConvertServiceHelper.GetConvertRules(this.Context,sourceFormId,targetFormId);

使用转换规则标识获取指定的转换规则

string convertRuleId = 'PRD_SALEORDER2MO'; //销售订单下推生产订单

var ruleMeta = ConvertServiceHelper.GetConvertRule(this.Context,convertRuleId);

var rule = ruleMeta.Rule;

下推服务Push

List<ListSelectedRow> selectedRows = new List<ListSelectedRow>();

....

 

PushArgs = new PushArgs(rule,selectedRows.ToArray());//下推入口参数

OperateOption option = OperateOption.Create();//选项参数

option.SetVariableValue('customizeParam','1');//注册自定义参数键值对

ConvertOperationResult result = ConvertServiceHelper.Push(this.Context,args,option);

  • ListSelectedRow:下推选中行对象

string sourceFormId = 'SAL_SaleOrder';

string primaryKeyValue = 1000;//单据头内码

string entryPrimaryKeyValue = 1000;//下推的单据体内码

int rowKey = 0;//暂时没用上,给个0

ListSelectedRow sr = new ListSelectedRow(primaryKeyValue,entryPrimaryKeyValue,rowKey,

sourceFormId);

  • PushArgs:下推参数对象
         由指定的转换规则和需要下推选中行集合实例化,这里不作详述

  • OperateOption 操作参数
         用于下推操作传递需要介入的自定义参数,格式为键值对。在单据转换插件中体现为this.Option对象。

  • ConvertOperationResult:下推结果,下推调用后返回的结果对象。
         下推的目标单数据包:result.TargetDataEntities
         注意事项:下推服务中,下推失败将会引发异常抛出,而非由操作结果result.IsSuccess判定,因此请将Push的调用包在trycatch代码块中,并自行区别处理代码异常以及下推失败的异常错误。

选单服务Draw

ListSelectedRow lsr = new ListSelectedRow(, needPushData.Key, 0, "PUR_Requisition");

OperateOption option = OperateOption.Create();

option.SetVariableValue("ReplaceRow", needPushData);

DrawArgs dArg = new DrawArgs(cre.Rule, targetData, new[] { lsr });

var drawResult = ConvertServiceHelper.Draw(this.Ctx, dArg, option);

  • targetData:模拟选单的单据数据包,跟打开单据界面选单的业务场景对应的单据对应。
         注意事项:选单失败也是会引发异常,请将调用代码包在trycatch代码块中,并自行区别处理代码异常以及下推失败的异常错误。


使用代码实现单据下推

使用代码实现单据下推背景:在金蝶云星空/生产制造领域中,生产订单的领料/退料/补料/调拨场景广泛使用了第三方单据下推实现,为了方便二次...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息