查看上一个主题 :: 查看下一个主题
|
作者 |
信息 |
科克斯达维
新的用户
已加入:2009年3月12日 帖子:30 所在地:美国
|
|
|
|
我将REXX exec组合在一起,该exec使用库服务使用带有SAVE选项的LMMLIST命令获取成员信息列表,以便将结果放入组数据集(userid.groupid.MEMBERS)中。这是针对一个输入PDS完成的。我想聚在一起,最多可以容纳300个输入数据集,并通过LM命令运行每个输入数据集,并将输出放入相同的输出数据集中。因此,对于每个数据集输入,我希望在处理每个数据集时将输出信息修改或添加到末尾。
此处的另一点信息是300个数据集中的每个数据集的差异化因素都是高级别,即用户ID。
任何有关如何最好地将长长的列表作为输入的想法都将受到赞赏。
谢谢,
戴夫 |
|
回到顶部 |
|
 |
佩德罗
全球主持人

已加入:2006年9月1日 帖子:2214 地点:硅谷
|
|
|
|
引用: |
我希望在处理每个信息时将输出信息修改或添加到末尾。 |
和
引用: |
任何有关如何最好地将长长的列表作为输入的想法都将受到赞赏。
|
我认为一次处理每个数据集。并使用相同的rexx打开输出数据集。继续写作,直到完成所有数据集。
您需要在行上附加一个序列号,以便知道它来自什么数据集。 |
|
回到顶部 |
|
 |
科克斯达维
新的用户
已加入:2009年3月12日 帖子:30 所在地:美国
|
|
|
|
实际上,我希望不必运行REXX作业300次。我真的在寻找某人已经完成LMINIT,LMOPEN,LMMLIST,LMFREE和LMCOPY的内部循环的东西,其中LMMLIST将创建一个新列表,该列表将成为LMCOPY命令的输入,以从LMMLIST命令复制DATA1到新的DATA2数据ID,作为LMCOPY命令的输出。外循环逻辑必须以某种方式引入每个数据集,这些数据集将成为LMMLIST命令的输入。 |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
好看
这是一个帮助论坛,而不是为我做的...
您是否想搜索论坛,我刚刚检查了一下,有很多代码片段
搜索LMMLIST并开始单击结果 |
|
回到顶部 |
|
 |
科克斯达维
新的用户
已加入:2009年3月12日 帖子:30 所在地:美国
|
|
|
|
我不需要好运。我需要找出如何处理将输入到LMMLIST和LMCOPY指令集的300个数据集。事实是,我刚刚发现,如果在输出dataid上指定ENQ(MOD),则不会获得为LMCOPY的输出定义的dataid。必须为ENQ(SHR)。返回绘图板,了解如何在LM中存储和修改输出数据集。您认为我是怎么发现的?因此,请四处浏览IBM LM页面,如果您不能提供建设性的建议,请不要回复。另一方面,如果有人有建设性的建议,请放心。您可能不仅仅对我有帮助。
谢谢。 |
|
回到顶部 |
|
 |
