6.9 Получение информации о состоянии цифрового процесса

Через запрос к API «Портала ГосЭДО» можно запросить актуальное состояние координации по цифровому процессу с помощью команды getProcessInfo.

Команда: getProcessInfo

Действие:

Возвращает актуальное состояние координации по процессу.

Параметры:

  • process_guid (строка) – уникальный идентификатор цифрового процесса (ПроцессУУИД).
  • session_id (строка от 16 символов, опционально) – ID сессии (песочницы) в рамках которой организована изоляция данных.

Возвращаемый результат:

Возвращает данные в формате json, содержащие набор массивов со сведениями о процессе:

  • info ([массив]) - информация о процессе;
  • events ([массив]) - события в ходе процесса;
  • things ([массив]) - предметы контроля по процессу;
  • things_data ([массив]) - реквизиты предметов контроля;
  • things_statuses ([массив]) - состояния предметов контроля.

Пример реализации в JavaScript:

<!--- REST API Портала ГосЭДО: сервисы для цифровых документов -->
<!--- Для вызова используется REST API http(s)://server-url/#/SERVICE-->
<script>
    async function fetchAdapterService(myAction, myKey, myValue, saveAsFile, mySession = 'NONE') {
        // Пример адреса для обращения к сервисам, если Портал ГосЭДО доступен по IP 10.77.142.21:84
        RESTAPIURL = 'http://10.77.142.21:84/api/service';
        const formData = new FormData();
        formData.append('action', myAction);
        formData.append(myKey, myValue);

        if (mySession != 'NONE') formData.append('session_id', mySession);

        var object = {};
        formData.forEach(function(value, key) {
            object[key] = value;
        });

        const response = await fetch(RESTAPIURL, {
            method: 'POST',
            body: formData
        }).
        catch((error) = >{});

        if (response.status == 200) {
            //Присвоение в переменную file ответа
            let file = await response.blob();
            let link = document.createElement("a");
            link.href = window.URL.createObjectURL(file);
            link.download = saveAsFile;
            link.click();
        }
    }
</script>
<!--REST API Портала ГосЭДО: получение данных процесса-->
<script>
    // функция, которая выполняется при нажатии кнопки "Получить данные процесса"
    async function getProcessInfo() {
        myValue = '1a3340e4-207e-4f7d-95c1-4d7c02d9d7ad';
        //передача параметров в функцию fetchAdapterService:
        //Команда: getProcessInfo
        //Параметры: process_guid, session_id
        //Значение параметра: myValue = 'ПроцессУУИД' (уникальный идентификатор процесса)
        //сохранить результат как response.json
        fetchAdapterService('getProcessInfo', 'process_guid', myValue, 'response.json', document.querySelector('#sessionId').value);
    }
</script>
<!-- поле для ввода идентификатора сессии -->
<input id="sessionId" type="text" placeholder="session_id (от 15 знаков)"/>
<!-- кнопка инициации выполнения запроса-->
<button onclick="getProcessInfo()">Получить данные процесса</button>

С выполнением демонстрационного примера по описанной функции можно ознакомиться в разделе 4.9 Демонстрация получения информации о состоянии цифрового процесса.

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