首页 > 学技术 > 技术网文 > IBM AS400应用论坛 > 正文

[精彩] 内部函数%SWITCH测试的作业开关,是自定义的,还是系统特定的?


来源 chinaunix.net 酷勤网整理

如题!
请高手们指点!
太感谢了!:em15:



 依然沈 回复于:2007-04-16 12:21:11

唉!怎么没人搭理呀!!


 李海隽 回复于:2007-04-17 08:58:37

系统自带的


 依然沈 回复于:2007-04-17 09:12:48

是系统自带的,那么每一位又指定为什么呢?


 李海隽 回复于:2007-04-17 10:03:12

8位,只能有3个值,1、0和X,表示作业的状态。如%SWITCH(0011XXXX),前两个作业是0状态,3和4是一状态,后4个不管。


 李海隽 回复于:2007-04-17 10:15:22

8位对应的是同一个JOB。上例如果作业开关的值是0011XXXX,后4位不管,那么结果是1,否则是0。
关于作业开关,你可以查一下CRTJOBD和CHGJOB。


 李海隽 回复于:2007-04-17 10:30:09

作业开关的初始值是由CRTJOBD指定的,由CHGJOB修改。


 依然沈 回复于:2007-04-17 13:02:16

谢谢你李隽!
可能是我描述的不好,我想知道的是每位代表作业的什么属性.
比如说有(0011xxxx),那么第一,二位代表作业的什么属性为0.第三四位又代表作业的什么属性为1.


 李海隽 回复于:2007-04-17 14:11:42

0表示off,1表示on。用来控制程序的流程。比如用cl可以让0011XXXX执行A程序、1100XXXX执行B程序。


 李海隽 回复于:2007-04-17 14:16:12

单独的一位没有什么含义,8位组合在一起作为一个开关变量来使用。用来控制程序的流程。


 李海隽 回复于:2007-04-17 14:17:21

忘说了,默认值是8个0。


 依然沈 回复于:2007-04-17 14:22:42

谢谢你的回答,我还是没弄清楚.
比如说有下例代码:
CALL       PGM(EDI510P) PARM(&CTLNBR &FILNAM)         
IF         COND(%SWITCH(X1XXXXXX)) THEN(DO)           
CHGVAR     VAR(&MSG) VALUE('Invalid control or file + 
             name, try again !')                      
GOTO       CMDLBL(STRDSP)                             
ENDDO    
这边关注的是第二位是否为1,那么这第二位到底是指的什么,是不是就如同异常CPF9815一样,是固定指示某个错误呢?


 李海隽 回复于:2007-04-17 14:38:44

据我所知它没有特定含义,可以任意组合,跟错误代码不一样。
你看一下这本程序或与它关联的程序中有没有类似CHGJOB     SWS(X1XXXXXX)或者
CHGVAR    VAR(&ABC) VALUE(%SWITCH(X1XXXXXX))这样的代码?
问问别的人吧,我说的可能也不对。
这个东西我只在练习时用过,还没在项目中使用过呢。要不你把相关代码贴上来,让我涨涨见识。


 依然沈 回复于:2007-04-17 14:39:39

哦,我知道了.
我在文件EDI510P中重新指定了指示器的值.

谢谢你,李海隽!!


 依然沈 回复于:2007-04-17 14:41:57

在EDI510P里有这段代码!
 C           CTLKEY    CHAINXCTL                 13       
 C   13                SETON                     U2       
 C  N13                SETOF                     U2       

呵呵,你给看看,上面说的对吗.
是通过U2给新赋值的吗?


 李海隽 回复于:2007-04-18 09:57:21

是啊,是啊。原来用的是外部指示器啊。用U1到U8与开关的1到8位相关联。


 依然沈 回复于:2007-04-19 14:42:35

:em02::em02::em02:
呵呵,这下知道了,又长知识啦!

谢谢了.


 hxfang2000 回复于:2007-05-10 16:23:31

疑问:怎么把U1到U8的指示器与%SWITCH的1到8位关联起来呢?需要在程序中作什么设定么?能不能发个完全实现功能的程序上来呀?谢谢!




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=924395
转载请注明作者名及原文出处



收藏本页到: