Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

SimpleOne поддерживает прикрепление файлов к созданным записям. 

Файлы можно прикрепить тремя способами:

  • с помощью действия вложения в правом верхнем углу
  • у поля типа Image
  • через виджет вложений

Действие вложения


Вы можете прикрепить файл к полю типа Image и к записи, используя действие вложения. Оно отображается на форме как иконка скрепки .

На скриншоте ниже отмечены два действия вложения на записи формы:

Виджет вложений


Вложения могут быть добавлены через виджет вложений. Для этого вам нужно использовать Simple-тег <attachment> внутри определенного экземпляра виджета. Необязательно указывать атрибуты recordId, tableName для тега <attachment>, расположенного на странице с формой. Поэтому шаблон виджета будет выглядеть следующим образом:

Code Block
<attachment> </attachment> 


Info

После добавления экземпляра виджета на форму агентского интерфейса стандартное действие в правом верхнем углу формы будет удалено:

Вы можете добавить файлы из буфера обмена в виджет прямо на форме с помощью сочетания клавиш Ctrl+V при наведении курсора на область загрузки файлов.


Добавление и управление вложениями


Вы можете прикрепить файлы следующими способами:

  • нажав на Выбрать файлы и добавив их через менеджер файл.
  • перетащив файлы в окно.
  • нажав клавиши Ctrl(Cmd) и на клавиатуре, чтобы вставить изображение из буфера обмена.
  • нажав на Добавить файл и выбрав их через менеджер файлов, если к записи уже были добавлены файлы.

Загрузка файлов


Чтобы прикрепить файл к записи, выполните следующие шаги:

  1. Перейдите в запись, к которой вам нужно прикрепить файл.
  2. Откройте окно вложений:
    • Нажмите на иконку скрепки в верхнем правом углу.
    • Нажмите на иконку скрепки рядом с названием поля.
  3. Прикрепите нужный файл. Вложенные файлы отображаются в верхней части формы или рядом с именем поля.
  4. Закройте окно вложений, чтобы вернуться к записи. 
  5. Нажмите Сохранить или Сохранить и выйти.


Info

При загрузке файла через иконку вложений в правом верхнем углу запись сохранять не нужно. Прикрепленные файлы сохраняются автоматически на сервере.

На скриншоте ниже показано окно вложений:

Копирование вложений


Для копирования вложений используйте серверные скрипты. Это можно сделать одним из двух методов:

  • Используйте объект base64 исходного вложения. В силу специфики работы метода readBase64, размер копируемого файла ограничен 10 Мб.

    Code Block
    languagejs
    themeEclipse
    titleПример
    linenumberstrue
    collapsetrue
    const attachmentRec = new SimpleRecord('sys_attachment');
    attachmentRec.get('167654133500015741');
    ss.info(`Original size bytes: ${attachmentRec.size_bytes}`);
    
    const importSource = new SimpleRecord('sys_import_source');
    importSource.get('167647710807446665'); // FromInfo: IncidentOriginal Import Source
    const docId = ss.getDocIdByIds(importSource.sys_db_table_id, importSource.sys_id);size bytes: 92414492
    
    const attach = new SimpleAttachment();
    const attachUrlbase64Value = attach.getAttachmentUrlByIdreadBase64(attachmentRec.sys_id);
    
    const simpleAttachattachCopyId = new SimpleAttachmentService();
    const docID = ss.getDocIdByIds(importSource.sys_db_table_id, importSource.sys_id);
    const attachCopyId = simpleAttach.createAttachmentByUrl(attachUrl, docId, `Copy_of_the_${attachmentRec.file_name}`);
    attach.writeBase64(
      attachmentRec.record_document_id,
      'copy_of_' + attachmentRec.file_name,
      base64Value,
      attachmentRec.mime_content_type
    );
    if (attachCopyId) {
      attachmentRec.get(attachCopyId);
      ss.info(`/record/sys_attachment/${attachCopyId}`);
      // Info: /record/sys_attachment/167654428100399185
      ss.info(`Copy size bytes: ${attachmentRec.size_bytes}`);
    }
    
    // Info: Original size bytes: 92414492
    // Info: /record/sys_attachment/167654472004676912
    // Info: Copy size bytes: 924144920
    }


  • Используйте класс SimpleAttachmentService. У этого метода те же ограничения, что и ограничения экземпляра на размер загружаемого вложения. Ограничение определяется системным свойством max_files_upload_count.

    Code Block
    languagejs
    themeEclipse
    titleПример
    linenumberstrue
    collapsetrue
    const attachmentRec = new SimpleRecord('sys_attachment');
    attachmentRec.get('167654133500015741');
    ss.info(`Original size bytes: ${attachmentRec.size_bytes}`);
    // Info: Original size bytes: 92414492
    
    const importSource = new SimpleRecord('sys_import_source');
    importSource.get('167647710807446665'); // From Incident Import Source
    const docId = ss.getDocIdByIds(importSource.sys_db_table_id, importSource.sys_id);
    
    const attach = new SimpleAttachment();
    const attachUrl = attach.getAttachmentUrlById(attachmentRec.sys_id);
    const simpleAttach = new SimpleAttachmentService();
    const docID = ss.getDocIdByIds(importSource.sys_db_table_id, importSource.sys_id);
    const attachCopyId = simpleAttach.createAttachmentByUrl(attachUrl, docId, `Copy_of_the_${attachmentRec.file_name}`);
    
    if (attachCopyId) {
      attachmentRec.get(attachCopyId);
      ss.info(`/record/sys_attachment/${attachCopyId}`);
      // Info: /record/sys_attachment/167654472004676912
      ss.info(`Copy size bytes: ${attachmentRec.size_bytes}`);
    }
    
    // Info: Original size bytes: 92414492
      // Info: /record/sys_attachment/167654472004676912
    // Info: Copy size bytes: 92414492
    }


