R-P-1-2(4)

2019-09-01 16:12

语言写的过程时是很有用的。RPGⅣ提供了CALLB操作码,以支持过程调用和参数省略。关于运行程序的详细信息,参见第八章2.5节的“运行一个程序”。关于程序/过程调用的详细信息,参见第九章2.6节的“调用程序和过程”。

1.2.4 源程序调试

在ILE中,你可以对任何单一语言或混合语言的ILE应用程序进行源语句级的调试。在程序运行期间用调试命令控制程序的流程。可以在程序运行前设置有条件的或无条件的断点。在调用程序后,可以指定语句号码做单步运行,显示或修改变量的值。当程序由于遇到断点,单步命令或运行期间错误而停止时,在程序停止处能显示相关的模块,这时,可以录入更多的调试命令。

关于调试程序的详细信息,参见第十章3.1节中的“程序调试”。

1.2.5 可连接的AP1

ILE提供了一些可以连接的AP1以补充当前ILE RPG/400提供的功能。可连接的AP1提供了程序调用和活动能力,条件和存储管理,数学函数和动态屏幕管理。 在ILE RPG/400应用程序中可以考虑使用下面一些AP1:

关于这些ILE可连接AP1的详细信息,参见第八章2.5节中的“运行程序”和系统API参考手册。

1.3 程序建立策略

使用ILE,你可以用很多方法建立程序,这部分介绍了使用ILE RPG/400或其它ILE语言建立ILE程序的三种一般策略。

1、使用CRTBNPRPG命令来建立程序与OPM存有最大的兼容性。 2、使用GRTBNDRPG建立ILE程序。

3、使用CRTRPGMOD和CRTPGM命令建立ILE程序。

CEETREC—表示立即终止条件 CEE4ABN—异常结束 CEEFRST—释放存储空间 CEEGTST—取得堆式存储空间 CEECZST—重分配存储空间 CEEDOD—分解操作描述

第一种策略是作为临时性的推荐。它是为了考虑到已经有OPM应用程序的用户,可能由于时间不够而不能把他们的应用程序一次转成ILE。 第二种也是一种临时的策略,它给你熟悉ILE的时间。但是也允许你立即使用它们的某些性能。第三种策略包含更广,且提供很大的灵活性。

第一和第二种策略都使用一步建立程序的方法,命令名为CRTBNDRPG,第三种策略采用两步建立程序的方法。先用CRTRPGMOD命令,然后用CRTPGM命令。

1.3.1 策略1 OPM兼容的应用程序

策略1可以产生与OPM程序兼容的ILE程序。可用RPGⅣ的增强功能,但不是全部。当要向ILE过渡时,你可能需要这样一个临时程序。

1.3.1.1 方法

使用下面的步骤建立程序:

1、使用CVTRPGSRC命令把原有的源程序转换为RPG IV。注意要转换源程序中使用/COPY

的成员。

2、用CRTBNDRPG命令建立程序目标。指定DFTACTGRP(*YES)。指定DPTACTGRP(*YES) 意味着程序目标只在默认的活动组中运行。(默认的活动组是所有OPM程序运行的 组)。这样就使程序目标与OPM程序,在复盖范围、打开范围和RCLRSC的区域一 致。

当使用这种方法时,就不能用ILE的静态连接。就是说,你的程序不能包括CALLB操作。而且,在建立程序时不能在CRTBNDRPG命令中使用BNDIR和ACTGRP参数。

1.3.1.2 OPM兼容程序的例子

图7显示了OPM兼容程序的运行时样本。它由一个CL程序和两个RPG程序组成。在这个例子中,一个RPG程序被转换成ILE,而其余的程序没有变化。

图7 OPM兼容的应用程序

1.3.1.2.1 ILE作用

以下是在你的应用程序处理时ILE的作用: 程序调用

OPM程序象从前一样动作,当启动作业时,系统自动地建立OPM默认活动

组,所有的OPM应用程序在其中运行,程序可以通过用动态调用的方法

调用该默认活动组中的其它程序。

静态数据的存储空间是在程序激活时建立的,并一直存在直到程序结

数据

OPMRPG

*PGM(Z)

ILERPG

*PGM(Y)

OPMCL

*PGM(X)

缺省活动组

作业 束。当程序结时(无论是正常或非正常结束),程序的存储空间被删除, 若要清除没有结束而返回的程序的存储空间,应使用回收资源命令 (RCLRSC)。 文件

文件处理与前面版本所讲的相同,文件在程序正常或非正常结束时被关

闭。

错误

就象在前面版本所讲的那样,编译程序独立地处理每个程序中的错误。

所看到的出现在程序中的错误与以前是相同的。然而,现在是错误可以

由ILE条件管理程序做程序之间的通信,以使你能看到程序间的不同信 息。这些信息可能会有新的信息标识,因此如果你的CL程序监控某个指 定的信息标识,那么要修改那个信息标识。

1.3.1.3 相关信息

转换为RPGIV—附录1.2.2中的“转换你的源程序”

1.3.2 策略2 使用CRTBNDRPG的ILE程序

策略2产生一个具有先进ILE静态连接的程序。由于可以使用连接目录连接几个模块或服务程序,因此,程序可以包括用CALLB的静态过程调用,你也可以指定程序运行的活动组。

1.3.2.1 方法

使用以下步骤来建立一个程序:

1、如果是由RPGⅢ源程序开始,那么首先使用CVTRPGSRC命令把你的源程序转换成 RPGⅣ。

转换时,要确认转换所有的/COPY成员和调用的程序。另外,如果使用CL来调该 程序的话,那么一定要确认用ILE CL程序而不是用OPM CL程序。 2、确定程序运行要使用的活动组。

也以象这个例子一样,在应用程序名字后命名它。

3、如果需要,给出所用的连接目录的名字。这里假定你要用连接目录,那么该目录是 已经建立好的。例如,要把你的源程序连接到第三部分程序上,那么要知道连接 目录的名字。

4、使用CRTBNDRPG建立ILE程序,指定DFTACTGRP(*NO),指定ACTGRP参数中的活动一步建立处理—第五章2.2节中的“使用CRTBNDRPG命令建立程序” ILE静态连接—第九章2.6节中的“程序和过程调用”和ILE概念 异常处理差异—3.2.1.1.1中的“OPM和ILE异常处理之间的差别”

组。如果有的话,还要指定BNDDIR参数中的连接目录。

注意,如果指定了ACTGRP(*CALLER)并且这个程序被一个在默认活动组中的程序调用,那么这个程序在复盖范围、打开范围和RCLRSC的范围方面的活动将和ILE语义一致。 这种策略的主要不利方面是,你不能有一个永久的模块目标,使它以后可以与其它模块相连接以建立ILE程序,而且任何过程调用必须是在连接目录中标识的模块或服务程序。如果想连接两个或更多的模块而不使用连接目录,那么你就需要使用第三种策略。

1.3.2.2 使用CRTBNDRPG的ILE程序例子

图8显示了一个应用程序运行期间的视图,在应用程序中,ILE CL程序调用了一个和服务程序相连接的ILE RPG/400程序。该应用程序在名为XYZ的活动组中运行。


R-P-1-2(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Music Radio经典老歌(1)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: