WSS 3 SP2 OnTaskCreated

时间:2009-10-31 19:49:04

标签: sharepoint wss-3.0 wss-3.0-sp2

在工作中,我们在WSS 3.0上安装SP2与OnTaksCreated的随意行为相关时遇到了问题。有关此检查“http://fightingvssharepoint.blogspot.com/2009/06/ontaskcreated-in-wss-30-sp2.html”的详细信息。我们还没有找到解决方案,所以我们正在尝试另一种解决方案。包括取出OnTaksCreted并将其所有活动移至OnTaskInit。 如果您确实有SP2 OnTaskCreated问题的解决方案,请告诉我!但如果你不继续阅读,请...

自定义工作流程简短说明:在“任务”列表中创建新的设置,设置工作流程状态并向“assignedTo”人员发送电子邮件。 电子邮件正文中填入了最近创建的任务信息。为了检索此信息,调用方法“GetWorkflowTask”。该方法的签名是:

SPWorkflowTask任务GetWorkflowTask(int taskID)

在OnTaskCreated中调用时,此方法检索任务正常。但是如果我在OnTaskInit中调用它,则在Createtask活动之后,检索null。为什么呢?

谢谢! 乔治。

2 个答案:

答案 0 :(得分:0)

我以前见过这个错误,不幸的是它是不可预测的,我能给你的是一个适用于我的解决方法,涉及为你要求SharePoint创建的任务指定listItemID(而不是GUID),从那里你假设创建成功,可以访问任何未来事件的列表项。如果你使用的列表获得了大量的流量,那么由于竞争条件,这可能无效......

再一次“解决方法”所以请充实... - 当您创建任务“onTaskCreateTask1”时,在SPWorkflowTaskProperties.TaskItemID = x中指定taskItemID明确性,其中x是您生成的值。
- 将生成的taskItemID存储在成员变量中 - 使用getListItemFromID(x)方法或使用list.items [x]方法/访问器访问列表

我没有写下面的代码,赞扬Martin Holy .. http://social.msdn.microsoft.com/Forums/en-US/sharepointworkflow/thread/26ff3ce1-6d6f-40a5-90b4-a7436acdfffe

/// <summary>
/// Because our task form's don't let us inject the ID we have to 
/// generate one beforehand.
/// </summary>
/// <param name="site"></param>
/// <param name="listId"></param>
/// <returns></returns>

public static int GetNextAvailableIdFromList(SPSite site, Guid listId)
{
    int nextAvailableID = -1;
    if (site.WebApplication.ContentDatabases.Count > 0)
    {
        string DBConnString = site.WebApplication.ContentDatabases[0].DatabaseConnectionString;
        SqlConnection con = new SqlConnection(DBConnString);
        try
        {
            con.Open();
            SqlCommand com = con.CreateCommand();
            com.CommandText = String.Format("select tp_NextAvailableId from AllLists where tp_ID = '{0}'", listId.ToString());

            nextAvailableID = (int)com.ExecuteScalar();
        }
        finally
        {
            con.Close();
        }
    }
    return nextAvailableID;
}

答案 1 :(得分:0)

我遇到与OnTaskCreated相同的问题,Microsoft建议您不要使用OnTaskCreated,但要解决此问题,请参阅this blog post