我在连接基于 IBM 大型机的 CICS 应用程序时遇到了一个有趣的问题。我可以使用 s3270 和 x3270if 成功登录并写入输入字段。但是,我正在使用的 CICS 系统期望某些命令被简单地写入“屏幕”,而不是正确的输入字段。我正在使用 String() 函数写入输入字段,但我似乎找不到一个函数,它可以简单地将字符串写入给定的屏幕位置。
有没有人处理过类似的情况并可以为我提供一些指示?
对于 3270,没有“写入屏幕”之类的东西,而不是写入字段。格式化的 3270 缓冲区是一组字段,每个字段都有一组特定的属性。除非存在包含该位置的不受保护的字段,否则您不能写入任意屏幕位置。那是 3270 规格,这就是 3270 硬件的工作方式,这就是 3270 模拟器的工作方式,而您可能用于与 3270 模拟器一起工作的任何 API 都会暴露这一点。
(您可能有一个未格式化的 3270 缓冲区,但我认为这不是您面临的情况,因为那时您将能够写入任何屏幕位置 - 缓冲区本质上是一个大字段。)
所以你需要弄清楚你试图写入的屏幕是如何格式化的,它的字段在哪里,以及应用程序期望它的输入在哪里。如果您可以运行仿真并根据您拥有的任何指令键入输入,那么它应该很简单 - 无论您的输入在哪里,您都应该以编程方式将其放置在哪里。