...

Функции генерации документов по шаблону не работают

Тема в разделе "Проблемы/ошибки", создана пользователем Pawn182, 26 окт 2017.

  1. Pawn182

    Pawn182 New Member

    Добрый день.
    Установлена ELMA CE.
    Хочу в шаблоне изменить падеж пользователя согласно этой статьи
    https://www.elma-bpm.ru/kb/article-1138.html
    Например
    {ФОРМАТ_ФИО('$Iniciator', 'Р')}
    Но функции не работают, ошибка генерации документа при вставки функции.
    Нужен какой-то компонент или что?
    Разъясните пожалуйста.
     
  2. arkarimov

    arkarimov Member

    У этих функций описание составлено крайне неряшливо, плюсом отладка функций крайне затруднена тем что ошибка выдается в духе чувак у тебя проблема в генерации документа, где и что разберись сам.
    Вот так точно работает при передаче текста.
    В передаче данных контекста вскрылся нюанс: почему то просто передаваемый пользователь в духе
    {$WorkflowInstance.Initiator} не принимается. Зато работает когда обращаешься к FullName свойству
     
  3. Pawn182

    Pawn182 New Member

    Попробовал как Вы сказали, документ теперь генерируется, но вместо отображения данных пустая строка.
    {ФОРМАТ_ФИО(‘Иванов Иван Иванович’; ‘2’; ‘фамилия имя отчество’)} - тоже пусто.
     
  4. arkarimov

    arkarimov Member

  5. Pawn182

    Pawn182 New Member

    Нет, кавычки проверял в первую очередь.
    Даже скачал Ваш файл, не открывая его добавил в генерацию документа. Результат - файл пустой.
    При всем, если указывать просто контекстные переменные без функций, то все работает.
     
  6. arkarimov

    arkarimov Member

    файл 100% рабочий только что проверил. Либо мы по разному генерим документы (я делаю сценарием образец можно посмотреть в базе знаний) либо разница в версиях между которыми разрабы сломали генератор/или в CE он калечный. Ну или вы что-то не так делаете.
     
  7. Pawn182

    Pawn182 New Member

    Смотрел https://www.elma-bpm.ru/kb/article-11.html
    Непонятно на какое событие использовать скрипт.
    Делал так
    Код:
         public void add_file (Context context, EleWise.ELMA.Model.Views.FormViewBuilder<Context> form)
    {
    int id_doc= 8; //идентификатор документа, в котором содержится шаблон
    var versionFile = Locator.GetServiceNotNull<IDocumentFileManager>().GetFileByDocumentId(id_doc);
    var file = Locator.GetServiceNotNull<ITemplateFileManager>().CreateFromTemplate(versionFile.Id);
    // Создаем генератор
    var generator = Locator.GetServiceNotNull<DocumentGeneratorManager>().Create(file.ContentFilePath);
    // Генерируем документ
    generator.Generate(context);
    // Сохраняем файл сгенерированного документа
    Locator.GetServiceNotNull<IFileManager>().SaveFile(file);
    // Записываем результат в переменную
    context.DobavlenieFayla = file;
    }
    
    Я так понимаю на имеющийся шаблон должна создаваться версия.
     
    Последнее редактирование: 27 окт 2017
  8. arkarimov

    arkarimov Member

    Нет, этот код создает файл и присваивает его переменной контекста под названием DobavlenieFayla
    Никакой версии в документе он не должен создавать.
    Проверил, этот код создает документ, ФИО прописывается корректно, разумеется id_doc должна указывать на документ с шаблоном и нужная версия с шаблоном должна быть текущей это важно.
     
  9. Riket Contraption

    Riket Contraption New Member

    Коллеги, приветствую!
    Вставлю свои 5 копеек:
    Тут, вроде, всё логично, в описании функции:
    [0]*: Строка с ФИО (string)
    т.е. первым параметром передаётся строка, а $WorkflowInstance.Initiator - это объект, так не должно работать.

    По остальным параметрам описание кривое:
    [1]: Падеж (1 = Именительный, 2 = Родительный и т.д.) (int) - параметр обязательный, и значение передаётся не как int, a как string (в кавычках)
    [2]: Формат отображения ФИО. (string) - параметр обязательный, без него не работает.

    Пример, в базе знаний тоже нерабочий. Тестил на наименовании экземпляра процесса:
    Заказ {ФОРМАТ_ФИО({$Instance.Initiator.FullName}; '2'; 'фамилия имя отчество')}

    Может, Вы что-то не то делаете? В CE, судя по описанию, недоступно создание типов документов и их шаблонов.
    У меня коммерческая версия, но на тесте есть CE - в этой версии доступны 2 типа документа и у них нельзя добавить шаблоны.
     
  10. Pawn182

    Pawn182 New Member

    В plug ins есть элемент "Генерация документа"
    Его переношу на бизнесс процесс. Элемент генерирует файл из шаблона.
    Переменные работают, а функции нет.
    В документации не сказано, что эти функции только для коммерческой версии.
     
  11. Pawn182

    Pawn182 New Member

    Id_doc узнаю так: в документах навожу мышкой на текущую версию файла, получается, например, http://127.0.0.1:8000/Documents/DocumentVersion/Download/4
    Беру id_doc как 4. Но в переменную ничего не записывается, не знаю что не так (
    Может id_doc неправильно указываю?
     
  12. arkarimov

    arkarimov Member

    id_doc точно неверно указываете - вы указываете ссылку на версию, ссылка на документ откуда и номер можно узнать берется так:
    http://сервер/Documents/Document/View/1
    вот 1 это Id документа.
    Про то что в переменную ничего не записывается странно, а как вы понимаете что сценарий отработал тогда?
     
  13. arkarimov

    arkarimov Member

    id_doc точно неверно указываете - вы указываете ссылку на версию, ссылка на документ откуда и номер можно узнать берется так:
    http://сервер/Documents/Document/View/1
    вот 1 это Id документа.
    Про то что в переменную ничего не записывается странно, а как вы понимаете что сценарий отработал тогда?
     
  14. Pawn182

    Pawn182 New Member

    Со скриптом разобрался, спасибо, забыл права на документ выставить и id поправил.
    Но функции в шаблоне так и не работают, а переменные работают прекрасно.
     
  15. Riket Contraption

    Riket Contraption New Member

    Можно попробовать просклонять ФИО в сценарии до генерации документа и сохранить результат в отдельную контекстную переменную, а потом уже подставлять из неё значение.

    Вот пример склонения с использованием стороннего сервиса: https://www.elma-bpm.ru/kb/article-918.html
     
  16. Pawn182

    Pawn182 New Member

    Внешний сервис к сожалению не подходит.
     

Поделиться: