Simple Appアプリケーションは次の目的で使用されます。
この単純なサンプル・アプリケーションには、次の言語でコーディングされたバッチ処理とオンライン処理が含まれます。
各プログラムはできるだけ単純な内容になっています。このアプリケーションの目的は、Refine for Z/OS Replatformingのすべての機能を示すことではありません。
Simple Appアプリケーションを使用する際のすべてのプロセスは次のとおりです。
ここでは、Simple Appコンポーネントのアーキテクチャおよびオンラインとバッチの処理について説明します。
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
MAPM000 Simple sample application 07/17/2009
M000
-------------------------------------------------------------------------------
Customer’s identifier: àààààà
PF04 – Customer’s List
PF05 – Add a new customer
PF06 – Modify an existing customer
PF07 – Delete an existing customer
PF08 – Customer’s inquiry
PF03 – Quit application
-------------------------------------------------------------------------------
Info: Type a customer number, select an action and press Enter.
-------------------------------------------------------------------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
MAPM003 Customers list 07/17/2009
M003
-------------------------------------------------------------------------------
Sel ID Last name First name Birth date
-------------------------------------------------------------------------------
@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@/@@/@@@@
@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@/@@/@@@@
@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@/@@/@@@@
@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@/@@/@@@@
@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@/@@/@@@@
@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@/@@/@@@@
@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@/@@/@@@@
@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@/@@/@@@@
@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@/@@/@@@@
@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@/@@/@@@@
-------------------------------------------------------------------------------
-PF7: Page up -PF8: page down -PF3: return to previous menu
-Info: Enter a non blank character and press enter to view customer's data
-------------------------------------------------------------------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
MAPMM01 Customer's detailed information 07/17/2009
M001
-------------------------------------------------------------------------------
Customer's identifier: àààààà
-------------------------------------------------------------------------------
-Last name_____: àààààààààààààààààààààààààààààà
-First name____: àààààààààààààààààààà
-Address_______: àààààààààààààààààààààààààààààà
-City__________: àààààààààààààààààààà
-State_________: àà
-Birth date____: àà/àà/àààà
-Email_________: àààààààààààààààààààààààààààààààààààààààà
-Phone number__: àààààààààà
-------------------------------------------------------------------------------
-PF03: return to previous screen
-------------------------------------------------------------------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
MAPM002 Customer's maintenance 07/17/2009
M002
-------------------------------------------------------------------------------
Customer's identifier: àààààà Action: @@@@@@
-------------------------------------------------------------------------------
-Last name_____: àààààààààààààààààààààààààààààà
-First name____: àààààààààààààààààààà
-Address_______: àààààààààààààààààààààààààààààà
-City__________: àààààààààààààààààààà
-State_________: àà
-Birth date____: àà/àà/àààà
-Email_________: àààààààààààààààààààààààààààààààààààààààà
-Phone number__: àààààààààà
-------------------------------------------------------------------------------
-PF11: clear screen
-PF12: confirm action
-PF03: return to previous screen
-------------------------------------------------------------------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
PGMM000はSimple Sample Applicationの(アクセス用)メイン・メニュー・プログラムです。次の機能にアクセスできます。
各機能にアクセスするには特定のファンクション・キーを押します。呼び出した機能が終了すると、メイン・メニューに戻ります。
このプログラムは、有効な顧客識別番号が入力されたことをチェックして、照会機能および保守機能にアクセスします。
このプログラムは、通信領域を介して顧客識別番号を受け取ります。認識した顧客データを表示するために、VSAM
顧客ファイルにアクセスします。
このプログラムではデータは変更できないため、制御は実行されません。
このプログラムを使用して、次のようなVSAM
顧客ファイルの保守を行うことができます。
PGMM002はアクション・コードと顧客識別番号(必要な場合)を受け取ります。実行されるアクションが画面に表示されます(CREATE
、UPDATE
またはDELETE
)。
新規顧客を作成するとき、このプログラムでは次のチェックが行われます。
既存顧客を更新する場合の制御は、顧客の作成と同じですが、変更できない顧客識別番号は除外されます。
このプログラムは、VSAM
ファイルに格納されている顧客リストを生成します。各画面に表示される顧客数は限定されますが、[PF7]
キーと[PF8]
キーを使用すると前後のページにアクセスできます。顧客行の先頭に空白以外の文字を入力すると、その顧客の詳細情報画面にアクセスできます(プログラムPGMM001に関する項を参照)。
このバッチ・プログラムは、VSAM
ファイルに格納されるデータを含むシーケンシャル・ファイルを読み取ります。エントリ・ファイルのレコードごとに、VSAM
レコードが作成されます。このプログラムを実行する前に、VSAM
ファイルを削除および定義しておく必要があります。エントリ・ファイル内のデータはすべて有効であるとみなされるため、このプログラム内では制御は実行されません。
PGMMB01は、VSAM
ファイルからすべての顧客レコードを読み取り、レポートを生成します。生成されるレポートの例はこのドキュメントで示します。
入力シーケンシャル・ファイルの各レコードには3文字のアクション・コード(ADD
、UPD
またはDEL
)と、新規顧客の作成または既存顧客の更新時に必要な顧客データが含まれます。各入力行によってVSAM
顧客ファイルが更新されます。シーケンシャル・ファイル内の顧客データは有効であるとみなされ、PGMMB02バッチ・プログラムでは制御は実行されません。
バッチ・プログラムおよびユーティリティを使用して、アプリケーションで管理されるデータを提供するVSAM
顧客ファイルのデータ移入、更新およびリスト作成を行います。このアプリケーションでは5つのジョブが実行されます。ここでは、ジョブの使用方法について説明します。
Simple Sample Applicationは、VSAM
メイン顧客ファイル1つのみを利用します。移行プロセスをできるだけ単純にするために、データは表示可能な形式で格納されています(COBOL構文の場合、Xと9のUSAGE DISPLAY pictureが使用されます)。
このVSAM
ファイルは、顧客識別番号に基づいたキー順データセット(KSDS)です。各レコードには266文字が含まれ、キーは位置1 - 6に格納されています。
01 ODCSF0-RECORD.
05 CUSTIDENT PIC 9(006).
05 CUSTLNAME PIC X(030).
05 CUSTFNAME PIC X(020).
05 CUSTADDRS PIC X(030).
05 CUSTCITY PIC X(020).
05 CUSTSTATE PIC X(002).
05 CUSTBDATE PIC 9(008).
05 CUSTBDATE-G REDEFINES CUSTBDATE.
10 CUSTBDATE-CC PIC 9(002).
10 CUSTBDATE-YY PIC 9(002).
10 CUSTBDATE-MM PIC 9(002).
10 CUSTBDATE-DD PIC 9(002).
05 CUSTEMAIL PIC X(040).
05 CUSTPHONE PIC 9(010).
05 FILLER PIC X(100).
次のレポートがプログラムPGMMB01によって生成されます。初期ロード後のVSAM
ファイル(METAW00.VSAM.CUSTOMER
)の顧客リストです。
PGMMB01 Simple Sample Application 07/16/2009
_ ID _ _ LAST NAME _ _ FIRST NAME _ _ CITY _ _ PHONE _ _B. DATE _
------ ----------------------------------- -------------------- ---------- ----------
1 Richardson Bobby New Orleans 5553557901 09/07/1961
2 Roberts Sammy San Francisco 5559827383 01/24/1973
3 Douglas Burt Atlanta 5556531100 10/12/1981
4 Ewing Samantha New York 5558762763 07/27/1962
5 Prince Anne Fresno 5553410156 12/25/1991
PGMMB01 Simple Sample Application 07/16/2009
_ ID _ _ LAST NAME _ _ FIRST NAME _ _ CITY _ _ PHONE _ _B. DATE _
------ ------------------------------ -------------------- -------------------- -------
6 Colombus Christopher Colombus 5557811021 07/27/1962
7 Raul Menedez Fresno 5558981572 07/27/1962
8 Doors Bill Seattle 5553122000 01/01/1958
9 Awing Charles San antonio 5559990123 06/29/1929
PGMMB01 Simple Sample Application 07/16/2009
_ ID _ _ LAST NAME _ _ FIRST NAME _ _ CITY _ _ PHONE _ _B. DATE _
------ ----------------------------------- -------------------- ---------- ----------
1 Richardson Bobby New Orleans 5553557901 09/07/1961
2 Roberts Sammy Jr San Francisco 5559827383 01/24/1973
3 Douglas Burt Atlanta 5556531100 10/12/1981
4 Ewing Samantha New York 5558762763 07/27/1962
5 Prince Anne Fresno 5553410156 12/25/1991
_ ID _ _ LAST NAME _ _ FIRST NAME _ _ CITY _ _ PHONE _ _B. DATE _
------ ----------------------------------- -------------------- ---------- ----------
6 Colombus Christopher Colombus 5557811021 07/27/1950
8 Doors Bill Seattle 5553122000 01/01/1958
9 Awing Charles San antonio 5559990123 06/29/1929
10 Simms Arthur New Orleans 5551298373 01/17/1969
11 LaFayette Eric Plesanton 5554653213 02/12/1995
12 Jackson Mic Fresno 5559800727 01/01/1959
ここでは、Simple Appアプリケーションの使用方法を説明するために、アプリケーションの使用例を示します。
注意: | 各顧客の左側の選択列に空白以外の任意の文字を入力すると、顧客照会を実行できます。 |
ここでは、Simple Appアプリケーション・プログラムで使用されるCICS APIについて説明します。
EXEC CICS
SEND MAP('MAPM000') MAPSET('MAPM000') ERASE
END-EXEC.
EXEC CICS
SEND MAP('MAPM000') MAPSET('MAPM000') CURSOR ERASE
END-EXEC.
EXEC CICS
SEND MAP('MAPM001') MAPSET('MAPM001') FROM(MAPM001O) ERASE
END-EXEC.
EXEC CICS
RECEIVE MAP('MAPM000') MAPSET('MAPM000')
END-EXEC.
EXEC CICS
RECEIVE MAP('ORDMAP1') MAPSET('ORDSET1') INTO(ORDMAP1)
END-EXEC.
EXEC CICS
RETURN
END-EXEC.
EXEC CICS
RETURN TRANSID('M000') COMMAREA(COMM-RECORD)
LENGTH(LENGTH OF COMM-RECORD)
END-EXEC.
EXEC CICS
XCTL PROGRAM(PGM-DEST) COMMAREA(COMM-RECORD)
LENGTH(LENGTH OF COMM-RECORD)
END-EXEC.
EXEC CICS
ABEND ABCODE('META')
END-EXEC.
EXEC CICS STARTBR DATASET ('ODCSF0')
RIDFILD (CUST-FILE-KEY)
EQUAL
RESP (RESPONSE-CODE)
END-EXEC.
EXEC CICS STARTBR DATASET ('ODCSF0')
RIDFILD (CUST-FILE-KEY)
GTEQ
RESP (RESPONSE-CODE)
END-EXEC.
EXEC CICS
READ FILE('ODCSF0')
INTO(VS-ODCSF0-RECORD)
RIDFLD(CUST-FILE-KEY)
LENGTH(LENGTH OF VS-ODCSF0-RECORD)
EQUAL
RESP(RESPONSE-CODE)
END-EXEC.
EXEC CICS READ DATASET ('ODCSF0')
INTO (READ-ODCSF0-RECORD)
LENGTH (LENGTH OF READ-ODCSF0-RECORD)
RIDFLD (CUST-FILE-KEY)
EQUAL
UPDATE
RESP (RESPONSE-CODE)
END-EXEC.
EXEC CICS WRITE DATASET ('ODCSF0')
FROM (MAJ-ODCSF0-RECORD)
LENGTH (LENGTH OF MAJ-ODCSF0-RECORD)
RIDFLD (MAJ-CUSTIDENT)
KEYLENGTH (6)
RESP (RESPONSE-CODE)
END-EXEC.
EXEC CICS REWRITE DATASET ('ODCSF0')
FROM (READ-ODCSF0-RECORD)
LENGTH (LENGTH OF READ-ODCSF0-RECORD)
RESP (RESPONSE-CODE)
END-EXEC.
EXEC CICS READNEXT DATASET ('ODCSF0')
INTO (CLT-ODCSF0-RECORD)
LENGTH (LENGTH OF CLT-ODCSF0-RECORD)
RIDFLD (CUST-FILE-KEY)
RESP (RESPONSE-CODE)
END-EXEC.
EXEC CICS READPREV DATASET ('ODCSF0')
INTO (CLT-ODCSF0-RECORD)
LENGTH (LENGTH OF CLT-ODCSF0-RECORD)
RIDFLD (CUST-FILE-KEY)
RESP (RESPONSE-CODE)
END-EXEC.
EXEC CICS ENDBR DATASET ('ODCSF0')
END-EXEC.
EXEC CICS DELETE FILE ('ODCSF0')
RIDFLD (CUST-FILE-KEY)
RESP (RESPONSE-CODE)
END-EXEC.
EXEC CICS
ASKTIME ABSTIME(ABS-TIME)
END-EXEC.
EXEC CICS
FORMATTIME ABSTIME(ABS-TIME)
DDMMYY(VDATEO) DATESEP('-')
END-EXEC.
EXEC CICS
IGNORE CONDITION MAPFAIL
END-EXEC.
EXEC CICS
HANDLE CONDITION PGMIDERR(PGM-NOTFOUND)
END-EXEC.
http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=/com.ibm.cics.ts31.doc/dfhp4/topics/dfhp4_commands.htm
次のCICS APIがSimple Appアプリケーションで使用されています。
このドキュメントは、『CICS Transaction Server for z/OSアプリケーション・プログラミング・リファレンス』に基づいています。