Impostazione degli approvatori nel flusso di lavoro di approvazione utilizzando l'azione del flusso di lavoro SPD

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

  •  09-12-2019
  •  | 
  •  

Domanda

Ho bisogno di creare un flusso di lavoro di approvazione del documento per una libreria di documenti di SharePoint. Il flusso di lavoro deve essere esattamente come il flusso di lavoro di approvazione OOTB con l'eccezione che gli approversi dipendono da un campo Metadati nel documento. Ad esempio, i documenti delle risorse umane devono essere approvati da approvazione1, ma i documenti finanzie devono essere approvati da approvazione2.

Ho fatto una copia del flusso di lavoro di approvazione OOTB e si desidera personalizzarlo aggiungendo un'azione per impostare il valore del parametro AUTOVERS come mostrato qui (Nel vero flusso di lavoro aggiungerò una condizione per impostare il valore effettivo del parametro, ma per ora ho solo bisogno di assicurarmi che questo approccio funzioni).

Inserire la descrizione dell'immagine qui

Ho impostato il valore del parametro Autovers come:

<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>
.

Continuo a ricevere il seguente errore nei registri 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
.

Qualche idea di cosa potrebbe essere sbagliato?

Ambiente: Windows 2008 R2, SP2010 Enterprise Edition.

È stato utile?

Soluzione

Ho configurato un approvatore dinamico modificando le impostazioni "con [questi utenti]" nel cercare i dati dall'elemento corrente, come mostrato nel passaggio 11 qui: http://roykimsharePoint.wordpress.com / 2011 / 02/15 / SharePoint-Designer-Walkthrough-Copy-Modify-Publishing-Workflow /

Approvazione personalizzata Assegnazione Assetto dall'articolo Metadata utente / campo Gruppo

Questo blogpost suggerisce che è necessario avvolgere l'assegnazione XML all'interno di un elemento "Assegnazioni" se usato all'interno di un flusso di lavoro: http://blog.symprogress.com/2011/10/sharepoint-2010-dynamic-pprovers-for-oob-approval-workflow-part-2/

Altri suggerimenti

Se si imposta qualsiasi campo di tipo o di gruppo di gruppo come i parametri: Autorità sopra assicurati di impostare "Campo di ritorno come" qualcosa in grado di identificare i tuoi utenti in modo non ambigua.Ad esempio il nome di accesso, il nome completo no.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top