Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 如何通过调用rpgle程序更改CL中的变量_Variables_Parameter Passing_Ibm Midrange_Rpgle_Cl - Fatal编程技术网

Variables 如何通过调用rpgle程序更改CL中的变量

Variables 如何通过调用rpgle程序更改CL中的变量,variables,parameter-passing,ibm-midrange,rpgle,cl,Variables,Parameter Passing,Ibm Midrange,Rpgle,Cl,我需要为AS400中的ROBOT(内置pgm无法完成)计算保留命令变量的日期 Robot正在调用我的cl程序,cl程序正在调用我的rpgle程序(因为cl程序无法进行我想要的日期计算) 如何将rpgle程序中的日期计算结果返回到CL变量?这样机器人就能把它取回来 我可以通过调用rpgle来更新cl程序中的变量吗。从CL传递到RPG的参数是通过地址传递的。因此,RPG程序放入参数中的任何值都将返回到CL程序 下面是一个调用RPG的CL程序: PGM

我需要为AS400中的ROBOT(内置pgm无法完成)计算保留命令变量的日期

Robot正在调用我的cl程序,cl程序正在调用我的rpgle程序(因为cl程序无法进行我想要的日期计算)

如何将rpgle程序中的日期计算结果返回到CL变量?这样机器人就能把它取回来


我可以通过调用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  

除了RockBoro的解释之外,“by address”的意思是,在C语言编程的意义上,仅仅是指针。也许这有助于理解。