Формулировка проблемы: необходимо реализовать 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": "идентификатор записи адресной книги"
}
]
}