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 – наименование организации-отправителя (наименование участника ГАС).
  • Далее необходимо в составе параметра «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.

Последнее изменение: Wednesday, 26 June 2024, 13:59