专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > SharePoint

vs2010 开发自定义Activity有关问题,请

发布时间:2010-06-13 14:13:35 文章来源:www.iduyao.cn 采编人员:星星草
vs2010 开发自定义Activity问题,请高手指点
小弟最近研究研究sharepoint 工作流 ,需将同一任务分配给多人,查看微软CSDN,需运用replicator Activity实现,前提是先创建自定义Activity。于是小弟参照 http://msdn.microsoft.com/en-us/library/hh128696.aspx 进行自定义Activity的创建。

创建结果如连接中Figer1.custom activity图所示

代码如下:

public SPTask()
  {
  InitializeComponent();
  }

  public Guid workflowId = default(System.Guid);
  public SPWorkflowActivationProperties workflowProperties = new SPWorkflowActivationProperties();
  public Guid createTaskId = default(System.Guid);
  public SPWorkflowTaskProperties createTaskProperties = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();

  private bool IsComplete;
  public string AssignTo { get; set; }
  public DateTime DurTime { get; set; }
  public string TaskTitle { get; set; }
  public string Desc { get; set; }
  public int TaskType { get; set; }
   

  private void createTask_MethodInvoking(object sender, EventArgs e)
  {
  createTaskId = Guid.NewGuid();
  createTaskProperties.AssignedTo = AssignTo;
  createTaskProperties.Description = Desc;
  createTaskProperties.DueDate = DurTime;
  createTaskProperties.Title = TaskTitle;
  createTaskProperties.StartDate = DateTime.Now;
  createTaskProperties.PercentComplete = 0;
  createTaskProperties.TaskType = TaskType;
   
  }
  private void IsOk(object sender, ConditionalEventArgs e)
  {
  e.Result = !IsComplete;
  }

  private void onTaskChanged1_Invoked(object sender, ExternalDataEventArgs e)
  {
  string CompleteStatu = createTaskProperties.ExtendedProperties["CompleteFlag"].ToString();

  IsComplete = bool.Parse(CompleteStatu);
  }

  private void completeTask1_MethodInvoking(object sender, EventArgs e)
  {
  OutCome = "任务已完成";
  }

  public string OutCome = default(System.String);


现在主要问题:

  1、onTaskChanged1_Invoked()这个方法不是在用户提交任务时触发,而是在创建任务时就触发了,请问该如何设置,实现用户提交任务时触发该方法。
   
  2、同样的任务提交页面,管理员可以正常显示,而普通用户就提示如下:
   
值不能为空。
参数名: item
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentNullException: 值不能为空。
参数名: item

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:

[ArgumentNullException: 值不能为空。
参数名: item]
  Microsoft.Office.Workflow.ListPage.SimpleNameFromItem(SPListItem item) +146
  Microsoft.Office.Workflow.WrkTaskIPPage.OnLoad(EventArgs ea) +2215
  System.Web.UI.Control.LoadRecursive() +66
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428


请高手指点,不甚感激~~~


------解决方案--------------------
public SPWorkflowTaskProperties onTaskChanged1_AfterProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();
public SPWorkflowTaskProperties onTaskChanged1_BeforeProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();

private void onTaskChanged1_Invoked(object sender, ExternalDataEventArgs e)
{
onTaskChanged1_AfterProperties1 = onTaskChanged1.AfterProperties;
onTaskChanged1_BeforeProperties1 = onTaskChanged1.BeforeProperties;
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: