Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint 2010 SharePoint工作流错误:“0”;无法将输入查找数据转换为请求的类型;但仅限于创建新项目_Sharepoint 2010_Sharepoint Designer_Lookup_Sharepoint Workflow - Fatal编程技术网

Sharepoint 2010 SharePoint工作流错误:“0”;无法将输入查找数据转换为请求的类型;但仅限于创建新项目

Sharepoint 2010 SharePoint工作流错误:“0”;无法将输入查找数据转换为请求的类型;但仅限于创建新项目,sharepoint-2010,sharepoint-designer,lookup,sharepoint-workflow,Sharepoint 2010,Sharepoint Designer,Lookup,Sharepoint Workflow,仅供参考,首先,我知道如何正确设置查找更新,并且99%肯定我已正确完成此操作 我知道这一点,因为当我将工作流设置为在项目更改时自动启动时,它就可以完美地工作。但是,当我简单地更改此设置,使其在创建新项目时自动启动时,它会取消工作流,并得到“强制失败:无法将输入查找数据转换为请求的类型”。如果选中这两个选项,则创建时失败,只需单击项目属性上的“编辑”和“保存”让它工作 工作流位于文档库上,工作方式如下: Date Source: Work Tasks (a list) Field from Sou

仅供参考,首先,我知道如何正确设置查找更新,并且99%肯定我已正确完成此操作

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

工作流位于文档库上,工作方式如下:

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))
上载后,用户从“编辑属性”窗体中的下拉列表中选择工作任务查找,然后保存该项(将其添加到文档库)。然后,假设工作流查看选定的工作任务查找,并提取工作任务项具有的帐户和有效日期类型查找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
这一切都是一步完成的。我还添加了额外的步骤,以测试account和effective date类型字段是否已正确设置,如果没有,则重新设置。但每次我在变更上运行工作流并且它工作时,它总是根据第一步(上面发布的)和附加的检查日志将这些字段正确设置为不需要的历史记录

例如,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分钟

然后它就正常工作了

缺点是我们希望这种情况尽可能在项目创建时发生。因为库的视图依赖于基于帐户、生效日期和类型的分组。要添加到这种情况,Microsoft的暂停工作流只允许1分钟或更长时间,然后用于此操作的计时器经常关闭,导致暂停时间更长到目前为止,每个测试都显示暂停时间至少为2分钟

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

(在问题编辑中回答。转换为社区wiki答案。请参阅)

OP写道:

在进一步测试后,我不知道它是否是项目的ID。我将工作流的开始更改为等待项目中的某个字段更改。我将其设置为等待,直到ID字段不为0(因为不能设置为null),但它仍然不起作用

我也尝试过其他字段,比如documentid值不是空的,它将等待,记录它完成等待,然后失败

更新此问题与父任务字段有关。我已解决了此问题,无需等待一段时间,方法是将上面的更改设置为等待,直到父任务字段不为空。然后完成工作流

有人知道为什么会有延迟吗?我已经解决了,但仍然不完全明白是什么花了这么长时间


主要故障已解决(因此答案),关于延迟原因的其余一点可能是讨论点或不够具体。任何进一步的澄清都可以在此处编辑。

在我的情况下,当我尝试使用未设置的查找字段中的值设置变量时,工作流导致了此错误。要解决此问题,我必须首先检查if-lookup是空的。