T100的传值运行程序与保留参数

#create by leezec QQ296066606

这是一个很值得吐槽的地方,先看T100的传值调用程序的方法:

   INITIALIZE la_param。* TO NULL 
   LET la_param.prog ='axmt520'#要执行的函数
   LET la_param.param [1] =' - '#传值的第一个参数
   LET la_param.param [2] = g_xmda_m.xmdadocno#传值的第二个参数
   LET ls_js = util.JSON.stringify(la_param)#转化格式

   CALL cl_cmdrun_wait(ls_js)#执行程序 

这是我做的在axmt500,查询出货通知单的情况的功能,其中吐槽的地方有两个:

1.之前我以为la_param.param [1]就是对应目标程序的g_argv [01],被坑惨了,后来花了一天的时间才测试出来,正确的方式应该是,la_param。 PARAM对应的参数应该是保留参数之后的参数,比如:如果该程序有3个保留参数,那么la_param.param [1]开始对应的参数变量就应该是g_argv [04],因为前三已经是保留参数占有,不需要传值,举个栗子:

这是azzi910的资料

如图所示,上面的额外参数显示有一个参数,这个就是保留参数,所以在axmt520的程序中g_argv [01]对应的就是这个'1',然后la_param.param [1]对应的就是g_argv [02 ],la_param.param [2]对应的是g_argv [03],以此类别,

2.第二点吐槽的就是la_param.param,如果la_param.param [1]是空值,那么la_param.param [2]在执行的时候就会占到la_param.param [1]的位置,导致程序串查内容错位,执行结果没有达到预期,所以我在传值的时候为什么要LET la_param.param [1] =' - ',因为我要传的是第二个值,但是如果第一个值为空,程序就获取不到正确的值

总的来说,在T100做传参运行程序的时候:

第一,先去azzi910检查一下目标程序有几个保留参数位,按位数排定,找到对应的参数位

第二,如果前面的参数位有占用,记住,一定要给点什么到la_param.param前面的参数,一定要给,比如我就给la_param.param [1] =' - ',但是不要给那些/ [{这样的破坏格式的字符

第三,在目标程序那里,把前面的传的字符赋值空,不然会有影响,参考我的:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值