【问题标题】:Event handler for Tridion workflow automatic decisionTridion 工作流自动决策的事件处理程序
【发布时间】:2012-09-26 02:55:01
【问题描述】:

在 Tridion 2011 SP1 中遇到自动决策问题。

我有一个自动决策项,它沿着两条路径之一(一条用于手动决策,另一条用于手动活动)。附上截图。

我需要做的是分析提交工作流第一步的用户的权限,并自动将工作流向下移动到正确的路径。

我正在为 AutomaticAssignActivity 使用事件处理程序(通过事件日志写入成功测试),并在 API 中找到了如何完成活动,但分配下一个活动没有过载。

我发现this post 读起来很有趣,并尝试实现CoreServiceSession 和SessionAwareCoreServiceClient,但每次代码尝试加载核心服务时,我都会收到以下错误:无法加载文件或程序集'Tridion.ContentManager. CoreService.Client,Version=6.1.0.996,Culture=neutral,PublicKeyToken=ddfc895746e5ee6b' 或其依赖项之一。系统找不到指定的文件。

我在 Web 层中使用核心服务来生成一些次要内容,但它不想在事件系统中工作。我究竟做错了什么?我的事件系统 DLL 位于 Tridion.ContentManager.CoreService.Client.dll 所在的 Tridion bin 文件夹中。

任何帮助表示赞赏:)

【问题讨论】:

  • 如果您的第一次尝试是使用 VBScript,您能否分享您的 FinishActivity 代码?我相信您所需要的只是完成消息和带有活动名称的用户之后的额外参数。希望其他人可以回答您的核心服务问题。
  • 我将不得不走那条路。我记得 VBScript 中的命令,但是我需要对权限进行相当多的分析,而我更愿意在 VS 中使用 C# 进行。 Call CurrentWorkItem.ActivityInstance.FinishActivity("Finish message", "Name of activity or TCMID")
  • 这里为什么需要CoreService?您可以从事件处理程序中使用 TOM.NET,还是从自动活动中使用 TOM?如果您可以发布事件系统的代码,周围的人可以帮助您使其工作。否则,您可以随时尝试使用 Fusion 日志查看器来查看它期望核心服务 dll 的位置
  • 在网上搜索后,我能找到的唯一示例是有人指导自动决策使用了该服务。使用正常的 Finish() 方法,我只能设置下一个受让人,而不是活动。 DecisionActivityFinishData dafd = new DecisionActivityFinishData(); dafd.Message = "this and that"; dafd.NextActivity = new TridionCore.LinkToActivityDefinitionData() { IdRef = "240" }; dafd.NextAssignee = new TridionCore.LinkToTrusteeData() { IdRef = "11" }; client.FinishActivity(activityInstance.Id, dafd, readOptions);
  • dafd.NextActivity = new TridionCore.LinkToActivityDefinitionData() { IdRef = "240" }; - 这看起来不对。您可以将其设置为正确的 id,例如“tcm:0-240-131088”吗?

标签: tridion tridion-2011


【解决方案1】:

请注意,如果您正在开发事件处理程序,则最好使用 TOM.NET API(它是事件系统和模板开发的首选 API)

其他的都用核心服务

如果您想使用核心服务,您可以创建一个 .NET DLL,然后从您的自动化活动中调用它。这个线程有一些很好的信息:

【讨论】:

  • 我正在使用 TOM.NET API,但无法发现(或在线搜索)为自动决策设置下一个活动的方法。完成方法的唯一选项是设置下一个受理人,而不是活动。除非我忽略了什么
  • 啊,所以阅读那篇文章我不能这样做。我必须坚持使用 VBScript
  • @Wardey - 我想你有点误解了。如果您在 Visio 中的 WF 任务中进行编码。您需要使用 VBScript(旧 TOM)。您可以调用自己的 COM 公开 .NET DLL,但这可能只使用 TOM(不是 TOM.NET)或 CoreService。此外,您可以使用事件系统来捕获在活动中移动的工作流项目。事件系统可以使用 TOM.NET。
猜你喜欢
  • 2012-11-28
  • 2016-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多