Maximo BIRT сообщает об ошибке времени выполнения при запуске из Maximo

Я разработал отчет, который я могу запустить в Eclipse BIRT для предварительного просмотра без каких-либо проблем. Однако при импорте его в Maximo и попытке запустить я получаю следующую ошибку:

There was an exception on the server. Check your report parameter values, or contact your system administrator, who can find additional details in the server log.

Я проверил журналы сервера приложений, и там не было соответствующей информации. Я также включил регистраторы отчетов о биртах в Maximo на уровне DEBUG, и я по-прежнему не получаю там никаких ошибок.

Как я могу точно определить, в чем проблема, которая мешает ему работать в Maximo?


person AuthenticReplica    schedule 02.02.2016    source источник
comment
не могли бы вы объяснить подробнее, что за отчет? есть ли у него параметры, которые необходимо заполнить, прежде чем отчет сможет работать, какую версию maximo и birt вы используете?   -  person davejal    schedule 03.02.2016


Ответы (6)


Да, использование ALIAS можно использовать в SELECT с именами полей, но не в FROM и именах таблиц.

Maximo и BIRT взаимодействуют друг с другом через скрытые параметры. Два из этих параметров — «где» и «имя приложения». Когда отчет выполняется вне приложения, «имя приложения» используется для определения MAXOBJECTNAME для использования и передачи информации в отчет с параметром «где». Таким образом, отчет, запущенный из StartCenter для WORKORDER, будет использовать «имя приложения» WOTRACK для извлечения элементов основной таблицы, WORKORDER переданных в «где», таких как siteid, orgid. Отчет берет это и использует в запросе WHERE as workorder.siteid= ‘xxxx’ and workorder.orgid=’xxxx’.

Если основная таблица для SQL является псевдонимом, запрос завершится ошибкой, потому что BIRT не знает, что таблица является псевдонимом FROM workorder wo.

person NormaR    schedule 22.06.2017

Иногда отчеты не запускаются в нескольких браузерах. Попробуйте использовать определенную версию Mozilla-Firefox.

person InbalK    schedule 28.12.2017

Вы можете запрограммировать свой отчет так, чтобы разрешить использование псевдонимов для таблиц довольно легко. Обычно приложение ожидает запуска с таблицей по умолчанию, определенной для приложения:

  1. Проверьте значение maxintbname в таблице maxapps для конкретного приложения, с которым вы хотите связать отчет. Это таблица, на которую будет ссылаться первичный оператор select, и частичное предложение 'where', которое maximo передает отчету, будет построено с учетом этого. (например, для приложения отслеживания рабочих заданий — WOTRACK — основной таблицей является WORKORDER)

  2. Метод Open для первичного выбора в отчете BIRT создаст соответствующий оператор выбора SQL и добавит в конец предложение where, переданное MAXIMO. Таким образом, если вы используете псевдоним для workorder, он не будет соответствовать входящему предложению where, предоставленному maximo. Обойти это можно, закодировав дополнительный оператор включения.

например вместо использования следующего:

   select ... from workorder mydetails 
    where $where;

используйте что-то вроде:

 select ... from workorder alias .... 
    where alias.workorderid in (select workorderid from workorder where $where):

(workorderid — это уникальный столбец, содержащий целочисленное значение. Вы можете определить соответствующий уникальный столбец, просмотрев запись MAXTABLS для таблицы, на которую вы ссылаетесь, и проверив значение uniquecolumn)

Таким образом, это позволяет вам закодировать отчет, который будет выполняться независимо от того, какое предложение where maximo переходит из приложения отслеживания рабочих заданий.

Если вы сейчас зарегистрируете этот отчет для приложения PM, он обычно будет файлом для запуска, потому что переданное предложение where будет относиться к приложению PM, а не к объекту WORKORDER. Именно здесь появляется параметр appname — вы можете использовать его, чтобы добавить условную логику для выполнения немного разных действий в зависимости от вызывающего приложения.

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

:)

person SlightlyCrazy    schedule 29.08.2020

Было бы любопытно, если бы вы начали отчет, используя шаблоны Tivoli, которые можно получить с сервера Maximo. Эти шаблоны следует всегда использовать с новыми отчетами, которые вы будете внедрять в Maximo. Они включают обязательные параметры и связывание библиотек, которые потребуются Maximo, а также источник данных по умолчанию. Если вы не использовали шаблон для начала, я бы рекомендовал скопировать эти элементы из шаблона в новый отчет.

person JRoskowinski    schedule 19.02.2016
comment
Кажется, это не помогает точно определить проблему. Можете ли вы уточнить, почему вы рекомендуете это? - person Litty; 19.02.2016

Нашел проблему, оказывается, Максимо не любит псевдонимы в запросах :/

person AuthenticReplica    schedule 28.02.2016

Решение по использованию псевдонима в полях "от" и "до" может быть достигнуто путем изменения того, где проходит этот Maximo. Например, принимающее приложение передает matrectrans, поэтому мы просто заменяем имя объекта псевдонимом и используем myWhere. var myWhere = params["where"].replace("matrectrans","m"); -W

person Wes Williams    schedule 06.12.2017