Экспорт данных — различия между версиями

Материал из ANT-Inform documentation
Перейти к: навигация, поиск
(Перевод в табличную форму передаваемых объектов для наглядности.)
(Переработан раздел экспорта КИО, добавлено формальное описание типа day_q_raw_list, введено его поле type, сервис 19.1, ESB-1653)
Строка 28: Строка 28:
  
 
== Состав и формат передаваемых данных ==
 
== Состав и формат передаваемых данных ==
=== Экспорт данных оперативного баланса о суточном распределении по договорам ===
+
=== Экспорт данных оперативного баланса о суточном распределении по договорам (распределение) ===
 
[[Команды адаптера#ExportQ|Передаётся]] информация по распределению по договорам за выбранный период (сутки) - "Зона распределения - Оперативный баланс - по суткам"
 
[[Команды адаптера#ExportQ|Передаётся]] информация по распределению по договорам за выбранный период (сутки) - "Зона распределения - Оперативный баланс - по суткам"
  
Строка 56: Строка 56:
 
|}
 
|}
  
=== Экспорт утверждённых объёмов (Зона КИО) ===
+
=== Экспорт даных телеметрии (Зона КИО) ===
{{ ambox | text = Не путать с распределёнными, описанными выше. Здесь речь идёт прежде всего о телеметрийных данных в зоне актирования на каналах, а не о коммерческих!
+
{{ ambox | text = Не путать с распределёнными, описанными выше. Здесь речь идёт прежде всего о телеметрийных данных на каналах, а не о коммерческих!
 
'''В общем случае они не нужны в АИС''' }}
 
'''В общем случае они не нужны в АИС''' }}
 
Добавлено в [[история изменений|версии]] 18.3.
 
Добавлено в [[история изменений|версии]] 18.3.
  
Реализовано по запросу Рустама Фарукшина из Уфы и совместно с ним<ref>За что выражаю благодарность</ref>.
+
Работа инициирована по запросу Рустама Фарукшина из Уфы и совместно с ним<ref>За что выражаю благодарность</ref>.
На данный момент реализован [[Команды адаптера#ExportQRaw|экспорт]] из [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]]. В сервис добавлена операция [[Команды адаптера#ExportQRaw|write_q_raw]], которая ничего не делает, только получает массив входящих данных.
+
В сервис добавлены операция [[Команды адаптера#ExportQRaw|write_q_raw]], которая ничего не делает, только получает массив входящих данных. Фактическая функция записи должна быть сконфигурирована константой [[Конфигурирование на стороне 1С#ASCUG_write_q_raw_custom_code|ASCUG_write_q_raw_custom_code]] и реализована на стороне АИС.
Фактическая функция записи должна быть сконфигурирована константой [[Конфигурирование на стороне 1С#ASCUG_write_q_raw_custom_code|ASCUG_write_q_raw_custom_code]].
+
 
Вызываемый для обработки код должен самостоятельно заполнить список ошибок и статус операции в передаваемом аргументе errList {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}error_list.
 
Вызываемый для обработки код должен самостоятельно заполнить список ошибок и статус операции в передаваемом аргументе errList {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}error_list.
  
Данные передаются в операцию сервиса [[Команды адаптера#ExportQRaw|write_q_raw]]. Передаётся список значений {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw в атрибуте list типа {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw_list.
+
Данные передаются в операцию сервиса [[Команды адаптера#ExportQRaw|write_q_raw]]. На вход передаётся переменная data типа  {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw_list со следующими полями:
 +
{| border=1 width="100%" cellspacing="0" cellpadding="4" class="wikitable sortable"
 +
! Поле !! Тип !! Описание
 +
|-
 +
| list || {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw || список значений типа {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw, описанного ниже
 +
|-
 +
| {{anchor|default_owner_code_system}}default_owner_code_system || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string || Код внешней системы - владельца (owner_code_system) по умолчанию. В данном случае это должна быть [[Перечень сокращений и обозначений#АИС РГ|АИС]]. Используется, если не заполнен другой для конкретных элементов.
 +
|-
 +
| type<ref>Поле и команда добавлены по просьбе Дмитрия Бещенко из Москвы. С [[version 19|версии]] сервиса 19.1 ([https://jira.spb.ant-inform.ru/browse/ESB-1653 ESB-1653]).</ref> || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string || Тип передаваемых суточных данных:
 +
; 10 : Зона КИО, команда [[Команды адаптера#ExportQRawTelezone|ExportQRawTelezone]]
 +
; 70 : Зона актирования, команда [[Команды адаптера#ExportQRaw|ExportQRaw]]
 +
|}
  
 
==== Состав {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw ====
 
==== Состав {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw ====
Строка 97: Строка 107:
 
| id || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}long || идентификатор (id) объекта в [[Перечень сокращений и обозначений#ИМУС|ИМУС]]. Может быть пустым
 
| id || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}long || идентификатор (id) объекта в [[Перечень сокращений и обозначений#ИМУС|ИМУС]]. Может быть пустым
 
|-
 
|-
| ocs || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string || код системы - владельца (owner_code_system), код внешней системы, в которой объект был создан. В данном случае это должна быть [[Перечень сокращений и обозначений#АИС РГ|АИС]]. Будет заполнено только если не совпадает с основной системой в которую экспортируется, указанную в {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}day_q_raw_lis.default_owner_code_system
+
| ocs || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string || код системы - владельца (owner_code_system), код внешней системы, в которой объект был создан.
 
|-
 
|-
| oid || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string || [[Перечень_сокращений_и_обозначений#Ид. в системе создателя|Ид. в системе создателя]] || идентификатор объекта в системе, в которой он был создан (Original Id, OrigId)
+
| oid || {[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string || [[Перечень сокращений и обозначений#Ид. в системе создателя|Ид. в системе создателя]] - идентификатор объекта в системе, в которой он был создан (Original Id, OrigId)
 
|-
 
|-
 
| uid || {[http://v8.1c.ru/8.1/data/core http://v8.1c.ru/8.1/data/core]}UUID || [[Перечень сокращений и обозначений#UID|UID]], если удалось вычленить, т.е. система-создатель соответствует той в которую импортируется (см. выше) и объект не [[Общий порядок загрузки данных#Генерация структуры вниз|сгенерирован]] (по префиксу gen:, исключение делается для [[Перечень сокращений и обозначений#ТП|ТП]] т.к. там данный префикс скорее означает тип загрузки, нежели генерацию на стороне [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]]) адаптером в [[Перечень сокращений и обозначений#ИМУС|ИМУС]]
 
| uid || {[http://v8.1c.ru/8.1/data/core http://v8.1c.ru/8.1/data/core]}UUID || [[Перечень сокращений и обозначений#UID|UID]], если удалось вычленить, т.е. система-создатель соответствует той в которую импортируется (см. выше) и объект не [[Общий порядок загрузки данных#Генерация структуры вниз|сгенерирован]] (по префиксу gen:, исключение делается для [[Перечень сокращений и обозначений#ТП|ТП]] т.к. там данный префикс скорее означает тип загрузки, нежели генерацию на стороне [[Перечень сокращений и обозначений#ИУС-ГАЗ|ИУС-ГАЗ]]) адаптером в [[Перечень сокращений и обозначений#ИМУС|ИМУС]]
 
|}
 
|}
  
При включении [[Конфигурирование адаптера на стороне ИМУС#ais_ws_debug|режима отладки]], поле oid будет заполняться всегда, иначе (для экономии размера передаваемых данных) только если не заполнен uid.
+
При включении [[Конфигурирование адаптера на стороне ИМУС#ais_ws_debug|режима отладки]], поля ocs и oid будет заполняться всегда, иначе (для экономии размера передаваемых данных) могут не заполняться если есть uid.
 
----
 
----
  
 
== Примечания ==
 
== Примечания ==
 
<references/>
 
<references/>

Версия 00:05, 16 октября 2014

С версии 17.0 реализован экспорт распределённых суточных данных из ИМУС в АИС Регионгаз и предоставлена возможность записи зоны КИО.

Требуемые изменения в конфигурации

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

#Если наКлиенте Тогда 
	Вопрос("Вы точно хотите продолжить?", РежимДиалогаВопрос.ДаНет);
#КонецЕсли

Таким образом, при использовании на сервере таких конструкций это приводит к ошибке, поскольку такие функции просто не определены. Подробнее про это рекомендуется прочитать в интернете, например [1]. В конфигурации АИС РГ проблема усугубляется тем, что такое взаимодействие присутствует в модулях объекта, что вообще считается дурной практикой. Это приводит даже просто к невозможности создания документов к сожалению.

Таким образом все такие операции в модуле документа СуточноеПотребление должны быть обрамлены условными конструкциями препроцессору (сейчас таких мест 6 штук для конфигурации версии 1.1.28).

Для простоты при совпадении номера конфигурации и условии что не вносилось ручных изменений в данный модуль, можно его скопировать также из предложенного нами cf-файла. Или внести соответствующие изменения самостоятельно.

Обратите внимание, данные изменения никак не затрагивают обычное использование АИС Регионгаз, потому что данные конструкции именно указывают на то что в обычном режиме это и выполняются, и не выполняются только в режиме сервера.

Выполнение экспорта

С версии АРМ ~1.5.449 добавлены графические пункты меню с выбором дат.

Также иногда удобно посылать команды из консоли с помощью утилитки amq-command, на сервере ИМУС. Параметры точно также как для планов.

На регулярное выполнение команды могут быть сконфигурированы стандартным способом.

Состав и формат передаваемых данных

Экспорт данных оперативного баланса о суточном распределении по договорам (распределение)

Передаётся информация по распределению по договорам за выбранный период (сутки) - "Зона распределения - Оперативный баланс - по суткам"

Данные передаются в операцию сервиса write_q. Передаётся список значений {http://spb.ant-inform.ru/ASCUG}day_q в атрибуте list типа {http://spb.ant-inform.ru/ASCUG}day_q_list.

Состав {http://spb.ant-inform.ru/ASCUG}day_q

Поле Тип Описание
date {http://www.w3.org/2001/XMLSchema}dateTime дата на которую производилось распределение
q {http://www.w3.org/2001/XMLSchema}decimal распределённый объём, нм3
idContr {http://v8.1c.ru/8.1/data/core}UUID UID договора
idPc {http://v8.1c.ru/8.1/data/core}UUID UID ТП
idPrMark {http://www.w3.org/2001/XMLSchema}string идентификатор вида ценообразования (перечисление Прейскуранты)
idConsType {http://www.w3.org/2001/XMLSchema}string идентификатор категории потребления. Соответствие задаётся через соответствующие константы ASCUG_consTypePopulation и ASCUG_consTypeExceptPopulation
idPContr {http://v8.1c.ru/8.1/data/core}UUID UID договора закупки
plan {http://www.w3.org/2001/XMLSchema}decimal План на указанные сущности и сутки, нм3. В случае введения графиков 1, 2 при похолоданиях или авариях в ИУС-ГАЗ, будет отличаться от загруженного ранее из АИС.

Экспорт даных телеметрии (Зона КИО)

Добавлено в версии 18.3.

Работа инициирована по запросу Рустама Фарукшина из Уфы и совместно с ним[1]. В сервис добавлены операция write_q_raw, которая ничего не делает, только получает массив входящих данных. Фактическая функция записи должна быть сконфигурирована константой ASCUG_write_q_raw_custom_code и реализована на стороне АИС. Вызываемый для обработки код должен самостоятельно заполнить список ошибок и статус операции в передаваемом аргументе errList {http://spb.ant-inform.ru/ASCUG}error_list.

Данные передаются в операцию сервиса write_q_raw. На вход передаётся переменная data типа {http://spb.ant-inform.ru/ASCUG}day_q_raw_list со следующими полями:

Поле Тип Описание
list {http://spb.ant-inform.ru/ASCUG}day_q_raw список значений типа {http://spb.ant-inform.ru/ASCUG}day_q_raw, описанного ниже
default_owner_code_system {http://www.w3.org/2001/XMLSchema}string Код внешней системы - владельца (owner_code_system) по умолчанию. В данном случае это должна быть АИС. Используется, если не заполнен другой для конкретных элементов.
type[2] {http://www.w3.org/2001/XMLSchema}string Тип передаваемых суточных данных:
10 
Зона КИО, команда ExportQRawTelezone
70 
Зона актирования, команда ExportQRaw

Состав {http://spb.ant-inform.ru/ASCUG}day_q_raw

Поле Тип Описание
corr_time {http://www.w3.org/2001/XMLSchema}dateTime время и дата[3] на которые проводился замер (время корректора)
cur_time {http://www.w3.org/2001/XMLSchema}dateTime время и дата когда данные были записаны в БД (должно быть позже corr_time)
channel {http://spb.ant-inform.ru/ASCUG}g_id канал
gco {http://spb.ant-inform.ru/ASCUG}g_id площадка
pc {http://spb.ant-inform.ru/ASCUG}g_id ТП
cons {http://spb.ant-inform.ru/ASCUG}g_id потребитель
q {http://www.w3.org/2001/XMLSchema}decimal Объём. м3
p {http://www.w3.org/2001/XMLSchema}decimal Давление. Кгс/см2. Может отсутствовать
t {http://www.w3.org/2001/XMLSchema}decimal Температура. ℃. Может отсутствовать.

Тип {http://spb.ant-inform.ru/ASCUG}g_id (global ID), упоминаемый ранее представляет собой объединённый идентификатор объекта и состоит из полей, имеющих следующее значение:

Поле Тип Описание
id {http://www.w3.org/2001/XMLSchema}long идентификатор (id) объекта в ИМУС. Может быть пустым
ocs {http://www.w3.org/2001/XMLSchema}string код системы - владельца (owner_code_system), код внешней системы, в которой объект был создан.
oid {http://www.w3.org/2001/XMLSchema}string Ид. в системе создателя - идентификатор объекта в системе, в которой он был создан (Original Id, OrigId)
uid {http://v8.1c.ru/8.1/data/core}UUID UID, если удалось вычленить, т.е. система-создатель соответствует той в которую импортируется (см. выше) и объект не сгенерирован (по префиксу gen:, исключение делается для ТП т.к. там данный префикс скорее означает тип загрузки, нежели генерацию на стороне ИУС-ГАЗ) адаптером в ИМУС

При включении режима отладки, поля ocs и oid будет заполняться всегда, иначе (для экономии размера передаваемых данных) могут не заполняться если есть uid.


Примечания

  1. За что выражаю благодарность
  2. Поле и команда добавлены по просьбе Дмитрия Бещенко из Москвы. С версии сервиса 19.1 (ESB-1653).
  3. Время добавлено для возможности в будущем таким же способом передавать часовые архивы при необходимости