插件创建物料 报 ctx=null 异常 !!!!
金蝶云社区-云社区用户2Vc61234
云社区用户2Vc61234
0人赞赏了该文章 1,264次浏览 未经作者许可,禁止转载编辑于2016年08月03日 16:45:28

我在用插件执行单据审核时创建物料的操作
用系统自带的admin和demo账户 可以审核成功 并生成物料
用demo复制出来的账户也可以
但是自己新建用户 授权全部 就报 ctx==null
@JohnnyDing
求大神指点
代码如下!
//获取物料的元数据
FormMetadata meta = MetaDataServiceHelper.Load(this.Context, "BD_MATERIAL") as FormMetadata;
//业务元数据BusinessInfo
BusinessInfo info = meta.BusinessInfo;
//获取表单服务商
IResourceServiceProvider formServiceProvider = meta.BusinessInfo.GetForm().GetFormServiceProvider(true);
IBillViewService billViewService = formServiceProvider.GetService(typeof(IDynamicFormView)) as IBillViewService;
/******创建单据打开参数*************/
Form form = meta.BusinessInfo.GetForm();
BillOpenParameter billOpenParameter = new BillOpenParameter(form.Id, meta.GetLayoutInfo().Id);
billOpenParameter = new BillOpenParameter(form.Id, string.Empty);
billOpenParameter.Context = this.Context;
billOpenParameter.ServiceName = form.FormServiceName;
billOpenParameter.PageId = Guid.NewGuid().ToString();
billOpenParameter.FormMetaData = meta;
billOpenParameter.LayoutId = meta.GetLayoutInfo().Id;
billOpenParameter.Status = OperationStatus.ADDNEW;
billOpenParameter.PkValue = null;
billOpenParameter.CreateFrom = CreateFrom.Default;
billOpenParameter.ParentId = 0;
billOpenParameter.GroupId = "";
billOpenParameter.DefaultBillTypeId = null;
billOpenParameter.DefaultBusinessFlowId = null;
//设置参数,主业务组织修改时,不提示,直接创建新单
billOpenParameter.SetCustomParameter("ShowConfirmDialogWhenChangeOrg", false);
List value = form.CreateFormPlugIns();
billOpenParameter.SetCustomParameter(FormConst.PlugIns, value);
//初始化视图
((IDynamicFormViewService)billViewService).Initialize(billOpenParameter, formServiceProvider);
//表单视图
IBillView bill_view = (IBillView)billViewService;
//创建新的模型数据
bill_view.CreateNewModelData();
//主动触发插件的OnLoad事件
DynamicFormViewPlugInProxy proxy = bill_view.GetService();
proxy.FireOnLoad();
//给单据上的各字段赋值
bill_view.Model.SetValue("FName", productName);
bill_view.Model.SetValue("FNumber", FDrawNo);
bill_view.Model.SetValue("FCREATEORGID", orgID);
bill_view.Model.SetValue("FUSEORGID", orgID);
bill_view.Model.SetValue("FCustID", FCust);
bill_view.Model.SetValue("FSpecification", FCUSTFILENO);
bill_view.Model.SetValue("FLength", FProductLong);
bill_view.Model.SetValue("FWidth", FProductWidth);
bill_view.Model.SetValue("FIsBatchManage", 1);
bill_view.Model.SetValue("FApproverId", int.Parse(FCheckerID));
bill_view.Model.SetValue("FApproveDate", DateTime.Now);
bill_view.Model.SetValue("FDocumentStatus", "C");
bill_view.Model.SetValue("FCategoryID", 10000);
//保存数据,获取操作结果
IOperationResult save_result = bill_view.Model.Save(); <======执行到这里 报 ctx==null