ユーザーズ・ガイド

     前  次    新規ウィンドウで目次を開く    PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

付録B: Simple Appアプリケーション

この章の内容は次のとおりです。

 


概要

この章は、Simple Appアプリケーションのリホスティングを順を追って説明することを目的としています。アプリケーションのリホスティングにOracle Tuxedo Application Rehosting Workbench (Tuxedo ART Workbench)を使用する手順を順を追って説明します。リホスティング・プロジェクトを開始するには、メインフレームにあるソース・コードを取得する必要があります。付録4のメインフレーム・コンポーネントの抽出および転送は、これを実現するためのガイドです。ソース・コードとデータは、Oracle Tuxedo Application Rehosting Workbenchのインストール時に、ご使用のマシンにコピーされています。デフォルトでは、…/art_wb12cR1/samples/STFILEORAにあります。リホスティングのプロセスで何か異常が発生した場合や、サンプル・リホスティングを再び実行する場合に、いつでも元に戻れるようにクリーン・コピーを用意しておくために、Workbenchを使用する前に、このディレクトリを作業領域にコピーすることをお薦めします。この練習のために、…/art_wb12cR1/samples/STFILEORAが/labにコピーされていると仮定します。

 


Simple Appコンポーネントの説明

ここでは、Simple Appコンポーネントのアーキテクチャおよびオンラインとバッチの処理について説明します。

図0-1 Simple Appコンポーネントのアーキテクチャ

Simple Appコンポーネントのアーキテクチャ

種類別のコンポーネント・リスト

CICS画面

名前
説明
MAPM000
顧客保守入力メニュー。
MAPM001
顧客データ照会画面。
MAPM002
顧客データ保守画面(新規顧客、顧客の更新および削除)。
MAPM003
顧客リスト画面。

CICSプログラム

名前
説明
PGMM000
顧客保守入力プログラム。
PGMM001
顧客データ照会プログラム。
PGMM002
顧客データ保守プログラム(新規顧客、顧客の更新および削除)。
PGMM003
顧客リスト・プログラム。

バッチ・プログラム

名前
説明
PGMMB00
VSAMファイルの初期ロード。このファイルはQSAMファイルからロードされます。
PGMMB01
このプログラムは、VSAM顧客ファイルに格納されている顧客リストを生成します。
PGMMB02
このプログラムは、VSAMのメイン顧客ファイルを更新するために使用されるコマンドとデータを含むQSAMファイルにアクセスします。

トランザクション・コード

名前
説明
M000
メインの入力トランザクション・コード(プログラムPGMM000)。
M001
顧客の照会(プログラムPGMM001)。
M002
顧客の保守(プログラムPGMM002)。
M003
顧客リスト(プログラムPGMM003)。

ジョブ

名前
説明
DEFVCUST
このジョブは、VSAM顧客ファイルの削除と定義(DELETEおよびDEFINE)を行うIDCAMSユーティリティを実行します。
CHKVCUST
このジョブは、IDCAMSユーティリティを実行し、VSAMファイルを読取りとチェックが容易なQSAMに再生成(REPRO)します。
LODVCUST
このジョブは、PGMMB00バッチ・プログラムを実行します。これは、新たに定義されたVSAM顧客ファイルに格納されるデータを含むシーケンシャル・ファイルを読み取ります。
PRTVCUST
このジョブは、VSAMファイルで参照される顧客のレポートを生成するPGMMB01バッチ・プログラムを実行します。
UPDVCUST
このジョブは、VSAM顧客ファイルの更新に使用されるデータを含むPGMMB02バッチ・プログラムを実行します。

マップの説明

リスト0-1 MAPM000 - 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.
-------------------------------------------------------------------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
リスト0-2 MAPM003 - 顧客リスト
....+....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
-------------------------------------------------------------------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
リスト0-3 MAPM001 - 顧客詳細情報
....+....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
-------------------------------------------------------------------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
リスト0-4 MAPM002 - 顧客の保守
....+....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     
-------------------------------------------------------------------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

プログラムの説明

CICSプログラムの説明

PGMM000(顧客保守メイン・メニュー)

PGMM000はSimple Sample Applicationの(アクセス用)メイン・メニュー・プログラムです。次の機能にアクセスできます。

