Примеры сценариев Maximo Business Rules (MBR)
Предлагаются несколько примеров, иллюстрирующих использование языка Maximo Business Rules (MBR) в нескольких типовых сценариях.
Пример: Добавление MBO к MBOSet
Когда добавляется новый актив с типов актива GASENG, запись добавляет два счетчика к MBOSet счетчиков этого актива. Это счетчики O-PRESSUR и IN-PRESSUR.
- В прикладной программе Сценарии автоматизации создайте сценарий с точкой запуска объекта.
- Задайте имя точки запуска и выберите объект ASSET.
- В разделе События выберите событие Сохранить.
- В разделе Сохранить задайте контекст для этого события и выберите Добавить и Перед сохранением.
- В разделе Сценарий выберите опцию добавления сценария и перейдите к следующей странице.
- Укажите имя сценария и задайте для уровня ведения журнала значение debug. Перейдите к следующей странице.
- Вставьте исходный код, приведенный ниже, в поле Исходный код и нажмите кнопку Создать, чтобы добавить сценарий.
#мой первый код MBR для актива setvar("isgaseng",(assettype == "GASENG" && countf("assetmeter")==0)) if(getvar("isgaseng"),invokescript(":createmeters")) #моя функция MBR, которая добавит два MBO счетчиков к MBO актива :createmeters newmbo("opressure","assetmeter") setvaluetombo("opressure","metername","O-PRESSUR") newmbo("inpressure","assetmeter") setvaluetombo("inpressure","metername","IN-PRESSUR")
Анализ
Этот сценарий содержит две строки основного кода и функцию. Сценарий запускается, когда пользователь сохраняет изменения в записи актива. В основном коде реализована следующая логика:
- Создается локальная переменная и для этой переменной задается значение
TRUE, если выполняются оба следующих условия:- Тип актива - GASENG.
- MBOSet счетчиков для этого актива пуст.
- Оценивается эта локальная переменная. Если ее значение -
TRUE, вызывается функция добавления MBO к MBOSet счетчиков этого актива. В функции createmeters реализована следующая логика:- К MBOSet счетчиков этого актива добавляется MBO.
- В качестве имени этого MBO задается O-PRESSUR.
- К MBOSet счетчиков этого актива добавляется второй MBO.
- В качестве имени второго MBO задается IN-PRESSUR.
Этот сценарий использует две внутренние переменные - assettype и assetmeter - для получения типа актива и содержимого MBOSet счетчиков этого актива.
Поскольку этот сценарий запускается, когда пользователь сохраняет свои изменения, каркас транзакций прикладной программы сохраняет и принимает вновь созданные MBO как часть основной транзакции.
Можно переместить код функции createmeters в библиотечный сценарий. Например, можно переместить код функции createmeters в библиотечный сценарий, который также вызывает createmeters, а затем вызывать это библиотечный сценарий в следующем операторе:
if(getvar("isgaseng"),invokescript("createmeters"))
Пример: Обработка дат
- Задать в качестве окончания срока службы дату установки плюс один год. Если у актива нет даты установки, задать в качестве окончания срока службы текущую дату плюс один год.
- Сделать атрибут приоритета обязательным.
- В прикладной программе Сценарии автоматизации создайте сценарий с точкой запуска атрибута.
- Укажите имя точки запуска и выберите объект ASSET и атрибут ASSETTYPE.
- В разделе События выберите событие Проверить.
- В разделе Сценарий выберите опцию нового сценария и перейдите к следующей странице.
- Укажите имя сценария и задайте для уровня ведения журнала значение debug. Перейдите к следующей странице.
- Вставьте исходный код из следующего раздела в поле Исходный код и нажмите кнопку Создать, чтобы добавить сценарий.
if(assettype=="BUS",setvalue("estendoflife",nvl(installdate,now())+duration(1,0,0,0,0,0))) if(assettype=="BUS",setrequired("priority",TRUE),setrequired("priority",FALSE))
Анализ
Этот сценарий запускается, когда изменяется тип актива. В сценарии реализована следующая логика:
- Если тип актива - BUS, задается окончание срока службы:
- Оценивается дата установки актива.
- Если дата установки актива не заполнена, в качестве окончания срока службы задается текущая дата плюс один год.
- Если дата установки актива заполнена, в качестве окончания срока службы задается дата установки плюс один год.
- Если тип актива - BUS, атрибут приоритета задается как обязательный. Если тип актива - не BUS, атрибут приоритета задается как необязательный.
if(assettype=="BUS",invokescript(":seteol"),setrequired("priority",FALSE))
:seteol
setvalue("estendoflife",nvl(installdate,now())+duration(1,0,0,0,0,0))
setrequired("priority",TRUE)Этот сценарий использует внутренние переменные assettype, estendoflife и installdate для значений типа, срок окончания службы и даты установки актива.
Пример: Задание атрибутов объектов при дублировании
При дублировании рабочего задания номер исходного рабочего задания дублируется в пользовательский атрибут дублированного рабочего задания.
- В прикладной программе Сценарии автоматизации создайте сценарий без точки запуска.
- Задайте имя сценария - WORKORDER.DUPLICATE.
- Задайте в качестве типа сценария MBR, если он не задан.
- Вставьте следующий исходный код в поле Исходный код и нажмите кнопку Создать, чтобы добавить сценарий:
setvaluetombo("dupmbo","copiedfrom", wonum)
Анализ
Имя этого сценария обеспечивает его запуск при дублировании рабочего задания. Этот сценарий копирует номер исходного рабочего задания в пользовательский атрибут дублированного рабочего задания.
Этот сценарий использует внутренние переменные wonum, dupmbo и copiedfrom для значения номера исходного рабочего задания, номера дублированного рабочего задания и пользовательского атрибута дублированного рабочего задания.