Максимо пространственный запрос - PullRequest
1 голос
/ 13 июня 2019

У меня есть рабочее задание (WO) в Maximo:

  • У WO есть координаты Latitude(Y) и Longitude(X) на вкладке Адрес службы.
  • У WO естьcustom zone поле (пустое).

В базе данных Maximo также есть пространственная таблица (полигоны).


Я хочу выполнить пространственный запрос чтобы вернуть атрибут из многоугольной записи , который он пересекает , и использовать его для заполнения zone в WO.

Как я могу это сделать?

(Maximo 7.6.1, включая Maximo Spatial)

Ответы [ 2 ]

2 голосов
/ 14 июня 2019

Сделать это в прямом эфире в Maximo можно с помощью скрипта автоматизации или путем написания собственного кода в Spatial (более сложный).Вы хотите использовать инструмент / MapServer / identifier и опубликовать геометрию xy, систему координат и слой, который хотите запросить. определить окно

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

1 голос
/ 16 июня 2019

Возможно, вам вообще не нужно прикасаться к вашей среде Maximo. Как насчет использования триггера на вашем рабочем столе? Этот триггер может затем автоматически заполнить идентификатор зоны из простого оператора выбора, который соответствует x и y зонам в таблице зон. Вот как это может выглядеть.

Предполагается, что ваши рабочие задания находятся в такой таблице:

create table work_orders (
  wo_id number primary key,
  x number,
  y number,
  zone_id number
);

и зоны в таблице, подобные этой

create table zones (
  zone_id number primary key,
  shape st_geometry
)

Тогда триггер будет таким:

create or replace trigger work_orders_fill_zone
  before insert or update of x,y on work_orders
  for each row
begin
  select zone_id
  into :new.zone_id
  from zones
  where sde.st_contains (zone_shape, sde.st_point (:new.x, :new.y, 4326) ) = 1;
end;
/

Некоторые предположения:

  1. Столбцы x и y содержат координаты в долготе / широте WGS84 (не в какой-либо проекции или какой-либо другой системе координат долг / широта)

  2. Зоны не перекрываются: поэтому точка рабочего задания всегда находится в одной и только одной зоне. Если нет, то запрос может вернуть несколько результатов, которые вам необходимо обработать.

  3. Зоны полностью покрывают территорию, на которой могут выполняться ваши рабочие задания. Если местоположение рабочего задания может находиться за пределами всех ваших зон, то вам также необходимо это обработать (запрос не даст результата).

  4. Столбцы x и y заполнены всегда. Если они являются необязательными, вам также необходимо обработать этот случай (установите zone_id на NULL, если x или y равно NULL)

После этого при каждом добавлении нового рабочего задания в таблицу work_orders столбец zone_id будет автоматически обновляться.

Вы можете инициализировать zone_id в существующих рабочих заданиях с помощью простого обновления:

update work_orders set x=x, y=y;

Это приведет к запуску триггера для каждой строки в таблице ... Может потребоваться некоторое время для завершения, если таблица большая.

...