各機能にアクセスするには特定のファンクション・キーを押します。呼び出した機能が終了すると、メイン・メニューに戻ります。

制御:

このプログラムは、有効な顧客識別番号が入力されたことをチェックして、照会機能および保守機能にアクセスします。

PGMM001(顧客詳細情報の照会)

このプログラムは、通信領域を介して顧客識別番号を受け取ります。認識した顧客データを表示するために、VSAM顧客ファイルにアクセスします。

制御:

このプログラムではデータは変更できないため、制御は実行されません。

PGMM002(顧客データの保守)

このプログラムを使用して、次のようなVSAM顧客ファイルの保守を行うことができます。

PGMM002はアクション・コードと顧客識別番号(必要な場合)を受け取ります。実行されるアクションが画面に表示されます(CREATEUPDATEまたはDELETE)。

制御:

実行される制御は、行われるアクションによって異なります。

新規顧客を作成するとき、このプログラムでは次のチェックが行われます。

既存顧客を更新する場合の制御は、顧客の作成と同じですが、変更できない顧客識別番号は除外されます。

顧客削除のリクエストでは制御は実行されません。

PGMMM03(顧客リスト)

このプログラムは、VSAMファイルに格納されている顧客リストを生成します。各画面に表示される顧客数は限定されますが、[PF7]キーと[PF8]キーを使用すると前後のページにアクセスできます。顧客行の先頭に空白以外の文字を入力すると、その顧客の詳細情報画面にアクセスできます(プログラムPGMM001に関する項を参照)。

バッチ・プログラムの説明

PGMMB00 (VSAMファイルの初期ロード)

このバッチ・プログラムは、VSAMファイルに格納されるデータを含むシーケンシャル・ファイルを読み取ります。エントリ・ファイルのレコードごとに、VSAMレコードが作成されます。このプログラムを実行する前に、VSAMファイルを削除および定義しておく必要があります。エントリ・ファイル内のデータはすべて有効であるとみなされるため、このプログラム内では制御は実行されません。

PGMMB01(顧客レポート)

PGMMB01は、VSAMファイルからすべての顧客レコードを読み取り、レポートを生成します。生成されるレポートの例はこのドキュメントで示します。

PGMMB02(バッチ顧客保守プログラム)

入力シーケンシャル・ファイルの各レコードには3文字のアクション・コード(ADDUPDまたはDEL)と、新規顧客の作成または既存顧客の更新時に必要な顧客データが含まれます。各入力行によってVSAM顧客ファイルが更新されます。シーケンシャル・ファイル内の顧客データは有効であるとみなされ、PGMMB02バッチ・プログラムでは制御は実行されません。

 


Oracle Tuxedo Application Rehosting Workbenchを使用したSimple Appのリホスティング

プロジェクトの作成

Tuxedo ART Workbenchプラグインは、Eclipseに対するアドインで、Oracle Tuxedo Application Rehosting Workbenchの他のコンポーネントとともにインストールされています。Workbenchは、デスクトップにあるTuxedo ART Eclipse IDEアイコンをクリックすることで起動します。

「ART WorkbenchとRuntime」パースペクティブでない場合、手動で切り替えることができます。ウィンドウ→パースペクティブを開く→「その他」をクリックし、ART WorkbenchとRuntimeを選択してから「OK」をクリックします。

新規のARTプロジェクトを作成するには、「ファイル」→「新規」→「プロジェクト」をクリックし、ART→Tuxedo ARTプロジェクトをリストで選択してから、「次」をクリックします。

「ARTプロジェクトの作成」画面でプロジェクト名を入力し、「デフォルトの場所を使用」を選択したままにするか、選択を解除し、Workbenchでそのプロジェクトのために使用する作業領域の場所を入力してから「次」をクリックします。

次の画面で、すでに表示されているデフォルトと異なる場合は、Workbenchインストール・ディレクトリを入力し、「次」をクリックします。

次の画面では、アプリケーション・ソース・フォルダの場所を入力します。これは、提供されたアプリケーション・ソースとデータを「概要」で概説したようにコピーした場所です。「参照」ボタンを使用すれば、ソース・ディレクトリを見つけられます。「source」ディレクトリをこの場所に追加して、実際のソース・ファイルがある場所を示し、「次」をクリックします。

