Question

J'ai développé un flux de travail de machines d'état qui fonctionne de façon à rafreint. Bien que cela fonctionne, les utilisateurs se plaignent d'être bombardés par des emails de tâches de flux de travail qui n'ont rien à voir avec leurs équipes. Dans la DOC LIB, j'exègre le flux de travail, il existe une colonne qui répertorie les applications que chaque équipe fonctionne. Existe-t-il un moyen d'obtenir les informations de ce champ et de suivre le bon groupe. Ce sera dynamique afin que la valeur de colonne puisse changer. La colonne est un champ déroulant ( que vous ne pouvez pas récupérer des informations de ... au moins je pense ), mais j'ai créé un champ calculé pour récupérer les informations de la liste déroulante afin que ce soit dans une colonne statique. De plus, j'ai créé une liste externe avec 3 colonnes pour essayer de lire aussi: groupe, système et approbateurs.

c'est-à-dire si l'utilisateur choisit "ordinateur" sur une liste déroulante "Système", tout le monde dans le groupe d'approbation "My ordinateur app" doit obtenir un email basé sur un email Avoir le "ordinateur" de chaîne dans le champ et le nom du groupe, il en va de même pour les autres choix avec les bons groupes.

une manière moins que optimale avec d'énormes déclarations si-d'autre, je suis sûr que c'est possible ... Essayant de le rendre un peu plus dynamique et non aussi mal codé.

if (Listitem = system
createTask_taskProperties.AssignedTo = "IT Group A"
{
e.Result = true;
}
else
{
if (Listitem = system 2......

mise à jour

Je suis capable de retourner la liste et je peux maintenant récupérer des articles en fonction de l'identifiant d'élément comme si

SPListItem item = list.GetItemById(26);

J'ai besoin de trouver un moyen d'obtenir toutes les valeurs de la colonne / du champ lorsque le flux de travail est déclenché afin que je puisse transmettre ces informations à une variable. Une fois que cela est fait, je devrais pouvoir appeler cette variable dans ma requête CAML pour déterminer où chaque tâche d'élément doit être acheminée. Je pensais avoir le GUID de la colonne, mais ce n'est que le GUID de la liste elle-même à l'aide de ce code

SPListItem item2 = list.GetItemByUniqueId[new Guid("de417a82-f221-46bd-8003-034ea45de155")];

Était-ce utile?

La solution

Your query returns an SPListItem, however you need an SPGroup to retrieve the distribution list email.

To get to the SPGroup object that actually represents the Group itself rather than the name of the Group like you are returning from the List, you need to pull it from an SPWeb (which will be a little trickier since a workflow does not run in the context of a page; I'll leave this to you to figure out).

SPListItem item = list.GetItemById(26); // <-- This is your code here
string strGroupName = item["ColumnWithGroupName"].ToString();

// Get your SPWeb object from which to pull the group here
using (SPWeb webYourWeb = ...)
{
    // (Use SiteGroups or Groups here depending on where you want to pull the group from)
    SPGroup group = webYourWeb.SiteGroups[strGroupName];
    string strGroupEmail = group.DistributionGroupEmail;

    // Send your email
}

That's how you get the email address of a group from the group name (which you got from an SPListItem)

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