查看上一个主题 :: 查看下一个主题
|
作者 |
信息 |
穆克什·潘迪
活跃用户
已加入:2008年11月11日 帖子:143 地点:印度
|
|
|
|
大家好,
我们可以通过REXX调用作业(JCL)吗?目前,我已经开发了一项工作,通过提交它可以提供所需的O / P。
如果有可能,那么有什么办法可以从rexx屏幕将jcl的输入作为parm接收到。
提前致谢。 |
|
回到顶部 |
|
 |
外籍人士
全球主持人

已加入:2007年3月14日 帖子:8794 地点:威尔士威尔士
|
|
|
|
不确定您在这里做什么....................................
您的意思是不是要通过终端在前台提交要处理的作业。
请注意,以这种方式执行该过程可能会花费更长的时间,在等待该过程结束时将锁定您的终端以防止其做任何进一步的有用工作,并且由于对TSO / ISPF会话施加的内存大小限制很可能会失败。 |
|
回到顶部 |
|
 |
穆克什·潘迪
活跃用户
已加入:2008年11月11日 帖子:143 地点:印度
|
|
|
|
外籍人士..您是正确的..我需要从三端提交工作..即rexx屏幕..工作不需要花费很多时间来完成。我正在尝试这样做,因为需要针对不同的参数运行该作业,而不是使用不同的参数多次运行该作业,更好的方法是通过提供参数值的终端运行该作业。
您能帮我热烈完成这项任务吗?
谢谢, |
|
回到顶部 |
|
 |
超级
全球主持人

已加入:2004年4月26日 帖子:4650 地点:美国北卡罗来纳州罗利
|
|
|
|
您可以从TSO(SUBMIT命令)提交作业。您可以从ISPF(ISPF SUBMIT命令)提交作业。通过将JCL复制到Internal Reader,您可以随时随地提交作业。所以可以,您可以通过REXX提交工作。 |
|
回到顶部 |
|
 |
外籍人士
全球主持人

已加入:2007年3月14日 帖子:8794 地点:威尔士威尔士
|
|
|
|
好的,您认为我们需要什么信息才能为您提供帮助。 |
|
回到顶部 |
|
 |
穆克什·潘迪
活跃用户
已加入:2008年11月11日 帖子:143 地点:印度
|
|
|
|
我已经探索过通过rexx代码提交作业的热...我能知道如何将值从rexx传递给作业....它与skel概念有关.... |
|
回到顶部 |
|
 |
外籍人士
全球主持人

已加入:2007年3月14日 帖子:8794 地点:威尔士威尔士
|
|
|
|
我们似乎在这里朝相反的方向前进。您要从REXX提交作业还是要在终端上执行该过程。
如果要提交作业,则使用文件定制服务是对提交的JCL进行更改的最简单方法之一。
示例-您在屏幕上输入ABC的值,并且屏幕变量为PARMVAL。在骨架中
码: |
// STEPNAME EXEC PGM = program,PARM ='&PARMVAL' |
通过使用文件定制服务,这可以转换为
码: |
// STEPNAME EXEC PGM = program,PARM ='ABC' |
如果希望在终端上执行程序,则需要分配程序所需的DD名称(与正确的数据集名称或其他名称相关联),然后可以使用CALL命令来调用程序并将参数字符串传递给程序。
因此,无论您决定采用哪种方式,这里肯定都有足够的信息供您进行编码和测试,尽管您可能也需要仔细阅读手册。 |
|
回到顶部 |
|
 |
穆克什·潘迪
活跃用户
已加入:2008年11月11日 帖子:143 地点:印度
|
|
|
|
外籍人士 .........我需要在rexx屏幕上的终端中输入值,并且该值应在作业中的符号变量中接受...这是我的要求.....
谢谢, |
|
回到顶部 |
|
 |
罗伯特·桑普
全球主持人

已加入:2008年6月6日 帖子:8569 地点:美国爱荷华州迪比克
|
|
|
|
引用: |
我需要在rexx屏幕上的终端中输入值,并且该值应在作业中的符号变量中接受...这是我的要求 |
如果作业已经在运行,则无法执行-期间。一旦作业经过JES的转换器/解释器阶段,就无法对其进行任何更改(没有符号,没有参数,什么也没有)。您将必须在JCL中提交更改后的作业。 |
|
回到顶部 |
|
 |
穆克什·潘迪
活跃用户
已加入:2008年11月11日 帖子:143 地点:印度
|
|
|
|
在工作中我们可以给像
值 =来自rexx输入的值
var =&val
但是总体情况并非如此,从rexx终端输入的值将如何在val中捕获。 |
|
回到顶部 |
|
 |
穆克什·潘迪
活跃用户
已加入:2008年11月11日 帖子:143 地点:印度
|
|
|
|
罗伯特……你是正确的..那我将如何达到我的要求呢? |
|
回到顶部 |
|
 |
罗伯特·桑普
全球主持人

