390开发实用技术: 重拳出击,CICS联机程序开发新手必看---一个典型的CICS程序,所有完备功能包括上下翻屏,增加/编辑/删除/拷贝纪录等
2007-02-26 22:29
1056 查看
经过前面基础知识入门的朋友,一定想知道典型的ONLINE程序是如何的. 下面的文章即将展现最典型的基于CICS,COBOL,DB2和MAPS MICRO的交易 ---纪录加油的交易. 此交易具有所有银行应用的功能,包括上下翻屏,增加/显示/修改/拷贝 数据库记录.
STEP1:首先我们要先规划一下要做的事情:两张MAP和对应着的两个程序,分别是上下翻屏的画面和显示明细的画面; 两个CICS交易,分别对应着两个程序;4个JCL,分别编译MAPS和PROGRAMS;两个DB2 DBRM和一个PLAN; 两个CICS的DB2 ENTRY和DB2 TRANS.
其中MAPS,PROGRAMS,JCLS,TRANSACTIONS不需多说,前面基础入门的文章已经提到.在这里要提一下什么是DB2 DBRM, PLANS和CICS DB2 ENTRY & DB2 TRANS.
DB2 DBRM: 负责进行程序和数据库之间的交流,可以打开DBRM来看看,看到的是一些SQL语句,比如SELECT, CURSOR等等
PLANS: 一个PLANS可以包含多个DBRM或者PACKAGE.PLAN里面包括一些授权信息,这可以理解为运行程序的时候需要以某种权限去访问数据库,比如SELECT权限,UPDATE权限等.
CICS DB2 ENTRY & DB2 TRANS: 要让CICS和外部的DB2进行通讯,除了要定义DB2 CONNECTION之外,还需要定义DB2 ENTRY & TRANS. 其中DB2 ENTRY里面定义了ENTRY名字,所属GROUP名字,还有要用到的PLAN名字; DB2 TRANS定义了该交易对应于CICS里面哪个已定义的交易,以及要用到的DB2 ENTRY名字.有了这两个定义,CICS内部交易就可以访问外部数据库了.
STEP2: COBOL程序里面要实现上下翻屏,不能像AS/400 RPG+DISPLAY FILES那样简单定义SUBFILE,而必须要自己写出算法.一般来说是定义SQL CURSOR,在打开CURSOR的时候每次读几条记录,然后记录下第一条和最后一条记录,以便下一次上下翻屏,实例如下
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/f7f596546141ef00bbbafabd1d0035f5.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/dc9cb99a171f49557f0ad8fcfbba0f3e.gif)
STEP3:编写上下翻屏屏幕文件和显示明细文件如下
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/9e8a2df6b6e541b8fc8eb252719d6ff6.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/4f9e78f93774aa04d5df21d178bd50c3.gif)
STEP4:编写主控程序,实现上下翻屏; 编写显示明细程序. 在这里要请读者注意程序之间调用的几个方法: XCTL, LINK和RETURN的区别. 一般来说,CICS RETURN(TRANSID)是表示在CICS TRANSACTION结束之后,下一个即将运行的交易的名字.请注意是'即将',就是说,RETURN之后,实际上交易已经不占用内存和CPU资源. 另外就是XCTL和LINK: XCTL是把控制权交给另外一个程序,XCTL有点像GOTO,去了就不回来了.而LINK是相当于执行一个子程序,执行完之后还是会回来的.
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/dcfff0fe96c9d031da4dc5176183680c.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/b3fc5f471dbdd39278d08eff29288ca1.gif)
STEP5:MAP的编译作业流在这里就不再多说,前面入门的文章已经有说明;这里要说的是COBOL的编译作业流.这个作业流包括预编译SQL,预编译CICS,LINK和BIND等过程. 这里的BIND是把两个程序相关的DBRM都一起BIND进来了,如果相关程序多的话,也可以在ISPF菜单下用DB2I的BIND PLAN功能去做。
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/76e2c8c7576ea720ba554fd2b2c63912.gif)
STEP6:在CICS下分别定义、安装MAPS,PROGRAMS,TRANSACTION,DB2 ENTRY, DB2TRANS,在这里给出DB2 ENTRY的画面
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/6f5d80e52f6a7fc2d2f111779e54b684.gif)
STEP7:相关功能演示:
入口画面
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/b5bfb6c8191bd2266a9582caecaae4d5.gif)
向下翻屏
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/3bb925068ed07f9696e5f62acd51f01a.gif)
显示明细
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/b37a9ce5e9c659936662070194524f05.gif)
编辑明细
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/d729158fee955e5229fac86c33f5bb58.gif)
删除
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/107d85eaad5ff776f40deea42b373ce1.gif)
新建
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/9dab0f0510b07c5f1f6e42b1de3a1f8c.gif)
拷贝
STEP1:首先我们要先规划一下要做的事情:两张MAP和对应着的两个程序,分别是上下翻屏的画面和显示明细的画面; 两个CICS交易,分别对应着两个程序;4个JCL,分别编译MAPS和PROGRAMS;两个DB2 DBRM和一个PLAN; 两个CICS的DB2 ENTRY和DB2 TRANS.
其中MAPS,PROGRAMS,JCLS,TRANSACTIONS不需多说,前面基础入门的文章已经提到.在这里要提一下什么是DB2 DBRM, PLANS和CICS DB2 ENTRY & DB2 TRANS.
DB2 DBRM: 负责进行程序和数据库之间的交流,可以打开DBRM来看看,看到的是一些SQL语句,比如SELECT, CURSOR等等
PLANS: 一个PLANS可以包含多个DBRM或者PACKAGE.PLAN里面包括一些授权信息,这可以理解为运行程序的时候需要以某种权限去访问数据库,比如SELECT权限,UPDATE权限等.
CICS DB2 ENTRY & DB2 TRANS: 要让CICS和外部的DB2进行通讯,除了要定义DB2 CONNECTION之外,还需要定义DB2 ENTRY & TRANS. 其中DB2 ENTRY里面定义了ENTRY名字,所属GROUP名字,还有要用到的PLAN名字; DB2 TRANS定义了该交易对应于CICS里面哪个已定义的交易,以及要用到的DB2 ENTRY名字.有了这两个定义,CICS内部交易就可以访问外部数据库了.
STEP2: COBOL程序里面要实现上下翻屏,不能像AS/400 RPG+DISPLAY FILES那样简单定义SUBFILE,而必须要自己写出算法.一般来说是定义SQL CURSOR,在打开CURSOR的时候每次读几条记录,然后记录下第一条和最后一条记录,以便下一次上下翻屏,实例如下
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/f7f596546141ef00bbbafabd1d0035f5.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/dc9cb99a171f49557f0ad8fcfbba0f3e.gif)
STEP3:编写上下翻屏屏幕文件和显示明细文件如下
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/9e8a2df6b6e541b8fc8eb252719d6ff6.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/4f9e78f93774aa04d5df21d178bd50c3.gif)
STEP4:编写主控程序,实现上下翻屏; 编写显示明细程序. 在这里要请读者注意程序之间调用的几个方法: XCTL, LINK和RETURN的区别. 一般来说,CICS RETURN(TRANSID)是表示在CICS TRANSACTION结束之后,下一个即将运行的交易的名字.请注意是'即将',就是说,RETURN之后,实际上交易已经不占用内存和CPU资源. 另外就是XCTL和LINK: XCTL是把控制权交给另外一个程序,XCTL有点像GOTO,去了就不回来了.而LINK是相当于执行一个子程序,执行完之后还是会回来的.
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/dcfff0fe96c9d031da4dc5176183680c.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/b3fc5f471dbdd39278d08eff29288ca1.gif)
STEP5:MAP的编译作业流在这里就不再多说,前面入门的文章已经有说明;这里要说的是COBOL的编译作业流.这个作业流包括预编译SQL,预编译CICS,LINK和BIND等过程. 这里的BIND是把两个程序相关的DBRM都一起BIND进来了,如果相关程序多的话,也可以在ISPF菜单下用DB2I的BIND PLAN功能去做。
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/76e2c8c7576ea720ba554fd2b2c63912.gif)
STEP6:在CICS下分别定义、安装MAPS,PROGRAMS,TRANSACTION,DB2 ENTRY, DB2TRANS,在这里给出DB2 ENTRY的画面
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/6f5d80e52f6a7fc2d2f111779e54b684.gif)
STEP7:相关功能演示:
入口画面
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/b5bfb6c8191bd2266a9582caecaae4d5.gif)
向下翻屏
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/3bb925068ed07f9696e5f62acd51f01a.gif)
显示明细
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/b37a9ce5e9c659936662070194524f05.gif)
编辑明细
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/d729158fee955e5229fac86c33f5bb58.gif)
删除
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/107d85eaad5ff776f40deea42b373ce1.gif)
新建
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/9dab0f0510b07c5f1f6e42b1de3a1f8c.gif)
拷贝
![](https://oscdn.geek-share.com/Uploads/Images/Content/200702/26/f5b05b50c6e78ec0ba6a3df9bff070e6.gif)
相关文章推荐
- 390开发实用技术: 给新入门CICS的朋友们----CICS下的Hello World!
- 390开发实用技术: 主机开发者入门之CICS MAP
- C#File类常用的文件操作方法(创建、移动、删除、复制等) File类,是一个静态类,主要是来提供一些函数库用的。静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和
- c#开发一个“记事本”程序,要求能够实现文件的新建、打开、编辑、保存功能
- 创建一个学生系统,实现一下功能; * 1:增加学生 * 2:显示学生 * 3:修改学生 * 4:删除学生 * 5:查找学生 * 6:退出程序 * 请输入选择(
- 这是一个关于XML文档的操作管理器XMLHelper类,类中包括XML文档的创建,文档节点和属性的读取,添加,修改,删除的方法功能的实现
- <C语言>如何一步一步根据简单的代码联想到更多的功能?(实现输入一个整数,输出比它小包括它本身的所有素数。)
- 一个消息提示托盘程序的开发历程(采用socket技术,附源代码)三---客户端源代码
- 一个实用的Delphi屏幕拷贝程序的设计
- 编写一个C程序删除一个文件的所有注释
- C语言 字符串 编一个程序,输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。
- Android 高仿微信(QQ)滑动弹出编辑、删除菜单效果,增加下拉刷新功能
- FckEditor添加右键菜单;增加编辑区右键图片删除功能(asp.net )(一)
- 简单快速开发C\S架构程序用最简单的不分层最快的效率达到功能要求的例子程序FrmCommnetList 所有评论列表的功能实现
- 1 开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你。 本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的原则已经被许多现有的JDBC应用程序编译运行并验证过。 这些指导原则包括: 正确的使用数据库MetaData方法 只获取需要的数据 选用最佳性能的功能 管理连
- 编写一个程序,自定义以为数组,删除一维数组中所有相同的数,使之只剩一个。数组中的数按由小到大顺序排列,并显示运行所用时间。
- 新手必看——Windows Phone 7.5 手机全解析(非开发技术帖)
- 利用模板类编写一个程序,实现双向链表的插入、删除、查找、显示的功能。
- 用c语言实现 一个通讯录(实现 增加、删除、查找、修改、显示、清空功能)
- 日常联系:一个C++程序完成链表的增加结点、删除结点、打印、查询、逆序等操作