工序计划选择一行下推工序汇报
金蝶云社区-Nina_3
Nina_3
2人赞赏了该文章 1,503次浏览 未经作者许可,禁止转载编辑于2017年08月16日 19:40:16

string sourceFormId = "SFC_OperationPlanning";
string targetFormId = "SFC_OperationReport";
//单据类型列表->车间管理->工序汇报(GXHB01_SYS)
string FBillType = ToolsClass.ToolsClass.ItemConvert(ctx, "BOS_BillType", string.Format("FNumber = '{0}'", "GXHB01_SYS"), "FBILLTYPEID");
int FOrgID = Convert.ToInt32(ToolsClass.ToolsClass.getOrgID(ctx, "100"));
var rules = ConvertServiceHelper.GetConvertRules(ctx, sourceFormId, targetFormId);
var rule = rules.FirstOrDefault(t => t.IsDefault);
//获取收料通知单单据编码并查找对应源单ID
var SourceID = dt.Rows[i]["FID"].ToString();
var SourceObj = ToolsClass.ToolsClass.GetItem(ctx, sourceFormId, SourceID);
if (SourceObj.IsNullOrEmptyOrWhiteSpace())
{
Result += "无效的请求!" + "\n"; ;
}
ListSelectedRowCollection rows = new ListSelectedRowCollection();
ListSelectedRow lst = new ListSelectedRow(SourceID, "717189", 0, sourceFormId);
lst.EntryEntityKey = "109115";
rows.Add(lst);
ConvertOperationResult operationResult = null;
Dictionary custParams = new Dictionary();
PushArgs pushArgs = new PushArgs(rule, rows.ToArray())
{
TargetBillTypeId = FBillType, // 请设定目标单据单据类型。如无单据类型,可以空字符
TargetOrgId = FOrgID, // 请设定目标单据主业务组织。如无主业务组织,可以为0
CustomParams = custParams, // 可以传递额外附加的参数给单据转换插件,如无此需求,可以忽略
};
try
{
OperateOption option = OperateOption.Create();
option.SetIgnoreWarning(true);
option.SetIgnoreInteractionFlag(true);
operationResult = ConvertServiceHelper.Push(ctx, pushArgs, option);

// 读取目标单据元数据
var targetBillMeta = MetaDataServiceHelper.Load(ctx, targetFormId) as FormMetadata;

DynamicObject[] objs = (from p in operationResult.TargetDataEntities
select p.DataEntity).ToArray();
var saveResult = BusinessDataServiceHelper.Save(ctx, targetBillMeta.BusinessInfo, objs, option);

[/i]