3

仅供参考,我知道如何正确设置查找的更新,并且 99% 的肯定我已经正确地做到了这一点。

我知道这一点是因为当我将工作流程设置为在更改项目时自动启动时,它会完美运行。但是,当我简单地更改此设置以便它在创建新项目时自动启动时,它会取消工作流,并且我得到“强制失败:无法将输入查找数据转换为请求的类型”。如果这两个选项都被选中,那么它在创建时会失败,但只需单击项目属性上的编辑,然后“保存”即可使其工作。

工作流程在文档库上,工作方式如下;

上传后,用户从编辑属性表单的下拉列表中选择工作任务查找,然后保存项目(将其添加到文档库)。假设工作流然后查看选定的工作任务查找,并提取工作任务项具有的帐户和有效日期类型查找 ID,并将文档的相同字段设置为相同的值。

如果有帮助,这是工作流程的代码;

If Current Item: Parent Task is not empty
If Current Item: Sub Task is not empty
    Log Both are empty to workflow history list
    Then Set Account to Work Tasks:Account
    The Log Set Account to workflow history list
    Then Set Effective Date and Type to WorkTasks: Effective Date and Type
    The Log Set EffDateType to the workflow history list

这一切都是一步完成的。我还添加了额外的步骤来测试帐户和生效日期类型字段是否已正确设置,如果没有再次设置。但是每次我在更改时运行工作流并且它工作时,它总是根据第一步(上面发布)正确设置这些字段,并将额外的检查日志记录到不需要它们的历史记录中。

例如,Integer for Tasks:Account 的查找设置为如下工作;

Date Source: Work Tasks (a list)
Field from Source: Account (a lookup)
Return Field as: Lookup ID (as Integer)

Find the List Item
Field: Title (from the Work Tasks list)
Value: Current Item: Parent Task (Which is a look up of the "Title" 
Field from Work Tasks List, and is set to return the Value as a LookUp Value (As Text))

生效日期和类型设置几乎相同。

所以有人有任何见解吗?我尝试将其作为模拟步骤运行,设置工作流程暂停(1 分钟),更改查找类型以防我一开始就搞砸了,但最终上述工作流程确实有效,但只有当我将其设置为“自动开始更改(编辑)项目“,而不是像我需要做的那样“自动开始创建新项目”。

哦,是的,仅供参考,我在文档库表单的工作任务和子任务字段上使用 SPServices CascadingDropDown,但老实说,我不相信这与我的问题有任何关系。

更新:

我与另一位开发人员交谈过,他认为这是由于工作流程发生得太快的问题,在项目为自己创建 ID 之前,它需要执行查找。他让我在我的工作流程代码的最顶部(在 If 条件之上)添加另一个“暂停工作流程”并将其设置为 1 分钟。

然后它正常工作。

缺点是我们希望标签尽可能接近项目创建。因为图书馆的视图依赖于基于帐户和生效日期和类型的分组。更令人沮丧的是,微软的暂停工作流程只允许 1 分钟或更长时间,然后用于此的计时器经常关闭,导致暂停时间更长。到目前为止,每项测试目前都显示最少 2 分钟的暂停时间。

即时填充文件的一种可能的替代解决方案是使用 Javascript 和 SPServices 对任务列表进行查找以提取帐户和生效日期类型字段然后填充,但我的 Javascript 不是很强大,我需要帮助这个。如果有人有任何建议,我将不胜感激。

4

1 回答 1

1

(在问题编辑中回答。转换为社区 wiki 答案。请参阅没有答案的问题,但问题在评论中解决(或在聊天中扩展)

OP写道:

经过进一步测试,我不知道它是否是该物品的ID。我将工作流程的开始更改为等到项目中的字段更改。我将它设置为等到 ID 字段不为 0(因为您不能设置为 null),但它仍然不起作用。

 6/14/2012 4:13 PM Comment System Account Waiting on ID ​ 
 6/14/2012 4:13 PM Comment System Account Waiting complete on ID ​ 
 6/14/2012 4:13 PM Error System Account Coercion Failed: Unable to transform the input lookup data into the requested type. 

我也尝试过其他字段,比如文档 ID 值不为空,它会等待,记录它完成等待,然后失败。

更新此问题与父任务字段有关。我已经解决了这个问题,而不必等待一段时间,方法是将上面的更改设置为等到父任务字段不为空。然后它很好地完成了工作流程。

有人知道为什么会有延迟吗?我已经解决了它,但仍然不完全理解它需要这么长时间。

主要故障已解决(因此得到了答案),关于延迟原因的剩余一点可能是一个讨论点,或者对于 SO 来说不够具体。可以在此处编辑任何进一步的说明。

于 2015-02-01T14:05:04.223 回答