伙计们。我在自定义实体中有一个自定义 BPF。另一个实体触发了一个插件来更新这个具有 BPF 的自定义实体。我现在遇到的问题是,如果自定义实体(带有 BPF)BPF 阶段不是第一阶段,插件将失败并出现以下错误:
遍历的路径应该以新的活动阶段结束。
如果自定义实体(带有 BPF)BPF 阶段处于第一阶段,则插件运行良好。该插件仅更新自定义实体的某些字段(使用 BPF)。
各位大神能给我点建议吗?我真的不明白那个错误,我试着用谷歌搜索它,但我能找到的信息很少。谢谢。
伙计们。我在自定义实体中有一个自定义 BPF。另一个实体触发了一个插件来更新这个具有 BPF 的自定义实体。我现在遇到的问题是,如果自定义实体(带有 BPF)BPF 阶段不是第一阶段,插件将失败并出现以下错误:
遍历的路径应该以新的活动阶段结束。
如果自定义实体(带有 BPF)BPF 阶段处于第一阶段,则插件运行良好。该插件仅更新自定义实体的某些字段(使用 BPF)。
各位大神能给我点建议吗?我真的不明白那个错误,我试着用谷歌搜索它,但我能找到的信息很少。谢谢。
如果您遇到遍历路径错误,则它们是实体中的一个字段,称为
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"];
then
travesedPath += newStageid;` 然后更新你的实体
这里的问题是 BPF 需要一个列表,其中包含在使用它进行分支时创建的所有 guid。这意味着您需要执行以下操作:
string straversed = entity["traversedpath"].ToString();
string stageid = entity.Attributes["stageid"].ToString();
entity.Attributes["traversedpath"] = straversed + "," + stageid;
try
{
service.Update(entity);
}
当前阶段是遍历路径中的最后一个 guid,因此您将 stageid 添加到遍历路径中。
这应该工作!让我知道是否有!