如何在Maximo Anywhere中编写OSLC查询where子句来评估某些值<现在()

时间:2017-01-31 19:28:28

标签: maximo-anywhere oslc

我正在配置工作执行。检索资产或位置的过去工单时调用的工作订单历史记录查询是开放式的。因此,每次检索几千行并且应用程序超时。我可以附加where子句(见下文),以便在特定日期之后将其限制为具有actfinish的记录。但是,我想做的就是这样......

spi_wm:actfinish>now()-30


<!--WorkOrder History Asset Resource-->
    <resource id="workOrderHistoryAssetLoc" class="application.business.WorkOrderObject" defaultOrderBy="wonum asc" describedBy="http://jazz.net/ns/ism/work/smarter_physical_infrastructure#WorkOrder" name="workOrderHistoryAssetLoc" pageSize="50" providedBy="/oslc/sp/WorkManagement">
        <attributes id="workOrderHistoryAsset_attributes1">
            <attribute describedByProperty="dcterms:identifier" id="workOrderHistoryAsset_identifier_dctermsidentifier1" index="true" name="identifier"/>
            <attribute describedByProperty="oslc:shortTitle" id="workOrderHistoryAsset_wonum_oslcshortTitle1" index="true" name="wonum"/>
            <attribute describedByProperty="dcterms:title" id="workOrderHistoryAsset_description_dctermstitle1" index="true" method="descriptionChanged" name="description"/>
            <attribute describedByProperty="spi:status" id="workOrderHistoryAsset_status_spistatus" index="true" method="statusChanged" name="status"/>
            <localAttribute dataType="string" id="workOrderHistoryAsset_statusdesc_string" name="statusdesc"/>              
        </attributes>
        <queryBases id="workOrderHistoryAsset_queryBasesh">
            <queryBase defaultForSearch="true" id="workOrderHistoryAsset_queryBase_searchAllWorkOrdersh" name="searchAllWorkOrdersAsset" queryUri="/oslc/os/oslcwodetail?savedQuery=getWithComplexQuery"/>
            <!-- TODO AWH 20170130 - add where clause to this query  -->                                
        </queryBases>
        <whereClause clause="spi:status in ['COMP','CLOSE'] and spi_wm:actfinish>'2016-10-10T09:50:00-04:00'" id="workOrderHistoryAssetLoc_whereClause"/>
    </resource>

我在其他地方看到app.xml中有公式,但我不知道有哪些类型的运算符或语言可用来完成这样的事情。我希望whereClause属性能够使用resolverClass和resolverFunction,以便我可以用从javascript函数派生的值替换命名参数...没有骰子。任何帮助,将不胜感激!

1 个答案:

答案 0 :(得分:1)

看起来您正在尝试在app.xml中设置where子句。虽然我认为可以工作,但执行以下操作可能要容易一百万次。

  1. 复制资源,然后注释掉原来的
  2. 使用您需要的where子句在Maximo中创建保存的查询  一个。 spi:[&#39; COMP&#39;,&#39; CLOSE&#39;]和spi_wm:actfinish&gt;&#39; 2016-10-10T09:50:00-04:00&#39;
  3. 为已保存的查询命名&#34; ANYWHERE_WOHIST&#34;或类似的东西。
  4. 修改重复资源以指向新保存的查询。

    <queryBase defaultForSearch="true" id="workOrderHistoryAsset_queryBase_searchAllWorkOrdersh" name="searchAllWorkOrdersAsset" queryUri="/oslc/os/oslcwodetail?savedQuery=ANYWHERE_WOHIST"/>
    
  5. 此外,这允许在后端管理查询where子句,因此当您的用户决定在此处查看其他内容时,您可以在Maximo中管理查询。我们随时随地接近项目的最后阶段,如果您想交换战争故事,请随时与我们联系。