ЭД Монитор 2: различия между версиями
Solodky (обсуждение | вклад) (→Общие принципы работы) |
Solodky (обсуждение | вклад) (→Получение статусов ДТ) |
||
(не показано 35 промежуточных версий 3 участников) | |||
Строка 55: | Строка 55: | ||
Появится главное окно ЭД Монитора 2. | Появится главное окно ЭД Монитора 2. | ||
+ | [[Файл:EdMon2WebGeneral.png]] | ||
− | + | Мониторы, которые находятся в разработке или являются недоступными для вашей лицензии, отображаются неактивными. | |
− | + | Кликнув по нужному монитору, можно в него зайти. | |
− | + | Например вот так выглядит '''Монитор руководителя'''. | |
− | + | [[Файл:EdMon2WebMonRuck.png]] | |
− | + | ==Описание API== | |
− | + | === Авторизация === | |
− | + | Для доступа к функциям ядра необходимо предварительно авторизоваться. Для стандартного монитора это происходит через окно авторизации. Но можно произвести авторизацию и вручную своим скриптом. Вот пример авторизации на javascript. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | var tmp = {}; | |
− | + | tmp['login'] = 'admin'; | |
− | + | tmp['pass'] = 'admin'; | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | $.ajax({ | |
+ | url: "http://localhost:80/auth.json", | ||
+ | dataType: "text", | ||
+ | data: $.toJSON(tmp), | ||
+ | type: "POST", | ||
+ | cache:false, | ||
+ | crossDomain: true, | ||
+ | xhrFields: {withCredentials: true}, | ||
+ | timeout:5000, | ||
+ | success: function(dtn, textStatus, jqXHR) { | ||
+ | data = JSON.parse(dtn); | ||
+ | if (data['message'] !== undefined) | ||
+ | alert(data['message']['title'] + '\n' + data['message']['text']); | ||
+ | }, | ||
+ | error: function(XMLHttpRequest, textStatus, errorThrown) { | ||
+ | alert('Ошибка.\n' + errorThrown); | ||
+ | }, | ||
+ | complete: function() { | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | Здесь в виде ajax запроса передается json структура с логином и паролем. После прихода ответа его надот проанализировать. Если в ответе есть поле 'message', то значит при авторизации происходит какая то ошибка. | ||
− | + | === Получение APIKEY и секретного слова === | |
+ | Для получения ключа и секретного слова, которые могут использоваться для доступа к API функциям монитора, необходимо зайти в настройки пользователей ЭД монитора. Там необходимо нажать кнопку '''Добавить''' (рядом с надписью "API ключ"). Появится API ключ и секретное слово. Необходимо их запомнить (записать), для дальнейшего использования. | ||
+ | API ключ и секретное слово отображаются только один раз до сохранения настроек. Если ключ и слово утеряны, то придется генерировать их заново. | ||
− | [[Файл: | + | [[Файл:Edmonapikey1.png]] [[Файл:Edmonapikey2.png]] |
+ | === Использование APIKEY и секретного слова для доступа к API функциям === | ||
+ | Используется двойное хэширование ключа и передаваемых параметров в URL строке. Ниже приведен пример формирования hash суммы параметров при отправке запроса request_gtd_status. | ||
− | ''' | + | $("#btget").on("click", function() { |
+ | var params = {}; | ||
+ | params['from'] = "15.11.2020"; | ||
+ | params['to'] = "20.11.2020"; | ||
+ | $.toJSON(params); | ||
+ | var apikey, salt; | ||
+ | apikey = 'C188E85AA4C770EC32FD1426'; | ||
+ | salt = 'FCCE90'; | ||
+ | var p; | ||
+ | p = 'apikey=' + apikey + '&a=3&b=5'; | ||
+ | var md5; | ||
+ | md5 = $.md5(p); | ||
+ | md5 = md5 + salt; | ||
+ | md5 = $.md5(md5); | ||
+ | p = p + '&hash=' + md5; | ||
+ | $.ajax({ | ||
+ | url: "request_gtd_status.json?" + p, | ||
+ | dataType: "json", | ||
+ | type: "POST", | ||
+ | data: $.toJSON(params), | ||
+ | cache:false, | ||
+ | success: function(data) { | ||
+ | alert(JSON.stringify(data)); | ||
+ | }, | ||
+ | error: function(XMLHttpRequest, textStatus, errorThrown) { | ||
+ | alert("Ошибка.\n" + errorThrown); | ||
+ | }, | ||
+ | complete: function() { | ||
+ | } | ||
+ | }); | ||
+ | }); | ||
− | + | === Получение статусов ДТ === | |
+ | POST | ||
− | + | URL: request_gtd_status.json?apikey=xxxxxx&hash=yyyyyy | |
− | + | DATA: json диапазон дат. | |
− | + | Пример | |
− | |||
− | + | var params = {}; | |
+ | params["from"] = "15.11.2020"; | ||
+ | params["to"] = "20.11.2020"; | ||
− | + | Ответ: json файл следующего содержания | |
− | + | Если успешно. | |
− | |||
− | + | { | |
+ | “server1”: { | ||
+ | “base1”: [ | ||
+ | { | ||
+ | guid: “xxxxxxx”, | ||
+ | num: “10005020/140709/0400001”, | ||
+ | regnum: “10005020/220708/0400120”, | ||
+ | regdate: “19.03.2021”, | ||
+ | “edstat”: 1024, | ||
+ | “msgstat”: “Выпуск разрешен” | ||
+ | }, | ||
+ | guid: “xxxxxxx”, | ||
+ | num: “10005020/140709/0400002”, | ||
+ | regnum: “10005020/220708/0400122”, | ||
+ | regdate: “19.02.2021”, | ||
+ | “edstat”: 5, | ||
+ | “msgstat”: “Идет проверка” | ||
+ | } | ||
+ | … | ||
+ | ], | ||
+ | “base2”:[ | ||
+ | … | ||
+ | ], | ||
+ | … | ||
+ | }, | ||
+ | “server2”: { | ||
+ | “base1”: [ | ||
+ | { | ||
+ | … | ||
+ | }, | ||
+ | … | ||
+ | } | ||
+ | … | ||
+ | ], | ||
+ | “base2”:[ | ||
+ | … | ||
+ | ], | ||
+ | … | ||
+ | }, | ||
+ | |||
+ | } | ||
− | + | server – имя SQL сервера, с которого получены данные | |
− | + | base – имя базы на SQL сервере, из которой получены данные | |
− | + | guid – GUID документа в базе. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | num – внутренний номер документа. | |
− | + | regnum – регистрационный номер | |
− | + | regdate – дата регистрации | |
− | + | edstat – статус, числом | |
− | + | msstat – статус, строкой (фраза) | |
− | [[Категория:ГТД Сервер]] | + | [[Категория:ГТД-Сервер]] |
+ | [[Категория:ЭД-2]] | ||
+ | [[Категория:Web-Сервисы]] | ||
+ | [[Категория:Автоматизация]] |
Текущая версия на 09:34, 27 марта 2024
Монитор Электронного Декларирования 2 (далее Монитор ЭД) - средство, входящее в состав ГТД сервера, которое позволяет получать информацию о статусе документов ГТД участвующих в процессе электронного декларирования. Это новая версия ЭД Монитора основанная на Web.
К ЭД монитору принадлежат следующие файлы
EdMon2GUI.exe - программа настройки ЭД монитор 2.
EdMon2GUI.log - log файл событий программы настройки ЭД монитор 2.
EdMon2GUI.elf - журнал критических ошибок программы настройки ЭД монитор 2.
edmonsrvc2.exe - служба-сервер ЭД монитор 2. В своем составе содержит HTTP сервер.
edmonsrvc2.log - log файл событий службы-сервер ЭД монитор 2.
edmonsrvc2.elf - журнал критических ошибок службы-сервер ЭД монитор 2.
EdMon2.ini - фиксированные настройки ЭД монитор 2.
webserv.vmonitor.dat - файл данных для службы-сервер
iniedmon2.json - файл пользовательских настроек
ВАЖНО! При возникновении проблем с работой программы требуется написать письмо в тех.поддержку Альта-Софт с кратким описанием проблемы (ошибки), указать версию программы ЭД монитор 2 и приложить к письму файлы edmonsrvc2.log, iniedmon2.json, edmonsrvc2.elf (если такой имеется).
Содержание
Основные сведения
ЭД Монитор 2 фактически состоит из двух модуле: программа первичной настройки (GUI) и службы-сервер, которая выступает посредником между браузером и данными MS SQL.
Типичное окно первичной настройки ЭД Монитор 2 изображено на следующем рисунке
Здесь можно:
- выбрать MS SQL сервера
- выбрать базы данных
- задать логин/пароль для доступа
- проверить связь с сервером
- задать порт для доступа из браузера к службе
- установить, удалить, запустить службу ЭД Монитора 2
- сохранить настройки
Общие принципы работы
После запуска службы доступ к монитору можно получить из любого Web браузера. Для перехода на страницу авторизации монитора, можно в программе первичной настройки нажать кнопку Открыть в браузере или открыть браузер и в строке адреса и ввести сервер:порт/vmonitor/.
Появится страница авторизации, на которой надо ввести логин пароль (по умолчанию admin|admin) и нажать Войти в кабинет.
Появится главное окно ЭД Монитора 2.
Мониторы, которые находятся в разработке или являются недоступными для вашей лицензии, отображаются неактивными.
Кликнув по нужному монитору, можно в него зайти.
Например вот так выглядит Монитор руководителя.
Описание API
Авторизация
Для доступа к функциям ядра необходимо предварительно авторизоваться. Для стандартного монитора это происходит через окно авторизации. Но можно произвести авторизацию и вручную своим скриптом. Вот пример авторизации на javascript.
var tmp = {}; tmp['login'] = 'admin'; tmp['pass'] = 'admin'; $.ajax({ url: "http://localhost:80/auth.json", dataType: "text", data: $.toJSON(tmp), type: "POST", cache:false, crossDomain: true, xhrFields: {withCredentials: true}, timeout:5000, success: function(dtn, textStatus, jqXHR) { data = JSON.parse(dtn); if (data['message'] !== undefined) alert(data['message']['title'] + '\n' + data['message']['text']); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert('Ошибка.\n' + errorThrown); }, complete: function() { } });
Здесь в виде ajax запроса передается json структура с логином и паролем. После прихода ответа его надот проанализировать. Если в ответе есть поле 'message', то значит при авторизации происходит какая то ошибка.
Получение APIKEY и секретного слова
Для получения ключа и секретного слова, которые могут использоваться для доступа к API функциям монитора, необходимо зайти в настройки пользователей ЭД монитора. Там необходимо нажать кнопку Добавить (рядом с надписью "API ключ"). Появится API ключ и секретное слово. Необходимо их запомнить (записать), для дальнейшего использования. API ключ и секретное слово отображаются только один раз до сохранения настроек. Если ключ и слово утеряны, то придется генерировать их заново.
Использование APIKEY и секретного слова для доступа к API функциям
Используется двойное хэширование ключа и передаваемых параметров в URL строке. Ниже приведен пример формирования hash суммы параметров при отправке запроса request_gtd_status.
$("#btget").on("click", function() { var params = {}; params['from'] = "15.11.2020"; params['to'] = "20.11.2020"; $.toJSON(params); var apikey, salt; apikey = 'C188E85AA4C770EC32FD1426'; salt = 'FCCE90'; var p; p = 'apikey=' + apikey + '&a=3&b=5'; var md5; md5 = $.md5(p); md5 = md5 + salt; md5 = $.md5(md5); p = p + '&hash=' + md5; $.ajax({ url: "request_gtd_status.json?" + p, dataType: "json", type: "POST", data: $.toJSON(params), cache:false, success: function(data) { alert(JSON.stringify(data)); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert("Ошибка.\n" + errorThrown); }, complete: function() { } }); });
Получение статусов ДТ
POST
URL: request_gtd_status.json?apikey=xxxxxx&hash=yyyyyy
DATA: json диапазон дат.
Пример
var params = {}; params["from"] = "15.11.2020"; params["to"] = "20.11.2020";
Ответ: json файл следующего содержания
Если успешно.
{ “server1”: { “base1”: [ { guid: “xxxxxxx”, num: “10005020/140709/0400001”, regnum: “10005020/220708/0400120”, regdate: “19.03.2021”, “edstat”: 1024, “msgstat”: “Выпуск разрешен” }, guid: “xxxxxxx”, num: “10005020/140709/0400002”, regnum: “10005020/220708/0400122”, regdate: “19.02.2021”, “edstat”: 5, “msgstat”: “Идет проверка” } … ], “base2”:[ … ], … }, “server2”: { “base1”: [ { … }, … } … ], “base2”:[ … ], … }, }
server – имя SQL сервера, с которого получены данные
base – имя базы на SQL сервере, из которой получены данные
guid – GUID документа в базе.
num – внутренний номер документа.
regnum – регистрационный номер
regdate – дата регистрации
edstat – статус, числом
msstat – статус, строкой (фраза)