Есть задача, в сценарии перебираю задачи, и на отобранные мне нужно назначить задачу согласования на определенного человека. Прописываю значение в поле Harmonizator, задача не создается. Натолкните на правильный путь. Как создать задачу согласования из процесса? Спасибо
Пытаюсь таким образом добавить , для примера беру какую то существующую задачу с id=587296. В итоге ошибки 1. System.NullReferenceException: Object reference not set to an instance of an object. 2. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. Код: var activeTasks = PublicAPI.Portal.TaskBase.Find("id=587296"); foreach(var element in activeTasks) { element.Harmonizator = PublicAPI.Portal.Security.User.LoadOrNull(6770); var tsk = InterfaceActivator.Create<Task> (); tsk.CreationAuthor = element.CreationAuthor; tsk.Subject = element.Subject; tsk.Executor = element.Executor; tsk.StartDate = element.StartDate; tsk.EndDate = element.EndDate; tsk.Description = element.Description; tsk.ParentTask.Id = element.Id; tsk.Save(); var tsk_approval = InterfaceActivator.Create<ApprovalTask> (); tsk_approval.ParentStatus = tsk.Status; tsk_approval.ApprovalStatus = 0; tsk_approval.ApprovalComment = null; tsk_approval.Id = tsk.Id; tsk_approval.Save(); }
Варианта, с показом номера строки где ошибка не выходит. Выдает ошибку и показывает ниже следующее 1.System.NullReferenceException: Object reference not set to an instance of an object. at EleWise.ELMA.Workflow.Managers.WorkflowInstanceManager.qmsEAjsIPOm3xXBOZCuM(Object ) at EleWise.ELMA.Workflow.Managers.WorkflowInstanceManager.CanChangeVersion(ChangeProcessVersionActionData changeData) at Castle.Proxies.Invocations.WorkflowInstanceManager_CanChangeVersion.InvokeMethodOnTarget() at Castle.DynamicProxy.AbstractInvocation.Proceed() at EleWise.ELMA.Runtime.NH.DiagnosticsInterceptor.I1HQEXpsOvjlTmEddK5Y(Object ) at EleWise.ELMA.Runtime.NH.DiagnosticsInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at EleWise.ELMA.Runtime.NH.Interceptors.AuditInterceptor.DTcE5gNZL5H5MXbiZBum(Object ) at EleWise.ELMA.Runtime.NH.Interceptors.AuditInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at EleWise.ELMA.Runtime.NH.ManagerActionsInterceptor.GoRwbsNYcIwB1nKrb22O(Object ) at EleWise.ELMA.Runtime.NH.ManagerActionsInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at EleWise.ELMA.Runtime.NH.TransactionInterceptor.Wdhcu3u0t5l560R9YY2Z(Object ) at EleWise.ELMA.Runtime.NH.TransactionInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at Castle.Proxies.WorkflowInstanceManagerProxy.CanChangeVersion(ChangeProcessVersionActionData changeData) 2.System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at EleWise.ELMA.Actions.Impl.ManagerActionInvokeProvider.<>c__DisplayClass15.<>c__DisplayClass19.XBs8vhuoAg2hsLcj4Goa(Object , Object , Object ) at EleWise.ELMA.Actions.Impl.ManagerActionInvokeProvider.<>c__DisplayClass15.<>c__DisplayClass19.b__12(ActionInvokeEventArgs e) at EleWise.ELMA.Actions.ActionInvoker.CheckAction(ActionInvokeEventArgs e) at EleWise.ELMA.Actions.ActionDispatcherService.YCwAM5eauhdU4ro2xD(Object , Object ) at EleWise.ELMA.Actions.ActionDispatcherService.CheckAction(IAuditObject actionObject, IAuditAction actionType, Object[] methodArgs) at EleWise.ELMA.Actions.ActionDispatcherServiceExtensions.CheckActionWithResult[TManager](ActionDispatcherService service, Expression`1 expression) at EleWise.ELMA.Actions.ActionDispatcherServiceExtensions.CheckAction[TManager](ActionDispatcherService service, Expression`1 expression) at EleWise.ELMA.Web.Mvc.Html.Toolbar.ToolbarButtonBuilder.VisibleIf[TManager](Expression`1 expression) at EleWise.ELMA.Web.Mvc.Html.Toolbar.ToolbarGroupBuilder.Button(Action`1 toolbarButtonBuilder) at ASP._Page_Views_WorkflowInstance_Info_cshtml.Execute() at System.Web.WebPages.WebPageBase.ExecutePageHierarchy() at System.Web.Mvc.WebViewPage.ExecutePageHierarchy() at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) at EleWise.ELMA.Web.Orchard.Mvc.ViewEngines.Razor.CachedRazorView.RenderView(ViewContext viewContext, TextWriter writer) at Orchard.Mvc.ViewEngines.ThemeAwareness.LayoutAwareViewEngine.<>c__DisplayClass7.b__5(ViewContext viewContext, TextWriter writer, IViewDataContainer viewDataContainer) at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1a.b__17() at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) at System.Web.Mvc.Controller.ExecuteCore() at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) at Orchard.Mvc.Routes.ShellRoute.HttpHandler.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Проблема возникает в след. ситуациях, когда прописываю tsk.ParentTask.Id = element.Id; то ошибка. Убираю эту строку задача создается. var tsk = InterfaceActivator.Create<Task> (); tsk.CreationAuthor = element.CreationAuthor; tsk.Subject = element.Subject; tsk.Executor = element.Executor; tsk.StartDate = element.StartDate; tsk.EndDate = element.EndDate; tsk.Description = element.Description; tsk.ParentTask.Id = element.Id; tsk.Save(); То же самое и во второй част и var tsk_approval = InterfaceActivator.Create<ApprovalTask> (); tsk_approval.ParentStatus = tsk.Status; tsk_approval.ApprovalStatus = 0; tsk_approval.ApprovalComment = null; tsk_approval.Id = tsk.Id; tsk_approval.Save(); во второй части и понятно, я пытаюсь указать ID для ключевого поля. Все как бы понятно, но как тогда построить связь? Чтобы появилась задача согласования.
Как понимаю, нужно на базе задачи, создать подзадачу и уже подзадачу цеплять к согласованию. Но как кодом описать , пока слабо представляю
И так, кто сможет помочь? Был бы очень признателен. Разберем 1 часть скрипта, это формирование подзадачи на основании задачи: var tsk = InterfaceActivator.Create<Task> (); tsk.CreationAuthor = element.CreationAuthor; tsk.Subject = element.Subject; tsk.Executor = element.Executor; tsk.StartDate = element.StartDate; tsk.EndDate = element.EndDate; tsk.Description = element.Description; tsk.ParentTask.Id = element.Id; tsk.Save(); строка tsk.ParentTask.Id = element.Id; при проверке без ошибок, но она составлена не корректно. Как составить корректно пока не пойму. По идее мне в поле ParentTask нужно внести ID родительской задачи. На сервере , в менеджмент студии , если сделать update то все хорошо и подзадачу видно. В ситуации , через Элму. Выпадает скрипт в ошибку. Что не так со строкой tsk.ParentTask.Id = element.Id; если записать , tsk.ParentTask = element.Id; То выпадает в ошибку. Почему запись вида tsk.ParentTask = element.Id; не работает ?
Может кто разработчикам сможет вопрос задать. Как можно на основе задачи сделать подзадачу с согласованием задачи. Уже весь мозг вынес. Не могу понять. Спасибо.
И так имеем, я сократил до минимума интерфейс и ParentTask. И как можно в такой ситуации запихать в поле ParentTask номер задачи родителя? public interface ITaskBase : IEntity<long>, IEntity, IIdentified, IInheritable { [DisplayName(typeof(__Resources_ITaskBase), "P_ParentTask_DisplayName")] [Property("72ed98ca-f260-4671-9bcd-ff1d80235f47", "0f338330-068c-4135-be4e-95797a209c4e")] [Description(typeof(__Resources_ITaskBase), "P_ParentTask_Description")] [View(/*Could not decode attribute arguments.*/)] [View(/*Could not decode attribute arguments.*/)] [View(/*Could not decode attribute arguments.*/)] [View(/*Could not decode attribute arguments.*/)] [View(/*Could not decode attribute arguments.*/)] [Filterable] [EntityProperty] [EntitySettings(/*Could not decode attribute arguments.*/)] [Uid("6a30b660-f526-4c1d-96aa-301ced3fc79d")] [Order(13)] ITaskBase ParentTask { get; set; } }