You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maximo API跨对象查询问题:基于GMI_MSP_GL实现SQL等效数据获取

解决Maximo OSLC API关联多对象查询问题

问题分析

你当前的OSLC请求仅针对GLCOMPONENTS对象做基础过滤,未关联CHARTOFACCOUNTS对象,完全没实现原SQL中IN子查询的核心逻辑,因此无法得到预期结果。原SQL的核心是从CHARTOFACCOUNTS中筛选出GLCOMP01='CM..'的GLCOMP02值,再用这些值过滤GLCOMPONENTS。

正确的OSLC查询写法

由于两个对象都在GMI_MSP_GL对象结构下,Maximo OSLC支持通过子查询实现该逻辑,以下是符合需求的请求示例:

https://serverhost/maxrest/oslc/os/GMI_MSP_GL?lean=1&oslc.select=compvalue,comptext&oslc.where=orgid=%220001%22%20and%20sapglaccttype=%22A%22%20and%20compvalue%20in%20(select%20GLCOMP02%20from%20CHARTOFACCOUNTS%20where%20GLCOMP01=%22CM..%22)

关键调整说明

  • URL转义处理:将原请求中的双引号替换为URL转义符%22,避免URL解析报错
  • 补充子查询逻辑:在oslc.where中添加compvalue in (select GLCOMP02 from CHARTOFACCOUNTS where GLCOMP01="CM.."),和原SQL的IN子查询逻辑完全对齐
  • 保持精简响应:保留oslc.select=compvalue,comptext和lean=1参数,只返回所需字段,减少响应数据量

备选关联写法(若子查询不生效)

如果你的Maximo版本对OSLC子查询支持有限,可以利用对象结构中两个对象的关联关系(假设CHARTOFACCOUNTS与GLCOMPONENTS存在字段关联),用直接关联的方式实现等价逻辑:

https://serverhost/maxrest/oslc/os/GMI_MSP_GL?lean=1&oslc.select=compvalue,comptext&oslc.where=orgid=%220001%22%20and%20sapglaccttype=%22A%22%20and%20CHARTOFACCOUNTS.GLCOMP01=%22CM..%22%20and%20compvalue=CHARTOFACCOUNTS.GLCOMP02

内容的提问来源于stack exchange,提问作者Abhilasha Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 18:22:32