Установка утверждения в рабочем процессе утверждения с использованием рабочего процесса SPD

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/38858

  •  09-12-2019
  •  | 
  •  

Вопрос

Мне нужно создать рабочий процесс одобрения документов для библиотеки документов SharePoint. Рабочий процесс должен быть точно такой, как рабочий процесс одобрения OOTB, за исключением того, что утверждения зависят от поля метаданных в документе. Например, документы HR должны быть одобрены утверждением1, но финансирующие документы должны быть одобрены утверждением2.

Я сделал копию рабочего процесса одобрения OOTB и хочу настроить его, добавив действие, чтобы установить значение параметра утверждения, как показано здесь (В реальном рабочем процессе я добавлю условие, чтобы установить фактическое значение параметра, но на данный момент мне просто нужно убедиться, что этот подход работает).

Введите описание изображения здесь

Я настроил значение параметра утверждения как:

<d:Approvers xmlns:d="http://schemas.microsoft.com/office/infopath/2009/WSSList/dataFields"
       xmlns:pc="http://schemas.microsoft.com/office/infopath/2007/PartnerControls">
  <d:Assignment>
    <d:Assignee>      
      <pc:Person>
        <pc:DisplayName>Approver1</pc:DisplayName>
        <pc:AccountId>DEMO\approver1</pc:AccountId>
        <pc:AccountType>User</pc:AccountType>
      </pc:Person>
    </d:Assignee>
    <d:Stage xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
    <d:AssignmentType>Serial</d:AssignmentType>
  </d:Assignment>
</d:Approvers>
.

Я продолжаю получать следующую ошибку в журналах SP:

    System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> 
  System.NullReferenceException: Object reference not set to an instance of an object.     
  at Microsoft.Office.Workflow.Actions.StageContainer.UpdateFromString(SPWeb web, SPItemKey itemId, String assignmentString)     
  at Microsoft.Office.Workflow.Actions.OfficeTask.get_ParticipantList()     --- End of inner exception stack trace ---     
  at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)     
  at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)     
  at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)     
  at System.Workflow.ComponentModel.ActivityBindPropertyInfo.GetValue(Object obj, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)     
  at System.Reflection.PropertyInfo.GetValue(Object obj, Object[] index)     
  at System.Workflow.ComponentModel.MemberBind.<>c__DisplayClass1.<GetValue>b__0(Object sender, PathMemberInfoEventArgs eventArgs)     
  at System.Workflow.ComponentModel.PathWalker.TryWalkPropertyPath(Type rootType, String path)     
  at System.Workflow.ComponentModel.MemberBind.GetValue(MemberInfo memberInfo, Object dataContext, String path)     
  at System.Workflow.ComponentModel.ActivityBind.GetMemberValue(Object dataSourceObject, MemberInfo memberInfo, String path, Type targetType)     
  at System.Workflow.ComponentModel.ActivityBind.InternalGetRuntimeValue(Activity activity, Type targetType)     
  at System.Workflow.ComponentModel.DependencyObject.GetBoundValue(ActivityBind bind, Type targetType)     
  at System.Workflow.ComponentModel.DependencyObject.GetValueCommon(DependencyProperty dependencyProperty, PropertyMetadata metadata)     
  at Microsoft.SharePoint.WorkflowActions.CoerceActivity.get_Value()     
  at Microsoft.SharePoint.WorkflowActions.CoerceActivity.Coerce()     
  at Microsoft.SharePoint.WorkflowActions.CoerceActivity.Execute(ActivityExecutionContext provider)     
  at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)     
  at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(Activity activity, ActivityExecutionContext executionContext)     
  at System.Workflow.ComponentModel.ActivityExecutorOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime)     
  at System.Workflow.Runtime.Scheduler.Run()    49157206-76a1-4fe0-8b74-0567086a80ff
.

Любая идея, что может не так?

Окружающая среда: Windows 2008 R2, SP2010 Enterprise Edition.

Это было полезно?

Решение

Я настроил динамический укрепление, изменив настройки «с [этими пользователями]», чтобы найти данные из текущего элемента, как показано на шаге 11 здесь: http://roykimsharepoint.wordpress.com / 2011/02/15 / SharePoint-Designer-Walkthrough-Modify-Modify-Publishing-Workflow /

Настраиваемое задание одобрения. Ассигмент от имени Metadata пользователя / групповой поля

Этот блогпост предполагает, что вам нужно обернуть присвоение XML внутри элемента «назначений» при использовании внутри рабочего процесса: http://blog.symprogress.com/2011/10/SharePoint-2010-Dynamic- Aprepoint-2010-Dynamic- Approvers-for-Ob-approval-workflow-Part--/

Другие советы

Если вы устанавливаете любое поле человека или типа группы, как параметры: утверждения выше, убедитесь, что вы устанавливаете «возвращаемое поле» как «что-то, что может однозначно идентифицировать своих пользователей.Например, имя логина делает, полное имя не.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top