Формулировка проблемы: необходимо реализовать API-метод, позволяющий получить РКК документа.
Решение:
URL метода: rest/api/docflow/doc/rcc
Тип запроса: GET
.
Метод принимает следующие параметры:
documentID
- UUID документа (обяз.);
locale
- локаль ru/en/kz
,
по умолчанию ru
(не обяз.);
В случае успешного выполнения возвращаемая json
в
самом общем виде имеет следующие поля:
(1) Для документов с типом журнала внутренний:
content
- краткое содержание в строковом
формате;
registerID
- UUID журнала, по которому был
выбран тип документа;
registerName
- название журнала, по которому
был выбран тип документа. Отобразить название в соответствии с
локалью в строковом формате;
number
- номер в строковом формате,
установленном для данного документа;
regDate
- отображается для зарегистрированных
документов в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС";
length
- отображается в числовом формате в
случае, если при настройке типа документа был использован способ
ввода срока "Длительность";
lengthType
- отображает тип длительности в
зависимости от установленной настройки "Способ расчета
срока" (отображается в случае отображения поля
length
) и принимает один из следующих
значений:
"WORKING_DAYS" - в рабочих днях;
"CALENDAR_DAYS" - в календарных днях;
finishDate
(если документ завершен) - дата
фактического завершения документа в формате
"ГГГГ-ММ-ДД" в случае, если при настройке типа
документа был использован способ ввода срока "Дата
завершения";
planFinishDate
(если документ не завершен) -
дата планируемого завершения документа в формате
"ГГГГ-ММ-ДД" в случае, если при настройке типа
документа был использован способ ввода срока "Дата
завершения";
authorID
- UUID автора документа;
authorName
- ФИО автора документа;
registeredByID
- UUID зарегестрировавшего
документ;
registeredByName
- ФИО зарегистрировавшего
документ;
controlled
- является ли контрольным
(true - да, false -
нет);
caseID
- UUID дела;
caseName
- название дела, в которое был
списан документ. Отобразить название в соответствии с локалью в
строковом формате;
bases
- массив, содержащий UUID оснований;
executorID
- UUID исполнителя;
executorName
- ФИО исполнителя.
(2) Для документов с типом журнала входящий:
content
- краткое содержание в строковом
формате;
registerID
- UUID журнала, по которому был
выбран тип документа;
registerName
- название журнала, по которому
был выбран тип документа. Отобразить название в соответствии с
локалью в строковом формате;
number
- номер в строковом формате,
установленном для данного документа;
regDate
- отображается для зарегистрированных
документов в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС";
length
- отображается в числовом формате в
случае, если при настройке типа документа был использован способ
ввода срока "Длительность";
lengthType
- отображает тип длительности в
зависимости от установленной настройки "Способ расчета
срока" и принимает один из следующих значений:
"WORKING_DAYS" - в рабочих днях;
"CALENDAR_DAYS" - в календарных днях;
finishDate
- отображается в формате
"ГГГГ-ММ-ДД" в случае, если при настройке типа
документа был использован способ ввода срока "Дата
завершения";
correspondentOrg
- название
корреспондента-организации в строковом формате;
correspondent
- название корреспондента в
строковом формате;
registeredByID
- UUID зарегестрировавшего
документ сотрудника;
registeredByName
- ФИО зарегистрировавшего
документ;
controlled
- является ли контрольным
(true - да, false -
нет);
numberOut
- номер исх. в строковом формате,
установленном для данного документа;
dateOut
- дата исх. в формате
"ГГГГ-ММ-ДД ЧЧ:ММ:СС";
caseID
- UUID дела;
caseName
- название дела, в которое был
списан документ. Отобразить название в соответствии с локалью в
строковом формате;
bases
- массив, содержащий UUID оснований;
executorID
- UUID исполнителя;
executorName
- ФИО исполнителя.
(3) Для документов с типом журнала исходящий:
content
- краткое содержание в строковом
формате;
registerID
- UUID журнала, по которому был
выбран тип документа;
registerName
- название журнала, по которому
был выбран тип документа. Отобразить название в соответствии с
локалью в строковом формате;
number
- номер в строковом формате,
установленном для данного документа;
regDate
- отображается для зарегистрированных
документов в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС";
correspondentOrg
- название
корреспондента-организации в строковом формате;
correspondent
- название корреспондента в
строковом формате;
authorID
- UUID автора;
authorName
- ФИО автора;
registeredByID
- UUID зарегистрировавшего
документ;
registeredByName
- ФИО зарегистрировавшего
документ;
controlled
- является ли контрольным
(true - да, false -
нет);
caseID
- UUID дела;
caseName
- название дела, в которое был
списан документ. Отобразить название в соответствии с локалью в
строковом формате;
bases
- массив, содержащий UUID оснований;
Также должны отображаться данные из формы "Дополнительной
карточки", в случае ее наличия, в поле data
.
Данное поле представляется в усеченном формате
json
:
"data": [ { "id": "cmp-numericinput", "type": "numericinput", "value": "20.00" }, { "id": "cmp-id", "type": "personlink", "label": "Label-text", "value": "идентификатор записи адресной книги" } ]
т.е. имеет формат
"data": [{"id":"field1_id", "type":"widgetType1", "value": "field1_value",}, ..., {"id":"fieldN_id", "type":"widgetType1", "value": "fieldN_value"}]
причем отдельные поля могут так же иметь параметр
label
. Типы и id
форм брать
отсюда.
Не отображать те компоненты, для которых формат данных не
передается.
В случае неуспешного выполнения возвращается json
с полями:
errorCode
- код выполнения (число, отличное
от 0);
errorMessage
- "Ошибка получения РКК
документа".
Альтернативные потоки событий:
Альтернативный поток №1. Параметр
documentID
не передан, либо он пустой. Сервер
возвращает ошибку:
Не передан параметр documentID
действие не осуществляется.
Альтернативный поток №2. Передан некорректный
(несуществующий) параметр documentID
. Сервер
возвращает ошибку:
Передан некорректный параметр documentID
действие не осуществляется.
Пример возвращаемого массива:
{ "content": "Future requests.", "registerID": "888cfa2e-6d55-4ed5-b1be-890ffad560dq", "registerName": "Исходящие документы", "number": "{obwii}-{dd}.{MM}.{yyyy}", "regDate": "", "correspondentOrg": "", "correspondent": "", "authorID": "179bda2e-6d55-4ed5-b1be-890ffad280ba", "authorName": "Aбдрешен Леонид Аркадьевич", "registeredByID": "", "authorName": "", "controlled": true, "caseID": "", "caseName": "", "bases": [], "data": [ { "id": "cmp-numericinput", "type": "numericinput", "value": "20.00" }, { "id": "cmp-id", "type": "personlink", "label": "Label-text", "value": "идентификатор записи адресной книги" } ] }