Maximo - Добавление элементов в CustomMboSet с использованием скриптов
Можно ли добавить в CustomMboSet в Maximo с помощью сценариев? Я пишу пользовательское приложение, используя пользовательский объект с именем TIMESHEET. Как часть приложения я пишу (Jython) скрипт, который должен динамически создавать MboSet (набор TIMESHEET). Код извлекает существующий CustomMboSet и пытается добавить к нему элементы. Он работает при использовании готового MboSet, но когда я пытаюсь запустить тот же код на пользовательском MboSet, он, похоже, не работает. Ошибка не выдается, но код под ошибочной строкой не запускается.
Другими словами, это работает (LABTRANS - это нестандартная MBO):
myMboSet = mbo.getMboSet("LABTRANS")
newMbo = myMboSet.add()
# Set attributes on newMbo, everything is happy
Но это не так (TIMESHEET - это пользовательский MBO):
myMboSet = mbo.getMboSet("TIMESHEET")
newMbo = myMboSet.add()
# Code does not execute after the above line
У кого-нибудь есть понимание того, почему я вижу это поведение? Разве среда сценариев Maximo просто не поддерживает динамическое создание CustomMboSets? Любая помощь приветствуется. Благодарю.
3 ответа
Немного больше объяснений Вы можете создать свои собственные отношения в скрипте автоматизации. Хитрость заключается в том, чтобы убедиться, что он еще не существует. Вот почему я использую знак доллара для себя.
variable = mbo.getMboSet (tempRelationshipName, Object, where)
previousPhaseSet = mbo.getMboSet("$wophasetranstemp1", "exitdate is null")
mbo.getMboSet(RELATIONSHIPNAME).
LABTRANS
а также TIMESHEET
должны быть имена отношений с объектом в автоматическом сценарии.
Если вы хотите получить / добавить записи в любом объекте, используйте
mxServer.getMboSet(OBJECTNAME, userInfo)
Необходимо убедиться, что существует связь между текущим MBO и настраиваемым MBO в конфигурации базы данных, иначе она не будет работать.
В качестве альтернативы вы можете использовать следующий код для создания нового mboSet на лету:
timeSheetMboSet = mxServer.getMboSet("TIMESHEET", userInfo)