ページの先頭行へ戻る
Interstage Business Application Server チュートリアルガイド
FUJITSU Software

4.1.3 業務ロジックの作成

クライアントアプリケーションから同期アプリケーション連携実行基盤を経由して呼び出されるサーバアプリケーションの業務ロジックを作成します。

4.1.3.1 COBOLソースファイルの作成/修正

業務ロジックを記述するサーバアプリケーションのCOBOLソースファイルを作成します。
“PAYMENTCHANGE”プロジェクトを例に、COBOLソースファイルを新規に作成する手順を以下に示します。


  1. “PAYMENTCHANGE”プロジェクトを選択して、メニューバーから[ファイル] > [新規] > [COBOLソース]を選択します。[COBOLソース生成ウィザード]が表示されます。



  2. 作成するCOBOLソースファイルのファイル名、PROGRAM-ID、およびファイルコメントを設定します。



    以下の値を設定して、[完了]をクリックしてください。

    項目

    設定値

    プロジェクト名

    PAYMENTCHANGE(初期値)

    ファイル名

    PAYMENTCHANGE

    PROGRAM-ID

    PAYMENTCHANGE

    ファイルコメント

    任意の値を設定してください

    プリコンパイラを使用する

    チェックする(注)

    注)本サンプルプログラムでは、プリコンパイラを使用します。

  3. [ソースファイル]フォルダにプリコンパイラ用のソースファイルが作成されます。



本サンプルプログラムでは、作成済みのプリコンパイラ用のソースファイルを使用します。
サンプル資材のプリコンパイラ用のソースファイルをコピーして、各プロジェクトの格納先フォルダに格納してください。

プリコンパイラ用のソースファイル名(注)

格納先プロジェクト名

格納先フォルダ

PAYMENTCHANGE.scob

PAYMENTCHANGE

ソースファイル

STOCKCHANGE.scob

STOCKCHANGE

ソースファイル

STOCKGETITEM.scob

STOCKGETITEM

ソースファイル

STOCKGETITEMS.scob

STOCKGETITEMS

ソースファイル

注)“D:\ibas\tutorial\server\src”フォルダに格納されています。

プリコンパイラ用のソースファイル名(注)

格納先プロジェクト名

格納先フォルダ

PAYMENTCHANGE.pcob

PAYMENTCHANGE

ソースファイル

STOCKCHANGE.pcob

STOCKCHANGE

ソースファイル

STOCKGETITEM.pcob

STOCKGETITEM

ソースファイル

STOCKGETITEMS.pcob

STOCKGETITEMS

ソースファイル

注)サーバの/opt/FJSVibs/sample/acceptance/APL/COBOL/cobol_sample.exeのcobol_sample\oracle\workspaceに格納されています。

各プロジェクトにプリコンパイラ用のソースファイルをコピーした結果を示します。

本サンプルプログラムでは、作成済みのプリコンパイラ用のソースファイルを使用します。
サンプル資材のプリコンパイラ用のソースファイルをコピーして、各プロジェクトの格納先フォルダに格納してください。

4.1.3.2 コンパイル・リンク・デバッグ


業務ロジックの作成が終わった後、コンパイル、およびリンクを行います。
本サンプルプログラムでは、埋め込みSQL文が記述されたCOBOLソースファイルを使用しているため、コンパイル・リンクを行うにはプリコンパイラを使用する必要があります。
以下に手順を示します。

注意

各プロジェクト内の依存関係を正しく設定する為、Interstage Studioのメニューバーから[ウィンドウ] > [ビューの表示] >[その他]を選択して表示される[ビューの表示]画面で、[COBOL] > [依存]を選択し、表示される依存ビューで、プロジェクトのコンテキストメニューから[依存関係の解析] > [すべて]を選択し依存関係を再設定してください。

4.1.3.2.1 メイクファイルの生成

サーバ上でビルドを行うためのメイクファイルを生成します。
メイクファイルは、1つのプロジェクトあたり1つ生成します。

