Java 使用Jagacy jar自动化大型机应用程序时,收到错误消息,指出“尚未将KDB16104I应用程序定义到CICS”

Java 使用Jagacy jar自动化大型机应用程序时,收到错误消息,指出“尚未将KDB16104I应用程序定义到CICS”,java,automation,mainframe,Java,Automation,Mainframe,我是大型机自动化新手,正在尝试使用Jagacy jar和java自动化应用程序。在一个特定的屏幕上,我必须输入一个从0到9的数字,此后我将使用jagacy提供的writePosition函数在屏幕上输入值。但问题是,它只接受字符串值作为参数。 当我尝试将数字6作为字符串输入时,它给出了一条错误消息,说明尚未向CICS定义KDB16104I应用程序 我不知道CICS是什么,谷歌上也没有关于这个错误的信息。在此方面的任何帮助都将不胜感激 public void writePosition(final

我是大型机自动化新手,正在尝试使用Jagacy jar和java自动化应用程序。在一个特定的屏幕上,我必须输入一个从0到9的数字,此后我将使用jagacy提供的writePosition函数在屏幕上输入值。但问题是,它只接受字符串值作为参数。 当我尝试将数字6作为字符串输入时,它给出了一条错误消息,说明尚未向CICS定义KDB16104I应用程序

我不知道CICS是什么,谷歌上也没有关于这个错误的信息。在此方面的任何帮助都将不胜感激

public void writePosition(final int i, final int j, final String s) 
throws JagacyException {
    if (i < 0 || i >= this.getHeight()) {
        throw new IllegalArgumentException("Invalid row: " + i);
    }
    if (j < 0 || j >= this.getWidth()) {
        throw new IllegalArgumentException("Invalid column: " + j);
    }
    this.writeCursor(i, j);
    this.writeString(s);
}

错误消息:尚未将KDB16104I应用程序定义为CICS

您可能没有正确驱动目标应用程序环境,或者目标应用程序环境不愿意以您尝试驱动它的方式驱动。就这么简单。从概念上讲,解决方案也很简单:当您认为您提供了正确的输入而没有得到预期的响应时,请执行标准的故障排除程序

您可以安全地假设通信路径在基本级别工作。这个错误消息是从您的主机返回的,它只是简单地说,实际上,我不会按照您的要求去做。现在,我将尝试使用用户操作的终端仿真器登录,该仿真器具有完全相同的连接详细信息和凭据用户ID、密码,然后查看选项6是否有效。如果没有,那么终端自动化也不会起作用。如果它确实有效,那么在该字段中尝试另一个数字,看看它是否也有效。如果另一个数字有效——让我们假设它是数字3——那么在自动化中尝试3。如果3在您的自动化中不起作用,那么Jagacy自动化中会出现问题,例如代码页设置、PS位置行、列-通常PS位置值将从1开始,而不是从0开始,3270型号标准型号为2到5,这将影响主机将显示的列数和行数,可能无论您是否配置了TN3270E而不是TN3270,E几乎总是您想要的,或者其他什么。您可能还想尝试在输入数字6之前插入一个暂停等待时间,然后您还有一些工作要做,以解决该问题(如果是问题的话)


顺便说一下,我对终端驱动的自动化不感兴趣。是的,这是一门长期实践的艺术,但在我看来,它太经常了。你想完成什么?由于这是您正在与之交互或尝试与之交互的CICS,CICS本身除了基于终端的交互之外,还提供了许多其他交互选择。

CICS是您公司的一个组吗?我的猜测是,大型机将只运行它“知道”的应用程序,这意味着某些系统管理员允许该应用程序运行。我建议您四处打听,看看贵公司在大型机上运行应用程序的策略是什么。CICS是一个类似于WebSphere application Server或Apache Tomcat的应用程序容器。这不是一个小话题。大型机安全团队中的某个人必须授权一个ID来登录CICS并执行CICS称之为事务的特定应用程序,该事务显示您所指的屏幕,上述功能在一台机器上工作,而在另一台机器上不工作。除此之外,这不是用户特定的问题,因为我的ID在代码正常工作的机器上工作。在我的机器上,代码也工作了几个屏幕登录和选项选择,但在需要整数值的特定屏幕上,它表示应用程序未注册到CICS。