CANO-AID/NT - キャノンソフトのシステム構築支援ツール

「CANO-AID/NTは、クライアント側のGUIとサーバ側のビジネス・ロジックを明確に分離・生成し、
 ミッション・クリティカルな基幹システムにとって
 大きな課題であるネットワーク負荷やリソース配布負荷の少ない3層構造のアプリケーションを構築できます。
 又、CANO-AID/Map for web(オプション)を利用することにより、COBOLによるWebアプリケーションの構築が可能です。
 さらに処理の実行手順をもとにバッチジョブを自動生成し、基幹システムに不可欠な一括処理はもとより、
 より戦略的な企業活動を実現するデータウェアハウスの構築にも非常に有効なツールです。」
 CANO-AID/NTは、Windows NT環境での基幹ビジネス・アプリケーション開発において高い生産性と品質を実現します。
(キャノンソフトウェアの製品紹介より抜粋)   

 以下、実際に使ってたときに書いたメモの残骸。。

 ◆そうなの?CANO-AID

そうなの その1:DD名
 ・JCL作成時に使用するDD名はジョブステップ定義で定義したものと、
  PGM開発時に設定するDD名が一致していなければいけない。
  一致していない場合はジョブステップ定義で定義したものは無視されて、PGM開発時に設定したDD名で生成される。
  ※ジョブステップ定義で定義を行わなかったときも同様に、PGM開発時に設定したDD名で生成される。

そうなの その2:I行定義
 ・共通部品等でジェネレータ指定のあるものは、その部品を PROCESS 命令で呼び出すときに
  I行を与えても、そのI行は無視され、あくまでも指定ジェネレータの生成方法にそった
  生成が行われる。

そうなの その3:帳票内で使用する部品
 ・帳票内で使用する部品の頭に XXXXXXXXXXX  SECTION. と見だしを付けると 
  XXXXXXXXXX OF XIINPUT-WORK SECTION  と生成されてしまう。※ XXXXXXXXXXX はデータ名なので!
  稀に生成されない場合があるが(原因は不明)その部品内の処理は行われない。
 ⇒ 帳票内で使用する部品の *****  SECTION句の行はコメント行にする!!

そうなの その4:帳票設計
 ・下記左図のようにフォームの設計をおこなったが下記の右図のように生成された。
       
      |_     ⇒        ____
      <               |

  ⇒ 縦線は下方向にしか引けない。(上記のように横線と縦線がぶつかる場合、横線が優先される。)
  上図で縦線を引きたければその個所より上に、その縦線につなげるような縦線を引くこと!。

そうなの その5:配列項目間のデータ移送処理
 ・下記のようにデータ移送処理をコーディングしたがエラーとなった。
     MOVE  エリアA(&I)   TO   エリアB(&J)
  ⇒ MOVE-G  エリアA(&I)   TO   エリアB(&J) とコーディングする。

 ◆マジっすか!?

マジっすか!?その1:項目二重定義でのコンパイルエラー
 ・&付き項目を定義した部品を PROCESS 命令により複数回呼び出したところ、
  項目の二重定義でコンパイルエラーとなった。(なんで?!)
 ⇒原因は不明であるが、有効な回避方法として下記が挙げられる。
  1)コンパイル画面でジェネレート、ソースロードを N にして再コンパイルする。 

マジっすか!?その2:オウンポイントの非表示
 ・オウンポイントを定義した部品を生成したが、オウンポイント画面でオウンポイントがでてこなかった。
 ⇒ 画面を開き直すとでてこなかったオウンポイントが今度は表示された。

マジっすか?!その3:&SQL-STATUS の桁数
 ・テーブル検索処理のエラーハンドリングで IF &SQL-STATUS = 'NODATA'と記述したが、
  その処理は行なわれなかった。
 ⇒ &SQL-STATUS の桁数は実は X(05)である為、&SQL-STATUS の値は 'NODAT' となっている。(設計上の問題?) 

 ◆プログラム間の連絡 について(COBOL)

1.呼ぶ側のプログラムで CALL文を記述する。
  それにより、呼ばれる側のプログラムに制御がわたる。

2.呼ばれる側のプログラムのEXIT PROGRAM文で呼んだ側のプログラムに制御が返される。
  またどちらのプログラムでSTOP RUN 文が実行されても両方のプログラムが終了する。
  (GO BACK文でも制御が返される? ※あくまでも予想)

3.呼ばれるプログラム側では呼ぶプログラムから値を受け取りたいデータ項目名を
  LINKAGE SECTION に記述する。(作業場所節の次に記述)

4.呼ぶプログラムではCALL文を
  CALL 呼ぶプログラム USING 一意名1 一意名2
  と書き。
  呼ばれるプログラムでは手続き部の見出しを PROCEDURE DIVISION USING データ名3 データ名4
  と書く。
  また、データ名3 データ名4 はLINKAGE SECTIONに記述したデータ項目名でなければならない。
  こうして、2つのUSING 指定間で USING 指定に書いた順番でデータが対応づけられる。

5.USING 指定間の対応づけの方式として BY REFERENCE と BY CONTENT がある。
  (指定がないと.BY REFERENCEとみなされる)
  それぞれ
   BY REFERENCE :2つのプログラム間で常にデータの整合性は保たれる。
   BY CONTENT  :呼ぶ側から呼ばれる側に最初にデータを渡すだけでデータの整合性は保たれない。
  という意味である。

6.データ名の有効範囲は原則としてそれを記述したプログラムだけであるが、
  データ名に GLOBAL 区を書くとこのデータ項目名とそれに従属するすべてのデータ項目は、
  そこに、直接または間接に含まれる内側のどのプログラムからも参照できる。
  例) 01 XXXXXX GLOBAL PIC X(10).

7.また異なる翻訳単位のプログラム間でデータを受け渡す手段として、外部属性(EXTERNAL)がある。
  データ名に EXTERNAL 区を書くとこのデータ項目名とそれに従属するすべてのデータ項目は、
  例) 01 XXXXXX EXTERNAL PIC X(10).
   しかし、GLOBAL と違いデータを受け渡したいプログラムにはすべて EXTERNALを記述しなければならない。
   しかも、下位レベルに項目をもっている場合もすべて同様に定義されていなけらばならない。
   (01レベルでレコード全体を再定義することはゆるされている)

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-06-11 (木) 00:48:29 (5427d)