CurrentWorkItem.ID является правильным или нет в редакторе сценариев рабочего процесса?

Я использую Tridion 2011 SP1, и я создаю рабочий процесс, как запуск -> создать -> обзор -> опубликовать - остановить.

Я создал и зарегистрировал библиотеку классов и вызвал метод C#, используя VBscript (редактор скриптов на вкладке WF), как указано ниже.

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"

Я проверил приведенный выше код непосредственно на сервере путем жесткого кодирования текущего рабочего элемента, он работал нормально. Но когда я помещаю тот же код в редактор VBScript, элемент не публикуется.

Кто-нибудь может предложить по этому поводу?

1 ответ

Решение

Когда вы жестко кодируете код, вы можете добавлять идентификатор TCM напрямую, чтобы он работал правильно, а это означает, что CurrentWorkItem.ID неправильный вызов API для получения идентификатора компонента. Посмотрите комментарий Игоря ниже, чтобы получить идентификатор tcm.

Другие вопросы по тегам