Массив в шаблон в скрипте правил Alfresco


У меня есть вопрос к сообществу Alfresco v4. 0. 0

  • я создаю правило контента,
  • выберите Выполнить сценарий,
  • и в скрипте вызов processTemplate (шаблон ScriptNode, array args)

Как вставить массив в шаблон? Args содержит только ключ-значение (String).

Заранее спасибо за любой совет или помощь

1 2

1 ответ:

Я думаю, что вы получаете что-то вроде "ожидаемого расширенного хэша. параметр args.массив вычисляется вместо freemarker.шаблон.SimpleScalar", я прав?

Если это так, боюсь, что вы не можете получить эту работу со скриптами, вызванными из правил контента, потому что нетоболочек для сложных типов данных, поэтому это причина, по которой принимаются только строки (и другие скаляры).

У вас есть два варианта:

  1. Alter alfresco код, который обертывает объекты и отправляет их в processTemplate () и построить всю систему (возможно, более подробную информацию об этом вы можете найти в моем старом блоге)

  2. Поместите массив в processTemplate () и в шаблоне считайте его как строку, а затем разберите его-массивы выглядят как [val1, val2, val3], поэтому обратитесь к документации freemarker для строковых функций и сделайте что-то вроде этого (уродливое, но быстрое решение):

    <#list args.array?split(",") as value>
        hereRemoveFirstAndLastSquareBracketFrom(${value});
    </#list>
    

Edit: если кому-то интересно, я только что поднял ошибку в Alfresco Джира