微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OSLC getlist关键字段

如何解决OSLC getlist关键字段

我正在使用oslc的getlist功能来确定工作订单各个字段上的域。我迷失的是如何确定返回的每个列表项中的关键字段。看起来,根据字段的不同,响应所引用的异物具有不同的结构,这使得难以即时确定关键字段是什么。例如,假设我在特定的工作指令上调用getlist~lead。我得到了个人mbos的列表-其关键字段是personid。但是,如果我致电getlist~status,则会看到状态的同义词域-则关键字段为maxvaluevalue

我决定尝试将其引入Java定制中,以查看是否可以通过直接使用java类来获得更多的清晰度,而不是尝试在oslc API上查找似乎不存在的东西。我已经找到了方法mbo.getList(field).getMbo(i).getkeyvalue().getAsstring(),但是我有点困惑,它返回的是String[]而不是单个的String。当我致电getList("status")时,将其作为“关键字段”:["DOMAINID","MAXVALUE","VALUE","SITEID","ORGID"]。有什么方法可以确定getList(field)返回的mboSet的实际关键字段是什么?

解决方法

从查找到哪些字段返回哪个字段值是相当复杂的。在某些情况下,您可以使用两个对象的primarykeycolseq并查看字段名称重叠的位置,以了解行进路径,在某些情况下,您可以读取maxlookupmap表并确定需要行进的内容,在某些情况下,您可以读取交叉域并查看需要去哪里,在某些情况下您不走运,因为某些代码(脚本或实际的MBO)确定了要去哪里。有一篇IBM文章介绍了Maximo用来确定其本身的后备方法,但我似乎已经丢失了它(并且无法在Google上找到它)。在某些情况下,您将无法在Maximo之外(甚至在Maximo内部)进行确定,因为它位于代码中,例如您的状态字段。

我所见过的每个从外部到Maximo的解决方案(包括我帮助创建的一个解决方案)都有其自己的配置项来定义查找返回值(以及精确的查找本身),因为这些也有很多可能的规则,并非总是可以确定的,就像状态字段通常只允许您根据记录数据选择状态的子集,而不仅仅是其中的任何一个。您可能需要自己开始做类似的事情。要么“只知道”每种情况并将其放入您的代码中,要么创建一些半复杂的配置,使用户可以在您的应用程序中(重新)定义这些查找及其返回值,并将其留给他们(也许可以帮助他们完成并提供常用的)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。