2012-07-09 87 views
-1

我正在使用Tridion 2011 SP1,并且我正在创建类似于开始 - >创建 - >审阅 - >发布 - 停止的工作流程。CurrentWorkItem.ID在工作流脚本编辑器中是否正确?

我创建并注册了类库,并使用VBscript(WF Tab的脚本编辑器)调用C#方法,如下所示。

Option Explicit 
Dim workflowHandler 
Set workflowHandler= CreateObject("CoreComponentWorkflow.WorkflowHandler") 
If Not workflowHandler Is Nothing Then 
Call workflowHandler.PublishComponent(Cstr(CurrentWorkItem.ID))  
    FinishActivity "Published to WIP" 
End If 
Set workflowHandler= Nothing 

上述代码是否正确?我相信我能够使用下面的行创建对象。

Set workflowHandler= CreateObject("CoreComponentWorkflow.WorkflowHandler") 

而且我目前只发布使用C#代码当前项目,我打电话下面的C#功能。

Call workflowHandler.PublishComponent(Cstr(CurrentWorkItem.ID))  

发布项目后,我正在完成使用下面的活动。

FinishActivity "Published to WIP" 

我已经检查了上面的代码直接在服务器上硬编码currentworkitem,它工作正常。但是当我在vbscript编辑器中放入相同的代码时,该项目不会发布。

任何人都可以在此建议吗?

回答

2

当您硬编码时,您可能会直接添加TCM ID以便它正常工作,这意味着CurrentWorkItem.ID不是正确的API调用来获取组件ID。请参阅下面的Igor评论以获取tcm id。

+0

我认为提供的代码将返回您不是组件ID的流程实例ID。正确的API调用将为CurrentWorkItem.GetItem()。ID 请注意,GetItem方法具有可选参数TdsDefines.EnumOpenMode。 – 2012-07-10 10:36:06

+0

你是对的。这只会让实例ID不是tcmid。编辑回应。 – 2012-07-11 00:06:23