次の画面で、ターゲット・データベース・タイプとCOBOLコンパイラ・タイプが表示されます。これらは必要に応じて変更できます。この場合、デフォルト値を使用します。「終了」をクリックして続行します。

「終了」をクリックすると、ARTプロジェクト・ウィザードで新規プロジェクトが作成され、指定した作業領域にデータが移入されます。Workbenchでは、追加の作業ディレクトリも作成され、パラメータ・ファイルとスクリプトが移入されます。作業領域の構造は次に示すとおりです。

図B-1 作業領域の構造

作業領域の構造

プロジェクト作成フェーズは、これで完了しました。

インポート

インポート・フェーズでは、ソース・ファイルをプロジェクトにコピーします。プロジェクト作成中に指定したディレクトリのサブディレクトリがすべて、次に示す表に記載されています。

図B-2 インポート・ウィザード

インポート・ウィザード

それらのすべてを選択してから「終了」をクリックします。すべての選択サブディレクトリがプロジェクトにインポートされます。

準備

準備フェーズでは、Workbenchの他のコンポーネントによってさらに処理を進めるためにソースを準備します。異なるメインフレームのソースが様々な方法で収集されている可能性があるため、準備プロセスにより、使用するソースのために適切な処理を選択できます。準備プロセスの終了後、まだ何かが正しくないことに気付いた場合、ART→「リセット」→「準備の消去」を実行して(後で説明)、準備フェーズの出力を削除し、異なるオプションでもう一度準備を実行できます。

準備フェーズを実行するには、メニュー・バーからART→「準備…」をクリックします。

準備ページが表示されます。この画面では、必要に応じて、MBCSコード・ページの変換を選択できます。MBCSの詳細は、付録3のTuxedo ART Workbench MBCSサポートを参照してください。メインフレームからのファイルの転送中に、<CR>文字が各行の末尾の前に挿入されている場合、dos2unixの変換を選択して、これらを削除できます。

これは通常、ソース・ファイルがWindowsマシンに転送されるときに発生します。「ソース・ファイル名を大文字に変更」を選択し、すべてのソース・ファイル名のベース名を大文字に変更します。このアプリケーションにはこの準備は不要であるため、「終了」をクリックして完了します。

図B-3 準備ウィザード

準備ウィザード

分析

分析フェーズでは、すべてのソースを読み取り、欠けているコンポーネントおよび依存関係を検索し、この後の移行ステップで使用されるソースの抽象表現を作成します。移行フェーズを実行する前に対応すべき領域をハイライト表示して、コンポーネント・タイプごとにレポートが生成されます。

分析フェーズを実行する前に、アプリケーションに必要なデータ移行を定義する必要があります。これを実行するには、「STFILEORA」を右クリックしてから「プロパティ」をクリックして、「STFILEORAのプロパティ」ページに移動します。ファイル・コンバータをクリックし、次のように下の表の必要項目に記入します(表のすべてのフィールドを表示するには、左にスクロールする必要があります)。

「Simple Appの機能」の項の「データの説明」で説明しているように、Simple APPアプリケーションには、2つのファイルが含まれています。名前は次のとおりです。

QS-ODCSF0-RECORDQS-ODCSFU-RECORDはそれぞれ、COPYBOOKで指定されたレコード名です。

ODCSF0ODCSFUはそれぞれ、ART Workbenchで内部的に使用される論理名です。

PJ01AAA.S2.QSAM.CUSTOMERの編成には索引が付けられています。PJ01AAA.S2.QSAM.CUSTOMER.UPDATE編成は順次です。PJ01AAA.S2.QSAM.CUSTOMERのキー・オフセットとキー長は、それぞれ0と6です。PJ01AAA.S2.QSAM.CUSTOMER.UPDATEはQSAMファイルなので、キーはありません。

「変換済」プロパティは、Oracle表に移行する場合は「True」、ファイルとして残す場合は「False」です。

「転送済」プロパティは、メインフレームからオープン・システムに転送する必要のあるデータが含まれる永久ファイルであることを意味します。「True」に設定されている場合、WorkbenchではアンロードJCL、EBCDICからASCIIへのトランスコーディング・プログラムおよび再ロード・スクリプトが生成されます。

これらのファイルのレコード構造は、2つのCOBOLコピーブックで定義されており、「含む」フィールドに入力されます。

