Формулировка проблемы: нет возможности добавить во вложения документа файлы из другого документа.
Решение: необходимо реализовать следующий метод, который позволяет добавлять файлы вложений из одного документа в другой документ:
URL метода:
rest/api/docflow/doc/attachment/transfer
Тип запроса: POST
Метод принимает следующие параметры (json):
toDocId
- UUID документа, в который будут
отправлены файлы (обяз.)
path
- параметр, определяющий в какую папку
контейнера файлов документа необходимо положить файл. Возможные
значения:
ase:attachmentContainer
- папка
"Приложения"
ase:workContainer
- папка
"Прочие"
По умолчанию принимается значение
ase:attachmentContainer
.
fromDocId
- UUID документа, из которого будут
отправлены файлы (обяз.)
fileCollision
- параметр (необяз., по
умолчанию skip
), который определяет поведение
метода при совпадении названия файла или идентификатора файла (в
том числе файл с другим идентификатором, но одинаковым
названием, если передача файла производится по идентификатору).
Принимает следующие параметры:
overwrite
- файл полностью
перезаписывается
skip
- данный файл пропускается, то есть
не передается
version
- файл добавляется в качестве
новой версии файла.
files
- массив отправляемых файлов из
документа fromDocId
со следующими полями
(обяз.):
fileUUID
- идентификатор файла
fileName
- название файла с расширением
filePath
- папка, контейнера файлов
документа, в которой находится данный файл (необяз., по
умолчанию ase:attachmentContainer
).
Используется только вместе с параметром
fileName
. Может принимать следующие
значения:
ase:attachmentContainer
- папка
"Приложения"
ase:workContainer
- папка
"Прочие".
В элементе массива обязательно должен присутствовать либо
параметр fileUUID
, либо
fileName
.
Если в элементе массива введен fileUUID
, то
параметры fileName
,
filePath
игнорируются и передается файл с
указанным идентификатором. Если в элементе массива не введен
fileUUID
, то передается файл с указанным
названием.
Если в массиве один и тот же файл указан несколько раз, то передается он только один раз. Для следующих случаев:
два элемента массива содержат одинаковые
fileUUID
два элемента массива содержат одинаковые
fileName
и filePath
(одновременно)
один из элементов массива содержит
fileName
и filePath
файла, идентификатор которого соответствует одному из
fileUUID
, указанному в другом элементе
массива.
Метод возвращает json-объект с полями:
errorCode
- код выполнения:
0 - успешно
иначе - ошибка
errorMessage
- сообщение о результате
выполнения (успешном либо неуспешном).
Пример передаваемого запроса:
{ "toDocId" : "359e0450-5248-11e6-81e4-5a14ad700067", "path": "ase:workContainer", "fromDocId" : "96491790-4e33-11e6-a28a-5a14ad700067", "fileCollision" : "version", "files": [ { "fileUUID" : "0db3a170-4e38-11e6-8030-001ef892a4ee" }, { "fileUUID" : "f30f6b31-4cbe-11e6-8030-001ef892a4ee" }, { "fileUUID" : "831b5d10-4da5-11e6-812b-5a14ad700067", "fileName" : "test.pdf", "filePath" : "ase:workContainer" }, { "fileName" : "test.htd", "filePath" : "ase:workContainer`" }, { "fileName" : "file1.pdf" } ] }
Пример возвращаемого json-объекта при успешном выполнении метода:
{ "errorCode": 0, "errorMessage": "Файлы добавлены" }
Альтернативные потоки событий
Альтернативный поток №1. Не передан либо передан
некорректный (несуществующий) параметр
toDocID
. Сервер возвращает ошибку HTTP
400 с сообщением:
{ "errorCode" : 3, "errorMessage" : "Не передан либо передан некорректный параметр toDocID" }
действие не выполняется.
Альтернативный поток №2. Не передан либо передан
некорректный (несуществующий) параметр
fromDocID
. Сервер возвращает ошибку
HTTP 400 с сообщением:
{ "errorCode" : 3, "errorMessage" : "Не передан либо передан некорректный параметр fromDocID" }
действие не выполняется.
Альтернативный поток №3. Не передан или передан
некорректный (состоит из элементов, несуществующих в документе, из
которого передаются файлы, или не переданы обязательные параметры)
массив files
. Сервер возвращает ошибку
HTTP 400 с сообщением:
{ "errorCode" : 3, "errorMessage" : "Не передан либо передан некорректный массив files" }
действие не выполняется.
Если хотя бы один из элементов массива некорректный, возвращается данная ошибка и действие не выполняется.
Альтернативный поток №4. У пользователя нет прав на добавления файлов в папку "Приложения". Сервер возвращает ошибку HTTP 403 с сообщением:
{ "errorCode": 2, "errorMessage": "У вас отсутствуют права на добавления файлов" }
действие не выполняется.