(57)【特許請求の範囲】
【請求項１】
一連のプロセス及びステートメント・グループを記述するコンピュータ・プログラム・コードの保守環境を提供するための方法であって、
コンピュータによって実行され、
前記コンピュータ・プログラム・コードの一部分に予め定義されたキーワードが含まれている場合に、当該一部分をファイルに格納するステップと、
前記一部分がプロセス又はステートメント・グループを記述した部分であることを、前記キーワードが表している場合に、当該一部分に記述されたプロセス又はステートメント・グループの名前をリストファイルに格納するステップと、
前記ファイルに格納した前記一部分と前記リストファイルとの間に前記コンピュータ・プログラム・コードのナビゲーション用のリンクを生成するステップと、
を少なくとも備える方法。
【請求項２】
前記ファイルはウェブ対応のブラウザ・プログラムによってロードできるようにフォーマットされている請求項１に記載の方法。
【請求項３】
前記ファイルがＨＴＭＬファイルから成る請求項２に記載の方法。
【請求項４】
一連のプロセス及びステートメント・グループを記述するコンピュータ・プログラム・コードの保守環境を提供するためのコンピュータ・システムであって、
前記コンピュータ・プログラム・コードの一部分に予め定義されたキーワードが含まれている場合に、当該一部分をファイルに格納するステップと、
前記一部分がプロセス又はステートメント・グループを記述した部分であることを、前記キーワードが表している場合に、当該一部分に記述されたプロセス又はステートメント・グループの名前をリストファイルに格納するステップと、
前記ファイルに格納した前記一部分と前記リストファイルとの間に前記コンピュータ・プログラム・コードのナビゲーション用のリンクを生成するステップと、
を少なくとも実行するコンピュータ・システム。
【請求項５】
前記ファイルはウェブ対応のブラウザ・プログラムによってロードできるようにフォー
マットされている請求項４に記載のコンピュータ・システム。
【請求項６】
前記ファイルがＨＴＭＬファイルから成る請求項５に記載のコンピュータ・システム。
【請求項７】
一連のプロセス及びステートメント・グループを記述するコンピュータ・プログラム・コードの保守環境を提供するためコンピュータに、
前記コンピュータ・プログラム・コードの一部分に予め定義されたキーワードが含まれている場合に、当該一部分をファイルに格納するステップと、
前記一部分がプロセス又はステートメント・グループを記述した部分であることを、前記キーワードが表している場合に、当該一部分に記述されたプロセス又はステートメント・グループの名前をリストファイルに格納するステップと、
前記ファイルに格納した前記一部分と前記リストファイルとの間に前記コンピュータ・プログラム・コードのナビゲーション用のリンクを生成するステップと、
を少なくとも実行させるコンピュータ・プログラム。
【請求項８】
前記ファイルがウェブ対応のブラウザ・プログラムによってロードできるようにフォーマットされている請求項７に記載のコンピュータ・プログラム。
【請求項９】
前記ファイルがＨＴＭＬファイルから成る請求項８に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に手続き型言語で開発したコンピュータ・ソフトウェア・アプリケーションの保守に関し、特にそのようなソフトウェア・アプリケーションにおけるナビゲーションに関する。
【背景技術】
【０００２】
クロス・システム・プロダクト（Cross System Product: ＣＳＰ）は、ＩＢＭ社が戦略アプリケーション・ジェネレータとして設計した一種の手続き型プログラミング言語であり、複数のハードウェア・プラットフォームとオペレーティング・システムをまたぐ一貫した開発・実行環境を提供するものである。ＣＳＰ環境は、アプリケーションの開発に関し極めてユーザフレンドリであると共に、コーディング時間を約７０％削減することができる。しかし、ＣＳＰで開発したアプリケーションの保守は、ＣＳＰ環境における開発プロセスほど容易ではない。これは、主としてＣＳＰを構成している様式に原因がある。ＣＳＰは、一種の手続き型プログラミング言語である。
【０００３】
ＣＳＰアプリケーション・プログラムは、レコード、ステートメント・グループ、プロセス、テーブルなど様々なオブジェクトから構成されている。ＣＳＰのプログラム・コードは、一連のプロセスとステートメント・グループとして書かれている。典型的なアプリケーション・プログラムは、少なくとも１つの主プロセスを有し、これが他のプロセスまたはステートメント・グループを呼び出す。これら呼び出されたプロセスまたはステートメント・グループは、他のプロセスおよび／またはステートメント・グループを呼び出すことができる。（「Ａおよび／またはＢ」は「ＡおよびＢ、Ａ、またはＢ」を表わす。）
【０００４】
典型的なＣＳＰプログラムを抜粋したものを図１に示す。レベル（ＬＶＬ）００１にあるプロセスが主プロセス（すなわちＪＦＢＢ４４Ｐ−ＭＡＩＮ）である。この主プロセスの内容は、図１に示すように、ＳＥＬ列の適切な位置に文字「Ｓ」を入力した後、キャリッジ・リターンを入力する（すなわち「エンター（Enter)」キーを押下する）ことにより、見ることができる。
【０００５】
他のプロセスとステートメント・グループに対する呼び出しを含む主プロセスの内容を図２と図３に示す。特定のプロセスまたはステートメント・グループを表示および／または編集するには、ユーザは、まず図１のより高いレベルの構造リスト画面に戻り、そこで表示および／または編集すべき特定のプロセスまたはステートメント・グループの名前を手動で入力する必要がある。図１のより高いレベルの構造リスト画面に戻るには、コンピュータ・キーボードの予め定めてあるファンクション・キーの１つである「ＰＦ３」キーを押下する。上述したようにして、表示および／または編集するプロセスＪＦＢＢ４４Ｐ−ＥＸＥ−ＩＮＩＴを選択した状態を、図２に示す。
【０００６】
ＣＳＰプログラムをナビゲートする間、上述したプロセスを繰り返す必要がある。ＣＳＰプログラムが大きく、多くのサブレベルを備えている場合、ナビゲーションは、より困難になる。
【０００７】
レコードやテーブルなど他のオブジェクトを表示および／または編集するには、リスト・プロセッサ画面に戻って特定のオブジェクトの名前を入力する必要がある。このリスト・プロセッサ画面は、図１に示す構造リスト画面の前に来る。
【０００８】
このように本来的に困難を伴うので、ＣＳＰで開発したプログラム・コードの解析と保守は、労力の多い作業になる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
このため、ＣＳＰその他の手続き型言語で書かれたコードの解析と保守のための改良された方法および／または装置であって、既存の構成に存する少なくとも１つの非効率を実質的に克服あるいは少なくとも改良するものが求められている。
【課題を解決するための手段】
【００１０】
本発明の第１の側面は、
コンピュータ・プログラム・コード用の保守環境を実現する方法であって、
前記コンピュータ・プログラム・コードの少なくとも１つの部分を選択的に格納するステップと、
前記格納する部分のうちの少なくとも１つから成る少なくとも１つのリストを生成するステップと、
前記コンピュータ・プログラム・コードのナビゲーション用のリンクを生成するステップと
を備え、
前記リンクの各々が、前記格納する部分のうちの１つと前記リストのうちの１つとの間に生成されている
ように構成する。
【００１１】
本発明の第２の側面は、
コンピュータ・プログラム・コード用の保守環境を実現するコンピュータ・システムであって、
前記コンピュータ・プログラム・コードの少なくとも１つの部分を選択的に格納する手段と、
前記格納する部分のうちの少なくとも１つから成る少なくとも１つのリストを生成する手段と、
前記コンピュータ・プログラム・コードのナビゲーション用のリンクを生成する手段とを備え、
前記リンクの各々が、前記格納する部分のうちの１つと前記リストのうちの１つとの間に生成されている
ように構成する。
【００１２】
本発明の第３の側面は、
コンピュータ・プログラム・コード用の保守環境を実現するコンピュータ・プログラムをその中に記録したコンピュータ読み取り可能な媒体から成るコンピュータ・プログラム製品であって、
前記コンピュータ・プログラムが、
前記コンピュータ・プログラム・コードの少なくとも１つの部分を選択的に格納するコンピュータ・プログラム・コード手段と、
前記格納する部分のうちの少なくとも１つから成る少なくとも１つのリストを生成するコンピュータ・プログラム・コード手段と、
前記コンピュータ・プログラム・コードのナビゲーション用のリンクを生成するコンピュータ・プログラム・コード手段と
を備え、
前記リンクの各々が、前記格納する部分のうちの１つと前記リストのうちの１つとの間に生成されている
ように構成する。
【００１３】
前記格納する部分は、ウェブ対応のブラウザ・プログラムがロードしうるようにフォーマットされた別々のコンピュータ・ファイルに格納するのが望ましい。このコンピュータ・ファイルには、プロローグ・ファイル、主ファイル、プロセス・ファイル、ステートメント・グループ・ファイル、およびレコード・ファイルを用いることができると共に、ＨＴＭＬファイルであるのが望ましい。
【発明を実施するための最良の形態】
【００１４】
ここで述べる好適な方法、システム、およびコンピュータ・プログラム製品の原理は、一般に、すべての手続き型言語で書かれたコンピュータ・プログラムに適用することができる。しかしながら、説明を簡易にするために、ここでは、ＣＳＰ（Cross System Product）言語とＨＴＭＬ（HyperText Markup Language)について、好適な方法、システム、およびコンピュータ・プログラム製品を説明する。しかし、本発明を、ここで説明する方法、システム、およびコンピュータ・プログラム製品に限定するつもりはない。例えば、本発明は、ＣＳＰ以外の手続き型言語で開発したコンピュータ・プログラム・コードに適用することができるし、および／または、そのようなプログラム・コードをＨＴＭＬ以外の言語および／または環境へ変換することに適用することもできる。
【００１５】
ＨＴＭＬ文書すなわちファイルは、プレーン（平文の）ＡＳＣＩＩテキストから成るので、制御文字すなわち組み込み２進コードを含んでいない。ＨＴＭＬの目的は、文書すなわちファイルの構造を定義することである。したがって、ウェブ対応のブラウザ・プログラムは、すべて、ＨＴＭＬ文書すなわちファイルを解釈して表示することができる。ＨＴＭＬは、テキスト処理用の国際標準（ＩＳＯ８８７９）であるＳＧＭＬ（Standadized Generalized Markup Language)によって定義されている。ＳＧＭＬは、他の言語を定義するのを目的とするメタ言語である。
【００１６】
ＣＳＰで生成したアプリケーション・プログラムは、ＥＳＦ（External Source Format）ファイルにエクスポートすることができる。ＥＸＰＯＲＴは、ＣＳＰの標準機能であり、プロセス、ステートメント・グループ、レコードなどを含むすべてのＣＳＰアプリケーション・プログラムをＥＳＦ形式で格納するのを可能にする。ＥＳＦファイルは、８０バイトの固定長レコードから成るシリアル・ファイルである。
【００１７】
図４は、ＣＳＰで開発したプログラム・コードをＨＴＭＬ形式に変換する方法のフローチャートを示す図である。
【００１８】
まず、ステップ３０２で、エクスポート先のＥＳＦファイルをオープンし、最初の項目を選択する。選択した項目に予め定義しておいたキーワードが含まれていたら（判断ステップ３０４でＹＥＳの場合）、ステップ３０６で当該項目を処理する。次いで、プロセスは判断ステップ３０８に進む。図５およびその説明は、図４のステップ３０６の詳細を示すものである。共通キーワードとそれに関連して得られる情報を以下に示す。
【００１９】
【表１】
0004150593.tif 000002
【００２０】
選択した項目にキーワードが含まれていない場合（判断ステップ３０４でＮＯの場合）、プロセスは直接にステップ３１２に進む。
【００２１】
ステップ３０８では、ＥＳＦファイル中の次の項目を選択する。ＥＳＦファイルの終わりにまだ来ていない場合（判断ステップ３１０でＮＯの場合）、プロセスはステップ３０４に戻る。しかし、ＥＳＦファイルの終わりに既に来ている場合（判断ステップ３１０でＹＥＳの場合）、プロセスはステップ３１２に進む。
【００２２】
ステップ３１２では、アプリケーション・プログラムに含まれているレコード構造を処理する。図６とその説明は、図４のステップ３１２の詳細を示すものである。次いで、プロセスはステップ３１４に進む。
【００２３】
アプリケーション・プログラムにＣＳＰテーブルが含まれている場合（判断ステップ３１４でＹＥＳの場合）、ステップ３１６でＣＳＰテーブルを処理する。図７およびその説明は、図４のステップ３１６の詳細を示すものである。次いで、プロセスはステップ３１８に進む。
【００２４】
ステップ３１８では、各ステートメント・グループごとにＨＴＭＬリンクを生成する。図５から分かるように、すべてのステートメント・グループの名前を含むステートメント・グループ・リスト・ファイルと、各ステートメント・グループごとの個別ファイルとを生成している。そして、ＨＴＭＬリンクの目的は、特定のステートメント・グループと、ステートメント・グループ・リスト・ファイルに含まれている当該ステートメント・グループの名前との間に関連付けおよびナビゲーション経路を設けることである。
【００２５】
次いで、ステップ３２０では、ファイル中にＨＴＭＬタグを挿入することにより、ステップ３１８で生成したファイルをすべてＨＴＭＬ形式に変換する。また、生成したファイルのファイル名を「．ｈｔｍ」なる拡張子を含むように変更する。生成するファイルには、通常、次に示すものがある。
プロセス・ファイル
ステートメント・グループ・ファイル
プロローグ・ファイル
主プロセス名リストを備えた主ファイル
プロセス名リスト・ファイル
ステートメント・グループ名リスト・ファイル
レコード・ファイル
【００２６】
最後に、ステップ３２１で、要すれば、他のビュー（表示）ファイルを生成する。このような表示ファイルの例には、ＣＳＰ表示（この表示はＣＳＰアプリケーション全体をツリー表示するものである）と、詳細（untersed）表示（この表示は単一のファイルにすべてのステートメント・グループとプロセスを含んでおり、簡易な検索に使われる）とがある。
【００２７】
図５は、図４に示したＣＳＰキーワードの処理を詳細に示すフローチャートを示す図である。
【００２８】
キーワードがプロセスまたはステートメント・グループを表わしている場合（判断ステップ４０２でＹＥＳの場合）、ステップ４０４で、プロセスまたはステートメント・グループの名前を、プロセス名リスト・ファイルまたはステートメント・グループ名リスト・ファイルにそれぞれ格納する。
【００２９】
次いで、ステップ４０６で、プロセスまたはステートメント・グループの内容を個別ファイルにコピーする。このとき、コピー先の個別ファイルの名前は、コピーされる特定のプロセスまたはステートメント・グループと同じものにする。
【００３０】
コピーされる内容にキーワード「ＰＥＲＦＯＲＭ」（プロセスに対する呼び出しを意味する）が存在する場合（判断ステップ４０８でＹＥＳの場合）、「ＰＥＲＦＯＲＭ」命令が呼び出すプロセスと同じ名前を有するファイルを指し示すＨＴＭＬリンクを直ちに挿入する（ステップ４１０）。
【００３１】
次いで、プロセスはステップ４１２を経由して図４のステップ３０８に戻る。
【００３２】
キーワードがプロセスまたはステートメント・グループを表していない場合（判断ステップ４０２でＮＯの場合）にも、プロセスはステップ４１２を経由して図４のステップ３０８に戻る。同様に、コピーされる内容にキーワード「ＰＥＲＦＯＲＭ」が存在しない場合（判断ステップ４０８でＮＯの場合）にも、プロセスはステップ４１２を経由して図４のステップ３０８に戻る。
【００３３】
図６は、図４に示すＣＳＰレコード構造の処理を詳細に示すフローチャートを示す図である。
【００３４】
まず、ステップ５０２で、レコード構造の名前をレコード構造名リスト・ファイルに格納する。次いで、ステップ５０４で、レコード構造の内容を個別ファイルにコピーする。このとき、コピー先の個別ファイルの名前は、コピーされる特定のレコード構造と同じものにする。
【００３５】
次いで、ステップ５０６で、レコード構造名リスト・ファイルに含まれているレコードの名前と、特定のレコード構造を含むファイルとの間にリンクを生成する。このリンクは、アンカーを使って生成する。
【００３６】
ＨＴＭＬ文書中のリンクは、ホット・スポットである。ホット・スポットとは、クリックすると、ブラウザ・プログラムを別の文書、あるいは同一文書内の別のリソースにリダイレクトする場所のことである。アンカーとは、単一文書内の特定の場所へのリンクのことである。したがって、アンカーをクリックすると、ファイル内の予め定められた場所へのリダイレクトが生じる。リンクとアンカーは、普通、下線を施された青色のテキストで表示される。しかし、これはブラウザの構成による。
【００３７】
次いで、プロセスはステップ５０８を経由して図４の判断ステップ３１４に戻る。
【００３８】
図７は、図４に示すＣＳＰテーブルの処理の詳細を示すフローチャートを示す図である。
【００３９】
まず、ステップ６０２で、各ＣＳＰテーブルの名前を、ＣＳＰテーブル名リスト・ファイルに格納する。次いで、ステップ６０４で、各ＣＳＰテーブルの内容を個別ファイルにコピーする。このとき、コピー先の個別ファイルの名前は、コピーされる特定のＣＳＰテーブルと同じものにする。次いで、ステップ６０６で、ＣＳＰテーブル名リスト・ファイルに含まれているＣＳＰテーブルの名前と、特定のＣＳＰテーブルを含むファイルと間にリンクを生成する。
このリンクは、アンカーを使って生成する。
【００４０】
次いで、プロセスはステップ６０８を経由して図４のステップ３１８に戻る。
【００４１】
〔コンピュータの実装〕
ＣＳＰで開発したコンピュータ・プログラム・コードをＨＴＭＬに変換する方法、または類似の方法は、図８に示すコンピュータ・システム７００と共にコンピュータ・プログラム製品を使って実装（implement)することができる。特に、ＣＳＰで開発したコンピュータ・プログラム・コードをＨＴＭＬに変換する方法、または類似の方法は、コンピュータ・システム７００で実行されるソフトウェアすなわちコンピュータ読み取り可能なプログラム・コードとして実装することができる。
【００４２】
コンピュータ・システム７００は、コンピュータ７５０、画像表示装置７１０、および入力装置７３０、７３２を備えている。また、コンピュータ・システム７００は、コンピュータ７５０に接続されたライン・プリンタ、レーザ・プリンタ、その他の再生装置など他の多くの出力装置のうちの任意のものを備えることができる。さらに、コンピュータ・システム７００は、通信インタフェース７６４を介し、モデム通信経路、電子ネットワークなど適切な通信チャネル７４０を使って少なくとも１つの別のコンピュータに接続することができる。このネットワークには、ＬＡＮ（local area network）、ＷＡＮ（wide area network)、イントラネット、および／または、インターネット７２０がある。
【００４３】
コンピュータ７５０は、制御モジュール７６６、ＲＡＭ（random access memory）とＲＯＭ（read-only memory）を含むことのできるメモリ７７０、入出力（Ｉ／Ｏ）インタフェース７６４、７７２、画像インタフェース７６０、および、記憶装置７６２で一般的に表わす少なくとも１つの記憶装置を備えている。制御モジュール７６６は、特定の機能または関連する一連の機能群を実行するコンピュータ読み取り可能なプログラム・コードを実行する（すなわち走らせる）ＣＰＵ（central processing unit)を使って実装されている。
【００４４】
画像インタフェース７６０は、画像表示装置７１０に接続されている。画像インタフェース７６０は、コンピュータ７５０から画像表示装置７１０に画像信号を供給して表示の用に供している。コンピュータ７５０を動作させるユーザ入力は、Ｉ／Ｏインタフェース７７２を介して少なくとも１つの入力装置７３０、７３２を使って供給することができる。例えば、コンピュータ７５０のユーザは、入力装置７３０としてキーボード７３０を使い、および／または、入力装置７３２としてマウスなどのボンディング・デバイスを使うことができる。キーボードとマウスは、コンピュータ７５０に入力を供給する。記憶装置７６２は、次に示すもののうちの少なくとも１つから構成することができる。すなわち、フロッピー（Ｒ）・ディスク、ハード・ディスク駆動装置、光磁気ディスク駆動装置、ＣＤ−ＲＯＭ、磁気テープ、または、当業者にとって周知の多くの他の不揮発性記憶装置のうちの任意のもの、である。また、コンピュータ７５０内の各構成要素は、通常、バス７８０を介して他の装置に接続されている。バス７８０は、データ・バス、アドレス・バス、および制御バスから構成することができる。
【００４５】
ＣＳＰで開発したコンピュータ・プログラム・コードをＨＴＭＬに変換する方法ステップ、または類似の方法ステップは、コンピュータ・システム７００が実行するソフトウェア中の命令が実行する。ここでも、上記ソフトウェアは、上記方法ステップを実現する少なくとも１つのモジュールとして実装することができる。
【００４６】
特に、上記ソフトウェアは、記憶装置７６２などコンピュータ読み取り可能な媒体に格納することができるし、あるいは、通信インタフェース７６４と通信チャネル７４０を介しインターネット７２０などのネットワークを経由して遠隔地からダウンロードすることもできる。コンピュータ・システム７００は、このようなソフトウェアすなわちプログラム・コードの命令を実行できるように、当該ソフトウェアすなわち当該プログラム・コードを記録したコンピュータ読み取り可能な媒体を備えている。
【００４７】
コンピュータ・システム７００は、説明を目的として提示したものである。したがって、本発明の範囲と本旨の内で、他の構成を採用することもできる。上述したものは、本発明を実施する際に依拠しうる多種のコンピュータあるいはコンピュータ・システムの単なる一例にすぎない。通常、本発明の実施形態のプロセスは、コンピュータ読み取り可能な媒体としてのハード・ディスク駆動装置に記録されたソフトウェアすなわちコンピュータ読み取り可能なプログラム・コードとして常駐しており、制御モジュール７６６を使って読み取ると共に制御する。上記プログラム・コード、および、エンティティ、チケットなどすべてのデータの中間記憶は、メモリ７７０を使い可能な限り記憶装置７６２と協働して行なうことができる。
【００４８】
一部の実例では、上記プログラムは、ＣＤ−ＲＯＭまたはフロッピー（Ｒ）・ディスク上に符号化されてユーザに供給される、あるいは、コンピュータ７５０に接続されたモデム装置を介しネットワークからユーザが読み取ることができる。さらに、コンピュータ・システム７００は、他のコンピュータ読み取り可能な媒体から上記ソフトウェアをロードすることができる。これには、磁気テープ、ＲＯＭすなわち集積回路装置、光磁気ディスク、コンピュータ７５０と別の装置との間の無線伝送チャネルまたは赤外線伝送チャネル、ＰＣＭＣＩＡカードなどのコンピュータ読み取り可能なカード、および、ｅメール伝送機能とインターネット・サイトに記録された情報とを備えたインターネット７２０とイントラネット、などがある。これらは、関連するコンピュータ読み取り可能な媒体の単なる例にすぎない。本発明の範囲と本旨の内で、他のコンピュータ読み取り可能な媒体を用いることができる。
【００４９】
ＣＳＰで開発したコンピュータ・プログラムをＨＴＭＬに変換する方法、または類似の方法は、１台のコンピュータ・システム７００に集中した形態で実現することができるし、あるいは、相互接続した数台のコンピュータ・システムをまたいで構成要素群が分散している分散形態で実現することもできる。
【００５０】
ここでの文脈におけるコンピュータ・プログラム手段またはコンピュータ・プログラムは、情報処理機能を有するシステムに、特定の機能を、直接に、あるいは、（ａ）別の言語、コード、または表記法に変換した後に、および／または、（ｂ）異なる材料形態で再生産した後に、実行させることを意図した１組の命令の、任意の言語、コード、または表記法での任意の表現を意味する。
【００５１】
〔ＣＳＰ−Ｅａｓｙ（商標）の実装〕
次に、ＣＳＰ−Ｅａｓｙ（商標）なる名称の変換プログラムを説明する。このプログラムは、ＣＳＰアプリケーションのＨＴＭＬへの変換をサポートしている。ＣＳＰ−Ｅａｓｙ（商標）は、Ｗｉｎｄｏｗｓ（商標）９５プラットフォームとＷｉｎｄｏｗｓ（商標）ＮＴプラットフォーム上で実行することができる。
【００５２】
変換した後のＣＳＰコードは、Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（商標）やＮｅｔｓｃａｐｅ  Ｎａｖｉｇａｔｏｒ（商標）などのウェブ・ブラウザで見ることができる。プロセス、ステートメント・グループ、レコード、テーブルなど様々なオブジェクトにリンクが挿入されている。ソフトウェアの解析と保守を目的に、異なるオブジェクトは色分けすると共に下線を施し、読みやすさとコードのナビゲーション性を向上させている。
【００５３】
付録１〜９には、典型的なＣＳＰアプリケーションからＣＳＰ−Ｅａｓｙ（商標）が生成した典型的なＨＴＭＬファイルの写しが含まれている。付録１０は、ＣＳＰ−Ｅａｓｙ（商標）のヘルプ画面の写しであり、ブラウザのウインドウに表示する様々なＨＴＭＬファイルを選択するメニュー・オプションを示している。ＨＴＭＬファイルが表示されたら、ユーザは、プロセス、ステートメント・グループ、レコード、テーブルなどへの色付けされおよび／または下線を施された参照をクリックすることにより、当該参照を選択することができる。選択したオブジェクトは、アクセスされた後、表示される。
【００５４】
付録１には、アプリケーションの名前とその主プロセスを示す開始ファイルの写しが含まれている。
付録２には、アプリケーション・プロローグ・ファイルの写しが含まれている。
付録３には、プロセス名リスト・ファイルの写しが含まれている。
付録４には、ステートメント・グループ名リスト・ファイルの写しが含まれている。
付録５には、レコード・ファイルの写しが含まれている。
付録６には、主プロセス・ファイルの写しが含まれている。
付録７には、典型的なステートメント・グループ・ファイルの写しが含まれている。
付録８には、様々なプロセスとステートメント・グループのツリー表示を示すＣＳＰビュー（表示）ファイルの写しが含まれている。
付録９には、単一のファイルにおける全アプリケーション・プログラムの一部を示す詳細ファイルの抜粋の写しが含まれている。
付録１０には、ＣＳＰ−Ｅａｓｙ（商標）のヘルプ・ファイルの写しが含まれている。
【００５５】
ＣＳＰ−Ｅａｓｙ（商標）のＣＳＰからＨＴＭＬへの１回変換の利点は、次に示すとおりである。
（ａ）プロセスやステートメント・グループなどのオブジェクトへのリンクによって、速くアクセスすることができる。
（ｂ）ユーザ・フレンドリーなインタフェースによって、ボタンをクリックするだけでレコード、テーブル、プロセス、ステートメント・グループなどすべてのソフトウェア・オブジェクトに容易にアクセスすることができる。
（ｃ）様々なオブジェクトのコードを色分けしているので、それらを容易に識別することができる。
（ｄ）ＬＡＮ（Local Area Network）環境にＣＳＰアプリケーションを配置しているので、より速くアクセスすることができる。
（ｅ）アプリケーション・コードをより速く解析できるので、生産性が向上する。
【００５６】
以上、本発明の構成および／または実施形態をほんの少ししか述べなかったけれども、本発明の範囲と本旨の内で、これらに対して多くの変更および／または変形をなすことができる。また、ここに開示した構成および／または実施形態は、説明を目的としたものであり、本発明を限定するものではない。
【００５７】
〔付録１〕
アプリケーション名  ：  APPLNAME
ＭａｐＧｒｏｕｐ名  ：  MAPGRP
主プロセスは        ：MAIN-PROC.
〔付録２〕
******************************************* 
* 
* プログラム名：APPLNAME - Sample Program *      00004
*                                         * 
******************************************* 
******************************************* 
* 機能        : Sample Program            *      00004600 
*                                         *      00004700 
*                                         *      00004800 
*                                         *      00004900 
*                                         *      00005000 
*                   画面名：MAP-NAME.     * 
*                                         * 
******************************************* 
******************************************* 
* トランザクション : 4J2810               * 
* MAP グループ名   : MAPGRP               * 
* MAP 名           : MAP-NAME             * 
* DB2 プラン名     : APPLNAME             * 
******************************************* 
〔付録３〕
MAIN-PROC      EXECUTE                          ‘主制御プロセス’
PROCESS-SCREEN-CONV  CONVERSE  MAP-NAME           ‘MAP を変換’
PROCESS-UPD-R3IU   UPDATE    JFBR9R31U  EZERTN  ‘T31 を更新’
PROCESS-REP-R3IU   REPLACE   JFBR9R31U  EZERTN  ‘T31 を新インジケータで置換’
PRODESS-SOX-R31U   SQLEXEC   JFBR9U31   EZERTN  ‘インジケータをエンタープライズ用に設定’
〔付録４〕
STMTGRP-INIT          ‘アプリケーションを初期化’
STMTGRP-NLS           ‘MAP にフィールドの説明を置く’
STMTGRP-PLACE-CURS    ‘プロンプトの後にカーソルを置く’
STMTGRP-PLAXE-VALUE   ‘プロンプトの後に値を置く’
STMTGRP-SET-BRIGHT    ‘MAP の属性を設定’
STMTGRP-PREPARE-MAP   ‘MAP を送る準備をする’
STMTGRP-UNDERSCORE    ‘MAP のフィールドをアンダースコアで満たす’
STMTGRP-REM-US        ‘アンダースコアを空白で置換’
STMTGRP-PFKEY         ‘所望の機能を実行’
STMTGRP-DEFINE        ‘MAP のフィールド属性をリセット’
STMTGRP-CHK-CMND      ‘コマンド行を検査’
STMTGRP-CHK-ACT       ‘アクション・バーを検査’
STMTGRP-UPDATE        ‘更新アクションをセットアップ’
STMTGRP-PF4           ‘画面用のプロンプトを処理’
STMTGRP-PROMPT        ‘プロンプト・アプリケーションに切り替え’
STMTGRP-PF5           ‘画面をリフレッシュ’
STMTGRP-PROTECT       ‘MAP のフィールド属性を保護に設定’
STMTGRP-PF11          ‘ＰＦ１１の処理’
STMTGRP-CHK-SCREEN    ‘画面の値を有効にする’
〔付録５〕
レコード名は  ：  RECORD1R
:prol.
********************************************************
*
このプログラムだけの作業記憶               *
*
このレコードは、ＣＳＰアプリケーションAPPLNAMEに関する *
画面フィールドなどの変数を節約するために使用する。     *
********************************************************
--------------------------------------------------------------------- 
NAME     LEVEL  OCCURS  SCOPE  TYPE  BYTES  DECIMAL  EVENSQL 
DESC
--------------------------------------------------------------------- 
*                 05     00001   LOCAL  CHA   02500  00       N 
APPL-SAVE-FILEDS  05     00001   GLOBAL   
JFBR9-TITLE-36    10     00001   LOCAL  CHA   00036  00       N 
JFBR9-TITLE-POS   15     00036   LOCAL  CHA   00001  00       N 
ACT               10     00001   GLOBAL 
SEL-1             10     00001   GLOBAL 
F11-UPD           10     00001   LOCAL  CHA   00007  00       N   ‘ファンクション・キー確認’
F11               15     00001   LOCAL  CHA   00004  00       N   ‘F11 を初期化’
F11-ACT           15     00001   LOCAL  CHA   00003  00       N   ‘F11 関連のアクション’
COMM-LINE         10     00001   GLOBAL 
MESSAGE-TXT       10     00001   GLOBAL 
ITEM-ERR-CODE     10     00050   GLOBAL 
JFBR9I-COMM-ERR-CODE 10  00001   LOCAL  CHA   00007  00       N 
JFBR9I-ACT-ERR-CODE  10  00001   LOCAL  CHA   00007  00       N 
MESSAGE-NUM       10     00001   GLOBAL 
CUST-GROUP-NUM    10     00001   GLOBAL 
CUST-NUM          10     00001   GLOBAL 
PPT-SPEC-HANDLE   10     00001   LOCAL  CHA   00001  00       N   ‘特別のインジケータを請求’
SUPRESS-PRT-IND   10     00001   LOCAL  CHA   00001  00       N 
*                 10     00001   LOCAL  CHA   00923  00       N 
レコード名は  ：  JFBR9W01
:prol.
このレコードは、このアプリケーションAPPLNAMEに
特有の作業項目を保持する。
--------------------------------------------------------------------- 
NAME     LEVEL  OCCURS  SCOPE  TYPE  BYTES  DECIMAL  EVENSQL 
DESC
--------------------------------------------------------------------- 
JFBR9I-FIN-ENTERP-NUM 10 00001   LOCAL  BIN   00004  00       N 
ENTERPRISE-UPDT   10     00001   LOCAL  CHA   00001  00       N 
CUSTNUM-ONLY-UPDT 10     00001   LOCAL  CHA   00001  00       N 
JFBR9I-PF5-CHK    10     00001   LOCAL  CHA   00007  00       N 
レコード名は  ：  JFBR9WMR
--------------------------------------------------------------------- 
NAME     LEVEL  OCCURS  SCOPE  TYPE  BYTES  DECIMAL  EVENSQL 
DESC
--------------------------------------------------------------------- 
TX-UPDATE-6       10     00001   LOCAL  CHA   00006  00       N   ‘更新’
TX-JFBR9-TITLE-36 10     00001   LOCAL  CHA   00036  00       N 
*                 15     00001   LOCAL  CHA   00030  00       N   ‘PPT が制御を請求’
*                 15     00001   LOCAL  CHA   00006  00       N 
TX-JFBR9-SEC-22   10     00001   LOCAL  CHA   00022  00       N 
TX-ENT-NUM-35     10     00001   LOCAL  CHA   00025  00       N   ‘（エンタープライズ番号  ：’
*                 15     00001   LOCAL  CHA   00030  00       N   ‘入力されたエンタープライズ下のすべての顧客をPPT 特別ハンドルで更新。印刷選択*                 15     00001   LOCAL  CHA   00010  00       N 
を抑止。）’
TX-ENT-COMMENT-2  10     00001   LOCAL  CHA   00034  00       N 
*                 15     00001   LOCAL  CHA   00030  00       N 
*                 15     00001   LOCAL  CHA   00004  00       N 
TX-ENT-COMMENT-3  10     00001   LOCAL  CHA   00038  00       N 
*                 15     00001   LOCAL  CHA   00030  00       N   
*                 15     00001   LOCAL  CHA   00008  00       N 
TX-ENT-COMMENT-4  10     00001   LOCAL  CHA   00008  00       N 
TX-CUS-NUM-35     10     00001   LOCAL  CHA   00025  00       N   ‘顧客番号を入力  ：’
TX-CUST-COMMENT-1 10     00001   LOCAL  CHA   00039  00       N 
*                 15     00001   LOCAL  CHA   00030  00       N   ‘（入力された顧客番号だけをPPT 特別ハンドルで更新。印刷選択を抑止。) ’
*                 15     00001   LOCAL  CHA   00009  00       N 
TX-CUST-COMMENT-2 10     00001   LOCAL  CHA   00039  00       N 
*                 15     00001   LOCAL  CHA   00030  00       N 
*                 15     00001   LOCAL  CHA   00009  00       N 
TX-CUST-COMMENT-3 10     00001   LOCAL  CHA   00027  00       N 
TX-PPT-SPEC-HANDLE10     00001   LOCAL  CHA   00025  00       N   ‘PPT 特別ハンドル  ：’
TX-BILSPEC-COMMENT10     00001   LOCAL  CHA   00015  00       N 
‘（デフォルトはＮ）’
TX-SUPRESS-PRT    10     00001   LOCAL  CHA   00025  00       N 
‘印刷抑止  ：’
TX-SUP-PRT-COMMENT10     00001   LOCAL  CHA   00015  00       N 
‘（デフォルトはＮ）’
TX-COMMAND-8      10     00001   LOCAL  CHA   00008  00       N 
‘コマンド’
TX-F3-EXIT-7      10     00001   LOCAL  CHA   00007  00       N 
‘Ｆ３＝イクジット’
TX-F4-PRMT-8      10     00001   LOCAL  CHA   00008  00       N 
‘Ｆ３＝プロンプト’
TX-F5-REFR-7      10     00001   LOCAL  CHA   00007  00       N 
‘Ｆ３＝参照’
TX-F11-UPD-7      10     00001   LOCAL  CHA   00007  00       N 
‘Ｆ11＝更新’
レコード名は  ：  JFBR9W2 
--------------------------------------------------------------------- 
NAME     LEVEL  OCCURS  SCOPE  TYPE  BYTES  DECIMAL  EVENSQL 
DESC
--------------------------------------------------------------------- 
COMSEC-DATA       10     00001   GLOBAL 
COUNTRY-CODE      10     00001   GLOBAL 
COUNTRY-NAME      10     00001   GLOBAL 
SUBSIDIARY-CODE   10     00001   GLOBAL 
SUBSIDIARY-NAME   10     00001   GLOBAL 
APPL-STACK-DATA   10     00001   GLOBAL 
FILLED-BY-APPL    10     00001   GLOBAL 
レコード名は  ：  JFBR9W3 
--------------------------------------------------------------------- 
NAME     LEVEL  OCCURS  SCOPE  TYPE  BYTES  DECIMAL  EVENSQL 
DESC
--------------------------------------------------------------------- 
DATE-FORM         10     00001   GLOBAL 
DEC-POINT         10     00001   GLOBAL 
TIME-OF-LOGON     10     00001   GLOBAL 
レコード名は  ：  JFBR9W4 
--------------------------------------------------------------------- 
NAME     LEVEL  OCCURS  SCOPE  TYPE  BYTES  DECIMAL  EVENSQL 
DESC
--------------------------------------------------------------------- 
JFBR9I-TOTAL-AREA 10     00001   LOCAL  CHA   02500  00       N 
JFBR9I-USERID     15     00001   LOCAL  CHA   00008  00       N 
*                 15     00001   LOCAL  CHA   02492  00       N 
レコード名は  ：  JFBR9R31U 
:prol.
USED FOR READ-FOR-UPDATE. 
--------------------------------------------------------------------- 
NAME     LEVEL  OCCURS  SCOPE  TYPE  BYTES  DECIMAL  EVENSQL 
DESC
--------------------------------------------------------------------- 
FIN-ENTERP-NUM                   GLOBAL 
CUST-GROUP-NUM                   GLOBAL 
CUST-NUM                         GLOBAL 
PPT-SPEC-HANDLE                  LOCAL  CHA   00001  00       N ‘特別インジケータを請求’
SUPRESS-PRT-IND                  LOCAL  CHA   00001  00       N 
‘SUPRESS-PRT-IND ’
CREATOR-ID                       GLOBAL 
UPDATE-TIMESTAMP                 GLOBAL 
レコード名は  ：  JFBR9RU31 
:prol.
T31 におけるエンタープライズ更新用のレコード
--------------------------------------------------------------------- 
NAME     LEVEL  OCCURS  SCOPE  TYPE  BYTES  DECIMAL  EVENSQL 
DESC
--------------------------------------------------------------------- 
FIN-ENTERP-NUM                   GLOBAL 
CUST-GROUP-NUM                   GLOBAL 
CUST-NUM                         GLOBAL 
PPT-SPEC-HANDLE                  LOCAL  CHA   00001  00       N ‘特別インジケータを請求’
SUPRESS-PRT-IND                  LOCAL  CHA   00001  00       N 
‘SUPRESS-PRT-IND ’                                                    CREATOR-ID                       GLOBAL 
UPDATE-TIMESTAMP                 GLOBAL 
〔付録６〕
MAIN-PROC 
プロセス・オプション：実行
プロセスの説明：‘主制御プロセス’
セクション前
/*
/*-------------------------------------------------------------------*
/*    トランザクションを初期化                                       *
/*-------------------------------------------------------------------*
STMTGRP-INIT;              /* アプリケーションを初期化
MOVE 'APPLNAME'TO EZEAPP; 
MOVE 'APPLNAME'TO RECPIWI.CURR-APPL;
; 
/*-------------------------------------------------------------------*
/*  主ループ−ユーザが現在のmap にいる間にmap を変換                 *
/*-------------------------------------------------------------------*
WHILE RECPIWI.CURR-APPL = EZEAPP; 
; 
STMTGRP-PREPARE-MAP    /* map を送信用に準備
; 
PERFORM PROCESS-SCREEN-CONV;   /* map を準備して変換
; 
STMTGRP-PFKEY;         /* map の処理に気を付ける
; 
JFCZZS-CHK-TSFR;         /* 次のトランザクション用にセキュリティ検査
END;
; 
/*-------------------------------------------------------------------*
/*  次のトランザクションが検査すべき入力キーを保存                   *
/*-------------------------------------------------------------------*
; 
MOVE ' ' TO RECPIWI.RESTART-CODE; 
/*-------------------------------------------------------------------*
/*  このトランザクションを終了し、次のトランザクションを開始         *
/*-------------------------------------------------------------------*
/*
; 
JFDZZS-TSFR-PGM;             /* 次のトランザクションに制御を渡す
〔付録７〕
STMTGRP-CHK-SCREEN
ステートメント・グループの説明は：‘画面の値を有効にする’
/*********************************************************************
/*  MAP-NAME画面で入力された値を検査                                 *
/*********************************************************************
IF MAP-NAME.PPT-SPEC-HANDLE = ' ';
OR MAP-NAME.PPT-SPEC-HANDLE = '＿ '; 
MOVE 'N' TO MAP-NAME.PPT-SPEC-HANDLE; /* PPT-SPEC-HANDLE を
/* デフォルトに設定
END;
IF MAP-NAME.SUPRESS-PRT-IND = ' ';
OR MAP-NAME.SUPRESS-PRT-IND = '＿';
MOVE 'N' TO MAP-NAME.SUPRESS-PRT-IND; /* SUPRESS-PRT-IND を
/* デフォルトに設定
END;
IF MAP-NAME.PPT-SPEC-HANDLE-.= 'Y'; 
AND MAP-NAME.PPT-SPEC-HANDLE-.= 'N'; 
MOVE 'JFB4368' TO WX-EZEMNO; /*無効な値が入力された
ELSE; 
IF MAP-NAME.PRT-SPEC-HANDLE-.= 'Y';
AND MAP-NAME.PRT-SPEC-HANDLE-.= 'N'; 
MOVE 'JFB4368' TO WX-EZEMNO; /*無効な値が入力された
ELSE;
MOVE ' ' TO WX-EZEMNP; 
END; 
END;
IF MAP-NAME.CUST-GROUP-NUM = ' '; 
OR MAP-NAME.CUST-GROUP-NUM =  '＿＿';
IF MAP-NAME.CUST-NUM = ' ';
OR MAP-NAME.CUST-NUM =  '＿＿';
MOVE 'JFB4361' TO WX-EZEMNO; /*エンタープライズ番号または
/*顧客番号を入力
ELSE;
MOVE 'Y' TO JFBR9W01.CUSTNUM-ONLY-UPDT;
END; 
ELSE; 
IF MAP-NAME.CUST-NUM = ' ';
OR MAP-NAME.CUST-NUM =  '＿＿';
MOVE 'Y' TO JFBR9W01.ENTERPRISE-UPDT;
ELSE;
MOVE 'JFB4362' TO WX-EZEMNO; /*  エンタープライズ番号も
/*顧客番号も入力できない
END; 
END;
〔付録８〕
0001  MAIN-PROC 
0002  STMTGRP-INIT 
0003  STMGRP-NLS
0003  STMTGRP-PLACE-CURS
0003  STMTGRP-PLACE-VALUE 
0003  STMTGRP-SET-BRIGHT
0002  STMTGRP-PREPARE-MAP
0003  STMTGRP-UNDERSCORE
0002  PROCESS-SCREEN-CONV
0003  STMTGRP-REM-US
0002  STMTGRP-PFKEY
0003  STMTGRP-DEFINE
0003  STMTGRP-CHK-CMMD
0003  STMTGRP-CHK-ACT 
0004  STMTGRP-UPDATE 
0004  STMTGRP-UPDATE 
0003  STMTGRP-CHK-ACT 
0004  STMTGRP-UPDATE 
0004  STMTGRP-UPDATE 
0003  STMTGRP-PF4 
0004  STMTGRP-PROMPT 
0004  STMTGRP-PROMPT 
0004  STMTGRP-PLACE-CURS 
0004  STMTGRP-PLACE-CURS 
0004  STMTGRP-PLACE-CURS 
0004  STMTGRP-PLACE-CURS 
0003  STMTGRP-PF5 
0003  STMTGRP-PROTECT 
0003  STMTGRP-F11 
0004  STMTGRP-CHK-SCREEN 
0004  PROCESS-UPD-R31U 
0004  PROCESS-REP-R31U 
0004  PROCESS-SOX-R31U 
〔付録９〕
MAIN-PROC 
プロセス・オプション：実行
プロセスの説明      ：主制御プロセス
セクション前
/*
/*-------------------------------------------------------------------*
/*  トランザクションの初期化                                         *
/*-------------------------------------------------------------------*
STMTGRP-INIT;          /* アプリケーションの初期化
MOVE 'APPLNAME' TO EZEAPP;
MOVE 'APPLNAME' TO RECPIWI.CURR-APPL; 
; 
/*-------------------------------------------------------------------*
/*  主ループ−ユーザが現在のMAP にいる間にMAP を変換                 *
/*-------------------------------------------------------------------*
WHILE RECPIWI.CURR-APPL = EZEAPP; 
;
STMTGRP-PREPARE-MAP;  /* 送信用にMAP を準備
;
PERFORM PROCESS-SCREEN-CONV  /* MAPを準備して変換
;
STMTGRP-PFKEY       /* MAP の処理に注意する
;
JFCZZS-CHK-TSFR;        /* 次のトランザクション用のセキュリティ検査
END;
/*-------------------------------------------------------------------*
/*  次のトランザクションが検査すべき入力キーを保存                   *
/*-------------------------------------------------------------------*
; 
MOVE ' ' TO RECPIEI.RESTART-CODE; 
/*-------------------------------------------------------------------*
/*  このトランザクションを終了し、別のトランザクションを開始         *
/*-------------------------------------------------------------------*
/*
; 
JFDZZS-TSFR-PGM            /* 次のトランザクションに制御を渡す
PROCESS-SCREEN-CONV 
プロセス・オプション  ：変換
プロセス・オブジェクト：MAP-NAME
プロセスの説明        ：Map の変換
セクション前
/*********************************************************************
/*      MAP を変換する                                               *
/*********************************************************************
セクション後
STMTGRP-REM-US; 
PRPCESS-UPD-R31U
プロセス・オプション  ：更新
プロセス・オブジェクト：JFBR9R31U 
プロセス・エラー      ：EZERTN
プロセスの説明        ：T31 を更新
セクション前
MOVE 'USBT31' TO RECPIWI.USED-DB2-TABLE;
セクション後
IF JFBR9R31U IS ERR;
IF JFBR9R31U IS NRF; 
OR JFBR9R31U IS EOF; 
ELSE;
MOVE 'JFBR9P ＿UPD ＿R31U' TO RECPIWI.SQL-ERR-IN-PROCESS;
MOVE JFBR93R31U.CUST-NUM TO RECPIWI.ERR-FOR-KEY-NUM(1);
JFBZZS-DB2-ERROR;
END; 
END;
; 
SELECT
FIN ＿ENTERP＿NUM, CUST ＿GROUP ＿NUM, CUST ＿NUM;
FILL＿SPEC＿IND, SUPRESS＿PRT ＿IND, CREATOR＿ID, 
UPDATE＿TIMESTAMP 
INTO
?FIN-ENTERP-NUM, ?CUST-GROUP-NUM, ?CUST-NUM,
?PRT-SPEC-HANDLE, ?SUPRESS-PRT-IND, ?CREATOR-ID,
?UPDATE-TIMESTAMP 
WHERE 
WHERE 
FIN ＿ENTERPR ＿NUM=?FIN-ENTERP-NUM 
AND CUST＿NUM=?CUST-NUM 
FORUPDATEOF 
BILL＿SPEC＿IND, SUPRESS＿PRT ＿IND, CREATOR＿ID, 
UPDATE＿TIMESTAMP 
使用テーブル：'TABLE100'
ラベル      ：'T1'                                                      
PROCESS-REP-R31U
プロセス・オプション  ：置換
プロセス・オブジェクト：JFBR931U
プロセス・エラー      ：EZERTN
プロセスの説明        ：T31 を新インジケータで置換
セクション前
MOVE 'USBT31' TO RECPIWI.USED-DB2-TABLE;
セクション後
IF JFBR9R31U IS HRD;
IF JFBR9R31U IS NRF; 
ELSE;
MOVE 'JFBR9R ＿REP ＿R43U' TO RECPIWI.SQL-ERR-IN-PROCESS;
MOVE JFBR9R31U.CUST-NUM TO RECPIWI.ERR-FOR-KEY-NUM(1); 
JFBZZS-DB2-ERROR;
END; 
ELSE; 
MOVE 'JFB4366' TO WX-EZEMNO; /*  エントリを更新。新たな値を入力
END;
SET 
FILL ＿SPEC＿IND   =?PRT-SPEC-HANDLE,
SUPRESS＿PRT ＿IND =?SUPRESS-PRT-IND,
CREATOR＿ID        =?CREATOR-ID, 
UPDATE ＿TIMESTAMP = CURRENT TIMESTAMP 
PROCESS-SQX-R31U
プロセス・オプション  ：SQLEXEC 
プロセス・オブジェクト：JFBR9U31
プロセス・エラー      ：EZERTN
プロセスの説明        ：エンタープライズ用のインジケータを設定
セクション後
IF JFBR931U IS ERR; 
IF JFBR931U IS NRF;
OR JFBR931U IS EOF;
ELSE;
MOVE 'JFBR9P ＿SQX ＿R31U' TO RECPIWI.SQL-FOR-IN-PROCESS;
MIOVE JFBR9U31.CUST-GROUP-NUM TO RECPIWI.ERR-FOR-KEY-NUM(1); 
JFBZZS-DB2-ERROR;    /* DB2エラー・ルーチン
END; 
ELSE; 
MOVE 'JFB4366' TO WX-EZEMNO;  /* エントリを更新。新たな値を入力
SQLEXEC 
UPDATE
TABLE100 
SET 
BILL ＿SPEC＿IND   = ?PPT-SPEC-HANDLE, 
SUPRESS＿PRT ＿IND = ?SUPRESS-PRT-IND, 
CREATPR＿ID        = ?CREATOR-ID,
UPDATE ＿TIMESTAMP = CURRENT TIMESTAMP 
WHERE 
FIN＿ENTERP＿NUM   = ?FIN-ENTERP-NUM AND 
CUST ＿GROUP ＿NUM = ?CUST-GROUP-NUM 
使用テーブル：'TABLE100'
ラベル      ：'T1'
STMTGRP-INIT
ステートメント・グループの説明：アプリケーションの初期化
/*********************************************************************
/*  アプリケーションの初期化                                         *
/*                                                                   *
/*  このプロセスは、画面にMAP が表示される初回だけ実行する           *
/*                                                                   *
/*  したがって、これは次の場合に実行する：                           *
/*                                                                   *
/*  １）メニューの後                                                 *
/*  ２）このトランザクションを別のトランザクションが開始したとき     *
/*  ３）プロンプト−情報を表示した後                                 *
/*********************************************************************
/*
JFBZZS-INIT;         /*   標準の初期化
/*
SET JFBR9W01 EMPTY; 
SET MAP-NAME EMPTY; 
; 
MOVE 'APPLNAME' TO RECPIWI.CURR-APPL;  /* 自身のアプリケーションＩＤ                                   /* を代入
MOVE 'JFBR9AP' TO EZEAPP; 
MOVE 'N' TO MAP-NAME.PPT-SPEC-HANDLE;  /* デフォルトに設定
MOVE 'N' TO MAP-NAME.SUPRESS-PRT-IND;  /* デフォルトに設定
; 
MOVE RECPIWI.FIN-ENTERP-NUM TO JFBR9W01.JFBR9I-FIN-ENTERP-NUM;
/*-------------------------------------------------------------------*
/*  システムの日付を取得   -ISO-                                     *
/*-------------------------------------------------------------------*
JFBZZS-SDATE; 
/*-------------------------------------------------------------------*
MOVE JFCDRWIR.DATE1 TO MAP-NAME.CURR-DTE; 
MOVE RECPIWI.RELEASE-NUM TO MAP-NAME.RELEASE-NUM; 
; 
/*-------------------------------------------------------------------*
/*  このパネル用のテキスト・フィールドをNLS から取得して             *
/*  JFBR9WMRに格納。--- 国語サポート用 ---                           *
/*-------------------------------------------------------------------*
MOVE 'MAP-NAME' TO RECPIWI.PANEL-ID; /* 自身のパネルＩＤを入力
STMTGRP-NLS;
; 
MOVE '       ' TO RECORD1R.F11-UPD; 
MOVE RECORD1R.F11-UPD TO MAP-NAME.TX-F11-UPD-7; 
; 
/*-------------------------------------------------------------------*
/*  --- 再開始試験 ---は：                                           *
/*  HELPまたはPROMPTプログラムから来る                               *
/*-------------------------------------------------------------------*
IF RECPIWI.RESTART-CODE = 'P'; /*   プロンプトから戻る
MOVE RECORD1R TO MAP-NAME; 
STMTGRP-PLACE-CURS;     /*   前のフィールドにカーソルを戻す
IF RECPIWI.PROMPT-ITEM-VALUE NE ' '; 
STMTGRP-PLACE-VALUE;  /* フィールド・カーソルに値を入れる
END; 
MOVE ' ' TO RECPIWI.RESTART-CODE;
END;
; 
STMTGRP-SET-BRIGHT; 
STMTGRP-NLS 
ステートメント・グループの説明は：'MAPにフィールドの説明を入れる' 
/*********************************************************************
/*  正しい言語でDB2 テーブルからテキスト・フィールドを取得する       *
/*********************************************************************
/*-------------------------------------------------------------------*
/*  国語サポート・アプリケーションを呼び出す                         *
/*-------------------------------------------------------------------*
CALL JFCNLAP RECPIWI, JFCNLWM (NOMAPS;
JFBP1S-CHK-RETCODE; 
; 
MOVE JFBR9WMR TO MAP-NAME; /* MAP に説明を入れる
; 
IF RECPIWI.APPL-RETURN-CODE-.= ' '; 
MOVE RECPIWI.APPL-RETURN-CODE TO WX-EZMNO; 
END;
STMTGRP-PLACE-CURS
ステートメント・グループの説明は：' プロンプトの後にカーソルを置く' 
/*********************************************************************
/*  ヘルプまたはプロンプトの後にカーソルを置く                       *
/*********************************************************************
/*-------------------------------------------------------------------*
/*  ヘルプ／プロンプトが呼ばれる前に、RECPIWI.ITEM-ID が             *
/*  カーソルの位置を設定する                                         *
/*  ITEM-ID はSTMGRP-PF4 (プロンプト) 中に設定する。                 *
/*  次の値は、これらのプロセスと一致している必要がある               *
/*-------------------------------------------------------------------*
IF 'ACT   ' = RECPIWI.ITEM-ID;
SET MAP-NAME.ACT CURSOR; 
END;
; 
IF 'UPDATE' = RECPIWI.ITEM-ID;
SET MAP-NAME.TX-UPDATE-6 CURSOR; 
END;
; 
IF 'CUST＿GROUP ＿NUM' = RECPIWI.ITEM-ID; 
SET MAP-NAME.CUST-GROUP-NUM CURSOR;
END;
IF 'CUST＿NUM' = RECPIWI.ITEM-ID; 
SET MAP-NAME.CUST-NUM CURSOR;
END;
IF 'PPT ＿SPEC＿HANDLE' = RECPIWI.ITEM-ID;
SET MAP-NAME.PPT-SPEC-HANDLE CURSPR; 
END;
IF 'SUPRESS ＿PRT ＿IND' = RECPIWI.ITEM-ID; 
SET MAP-NAME.SUPRESS-PRT-IND CURSOR; 
END;
IF 'MESSAGE ＿NUM' = RECPWI.ITEM-ID;
SET MAP-NAME.MESSAGE-NUM CURSOR; 
END;
; 
〔付録１０〕
これらのページを生成したのは、
ＣＳＰ−ＥＡＳＹ！！！
ＣＳＰ分析の近道
エクスポートしたファイル上でＣＳＰ−ＥＡＳＹを実行すると、次に示すビュー（表示）を使用できます。
開始  ：これがＣＳＰアプリケーションを分析するための開始点になります。主プロセスは、ここにリスト表示されます。アプリケーション名とＭａｐｇｒｏｕｐ名もここに表示されます。分析を開始するには、主プロセスのうちの１つをクリックしてください。
プロローグ  ：これをクリックすると、アプリケーションのプロローグが見えます。
ＣＳＰビュー  ：これは、様々なプロセスとステートメント・グループのツリーを表示して、アプリケーションの流れを視覚的に表示します。また、オブジェクトのレベル番号も表示します。
プロセス  ：アプリケーション中のすべてのプロセスを、エラー処理、使用オブジェクト、説明など関連する詳細を付してリスト表示します。
ステートメント・グループ  ：アプリケーション中のすべてのステートメント・グループを説明を付してリスト表示します。
レコード  ：アプリケーション中で使用されているすべてのレコードをリスト表示します。所望のレコードをクリックすると、詳細を見ることができます。
テーブル  ：アプリケーション中で使用されているすべてのテーブルをリスト表示します。所望のテーブルをクリックすると、詳細を見ることができます。アプリケーションにテーブルがない場合には、その旨を示すメッセージが表示されます。
詳細  ：これは、１つのファイル中のすべてのプロセスとステートメント・グループを表示します。したがって、アプリケーション全体で、ある文字列があるかないかを探索することができます。
【図面の簡単な説明】
【００５８】
【図１】典型的なＣＳＰアプリケーション・プログラムの構造リストを示す図である。
【図２】図１のＣＳＰアプリケーション・プログラムの主プロセスの構造リスト（その１）を示す図である。
【図３】図１のＣＳＰアプリケーション・プログラムの主プロセスの構造リスト（その２）を示す図である。
【図４】ＣＳＰで開発したプログラムをＨＴＭＬ形式に変換する方法のフローチャートを示す図である。
【図５】図４に示すＣＳＰキーワードの処理を詳細に示すフローチャートを示す図である。
【図６】図４に示すＣＳＰレコード構造の処理を詳細に示すフローチャートを示す図である。
【図７】図４に示すＣＳＰテーブルの処理を詳細に示すフローチャートを示す図である。
【図８】本発明を実施しうる典型的なコンピュータ・システムのブロック図である。
【符号の説明】
【００５９】
７００  コンピュータ・システム
７１０  画像表示装置
７２０  インターネット
７３０  入力装置
７３２  入力装置
７４０  通信チャネル
７５０  コンピュータ
７６０  画像インタフェース
７６２  記憶装置
７６４  通信インタフェース
７６６  制御モジュール
７７０  メモリ
７７２  Ｉ／Ｏインタフェース
７８０  バス
【図１】
0004150593.tif 000003
【図２】
0004150593.tif 000004
【図３】
0004150593.tif 000005
【図４】
0004150593.tif 000006
【図５】
0004150593.tif 000007
【図６】
0004150593.tif 000008
【図７】
0004150593.tif 000009
【図８】
0004150593.tif 000010