390開發實用技術: 重拳出擊,CICS聯機程序開發新手必看---一個典型的CICS程序,所有完備功能包括上下翻屏,增加/編輯/刪除/拷貝紀錄等

經過前面基礎知識入門的朋友,一定想知道典型的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的時候每次讀幾條記錄,然後記錄下第一條和最後一條記錄,以便下一次上下翻屏,實例如下



STEP3:編寫上下翻屏屏幕文件和顯示明細文件如下



STEP4:編寫主控程序,實現上下翻屏; 編寫顯示明細程序. 在這裏要請讀者注意程序之間調用的幾個方法: XCTL, LINK和RETURN的區別. 一般來說,CICS RETURN(TRANSID)是表示在CICS TRANSACTION結束之後,下一個即將運行的交易的名字.請注意是'即將',就是說,RETURN之後,實際上交易已經不佔用內存和CPU資源. 另外就是XCTL和LINK: XCTL是把控制權交給另外一個程序,XCTL有點像GOTO,去了就不回來了.而LINK是相當於執行一個子程序,執行完之後還是會回來的.





STEP5:MAP的編譯作業流在這裏就不再多說,前面入門的文章已經有說明;這裏要說的是COBOL的編譯作業流.這個作業流包括預編譯SQL,預編譯CICS,LINK和BIND等過程. 這裏的BIND是把兩個程序相關的DBRM都一起BIND進來了,如果相關程序多的話,也可以在ISPF菜單下用DB2I的BIND PLAN功能去做。



STEP6:在CICS下分別定義、安裝MAPS,PROGRAMS,TRANSACTION,DB2 ENTRY, DB2TRANS,在這裏給出DB2 ENTRY的畫面



STEP7:相關功能演示:

入口畫面

向下翻屏

顯示明細

編輯明細

刪除

新建

拷貝  


 
發佈了16 篇原創文章 · 獲贊 1 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章