これらのプロパティを入力したら、「適用」をクリックします。「STFILEORAのプロパティ」のステータスが下に表示されます。

図B-4 プロパティ・ページ

プロパティ・ページ

ファイル・コンバータで使用されるデータマップ・ファイルおよびマッパー・ファイルを生成するには、表内のすべての情報が必要です。

表内の各列の意味を明確にするには、Oracle Tuxedo Application Rehosting Workbenchリファレンス・ガイドのデータマップ・ファイルおよびマッパー・ファイルに関する項を参照してください。

カタログを実行する前に、スコープを構成する必要があります。

ART→「分析」→「スコープの構成」をクリックすると、すべてのソース・ファイルが正常に認識され、それらのすべてがデフォルトで処理されます。

COBOLプログラムのライブラリ・パスを構成します。「BATCH」を選択して、サブディレクトリの詳細設定: BATCH→「ライブラリ」タブフォルダ→「新規」をクリックし、ライブラリを追加し、「コピー」に変更します。前述の手順と同様に、CICSサブディレクトリの「ライブラリ」として「コピー」を設定します。

 図B-5

分析フェーズを実行するには、メニュー・バーからART→「分析」→「カタログ」をクリックします。

カタログ・プロセスが完了したら、次に示すように「レポート」ウィンドウでコンソール・ログと生成されたレポートを確認します。レポートは、…/workspace/STFILEORA/ReportsディレクトリでCSV形式でも入手できます。

図B-6 レポート表示

レポート表示

カタロガの再実行が必要な場合、生成されたPOBファイルを削除する必要があります。これは、メニュー・バーからART→「分析」>POBリポジトリの消去をクリックすれば実行できます。

変換

このフェーズでは、COBOLプログラムとその他のソース・アーティファクトが変換され、コンパイルと実行の準備ができます。ここでは、カタログ・フェーズで作成された抽象表現が使用されます。ここでは、メインフレームでデータをアンロードするためのJCLデックや、リホスティング・プロセスでのこの後の手順用の様々なスクリプトも作成されます。個々のタイプのコンポーネントを変換することも、すべてのコンポーネントを一度に変換することもできます。移行フェーズを実行するには、メニュー・バーからART→「変換」をクリックして、次のように「変換」オプションの1つを選択します。

図B-7 「変換」メニュー

「変換」メニュー

変換プロセスは、ソース・ディレクトリで追加ファイルが追加されたり、変更されたりすると、それに応じて追加的に実行されます。ただし、変換フェーズを再実行する必要がある場合、メニュー・バーからART→「変換」→「ターゲットの消去」をクリックすれば、作成されたターゲット・ファイルはすべて削除できます。

構成

構成フェーズでは、Oracle Tuxedo Application Runtime for CICS and Batchのコンポーネントと構成ファイルをコンパイルするためのmakefileを作成する機能を実現します。Tuxedo、CICSおよびBatchの構成を別々に作成するオプションが用意されています。構成フェーズを実行するには、メニュー・バーからART→「構成」をクリックして、「構成」オプションの1つを選択します。

「ビルド設定の構成」ウィザードは、必要なmakefileを作成するために使用され、これらは最終的にリホストされるアプリケーションと、移行フェーズで作成されるデータ移行ユーティリティのビルドに使用されます。

ページ1/3では、ターゲット・データベースを指定できます。完了したら、「次」をクリックして続行します。

図B-8 ビルド設定の構成のページ1

ビルド設定の構成のページ1

ページ2/3では、COBOLコンパイラのオプションとPDKSHの場所を指定できます。完了したら、「次」をクリックして続行します。

図B-9 ビルド設定の構成のページ2

ビルド設定の構成のページ2

ページ3/3では、ART CICSプリコンパイラおよびART CICS mapgen構成を指定できます。MBCS変換もここで構成できます。「終了」をクリックして続行します。

図B-10 ビルド設定の構成のページ3

ビルド設定の構成のページ3

「Tuxedo Domain/CICS Runtime/Batch Runtimeの構成」ウィザードでは、デフォルトの構成を選択することも、自分の環境に合うようにカスタマイズすることもできます。ウィザードは次のように表示されます。

図B-11 Tuxedo Domainの構成

Tuxedo Domainの構成

図B-12 CICS Runtimeの構成

CICS Runtimeの構成

