gpt4 book ai didi

java - 在 Maximo 中使用 java 添加新行到另一个表

转载 作者:行者123 更新时间:2023-12-02 05:06:17 27 4
gpt4 key购买 nike

我正在使用两个表:KINCIDENT 和 ASSISTANT。主要的一个是 KINCIDENT,两者通过 ID 链接。我可以从应用程序添加新行,但我想使用 Java 来执行此操作。我尝试了以下代码,但没有成功:

MboSetRemote assistSet = MXServer.getMXServer().getMboSet("ASSISTANT",userInfo);
MboRemote newAssist = assistSet.add();
newAssist.setValue("LOCATION",x);
newAssist.setValue("INCNUM",y);
assistSet.save();

我检查了该行是否已添加,但事实并非如此,而且我也没有在数据库中找到任何新条目。我错过了什么吗?

最佳答案

只要您的代码正在运行,您就应该在辅助表中看到该新记录,但您绝对不会在屏幕上看到它。要使记录显示在屏幕上,您必须了解 Maximo 的“缓存”系统,以获取和编辑支持屏幕的集合的确切实例,而不是任何实例(或像您在此处创建的全新实例)。

我不知道你的 Java 代码在哪里(应用程序 bean、MBOSet、MBO 或字段类),也不知道你正在 Hook 什么事件/触发器(添加新记录、保存现有记录或其他内容),了解这两者都很重要。我假设您处于在“add()”方法中运行的 KINCIDENT 对象的 MBO 类中;这意味着当创建新的 KINCIDENT 时,您想要添加新的 ASSISTANT 记录。作为该触发器的一部分运行应该意味着当用户添加新记录时您已经挂接到 KINCIDENT 对象的屏幕实例中。为了使您的 ASSISTANT 记录出现在屏幕支持的设置实例中,您需要遵循屏幕从 KINCIDENT 到 ASSISTANT 的关系。我假设屏幕上 ASSISTANT 表是使用关系设置为 KINCIDENT 表的子表。在这种情况下,您只需要使用该关系获取 ASSISTANT 集。假设您的关系的名称与集合相同(“ASSISTANT”),它看起来像这样:

MboSetRemote assistSet = getMboSet("ASSISTANT");
MboRemote newAssist = assistSet.add();
newAssist.setValue("LOCATION",x);
newAssist.setValue("INCNUM",y);

这还不会保存您的记录(将其保存到数据库),但您希望将保存保持在最低限度。让用户通过点击工具栏中的“保存”/磁盘图标来指定是否应保存记录。

关于java - 在 Maximo 中使用 java 添加新行到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27763701/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com