SPWorkflowTaskProperties.ExtendedProperties ne renseigne pas les champs de ma tâche

StackOverflow https://stackoverflow.com/questions/218988

  •  03-07-2019
  •  | 
  •  

Question

J'essaie de transmettre les informations d'une tâche créée dans un flux de travail au formulaire de tâche correspondant. Avant l'activité CreateTask, je crée un SPWorkflowTaskProperties et le remplis avec les informations habituelles (titre, assigné à, etc.). J'ajoute également des éléments à la propriété ExtendedProperties. Cependant, ces propriétés personnalisées ne font jamais partie de la tâche.

J'ai essayé de définir la clé de propriété sur:

  • le Guid d'un contenu de ma tâche champs de type;
  • le nom interne de un type de contenu de ma tâche champs;
  • un nom sans lien (dans le espère obtenir l'info dans le propriétés de la tâche au lieu de son champs).

Rien ne fonctionne. Une fois créée, la tâche ne contient que les valeurs de champ intégrées que j'ai définies. Aucune des valeurs que j'ai explicitement ajoutées aux propriétés étendues ne s'affiche.

La séquence (simplifiée) de mes activités est la suivante:

  • PrepareTask. C'est une coutume activité qui contient le SPWorkflowTaskProperties
  • CreateTask. Les propriétés de la tâche sont liées à celle de l'activité PrepareTask.
  • OnTaskCreated. Les propriétés de la tâche sont liées à celle de l'activité PrepareTask.
  • While (tâche non terminée)
    • OnTaskChanged

J'utilise WSS 3.0 SP1 et un formulaire de tâche ASPX (NOT InfoPath).

Était-ce utile?

La solution

Je ne sais toujours pas pourquoi ma solution initiale n'a pas fonctionné. Mais j'ai trouvé une solution de contournement. Ma séquence d'activités est maintenant:

  • CreateTask
  • OnTaskCreated
  • CopyTaskItems. C'est une coutume activité qui met des valeurs dans mon champs de la tâche personnalisée, puis mises à jour la tâche.
  • While (tâche non terminée)
    • OnTaskChanged

Je dois donc créer la tâche, puis y insérer immédiatement des valeurs et la mettre à jour.

J'espère que cela aidera un futur lecteur de cette question.

Autres conseils

Vous devez utiliser un document ItemMetadata.xml en tant que source de données secondaire contenant la définition des champs que vous souhaitez transmettre à votre formulaire de tâche. Quelque chose comme:

<z:row xmlns:z="#RowsetSchema" 
    ows_Instructions="" 
    ows_Body=""
    ows_Comments=""
    ows_ApprovalStatus=""
/>

Le nom du fichier est important.

Notez le ows _ (comme il utilisait les services Web, tous les champs de la liste porteraient le préfixe ows .)

Ensuite, dans votre formulaire Infopath, définissez la valeur par défaut de chaque contrôle pour lequel vous souhaitez afficher ces informations. Appuyez sur le bouton FX et insérez un champ ou un groupe de la source de données secondaire.

Une bonne ressource: http: // blog .vb-tech.com / nick / archive / 2007/02/25 / 2207.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top