Общий порядок загрузки данных — различия между версиями

Материал из ANT-Inform documentation
Перейти к: навигация, поиск
(Исправление проблем: Link fix only)
(Продублирована сноска ais.ws.dvisAbsent в блоке информации, иначе не читают, добавлено описание что не загружаются неактивные объекты также.)
Строка 1: Строка 1:
 
== Используемые технологии ==
 
== Используемые технологии ==
Передача данных из [[Перечень_сокращений_и_обозначений#АИС РГ|АИС РГ]] в [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]] осуществляется на базе Веб-сервиса, [[Инструкции по развертыванию|предоставляемого АИС РГ]].
+
Передача данных из [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]] в [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]] осуществляется на базе Веб-сервиса, [[Инструкции по развертыванию|предоставляемого АИС РГ]].
  
 
Для коммуникации используются:
 
Для коммуникации используются:
Строка 7: Строка 7:
 
* язык для описания интерфейсов взаимодействия компонент распределенной системы — [http://ru.wikipedia.org/wiki/WSDL Web Services Description Language (WDSL)].
 
* язык для описания интерфейсов взаимодействия компонент распределенной системы — [http://ru.wikipedia.org/wiki/WSDL Web Services Description Language (WDSL)].
  
Для описания методов, предоставляемых сервисом, и поддерживаемых протоколов используется файл в формате WSDL. Адаптер [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]] вызывает методы веб-сервиса, отправляет запросы и получает результат запросов. Настройка параметров взаимодействия проводится при развертывании и настройке [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]].
+
Для описания методов, предоставляемых сервисом, и поддерживаемых протоколов используется файл в формате WSDL. Адаптер [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]] вызывает методы веб-сервиса, отправляет запросы и получает результат запросов. Настройка параметров взаимодействия проводится при развертывании и настройке [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]].
  
 
== Общий порядок загрузки данных из АИС РГ ==
 
== Общий порядок загрузки данных из АИС РГ ==
  
Поскольку [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]] является диспетчерской системой, в первую очередь импортируются текущие объекты учета (справочники ГРС, ГРО, площадки, точки подключения, планы поставок). В терминах [[Перечень_сокращений_и_обозначений#АИС РГ|АИС РГ]] это означает, что в большинстве случаев данные забираются из регистров, где между объектами имеется связь, объекты не помечены на удаление, и берется СрезПоследних данных регистров.
+
Поскольку [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]] является диспетчерской системой, в первую очередь импортируются текущие объекты учета (справочники ГРС, ГРО, площадки, точки подключения, планы поставок). В терминах [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]] это означает, что в большинстве случаев данные забираются из регистров, где между объектами имеется связь, объекты не помечены на удаление, и берется СрезПоследних данных регистров.
  
История изменения состояний объектов [[Перечень_сокращений_и_обозначений#АИС РГ|АИС РГ]] в общем случае не является целью импорта в [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]], поэтому, если имеется реестр и возможность получить актуальные данные, будут импортироваться именно они (имеются признаки '''ЕстьСвязь''', '''Установлено''', '''Активно''' и тому подобные, в зависимости от контекста).
+
История изменения состояний объектов [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]] в общем случае не является целью импорта в [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]], поэтому, если имеется реестр и возможность получить актуальные данные, будут импортироваться именно они (имеются признаки '''ЕстьСвязь''', '''Установлено''', '''Активно''' и тому подобные, в зависимости от контекста).
  
