为什么我的SharePoint工作流总是走走停停,当我使用此代码?
-
12-09-2019 - |
题
我需要找到设置assignedto任务属性列表中的用户,这些信息是在列表中。因此,我使用此方法:
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;
}
的问题是,当我用这个方法或这部分代码,我的工作流站一语不发。这里的代码为例,当我使用它:
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
};
}
}
}
如果我的评论我的foreach的内容我的工作流程也在继续......
如果任何人有一个想法,这将是凉爽。
此致 卢瓦克
编辑:在代码问题
解决方案
下面是一些调试技巧,可以帮助:
<强> ULS日志强>
任何例外应当在一些细节这里报道。
作为所有.NET代码启用调试强>
这将导致调试器打破每当异常在SharePoint发生以及您的代码。缺点是,调试器将打破对身体无副作用的“正常”的例外。所以,不要被误导!
要启用:进入调试,异常和剔公共语言运行时异常。还去工具,选项,调试和勾去掉启用仅我的代码。然后附加到W3WP.EXE。
<强>注释代码强>
您也可以注释掉所有代码。如果工作流步骤失败,你知道有其他地方有问题。如果工作流步骤的推移,然后开始取消注释代码,直到它失败 - 那么你知道去哪里找。
其他提示
我尝试了上述评论此,但它没有很好地进行格式化,以便在这里。
这可能是好的,但是这看起来可疑对我说:
// Dictionary<string,class>
ActeursDuProjet[item["Rôle"].ToString()] =
new ActeursDuProjet()
{
Login = lobj_acteur.LoginName,
Email = lobj_acteur.Email
};
我认为这将是这样的:
// 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);
}
不隶属于 StackOverflow