我已尝试通过 IBM Maximo 中的 REST 服务创建自定义对象的记录。 问题是我创建了记录,但无法为属性赋值。
接下来我将展示我做了什么以及发生了什么:
我有一个名为 oxidato 的对象结构,代表我的自定义对象。
我使用 POSTMAN 对这个 URL 进行了 POST:
http://hostname:port/maximo/oslc/os/oxidato?lean=1
在正文部分,这是我尝试发送的 JSON:
{ "attribute1":"205", "attribute2":"206" }
- 记录已创建,但没有填充任何属性。
在我看来,REST 服务收到了 POST 但无法读取正文。
EDIT1:我更新了 POST 以使用最新的 API RES(感谢 Dex!)
EDIT2:我添加标题图片
最佳答案
我发现 Maximo 经常会忽略不在 Maximo 命名空间 ( http://www.ibm.com/maximo ) 中的传入属性。您可能会遇到将 VALOR1 和 VALOR2 属性设置在该 namespace 中的麻烦,但只告诉 OSLC 忽略 namespace 会更容易。您可以通过将“精益”参数设置为“1”来做到这一点。
在您的情况下,转到“Params”选项卡并添加一个名为“lean”的条目。给它一个值“1”,然后再次发送您的 POST。您应该看到“?lean=1”出现在顶部 POST URL 的末尾,但您的正文内容应保持不变。
编辑: 另一方面,看起来(根据您的 URL)您实际上并没有使用更新的 JSON/OSLC REST API;看起来您正在使用较旧的 REST 服务。这个 IBM 页面为您提供了很多关于更新的 JSON REST API 的信息,包括它的正确 URL:https://developer.ibm.com/static/site-id/155/maximodev/restguide/Maximo_Nextgen_REST_API.html . 您应该将 URL 更改为/maximo/oslc/os/oxidato 以使用自然支持 JSON 和上述精益参数的较新 API。不过,这确实需要 Maximo 7.6 才能使用。
编辑 2: 这些属性通常对大小写敏感,需要小写。您在“attribute1”和“attribute2”问题中的示例是正确的小写,但您的屏幕截图显示大写属性名称。尝试将它们更改为“valor1”和“valor2”。另外,这些是持久属性,对吧?
关于rest - IBM Maximo REST 服务 POST 未在 MBO 上设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62825685/