达夫波塞兰
活跃的成员
加入时间:2006年12月1日 职位:747 所在地:宾夕法尼亚州
|
|
|
|
Coxdavi,
这是一些建设性的建议
1)别惹恩里科
2)不要告诉拥有6000多个帖子的人不回复。他们获得了说任何话的权利。他帮助了很多人。
3)Enrico确实为您提供了三点建设性建议
A)不要等别人给你代码
B)搜索论坛
C)搜索LMMLIST
4)您已经在原始帖子中找到了逻辑。继续。
5)不要惹Enrico |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
今天任何人都可以惹我
只为今天,因为我心情很好,明天我不知道
真的要求不是很明确
我将过程分为两部分...
1)获取数据集列表并将其存储到主干中
2)加工茎
优点是可以以这种方式提供数据集列表
1)通过读取无模式的数据集列表
2)使用LMD ****东西用模式构建数据集列表
或使用IGGCSI接口构建相同的
此时数据集列表可用
一切都取决于每个成员必须执行的流程
我很高兴地说它还没有被很好地解释
无论如何
对于输出,我不会打扰使用LM ***服务
如果它是PS数据集,则仅分配并使用EXECIO逐条记录地写入记录
唯一不清楚的是输出记录内容
一旦内容明确,建议可能会更有用 |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
例如获取数据集列表并不困难
码: |
000001 /*REXX*/
000002地址ISPEXEC
000003 dslev="USER.*"
000004 dslst.0 = 0
000005 dsorg.0 = 0
000006 dsnlnen = 0
000007 "LMDINIT 清单ID(LISTID) LEVEL("DSLEV") "
000008 / *构建数据集列表并为每个DSORG保存* /
000009 "LMDLIST 清单ID("LISTID") OPTION(LIST) STATS(YES) DATASET(DSVAR)"
000010 do while ( rc = 0)
000011 i = dslst.0 + 1
000012 dslst.i = strip(dsvar)
000013 dsorg.i = strip(zdldsorg)
000014 dslst.0 = i
000015 "LMDLIST 清单ID("LISTID") OPTION(LIST) STATS(YES) DATASET(DSVAR)"
000016 end
000017 "LMDFREE 清单ID("LISTID") "
000018 / *我们已经建立了列表* /
000019我= 1至dslst.0
000020 say right(i,3) dsorg.i dslst.i
000021 end
000022 exit
|
这只花了我几分钟的时间... PC开机,包括mvs IPL
检查发布时间戳
引用: |
因此,如果您不能提供建设性的建议,请不要回复。 |
但是我自然不能期望TS会欣赏代码片段  |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
这是另一个工作样本,直到数据集列表的成员列表
码: |
000001 /*REXX*/
000002地址ISPEXEC
000003 dslev="USER.*"
000004 dslst.0 = 0
000005 dsorg.0 = 0
000006 dsnlnen = 0
000007 "LMDINIT 清单ID(LISTID) LEVEL("DSLEV") "
000008 / *构建数据集列表并为每个DSORG保存* /
000009 "LMDLIST 清单ID("LISTID") OPTION(LIST) STATS(YES) DATASET(DSVAR)"
000010 do while ( rc = 0)
000011 i = dslst.0 + 1
000012 dslst.i = strip(dsvar)
000013 dsorg.i = strip(zdldsorg)
000014 dslst.0 = i
000015 "LMDLIST 清单ID("LISTID") OPTION(LIST) STATS(YES) DATASET(DSVAR)"
000016 end
000017 "LMDFREE 清单ID("LISTID") "
000018 / *我们已经建立了列表* /
000019我= 1至dslst.0
000020 if dsorg.i <> "PO" then ,
000021 iterate
000022 dsvar = dslst.i
000023 "LMINIT DATAID(LISTID) DATASET("dsvar") ENQ(SHR)"
000024 "LMOPEN DATAID("LISTID") OPTION(INPUT)"
000025 membr=" "
000026 "LMMLIST DATAID("LISTID") MEMBER(MEMBR) STATS(YES)"
000027 if rc = 4 then ,
000028 say dsvar "has no 会员s"
000029 do while ( rc = 0 )
000030 say dsvar membr
000031 "LMMLIST DATAID("LISTID") MEMBER(MEMBR) STATS(YES)"
000032 end
000033 "LMCLOSE DATAID("LISTID")"
000034 "LMFREE DATAID("LISTID")"
000035 end
000036 exit |
ts讲话后,我认为我什至太有帮助了: |
|
回到顶部 |
|
 |
科克斯达维
新的用户
已加入:2009年3月12日 帖子:30 所在地:美国
|
|
|
|
感谢Enrico提供的示例。我已经有来自LISTCAT的300个数据集并手动进行归约。没什么大不了的。问题是将每个数据集引入LM处理,并能够对输出进行MOD。 LMCOPY退出了,因为MOD无法正常工作。
什么是TS? |
|
回到顶部 |
|
 |
迪克·谢勒
主持人荣誉

