提问人:As4rikru 提问时间:5/30/2021 更新时间:5/30/2021 访问量:745
如何通过调用 rpgle 程序来更改 CL 中的变量
How to change a variable in CL by calling a rpgle program
问:
我需要为 AS400 中的 ROBOT 进行日期计算(内置 pgm 无法做到这一点),用于保留的命令变量。
机器人正在调用我的 cl 程序,而 cl 程序正在调用我的 rpgle-program(因为 cl 程序无法进行我想要的日期计算)。
如何将 rpgle 程序中的日期计算结果返回到 CL 变量?这样机器人就可以取到它。
我可以通过调用 rpgle 来更新 cl 程序中的变量吗?但是我该怎么做。
答:
2赞
RockBoro
5/30/2021
#1
从 to 传递的参数按地址传递。因此,程序在参数中放置的任何值都将返回给程序。CL
RPG
RPG
CL
下面是一个调用 RPG 的 CL 程序:
PGM
dcl &rtndate *char 10
/* call RPG program. RPG program sets &rtnDate parm to date of yesterday */
/* in *ISO format. */
call test0290r parm(&rtnDate)
SNDPGMMSG MSG('yesterday date:' *BCAT &RTNDATE)
ENDPGM
和所谓的RPG程序:
** test0290r: return yesterdate as iso date.
h option(*srcstmt:*nodebugio)
** --------------------------- test0290r --------------------
** test0290r: return yesterdate as iso date.
dtest0290r pr extpgm('TEST0290R')
d outDate 10a
** --------------------------- test0290r --------------------
** test0290r: call open api using ifs_openNew.
dtest0290r pi
d outDate 10a
d ch80 s 80a varying
d yesterday_date s d
/free
yesterday_date = %date(%timestamp( )) - %days(1) ;
outDate = %char(yesterday_date:*iso) ;
*inlr = '1' ;
return ;
/end-free
评论