“図A.1 NetCOBOL製品間の機能差”および“表A.2 各プラットフォーム向けのNetCOBOL製品の機能サポート状況”で示した各プラットフォーム向け製品間での機能差について、次のようなものについて、ここでは機能ごとに詳しく説明します。
機能は提供されているが、同じ動作が期待できない。
機能は提供されているが、制限がある。
日本語処理
NetCOBOLでは、COBOLのデータ項目で日本語データ(半角カナ文字を含む)を使用することができます。しかし、各プラットフォームでの文字コードの違いから、各プラットフォーム向けのNetCOBOL製品での日本語データの扱いに違いが生じています。したがって、日本語処理の結果の違いについて詳細を理解するためには、文字コード系について理解することが必要となります。ここでは概要レベルの説明に止め、詳細については“NetCOBOLユーザーズガイド”の“文字コード”を参照してください。
以下に、各NetCOBOL製品で日本語処理に使用可能な文字コード系を示します。
文字コード系 | Windows 32bit版 NetCOBOL | Solaris 32bit版 NetCOBOL | Linux 32bit版 NetCOBOL | Linux(Itanium) 64bit版 NetCOBOL |
---|---|---|---|---|
シフトJIS(SJIS) | ○ | ○ | × | × |
日本語EUC(EUC) | × | ○ | ○ | ○ |
Unicode | ○ | ○ | ○ | ○ |
なお、Unicodeサポートについては、実際は更に詳細な違いがあります。“NetCOBOLユーザーズガイド”の“文字コード”を参照してください。
COBOLプログラムが動作する場合の文字コードの選択と指定の方法が、Windows版NetCOBOL製品とUNIX系システムのNetCOBOL製品で根本的に異なります。
翻訳オプションRCSによって指定します(デフォルトはシフトJIS)。このため、同じCOBOLソースから異なるコード系を使用するプログラムを作成することができます。
作成した実行可能プログラムは、Windowsシステムの言語の設定に依存することなく、翻訳時に指定した文字コード系を使用して動作します。
UNIX系システムの環境変数LANGの設定によって、翻訳時および実行時に使用される文字コード系が自動的に選択されます。このため、実行時に使用する文字コード系を使用して記述されたCOBOLソースが必要となります。
作成した実行可能プログラムは、UNIXシステムの環境変数LANGの設定に従って動作します。このため、COBOLソースで使用している文字コード系と実行時の環境変数LANGの設定が食い違った場合、実行時エラーが発生します。
次のような操作で結果が異なる場合があります。詳細は、“NetCOBOLユーザーズガイド”の“文字コード”を参照してください。
使用を選択した文字コード系に含まれない値を指定した場合、翻訳エラーになります。
半角カナ文字、日本語文字の大小順序の結果が異なる場合があります。
半角カナ文字、日本語文字の大小順序の結果が異なる場合があります。
半角カナ文字、日本語文字の大小順序の結果が異なる場合があります。
コード系の違いにより、結果が異なる場合があります。
拡張日本語印刷
NetCOBOLでは、フォームオーバレイパターン、FCB、帳票定義体などの帳票資源を使用してきめ細かい帳票印刷を行うことができます。しかし、プラットフォームごとに提供される印刷環境の違いやプリンタに出力する印刷オーダーなどの違いから、プラットフォーム間での動作に違いが生じています。更に各プラットフォームで利用可能なフォント、プリンタおよび接続製品提供の違いがありますので、各プラットフォームで全く同じ印刷結果を得ることは困難です。このため、印刷機能を使用した帳票出力結果の確認は、運用するプラットフォーム上で実際の印刷環境を使用して確認することが必要となります。
各プラットフォームで出力できる印刷オーダーは以下のとおりです。
Windows 32bit版 NetCOBOL | Solaris 32bit版 NetCOBOL | Linux 32bit版 NetCOBOL | Linux(Itanium) | |
---|---|---|---|---|
GDI | ○ | × | × | × |
FM(UVPI) | × | ○ | × | × |
FNP(UVPI) | × | ○ | ○ | ○ |
PostScript | × | ○ | ○ | ○ |
ESC/P | × | ○ | × | × |
ESC/Page | × | ○ | × | × |
LIPS | × | ○ | × | × |
なお、MeFt経由で印刷する場合には、“MeFtユーザーズガイド”を参照してください。
フォームオーバレイパターンはWindows版のFORM/PowerFORMで作成します。
FORM/PowerFORMで作成したフォームオーバレイパターンは他のプラットフォームでも使用することができます。ただし、フォームオーバレイパターンの形式によっては、プラットフォームごとに利用可能な機能範囲が異なります。プラットフォーム間で共用する目的でフォームオーバレイパターンを作成する場合には、KOL5形式(システム間流通可能な形式)で作成することをお勧めします。
FCBは、印刷ファイルを使用して行レコードで構成された帳票を出力する場合に、1ページ分の論理的な構成(行数、行間隔、印字開始位置)を定義します。各プラットフォームで定義できる情報は以下のとおりです。
Windows 32bit版 NetCOBOL | Solaris 32bit版 NetCOBOL | Linux 32bit版 NetCOBOL | Linux(Itanium) 64bit版 NetCOBOL | |
---|---|---|---|---|
定義方法 | FCB制御文 | FCBファイル | FCBファイル | FCBファイル |
LPI情報(行間隔) | ○ | ○ | ○ | ○ |
LPI情報(行数) | ○ | ○ | ○ | ○ |
CH情報(チャネル) | ○ | × | × | × |
SIZE情報(用紙サイズ) | ○ | ○ | ○ | ○ |
FORM情報(定型サイズ) | ○ | × | × | × |
印字開始位置 | △ 注 | ○ | ○ | ○ |
注 : CH情報で定義したチャネル1が印字開始位置を識別するために使用されます。
各プラットフォームのMeFtと連携することで、COBOLプログラムから帳票定義体に定義した帳票フォーマットにしたがって印刷することができます。帳票定義体はWindows版のFORM/PowerFORMで作成します。
FORM/PowerFORMで作成した帳票定義体は他のプラットフォームでも使用することができます。ただし、プラットフォームごとに利用可能な機能範囲が異なります。プラットフォーム間で共用する目的で帳票定義体を作成する場合には、FORMを使用してSMD形式(システム間流通可能な形式)で作成することをお勧めします。
また、出力するプリンタや印刷オーダーの違いによっても利用可能な機能範囲が異なります。詳細は、各プラットフォームの“MeFtユーザーズガイド”を参照してください。
外字を使用する場合は、各プラットフォームで文字コードの扱いが異なりますので、外字はプラットフォームごとに使用する文字コード系にあわせて登録する必要があります。
表示ファイル(画面)
宛先DSPの表示ファイル機能を使用して画面入出力を行うためには、連携する製品が必要となります。この連携製品によって接続する画面の種類や機能のサポート状況が異なります。
Windows 32bit版 NetCOBOL | Solaris 32bit版 NetCOBOL | Linux 32bit版 NetCOBOL | Linux(Itanium) 64bit版 NetCOBOL | |
---|---|---|---|---|
ローカル画面(MeFt) | ○ | × | × | × |
Web画面(MeFt/Web) | ○ | ○ | ○ | × |
画面入出力ではWindows版のFORMで作成した画面定義体を使用します。FORMで作成した画面定義体は他のプラットフォームでも使用することができます。ただし、プラットフォームごとに利用可能な機能範囲が異なります。
また、連携製品によっても利用可能な機能範囲が異なります。詳細は、各製品のマニュアルを参照してください。
表示ファイル(印刷)
宛先PRTの表示ファイル機能を使用して帳票出力を行うためには、連携する製品が必要となります。この連携製品によって機能のサポート状況が異なります。
Windows 32bit版 NetCOBOL | Solaris 32bit版 NetCOBOL | Linux 32bit版 NetCOBOL | Linux(Itanium) 64bit版 NetCOBOL | |
---|---|---|---|---|
サーバ印刷(MeFt) | ○ | ○ | ○ | ○ |
Web印刷(MeFt/Web) | ○ | ○ | ○ | × |
電子帳票(MeFt + List WORKS) | ○ | ○ | × | ○ |
PDF(MeFt + List Creator EE) | ○ | ○ | ○ | ○ |
帳票管理サーバ(MeFt + List Manager) | ○ | ○ | × | × |
分散印刷(MeFt + List Creator) | ○ | ○ | × | ○ |
帳票出力ではWindows版のFORM/PowerFORMで作成した帳票定義体を使用します。FORM/PowerFORMで作成した帳票定義体は他のプラットフォームでも使用することができます。ただし、プラットフォームごとに利用可能な機能範囲が異なります。
また、連携製品によっても利用可能な機能範囲が異なります。詳細は、各製品のマニュアルを参照してください。
スクリーン操作
レイアウト指定を含むデータ項目(スクリーン項目)やレイアウト指定付きのACCEPT/DISPLAY文を使用して、COBOLで画面入出力を行うプログラムを簡単に記述する機能です。Linux 32bit版 NetCOBOLおよびLinux(Itanium) 64bit版NetCOBOL製品ではサポートされていません。
一方、Windows 32bit版 NetCOBOLとSolaris 32bit版 NetCOBOLでは、次のように異なります。
比較ポイント | Windows 32bit版 NetCOBOL | Solaris 32bit版 NetCOBOL |
---|---|---|
XPG仕様 | ○ | ○ |
Micro Focus互換仕様 | ○(MF COBOL/2相当 + α) | △(MF COBOL/2相当) |
動作コード | SJIS、Unicode(UTF8/UCS2) | EUC |
GUI設計ツール | × | ○(X Windowシステム必須) |
データベース操作
COBOLプログラムからデータベース操作を行うためには、埋め込みSQL文を使用する必要がありますが、使用可能な埋め込みSQL文の種類や埋め込みSQL文の詳細なふるまいは、次のような条件によって異なります。
接続するデータベース製品
接続方法(ODBCインタフェース/CALLインタフェース)
COBOLプログラム~データベースの接続インタフェースの違いは、開発時に埋め込みSQL文を含むCOBOLプログラムを翻訳する際の処理方式の違いとしても現れてきます。
NetCOBOL製品組込みのSQLパーサを使用して埋め込みSQL文を含むプログムを直接翻訳します。ODBCインタフェースを使用する場合、この方式で処理する必要があります。
接続するデータベース製品によって提供される埋め込みSQLプリプロセッサで埋め込みSQL文を含むプログムを処理し、プリプロセッサの出力したCOBOLプログラムを翻訳します。
CALLインタフェースを使用する場合、この方式で処理する必要があります。
各プラットフォーム用のNetCOBOL製品がサポートするSQL文の処理方式は次のとおりです。
埋め込みSQL文の処理方式 | Windows 32bit版 NetCOBOL | Solaris 32bit版 NetCOBOL | Linux 32bit版 NetCOBOL | Linux(Itanium) 64bit版 NetCOBOL |
---|---|---|---|---|
パーザ方式 | ○ | × | ○ | × |
プリプロセッサ方式 | ○ | ○ | ○ | ○ |
なお、各プラットフォームのNetCOBOL製品が接続をサポートするデータベース製品については、製品のバージョンにより違いがあることが多いため、ここでは述べません。各製品のインストールガイド、ソフトウェア説明書等を参照してください。
Web連携機能
Web連携機能を使用して、COBOLでインターネット/イントラネット環境の業務システムを構築するには、以下の2つの方法があります。
MeFt/Webの利用
表示ファイル(画面/帳票)機能を使用するプログラムを再翻訳することなく、Web連携のシステムを構築することができます。
COBOL Webサブルーチンを利用したアプリケーションの開発
Webブラウザとのデータ入出力のためのサブルーチンを使用することで、COBOLの知識だけでWebアプリケーションを開発することができます。
WebサブルーチンにはWebブラウザの標準的なインタフェースを使用するものと、特定のWebサーバのAPIに依存したものが存在します。
Web連携の機能の実現方法 | Windows 32bit版 NetCOBOL | Solaris 32bit版 NetCOBOL | Linux 32bit版 NetCOBOL | Linux(Itanium) 64bit版 NetCOBOL | |
---|---|---|---|---|---|
MeFt/Web | ○ | ○ | ○ | × | |
Webサブルーチン | CGI | ○ | ○ | ○ | × |
ISAPI(*1) | ○ | × | × | × |
*1 : ISAPI(Internet Server Application Programming Interface)。Windows標準のWebサーバであるIISの拡張インタフェースを使用します。
なお、COBOL Webサブルーチンを利用したアプリケーションを開発する場合、サポート状況の違いだけでなく、各システムにおけるファイルやパス名の規則の違いについても注意する必要があります。