Функція save_digital_document()

1. Опис

JUEL-функція save_digital_document(byte[] content, String targetFileName): DocumentMetadata використовується для збереження документа в сервісі цифрових документів.

2. Параметри

Таблиця 1. Параметри функції

Аргумент

Опис

content

Байтовий масив, що представляє вміст документа, який потрібно зберегти.

targetFileName

Назва файлу, під яким буде збережено документ.

3. Що повертає

Ця функція повертає об’єкт типу DocumentMetadata, що містить метадані новозбереженого документа.

Службовий API сервісу цифрових документів
POST /internal-api/documents/{processInstanceId} (multipart file + filename) : DocumentMetadata

class DocumentMetadata {
  String id
  String name
  String type
  String checksum
  Long size
}
Таблиця 2. DocumentMetadata

Поле

Тип

Опис

id

UUID

Унікальний ідентифікатор цифрового документа, сформований з використанням генератора псевдовипадкових чисел.

name

Текстовий

Оригінальна назва файлу.

type

Текстовий

Тип контенту файлу (application/pdf, image/png, image/jpeg, etc.)

checksum

Текстовий

Автоматично згенерований геш, що накладається на контент файлу з використанням алгоритму SHA256.

size

Числовий

Розмір файлу.

Приклад тіла відповіді
{
  "id": "{UUID}",
  "name": "{fileName}",
  "type": "{contentType}",
  "checksum": "{sha256}",
  "size": 0
}

4. Алгоритм роботи та обмеження

Функція працює за таким алгоритмом:

  1. Функція save_digital_document() приймає вміст файлу як байтовий масив та ім’я файлу.

  2. Система визначає тип файлу та передає його Сервісу цифрових документів (digital-document-service).

  3. Сервіс зберігає файл у зашифрованому вигляді до Об’єктного сховища проміжних даних БП (lowcode-file-storage) та у відповідь отримує метадані, зокрема id, name, type, checksum та size документа, які передаються до бізнес-процесу.

Ці метадані можна використати у бізнес-процесі для подальшого оброблення та збереження документа.

Максимальний розмір файлу:

Максимальний розмір файлу (max-remote-file-size), який може обробити Сервіс цифрових документів, дорівнює 100 MB. У разі, якщо digitalDocuments.maxFileSize не вказано явним чином, приймається значення у 100 MB як системне обмеження.

Формати файлів, що підтримуються:

При використанні функцій save_digital_document() та save_digital_document_from_url(), система автоматично проводить процедуру валідації файлів, що завантажуються через UI-форми Кабінетів користувачами. Валідація полягає в перевірці файлів на відповідність певним обмеженням, зокрема щодо допустимих типів файлів:

  • "application/pdf": "pdf"

  • "image/png": "png"

  • "image/jpeg": "jpg", "jpeg"

  • "text/csv": "csv"

  • "application/octet-stream": "asics"

  • "application/pkcs7-signature": "p7s"

5. Методи взаємодії

Ця функція не надає додаткових методів взаємодії.

6. Приклади використання

Цей розділ демонструє приклади використання JUEL-функції у Groovy-скриптах бізнес-процесу.

Застосування функції save_digital_document() детально представлено у референтному прикладі на сторінці Завантаження файлу та його редагування.