Формулировка проблемы: в процессе внутренней корреспонденции необходимо зарегистрированный исходящий документ одного филиала, копировать и отправлять на регистрацию во входящий журнал другого филиала. Для этого используется интерпретатор, который создает запись в реестре входящих документов, копируя содержимое исходящего документа. Однако нет возможности добавить информацию в РКК входящего документа, например краткое содержание и номер исходящего.
Связанные задачи:
0504
Решение: необходимо реализовать новый API метод, который создает новый документ по реестру с возможностью вводить значения полей РКК. Перечень полей РКК должен быть в соответствии с типом документа реестра.
URL метода: rest/api/registry/create_doc_rcc
Тип запроса: POST
Метод принимает следующие входные параметры (json):
registryID - uuid реестра;
registryCode - uuid реестра;
Обязательно должен быть передан хотя бы один параметр: либо
registryID, либо registryCode.
Если переданы оба, то используется registryCode.
locale (не обяз.) - код локали (при
отсутствии параметра используется
язык
системы по умолчанию);
rcc - объект (необяз.), состоящий из
следующих полей:
subject - краткое содержание документа;
number - редактируемая часть номера
документа, используется если у номера присутствует
редактируемая часть;
doc_type - код типа документа;
reg_date - дата регистрации, в формате
YYYY-MM-DD;
duration - длительность, используется
если для типа документа выбран способ ввода срока
"Длительность". Принимает только целые
положительные числа (кроме 0);
finish_date - дата завершения,
используется если для типа документа выбран способ ввода
срока "Дата завершения". В формате
YYYY-MM-DD;
correspondent_org -
корреспондент-организация;
correspondent - корреспондент;
control - принимает следующие значения:
true - является контрольным;
false - не является контрольным;
base_number - номер исходящего документа;
base_date - дата исходящего документа, в
формате YYYY-MM-DD;
doc_file - uuid дела;
base - массив, состоящий из uuid
документа;
user - uuid пользователя.
Метод создает документ по реестру с учетом прав пользователя, который вызывает API метод, на реестр.
Примечание.
Данный метод позволяет создавать документ по реестру с типом документа входящего журнала.
Если для параметров объекта rcc, кроме
subject, doc_type,
duration, finish_date, введены
некорректные (несуществующие) данные, то данные значение не
присваиваются соответствующим полям РКК, и поля остаются пустые.
В случае успешного выполнения возвращается объект JSON с полями:
errorCode - код выполнения (0 - успешно)
documentID - uuid созданного документа
dataID - uuid созданных данных по форме
asfNodeID - uuid файла по форме в хранилище
rcc - массив объектов со следующими полями:
number - порядковый номер поля,
отсутствует для поля user
name - название поля, одно из следующих
вариантов:
subject - краткое содержание
doc_type - тип документа
number - номер
reg_date - дата регистрации
duration - длительность
finish_date - дата завершения
correspondent_org - корреспондент
(орг)
correspondent - корреспондент
author - автор
reg_user - зарегистрировал
control - является контрольным
base_number - номер исх.
base_date - дата исх.
doc_file - дело
base - основание
user - исполнитель
value - значение данного поля.
В данном массиве объектов возвращаются только те поля, которые
отмечены для отображения в карточке документов, а также имеют
непустое значение value. Если поле отмечено
для отображения в карточке документа, но у него отсутствует
значение value или оно пустое, то данный
объект не возвращается.
В случае неуспешного выполнения возвращается соответствующая ошибка HTTP в виде JSON объекта со следующими полями:
errorCode - код выполнения (число, отличное
от 0)
errorMessage - сообщение об ошибке.
Пример передаваемого запроса:
{
"registryID" : "f30f6b31-4cbe-11e6-8030-001ef892a4ee",
"rcc" :
{
"subject" : "Новый документ",
"number" : "122cp",
"doc_type" : "internal",
"reg_date" : "2016-08-07",
"duration" : 5,
"correspondent_org" : "ТОО Астана",
"correspondent" : "Акбердиева",
"control" : true,
"base_number" : "152-552",
"base_date" : "2016-08-02",
"doc_file" : "fd96dff0-4e37-11e6-8030-001ef892a4ee",
"base" :
[
"v12dsdff0-4e37-11e6-8030-001ef892a4ee",
"1d5gsdff0-4e37-11e6-8030-001ef892a4ee"
],
"user" : "ea989670-4e44-11e6-8030-001ef892a4ee"
}
}
Пример возвращаемого объекта JSON:
{
"errorCode" : 0,
"documentID" : "66df2270-4cc0-11e6-8030-001ef892a4ee",
"dataID" : "a14a9ad0-585e-11e6-9e86-5a14ad700067",
"asfNodeID" : "75d4e590-4cbf-11e6-8030-001ef892a4ee",
"rcc" :
[
{ "number" : 1,
"name" : "subject",
"value" : "Документ 1233"
},
{ "number" : 2,
"name" : "number",
"value" : "{outgoing}/{dd}-{MM}-{yy}"
},
{ "number" : 4,
"name" : "doc_type",
"value" : "outgoing"
},
{ "number" : 7,
"name" : "base",
"value" : "6dgdr6gad0-585e-11e6-9e86-5a14ad700067"
},
{ "number" : 7,
"name" : "base",
"value" : "kljfsd56fd-585e-11e6-9e86-5a14ad700067"
}
]
}
Альтернативные потоки событий
Альтернативный поток №0. Передано пустое тело запроса. Система возвращает ошибку HTTP 400 с сообщением:
{
"errorCode" : 3,
"errorMessage" : "Передано пустое тело запроса"
}
действие не выполняется.
Альтернативный поток №1. Не передан или передан
некорректный (несуществующий) параметр
registryID. Система возвращает ошибку
HTTP 400 с сообщением:
{
"errorCode" : 3,
"errorMessage" : "Не передан или передан некорректный параметр registryID"
}
действие не выполняется.
Альтернативный поток №2. У пользователя нет прав на создание записи документа по реестру. Система возвращает ошибку HTTP 403 с сообщением:
{
"errorCode" : 2,
"errorMessage" : "У вас нет прав на создание документов по данному реестру"
}
действие не выполняется.
Альтернативный поток №3. У пользователя нет доступа к указанному типу документов. Система возвращает ошибку HTTP 403 с сообщением:
{
"errorCode" : 2,
"errorMessage" : "У вас нет доступа к указанному типу документа"
}
действие не выполняется.
Альтернативный поток №4. У пользователя для указанного типа документов либо для присвоенного типа документа реестра нет доступа к указанному делу. Система возвращает ошибку HTTP 403 с сообщением:
{
"errorCode" : 2,
"errorMessage" : "У вас нет доступа к указанному делу"
}
действие не выполняется.
Альтернативный поток №5. Передан некорректный параметр
subject. Система возвращает ошибку
HTTP 400 с сообщением:
{
"errorCode" : 3,
"errorMessage" : "Передан некорректный параметр subject"
}
действие не выполняется.
Альтернативный поток №6. Передан некорректный параметр
doc_type. Система возвращает ошибку
HTTP 400 с сообщением:
{
"errorCode" : 3,
"errorMessage" : "Передан некорректный параметр doc_type"
}
действие не выполняется.
Альтернативный поток №5. Передан некорректный параметр
duration. Система возвращает ошибку
HTTP 400 с сообщением:
{
"errorCode" : 3,
"errorMessage" : "Передан некорректный параметр duration"
}
действие не выполняется.
Альтернативный поток №6. Передан некорректный параметр
finish_date. Система возвращает ошибку
HTTP 400 с сообщением:
{
"errorCode" : 3,
"errorMessage" : "Передан некорректный параметр finish_date"
}
действие не выполняется.