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

标签 maximo

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

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

使用此 URL(以及操作系统)会尝试插入记录,即使 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.

查看以下网址中的信息,我无法确定在没有唯一 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 来“创建新资源”:

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

虽然对/os/mxwo/{id} 的 POST 用于“更新 WORKORDER 对象”:

/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 进行过滤的查询,并且只接收返回的最小值 字段(例如仅 workorderid)。
  3. 如果 (1) 或 (2) 都不可行,请调查是否可能 自定义 Maximo 并为工作订单创建您自己的端点 以 wonum 和 siteid 作为参数的对象结构, 检索 mbo 并执行更新。

关于Maximo- 通过传递 wonum 和 siteid 而不是 workorderid 使用 RESTApi 更新工作订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61559251/

相关文章:

sql - 生成分层路径

oracle - Maximo MAXINTMSGTRK 表 : How to extract text from MSGDATA column? (HUGEBLOB)

filter - Maximo ListView : Filter where field is null OR equals value?

python - 我可以使用 python 脚本获取用户在登录 Maximo 时运行的查询吗?

oracle - MAXimo 工单总人工成本和总 Material 成本

birt - 如何为多个报告生成请求页面

c# - MAXIMO API 7.6.1 POST 以编程方式创建服务请求创建空记录,但在 POSTMAN 中同样有效

variables - Maximo:MAXVARS 的目的是什么?

java - 尝试从java代码获取maximo中的 Assets 详细信息时遇到 "system#unknownerror"

vba - 将 Maximo 工单信息自动获取到 Excel