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