全部博文(287)
分类: 系统运维
2012-02-05 16:53:24
RPGLE高级练习(四)- 项目快速实施
说在前面的话:
前面练习我已经提到过RPGLE编程采用的程序架构,在实际项目实施过程中,如果对procedure不熟悉,勉强按procedure思路进行项目实施,会有很多麻烦,会造成拖延项目实施进度。
我总结出一套可操作的项目编程架构。
1) 按照练习(三)的思路,调整单元模块入口点;
用*entry代替prototype原型,Pr原型入口描述,即在copybook中直接定义入口:
C *entry plist
C parm Ptr1
C parm Ptr2
C parm Ptr3
2) 在定义Pr的copybook中对每一个Pr的定义先采用关键字extpgm进行定义,以方便单元编程程序员可以用CRTRPGPGM,即选项14,直接产生可执行目标代码,减少其它中间环节,就可以直接进行测试,debug。
3) 如果采用module项目实施,在每一个程序单元都做完测试后,可开始集成服务程序,*SRVPGM,这时把Pr定义的extpgm改为extproc键字,用CRTRPGMOD,即15,进行生成*module,然后再集成服务程序,*SRVPGM。
4) 用MSGFILE定义项目所有的msg信息;
5) 用QAPI写成例程,放人copybook中;用这个例程在单元程序处理过程中获取相应msgid代码的明文,用于写入物理文件pf进行保存,用于项目维护;或用另外一个copybook中的例程把msg明文返回给显示终端上。
6) 尽可能地把所有通用程序变量定义,或通用程序代码,都放人copybook中。
注:
1) 上面做法不能用于多线程应用环境,因为入口的问题。
2) 采用extpgm与extproc在H表中会有不同的键字定义,在项目实施过程中要对不同阶段的程序采用相应copybook中对H表的定义。