mainframe - 有没有办法将数组传递给外部 REXX 程序?

标签 mainframe zos rexx

我尝试过的:

程序A:

call PROGRAMB ARRAY val1 val2 

程序B:

PARSE arg ARRAY val1 val2 
/* test to see if ARRAY is passed successfully */
/* len1 equals the length of ARRAY */
interpret "len1 = "ARRAY".0"
say 'len1: ' len1 
DO i=0 TO len1
    say 'current line: '
    interpret "say "ARRAY".i"
END;

预期结果:

  1. len1 相当于数组的长度。例如,如果 ARRAY = [1,2,3],则 len 将等于 3。
  2. 应该打印数组的每个成员。

实际结果:

  1. len1 相当于“JOBCARD.0”而不是实际长度。
  2. 由于 IRX0041I(算术转换错误),程序在 for 循环中失败,并且不打印成员/

我尝试过的解决方案:

https://www.bde-gmbh.de/tipps-tricks/zos-rexx/how-to-pass-stems-as-procedure-arguments-in-rexx/

但此方法仅适用于将数组传递给同一程序中的函数。

最佳答案

您无法将主干(数组)传递给外部 Rexx EXEC。研究使用 NEWSTACK、PUSH、QUEUE、QUEUED()、PULL、DELSTACK。这些都记录在 TSO/E Rexx Reference 的关键字指令、内置函数和 TSO/E 外部函数部分中。

关于mainframe - 有没有办法将数组传递给外部 REXX 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59397128/

相关文章:

mainframe - ONCODE=451 引发存储条件

db2 - 如何在 z/OS 中编写 DB2 命令脚本?

java - 用户为 z/OS 上的 Java 程序指定的 ABEND 代码

shell - 如何在 BPXBATCH 中编写长 z/OS UNIX shell 命令

mainframe - 如何通过 JCL 将参数传递给 REXX 程序

mainframe - 在外部 Rexx 脚本中调用特定函数

db2 - BizTalk DB2 适配器连接错误

mainframe - 将 JCL 符号传递给流内数据集

来自 RDz 的 Java Web 服务调用