我可以使用哪种API编写SDL Tridion工作流程活动?

时间:2012-06-25 07:25:16

标签: tridion tridion-2011

我想使用SDL Tridion 2011 SP1创建工作流程,我将浏览实时内容门户网站中的文档。

当我按照以下方式阅读文档时,我几乎没有问题:

  1. 我可以使用 C#(TOM.NET)进行自动活动/决策吗?或者我应该只使用 VBScript(TOM)?是否在实时内容门户中为自动化活动/决策提供了示例代码?

  2. 如果 C#(TOM.NET)不允许在工作流程中使用,为什么在TOM.NET API文件中给出了它的名称空间/类/成员引用?

  3. 如果只允许在WF中使用VBScript,我在哪里可以获得SDL实时内容中的代码/ TOM API引用?截至目前,我无法访问SDL Tridion服务器以从安装程序包中获取文档。

4 个答案:

答案 0 :(得分:9)

我可以使用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的最新文档可在Tridion 2009 documentation page on SDL Tridion World上的“SDL Tridion 2009完整文档”压缩文件中找到(需要登录)。

感谢Quirijn和Alvin在评论中指出这一点。

答案 1 :(得分:0)

您可以将C#用于自动化任务。创建一个类并使用以下命令进行签名:

[ProgId("[Namespace].[Class Name]")]
[ComVisible(true)]

使用带有/codebase参数的RegAsm.exe对程序集进行签名。

然后在自动操作的脚本中,您可以使用此对象。

答案 2 :(得分:-1)

  1. 在安装visio插件后使用visio创建工作流程图(基于要求)。
  2. 通过提供凭据并选择相关出版物,将工作流程上传到SDL Content Manager。
  3. 对于自动活动:创建一个c#类库并引用tridion dll,并在解决方案中使用用户progid和comvisible = true。
  4. 为您的工作流程创建必要的功能。
  5. 在SDL Tridion Content Manager服务器中注册程序集。
  6. 在工作流“编辑脚本”中使用vb脚本代码获取C#对象及其方法。
  7. 这将简化VBScript代码,并为开发人员提供在c#中工作的灵活性。

答案 3 :(得分:-2)

使用TOM .Net API很好。但是我们必须考虑我们需要创建Session实例,因为我们新的TOM .Net for Workflow将不允许您从VBScript传递WorkItem实例(Visio中的代码选项卡用于自动活动)并且您被迫传递TcmUri那个WorkItem。会话创建是必需的,以便实例化Tridion对象,因为您只有一个tcmuri。这里的建议是使用ComVisible和ProgId属性注册为COM类的C#类,但使用CoreServices进行Com Visible类中的所有处理。

如果您使用核心服务进行处理,则无需处理会话创建,您的核心将更快,更具可扩展性。您可能有兴趣使用TCP绑定或Net Pipes绑定来显示性能。