Maximo-使用RESTApi通过传递wonum和siteid而不是workorderid来更新工单。

问题描述 投票:0回答:1

我们目前在 Maximo 7.6.1 上,已经开始使用 Restful APIs,想知道是否有办法通过传递 wonum 和 siteid 而不是 workorderid 来使用 RESTApi 更新工单。

我们希望避免中间件额外的GET调用来检索workorderid,然后在PUT请求中使用它。

使用这个URL(OS也是)尝试插入一条记录,即使HTTP方法是PUT。

maxrestmboWORKORDER?_action=AddChange&siteid=XXX&wonum=7065644&description=Testing。

任何指点都会有帮助。

谅谅

maximo
1个回答
1
投票

IBM文档似乎建议你只能用唯一的ID更新现有记录。

使用PUT方法来更新或插入资源 更新请求必须提供资源的唯一ID。要更新一个对象结构资源,需要提供主对象的ID。

https:/www.ibm.comsupportknowledgecenterenSSLKT6_7.6.0com.ibm.mif.docgp_intfrmwkrest_apir_rest_put_method.html

使用您提供的网址收到的响应似乎证明了这一点,因为它表明工单已经存在,无法创建。

Error 400: BMXAA4129E - The record for Site=BEDFORD, Work Order=1234 already exists. 确保给定记录的键值是唯一的。

查看以下网址的信息,我无法确定在没有唯一ID的情况下执行更新的方法。

https:/www.ibm.comdeveloperworkscommunitywikisformanonymousapiwiki02db2a84-fc66-4667-b760-54e495526ec1page87348f89-b8b4-4c4a-94bd-ecbe1e4e8857attachment0a884bde-d17e-471b-b046-7f8feddfd267mediaMaximoNextGenRESTAPI%20%281%29.pdf

此外,Maximo RESTful API Swagger 文档指出,对 osmxwo 的 POST 用于 "创建一个新资源"。

maximooas3api.html?includeactions=1#Work_Order_Definition_(MXWO)post_os_mxwo。

而对osmxwo{id}的post则用于 "更新WORKORDER对象"。

maximooas3api.html?includeactions=1#Work_Order_Definition_(MXWO)post_os_mxwo__id_。

然而,我能够使用唯一的ID更新现有的工单。 在这种情况下,我只能提出以下建议之一。

  1. 如果你是先使用RESTOSLC API创建工单,则从创建记录时收到的响应中检索并存储唯一ID。
  2. 如果上面的(1)不可能,执行GET,并在查询中使用参数来过滤wonum和siteid,并且只接收最少的字段(例如,只接收workorderid)。
  3. 如果(1)或(2)都不可行,调查是否有可能定制Maximo,并为工单对象结构创建自己的端点,将wonum和siteid作为参数,检索mbo并执行更新。
© www.soinside.com 2019 - 2024. All rights reserved.