“PAYMENTCHANGE”プロジェクトを例に、メイクファイルの生成手順を示します。

  1. 選択したプロジェクトのコンテキストメニューから[リモート開発] > [メイクファイル生成]を選択してください。

  2. [メイクファイル生成]ダイアログボックスが表示されます。[オプション設定]をクリックしてください。






  3. [オプション設定]ダイアログボックスが表示されます。[プリコンパイラ]タブをクリックし、「プリコンパイラを使用する」チェックボックスをチェックしてください。






  4. [翻訳オプション]タブをクリックしてください。


  5. [翻訳オプション]タブの[追加]をクリックしてください。


  6. [追加]をクリックすると、[翻訳オプションの追加]ダイアログボックスが表示されます。“LIB”を選択して[追加]をクリックしてください。

  7. [LIB翻訳オプション]ダイアログボックスが表示されます。COBOL実行基盤インタフェースライブラリを使用するためのCOBOL登録集が格納されているフォルダを設定します。

    以下の値を設定して、[OK]をクリックしてください。

    項目

    設定値

    登録集ファイルのフォルダ

    /opt/FJSVibs/copy

  8. [翻訳オプション]一覧で“THREAD”を選択して、[追加]をクリックしてください。

  9. [THREAD翻訳オプション]ダイアログボックスで[MULTI - マルチスレッドにする]を選択して、[OK]をクリックしてください。

  10. [翻訳オプションの追加]ダイアログボックスで、[完了]をクリックしてください。



  11. [翻訳オプション]一覧に“LIB”オプション、および“THREAD”オプションが追加されます。

  12. [オプション設定]ダイアログボックスの[リンクオプション1]タブをクリックしてください。

  13. [追加]をクリックして、リンクするライブラリ/オブジェクトファイルを設定します。


    以下のライブラリ/オブジェクトファイルを追加して、[OK]をクリックしてください。


    項目

    サーチパス

    ファイル名

    ライブラリ/オブジェクトファイル

    /opt/FJSVibs/lib

    libapfwcdrcobol.so

    /opt/FJSVibs/lib

    libapfwcblconv.so

    ${ORACLE_HOME}/lib

    libclntsh.so

    ${ORACLE_HOME}/precomp/lib

    cobsqlintf.o

    /usr/lib

    libpthread.so



    以下のライブラリ/オブジェクトファイルを追加して、[OK]をクリックしてください。

    項目

    サーチパス

    ファイル名

    ライブラリ/オブジェクトファイル

    /opt/FJSVibs/lib

    libapfwcdrcobol.so

    /opt/FJSVibs/lib

    libapfwcblconv.so

    /opt/FJSVrdb2b/lib

    libsql64drvm.so

    /usr/lib64

    libpthread.so

  14. [メイクファイル生成]ダイアログボックスの[生成条件]に、設定した内容が反映されます。


    以下の値が設定されていることを確認して、[OK]をクリックしてください。


    項目

    設定値

    ターゲット名

    libPAYMENTCHANGE.so

    転送するファイル

    COBOLソースファイル

    COBOL登録集・定義体ファイル

    PAYMENTCHANGECP.cbl

    プリコンソース

    PAYMENTCHANGE.pcob

    翻訳オプション

    '-I "/opt/FJSVibs/copy" -WC,"TAB(4),THREAD(MULTI),SRF(VAR,VAR)"'

    リンクオプション

    '-dy -Tm'
    '-L /opt/FJSVibs/lib -lapfwcdrcobol -L /opt/FJSVibs/lib -lapfwcblconv -L /usr/lib -lpthread -L /opt/oracle/product/11.2.0/db_1/lib clntsh /opt/oracle/product/11.2.0/db_1/precomp/lib/cobsqlintf.o'

    プリコンパイラ連携

    プリコン入力ソースの拡張子

    .pcob

    プリコン出力ソースの拡張子

    .cob

    プリコンパイラ

    sqlpcob -g -G -T %INFILE%

    注)上表はORACLE_HOME環境変数が/opt/oracle/product/11.2.0/db_1の場合



    以下の値が設定されていることを確認して、[OK]をクリックしてください。

    項目

    設定値

    ターゲット名

    libPAYMENTCHANGE.so

    転送するファイル

    COBOLソースファイル

    COBOL登録集・定義体ファイル

    PAYMENTCHANGECP.cbl

    プリコンソース

    PAYMENTCHANGE.scob

    翻訳オプション

    '-I "/opt/FJSVibs/copy" -WC,"TAB(4),THREAD(MULTI),SRF(VAR,VAR)"'

    リンクオプション

    '-dy -Tm'
    '-L /opt/FJSVibs/lib -lapfwcdrcobol -L /opt/FJSVibs/lib -lapfwcblconv -L /opt/FJSVrdb2b/lib -lsql64drvm -L /usr/lib64 -lpthread'

    プリコンパイラ連携

    プリコン入力ソースの拡張子

    .scob

    プリコン出力ソースの拡張子

    .cobol

    プリコンパイラ

    sqlpcob -g -v9 -G -T %INFILE%

  15. サーバへビルドに必要なソースファイルが転送され、サーバ上にメイクファイルが生成されます。
    転送されたソースファイル、および生成されたメイクファイルは、“4.1.1.2 リモート開発の設定”で指定したサーバディレクトリに格納されます。

    サーバ上でメイクファイルが生成された後、メイクファイルが開発環境のアプリケーション開発用プロジェクトの[その他のファイル]フォルダにコピーされます。

    選択したプロジェクトのコンテキストメニューから[最新表示]を選択して、以下のファイルが作成されていることを確認してください。

    ファイル名

    説明

    Makefile

    メイクファイル

    SCOBRULES

    プリコンパイラ用のルールファイル

  16. 他のプロジェクトについても、1~14と同様の手順でメイクファイルを生成してください。
    以下に、プロジェクトごとの生成条件を示します。

    • STOCKCHANGE



    項目

    設定値

    ターゲット名

    libSTOCKCHANGE.so

    転送するファイル

    COBOLソースファイル

    COBOL登録集・定義体ファイル

    STOCKCHANGECP.cbl

    プリコンソース

    STOCKCHANGE.pcob

    翻訳オプション

    '-I "/opt/FJSVibs/copy" -WC,"TAB(4),THREAD(MULTI),SRF(VAR,VAR)"'

    リンクオプション

    '-dy -Tm'
    '-L /opt/FJSVibs/lib -lapfwcdrcobol -L /opt/FJSVibs/lib -lapfwcblconv -L /usr/lib -lpthread -L /opt/oracle/product/11.2.0/db_2/lib clntsh /opt/oracle/product/11.2.0/db_2/precomp/lib/cobsqlintf.o'

    プリコンパイラ連携

    プリコン入力ソースの拡張子

    .pcob

    プリコン出力ソースの拡張子

    .cob

    プリコンパイラ

    sqlpcob -g -G -T %INFILE%

    注)上表はORACLE_HOME環境変数が/opt/oracle/product/11.2.0/db_1の場合



    項目

    設定値

    ターゲット名

    libSTOCKCHANGE.so

    転送するファイル

    COBOLソースファイル

    COBOL登録集・定義体ファイル

    STOCKCHANGECP.cbl

    プリコンソース

    STOCKCHANGE.scob

    翻訳オプション

    '-I "/opt/FJSVibs/copy" -WC,"TAB(4),THREAD(MULTI),SRF(VAR,VAR)"'

    リンクオプション

    '-dy -Tm'
    '-L /opt/FJSVibs/lib -lapfwcdrcobol -L /opt/FJSVibs/lib -lapfwcblconv -L /opt/FJSVrdb2b/lib -lsql64drvm -L /usr/lib64 -lpthread'

    プリコンパイラ連携

    プリコン入力ソースの拡張子

    .scob

    プリコン出力ソースの拡張子

    .cobol

    プリコンパイラ

    sqlpcob -g -v9 -G -T %INFILE%



    • STOCKGETITEM


      項目

      設定値

      ターゲット名

      libSTOCKGETITEM.so

      転送するファイル

      COBOLソースファイル

      COBOL登録集・定義体ファイル

      STOCKGETITEMCP.cbl

      プリコンソース

      STOCKGETITEM.pcob

      翻訳オプション

      '-I "/opt/FJSVibs/copy" -WC,"TAB(4),THREAD(MULTI),SRF(VAR,VAR)"'

      リンクオプション

      '-dy -Tm'
      '-L /opt/FJSVibs/lib -lapfwcdrcobol -L /opt/FJSVibs/lib -lapfwcblconv -L /usr/lib -lpthread -L /opt/oracle/product/11.2.0/db_2/lib clntsh /opt/oracle/product/11.2.0/db_2/precomp/lib/cobsqlintf.o'

      プリコンパイラ連携

      プリコン入力ソースの拡張子

      .pcob

      プリコン出力ソースの拡張子

      .cob

      プリコンパイラ

      sqlpcob -g -G -T %INFILE%

      注)上表はORACLE_HOME環境変数が/opt/oracle/product/11.2.0/db_1の場合



      項目

      設定値

      ターゲット名

      libSTOCKGETITEM.so

      転送するファイル

      COBOLソースファイル

      COBOL登録集・定義体ファイル

      STOCKGETITEMCP.cbl

      プリコンソース

      STOCKGETITEM.scob

      翻訳オプション

      '-I "/opt/FJSVibs/copy" -WC,"TAB(4),THREAD(MULTI),SRF(VAR,VAR)"'

      リンクオプション

      '-dy -Tm'
      '-L /opt/FJSVibs/lib -lapfwcdrcobol -L /opt/FJSVibs/lib -lapfwcblconv -L /opt/FJSVrdb2b/lib -lsql64drvm -L /usr/lib64 -lpthread'

      プリコンパイラ連携

      プリコン入力ソースの拡張子

      .scob

      プリコン出力ソースの拡張子

      .cobol

      プリコンパイラ

      sqlpcob -g -v9 -G -T %INFILE%



    • STOCKGETITEMS


      項目

      設定値

      ターゲット名

      libSTOCKGETITEMS.so

      転送するファイル

      COBOLソースファイル

      COBOL登録集・定義体ファイル

      STOCKGETITEMSCP.cbl

      プリコンソース

      STOCKGETITEMS.pcob

      翻訳オプション

      '-I "/opt/FJSVibs/copy" -WC,"TAB(4),THREAD(MULTI),SRF(VAR,VAR)"'

      リンクオプション

      '-dy -Tm'
      '-L /opt/FJSVibs/lib -lapfwcdrcobol -L /opt/FJSVibs/lib -lapfwcblconv -L /usr/lib -lpthread -L /opt/oracle/product/11.2.0/db_2/lib clntsh /opt/oracle/product/11.2.0/db_2/precomp/lib/cobsqlintf.o'

      プリコンパイラ連携

      プリコン入力ソースの拡張子

      .pcob

      プリコン出力ソースの拡張子

      .cob

      プリコンパイラ

      sqlpcob -g -G -T %INFILE%



      項目

      設定値

      ターゲット名

      libSTOCKGETITEMS.so

      転送するファイル

      COBOLソースファイル

      COBOL登録集・定義体ファイル

      STOCKGETITEMSCP.cbl

      プリコンソース

      STOCKGETITEMS.scob

      翻訳オプション

      '-I "/opt/FJSVibs/copy" -WC,"TAB(4),THREAD(MULTI),SRF(VAR,VAR)"'

      リンクオプション

      '-dy -Tm'
      '-L /opt/FJSVibs/lib -lapfwcdrcobol -L /opt/FJSVibs/lib -lapfwcblconv -L /opt/FJSVrdb2b/lib -lsql64drvm -L /usr/lib64 -lpthread'

      プリコンパイラ連携

      プリコン入力ソースの拡張子

      .scob

      プリコン出力ソースの拡張子

      .cobol

      プリコンパイラ

      sqlpcob -g -v9 -G -T %INFILE%


  17. サーバにNetCOBOL開発・運用パッケージ V9.1以前を使用している場合、ワークスペース内にコピーされたメイクファイルを編集します。

    “PAYMENTCHANGE”プロジェクトを例に、メイクファイルの編集内容を示します。他のプロジェクトも同様に編集してください。

    サーバにNetCOBOL 開発・運用パッケージ V10.0を使用している場合はメイクファイルを修正する必要はありません。

    ファイル名

    編集前注1

    編集後注1

    説明

    Makefile

    (省略)
    .cobol.o:
    △@if [ -f $(@F:.o=.cbi) ] ; then \
    △△echo $(COMPCBI.cob) -M $(OUTPUT_OPTION) $< ; \
    △△$(COMPCBI.cob) -M $(OUTPUT_OPTION) $< ; \
    △else \
    △△echo $(COMPILE.cob) -M $(OUTPUT_OPTION) $< ; \
    △△$(COMPILE.cob) -M $(OUTPUT_OPTION) $< ; \
    △fi
    (省略)

    (省略)
    .cobol.o:
    △@if [ -f $(@F:.o=.cbi) ] ; then \
    △△echo $(COMPCBI.cob) $(OUTPUT_OPTION) $< ; \
    △△$(COMPCBI.cob) $(OUTPUT_OPTION) $< ; \
    △else \
    △△echo $(COMPILE.cob) $(OUTPUT_OPTION) $< ; \
    △△$(COMPILE.cob) $(OUTPUT_OPTION) $< ; \
    △fi
    (省略)

    Symfoware Serverのプリコンパイラが出力する“PAYMENTCHANGE.cobol”は主プログラムではないため、コンパイルオプションから“-M”を取り除きます。

    (省略)
    PAYMENTCHANGE.cob: PAYMENTCHANGE.scob注2

    (省略)
    PAYMENTCHANGE.cobol: PAYMENTCHANGE.scob注2

    Symfoware Serverのプリコンパイラの仕様に合わせます。

    注1)“△”は、実際のファイルではタブを示します。
    注2)拡張子を除くファイル名の部分はプロジェクトごとに異なります。


