Maximo: показать последнее напоминание о состоянии для текущего рабочего задания

В Maximo я хочу получить самую последнюю памятку о состоянии и добавить поле WOSTATUS.MEMO в модуль отслеживания рабочих заданий через конструктор приложений. В приложении "Отслеживание рабочих заданий", чтобы увидеть ту же информацию, вы должны перейти к отдельному рабочему заданию> Выбрать "Действие"> "Просмотр"> "История рабочего задания".

1 ответ

Решение

Возможно, вы заметили связь WOSTATUS с объектом WORKORDER и обнаружили, что не можете контролировать, какая из множества записей WOSTATUS для этого рабочего задания выбрана для отображения памятки. Вам нужно будет сделать копию этого отношения, которое определенно найдет самую последнюю запись. Чтобы найти эту последнюю запись, вы можете перейти к записи WOSTATUS с CHANGEDATE, соответствующей STATUSDATE в рабочем задании или с самым высоким WOSTATUSID. Предполагая, что вы выберете первый вариант, поскольку он не требует подзапроса, вы создадите новое отношение между WORKORDER и WOSTATUS, которое называется LASTSTATUS, с предложением where, например:

wonum = :wonum and siteid = :siteid 
and status = :status and changedate = :statusdate

Затем можно использовать стандартный синтаксис Relationship.Attribute для свойства Attribute текстового поля в конструкторе приложений: LASTSTATUS.MEMO,

В случае, если вам было интересно, вот предложение where, которое вы бы использовали, если хотите вместо этого использовать WOSTATUSID:

wonum = :wonum and siteid = :siteid 
and wostatusid = (
    select max(wostatusid)
    from wostatus
    where wonum = :wonum and siteid = :siteid
    )

(Некоторые могут поспорить с вопросом о том, нужна ли первая строка в приведенном выше запросе. Я бы ответил с предложением проверить производительность / план оптимального выполнения в среде вашей базы данных.)

Надеюсь, это поможет.

Другие вопросы по тегам