Tridion 工作流脚本编辑器中的CurrentWorkItem.ID是否正确?

Tridion 工作流脚本编辑器中的CurrentWorkItem.ID是否正确?,tridion,tridion-2011,Tridion,Tridion 2011,我使用的是Tridion 2011 SP1,我创建的工作流类似于开始-->创建-->查看-->发布--停止 我创建并注册了类库,并使用VBscript(WF选项卡的脚本编辑器)调用C#方法,如下所示 Option Explicit Dim workflowHandler Set workflowHandler= CreateObject("CoreComponentWorkflow.WorkflowHandler") If Not workflowHandler Is Nothing Then

我使用的是Tridion 2011 SP1,我创建的工作流类似于开始-->创建-->查看-->发布--停止

我创建并注册了类库,并使用VBscript(WF选项卡的脚本编辑器)调用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编辑器中放入相同的代码时,该项不会发布


有人对此提出建议吗?

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

我认为提供的代码将返回非组件ID的进程实例ID。正确的API调用将是CurrentWorkItem.GetItem().ID请注意,GetItem方法具有可选参数TdsDefines.EnumOpenMode。您是对的。这只提供实例id,而不提供tcmid。编辑了回复。