【问题标题】:Sharepoint - trying to get value of a task field into a workflowSharepoint - 尝试将任务字段的价值纳入工作流程
【发布时间】:2011-06-22 02:25:53
【问题描述】:

我正在制作一个共享点状态机工作流程。第一种状态具有“创建具有内容类型的任务”作为任务。内容类型有一个名为“isApproved”的字段。我没有使用任何信息路径表格。我正在尝试获取该字段的值来评估文档是否被批准。无论我做什么,我都会得到“对象未设置为对象的实例”。

我已经尝试了以下所有方法:

createTaskWithContentType1_TaskProperties1.ExtendedProperties["isApproved"].ToString();
onTaskChanged1_AfterProperties1.ExtendedProperties["isApproved"].ToString(); 
onTaskChanged1.AfterProperties1.ExtendedProperties["isApproved"].ToString();

我做错了什么???

【问题讨论】:

    标签: sharepoint workflow


    【解决方案1】:

    我曾经遇到过类似的问题,我必须获取字段 ID 才能访问该字段。我就是这样做的:

    Guid isApprovedFieldId = worflowProperties.TaskList.Fields["isApproved"].Id;  
    string approvalStatus = (string)(onTaskChanged1_AfterProperties1.ExtendedProperties[isApprovedFieldId]);  
    

    【讨论】:

      【解决方案2】:

      我知道这个答案来得太晚了,但我发现很多人都看过这个帖子......

      “isApproved”字段是 msft 在示例工作流中通常使用的 infopath 任务表单的功能。此字段在基本内容类型任务中肯定不可用,这些任务实际上只是简单的 SharePoint 任务表单,与 InfoPath 和“isApproved”字段完全无关。您需要做的是获取任务的 afterprops,查询“状态”字段并确定用户是否完成了任务。如果您向名为“已批准”的任务添加了另一列,则使用 taskItem["fieldName"] 方法而不是 [Extended Properties] 查询该字段。

      希望这对某人有所帮助!

      【讨论】:

        【解决方案3】:

        艾伦,

        除了 Abs 所说的。我还建议您在获取其 ID 之前检查该字段是否实际存在。就这样……

        if (worflowProperties.TaskList.Fields["isApproved"] != null)
        {
           Guid isApprovedFieldId = worflowProperties.TaskList.Fields["isApproved"].Id;  
           string approvalStatus = (string)(onTaskChanged1_AfterProperties1.ExtendedProperties[isApprovedFieldId]);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多