已加入:2006年11月23日 帖子:19245 位置:矩阵内部
|
|
|
|
主题启动器
d |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
正如我所说,已经使用我的代码段而不是使用LMD ****服务来填充DSLST。干
足以使用
码: |
地址TSO"ALLOCATE ....."具有数据集列表的数据集
地址TSO"EXECIO * DISKR theddname( stem DSLST. FINIS" |
唯一的区别是...
在
引用: |
ISPEXEC LMOPEN数据(data-id)
[OPTION(INPUT | OUTPUT)]
[LRECL(lrecl-var)]
[RECFM(recfm-var)]
[ORG(org-var)]
|
并检查打开后的dsorg
这是打开后的dsorg检查的同一片段
码: |
000001 /*REXX*/
000002地址ISPEXEC
000003 dslev="USER.*"
000004 dslst.0 = 0
000005 dsnlnen = 0
000006 "LMDINIT 清单ID(LISTID) LEVEL("DSLEV") "
000007 / *构建数据集列表并为每个DSORG保存* /
000008 "LMDLIST 清单ID("LISTID") OPTION(LIST) STATS(YES) DATASET(DSVAR)"
000009 do while ( rc = 0)
000010 i = dslst.0 + 1
000011 dslst.i = strip(dsvar)
000012 dslst.0 = i
000013 "LMDLIST 清单ID("LISTID") OPTION(LIST) STATS(YES) DATASET(DSVAR)"
000014 end
000015 "LMDFREE 清单ID("LISTID") "
000016 / *我们已经建立了列表* /
000017我= 1至dslst.0
000018 dsvar = dslst.i
000019 "LMINIT DATAID(LISTID) DATASET("dsvar") ENQ(SHR)"
000020 "LMOPEN DATAID("LISTID") OPTION(INPUT) ORG(DSORG) "
000021 if dsorg <> "PO" then do
000022 "LMCLOSE DATAID("LISTID")"
000023 "LMFREE DATAID("LISTID")"
000024 end
000025 membr=" "
000026 "LMMLIST DATAID("LISTID") MEMBER(MEMBR) STATS(YES)"
000027 if rc = 4 then ,
000027 if rc = 4 then ,
000028 say dsvar "has no 会员s"
000029 do while ( rc = 0 )
000030 say dsvar membr
000031 "LMMLIST DATAID("LISTID") MEMBER(MEMBR) STATS(YES)"
000032 end
000033 "LMCLOSE DATAID("LISTID")"
000034 "LMFREE DATAID("LISTID")"
000035 end
000036 exit
|
如果您确切地说出必须写入输出数据集中的内容,则可能会得到更好的建议 |
|
回到顶部 |
|
 |
科克斯达维
新的用户
已加入:2009年3月12日 帖子:30 所在地:美国
|
|
|
|
输出数据集应包含具有每个数据集成员统计信息的成员列表。我正在尝试接收第一个数据集输入,创建列表,将其写入输出,返回并获取下一个输入数据集并重复,仅将mod调制到输出数据集上。在输出数据集上使用带有ENQ(MOD)的LMINIT的LMCOPY将会是一个简单的想法。
谢谢迪克。 |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
LMCOPY不写单行,而是复制内容...
正如我已经说过几次,最好的方法是使用
在LMMLIST统计信息之后(是)
只是使用
码: |
Recd.1 =<member>Z *** Z **** Z **** Z ****
地址TSO"EXECIO 1 DISKW胜负( STEM recd. |
在整个shebang结束时
地址TSO“ EXECIO 0 DISKW outddname(FINIS” |
|
回到顶部 |
|
 |
科克斯达维
新的用户
已加入:2009年3月12日 帖子:30 所在地:美国
|
|
|
|
恩里科,感谢您今天的帮助。是的,我知道LMCOPY会写整个shebang。 我希望将第一组成员添加到下一组,以此类推。再次感谢。
戴夫 |
|
回到顶部 |
|
 |
达夫波塞兰
活跃的成员
加入时间:2006年12月1日 职位:747 所在地:宾夕法尼亚州
|
|
|
|
科克斯达维
您是否注意到Enrico多次提供了代码?
您是否还注意到,您尚未显示任何内容?
非常重要的建议:
1)显示您正在运行的代码以及如何调用它(例如,批处理jcl)。
2)显示当前正在生成的输出(部分输出很好)
3)显示您想要输出的外观。
这将使每个人都更容易。
如果您一开始就可以做到这一点,那么您现在就可以完成。 |
|
回到顶部 |
|
 |
科克斯达维
新的用户
已加入:2009年3月12日 帖子:30 所在地:美国
|
|
|
|
我已经完成了。我们能够完成MOD操作。这项任务将继续进行,直到我有一些时间可以恢复。 |
|
回到顶部 |
|
 |
迪克·谢勒
主持人荣誉

已加入:2006年11月23日 帖子:19245 位置:矩阵内部
|
|
|
|
当您回到这里时,有人会在这里。 。 。
d |
|
回到顶部 |
|
 |
科克斯达维
新的用户
已加入:2009年3月12日 帖子:30 所在地:美国
|
|
|
|
谢谢迪克。非常感激。 |
|
回到顶部 |
|
 |
|