2017-01-31 10 views
2

Я настраиваю Work Execution. Запрос истории заказов на работу, который вызывается при получении прошлых заказов на работу для активов или мест, является открытым. Следовательно, каждый раз извлекается несколько тысяч строк и время истечения срока действия приложения. Я могу приложить предложение where (см. Ниже), чтобы ограничить его записью с помощью actfinish после определенной даты. Тем не менее, то, что я хочу сделать что-то вроде этого ...Как написать запрос OSLC, где предложение в Maximo Anywhere для оценки некоторого значения <now()

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 ... без кубиков. Любая помощь будет оценена!

+0

Какую версию Maximo Anywhere вы используете? –

+0

Скотт, мы используем 7.6.1 на MobileFirst 7.1 –

+0

Вы пытались сменить базу запросов и установить, что предложение where в Maximo? – Jeroen

ответ

1

Похоже, вы пытаетесь установить предложение where в app.xml. Хотя я думаю, что это может работать, вероятно, было бы в миллион раз легче сделать следующее.

  1. дублировать ресурс, то закомментируйте оригинальный
  2. Создание сохраненного запроса в Maximo с пунктом где вам нужно а. spi: статус в ['COMP', 'CLOSE'] и spi_wm: actfinish> '2016-10-10T09: 50: 00-04: 00'
  3. Назовите сохраненный запрос «ANYWHERE_WOHIST» или что-то в этом роде.
  4. Изменить дублирующийся ресурс, чтобы указать на новый сохраненный запрос.

    <queryBase defaultForSearch="true" id="workOrderHistoryAsset_queryBase_searchAllWorkOrdersh" name="searchAllWorkOrdersAsset" queryUri="/oslc/os/oslcwodetail?savedQuery=ANYWHERE_WOHIST"/> 
    

Кроме того, это позволяет запрос, где положение, чтобы управляться в интерфейсе, так что, когда пользователи решают, что они хотят увидеть что-то еще здесь вы можете чесотки запрос в Maximo. Мы приближаемся к концу нашего проекта с Anywhere, поэтому не стесняйтесь обращаться к нам, если хотите обменяться историями войны.