Frage

Ich brauche einen Benutzer in einer Liste zu finden, die AssignedTo Aufgabe Eigenschaft zu setzen, sind diese Informationen in einer Liste. Also habe ich diese Methode verwenden:

public static SPUser GetSPUser(SPListItem item, string key){ 
    SPFieldUser field = item.Fields[key] as SPFieldUser;

    if (field != null)
    {
        SPFieldUserValue fieldValue = field.GetFieldValue(item[key].ToString()) as SPFieldUserValue;
        if (fieldValue != null)
        {
            return fieldValue.User;
         }
     }
     return null;
 }

Das Problem ist, dass, wenn ich diese Methode verwenden oder diesen Teil des Codes, meinen Workflow Stopp ohne etwas zu sagen. Hier ein exemple von Code, wenn ich es verwenden:

using (SPSite site = new SPSite(adress_of_my_site))
{                
    using (SPWeb web = site.OpenWeb())
   {
        SPList list = web.Lists["Acteurs du projet"];
        SPView view = cobj_ListeDesActeursDuProjet.DefaultView;
        SPListItemCollection itemcollection = list.GetItems(view);
        foreach (SPListItem item in itemcollection)
        {                       
            SPUser lobj_acteur = Utilities.GetSPUser(item,"acteur");
            // Dictionary<string,class>
            ActeursDuProjet[item["Rôle"].ToString()] = 
                new ActeursDuProjet()
                { 
                 Login = lobj_acteur.LoginName, 
                 Email = lobj_acteur.Email 
                };
        }

    }


}

Wenn ich den Inhalt meiner foreach meinen Workflow Kommentar weiterhin auch ...

Wenn jemand eine Idee hat, wird es kühl sein.

Viele Grüße, Loïc

edit: Problem im Code

War es hilfreich?

Lösung

Hier sind einige Tipps zur Fehlerbehebung, die helfen kann:

ULS-Protokolle

sollten Ausnahmen im Detail berichtet hier werden.

Aktivieren Sie das Debuggen für alle .NET-Code

Dies bewirkt, dass der Debugger zu brechen, wenn eine Ausnahme in Sharepoint sowie Code auftritt. Der Nachteil ist, dass der Debugger auf ‚normale‘ Ausnahmen brechen, die keine Nebenwirkungen verursachen. Also nicht täuschen lassen!

So aktivieren: Zum Debuggen, Ausnahmen und Common Language Runtime Ausnahmen ticken. Gehen Sie auch auf Extras, Optionen, Debugging und untick Mein-Code aktivieren einfach. Dann heften sich an w3wp.exe.

Kommentar Code

Sie können auch alle Ihre Code auskommentieren. Wenn der Workflow-Schritt fehlschlägt, wissen Sie, es ein Problem an anderer Stelle ist. Wenn der Workflow-Schritt geht, dann Auskommentierung Code starten, bis es ausfällt -. Dann wissen Sie, wo sie suchen müssen

Andere Tipps

Ich habe versucht, das oben zu kommentieren, aber es formatiert nicht schön so ist es hier.

Es ist wahrscheinlich gut, aber das sieht verdächtig zu mir:

// Dictionary<string,class>
ActeursDuProjet[item["Rôle"].ToString()] = 
    new ActeursDuProjet()
    { 
     Login = lobj_acteur.LoginName, 
     Email = lobj_acteur.Email 
    };

Ich würde denken, es sei so etwas wie:

// dictionary declared somewhere earlier
Dictionary<string,ActeursDuProjet> roles = new Dictionary<string,ActeursDuProjet>();

// inside the foreach
string role = item["Rôle"].ToString();
if (!roles.ContainsKey(role))
{
    ActeursDuProjet foo = new ActeursDuProjet();
    foo.Login = lobj_acteur.LoginName;
    foo.Email = lobj_acteur.Email;
    roles.Add(role, foo);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top