Visual studio 2010 Visual Studio 2010/SharePoint 2010工作流错误
我在VS2010中创建了一个简单的工作流。它所做的是为某人创建任务,当此人将任务状态更改为“完成”时,它会将一条消息记录到工作流历史记录中 当我将状态更改为“完成”时,它会显示:“xxxx(工作流名称)中发生错误”。 代码:Visual studio 2010 Visual Studio 2010/SharePoint 2010工作流错误,visual-studio-2010,sharepoint-2010,Visual Studio 2010,Sharepoint 2010,我在VS2010中创建了一个简单的工作流。它所做的是为某人创建任务,当此人将任务状态更改为“完成”时,它会将一条消息记录到工作流历史记录中 当我将状态更改为“完成”时,它会显示:“xxxx(工作流名称)中发生错误”。 代码: using System; using System.ComponentModel; using System.ComponentModel.Design; using System.Collections; using System.Drawing; using Syst
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Collections;
using System.Drawing;
using System.Linq;
using System.Workflow.ComponentModel.Compiler;
using System.Workflow.ComponentModel.Serialization;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Design;
using System.Workflow.Runtime;
using System.Workflow.Activities;
using System.Workflow.Activities.Rules;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Workflow;
using Microsoft.SharePoint.WorkflowActions;
namespace WorkflowProject2.Workflow1
{
public sealed partial class Workflow1 : SequentialWorkflowActivity
{
public Workflow1()
{
InitializeComponent();
}
public Guid workflowId = default(System.Guid);
public SPWorkflowActivationProperties workflowProperties = new SPWorkflowActivationProperties();
private void onWorkflowActived(object sender, ExternalDataEventArgs e)
{
}
public Guid taskID = default(System.Guid);
public SPWorkflowTaskProperties taskProperties = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();
private bool taskHasCompleted = false;
public SPWorkflowTaskProperties taskAfterProperties = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();
public SPWorkflowTaskProperties taskBeforeProperties = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();
public String taskOutcome = default(System.String);
public Guid TaskStatusFieldID = new Guid("c15b34c3-ce7d-490a-b133-3f4de8801b76");
private void createTask1_MethodInvoking(object sender, EventArgs e)
{
taskID = Guid.NewGuid();
taskProperties.AssignedTo = "spdev\\lzhang";
taskProperties.Description = "Please review";
taskProperties.Title = "Leave application";
}
private void completeTask1_MethodInvoking(object sender, EventArgs e)
{
// Finalize the task:
taskAfterProperties.PercentComplete = 100;
taskOutcome = "Completed";
}
private void notComplete(object sender, ConditionalEventArgs e)
{
e.Result = !taskHasCompleted; // **(A)**
}
private void onTaskChanged1_Invoked(object sender, ExternalDataEventArgs e)
{
string taskStatus = taskAfterProperties.ExtendedProperties[TaskStatusFieldID].ToString();
if (taskStatus == "Completed")
{
taskHasCompleted = true; // **(B)**
}
}
}
}
我觉得(a)或(B)一定有问题,但我不知道如何解决。我在14/LOGS文件夹的日志文件中没有发现任何错误
谢谢你的帮助!谢谢 我在Visual Studio和工作流方面遇到了不少问题,其中大多数问题是由于没有分配正确的任务ID,或者忘记为已更改的任务或相关标记或其他小问题创建after属性 因此,您面临的问题似乎属于这一类,而不是代码落后的问题 尝试使用本指南,并确保每个步骤都已完成: 或者更好的方法是使用Microsoft逐步指南:
我想尝试的另一件事是创建您的工作流,并确保退出条件设置为true,这样您就可以检查结构是否正确了我发现了问题!这是因为在“Workflow1.cs[design]”(设计视图)中,我没有在“属性框”中为“completeTask1”指定TaskID。默认情况下,它是“00000000-0000-0000-000000000000”,我应该将其更改为“taskID” 是的,您需要用GUID填充它,在Visual Studio中选择工具,创建GUID,在新窗口中选择注册表格式,选择复制并粘贴到所有0所在的位置 或者选择[…]并在“新建”框中选择“绑定到新成员并创建”字段。 它可能被称为createTask1\u TaskId1之类的名称,最后在createTask1method\u调用中的代码中,请确保按如下方式分配新的Guid:
createTask1_TaskId1 = Guid.NewGuid();
第二个选项确保由同一工作流创建的多个任务不会冻结。要在工作流中获取当前任务id,建议阅读文章
谢谢您的回复!我会查看链接,看看我是否能找到任何东西…林,你好