Définition des approbateurs dans le flux de travail d'approbation à l'aide d'une action de flux de travail SPD

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

  •  09-12-2019
  •  | 
  •  

Question

J'ai besoin de créer un flux de travail d'approbation de documents pour une bibliothèque de documents SharePoint. Le flux de travail doit ressembler exactement au flux de travail de l'approbation de l'OOTB, à l'exception de l'exception que les approbateurs dépendent d'un champ de métadonnées dans le document. Par exemple, les documents HR doivent être approuvés par approbation1, mais les documents financiers doivent être approuvés par approbation2.

J'ai fait une copie du flux de travail de l'approbation de l'OOTB et je souhaite le personnaliser en ajoutant une action pour définir la valeur du paramètre Approvers comme indiqué ici (Dans le flux de travail réel, j'ajouterai une condition pour définir la valeur réelle du paramètre mais pour l'instant, je dois juste vous assurer que cette approche fonctionne).

Entrez la description de l'image ici

I Configurez la valeur du paramètre Approverits comme suit:

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

Je continue à obtenir l'erreur suivante dans les journaux 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

Une idée de ce qui pourrait être faux?

Environnement: Windows 2008 R2, SP2010 Enterprise Edition.

Était-ce utile?

La solution

J'ai configuré un approbateur dynamique en modifiant les paramètres "avec [ces utilisateurs]" dans la recherche des données de l'élément actuel, comme indiqué à l'étape 11 ici: http://roykimsharepoint.wordpress.COM / 2011/02/15 / SharePoint-Concepteur-Navigation-Copie-Modifier-Publication-Workflow /

Assistance de la tâche d'approbation personnalisée à partir de l'élément métadonnée Utilisateur / groupe de groupe

Ce blogpost signifie que vous devez envelopper l'affectation XML à l'intérieur d'un élément "assignations" lorsqu'il est utilisé à l'intérieur d'un flux de travail: http://Blog.symProgress.com/2011/10/SharePoint-2010-Dynnamic-approvers-for-oob-approval-approw-workflow-Part-2/

Autres conseils

Si vous définissez une personne ou un champ de type de groupe comme les paramètres suivants: Approverations ci-dessus Assurez-vous de définir «champ de retour comme« quelque chose qui peut identifier vos utilisateurs sans ambiguïté.Par exemple, le nom complet de la connexion ne le fait pas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top