【问题标题】:Excel spreadsheet to COBOL programExcel 电子表格到 COBOL 程序
【发布时间】:2015-05-22 06:36:40
【问题描述】:

我的任务是将 Excel 宏(基本上是屏幕抓取)迁移到 COBOL 程序。

问题是用户想要以 excel 格式提供输入,我不知道如何将 excel 文件转换为 TN3270 大型机系统的可读输入。

有些人建议做一些称为平面文件转换的事情,我不知道该怎么做。

有没有更简单的方法可以从 Excel 电子表格中提取输入以在 TN3270 大型机上运行 COBOL 程序。

下面是要转换的工具截图。

据我所知,我们可以将其转换为平面文件并使用分隔符(|)读取字符串,但我想知道是否有更好的方法。

【问题讨论】:

  • 祝你好运。 excel宏api很弱。特别是使用像钴这样的东西来通过它。我能提供的唯一提示是 xlsx 文件是压缩的 xml 文件。
  • 不清楚你想要什么。你需要更多、准确的信息。 TN3270 只是一个硬件仿真术语。需要知道 COBOL 程序将在哪里、在什么操作系统上以及使用哪个编译器。还需要准确了解 Excel 电子表格的任何持续作用。
  • 投反对票可能是因为您没有提供足够的信息。这是一个艰难的。如果你能把它变成一个好问题,我会用我的赞成票来抵消你的反对票。但我的第一个想法是,字里行间,有人在设计过程中有超出合理的期望。准确描述现在正在发生的事情,以及您希望用 j 替换它的确切内容。
  • @Bill 。谢谢,我对大型机部分不太熟悉,因为我们使用模拟器(TN3270),但我知道它运行 Z/O,我不知道编译器,excel 文件将仅被视为纯输入。
  • 还需要更多信息,例如电子表格作为源的频率(一次、一天一次、其他时间段)?您将使用 Enterprise COBOL,您的站点是否有 CICS、IMS/DC?什么 DBMS,如果有的话?是否有任何数据返回到电子表格?用户最终会使用他们希望看起来更像 Excel 的大型机系统吗?可以做到,但不能靠近power oif Excel。

标签: excel cobol mainframe jcl vba


【解决方案1】:

您可能希望将任务分成几个步骤

  1. 从 Excel 工作表中提取数据
  2. 使数据可用于 COBOL 程序
  3. 在 COBOL 中处理数据

不知道你的问题的细节,我只能在这一点上提出解决方案:

  1. 为应用程序使用 Visual Basic 创建文件(您可能希望寻找 CSV 解决方案并考虑到可能需要更改文件编码)
  2. 使用传输实用程序 - 例如ftp 或其他一些大型机连接,可让您将文件从运行 Excel 的计算机传输到大型机。一些 3270 终端软件也为此提供了 API。
  3. 将 Excel 逻辑转换为 COBOL(如果有)

【讨论】:

  • 哇..准点!这就是我们想要做的事情..我们正在这样做,我们尝试使用 SOAP 进行传输,但简单的 FTP 工作..您能否提供有关如何使用 .csv 文件的提示,以便 COBOL 代码可以读取它,我的意思是有不同的列,目前我们正在使用分隔符来知道特定字段何时结束等等..
  • 虽然其他答案很有用,但我目前的情况是准确的......谢谢......如果你能帮助我解决这个问题,我会非常高兴。
  • 谢谢。互联网搜索是你的朋友。例如。 “cobol read comma delimited file”给出了一些结果。其中之一是simotime.com/cblcsv02.htm
  • @Anarach 排在第五位,Roll Your Own。您选择的特定方式是我在开头段落中所忽略的。真的,真的,真的,确保你的用户可以从他们知道的 Excel 转移到一个家庭编写的大型机系统(所以没有鼠标滚动,没有论坛,没有单元格锁定,没有打印格式,没有复制/粘贴大区域或格式化数据等,等等,等等,等等,等等,等等)。如果您在有生之年完成了“将 Excel 逻辑转换为 COBOL(如果有)”,请告诉我,我会支持您的问题。
  • @BillWoodger 我明白,大型机无法取代 excel,但问题是我们正在处理大量敏感数据,而在 excel 中,用户犯了一些愚蠢的错误,这使公司损失了数百万美元,所以我们要去保留输入功能的excel并将业务逻辑转换为COBOL程序。我们将教用户如何运行 JCL 程序并在大型机上训练他们。
