Por ello, mi flujo de trabajo de SharePoint siempre se detiene cuando se utiliza este código?

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

Pregunta

Necesito encontrar a un usuario en una lista para establecer la propiedad tarea AssignedTo, estas informaciones están en una lista. Así que yo uso este método:

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

El problema es que cuando se utiliza este método o esta parte del código, mi parada flujo de trabajo sin decir nada. Aquí un exemple de código cuando lo uso:

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

    }


}

Si comento el contenido de mi foreach mi flujo de trabajo continúe así ...

Si alguien tiene una idea de que se enfríe.

Saludos, Loïc

editar: problema en el código

¿Fue útil?

Solución

Estos son algunos consejos que pueden ayudar a la depuración:

registros de ULS

Las excepciones deben ser reportados aquí con cierto detalle.

Habilitar la depuración de todo el código .NET

Esto hará que el depurador para romper cada vez que se produce una excepción en SharePoint, así como su código. La desventaja es que el depurador se interrumpirá en las excepciones 'normales' que no causen efectos secundarios. Así que no se deje engañar!

Para habilitar: Ir a la depuración, excepciones y garrapatas excepciones Common Language Runtime. También ir a Herramientas, Opciones, Depuración y desmarca Habilitar Sólo mi código. A continuación, conecte a W3WP.exe.

código Comentando

También puede comentar todo su código. Si el paso de flujo de trabajo falla, usted sabe que hay un problema en otros lugares. Si el paso de flujo de trabajo pasa, a continuación, iniciar código descomentando hasta que falla -. Entonces usted sabe dónde buscar

Otros consejos

He intentado comentar esta arriba, pero no ha formateado muy bien lo que aquí está.

Probablemente está muy bien, pero esto parece sospechoso para mí:

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

Me parece que sería algo como:

// 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);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top