В этой статье представлены инструкции по настройке сценария для копирования записи, в которой имеется атрибут типа «Документ», вместе с файлами, прикреплёнными к этому атрибуту.
Сценарий для копирования файлов, прикреплённых к атрибуту типа «Изображение», настраивается аналогичным образом.
Streams
на сервере Comindware Business Application Platform.Необходимо настроить сценарий по нажатию кнопки на форме записи, который будет создавать дубликат текущей записи и прикреплять к ней дубликаты всех файлов, прикреплённых к исходной записи. Если к исходной записи не прикреплен ни один файл, то создавать её дубликат не требуется.
DocumentPacks
и следующими атрибутами:Название атрибута | Системное имя | Свойства |
---|---|---|
Наименование пакета документов | DocumentPackName |
Тип данных: текст |
Файлы документов | AttachedFiles |
Тип данных: документ Хранить несколько значений: флажок установлен |
Имя переменной | Значение |
---|---|
id |
Атрибут: ID |
Бизнес-логика
Это действие будет сохранять в переменную originalRecord.id
идентификатор исходной записи в шаблоне «Пакеты документов» для использования в последующих действиях.
# Импортируем функции для работы с данными текущего сеанса, переменными и записями
@prefix variable: <http://comindware.com/ontology/session/variable#>.@prefix session: <http://comindware.com/ontology/session#>.
@prefix object: <http://comindware.com/ontology/object#>.
{
#Находим атрибут «Файлы документов» в шаблоне «Пакеты документов»
#и помещаем ID атрибута в локальную переменную AttachedFilesAttribute("DocumentPacks" "AttachedFiles") object:findProperty ?AttachedFilesAttribute.
#Находим переменную originalRecord из предыдущего действия
#и помещаем её в локальную переменную originalRecordVariable
session:context variable:originalRecord ?originalRecordVariable.#Находим переменную originalRecord.id с ID исходной записи в шаблоне «Пакеты документов»
#и помещаем ID записи в локальную переменную docPackRecordId
?originalRecordVariable variable:id ?docPackRecordId.#Считываем значение атрибута «Файлы документов» в исходной записи
?docPackRecordId ?AttachedFilesAttribute ?.
#Возвращаем true, если к атрибуту «Файлы документов» прикреплён хотя бы один файл
true -> ?value.
}
Бизнес-логика
Это действие будет инициировать вложенные в него действия, если в текущей записи «Пакеты документов» к атрибуту «Файлы документов» (с системным именем AttachedFiles
) прикреплён хотя бы один файл.
Бизнес-логика
Это действие создаёт пустую запись в шаблоне «Пакеты документов», в которую последующие действия скопируют значения атрибутов «Наименование пакета документов» и «Файлы документов».
# Импортируем функции для работы с данными текущего сеанса, переменными и записями
@prefix variable: <http://comindware.com/ontology/session/variable#>.@prefix session: <http://comindware.com/ontology/session#>.
@prefix object: <http://comindware.com/ontology/object#>.
{
#Находим атрибут «Наименование пакета документов» в шаблоне «Пакеты документов»
#и помещаем ID атрибута в локальную переменную PackNameAttribute
("DocumentPacks" "DocumentPackName") object:findProperty ?PackNameAttribute.#Помещаем переменную originalRecord в локальную переменную originalRecordVariable
session:context variable:originalRecord ?originalRecordVariable.
#Помещаем ID исходной записи в шаблоне «Пакеты документов»
#в локальную переменную docPackRecordId?originalRecordVariable variable:id ?docPackRecordId.
#Возвращшаем значение атрибута «Наименование пакета документов» из исходной записи?docPackRecordId ?PackNameAttribute ?value.
}
Бизнес-логика
Это действие копирует значение атрибута «Наименование пакета документов» из исходной записи в новую.
# Импортируем функции для работы с данными текущего сеанса, переменными и записями
@prefix variable: <http://comindware.com/ontology/session/variable#>.@prefix session: <http://comindware.com/ontology/session#>.
@prefix object: <http://comindware.com/ontology/object#>.
{
#Находим атрибут «Файлы документов» в шаблоне «Пакеты документов»
#и помещаем ID атрибута в локальную переменную AttachedFilesAttribute("DocumentPacks" "AttachedFiles") object:findProperty ?AttachedFilesAttribute.
#Помещаем переменную originalRecord в локальную переменную originalRecordVariable
session:context variable:originalRecord ?originalRecordVariable.
#Помещаем ID исходной записи в шаблоне «Пакеты документов»
#в локальную переменную docPackRecordId
?originalRecordVariable variable:id ?docPackRecordId.
#Возвращшаем значение атрибута «Файлы документов» из исходной записи
?docPackRecordId ?AttachedFilesAttribute ?value.
}
Бизнес-логика
На каждой итерации цикла в переменную document
будет помещаться ссылка на запись в системном шаблоне документа с файлом, прикреплённым к атрибуту «Файлы документов» из исходной записи.
# Импортируем функции для работы с документами и данными текущего сеанса
@prefix document: <http://comindware.com/ontology/document#>.
@prefix variable: <http://comindware.com/ontology/session/variable#>.@prefix session: <http://comindware.com/ontology/session#>.
{
#Помещаем переменную document из действия «Повторять по количеству объектов»
#в локальную переменную doc
session:context variable:document ?doc.
#Помещаем ссылку на прикреплённый файл в локальную переменную revision
?doc document:currentRevision ?revision.
#Помещаем содержимое файла в формате Base64 в локальную переменную content
?revision document:content ?content.
#Помещаем имя файла в локальную переменную filename
?doc document:title ?filename.
#Собирем новый файл из имени и содержимого, сохраняем его в папку Streams,
#и возвращаем ID нового документа с прикреплённым файлом
(?content ?filename) document:attach ?value.}
Бизнес-логика
Это действие будет прикреплять к атрибуту «Файлы документов» в новой записи дубликат файла, прикреплённого к атрибуту «Файлы документов» из исходной записи.
Настроенный сценарий для дублирования записи вместе с прикреплёнными к ней файлами
Пути и содержимое папок экземпляра ПО
Кнопки. Определение, настройка, удаление
Настройка действий сценария
Номер Статьи: 2608
Размещено: Mon, May 13, 2024
Последнее обновление: Thu, Aug 1, 2024
Online URL: https://kb.comindware.ru/article/atribut-tipa-dokument-kopirovanie-zapisi-vmeste-s-prikreplennym-dokumentom-s-pomoshyu-scenariya-po-nazhatiyu-knopki-2608.html