図B-13 Batch Runtimeの構成

詳細は、Oracle Tuxedo Domain/CICS Runtime/Batch Runtimeドキュメントを参照してください。

ビルド

このフェーズでは、アプリケーション・コンポーネントやデータ再ロード・プログラムなどをコンパイルします。ビルド・フェーズを実行するには、メニュー・バーからART→「ビルド」をクリックして、「ビルド」オプションの1つを選択します。個々のタイプのコンポーネントを変換することも、すべてのコンポーネントを一度に変換することもできます。

デプロイ

デプロイ・フェーズでは、これまでの手順で作成されたすべてのプログラム、スクリプト、JCLおよび構成ファイルのtarファイルを作成し、デプロイの準備を整えます。ローカル・デプロイを選択して、Workbenchがすでに実行されているマシンで、リホストされたアプリケーションをコンパイルし、実行することもできます。またデプロイ・フェーズでは、データをファイルかデータベースに再ロードします。異なるマシンへのデプロイには、手動による介入が必要になりますが、これはこの項の範囲を超えています。デプロイ・フェーズを実行するには、メニュー・バーからART→「デプロイ」をクリックして、「デプロイ」オプションの1つを選択します。

ART→「デプロイ」→「ターゲットのパック」をクリックし、3つのtarファイルをprojectの下にあるpackディレクトリに格納します。

ART→「デプロイ」→「アプリケーションのデプロイ」をクリックし、tarファイルをデプロイ・ディレクトリに解凍します。

ART→「デプロイ」→「Runtimeの設定」をクリックし、BATCHとCICSのランタイム環境を設定します。

ART→「デプロイ」→「ファイル・データのリロード」をクリックし、ウィザードを起動します。データソースの場所(たとえば、/home/artuser/oracle/art_wb12110/samples/STFILEORA/data_source)を選択してから、データソース・ファイル列を表でクリックすると、フロント・パスにあるすべてのファイルがリストされるので、一致するものを選択します。次に示すように、デプロイ場所を選択してから、「終了」をクリックします。

図B-14 ファイル・データのリロード

ファイル・データのリロード

実行

ART→Batch Runtime→「起動」をクリックし、Batch Runtimeを起動します。BATCH_RTディレクトリの下にあるreadme.txtの手順に従うジョブを送信できます。

ART→CICS Runtime→「起動」をクリックし、CICS Runtimeを起動します。3270ターミナルを開き、CICS Runtimeに接続して、トランザクションを起動できます。

 


Simple Appの機能

バッチ処理

バッチ・プログラムおよびユーティリティを使用して、アプリケーションで管理されるデータを提供するVSAM顧客ファイルのデータ移入、更新およびリスト作成を行います。このアプリケーションでは5つのジョブが実行されます。ここでは、ジョブの使用方法について説明します。

VSAM顧客ファイルの初期ロード

  1. ステップ1: VSAMファイルの定義
  2. 最初に、DELETE/DEFINEコマンドを使用してIDCAMSユーティリティでVSAM顧客ファイルを定義します。

  3. ステップ2: VSAMファイルの初期ロード
  4. バッチ・プログラムPGMMB00を使用してVSAMファイルにデータを移入します。

  5. ステップ3: VSAMファイルのチェック
  6. IDCAMSを使用し、z/OS環境で容易に読み取ることができるシーケンシャル・ファイルをVSAMファイルから再生成(REPRO)します。

  7. ステップ4: VSAMファイルのレポート
  8. バッチ・プログラムPGMMB01は、VSAM顧客ファイルに格納されている顧客リストを生成します。

    図0-2 VSAM顧客ファイルの初期ロード


    VSAM顧客ファイルの初期ロード

VSAM顧客ファイルの更新

  1. ステップ1: VSAMファイルの更新
  2. バッチ・プログラムPGMMB02は、VSAM顧客ファイルに対して実行する更新を含むシーケンシャル・ファイルを読み取ります。入力ファイルは、IBM標準ソート・ユーティリティによってソートされます。

  3. ステップ2: VSAMファイルのレポート
  4. バッチ・プログラムPGMMB02を再び使用して、更新がVSAM顧客ファイルに正しく適用されたことをチェックします。

    図0-3 VSAMファイルの更新


    VSAMファイルの更新

データの説明

