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

Материал из ANT-Inform documentation
Перейти к: навигация, поиск
(Экспорт утверждённых объёмов: 18.3.2)
(Экспорт утверждённых объёмов: Minor changes)
Строка 76: Строка 76:
  
 
Тип {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}g_id (global ID) представляет собой объединённый идентификатор объекта и состоит из полей, имеющих следующее значение:
 
Тип {[http://spb.ant-inform.ru/ASCUG http://spb.ant-inform.ru/ASCUG]}g_id (global ID) представляет собой объединённый идентификатор объекта и состоит из полей, имеющих следующее значение:
; 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]}daq_q_raw_lis.default_owner_code_system.
+
; 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.
; oid : ({[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string) - [[Перечень_сокращений_и_обозначений#Ид. в системе создателя|Ид. в системе создателя]] - идентификатор объекта в системе, в которой он был создан (указанной кодом в orig_id).
+
; oid : ({[http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema]}string) - [[Перечень_сокращений_и_обозначений#Ид. в системе создателя|Ид. в системе создателя]] - идентификатор объекта в системе, в которой он был создан (Original Id).
; uid : ({[http://v8.1c.ru/8.1/data/core http://v8.1c.ru/8.1/data/core]}UUID) - если удалось вычленить, т.е. система-создатель соответствует той в которую импортируется (см. выше) и объект не [[Общий порядок загрузки данных#Генерация структуры вниз|сгенерирован]] (по префиксу 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|режима отладки]], поле oid будет заполняться всегда, иначе (для экономии размера передаваемых данных) только есди не заполнен uid.

Версия 23:33, 29 апреля 2013

ЭКСПЕРИМЕНТАЛЬНО[1] реализован экспорт распределённых суточных данных из ИМУС в АИС Регионгаз.

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

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

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

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

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

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

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

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

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

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

Описание параметров <DateFrom>..<DateTo>..<DateBound>:

  • Может принимать от 1 до 3х аргументов.
  • Первый обязателен.
  • Параметры отделяются от команды знаком подчеркивания ("_"), не пробел!
  • Разделяются аргументы ".." также без пробелов.
  • Значения 3х параметров следующие:
    • Первый - начало интервала для которого загружаются планы.
    • Второй - окончание интервала.
    • Третий - ограничение заданного выше интервала указанным числом. Сделано прежде всего чтобы можно было делать относительные интервалы, ограниченные сверху. Например 30 дней с начала месяца, но не далее сегодняшнего числа.
  • Указание второго параметра не обязательно, тогда он будет принят концом текущего дня.
  • Указание третьего параметра также не обязательно - тогда не будет этого ограничения.
  • Указываются только даты, без времени. Подразумевается 00:00:00 для начального дня, и 23:59:59 для конечного.
  • Для указания даты (начальной или конечной), применяются следующие правила:
    • Если это число (Пример -10, +5, 0, 10) то это количество дней от текущего. Причем отрицательные отсчитываются назад, положительные вперед. Знак + может быть опущен.
    • Если число начинается с латинского символа M в любом регистре, (например M-10, m10, M+10) - берется количество дней относительно начала текущего месяца.
    • Если первым стоит символ #, то за ним должна стоять дата в формате yyyy.MM.dd - будет взята абсолютная дата.

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

  • С начала текущего месяца, до сегодня, за три приема чтобы не создавать каждый раз чрезмерной нагрузки, что соответствует: 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
  • Загрузка с 21 февраля 2012 года до текущего дня (включительно): ExportQ_#2012.02.21
  • Загрузка c 21 февраля 2012 года по 25 февраля: ExportQ_#2012.02.21..#2012.02.25

Экспорт утверждённых объёмов

Добавлено в версии 18.3. Реализовано не полностью!

Работа идёт по запросу Рустама Фарукшина из Уфы и совместно с ним[2]. На данный момент реализован экспорт из ИУС-ГАЗ. Ожидается реализация записи на стороне АИС РГ.

В сервис добавлена операция write_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) - потребитель
({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. С версии 17.0. Мы очень просим всех желающих принять участие в тестировании данного функционала. Высказать свои замечания, предложения, пожелания.
  2. За что выражаю благодарность
  3. Время добавлено для возможности в будущем таким же способом передавать часовые архивы при необходимости