6.7 Вставка событий регистрации и ограничения доступа в XML
Через запрос к API «Портала ГосЭДО» можно добавить в цифровой документ XML события делопроизводства, связанные с официальной регистрацией или ограничением доступа по документам ДСП с помощью команды insertEventToDigitalXml.
Команда: insertEventToDigitalXml
Действие:
Вставляет в цифровой документ XML события делопроизводства, связанные с официальной регистрацией цифровых документов или ограничением доступа по документам ДСП.
Параметры:
- xml (файл) – цифровой документ в формате XML;
- params (строка JSON):
- evName – название события в одинарных кавычках (например: 'НаправлениеИсходящего', 'ОграничениеДоступа').
Возможные значения:- 'НаправлениеИсходящего' (добавляет в документ XML блок структурированных данных с информацией о регистрации исходящего документа, событие следует выполнять после регистрации исходящего документа в СЭД перед его отправкой);
- 'РегистрацияВходящего' (если передано это событие, функция возвращает XML-файл уведомления о регистрации входящего документа, событие может быть выполнено после регистрации входящего цифрового документа в СЭД);
- 'ОграничениеДоступа' (установка ограничительной пометки ДСП, событие должно быть добавлено в XML в случае, если на документ наложена пометка ДСП);
- 'СнятиеПометкиСЭкземпляра' (снятие ограничительной пометки ДСП, событие должно быть выполнено при снятии с цифрового документа пометки ДСП);
- 'СозданиеКопииЭкземпляра' (создание копии экземпляра документа ДСП, событие должно быть добавлено в XML при создании копии цифрового документа с пометкой ДСП).
- evUuid – GUID, сгенерированный для этого события (GUID события);
- evDate – дата и время события, например '2024-06-05T12:02:49+03:00';
- evAgentUuid – GUID организации-отправителя согласно ГАС;
- evAgentName – наименование организации-отправителя (наименование участника ГАС).
- evName – название события в одинарных кавычках (например: 'НаправлениеИсходящего', 'ОграничениеДоступа').
- Далее необходимо в составе параметра «params» передать дополнительные параметры, которые зависят от события. Фиксированные значения также должны быть заключены в одинарные кавычки, так как они передаются в метод select. Разрешается указывать выражения xpath, в таком случае используется синтаксис xpath и одинарные кавычки не нужны.
Дополнительные параметры в зависимости от вида события (evName): - для события 'НаправлениеИсходящего':
- evRegDate – дата регистрации (например '2023-06-05');
- evRegNumber – номер регистрации (например '65');
- evDocKindId — код вида документа согласно справочнику НСИ Cat02-002-00001 «Виды документов МЭДО» (например 'DK00000000');
- evDocKindName — наименование вида документа согласно справочнику НСИ Cat02-002-00001 «Виды документов МЭДО» (например 'Другие виды документов');
- evDocPlaceId — код места составления документа согласно справочнику НСИ Cat02-002-00002 «Места составления документов» (например 'DP00000099');
- evDocPlaceName — наименование места составления документа согласно справочнику НСИ Cat02-002-00002 «Места составления документов» (например 'Иные территории');
- evDocClassId — код грифа ограничения доступа согласно справочнику НСИ Cat02-002-00003 «Грифы ограничения доступа» (например 'DC00000000');
- evDocClassName - наименование грифа ограничения доступа согласно справочнику НСИ Cat02-002-00003 «Грифы ограничения доступа» (например 'Обычная информация');
- для события 'РегистрацияВходящего':
- evRegDate – дата регистрации;
- evRegNumber – номер регистрации;
- для события 'ОграничениеДоступа':
- evUserName – ФИО делопроизводителя (пользователя), установившего ограничительную пометку ДСП;
- evUserId – идентификатор делопроизводителя (пользователя), установившего ограничительную пометку ДСП;
- evInstId – уникальный номер экземпляра документа ДСП по формату ГосЭДО;
- для события 'СнятиеПометкиСЭкземпляра':
- evEnclUuid – GUID цифрового документа «Акт о раскрытии документа ДСП» (ДокументУУИД);
- evEnclHash – хэш цифрового документа «Акт о раскрытии документа ДСП»;
- для события 'СозданиеКопииЭкземпляра':
- evCopyId – уникальный номер копии, добавляемый к номеру экземпляра, согласно формату ГосЭДО.
Возвращаемый результат:
Для событий: 'НаправлениеИсходящего', 'ОграничениеДоступа', 'СнятиеПометкиСЭкземпляра', 'СозданиеКопииЭкземпляра' - возвращает входной файл цифрового документа в формате XML (digital.xml), дополненный структурированными данными о переданном событии.
Для события 'РегистрацияВходящего' - возвращает файл XML уведомления о регистрации.
Пример реализации в JavaScript:
<!------------ REST API Портала ГосЭДО: сервисы для цифровых документов-->
<!------------ Для вызова используется REST API http(s)://server-url/#/SERVICE-->
<script>
async function fetchAdapterService(endpoint, myAction, myParams, saveAsFile = 'NONE') {
let address = document.querySelector('#address');
RESTAPIURL = 'http://10.77.142.21:84/' + endpoint;
myParams['action'] = myAction;
if (myParams['xml']) {
var formData = new FormData();
Object.entries(myParams).forEach(function([key, value]) {
formData.append(key, value);
});
var REQUEST = {
method: 'POST',
body: formData,
}
} else {
var REQUEST = {
method: 'POST',
body: JSON.stringify(myParams),
headers: {'Content-Type': 'application/json'},
}
}
const response = await fetch(RESTAPIURL, REQUEST)
.catch((error) = >{});
const fileName = ((saveAsFile == 'NONE') ? 'response.json': saveAsFile);
if (response.status == 200) {
let file = await response.blob();
let link = document.createElement("a");
link.href = window.URL.createObjectURL(file);
link.download = fileName;
link.click();
}
}
</script>
<!----- REST API Портала ГосЭДО: вставка события регистрации -->
<script>
// функция, которая выполняется при нажатии кнопки «Вставить событие (в файл)»
async function insertDocument() {
myParams = {
xml: document.querySelector('#file').files[0],
params: JSON.stringify({
evName: 'НаправлениеИсходящего',
evUuid: '19d4e3ea-7f86-4d15-9319-8cb09669d77e',
evDate: '2024-06-05T12:02:49+03:00',
evAgentUuid: '1d04ca3e-df1a-0cb4-c325-6ef4003ca2ab',
evAgentName: 'Минцифры России',
evRegDate: '2024-06-05',
evRegNumber: '12',
evDocKindId: 'DK00000000',
evDocKindName: 'Другие виды документов',
evDocPlaceId: 'DP00000099',
evDocPlaceName: 'Иные территории',
evDocClassId: 'DC00000000',
evDocClassName: 'Обычная информация',
}),
}
fetchAdapterService('/api/service', 'insertEventToDigitalXml', myParams, 'registered.xml');
}
</script>
<!--поле выбора файла digital.xml-->
<input id="file" type="file">
<!-- кнопка для инициации вставки события регистрации в файл digtal.xml-->
<button class="header2" onclick="insertDocument()">Вставить событие (в файл)</button>
С выполнением демонстрационного примера по описанной функции можно ознакомиться в разделе 4.10 Демонстрация вставки события регистрации в файл XML.