【解决方案2】:

您无法在大型机上运行 Excel,并且每次用户需要更多类似 Excel 的功能时,在那里编写代码都会增加复杂性。这将是重新发明轮子的一种变体,这是需要避免的。

您有一个使用 Excel 的用户,大型机上的 IMS 数据库中需要该信息。到目前为止,最明智的做法是提供将两者链接在一起的东西,允许用户继续使用 Excel,但需要进行自定义(针对特定的 Excel 应用程序)以连接到 IMS 数据库并使用它,甚至用于更新.

您如何执行此操作取决于您在您的站点上已有的可以执行此操作的设备。这是 IBMSystems 杂志大型机版的一篇文章:http://www.ibmsystemsmag.com/mainframe/administrator/ims/imstm_integration/

这里是文章的摘录,向您展示了执行此操作的一些选项组。在这些组中,将有应用每个选项的特定方法。当然,在 RYO 下,有大量高度定制的可能性:

  1. Java EE 连接器架构 (JCA)

用于连接应用服务器的基于 Java 的技术解决方案 和企业信息系统 (EIS),具有一套标准的 Java EE 应用程序服务器和 管理连接、事务、安全性的资源适配器, 工作、生命周期、事务流入和消息流入。

您有一个现有的 Java EE 服务器或 IBM 服务器之一 需要访问 IMS。

主要用途是直接同步 IMS 访问。

  1. 简单对象访问协议 (SOAP)

一种允许异构应用程序发现和 以独立于平台和语言的方式相互交流 方式。

您需要与需要 SOAP 协议。

主要用途是同步 IMS 访问。

  1. 具象状态转移 (REST)

一种用于简单 Web 服务和高效数据交换的协议 通过无状态应用程序,与 JavaScript 结合使用 Object Notation (JSON),一种轻量级的数据交换格式。 JSON REST 通常用于移动应用程序、mashup 工具或 自动化的业务流程。

您需要移动解决方案。

  1. Java 消息服务 (JMS)

用于交换数据的基于异步的消息传递接口 在使用支持 Java 的消息服务的计算机之间 程式。

您有现有的 Java 应用程序。

您正在使用基于 Java EE/JMS 的应用程序服务器。

主要用途是异步 IMS 访问。

  1. 自己卷 (RYO)

当组织已经拥有自己的方法时经常使用的方法 处理交易的解决方案的实现,安全性 和消息流。

您有一个现有的内部服务器,需要一个简单的 API 连接到 IMS。

您需要与设计人员联系,他们需要联系您的技术支持部门,了解此类连接已有的可用内容。如果什么都没有,那么就必须有人对各种供应商提供的内容进行技术审查。最喜欢的搜索引擎会显示这些提供商是谁。

【讨论】:

  • 非常感谢您,SOAP 看起来很有希望。有一个支持团队说会帮助我们解决这个问题。希望它有效:-)
【解决方案3】:

其实很简单。只需将您的 Excel 文件保存为 CSV 文件(逗号分隔)。列中的每个字段的大小可以不同。然后使用相同的保存名称将其读入 COBOL 程序。然后简单地在 COBOL 中使用UNSTRING 以',' 分隔字段。

在一个程序中,我将 50,000 条记录从 Excel 文件读入 COBOL,有时多 10,000 条,有时更少。在 COBOL 中使用动态语句,它会自动将 Excel 文件中的每一列分隔为 COBOL。我碰巧使用表来存储记录。

【讨论】:

  • 如何在 cobol 中读取 csv?如何使用 cobol 处理 csv 中的日期格式和编辑数据?
猜你喜欢
  • 1970-01-01
  • 2015-11-19
  • 1970-01-01
  • 1970-01-01
  • 2020-09-09
  • 2017-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多