我想使用 SDL Tridion 2011 SP1 创建工作流,并且正在浏览实时内容门户中的文档。
当我浏览以下文档时,我有几个问题:
-
是否可以使用 C# (TOM.NET) 进行自动化活动/决策?还是应该只使用 VBScript (TOM)?实时内容门户中是否提供了用于自动化活动/决策的示例代码?
-
如果不允许在工作流中使用 C# (TOM.NET),为什么 TOM.NET API 文件中给出了它的命名空间/类/成员引用?
-
如果 VBScript 只允许在 WF 中使用,我在哪里可以获得 SDL 实时内容中的代码/TOM API 参考?到目前为止,我无法访问 SDL Tridion 服务器来从安装程序包中获取文档。
是否可以将 C# (TOM.NET) 用于自动化活动?还是我应该只使用 VBScript (TOM)?
可以在 C# 代码中使用 TOM 来编写自动化活动。为此提供了一个主互操作程序集 (IIRC)。
是否允许在工作流中使用 TOM.NET?
支持从现有 TOM.NET 代码(即 TBB 或 DataExtender)中访问工作流项。因此,您可以查询工作流中的项目、启动工作流等。但是,不支持使用 TOM.NET 编写自动化工作流活动。
其原因与我记得的不兼容的线程模型有关。但我基本上只是相信开发人员的话;他们一定比我更清楚。
在哪里可以获得代码/TOM API 参考?
Tridion 的 API 参考文档不在 LiveContent 中,而是以 CHM(或压缩的 JavaDoc)文件的形式提供。有关 TOM API 的最新文档,请参见 SDL Tridion World 上 Tridion 2009 文档页面上的"SDL Tridion 2009 完整文档"压缩版(需要登录)。
感谢Quirijn和Alvin在评论中指出这一点。
可以将 C# 用于自动化任务。创建一个类并签名:
[ProgId("[Namespace].[Class Name]")]
[ComVisible(true)]
并使用 RegAsm 对程序集进行签名.exe并使用 /codebase
参数。
然后在自动操作的脚本中,您可以使用此对象。
- 安装 visio
- 插件后,使用 visio 创建工作流图表(根据要求)。
- 通过提供凭据并选择相关出版物,将工作流上传到 SDL 内容管理器。
- 对于自动化活动:创建一个 c# 类库并引用 tridion dll,用户 progid 和 comvisible = true 在解决方案中。
- 为您的工作流程创建必要的功能。
- 在 SDL Tridion 内容管理器服务器中注册程序集。
- 在工作流"编辑脚本"中使用 VB 脚本代码获取 C# 对象及其方法。
- 这将简化 VBScript 代码,并为开发人员提供使用 c# 工作的灵活性。
使用 TOM .Net API 是可以的。但是,我们必须考虑到我们需要创建会话实例,因为我们新的 TOM .Net for Workflow 不允许您从 VBScript(Visio 中的"自动活动代码"选项卡)传递工作项实例,并且您被迫传递该工作项的 TcmUri。为了实例化 Tridion 对象,必须创建会话,因为您只有一个 tcmuri。此处的建议是使用 ComVisible 和 ProgId 属性将注册为 COM 类的 C# 类使用,但将 CoreServices 用于 COM 可见类中的所有处理。
如果您使用核心服务进行处理,则无需处理会话创建,并且您的核心将更快且可扩展。您可能显然有兴趣使用 TCP 绑定或网络管道绑定来提高性能。