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.