OSLC getlist 键域

OSLC getlist key field

我正在使用 oslc 的 getlist 功能来确定工作单​​各个字段的域。我迷失的是如何确定返回的每个列表项中的关键字段。似乎根据字段的不同,响应引用的外部对象具有不同的结构,这使得很难即时确定关键字段是什么。例如,假设我对特定工单调用 getlist~lead。我得到了一份人员 mbos 列表 - 其关键字段是 personid。但是如果我调用 getlist~status,我会看到同义词域的状态 - 所以关键字段是 maxvaluevalue.

我决定尝试将其纳入 Java 自定义,看看我是否可以通过直接使用 Java 类 而不是试图在 oslc 周围寻找更多的清晰度API 对于似乎不存在的东西。我找到了方法 mbo.getList(field).getMbo(i).getKeyValue().getAsString(),但令我感到困惑的是它 returns 是一个 String[] 而不是一个 String。当我调用 getList("status") 时,我将其作为“关键字段”:["DOMAINID", "MAXVALUE", "VALUE", "SITEID", "ORGID"]。有什么方法可以确定 getList(field) 返回的 mboSet 的实际键字段是什么?

通过查找哪个字段来了解 return 的字段值是相当复杂的。在某些情况下,您可以使用两个对象的 primarykeycolseq 并查看字段名称在哪里重叠以了解什么去哪里,在某些情况下您可以读取 maxlookupmap table 并确定什么需要去哪里,在某些情况下您可以阅读交叉域,看看什么需要去哪里,在某些情况下,你运气不好,因为一些代码(脚本或实际的 MBO)决定了什么去哪里。有一篇 IBM 文章介绍了 Maximo 用来确定这一点的备用方法,但我似乎已经丢失了它(并且无法在 Google 上找到它)。其中一些情况您将无法在 Maximo 外部(甚至在 Maximo 内部)确定,因为它在代码中,例如您的状态字段。

我见过的每个 external-to-Maximo 解决方案(包括我帮助创建的解决方案)都有自己的配置项来定义查找 returns(以及精确查找本身,因为它们也有许多可能的规则并不总是确定的,比如状态字段通常只允许您根据您的记录数据选择状态的子集,而不仅仅是其中的任何一个)。您可能需要自己开始做这样的事情。要么“只知道”每个案例并将其放入您的代码中,要么创建一些 semi-complex 配置,允许用户在您的应用程序中(重新)定义这些查找及其 return 并将其留给他们(也许可以帮助他们并提供常用的)。