MERANT Micro Focus Net Express

MERANTさんにメールを出し試使用版いただきました。流石COBOLの老舗のMicro Focusって感じです。Windows GUIプログラム・Webアプリケーション・既存のCOBOLプログラムをWindowsで実行させる 等 全て出きるというのが第一印象です。また私個人的にですがLEVELUCOBOL・MF−COBOL For UNIX を経験した事もあったので一番なじみやすかったです。アニメータもLEVELUCOBOLで使用していたのでこれもなじみやすかったです。やはりインターナショナルなCOBOLの老舗と言う事もあり 私的には一押しです。

作成方法としては 統合開発環境(IDE)とよばれる画面からプロジェクトを作成する形でプログラムを作成していきます。ソースファイルの中身は全くのCOBOLです。エディッターもCOBOL強調表示があり使い良いです。コンパイル・リンクのボタン一つです。アニメータもここから起動します。ステップ単位のデバッグが非常に効率よく出来ます。



1.既存のDOSマシンで動いているようなCOBOLプログラムを動かしてみる。 
  以下の画面のようになります。LEVELUCOBOLをWindowsのDOS窓で動かしたような感じですね。



2.Windows GUIプログラムを入門書の手順で作成してみる。

 入門書の説明が良いのか 意外と簡単に出来ました。この調子でWindows GUIプログラムが作成できるのであれば かなり生産性は良いと感じました。また、ある程度経験のあるCOBOLプログラマーでしたらWindows GUIプログラム習得までに時間はかからないと思います。
以下 は実行時の画面とプログラムソースです。ENTER NAMEに文字を入れSTARTボタンを押すと GREETINGにHELLO+”ENTERNAMEで入力した文字”が表示されるプログラムです。
プログラムはほとんど自動生成され実際にコーディングしたのはしたのソースで赤表示している
STRING "HELLO " I-NAME DELIMITED BY SIZE INTO GREETING
の1行だけです。



以下プログラムソースです。
****************************************************************
* Copyright Micro Focus Limited 1993-97. All Rights Reserved. *
* This demonstration program is provided for use by users of *
* Micro Focus products and may be used, modified and *
* distributed as part of your application provided that you *
* properly acknowledge the copyright of Micro Focus in this *
* material. *
****************************************************************

DATA DIVISION.

WORKING-STORAGE SECTION.

78 dialog-system VALUE "DSGRUN".
01 Display-Error-No PIC 9(4).
01 Display-Details-1 PIC 9(4).
01 Display-Details-2 PIC 9(4).

COPY "DS-CNTRL.MF".
COPY "WELCOM.CPB".


PROCEDURE DIVISION.

*---------------------------------------------------------------*

Main-Process SECTION.
PERFORM Program-Initialize
PERFORM Program-Body UNTIL EXIT-FLAG-TRUE
PERFORM Program-Terminate
.

*---------------------------------------------------------------*

Program-Initialize SECTION.

INITIALIZE Ds-Control-Block
INITIALIZE Data-block
MOVE Data-block-version-no
TO Ds-Data-Block-Version-No
MOVE Version-no TO Ds-Version-No

MOVE Ds-New-Set TO Ds-Control
MOVE "WELCOM" TO Ds-Set-Name

.

*---------------------------------------------------------------*

Program-Body SECTION.

PERFORM Call-Dialog-System
STRING "HELLO " I-NAME DELIMITED BY SIZE INTO GREETING
.

*---------------------------------------------------------------*

Program-Terminate SECTION.

STOP RUN
.

*---------------------------------------------------------------*

Call-Dialog-System SECTION.

CALL dialog-system USING Ds-Control-Block,
Data-Block
IF NOT Ds-No-Error
MOVE Ds-Error-Code TO Display-error-no
DISPLAY "DS ERROR NO: " Display-error-no
DISPLAY "Error Details(1) : " Display-Details-1
DISPLAY "Error Details(2) : " Display-Details-2
PERFORM Program-Terminate
END-IF



3 .Webアプリケーションを入門書の手順で作成してみる。


 これもWindows GUIプログラムと同様 入門書の説明が良いのか 意外と簡単に出来ました。
以下 は実行時の画面とプログラムソースです。enter nameに文字を入れクエリ送信ボタンを押すと greetingにhellow+”enter nameで入力した文字”が表示されるプログラムです。
プログラムはほとんど自動生成され実際にコーディングしたのは以下のソースで赤表示している
string " hello " input1 delimited by size into input2
の1行だけです。
今回サーバープログラム(以下のCOBOLプログラムにあたります)はクライアント側(WIN98)で動かしています。テスト時には自動的にSoloと呼ばれるWebサーバーソフト(インターネットアプリケーションテスト用のHTTPDのような物)が起動されプログラムが実行されます。これは既存のWebサーバーソフトでも代用できるようです。



$set preprocess(htmlpp) endp oldstrmix

*>****************************************************************
identification division.
*>****************************************************************
program-id. "myprog".


*>****************************************************************
environment division.
*>****************************************************************


configuration section.
special-names.
call-convention 8 is llnk.
input-output section.
file-control.

*>****************************************************************
data division.
*>****************************************************************
file section.
working-storage section.

copy "myprog.cpf".
*>----------------------------------------------------------------


local-storage section.
linkage section.

*>****************************************************************
Procedure Division.
*>****************************************************************
main section.

perform process-form-input-data
perform convert-input
if MF-SERVER-EXEC = "yes"
perform process-business-logic
perform mypage-cvt

else
perform mypage-ini

end-if
perform mypage-out

exit program
stop run.

*>----------------------------------------------------------------
process-form-input-data section.

*> Accept the input from the Browser, and check for errors
perform browser-initialize
accept htmlform
exit.

*>----------------------------------------------------------------
convert-input section.

*> 数字の入力値を変換します
perform input-conversion

*> 入力値のチェックをここに追加します

if v-all-ok = 0
perform output-form-error-and-stop
end-if
exit.

*>----------------------------------------------------------------
process-business-logic section.

string " hello " input1 delimited by size into input2.
exit.

*>----------------------------------------------------------------
output-form-error-and-stop section.

exec html
数字項目 :v-first-bad に不正な値があります
正しい値を入力して下さい
end-exec
exit program
stop run.

*>----------------------------------------------------------------
copy "myprog.cpv".


*>----------------------------------------------------------------


4 .Webデータベースアプリケーションを入門書の手順で作成してみる
 ODBCがサポートされているデータベースシステムであれば フォーム設計やプログラミングをしなくても インターネットアプリケーションウイザードで以下のようなWebインターフェイスが作成されます。
まさに今までのCOBOLで言うとマスターメンテのプログラムです。このようなインターフェイスプログラムが5分足らずで作成できました。これは便利です。




5.最後に

全体的に非常によく出来ており、これこそCOBOL将来像と思わせる出来です。
Web対応・既存COBOLソースの活用・Windows GUIがCOBOLの老舗Micro FocusのCOBOLで実現できる とは、コボラーにとってこんな嬉しい事はありません。
なぜもっと話題にならないか不思議なくらいです。コボラーの方はもちろん コボラー以外の方も一度使用してみればきっとCOBOLに対する考え方が変わるはずです。