Экспорт данных

Материал из ANT-Inform documentation
Версия от 11:38, 11 августа 2014; Hubbitus (обсуждение | вклад) (Экспорт утверждённых объёмов: Описана необходимость заполнения {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}error_list)

Перейти к: навигация, поиск

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

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

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

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

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

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

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

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

Тестирование

В процессе тестирования, пока не доступен функционал отправки запроса на экспорт из АРМ, можно посылать команды из консоли с помощью утилитки amq-command, на сервере ИМУС.

Основная команда для этого ExportQ с параметрами. Например: «amq-command ExportQ_<DateFrom>..<DateTo>..<DateBound>», точно также как для планов.

Примеры команд

  • С начала текущего месяца, до сегодня, за три приема чтобы не создавать каждый раз чрезмерной нагрузки, что соответствует: ExportQ_m0..m10..0,ExportQ_m11..m20..0,ExportQ_m21..m31..0
  • Загрузка недели (7 дней) предшествующей сегодняшнему дню: ExportQ_-7
  • Загрузка недели (7 дней) вперед, от сегодняшнего дня: ExportQ_0..+7 или просто ExportQ_0..7
  • Загрузка +/- недели: ExportQ_-7..+7 или просто ExportQ_-7..7
  • Загрузка первой недели (7 дней) текущего месяца: ExportQ_m0..m7
  • Загрузка целого месяца (31 день), но не далее текущего дня: ExportQ_m0..m31..0
  • Загрузка целого месяца точно по границам: ExportQ_m0..M0
  • Загрузка с 21 февраля 2012 года до текущего дня (включительно): ExportQ_#2012.02.21
  • Загрузка c 21 февраля 2012 года по 25 февраля: ExportQ_#2012.02.21..#2012.02.25

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

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

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

Данные передаются в операцию сервиса 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) - дата на которую производилось распределение.
({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. Передаётся список значений {http://spb.ant-inform.ru/ASCUG}day_q_raw в атрибуте list типа {http://spb.ant-inform.ru/ASCUG}day_q_raw_list.

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

corr_time 
({http://www.w3.org/2001/XMLSchema}dateTime) - время и дата[2] на которые проводился замер (время корректора).
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) - потребитель
({http://www.w3.org/2001/XMLSchema}decimal) - Объём. m3.
({http://www.w3.org/2001/XMLSchema}decimal) - Давление. Кгс/см2. Может отсутствовать.
({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), код внешней системы, в которой объект был создан. В данном случае это должна быть АИС. Будет заполнено только если не совпадает с основной системой в которую экспортируется, указанную в {http://spb.ant-inform.ru/ASCUG}day_q_raw_lis.default_owner_code_system.
oid 
({http://www.w3.org/2001/XMLSchema}string) - Ид. в системе создателя - идентификатор объекта в системе, в которой он был создан (Original Id).
uid 
({http://v8.1c.ru/8.1/data/core}UUID) - UID, если удалось вычленить, т.е. система-создатель соответствует той в которую импортируется (см. выше) и объект не сгенерирован (по префиксу gen:, исключение делается для ТП т.к. там данный префикс скорее означает тип загрузки, нежели генерацию на стороне ИУС-ГАЗ) адаптером в ИМУС.

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


Примечания

  1. За что выражаю благодарность
  2. Время добавлено для возможности в будущем таким же способом передавать часовые архивы при необходимости