Рабочие процессы Adobe AEM 6.4.x: элемент graniteWorkItem не определен при использовании в разделенном стеке ИЛИ

#aem #aem-6

#aem #aem-6

Вопрос:

Я пытаюсь запустить скрипт в разделенном ИЛИ, и я продолжаю получать ошибку ниже. Согласно этой странице, «graniteWorkItem» включен в список «переменных, которые немедленно доступны для сценариев обработки, обеспечивающих доступ к объектам workflow Java API» (цитируется по ссылке).

наблюдения:

  • Я попробовал «WorkItem», который, как я полагаю, является переменной для CQ5? та же ошибка.
  • Я удалил разделение OR, а затем вставил шаг динамического участника. В окне выбора участника я выбрал средство выбора участника инициатора рабочего процесса (сценарий). Затем я использовал приведенный ниже код и поставил галочку «электронная почта». Я пробовал имена переменных «WorkItem» и «graniteWorkItem». Я запустил рабочий процесс под другим своим именем и, используя оба имени переменных, получил электронное письмо и никаких ошибок в error.log

Есть идеи, что я делаю не так?


Или с разделенным сценарием (с ошибкой. смотрите ниже)

 function check() {  
    var workflowData = graniteWorkItem.getWorkflowData();
     return false;  
}
  

динамический сценарий участника (ошибка с graniteWorkItem в error.log отсутствует)

 function getParticipant() {
    return graniteWorkItem.getWorkflow().getInitiator();
}
  

ошибка из error.log

 > tail -f error.log | grep -i "graniteWorkItem"
    var workflowData = graniteWorkItem.getWorkflowData();
} : Failure running script /libs/workflow/scripts/dynamic.ecma: ReferenceError: "graniteWorkItem" is not defined. (NO_SCRIPT_NAME#2)
org.apache.sling.api.scripting.ScriptEvaluationException: Failure running script /libs/workflow/scripts/dynamic.ecma: ReferenceError: "graniteWorkItem" is not defined. (NO_SCRIPT_NAME#2)
Caused by: org.mozilla.javascript.EcmaError: ReferenceError: "graniteWorkItem" is not defined. (NO_SCRIPT_NAME#2)
    var workflowData = graniteWorkItem.getWorkflowData();
com.adobe.granite.workflow.WorkflowException: org.apache.sling.api.scripting.ScriptEvaluationException: Failure running script /libs/workflow/scripts/dynamic.ecma: ReferenceError: "graniteWorkItem" is not defined. (NO_SCRIPT_NAME#2)
Caused by: org.apache.sling.api.scripting.ScriptEvaluationException: Failure running script /libs/workflow/scripts/dynamic.ecma: ReferenceError: "graniteWorkItem" is not defined. (NO_SCRIPT_NAME#2)
  

Ответ №1:

Я не уверен на 100%, но разве workflowData не доступен в методе check() в любом случае — без извлечения его из рабочего элемента?

Комментарии:

1. Я должен проверить, но workflowData определенно НЕТ в списке переменных. Даже пример на странице, на которую я ссылался, выводит workflowData из graniteWorkItem

2. Да, я знаю. Но все примеры, которые я нашел (в моем локальном экземпляре vanilla AEM) для проверки функций (), напрямую обращаются к workflowData.

3. Где вы нашли примеры? Какой встроенный рабочий процесс? Спасибо