4.1.3.2.2 ビルド

作成した業務ロジックは、リモート開発機能を用いてサーバ上でビルドします。

“PAYMENTCHANGE”プロジェクトを例に、サーバ上でビルドを行う手順を示します。

  1. 選択したプロジェクトのコンテキストメニューから[リモート開発] > [ビルド]を選択してください。

  2. サーバに格納された資産を使用して、実行環境上でビルドが実行されます。
    実行結果は、[コンソール]ビューの[COBOLリモート]に表示されます。


    ポイント

    [コンソール]ビューの[COBOLリモート]を表示するには、[コンソール]ビューのツールバーのアイコン([コンソールを開く])から[COBOLリモート]を選択してください。

    注意

    ビルドに失敗した場合、“Interstage Business Application Server トラブルシューティング”の“開発環境で発生する異常”の“COBOLサーバアプリケーションの開発で発生する異常”の“サーバアプリケーションのコンパイル時にエラーメッセージが出力される”の“リモートビルド時に開発環境でのファイルの修正が反映されない場合”に記載の内容も確認してください。


    ポイント

    [コンソール]ビューの[COBOLリモート]を表示するには、[コンソール]ビューのツールバーのアイコン([コンソールを開く])から[COBOLリモート]を選択してください。

    注意

    ビルドに失敗した場合、“Interstage Business Application Server トラブルシューティング”の“開発環境で発生する異常”の“COBOLサーバアプリケーションの開発で発生する異常”の“サーバアプリケーションのコンパイル時にエラーメッセージが出力される”の“リモートビルド時に開発環境でのファイルの修正が反映されない場合”に記載の内容も確認してください。

  3. 処理が正常終了した場合、“4.1.1.2 リモート開発の設定”で指定したサーバディレクトリにライブラリが生成されます。

