在 Maximo 中使用 java 向另一个 table 添加新行
Adding a new row to another table using java in Maximo
我正在使用两个表: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();
我检查了是否添加了该行,但没有,而且我也没有在数据库中找到任何新条目。我错过了什么吗?
只要你的密码是运行,你应该在助手里看到那条新记录table,但你肯定不会在屏幕上看到。要使记录显示在屏幕上,您必须了解 Maximo 的 "cache" 系统以获取和编辑支持屏幕的集合的确切实例,而不是任何实例(或您在那里创建的全新实例).
我不知道您的 Java 代码在哪里(一个应用程序 bean、一个 MBOSet、一个 MBO 或一个字段 class),我也不知道什么 event/trigger 您正在挂钩(添加新记录、保存现有记录或其他内容),这两点都很重要。我假设您在 "add()" 方法中的 KINCIDENT 对象 运行 的 MBO class 中;这意味着当创建一个新的 KINCIDENT 时,您想要添加一个新的 ASSISTANT 记录。 运行 作为该触发器的一部分应该意味着当用户添加新记录时您已经连接到 KINCIDENT 对象的屏幕实例。要使您的 ASSISTANT 记录出现在支持屏幕的集合实例中,您需要遵循屏幕从 KINCIDENT 到 ASSISTANT 的关系。我假设在屏幕上使用关系将 ASSISTANT table 设置为 KINCIDENT table 的子项。在那种情况下,您只需要使用该关系获取 ASSISTANT 集。假设您的关系与集合同名 ("ASSISTANT"),它看起来像这样:
MboSetRemote assistSet = getMboSet("ASSISTANT");
MboRemote newAssist = assistSet.add();
newAssist.setValue("LOCATION",x);
newAssist.setValue("INCNUM",y);
这还不会保存您的记录(将其保存到数据库中),但您希望将您的保存保持在最低限度。让用户通过点击工具栏中的 "save"/磁盘图标来指定是否应保存记录。
我正在使用两个表: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();
我检查了是否添加了该行,但没有,而且我也没有在数据库中找到任何新条目。我错过了什么吗?
只要你的密码是运行,你应该在助手里看到那条新记录table,但你肯定不会在屏幕上看到。要使记录显示在屏幕上,您必须了解 Maximo 的 "cache" 系统以获取和编辑支持屏幕的集合的确切实例,而不是任何实例(或您在那里创建的全新实例).
我不知道您的 Java 代码在哪里(一个应用程序 bean、一个 MBOSet、一个 MBO 或一个字段 class),我也不知道什么 event/trigger 您正在挂钩(添加新记录、保存现有记录或其他内容),这两点都很重要。我假设您在 "add()" 方法中的 KINCIDENT 对象 运行 的 MBO class 中;这意味着当创建一个新的 KINCIDENT 时,您想要添加一个新的 ASSISTANT 记录。 运行 作为该触发器的一部分应该意味着当用户添加新记录时您已经连接到 KINCIDENT 对象的屏幕实例。要使您的 ASSISTANT 记录出现在支持屏幕的集合实例中,您需要遵循屏幕从 KINCIDENT 到 ASSISTANT 的关系。我假设在屏幕上使用关系将 ASSISTANT table 设置为 KINCIDENT table 的子项。在那种情况下,您只需要使用该关系获取 ASSISTANT 集。假设您的关系与集合同名 ("ASSISTANT"),它看起来像这样:
MboSetRemote assistSet = getMboSet("ASSISTANT");
MboRemote newAssist = assistSet.add();
newAssist.setValue("LOCATION",x);
newAssist.setValue("INCNUM",y);
这还不会保存您的记录(将其保存到数据库中),但您希望将您的保存保持在最低限度。让用户通过点击工具栏中的 "save"/磁盘图标来指定是否应保存记录。