我正在配置工作执行。当检索资产或位置的过去工作订单时调用的工作顺序历史查询是开放的。因此,每次检索数千行,应用程序超时。我可以附加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函数派生的值替换命名的参数.没有骰子。任何帮助都将不胜感激!
发布于 2017-02-09 23:18:13
看起来您正在尝试在app.xml中设置where子句。虽然我认为这是可行的,但做以下工作可能要容易数百万倍。
此外,这允许在后端管理query子句,因此当用户决定在这里查看其他内容时,您可以在Maximo中管理查询。我们的项目已经接近尾声了,所以如果你想交换战争故事的话,可以随时联系我们。
https://stackoverflow.com/questions/41965926
复制相似问题