Формулировка проблемы: нет возможности добавить во вложения документа файлы из другого документа.
Решение: необходимо реализовать следующий метод, который позволяет добавлять файлы вложений из одного документа в другой документ:
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": "У вас отсутствуют права на добавления файлов"
}
действие не выполняется.