Помощник рендеринга
Держите чистую логику в своем собственном файле, так что легко отсоединить тест. Это преобразует запись в токены{{dot.path}} и подставляет их.
Обработчик
Обработчик используетCoreApiClient
для чтения и записи данных CRM. Он загружает шаблон, загружает целевую запись, заполняет
тело и создает document.
loadRecordValues запускает другой запрос для персона против компании и flattens
результат — см.
load-record-values.ts.
Расскажите об этом как инструменте и действии рабочего процесса
Один “defineLogicFunction” может иметь несколько триггеров. ЗдесьtoolTriggerSettings
делает его вызываемым агентами ИИ, а workflowActionTriggerSettings превращает его в
шаг в визуальном конструкторе рабочих процессов. Оба описывают свои входные данные схемой JSON.
templateId и recordId —
см. generate-document-input.schema.ts.
Предоставить доступ
Логические функции выполняются под ролью приложения. Ему нужно читать шаблоны и записи и создавать документы, поэтому разрешите это вsrc/roles/default-role.ts:
UPLOAD_FILE позволяет функции загрузить сгенерированный PDF в следующем разделе.
Смотрите Roles для получения более четких разрешений.
Прикрепить настоящий PDF-файл
Поля отображаемого текста полезны, но пользователи хотят иметь настоящий документ. Давайте сгенерируем PDF и храним его в записи в качестве загружаемого файла. Сначала поставьте объектdocument поле FILES для удержания PDF. Приложения загружают файлы
в собственные файловые поля, поэтому это поле определяет маршрут загрузки:
generate-document-pdf.ts.
Он анализирует Markdown в токены с marked. exer, затем расположите их с помощью
pdf-lib: настоящие заголовки, черный/курсив пробег, пуля и нумерованные списки,
blockquotes and rules — отполированный, многостраничный A4 рендеринг самого шаблона
вместо стенки текста.

Сгенерированный PDF: реальная типография и форматирование разметки, отрисовка тела шаблона.
Встроенные шрифты pdf-lib используют кодировку WinAnsi, поэтому западноевропейские символы с диакритикой отображаются
“из коробки”; вспомогательная функция отображает типографские кавычки и тире и отбрасывает символы, которые она
не может закодировать. Отображение нелатинских скриптов (китайский, арабский, кириллица) означало бы
встраивание шрифта Unicode.
uploadFile маршруты байт
в поле файлы, принадлежащее приложению; возвращается id, что вы сохраните:

Сгенерированный PDF, хранится в поле File документа.
uploadFile только цели app-owned полей файлов (поэтому для загрузки всегда требуется
приложение, которое владеет полем и флаг роли UPLOAD_FILE). Поэтому PDF
опирается на собственное поле file (file) — тот же шаблон, что и
call-recorder app
используется для записей.Далее: HTTP-маршруты →
Сервис функции по HTTP и рендеринг документов как веб-страниц.