指定 API 命令

在 REXX 中编写程序时,将要发出的命令的字符图像传递到 CICSPlex ® SM 提供的 REXX 函数包。

命令字符串可以包含嵌入的 REXX 变量 (视情况而定)。 您可以通过以下两种方式之一指定命令:
  • 以命令的名称作为其参数来调用 EYUAPI 函数。
  • 使用 REXX ADDRESS 命令将后续语句传递到函数包。
注: 您还可以使用 REXX PARSE VALUE 命令将 API 命令传递到函数包。 但是, PARSE VALUE 的处理开销相当高。 此外, EYUAPI 函数仅返回单个字符 (0 或 1) ,因此无需解析其结果。 出于这些原因,建议不要使用 PARSE VALUE。
以下示例显示了将使用 EYUAPI 函数发出的部分 GET 命令:
  var = EYUAPI('GET OBJECT(LOCTRAN)...')

var 是指定用于从 EYUAPI 函数接收返回码的变量。

下一个示例显示 REXX ADDRESS 命令发出的相同 GET 命令:
   ADDRESS CPSM 'GET OBJECT(LOCTRAN)...'
当要将 REXX 变量中的数据传递到函数包时,必须终止 API 命令的文本部分,提供的 REXX 变量以及完成 API 命令的其余部分。 以下是演示嵌入式使用 REXX 变量的完整 GET 命令的示例:
  var = EYUAPI('GET OBJECT(LOCTRAN)' ,
              'RESULT(setvar) THREAD(THRD1)' ,
              'RESPONSE(rspvar) REASON(reavar)')

在此示例中,用于接收 LOCTRAN 对象的结果集以及 RESPONSE 和 REASON 选项都指定为 REXX 变量。

由于 REXX 处理变量替换的方式,因此您必须记住变量是用于向 API 发送数据和/或从 API 接收数据。 下一个示例显示了一个 CONNECT 命令,其中 USER 和 VERSION 选项将数据发送到 API。 THREAD , RESPONSE 和 REASON 选项都是用于从 API 接收数据的名称变量。 请注意,接收数据的变量的名称是在命令中指定的。
  var = EYUAPI('CONNECT USER('userid') VERSION(0310)' ,
              'THREAD(thdtkn) RESPONSE(rspvar) REASON(reavar)')

在想要访问资源表的那些情况下,需要特殊处理。 这方面的一个示例是 FETCH 命令,它需要一个 INTO 选项来定义应将资源表数据放置在何处以供程序处理。 在 REXX 中,必须指定 INTO 选项作为用于接收一个或多个资源表记录的词干变量的前缀。 干变量的零条目指示返回的记录数。