首页 > 解决方案 > Maximo:使用 SQL 查询模拟工作流分配

问题描述

我想编写一个模仿 Maximo Start Center assignments 部分中结果的 SQL 查询。分配是工作流分配。

在此处输入图像描述

我尝试查询workorder表并指定assignedownergroup用户所在的位置:

select
    *
from
    workorder
where
    status in ('WAPPR','APPR','INPRG')
    and assignedownergroup = 'FIRE'

但是,该查询返回的工单比开始中心分配中显示的要多。

如何编写查询来模拟启动中心中的工作流分配?

标签: sqloracleselectmaximo

解决方案


如果您突出显示的 portlet 是针对 WORKORDER 的结果集,我的另一个答案将起作用,但事实并非如此。您突出显示的 portlet 是 Workflow Inbox,它基于WFASSIGNMENT where assigncode = 'userid'.

在 Oracle SQL 中,模拟工作流收件箱的完整查询如下所示:

select
    (select 'WO '||wonum||' ('||description||') is waiting for '||wfassignment.description 
        from workorder 
        where workorderid = wfassignment.ownerid
            and wfassignment.ownertable = 'WORKORDER'
        /* Union in other tables */) description,
    app
from wfassignment
where assignstatus = 'ACTIVE'
    and assigncode = 'JDOE'

我不确定WO作业描述的前缀来自哪里。但是由于您可以根据自己的对象将工作流添加到自己的应用程序,我想它来自某处的元数据而不是代码。描述本身可能是MAXMESSAGES.

您会注意到Union in我的查询中的注释,您可以在其中添加针对or或or 的unioned 查询。PRPMASSET


推荐阅读