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

Maximo- Update work order using RESTApi by passing wonum and siteid instead of workorderid

我们目前使用的是 Maximo 7.6.1 并且已经开始使用 Restful API,并且想知道是否可以通过传递 wonum 和 siteid 而不是 workorderid 来使用 RESTApi 更新工作订单。

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

使用此 URL(还有 OS)尝试插入记录,即使 HTTP 方法是 PUT。

/maxrest/rest/mbo/WORKORDER?_action=AddChange&siteid=XXX&wonum=7065644&description=测试

任何指点都会有所帮助。

谢谢

IBM 文档似乎建议您只能更新具有唯一 ID 的现有记录:

Use the PUT method to update or insert a resource. An update request must provide the unique ID of the resource. To update an object structure resource, the ID of the main object is required.

https://www.ibm.com/support/knowledgecenter/en/SSLKT6_7.6.0/com.ibm.mif.doc/gp_intfrmwk/rest_api/r_rest_put_method.html

使用您提供的 url 收到的回复似乎证实了这一点,因为它表明无法创建工作订单,因为它已经存在:

Error 400: BMXAA4129E - The record for Site=BEDFORD, Work Order=1234 already exists. Ensure that the key value for the given record is unique.

查看以下信息 url 如果没有唯一 ID,我无法确定执行更新的方法:

https://www.ibm.com/developerworks/community/wikis/form/anonymous/api/wiki/02db2a84-fc66-4667-b760-54e495526ec1/page/87348f89-b8b4-4c4a-94bd-ecbe1e4e8857/attachment/0a884bde-d17e-471b-b046-7f8feddfd267/media/MaximoNextGenRESTAPI%20%281%29.pdf

此外,Maximo RESTful API Swagger 文档指出 POST 到 /os/mxwo 用于 "Create a new resource":

/maximo/oas3/api.html?includeactions=1#/Work_Order_Definition_(MXWO)/post_os_mxwo

而 POST 到 /os/mxwo/{id} 用于 "Update WORKORDER Object":

/maximo/oas3/api.html?includeactions=1#/Work_Order_Definition_(MXWO)/post_os_mxwo__id_

不过,我能够使用唯一 ID 更新现有工作订单。既然如此,我只能建议以下之一:

  1. 如果您首先使用 REST/OSLC API 创建工作订单, 从收到的响应中检索并存储唯一 ID 记录被创建。
  2. 如果上面的 (1) 是不可能的,执行 GET 并使用参数 过滤 wonum 和 siteid 的查询,只接收返回的最小值 字段(例如,仅限工单 ID)。
  3. 如果 (1) 或 (2) 都不可行,调查是否可行 自定义 Maximo 并为工作订单创建您自己的端点 以 wonum 和 siteid 为参数的对象结构, 检索 mbo 并执行更新。