已加入:2008年6月6日 帖子:8569 地点:美国爱荷华州迪比克
|
|
|
|
如果您希望更改已经执行的作业的JCL,您的解决方案是找给您要求的人,告诉他们无法完成。
否则,您将不得不想出一种更改JCL的方法 之前 提交作业是因为提交后,JCL不会更改。 |
|
回到顶部 |
|
 |
外籍人士
全球主持人

已加入:2007年3月14日 帖子:8794 地点:威尔士威尔士
|
|
|
|
我以前的答复没有给您任何线索吗?
使用REXX和ISPF的乐趣在于它们可以很好地交互。
好的,在定义ISPF面板时,将为字段指定名称。该名称完全不做任何事情,然后在调用REXX或上帝禁止的CLIST中有效,并且包含在终端上输入的内容。
现在,当我们从同一REXX调用ISPF文件定制服务时-猜猜是什么,相同的变量名仍然包含在终端输入的内容。
因此,请回到我之前的答复并查看示例,看看是否可以根据 这个 回复。 |
|
回到顶部 |
|
 |
穆克什·潘迪
活跃用户
已加入:2008年11月11日 帖子:143 地点:印度
|
|
|
|
罗伯特,我不是要更改已经执行的jcl。只需从rexx终端传递值,然后执行作业即可。 |
|
回到顶部 |
|
 |
罗伯特·桑普
全球主持人

已加入:2008年6月6日 帖子:8569 地点:美国爱荷华州迪比克
|
|
|
|
外籍人士在解释您需要做什么方面做得很好。 |
|
回到顶部 |
|
 |
穆克什·潘迪
活跃用户
已加入:2008年11月11日 帖子:143 地点:印度
|
|
|
|
在工作中对以下代码进行编码会产生错误。
// STEPNAME EXEC PGM = program,PARM ='&PARMVAL' |
|
回到顶部 |
|
 |
外籍人士
全球主持人

已加入:2007年3月14日 帖子:8794 地点:威尔士威尔士
|
|
|
|
您是否使用ISPF文件定制服务来生成JCL |
|
回到顶部 |
|
 |
穆克什·潘迪
活跃用户
已加入:2008年11月11日 帖子:143 地点:印度
|
|
|
|
解释我的代码如下
EXEC PGM = SARBCH,
PARM ='K9490P0.SAR41,&TEST'
现在如何给您提到的其他参数
// STEPNAME EXEC PGM = program,PARM ='&PARMVAL'
在编码多个参数方面需要帮助。
谢谢, |
|
回到顶部 |
|
 |
外籍人士
全球主持人

已加入:2007年3月14日 帖子:8794 地点:威尔士威尔士
|
|
|
|
嗯,我建议您使用ISPF文件定制服务,并举例说明FTS输入和输出。
我花了更多时间来简要说明ISPF和REXX之间的交互作用,并举例说明再次使用FTS。
您 不要 使用我给出的示例使用ISPF文件裁剪 应该使用 文件剪裁,然后您告诉我这是行不通的。当然,如果您不按照建议进行操作,它将无法正常工作。
在CLIST / REXX论坛的顶部是一个即时贴,它将为您提供REXX和ISPF处理所需的几乎所有手册。我强烈建议您花一些时间并熟悉这些手册及其内容,了解有关文件定制的知识,然后再尝试。这不是火箭科学。这不是脑外科手术。它是IBM开发的简单明了,直接的服务调用和使用,使您的生活更轻松。
是的,使用这些服务还有其他选择,包括就地构建JCL,编辑基本成员以符合您的要求,但对我而言,ISPF文件定制是最简单的方法。 |
|
回到顶部 |
|
 |
穆克什·潘迪
活跃用户
已加入:2008年11月11日 帖子:143 地点:印度
|
|
|
|
谢谢,我一定会仔细阅读手册。请纠正我,如果我在下面的错误编码中将两个parm值合并到一个parm中。
// SAREXTR EXEC PGM = SARBCH,
// PARM ='K9490P0.SAR41,&TEST'
// SYSUDUMP DD SYSOUT = *
// SYSPRINT DD SYSOUT = *
// REPORT DD DSN =&&TEMP,
// DISP =(NEW,CATLG,DELETE),SPACE =(TRK,(20,10),RLSE),
// LRECL = 133,RECFM = FBA,BLKSIZE = 27930
// SYSIN DD *
/ LIST ID =&&TEST*,GEN=0
/ *
其中test是rexx中使用的参数 |
|
回到顶部 |
|
 |
穆克什·潘迪
活跃用户
已加入:2008年11月11日 帖子:143 地点:印度
|
|
|
|
外籍人士,我声明parm的方式无效。报告为空。
// PARM ='K9490P0.SAR41,&TEST'
请帮助我如何更正代码
提前致谢, |
|
回到顶部 |
|
 |
外籍人士
全球主持人