Удаление вложений


Чтобы удалить прикрепленный файл, выполните следующие шаги:

  1. Перейдите в запись, у которой вам нужно удалить вложенный файл.
  2. Откройте окно вложений:
    • Нажмите на иконку скрепки в верхнем правом углу.
    • Нажмите на иконку скрепки рядом с названием поля.
  3. Удалите файл или файлы следующими способами:
    • Если прикреплен один файл, нажмите Удалить.
    • Если файлов несколько, наведите курсор на файл, который хотите удалить, нажмите на иконку с тремя точками и опцию Выбрать в контекстном меню. Повторите это действие для всех файлов. Затем нажмите Удалить.

    • Нажмите Выбрать все и Удалить, чтобы удалить все загруженные файлы.
  4. Закройте окно вложений, чтобы вернуться к записи. 
  5. Нажмите Сохранить или Сохранить и выйти.
Info

При удалении файлов через иконку вложений в правом верхнем углу запись сохранять не нужно. Прикрепленные файлы удаляются автоматически на сервере.


Распознавание и индексация


Распознавание и индексация содержимого вложений возможны только в том случае, если размер прикрепленного файла не превышает 30 Мб. Лимит фиксирован и не может быть изменен. Если файл больше 30 Мб, он не будет распознан. Предупреждающее сообщение, связанное с индексацией, будет записано в логах. Вы сможете найти дополнительную информацию позже в таблице Основной журнал (sys_log), используя следующие критерии для фильтра:

  • Уровень равно Предупреждение.
  • Сообщение содержит {ID вложения}

Индексация выполняется только для определенных форматов файлов. Поле Контент будет автоматически заполнено текстовым содержимым прикрепленного файла, если расширение файла входит в список: TXT, INI, REG, CVS, JSON, HTM, HTML, DOC, DOCS, XLS, XLSX. Атрибут Полнотекстовый поиск активен для поля Контент. Этот атрибут позволяет выполнять глобальный поиск по содержанию поля.


Note

Распознавание и индексация вложений – это фоновые процессы. В рамках этих процессов реализуются следующие события:

  1. Какой-то файл прикреплен к записи любой таблицы (например, к записи 164313550512027919 в таблице Task).
  2. После этого создается поисковый индекс для этого вложения. Технически, это запись в таблице Поисковые индексы (sys_search_index) с полями, заполненными следующим образом:

    ПолеТипЗначение
    Запись

    Big Integer

    164313646211541086

    Таблица

    Reference

    Вложения

    Колонка

    Reference

    Контент

    Текст

    Text

    В этом поле появляется контент вложения. 


  3. В записи таблицы Вложения (sys_attachment) помещается содержимое вложения, проанализированное из предоставленного файла. Содержимое вложения заполняется в поле Содержимое, а кодировка – в поле Кодировка. Кодировка содержимого определяется автоматически. 


Ссылка скачивания вложения


Записи вложений могут быть общедоступными или непубличными. Публичность вложений влияет на то, будет ли ссылка на вложение иметь срок действия.

  • Ссылки на общедоступные вложения не имеют срока действия. 
  • Непубличные вложения по умолчанию имеют срок в 1 час с момента их создания. Время жизни ссылки определяется системным свойством s3.presigned.link.lifetime.

Атрибут Публичное на форме записи Вложений определяет публичность вложений. 

Чтобы скачать вложения, войдите в систему и используйте относительную ссылку /attachments/${sys_attachment.sys_id}. Вы также можете воспользоваться методом getAttachmentUrlById(attachmentId), чтобы сформировать ссылку через API. Чтобы узнать больше, обратитесь к статье SimpleAttachments.


Info

В зависимости от публичности вложения, могут быть созданы две ссылки:

  • для непубличных вложений: https://s3-{your-instance-url}/attachment/9/b7/prp5bikeyg70mpn7mhfszi4amgzleo?response-content-disposition=inline%3B%20filename%3D%22image.png...
  • для публичных вложений: https://s3-{your-instance-url}/public-attachment/9/b7/prp5bikeyg70mpn7mhfszi4amgzleo?response-content-disposition=inline%3B%20filename%3D%22image.png...


Table of Contents
absoluteUrltrue
classfixedPosition
printablefalse