0

伙计们。我在自定义实体中有一个自定义 BPF。另一个实体触发了一个插件来更新这个具有 BPF 的自定义实体。我现在遇到的问题是,如果自定义实体(带有 BPF)BPF 阶段不是第一阶段,插件将失败并出现以下错误:

遍历的路径应该以新的活动阶段结束。

如果自定义实体(带有 BPF)BPF 阶段处于第一阶段,则插件运行良好。该插件仅更新自定义实体的某些字段(使用 BPF)。

各位大神能给我点建议吗?我真的不明白那个错误,我试着用谷歌搜索它,但我能找到的信息很少。谢谢。

4

2 回答 2

2

如果您遇到遍历路径错误,则它们是实体中的一个字段,称为

travesedpath

所以这个字段包含从第 1 阶段到当前活动阶段的阶段 id,例如,如果您的实体有一个流程并且它有 6 个阶段,而当前活动阶段是第 3 阶段。所以travesedpath 包含从第一阶段到第三阶段的 3 个 Guid,就像c1a07479-aa88-4b50-9675-61d840083530,efff5adb-48f2-47c7-8d0b-5f3807702f9b,a2717242-a072-4cd0-ac57-3a4eaddbcca7用逗号分隔这个 traversedpath 字段是插件中的文本字段,您将首先从当前实体或原像获取 traversedpath,然后使用这个遍历路径添加新的 guid。例如。string traversedPath = currentEntity.Attribute["traversedpath"]; thentravesedPath += newStageid;` 然后更新你的实体

于 2015-09-01T21:21:41.867 回答
0

这里的问题是 BPF 需要一个列表,其中包含在使用它进行分支时创建的所有 guid。这意味着您需要执行以下操作:

string straversed = entity["traversedpath"].ToString();
string stageid = entity.Attributes["stageid"].ToString();   
entity.Attributes["traversedpath"] = straversed + "," + stageid;

try
{
 service.Update(entity);
}

当前阶段是遍历路径中的最后一个 guid,因此您将 stageid 添加到遍历路径中。

这应该工作!让我知道是否有!

于 2018-02-26T13:03:21.783 回答