已加入:2007年3月14日 帖子:8794 地点:威尔士威尔士
|
|
|
|
让我们在ISPSLIB中将此成员称为TEST99
码: |
// SAREXTR EXEC PGM = SARBCH,
// PARM ='K9490P0.SAR41,&TEST'
// SYSUDUMP DD SYSOUT = *
// SYSPRINT DD SYSOUT = *
// REPORT DD DSN =&&&&TEMP,
// DISP =(NEW,CATLG,DELETE),SPACE=(TRK,(20,10),RLSE),
// LRECL = 133,RECFM = FBA,BLKSIZE = 27930
// SYSIN DD *
/ LIST ID =&&TEST*,GEN=0
/ * |
当用户或任何人在屏幕上输入一个值,并且在名为TEST的面板字段中输入的值是ABC,然后REXX调用ISPF文件定制时,每次发生&TEST将由文件剪裁服务代替,成为ABC。您有两次发生&测试,所以两者都将成为ABC。
另请注意,我已经更改了您的&&TEMP into &&&&ISPF框架中的TEMP,因此在文件定制期间解析它时,它会还原为&&JCL中的TEMP。另请注意/ LIST ID ==行的文件定制输入和输出
因此,在您的REXX中,
码: |
"ISPEXEC FTOPEN"
"ISPEXEC FTINCL测试99"
"ISPEXEC 收盘价" |
结果输出将是
码: |
// SAREXTR EXEC PGM = SARBCH,
// PARM ='K9490P0.SAR41,ABC
// SYSUDUMP DD SYSOUT = *
// SYSPRINT DD SYSOUT = *
// REPORT DD DSN =&&TEMP,
// DISP =(NEW,CATLG,DELETE),SPACE=(TRK,(20,10),RLSE),
// LRECL = 133,RECFM = FBA,BLKSIZE = 27930
// SYSIN DD *
/ LIST ID =&ABC*,GEN=0
/ * |
顺便说一句,不需要在大多数文件上编码BLKSIZE参数,因为系统将为您选择最佳的块大小。如果现在将此文件写入磁带,那么您将使用效率低下的块大小。 |
|
回到顶部 |
|
 |
穆克什·潘迪
活跃用户
已加入:2008年11月11日 帖子:143 地点:印度
|
|
|
|
外籍人士..,谢谢您向我们探索强大的技术思想。
请在rexx中查看下面的代码,如果我在某处出错,请告诉我。
/ * REXX * /
/ *通过REXX提交工作* /
说'输入限定符(EG:F3698):'
拉力测试
“ ISPEXEC FTOPEN”
“ ISPEXEC FTINCL测试99”
"ISPEXEC 收盘价"
地址TSO“提交'” Z1225AN.EM“(” SAREX“)'”
职位:
// SAREXTR EXEC PGM = SARBCH,
// PARM ='K9490P0.SAR41,&TEST'
// SYSUDUMP DD SYSOUT = *
// SYSPRINT DD SYSOUT = *
// REPORT DD DSN =&&&&TEMP,
// DISP =(NEW,CATLG,DELETE),SPACE =(TRK,(20,10),RLSE),
// LRECL = 133,RECFM = FBA
// SYSIN DD *
/ LIST ID =&&TEST*,GEN=0
/ *
提前致谢。 |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
这是正确的做法...
经过测试
码: |
跟踪"I"
地址ispexec"FTOPEN TEMP"
地址ispexec"FTINCL TSTSKEL"
地址ispexec"FTCLOSE"
地址ispexec"VGET 坦普"
地址TSO "SUBMIT ("ZTEMPF")"
返回0 |
这是相对轨迹...
码: |
5 *-*地址ispexec"FTOPEN TEMP"
>L> "FTOPEN TEMP"
6 *-*地址ispexec"FTINCL TSTSKEL"
>L> "FTINCL TSTSKEL"
7 *-* 地址ispexec"FTCLOSE"
>L> "FTCLOSE"
8 *-*地址ispexec"VGET 坦普"
>L> "VGET 坦普"
9 *-* 地址TSO "SUBMIT ("ZTEMPF")"
>L> "SUBMIT ("
>V> "ENRICO.SPFTEMP1.CNTL"
>O> "SUBMIT (ENRICO.SPFTEMP1.CNTL"
>L> ")"
>O> "SUBMIT (ENRICO.SPFTEMP1.CNTL)"
工作ENRICO @ A(JOB00905) SUBMITTED
10 *-* 返回0
>L> "0" |
当然,您需要在ISPF环境中运行并分配适当的库 |
|
回到顶部 |
|
 |
外籍人士
全球主持人

已加入:2007年3月14日 帖子:8794 地点:威尔士威尔士
|
|
|
|
只是为了阐明为什么使用FTOPEN而不是FTOPEN TEMP的原因是我将为文件定制输出分配ISPFILE DD。
无论哪种方法都有效,这只是选择问题。
我确实建议您和任何其他不熟悉使用REXX / ISPF的产品的人,在尝试编写自己的应用程序之前,请仔细阅读本文档。 |
|
回到顶部 |
|
 |
|