Simple Sample Applicationは、VSAMメイン顧客ファイル1つのみを利用します。移行プロセスをできるだけ単純にするために、データは表示可能な形式で格納されています(COBOL構文の場合、Xと9のUSAGE DISPLAY pictureが使用されます)。

VSAM顧客ファイルには、次の情報が含まれます。

VSAMカスタム・ファイルの説明
名前
種類
長さ
説明
CUSTIDENT
数値
6
顧客識別番号
CUSTLNAME
英字
30
顧客の姓
CUSTFNAME
英字
20
顧客の名
CUSTADDRS
英字
30
顧客の住所(番地)
CUSTCITY
英字
20
市町村
CUSTSTATE
英字
2
CUSTBDATE
数値
8
顧客の生年月日
CUSTEMAIL
英字
40
顧客の電子メール・アドレス
CUSTPHONE
数値
10
顧客の電話番号

このVSAMファイルは、顧客識別番号に基づいたキー順データセット(KSDS)です。各レコードには266文字が含まれ、キーは位置1 - 6に格納されています。

VSAM顧客ファイルのCOBOLでの指定
リスト0-5 VSAM顧客ファイルのCOBOLでの指定
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)の顧客リストです。

リスト0-6 Simple Appの初期レポート
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     

次のレポートは、更新された顧客ファイルに基づくものです。

リスト0-7 Simple Appの更新された顧客ファイル・レポート
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アプリケーションの使用方法を説明するために、アプリケーションの使用例を示します。

顧客レコードの表示

  1. CICS環境にアクセスし、Simple Appのメイン・トランザクション・コードM000を入力してアプリケーションに接続します。

  2. VSAMファイルの更新

  3. メイン・メニューが表示されます。「顧客ID」フィールドに000003と入力し、[PF08]キーを押して顧客を照会します。

  4. VSAMファイルの更新

  5. Douglas Burtの顧客レコードが表示されます。[PF03]キーを押して、メイン・メニューに戻ります。

  6. VSAMファイルの更新

顧客レコードの更新

  1. メイン・メニューで、「顧客ID」フィールドに000003と入力して[PF06]キーを押し、顧客情報を更新します。

  2. VSAMファイルの更新

  3. 更新画面ではすべてのデータを変更できます。画面ヘッダーにアクション更新が表示されます。顧客の住所を変更して、[Enter]を押します。

  4. VSAMファイルの更新

  5. [PF12]を押して更新を確認します。画面のフッター部分に保守完了というメッセージが表示されます。入力内容を取り消すには、[PF03]を押してメイン・メニューに戻ります。

  6. VSAMファイルの更新

顧客レポートの印刷

  1. メイン・メニューで[PF04]キーを押して、顧客リストの最初のページにアクセスします。

  2. VSAMファイルの更新

  3. [PF08]キーを押すとリストの次のページが表示されます。[PF07]キーを押すとリストの前のページが表示されます。
注意: 各顧客の左側の選択列に空白以外の任意の文字を入力すると、顧客照会を実行できます。

新規顧客の追加

  1. メイン・メニューで[PF05]キーを押すと、次の画面が表示されます。

  2. VSAMファイルの更新

    画面ヘッダーのアクションが作成に設定され、フィールドの保護が解除されます。

  3. 存在していない有効なIDを含む新規顧客データを入力し、[Enter]を押します。
  4. プログラムがレコードを検証します。エラーが見つからなければ、確認メッセージが表示されます。

  5. [PF12]キーを押すと、新しい顧客レコードが作成されます。
  6. 新規顧客が追加されたというメッセージが表示されます。

  7. [PF03]キーを押してメイン・メニューに戻ります。

 


Simple AppのAPI

ここでは、Simple Appアプリケーション・プログラムで使用されるCICS APIについて説明します。

MAP API

SEND

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.

RECEIVE

EXEC CICS
     RECEIVE MAP('MAPM000') MAPSET('MAPM000')
END-EXEC.
EXEC CICS
     RECEIVE MAP('ORDMAP1') MAPSET('ORDSET1') INTO(ORDMAP1)
END-EXEC.

NAVIGATION API

RETURN

EXEC CICS    
     RETURN  
END-EXEC.    
EXEC CICS                                
     RETURN TRANSID('M000') COMMAREA(COMM-RECORD)
                            LENGTH(LENGTH OF COMM-RECORD)