В качестве идентификатора импортируемых данных используется [[Перечень_сокращений_и_обозначений#UID|UID]] ([[Перечень_сокращений_и_обозначений#UUID|UUID]], [[Перечень_сокращений_и_обозначений#GUID|GUID]]).
+
В качестве идентификатора импортируемых данных используется [[Перечень сокращений и обозначений#UID|UID]] ([[Перечень сокращений и обозначений#UUID|UUID]], [[Перечень сокращений и обозначений#GUID|GUID]]).
  
 
== Проблема некорректности загружаемых данных ==
 
== Проблема некорректности загружаемых данных ==
Строка 31: Строка 31:
 
{{ ambox | type = warning | text = Обратите пожалуйста внимание на слова "если он не найден на момент импорта". Импорт осуществляется последовательно, по одному типу объектов за операцию. Таким образом, ошибки могут быть каскадны! Например, если не загрузилась площадка из-за ошибки, также будет ошибка и в [[Перечень сокращений и обозначений#УУГ|УУГ]], который на неё будет ссылаться, и в [[Перечень сокращений и обозначений#Корректор (Вычислитель)|корректоре]], который сошлётся на данный [[Перечень сокращений и обозначений#УУГ|УУГ]] и т.д. }}
 
{{ ambox | type = warning | text = Обратите пожалуйста внимание на слова "если он не найден на момент импорта". Импорт осуществляется последовательно, по одному типу объектов за операцию. Таким образом, ошибки могут быть каскадны! Например, если не загрузилась площадка из-за ошибки, также будет ошибка и в [[Перечень сокращений и обозначений#УУГ|УУГ]], который на неё будет ссылаться, и в [[Перечень сокращений и обозначений#Корректор (Вычислитель)|корректоре]], который сошлётся на данный [[Перечень сокращений и обозначений#УУГ|УУГ]] и т.д. }}
  
Чаще всего измененные и сохраненные таким образом объекты частично или полностью теряют свой смысл. Продолжая пример выше, [[Перечень_сокращений_и_обозначений#УУГ|УУГ]] без площадки не принадлежит потребителю и не понятно кто будет платить за это газ.
+
Чаще всего измененные и сохраненные таким образом объекты частично или полностью теряют свой смысл. Продолжая пример выше, [[Перечень сокращений и обозначений#УУГ|УУГ]] без площадки не принадлежит потребителю и не понятно кто будет платить за это газ.
  
 
Имена объектов, которые сохранены не смотря на произошедшую ошибку, в обязательном порядке предваряются меткой в формате: '''"Error:Код: "''', где:
 
Имена объектов, которые сохранены не смотря на произошедшую ошибку, в обязательном порядке предваряются меткой в формате: '''"Error:Код: "''', где:
 
* '''Error''' - фиксированная часть, основное ее назначение - подсветить ошибки в интерфейсе ИУС-ГАЗ и предоставить удобный поиск некорректных данных с использованием фильтров.
 
* '''Error''' - фиксированная часть, основное ее назначение - подсветить ошибки в интерфейсе ИУС-ГАЗ и предоставить удобный поиск некорректных данных с использованием фильтров.
* '''Код''' - код ошибки по которому в разделе [[Налагаемые требования целостности, коды ошибок]] можно найти подробное описание проблемы и запрос поиска таких объектов в [[Перечень_сокращений_и_обозначений#АИС РГ|АИС РГ]]
+
* '''Код''' - код ошибки по которому в разделе [[Налагаемые требования целостности, коды ошибок]] можно найти подробное описание проблемы и запрос поиска таких объектов в [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]]
  
 
== Данные с некорректными датами ==
 
== Данные с некорректными датами ==
 
В общем случае корректными считаются даты после 1 января 1945 года ("1945-01-01")<ref>предполагается что в базе не может быть валидных объектов с датами ранее этой</ref>.
 
В общем случае корректными считаются даты после 1 января 1945 года ("1945-01-01")<ref>предполагается что в базе не может быть валидных объектов с датами ранее этой</ref>.
  
Особым случаем считается дата "0001-01-01" ("пустая" дата в терминах [[Перечень_сокращений_и_обозначений#АИС РГ|АИС РГ]]). "Пустые" даты пропускаются, если параметр не должен быть обязательно заполнен.
+
Особым случаем считается дата "0001-01-01" ("пустая" дата в терминах [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]]). "Пустые" даты пропускаются, если параметр не должен быть обязательно заполнен.
  
 
== Дубликаты ==
 
== Дубликаты ==
Дубликатом (дублем) считается именно дубликат загружаемого из [[Перечень_сокращений_и_обозначений#АИС РГ|АИС РГ]] мастер-объекта. При этом сверяются не названия и какие-то атрибуты объектов, а [[Перечень_сокращений_и_обозначений#UID|UID]] объектов или '''Ссылки''' в терминах [[Перечень_сокращений_и_обозначений#АИС РГ|АИС РГ]].
+
Дубликатом (дублем) считается именно дубликат загружаемого из [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]] мастер-объекта. При этом сверяются не названия и какие-то атрибуты объектов, а [[Перечень сокращений и обозначений#UID|UID]] объектов или '''Ссылки''' в терминах [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]].
  
Чаще всего дубли возникают, когда данные загружаются из реестров, по которым возможна множественная связь одних объектов с другими. Яркий пример - '''один и тот тот же''' корректор '''одновременно''' установленный на нескольких [[Перечень_сокращений_и_обозначений#УУГ|УУГ]].
+
Чаще всего дубли возникают, когда данные загружаются из реестров, по которым возможна множественная связь одних объектов с другими. Яркий пример - '''один и тот тот же''' корректор '''одновременно''' установленный на нескольких [[Перечень сокращений и обозначений#УУГ|УУГ]].
  
{{ ambox | image = [[File:Merge-arrows.svg|50px|link=|alt=]] | text = В данном примере суть обычно в следующем: Хотя [[Перечень_сокращений_и_обозначений#АИС РГ|АИС РГ]] и позволяет развесить [[Перечень_сокращений_и_обозначений#ИО|ИО]] на конкретные каналы вычислителя<ref>Весьма не удобным способом правда, около 8 кликов мышкой требуется, но тем не менее такая возможность имеется</ref>, однако развесить [[Перечень_сокращений_и_обозначений#ГПО|ГПО]] по каналам нету никакой технической возможности в принципе. Поэтому в случаях, когда нужно вести раздельный учёт по установленной мощности, многими компаниями применялись различные, но схожие по сути подходы: создавались '''фиктивные''' [[Перечень_сокращений_и_обозначений#Корректор (Вычислитель)|корректор (вычислитель)]] и/или [[Перечень_сокращений_и_обозначений#УУГ|УУГ]] }}
+
{{ ambox | image = [[File:Merge-arrows.svg|50px|link=|alt=]] | text = В данном примере суть обычно в следующем: Хотя [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]] и позволяет развесить [[Перечень сокращений и обозначений#ИО|ИО]] на конкретные каналы вычислителя<ref>Весьма не удобным способом правда, около 8 кликов мышкой требуется, но тем не менее такая возможность имеется</ref>, однако развесить [[Перечень сокращений и обозначений#ГПО|ГПО]] по каналам нету никакой технической возможности в принципе. Поэтому в случаях, когда нужно вести раздельный учёт по установленной мощности, многими компаниями применялись различные, но схожие по сути подходы: создавались '''фиктивные''' [[Перечень сокращений и обозначений#Корректор (Вычислитель)|корректор (вычислитель)]] и/или [[Перечень сокращений и обозначений#УУГ|УУГ]] }}
  
 
При импорте загружается только первый объект, имеющий дубли, остальные пропускаются. Причем под "первым" объектом в данном случае имеется ввиду именно первый объект по выгрузке, то есть условия сортировки в каждом конкретном случае определяются запросом, и первым не обязательно будет актуальный объект.
 
При импорте загружается только первый объект, имеющий дубли, остальные пропускаются. Причем под "первым" объектом в данном случае имеется ввиду именно первый объект по выгрузке, то есть условия сортировки в каждом конкретном случае определяются запросом, и первым не обязательно будет актуальный объект.
  
 
== Удалённые (помеченные удаленными) объекты ==
 
== Удалённые (помеченные удаленными) объекты ==
Объекты, помеченные на удаление в [[Перечень_сокращений_и_обозначений#АИС РГ|АИС РГ]], обрабатываются следующим образом:
+
Объекты, помеченные на удаление в [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]], обрабатываются следующим образом:
* Если таких объектов не было в [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]], то при первоначальном импорте они игнорируются.
+
* Если таких объектов не было в [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]], то при первоначальном импорте они игнорируются.
* Если приходит объект, который ранее уже был импортирован, и в данный момент он помечен на удаление, то объект помечается на удаление в [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]]. '''Все остальные изменения применяются также'''.
+
* Если приходит объект, который ранее уже был импортирован, и в данный момент он помечен на удаление, то объект помечается на удаление в [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]]. '''Все остальные изменения применяются также'''.
* Если объект был уже помечен на удаление в [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]] (согласно предыдущему пункту), а при очередном импорте он приходит не удаленным, то такой объект снова возвращается в [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]] (пометка удаления снимается).
+
* Если объект был уже помечен на удаление в [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]] (согласно предыдущему пункту), а при очередном импорте он приходит не удаленным, то такой объект снова возвращается в [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]] (пометка удаления снимается).
* Объекты, фактически удаленные в [[Перечень_сокращений_и_обозначений#АИС РГ|АИС РГ]] (а не помеченные на удаление) по умолчанию<ref>С версии [[история изменений|версии 17.0]] появилась возможность их скрывать. Но во избежание неожиданностей (данное поведение рассматривается как опасное) и для обратной совместимости требуется явное включение данного поведения для каждого типа объектов где это желательно. За это отвечает опция конфигурации [[ais.ws.dvisAbsent]]</ref> не трогаются вовсе. Они могут быть оставлены как есть, или удалены вручную. Рекомендуется, если объект в [[Перечень_сокращений_и_обозначений#АИС РГ|АИС РГ]] помечается на удаление, выполнить импорт таких объектов в [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]], чтобы в [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]] эти данные также пометились на удаление.
+
* Объекты, '''фактически удаленные''' в [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]] (а не помеченные на удаление), а также '''[[#Общий порядок загрузки данных из АИС РГ|переставшие быть активными]]''' (и значит просто не приходящие для обновления на текущий момент), по умолчанию<ref>С версии [[история изменений|версии 17.0]] появилась возможность их скрывать. Но во избежание неожиданностей (данное поведение рассматривается как опасное) и для обратной совместимости требуется явное включение данного поведения для каждого типа объектов где это желательно. За это отвечает опция конфигурации [[Конфигурирование адаптера на стороне ИМУС#ais.ws.dvisAbsent|ais.ws.dvisAbsent]]</ref> не трогаются вовсе. Они могут быть оставлены как есть, или удалены вручную. Рекомендуется, если объект в [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]] помечается на удаление, выполнить импорт таких объектов в [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]], чтобы в [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]] эти объекты также пометились на удаление.
 +
 
 +
{{ ambox | text = С версии [[история изменений|версии 17.0]] появилась возможность их скрывать. Но во избежание неожиданностей (данное поведение рассматривается как опасное) и для обратной совместимости требуется явное включение данного поведения для каждого типа объектов где это желательно. За это отвечает опция конфигурации [[Конфигурирование адаптера на стороне ИМУС#ais.ws.dvisAbsent|ais.ws.dvisAbsent]]. Для любого типа объектов это может быть включено по запросу. }}
  
 
Таким образом, доступна синхронизация удаления объектов двух систем.
 
Таким образом, доступна синхронизация удаления объектов двух систем.
  
Следует обратить внимание, что в большинстве [[Налагаемые требования целостности, коды ошибок|запросов]] удаленные объекты исключены для выверки. Однако если объект был импортирован в [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]], а затем удален, то объект будет учтён в запросе и будет появляться в отчетах об ошибках.
+
Следует обратить внимание, что в большинстве [[Налагаемые требования целостности, коды ошибок|запросов]] удаленные объекты исключены для выверки. Однако если объект был импортирован в [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]], а затем удален, то объект будет учтён в запросе и будет появляться в отчетах об ошибках.
  
 
== Связывание на общие справочники ==
 
== Связывание на общие справочники ==
В [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]] ведутся [[Перечень_сокращений_и_обозначений#НСИ|глобальные справочники некоторых объектов]] (трансгазов, региональных газовых компаний, групп отраслей, отраслей, субъектов РФ, моделей вычислителей и так далее).
+
В [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]] ведутся [[Перечень сокращений и обозначений#НСИ|глобальные справочники некоторых объектов]] (трансгазов, региональных газовых компаний, групп отраслей, отраслей, субъектов РФ, моделей вычислителей и так далее).
  
Для целей синхронизации с [[Перечень_сокращений_и_обозначений#АИС РГ|АИС РГ]] это означает, что данные из справочников Территории, Группы отраслей, Отрасли загружаются как [[Перечень_сокращений_и_обозначений#ПМ|Прототипы Метаданных]] и [[Перечень_сокращений_и_обозначений#Маппинг (связывание)|требуют связки]] на [[Перечень_сокращений_и_обозначений#НСИ|глобальные справочники]] [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]].
+
Для целей синхронизации с [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]] это означает, что данные из справочников Территории, Группы отраслей, Отрасли загружаются как [[Перечень сокращений и обозначений#ПМ|Прототипы Метаданных]] и [[Перечень сокращений и обозначений#Маппинг (связывание)|требуют связки]] на [[Перечень сокращений и обозначений#НСИ|глобальные справочники]] [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]].
  
До того как импортированные данные будут [[Перечень_сокращений_и_обозначений#Маппинг (связывание)|связаны]], во время загрузки ссылающихся на них объектов будут появляться ошибки.
+
До того как импортированные данные будут [[Перечень сокращений и обозначений#Маппинг (связывание)|связаны]], во время загрузки ссылающихся на них объектов будут появляться ошибки.
Ответственность за [[Перечень_сокращений_и_обозначений#Маппинг (связывание)|связывание]] [[Перечень_сокращений_и_обозначений#ПМ|ПМ]] возлагается на представителей [[Перечень_сокращений_и_обозначений#РГК|РГК]].
+
Ответственность за [[Перечень сокращений и обозначений#Маппинг (связывание)|связывание]] [[Перечень сокращений и обозначений#ПМ|ПМ]] возлагается на представителей [[Перечень сокращений и обозначений#РГК|РГК]].
  
 
== Исправление проблем ==
 
== Исправление проблем ==
Строка 76: Строка 78:
  
 
=== Проблемы на стороне АИС РГ ===
 
=== Проблемы на стороне АИС РГ ===
Большинство проблем должно быть исправлено на стороне [[Перечень_сокращений_и_обозначений#АИС РГ|АИС РГ]], затем такие данные должны быть импортированы в ИМУС [[#Перезапрос данных, команды внешних систем|снова]].
+
Большинство проблем должно быть исправлено на стороне [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]], затем такие данные должны быть импортированы в ИМУС [[#Перезапрос данных, команды внешних систем|снова]].
  
 
=== Проблемы на стороне ИУС-ГАЗ ===
 
=== Проблемы на стороне ИУС-ГАЗ ===
Также, имеется пласт ошибок, в основном имеющих суффикс в коде ошибки '''"_1"''' относящихся скорее к разности схем, и требующих вмешательство на стороне [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]]. Характерным примером является невозможность в ИМУС связать вместе [[Перечень_сокращений_и_обозначений#ТП|ТП]] и площадку, если у площадки нету [[Перечень_сокращений_и_обозначений#канал|канала]]. Таким образом, требуется наличие полного тракта Площадка -> [[Перечень_сокращений_и_обозначений#УУГ|УУГ]] -> [[Перечень_сокращений_и_обозначений#Корректор (Вычислитель)|корректор]] -> [[Перечень_сокращений_и_обозначений#канал|канал]]). Т.к. для [[Перечень_сокращений_и_обозначений#АИС РГ|АИС РГ]] чаще всего не желательно вести или [[#Генерация структуры вниз|генерировать структуру]] с такой детализацией, данные сущности могут быть [[#Генерация структуры вниз|сгенерированы]] в [[Перечень_сокращений_и_обозначений#ИУС-ГАЗ|ИУС-ГАЗ]].
+
Также, имеется пласт ошибок, в основном имеющих суффикс в коде ошибки '''"_1"''' относящихся скорее к разности схем, и требующих вмешательство на стороне [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]]. Характерным примером является невозможность в ИМУС связать вместе [[Перечень сокращений и обозначений#ТП|ТП]] и площадку, если у площадки нету [[Перечень сокращений и обозначений#канал|канала]]. Таким образом, требуется наличие полного тракта Площадка -> [[Перечень сокращений и обозначений#УУГ|УУГ]] -> [[Перечень сокращений и обозначений#Корректор (Вычислитель)|корректор]] -> [[Перечень сокращений и обозначений#канал|канал]]). Т.к. для [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]] чаще всего не желательно вести или [[#Генерация структуры вниз|генерировать структуру]] с такой детализацией, данные сущности могут быть [[#Генерация структуры вниз|сгенерированы]] в [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]].
  
 
=== Перезапрос данных, команды внешних систем ===
 
=== Перезапрос данных, команды внешних систем ===
Строка 121: Строка 123:
 
В случае, если в [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]] '''вообще не ведётся структура ниже площадок''', адаптер имеет команду [[Команды адаптера#GenerateConsumptionDown|автоматической генерации всей недостающей структуры]], которая может быть также настроена на автоматическое регулярное выполнение.
 
В случае, если в [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]] '''вообще не ведётся структура ниже площадок''', адаптер имеет команду [[Команды адаптера#GenerateConsumptionDown|автоматической генерации всей недостающей структуры]], которая может быть также настроена на автоматическое регулярное выполнение.
  
Ответственными за структуру и в том числе за генерацию недостающих элементов являются представители [[Перечень_сокращений_и_обозначений#РГК|РГК]].
+
Ответственными за структуру и в том числе за генерацию недостающих элементов являются представители [[Перечень сокращений и обозначений#РГК|РГК]].
  
 
{{ ambox | type = warning | text = В общем случае '''не стоит''' генерировать потомков для всех подряд! Если вы знаете что площадка телеметризирована и завтра-послезавтра для неё будет создан [[Перечень сокращений и обозначений#УУГ|УУГ]] в [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]] - лучше подождать. Иначе, когда импортируется реальный узел - появится смысловой дубль элемента, который придётся искать и удалять вручную<ref>Ранее это можно было сделать только вручную, а при массовых чистках по запросу к нам. С [[история изменений|версии 17.0]] реализован [[Конфигурирование адаптера на стороне ИМУС#ais_ws_replaceGenerated|режим замещения]], но пользоваться им также нужно с осторожностью (в общем случае не рекомендуется)</ref> }}
 
{{ ambox | type = warning | text = В общем случае '''не стоит''' генерировать потомков для всех подряд! Если вы знаете что площадка телеметризирована и завтра-послезавтра для неё будет создан [[Перечень сокращений и обозначений#УУГ|УУГ]] в [[Перечень сокращений и обозначений#АИС РГ|АИС РГ]] - лучше подождать. Иначе, когда импортируется реальный узел - появится смысловой дубль элемента, который придётся искать и удалять вручную<ref>Ранее это можно было сделать только вручную, а при массовых чистках по запросу к нам. С [[история изменений|версии 17.0]] реализован [[Конфигурирование адаптера на стороне ИМУС#ais_ws_replaceGenerated|режим замещения]], но пользоваться им также нужно с осторожностью (в общем случае не рекомендуется)</ref> }}

Версия 11:19, 4 июля 2013

Используемые технологии

Передача данных из АИС РГ в ИУС-ГАЗ осуществляется на базе Веб-сервиса, предоставляемого АИС РГ.

Для коммуникации используются:

  • коммуникационный интернет-протокол HTTP;
  • протокол для управления сообщениями в универсальном XML-формате — Simple Object Access Protocol (SOAP);
  • язык для описания интерфейсов взаимодействия компонент распределенной системы — Web Services Description Language (WDSL).

Для описания методов, предоставляемых сервисом, и поддерживаемых протоколов используется файл в формате WSDL. Адаптер ИУС-ГАЗ вызывает методы веб-сервиса, отправляет запросы и получает результат запросов. Настройка параметров взаимодействия проводится при развертывании и настройке ИУС-ГАЗ.

Общий порядок загрузки данных из АИС РГ

Поскольку ИУС-ГАЗ является диспетчерской системой, в первую очередь импортируются текущие объекты учета (справочники ГРС, ГРО, площадки, точки подключения, планы поставок). В терминах АИС РГ это означает, что в большинстве случаев данные забираются из регистров, где между объектами имеется связь, объекты не помечены на удаление, и берется СрезПоследних данных регистров.

История изменения состояний объектов АИС РГ в общем случае не является целью импорта в ИУС-ГАЗ, поэтому, если имеется реестр и возможность получить актуальные данные, будут импортироваться именно они (имеются признаки ЕстьСвязь, Установлено, Активно и тому подобные, в зависимости от контекста).

В качестве идентификатора импортируемых данных используется UID (UUID, GUID).

Проблема некорректности загружаемых данных

При загрузке данных из АИС РГ в ИУС-ГАЗ возникает множество проблем, связанных с некорректностью входных данных. Предпринимается попытка загрузить максимальное количество данных, включая объекты, содержащие некритические с точки зрения текущей бизнес-логики ошибки. Некорректные данные помечаются специальным образом и доступны в интерфейсе ИУС-ГАЗ для просмотра и отбора. Также доступно представление проблем, возникших при импорте данных, в виде отчёта.

Некорректными считаются данные, которые нарушают текущую логику учёта газа, согласно методологии МРГ. Прежде всего, речь идёт о нарушении ссылочной целостности и взаимосвязи объектов. Например, площадка, для которой нет потребителя, является некорректной, так как согласно логике учёта газа площадка без потребителя не может существовать.

Конкретные варианты некорректности данных (типы ошибок) для большинства загружаемых типов, а также указания по локализации проблем и способы их устранения описаны в отдельно.

Маркировка данных с ошибками

Использование отбора для поиска ошибок импорта

При получении некорректных данных в ИУС-ГАЗ предпринимается попытка сохранить объект в базе данных, для чего в него вносятся изменения. Например при не заполненности (или если он не найден на момент импорта) одного из атрибутов на который он ссылается, если возможно, предпринимается попытка подставить туда значение "Не определено". Например, при получении УУГ, в котором не заполнена площадка, предпринимается попытка сохранить его, подставив в поле площадки значение с id=0 ("Не определено"). В случаях, когда для таких замещений не предусмотрено значения "не определено", сохранение таких импортируемых объектов невозможно.

Чаще всего измененные и сохраненные таким образом объекты частично или полностью теряют свой смысл. Продолжая пример выше, УУГ без площадки не принадлежит потребителю и не понятно кто будет платить за это газ.

Имена объектов, которые сохранены не смотря на произошедшую ошибку, в обязательном порядке предваряются меткой в формате: "Error:Код: ", где:

  • Error - фиксированная часть, основное ее назначение - подсветить ошибки в интерфейсе ИУС-ГАЗ и предоставить удобный поиск некорректных данных с использованием фильтров.
  • Код - код ошибки по которому в разделе Налагаемые требования целостности, коды ошибок можно найти подробное описание проблемы и запрос поиска таких объектов в АИС РГ

Данные с некорректными датами

В общем случае корректными считаются даты после 1 января 1945 года ("1945-01-01")[1].

Особым случаем считается дата "0001-01-01" ("пустая" дата в терминах АИС РГ). "Пустые" даты пропускаются, если параметр не должен быть обязательно заполнен.

Дубликаты

Дубликатом (дублем) считается именно дубликат загружаемого из АИС РГ мастер-объекта. При этом сверяются не названия и какие-то атрибуты объектов, а UID объектов или Ссылки в терминах АИС РГ.

Чаще всего дубли возникают, когда данные загружаются из реестров, по которым возможна множественная связь одних объектов с другими. Яркий пример - один и тот тот же корректор одновременно установленный на нескольких УУГ.

При импорте загружается только первый объект, имеющий дубли, остальные пропускаются. Причем под "первым" объектом в данном случае имеется ввиду именно первый объект по выгрузке, то есть условия сортировки в каждом конкретном случае определяются запросом, и первым не обязательно будет актуальный объект.

Удалённые (помеченные удаленными) объекты

Объекты, помеченные на удаление в АИС РГ, обрабатываются следующим образом:

  • Если таких объектов не было в ИУС-ГАЗ, то при первоначальном импорте они игнорируются.
  • Если приходит объект, который ранее уже был импортирован, и в данный момент он помечен на удаление, то объект помечается на удаление в ИУС-ГАЗ. Все остальные изменения применяются также.
  • Если объект был уже помечен на удаление в ИУС-ГАЗ (согласно предыдущему пункту), а при очередном импорте он приходит не удаленным, то такой объект снова возвращается в ИУС-ГАЗ (пометка удаления снимается).
  • Объекты, фактически удаленные в АИС РГ (а не помеченные на удаление), а также переставшие быть активными (и значит просто не приходящие для обновления на текущий момент), по умолчанию[3] не трогаются вовсе. Они могут быть оставлены как есть, или удалены вручную. Рекомендуется, если объект в АИС РГ помечается на удаление, выполнить импорт таких объектов в ИУС-ГАЗ, чтобы в ИУС-ГАЗ эти объекты также пометились на удаление.

Таким образом, доступна синхронизация удаления объектов двух систем.

Следует обратить внимание, что в большинстве запросов удаленные объекты исключены для выверки. Однако если объект был импортирован в ИУС-ГАЗ, а затем удален, то объект будет учтён в запросе и будет появляться в отчетах об ошибках.

Связывание на общие справочники

В ИУС-ГАЗ ведутся глобальные справочники некоторых объектов (трансгазов, региональных газовых компаний, групп отраслей, отраслей, субъектов РФ, моделей вычислителей и так далее).

Для целей синхронизации с АИС РГ это означает, что данные из справочников Территории, Группы отраслей, Отрасли загружаются как Прототипы Метаданных и требуют связки на глобальные справочники ИУС-ГАЗ.

До того как импортированные данные будут связаны, во время загрузки ссылающихся на них объектов будут появляться ошибки. Ответственность за связывание ПМ возлагается на представителей РГК.

Исправление проблем

Ошибки в именах должны пропасть, а объекты связаться соответствующим образом.

Обратите пожалуйста на каскадную природу ошибок и очерёдность исправления проблем и перезагрузки элементов.

Проблемы на стороне АИС РГ

Большинство проблем должно быть исправлено на стороне АИС РГ, затем такие данные должны быть импортированы в ИМУС снова.

Проблемы на стороне ИУС-ГАЗ

Также, имеется пласт ошибок, в основном имеющих суффикс в коде ошибки "_1" относящихся скорее к разности схем, и требующих вмешательство на стороне ИУС-ГАЗ. Характерным примером является невозможность в ИМУС связать вместе ТП и площадку, если у площадки нету канала. Таким образом, требуется наличие полного тракта Площадка -> УУГ -> корректор -> канал). Т.к. для АИС РГ чаще всего не желательно вести или генерировать структуру с такой детализацией, данные сущности могут быть сгенерированы в ИУС-ГАЗ.

Перезапрос данных, команды внешних систем

Меню отправки команд во внешние системы

Большинство команд адаптера имеют соответствующий пункт в меню команд внешних систем[4].

Перезапрос данных осуществляется следующим образом:

  1. На форме "Внешние системы" (пункт дерева раскрывать не надо) в АРМ ИУС-ГАЗ выбирается внешняя система АИС (для удобства можно воспользоваться фильтром типа систем в верхнем правом углу, выбрав там тип "Учётная система")
  2. На вкладке "Редактор" формы "Внешние системы" выбирается команда "Команды – Команды учётных систем" (Рисунок 2).
  3. Выбирается команда загрузки необходимых данных.
  4. В появившемся модальном окне заполнить необходимые параметры, если есть[5] и нажать кнопку "Отправить команду (ы)".
  5. Откроется окно лога, в котором вы увидите сообщения об отправке команды, доставки ее адаптеру и затем краткую сводку о выполнении: Сколько объектов загружено, сколько ошибок и т.д.

Отчёт о состоянии синхронизации

В целях упрощения анализа текущего состояния импорта объектов реализован отчёт[6].

В том же меню отправки команд во внешние системы в подменю "Дополнительно" наличествует пункт "Отчёт о состоянии" (Report).

Команда «Отчет о состоянии» отправляет по списку электронных адресов, указанным в ais.ws.report.to[7].

Отчёт, содержит в письме краткую сводку по наличию ошибок импорта, версиях установленных компонентов и некоторых других метрик. К письму приложен архив с файлом html, который содержит в интерактивной форме описание каждой произошедшей проблемы и описание каждой ошибки. Все элементы имеют всплывающие подсказки для того чтобы его можно было читать без дополнительных средств анализа.

Генерация структуры вниз

Генерация структуры вниз

Генерация структуры возможна от Площадки, Узла или Корректора.

В общем случае, просто необходимо выбрать объекты для которых предполагается сгенерировать потомков, и из контекстного меню выбрать пункт "Генерировать вниз".

Особенности алгоритма генерации:

  • Операция не деструктивна, и всегда генерирует только 1 прямого потомка (УУГ для площадки или Выхода ГРС, корректор для узла, канал для корректора). Таким образом может быть выполнена несколько раз для одного и того же объекта - дублей создаваться не будет.
  • Генерация останавливается на первом потомке, если он есть. Так, если имеется Площадка с узлом она будет пропущена при генерации от Площадки. Необходимо будет выполнить такую операцию от узлов и корректоров соответственно, если там могут быть элементы без потомков также.
  • В момент генерации будет выведено диалоговое окно с вопросом как формировать имена генерируемых элементов.
  • Чтобы иметь возможность отличать объекты фактически импортированные из АИС РГ и генерированные, в поле объекта "Ид. во внешней системе" дописывается префикс "gen:"

В случае, если в АИС РГ вообще не ведётся структура ниже площадок, адаптер имеет команду автоматической генерации всей недостающей структуры, которая может быть также настроена на автоматическое регулярное выполнение.

Ответственными за структуру и в том числе за генерацию недостающих элементов являются представители РГК.


Примечания

  1. предполагается что в базе не может быть валидных объектов с датами ранее этой
  2. Весьма не удобным способом правда, около 8 кликов мышкой требуется, но тем не менее такая возможность имеется
  3. С версии версии 17.0 появилась возможность их скрывать. Но во избежание неожиданностей (данное поведение рассматривается как опасное) и для обратной совместимости требуется явное включение данного поведения для каждого типа объектов где это желательно. За это отвечает опция конфигурации ais.ws.dvisAbsent
  4. Доступ к тем или иным командам может гибко настраиваться администратором системы на основе доступных ролей, таким образом не все могут быть доступны каждому пользователю и/или АРМу. Возможность доступна с версии 1.3.34.
  5. Большинство команд не имеют параметров. Параметрами могут быть например диапазон дат запроса планов
  6. С версии 1.3.40 адаптера ИУС-ГАЗ и с версии 13.0 веб-сервиса АИС РГ
  7. С версии 17.0 и АРМ 1.5.70 доступен ввод получателя в момент запроса из АРМ
  8. Ранее это можно было сделать только вручную, а при массовых чистках по запросу к нам. С версии 17.0 реализован режим замещения, но пользоваться им также нужно с осторожностью (в общем случае не рекомендуется)