string sourceFormId="GH_CPRKSM";
string targetFormId="SP_InStock";
var rules = ConvertServiceHelper.GetConvertRules(View.Context, sourceFormId, targetFormId);
var rule = rules.FirstOrDefault(t => t.IsDefault);
// 获取在列表上当前选择需下推的行
ListSelectedRow[] selectedRows = ((IListView)this.ListView ).SelectedRowsInfo.ToArray();
// 如下代码为单据上获取当前当前选择行
// string primaryKeyValue = ((IBillView)this.View).Model.GetPKValue().ToString();
// ListSelectedRow row = new ListSelectedRow(primaryKeyValue, string.Empty, 0, this.View.BillBusinessInfo.GetForm().Id);
// ListSelectedRow[] selectedRows = new ListSelectedRow[] { row };
// 调用下推服务,生成下游单据数据包
ConvertOperationResult operationResult = null;
Dictionary
PushArgs pushArgs = new PushArgs(rule, selectedRows)
{
TargetBillTypeId = "", // 请设定目标单据单据类型。如无单据类型,可以空字符
TargetOrgId = 0, // 请设定目标单据主业务组织。如无主业务组织,可以为0
CustomParams = custParams, // 可以传递额外附加的参数给单据转换插件,如无此需求,可以忽略
};
//执行下推操作,并获取下推结果
operationResult = ConvertServiceHelper.Push(View.Context, pushArgs, OperateOption.Create());
// 获取生成的目标单据数据包
DynamicObject[] objs = (from p in operationResult.TargetDataEntities
select p.DataEntity).ToArray();
// 读取目标单据元数据
var targetBillMeta = MetaDataServiceHelper.Load(View.Context, targetFormId) as FormMetadata;
// 提交数据库保存,并获取保存结果
var saveResult = BusinessDataServiceHelper.Save(View.Context, targetBillMeta.BusinessInfo, objs);
推荐阅读