END-EXEC.

XCTL

EXEC CICS
     XCTL PROGRAM(PGM-DEST) COMMAREA(COMM-RECORD) 
                            LENGTH(LENGTH OF COMM-RECORD)
END-EXEC. 

ABEND

EXEC CICS
     ABEND ABCODE('META')
END-EXEC.

VSAM API

STARTBR

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. 

READ

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. 

WRITE

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. 

REWRITE

EXEC CICS REWRITE DATASET ('ODCSF0') 
                  FROM    (READ-ODCSF0-RECORD) 
                  LENGTH  (LENGTH OF READ-ODCSF0-RECORD)
                  RESP    (RESPONSE-CODE) 
END-EXEC. 

READNEXT

EXEC CICS READNEXT DATASET ('ODCSF0') 
                   INTO    (CLT-ODCSF0-RECORD) 
                   LENGTH  (LENGTH OF CLT-ODCSF0-RECORD)
                   RIDFLD  (CUST-FILE-KEY) 
                   RESP    (RESPONSE-CODE) 
END-EXEC.

READPREV

EXEC CICS READPREV DATASET ('ODCSF0') 
                   INTO    (CLT-ODCSF0-RECORD) 
                   LENGTH  (LENGTH OF CLT-ODCSF0-RECORD)
                   RIDFLD  (CUST-FILE-KEY) 
                   RESP    (RESPONSE-CODE) 
END-EXEC. 

ENDBR

EXEC CICS ENDBR DATASET ('ODCSF0')
END-EXEC. 

DELETE

EXEC CICS DELETE FILE    ('ODCSF0')
                 RIDFLD  (CUST-FILE-KEY)
                 RESP    (RESPONSE-CODE)
END-EXEC. 

MISCELLEANOUS API

TIME

EXEC CICS                         
     ASKTIME ABSTIME(ABS-TIME)   
END-EXEC.                         
EXEC CICS 
     FORMATTIME ABSTIME(ABS-TIME)
                DDMMYY(VDATEO) DATESEP('-')      
END-EXEC. 

HANDLE CONDITION

EXEC CICS
     IGNORE CONDITION   MAPFAIL
END-EXEC.
EXEC CICS 
     HANDLE CONDITION PGMIDERR(PGM-NOTFOUND)
END-EXEC.

 


Simple Appの参照ドキュメント

CICS APIの詳細は次のアドレスを参照してください。

http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=/com.ibm.cics.ts31.doc/dfhp4/topics/dfhp4_commands.htm

CICS APIの詳細

次のCICS APIがSimple Appアプリケーションで使用されています。

Simple App CICSのAPI
API
説明
ASKTIME
現在の日付と時刻をリクエストします。
DELETE
ファイル(VSAM KSDS、VSAM RRDS、データ表のみ)からレコードを削除します。
ENDBR
ファイルのブラウズを停止します。
FORMATTIME
絶対日時を指定された書式に変換します。
LINK
戻り値を想定する別のプログラムにリンクします。外部CICSインタフェース(EXCI)で提供されるLINKコマンドは、1回の呼出しでインタフェースの6つのコマンドすべてを実行します。EXCIの詳細は、『CICS外部インタフェース・ガイド』を参照してください。
READ
ファイルからレコードを読み取ります。
READNEXT
ファイルのブラウズ中に次のレコードを読み取ります。
READPREV
ファイルのブラウズ中に前のレコードを読み取ります(VSAMおよびデータ表のみ)。
RECEIVE MAP
画面からの入力をアプリケーション・データ領域に受け取ります。BMSの詳細は、次を参照してください
RETURN
プログラムに制御を返します。
REWRITE
ファイルのレコードを更新します。
SEND MAP
マップされた出力データを端末に送信します。キーワードは、最小、標準および完全BMSでサポートされるように区切られます。BMSの詳細は、『CICSアプリケーション・プログラミング・ガイド』を参照してください。
START
指定された時刻にタスクを開始します。
STARTBR
ファイルのブラウズを開始します。
WRITE
レコードを書き込みます。
XCTL
プログラムの制御を移します。

このドキュメントは、『CICS Transaction Server for z/OSアプリケーション・プログラミング・リファレンス』に基づいています。


  先頭に戻る       前  次