嗨:我已经构建了一个由内容类型使用的保留策略触发的简单顺序工作流。工作流获取当前项的元数据,并将其复制到位于不同网站集上的清除日志列表。
由于保留策略而难以调试此问题依赖于两个计时器作业:信息管理和过期策略。将degugger连接到w3wp和owetimer进程,但无法可靠地捕获激活的工作流程。
我的每个文件的工作流程历史记录列表显示工作流程已成功完成。工作流的核心是代码活动,它从当前项收集数据并更新中央列表。该列表在流程完成后显示零项。它是代码活动中的代码吗?
我删除了所有异常处理,以简化显示的内容。
public Workflow1()
{
InitializeComponent();
}
public Guid workflowId = default(System.Guid);
public SPWorkflowActivationProperties workflowProperties = new SPWorkflowActivationProperties();
string purgeLogListPath = @"http://shptserver/sites/sp";
string listPath = @"http://shptserver/sites/sp/Lists/PurgeLog/AllItems.aspx";
private void onWorkflowActivated1_Invoked(object sender, ExternalDataEventArgs e)
{
}
private void codeActivity1_ExecuteCode(object sender, EventArgs e)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(purgeLogListPath))
{
try
{
SPWeb web = site.OpenWeb("/");
SPList list = web.GetListFromUrl(listPath);
DateTime today = DateTime.Now;
SPListItem item = list.Items.Add();
item["Title"] = onWorkflowActivated1.WorkflowProperties.Item.DisplayName;
item["Encoded Absolute URL"] = onWorkflowActivated1.WorkflowProperties.ItemUrl;
item["Content Type"] = onWorkflowActivated1.WorkflowProperties.Item.ContentType.Name;
item["Date Purged"] = today.ToString("MMMM dd yyyy");
item["DateTime Purged"] = today.ToString("MMMM dd yyyy hh:mm:ss");
item.Update();
}
catch (Exception ex)
{
string errorEntry = ex.Message;
}
}
});
}
}
答案 0 :(得分:0)
不要真正看到你的问题,但是对于调试问题,请尝试这样做: 1)部署后,应重新启动Timer Service 2)通过中央管理员,您可以转到计时器作业并选择“立即运行”以触发作业并开始调试