如何解决如何通过调用 rpgle 程序更改 CL 中的变量
我需要在 AS400 中为 ROBOT 进行日期计算(内置的 pgm 不能这样做),对于保留的命令变量。
机器人正在调用我的 cl 程序,cl 程序正在调用我的 rpgle 程序(因为 cl 程序无法进行我想要的日期计算)。
如何将 rpgle 程序中的日期计算结果返回到 CL 变量?以便 ROBOT 可以获取它。
我可以通过调用一个 rpgle 来更新 cl 程序中的变量吗?但是我该怎么做。
解决方法
从 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。