4.1.3.2.3 デバッグ

作成した業務ロジックのデバッグを行います。
業務ロジックのデバッグを行うために、必要に応じてドライバやスタブを用意してください。
COBOLアプリケーションのデバッグ方法については、“NetCOBOL Studio ユーザーズガイド”の “リモート開発機能”を参照してください。

4.1.3.3 コンパイル・リンク・デバッグ


業務ロジックの作成が終わった後、開発環境でコンパイル・リンクを行います。
本サンプルプログラムでは、埋め込みSQL文が記述されたCOBOLソースファイルを使用しているため、コンパイル・リンクを行うにはプリコンパイラを使用する必要があります。
以下に手順を示します。

4.1.3.3.1 ビルドの設定

作成した業務ロジックをビルドするために必要となるCOBOL登録集、およびリンクするライブラリを設定します。

本サンプルプログラムをコンパイルするには、Interstage Business Application ServerのCOBOL登録集が必要です。また、本サンプルプログラムをリンクするには、Symfoware Serverのライブラリ、およびInterstage Business Application Serverのライブラリが必要です。
プロジェクト“PAYMENTCHANGE”を例に、翻訳オプションの追加、およびリンクオプションの設定を行う手順を示します。

  1. 選択したプロジェクトのコンテキストメニューから[プロパティ]を選択して、表示される[プロパティ]画面の左ペインで[ビルド]を選択してください。



  2. [追加]をクリックすると、[翻訳オプションの追加]ダイアログボックスが表示されます。[翻訳オプション]一覧で“LIB”を選択して、[追加]をクリックしてください。



  3. 表示された[LIB翻訳オプション]ダイアログボックスで、コンパイルで使用するCOBOL登録集ファイルのフォルダを設定します。


    以下の値を設定して、[OK]をクリックしてください。

    項目

    設定値

    登録集ファイルのフォルダ

    C:\Interstage\BAS\copy

  4. [翻訳オプション]一覧で“THREAD”を選択して、[追加]をクリックしてください。

  5. [THREAD翻訳オプション]ダイアログボックスで[MULTI - マルチスレッドにする]を選択して、[OK]をクリックしてください。

  6. [翻訳オプションの追加]ダイアログボックスで、[完了]をクリックしてください。



  7. [翻訳オプション]一覧に“LIB”オプション、および“THREAD”オプションが追加されます。



  8. [リンクオプション]タブをクリックしてください。



  9. [追加]をクリックすると、[リンクオプションの追加]ダイアログボックスが表示されます。



  10. Symfoware Serverのライブラリを追加します。


    以下の値を設定して、[OK]をクリックしてください。

    項目

    設定値

    ライブラリ/オプジェクトファイルの選択

    C:\SFWCLNT\ESQL\LIB\f3cwdrvm_x64.lib

  11. 9~10と同様の手順で、COBOL実行基盤インタフェースライブラリを追加してください。

    項目

    設定値

    ライブラリ/オプジェクトファイル

    C:\Interstage\BAS\lib\x64\libapfwcblconv.lib
    C:\Interstage\BAS\lib\x64\libapfwcdrcobol.lib

  12. [ライブラリ/オジェクトファイル]一覧に正しく追加されていることを確認して、[OK]をクリックしてください。



