我想构建一个小应用程序来计算批处理流程的关键批处理。 作为输入,我需要使用大型机数据集。如果可能,那就是动态,也就是说,我可以选择当时适用的字段。
我在互联网上搜索过这个,但没有发现任何适合我想做的事情。 有没有办法做到这一点?
答案 0 :(得分:2)
我在大型机库中有一个数据集,我想将该文件ftp到Excel。
在大型机上将文件转换为CSV(例如,通过REXX exec,z / OS UNIX shell脚本或Lua4z程序), 然后通过FTP将该CSV文件插入Excel。
您无需将CSV文件传输到PC的文件系统,然后,作为单独的步骤,在Excel中打开它。
而是将CSV的FTP(或HTTP)URL定义为Excel中的数据源。此技术的一个优点是您可以刷新该URL中的数据 无需在Excel中重新应用格式。
执行此操作有各种tutorials on the web。
简而言之:
在导入文本文件对话框的文件名文本框中,输入CSV文件的FTP URL。例如:
(这假设您的主机配置为允许使用此路径的FTP。)
主机名(zos1)后面的两个连续斜杠(/)字符表示该路径引用了z / OS UNIX文件(/u/me/data.csv)。
CSV文件必须位于z / OS UNIX路径中。 FTP客户端不接受MVS样式(dsname)路径,例如' me.csv(数据)' (即使在URL编码时;也就是说,单引号转义为%27);相比之下,cURL接受这样的路径就好了。
大型机上的CSV文件必须是ASCII编码,而不是EBCDIC。 (这里,我使用术语ASCII不精确:您想要的精确字符编码取决于您的PC设置。您可能需要Windows-1252。)这是因为FTP客户端将默认传输类型设置为二进制
要刷新数据,请将当前数据替换为新的FTP请求的结果:在数据标签上,点击全部刷新。数据被替换;单元格格式保持不变。
(严格来说,我的意思是ISO-8859,而不是ASCII。)
假设您有JCL生成以EBCDIC编码的CSV文件。您希望通过FTP将该CSV文件作为ASCII编码的z / OS UNIX(zFS)文件提供给Excel。
使用以下DD语句替换输出CSV文件的现有DD语句:
//OUTCSV DD PATH='/u/me/data-ebcdic.csv',
// PATHOPTS=(OWRONLY,OCREAT,OTRUNC),
// PATHDISP=(KEEP,DELETE),
// PATHMODE=(SIRUSR,SIWUSR,SIRGRP),
// FILEDATA=TEXT
将ddname OUTCSV
替换为您的ddname,将zFS文件路径/u/me/data-ebcdic.csv
替换为您要使用的路径。
感谢FILEDATA=TEXT
参数,生成的CSV文件将包含X' 15'每行末尾的字节。
将以下步骤附加到您的JCL:
//ICONV EXEC PGM=IKJEFT01
//SYSTSIN DD *
BPXBATCH sh iconv -f IBM-037 -t iso8859-1 +
/u/me/data-ebcdic.csv +
> /u/me/data-ascii.csv
/*
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
如果您想知道为什么我通过iconv
调用BPXBATCH
作为shell命令,请执行以下操作:
//ICONV EXEC PGM=EDCICONV
// PARM=('FROMCODE(IBM-037),TOCODE(iso8859-1)')
没有做得很好:它离开了X' 15'字节不变,而运行iconv
作为shell命令正确地将它们转换为X' 0A'。 (z / OS 2.2。)
答案 1 :(得分:1)
您在评论中获得了一些很好的信息,共识似乎是转换为CSV(或TSV以避免数据中嵌入逗号)是最简单的路线。以下是从another answer ...
复制的更多信息我强烈建议您之前将文件转换为文本格式 将它们转移到另一个具有不同代码页的框中。尝试去 处理混合文本(必须翻译其代码页)和 二进制(不得翻译其代码页,但可能 必须从big endian转换为little endian)比使用更难 事先进行转换。
转换很可能是通过SORT实用程序完成的 大型机。大型机SORT实用程序往往拥有大量数据 操纵功能。您可以使用其他机制 (其他实用程序,用您选择的语言编写的自定义代码, 购买套餐)但这是我们倾向于做的 情况。
转换平面文件后,所有数据都是文本, 您可以通过FTP或SFTP或FTPS传输它们。
...感谢您回来并添加更多信息。希望这里的人们提供足够的信息来帮助您解决问题。
答案 2 :(得分:1)
XML将是另一种可能的面向文本的解决方案。创建需要花费更多精力,但您可以在Excel中设计电子表格并另存为XML文档,然后编写程序以使用大型机数据集中的数据生成xml文本。虽然这比简单的CSV或TSV文件更难实现,但它具有实现CSV文件无法执行的电子表格公式和属性的优势。另一个优点是,您可以将XML文档附加到SMTP电子邮件备注,并以“电子表格格式”将文档提供给客户端。