他のプロジェクトも同様の手順で、ビルドの設定を行ってください。
ビルドに使用するCOBOL登録集、およびライブラリは、プロジェクト“PAYMENTCHANGE”と同一です。

4.1.3.3.2 ビルド

コンパイル・リンクを行うプロジェクトを選択して、コンテキストメニューから[プロジェクトのビルド]または[プロジェクトの再ビルド]を選択してください。ビルドが実行され、プロジェクトごとに以下のライブラリが生成されます。

プロジェクト名

ライブラリ名

PAYMENTCHANGE

PAYMENTCHANGE.dll

STOCKCHANGE

STOCKCHANGE.dll

STOCKGETITEM

STOCKGETITEM.dll

STOCKGETITEMS

STOCKGETITEMS.dll

ポイント

Interstage Studioのメニューバーの[プロジェクト] > [自動的にビルド]がチェックされている場合、ビルドは自動で実行されます。
この場合、プロジェクトのコンテキストメニューの[プロジェクトのビルド]は表示されません。

4.1.3.3.3 デバッグ

ビルドが終わった業務ロジックのデバッグを行います。
必要に応じてドライバやスタブを用意してください。
COBOLアプリケーションのデバッグ方法については、“NetCOBOL Studio ユーザーズガイド”の“デバッグ機能”を参照してください。