Cosminexus ビジネスプロセス管理/エンタープライズサービスバス V8

サービスプラットフォーム 開発ガイド

手引・操作書

3020-3-U52-80

目　　次

前書き

変更内容

はじめに

第1編　標準プロトコルを使用したシステムの開発

1.　SOAに基づいたシステム開発の概要

1.1　開発から実運用までの流れ

1.2　システム全体と開発環境の関係

1.3　標準プロトコル以外のシステムとの連携

1.3.1　OpenTP1と連携したシステムの開発

1.3.2　FTPと連携したシステムの開発

2.　システムを開発する前に

2.1　開発環境を使用するためのセットアップ

2.1.1　前提条件

2.1.2　インストール

2.1.3　環境設定

2.1.4　uCosminexus 日立コード変換 - Development Kitのセットアップ

2.1.5　組み込みデータベースの構築

2.1.6　アンインストール

2.2　構成の形態およびSOAPモードの選択

2.2.1　データベースとCosminexus RMの使用有無

2.2.2　使用するSOAPモード

2.2.3　SOAPモードの設定

2.3　開発手順

2.4　テスト環境の簡易セットアップ

2.4.1　HCSC簡易セットアップ機能で構築できる環境

2.4.2　HCSC簡易セットアップ機能の実行

2.4.3　HCSC簡易セットアップ機能でセットアップしたテスト環境の運用

2.4.4　テスト環境のカスタマイズ

2.4.5　SOAPモードの確認

2.5　HCSC簡易セットアップ機能でセットアップした組み込みデータベースの運用

2.5.1　RDエリアの未使用領域を確認する

2.5.2　プロセスインスタンスの実行履歴を削除する

2.5.3　電文の実行履歴を削除する

2.5.4　空きページおよび空きセグメントを解放する

2.6　利用できるサービス部品の種類と適用範囲

2.6.1　Webサービスを利用したサービス部品の適用範囲

2.6.2　SessionBeanを利用したサービス部品の適用範囲

2.6.3　Cosminexus RMのローカルキューを利用したサービス部品の適用範囲

2.6.4　DBキューを利用したサービス部品の適用範囲

2.6.5　XMLスキーマの適用範囲

3.　プロジェクトの管理とリポジトリの管理

3.1　プロジェクトの管理

3.1.1　プロジェクトを作成する

3.1.2　プロパティを設定する

3.1.3　プロジェクトをエクスポート/インポートする

3.1.4　プロジェクトを削除する

3.1.5　SOAPモードを変更する

3.2　リポジトリの管理

3.2.1　リポジトリを設定する

3.2.2　リポジトリをエクスポートする

3.2.3　リポジトリをインポートする

3.3　設計情報の出力

3.3.1　設計情報として出力できる情報

3.3.2　出力前の確認事項

3.3.3　設計情報の出力方法

4.　電文フォーマットの作成

4.1　電文フォーマットとデータ変換

4.2　電文フォーマットの種類

4.3　電文フォーマット（XMLフォーマット定義ファイル）の作成方法

4.3.1　標準電文を作成する

4.3.2　サービス部品電文を作成する（Webサービスの場合）

4.3.3　サービス部品電文を作成する（SessionBeanの場合）

4.3.4　サービス部品電文を作成する（MDB（WS-RまたはDBキュー）の場合）

4.3.5　サービス部品電文を作成する（DBアダプタ電文の場合）

4.4　電文フォーマット（バイナリフォーマット定義ファイル）の作成方法

4.4.1　バイナリフォーマット定義ファイルのデータ型と文字コードの種類

4.4.2　バイナリフォーマット定義ファイルを新規作成する

4.4.3　要素を定義する（CSV以外の形式の場合）

4.4.4　要素を定義する（CSV形式の場合）

4.4.5　バイナリフォーマット定義ファイルを編集する

4.4.6　バイナリフォーマット定義ファイルを検証する

4.5　COBOL登録集原文ファイルからのバイナリフォーマット定義ファイルの生成

4.5.1　変換できるCOBOL登録集原文ファイルの記述形式

4.5.2　COBOL登録集原文ファイルとバイナリフォーマット定義ファイルのデータ型の対応

4.5.3　バイナリフォーマット定義ファイルの生成方法

4.6　バイナリフォーマット定義ファイルからXMLスキーマファイルの生成

4.7　電文フォーマットの変更

5.　アダプタの定義

5.1　定義の流れ

5.2　アダプタの追加

5.2.1　サービスアダプタを新規に追加する

5.2.2　DBアダプタを新規に追加する

5.2.3　カスタムアダプタを新規に追加する

5.2.4　定義済みアダプタを利用してアダプタを追加する

5.3　アダプタの内容の定義

5.3.1　サービスアダプタ（Webサービス）を定義する

5.3.2　サービスアダプタ（SessionBean）を定義する

5.3.3　サービスアダプタ（MDB（WS-R））を定義する

5.3.4　サービスアダプタ（MDB（DBキュー））を定義する

5.3.5　DBアダプタを定義する

5.3.6　カスタムアダプタを定義する

5.3.7　アダプタ定義での設定一覧

5.4　アダプタの保存

5.5　アダプタの編集

5.6　アダプタの検証

5.6.1　検証方法

5.6.2　検証内容の表示

5.7　アダプタの削除

6.　ビジネスプロセスの定義

6.1　定義の流れ

6.2　ビジネスプロセスの追加

6.2.1　ビジネスプロセスを新規に追加する

6.2.2　定義済みビジネスプロセスを利用してビジネスプロセスを追加する

6.3　ビジネスプロセスの内容の定義

6.4　アクティビティの配置と連結

6.4.1　アクティビティを配置する

6.4.2　アクティビティを連結する

6.4.3　フォルト処理を定義する

6.5　変数・相関セットの定義

6.5.1　変数の定義

6.5.2　相関セットの定義

6.6　アクティビティの定義

6.6.1　開始アクティビティ

6.6.2　受付アクティビティ

6.6.3　応答アクティビティ

6.6.4　サービス呼出アクティビティ

6.6.5　Java呼出アクティビティ

6.6.6　データ変換アクティビティ

6.6.7　代入アクティビティ

6.6.8　無操作アクティビティ

6.6.9　フォルト送出アクティビティ

6.6.10　待機アクティビティ

6.6.11　検証アクティビティ

6.6.12　スコープアクティビティ

6.6.13　繰り返しアクティビティ

6.6.14　分岐アクティビティ

6.6.15　並列処理アクティビティ

6.6.16　終了アクティビティ

6.6.17　順次処理アクティビティ

6.6.18　XPathを指定する

6.7　ビジネスプロセスの保存

6.8　ビジネスプロセスの編集

6.8.1　ビジネスプロセスおよびアクティビティの定義情報を変更する

6.8.2　アクティビティ名を変更する

6.8.3　運用中のビジネスプロセス定義を変更する

6.9　ビジネスプロセスの検証

6.9.1　検証内容

6.9.2　検証方法

6.9.3　検証内容の表示

6.10　ビジネスプロセスの削除

7.　データ変換の定義

7.1　データ変換に必要なファイルおよび定義

7.2　電文フォーマット定義ファイルの作成

7.3　データ変換定義

7.3.1　データ変換の定義手順

7.3.2　電文フォーマットを変更した場合の定義手順

7.4　マッピングする

7.4.1　変換元ノードの値を変換先ノードに直接マッピングする

7.4.2　変換元ノードの値を加工して変換先ノードにマッピングする

7.4.3　変換元ノードの範囲と変換先ノードの範囲を指定して自動でマッピングする

7.4.4　変換先ノードの要素から候補を選択して自動でマッピングする

7.4.5　マッピングを取り消す

7.4.6　マッピング元の表示形式

7.4.7　マッピング線とファンクションを見やすくする

7.4.8　自動マッピング時の類似度の判定

7.4.9　マッピングの注意事項

7.5　ファンクションを使用した値の加工

7.5.1　複数の文字列を連結する

7.5.2　一つの文字列から一部分の文字列を取り出す

7.5.3　文字列の文字数を代入する

7.5.4　指定文字列の有無，または指定文字列の開始を調査する

7.5.5　文字列の空白を除去する

7.5.6　数値をフォーマット変換する

7.5.7　数値を演算する

7.5.8　小数点以下の端数を処理する

7.5.9　複数のノードセットのノードの数値を合計する

7.5.10　ノード数を代入する

7.5.11　ノード名を代入する

7.5.12　ノードの有無を調査する

7.5.13　くり返しを対応づける

7.5.14　条件によって異なる値を出力する

7.5.15　指定した値を代入する

7.5.16　変換テーブルを利用して値を変換する

7.5.17　変換元ノードの値にある値を付加する

7.5.18　変換元ノードの値を倍にする

7.5.19　ユーザが作成した任意のJavaプログラムを呼び出す

7.6　くり返しの設定

7.6.1　［くり返し設定］ダイアログを使用してマッピングする

7.6.2　くり返しを合成する

7.6.3　くり返し依存対象の対応づけ

7.6.4　くり返し依存対象を確認する

7.6.5　くり返し依存対象を変更する

7.6.6　くり返し依存対象が設定された変換元ノードのパスの表示

7.6.7　連携パスを設定して各要素のくり返し処理を連動させる

7.7　ノード条件を設定する

7.8　マッピング定義をコピーする

7.8.1　マッピング定義をコピーする流れ

7.8.2　マッピング定義の保存

7.8.3　マッピング定義の登録

7.8.4　マッピング定義のコピー

7.8.5　類似度の判定方法

7.8.6　マッピング定義をコピーする場合の注意事項

7.9　カスタムファンクションで使用するJavaプログラムの作成

7.9.1　変換ファンクション定義ファイルの作成

7.9.2　Java雛形ファイルの生成

7.9.3　Javaプログラムのコーディング，ビルド，およびデバッグ

7.9.4　Javaプログラムのパッケージング

7.10　マッピングの条件

7.10.1　マッピング対象とマッピング対象外

7.10.2　マッピングできるノードおよびファンクションの対応

7.10.3　接続できるマッピング線の数

8.　ユーザ定義受付の定義

8.1　ユーザ定義受付の概要

8.2　定義の流れ

8.2.1　ビジネスプロセスを定義する前にユーザ定義受付を定義する

8.2.2　ビジネスプロセスの定義後にユーザ定義受付を定義する

8.3　WSDLの作成

8.3.1　フォルトが発生した場合にフォルト電文を返す例

8.3.2　サービスアダプタの接続先情報を動的に変更する例

8.3.3　ユーザ定義受付のWSDL作成時の注意事項

8.4　ユーザ定義受付の追加

8.4.1　ユーザ定義受付を新規に追加する

8.5　ユーザ定義受付の内容の確認

8.6　ユーザ定義受付の保存

8.7　ユーザ定義受付の検証

8.7.1　検証内容

8.7.2　検証方法

8.8　ユーザ定義受付の情報の変更

8.9　ユーザ定義受付の削除

9.　HCSCコンポーネントのパッケージングと配備定義

9.1　パッケージングと配備定義

9.2　パッケージング

9.3　HCSCコンポーネントの配備定義

9.3.1　配備できるクラスタ（または単一のHCSCサーバ）

9.3.2　クラスタにHCSCコンポーネントを追加する

9.3.3　クラスタからHCSCコンポーネントを削除する

9.4　HCSCコンポーネントの情報の参照

9.4.1　参照できるHCSCコンポーネントの情報

9.4.2　HCSCコンポーネントの情報を表示する

9.4.3　HCSCコンポーネントの一覧を更新する

9.5　HCSCコンポーネントをHCSCサーバに配備して開始する処理の一括実行

9.5.1　配備から開始までの処理の流れ

9.5.2　HCSCコンポーネントをHCSCサーバに配備して開始する方法

9.6　HCSCコンポーネントを停止してHCSCサーバから削除する処理の一括実行

9.6.1　停止から削除までの処理の流れ

9.6.2　HCSCコンポーネントを停止してHCSCサーバから削除する方法

10.　サービスリクエスタの作成

10.1　サービスリクエスタ作成の概要

10.2　標準の同期受付（Webサービス）に要求を出すサービスリクエスタ（SOAP通信基盤）

10.2.1　サービスリクエスタ（標準の同期受付（Webサービス））の作成手順（SOAP通信基盤）

10.2.2　WSDLを取得する

10.2.3　スタブを生成する

10.2.4　オブジェクトを生成する

10.2.5　パラメタを設定する

10.2.6　要求電文を作成する

10.2.7　応答電文を取得する

10.2.8　エラー情報を取得する

10.2.9　ビジネスプロセスの再実行を要求するサービスリクエスタの作成（Webサービス・SOAP通信基盤）

10.2.10　サービスアダプタの稼働状況確認を要求するサービスリクエスタの作成（Webサービス・SOAP通信基盤）

10.3　標準の同期受付（Webサービス）に要求を出すサービスリクエスタ（JAX-WSエンジン）

10.3.1　サービスリクエスタ（標準の同期受付（Webサービス））の作成手順（JAX-WSエンジン）

10.3.2　WSDLを取得する

10.3.3　サービスクラスを生成する

10.3.4　オブジェクトを生成する

10.3.5　パラメタを設定する

10.3.6　要求電文を作成する

10.3.7　応答電文を取得する

10.3.8　エラー情報を取得する

10.3.9　ビジネスプロセスの再実行を要求するサービスリクエスタの作成（Webサービス・JAX-WSエンジン）

10.3.10　サービスアダプタの稼働状況確認を要求するサービスリクエスタの作成（Webサービス・JAX-WSエンジン）

10.4　標準の同期受付（SessionBean）に要求を出すサービスリクエスタ

10.4.1　サービスリクエスタ（標準の同期受付（SessionBean））の作成手順

10.4.2　スタブを取得する

10.4.3　インスタンスを生成する

10.4.4　パラメタを設定する

10.4.5　要求電文を作成する

10.4.6　応答電文を取得する

10.4.7　エラー情報を取得する

10.4.8　ビジネスプロセスの再実行を要求するサービスリクエスタの作成（SessionBean）

10.5　標準の非同期受付（MDB（WS-R））に要求を出すサービスリクエスタ

10.5.1　サービスリクエスタ（標準の非同期受付（MDB（WS-R）））の作成手順

10.5.2　転送キューを作成する

10.5.3　JMSメッセージを生成する

10.5.4　パラメタを設定する

10.5.5　要求電文を作成する

10.5.6　JMSメッセージを送信する

10.5.7　応答用のキューを設定する

10.5.8　応答を取り出す

10.5.9　応答電文を取得する

10.6　標準の非同期受付（MDB（DBキュー））に要求を出すサービスリクエスタ

10.6.1　サービスリクエスタ（標準の非同期受付（MDB（DBキュー）））の作成手順

10.6.2　送信用共用キューを作成する（JMS）

10.6.3　JMSメッセージを生成する（JMS）

10.6.4　バイナリデータを作成する（TP1/EE，JMS）

10.6.5　パラメタを設定する（TP1/EE，JMS）

10.6.6　要求電文を作成する（TP1/EE，JMS）

10.6.7　バイナリデータを受信用共用キューに設定する（TP1/EE）

10.6.8　JMSメッセージを送信する（JMS）

10.6.9　応答用のキューを設定する（TP1/EE，JMS）

10.6.10　応答を取り出す（TP1/EE，JMS）

10.6.11　応答電文を取得する（TP1/EE，JMS）

10.7　ユーザ定義受付（Webサービス）に要求を出すサービスリクエスタ

10.7.1　サービスリクエスタ（ユーザ定義受付（Webサービス））の作成手順（SOAP通信基盤）

10.7.2　WSDLを編集する

10.7.3　スタブを生成する

10.7.4　オブジェクトを生成する

10.7.5　応答電文を取得する

10.7.6　エラー情報を取得する

10.7.7　サービスリクエスタ（ユーザ定義受付（Webサービス））の作成手順（JAX-WSエンジン）

10.8　DBアダプタに要求を出すサービスリクエスタ

10.8.1　要求電文の形式

10.8.2　応答電文の形式

11.　ビジネスプロセスのデバッグ

11.1　デバッグの流れ

11.2　ビジネスプロセスのデバッグの準備

11.2.1　ブレークポイントの設定

11.2.2　サービスのエミュレーションの設定

11.3　ビジネスプロセスのデバッグの開始

11.4　リクエストの送信

11.5　ビジネスプロセスのデバッグ

11.5.1　ステップ実行および再開

11.5.2　変数・相関セットの確認

11.5.3　変数の更新

11.5.4　XPathの評価

11.5.5　サービスの自動エミュレーション

11.5.6　サービスの手動エミュレーション

11.6　ビジネスプロセスのデバッグの終了

第2編　OpenTP1と連携したシステムの開発および運用

12.　TP1/RPC受付の概要

12.1　TP1/RPC受付とは

12.2　TP1/RPC受付使用時のトランザクション

12.3　TP1/RPC受付のデータ変換

12.3.1　TP1/RPC受付でのデータの流れとデータ変換の関係

12.3.2　データ変換時の構造変換スキップ機能の指定

13.　TP1/RPC受付の定義

13.1　TP1/RPC受付の定義の流れ

13.2　TP1/RPC受付を追加する

13.3　リポジトリをエクスポートする

13.4　TP1/RPC受付の定義を編集する

13.5　TP1/RPC受付の定義を保存する

14.　TP1/RPC受付の運用

14.1　TP1/RPC受付の運用の流れ

14.2　リポジトリをインポートする

14.3　TP1/RPC受付定義ファイルを取得する

14.4　TP1/RPC受付定義ファイルの定義情報を設定する

14.5　TP1/RPC受付定義ファイルの定義情報を削除する

14.6　TP1/RPC受付を配備する

14.7　TP1/RPC受付のアプリケーション統合属性ファイルを取得する

14.8　TP1/RPC受付のアプリケーション統合属性ファイルの定義情報を設定する

14.9　TP1/RPC受付を開始する

14.10　TP1/RPC受付の情報を確認する

14.11　TP1/RPC受付を停止する

14.12　配備済みのTP1/RPC受付を削除する

14.13　TP1/RPC受付を更新する

15.　TP1/RPC受付のチューニング

15.1　同時実行数の設定方法（TP1/RPC受付）

15.2　タイムアウト時間の設定方法（TP1/RPC受付）

15.3　トランザクションタイムアウト時間の設定方法（TP1/RPC受付）

16.　障害対策（TP1連携システム）

16.1　TP1/RPC受付実行時に発生したエラーの伝わり方

16.1.1　サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）

16.1.2　サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）

16.1.3　HCSCサーバからエラーがリターンした場合（ビジネスプロセスを使用するとき）

16.1.4　TP1インバウンドアダプタでエラーを検知した場合

16.2　障害情報の取得（TP1/RPC受付）

16.2.1　メッセージログ（TP1/RPC受付）

16.2.2　リクエストトレース（TP1/RPC受付）

16.2.3　性能解析トレース（TP1/RPC受付）

16.2.4　ユーザ電文トレース（TP1/RPC受付）

16.2.5　実行履歴（TP1/RPC受付）

16.3　問題発生個所の切り分け方

16.3.1　サービス部品に障害の要因がある場合

16.3.2　ビジネスプロセスに障害の要因がある場合

16.3.3　HCSCサーバでエラーを検知した場合

16.3.4　TP1インバウンドアダプタでエラーを検知した場合

16.4　そのほかの障害要因の特定方法（実行履歴の追跡）

16.4.1　ルートアプリケーション情報

16.4.2　クライアント相関ID

16.4.3　メッセージ共通ID

第3編　FTPと連携したシステムの開発および運用

17.　FTP連携の概要

17.1　FTP連携とは

17.2　FTP連携を利用するためのシステムの構成

17.3　FTP連携でサポートするFTPコマンド

17.4　FTP連携を利用したファイル転送パターン

17.4.1　FTPクライアントからFTPサーバへのファイル転送

17.4.2　FTPサーバからFTPクライアントへのファイル転送

17.4.3　FTPクライアントから別のFTPクライアントへのファイル転送

17.4.4　FTPサーバのファイルリストの取得

17.5　FTP連携システムの開発の流れ

18.　FTPアダプタの定義

18.1　FTPアダプタの概要

18.1.1　FTPアダプタとは

18.1.2　FTPアダプタの処理の流れ

18.2　FTPアダプタの機能

18.2.1　FTPコマンドの実行

18.2.2　ファイル送受信時に使用するフォルダの指定

18.2.3　送受信後のファイルサイズ確認

18.2.4　タイマ管理

18.2.5　FTPSを使用したセキュアな接続

18.3　FTPアダプタの設定

18.3.1　FTPアダプタの設定の流れ

18.3.2　FTPアダプタの定義ファイルを作成する

18.3.3　FTPアダプタを追加する

18.3.4　FTPアダプタのデータ変換（マッピング）を定義する

18.3.5　FTPアダプタを保存する

18.3.6　FTPアダプタを削除する

18.4　FTPアダプタの電文フォーマット

18.4.1　FTPアダプタの要求電文フォーマット

18.4.2　FTPアダプタの応答電文フォーマット

19.　ファイル操作アダプタの定義

19.1　ファイル操作アダプタの概要

19.1.1　ファイル操作アダプタとは

19.1.2　ファイル操作アダプタでサポートするオペレーション

19.2　ファイル変換オペレーションの機能

19.2.1　ファイル変換オペレーションでサポートするファイル形式

19.2.2　ファイル変換オペレーションの処理方式

19.2.3　文字コード変換UOCを使用したファイルの変換

19.2.4　ファイル変換オペレーション使用時の注意事項

19.3　ファイル操作アダプタの設定

19.3.1　ファイル操作アダプタの設定の流れ

19.3.2　ファイル操作アダプタの定義ファイルを作成する

19.3.3　ファイル操作アダプタを追加する

19.3.4　ファイル操作アダプタを保存する

19.3.5　ファイル操作アダプタを削除する

19.4　ファイル操作アダプタの電文フォーマット

19.4.1　ファイル操作アダプタの要求電文フォーマット

19.4.2　ファイル操作アダプタの応答電文フォーマット

20.　FTP受付の定義

20.1　FTP受付の概要

20.1.1　FTP受付とは

20.1.2　FTP受付でサポートするオペレーションとFTPコマンド

20.1.3　FTP受付で使用できる通信モデルおよびビジネスプロセス

20.1.4　FTP受付使用時のトランザクション

20.1.5　リクエストIDの生成

20.1.6　作業フォルダと中間ファイルの作成

20.2　FTP受付の機能

20.2.1　ビジネスプロセスのアクセス制御

20.2.2　転送前／転送後またはリスト前／リスト後に実行するFTPコマンドの管理

20.2.3　リストコマンドオプションの設定によるLIST／NLSTコマンドの実行

20.2.4　タイムアウトの監視

20.3　FTPインバウンドアダプタとは

20.3.1　送受信後のファイルサイズ確認

20.3.2　タイムアウトの監視

20.3.3　セキュアプロトコルによる暗号化・認証

20.4　FTP受付の設定

20.4.1　FTP受付の設定の流れ

20.4.2　FTP受付の定義ファイルを作成する

20.4.3　FTP受付を追加する

20.4.4　FTP受付のデータ変換（マッピング）を定義する

20.4.5　FTP受付を保存する

20.4.6　FTP受付を削除する

20.5　FTP受付の電文フォーマット

20.5.1　FTP受付の要求電文フォーマット

20.5.2　FTP受付の応答電文フォーマット

21.　FTP連携システムの構築・運用

21.1　FTP連携システムのセットアップとアンセットアップ

21.1.1　FTP連携システムのセットアップの流れ

21.1.2　共通フォルダおよび作業フォルダを設定する

21.1.3　FTPインバウンドアダプタをセットアップする

21.1.4　受付およびアダプタの定義ファイルを配置する

21.1.5　リポジトリをインポートする

21.1.6　FTP受付定義ファイルを取得する

21.1.7　FTP受付定義ファイルの定義情報を設定する

21.1.8　HCSCコンポーネントを配備する

21.1.9　FTP受付のアプリケーション統合属性ファイルを取得する

21.1.10　FTP受付のアプリケーション統合属性ファイルの定義情報を設定する

21.1.11　FTPアダプタのアーカイブファイルをJ2EEサーバのクラスパスに設定する

21.1.12　FTP連携システムのアンセットアップの流れ

21.1.13　配備済みのHCSCコンポーネントを削除する

21.1.14　FTP受付定義ファイルの定義情報を削除する

21.1.15　FTPインバウンドアダプタをアンセットアップする

21.2　FTP連携システムの運用

21.2.1　FTP連携システムの運用の流れ

21.2.2　HCSCサーバを起動する

21.2.3　FTPインバウンドアダプタを起動する

21.2.4　HCSCコンポーネントを起動する

21.2.5　標準受付を開始する

21.2.6　FTP受付を開始する

21.2.7　HCSCサーバの情報を確認する

21.2.8　FTPインバウンドアダプタの情報を確認する

21.2.9　HCSCコンポーネントの情報を確認する

21.2.10　HCSCサーバの定義情報を変更する

21.2.11　FTPインバウンドアダプタの定義情報を変更する

21.2.12　FTPインバウンドアダプタのユーザ情報を確認・変更する

21.2.13　FTPアダプタの定義情報を変更する

21.2.14　FTPアダプタのユーザ情報を確認および変更する

21.2.15　ファイル操作アダプタの定義情報を変更する

21.2.16　FTP受付の定義情報を変更する

21.2.17　リポジトリを更新する

21.2.18　転送履歴を取得する

21.2.19　作業フォルダを参照する

21.2.20　作業フォルダを削除する

21.2.21　共通フォルダの情報を参照する

21.2.22　共通フォルダ内のファイルを削除する

21.2.23　FTP受付を停止する

21.2.24　標準受付を停止する

21.2.25　HCSCコンポーネントを停止する

21.2.26　FTPインバウンドアダプタを停止する

21.2.27　HCSCサーバを停止する

22.　障害対策（FTP連携）

22.1　障害情報の取得（FTPインバウンドアダプタ）

22.1.1　メッセージログ（FTPインバウンドアダプタ）

22.1.2　保守用ログ（FTPインバウンドアダプタ）

22.1.3　FTPプロトコルトレース（FTPインバウンドアダプタ）

22.1.4　転送履歴ログ（FTPインバウンドアダプタ）

22.1.5　リソースアダプタ間共通ログ（FTPインバウンドアダプタ）

22.1.6　運用コマンド実行時の保守用ログ（FTPインバウンドアダプタ）

22.1.7　性能解析トレース（FTPインバウンドアダプタ）

22.2　障害情報の取得（FTPアダプタ）

22.2.1　メッセージログ（FTPアダプタ）

22.2.2　保守用ログ（FTPアダプタ）

22.2.3　性能解析トレース（FTPアダプタ）

22.2.4　FTPプロトコルトレース（FTPアダプタ）

22.2.5　コマンドメッセージログ（FTPアダプタ）

22.3　障害情報の取得（ファイル操作アダプタ）

22.3.1　メッセージログ（ファイル操作アダプタ）

22.3.2　保守用ログ（ファイル操作アダプタ）

22.3.3　性能解析トレース（ファイル操作アダプタ）

22.4　FTP受付実行時に発生したエラーの伝わり方

22.5　障害情報の取得（FTP受付）

22.5.1　性能解析トレース（FTP受付）

23.　旧バージョンからの移行（FTPアダプタ）

23.1　インストール

23.2　定義の移行

23.2.1　移行の流れ

23.2.2　移行手順（開発環境）

付録

付録A　旧バージョンからの移行

付録A.1　移行の対象となるバージョン

付録A.2　旧バージョンからの移行手順

付録A.3　旧バージョンで開発環境と運用環境のリポジトリを共有していた場合の移行手順

付録B　評価版からの移行

付録C　上流設計ツールを利用したシステムの開発

付録C.1　上流設計ツールを利用したシステム開発の概要

付録C.2　上流設計ツールを利用したシステム開発の流れ

付録C.3　上流設計ツール利用時の前提事項

付録C.4　上流設計ツール利用時のトラブルシューティング

付録D　上流設計ツールを利用したシステムの開発例

付録D.1　ビジネスプロセスの概要を設計する

付録D.2　サービスの概要インターフェースを検討する

付録D.3　ビジネスプロセスを詳細化する

付録D.4　ビジネスプロセスを出力する

付録D.5　サービスの詳細インターフェースを検討する

付録D.6　サービスアダプタを作成する

付録D.7　ビジネスプロセスをインポートする

付録D.8　ユーザ定義受付を追加する

付録D.9　メッセージのスキーマを登録する

付録D.10　メッセージ変換とシステム例外処理を追加する

付録E　上流設計ツールとの連携で使用するBPELのサポート範囲

付録E.1　BPEL1.1のビジネスプロセス定義をインポートする場合

付録E.2　BPEL2.0のビジネスプロセス定義をインポートする場合

付録F　カスタムアダプタ開発フレームワーク

付録F.1　カスタムアダプタ開発フレームワークのAPI

付録F.2　カスタムアダプタ開発フレームワークの定義ファイル

付録F.3　カスタムアダプタ開発フレームワークのサンプルプログラム

付録F.4　カスタムアダプタの定義画面

付録F.5　カスタムアダプタを使用する際の環境設定

付録F.6　トラブルシューティング

付録G　カスタム受付

付録G.1　カスタム受付の概要

付録G.2　カスタム受付の開発

付録G.3　カスタム受付フレームワークのAPI

付録G.4　カスタム受付の定義

付録G.5　カスタム受付の運用

付録G.6　カスタム受付のチューニング

付録G.7　カスタム受付でのエラーの伝わり方

付録G.8　障害情報の取得（カスタム受付）

付録H　サービスリクエスタのエミュレーション

付録H.1　サービスリクエスタのエミュレーションの流れ

付録H.2　サービスリクエスタのエミュレーション手順

付録I　文字コード変換UOCを利用した文字コード変換

付録I.1　文字コード変換UOCのjarファイルの開発

付録I.2　文字コード変換UOCを使用するための設定

付録I.3　文字コード変換UOCの実装例

付録J　外部ツール実行機能を利用したコマンドの実行

付録K　DBアダプタで取得したデータのフォーマットの変換例

付録K.1　例題

付録K.2　フォーマットの変換方法

付録L　DBアダプタ定義支援機能を利用したDBアダプタの定義

付録L.1　DBアダプタ定義支援機能の概要

付録L.2　DBアダプタの定義

付録L.3　分散開発時のエクスポート・インポート

付録M　外部バインディングファイルを利用したWSDLのカスタマイズ

付録N　このマニュアルの参考情報

付録N.1　関連マニュアル

付録N.2　このマニュアルでの表記

付録N.3　英略語

付録N.4　KB（キロバイト）などの単位表記について

付録O　用語解説

索引

[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.

前書き

■ 対象製品

●適用OS：Windows Server 2003，Windows Server 2003 R2，Windows XP，Windows Vista，Windows 7 x86，Windows 7 x64※¹

P-2443-7T84　 uCosminexus Service Architect　 08-70

●適用OS：Windows Server 2003，Windows Server 2003 R2，Windows Server 2003（x64）※¹，Windows Server 2003 R2（x64）※¹，Windows Server 2008 x86，Windows Server 2008 x64※¹，Windows Server 2008 R2

P-2443-7S84　 uCosminexus Service Platform　 08-70

●適用OS：Windows Server 2003（x64），Windows Server 2003 R2（x64），Windows Server 2008 x64，Windows Server 2008 R2

P-2943-7S84　 uCosminexus Service Platform　 08-70※2

●適用OS：HP-UX 11i V2（IPF），HP-UX 11i V3（IPF）

P-1J43-7S81　 uCosminexus Service Platform　 08-70※2

●適用OS：AIX V7.1，AIX V6.1，AIX 5L V5.3

P-1M43-7S81　 uCosminexus Service Platform　 08-70※2

●適用OS：Red Hat Enterprise Linux AS 4（x86），Red Hat Enterprise Linux ES 4（x86），Red Hat Enterprise Linux AS 4（AMD64 & Intel EM64T），Red Hat Enterprise Linux ES 4（AMD64 & Intel EM64T），Red Hat Enterprise Linux 5 Advanced Platform（x86），Red Hat Enterprise Linux 5（x86），Red Hat Enterprise Linux 5 Advanced Platform（AMD/Intel 64），Red Hat Enterprise Linux 5（AMD/Intel 64），Red Hat Enterprise Linux Server 6（32-bit x86），Red Hat Enterprise Linux Server 6（64-bit x86_64）

P-9S43-7S81　 uCosminexus Service Platform　 08-70※2

●適用OS：Red Hat Enterprise Linux AS 4（IPF），Red Hat Enterprise Linux 5 Advanced Platform（Intel Itanium），Red Hat Enterprise Linux 5（Intel Itanium）

P-9V43-7S81　 uCosminexus Service Platform　 08-70※2

●適用OS：Windows Server 2003，Windows Server 2003 R2，Windows XP，Windows Vista，Windows 7 x86，Windows 7 x64※¹

P-2443-CL14　 uCosminexus Service Adapter Architect for FTP　 01-10

●適用OS：Windows Server 2003，Windows Server 2003（x64）※¹，Windows Server 2003 R2，Windows Server 2003 R2（x64）※¹，Windows Server 2008 x86，Windows Server 2008 x64※¹，Windows Server 2008 R2，HP-UX 11i V2（IPF），HP-UX 11i V3（IPF），AIX V7.1，AIX V6.1，AIX 5L V5.3，Red Hat Enterprise Linux AS 4（x86），Red Hat Enterprise Linux ES 4（x86），Red Hat Enterprise Linux AS 4（AMD64 & Intel EM64T），Red Hat Enterprise Linux ES 4（AMD64 & Intel EM64T），Red Hat Enterprise Linux 5 Advanced Platform（x86），Red Hat Enterprise Linux 5（x86），Red Hat Enterprise Linux 5 Advanced Platform（AMD/Intel 64），Red Hat Enterprise Linux 5（AMD/Intel 64），Red Hat Enterprise Linux Server 6（32-bit x86），Red Hat Enterprise Linux Server 6（64-bit x86_64）

P-2443-CK14　 uCosminexus Service Adapter for FTP　 01-10

注※1　WOW64（Windows On Windows 64）環境だけで使用できます。
注※2　製品のサポート時期をご確認ください。
これらのプログラムプロダクトのほかにもこのマニュアルをご利用になれる場合があります。詳細は「リリースノート」でご確認ください。
本製品では日立トレース共通ライブラリをインストールします。

■ 輸出時の注意

本製品を輸出される場合には，外国為替および外国貿易法ならびに米国の輸出管理関連法規などの規制をご確認の上，必要な手続きをお取りください。
なお，ご不明な場合は，弊社担当営業にお問い合わせください。

■ 商標類

AIXは，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
AIX 5Lは，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
AMDは，Advanced Micro Devices, Inc.の商標です。
Borlandのブランド名および製品名はすべて，米国Borland Software Corporationの米国およびその他の国における商標または登録商標です。
HP-UXは，Hewlett-Packard Companyのオペレーティングシステムの名称です。
Internet Explorerは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Itaniumは，アメリカ合衆国およびその他の国におけるIntel Corporationの商標です。
iWayおよびiWay Softwareは，Information Builders, Inc.の米国およびその他の国における登録商標です。
J2EEは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
Javaは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
JDBCは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
JDKは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
Linuxは，Linus Torvalds氏の日本およびその他の国における登録商標または商標です。
Microsoftは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
MyEclipseは，米国Genuitec社の商品名称です。
OMG，CORBA，IIOP，UML，Unified Modeling Language，MDA，Model Driven Architectureは，Object Management Group, Inc.の米国及びその他の国における登録商標または商標です。
ORACLEは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
Oracle及びOracle 10gは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
Oracle及びOracle9iは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
Oracle及びOracle Database 11gは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
Process Modelerは，スイスitp-commerce Ltd.の商品名称です。
Red Hatは，米国およびその他の国でRed Hat, Inc. の登録商標もしくは商標です。
SOAP（Simple Object Access Protocol）は，分散ネットワーク環境においてXMLベースの情報を交換するための通信プロトコルの名称です。
UNIXは，The Open Groupの米国ならびに他の国における登録商標です。
Visioは，米国およびその他の国における米国Microsoft Corporationの登録商標です。
W3Cは，World Wide Web Consortiumの商標（多数の国において登録された）です。
WebSphereは，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
Windowsは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Vistaは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Eclipseは，開発ツールプロバイダのオープンコミュニティであるEclipse Foundation, Inc.により構築された開発ツール統合のためのオープンプラットフォームです。
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).

■ マイクロソフト製品のスクリーンショットの使用について

Microsoft Corporationのガイドラインに従って画面写真を使用しています。

■ マイクロソフト製品の表記について

このマニュアルでは，マイクロソフト製品の名称を次のように表記しています。

表記 | 製品名
Internet Explorer 6 | Microsoft(R) Internet Explorer 6
Internet Explorer 7 | Windows(R) Internet Explorer(R) 7
Internet Explorer 8 | Windows(R) Internet Explorer(R) 8
Internet Explorer 9 | Windows(R) Internet Explorer(R) 9
Microsoft Cluster Service | Microsoft(R) Cluster Service
Windows | Windows 7 | Windows 7 x86 | Microsoft(R) Windows(R) 7 Enterprise(32ビット版)
Microsoft(R) Windows(R) 7 Professional(32ビット版)
Microsoft(R) Windows(R) 7 Ultimate(32ビット版)
Windows 7 x64 | Microsoft(R) Windows(R) 7 Enterprise(64ビット版)
Microsoft(R) Windows(R) 7 Professional(64ビット版)
Microsoft(R) Windows(R) 7 Ultimate(64ビット版)
Windows Server 2003 | Windows Server 2003 Enterprise Edition | Microsoft(R) Windows Server(R) 2003, Enterprise Edition Operating System（x86）
Windows Server 2003 Standard Edition | Microsoft(R) Windows Server(R) 2003, Standard Edition Operating System（x86）
Windows Server 2003 R2 | Windows Server 2003 R2 Enterprise Edition | Microsoft(R) Windows Server(R) 2003 R2, Enterprise Edition Operating System（x86）
Windows Server 2003 R2 Standard Edition | Microsoft(R) Windows Server(R) 2003 R2, Standard Edition Operating System（x86）
Windows Server 2003（x64） | Windows Server 2003 Enterprise x64 Edition | Microsoft(R) Windows Server(R) 2003, Enterprise x64 Edition Operating System
Windows Server 2003 Standard x64 Edition | Microsoft(R) Windows Server(R) 2003, Standard x64 Edition Operating System
Windows Server 2003 R2（x64） | Windows Server 2003 R2 Enterprise x64 Edition | Microsoft(R) Windows Server(R) 2003 R2, Enterprise x64 Edition Operating System
Windows Server 2003 R2 Standard x64 Edition | Microsoft(R) Windows Server(R) 2003 R2, Standard x64 Edition Operating System
Windows Server 2008 x86 | Microsoft(R) Windows Server(R) 2008 Enterprise 32-bit
Microsoft(R) Windows Server(R) 2008 Standard 32-bit
Windows Server 2008 x64 | Microsoft(R) Windows Server(R) 2008 Enterprise x64 Edition
Microsoft(R) Windows Server(R) 2008 Standard x64 Edition
Windows Server 2008 R2 | Microsoft(R) Windows Server(R) 2008 R2 Enterprise
Microsoft(R) Windows Server(R) 2008 R2 Standard
Windows Vista | Windows Vista Business | Microsoft(R) Windows Vista(R) Business
Windows Vista Enterprise | Microsoft(R) Windows Vista(R) Enterprise
Windows Vista Ultimate | Microsoft(R) Windows Vista(R) Ultimate
Windows XP | Microsoft(R) Windows(R) XP Professional Operating System

■ 発行

2011年 8月 3020-3-U52-80

■ 著作権

All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.

変更内容

変更内容（3020-3-U52-80）uCosminexus Service Architect 08-70，uCosminexus Service Platform 08-70，uCosminexus Service Adapter Architect for FTP 01-10，uCosminexus Service Adapter for FTP 01-10

追加・変更内容
変更個所

Cosminexus サービスプラットフォームを構成するソフトウェア製品ごとの前提OSに，次のOSを追加した。

AIX V7.1

Red Hat Enterprise Linux Server 6（32-bit x86）

Red Hat Enterprise Linux Server 6（64-bit x86_64）

－

Eclipse Classic 3.6.1に対応したことに伴い，最新の画面図に差し替えた。
2.4.2(1)(c)，3.1.1，3.1.2(3)，3.1.2(4)，3.2.1(1)，3.2.3(1)(a)，3.2.3(2)(a)，3.3.3，4.4.4，7.6.4，7.6.6，7.6.7，7.7，7.8.6(3)，7.9.1，8.4.1，9.3.2，9.5.2(2)，9.6.2(2)，19.2.4，20.4.3，付録D.6，付録D.7，付録D.8，付録D.9，付録F.4，付録G.4(1)，付録H.2(3)，付録K.2

<soap:fault>要素が参照する<wsdl:part>要素の注意事項を削除した。
2.6.1(3)(i)

利用できるWebブラウザにInternet Explorer 9を追加した。
3.3.2(1)

単純内容要素ダイアログの項目に設定できる内容を追加したことに伴い，説明を追加した。
4.4.1(1)(d)，4.4.1(1)(e)，4.4.6(1)，4.5.2(3)

OutOfMemoryErrorが発生したときにシステムダウンを抑止するための注意事項を追加した。
5.3.6(4)(b)，6.6.5(1)，7.9，付録G.2(2)，付録I.1

メッセージ型変数に，non-XML形式およびany形式を追加したことに伴い，メッセージ型変数の説明を変更した。
5.3.7(2)，5.3.7(3)，6.4.3(1)，6.5.1(2)，6.5.2(4)(a)，6.6.2(1)，6.6.3，6.6.4，6.6.5(2)，6.6.5(3)，6.6.6(1)，6.6.7，6.6.9，6.6.18(1)(a)，6.6.18(1)(b)，6.6.18(1)(c)，11.5.3

検証アクティビティ（validate属性）の追加に伴い，説明を追加した。
6.4.2(5)，6.5.1(3)，6.5.1(6)(a)，6.6，6.6.11，6.9.1(1)，11.5.1(1)

次の拡張変数の説明を追加した。

getMessageInitialize

getHexVariableData

getHexString

6.6.18(1)(a)，6.6.18(1)(b)，6.6.18(1)(c)，6.6.18(3)

ビジネスプロセスおよびアクティビティの定義情報を変更する場合の注意を追加した。
6.8.1，6.8.2

電文のフォーマット定義ファイルに任意形式（any形式）を設定できるようにしたことに伴い，注意事項を追加した。
7.2(5)

マッピング線とファンクションを強調表示する方法を追加した。
7.4.7

データ変換定義画面で，くり返しに依存しない要素をくり返しに依存する要素に連動させて変換する手順を追加した。
7.6.7

マッピング定義のコピー方法として，構造一致複製マッピングおよび要素名一致複製マッピングの説明を追加した。
7.8，7.8.4，7.8.5

WSDLの作成例として，サービスアダプタの接続先情報を動的に変更する例を追加した。それに伴い，既存のWSDLの作成例をフォルトが発生した場合にフォルト電文を返す例に変更した。
8.3.1，8.3.2

FTP連携でサポートするFTPコマンドの一覧表を追加した。
17.3

FTP連携で，LISTコマンドまたはNLSTコマンドを使用してFTPサーバのファイルの一覧情報を取得できるようになったことに伴い，説明を追加した。
17.4，17.4.4，18.1.2，18.2.1，18.2.2，18.2.4(5)，18.3.3，18.4.1(3)，18.4.2(3)，18.4.2(4)，20.1.1，20.1.2，20.1.3，20.1.6，20.2.2，20.2.3，20.3.2，20.3.2(1)(d)，20.4.2(1)，20.4.2(2)，20.4.2(2)(d)，20.4.3，20.5.1(3)，20.5.2(3)，21.1.4，21.2.16，21.2.16(2)(c)，22.1.7(2)，22.2.3(1)(b)，22.2.3(2)，22.4，22.5.1(2)

FTP連携でFTPSコマンドを使用できるようになったことに伴い，説明を追加した。
18.2.1，18.2.5，18.4.1，20.3，20.3.3，21.1.3(3)(b)

FTPアダプタで使用するユーザ管理コマンドのメッセージログの出力レベルや出力先などの設定に関する説明を追加した。
18.3.2(1)，18.3.2(2)(a)，22.2，22.2.5

FTPアダプタの接続先のFTPサーバをホスト名で指定できるようになったことに伴い，説明を変更した。
18.4.1，18.4.2(4)

FTP連携でやり取りするパス名やファイル名の文字セットにMS932を指定できるようになったことに伴い，説明を変更した。
18.4.1，21.1.3(3)(b)

ファイル操作アダプタで，入力ファイル用と出力ファイル用の文字コード変換UOCを指定できるようになったことに伴い，説明を追加した。
19.2.3，19.3.3(1)

FTP受付にタイムアウト値を設定する場合の説明を追加した。
20.1.4，20.2.4，21.1.10

FTPインバウンドアダプタのアンセットアップ時に設定を解除する手順を追加した。
21.1.15，21.1.15(3)

FTPインバウンドアダプタで使用する運用コマンドのログの出力先ディレクトリを設定する方法を追加した。
22.1.6

旧バージョンのFTPアダプタの移行手順を追加した。
23章

BPEL2.0のBPELファイルに定義されている基本アクティビティおよび構造アクティビティに関連する要素に，target要素およびsource要素を追加した。
付録E.2

any型変数の追加に伴い，説明を追加した。
付録F.4(1)，付録F.4(1)(c)，付録F.4(1)(d)，付録G.8(5)(b)

電文の形式が任意形式のカスタムアダプタを作成した場合の説明を追加した。
付録F.1(3)

DBアダプタ定義支援機能を利用してDBアダプタを定義する手順を追加した。
付録L

外部バインディングファイルを利用したWSDLのカスタマイズ方法を追加した。
付録M

次の用語解説を追加した。

CA

SSL

TLS

キーストア

クライアント認証

公開鍵

サーバ認証

証明書

トラストストア

秘密鍵

付録O

単なる誤字・脱字などはお断りなく訂正しました。

はじめに

このマニュアルは，Cosminexusが提供する機能を利用して，SOAに対応したサービス統合環境（サービスプラットフォーム）を開発する方法について説明しています。

Cosminexus サービスプラットフォームでは，次に示すプログラムプロダクトを使用してシステムを開発します。

uCosminexus Service Architect

uCosminexus Service Platform

uCosminexus Service Adapter Architect for FTP

uCosminexus Service Adapter for FTP

また，オペレーティングシステム（OS）の種類によって，機能が異なる場合があります。OSごとの違いがある場合の表記方法については，「適用OSの違いによる機能相違点の表記」を参照してください。

対象読者

Cosminexus サービスプラットフォームを利用して，SOAに対応したシステムを開発する方を対象としています。

対象読者の前提知識として必要な知識を次に示します。

SOAに関する基本的な知識

J2EEに関する基本的な知識

リレーショナルデータベースおよびデータベース操作言語（SQL）に関する基本的な知識

XMLに関する基本的な知識

Javaによるプログラム開発に関する基本的な知識

なお，このマニュアルの前提である，マニュアル「Cosminexus サービスプラットフォーム 概説」を必ずお読みください。

適用OSの違いによる機能相違点の表記

このマニュアルは，適用OSがWindows，AIX，HP-UXおよびLinuxの製品に対応するため，OSの種類によって，機能が異なる場合があります。OSごとの違いがある場合は，次に示す表記を使用して，それぞれの説明にOS名を明記しています。

表記 | 意味
Windowsの場合 | Windowsに該当する表記です。
AIXの場合 | AIXに該当する表記です。
HP-UXの場合 | HP-UXに該当する表記です。
Linuxの場合 | Linuxに該当する表記です。
UNIXの場合 | UNIX（AIX，HP-UXおよびLinux）に該当する表記です。

パスの表記について

このマニュアルでは，原則としてWindowsのパスの区切り（「¥」）を使用しています。UNIXの場合は，「¥」を「/」に置き換えてお読みください。

このマニュアルで使用している記号

注意

間違いやすい点，および間違うとトラブルが発生するような項目について説明しています。

ポイント

その説明の要点について説明しています。

参考

補足的な情報を説明しています。

1.　SOAに基づいたシステム開発の概要

この章では，SOAに基づいたシステム開発の概要について説明します。

＜この章の構成＞

1.1　開発から実運用までの流れ

1.2　システム全体と開発環境の関係

1.3　標準プロトコル以外のシステムとの連携

1.1　開発から実運用までの流れ

Cosminexus サービスプラットフォームを利用したシステムの開発から実運用までの流れを次の図に示します。

図1-1　開発から実運用までの流れ

注※

これらの作業を開発環境で一括して実行することもできます。ただし，一括実行は，システム開発時，または単体テストから結合テスト時を対象としています。詳細については，「9.5　HCSCコンポーネントをHCSCサーバに配備して開始する処理の一括実行」を参照してください。

このマニュアルでは，図中の「開発環境」で実施する作業の手順について説明しています。運用環境および実行環境で実施する作業については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」を参照してください。

図中の各作業の概要を次に説明します。

＜この節の構成＞

(1)　サービス部品の作成

(2)　uCosminexus Service Architectのインストール

(3)　開発環境の構築

(4)　SOAPモードの設定

(5)　プロジェクトの作成

(6)　リポジトリのインポート

(7)　HCSCコンポーネントの作成

(8)　パッケージング

(9)　配備定義

(10)　リポジトリのエクスポート

(11)　サービスリクエスタの作成

(1)　サービス部品の作成

Cosminexus サービスプラットフォームで利用するサービス部品を作成します。サービス部品にはインターフェース情報が定義されている必要があります。利用できるサービス部品の種類などについては，「2.6　利用できるサービス部品の種類と適用範囲」を参照してください。

(2)　uCosminexus Service Architectのインストール

開発環境として利用するマシンにuCosminexus Service Architectをインストールします。

インストールの詳細については，「2.1.2　インストール」を参照してください。

(3)　開発環境の構築

開発環境の構築では，Eclipseのアーカイブファイルをダウンロードし，MyEclipse for Cosminexusをセットアップします。

詳細については，「2.1　開発環境を使用するためのセットアップ」の手順2および手順3を参照してください。

(4)　SOAPモードの設定

システムで使用するSOAPモードを設定します。SOAPモードには，SOAP1.1モードおよびSOAP1.1/1.2併用モードがあります。

SOAPモードの概要および設定方法については，「2.2.2　使用するSOAPモード」を参照してください。

(5)　プロジェクトの作成

HCSCTEを組み込んだEclipseで，HCSCTEのプロジェクトを作成します。HCSCコンポーネントを開発する前に，プロジェクトを作成して，プロパティを設定します。

プロジェクトの作成の詳細については，「3.1.1　プロジェクトを作成する」を，プロパティの設定の詳細については，「3.1.2　プロパティを設定する」を参照してください。

(6)　リポジトリのインポート

運用環境で簡易セットアップをして設定したリポジトリを，開発環境にインポートします。

リポジトリのインポート方法の詳細については，「3.2.3　リポジトリをインポートする」を参照してください。

(7)　HCSCコンポーネントの作成

事前に作成したサービス部品を呼び出すアダプタ，複数のサービス部品を呼び出すビジネスプロセス，サービスリクエスタからの実行要求を受け付けるユーザ定義受付などのHCSCコンポーネントを作成します。

なお，それぞれのHCSCコンポーネントを定義する前に，サービス部品を呼び出す電文の形式である電文フォーマットを作成します。

(a)　電文フォーマットの作成

サービス部品を呼び出す電文の形式（電文フォーマット）を作成します。電文フォーマットは，呼び出すサービス部品の種類および利用する電文の種類で作成方法が異なります。

電文フォーマットの作成については，「4.　電文フォーマットの作成」を参照してください。電文フォーマットを作成するときに使用する画面については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.1　バイナリフォーマット定義画面」を参照してください。電文フォーマットを作成するときに使用するダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3　バイナリフォーマット定義に関連するダイアログ」を参照してください。

なお，DBアダプタ（データベースを操作するためのアダプタ）を利用する場合の電文フォーマットの作成には，コマンドを利用します。コマンドの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csamkxmls（DBアダプタ用のXMLフォーマット定義ファイルの生成）」を参照してください。

(b)　アダプタの定義

サービス部品（データベースの操作を含む）を呼び出すためのアダプタを作成し，詳細を定義します。アダプタには，サービス部品を呼び出すためのサービスアダプタ，データベースを操作するためのDBアダプタがあります。

サービスアダプタ，DBアダプタの定義の詳細については，「5.　アダプタの定義」を参照してください。アダプタを定義するときに使用する画面，ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.2　サービスアダプタ定義画面」を参照してください。

(c)　ビジネスプロセスの定義

ビジネスプロセスを作成し，詳細を定義します。

ビジネスプロセスの定義の詳細については，「6.　ビジネスプロセスの定義」を参照してください。

また，ビジネスプロセスを定義するときに使用する画面，ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.3　ビジネスプロセス定義画面」を参照してください。

(d)　データ変換定義の作成

サービス部品を呼び出す要求電文の電文フォーマットと，呼び出すサービス部品側の電文フォーマットが異なる場合には，データ変換定義を作成します。

データ変換定義の作成の詳細については，「7.　データ変換の定義」を参照してください。

また，データ変換定義を作成するときに使用する画面，ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.5　データ変換定義画面」を参照してください。

(e)　ユーザ定義受付の定義

サービス部品実行要求を受け付け，応答を返すインターフェースとして任意の形式を定義する場合，ユーザ定義受付を定義します。サービスリクエスタとユーザ定義受付の通信プロトコルはWebサービスだけです。また，ユーザ定義受付でリクエストを受け付けることができるHCSCコンポーネントは，ビジネスプロセスだけです。

ユーザ定義受付の定義の詳細については，「8.　ユーザ定義受付の定義」を参照してください。

また，ユーザ定義受付を定義するときに使用する画面，ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.6　ユーザ定義受付定義画面」を参照してください。

(8)　パッケージング

作成したHCSCコンポーネントは，EARファイルにパッケージングして，運用環境から実行環境に配備できる状態にします。

HCSCコンポーネントのパッケージングについては，「9.　HCSCコンポーネントのパッケージングと配備定義」を参照してください。

(9)　配備定義

パッケージングしたHCSCコンポーネントを，運用環境から実行環境にどのように配備するかを定義（配備定義）し，システム構成定義を更新します。

配備定義する方法については，「9.　HCSCコンポーネントのパッケージングと配備定義」を参照してください。

(10)　リポジトリのエクスポート

HCSCコンポーネントの作成，パッケージング，および配備定義をしたリポジトリを，運用環境にエクスポートします。

リポジトリのエクスポート方法の詳細については，「3.2.2　リポジトリをエクスポートする」を参照してください。

(11)　サービスリクエスタの作成

実行環境で業務担当者からのサービス部品の実行要求を受け付け，HCSCコンポーネントに実行要求を送信するためのサービスリクエスタを作成します。

サービスリクエスタの作成の詳細については，「10.　サービスリクエスタの作成」を参照してください。

1.2　システム全体と開発環境の関係

Cosminexus サービスプラットフォームでは，開発環境，運用環境および実行環境が相互に関連してシステム全体を構成します。その中での開発環境の位置づけについて説明します。

＜この節の構成＞

(1)　運用上の位置づけ

(2)　ネットワーク上の位置づけ

(1)　運用上の位置づけ

システム全体の運用の中で，開発環境がどのように位置づけられるかを，次の図に示します。

図1-2　運用上の位置づけ

開発環境では，作成したHCSCコンポーネントや配備定義をリポジトリに格納して，運用環境にデータを受け渡します。開発環境で作成し，リポジトリに格納されたデータは，運用環境から実行環境に配備されます。

なお，配備定義の作成には，あらかじめ運用環境でセットアップしたHCSCサーバの情報などが必要になります。この情報はリポジトリを利用して運用環境から取得する必要があります。リポジトリを利用した運用環境との情報の受け渡しについては，「3.2　リポジトリの管理」を参照してください。

(2)　ネットワーク上の位置づけ

開発環境，運用環境および実行環境は，インターネットやイントラネットなどのネットワークを使って連結してシステムを構成します。

システム全体での開発環境のネットワーク上の位置づけについて次の図に示します。

図1-3　ネットワーク上の位置づけ

1.3　標準プロトコル以外のシステムとの連携

OpenTP1またはFTPを利用したシステムを開発する場合のシステム開発の概要について説明します。

＜この節の構成＞

1.3.1　OpenTP1と連携したシステムの開発

1.3.2　FTPと連携したシステムの開発

1.3.1　OpenTP1と連携したシステムの開発

Cosminexus サービスプラットフォームでは，既存のOpenTP1システム内にあるサービスリクエスタからのリクエストを受け付けたり，OpenTP1システム内のサービス部品を呼び出したりするための機能を提供しています。

OpenTP1と連携したシステムを開発する場合，次に示すHCSCコンポーネントを開発環境で定義して実行環境に配備する必要があります。

TP1/RPC受付

TP1アダプタ

TP1/RPC受付の定義および運用方法については，「第2編　OpenTP1と連携したシステムの開発および運用」を参照してください。

TP1アダプタの定義方法については，マニュアル「Cosminexus サービスプラットフォーム TP1アダプタ ユーザーズガイド」を参照してください。

1.3.2　FTPと連携したシステムの開発

Cosminexus サービスプラットフォームでは，FTPクライアントおよびFTPサーバと接続して，FTPによるファイルの送受信を中継するための機能を提供しています。

FTPと連携したシステムを開発する場合，次に示すHCSCコンポーネントを開発環境で定義して実行環境に配備する必要があります。

FTPアダプタ

FTP受付

ファイル操作アダプタ

各HCSCコンポーネントの作成方法，およびFTPと連携したシステムの運用については，「第3編　FTPと連携したシステムの開発および運用」を参照してください。

2.　システムを開発する前に

この章では，Cosminexus サービスプラットフォームのシステムを開発する前に実施する作業，および知っておく必要のある内容について説明します。

＜この章の構成＞

2.1　開発環境を使用するためのセットアップ

2.2　構成の形態およびSOAPモードの選択

2.3　開発手順

2.4　テスト環境の簡易セットアップ

2.5　HCSC簡易セットアップ機能でセットアップした組み込みデータベースの運用

2.6　利用できるサービス部品の種類と適用範囲

2.1　開発環境を使用するためのセットアップ

Cosminexus サービスプラットフォームの開発環境を使用するためのセットアップ手順を次に示します。

uCosminexus Service Architectをインストールします。
詳細は，「2.1.2　インストール」を参照してください。

Eclipseのアーカイブファイルをダウンロードします。
詳細は，マニュアル「Cosminexus アプリケーションサーバ アプリケーション開発ガイド」の「2.2.2　Eclipseのアーカイブファイルのダウンロード」を参照してください。

MyEclipse for Cosminexusをセットアップします。
詳細は，マニュアル「Cosminexus アプリケーションサーバ アプリケーション開発ガイド」の「2.4　MyEclipseセットアップ機能を使用したセットアップ」を参照してください。
なお，MyEclipseセットアップ機能を使用してセットアップする場合，次の点に注意してください。

MyEclipseセットアップ機能起動時の注意事項

Cosminexus サービスプラットフォームでは，開発環境インスタントセットアップ機能でデバッグ環境を構築しません。そのため，MyEclipseセットアップ機能起動時に［開発環境インスタントセットアップ］ダイアログは表示されません。

動作環境選択時の注意事項

動作環境の選択では，必ず「標準」を選択してください。

必要に応じてテスト環境を構築します。

HCSC簡易セットアップ機能を利用する場合

詳細は，「2.4　テスト環境の簡易セットアップ」を参照してください。

HCSC簡易セットアップ機能を利用しない場合

マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」を参照して，運用・実行環境を構築してください。

また，テスト環境で組み込みデータベースを利用する場合，「2.1.5　組み込みデータベースの構築」を参照してください。

環境設定をします。
詳細は，「2.1.3　環境設定」を参照してください。

XMLデータの電文フォーマットとバイナリデータの電文フォーマットのデータ変換を定義する場合は，uCosminexus 日立コード変換 - Development Kitをセットアップします。
詳細は，「2.1.4　uCosminexus 日立コード変換 - Development Kitのセットアップ」を参照してください。

注意

テスト環境では，HCSCサーバ（J2EEサーバ）に，テストで使用するアプリケーション（サービスリクエスタおよびサービス部品）をデプロイできます。
ただし，次に示す名称は予約されているため，デプロイするアプリケーションの名称として利用できません。
・「CSC」で始まる名称
・ビジネスプロセス，サービスアダプタのサービスID
・ユーザ定義受付の受付ID

テスト環境でビジネスプロセスをデバッグする場合は，必ずHCSC簡易セットアップ機能を利用してください。

＜この節の構成＞

2.1.1　前提条件

2.1.2　インストール

2.1.3　環境設定

2.1.4　uCosminexus 日立コード変換 - Development Kitのセットアップ

2.1.5　組み込みデータベースの構築

2.1.6　アンインストール

2.1.1　前提条件

Cosminexus サービスプラットフォームの開発環境を使用するための前提条件を次に示します。

開発環境を利用するユーザ

開発環境を利用するユーザは，「Administrators」または「Power Users」グループに属している必要があります。

インストールおよびセットアップが必要なソフトウェア

開発環境を使用する前に，次のソフトウェアがインストールおよびセットアップされている必要があります。

MyEclipse for Cosminexus

WSDL4J 1.5.1※
注※　SOAP1.1モードを使用する場合に必要になります。SOAP1.1モードについては，「2.2.2　使用するSOAPモード」を参照してください。

SOAP通信基盤の動作モード

Cosminexusが提供しているSOAP通信基盤を利用する場合，動作モードは標準モードにする必要があります。次のコマンドを実行すると，動作モードを標準モードに設定できます。

<Cosminexusインストールディレクトリ>¥c4web¥bin¥setup_mode std

2.1.2　インストール

uCosminexus Service Architectは，日立総合インストーラからインストールします。日立総合インストーラの指示に従ってインストールしてください。なお，インストール作業はAdministrator権限が設定されたユーザが実施してください。

インストール先を指定する場合，半角英数字で50文字までのパス名を指定してください。

インストール種別を選択する画面では「標準」を選択してください。

uCosminexus Service Architectのインストール終了後，再起動してください。

ポイント

以前のバージョンからバージョンアップする場合，バージョンアップ前の環境で使用していたリポジトリ情報を，バージョンアップ後も使用できる形式に移行できます。

移行の方法については「付録A　旧バージョンからの移行」を参照してください。

2.1.3　環境設定

Eclipseを組み込んだHCSCTEの環境を設定します。環境設定では，次の作業を実施します。

SOAPモードの設定

HCSCTEプロジェクトの作成

プロパティの設定（リポジトリの設定および検証設定）

環境設定の詳細については，「2.2.3　SOAPモードの設定」および「3.　プロジェクトの管理とリポジトリの管理」を参照してください。

参考

電文フォーマットを表示する場合で，電文フォーマット定義ファイルにマルチバイト文字が含まれているときは，次の操作を行って，エンコードを「UTF-8」に変更してください。

［ウィンドウ］－［設定］－［一般］－［ワークスペース］－［テキスト・ファイル・エンコード］を選択します。

「その他（UTF-8）」を設定します。

2.1.4　uCosminexus 日立コード変換 - Development Kitのセットアップ

XMLデータの電文フォーマットとバイナリデータの電文フォーマットのデータ変換を定義する場合，uCosminexus 日立コード変換 - Development Kitをセットアップします。

注意

IBM漢字コードを使用する場合，バージョン03-01以降のuCosminexus 日立コード変換 - Development Kitのセットアップが必要です。

＜この項の構成＞

(1)　インストール

(2)　環境設定

(3)　ユーザマッピングファイル（外字ファイル）の作成と格納

(1)　インストール

uCosminexus 日立コード変換 - Development Kitをインストールします。

インストール方法の詳細は，uCosminexus 日立コード変換 - Development Kitに添付されているドキュメントを参照してください。

(2)　環境設定

環境設定として，次の作業を実施します。

uCosminexus 日立コード変換 - Development Kitのjarファイルのコピー

uCosminexus 日立コード変換 - Development KitのjarファイルをuCosminexus Service Architectのインストールディレクトリにコピーします。コピー先を次に示します。

<Cosminexusのインストールディレクトリ>¥CSCTE¥lib

変換テーブル（ユーザマッピングファイル）の格納パスの追加

Eclipseの初期設定ファイル（eclipse.ini）に次の定義を追加します。

-Dcscte.dt.codetablepath=<変換テーブルの格納パス>

例えば，uCosminexus 日立コード変換 - Development Kitを「C:¥Program Files¥HITACHI¥CodeConvJ」にインストールした場合，次のように定義を追加します。

-Dcscte.dt.codetablepath=C:¥Program Files¥HITACHI¥CodeConvJ¥Table

(3)　ユーザマッピングファイル（外字ファイル）の作成と格納

uCosminexus 日立コード変換 - Development Kitでユーザマッピングファイルを作成し，所定のフォルダに格納します。

ユーザマッピングファイルの作成

ユーザマッピングファイルの作成については，uCosminexus 日立コード変換 - Development Kitに添付されているドキュメントを参照してください。

作成時の注意事項

ユーザマッピングファイルのファイル名は，uCosminexus 日立コード変換 - Development Kitで定義されているデフォルトのファイル名にします。

必ずUnicodeへのマッピングファイルを作成します。例えば，JIS漢字からKEISへのマッピングを定義する場合，「JIS漢字からUnicode」と「UnicodeからKEIS」のユーザマッピングを定義する必要があります。

ユーザマッピングファイルの格納

作成したユーザマッピングファイルは，次のディレクトリに格納します。

開発環境

「2.1.4(2) 環境設定」でEclipseの初期設定ファイル（eclipse.ini）に追加したパス（-Dcscte.dt.codetablepathに指定したパス）に格納します。

実行環境

実行環境でuCosminexus 日立コード変換 - Server Runtime（Windowsの場合），またはuCosminexus 日立コード変換 - Runtime（UNIXの場合）をセットアップするとき，システムプロパティファイル（usrconf.properties）に追加したパスに格納します。

実行環境でのuCosminexus 日立コード変換 - Server Runtime，またはuCosminexus 日立コード変換 - Runtimeのセットアップについては，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「3.1.2　実行環境に必要なソフトウェアの設定」を参照してください。

2.1.5　組み込みデータベースの構築

uCosminexus Service Architectには，開発したHCSCコンポーネントをテストするためのテスト環境として利用できる，組み込みデータベースが含まれています。

開発環境でのテスト用にHCSCサーバを構築する場合，組み込みデータベースを利用すると，別途DBサーバを用意・構築する必要がありません。

注意

HCSC簡易セットアップ機能を利用してテスト環境をセットアップする場合，以降で説明する組み込みデータベースの設定を行う必要はありません。
HCSC簡易セットアップ機能の詳細については，「2.4　テスト環境の簡易セットアップ」を参照してください。

テスト用のHCSCサーバと組み込みデータベースは，開発環境の同じマシン上に構築してください。ほかのマシンにDBサーバを構築して組み込みデータベースを利用することはできません。
また，組み込みデータベースはHiRDBを基にしています。ほかのデータベース（Oracle）を使用する場合，ほかのマシンにDBサーバを構築してください。

組み込みデータベースを利用する場合に必要な設定について，以降で説明します。

＜この項の構成＞

(1)　DBサーバ側の設定

(2)　DBクライアント（HCSCサーバ）側の設定

(1)　DBサーバ側の設定

組み込みデータベースは，uCosminexus Service Architectをインストールした段階でインストールされます。そのため，組み込みデータベースそのもののインストールは必要ありません。

組み込みデータベースを利用するには，次の作業が必要です。

HiRDB SQL Executerのインストールおよび環境変数の設定

DBサーバの構築および環境設定

ユーザの設定およびスキーマの定義

RDエリアの準備

組み込みデータベースの再起動

各作業について，次に説明します。

(a)　HiRDB SQL Executerのインストールおよび環境変数の設定

組み込みデータベースに含まれるHiRDB SQL Executerをインストールします。

組み込みデータベースを構築する場合のHiRDB SQL Executerのインストール方法については，マニュアル「Cosminexus アプリケーションサーバ アプリケーション開発ガイド」の「3.2　HiRDB SQL Executerのインストール」を参照してください。

インストールが完了したら，次に示す環境変数PATHを追加・設定します。

<Cosminexusのインストールディレクトリ>¥DB¥BIN;
<Cosminexusのインストールディレクトリ>¥DB¥CLIENT¥UTL;

(b)　DBサーバの構築および環境設定

組み込みデータベースのDBサーバの構築，環境設定には，Eclipseを利用します。

DBサーバの構築および環境設定の方法については，マニュアル「Cosminexus アプリケーションサーバ アプリケーション開発ガイド」の「付録B.3　組み込みデータベースの構築」を参照してください。

なお，DBサーバ構築の設定画面では，構築するデータベースのサイズとして［Large（2GB）］を選択します。

(c)　ユーザの設定およびスキーマの定義

データベースを利用するユーザとスキーマを定義します。

組み込みデータベースのユーザの設定およびスキーマの定義の方法については，マニュアル「Cosminexus アプリケーションサーバ アプリケーション開発ガイド」の「付録B.3　組み込みデータベースの構築」を参照してください。

(d)　RDエリアの準備

HCSC Messagingの管理情報テーブルを格納するために，必要に応じてRDエリアを作成，追加または拡張します。また，RDエリアを作成，追加または拡張した場合に，正しく処理されたかどうか確認します。

RDエリアを作成，追加または拡張する手順について，次に示します。

コマンドプロンプトを起動し，<Cosminexusインストールディレクトリ>¥DB¥bin¥pdntcmd.batを実行します。
組み込みデータベースを操作する環境変数が設定されます。

作業に応じて，コマンドプロンプトで次のコマンドを実行します。

pdfmkfsコマンド（RDエリアを作成する場合）

pdmodコマンド（RDエリアを追加，拡張する場合）

pddblsコマンド（RDエリアの状態を表示する場合）

上記のコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

RDエリアを追加・拡張した場合，必要に応じて組み込みデータベースのDB定義ファイル（HiRDBシステム定義ファイル）のpdbufferオペランドを追加して，組み込みデータベースのグローバルバッファを拡張します。
組み込みデータベースのDB定義ファイルは，DBサーバの構築時に指定したDB定義ファイルディレクトリの配下にあります。

(e)　組み込みデータベースの再起動

組み込みデータベースを停止して，再度起動します。

組み込みデータベースの停止および起動の方法については，マニュアル「Cosminexus アプリケーションサーバ アプリケーション開発ガイド」の「8.2　組み込みデータベースの開始および停止」を参照してください。

(2)　DBクライアント（HCSCサーバ）側の設定

組み込みデータベースを利用する場合，DBクライアント（HCSCサーバ）の設定として，次の作業が必要です。

DBクライアントの環境変数の設定

環境変数グループの設定

組み込みデータベースの同時接続数の設定

Cosminexus RM用のユーザ権限の設定およびRDエリアの準備

各作業について，次に説明します。

(a)　DBクライアントの環境変数の設定

環境変数PDXAMODEおよびPDTXACANUMを設定します。

(b)　環境変数グループの設定

次に示すパスの「クライアント環境変数登録ツール」で環境変数のグループを登録します。

<Cosminexusのインストールディレクトリ>¥DB¥CLIENT¥UTL

クライアント環境変数登録ツールで環境変数グループを登録する方法の詳細については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

なお，登録した環境変数グループ名は，DB ConnectorのプロパティのXA_OPEN文字列で指定します。DB ConnectorのプロパティのXA_OPEN文字列（XAOpenString）については，マニュアル「Cosminexus アプリケーションサーバ アプリケーション設定操作ガイド」の「4.2.2　DB Connectorのプロパティ定義」を参照してください。

(c)　組み込みデータベースの同時接続数の設定

必要に応じて，組み込みデータベースの同時接続数を増やします。組み込みデータベースのDB定義ファイルのオペランドを変更します。DB定義ファイルは，「2.1.5(1)(b) DBサーバの構築および環境設定」の作業を行うときに，DBサーバ構築の設定画面で設定するディレクトリにあります。

DB定義ファイルで変更するオペランドを次に示します。

pd_max_users（最大同時接続数）

pd_max_server_process（最大同時起動サーバプロセス数）

pd_process_count（常駐プロセス数）

あわせて，環境変数PDTXACANUMの値は，pd_max_usersの指定値以上に設定します。

(d)　Cosminexus RM用のユーザ権限の設定およびRDエリアの準備

必要に応じて，Cosminexus RM用のユーザ権限の設定およびRDエリアの準備を行います。

ユーザ権限の設定方法は，「2.1.5(1)(c) ユーザの設定およびスキーマの定義」に示す方法と同じです。

RDエリアの準備の方法は「2.1.5(1)(d) RDエリアの準備」に示す方法と同じです。

2.1.6　アンインストール

uCosminexus Service Architectをアンインストールする方法について説明します。

アンインストール作業はAdministrator権限が設定されたユーザが実施してください。

また，J2EEサーバ，Management Server，PRFなど実行環境の構成要素を停止してからアンインストールしてください。組み込みデータベースを使用している場合は，組み込みデータベースを停止してからアンインストールしてください。

アンインストールの手順について，次に示します。

次のどちらかの操作を実施します。

Windowsの［スタート］メニューから，［Cosminexus］－［uCosminexus Service Architectアンインストール］を選択する

［コントロールパネル］の［プログラムの追加と削除］から，［uCosminexus Service Architect］を選択する

uCosminexus Service Architectのアンインストールを確認するダイアログが表示されます。

［はい］ボタン，または［いいえ］ボタンをクリックします。

［はい］ボタンをクリックした場合

アンインストールが開始され，uCosminexus Service Architectの構成ソフトウェアがすべて削除されます。

［いいえ］ボタンをクリックした場合

アンインストールする構成ソフトウェアを選択するダイアログが表示されます。アンインストールする構成ソフトウェアを選択して，［次へ］ボタンをクリックすると，アンインストールが開始され，選択した構成ソフトウェアが削除されます。

2.2　構成の形態およびSOAPモードの選択

Cosminexus サービスプラットフォームのシステムを開発する前に，システムで利用する機能，およびSOAPモードを明確にする必要があります。

ここでは，システムで利用する機能と，データベース／Cosminexus RMの使用有無について説明します。また，使用するSOAPモードと対応するWebサービスの標準仕様について説明します。

＜この節の構成＞

2.2.1　データベースとCosminexus RMの使用有無

2.2.2　使用するSOAPモード

2.2.3　SOAPモードの設定

2.2.1　データベースとCosminexus RMの使用有無

Cosminexus サービスプラットフォームのどの機能を使用し，どのような運用をしたいかによって，データベースとCosminexus RMの使用有無が異なります。使用する機能ごとに，データベースとCosminexus RMの使用有無を次の表に示します。

表2-1　使用したい機能ごとのデータベースとCosminexus RMの使用有無

使用したい機能 | データベース | Cosminexus RM
同期受付を使用したい | × | ×
非同期受付を使用したい | ○ | ○
同期サービスアダプタを使用したい | × | ×
非同期サービスアダプタを使用したい | ○ | ○
ビジネスプロセスを使用したい | 永続化するビジネスプロセスを使用したい | ○ | ○
永続化しないビジネスプロセスを使用したい※1 | × | ×
プロセスインスタンスの実行履歴を管理したい | ○ | ○
電文の実行履歴を管理したい | ○ | ×
DBアダプタを使用したい | ×※2 | ×

（凡例）

○：必須です。

×：必須ではありません。

注※1

永続化しないビジネスプロセスを使用する場合，開発環境で定義できるプロセスに制限がありますので注意してください。詳細は「6.2.1(3)　ステータスの永続化の設定」を参照してください。

注※2

DBアダプタを使用する場合，HCSCサーバが稼働しているマシン上にデータベースは不要です。しかし，DBアダプタから接続するサービス部品稼働マシンでは，データベースが必要になります。

この表から，データベースとCosminexus RMの使用有無による構成形態は，次の三つのパターンがあることがわかります。

データベースとCosminexus RMの両方を使用する

データベースとCosminexus RMの両方を使用しない

データベースを使用してCosminexus RMを使用しない

本番環境をどのパターンで構築するかによって，テスト環境の設定内容が異なります。テスト環境と本番環境で設定する，データベースとCosminexus RMの使用有無については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「1.3　テスト環境と本番環境との関係」を参照してください。また，テスト環境での設定内容については，「2.4　テスト環境の簡易セットアップ」を参照してください。

2.2.2　使用するSOAPモード

Cosminexus サービスプラットフォームでシステムを開発する前に，使用するSOAPモードを選択します。

ここでは，SOAPモードの種類と各モードのサポート範囲について説明します。

＜この項の構成＞

(1)　SOAPモードの種類

(2)　SOAPモードのサポート範囲

(1)　SOAPモードの種類

SOAPモードの種類と，対応するWebサービス標準仕様および実行環境を示します。

SOAP1.1モード
SOAP1.1に対応したシステムを開発する場合に選択します。SOAP1.1モードはWS-I Basic Profile1.0aに対応しています。
SOAP1.1モードでは，SOAPメッセージの送受信にSOAP通信基盤を使用します。

SOAP1.1/1.2併用モード
SOAP1.1またはSOAP1.2に対応したシステムを開発する場合に選択します。SOAP1.1/1.2併用モードはWS-I Basic Profile1.1に対応しています。
SOAP1.1/1.2併用モードでは，SOAPメッセージの送受信にJAX-WSエンジンを使用します。

(2)　SOAPモードのサポート範囲

サービスアダプタ／受付の機能とSOAPモードの対応を次の表に示します。

表2-2　SOAPモードのサポート範囲（サービスアダプタ／受付の機能）

分類 | 機能名 | SOAPモード
1.1 | 1.1/1.2併用
サービスアダプタ | Webサービスアダプタ | ○ | ○
Session Beanアダプタ | ○ | ×
MDB（WS-R）アダプタ | ○ | ×
MDB（DBキュー）アダプタ | ○ | ○
カスタムアダプタ | ○ | ○
ビジネスプロセス | ○ | ○
受付 | 標準受付（Webサービス（SOAP1.1）） | ○ | ○
標準受付（Webサービス（SOAP1.2）） | × | ○
標準受付（EJB） | ○ | ○
MDB（WS-R）受付 | ○ | ×
MDB（DBキュー）受付 | ○ | ○
ユーザ定義受付 | ○ | ○

（凡例）

○：サポートしています。

×：サポートしていません。

WSDL定義のスタイルとSOAPモードの対応を次の表に示します。

表2-3　SOAPモードのサポート範囲（WSDL定義のスタイル）

SOAPのバージョン | WSDL定義のスタイル | SOAPモード
1.1 | 1.1/1.2併用
SOAP1.1 | rpc/literal | ○ | ×
document/literal | ○ | ○
SOAP1.2 | rpc/literal | × | ×
document/literal | × | ○

（凡例）

○：サポートしています。

×：サポートしていません。

なお，SOAPモードとWebサービスを利用したサービス部品との関係については，「2.6.1　Webサービスを利用したサービス部品の適用範囲」を参照してください。

2.2.3　SOAPモードの設定

SOAPモードは，HCSC簡易セットアップ画面またはcscsoapmodeコマンドで設定できます。

HCSC簡易セットアップ画面では，開発環境と実行環境のSOAPモードを設定できます。HCSC簡易セットアップ画面での設定については，「2.4.2(1)(c)　HCSC簡易セットアップ画面の入力項目」を参照してください。

cscsoapmodeコマンドでは，開発環境のSOAPモードを設定できます。実行環境のSOAPモードを設定する方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「2.2.2　使用するSOAPモード」を参照してください。cscsoapmodeコマンドについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscsoapmode（SOAPモードの設定）」を参照してください。

設定したSOAPモードを確認する方法については，「2.4.5　SOAPモードの確認」を参照してください。

設定したSOAPモードを変更する方法については，「3.1.5　SOAPモードを変更する」を参照してください。

2.3　開発手順

Cosminexus サービスプラットフォームを利用してシステムを開発する手順を次に示します。

図2-1　システムの開発手順

注※1

HCSC簡易セットアップについては，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「1.3　テスト環境と本番環境との関係」を参照してください。リポジトリのエクスポートについては，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「4.2　リポジトリのエクスポート」を参照してください。

注※2

HCSC簡易セットアップ機能を使用してテスト環境を構築します。HCSC簡易セットアップ機能については，「2.4　テスト環境の簡易セットアップ」を参照してください。HCSC簡易セットアップ機能を使用しない場合は，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」を参照して，運用・実行環境を構築してください。

注※3

これらの作業を一括して実行することもできます。ただし，一括実行は，システム開発時，または単体テストから結合テスト時を対象としています。なお，運用環境で実施するHCSCコンポーネントの配備と開始も一緒に実行されます。詳細については，「9.5　HCSCコンポーネントをHCSCサーバに配備して開始する処理の一括実行」を参照してください。

各工程の作業を次に示します。

＜この節の構成＞

(1)　リポジトリのインポート（システム構成定義の取得）

(2)　電文フォーマットの作成

(3)　アダプタの定義

(4)　ビジネスプロセスの定義

(5)　データ変換定義の作成

(6)　リポジトリのエクスポート（マスタ開発環境への統合）

(7)　リポジトリのインポート（マスタ開発環境への統合）

(8)　HCSCコンポーネントの組み立て（パッケージング）

(9)　配備定義

(10)　リポジトリのエクスポート（運用環境へのデータ移行）

(11)　サービスリクエスタの作成

(12)　ビジネスプロセスのデバッグ

(1)　リポジトリのインポート（システム構成定義の取得）

運用環境で作成したHCSCサーバの情報をマスタ開発環境に統合するため，システム構成定義だけをインポートします。リポジトリのインポートについては，「3.2.3　リポジトリをインポートする」を参照してください。

(2)　電文フォーマットの作成

サービスリクエスタ，サービスアダプタ，およびサービス部品の間でやり取りされる電文の形式（電文フォーマット）を定義します。作成する電文フォーマットは，サービス部品の実行に利用する電文でXML形式のデータを扱うか，バイナリ形式（XML形式以外）のデータを扱うかによって異なります。電文フォーマットの作成の詳細については，「4.　電文フォーマットの作成」を参照してください。

(3)　アダプタの定義

アダプタを使用してシステムを開発する場合，アダプタ追加用のウィザードおよび定義済みのアダプタを利用して，アダプタを追加します。追加したアダプタは，アダプタ定義画面で定義します。アダプタの定義の詳細については，「5.　アダプタの定義」を参照してください。

(4)　ビジネスプロセスの定義

ビジネスプロセスを使用してシステムを開発する場合，ビジネスプロセス追加用のウィザードおよび定義済みのビジネスプロセスを利用して，ビジネスプロセスを追加します。追加したビジネスプロセスは，ビジネスプロセス定義画面で定義します。ビジネスプロセスの定義の詳細については，「6.　ビジネスプロセスの定義」を参照してください。

また，ビジネスプロセスの実行要求を標準受付以外で受け付ける場合，ユーザ定義受付を定義する必要があります。ユーザ定義受付の定義の詳細については，「8.　ユーザ定義受付の定義」を参照してください。

(5)　データ変換定義の作成

サービス部品との電文のやり取りでデータ変換が必要な場合は，データ変換を定義します。データ変換の定義の詳細については，「7.　データ変換の定義」を参照してください。

(6)　リポジトリのエクスポート（マスタ開発環境への統合）

複数の開発環境でHCSCコンポーネントを開発（分散開発）する場合，マスタ開発環境以外の環境で開発したHCSCコンポーネントが含まれるリポジトリをエクスポートします。

リポジトリのエクスポートについては，「3.2.2　リポジトリをエクスポートする」を参照してください。

(7)　リポジトリのインポート（マスタ開発環境への統合）

マスタ開発環境以外のマシンで分散開発したHCSCコンポーネントの情報をマスタ開発環境に統合するため，「2.3(6) リポジトリのエクスポート（マスタ開発環境への統合）」でエクスポートしたリポジトリの一部をマスタ開発環境にインポートします。リポジトリのインポートについては，「3.2.3　リポジトリをインポートする」を参照してください。

(8)　HCSCコンポーネントの組み立て（パッケージング）

「2.3(3) アダプタの定義」～「2.3(5) データ変換定義の作成」で定義したHCSCコンポーネントの定義に関連する定義ファイル，および実行環境が提供するファイルをまとめてEARファイルにパッケージングします。パッケージングの方法については，「9.　HCSCコンポーネントのパッケージングと配備定義」を参照してください。

(9)　配備定義

HCSCコンポーネントを配備するクラスタ（または単一のHCSCサーバ）の情報を定義します。配備定義の詳細については，「9.　HCSCコンポーネントのパッケージングと配備定義」を参照してください。

参考

配備する前に，配備するクラスタ（または単一のHCSCサーバ）に設定されている，データベースとCosminexus RMの使用有無を確認する場合の手順を次に示します。

Eclipseのメニューから，［HCSC-Definer］－［システム構成定義一覧］を選択します。
ツリービューのシステム構成定義一覧に，配備するクラスタ（または単一のHCSCサーバ）の一覧が表示されます。

配備するクラスタ（または単一のHCSCサーバ）の一覧から，確認したいクラスタ（または単一のHCSCサーバ）を選択し，ダブルクリックします。
配備するクラスタ（または単一のHCSCサーバ）に設定されている，データベースとCosminexus RMの使用有無の情報が表示されます。

(10)　リポジトリのエクスポート（運用環境へのデータ移行）

マスタ開発環境で，HCSCコンポーネントの配備に必要な定義ファイルを格納したリポジトリをエクスポートします。マスタ開発環境からエクスポートした情報は，運用環境にインポートして利用されます。リポジトリのエクスポートについては，「3.2.2　リポジトリをエクスポートする」を参照してください。

(11)　サービスリクエスタの作成

HCSCコンポーネントにサービス部品の実行を要求する電文を送信するためのサービスリクエスタを作成します。なお，サービスリクエスタの作成は，アダプタの定義やビジネスプロセスの定義と同時に行うこともできます。同時に行う場合，アダプタの定義やビジネスプロセスの定義で設定するインターフェース情報などをあらかじめ確認して，サービスリクエスタでも同じ設定にしてください。HCSCコンポーネントの作成方法については，「10.　サービスリクエスタの作成」を参照してください。

(12)　ビジネスプロセスのデバッグ

定義したビジネスプロセスを運用環境で利用する前に，開発環境でテストおよびデバッグします。ビジネスプロセスをデバッグする方法については，「11.　ビジネスプロセスのデバッグ」を参照してください。

2.4　テスト環境の簡易セットアップ

実行環境に配備して実運用を始める前に，uCosminexus Service Architectで開発したアダプタやビジネスプロセスは，テストやデバッグを実施することを推奨します。そのためには，テストやデバッグを実施するための運用・実行環境（テスト環境）を構築する必要があります。

uCosminexus Service Architectには，テスト環境の構築を支援するHCSC簡易セットアップ機能が備わっています。テストやデバッグを実施するための運用・実行環境には，さまざまな情報を設定する必要があるため，構築には相応の時間が掛かります。HCSC簡易セットアップ機能を利用すると，テスト環境に必要なさまざまな情報を自動的に設定できます。また，HCSC簡易セットアップ機能には，HCSC簡易セットアップ機能を利用してセットアップしたテスト環境を自動的にアンセットアップする機能もあります。

注意

1台のマシンに複数の運用・実行環境（テスト環境）を構築（CSCMNG_HOME環境変数を設定）する場合，HCSC簡易セットアップ機能（csceasysetupコマンド）を使用できません。

この節では，HCSC簡易セットアップ機能の概要と利用方法について説明します。

＜この節の構成＞

2.4.1　HCSC簡易セットアップ機能で構築できる環境

2.4.2　HCSC簡易セットアップ機能の実行

2.4.3　HCSC簡易セットアップ機能でセットアップしたテスト環境の運用

2.4.4　テスト環境のカスタマイズ

2.4.5　SOAPモードの確認

2.4.1　HCSC簡易セットアップ機能で構築できる環境

HCSC簡易セットアップ機能を利用して構築されるテスト環境は，次の図のような構成になります。次の図に示すプロセス以外のものをテスト環境として利用する場合，別途設定が必要になります。

図2-2　HCSC簡易セットアップ機能を利用して構築されるテスト環境の構成

HCSC簡易セットアップ機能を利用すると，図2-2に示すテスト環境の各プロセスに，ユーザID，パスワード，ポート番号，ホスト名などの情報を自動的に設定できます。HCSC簡易セットアップ機能を利用した場合にテスト環境に設定される情報の詳細については，「2.4.3(2) テスト環境の運用に必要な情報」を参照してください。

HCSC簡易セットアップ機能で構築した環境のWebコンテナ単位の同時実行数は10です。そのため，11リクエスト以上を同時に処理する場合，Webコンテナのスレッドが枯渇するおそれがあります。Webコンテナ単位の同時実行数を変更する場合は，simple_model.xmlファイルまたはsimple_model_cjl.xmlファイルのwebserver.connector.inprocess_http.max_execute_threadsプロパティの定義を変更してください。

webserver.connector.inprocess_http.max_execute_threadsプロパティについては，マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.16.2　実行環境での設定（J2EEサーバの設定）」を参照してください。

2.4.2　HCSC簡易セットアップ機能の実行

HCSC簡易セットアップ機能を利用してテスト環境をセットアップ，またはアンセットアップするための前提条件と，テスト環境のセットアップおよびアンセットアップの方法について説明します。

＜この項の構成＞

(1)　テスト環境のセットアップ

(2)　テスト環境のアンセットアップ

(1)　テスト環境のセットアップ

HCSC簡易セットアップ機能を利用してテスト環境をセットアップする場合の前提条件，およびセットアップ方法について説明します。

(a)　前提条件

テスト環境をセットアップするための前提条件を次に示します。

テスト環境の前提ソフトウェア

HCSC簡易セットアップ機能を利用してテスト環境をセットアップするには，次のソフトウェアがインストールされている必要があります。

Cosminexus Component Container※1

Cosminexus XML Processor※1

Cosminexus TPBroker※1

Cosminexus Performance Tracer※1

Cosminexus Reliable Messaging※1

Cosminexus Service Coordinator※1

WSDL4J 1.5.1※2

注※1

これらのソフトウェアは，uCosminexus Service Architectの構成ソフトウェアです。uCosminexus Service Architectをインストールしている環境であれば，改めて上記のソフトウェアをインストールする必要はありません。

上記のソフトウェアを改めてインストールする場合，日立総合インストーラからインストールします。日立総合インストーラの指示に従ってインストールしてください。なお，インストール作業はAdministrator権限が設定されたユーザが実施してください。

注※2

WSDL4J 1.5.1は，これ以外の前提ソフトウェアをインストールしたあとにインストールしてください。WSDL4J 1.5.1は，SOAP1.1モードを使用する場合に必要になります。

HCSC簡易セットアップ機能を利用するときのシステムの状態

HCSC簡易セットアップ機能を利用してテスト環境をセットアップする場合，システムが次の状態である必要があります。

Cosminexusを新規にインストールした直後であること。

Cosminexusに関する設定をしていないこと。

ただし，システム環境変数で，変数名「TZ」の値が有効になっている必要があります。環境変数「TZ」にはタイムゾーンを設定します。タイムゾーンには「JST-9」と指定してください。

なお，セットアップ後にテスト環境をカスタマイズした場合，カスタマイズした情報はアンセットアップ時に削除されます。カスタマイズした情報を削除したくない場合は，カスタマイズ時に追加・変更した定義ファイルのパラメタ情報を記録しておいてください。

データベースとCosminexus RMの両方を使用する場合の前提条件

データベースとCosminexus RMの両方を使用する場合（HCSC簡易セットアップ画面で［標準モデル］を選択する場合），次の条件を満たす必要があります。

HiRDBに関する知識を持っていること。

高負荷テストや性能測定などを実施しないこと。

注

テスト環境をアンセットアップしたあとには，HCSC簡易セットアップ機能を利用してテスト環境を再度セットアップできます。テスト環境のアンセットアップについては「2.4.2(2) テスト環境のアンセットアップ」を参照してください。

(b)　セットアップ方法

HCSC簡易セットアップ機能を利用したテスト環境のセットアップには，HCSC簡易セットアップ画面を利用します。テスト環境のセットアップ方法を次に示します。

コマンドプロンプトで次のコマンドを実行し，HCSC簡易セットアップ画面を表示させます。

<Cosminexusインストールディレクトリ>¥CSC¥bin¥csceasysetup.bat

HCSC簡易セットアップ画面で必要な情報を入力します。
HCSC簡易セットアップ画面で入力する項目については，「2.4.2(1)(c) HCSC簡易セットアップ画面の入力項目」を参照してください。

［セットアップ］ボタンをクリックします。
テスト環境のセットアップが開始されます。セットアップの状況は，HCSC簡易セットアップ画面のコンソールに表示されます。コンソールに「HCSC簡易セットアップ機能のセットアップを終了します」と表示されたら，テスト環境は正常にセットアップされています。

注意

コンソールにエラーが表示され，テスト環境のセットアップが異常終了した場合，再セットアップする必要があります。異常終了したときに，HCSC簡易セットアップ画面の［セットアップ］ボタンが活性か，非活性かによって，再セットアップの手順が異なります。

［セットアップ］ボタンが活性の場合

［セットアップ］ボタンをクリックして，再セットアップできます。

［セットアップ］ボタンが非活性の場合

［アンセットアップ］ボタンをクリックして，一度アンセットアップします。そのあとで，再度セットアップしてください。

(c)　HCSC簡易セットアップ画面の入力項目

HCSC簡易セットアップ画面は，［メイン］タブと［サーバ名称］タブで分けられます。［サーバ名称］タブでは，サーバ名やクラスタ名などの情報をセットアップ時に変更できます。

HCSC簡易セットアップ画面の入力項目について，HCSC簡易セットアップ機能で構築される環境内の各プロセスとの関連を用いて説明します。

HCSC簡易セットアップ画面を次の図に示します。

図2-3　HCSC簡易セットアップ画面（［メイン］タブ）

図2-4　HCSC簡易セットアップ画面（［サーバ名称］タブ）

HCSC簡易セットアップ画面で入力する項目は，次の図のように，構築される環境の各プロセスに設定されます。設定される値の関連を次の図に示します。

図2-5　HCSC簡易セットアップ画面の入力項目の関連

［標準モデル］または［ESBモデル］のどちらを選択したかによって，設定する項目が異なります。図2-5内の（n）で示されている設定値（HCSC簡易セットアップ画面での入力項目）の詳細を次の表に示します。

表2-4　HCSC簡易セットアップ画面で入力する項目

入力項目
説明
初期値※2

タブ
分類
項番
HCSC簡易セットアップ画面の項目名※1

メイン
モデル
－
標準モデル
データベースとCosminexus RMの両方を使用する場合に選択します。
選択

－
ESBモデル
データベースとCosminexus RMの両方を使用しない場合に選択します。
－

組み込みデータベース
(1)
データ格納先
RDエリアを作成するディレクトリおよびシステムファイルを作成するディレクトリを指定します。660MB以上使用できるディレクトリを指定します。
存在しないディレクトリを指定した場合，指定したディレクトリが新規作成されます。
［標準モデル］を選択した場合だけ指定します。
<Cosminexusインストールディレクトリ>¥CSC¥DB¥area

(2)
DB接続ポート番号
Management ServerまたはHCSCサーバから組み込みデータベースにアクセスする場合に使用するポート番号を指定します。5001～65535の整数で指定します。
［標準モデル］を選択した場合だけ指定します。
22200

Management Server
(3)
HCSCサーバ運用ポート番号
HCSC-ManagerからManagement Serverにアクセスする場合に使用するポート番号を指定します。1～65535の整数で指定します。
28099

(4)
論理サーバ運用ポート番号
Smart Composerまたは運用管理ポータル画面からManagement Serverにアクセスする場合に使用するポート番号を指定します。1～65535の整数で指定します。
28080

(5)
終了要求受信ポート番号（内部管理用）
Management Serverが内部の管理用に利用するポート番号を指定します。1～65535の整数で指定します。
28005

(6)
内部通信ポート番号（内部管理用）
Management Serverが内部の管理用に利用するポート番号を指定します。1～65535の整数で指定します。
28009

運用管理エージェント
(7)
エージェント接続ポート番号（内部管理用）
Management Serverから運用管理エージェントにアクセスする場合に使用する内部管理用のポート番号を指定します。1～65535の整数で指定します。
20295

HCSCサーバ
－
SOAP1.1モード
SOAP1.1モードを使用する場合に選択します。
選択

－
SOAP1.1/1.2併用モード
SOAP1.1/1.2併用モードを使用する場合に選択します。
－

(8)
Webサービス/MDB（WS-R）受付ポート番号
サービスリクエスタから標準受付（WebサービスまたはMDB（WS-R）），またはユーザ定義受付にアクセスする場合に使用するポート番号を指定します。1～65535の整数で指定します。
80

(9)
SessionBean受付ポート番号
Management ServerからHCSCサーバに，またはサービスリクエスタから標準受付（SessionBean）にアクセスする場合に使用するポート番号を指定します。1～65535の整数で指定します。
900

(10)
MDB（DBキュー）受付ポート番号
サービスリクエスタから標準受付（MDB（DBキュー））にアクセスする場合に使用するポート番号を指定します。1024～65535の整数で指定します。
［標準モデル］を選択した場合だけ指定します。
20351

(11)
稼働確認ポート番号
HCSCサーバが内部の管理用に利用するポート番号を指定します。1～65535の整数で指定します。
23152

(12)
簡易Webサーバポート番号（内部管理用）
HCSCサーバが内部の管理用に利用するポート番号を指定します。1～65535の整数で指定します。
8080

サーバ名称
サーバ名称の選択
－
V7互換名称
HCSC簡易セットアップで構築するテスト環境の各種サーバ名称について，バージョン7と同じ名称を使用する場合に選択します。
－

－
HCSC本番環境簡易セットアップ名称
HCSC簡易セットアップで構築するテスト環境の各種サーバ名称について，HCSC本番環境簡易セットアップでセットアップする名称と同じ名称を使用する場合に選択します。
HCSC本番環境簡易セットアップについては，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「3.4　本番環境の簡易セットアップ」を参照してください。
選択

－
カスタム名称
HCSC簡易セットアップで構築するテスト環境の各種サーバ名称について，任意の名称を指定する場合に選択します。
－

サーバ名称
(13)
論理J2EEサーバ名称
接続先のJ2EEサーバ名称を指定します。1～128文字以内の半角英数字，アンダーラインおよびハイフンを指定します。
J2EEServer

(14)
論理PRF名称
HCSCサーバと連動して動作するPRFのサーバ名称を指定します。1～128文字以内の半角英数字，アンダーラインおよびハイフンを指定します。
PRF

－
クラスタ名称
セットアップするHCSCサーバが属するクラスタの名称を指定します。クラスタ間で一意になるクラスタ名を指定します。1～8文字以内の半角英数字およびアンダーラインを指定します。
Cluster

(15)
HCSCサーバ名称
セットアップするHCSCサーバの名称を指定します。1～8文字以内の半角英数字およびアンダーラインを指定します。
HCSC

(16)
Manager名称
HCSC-ManagerがCosminexus Managerを認識するためのHCSC-Manager独自の識別名を指定します。一つのリポジトリで複数のHCSCサーバを管理している場合，Cosminexus Manager（ホスト）単位に一意になる識別名を指定します。1～16文字以内の半角英数字およびアンダーラインで指定します。
Manager

（凡例）　－：該当しません。

注※1

HCSC簡易セットアップ画面の対応する項目の上でマウスカーソルを一時停止すると，その項目の説明文が一時的に表示されます。

注※2

初期値は，初めてHCSC簡易セットアップ画面を表示したときに初期表示される値です。初期値を変更してセットアップした場合，次回のHCSC簡易セットアップ画面には前回の設定値が初期値として表示されます。

(2)　テスト環境のアンセットアップ

HCSC簡易セットアップ機能を利用してセットアップしたテスト環境をアンセットアップする場合の前提条件，およびアンセットアップ方法について説明します。

注意

HCSC簡易セットアップ機能を利用してアンセットアップすると，テスト環境はセットアップ前の状態に戻ります。テスト環境で利用していたサービスアダプタやビジネスプロセスなどは自動的に削除されるので，必要なデータは，アンセットアップ前に必ずバックアップを取得してください。

(a)　前提条件

テスト環境をアンセットアップするための前提条件を次に示します。

アンセットアップの対象が，HCSC簡易セットアップ機能を利用してセットアップしたテスト環境であること。

Management Server，および運用管理エージェントが起動していること。

HCSC簡易セットアップ画面で［標準モデル］を選択してテスト環境をセットアップした場合，組み込みデータベースのサービス部品が起動していること。

(b)　アンセットアップ方法

テスト環境のアンセットアップには，HCSC簡易セットアップ画面を利用します。テスト環境のアンセットアップ方法を次に示します。

コマンドプロンプトで次のコマンドを実行し，HCSC簡易セットアップ画面を表示させます。

<Cosminexusインストールディレクトリ>¥CSC¥bin¥csceasysetup.bat

HCSC簡易セットアップ画面の［アンセットアップ］ボタンをクリックします。
テスト環境のアンセットアップが開始されます。アンセットアップの状況は，HCSC簡易セットアップ画面のコンソールに表示されます。コンソールに「HCSC簡易セットアップ機能のアンセットアップを終了します」と表示されたら，テスト環境は正常にアンセットアップされています。

2.4.3　HCSC簡易セットアップ機能でセットアップしたテスト環境の運用

HCSC簡易セットアップ機能を利用してセットアップしたテスト環境の運用方法，および運用に必要な情報について説明します。

＜この項の構成＞

(1)　テスト環境の起動と停止

(2)　テスト環境の運用に必要な情報

(3)　組み込みデータベースの運用

(4)　障害対策

(1)　テスト環境の起動と停止

テスト環境の起動および停止方法について，次の表に示します。

表2-5　テスト環境の起動および停止方法

起動・停止の対象
起動・停止方法

組み込みデータベース※
コマンドプロンプトで次のコマンドを実行します。
起動する場合：

<Cosminexusのインストールディレクトリ>¥CSC¥DB¥bats¥cddbstart.bat

停止する場合：

<Cosminexusのインストールディレクトリ>¥CSC¥DB¥bats¥cddbstop.bat

組み込みデータベースの起動・停止方法および運用方法の詳細は，マニュアル「Cosminexus アプリケーションサーバ アプリケーション開発ガイド」の「8.2　組み込みデータベースの開始および停止」を参照してください。

組み込みデータベースのサービス※
テスト環境のマシンを起動または停止すると，自動的に起動または停止されます。

Management Server

運用管理エージェント

テスト環境のマシンを起動すると，自動的に起動されます。また，テスト環境のマシンを停止すると，自動的に停止されます。

Cosminexus Performance Tracer

J2EEサーバ

HCSCサーバ

コマンドプロンプトで次のコマンドを実行します。
起動する場合：

<Cosminexusのインストールディレクトリ>¥CSC¥bin¥cscsvstart.bat -system

停止する場合：

<Cosminexusインストールディレクトリ>¥CSC¥bin¥cscsvstop.bat -system

Cosminexus Performance Tracer，およびJ2EEサーバの起動・停止方法および運用方法の詳細は，マニュアル「Cosminexus アプリケーションサーバ システム構築・運用ガイド」を参照してください。
HCSCサーバの起動・停止方法および運用方法の詳細は，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2　HCSCサーバのオペレーション運用」を参照してください。

注※

HCSC簡易セットアップ画面で［標準モデル］を選択した場合だけ実施します。

(2)　テスト環境の運用に必要な情報

HCSC簡易セットアップ機能を利用してテスト環境をセットアップした場合，必要な情報は自動的に設定されます。テスト環境を使ってテストおよびデバッグを行うには，HCSC簡易セットアップ機能でテスト環境をセットアップする際に設定される情報を知っておく必要があります。

HCSC簡易セットアップ機能を利用してセットアップしたテスト環境に設定される情報を，次に説明します。

ポイント

HCSC簡易セットアップ機能を利用してセットアップしたテスト環境に設定される情報は，テスト環境のセットアップ後にカスタマイズできます。カスタマイズの方法については，「2.4.4　テスト環境のカスタマイズ」を参照してください。

(a)　ユーザIDおよびパスワードの情報

HCSC簡易セットアップ機能でセットアップしたテスト環境に設定されるユーザIDおよびパスワードの情報を次の表に示します。

表2-6　テスト環境に設定されるユーザIDおよびパスワード

設定先 | 設定されるユーザIDまたはパスワード | 初期値 | 説明
組み込みデータベース※1 | ユーザID | admin※2 | テーブル所有者の認可識別子（環境変数のUSRID）。
パスワード | admin※2 | テーブル所有者のパスワード（環境変数のPSWD）。
Management Server | 管理ユーザID | admin | Management Serverにログインするための管理ユーザID（cmx_build_system -changeコマンド※3などで使用）。
パスワード | admin | Management Serverにログインするためのパスワード（cmx_build_system -changeコマンド※3などで使用）。
HCSC-Manager | HCSC-ManagerログインユーザID | admin | HCSC-ManagerにログインするためのユーザID（cscsvstartコマンド※4などで使用）。
HCSC-Managerログインパスワード | admin | HCSC-Managerにログインするためのパスワード（cscsvstartコマンド※4などで使用）。
HCSCサーバ | HCSCサーバが使用するデータベースのユーザID | admin | HCSCサーバが使用するデータベースのユーザID（csmlslocationコマンド※4などで使用）。
HCSCサーバが使用するデータベースのパスワード | admin | HCSCサーバが使用するデータベースのパスワード（csmlslocationコマンド※4などで使用）。

注※1

HCSC簡易セットアップ画面で［標準モデル］を選択した場合だけ設定されます。

注※2

組み込みデータベース内では，大文字「ADMIN」で扱われます。

注※3

このコマンドについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「cmx_build_system（Webシステムの構築）」を参照してください。

注※4

cscsvstartコマンドについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscsvstart（HCSCサーバの起動）」を参照してください。csmlslocationコマンドについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csmlslocation（サービスアダプタまたはビジネスプロセスの情報の表示）」を参照してください。

(b)　ポート番号の情報

HCSC簡易セットアップ機能でセットアップしたテスト環境には，次に示すポート番号が設定されます。ポート番号は，HCSC簡易セットアップ画面で任意の値を指定できます。HCSC簡易セットアップ画面での指定値の詳細については，「表2-4　HCSC簡易セットアップ画面で入力する項目」を参照してください。

組み込みデータベース（HCSC簡易セットアップ画面で［標準モデル］を選択した場合だけ）

DB接続ポート番号

Management Server

HCSCサーバ運用ポート番号

論理サーバ運用ポート番号

終了要求受信ポート番号

内部通信ポート番号

運用管理エージェント

エージェント接続ポート番号

J2EEサーバ

Webサービス/MDB（WS-R）受付ポート番号

SessionBean受付ポート番号

MDB（DBキュー）受付ポート番号

稼働確認ポート番号

簡易Webサーバポート番号

(c)　名称の情報

HCSC簡易セットアップ機能でセットアップしたテスト環境に設定されるホスト名やサーバ名などの情報を次の表に示します。なお，HCSC簡易セットアップ画面の［サーバ名称］タブでサーバ名称を変更した場合は，変更後の名称が設定されます。

表2-7　テスト環境に設定される名称

設定先 | 設定される名称 | 初期値 | 説明
組み込みデータベース※1 | ホスト名 | localhost | 組み込みデータベースのホスト名（環境変数のDB_HOST）。
Management Server | ホスト名 | localhost | Management Serverのホスト名（cmx_build_system -changeコマンド※2などで使用）。
HCSC-Manager | Cosminexus Manager名 | Manager | HCSC-ManagerがCosminexus Managerを認識するためのHCSC-Manager独自の識別名（cscsvstartコマンド※3などで使用）。
PRF | サーバ名 | PRF | PRFのサーバ名称。
J2EEサーバ | サーバ名 | J2EEServer | 接続先J2EEサーバの名称（cjstartsvコマンド※2などで使用）。
Cosminexus RMが連携するシステム全体で一意なシステム名 | RM | Cosminexus RMが連携するシステム全体で一意なシステム名（環境変数のHRM_SYSTEM_NAME）。
リソースアダプタ名 | Cosminexus Reliable Messaging | 対象となるRARファイルの表示名（cjdeployrarコマンド※2などで使用）。
DB_Connector_for_HiRDB_Type4
DB_Connector_for_HiRDB_Type4_Cosminexus_RM
クラスタ | クラスタ名 | Cluster | クラスタの名称。
HCSCサーバ | HCSCサーバ名 | HCSC | HCSCサーバの名称（cscsvstartコマンド※3などで使用）。

注※1

HCSC簡易セットアップ画面で［標準モデル］を選択した場合だけ設定されます。

注※2

cmx_build_system -changeコマンドについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「cmx_build_system（Webシステムの構築）」を参照してください。cjstartsvコマンドについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「cjstartsv（J2EEサーバの開始）」を参照してください。cjdeployrarコマンドについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「cjdeployrar（リソースアダプタのデプロイ）」を参照してください。

注※3

このコマンドについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscsvstart（HCSCサーバの起動）」を参照してください。

(d)　そのほかの情報

HCSC簡易セットアップ画面で［標準モデル］を選択した場合，HCSC簡易セットアップ機能でセットアップしたテスト環境の組み込みデータベースには，次の情報が設定されます。

データ（RDエリア）格納先

RDエリア格納先の情報は，HCSC簡易セットアップ画面で任意の値を指定できます。HCSC簡易セットアップ画面での指定値の詳細については，「表2-4　HCSC簡易セットアップ画面で入力する項目」を参照してください。

構築するデータベースの領域サイズ

構築するデータベースの領域サイズ（環境変数のDB_SIZE）が設定されます。

初期値は「660MB」です。

(3)　組み込みデータベースの運用

HCSC簡易セットアップ機能を利用して設定した組み込みデータベースは，定期的にデータベースの未使用領域を確認する必要があります。未使用領域が少ない場合は，空きページおよび空きセグメントを解放したり，不要な実行履歴を削除したりします。詳細については，「2.5　HCSC簡易セットアップ機能でセットアップした組み込みデータベースの運用」を参照してください。

(4)　障害対策

HCSC簡易セットアップ機能を利用して，HCSCサーバのセットアップやアンセットアップ，HCSCコンポーネントの配備や削除，およびリクエストを送信し続けると，組み込みデータベース内で未使用のセグメントが不足するおそれがあります。

未使用のセグメントが不足した場合，次の対策を実施してください。

方法1：組み込みデータベース内の空きセグメントを解放する

組み込みデータベース内の表をSQL Executerで検索します。
表の検索方法については，マニュアル「HiRDB SQL Executer オンラインヘルプ」のpdsqlコマンドを参照してください。

手順1.で検索した結果から，「CSC」および「RM」で始まるすべての表に対して，pdreclaimコマンドを発行し，空きページを解放して再利用します。
pdreclaimコマンドの詳細については，マニュアル「HiRDB コマンドリファレンス」を参照してください。

方法2：組み込みデータベース内の表を再編成する

組み込みデータベース内の表をSQL Executerで検索します。
表の検索方法については，マニュアル「HiRDB SQL Executer オンラインヘルプ」のpdsqlコマンドを参照してください。

手順1.で検索した結果から，「CSC」および「RM」で始まるすべての表に対してpdrorgコマンドを発行し，表を再編成します。
表を再編成する方法については，マニュアル「HiRDB システム運用ガイド」の表の再編成に関する内容を参照してください。
pdrorgコマンドの詳細については，マニュアル「HiRDB コマンドリファレンス」を参照してください。

方法3：HCSC簡易セットアップ機能で構築したテスト環境を再セットアップする

HCSC簡易セットアップ機能で構築したテスト環境をいったんアンセットアップし，再度セットアップします。この作業を行うと，組み込みデータベースが再生成されます。

ただし，再セットアップすると，作成したサービスアダプタやビジネスプロセスなども削除されます。そのため，あらかじめリポジトリをエクスポートしてから，再セットアップし，再セットアップ後にリポジトリをインポートしてください。

2.4.4　テスト環境のカスタマイズ

HCSC簡易セットアップ機能を利用してセットアップしたテスト環境には，「2.4.3(2) テスト環境の運用に必要な情報」に示す情報が設定されています。これらの情報は，テスト環境をセットアップしたあとにカスタマイズできます。

テスト環境をカスタマイズするには，HCSC簡易セットアップ機能でのテスト環境のセットアップ時に定義ファイルに設定された値を編集します。

編集できる定義ファイルを次の表に示します。各定義ファイルの詳細については，表の「参照先」に示すマニュアルを参照してください。

表2-8　編集できる定義ファイル

ファイル名
説明
格納先
参照先マニュアル
参照個所

adminagent.properties
（運用管理エージェントプロパティファイル）
運用管理エージェントとの通信で使用するポート番号が設定されているプロパティファイルです。
A
Cosminexus アプリケーションサーバ リファレンス 定義編（サーバ定義）
10.2

cdsetupconfig.bat
（組み込みデータベース設定バッチファイル）
組み込みデータベースの環境変数を設定するバッチファイルです。
B
Cosminexus アプリケーションサーバ アプリケーション開発ガイド
付録B.3

cmdconf.bat
（HCSC-Messagingコマンド共通定義ファイル）
uCosminexus Service PlatformのcsmXXXコマンドで組み込みデータベースにアクセスするために，HiRDB type4 JDBC Driverのクラスパスを設定するバッチファイルです。
C
Cosminexus サービスプラットフォーム リファレンス
HCSC-Messagingコマンド共通定義ファイル

Cosminexus_Reliable_Messaging.xml
（Connector属性ファイル）
リソースアダプタの属性（コンフィグレーションプロパティの値やプロパティ値）が設定されているXMLファイルです。
D
Cosminexus アプリケーションサーバ リファレンス 定義編（アプリケーション／リソース定義）
4.1

csccmd.properties
（HCSC-Managerコマンド共通定義ファイル）
運用環境で使用するコマンドの省略値（ログインユーザIDやログインパスワード）が設定されているプロパティファイルです。
E
Cosminexus サービスプラットフォーム リファレンス
HCSC-Managerコマンド共通定義ファイル

cscmng.properties
（HCSC-Manager定義ファイル）
HCSC-Managerの動作に必要な情報が設定されているプロパティファイルです。
E
Cosminexus サービスプラットフォーム リファレンス
HCSC-Manager定義ファイル

cscsvconfig.properties
（HCSCサーバランタイム定義ファイル）
HCSCサーバの起動時に必要なランタイム情報（実行履歴管理情報，データベース情報）が設定されているプロパティファイルです。
D
Cosminexus サービスプラットフォーム リファレンス
HCSCサーバランタイム定義ファイル

cscsvsetup.properties
（HCSCサーバセットアップ定義ファイル（標準モデル））※1
標準モデルで使用する，HCSCサーバのセットアップに必要な情報（J2EEサーバ，Cosminexus RM，データベースに関連する情報）が設定されているプロパティファイルです。
D
Cosminexus サービスプラットフォーム リファレンス
HCSCサーバセットアップ定義ファイル

cscsvsetup.properties.esb
（HCSCサーバセットアップ定義ファイル（ESBモデル））※1
ESBモデルで使用する，HCSCサーバのセットアップに必要な情報（J2EEサーバ，Cosminexus RM，データベースに関連する情報）が設定されているプロパティファイルです。
D
Cosminexus サービスプラットフォーム リファレンス
HCSCサーバセットアップ定義ファイル

cscsvsetup.xml
（HCSCサーバ構成定義ファイル（標準モデル））
標準モデルで使用する，HCSCサーバの構成情報（cosminexus-manager，jms-physical-reception，ejb-receptionの定義）が設定されているXMLファイルです。
D
Cosminexus サービスプラットフォーム リファレンス
HCSCサーバ構成定義ファイル

cscsvsetup.xml.esb
（HCSCサーバ構成定義ファイル（ESBモデル））
ESBモデルで使用する，HCSCサーバの構成情報（cosminexus-manager，jms-physical-reception，ejb-receptionの定義）が設定されているXMLファイルです。
D
Cosminexus サービスプラットフォーム リファレンス
HCSCサーバ構成定義ファイル

DB_Connector_for_HiRDB_Type4.xml
（Connector属性ファイル）
リソースアダプタの属性（コンフィグレーションプロパティの値，プロパティ値）が設定されているXMLファイルです。
D
Cosminexus アプリケーションサーバ リファレンス 定義編（アプリケーション／リソース定義）
4.1

DB_Connector_for_HiRDB_Type4_Cosminexus_RM.xml
（Connector属性ファイル）
リソースアダプタの属性（コンフィグレーションプロパティの値，プロパティ値）が設定されているXMLファイルです。
D
Cosminexus アプリケーションサーバ リファレンス 定義編（アプリケーション／リソース定義）
4.1

grantuser
（ユーザ定義ファイル）
HiRDBのユーザの作成，およびスキーマの作成を行うファイルです。
B
Cosminexus アプリケーションサーバ アプリケーション開発ガイド
付録B.3

hrmqueue-transmit.xml
（アプリケーション属性ファイル）
アプリケーションの属性が設定されているXMLファイルです。
D
Cosminexus アプリケーションサーバ リファレンス 定義編（アプリケーション／リソース定義）
3.2

input.properties
（システム共通情報記載プロパティファイル）
HCSC簡易セットアップ画面で入力した情報，およびシステム共通の情報が設定されているプロパティファイルです。
D
－
－

inserttableshirdb.sql
（テーブルインサートSQLファイル）
システム管理情報テーブルにレコードをインサートするSQLファイルです。
D
－
－

mserver.cfg
（Management Server用オプション定義ファイル）
Management Serverを実行するJavaVMの起動オプションが設定されているファイルです。
A
Cosminexus アプリケーションサーバ リファレンス 定義編（サーバ定義）
10.8

mserver.properties
（Management Server環境設定ファイル）
Management Serverが使用するポート番号や，障害検知時コマンドの動作が設定されているプロパティファイルです。
A
Cosminexus アプリケーションサーバ リファレンス 定義編（サーバ定義）
10.7

qconf.txt
（キュー定義ファイル）
キュー情報（DisplayName，QueueName）が設定されているテキストファイルです。
E
Cosminexus Reliable Messaging
3.4.4

setupscript
（セットアップスクリプトファイル（標準モデル・SOAP1.1モード用））
標準モデルで使用する，セットアップ処理のタスクの実行順が設定されているスクリプトファイルです。SOAP1.1モードの環境をセットアップします。
D
－
－

setupscript.cjw
（セットアップスクリプトファイル（標準モデル・SOAP1.1/1.2併用モード用））
標準モデルで使用する，セットアップ処理のタスクが実行順に記述されたスクリプトファイルです。SOAP1.1/1.2併用モードの環境をセットアップします。
D
－
－

setupscript.esb
（セットアップスクリプトファイル（ESBモデル・SOAP1.1モード用））
ESBモデルで使用する，セットアップ処理のタスクの実行順が設定されているスクリプトファイルです。SOAP1.1モードの環境をセットアップします。
D
－
－

setupscript.esb.cjw
（セットアップスクリプトファイル（ESBモデル・SOAP1.1/1.2併用モード用））
ESBモデルで使用する，セットアップ処理のタスクが実行順に記述されたスクリプトファイルです。SOAP1.1/1.2併用モードの環境をセットアップします。
D
－
－

simple_model.xml
（HCSC簡易セットアップ定義ファイル・SOAP1.1モード用）※2
Smart Composer機能のコマンドで構築するWebシステムが定義されているXMLファイルです。SOAP1.1モードの環境をセットアップするときに使用します。
D
－
－

simple_model_cjl.xml
（HCSC簡易セットアップ定義ファイル・SOAP1.1/1.2併用モード用）※2
Smart Composer機能のコマンドで構築するWebシステムが定義されているXMLファイルです。SOAP1.1/1.2併用モードの環境をセットアップするときに使用します。
D
－
－

tablecreate
（テーブル定義ファイル）
HiRDBのスキーマ，およびテーブルの作成を行うファイルです。
B
Cosminexus アプリケーションサーバ アプリケーション開発ガイド
付録B.3

unsetupscript
（アンセットアップスクリプトファイル（標準モデル））
標準モデルで使用する，アンセットアップ処理のタスクの実行順が設定されているスクリプトファイルです。
D
－
－

unsetupscript.esb
（アンセットアップスクリプトファイル（ESBモデル））
ESBモデルで使用する，アンセットアップ処理のタスクの実行順が設定されているスクリプトファイルです。
D
－
－

（凡例）

A：<Cosminexusインストールディレクトリ>¥manager¥config

B：<Cosminexusインストールディレクトリ>¥CSC¥DB¥bats

C：<Cosminexusインストールディレクトリ>¥CSC¥config¥msg

D：<Cosminexusインストールディレクトリ>¥CSC¥system¥manager¥setup

E：<Cosminexusインストールディレクトリ>¥CSC¥config¥manager

－：参照するマニュアルはありません。

注※1

セットアップ構成関連のプロパティ（db-useプロパティ，rm-useプロパティ，およびhcscserver-data-filepathプロパティ）は変更できません。

注※2

HCSC簡易セットアップ機能で構築する環境のWebコンテナ単位の同時実行数を変更する場合は，webserver.connector.inprocess_http.max_execute_threadsプロパティを変更してください。webserver.connector.inprocess_http.max_execute_threadsプロパティの詳細は，マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.16.2　実行環境での設定（J2EEサーバの設定）」を参照してください。

参考

テスト環境をカスタマイズする場合，次のディレクトリ内のファイルをカスタマイズの参考として利用できます。

<Cosminexusインストールディレクトリ>¥CSC¥log¥manager¥setup

1台のマシンに複数のテスト環境を構築（環境変数CSCMNG_HOMEを設定）している場合は，次のディレクトリ内のファイルをカスタマイズの参考として利用できます。

%CSCMNG_HOME%¥log¥manager¥setup

これらのディレクトリに格納されているファイルを次に示します。

表2-8に示す定義ファイルと同じ名称のファイル

HCSC簡易セットアップ機能を実行したときに設定された定義ファイルと同じ内容のファイル（HCSC簡易セットアップ機能のログファイル）です。

adminagent.properties.bak（adminagent.propertiesのバックアップファイル）

現在のadminagent.propertiesの一つ前のadminagent.propertiesの設定が保存されています。

cmdconf.bat.bak（cmdconf.batのバックアップファイル）

現在のcmdconf.batの一つ前のcmdconf.batの設定が保存されています。

csccmd.properties.bak（csccmd.propertiesのバックアップファイル）

現在のcsccmd.propertiesの一つ前のcsccmd.propertiesの設定が保存されています。

cscmng.properties.bak（cscmng.propertiesのバックアップファイル）

現在のcscmng.propertiesの一つ前のcscmng.propertiesの設定が保存されています。

mserver.cfg.bak（mserver.cfgのバックアップファイル）

現在のmserver.cfgの一つ前のmserver.cfgの設定が保存されています。

mserver.properties.bak（mserver.propertiesのバックアップファイル）

現在のmserver.propertiesの一つ前のmserver.propertiesの設定が保存されています。

2.4.5　SOAPモードの確認

現在使用しているSOAPモードの確認方法について説明します。

＜この項の構成＞

(1)　開発環境のSOAPモードを確認する場合

(2)　実行環境のSOAPモードを確認する場合

(1)　開発環境のSOAPモードを確認する場合

開発環境のSOAPモードはEclipse上で確認できます。

Eclipseのメニューから，［ウィンドウ］－［設定］を選択します。
［設定］ダイアログが表示されます。

ダイアログ左側のツリービューで［HCSC-Definer］を選択します。
ダイアログ右側の［現在のSOAPモード］に使用しているSOAPモードが表示されます。

(2)　実行環境のSOAPモードを確認する場合

実行環境で現在使用しているSOAPモードを確認する場合，cscreplsコマンドを使用します。コマンドを実行すると表示項目のSOAP-modeに次のどちらかが表示されます。

1.1：SOAP1.1モードを示します。

1.1/1.2：SOAP1.1/1.2併用モードを示します。

なお，cscreplsコマンドは，HCSCサーバのセットアップが完了している場合に実行できます。

cscreplsコマンドについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscrepls（リポジトリ情報の表示）」を参照してください。

2.5　HCSC簡易セットアップ機能でセットアップした組み込みデータベースの運用

HCSC簡易セットアップ機能でセットアップした組み込みデータベースの運用について説明します。

＜この節の構成＞

2.5.1　RDエリアの未使用領域を確認する

2.5.2　プロセスインスタンスの実行履歴を削除する

2.5.3　電文の実行履歴を削除する

2.5.4　空きページおよび空きセグメントを解放する

2.5.1　RDエリアの未使用領域を確認する

RDエリアの未使用領域を確認し，データベースの使用状況を調査します。RDエリアの未使用領域の確認は，定期的に実施する必要があります。RDエリアの未使用領域を確認する前提条件と確認方法について次に説明します。

＜この項の構成＞

(1)　前提条件

(2)　確認方法

(1)　前提条件

RDエリアの未使用領域を確認するには，データベースが起動状態である必要があります。

(2)　確認方法

RDエリアの未使用領域を確認する方法を次に示します。

コマンドプロンプトを起動し，<Cosminexusインストールディレクトリ>¥DB¥bin¥pdntcmd.batを実行します。
組み込みデータベースを操作する環境変数が設定されます。

コマンドプロンプトでpddblsコマンドを実行し，RDエリアの状態を表示します。
pddblsコマンドの詳細については，マニュアル「HiRDB コマンドリファレンス」を参照してください。
pddblsコマンドの実行形式を次に示します。

pddbls -r ALL -a

コマンドの実行結果からRDエリアの未使用領域を確認します。
実行結果の例を次に示します。

RDエリアの未使用領域が少ない場合は，次の方法で未使用領域の不足を解消します。

プロセスインスタンスの実行履歴を削除する
「2.5.2　プロセスインスタンスの実行履歴を削除する」を参照してください。

電文の実行履歴を削除する
「2.5.3　電文の実行履歴を削除する」を参照してください。

空きページおよび空きセグメントを解放する
「2.5.4　空きページおよび空きセグメントを解放する」を参照してください。

2.5.2　プロセスインスタンスの実行履歴を削除する

ビジネスプロセスのプロセスインスタンスの実行状況を履歴としてデータベースに記録している場合，実行履歴は日々追加されていくため，データベースの容量が圧迫されます。そのため，定期的にプロセスインスタンスの実行履歴を削除する必要があります。プロセスインスタンスの実行履歴を削除する前提条件と確認方法について次に説明します。

＜この項の構成＞

(1)　前提条件

(2)　削除方法

(1)　前提条件

プロセスインスタンスの実行履歴を削除するには，データベースが起動状態である必要があります。

(2)　削除方法

アクセスするHCSCサーバを決定します。
HCSC簡易セットアップ機能でセットアップした情報をカスタマイズしていない場合，HCSCサーバ名には「HCSC」が設定されています。

テスト環境（運用環境）でcscpideleteコマンドを実行します。
プロセスインスタンスの実行履歴を削除する方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「6.1.4　プロセスインスタンスの実行履歴を削除する」を参照してください。

空きページおよび空きセグメントを解放します。
空きページおよび空きセグメントを解放する方法については，「2.5.4　空きページおよび空きセグメントを解放する」を参照してください。

2.5.3　電文の実行履歴を削除する

電文の実行状況を履歴としてデータベースに記録している場合，実行履歴は日々追加されていくため，データベースの容量が圧迫されます。そのため，定期的に電文の実行履歴を削除する必要があります。なお，HCSC簡易セットアップ機能を利用する場合，電文の実行履歴は取得しない設定（HCSCサーバランタイム定義ファイルのhistoryrecordプロパティがOFF）になっています。ユーザが明示的に電文の実行履歴を取得するように設定した場合に，定期的に実行履歴を削除してください。

電文の実行履歴を削除する前提条件と確認方法について次に説明します。

＜この項の構成＞

(1)　前提条件

(2)　削除方法

(1)　前提条件

電文の実行履歴を削除するには，データベースが起動状態である必要があります。

(2)　削除方法

電文を送信したHCSCサーバを把握します。
HCSC簡易セットアップ機能でセットアップした情報をカスタマイズしていない場合，HCSCサーバ名には「HCSC」が設定されています。

テスト環境（運用環境）でcsmdeletehistoryコマンドを実行します。
電文の実行履歴を削除する方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「6.2.5　電文の実行履歴を削除する」を参照してください。

空きページおよび空きセグメントを解放します。
空きページおよび空きセグメントを解放する方法については，「2.5.4　空きページおよび空きセグメントを解放する」を参照してください。

2.5.4　空きページおよび空きセグメントを解放する

データの削除によって生じた空きページおよび空きセグメントを解放して，未使用状態に戻します。空きページおよび空きセグメントを解放する前提条件と解放方法について次に説明します。

注意

空きページだけでなく空きセグメントも必ず解放してください。

＜この項の構成＞

(1)　前提条件

(2)　解放方法

(1)　前提条件

空きページおよび空きセグメントを解放するには，次の状態を満たす必要があります。

HCSCサーバが停止状態であること。

データベースが起動状態であること。

(2)　解放方法

空きページおよび空きセグメントを解放する方法を次に示します。なお，パスワードの入力を求められた場合は，「admin」を入力してください。

コマンドプロンプトを起動し，<Cosminexusインストールディレクトリ>¥DB¥bin¥pdntcmd.batを実行します。
組み込みデータベースを操作する環境変数が設定されます。

コマンドプロンプトでpdreclaimコマンドを実行し，使用中空きページを解放します。
使用中空きページ（データの削除によってデータが格納されていないページ）を解放して，未使用ページにします。
pdreclaimコマンドの詳細については，マニュアル「HiRDB コマンドリファレンス」を参照してください。
pdreclaimコマンドの実行形式を次に示します。

表の使用中空きページを解放する場合

pdreclaim -u admin -k table -t all -o

インデクスの使用中空きページを解放する場合

pdreclaim -u admin -k index -t all

コマンドプロンプトでpdreclaimコマンドを実行し，使用中空きセグメントを解放します。
使用中空きセグメント（セグメント内の全ページが空きページになっているセグメント）を解放して，未使用セグメントにします。
pdreclaimコマンドの詳細については，マニュアル「HiRDB コマンドリファレンス」を参照してください。
pdreclaimコマンドの実行形式を次に示します。

表の使用中空きセグメントを解放する場合

pdreclaim  -u admin -k table -t all -o -j

インデクスの使用中空きセグメントを解放する場合

pdreclaim  -u admin -k table -t all -j

未使用領域の不足が解消されたかを確認します。
確認方法については，「2.5.1　RDエリアの未使用領域を確認する」を参照してください。

2.6　利用できるサービス部品の種類と適用範囲

Cosminexus サービスプラットフォームで利用できるサービス部品の種類を次の表に示します。

表2-9　利用できるサービス部品の種類

サービス部品の種類 | 通信形態 | プロトコル
Webサービス | 同期 | SOAP（HTTP）
SessionBean | RMI-IIOP
MDB | 非同期 | WS-R
DBキュー | JMS

注

表2-9に示すサービス部品以外に，データベースの操作をサービス部品として利用できます。なお，データベースの操作をサービス部品として利用する場合，操作できるデータベースはHiRDBとOracleです。

以降の項では，サービス部品の種類ごとに適用範囲を説明します。

＜この節の構成＞

2.6.1　Webサービスを利用したサービス部品の適用範囲

2.6.2　SessionBeanを利用したサービス部品の適用範囲

2.6.3　Cosminexus RMのローカルキューを利用したサービス部品の適用範囲

2.6.4　DBキューを利用したサービス部品の適用範囲

2.6.5　XMLスキーマの適用範囲

2.6.1　Webサービスを利用したサービス部品の適用範囲

Webサービスを利用したサービス部品の適用範囲を次に示します。

ポイント

このマニュアルで説明するWSDLおよびXMLスキーマでは，特定のプリフィックスと名前空間URIを対応づけて記述しています。プリフィックスと名前空間URIの対応を次の表に示します。

表2-10　プリフィックスと名前空間URIの対応

プリフィックス | 名前空間URI
wsdl | http://schemas.xmlsoap.org/wsdl/
xsd | http://www.w3.org/2001/XMLSchema
soap | http://schemas.xmlsoap.org/wsdl/soap/
soap12 | http://schemas.xmlsoap.org/wsdl/soap12/

＜この項の構成＞

(1)　前提となる仕様

(2)　SOAPメッセージの形式

(3)　WSDLの定義時の注意（SOAP1.1モード）

(4)　WSDLの定義時と使用時の注意（SOAP1.1/1.2併用モード）

(5)　WSDL1.1仕様のサポート範囲

(6)　ライフサイクル

(1)　前提となる仕様

Webサービスを利用したサービス部品の前提仕様について，SOAP1.1モードの場合およびSOAP1.1/1.2併用モードの場合に分けて説明します。

SOAP1.1モードの場合
SOAP1.1モードの場合，Webサービスを利用したサービス部品は，次のバージョンの仕様に従って作成されている必要があります。

SOAP1.1

WSDL1.1

SAAJ1.2

また，Cosminexus サービスプラットフォームでは，WS-I Basic Profile 1.0aに従ってサービス部品を作成することを推奨します。

SOAP1.1/1.2併用モードの場合
SOAP1.1/1.2併用モードの場合，Webサービスを利用したサービス部品は，次のバージョンの仕様に従って作成されている必要があります。

SOAP1.1またはSOAP1.2

WSDL1.1

SAAJ1.3

また，Cosminexus サービスプラットフォームでは，WS-I Basic Profile 1.1に従ってサービス部品を作成することを推奨します。

(2)　SOAPメッセージの形式

SOAPメッセージは，SOAPヘッダとSOAPボディで構成されます。SOAPヘッダにはメッセージの付加的な情報（識別情報など）が含まれ，SOAPボディにはメッセージ本体が含まれています。

Webサービスを利用したサービス部品では，SOAPメッセージの形式として次の条件を満たしている必要があります。

要求電文および応答電文がSOAPメッセージの本文に格納されていること。

なお，08-53よりも前のバージョンのCosminexus サービスプラットフォームでは，soap:header要素を定義したWSDLを基にWebサービスアダプタを作成できますが，soap:header要素は無視されます。

(3)　WSDLの定義時の注意（SOAP1.1モード）

SOAP1.1モードを使用する場合のWSDLの記述形式，およびWSDL定義時の注意事項について説明します。WSDL1.1仕様のサポート範囲については，「2.6.1(5)　WSDL1.1仕様のサポート範囲」を参照してください。

(a)　wsdl:types要素

wsdl:types要素は，SOAPメッセージで使用する型に関する情報を定義する要素です。wsdl:types要素は，次に示す規則に従って記述してください。

wsdl:definitions要素の子要素として記述してください。

記述できる個数は0個または1個です。2個以上は記述できません。

wsdl:documentation要素およびwsdl:import要素よりもあとに記述してください。

wsdl:documentation要素およびwsdl:import要素を除く，ほかのすべての要素よりも前に記述してください。

(b)　xsd:schema要素

xsd:schema要素は，XMLスキーマを記述する要素です。xsd:schema要素は，wsdl:types 要素の子要素として記述してください。XMLスキーマを記述するときの規則については，「2.6.5　XMLスキーマの適用範囲」を参照してください。

(c)　wsdl:import要素

wsdl:import要素は，WSDLをインポートする場合に定義する要素です。wsdl:definitions要素の子要素として記述してください。wsdl:import要素は，次に示す規則に従って記述してください。

wsdl:documentation要素よりもあとに記述してください。

wsdl:documentation要素を除く，ほかのすべての要素よりも前に記述してください。

namespace属性は必ず記述してください。

wsdl:import要素のlocation属性を指定する場合の注意を次に示します。

RFC2396で規定される文字およびxsd:anyURIを満たす文字を使用してください。ただし，RFC2732（IPv6）は使用できません。

wsdl:import要素のlocation属性を絶対URIで指定する場合は，http，https，およびfileのプロトコルのどれかを使用してください。

location属性の指定例を次に示します。

（例1）ローカルにあるWSDLを相対パスで指定

./example/sample.wsdl

（例2）ローカルにあるWSDLをURL形式の絶対パスで指定

file:///C:/example/sample.wsdl

（例3）リモートにあるWSDLをURLで指定

http://example.com/sample.wsdl

(d)　soap:binding要素

soap:binding要素は，SOAPバインディングを定義する要素です。soap:binding要素は，次に示す規則に従って記述してください。

wsdl:binding要素の子要素として記述してください。

必ず1個記述してください。2個以上は記述できません。

transport属性にはHTTPバインディングを示す"http://schemas.xmlsoap.org/soap/http"を指定してください。

バインディング宣言はSOAPバインディングを宣言してください。SOAPバインディング以外は宣言できません。

(e)　wsdl:operation要素

wsdl:operation要素は，次に示す規則に従って記述してください。

wsdl:portType要素の子要素であるwsdl:operation要素と，wsdl:binding要素の子要素であるwsdl:operation要素は，一対一になるように記述してください。

name属性は255バイト以下で記述してください。

(f)　soap:operation要素

soap:operation要素は，SOAPバインディングでのオペレーションの情報を定義する要素です。soap:operation要素は，次に示す規則に従って記述してください。

wsdl:binding要素の子要素であるwsdl:operation要素の子要素として記述してください。

必ず1個記述してください。2個以上は記述できません。

style属性が「rpc」の場合，soap:body要素のnamespace属性に記述された名前空間に「オペレーション名」，または「オペレーション名」＋「Response」をname属性として持つelement要素を指定しないでください。

(g)　soap:body要素

soap:body要素は，SOAPメッセージのsoap:body要素以下のメッセージを定義する要素です。soap:body要素は，次に示す規則に従って記述してください。

wsdl:binding要素の孫要素であるwsdl:input要素またはwsdl:output要素の子要素として記述してください。

必ず1個記述してください。2個以上は記述できません。

子要素は記述できません。

なお，style属性が「document」の場合，parts属性を記述することはできますが，無視されます。

(h)　wsdl:fault要素

wsdl:fault要素はフォルトを定義する要素です。wsdl:fault要素は，次に示す規則に従って記述してください。

wsdl:portType要素およびwsdl:binding要素の子要素として記述してください。

同じname属性の値を持つwsdl:fault要素を複数記述しないでください。

wsdl:portType要素の子要素であるwsdl:operation要素で定義したwsdl:fault要素と対応するよう，wsdl:binding要素の子要素であるwsdl:operation要素にwsdl:fault要素を定義している必要があります。

(i)　soap:fault要素

soap:fault要素は，SOAPメッセージのsoap:fault要素に含まれるdetail子要素以下のメッセージを定義する要素です。soap:fault要素は，次に示す規則に従って記述してください。

wsdl:binding要素の子要素であるwsdl:fault要素の子要素として記述してください。

必ず1個記述してください。2個以上は記述できません。

フォルトを使用する場合の条件

サービス部品から返されたSOAP Faultでは，次の条件をすべて満たす場合にフォルト名がfaultCodeに設定され，フォルトとして扱われます。

サービス部品側にSOAP通信基盤（Cosminexus Web Services）を使用していること。

WSDLフォルト名（wsdl:fault要素のname属性値）と，schema（wsdl:types内）に定義された例外型complexTypeを指すelement名※が，名前空間を含めて一致していること。

これらの条件を満たしていないWSDLを利用する場合で，サービス部品から返されたSOAP Faultをフォルトとして扱いたいときは，SOAP Fault動作定義ファイルを定義してユーザ定義例外となるように設定します。

注※

element名とは，「wsdl:faultが参照するwsdl:part要素が，element属性を用いて指定する要素」のことです。WSDLを次の順にたどって特定できる要素を指します。

1.wsdl:fault

2.wsdl:message（この要素をたどらない場合もあります）

3.wsdl:part

4.xsd:element

なお，Cosminexusの開発支援コマンドであるJava2WSDLコマンドを使用して，オペレーションのstyle属性が「rpc」のWSDLファイルを生成した場合，element属性ではなく，type属性で参照するWSDLファイルが生成されます。

そのため，生成されたWSDLファイルをそのまま使用しないで，修正および再生成してから使用します。WSDLファイルの修正および再生成の方法については，「4.3.2　サービス部品電文を作成する（Webサービスの場合）」の注意事項を参照してください。

Cosminexus サービスプラットフォームでフォルトを使用する場合，documentスタイルのWSDLを使用することを推奨します。

(j)　soap:header要素

soap:header要素は，SOAPメッセージのsoap:header要素以下のメッセージを定義する要素です。soap:header要素は，次に示す規則に従って記述してください。

wsdl:binding要素の孫要素となるwsdl:input要素およびwsdl:output要素の子要素として記述してください。

子要素は記述できません。

message属性には，wsdl:input要素またはwsdl:output要素から参照されるwsdl:message要素とは異なるwsdl:messsage要素を指定してください。

part属性には，message属性に指定したwsdl:message要素の子要素であるwsdl:part要素を指定してください。

(k)　wsdl:service要素

wsdl:service 要素は，SOAP サービスを定義する要素です。1個のwsdl:service要素にwsdl:port要素は必ず1個記述してください。2個以上は記述できません。

(4)　WSDLの定義時と使用時の注意（SOAP1.1/1.2併用モード）

SOAP1.1/1.2併用モードを使用する場合，マニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」の「4.3.1　WSDLファイルを作成する」を参考にしてWSDLを記述してください。

ただし，マニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」の「4.3.1　WSDLファイルを作成する」に記載されている内容と，Cosminexus サービスプラットフォームの動作が異なる点があります。SOAP1.1/1.2併用モードを使用する場合のWSDL定義時の注意事項を示します。

(a)　使用できるWSDL定義のスタイル

WSDL定義のスタイルは，document/literalで定義してください。

(b)　wsdl:port要素

wsdl:port要素のname属性が重複している場合エラーが発生します。すべてのWSDLでname属性を一意にしてください。

(c)　wsdl:types要素

wsdl:types要素の子要素としてスキーマを定義する場合，コメントの記述はxsd:annotationを利用して記述してください。

また，アダプタでWSDLから作成される電文フォーマットの名前空間宣言に，JAXBの名前空間「http://java.sun.com/xml/ns/jaxb」が付加されます。

(d)　wsdl:operation要素

wsdl:operation要素のname属性は255バイト以下で記述してください。

(e)　サービス部品側にSOAP通信基盤を使用している場合の定義

サービス部品側にSOAP通信基盤を利用している場合は，wsdl:fault要素のname属性とwsdl:part要素の参照するxsd:element要素のname属性と一致させてください。

(f)　WSDLの検証

Basic Profileに基づいた検証によって発生するエラーは，Cosminexus サービスプラットフォームでは警告になります。Basic Profileに基づいた検証によって発生する警告メッセージIDと，対応するエラーIDおよび発生条件を次の表に示します。

表2-11　Basic Profileに基づいた検証によって発生する警告（エラー）

項番 | 警告メッセージID | 対応するエラーID | 発生条件
1 | KDJW51209-W | KDJW51208-E | soap:body要素にnamespace属性を記述したときに発生します。
2 | KDJW51211-W | KDJW51210-E | soap:fault要素にnamespace属性を記述したときに発生します。
3 | KDJW51213-W | KDJW51212-E | 拡張要素にwsdl:required属性を記述したときに発生します。

次の条件に基づく検証は，Cosminexus サービスプラットフォームで実行されません。

WSDLに定義する要素の個数に関する検証

Javaの予約語を記述している場合の検証

(5)　WSDL1.1仕様のサポート範囲

SOAP1.1モードを使用する場合のWSDL1.1仕様のサポート範囲を次の表に示します。

SOAP1.1/1.2併用モードを使用する場合のWSDL1.1仕様のサポート範囲については，マニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」の「14.1　WSDL 1.1仕様のサポート範囲」を参照してください。

表2-12　WSDL1.1仕様のサポート範囲

分類 | サポート | 備考
大分類 | 小分類
サービス定義：WSDLドキュメント構造 | Document Naming and Linking | ○ | 名前空間のスコープについて規定しています。
Authoring Style（部品のimport要素による取り込み） | ○ | ほかのファイルのimport要素による取り込みについて規定しています。
Language Extensibility and Binding | × | wsdl:required属性のデプロイについて規定しています。
Documentation | ○ | 要素内のコメントについて規定しています。
サービス定義：wsdl:types | ○ | 扱うデータ型について規定しています。
サービス定義：wsdl:message | ○ | メッセージの論理定義を規定しています。
サービス定義：ポートタイプ | One-way Operation | × | メッセージの一方向操作について規定しています。
Request-response Operation | ○ | メッセージの要求/応答操作について規定しています。
Solicit-response Operation | × | メッセージの送信要求/応答操作について規定しています。
Notification Operation | × | メッセージの通知操作について規定しています。
Names of Elements within an Operation | ○ | inputおよびoutput要素のname属性を示します。オーバーロードはできません。WSDL内では名称を一意にする必要があります。
Parameter Order within an Operation | ○ | 操作内のパラメタの順序について規定しています。parameterOrder属性によって，パラメタのリストを指定できます。
サービス定義：wsdl:binding | ○ | メッセージ形式とプロトコルの詳細の定義を規定しています。
サービス定義：wsdl:port | ○ | サービスの物理的定義について規定しています。
サービス定義：wsdl:service | ○ | サービスの位置について規定しています。一つのWSDLに複数のSOAPサービスを対応させることはできません。
SOAPバインディング | soap:binding | ○ | SOAP形式のバインディングを規定しています。
soap:operation | ○ | SOAPメッセージ内のSOAPオペレーションへの情報について規定しています。
soap:body | ○ | SOAPメッセージ内のSOAPボディのメッセージ部分の表示方法について規定しています。parts属性を記述できますが，無視されます。
soap:fault | ○ | SOAPメッセージ内のSOAPフォルトの内容について規定しています。
soap:header | ○ | SOAPメッセージ内のSOAPヘッダ要素内の内容について規定しています。
soap:headerfault | ×
soap:address | ○ | port要素のアドレスについて規定しています。
MIMEバインディング | mime:content | × | MIMEタイプを規定しています。
mime:multipartRelated | × | MIMEパートの任意のセットを集約しています。
mime:part | × | 個々のMIMEパートを規定しています。
mime:mimeXml | × | 特定のスキーマを持っているXMLペイロードを規定しています。SOAPには準拠していません。

（凡例）

○：サポートしています。

×：サポートしていません。

(6)　ライフサイクル

Cosminexus サービスプラットフォームの実行環境とサービス部品の間では，セッションを維持するように設定（DeployScopeに「Session」，「Application」を設定）しても，ステートフルな呼び出しはできません。サービスアダプタでは，常に「Request」での呼び出しです。

2.6.2　SessionBeanを利用したサービス部品の適用範囲

SessionBeanを利用したサービス部品の適用範囲を次に示します。

＜この項の構成＞

(1)　前提となる仕様

(2)　利用できるサービス部品の配備先

(3)　SessionBeanの作成条件

(4)　スキーマの形式

(1)　前提となる仕様

SessionBeanを利用したサービス部品は，EJB 2.0の仕様に従って作成されている必要があります。

(2)　利用できるサービス部品の配備先

SessionBeanを利用したサービス部品として利用できるのは，Cosminexus上に配備されているサービス部品です。

(3)　SessionBeanの作成条件

SessionBeanを利用したサービス部品は，次の条件に従って作成されている必要があります。

引数・戻り値に指定できるクラス

SessionBeanを利用したサービス部品の引数・戻り値に指定するクラスは，次の条件を満たしている必要があります。

ユーザ定義クラスが基本型クラスで構成されていること。

引数・戻り値に指定されるユーザ定義型のクラスが，privateなフィールドとそのフィールドに外部からアクセスするためのpublicなアクセサメソッド（setXX，getXX）を持っていること（JavaBeans形式）。

公開するメソッドの引数・戻り値にinterfaceのユーザ定義型を指定していないこと。

公開するメソッドの引数・戻り値にabstractクラスのユーザ定義型クラスを指定していないこと。

公開するメソッドの引数・戻り値にjava.lang.Object以外のクラスを継承するユーザ定義型クラスを指定していないこと。

公開するメソッドの引数・戻り値に，異なるパッケージのユーザ定義型クラスを指定していないこと。

次の表に示すJavaデータ型のうち，利用できるJavaデータ型だけを利用していること。

表2-13　Javaデータ型の利用可否

Javaでのデータ型 | メソッドの引数・戻り値としての利用の可否
直接使用する場合 | 配列として使用する場合 | ユーザ定義データ型クラスのメンバ変数として使用する場合
boolean | ○ | ○ | ○
javax.xml.rpc.holders.BooleanHolder | ○ | × | ×
byte | ○ | ○ | ○
javax.xml.rpc.holders.ByteHolder | ○ | × | ×
byte[] | ○ | ○ | ○
javax.xml.rpc.holders.ByteArrayHolder | ○ | × | ×
double | ○ | ○ | ○
javax.xml.rpc.holders.DoubleHolder | ○ | × | ×
float | ○ | ○ | ○
javax.xml.rpc.holders.FloatHolder | ○ | × | ×
int | ○ | ○ | ○
javax.xml.rpc.holders.IntHolder | ○ | × | ×
long | ○ | ○ | ○
javax.xml.rpc.holders.LongHolder | ○ | × | ×
short | ○ | ○ | ○
javax.xml.rpc.holders.ShortHolder | ○ | × | ×
java.lang.Byte | ○ | ○ | ○
javax.xml.rpc.holders.ByteWrapperHolder | ○ | × | ×
java.lang.Byte[] | ○ | ○ | ○
java.lang.Double | ○ | ○ | ○
javax.xml.rpc.holders.DoubleWrapperHolder | ○ | × | ×
java.lang.Float | ○ | ○ | ○
javax.xml.rpc.holders.FloatWrapperHolder | ○ | × | ×
java.lang.Integer | ○ | ○ | ○
javax.xml.rpc.holders.IntegerWrapperHolder | ○ | × | ×
java.lang.Long | ○ | ○ | ○
javax.xml.rpc.holders.LongWrapperHolder | ○ | × | ×
java.lang.Object | × | × | ×
javax.xml.rpc.holders.ObjectHolder | × | × | ×
java.lang.Object[] | × | × | ×
java.lang.Short | ○ | ○ | ○
javax.xml.rpc.holders.ShortWrapperHolder | ○ | × | ×
java.lang.String | ○ | ○ | ○
javax.xml.rpc.holders.StringHolder | ○ | × | ×
java.math.BigDecimal | ○ | ○ | ○
javax.xml.rpc.holders.BigDecimalHolder | ○ | × | ×
java.math.BigInteger | ○ | ○ | ○
javax.xml.rpc.holders.BigIntegerHolder | ○ | × | ×
java.util.Date | ○ | ○ | ○
javax.xml.namespace.QName | ○ | ○ | ○
javax.xml.rpc.holders.QNameHolder | ○ | × | ×
java.lang.Boolean | ○ | ○ | ○
javax.xml.rpc.holders.BooleanWrapperHolder | ○ | × | ×
java.util.Calendar | ○ | ○ | ○
javax.xml.rpc.holders.CalendarHolder | ○ | × | ×

（凡例）

○：利用できます。

×：利用できません。

メソッドのオーバーロード

SessionBeanを利用したサービス部品では，同じ名称のメソッドは指定できません。

トランザクション

SessionBeanのトランザクション管理種別（transaction-type）やメソッドに割り当てるトランザクション属性（trans-attribute）は，HCSCサーバからのトランザクションを引き継がないよう設定します。SessionBeanを利用したサービス部品には，トランザクションを引き継げません。

サービス部品でのトランザクション属性の指定の可否を次の表に示します。

表2-14　サービス部品でのトランザクション属性の指定可否

サービス部品のトランザクションモード | Tx属性 | 指定の可否
BMT | － | ○
CMT | Required | ×
RequiresNew | ○
Supports | ×
NotSupported | ○
Mandatory | ×
Never | ×

（凡例）

○：利用できます（EJBの仕様どおりに動作します）。

×：利用できません。

－：該当しません。

メソッドの例外

メソッドのthrows節に記載できる例外は，java.rmi.RemoteException，およびjava.lang.RuntimeExceptionの継承クラスだけです。

SessionBeanの種別

SessionBeanのサービス部品は，Stateless Session Beanとして作成されている必要があります。

Cosminexus サービスプラットフォームの実行環境では，EJBサービスに対する実行要求ごとに接続(create)と切断(remove)を発行します。そのため，Stateful Session Beanを使用して内部的な状態を保持するようなサービス部品は利用できません。

(4)　スキーマの形式

SessionBeanを利用したサービス部品で利用するスキーマは，「2.6.5　XMLスキーマの適用範囲」に示す条件を満たしている必要があります。スキーマの条件の詳細については，「2.6.5　XMLスキーマの適用範囲」を参照してください。

2.6.3　Cosminexus RMのローカルキューを利用したサービス部品の適用範囲

Cosminexus RMのローカルキューを利用したサービス部品の適用範囲を次に示します。

＜この項の構成＞

(1)　前提となる仕様

(2)　メッセージの種別

(3)　スキーマの形式

(1)　前提となる仕様

Cosminexus RMのローカルキューを利用したサービス部品は，EJB 2.0の仕様に従って作成されている必要があります。

(2)　メッセージの種別

サービス部品がCosminexus RMのローカルキューを利用している場合，サービスリクエスタから送信される電文をサービス部品に送信するためのメッセージ種別として，次のメッセージ種別を利用できます。

BytesMessage

ObjectMessage

TextMessage

上記以外のメッセージ種別は利用できません。

(3)　スキーマの形式

Cosminexus RMのローカルキューを利用したサービス部品で利用するスキーマは，「2.6.5　XMLスキーマの適用範囲」に示す条件を満たしている必要があります。スキーマの条件の詳細については，「2.6.5　XMLスキーマの適用範囲」を参照してください。

2.6.4　DBキューを利用したサービス部品の適用範囲

DBキューを利用したサービス部品の適用範囲を次に示します。

＜この項の構成＞

(1)　前提となる仕様

(2)　メッセージの種別

(3)　利用できるデータベース

(4)　スキーマの形式

(1)　前提となる仕様

DBキューを利用したサービス部品は，次のバージョンの仕様に従って作成されている必要があります。

TP1/Server Base Enterprise Option 02-00以降

EJB 2.0（サービス部品をMDBで実装した場合）

(2)　メッセージの種別

サービス部品がDBキューの場合，サービスリクエスタから送信される電文をサービス部品に送信するためのメッセージ種別として，BytesMessageを利用できます。

BytesMessage以外のメッセージ種別は利用できません。

(3)　利用できるデータベース

DBキューを作成できるデータベースはHiRDBだけです。

(4)　スキーマの形式

DBキューを利用したサービス部品で利用するスキーマは，「2.6.5　XMLスキーマの適用範囲」に示す条件を満たしている必要があります。スキーマの条件の詳細については，「2.6.5　XMLスキーマの適用範囲」を参照してください。

2.6.5　XMLスキーマの適用範囲

各サービス部品で利用するXMLスキーマの適用範囲について説明します。

＜この項の構成＞

(1)　利用するXMLスキーマの形式

(2)　外部のXMLスキーマを参照する場合の注意事項

(1)　利用するXMLスキーマの形式

XMLスキーマは次の条件を満たしている必要があります。

スキーマのXSD名前空間が「http://www.w3.org/2001/XMLSchema」であること。

選択したXMLスキーマに，必ずルート要素が記述されていること。

XMLスキーマをファイル指定する場合，ファイル名の長さが128バイト以下であること。

XMLスキーマの属性（attribute）の先頭と末尾にWhite space文字（半角スペース（#x20），タブ（#x9），および改行文字（#xAまたは#xD））を使用していないこと。

maxOccurs属性に大きな値を指定するとメモリを大量に消費します。maxOccurs属性には，できる限りunboundedを指定することをお勧めします。

xsd:element要素の型の定義には，type属性，ref属性または内部定義（complexTypeまたはsimpleType）が使用できます。

ビジネスプロセスの受付として標準受付を使用する場合，xsd:schema要素のelementFormDefault属性には，qualifiedを指定することをお勧めします。

(2)　外部のXMLスキーマを参照する場合の注意事項

XMLスキーマから外部のXMLスキーマを参照して利用する場合の注意事項を，次に示します。

WSDLのwsdl:types要素以下に定義したXMLスキーマのxsd:import要素のschemaLocation属性が指定されていない場合，wsdl:types要素以下のXMLスキーマを使用して名前空間を解決している必要があります。

XMLスキーマのxsd:import要素のschemaLocation属性は必ず指定してください。

xsd:import要素には，必ずnamespace属性を指定してください。

xsd:import要素およびxsd:include要素では，参照の呼び出し階層を20階層以内にしてください。

schemaLocation属性にredefine要素があるスキーマ（2段階以上のredefine）は指定しないでください。

xsd:schema要素のtargetNamespace属性指定されているスキーマからは，targetNamespace属性が指定されていないスキーマをincludeしないでください。

SOAP1.1モードを使用する場合，xsd:import要素のschemaLocation属性，およびxsd:include要素のschemaLocation属性には，UTF-8でパーセントエンコーディングした値でも，パーセントエンコーディングしていない値でも設定できます。ただし，パーセントエンコーディングし，かつファイルパスにディレクトリを含む場合，ディレクトリデリミタ（/）をエンコードしないでください。

SOAP1.1/1.2併用モードを使用する場合，xsd:import要素のschemaLocation属性，およびxsd:include要素のschemaLocation属性には，UTF-8でパーセントエンコーディングした値を指定してください。ただし，パーセントエンコーディングし，かつファイルパスにディレクトリを含む場合，ディレクトリデリミタ（/）をエンコードしないでください。

schemaLocation属性のディレクトリデリミタには「/」を使用してください（「¥」は使用できません）。

XMLスキーマのファイルパスには，次の文字を使用しないでください。
「;」，「?」，「:」，「@」，「&」，「=」，「+」，「$」，「,」，「<」，「>」，「#」，「%」，「"」，「{}，「」」，「|」，「^」，「[]」，「」」，「`」

schemaLocation属性を指定する場合の注意を次に示します。

RFC2396で規定されている文字およびxsd:anyURIを満たす文字を使用してください。ただし，RFC2732（IPv6）は使用できません。

schemaLocation属性を絶対URIで指定する場合は，http，https，およびfileのプロトコルのどれかを使用してください。

schemaLocation属性の指定例を次に示します。

（例1）ローカルにあるXMLスキーマを相対パスで指定

./example/sample.xsd

（例2）ローカルにあるXMLスキーマをURL形式の絶対パスで指定

file:///C:/example/sample.xsd

（例3）リモートにあるXMLスキーマをURLで指定

http://example.com/sample.xsd

3.　プロジェクトの管理とリポジトリの管理

この章では，HCSCTEを組み込んだEclipseでの，HCSCTEのプロジェクトの作成・削除など，プロジェクトの管理について説明します。また，プロジェクトのプロパティの設定で指定したリポジトリの管理についても説明します。

＜この章の構成＞

3.1　プロジェクトの管理

3.2　リポジトリの管理

3.3　設計情報の出力

3.1　プロジェクトの管理

HCSCコンポーネントを開発する前に，HCSCTEプロジェクトを作成して，プロパティを設定します。また，作成したプロジェクトは，必要に応じて，エクスポートおよびインポートします。

＜この節の構成＞

3.1.1　プロジェクトを作成する

3.1.2　プロパティを設定する

3.1.3　プロジェクトをエクスポート/インポートする

3.1.4　プロジェクトを削除する

3.1.5　SOAPモードを変更する

3.1.1　プロジェクトを作成する

HCSCTEプロジェクトを作成する前に，Eclipseのメニューから［ウィンドウ］－［設定］－［Java］－［ビルド・パス］を選択し，「ソースおよび出力フォルダー」に「プロジェクト」を設定してください。

HCSCTEプロジェクトの作成時に，サービスやユーザ定義受付で使用するID（サービスIDおよび受付ID）に任意のプリフィックスを設定できます。なお，プリフィックスは，HCSCTEプロジェクト作成後に設定することもできます。

HCSCTEプロジェクトの作成手順を次に示します。

Eclipseを起動します。

メニューから［ファイル］－［新規］－［プロジェクト］を選択します。
［新規プロジェクト］ダイアログが表示されます。

［HCSCTEプロジェクト］を選択して，［次へ］ボタンをクリックします。
［HCSCTEプロジェクト］ダイアログ（HCSCTEプロジェクト新規作成のページ）が表示されます。

次の項目を設定して，［次へ］ボタンをクリックします。

プロジェクト名

任意の名称を指定します。

デフォルト・ロケーションの使用

［デフォルト・ロケーションの使用］チェックボックスにチェックします。

［HCSCTEプロジェクト］ダイアログ（HCSCTEリポジトリ設定のページ）が表示されます。

次の項目を設定します。

リポジトリディレクトリ

リポジトリ情報を格納する任意のディレクトリを指定します。リポジトリディレクトリを指定する場合は，次の点に注意してください。

・リポジトリディレクトリのパスとプロジェクトのパスには，同じパスを指定しないでください。

・パスは，絶対パスで指定してください。

・パスの長さは，正規化された絶対パスでチェックされます。

・HCSCTEプロジェクトの作成前に設定したSOAPモードと異なるSOAPモードのHCSCTEプロジェクトで設定したリポジトリディレクトリは，使用できません。

ログインユーザ名

リポジトリログインに使用するユーザ名を指定します。ユーザ名に使用できる文字は半角英数字だけで，長さは1～16文字になります。

サービスIDおよび受付IDにプリフィックスを設定する場合は，［次へ］ボタンをクリックします。プリフィックスを設定しない場合は，手順8.に進んでください。
［HCSCTEプロジェクト］ダイアログ（HCSCTEプリフィックス設定のページ）が表示されます。

サービスIDおよび受付IDのプリフィックスを指定します。
サービスIDおよび受付IDのプリフィックスは，3文字までの半角英数字およびアンダーライン（_）で指定してください。

［終了］ボタンをクリックします。
HCSCTEのプロジェクトが作成され，作成したHCSCTEのプロジェクトのパースペクティブが起動します。

注意

HCSCTEプロジェクトは，ワークスペースに一つしか作成できません。

3.1.2　プロパティを設定する

ここでは，HCSCTEのプロジェクトを作成したあとに実施するプロパティの設定について説明します。

＜この項の構成＞

(1)　リポジトリの設定

(2)　Javaのビルド・パスの指定

(3)　検証設定

(4)　サービスIDおよび受付IDに付加するプリフィックスの設定

(1)　リポジトリの設定

HCSCTEプロジェクト作成時と異なるリポジトリを使用する場合，必要に応じてリポジトリとして利用するディレクトリを指定します。

リポジトリの設定については，「3.2.1　リポジトリを設定する」を参照してください。

(2)　Javaのビルド・パスの指定

コンパイル時に使用するJARファイルをビルドパスに追加します。

Eclipseのメニューから，［プロジェクト］－［プロパティ］を選択します。
［プロパティ：HCSCTE※］ダイアログが表示されます。
注※　「HCSCTE」の部分には，プロジェクト名が表示されます。

ダイアログ左側のツリービューから［Javaのビルド・パス］を選択し，次に示すJARファイルを追加します。
<Cosminexusのインストールディレクトリ>¥CSC¥lib¥cscbp_ejb.jar

(3)　検証設定

検証設定では，データベースで使用する文字コードを指定します。

検証設定で文字コードを指定する手順を次に示します。

Eclipseのメニューから，［プロジェクト］－［プロパティ］を選択します。
［プロパティ：HCSCTE※］ダイアログが表示されます。
注※　「HCSCTE」の部分には，プロジェクト名が表示されます。

ダイアログ左側のツリービューから，［HCSC-Definer］－［検証設定］を選択します。
ダイアログ右側に，検証設定に関する設定項目が表示されます。

［文字コード］に，データベースで使用する文字コードを指定します。
ここで指定した値を使用して，サービス名やビジネスプロセスのアクティビティ名などの文字列長の検証が行われます。

［適用］ボタン，［OK］ボタンの順にクリックします。

(4)　サービスIDおよび受付IDに付加するプリフィックスの設定

サービスIDおよび受付IDに，任意のプリフィックスを指定する場合の手順を次に示します。

Eclipseのメニューから，［プロジェクト］－［プロパティ］を選択します。
［プロパティ：HCSCTE※］ダイアログが表示されます。
注※　「HCSCTE」の部分には，プロジェクト名が表示されます。

ダイアログ左側のツリービューから，［HCSC-Definer］－［プリフィックス設定］を選択します。
ダイアログ右側に，プリフィックス設定に関する設定項目が表示されます。

［サービスID］および［受付ID］に，付加するIDを指定します。
サービスIDおよび受付IDのプリフィックスは，3文字までの半角英数字およびアンダーライン（_）で指定してください。

［適用］ボタン，［OK］ボタンの順にクリックします。

3.1.3　プロジェクトをエクスポート/インポートする

Eclipseの標準機能を使用して，HCSCTEプロジェクトをエクスポートできます。また，エクスポートしたHCSCTEプロジェクトを，インポートすることもできます。ただし，一つのワークスペースに，同時に二つ以上のHCSCTEプロジェクトを作成することはできません。

エクスポート方法およびインポート方法の詳細については，Eclipseのドキュメントを参照してください。

3.1.4　プロジェクトを削除する

HCSCTEプロジェクトを削除する手順を次に示します。

パッケージ・エクスプローラーから削除するプロジェクトを選択します。

メニューから［編集］－［削除］を選択します。
選択したプロジェクトが削除されます。

3.1.5　SOAPモードを変更する

HCSCTEプロジェクトを作成したあとにSOAPモードを変更するには，HCSCTEプロジェクトを作成し直す必要があります。

SOAPモードを変更する手順を次に示します。

作成したHCSCTEプロジェクトを削除します。
HCSCTEプロジェクトの削除については，「3.1.4　プロジェクトを削除する」を参照してください。

Eclipseを終了します。

SOAPモードを設定します。
SOAPモードの設定方法については，「2.2.3　SOAPモードの設定」を参照してください。

Eclipseを起動します。

HCSCTEプロジェクトを作成します。
HCSCTEプロジェクトの作成については，「3.1.1　プロジェクトを作成する」を参照してください。

3.2　リポジトリの管理

リポジトリとは，開発環境と運用環境で共有する情報を格納するディレクトリのことをいいます。開発環境では，HCSCTEプロジェクトの作成時にリポジトリを設定します。また，設定したリポジトリは，必要に応じて，エクスポートおよびインポートします。

注意

バージョン07-60以降では，開発環境と運用環境で同じリポジトリを共有できません。旧バージョンでリポジトリを共有していた場合，開発環境と運用環境で別々のリポジトリを用意して，移行してください。移行手順については，「付録A.3　旧バージョンで開発環境と運用環境のリポジトリを共有していた場合の移行手順」を参照してください。

＜この節の構成＞

3.2.1　リポジトリを設定する

3.2.2　リポジトリをエクスポートする

3.2.3　リポジトリをインポートする

3.2.1　リポジトリを設定する

ここでは，HCSCTEプロジェクトの作成時に設定したリポジトリを変更する方法について説明します。

＜この項の構成＞

(1)　リポジトリの指定

(2)　リポジトリの初期化

(3)　リポジトリの変更

(4)　リポジトリの注意事項

(1)　リポジトリの指定

リポジトリとするディレクトリを指定します。

リポジトリを指定する手順を次に示します。

Eclipseのメニューから，［プロジェクト］－［プロパティ］を選択します。
［HCSCTE※のプロパティ］ダイアログが表示されます。
注※　「HCSCTE」の部分には，プロジェクト名が表示されます。

ダイアログ左側のツリービューから，［HCSC-Definer］－［リポジトリ設定］を選択します。
ダイアログ右側に，リポジトリの設定項目が表示されます。

［リポジトリディレクトリ］に，リポジトリとする任意のディレクトリを指定します。
［リポジトリディレクトリ］を指定する場合は，次の点に注意してください。

すでに存在するディレクトリを指定してください。

リポジトリディレクトリのパスとプロジェクトのパスには，同じパスを指定しないでください。

パスは，絶対パスで指定してください。

パスの長さは，正規化された絶対パスでチェックされます。

HCSCTEプロジェクトの作成前に設定したSOAPモードと異なるSOAPモードのHCSCTEプロジェクトで設定したリポジトリディレクトリは，使用できません。

［ログインユーザ名］に，ログインに使用する任意のユーザ名を入力します。
ユーザ名に使用できる文字は半角英数字だけで，長さは1～16文字になります。

［適用］ボタン，［OK］ボタンの順にクリックします。

(2)　リポジトリの初期化

リポジトリの初期化を行うと，リポジトリの内容をすべて消去し，リポジトリを初期状態に戻すことができます。

リポジトリを初期化する前に，必ずすべてのエディタを閉じてください。また，HCSCTEプロジェクトのlibディレクトリやsrcディレクトリにアクセスしないようにしてください。エラーが発生した場合，次の点を確認してください。

HCSCTEプロジェクトのsrcディレクトリ以下のファイルを開いたエディタ（外部エディタを含む）を閉じているか

HCSCTEプロジェクトのlibディレクトリ以下のライブラリを利用したプログラムを実行していないか

リポジトリを初期化する手順を次に示します。

Eclipseのメニューから，［HCSC-Definer］－［定義情報管理］－［定義情報初期化］を選択します。
メッセージダイアログが表示されます。

(3)　リポジトリの変更

リポジトリとするディレクトリを変更する場合の手順は，「3.2.1(1) リポジトリの指定」と同じ手順になります。リポジトリを変更する場合，アダプタ定義やビジネスプロセス定義など，リポジトリの変更以外の作業は終了させてください。

［デフォルトの復元］ボタンをクリックした場合，前回指定したリポジトリが設定されます。

(4)　リポジトリの注意事項

リポジトリのファイルおよびディレクトリは，直接操作しないでください。ファイルおよびディレクトリの名前の変更，削除，内容の変更などを行った場合，動作の保証はできません。

3.2.2　リポジトリをエクスポートする

リポジトリのエクスポートでは，リポジトリを一つのZIPファイルにして，指定したディレクトリに保存することができます。

リポジトリをエクスポートする手順を次に示します。

Eclipseのメニューから，［HCSC-Definer］－［定義情報管理］－［全定義情報エクスポート］を選択します。
［リポジトリエクスポート］ダイアログが表示されます。

保存するディレクトリを指定し，保存するZIPファイルのファイル名を入力します。

［保存］ボタンをクリックします。
指定したディレクトリにZIPファイルが保存されます。
保存先のディレクトリに同じファイル名称のファイルがある場合，上書きを確認するダイアログが表示されます。上書きしてよいときは，［はい］ボタンをクリックして保存します。

参考

必要に応じてリポジトリをエクスポートし，リポジトリのデータをバックアップすることをお勧めします。

3.2.3　リポジトリをインポートする

リポジトリのインポートでは，エクスポートでZIPファイルにしたリポジトリを読み込むことができます。インポートできる定義情報は，リポジトリに格納されたサービス定義とシステム構成定義です。エクスポートされたリポジトリと，インポート先のリポジトリのSOAPモードが一致している場合に，インポートできます。

リポジトリのインポート方法には，次の二つの方法があります。

ZIPファイル内のサービス定義とシステム構成定義，またはどちらか一方をインポートする

ZIPファイル内のサービス定義の一部だけをインポートする

二つのインポート方法の使い分けについて次の図に例示します。

図3-1　二つのインポート方法の使い分け（例）

この図の例に示すように，複数の開発環境で同時にHCSCコンポーネントを開発する場合，それぞれの開発環境のリポジトリをエクスポートして，マスタのリポジトリにインポートします。このとき，サービス定義の中で必要な情報だけをインポートします。また，運用環境でエクスポートされたリポジトリの情報を開発環境のリポジトリ（マスタ）にインポートする場合，サービス定義とシステム構成定義をインポートします。

なお，エクスポートした情報は，媒体を利用しないでネットワーク経由で受け渡すこともできます。

注意

リポジトリをインポートする場合，アダプタ定義やビジネスプロセス定義などのすべてのエディタを閉じてください。また，HCSCTEプロジェクトのlibディレクトリやsrcディレクトリにアクセスしないようにしてください。エラーが発生した場合，次の点を確認してください。

HCSCTEプロジェクトのsrcディレクトリ以下のファイルを開いたエディタ（外部エディタを含む）を閉じているか

HCSCTEプロジェクトのlibディレクトリ以下のライブラリを利用したプログラムを実行していないか

二つのインポート方法の詳細を次に説明します。

＜この項の構成＞

(1)　サービス定義とシステム構成定義をインポートする

(2)　サービス定義の一部だけをインポートする

(1)　サービス定義とシステム構成定義をインポートする

(a)　インポート手順

リポジトリ中のサービス定義とシステム構成定義をインポートする手順を次に示します。

Eclipseのメニューから，［HCSC-Definer］－［定義情報管理］－［全定義情報インポート］を選択します。
インポートを確認するダイアログが表示されます。

［はい］ボタンをクリックします。
リポジトリ情報のZIPファイルを選択する［リポジトリインポート］ダイアログが表示されます。

読み込むZIPファイルを指定します。

［開く］ボタンをクリックします。

［OK］ボタンをクリックします。
インポート対象の定義情報を選択する［リポジトリインポート］ダイアログが表示されます。

インポートしたい定義のチェックボックスにチェックします。
初めてインポートする場合は，［サービス定義］と［システム構成定義］の両方にチェックしてください。

［OK］ボタンをクリックします。
「3.2.1(1) リポジトリの指定」で指定したディレクトリにリポジトリが読み込まれます。

(b)　注意事項

旧バージョンのリポジトリをインポートすると，リポジトリ情報が今バージョンに引き継がれます。

Java呼出アクティビティで利用するユーザ定義Javaクラス，またはユーザ定義Javaクラスの前提ライブラリをインポートした場合，HCSCTEプロジェクトをビルドしてください。

サービス定義，システム構成定義のどちらか一方だけをインポートする場合，ZIPファイル中のインポート対象の定義情報と現在のリポジトリ内の情報（サービス定義またはシステム構成定義）の整合性が保たれている必要があります。不整合がある場合はエラーとなり，サービス定義やシステム構成定義をリポジトリにインポートできません。
リポジトリのインポートで整合性をチェックしている内容を次に示します。

サービス定義だけをインポートする場合

リポジトリ内の公開済みサービス定義と，対応するZIPファイル中のサービス定義について，整合性をチェックした場合に，エラーになる条件を次に示します。

表3-1　リポジトリのインポートの整合性チェックでエラーになる条件（サービス定義だけをインポートする場合1）

項番 | エラーになる条件
1 | サービスIDが一致しない
2 | サービス名が一致しない※1
3 | 種別（サービスアダプタまたはビジネスプロセス）が一致しない※1
4 | ビジネスプロセスのバージョンが一致しない※1，2
5 | ビジネスプロセスに定義されているユーザ定義受付の数が一致しない※1
6 | ビジネスプロセスに定義されているユーザ定義受付の受付IDが一致しない※1
7 | ビジネスプロセスに定義されているユーザ定義受付の受付名が一致しない※1
8 | ZIPファイル中のサービス定義がパッケージングされていない※1，2

注※1　サービスIDが一致するサービス定義同士をチェックします。

注※2　旧バージョンで作成したリポジトリの場合はチェックしません。

また，リポジトリ内の公開済みサービス定義と，サービスIDが一致するZIPファイル中のサービス定義について，整合性をチェックした場合に，エラーになる条件を次に示します。なお，リポジトリ内のシステム構成定義で定義されているサーバ構成によって，エラーになる条件が異なります。

表3-2　リポジトリのインポートの整合性チェックでエラーになる条件（サービス定義だけをインポートする場合2）

項番
リポジトリ内の情報
エラーになる条件
（サービスIDが一致するZIPファイル中のサービス定義）

システム構成定義で定義されているサーバ構成
公開済みのサービス定義（サービスの種別）

データベースの使用有無
Cosminexus RMの使用有無

1
使用する
使用する
すべて
－

2
使用しない
使用しない
ビジネスプロセス
ステータスの永続化にyesが設定されている

3

Webサービス

SessionBean

カスタムアダプタ

サービスの種別にMDB_WSRまたはMDB_DBQが設定されている

4
使用する
使用しない
ビジネスプロセス
ステータスの永続化にyesが設定されている

5

Webサービス

SessionBean

カスタムアダプタ

サービスの種別にMDB_WSRまたはMDB_DBQが設定されている

（凡例）

－：エラーになる条件はありません。

エラーが発生した場合の対処方法

現状のリポジトリ内のサービスをすべて非公開にして，再度，サービス定義だけをインポートしてください。

システム構成定義だけをインポートする場合

ZIPファイル中の公開済みサービス定義と，リポジトリ内のサービス定義について，整合性をチェックした場合に，エラーになる条件を次に示します。

表3-3　リポジトリのインポートの整合性チェックでエラーになる条件（システム構成定義だけをインポートする場合1）

項番 | エラーになる条件
1 | サービスIDが一致しない
2 | サービス名が一致しない※1
3 | 種別（サービスアダプタまたはビジネスプロセス）が一致しない※1
4 | ビジネスプロセスのバージョンが一致しない※1，2
5 | ビジネスプロセスに定義されているユーザ定義受付の数が一致しない※1
6 | ビジネスプロセスに定義されているユーザ定義受付の受付IDが一致しない※1
7 | ビジネスプロセスに定義されているユーザ定義受付の受付名が一致しない※1
8 | ZIPファイル中のサービス定義がパッケージングされていない※1，2

注※1　サービスIDが一致するサービス定義同士をチェックします。

注※2　旧バージョンで作成したリポジトリの場合はチェックしません。

また，ZIPファイル中の公開済みサービス定義と，サービスIDが一致するリポジトリ内のサービス定義について，整合性をチェックした場合に，エラーになる条件を次に示します。なお，ZIPファイル中のシステム構成定義で定義されているサーバ構成によって，エラーになる条件が異なります。

表3-4　リポジトリのインポートの整合性チェックでエラーになる条件（システム構成定義だけをインポートする場合2）

項番
ZIPファイル中の情報
エラーになる条件
（サービスIDが一致するZIPファイル中のサービス定義）

システム構成定義で定義されているサーバ構成
公開済みのサービス定義（サービスの種別）

データベースの使用有無
Cosminexus RMの使用有無

1
使用する
使用する
すべて
－

2
使用しない
使用しない
ビジネスプロセス
ステータスの永続化にyesが設定されている

3

Webサービス

SessionBean

カスタムアダプタ

サービスの種別にMDB_WSRまたはMDB_DBQが設定されている

4
使用する
使用しない
ビジネスプロセス
ステータスの永続化にyesが設定されている

5

Webサービス

SessionBean

カスタムアダプタ

サービスの種別にMDB_WSRまたはMDB_DBQが設定されている

（凡例）

－：エラーになる条件はありません。

エラーが発生した場合の対処方法

次の手順を実行して，対処してください。

1. 現状のリポジトリをエクスポート（rep.zip）して退避します。

2. インポートしようとしたアーカイブファイルから，サービス定義とシステム構成定義の両方をインポートします。

3. 手順2でインポートしたサービス定義をすべて非公開にします。

4. 手順1で退避しておいたrep.zipから，サービス定義だけをインポートします。

(2)　サービス定義の一部だけをインポートする

サービス定義の一部だけをインポートする場合，インポートの対象として選択できるのは次の情報です。

HCSCコンポーネント（サービスアダプタ，ビジネスプロセス）に関する定義

ユーザ定義Javaクラスのソースファイル

ユーザ定義Javaクラスの前提ライブラリファイル

インポートの対象は複数選択できます。インポート対象として選択したビジネスプロセスから呼び出されるサービスアダプタおよびビジネスプロセスは，必要に応じて同時にインポートされます。また，インポート対象のビジネスプロセスに関連するユーザ定義受付も同時にインポートされます。

インポート時に，任意のサービスIDまたは受付IDを指定して，サービスやユーザ定義受付をインポートできます。

(a)　インポート手順

サービス定義の一部だけをインポートする手順を次に示します。

Eclipseのメニューから，［HCSC-Definer］－［定義情報管理］－［サービスインポート］を選択します。
アーカイブファイル（ZIPファイル）を選択するダイアログが表示されます。

インポートする情報を含むアーカイブファイルを選択して，［開く］ボタンをクリックします。
［サービスインポート］ダイアログ（サービスの選択）が表示されます。

インポートするサービスのチェックボックスにチェックします。

必要に応じて，インポートするサービスの［取込後ID］を変更します。
次の点に注意してIDを指定してください。

IDは8バイト以内の英数字およびアンダーライン（_）で指定してください。

すでにインポート先で使用されているIDは指定できません。
ただし，インポート先で使用されているIDであっても，同時にインポートするサービスによってそのIDが使用されなくなる場合は，IDとして指定できます。

ほかのサービスまたはユーザ定義受付と同じIDは指定できません。

複数のリポジトリで分散開発されたサービスを統合する場合，すべてのサービスがインポートされるまでにインターフェースの不整合が発生し，備考欄に警告メッセージが表示されることがあります。サービスを統合するまでに発生する不整合が意図したものであれば，備考欄に警告メッセージが表示されても問題ありません。
ただし，インターフェースに不整合がある場合，設計情報が正しく出力されないため，設計情報を出力しないでください。

［OK］ボタンをクリックします。
ユーザ定義Javaクラスの有無がチェックされます。
ユーザ定義Javaクラスがある場合，［サービスインポート］ダイアログ（ユーザ定義Javaクラスの選択）が表示されます。次の手順に進んでください。
ユーザ定義Javaクラスがない場合，「3.2.1(1) リポジトリの指定」で指定したディレクトリに，選択したリポジトリの内容が読み込まれます。

表示されたインポート必須サービスを確認して，［OK］ボタンをクリックします。
ユーザ定義Javaクラスの有無がチェックされます。
ユーザ定義Javaクラスがある場合，［サービスインポート］ダイアログ（ユーザ定義Javaクラスの選択）が表示されます。
ユーザ定義Javaクラスがない場合，「3.2.1(1) リポジトリの指定」で指定したディレクトリに，選択したリポジトリの内容が読み込まれます。

インポートするユーザ定義Javaクラス，およびその前提ライブラリファイルのチェックボックスにチェックします。

［OK］ボタンをクリックします。
「3.2.1(1) リポジトリの指定」で指定したディレクトリに，選択したリポジトリの内容が読み込まれます。

ポイント

同じ名称のHCSCコンポーネントがリポジトリで公開されている場合など，インポートの対象として選択できない場合，［サービスインポート］ダイアログ（サービスの選択）中のサービスの表示は非活性になります。［備考］の内容を参考に，原因を取り除いてから再度インポートしてください。

インポートしたHCSCコンポーネント（サービスアダプタ，ビジネスプロセス）は，必ずパッケージングしてください。パッケージングの方法については，「9.2　パッケージング」を参照してください。

Java呼出アクティビティで利用するユーザ定義Javaクラス，またはユーザ定義Javaクラスの前提ライブラリをインポートした場合，HCSCTEプロジェクトをビルドしてください。

(b)　注意事項

リポジトリ中で同じ名称のHCSCコンポーネントが公開済みの場合，インポートできません。インポートする前に非公開にしてください。

リポジトリのサービス定義の一部だけをインポートする場合，システム構成定義はインポートされません。すでに公開しているHCSCコンポーネントをインポートすると，インポートしたHCSCコンポーネントは非公開になります。

インポート先のリポジトリに，インポート対象のHCSCコンポーネントと同じ名称のHCSCコンポーネントがある場合，内容がすべて上書きされます。サービスID，フォーマットID，ユーザ定義受付IDはすべて更新されます。

バージョンアップしたビジネスプロセスをインポートした場合，インポートしたビジネスプロセスのバージョンは「1」になります。

古いバージョンで作成したリポジトリから，サービス定義の一部だけをインポートすることはできません。次の手順でリポジトリを移行し，サービス定義の一部をインポートしてください。
1. 現在のリポジトリをアーカイブファイルにエクスポートします。
2. 旧バージョンのアーカイブファイルから，すべての定義情報をインポートします。
3. 手順2でインポートした定義情報を別のアーカイブファイルにエクスポートします。
4. 手順1でエクスポートしたアーカイブファイルから，すべての定義情報をインポートします。
5. 手順3でエクスポートしたアーカイブファイルから，サービス定義の一部をインポートします。

3.3　設計情報の出力

開発環境では，リポジトリの概要情報，ビジネスプロセスの定義情報，およびサービスアダプタの定義情報を設計情報としてHTMLファイルに出力できます。設計情報を出力すると，開発環境の画面を利用しないで，定義した情報を確認できるため，作業の効率化が図れます。また，設計情報は統一されたフォーマットでHTMLファイルに出力されます。

設計情報の出力の概要を次の図に示します。

図3-2　設計情報の出力の概要

＜この節の構成＞

3.3.1　設計情報として出力できる情報

3.3.2　出力前の確認事項

3.3.3　設計情報の出力方法

3.3.1　設計情報として出力できる情報

設計情報として出力できる情報は，設計情報の出力ウィザードで選択できます。設計情報として出力できる情報を次の図に示します。

図3-3　設計情報として出力できる情報

タイトル

設計情報の出力ウィザードの［タイトル］に指定した文字列が出力されます。

作成日時

設計情報の出力を開始したときの日時が出力されます。「YYYY/MM/DD　hh:mm:ss」の形式で表示されます。

作成者

設計情報の出力ウィザードの［作成者］に作成者を指定した場合，指定した作成者が出力されます。「×× 作 成」の形式で表示されます。「××」は作成者を示します。

作成者を指定しなかった場合，作成者は出力されず，「作 成」だけが表示されます。

目次

出力情報の目次が出力されます。

リポジトリの概要情報

製品バージョン，およびリポジトリに存在するすべてのサービス部品の概要情報と各サービスの依存関係が出力されます。

ビジネスプロセスの定義情報

ビジネスプロセス定義画面でユーザが定義した情報がサービス部品単位で出力されます。ビジネスプロセスの定義情報には，ビジネスプロセス定義画面で定義したアクティビティの配置図も含まれます。

サービスアダプタの定義情報

サービスアダプタ定義画面でユーザが定義した情報がサービス部品単位で出力されます。

リポジトリ概要，ビジネスプロセス情報，サービスアダプタ情報に出力できる情報を次に説明します。また，ビジネスプロセス情報内に含まれるデータ変換の定義情報についても説明します。

＜この項の構成＞

(1)　リポジトリ概要

(2)　ビジネスプロセス情報

(3)　サービスアダプタ情報

(4)　データ変換の定義情報

(1)　リポジトリ概要

リポジトリ概要を次の図に示します。

図3-4　リポジトリ概要

バージョン情報

uCosminexus Service Architectの製品バージョンが出力されます。

サービス一覧

設計情報の出力ウィザードで選択したサービス部品の概要情報が出力されます。

依存関係

設計情報の出力ウィザードで選択した各サービス部品の依存関係が出力されます。

(2)　ビジネスプロセス情報

ビジネスプロセス情報は，スコープアクティビティおよび繰り返しアクティビティが定義されているかどうかによって，出力される情報が異なります。

ビジネスプロセス情報を次の図に示します。

図3-5　ビジネスプロセス情報

「×××」の共通情報

ビジネスプロセスを作成するときに設定する情報，サービス部品の依存関係，およびアクティビティの一覧が出力されます。「×××」にはビジネスプロセス名が表示されます。

「×××」のオペレーション情報

ビジネスプロセスのオペレーション一覧，およびオペレーションごとの通信モデルや電文の定義情報がオペレーションの詳細情報として出力されます。

「×××」の変数情報

ビジネスプロセスで定義されているすべてのグローバル変数の情報が出力されます。

「×××」の相関セット情報

ビジネスプロセスで定義されているすべての相関セットの情報が出力されます。

「×××」のユーザ定義受付情報

ビジネスプロセスで定義されているユーザ定義受付の一覧，および各ユーザ定義受付の詳細情報が出力されます。

ビジネスプロセス内のアクティビティ情報

キャンバス上に配置した各アクティビティの情報が出力されます。

□□□内のアクティビティ情報

スコープアクティビティまたは繰り返しアクティビティの情報が繰り返し出力されます。「△△△」には「スコープ」または「繰り返し」が，「□□□」にはスコープアクティビティ名または繰り返しアクティビティ名が表示されます。

(3)　サービスアダプタ情報

サービスアダプタ情報を次の図に示します。

図3-6　サービスアダプタ情報

「×××」の共通情報

サービス部品制御情報，および呼出し元サービスが出力されます。「×××」にはサービス名が表示されます。

「×××」のオペレーション情報

アダプタのオペレーション一覧，およびオペレーションごとの通信モデルや電文の定義情報がオペレーションの詳細情報として出力されます。

「×××」の固有情報

開発環境の画面でアダプタを定義したときに設定した情報が，サービス種別ごとに出力されます。「△△△」にはサービス種別が表示されます。固有情報を参照するときに注意する点を，サービス種別ごとに次に示します。

Webサービスの場合

ベーシック認証を使用する場合，どのようなパスワードが設定されていても「****」が表示されます。

クライアント定義ファイルにXMLで使用できない文字が存在する場合，クライアント定義ファイルは正しく出力されません。

SessionBeanの場合

クライアント定義ファイルにXMLで使用できない文字が存在する場合，クライアント定義ファイルは正しく出力されません。

MDB（WS-R）の場合

ベーシック認証を使用する場合，どのようなパスワードが設定されていても「****」が表示されます。

MDB（DBキュー）の場合

固有情報は出力されません。

汎用カスタムアダプタの場合

独自定義ファイルがXML形式でない場合，独自定義ファイルは正しく出力されません。

(4)　データ変換の定義情報

ビジネスプロセスまたはサービスアダプタでデータ変換を定義した場合，データ変換の対応表が出力されます。データ変換の対応表を次の図に示します。

図3-7　データ変換の対応表

変換先

変換先スキーマに含まれる各ノードが出力されます。

代入値

変換先ノードに代入する値が出力されます。一つまたは複数の関数

（ファンクション）や変換元ノードが出力されます。

関数詳細

「代入値」に出力された関数（ファンクション）に詳細情報がある場合，その詳細情報が出力されます。「代入値」に出力された関数（ファンクション）に複数の詳細情報がある場合は，複数の詳細情報が出力されます。

依存対象

「代入値」が依存するくり返しファンクションが出力されます。

「代入値」および「関数詳細」に出力される情報をファンクションごとに次の表に示します。

表3-5　「代入値」および「関数詳細」に出力される情報

項番
ファンクション名
代入値の出力形式
関数詳細の出力形式

1
文字列連結
concat* (＜連結する対象＞, …)
－

2
部分文字列取得
substr*(＜分割する対象＞)
「・substr*」あとに次のどれかが出力されます。

取得方法=先頭からの範囲指定, 開始位置=＜開始位置＞, ＜文字数=文字数 | 開始位置から末尾までを取得＞

取得方法=末尾からの範囲指定, 開始位置=＜開始位置＞,＜文字数=文字数 | 開始位置から先頭までを取得＞

取得方法=分割文字列指定, 分割文字列='＜分割に利用する文字列＞', 取得部位=＜前 | 後＞

3
文字数取得
length*(＜文字数を取得する対象＞)
－

4
文字列調査
contain*(＜特定の文字列が含まれているかどうかを調査する対象＞)
・contain*
調査種別=＜指定文字列を含む | 指定文字列から開始＞, 調査文字列='＜調査文字列＞'

5
空白除去
trim*(＜空白を除去する対象＞)
－

6
数値フォーマット変換
format*(＜フォーマットしたい数値＞)
・format*
パターン='＜フォーマットパターン＞', 記号の変更=＜なし | (小数点文字='＜小数点文字＞', 桁区切り文字='＜桁区切り文字＞')＞

7
数値演算
calc*(＜一つ目の演算の対象＞, '＜+ | - | * | / | %＞', ＜二つ目の演算の対象＞)
－

8
端数処理
round*(＜端数処理を行う対象＞)
・round*
端数処理種別=＜四捨五入 | 切り捨て | 切り上げ＞

9
総和
sum*(＜総和を取る対象＞, …)
－

10
ノード数取得
count*(＜ノード数を取得したいノード＞)
－

11
ノード名取得
name*(＜ノード名を取得したいノード＞)
－

12
ノード調査
exist*(＜存在を確認したいノード＞)
－

13
くり返し
loop*(＜ループの基準となるパス＞)
・loop*
ソート条件＜無 | キー=＜キーとなるノード＞, 順序=＜昇順 | 降順＞, 言語=＜自動 | 日本語 | 英語＞, タイプ=＜テキスト | 数値＞, 優先順位=＜大文字 | 小文字＞＞

14
選択
choose*([＜条件値＞]=>[＜出力値＞], …, [どの条件にも合致しない場合]=>[＜出力値＞])
[＜出力値＞]には次のどれかが出力されます。

ノードを出力しない

空ノード

＜出力される値＞

値を出力する

－

15
定数
const*(＜文字列:'＜値＞' | 数値: '＜値＞' | 論理値:＜真 | 偽＞| 特殊ノード:＜ノード出力なし | 空ノード＞＞)
－

16
値置換え
replace*(＜置換対象のノード＞)
・replace*
変換テーブル ID='＜変換テーブルID＞', パスプロパティ='csc.dt.valueTable.＜変換テーブルID＞', コードプロパティ='csc.dt.encodeType.＜変換テーブルID＞', 検索キー列指定=＜左列 | 右列＞, 検索失敗時の動作=＜デフォルト値を代入, 値= '＜値＞' | 変換エラー＞

17
カスタム
custom*(＜引数の入力値＞, …)

注

引数がない場合は，丸括弧の中には何も表示されません。

・custom*
jar ファイル='＜jarファイル名＞', クラス='＜クラス名＞', メソッド='＜メソッド名＞', メソッドの説明='＜メソッドの説明＞'

注

引数がある場合は，上記形式で表示される情報の直下に引数名と引数の説明が一覧表で表示されます。

（凡例）

－：出力される情報はありません。

3.3.2　出力前の確認事項

設計情報を出力する前の確認事項を次に示します。

＜この項の構成＞

(1)　利用できるWebブラウザ

(2)　リポジトリの状態

(3)　設計情報の出力先

(4)　設計情報の出力時間

(5)　設計情報の印刷

(6)　Windows VistaおよびWindows 7で使用する場合

(1)　利用できるWebブラウザ

出力した設計情報（HTML）を参照するためには，次のWebブラウザを利用してください。

Internet Explorer 6

Internet Explorer 7

Internet Explorer 8

Internet Explorer 9

(2)　リポジトリの状態

設計情報を出力する場合，HCSCコンポーネントのパッケージングでエラーが発生しない状態のリポジトリを使用することをお勧めします。データ変換定義の検証エラーによってパッケージング時にエラーが発生した場合，検証エラーとなったデータ変換定義の対応表は出力されません。

なお，データ変換定義の検証エラーが発生した場合，コンソールビューにエラーが発生したことを通知するメッセージが表示されます。また，設計情報の出力終了時に，エラーが発生したことを通知するダイアログが表示されます。

(3)　設計情報の出力先

設計情報の出力先は，ディレクトリまたはファイルが存在しない場所を指定してください。ディレクトリまたはファイルが存在する場合，ファイルが上書きされたり，不要なファイルが残ったりすることがあります。なお，指定した設計情報の出力先に，ディレクトリまたはファイルが存在する場合は，処理を続行するかを問い合わせるダイアログが表示されます。

(4)　設計情報の出力時間

出力対象のデータが大きい場合や使用するマシンの性能によっては，設計情報の出力に時間が掛かることがあります。設計情報の出力中は，Eclipse上でほかの作業はできませんので注意してください。

(5)　設計情報の印刷

ブラウザから印刷する場合，印刷用紙のサイズが小さいと出力内容の右端が切れて印刷されることがあります。そのため，印刷前に印刷プレビュー機能で印刷内容を確認して，適切な用紙サイズおよび余白を設定することをお勧めします。

(6)　Windows VistaおよびWindows 7で使用する場合

設計情報の出力先ディレクトリに管理者特権が必要なディレクトリを指定する場合は，MyEclipse for Cosminexusを管理者特権で実行してください。管理者特権が付与されていない場合，設計情報の出力中にエラーが発生します。

3.3.3　設計情報の出力方法

設計情報の出力方法を次に示します。

メニューから［HCSC-Definer］－［設計情報の出力］を選択します。

サービスまたはユーザ定義受付を編集中の場合

編集中のサービスまたはユーザ定義受付の保管（非公開化）を確認するダイアログが表示されます。複数のサービスまたはユーザ定義受付が編集中の場合は，複数回ダイアログが表示されます。保管する場合は［はい］ボタンをクリックします。これ以降，確認ダイアログを表示しないで，すべて保管する場合は［すべてはい］ボタンをクリックします。保管しない場合は［キャンセル］ボタンをクリックして，処理を終了します。

手順2.に進みます。

サービスまたはユーザ定義受付を編集中でない場合

設計情報の出力ウィザードが表示されます。手順3.に進みます。

［はい］ボタンまたは［すべてはい］ボタンをクリックします。
設計情報の出力ウィザード（基本情報の入力ページ）が表示されます。なお，編集中のサービスまたはユーザ定義受付が配備定義（公開）されているか配備定義されていないか（非公開）によって，次のように処理が異なります。

サービスまたはユーザ定義受付が配備定義されている場合

配備定義されているサービスまたはユーザ定義受付を配備定義されていない状態にします。そのあと，編集中のサービスまたはユーザ定義受付を保存して処理を続行します。

サービスまたはユーザ定義受付が配備定義されていない場合

編集中のサービスまたはユーザ定義受付を保存して処理を続行します。

設計情報の出力ウィザード（基本情報の入力ページ）で，出力先ディレクトリなど必要な情報を設定します。

出力先ディレクトリ

設計情報を出力するディレクトリを指定します。設計情報の出力先を指定する場合は，次の点に注意してください。

・出力先ディレクトリには，ディレクトリまたはファイルが存在しない場所を指定してください。指定したディレクトリに，同一名のディレクトリまたはファイルが存在する場合は，上書きされます。また，ビジネスプロセス数が異なる場合は，不要な画像ファイルが残ることがあります。

・パスは絶対パスで指定してください。

・文字コード「MS932」で239バイト以下のパスを指定してください。

・設計情報の出力を開始したあとに，エラーが発生して出力処理を中止した場合，中止する前までのディレクトリまたはファイルが残ることがあります。

タイトル

設計情報のタイトルとして出力する文字列を指定します。

なお，タイトルに指定する文字列として，次の文字コードが使用できます。

U+0009，U+0020-U+D7FF，U+E000-U+FFFD，U+10000-U+10FFFF

また，タブ（U+0009），半角空白（U+0020），および全角空白（U+3000）は文字の間でだけ使用できます。

作成者

設計情報の作成者として出力する文字列を指定します。

なお，作成者に指定する文字列として，次の文字コードが使用できます。

U+0009，U+0020-U+D7FF，U+E000-U+FFFD，U+10000-U+10FFFF

また，タブ（U+0009），半角空白（U+0020），および全角空白（U+3000）は文字の間でだけ使用できます。

形式

アクティビティ配置図の出力イメージの形式を指定します。PNG形式，BMP形式，JPEG形式から選択します。

最大幅

出力イメージの最大幅を指定します。指定できる範囲は250～2500です。

出力イメージの幅サイズが指定した最大幅を超える場合は，最大幅に収まるように，幅と高さの比率を保ったまま出力イメージを縮小して表示します。

最大高さ

出力イメージの最大高さを指定します。指定できる範囲は200～2000です。

出力イメージの高さサイズが指定した最大高さを超える場合は，最大高さに収まるように，幅と高さの比率を保ったまま出力イメージを縮小して表示します。

［次へ］ボタンをクリックします。
設計情報の出力ウィザード（サービスの選択ページ）が表示されます。

設計情報の出力ウィザード（サービスの選択ページ）で，設計情報として出力するサービスのチェックボックスにチェックします。

［終了］ボタンをクリックします。
設計情報の出力処理状況がダイアログに表示されます。
出力処理が完了すると処理結果がダイアログに表示され，出力先ディレクトリに設計情報が出力されます。

4.　電文フォーマットの作成

この章では，電文フォーマットの作成について説明します。

＜この章の構成＞

4.1　電文フォーマットとデータ変換

4.2　電文フォーマットの種類

4.3　電文フォーマット（XMLフォーマット定義ファイル）の作成方法

4.4　電文フォーマット（バイナリフォーマット定義ファイル）の作成方法

4.5　COBOL登録集原文ファイルからのバイナリフォーマット定義ファイルの生成

4.6　バイナリフォーマット定義ファイルからXMLスキーマファイルの生成

4.7　電文フォーマットの変更

4.1　電文フォーマットとデータ変換

サービスリクエスタ，サービスアダプタ，およびサービス部品の間でやり取りされる電文とその形式（電文フォーマット），およびデータ変換の概要について説明します。

＜この節の構成＞

(1)　電文の種類

(2)　電文フォーマット

(3)　データ変換

(1)　電文の種類

サービスリクエスタからサービスアダプタを経由して，サービス部品の実行を要求するための電文を要求電文といいます。

逆に，サービスアダプタを経由して，サービス部品の実行結果をサービスリクエスタに応答するための電文を応答電文といいます。

(2)　電文フォーマット

サービスリクエスタ，サービスアダプタ，およびサービス部品の間でやり取りされる電文の形式を電文フォーマットといいます。

サービスアダプタには，リクエストを受け付けるための標準的な電文フォーマットがあります。これを標準電文といいます。また，サービス部品独自の電文のフォーマットをサービス部品電文といいます。サービス部品電文には，データベースの操作をサービス部品として利用する場合のデータベース側の電文フォーマットであるDBアダプタ電文があります。

電文フォーマットを定義したファイルを，電文フォーマット定義ファイルといいます。

電文フォーマット定義ファイルには，扱うデータによってXMLフォーマット定義ファイルとバイナリフォーマット定義ファイルの2種類があります。電文フォーマット定義ファイルの種類については，「4.2　電文フォーマットの種類」を参照してください。

(3)　データ変換

通常は，サービスリクエスタからサービス部品の呼び出し要求があった場合は，標準電文でサービス部品を呼び出せます。しかし，サービスリクエスタから受け付けた要求電文（電文フォーマットは標準電文）でサービス部品を呼び出せない場合，要求電文の電文フォーマットをサービス部品の電文フォーマット（サービス部品電文）に変換する必要があります。この変換をデータ変換といいます。同様に，サービス部品からの応答電文をサービスリクエスタに返せない場合も，電文フォーマットを変換して標準電文の電文フォーマットに変換する必要があります。

データ変換の定義方法については，「7.　データ変換の定義」を参照してください。

サービスアダプタを利用する場合のサービスリクエスタとサービス部品間の電文の流れを次の図に示します。

図4-1　サービスリクエスタとサービス部品間の電文の流れ（サービスアダプタを利用する場合）

DBアダプタを利用する場合は，標準電文とDBアダプタ電文の流れになります。電文の流れは，基本的にはサービスアダプタと同様です。

DBアダプタを利用する場合のサービスリクエスタとサービス部品（データベース）間の電文の流れを次の図に示します。

図4-2　サービスリクエスタとサービス部品間の電文の流れ（DBアダプタを利用する場合）

4.2　電文フォーマットの種類

サービス部品の実行に利用する電文でXML形式のデータを扱うか，バイナリ形式（XML形式以外）のデータを扱うかによって，作成する電文フォーマットは異なります。

＜この節の構成＞

(1)　XML形式のデータを扱う場合

(2)　バイナリ形式のデータを扱う場合

(1)　XML形式のデータを扱う場合

XML形式のデータを扱う場合，XMLフォーマット定義ファイルを作成します。

XMLフォーマット定義ファイルは，XMLスキーマファイル（拡張子：.xsd）として作成します。作成するXMLフォーマット定義ファイルの内容や作成方法は，実行するサービス部品の種類によって異なります。サービス部品ごとのXMLフォーマット定義ファイルの作成方法については，「4.3　電文フォーマット（XMLフォーマット定義ファイル）の作成方法」を参照してください。

(2)　バイナリ形式のデータを扱う場合

バイナリ形式（XML形式以外）のデータを扱う場合，バイナリフォーマット定義ファイルを作成します。

バイナリフォーマット定義ファイルでは，テキスト形式，バイナリ形式，およびCSV形式のデータの構造（固定長，セパレータなど）と，データの文字コード（シフトJIS，JIS漢字，Unicode，KEISなど）を定義できます。

バイナリフォーマット定義ファイルの作成方法については，「4.4　電文フォーマット（バイナリフォーマット定義ファイル）の作成方法」を参照してください。

なお，バイナリ形式のデータを扱う場合，またはデータ変換で値置換えファンクションを使用する場合，開発環境には「uCosminexus 日立コード変換 - Development Kit」，実行環境には「uCosminexus 日立コード変換 - Server Runtime」（Windowsの場合）または「uCosminexus 日立コード変換 - Runtime」（UNIXの場合）が必要です。

4.3　電文フォーマット（XMLフォーマット定義ファイル）の作成方法

サービス部品の実行に利用する電文でXML形式のデータを利用する場合の，電文フォーマット（XMLフォーマット定義ファイル）の作成方法について，以降の項で説明します。

＜この節の構成＞

4.3.1　標準電文を作成する

4.3.2　サービス部品電文を作成する（Webサービスの場合）

4.3.3　サービス部品電文を作成する（SessionBeanの場合）

4.3.4　サービス部品電文を作成する（MDB（WS-RまたはDBキュー）の場合）

4.3.5　サービス部品電文を作成する（DBアダプタ電文の場合）

4.3.1　標準電文を作成する

標準電文のXMLフォーマット定義ファイルは，実行するサービス部品の種類に関係なく，Eclipseが提供するWST（Web Standard Tools）などを利用して作成します。

作成するXMLフォーマット定義ファイルは，「2.6.5　XMLスキーマの適用範囲」に示す条件を満たしている必要があります。条件の詳細については，「2.6.5　XMLスキーマの適用範囲」を参照してください。

サービスアダプタおよびビジネスプロセスの定義で，利用する電文フォーマットファイルを選択したときにエラー（メッセージIDがKECXで始まるエラーメッセージ）が発生した場合，XMLスキーマファイルにエラーがあります。この場合，マニュアル「Cosminexus アプリケーションサーバ メッセージ 3」の「2.　KECX（Cosminexus XML Processorが出力するメッセージ）」を参照して対処してください。

4.3.2　サービス部品電文を作成する（Webサービスの場合）

利用するサービス部品がWebサービスの場合，サービス部品電文のXMLフォーマット定義ファイルを作成する必要はありません。XMLフォーマット定義ファイルは，サービスアダプタの作成時に自動的に作成されます。

ただし，サービスアダプタを作成する前に，「2.6.1　Webサービスを利用したサービス部品の適用範囲」に示す条件を満たしているWSDLを準備する必要があります。

注意事項：SOAP通信基盤でユーザ定義の例外をthrowするWebサービスの場合

SOAPアプリケーション開発支援機能のWSDL生成機能で生成したWSDLの通信スタイルがrpc形式の場合，WSDLを修正し，対応するアダプタを作成する必要があります。

生成したWSDLの通信スタイルがdocument形式の場合，WSDLを修正する必要はありません。Cosminexus サービスプラットフォームでfaultを使用する場合，document形式のWSDLを使用することを推奨します。

WSDLの修正手順を次に示します。

xsd:elementを定義します。
xsd:element要素は，wsdl:definitions要素のtargetNamespace属性で示されたネームスペースと同じtargetNamespace属性を持つwsdl:types要素中のxsd:schema要素内に定義してください。

wsdl:portType要素内のwsdl:operation要素中のwsdl:fault要素のmessage属性の値から対応するwsdl:message要素を取得し，内部に含まれるwsdl:part要素を確認します。

手順1.で追加したxsd:element要素にname属性を追加します。
値は手順2.で取得したwsdl:part要素のtype属性のローカル名と同じ値にします。

手順3.と同様に，type属性を追加します。
値は手順2.で取得したwsdl:part要素のtype属性と同じ値にします。

手順2.で確認したwsdl:part要素からtype属性を削除し，新たにelement属性を追加します。
ネームスペースプリフィックスは，手順1.で参照したwsdl:types要素内のxsd:schema要素を示すプリフィックスにします。また，ローカル名は手順3.で追加したname属性と同じ値にします。

WSDLを修正したあとには，Webサービスそのものを再作成する必要があります。

次に示すコマンドを実行して，修正したWSDLからWebサービス用のスケルトンを再生成してください。

WSDL2Java -s <WSDLファイル>

WSDL2Javaコマンドの詳細については，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」の「4.1.4　スケルトンおよびサービスデプロイ定義を生成する」を参照してください。

4.3.3　サービス部品電文を作成する（SessionBeanの場合）

利用するサービス部品がSessionBeanの場合，サービス部品電文のXMLフォーマット定義ファイルを作成する必要はありません。XMLフォーマット定義ファイルは，サービスアダプタの作成時に自動的に作成されます。

4.3.4　サービス部品電文を作成する（MDB（WS-RまたはDBキュー）の場合）

サービス部品電文のXMLフォーマット定義ファイルは，Eclipseが提供するWST（Web Standard Tools）などを利用して作成します。

作成するXMLフォーマット定義ファイルは，「2.6.5　XMLスキーマの適用範囲」に示す条件を満たしている必要があります。

4.3.5　サービス部品電文を作成する（DBアダプタ電文の場合）

DBアダプタ電文のXMLフォーマット定義ファイルを作成するには，あらかじめSQLオペレーション定義ファイルを作成してから，csamkxmlsコマンドで生成します。

SQLオペレーション定義ファイルは，実行環境でDBアダプタを介してアクセスするデータベースの情報や，SQLの実行形式を定義するファイルです。DBアダプタ用のXMLフォーマット定義ファイルを作成するときの基となるファイルです。

SQLオペレーション定義ファイルとDBアダプタ用のXMLフォーマット定義ファイルの作成方法を次に説明します。

＜この項の構成＞

(1)　SQLオペレーション定義ファイルの作成

(2)　DBアダプタ用のXMLフォーマット定義ファイルの作成

(1)　SQLオペレーション定義ファイルの作成

SQLオペレーション定義ファイルは，テキストエディタなどを使用してXML文書形式で作成します。XML文書で使用できない「<」，「>」，「&」などの文字を使用する場合，エスケープするか，CDATAセクションを利用する必要があります。

要素，属性およびテキストデータは，W3CのXMLの仕様に従って指定します。

なお，XML名前空間は使用できません。

作成するXML文書の詳細を説明します。

(a)　ファイル名

SQLオペレーション定義ファイルのファイル名は，次の形式で指定します。

csa_sql_<任意の名称>.xml

(b)　構造

SQLオペレーション定義ファイルの構造を次に示します。

図4-3　SQLオペレーション定義ファイルの構造

(c)　SQLオペレーション定義ファイルの形式

SQLオペレーション定義ファイルの形式を次に示します。なお，斜体の文字は可変値を表します。

<?xml version="XMLのバージョン" encoding="文字コード"?>
<DBadapter_SQL_OPERATION>
   <DATABASE_DATA>
       <DB_NAME>データベース参照名</DB_NAME>
       <DB_TYPE>データベース種別</DB_TYPE>
   </DATABASE_DATA>
   <SQL_DATA>
       <SQL識別子 out_maxOccurs="検索結果出力最大件数">
           SQL命令 <引数要素名 dba_inf＝"引数の種別" data_type="データ型"/>
       </SQL識別子>
           ：
   </SQL_DATA>
   <MULTI_SQL_DATA>
       <MAX_SQL_NO>1回のサービス部品実行要求で実行するSQL文の最大個数</MAX_SQL_NO>
   </MULTI_SQL_DATA>
</DBadapter_SQL_OPERATION>

SQLオペレーション定義ファイルで定義する内容について次に説明します。

XML宣言

XMLのバージョンには，XMLの言語仕様に従ってXMLのバージョンを指定します。文字コードにはUTF-8を指定してください。なお，文字コードの指定は省略できます。省略した場合の値は「UTF-8またはUTF-16」になります。

<?xml version="XMLのバージョン" encoding="文字コード"?>

ルート要素（要素名：DBadapter_SQL_OPERATION）

SQLオペレーション定義ファイルのルート要素です。

<DBadapter_SQL_OPERATION>
   :
</DBadapter_SQL_OPERATION>

データベース情報（要素名：DATABASE_DATA）

下位の要素（DB_NAMEおよびDB_TYPE）で，データベースの情報を指定します。

<DATABASE_DATA>
   データベース参照名
   データベース種別
</DATABASE_DATA>

データベース参照名（要素名：DB_NAME）

DB Connectorのデータベース参照名を指定します。

<DB_NAME>データベース参照名</DB_NAME>

データベース種別（要素名：DB_TYPE）

データベースの種別として次のどれかを指定します。

HIRDB
DBMSとしてHiRDBを使用する場合（DB ConnectorとしてDBConnector_DABJ_CP/XA.rarを使用する場合）に指定します。

HIRDB-TYPE4
DBMSとしてHiRDBを使用する場合（DB ConnectorとしてDBConnector_HiRDB_Type4_CP/XA.rarを使用する場合）に指定します。

ORACLE
DBMSとしてOracleを使用する場合（DB ConnectorとしてDBConnector_DABJ_CP/XA.rarを使用する場合）に指定します。

ORACLE-THIN
DBMSとしてOracleを使用する場合（DB ConnectorとしてDBConnector_Oracle_CP/XA.rarを使用する場合）に指定します。

<DB_TYPE>データベース種別</DB_TYPE>

SQL情報（要素名：SQL_DATA）

下位の要素（SQL識別子およびSQL実行文）で，実行するSQLの情報を指定します。

<SQL_DATA>
   SQL識別子
       SQL実行文
</SQL_DATA>

SQL識別子（要素名：任意((1～256文字))）

実行するSQLを識別するための要素です。この要素を省略した場合，SQL文を実行しません。下位の引数要素でSQL実行文を指定します。属性としてout_maxOccursを指定できます。また，実行するSQL命令の数にあわせて複数回指定できます。

なお，SQL識別子の名称として「DBadapter」および「DBA_MULTI_SQL」は指定できません。

<SQL識別子 out_maxOccurs="検索結果出力最大件数">
   SQL実行文
</SQL識別子>
   ：

out_maxOccurs

検索結果の最大出力件数を指定します。省略した場合は1000が設定されます。0を指定した場合は，2147483647が設定されます。

SQL実行文

SQL実行文を指定します。SQLの構文は，利用するデータベースの仕様に従います。SQL実行文の表や列の名称およびデータなどの可変部分（引数要素）を指定します。

なお，SQL文の終わりを示すセミコロン（;）は必要ありません。

SQL命令 <引数要素名 dba_inf＝"引数の種別" data_type="データ型"/>

なお，SQL実行文の先頭は「SELECT△」または「INSERT△」のどちらかを指定します（△は半角スペース）。ただし，「SELECT△」または「INSERT△」の直後に引数要素がある場合，「△」（半角スペース）は省略できます。

指定内容を次に示します。

SQL命令

指定できるSQL命令はSELECTまたはINSERTです。

SELECTで検索できるデータ型について，次の表に示します。

表4-1　SELECTで検索できるデータ型（HiRDBの場合）

HiRDBのデータ型
検索の可否

DBPSV※の場合
HiRDB Type4 JDBC Driverの場合

INT〔EGER〕
○
○

SMALLINT
○
○

〔LARGE〕 DEC〔IMAL〕
NUMERIC
○
○

FLOAT
DOUBLE PRECISION
○
○

SMALLFLT
REAL
○
○

CHAR〔ACTER〕
○
○

VARCHAR
CHAR〔ACTER〕VARYING
○
○

NCHAR
NATIONAL CHAR
○
○

NVARCHAR
NATIONAL CHAR〔ACTER〕VARYING
NCHAR VARYING
○
○

MCHAR
○
○

MVARCHAR
○
○

DATE
○
○

TIME
○
○

TIMESTAMP
○
○

INTERVAL YEAR TO DAY
－
－

INTERVAL HOUR TO SECOND
－
－

BLOB
BINARY LARGE OBJECT
○
○

BINARY
○
○

BOOLEAN
－
－

（凡例）

○：SELECTで検索できます。

－：SELECTで検索できません。

注

〔 〕で囲まれた部分は省略できることを意味します。

注※

DBPSVとは，Cosminexus DABroker LibraryのJdbcDbpsvDriverです。

表4-2　SELECTで検索できるデータ型（Oracleの場合）

Oracleのデータ型 | 検索の可否
DBPSV※1の場合 | Oracle JDBC Thin Driverの場合
VARCHAR2 | ○ | ○
NVARCHAR2 | ○ | ○
NUMBER | ○ | ○
LONG | ○ | ○
DATE | ○ | ○※2
BINARY_FLOAT※3 | － | －
BINARY_DOUBLE※3 | － | －
TIMESTAMP | － | －
TIMESTAMP WITH TIME ZONE | － | －
TIMESTAMP WITH LOCAL TIME ZONE | － | －
INTERVAL YEAR TO MONTH | － | －
INTERVAL DAY TO SECOND | － | －
RAW | － | ○
LONG RAW | － | ○
ROWID | ○ | ○
UROWID | －※4 | －
CHAR | ○ | ○
NCHAR | ○ | ○
CLOB | ○ | ○
NCLOB | ○ | ○
BLOB | － | ○
BFILE | － | －
ユーザ定義型（オブジェクト型） | － | －
ユーザ定義型（REFデータ型） | － | －
ユーザ定義型（VARRAY） | － | －
ユーザ定義型（ネストした表） | － | －

（凡例）

○：SELECTで検索できます。

－：SELECTで検索できません。

注※1

DBPSVとは，Cosminexus DABroker LibraryのJdbcDbpsvDriverです。

注※2

Oracle 11gのOracle JDBC Thin Driverを利用する場合，論理J2EEサーバの定義でJVMの起動パラメタとして次の値を設定する必要があります。

-Doracle.jdbc.mapDateToTimestamp=false

起動パラメタの設定の詳細については，マニュアル「Cosminexus アプリケーションサーバ 運用管理ポータル操作ガイド」の「10.9.20　起動パラメタの設定（J2EEサーバ）」を参照してください。

注※3

接続するデータベースがOracle 10gおよびOracle 11gの場合だけ使用できます。

注※4

SELECTで検索してもエラーにはなりませんが，検索した場合の動作は保証されません。

●ポイント

DBアダプタで検索できないデータ型でも，データベースが提供する関数（ファンクション）を使用して検索できるデータ型に変換できれば，検索できるようになります。

OracleのTIMESTAMP型（列名：c_ts）をTO_CHARファンクションでVARCHAR2型に変換して検索する場合の例を次に示します。

SELECT TO_CHAR(c_ts) FROM 表名

引数要素名

任意の引数要素の名称を指定します。複数の引数要素を同一名称で指定した場合，同じ引数として扱われます。同一名称の引数要素で，それぞれの属性dba_infおよびdata_typeに異なる値を設定した場合はエラーになります。

dba_inf＝"引数の種別"

引数の種別を指定します。

引数の種別の種類として指定できる内容を次に示します。

table
引数がデータベースに実在するテーブルの名称の場合に指定します。引数として利用するデータはstring型です。

column
引数がデータベースに実在する列の名称の場合に指定します。引数として利用するデータはstring型です。

data
引数がテーブルおよび列の名称以外のデータの場合に指定します。この値を指定した場合，引数として利用するデータのデータ型を属性data_typeに指定する必要があります。また，引数として利用するデータを表4-1および表4-2に示すjavaのデータ型またはクラスに変換して，SQL文に埋め込みます。引数として利用するデータを変換できない場合は，エラーとなります。
なお，この値を指定した場合，引数要素をINパラメタ（?パラメタまたはバインド変数）として扱います。SQL文中にINパラメタを指定できる個所は，利用するデータベースの仕様に従います。指定できない個所にINパラメタを定義した場合，エラーになります。なお，SQLの実行時に，引数要素は「?」に置き換えられて実行されます。

preset
引数がテーブルおよび列の名称以外のデータの場合に指定します。この値を指定した場合，引数として利用するデータをそのままSQL文に埋め込みます。引数として利用するデータはstring型です。

data_type="データ型"

属性dba_infにdataを指定した場合に，引数として利用するデータの型を指定します。データベースのデータ型とdata_typeに指定できるデータの型の対応を次の表に示します。

表4-3　data_typeに指定できるデータ型（HiRDBの場合）

HiRDBのデータ型
data_typeに指定できるデータ型
引数として利用するデータの変換先のデータ型およびクラス

INT〔EGER〕
INTEGER
int

SMALLINT
SMALLINT
short

〔LARGE〕 DEC〔IMAL〕
NUMERIC
DECIMAL
java.math.BigDecimal

FLOAT
DOUBLE PRECISION
FLOAT
double

SMALLFLT
REAL
REAL
float

CHAR〔ACTER〕
CHAR
java.lang.String

NCHAR
NATIONAL CHAR

MCHAR

VARCHAR
CHAR〔ACTER〕VARYING
VARCHAR
java.lang.String

NVARCHAR
NATIONAL CHAR〔ACTER〕VARYING
NCHAR VARYING

MVARCHAR

DATE
DATE
java.sql.Date

TIME
TIME
java.sql.Time

TIMESTAMP
TIMESTAMP
java.sql.Timestamp

BLOB
BINARY LARGE OBJECT
LONGVARBINARY
byte[]

BINARY
LONGVARBINARY
byte[]

注　〔 〕で囲まれた部分は省略できることを意味します。

表4-4　data_typeに指定できるデータ型（Oracleの場合）

Oracleのデータ型
data_typeに指定できるデータ型
引数として利用するデータの変換先のデータ型およびクラス

DBPSV※1の場合
Oracle JDBC Thin Driverの場合

LONG
LONGVARCHAR
LONGVARCHAR
java.io.Reader

NUMBER
NUMERIC
NUMERIC
java.math.BigDecimal

VARCHAR2
VARCHAR
VARCHAR
java.lang.String

NVARCHAR2
VARCHAR
－

ROWID
CHAR
CHAR

CHAR
CHAR
CHAR

NCHAR
CHAR
－

CLOB
CLOB
CLOB※2

DBPSV※1の場合
java.sql.Clob

Oracle JDBC Thin Driverの場合
java.io.Reader

NCLOB
CLOB
－

DATE
DATE※3
DATE※3
java.sql.Date

TIME※4
TIME※4
java.sql.Time

TIMESTAMP※5
TIMESTAMP※5
java.sql.Timestamp

RAW
－
VARBINARY
byte[]

LONG RAW
－
LONGVARBINARY
byte[]

BLOB
－
BLOB
byte[]

（凡例）

－：指定できません。

注※1

DBPSVとは，Cosminexus DABroker LibraryのJdbcDbpsvDriverです。

注※2

JDBCドライバのバージョンが10.2の場合にだけ指定できます。10.2以外のバージョンのJDBCドライバを使用した場合，データが破損するおそれがあります。

注※3

設定する値の形式が「yyyy-mm-dd」の場合に指定します。

注※4

設定する値の形式が「hh:mm:ss」の場合に指定します。

注※5

設定する値の形式が「yyyy-mm-dd hh:mm:ss」の場合に指定します。

複数SQL文実行情報（要素名：MULTI_SQL_DATA）

サービスリクエスタからの1回のサービス部品実行要求で複数のSQL文を実行する場合に，実行するSQL文の最大個数を，下位の要素（MAX_SQL_NO）で指定します。単一のSQL文を実行する場合には，この要素は省略できます。

<MULTI_SQL_DATA>
   実行するSQL文の最大個数
</MULTI_SQL_DATA>

実行するSQL文の最大個数（要素名：MAX_SQL_NO）

実行するSQL文の最大個数（サービスリクエスタからの要求電文のDBA_MULTI_SQL要素の最大出現回数）を，1～2,147,483,647の範囲内で指定します。省略した場合の値は「1024」になります。

<MAX_SQL_NO>1回のサービス部品実行要求で実行するSQL文の最大個数</MAX_SQL_NO>

(d)　作成例

SQLオペレーション定義ファイルの作成例を次に示します。

作成例の条件

データベース参照名：DB_SERVER1

スキーマ名：DBA

テーブル名：受注表

テーブル構成：

受注番号
（INTEGER）
得意先コード（CHAR）
商品コード
（CHAR）
受注個数
（INTEGER）

1
AA001
0001
5

2
AB002
0001
1

3
AA001
0102
3

4
XA005
0103
1

5
AA001
0105
1

実行するSQLの形式：

OPERATION1：SELECT * FROM DBA.受注表 WHERE <val1> <val2> <val3>
OPERATION2：SELECT <val1> SUM(<val2>) FROM DBA.受注表 GROUP BY <val3>
OPERATION3：INSERT INTO DBA.受注表 VALUES(<val1>,<val2>,<val3>,<val4>)

SQLオペレーション定義ファイルの作成例（単一のSQL文を実行する場合）

<?xml version="1.0" encoding="UTF-8" ?>
<DBadapter_SQL_OPERATION>
　　<DATABASE_DATA>
　　　　<DB_NAME>DB_SERVER1</DB_NAME>
　　　　<DB_TYPE>HIRDB</DB_TYPE>
　　</DATABASE_DATA>
　　<SQL_DATA>
　　　　<OPERATION1>
　　　　　　SELECT * FROM DBA.受注表 WHERE <val1 dba_inf="column"/>
　　　　　　　　<val2 dba_inf="preset"/>
　　　　　　　　<val3 dba_inf="data" data_type="CHAR"/>
　　　　</OPERATION1>
　　　　<OPERATION2>
　　　　　　SELECT <val1 dba_inf="column"/> SUM(<val2 dba_inf="column"/>)
　　　　　　　　FROM DBA.受注表 GROUP BY <val3 dba_inf="column"/>
　　　　</OPERATION2>
　　　　<OPERATION3>
　　　　　　INSERT INTO DBA.受注表
　　　　　　　　VALUES(<val1 dba_inf="data" data_type="INTEGER" />,
　　　　　　　　<val2 dba_inf="data" data_type="CHAR"/>,
　　　　　　　　<val3 dba_inf="data" data_type="CHAR"/>,
　　　　　　　　<val4 dba_inf="data" data_type="INTEGER"/>)
　　　　</OPERATION3>
　　</SQL_DATA>
</DBadapter_SQL_OPERATION>

SQLオペレーション定義ファイルの作成例（複数のSQL文を実行する場合）

次の例では，1回のサービス部品実行要求で実行するSQL文の最大個数を「10」にしています。

<?xml version="1.0" encoding="UTF-8" ?>
<DBadapter_SQL_OPERATION>
　　<DATABASE_DATA>
　　　　<DB_NAME>DB_SERVER1</DB_NAME>
　　　　<DB_TYPE>HIRDB</DB_TYPE>
　　</DATABASE_DATA>
　　<SQL_DATA>
　　　　<OPERATION1>
　　　　　　SELECT * FROM DBA.受注表 WHERE <val1 dba_inf="column"/>
　　　　　　　　<val2 dba_inf="preset"/>
　　　　　　　　<val3 dba_inf="data" data_type="CHAR"/>
　　　　</OPERATION1>
　　　　<OPERATION2>
　　　　　　SELECT <val1 dba_inf="column"/> SUM(<val2 dba_inf="column"/>)
　　　　　　　　FROM DBA.受注表 GROUP BY <val3 dba_inf="column"/>
　　　　</OPERATION2>
　　　　<OPERATION3>
　　　　　　INSERT INTO DBA.受注表
　　　　　　　　VALUES(<val1 dba_inf="data" data_type="INTEGER" />,
　　　　　　　　<val2 dba_inf="data" data_type="CHAR"/>,
　　　　　　　　<val3 dba_inf="data" data_type="CHAR"/>,
　　　　　　　　<val4 dba_inf="data" data_type="INTEGER"/>)
　　　　</OPERATION3>
　　</SQL_DATA>
　　<MULTI_SQL_DATA>
　　　　<MAX_SQL_NO>10</MAX_SQL_NO>
　　</MULTI_SQL_DATA>
</DBadapter_SQL_OPERATION>

(2)　DBアダプタ用のXMLフォーマット定義ファイルの作成

DBアダプタ用のXMLフォーマット定義ファイルを作成するには，「(1) SQLオペレーション定義ファイルの作成」で作成したSQLオペレーション定義ファイルの名称を-oオプションに指定してcsamkxmlsコマンドを実行します。

(a)　コマンドの実行例

csamkxmlsコマンドの実行形式を次に示します。

<Cosminexusのインストールディレクトリ>¥CSC¥bin¥csamkxmls -o <SQLオペレーション定義ファイルの名称> -x <DBアダプタ用のXMLフォーマット定義ファイルの名称>

csamkxmlsコマンドの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csamkxmls（DBアダプタ用のXMLフォーマット定義ファイルの生成）」を参照してください。

注意

csamkxmlsコマンドを実行したとき，SQLオペレーション定義ファイルのファイルサイズが大きいと，「java.lang.OutOfMemoryError」のメッセージが表示されることがあります。

このエラーが表示された場合，環境変数HCSCDBA_XMXに，現在のJavaVMのメモリ割り当てサイズよりも大きい値を設定して，再度コマンドを実行してください。

環境変数HCSCDBA_XMXには，JavaVMのヒープサイズ（-Xmx）に設定される値（単位：Mbyte）を指定します。省略した場合，JavaVMのヒープサイズはJavaコマンドを実行する環境に依存します。

設定例

set HCSCDBA_XMX=64

注意

DBアダプタ用のXMLフォーマット定義ファイルは，SQLオペレーション定義ファイルで指定したSQL識別子の数だけフォーマットを含みます。単一のSQL文を実行する場合，データ変換を定義するときには，SQL識別子ごとにオペレーションを変更（サービスアダプタ定義画面でオペレーションを追加）して定義する必要があります。複数のSQL文を実行する場合，データ変換を定義するときには，SQL識別子ごとにオペレーションを変更して定義する必要はありません。

データ変換の定義については，「7.　データ変換の定義」を参照してください。サービスアダプタ定義画面については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.2　サービスアダプタ定義画面」を参照してください。

(b)　作成例

作成されるXMLフォーマット定義ファイルは，次のようになります。

図4-4　（例1）SELECT文を使用し，WHRER句の値を引数化したい場合

図4-5　（例2）SELECT文を使用し，取得する列名も引数化したい場合

図4-6　（例3）SELECT文を使用し，WHRER句の列名や式も引数化したい場合

4.4　電文フォーマット（バイナリフォーマット定義ファイル）の作成方法

サービス部品の実行に利用する電文でバイナリ形式（XML形式以外）のデータを利用する場合，バイナリフォーマット定義ファイルを作成します。

バイナリフォーマット定義ファイルで使用するデータ型と文字コードの種類については，「4.4.1　バイナリフォーマット定義ファイルのデータ型と文字コードの種類」を参照してください。

バイナリフォーマット定義ファイルの作成の流れを次の図に示します。

図4-7　バイナリフォーマット定義ファイルの作成の流れ

（1）バイナリフォーマット定義ファイルの新規作成

ウィザードを利用してバイナリフォーマット定義ファイルを新規作成します。

バイナリフォーマット定義ファイルの新規作成の方法については，「4.4.2　バイナリフォーマット定義ファイルを新規作成する」を参照してください。

（2）要素の定義

新規作成したバイナリフォーマット定義ファイルに要素を定義します。要素の定義の方法は，利用するバイナリデータがCSV以外の形式の場合と，CSV形式の場合とで異なります。

要素の定義方法については，「4.4.3　要素を定義する（CSV以外の形式の場合）」または「4.4.4　要素を定義する（CSV形式の場合）」を参照してください。

（3）バイナリフォーマット定義ファイルの検証

作成したバイナリフォーマット定義ファイルの整合性を検証します。バイナリフォーマット定義ファイルの要素の定義中や定義終了後など，任意のタイミングで検証できます。

バイナリフォーマット定義ファイルの検証方法については，「4.4.6　バイナリフォーマット定義ファイルを検証する」を参照してください。

（4）バイナリフォーマット定義ファイルの保存

要素を定義したバイナリフォーマット定義ファイルを保存します。バイナリフォーマット定義ファイルは，アダプタやビジネスプロセスと異なり，リポジトリに保存されません。定義したバイナリフォーマット定義ファイルの保存には，Eclipseのパッケージ・エクスプローラーを利用してください。

バイナリフォーマット定義ファイルを保存するときには，自動的に検証が行われます（この場合，検証結果はコンソールビューに表示されません）。

（5）バイナリフォーマット定義ファイルの編集

すでに作成したバイナリフォーマット定義ファイルは，必要に応じて，定義内容を変更できます。バイナリフォーマット定義ファイルの編集方法については，「4.4.5　バイナリフォーマット定義ファイルを編集する」を参照してください。

（6）バイナリフォーマット定義ファイルの削除

不要になったバイナリフォーマット定義ファイルは，必要に応じて削除できます。バイナリフォーマット定義ファイルの削除には，Eclipseのパッケージ・エクスプローラーを利用してください。

＜この節の構成＞

4.4.1　バイナリフォーマット定義ファイルのデータ型と文字コードの種類

4.4.2　バイナリフォーマット定義ファイルを新規作成する

4.4.3　要素を定義する（CSV以外の形式の場合）

4.4.4　要素を定義する（CSV形式の場合）

4.4.5　バイナリフォーマット定義ファイルを編集する

4.4.6　バイナリフォーマット定義ファイルを検証する

4.4.1　バイナリフォーマット定義ファイルのデータ型と文字コードの種類

バイナリフォーマット定義エディタでは，次に示すデータ型を使用してフォーマットを定義できます。

数値

文字列

バイト列

日付時刻

各データで扱う文字コードの種類については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.2　単純内容要素ダイアログ」を参照してください。

次に各データ型の内容について説明します。

＜この項の構成＞

(1)　数値

(2)　文字列

(3)　バイト列

(4)　日付時刻

(1)　数値

数値型には，数値属性によって文字列型数値とバイト列型数値に分けられます。それぞれの数値型に属する数値属性を次に示します。

●文字列型数値

整数

実数

固定小数部数値

●バイト列型数値

ゾーン形式数値

パック形式数値

符号付き2進整数

符号なし2進整数

文字列型数値の符号は省略できます。符号の出現位置は数字列の前です。入力データに数字が一つも出現しない場合は0と見なします。また，埋め字に0またはスペースを使用できます。

どの数値属性もデータ変換では10進数として扱います。扱える10進数としての最大桁（整数部と小数部の桁数の合計）は34桁です。

文字列型数値をXML変換すると，XMLスキーマのdecimal型に変換されます。バイト列型数値をXML変換すると，ゾーン形式数値とパック形式数値の場合はXMLスキーマのdecimal型に変換され，符号付き2進整数と符号なし2進整数の場合はinteger型に変換されます。

それぞれの数値属性について説明します。

(a)　整数

「数字」および「符号」で構成される数値属性です。この数値属性は，内部的にBigIntegerクラスで処理されます。

整数は最大34桁で小数部を持ちません。

整数の例を次に示します。

（例1）

1234567890

（例2）

-1234567890

(b)　実数

「数字」，「符号」および「小数点」から構成される一般的な形式の数値属性です。この数値属性は内部的にBigDecimalクラスで処理されます。

実数は最大34桁で小数部を持ちます。ただし，入力データ中に数字がなく，小数点だけの場合はエラーになります。

実数の例を次に示します。

（例1）

1234567890

（例2）

-123.456

(c)　固定小数部数値

「符号」および「数字」から構成され，小数部の桁を指定すると小数点が暗黙的に設定される数値属性です。この数値属性は内部的にBigDecimalクラスで処理されます。

固定小数部数値は最大34桁で，小数部は最大33桁です。

小数部を4桁に指定した場合の固定小数部数値の例を示します。

（例1）「1234567890」の場合

123456.789

（1234567890 → 123456.7890 → 123456.789）

（例2）「+123」の場合

0.0123

（+123 → +0.0123 → 0.0123）

（例3）「-1230000」の場合

-123

（-1230000 → -123.0000 → -123）

(d)　ゾーン形式数値

ゾーン形式の数値属性です。小数部の桁を指定すると小数点が暗黙的に設定されます。この数値属性は内部的にBigDecimalクラスで処理されます。

ゾーン形式数値は最大34桁で，符号は項目の最終バイトのゾーン部で表します。

文字コードがJIS8の場合，正符号は0x3，負符号は0x7で表します。

文字コードがEBCDIKの場合，正符号は0xCまたは0xF，負符号は0xDで表します。

符号の正負は変更できます。

最終バイト以外のゾーン部は各コードの正符号で表し，数値は各バイトの下位4ビットで表します（0x0～0x9）。

文字コードがJIS8の場合のゾーン形式数値の例を示します。

（例1）「0x31323334」（小数部の指定なし）の場合

1234

（例2）「0x31323334」（小数部を2桁に指定）の場合

12.34

（例3）「0x31323374」（小数部の指定なし）の場合

-1234

(e)　パック形式数値

パック形式の数値属性です。小数部の桁を指定すると小数点が暗黙的に設定されます。この数値属性は内部的にBigDecimalクラスで処理されます。

パック形式数値は最大34桁で，桁数が偶数の場合，最上位バイトの上4ビットは0にしなければなりません。

符号は項目データの最終バイトの下位4ビットで表します。正符号は0xCまたは0xF，負符号は0xDで表し，数値は4ビットで表します（0x0～0x9）。符号の正負は変更できます。なお，データ変換は正符号として0xCを出力します。

文字コードがJIS8の場合のパック形式数値の例を示します。

（例1）「0x01234F」（小数部の指定なし）の場合

1234

（例2）「0x01234F」（小数部を2桁に指定）の場合

12.34

（例3）「0x01234D」（小数部の指定なし）の場合

-1234

(f)　符号付き2進整数

1～8バイトまでの符号付きの2進数で構成される数値属性です。この数値属性は内部的にBigIntegerクラスで処理されます。

エンディアンはフォーマットの情報に従います。

ビッグエンディアンの場合の符号付き2進整数の例を示します。

（例1）「256」の場合

0x0100

（例2）「-257」の場合

0xFEFF

(g)　符号なし2進整数

1～8バイトまでの符号なしの2進数で構成される数値属性です。この数値属性は内部的にBigIntegerクラスで処理されます。

エンディアンはフォーマットの情報に従います。

ビッグエンディアンの場合の符号なし2進整数の例を示します。

（例1）「-256」の場合

0x0100

（例1）「65279」の場合

0xFEFF

(2)　文字列

文字列型は，スペースまたは空文字（0x00）を埋め字として指定できます。埋め字指定がスペースの場合は，スペースの付いた入力文字列が抽出され，埋め字指定が空文字の場合は，空文字を除いた入力文字列が抽出されます。

文字列をXML形式からバイナリ形式の固定長要素に変換する場合，入力XMLの変換後のサイズが固定長要素のサイズより小さいと埋め字が追加されます。このとき，埋め字指定がスペースと空文字では次のように異なります。

埋め字指定がスペースの場合
文字列の右側にあるスペースが埋め字の一部として扱われます。なお，すべてがスペースの場合はスペース一つとして扱われます。

埋め字指定が空文字の場合
文字列の右側にあるスペースがユーザデータとして扱われます。

文字列を比較する場合，左側にあるスペースだけ比較の対象になります。右側にあるスペースは比較の対象にはなりません。

データのサイズはバイト数で指定できます。サイズを指定するときは，シフトコードや解放文字を含んだ値を指定してください。

文字列型をXML変換すると，XMLスキーマのString型に変換されます。

(3)　バイト列

バイト列型は，プラットフォーム間でビットパターンが保存されるバイト列そのものです。バイト列をXML変換すると，XMLスキーマのhexBinary型に変換されます。

(4)　日付時刻

日付時刻型は，年，月，日，時，分，秒のパートの組み合わせで構成する型です。個々のパートは数値を指定でき，秒を表すパートは小数部を持つことができます。

日付時刻型を指定する場合，次の制限事項があります。

2バイト文字コードは使用できません。

小数点として認識する文字は「.」だけです。

日付時刻型のパートを次の表に示します。

表4-5　日付時刻型のパート

パート | 意味 | 指定する桁数
CCYY | 西暦年（0～9999） | 1～4桁
YY | 年（西暦年下2桁） | 最大2桁
MM | 月（1～12） | 最大2桁
DD | 日（1～31） | 最大2桁
hh | 時（0～23） | 最大2桁
mm | 分（0～59） | 最大2桁
ss | 秒（0～59，小数部可） | 整数部最大2桁，小数部最大3桁

パートの組み合わせによって，日付時刻型は三つのデータ型（日付型，時刻型，および日付時刻型）を表現することができます。

データ型とパートの組み合わせを次の表に示します。

表4-6　データ型とパートの組み合わせ

データ型 | 組み合わせ | 意味
日付型 | CCYYMMDD | 西暦年/月/日
YYMMDD※ | 西暦年下2桁/月/日
時刻型 | hhmmss | 時/分/秒
日付時刻型 | CCYYMMDDhhmmss | 西暦年/月/日/時/分/秒
YYMMDDhhmmss | 西暦年下2桁/月/日/時/分/秒

注※

日付型の「YYMMDD」形式の場合，指定できる範囲は西暦年換算で1951年～2050年になります。

日付型，時刻型，および日付時刻型をXML変換すると，それぞれ次のように変換されます

日付型は，XMLスキーマのdate型に変換されます。

時刻型は，XMLスキーマのtime型に変換されます。

日付時刻型は，XMLスキーマのdateTime型に変換されます。

日付時刻型の例を次に示します。

（例1）「2001年1月24日」の場合

20010124

（例2）「1999年12月31日1時30分59秒」の場合

991231013059

4.4.2　バイナリフォーマット定義ファイルを新規作成する

バイナリフォーマット定義ファイルを新規作成する方法を次に示します。

なお，バイナリフォーマット定義ファイルを作成する前には，プロジェクトを作成しておく必要があります。

Eclipseのメニューから，［ファイル］－［新規］－［その他］を選択します。
ウィザードを選択するダイアログが表示されます。

［HCSCTE フォーマット定義］の［バイナリフォーマット定義ファイル］を選択して，［次へ］ボタンをクリックします。
［新規バイナリフォーマット定義ファイル］ウィザードが表示されます。

［親フォルダーを入力または選択］で，バイナリフォーマット定義ファイルを保存するフォルダを入力または選択します。

保存するバイナリフォーマット定義ファイルのフォーマット名を［フォーマット名］に指定します。
フォーマット名を指定すると，指定したフォーマット名に拡張子「.fdx」を付けた名称が［ファイル名］に自動設定されます。

利用するバイナリデータがCSV形式の場合，［CSV形式］チェックボックスをチェックします。
なお，CSV形式のデータとして扱えるのは，次の区切り文字を使用しているデータです。

中間区切り文字：コンマ（,）

終了文字：改行

要素の値に中間区切り文字と同じ文字を含む場合は，その要素全体をダブルクォーテーション（"）で囲みます。なお，要素内でダブルクォーテーションを値として使用する場合，ダブルクォーテーションを二つ続けてエスケープしてください。
なお，開始文字を利用している場合は，CSV形式のデータとして扱えないので注意してください。

［終了］ボタンをクリックします。
新しいバイナリフォーマット定義ファイルが作成され，バイナリフォーマット定義画面が表示されます。バイナリフォーマット定義画面で，続けて要素を定義できます。

注意

バイナリフォーマット定義ファイルは，アダプタやビジネスプロセスと異なり，リポジトリに保存されません。定義したバイナリフォーマット定義ファイルの保存や削除などのファイル管理は，Eclipseのパッケージ・エクスプローラーを利用してください。

4.4.3　要素を定義する（CSV以外の形式の場合）

バイナリフォーマット定義ファイルの内容はバイナリフォーマット定義画面で定義します。バイナリフォーマット定義画面は，Eclipseのパッケージ・エクスプローラーに表示されるバイナリフォーマット定義ファイルをダブルクリックすると表示されます。

バイナリフォーマット定義画面については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.1　バイナリフォーマット定義画面」を参照してください。

参考

バイナリフォーマット定義画面では，複数のバイナリフォーマット定義ファイルを開いて編集できます。ただし，複数のバイナリフォーマット定義ファイルの間で，定義情報をコピーして貼り付けることはできません。

バイナリフォーマット定義画面では，要素の定義として次の作業を行います。

フォーマット情報の設定

グローバル定義の単純内容要素の設定

複合内容要素の設定

構成要素の設定

構成要素の選択条件の設定

ルート要素の設定

セパレータの設定

定義の方法を次に示します。

＜この項の構成＞

(1)　フォーマット情報を設定する

(2)　グローバル定義の単純内容要素を設定する

(3)　複合内容要素を設定する

(4)　構成要素を設定する

(5)　構成要素の選択条件を設定する

(6)　ルート要素を設定する

(7)　セパレータを設定する

(1)　フォーマット情報を設定する

バイナリフォーマット定義ファイルのフォーマット情報として，バイナリデータで使用されている文字コードや，バイナリデータに含まれる2進整数のエンディアンを設定します。

フォーマット情報の設定方法を次に示します。

バイナリフォーマット定義エディタに表示されているフォーマット名を選択して右クリックし，［設定］を選択します。
［フォーマット］ダイアログが表示されます。

［フォーマット］ダイアログに必要な情報を入力します。
［フォーマット］ダイアログの表示・入力内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.1　フォーマットダイアログ」を参照してください。

［OK］ボタンをクリックします。
［フォーマット］ダイアログに入力した情報が設定されます。

(2)　グローバル定義の単純内容要素を設定する

単純内容要素とは，使用するバイナリデータの形式をXMLスキーマで表現したときに，単純型の要素（xsd:simpleType要素）であり，かつグローバル定義の要素として表現できるものです。バイナリフォーマット定義ファイルをデータ変換定義画面で表示した場合，単純内容要素は，単純内容のノードとして表示されます。

単純内容要素の設定では，要素のデータ種別やサイズを設定します。

単純内容要素の設定方法を次に示します。

バイナリフォーマット定義エディタに表示されているフォーマット名を選択して右クリックし，［単純内容要素の追加］を選択します。
［単純内容要素］ダイアログが表示されます。

［単純内容要素］ダイアログに必要な情報を入力します。
［単純内容要素］ダイアログの表示・入力内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.2　単純内容要素ダイアログ」を参照してください。

［OK］ボタンをクリックします。
［単純内容要素］ダイアログに入力した情報で単純内容要素が設定されます。また，設定された単純内容要素がバイナリフォーマット定義エディタに表示されます。

(3)　複合内容要素を設定する

複合内容要素とは，使用するバイナリデータの形式をXMLスキーマで表現したときに，複合型の要素（xsd:complexType要素）であり，かつグローバル定義の要素として表現できるものです。バイナリフォーマット定義ファイルをデータ変換定義画面で表示した場合，複合内容のノードとして表示されます。

複合内容要素の設定では，複合内容要素を構成する要素の構成区分などを設定します。構成区分には，複合内容要素を構成する要素が逐次構成（xsd:sequence要素）か，選択構成（xsd:choice要素）かを設定します。

複合内容要素の設定方法を次に示します。

バイナリフォーマット定義エディタに表示されているフォーマット名を選択して右クリックし，［複合内容要素の追加］を選択します。
［複合内容要素］ダイアログが表示されます。

［複合内容要素］ダイアログに必要な情報を入力します。
［複合内容要素］ダイアログの表示・入力内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.3　複合内容要素ダイアログ」を参照してください。

構成区分として［選択構成］を選択した場合

構成区分として［選択構成］を選択した場合，次のどちらかの方法で構成要素に選択条件を設定する必要があります。

・［選択条件ノード］を指定し，選択条件の判定値を含むノードを選択する

・［構成要素の開始セパレータ］を指定する

選択条件を設定する方法については，「(5) 構成要素の選択条件を設定する」を参照してください。

なお，構成要素に選択条件を設定する前に，複合内容要素を構成する要素を設定する必要があります。必ず次の手順3.を行ってから，「4.4.3(4) 構成要素を設定する」に示す手順に従って構成要素を設定し，そのあとで選択条件を設定してください。

複合内容要素の構成要素である単純内容要素がセパレータデータの場合

複合内容要素の構成要素である単純内容要素が，要素ごとに区切り文字（セパレータ）で区切られたデータ（セパレータデータ）の場合，複合内容要素にセパレータを設定します。

セパレータの設定方法については，「(7) セパレータを設定する」を参照してください。

［OK］ボタンをクリックします。
［複合内容要素］ダイアログに入力した情報で複合内容要素が設定されます。また，設定された複合内容要素がバイナリフォーマット定義エディタに表示されます。

参考

バイナリフォーマット定義ファイルの要素の定義時に，最初に設定した複合内容要素は，ルート要素になります。ルート要素を変更する場合には，「(6) ルート要素を設定する」を参照してください。

(4)　構成要素を設定する

構成要素とは，複合内容要素を構成する要素です。構成要素を設定する方法には次の二つの方法があります。

グローバル定義の要素を構成要素に設定する

ローカル定義の単純内容要素を設定する

それぞれの方法での構成要素の設定について次に示します。

(a)　グローバル定義の要素を構成要素に設定する

すでに設定されているグローバルな要素（単純内容要素および複合内容要素）を，複合内容要素の構成要素に設定します。

設定方法を次に示します。

バイナリフォーマット定義エディタに表示されている複合内容要素を選択して右クリックし，［構成要素の追加］を選択します。
［要素選択］ダイアログが表示されます。［要素選択］ダイアログには，複合内容要素の構成要素として選択できるグローバル定義の要素がすべて表示されます。
［要素選択］ダイアログの表示・入力内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.7　要素選択ダイアログ」を参照してください。

［要素選択］ダイアログの要素一覧で構成要素として設定する要素を選択します。

［OK］ボタンをクリックします。
［構成要素］ダイアログが表示されます。

［構成要素］ダイアログに必要な情報を入力します。
［構成要素］ダイアログの表示・入力内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.4　構成要素ダイアログ」を参照してください。

［OK］ボタンをクリックします。
［構成要素］ダイアログに入力した情報で，グローバル定義の要素が複合内容要素の構成要素として設定されます。設定した構成要素は，バイナリフォーマット定義エディタ上の複合内容要素の下位要素として表示されます。

(b)　ローカル定義の単純内容要素を構成要素として設定する

ローカル定義の単純内容要素を複合内容要素の構成要素として設定します。

設定方法を次に示します。

バイナリフォーマット定義エディタに表示されている複合内容要素を選択して右クリックし，［ローカル単純内容要素の追加］を選択します。
［単純内容要素］ダイアログが表示されます。

［単純内容要素］タブを選択し，必要な情報を入力します。
［単純内容要素］ダイアログの［単純内容要素］タブの表示・入力内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.2　単純内容要素ダイアログ」を参照してください。

［構成要素］タブを選択し，必要な情報を入力します。
［構成要素］タブでは，構成要素の出現回数およびサイズを設定します。
［単純内容要素］ダイアログの［単純内容要素］タブの表示・入力内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.2　単純内容要素ダイアログ」を参照してください。
なお，出現回数およびサイズは，ほかの要素に依存させることができます。この場合，［ノード選択］ボタンをクリックして表示される［ノード選択］ダイアログで，依存させるノードを選択できます。
［ノード選択］ダイアログの表示・入力内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.6　ノード選択ダイアログ（バイナリフォーマット定義）」を参照してください。
［ノード選択］ダイアログで［OK］ボタンをクリックすると，設定した値が［単純内容要素］ダイアログの［構成要素］タブに反映されます。

［OK］ボタンをクリックします。
［単純内容要素］ダイアログに入力した情報で，ローカル定義の単純内容要素が複合内容要素の構成要素として設定されます。設定した構成要素は，バイナリフォーマット定義エディタ上の複合内容要素の下位要素として表示されます。

(5)　構成要素の選択条件を設定する

複合内容要素を設定する際，構成区分として［選択構成］を選択した場合，構成要素に選択条件を設定する必要があります。選択条件を設定すると，複合内容要素に含まれる複数の構成要素のうち，どの要素を利用するかを別の要素の値から判定できます。

選択条件を設定する方法には，次の二つの方法があります。

［選択条件ノード］を選択して，選択条件を設定する
選択条件ノードで選択したノードに設定した条件値から，利用する構成要素を決定します。

［構成要素の開始セパレータ］を選択して，選択条件を設定する
構成要素に設定した開始セパレータから，利用する構成要素を決定します。

それぞれの方法での選択条件の設定について次に示します。

(a)　選択条件ノードを選択して選択条件を設定する

選択条件ノードを選択して選択条件を設定する方法を次に示します。

選択条件を設定する構成要素を含む複合内容要素をバイナリフォーマット定義エディタ上で選択して右クリックし，［設定］を選択します。
［複合内容要素］ダイアログが表示されます。

［構成区分］で［選択構成］を選択します。

［選択種別］で［選択条件ノード］を選択し，［ノード選択］ボタンをクリックします。
［ノード選択］ダイアログが表示されます。［ノード選択］ダイアログでは，選択条件ノードを選択します。
［ノード選択］ダイアログの表示・入力内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.6　ノード選択ダイアログ（バイナリフォーマット定義）」を参照してください。
［ノード選択］ダイアログで［OK］ボタンをクリックすると，設定した値が［複合内容要素］ダイアログの［選択条件ノード］に反映されます。

［構成要素一覧］から条件を設定する要素を選択し，［条件値設定］ボタンをクリックします。
［条件値設定］ダイアログが表示されます。［条件値設定］ダイアログでは，条件値を入力します。
［条件値設定］ダイアログの表示・入力内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.5　条件値設定ダイアログ」を参照してください。
［条件値設定］ダイアログで［OK］ボタンをクリックすると，設定した値が［複合内容要素］ダイアログの［選択条件値］に反映されます。ほかの構成要素にも選択条件を設定する場合，手順3.を繰り返します。
なお，選択条件が設定されていない構成要素は，ほかの構成要素に設定されているどの選択条件にも当てはまらない場合に出現する構成要素になります。このような構成要素は，構成要素の中で一つだけ設定できます。

［OKボタン］をクリックします。
［複合内容要素］ダイアログに入力した情報で，選択条件が設定されます。

(b)　構成要素の開始セパレータを選択して選択条件を設定する

構成要素の開始セパレータを選択して選択条件を設定する方法を次に示します。

選択条件を設定する構成要素を含む複合内容要素をバイナリフォーマット定義エディタ上で選択して右クリックし，［設定］を選択します。
［複合内容要素］ダイアログが表示されます。

［構成区分］で［選択構成］を選択します。

［選択種別］で［構成要素の開始セパレータ］を選択します。
［構成要素一覧］に，構成要素および構成要素に設定した開始セパレータが表示されます。

［OKボタン］をクリックします。
［複合内容要素］ダイアログに入力した情報で，選択条件が設定されます。なお，構成要素（複合内容要素）に開始セパレータを設定していない場合は，バイナリフォーマット定義ファイル検証時にエラーになります。

(6)　ルート要素を設定する

使用するバイナリデータをXMLスキーマで表現したときに，ルート要素として扱う複合内容要素を設定します。

バイナリフォーマット定義ファイルの要素の定義時には，最初に設定した複合内容要素がルート要素になっています。ほかの複合内容要素をルート要素にするには，バイナリフォーマット定義エディタに表示されている複合内容要素を選択して右クリックし，［ルート要素に設定］を選択します。

［ルート要素に設定］を選択すると，バイナリフォーマット定義エディタ上で選択した複合内容要素がルート要素になります。バイナリフォーマット定義エディタ上では，ルート要素として扱う複合内容要素にルート要素のアイコンが表示されます。

なお，ある複合内容要素がすでにルート要素として設定されている場合，ほかの複合内容要素をルート要素として設定すると，ルート要素が変更されます。アウトラインビューの表示も，新しいルート要素からの表示に切り替わります。

(7)　セパレータを設定する

複合内容要素の構成要素として設定されている単純内容要素が，要素ごとに区切り文字（セパレータ）で区切られたデータ（セパレータデータ）の場合，複合内容要素にセパレータを設定します。

セパレータを設定する方法を次に示します。

複合内容要素を選択して右クリックし，［設定］を選択します。
［複合内容要素］ダイアログが表示されます。

［セパレータ］タブを選択します。
［複合内容要素］ダイアログの［セパレータ］タブの内容が表示されます。

使用するセパレータ形式をドロップダウンリストから選択します。
なお，セパレータ形式にCSVを選択した場合，開始セパレータおよび中間区切りセパレータは自動で設定されます。

使用するセパレータの［使用する］チェックボックスをチェックし，［選択］ボタンをクリックします。
［セパレータ選択］ダイアログが表示されます。［セパレータ選択］ダイアログの表示・入力内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.8　セパレータ選択ダイアログ」を参照してください。

使用するセパレータを一覧から選択し，［OK］ボタンをクリックします。
［複合内容要素］ダイアログのセパレータタブに選択したセパレータの情報が表示されます。
なお，［セパレータ選択］ダイアログに，使用するセパレータがない場合，［セパレータ選択］ダイアログの［追加］ボタンをクリックします。表示される［セパレータ追加/変更］ダイアログでセパレータを追加/変更できます。
［セパレータ追加/変更］ダイアログの表示・入力内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.9　セパレータ追加/変更ダイアログ」を参照してください。

必要に応じて，手順3.と手順4.を繰り返します。

［OK］ボタンをクリックします。
［複合内容要素］ダイアログの［セパレータ］タブに入力した情報で，セパレータが設定されます。

4.4.4　要素を定義する（CSV形式の場合）

CSV形式の場合，バイナリフォーマット定義ファイルの内容は，バイナリフォーマット定義画面で定義します。バイナリフォーマット定義画面は，Eclipseのパッケージ・エクスプローラーに表示されるバイナリフォーマット定義ファイルをダブルクリックすると表示されます。

バイナリフォーマット定義画面については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.1　バイナリフォーマット定義画面」を参照してください。

参考

バイナリフォーマット定義画面では，複数のバイナリフォーマット定義ファイルを開いて編集できます。ただし，複数のバイナリフォーマット定義ファイルの間で，定義情報をコピーして貼り付けることはできません。

CSV形式の場合，バイナリフォーマット定義ファイルを新規作成して，バイナリフォーマット定義画面を表示すると，ルート要素，ヘッダ要素，およびレコード要素が配置された状態で表示されます。

図4-8　CSV形式のデータを利用する場合のバイナリフォーマット定義画面の初期表示

ルート要素，ヘッダ要素，およびレコード要素はすべて複合内容要素です。ヘッダ要素およびレコード要素はルート要素の構成要素として設定されています。ヘッダ要素およびレコード要素には，ローカル定義の単純内容要素を構成要素として設定します。

バイナリフォーマット定義画面では次の作業を行います。

フォーマット情報の設定

ヘッダ要素およびレコード要素の出現回数の設定

ヘッダ要素およびレコード要素の構成要素の設定

ルート要素の設定

ポイント

CSV形式のデータを利用する場合，バイナリフォーマット定義画面に初期表示されるルート要素，ヘッダ要素，およびレコード要素の構成は，変更できません。

定義の方法を次に示します。

＜この項の構成＞

(1)　フォーマット情報を設定する

(2)　ヘッダ要素およびレコード要素の出現回数を設定する

(3)　ヘッダ要素およびレコード要素の構成要素を設定する

(4)　ルート要素を設定する

(1)　フォーマット情報を設定する

バイナリフォーマット定義ファイルのフォーマット情報として，バイナリデータで使用されている文字コードや改行を指定します。

設定の方法は，CSV以外の形式のバイナリデータを利用する場合と同じです。フォーマット情報の設定方法については，「4.4.3(1) フォーマット情報を設定する」を参照してください。

(2)　ヘッダ要素およびレコード要素の出現回数を設定する

ヘッダ要素およびレコード要素の出現回数の設定方法を次に示します。

ルート要素の構成要素として表示されているヘッダ要素またはレコード要素を選択して右クリックし，［設定］を選択します。
［構成要素］ダイアログが表示されます。

［構成要素］ダイアログで出現回数を入力します。
なお，ヘッダ要素の出現回数は，CSVデータにヘッダがない場合は「0」を，ヘッダがある場合は「1」を設定します。
［構成要素］ダイアログの表示・入力内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.4　構成要素ダイアログ」を参照してください。

［OK］ボタンをクリックします。
［構成要素］ダイアログに入力した出現回数が設定されます。

(3)　ヘッダ要素およびレコード要素の構成要素を設定する

バイナリフォーマット定義エディタに，ルート要素の構成要素として表示されているヘッダ要素およびレコード要素の構成要素の設定方法を次に示します。

ルート要素の構成要素として表示されているヘッダ要素またはレコード要素を選択して右クリックし，［ローカル単純内容要素の追加］を選択します。
［単純内容要素］ダイアログが表示されます。

［単純内容要素］ダイアログに必要な情報を入力します。
［単純内容要素］ダイアログの表示・入力内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.2　単純内容要素ダイアログ」を参照してください。

［OK］ボタンをクリックします。
［単純内容要素］ダイアログに入力した情報が設定されます。

(4)　ルート要素を設定する

CSVデータを利用する場合，バイナリフォーマット定義画面に初期表示されたルート要素以外の要素を，ルート要素に設定することはできません。ただし，ルート要素の名称だけ変更できます。

ルート要素の名称の変更方法を次に示します。

ルート要素を選択して右クリックし，［設定］を選択します。
［複合内容要素］ダイアログが表示されます。

［名称］を入力します。

［OK］ボタンをクリックします。
入力した名称が設定されます。

4.4.5　バイナリフォーマット定義ファイルを編集する

すでに作成，保存されているバイナリフォーマット定義ファイルの内容を変更できます。

バイナリフォーマット定義ファイルの内容を変更するには，Eclipseのパッケージ・エクスプローラーで編集するバイナリフォーマット定義ファイルをダブルクリックします。表示されるバイナリフォーマット定義画面で内容を変更します。

バイナリフォーマット定義画面で設定できる内容については，「4.4.3　要素を定義する（CSV以外の形式の場合）」，または「4.4.4　要素を定義する（CSV形式の場合）」を参照してください。

なお，すでに作成済みのバイナリフォーマット定義ファイルをコピーして内容を変更し，別のバイナリフォーマット定義ファイルを作成することもできます。ただし，作成済みのバイナリフォーマット定義ファイルの定義内容の一部をコピーして流用することはできません。

4.4.6　バイナリフォーマット定義ファイルを検証する

必要な情報が設定されていなかったり，設定の内容や関係が正しくない場合，バイナリフォーマット定義ファイルを利用したデータ変換定義の作成や，データ変換が正しく行われません。

そのため，作成したバイナリフォーマット定義ファイルは，設定の内容が妥当かどうか検証します。検証は，任意のタイミングで実施できます。また，各要素を設定するダイアログでの入力時には，入力された値が自動的に検証されます。

＜この項の構成＞

(1)　検証内容

(2)　検証方法

(3)　検証結果の表示

(1)　検証内容

バイナリフォーマット定義ファイルの各要素の設定内容が検証できます。

検証内容とエラー発生時の対処，およびどの検証内容がどの検証方法の場合に実施されるかについて，次の表に示します。

表4-7　バイナリフォーマット定義ファイルの検証内容とエラー発生時の対処

検証の対象
検証内容
エラー発生時の対処
検証方法

自動
任意

全体
名称がNCName型か。
フォーマット名称および要素の名称をNCName型で指定します。
○
－

フォーマット
逐次構成の複合内容要素が設定されているか。
逐次構成の複合内容要素を設定します。
－
○

ルート要素が設定されているか。
バイナリフォーマット定義内の複合内容要素をルート要素として設定します。
－
○

文字コードにKEISを選択している場合に，セパレータを定義している複合内容要素がないか。
フォーマットの文字コードをKEIS以外にするか，または複合内容のセパレータの指定を解除します。
○
－

文字コードにKEISを選択している場合に，データ種別に文字列以外を設定している単純内容要素がないか。
フォーマットの文字コードをKEIS以外にするか，または単純内容のデータ種別に文字列を指定します。
○
－

パック形式数値およびゾーン形式数値のビット値（16進数）の値が16進数で設定されているか，または未設定でないか。
該当する符号ビットまたは文字を16進数で設定します。
○
－

ゾーン形式数値の符号文字（16進数）の値が16進数で設定されているか，または未設定でないか。
該当する符号ビットまたは文字を16進数で設定します。
○
－

エスケープ文字がラテン文字または半角スペースの1文字か。
ラテン文字の範囲（0x21～0x7E）でエスケープ文字を設定します。
○
－

エスケープ文字とセパレータ値に同一の文字が指定されていないか。※
エスケープ文字とセパレータ値に重複しない文字を指定します。
○
－

単純内容要素
同じ名称の要素が同じ階層にないか。
同じ階層でユニークな名称を指定します。
○
－

グローバル定義の単純内容要素は，複合内容要素の構成要素に設定されているか。
該当する単純内容要素を複合内容要素の構成要素に設定します。
○
－

サイズが固定の場合，指定したサイズの値は次の式を満たすか。

0＜サイズ≦2,147,483,647

サイズを1～2,147,483,647の範囲で設定します。
○
－

次の条件をすべて満たす場合，指定したサイズの値が偶数か。

データ種別が文字列，整数，実数，固定小数部数値，または日付時刻

サイズが固定

文字コードがUTF-16（BE/LE）

文字コードにUTF-16（BE/LE）以外を指定するか，該当する単純内容要素のサイズに偶数を指定します。
○
○

次の条件をすべて満たす場合，指定した小数部桁数が，サイズに指定した値から求められる最大の小数部桁数以下になっているか。

データ種別が固定小数部数値，ゾーン形式数値，またはパック形式数値

サイズが固定

サイズに小数部桁数のバイト数以上の値を設定します。
○
○

データ種別が固定小数部数値，ゾーン形式数値，またはパック形式数値の場合，指定した小数部桁数は次の式を満たすか。

0≦小数部桁数≦33

小数部桁数を0～33で設定します。
○
－

データ種別が日付時刻で，秒小数部桁数が指定されている場合，指定した小数部桁数は次の式を満たすか。

0≦秒小数部桁数≦3

秒小数部桁数を0～3で設定します。
○
－

データ種別が日付時刻で，サイズが固定の場合，指定したサイズは次の式を満たすか。

サイズ≧形式サイズ＋小数点サイズ＋秒小数部桁数

サイズに日付時刻形式のバイト数以上の値を設定します。
○
○

次の条件をすべて満たす場合，「指定したサイズの最大小数部桁数≧小数部桁数＋符号文字」になっているか。または指定したサイズが2バイト以上か。

データ種別がゾーン形式数値

サイズが固定

符号の設定が「カスタム」

符号の種類が「符号文字」

サイズには，小数部桁数のバイト数＋符号文字のバイト数以上，かつ2バイト以上の値を指定してください。
○
○

複合内容要素
同じ名称の要素が同じ階層にないか。
同じ階層でユニークな名称を指定します。
○
－

ルート要素に設定されている複合内容要素が，ほかの複合内容要素の構成要素として設定されていないか。
複合内容要素の構成要素から，ルート要素に設定されている複合内容要素を削除します。
－
○

複合内容要素はほかの複合内容要素の構成要素に設定されているか（ただしルート要素の場合は除く）。
該当する複合内容要素を，ほかの複合内容要素の構成要素に設定します。
－
○

構成要素は設定されているか。
該当する複合内容要素に構成要素を設定します。
－
○

選択構成の場合，選択条件ノードが設定されているか。
該当する複合内容要素に選択条件ノードを設定します。
－
○

選択構成の場合，選択条件ノードに設定されている要素は単純内容要素か。
選択条件ノードとして単純内容要素のノードを設定します。
○
○

選択構成の場合，各構成要素に選択条件値が設定されているか（ただし，一つだけは選択条件値を設定しなくてもよい）。
各構成要素に選択条件値を設定し，選択条件値が設定されていない構成要素を一つ以下にします。
－
○

選択構成の場合，選択条件ノードに設定されている単純内容要素のデータ種別と，各構成要素の選択条件値に指定した値が一致するか。
選択条件ノードに設定されている単純内容要素のデータ種別によって検証の内容と対処が異なります。詳細については「表4-8　選択条件値に指定した値に関する検証内容と対処」を参照してください。
○
○

選択構成の場合，各構成要素の選択条件値に重複はないか。
選択条件値が重複した構成要素に，ほかの構成要素で設定されていない選択条件値を設定します。
－
○

選択構成の場合，選択条件ノード，およびそのすべての祖先ノードの出現回数が固定で，かつ1回か。
選択条件ノードとその祖先ノードの出現回数を1回固定になるように設定します。
－
○

選択構成の場合，選択条件ノードのサイズが固定か。
選択条件ノードのサイズを固定に設定します。
－
○

選択構成の場合，選択条件ノードのパスが正しいか。
選択条件ノードを示すパスが不正であるおそれがあります。対処方法については「表4-9　パスが不正である場合の原因と対処」を参照してください。
○
○

選択構成の場合，選択条件ノードのパスに選択構成の複合内容要素が含まれていないか（ただし，パスが絶対パスの場合，設定元のノードの祖先ノードは除く）。
選択条件ノードが実際のバイナリデータで出現しないおそれがあります。実際のバイナリデータで選択条件ノードに該当するデータが出現するか確認します。
－
○

選択構成の場合，コード変換ライブラリが使用できるか（クラスをロードできるか）。
uCosminexus 日立コード変換 - Development Kitのjarファイルを正しく設定したあと，Eclipseを再起動します。
○
○

コード変換テーブルのパスが正しく設定されているか。
コード変換テーブルパスに日立コード変換の変換用テーブルのパスを正しく指定してください。
○
○

選択構成の場合，構成要素に設定されている単純内容要素の数は一つ以下か。
構成要素に設定する単純内容要素を一つ以下にします。
－
○

選択構成の場合，各構成要素（複合内容要素）に開始セパレータが設定されているか（ただし，構成要素に単純内容要素が設定されていない場合，一つだけは開始セパレータを設定しなくてもよい）。
構成要素に単純内容要素が設定されている場合，各構成要素に開始セパレータを設定します。構成要素に単純内容要素が設定されていない場合，開始セパレータが設定されていない構成要素を一つ以下にします。
－
○

選択構成の場合，各構成要素に設定されている開始セパレータの値に重複はないか。
開始セパレータが重複した構成要素に，ほかの構成要素で設定されていない開始セパレータの値を設定します。
－
○

構成要素
出現回数が固定の場合，指定した出現回数は次の式を満たすか。

0＜出現回数≦2,147,483,647

出現回数を1～2,147,483,647の範囲で設定します。
○
－

出現回数が「出現回数ノード」の場合，出現回数ノードが設定されているか。
該当する構成要素に出現回数ノードを設定します。
－
○

出現回数が「出現回数ノード」の場合，出現回数ノードのデータ種別が数値型か（数値型とは，整数，実数，固定小数部数値，ゾーン形式数値，パック形式数値，符号付き2進整数，または符号なし2進整数）。
出現回数ノードには，データ種別が数値型の単純内容要素を設定します。
○
○

出現回数が「出現回数ノード」の場合，出現回数ノード，およびそのすべての祖先ノードの出現回数が固定，かつ1回か。
出現回数ノードとその祖先ノードの出現回数を1回固定になるように設定します。
－
○

出現回数が「出現回数ノード」の場合，出現回数ノードのパスが正しいか。
出現回数ノードを示すパスが不正であるおそれがあります。対処方法については「表4-9　パスが不正である場合の原因と対処」を参照してください。
○
○

出現回数が「出現回数ノード」の場合，出現回数ノードのパスに選択構成の複合内容要素が含まれていないか（ただし，パスが絶対パスの場合，設定元のノードの祖先ノードは除く）。
出現回数ノードが実際のバイナリデータで出現しないおそれがあります。実際のバイナリデータで出現回数ノードに該当するデータが出現するか確認します。
－
○

再帰構造になっていないか。
再帰的に設定されている構成要素を削除します。
○
－

構成要素が単純内容要素の場合で，サイズが「サイズノード」のとき，サイズノードが設定されているか。
該当する構成要素にサイズノードを設定します。
－
○

構成要素が単純内容要素の場合で，サイズが「サイズノード」のとき，サイズノードのデータ種別が数値型か（数値型とは，整数，実数，固定小数部数値，ゾーン形式数値，パック形式数値，符号付き2進整数，または符号なし2進整数）。
サイズノードには，データ種別が数値型の単純内容要素を設定します。
○
○

構成要素が単純内容要素の場合で，サイズが「サイズノード」のとき，サイズノード，およびそのすべて祖先ノードの出現回数が固定，かつ1回か。
サイズノードとその祖先ノードの出現回数を1回固定になるように設定します。
－
○

構成要素が単純内容要素の場合で，サイズが「サイズノード」のとき，サイズノードのパスが正しいか。
サイズノードを示すパスが不正であるおそれがあります。対処方法については「表4-9　パスが不正である場合の原因と対処」を参照してください。
○
○

構成要素が単純内容要素の場合で，サイズが「サイズノード」のとき，サイズノードのパスに選択構成の複合内容要素が含まれていないか（ただし，パスが絶対パスの場合，設定元のノードの祖先ノードは除く）。
サイズノードが実際のバイナリデータで出現しないおそれがあります。実際のバイナリデータでサイズノードに該当するデータが出現するか確認します。
－
○

構成要素が単純内容要素の場合で，出現回数が「データの終端まで」の場合，出現の終わりを示すセパレータが設定されていること。
出現回数が可変の要素で，出現の終わりを示すセパレータを指定します。
○
○

構成要素が単純内容要素の場合で，サイズが「データの終端まで」の場合，データの終了を示すセパレータが設定されていること。
サイズが可変長の要素で，データの終了を示すセパレータを指定します。
○
○

構成要素が複合内容要素の場合で，出現回数が「データの終端まで」の場合，出現の終わりを示すセパレータが設定されていること。
出現回数が可変の要素で，出現の終わりを示すセパレータを指定します。
○
○

（凡例）

○：検証されます。

－：検証されません。

注※

セパレータ値の種別がバイト列のセパレータは検証されません。

表4-8　選択条件値に指定した値に関する検証内容と対処

データの種別
検証内容
対処

文字列
次の式を満たすか。

文字コード変換後のサイズ≦指定のサイズ

選択条件値のバイトサイズが選択条件ノードのサイズ以下になるように指定してください。

整数
指定した文字列の形式はｎか。※1※2
選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。

次の式を満たすか。

文字コード変換後のサイズ≦指定のサイズ

選択条件値のバイトサイズが選択条件ノードのサイズ以下になるように指定してください。

符号の有無が「なし」の場合，0≦値か。
選択条件値に正の値を指定してください。

整数は34桁以下か。
選択条件値に有効桁数が34桁以内の数値を指定してください。

実数
指定した文字列の形式はnまたはn.mか。※1※2
選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。

次の式を満たすか。

文字コード変換後のサイズ≦指定のサイズ

選択条件値のバイトサイズが選択条件ノードのサイズ以下になるように指定してください。

符号の有無が「なし」の場合，0≦値か。
選択条件値に正の値を指定してください。

整数部桁＋小数部桁が34桁以下の実数か。
選択条件値に有効桁数が34桁以内の数値を指定してください。

固定小数部数値
指定した文字列の形式はnまたはn.mか。※1※2
選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。

次の式を満たすか。

暗黙的小数部付き数値に変換後のサイズ≦指定のサイズ

選択条件値のバイトサイズが選択条件ノードのサイズ以下になるように指定してください。

符号の有無が「なし」の場合，0≦値か。
選択条件値に正の値を指定してください。

整数部桁＋小数部桁が34桁以下の実数か。
選択条件値に有効桁数が34桁以内の数値を指定してください。

小数部桁は「小数部桁数」に指定した範囲内か。
選択条件値の小数部の桁数を小数部桁数以下で指定してください。

ゾーン形式数値
指定した文字列の形式はnまたはn.mか。※1
選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。

次の式を満たすか。

ゾーン形式に変換後のサイズ≦指定のサイズ

選択条件値のバイトサイズが選択条件ノードのサイズ以下になるように指定してください。

整数部桁＋小数部桁が34桁以下の実数か。
選択条件値に有効桁数が34桁以内の数値を指定してください。

小数部桁は「小数部桁数」に指定した範囲内か。
選択条件値の小数部の桁数を小数部桁数以下で指定してください。

単純内容要素の符号の設定が「カスタム」，かつ符号の有無が「なし」の場合に，条件値に負の値を設定していないか。
選択条件値に正の値を指定してください。

パック形式数値
指定した文字列の形式はnまたはn.mか。※1
選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。

次の式を満たすか。

パック形式に変換後のサイズ≦指定のサイズ

選択条件値のバイトサイズが選択条件ノードのサイズ以下になるように指定してください。

整数部桁＋小数部桁が34桁以下の実数か。
選択条件値に有効桁数が34桁以内の数値を指定してください。

小数部桁は「小数部桁数」に指定した範囲内か。
選択条件値の小数部の桁数を小数部桁数以下で指定してください。

単純内容要素の符号の設定が「カスタム」，かつ符号の有無が「なし」の場合に，条件値に負の値を設定していないか。
選択条件値に正の値を指定してください。

符号付き2進整数
指定した文字列の形式はnまたは-nか。※1
選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。

サイズが1バイトの場合，次の式を満たす整数か。

-2⁷≦値≦2⁷-1

選択条件値に有効な値を指定してください。

サイズが2バイトの場合，次の式を満たす整数か。

-2¹⁵≦値≦2¹⁵-1

選択条件値に有効な値を指定してください。

サイズが4バイトの場合，次の式を満たす整数か。

-2³¹≦値≦2³¹-1

選択条件値に有効な値を指定してください。

サイズが8バイトの場合，次の式を満たす整数か。

-2⁶³≦値≦2⁶³-1

選択条件値に有効な値を指定してください。

符号なし2進整数
指定した文字列の形式はnか。※1
選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。

サイズが1バイトの場合，次の式を満たす整数か。

0≦値＜2⁸

選択条件値に有効な値を指定してください。

サイズが2バイトの場合，次の式を満たす整数か。

0≦値＜2¹⁶

選択条件値に有効な値を指定してください。

サイズが4バイトの場合，次の式を満たす整数か。

0≦値＜2³²

選択条件値に有効な値を指定してください。

サイズが8バイトの場合，次の式を満たす整数か。

0≦値＜2⁶⁴

選択条件値に有効な値を指定してください。

バイト列
指定した文字列の形式は0～9，a～f，A～Fか。
選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。

次の式を満たすか。

バイト変換後のサイズ=指定のサイズ

条件値のバイトサイズが選択条件ノードのバイトサイズと同じになるように定義してください。

日付時刻
形式がCCYYMMDDの場合，指定した文字列形式はCCYYMMDDか。
選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。

形式がYYMMDDの場合，指定した文字列形式はYYMMDDか。
選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。

形式がhhmmssの場合，指定した文字列形式はhhmmssか。
選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。

形式がCCYYMMDDhhmmssの場合，指定した文字列形式はCCYYMMDDhhmmssか。
選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。

形式がYYMMDDhhmmssの場合，指定した文字列形式はYYMMDDhhmmssか。
選択条件値に選択条件ノードのデータ種別と一致した文字列を指定してください。

秒小数点の指定は，秒小数点の桁数と一致するか。
選択条件値の秒小数点桁数と選択条件ノードに指定した値を一致させてください。

指定した日付時刻は正しい日付時刻か。
選択条件値に正しい日付時刻を指定してください。

注※1

n，mは0～9の数値を表します。ただし，nの先頭，およびmの末尾は1～9の数値です。

注※2

条件値に付ける符号は，選択条件ノードの「符号の有無」の設定によって異なります。「常にあり」の場合は必ず符号を付けます。「なし」の場合，符号は指定できません。「負だけあり」の場合は「－」だけ指定できます。

表4-9　パスが不正である場合の原因と対処

パス不正の原因 | 対処
選択条件，出現回数，またはサイズノードに指定したパスのノードが定義上から削除されている。 | 選択条件，出現回数，またはサイズノードを指定し直してください。
選択条件，出現回数，またはサイズノードを指定したあとに，階層構造が変更された。 | 選択条件，出現回数，またはサイズノードを指定し直してください。
選択条件，出現回数，またはサイズノードに指定したパスが，設定先の要素よりもあとに出現する。 | 選択条件，出現回数，またはサイズノードに，設定先より前に出現する要素を指定してください。
ノードパス設定先のノードを参照する構成要素が複数定義されている。 | ノードパス設定先を参照する構成要素を一つにしてください。
絶対パスの最上位要素がルート要素ではない。 | ルート要素を絶対パスの最上位要素に設定するか，パスを設定し直してください。
設定元のノードの祖先に基準ノードが存在しない。 | ノードパスを設定し直してください。
基準パスの基準ノードが逐次構成の要素ではない。 | 基準ノードが逐次構成になるパスを設定してください。
パスと設定元のノードの共通の親が，選択構成の複合内容である。 | パスと設定元のノードの共通の親を逐次構成の複合内容に設定してください。

(2)　検証方法

検証方法には，次の二つがあります。検証方法によって検証される内容は異なります。詳細については，「4.4.6(1) 検証内容」を参照してください。

ダイアログの入力時の検証

バイナリフォーマット定義ファイルの各要素を設定するときに利用するダイアログでは，入力された値が逐次自動的に検証されます。

任意のタイミングでの検証

バイナリフォーマット定義ファイルの作成後，または作成途中の任意のタイミングで検証を実施できます。

検証を実施するには，バイナリフォーマット定義エディタ上の要素を選択して右クリックし，［検証］を選択します。バイナリフォーマット定義エディタに表示されているバイナリフォーマット定義ファイルが検証されます。

なお，検証するときにバイナリフォーマット定義エディタ上で選択する要素は任意です。どの要素を選択しても，バイナリフォーマット定義ファイル全体が検証されます。

検証結果の表示については，「4.4.6(3) 検証結果の表示」を参照してください。

(3)　検証結果の表示

検証を実施した結果は，画面およびダイアログ上に表示されます。

(a)　ダイアログの入力時の自動検証の結果の表示

ダイアログの入力時の自動検証の結果は，バイナリフォーマット定義に関連するダイアログの［インフォメーション］に表示されます。問題がない場合は，何も表示されません。

バイナリフォーマット定義に関連するダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.1　バイナリフォーマット定義画面」を参照してください。

(b)　任意のタイミングで検証した結果の表示

検証の結果が画面に表示されます。

画面の表示内容については，次の個所を参照してください。

マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.1.1　バイナリフォーマット定義ファイルを作成する画面の構成」

マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.1　バイナリフォーマット定義画面」

検証が成功した場合

コンソールビューに検証が成功したことを示すメッセージが表示されます。

検証が失敗した場合

コンソールビューにエラー，警告，および情報通知の内容を示すメッセージが表示されます。また，画面上の各部分にエラー，警告，および情報通知の内容が表示されます。

バイナリフォーマット定義エディタ，アウトラインビュー

問題のあったノードにエラーまたは警告を示すアイコンが表示されます。エラーと警告の両方がある場合，エラーのアイコンが優先して表示されます。

パッケージ・エクスプローラー

問題のあったファイルとその祖先のフォルダにエラーまたは警告を示すアイコンが表示されます。エラーと警告の両方がある場合，エラーのアイコンが優先して表示されます。

問題ビュー

問題点を示すメッセージ，リソース名（ファイル名）およびフォルダ名が一覧表示されます。

4.5　COBOL登録集原文ファイルからのバイナリフォーマット定義ファイルの生成

COBOL登録集原文ファイルからのバイナリフォーマット定義ファイルの生成とは，指定したCOBOL登録集原文ファイルをバイナリフォーマット定義ファイルに変換する機能です。

TP1/RPC受付を利用する場合，受付内でCOBOLの入出力パラメタが処理されるため，COBOLで定義されたレコード定義（COBOL登録集原文ファイル）をバイナリフォーマット定義ファイルに変換する必要があります。

この機能を利用することで，COBOL登録集原文ファイルからバイナリフォーマット定義ファイルの生成を自動化できます。そのため，データ変換作業の効率化を図れます。

COBOL登録集原文ファイルからのバイナリフォーマット定義ファイルの生成機能を利用したデータ変換のイメージを次の図に示します。

図4-9　COBOL登録集原文ファイルからのバイナリフォーマット定義ファイルの生成機能を利用したデータ変換のイメージ

この機能では，COBOL2FDXコンバータを使用します。COBOL2FDXコンバータは，指定したCOBOL登録集原文ファイルのレコード定義を解析したあと，バイナリフォーマット定義ファイルとして出力します。

＜この節の構成＞

4.5.1　変換できるCOBOL登録集原文ファイルの記述形式

4.5.2　COBOL登録集原文ファイルとバイナリフォーマット定義ファイルのデータ型の対応

4.5.3　バイナリフォーマット定義ファイルの生成方法

4.5.1　変換できるCOBOL登録集原文ファイルの記述形式

COBOL登録集原文ファイルからのバイナリフォーマット定義ファイルの生成機能で使用できるCOBOL登録集原文ファイルの記述形式について説明します。

この機能では，日立COBOL85言語の利用を前提としています。しかし，この節で説明する規則および形式に従って記述されたCOBOL登録集原文ファイルであれば使用できます。日立COBOL85言語の機能および文法については，マニュアル「COBOL85 言語」を参照してください。

＜この項の構成＞

(1)　指定できるファイル形式

(2)　COBOL登録集原文ファイルの記述規則

(3)　データ項目の記述形式

(1)　指定できるファイル形式

この機能で使用できるCOBOL登録集原文ファイルは，固定形式（拡張子：.cbf以外）だけです。フリー形式（拡張子：.cbf）のファイルはサポートしていません。

(2)　COBOL登録集原文ファイルの記述規則

この機能で使用できるCOBOL登録集原文ファイルは，次の記述規則に従います。

COBOL登録集原文ファイルの文字コードはMS932である必要があります。

構文として正しいものを使用している必要があります。コンパイラが出力するメッセージに「重大エラー」または「警告エラー」が含まれていないことが前提です。

1～6カラム目は，行番号としては使用されないで，6桁の半角空白（0x20）として扱われます。エラー情報に出力される行番号としても使用されません。

コメント行（7カラム目が「*」，「/」）は無視されます。

73カラム目以降のコメントは無視されます。

デバッグ行（7カラム目が「D」および「d」の行）は無視されます。

通常のCOBOLと同様に，7カラム目が「-」の行は継続行として扱われます。

タブ文字は1個の空白文字として扱われます。

全角空白文字は分離符として扱われますが，「;」および「,」は分離符として扱われません。

拡張コード文字と標準コード文字は非等価として扱われます。

次の語は予約語として扱われます。それ以外の語は利用者語として扱われます。

COMP

COMP-3

COMPUTATIONAL

COMPUTATIONAL-3

DISPLAY

FILLER

IS

NATIONAL

OCCURS

PIC

PICTURE

TIMES

USAGE

(3)　データ項目の記述形式

英字項目や数字項目などのデータ項目の記述は，この項で説明する規則に従っている必要があります。規則に従っていない場合は，構文エラーとなります。

(a)　データ項目の書き方

COBOLのデータ項目の書き方を次に示します。

レベル番号 {データ名|FILLER}
［｛PICTURE｜PIC｝[IS] 文字列］
［［USAGE [IS]］｛COMPUTATIONAL-3｜COMP-3｜COMPUTATIONAL｜COMP｜DISPLAY｜NATIONAL｝］
［OCCURS 整数 [TIMES]］.

(b)　構文規則

レベル番号は，1～2桁の符号なし整数で1～49でなければなりません。

データ名の文字数は1～30でなければなりません。

データ項目およびFILLER項目の数は32,760個を超えてはなりません。

OCCURS句に指定する整数の値は1～2,147,483,647でなければなりません。

PICTURE句に指定できる文字は表4-10の内容だけです。

レベル番号，データ名，PICTURE句，USAGE句，およびOCCURS句の構文規則で，1.～5.の構文規則で規定されている規則以外は，日立COBOL85言語の構文規則に従います。

USAGE句の構文規則を次に示します。

集団項目ではUSAGEは指定できません。

数値項目でDISPLAY，NATIONALを指定した場合は無視されます。

数値項目以外でUSAGEを指定した場合は無視されます。

データ項目は，一つのレコード（レベル番号01の集団項目），およびその従属データ項目だけでなければなりません。

COPY文は指定できません。

表4-10　PICTURE句に指定できる文字

項番 | データ型 | PICTURE句に指定できる文字 | 小数部 | 使用できる桁数の範囲（小数部含む）
文字 | 桁数
1 | 英字項目 | 「A」 | 1 | － | 1～2,147,483,647
2 | 英数字項目 | 「A」，「X」，「9」 | 1
3 | 数字項目 | 外部10進形式 | 「9」 | 1 | 「V」以降の文字 | 1～18
「S」，「V」 | 0
4 | 内部10進形式 | 外部10進形式と同様
5 | 2進形式 | 「9」 | 1 | ×
「S」 | 0
6 | 英数字編集項目 | 「A」，「X」，「9」，「B」，「0」，「/」 | 1 | － | 1～2,147,483,647
7 | 数字編集項目 | 「B」，「/」，「Z」，「0」，「9」，「,」，「.」，「*」，「+」，「-」，通貨編集文字 | 1 | × | 1～249
「CR」，「DB」 | 2
「V」 | 0
8 | 日本語項目 | 「N」 | 2 | － | 2～32,766
9 | 日本語編集項目 | 「N」，「B」 | 2

（凡例）

－：該当する項目はありません。

×：この機能ではサポートしていません。

注意

通常のCOBOLと同様に，各文字の直後に「(nn)」（nnは1～2,147,483,647の数値）が指定された場合は，文字の反復回数となります。

(c)　注意事項

PICTURE句で指定する通貨編集文字や「Z」，「0」などの編集文字は桁数を算出する目的でだけ使用されます。データ項目に通貨編集文字などを埋め込む編集機能はサポートしていません。

4.5.2　COBOL登録集原文ファイルとバイナリフォーマット定義ファイルのデータ型の対応

変換前のCOBOL登録集原文ファイルと，変換後のバイナリフォーマット定義ファイルのデータ型の対応について説明します。

＜この項の構成＞

(1)　要素名の対応

(2)　データ型の対応

(3)　ゾーン形式数値・バック形式数値の符号の対応

(4)　COBOLのデータ型のサイズの算出方法

(1)　要素名の対応

COBOLのデータ項目に別名を設定している場合，設定した別名がバイナリフォーマット定義ファイルの要素名となります。別名を設定していない場合，変換前のCOBOLのデータ名が，そのままバイナリフォーマット定義ファイルの要素名となります。

要素名に別名を設定する方法については，「4.5.3(3)　データ項目の設定」を参照してください。

(2)　データ型の対応

COBOLのデータ型と変換後のバイナリフォーマット定義ファイルのデータ型の対応を次の表に示します。

表4-11　COBOLのデータ型とバイナリフォーマット定義ファイルのデータ型の対応

項番 | COBOLのデータ型 | バイナリフォーマット定義ファイルのデータ型 | TP1/COBOL adapterでのデータ型
データ種別 | 埋め字 | XMLスキーマ型
1 | 英字項目 | 文字列 | スペース | string | 文字列データ（string）
2 | 英数字項目 | 文字列 | スペース | string | 文字列データ（string）
3 | 数字項目 | 外部10進形式 | ゾーン形式数値 | － | decimal | 10進データ（BigDecimal）
4 | 内部10進形式 | パック形式数値 | － | decimal | ×
5 | 2進形式 | 小数点なし | 符号付（無）2進数 | － | integer | Shortデータ（Short）～Longデータ（Long）
6 | 小数点あり | × | 10進データ（BigDecimal）
7 | 外部浮動小数点項目 | × | ×
8 | 内部浮動小数点項目 | 4バイト | 単精度データ（Float）
9 | 8バイト | 倍精度データ（Double）
10 | 英数字編集項目 | 文字列 | スペース | string | 文字列データ（string）
11 | 数字編集項目 | 文字列 | スペース | string | 文字列データ（string）
12 | 指標データ項目 | × | ×
13 | 日本語項目 | 文字列 | スペース | string | 文字列データ（string）
14 | 日本語編集項目 | 文字列 | スペース | string | 文字列データ（string）
15 | 外部ブール項目 | × | ×
16 | 内部ブール項目 | × | ×

（凡例）

－：該当する項目はありません。

×：この機能ではサポートしていません。

(3)　ゾーン形式数値・バック形式数値の符号の対応

バイナリフォーマット定義ファイルのデータ型に変換するときに，ゾーン形式数値およびバック形式数値を生成する場合は，符号の設定が「カスタム」の状態で生成し，単純内容要素ダイアログの項目に設定します。単純内容要素ダイアログの項目に設定される内容を次の表に示します。

表4-12　属性の設定内容

項番
属性
設定内容

1
符号の設定
カスタム

2
符号の有無

PICTURE文字列で「S」が指定されている場合：あり

それ以外：なし

3
符号の種別
符号ビット

4
符号の位置
後

(4)　COBOLのデータ型のサイズの算出方法

データ型のサイズ（バイト）は，次の表に示す方法で算出されます。

表4-13　データ型のサイズの算出方法

COBOLのデータ型
サイズ（バイト）

英字項目
桁数と同じです。

英数字項目

外部10進形式

内部10進形式
((桁数) / 2) + 1

2進形式
桁数から算出します。

1桁～4桁の場合：2

5桁～9桁の場合：4

10桁～18桁の場合：8

英数字編集項目
桁数と同じです。

数字編集項目

日本語項目

日本語編集項目

4.5.3　バイナリフォーマット定義ファイルの生成方法

COBOL登録集原文ファイルからのバイナリフォーマット定義ファイルの生成機能を利用したデータ変換の操作の流れを次に示します。

図4-10　データ変換の操作の流れ

データ変換に関する操作について次に説明します。

＜この項の構成＞

(1)　新規ファイルウィザードの起動

(2)　変換するファイルの指定

(3)　データ項目の設定

(4)　出力ファイルの設定

(1)　新規ファイルウィザードの起動

新規ファイルウィザードの起動方法について説明します。

次のどちらかの方法で新規ファイルウィザードを開きます。

Eclipseのメニューから［ファイル］－［新規］－［その他］を選択します。

パッケージ・エクスプローラーで任意の場所を右クリックし，［新規］－［その他］を選択します。

新規ファイルウィザードで，［HCSCTEフォーマット定義］－［バイナリフォーマット定義ファイル (COBOL登録集原文からの変換)］を選択します。

［次へ］ボタンをクリックします。
［COBOL登録集原文設定ページ］に進みます。

(2)　変換するファイルの指定

変換するCOBOL登録集原文ファイルの指定方法について説明します。

［COBOL登録集原文設定ページ］で［参照］ボタンをクリックし，変換するCOBOL登録集原文ファイルを指定します。

［PICTURE句の通貨編集文字］に，使用するPICTURE句の通貨編集文字を指定します。
PICTURE句の通貨編集文字に指定できる文字については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.10　バイナリフォーマット定義ファイル（COBOL登録集原文からの変換）ダイアログ」を参照してください。

［基本項目の文字コード］で，COBOL登録集原文ファイルの英数字項目などで使用している文字コードを選択します。

［2進形式のエンディアン］で，ビッグエンディアンまたはリトルエンディアンのどちらかを選択します。

［次へ］ボタンをクリックします。
COBOL登録集原文ファイルが変換され，［データ項目設定ページ］に進みます。変換中にエラーが発生した場合は，エラーメッセージが表示されます。

(3)　データ項目の設定

データ項目の設定方法について説明します。

変換後のバイナリフォーマット定義ファイルの要素名を変更する場合は，［データ項目設定ページ］で［別名］のセルを選択し，任意の名称を入力します。
指定した名称に誤りがある場合は，ページ上部にメッセージが表示されます。［別名］に指定できる文字については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.10　バイナリフォーマット定義ファイル（COBOL登録集原文からの変換）ダイアログ」を参照してください。

［次へ］ボタンをクリックします。
［出力ファイル設定ページ］に進みます。
［戻る］ボタンをクリックすると，設定した内容を破棄するかを確認するメッセージが表示されます。［COBOL登録集原文設定ページ］に戻ってCOBOL登録集原文ファイルを指定し直す場合は，［OK］ボタンをクリックします。

(4)　出力ファイルの設定

出力ファイルの設定方法について説明します。

［出力ファイル設定ページ］のツリービューから出力先のフォルダを指定します。
［出力ファイル設定ページ］の詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.3.10　バイナリフォーマット定義ファイル（COBOL登録集原文からの変換）ダイアログ」を参照してください。

［フォーマット名］に，バイナリフォーマット定義ファイルのフォーマット名を入力します。

［終了］ボタンをクリックします。
変換後のバイナリフォーマット定義ファイルが出力され，バイナリフォーマット定義エディタが起動されます。ファイル出力中は，画面下部にプログレスバーが表示されます。

参考

変換後のバイナリフォーマット定義ファイルは，バイナリフォーマット定義エディタで直接作成されたファイルと同様に，バイナリフォーマット定義エディタで編集することができます。バイナリフォーマット定義エディタの詳細は，「4.4.1　バイナリフォーマット定義ファイルのデータ型と文字コードの種類」を参照してください。

4.6　バイナリフォーマット定義ファイルからXMLスキーマファイルの生成

cscfdx2xsdコマンドを使用すると，バイナリフォーマット定義ファイルからXMLスキーマファイルを生成できます。バイナリデータを同じ構造のXMLデータへ変換定義する場合に，このコマンドを使用すると変換先のXMLスキーマファイルを容易に作成できます。

cscfdx2xsdコマンドの詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscfdx2xsd（バイナリフォーマット定義ファイルからXMLフォーマット定義ファイルの生成）」を参照してください。

次にcscfdx2xsdコマンドを活用する例として，バイナリデータを読み込むファイルアダプタの定義の流れを示します。

バイナリフォーマット定義ファイルの作成
ウィザードを利用してバイナリフォーマット定義ファイルを作成します。
バイナリフォーマット定義ファイルの作成方法については，「4.4　電文フォーマット（バイナリフォーマット定義ファイル）の作成方法」を参照してください。

XMLフォーマット定義ファイルの作成
作成したバイナリフォーマット定義ファイルを基に，cscfdx2xsdコマンドを実行し，XMLスキーマファイルを生成します。コマンドでバイナリデータを同じ構造のXMLデータへ変換すると，XMLスキーマ定義をエディタで作成する必要がなくなります。

ファイルアダプタの定義
ウィザードを利用して，作成したバイナリフォーマット定義の設定，コマンドで生成したXMLスキーマ定義の設定，およびデータ変換の定義を作成します。
アダプタの定義については，「5.　アダプタの定義」を，データ変換定義については，「7.　データ変換の定義」を参照してください。

4.7　電文フォーマットの変更

電文フォーマットを変更した場合，データ変換を定義し直す必要があります。電文フォーマットを変更したあとに，データ変換を定義し直さないと，検証（アダプタ，ビジネスプロセス）またはパッケージングでエラーが発生します。

データ変換を定義し直すときは，以前に作成したデータ変換定義を利用できます。新規に定義する必要はありません。電文フォーマットを変更した場合の定義手順および注意事項については，「7.3.2　電文フォーマットを変更した場合の定義手順」を参照してください。

5.　アダプタの定義

この章では，サービスアダプタおよびDBアダプタの定義について説明します。

＜この章の構成＞

5.1　定義の流れ

5.2　アダプタの追加

5.3　アダプタの内容の定義

5.4　アダプタの保存

5.5　アダプタの編集

5.6　アダプタの検証

5.7　アダプタの削除

5.1　定義の流れ

サービスアダプタおよびDBアダプタの定義の流れを次の図に示します。

図5-1　アダプタの定義の流れ

アダプタの定義に関する作業について次に説明します。

＜この節の構成＞

(1)　アダプタの追加

(2)　アダプタの内容の定義

(3)　アダプタの保存

(4)　アダプタの検証

(5)　アダプタの編集

(6)　アダプタの削除

(1)　アダプタの追加

アダプタを追加するには，次のどちらかの方法を利用します。

新規追加する場合

ウィザードを利用してアダプタを新規に追加します。アダプタを新規に追加するウィザードは，アダプタが呼び出すサービス部品の種類（Webサービス，SessionBean，MDB（WS-RまたはDBキュー））によって異なります。

アダプタを新規に追加する方法の詳細については，「5.2.1　サービスアダプタを新規に追加する」または「5.2.2　DBアダプタを新規に追加する」を参照してください。

定義済みのアダプタを利用する場合

定義済みのアダプタを複製してアダプタを追加できます。定義済みのアダプタを複製すると，同じ定義内容のアダプタが追加されます。複製したアダプタの定義内容を編集することもできます。

定義済みのアダプタを利用してアダプタを追加する方法の詳細については，「5.2.4　定義済みアダプタを利用してアダプタを追加する」を参照してください。

(2)　アダプタの内容の定義

サービスアダプタ定義画面でアダプタの内容を定義します。

定義の方法および定義の内容の詳細については，「5.3　アダプタの内容の定義」を参照してください。サービスアダプタ定義画面の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.2　サービスアダプタ定義画面」を参照してください。

(3)　アダプタの保存

編集したアダプタの定義情報は，必要に応じてリポジトリに保存する必要があります。

アダプタの定義情報の保存方法と保存されるタイミングについては，「5.4　アダプタの保存」を参照してください。

(4)　アダプタの検証

定義したアダプタの整合性を検証します。アダプタの定義中や定義が終わったあとなど，任意のタイミングで検証できます。

検証方法の詳細については，「5.6　アダプタの検証」を参照してください。

(5)　アダプタの編集

定義済みのアダプタは，必要に応じて定義内容を編集して変更できます。

アダプタの編集方法の詳細については，「5.5　アダプタの編集」を参照してください。

(6)　アダプタの削除

不要になったアダプタは，必要に応じて削除できます。

アダプタの削除方法については，「5.7　アダプタの削除」を参照してください。

5.2　アダプタの追加

サービスアダプタおよびDBアダプタを追加します。

アダプタを新規に追加する場合，アダプタ追加ウィザードを利用します。また，すでに作成されているアダプタを利用して新規追加することもできます。

＜この節の構成＞

5.2.1　サービスアダプタを新規に追加する

5.2.2　DBアダプタを新規に追加する

5.2.3　カスタムアダプタを新規に追加する

5.2.4　定義済みアダプタを利用してアダプタを追加する

5.2.1　サービスアダプタを新規に追加する

サービスアダプタを新規に追加するには，まずツリービューにサービス定義一覧を表示させます。サービス定義一覧の表示方法を次に示します。

Eclipseのメニューから，［ウィンドウ］－［ビューの表示］－［その他］を選択します。
［ビューの表示］ダイアログが表示されます。

［HCSC-Definer］－［HCSCTEビュー］を選択し，［OK］ボタンをクリックします。
ツリービューにサービス定義一覧が表示されます。

以降の操作は，利用するサービス部品の種別によって異なります。サービスアダプタを新規追加する方法を利用するサービス部品別に次に示します。

注意

警告メッセージが表示された場合は，表示されたメッセージの内容を確認してください。「KDCCC」で始まる警告メッセージが表示された場合は，マニュアル「Cosminexus アプリケーションサーバ メッセージ 1」の「4.2　KDCCC0001からKDCCC9999までのメッセージ」を参照してください。「KDJW」で始まる警告メッセージが表示された場合は，マニュアル「Cosminexus アプリケーションサーバ メッセージ 2」の「9.　KDJW00000からKDJW99999までのメッセージ」を参照してください。

＜この項の構成＞

(1)　Webサービスの場合

(2)　SessionBeanの場合

(3)　MDB（WS-RまたはDBキュー）の場合

(1)　Webサービスの場合

ツリービューのサービス定義一覧で右クリックして「サービスアダプタ追加」を選択します。
追加するサービスアダプタから利用するサービス種別を設定するダイアログが表示されます。

ドロップダウンリストから「Webサービス」を選択します。

［次へ］ボタンをクリックします。
サービスアダプタの追加に必要な情報を入力するダイアログが表示されます。

サービス名とWSDLファイルを指定します。
WSDLファイルの指定は，次のどちらかを選択します。

ファイル
WSDLファイルをパスで指定します。
「ファイル」ラジオボタンを選択し，拡張子が「.wsdl」のファイルを絶対パスで指定します。相対パス（例：wsdldir¥wsdlfile.wsdl）やUNC形式（例：¥¥mypc¥wsdldir¥wsdlfile.wsdl）で指定しないでください。

URL
WSDLをURLで指定します。
「URL」ラジオボタンを選択し，テキストボックスに参照先のURLを指定します。

［次へ］ボタンをクリックします。
ポートを指定するダイアログが表示されます。
［次へ］ボタンをクリックしたときに，「WSDLファイルの解析に失敗しました。」というメッセージが表示された場合，WSDLファイルにエラーがあります。
WSDLの形式については，「2.6.1　Webサービスを利用したサービス部品の適用範囲」を参照してください。

ドロップダウンリストでポートを選択します。

［終了］ボタンをクリックします。
必要なファイルが作成され，リポジトリに保存されます。
サービスアダプタ定義画面が表示されます。

(2)　SessionBeanの場合

ツリービューのサービス定義一覧で右クリックして「サービスアダプタ追加」を選択します。
追加するサービスアダプタから利用するサービス種別を設定するダイアログが表示されます。

ドロップダウンリストから「SessionBean」を選択します。

［次へ］ボタンをクリックします。
サービスアダプタの追加に必要な情報を入力するダイアログが表示されます。

サービス名とEARファイルを入力します。
EARファイルには，拡張子が「.ear」のファイルを絶対パスで指定します。

［次へ］ボタンをクリックします。
SessionBeanを指定するダイアログが表示されます。

ドロップダウンリストでSessionBeanを選択します。

［終了］ボタンをクリックします。
必要なファイルが作成され，リポジトリに保存されます。
サービスアダプタ定義画面が表示されます。

(3)　MDB（WS-RまたはDBキュー）の場合

ツリービューのサービス定義一覧で右クリックして「サービスアダプタ追加」を選択します。
追加するサービスアダプタから利用するサービス種別を設定するダイアログが表示されます。

ドロップダウンリストから「MDB/WS-R」または「MDB/DBキュー」を選択します。

［次へ］ボタンをクリックします。
サービスアダプタの追加に必要な情報を入力するダイアログが表示されます。

サービス名を入力します。

［終了］ボタンをクリックします。
必要なファイルが作成され，リポジトリに保存されます。
サービスアダプタ定義画面が表示されます。

5.2.2　DBアダプタを新規に追加する

DBアダプタを新規追加する方法を次に示します。

Eclipseのメニューから，［ウィンドウ］－［ビューの表示］－［その他］を選択します。
［ビューの表示］ダイアログが表示されます。

［HCSC-Definer］－［HCSCTEビュー］を選択し，［OK］ボタンをクリックします。
ツリービューにサービス定義一覧が表示されます。

ツリービューのサービス定義一覧で右クリックして「サービスアダプタ追加」を選択します。
追加するサービスアダプタから利用するサービス種別を設定するダイアログが表示されます。

ドロップダウンリストから「汎用カスタムアダプタ」を選択します。
［次へ］ボタンをクリックすると，サービスアダプタの追加に必要な情報を入力するダイアログが表示されます。

サービス名を入力します。
サービス名は，サービスリクエスタからHCSCサーバを呼ぶ際に必要になる識別情報です。

EARファイルを入力します。
EARファイルには，拡張子が「.ear」のファイルを絶対パスで指定します。
指定するEARファイルは「<Cosminexusのインストールディレクトリ>¥CSC¥lib¥cscdba.ear」です。

［終了］ボタンをクリックします。
［終了］ボタンをクリックすると，必要なファイルが作成され，リポジトリに保存されます。
サービスアダプタ定義画面が表示され，この画面でサービスアダプタを定義します。

5.2.3　カスタムアダプタを新規に追加する

カスタムアダプタを新規追加する方法を次に示します。

Eclipseのメニューから，［ウィンドウ］－［ビューの表示］－［その他］を選択します。
［ビューの表示］ダイアログが表示されます。

［HCSC-Definer］－［HCSCTEビュー］を選択し，［OK］ボタンをクリックします。
ツリービューにサービス定義一覧が表示されます。

ツリービューのサービス定義一覧で右クリックして「サービスアダプタ追加」を選択します。
追加するサービスアダプタから利用するサービス種別を設定するダイアログが表示されます。

ドロップダウンリストから「汎用カスタムアダプタ」を選択します。
［次へ］ボタンをクリックすると，カスタムアダプタの追加に必要な情報を入力するダイアログが表示されます。

サービス名を入力します。
サービス名は，サービスリクエスタからHCSCサーバを呼ぶ際に必要になる識別情報です。

EARファイルを入力します。
EARファイルには，拡張子が「.ear」のファイルを絶対パスで指定します。
指定するEARファイルは，「5.3.6(6) EARファイルの作成」で作成したファイルです。

［終了］ボタンをクリックします。
［終了］ボタンをクリックすると，必要なファイルが作成され，リポジトリに保存されます。
サービスアダプタ定義画面が表示され，この画面でサービスアダプタを定義します。

5.2.4　定義済みアダプタを利用してアダプタを追加する

すでに定義されているアダプタを複製して，アダプタを追加できます。

ツリービューのサービス定義一覧で，複製するアダプタを選択して右クリックします。
サービス一覧のポップアップメニューが表示されます。

ポップアップメニューから「複製」を選択します。
選択したアダプタの複製が作成されます。複製されたアダプタのサービス名やサービスIDなどは，システム内で競合しないよう，自動的に別の情報が割り当てられます。

5.3　アダプタの内容の定義

サービスリクエスタから受け付けた要求は，クラスタ（または単一のHCSCサーバ）内に配備されるサービスアダプタを特定することで，サービス部品へ送ることができます。サービス部品には，そのサービス部品に対応したアダプタが必要です。この節では，アダプタの定義方法について説明します。

サービス部品には，Webサービス，SessionBeanおよびMDBがあります。また，データベースへのアクセスをサービス部品として利用することもできます。

各サービス部品固有のプロトコルに対応するサービスアダプタは，サービス部品のWSDLなどを基に，開発環境から自動生成できます。これらを標準提供アダプタといいます。サービス部品の種類によって，使用するアダプタの種類やアダプタの定義項目が次のように異なります。

サービスアダプタ

Webサービス，SessionBean，およびMDBの場合に使用します。各サービス部品には，固有のプロトコルがあります。Webサービスの場合はSOAP，SessionBeanの場合はRMI-IIOP，MDBの場合はWS-RおよびDBキューのプロトコルが，それぞれあります。サービスアダプタは，これらのサービス部品（プロトコル）の種類によって，定義内容が少しずつ異なります。サービスアダプタは，サービスアダプタ定義画面で定義します。

DBアダプタ

データベースへアクセスする場合に使用します。DBアダプタは，サービスアダプタ定義画面で定義します。

＜この節の構成＞

5.3.1　サービスアダプタ（Webサービス）を定義する

5.3.2　サービスアダプタ（SessionBean）を定義する

5.3.3　サービスアダプタ（MDB（WS-R））を定義する

5.3.4　サービスアダプタ（MDB（DBキュー））を定義する

5.3.5　DBアダプタを定義する

5.3.6　カスタムアダプタを定義する

5.3.7　アダプタ定義での設定一覧

5.3.1　サービスアダプタ（Webサービス）を定義する

Webサービスに対するアダプタの定義について説明します。Webサービスに対するアダプタは，サービスアダプタ定義画面で定義できます。

＜この項の構成＞

(1)　サービス部品の電文フォーマット

(2)　データ変換

(3)　クライアント定義ファイルの作成と設定

(4)　ベーシック認証の設定

(5)　サービスアダプタ定義画面の表示

(6)　サービスアダプタ定義画面での操作

(1)　サービス部品の電文フォーマット

Webサービスの場合，WSDLから作成された電文フォーマット定義ファイルが，サービス部品の電文フォーマット定義ファイルとなります。そのため，要求電文および応答電文ともに，サービス部品の電文フォーマットを設定する必要はありません。

サービス部品の電文フォーマットの作成方法については，「4.3.2　サービス部品電文を作成する（Webサービスの場合）」を参照してください。

(2)　データ変換

サービスリクエスタの電文の形式と，サービスアダプタが呼び出すサービス部品の電文の形式が異なる場合，データ変換が必要です。

要求電文のデータ変換を行う場合，サービスアダプタ定義画面で標準電文にサービスリクエスタから入力される電文を設定し，データ変換定義画面でデータ変換を定義します。応答電文のデータ変換を行う場合，サービス部品から返される電文に標準電文を設定し，データ変換定義画面でデータ変換を定義します。

データ変換の詳細については，「7.　データ変換の定義」を参照してください。

(3)　クライアント定義ファイルの作成と設定

サービス部品の利用者は，クライアント（サービスリクエスタ）側の動作を制御するクライアント定義ファイルを作成します。SOAP1.1モードおよびSOAP1.1/1.2併用モードの場合に分けて，クライアント定義ファイルの作成方法および定義方法を示します。

SOAP1.1モードの場合

「c4webcl.properties」というファイル名称でクライアント定義ファイルを作成し，サービスアダプタ定義画面で設定します。「c4webcl.properties」はすべて小文字で入力します。SOAP1.1モードを使用する場合のクライアント定義ファイルの作成については，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」の「10.3　クライアント定義ファイルの設定」を参照してください。

次の表に，SOAP1.1モードを使用する場合のクライアント定義ファイル作成時の注意事項を示します。

表5-1　クライアント定義ファイルの作成に関する注意事項（SOAP1.1モード）

設定項目
キー名称
設定値
（デフォルト値）
注意事項

多重参照
c4web.common.do_multirefs
false
デフォルト値以外の値を指定した場合の動作は保証できません。

データ型定義
c4web.common.send_xsi_types
true

文字参照形式オプション
c4web.common.character_reference
false

HTTPセッションの維持
c4web.application.app_maintainsession
false

SOAPヘッダの名前修飾チェックオプション
c4web.common.enable_soapheader_check
true
このオプションは，falseとして動作します。

トレースファイル，アプリケーションログのプリフィックス
c4web.logger.log_file_prefix
サービスID
値は必ずサービスIDに変更されるため，設定する必要はありません。

SOAP1.1/1.2併用モードの場合

「cscwsconf.properties」というファイル名称でクライアント定義ファイルを作成し，サービスアダプタ定義画面で設定します。「cscwsconf.properties」はすべて小文字で入力します。

SOAP1.1/1.2併用モードを使用する場合のクライアント定義ファイルの作成については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「クライアント定義ファイル」を参照してください。

(4)　ベーシック認証の設定

対象となるサービス部品がユーザ認証を必要とするWebサーバ上にある場合は，ベーシック認証（ユーザ名およびパスワード）の設定が必要になります。

(5)　サービスアダプタ定義画面の表示

サービスアダプタを定義するために，サービスアダプタ定義画面を表示します。サービスアダプタ定義画面は，ツリービューのサービス定義一覧から，該当するサービスアダプタを選択し，ダブルクリックすると表示されます。

(6)　サービスアダプタ定義画面での操作

Webサービスに対するアダプタを定義する場合の手順を次に示します。

サービスアダプタ定義画面を表示します。
サービスアダプタ定義画面の表示方法については，「5.3.1(5) サービスアダプタ定義画面の表示」を参照してください。

サービス部品制御情報の［サービス名］，［サービスID］，［アドレス］，および［最大インスタンス数］を必要に応じて編集します。

サービス部品制御情報の［オペレーション］のドロップダウンリストから，編集したいオペレーションを選択します。

オペレーション情報に表示されている内容を確認します。

サービス部品制御情報の［システム例外をフォルトに変換する］チェックボックスを必要に応じてチェックします。

要求電文について，手順7.から手順25.までを実施します。

次に示す操作をします。

要求電文にSOAPヘッダ情報を定義する場合

手順8.～14.を実施して，手順15.に進みます。

要求電文にSOAPヘッダ情報を定義しない場合

手順15.に進みます。

要求電文の［ヘッダ］タブをクリックします。

［ルート要素］のドロップダウンリストからヘッダ情報のルート要素を選択します。
［名前空間］には選択したルート要素の名前空間が表示され，［電文フォーマット］にはヘッダ情報として使用する電文フォーマットのファイル名が表示されます。必要に応じてヘッダ情報のルート要素を追加してください。

次に示す操作をします。

ヘッダ情報のルート要素を追加する場合

手順11.～13.を実施して，手順14.に進みます。

ヘッダ情報のルート要素を追加しない場合

手順14.に進みます。

［ルート要素］の［追加］ボタンをクリックします。
［ファイル選択ダイアログ］が表示されます。

ヘッダ情報として使用する電文フォーマットを選択して［開く］ボタンをクリックします。
［ヘッダ情報の追加］ダイアログが表示されます。

［ルート要素］のドロップダウンリストから追加するヘッダ情報のルート要素を選択して［OK］ボタンをクリックします。
追加したルート要素は，要求電文の［ヘッダ］タブの［ルート要素］に追加されます。追加位置は，ドロップダウンリストの末尾になります。

電文フォーマットの［表示］ボタンをクリックします。
ヘッダ情報として使用する電文のフォーマットが表示されます。必要に応じて電文フォーマットを確認してください。

要求電文の［ボディ］タブをクリックします。

標準電文の［使う］チェックボックスをチェックします。

標準電文の［フォーマットID］を指定します。

標準電文の［参照］ボタンをクリックして，［電文フォーマット］に標準電文のフォーマットを指定します。
なお，外部のXMLスキーマを参照している電文フォーマットを設定する場合，必ずルートスキーマに当たるファイルを設定してください。ルートスキーマから参照される外部のXMLスキーマファイルは，自動的に取り込まれます。
指定できる電文フォーマットの形式については，「2.6.5　XMLスキーマの適用範囲」を参照してください。

標準電文の［表示］ボタンをクリックします。
標準電文のフォーマットが表示されます。必要に応じて指定した標準電文のフォーマットを確認してください。

サービス部品電文の［フォーマットID］を指定します。

サービス部品電文の［表示］ボタンをクリックします。
サービス部品電文のフォーマットが表示されます。必要に応じてサービス部品電文のフォーマットを確認してください。

次に示す操作をします。

標準電文の［使う］チェックボックスをチェックした場合

手順23.～25.を実施して，手順26.に進みます。

標準電文の［使う］チェックボックスをチェックしない場合

手順26.に進みます。

データ変換定義のファイル名を入力します。

［編集］ボタンをクリックします。
データ変換定義画面が表示されます。
なお，初めて定義する場合は，［ルート要素選択］ダイアログが表示されます。
また，電文フォーマットを変更した場合は，電文フォーマットの変更を反映するかを確認するダイアログが表示されます。電文フォーマットを変更した場合の手順は，「7.3.2　電文フォーマットを変更した場合の定義手順」を参照してください。

標準電文とサービス部品電文の内容をマッピングします。

応答電文についても同様に，手順7.から手順25.までを実施します。

サービスアダプタ定義（詳細）タブをクリックします。

［参照］ボタンをクリックして，クライアント定義ファイル（c4webcl.propertiesまたはcscwsconf.properties）を指定します。

サービス部品がユーザ認証を必要とするWebサーバ上にあるかどうかで，次に示す操作をします。

ユーザ認証が必要な場合

手順30.～32.を実施して，手順33.に進みます。

ユーザ認証が不要な場合

手順33.に進みます。

ベーシック認証の［使う］チェックボックスをチェックします。

ユーザ名およびパスワードの欄に，ベーシック認証のために必要なユーザ名およびパスワードを入力します。

パスワード（確認）欄に，パスワードの欄で入力したパスワードと同じパスワードを入力します。

定義内容を確認して，Eclipseのメニューから［ファイル］－［保管］を選択し，定義内容を保存します。

5.3.2　サービスアダプタ（SessionBean）を定義する

SessionBeanに対するアダプタの定義について説明します。SessionBeanに対するアダプタは，サービスアダプタ定義画面で定義できます。

＜この項の構成＞

(1)　サービス部品の電文フォーマット

(2)　データ変換

(3)　JNDI名前空間に登録されている呼び出すサービス部品の名称の指定

(4)　クライアント定義ファイルの作成と設定

(5)　ユーザ定義クラス（JARファイル）の設定

(6)　RMI-IIOPスタブおよびインターフェースの取得

(7)　サービスアダプタ定義画面での操作

(1)　サービス部品の電文フォーマット

SessionBeanの場合，EARファイルから自動作成された電文フォーマット定義ファイルが，サービス部品の電文フォーマット定義ファイルとなります。そのため，サービス部品の電文フォーマットを設定する必要はありません。

サービス部品の電文フォーマットの作成方法については，「4.3.3　サービス部品電文を作成する（SessionBeanの場合）」を参照してください。

(2)　データ変換

サービスリクエスタの電文の形式と，サービスアダプタが呼び出すサービス部品の電文の形式が異なる場合，データ変換が必要です。

要求電文のデータ変換を行う場合，サービスアダプタ定義画面で標準電文にサービスリクエスタから入力される電文を設定し，データ変換定義画面でデータ変換を定義します。応答電文のデータ変換を行う場合，サービス部品から返される電文に標準電文を設定し，データ変換定義画面でデータ変換を定義します。

データ変換の詳細については，「7.　データ変換の定義」を参照してください。

(3)　JNDI名前空間に登録されている呼び出すサービス部品の名称の指定

サービスアダプタ定義画面では，JNDI名前空間に登録されている呼び出すサービス部品の名称を指定します。リモート呼び出しとなるようにアドレスを指定してください。サービス部品（SessionBean）のローカル呼び出しはできません。指定例を次に示します。

正しい例（myhostはリモートホスト名を表します）

corbaname::myhost:900#HITACHI_EJB/SERVERS/J2EEServer/EJB/slsbsmpl/MyAdder

誤った例

corbaname::localhost:900#HITACHI_EJB/SERVERS/J2EEServer/EJB/slsbsmpl/MyAdder

corbaname::127.0.0.1:900#HITACHI_EJB/SERVERS/J2EEServer/EJB/slsbsmpl/MyAdder

corbaname::HITACHI_EJB/SERVERS/J2EEServer/EJB/slsbsmpl/MyAdder

JNDI名前空間に登録されている名称については次の個所を参照してください。

マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「2.　ネーミング管理」

マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「2.5　EJBコンテナのJNDI名前空間へのリファレンス登録」

(4)　クライアント定義ファイルの作成と設定

Webサービスと同様に，サービス部品の利用者は，クライアント（サービスリクエスタ）側の動作を制御するクライアント定義ファイルを，「c4webcl.properties」というファイル名称で作成し，サービスアダプタ定義画面で設定する必要があります。「c4webcl.properties」はすべて小文字で入力します。クライアント定義ファイルの作成については，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」の「10.3　クライアント定義ファイルの設定」を参照してください。

なお，サービスアダプタ（SessionBean）の場合，クライアント定義ファイルに設定できる項目とできない項目があります。サービスアダプタ（SessionBean）の場合に設定できるクライアント定義ファイルの項目を次の表に示します。

表5-2　クライアント定義ファイルの設定項目

キー名称 | 内容 | 設定可否
c4web.logger.log_level | トレースファイル出力の重要度 | ○
c4web.logger.aplog_level | アプリケーションログ出力の重要度 | ○
c4web.logger.aplog_error_record | 異常発生時のアプリケーションログ出力 | ○
c4web.logger.log_file_dir | トレースファイルおよびアプリケーションログの出力先ディレクトリ | ○
c4web.logger.log_file_num | トレースファイルの面数 | ○
c4web.logger.log_file_size | トレースファイルのサイズ | ○
c4web.logger.aplog_file_num | アプリケーションログの面数 | ○
c4web.logger.aplog_file_size | アプリケーションログのサイズ | ○
c4web.logger.log_file_prefix | トレースファイル，アプリケーションログのプリフィックス | ×※
c4web.common.do_multirefs | 多重参照（実行時オプション） | ×
c4web.common.send_xsi_types | データ型定義（実行時オプション） | ×
c4web.application.app_maintainsession | HTTPセッションの維持（実行時オプション） | ×
c4web.application.proxy_host | プロキシサーバのホスト名（実行時オプション） | ×
c4web.application.non_proxy_hosts | プロキシサーバを使用しないホスト名群（実行時オプション） | ×
c4web.application.proxy_port | プロキシサーバのポート番号（実行時オプション） | ×
c4web.application.proxy_user | プロキシサーバの認証ユーザID（実行時オプション） | ×
c4web.application.proxy_password | プロキシサーバの認証ユーザIDに対応するパスワード（実行時オプション） | ×
c4web.common.enable_soapheader_check | SOAPヘッダの名前修飾チェックオプション（実行時オプション） | ×
c4web.application.socket_timeout | クライアントのソケットタイムアウト値（実行時オプション） | ×
c4web.attachment.file_body_encoding | ボディエンコーディング種別 | ×
c4web.attachment.attachment_temp_directory | 退避先ディレクトリ | ×
c4web.attachment.attachment_file_delete_by_date | 不要退避ファイルの経過日数 | ×
c4web.common.prf_trace_level | 性能解析トレース出力オプション | ○

（凡例）

○：設定できます。

×：設定できません。設定した場合は無視されます。

注※

値は必ずサービスIDに変更されるため，設定する必要はありません。

(5)　ユーザ定義クラス（JARファイル）の設定

SessionBeanの場合，スタブを利用してサービス部品を呼び出すために，ユーザ定義クラス（JARファイル）を設定する必要があります。

なお，サービスアダプタ定義画面（SessionBeanの詳細画面）でJARファイルを設定するとき，選択するファイルの拡張子は，すべて小文字の「jar」としてください。

また，JARファイルとして次に示すファイル名は設定しないでください。

csmsvcadpdef.jar

cscmsg_adpejb.jar

上記のファイル名を設定した場合，警告メッセージが表示されます。警告メッセージが表示された場合，上記のファイル名をユーザ定義クラスから削除します。そのあと，上記のファイル名を変更して，再度設定してください。

(6)　RMI-IIOPスタブおよびインターフェースの取得

J2EEサーバのcjgetstubsjarコマンドを使ってRMI-IIOPスタブおよびインターフェースを取得します。cjgetstubsjarコマンドの詳細について，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「cjgetstubsjar（アプリケーションのRMI-IIOPスタブおよびインタフェースの取得）」を参照してください。

(7)　サービスアダプタ定義画面での操作

SessionBeanに対するアダプタを定義する場合の手順を次に示します。

サービスアダプタ定義画面を表示します。
サービスアダプタ定義画面の表示方法については，「5.3.1(5) サービスアダプタ定義画面の表示」を参照してください。

サービス部品制御情報の［サービス名］，［サービスID］，および［最大インスタンス数］を必要に応じて編集します。

サービス部品制御情報の［アドレス］を指定します。
［アドレス］には，JNDI名前空間に登録されている呼び出すサービス部品の名称を取得して，入力します。JNDI名前空間に登録されている名称については次の個所を参照してください。

マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「2.　ネーミング管理」

マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「2.5　EJBコンテナのJNDI名前空間へのリファレンス登録」

サービス部品制御情報の［オペレーション］のドロップダウンリストから，編集したいオペレーションを選択します。

オペレーション情報に表示されている内容を確認します。

サービス部品制御情報の［システム例外をフォルトに変換する］チェックボックスを必要に応じてチェックします。

要求電文について，手順8.から手順18.までを実施します。

次に示す操作をします。

標準電文のフォーマットを指定する場合

手順9.～12.を実施して，手順13.に進みます。

標準電文のフォーマットを指定しない場合

手順13.に進みます。

標準電文の［使う］チェックボックスをチェックします。

標準電文の［フォーマットID］を指定します。

標準電文の［参照］ボタンをクリックして，［電文フォーマット］に標準電文のフォーマットを指定します。
なお，外部のXMLスキーマを参照している電文フォーマットを設定する場合，必ずルートスキーマに当たるファイルを設定してください。ルートスキーマから参照される外部のXMLスキーマファイルは，自動的に取り込まれます。
指定できる電文フォーマットの形式については，「2.6.5　XMLスキーマの適用範囲」を参照してください。

標準電文の［表示］ボタンをクリックします。
標準電文のフォーマットが表示されます。必要に応じて指定した標準電文のフォーマットを確認してください。

サービス部品電文の［フォーマットID］を指定します。

サービス部品電文の［表示］ボタンをクリックします。
サービス部品電文のフォーマットが表示されます。必要に応じてサービス部品電文のフォーマットを確認してください。

次に示す操作をします。

標準電文の［使う］チェックボックスをチェックした場合

手順16.～18.を実施して，手順19.に進みます。

標準電文の［使う］チェックボックスをチェックしない場合

手順19.に進みます。

データ変換定義のファイル名を入力します。

［編集］ボタンをクリックします。
データ変換定義画面が表示されます。
なお，初めて定義する場合は，［ルート要素選択］ダイアログが表示されます。
また，電文フォーマットを変更した場合は，電文フォーマットの変更を反映するかを確認するダイアログが表示されます。電文フォーマットを変更した場合の手順は，「7.3.2　電文フォーマットを変更した場合の定義手順」を参照してください。

標準電文とサービス部品電文の内容をマッピングします。

応答電文についても同様に，手順8.から手順18.までを実施します。

サービスアダプタ定義（詳細）タブをクリックします。

［参照］ボタンをクリックして，クライアント定義ファイル（c4webcl.properties）を指定します。

［追加］ボタンをクリックして，該当するユーザ定義クラスを追加します。
ユーザ定義クラスは，「5.3.2(6) RMI-IIOPスタブおよびインターフェースの取得」で取得したスタブおよびインターフェースのJARファイルを指定します。

定義内容を確認して，Eclipseのメニューから［ファイル］－［保管］を選択し，定義内容を保存します。

5.3.3　サービスアダプタ（MDB（WS-R））を定義する

MDB（WS-R）に対するアダプタの定義について説明します。MDB（WS-R）に対するアダプタは，サービスアダプタ定義画面で定義できます。

＜この項の構成＞

(1)　キュー情報およびメッセージ種別の取得

(2)　サービス部品の電文フォーマット

(3)　データ変換

(4)　呼出しの設定

(5)　最大メッセージ数の設定

(6)　ベーシック認証の設定

(7)　サービスアダプタ定義画面での操作

(1)　キュー情報およびメッセージ種別の取得

サービス部品がMDB（WS-R）の場合，サービス部品のキュー情報およびメッセージ種別を開発者から取得する必要があります。取得した情報は，サービスアダプタを定義するときに使用します。

取得する情報は次のとおりです。

キュー名称

宛先のアドレス（アダプタとサービス部品との間でネットワーク通信をする場合）

ベーシック認証のためのユーザ名およびパスワード（アダプタとサービス部品との間でネットワーク通信をし，かつベーシック認証を使用する場合）

メッセージ種別

(2)　サービス部品の電文フォーマット

MDB（WS-R）の場合，サービス部品の電文フォーマットを作成して，設定する必要があります。

サービス部品の電文フォーマットの作成方法については，「4.3.4　サービス部品電文を作成する（MDB（WS-RまたはDBキュー）の場合）」を参照してください。

(3)　データ変換

サービスリクエスタの電文の形式と，サービスアダプタが呼び出すサービス部品の電文の形式が異なる場合，データ変換が必要です。

データ変換を行う場合，サービスアダプタ定義画面で標準電文にサービスリクエスタから入力される電文を設定し，データ変換定義画面でデータ変換を定義します。

データ変換の詳細については，「7.　データ変換の定義」を参照してください。

(4)　呼出しの設定

利用するサービス部品の呼出し方法を設定できます。リモート呼出しまたはローカル呼出しを選択できます。リモート呼出しを選択した場合，最大メッセージ数を設定します。また必要に応じて，ベーシック認証を設定します。

(5)　最大メッセージ数の設定

サービス部品の呼出し方法としてリモート呼出しを設定した場合，一度に処理できる電文の数を初期値から変更した数に設定できます。設定できる値は1～65535です。

(6)　ベーシック認証の設定

サービス部品の呼出し方法としてリモート呼出しを設定した場合で，MDB（WS-R）のメッセージ転送でユーザ認証を必要とするときは，ベーシック認証（ユーザ名およびパスワード）の設定が必要になります。

(7)　サービスアダプタ定義画面での操作

MDB（WS-R）に対するアダプタを定義する場合の手順を次に示します。

サービスアダプタ定義画面を表示します。
サービスアダプタ定義画面の表示方法については，「5.3.1(5) サービスアダプタ定義画面の表示」を参照してください。

サービス部品制御情報の［サービス名］，［サービスID］，および［最大インスタンス数］を必要に応じて編集します。

サービス部品制御情報の［アドレス］を指定します。
［アドレス］には，「5.3.3(1) キュー情報およびメッセージ種別の取得」で取得したキュー名称を入力します。

オペレーション情報に表示されている内容を確認します。

サービス部品制御情報の［システム例外をフォルトに変換する］チェックボックスを必要に応じてチェックします。

要求電文について次に示す操作をします。

標準電文のフォーマットを指定する場合

手順7.～10.を実施して，手順11.に進みます。

標準電文のフォーマットを指定しない場合

手順11.に進みます。

標準電文の［使う］チェックボックスをチェックします。

標準電文の［フォーマットID］を指定します。

標準電文の［参照］ボタンをクリックして，［電文フォーマット］に標準電文のフォーマットを指定します。
なお，外部のXMLスキーマを参照している電文フォーマットを設定する場合，必ずルートスキーマに当たるファイルを設定してください。ルートスキーマから参照される外部のXMLスキーマファイルは，自動的に取り込まれます。
指定できる電文フォーマットの形式については，「2.6.5　XMLスキーマの適用範囲」を参照してください。

標準電文の［表示］ボタンをクリックします。
標準電文のフォーマットが表示されます。必要に応じて指定した標準電文のフォーマットを確認してください。

サービス部品電文の［フォーマットID］を指定します。

サービス部品電文の［参照］ボタンをクリックして，［電文フォーマット］にサービス部品電文のフォーマットを指定します。

サービス部品電文の［表示］ボタンをクリックします。
サービス部品電文のフォーマットが表示されます。必要に応じて指定したサービス部品電文のフォーマットを確認してください。

次に示す操作をします。

標準電文の［使う］チェックボックスをチェックした場合

手順15.～17.を実施して，手順18.に進みます。

標準電文の［使う］チェックボックスをチェックしない場合

手順18.に進みます。

データ変換定義のファイル名を入力します。

［編集］ボタンをクリックします。
データ変換定義画面が表示されます。
なお，初めて定義する場合は，［ルート要素選択］ダイアログが表示されます。
また，電文フォーマットを変更した場合は，電文フォーマットの変更を反映するかを確認するダイアログが表示されます。電文フォーマットを変更した場合の手順は，「7.3.2　電文フォーマットを変更した場合の定義手順」を参照してください。

標準電文とサービス部品電文の内容をマッピングします。

サービスアダプタ定義（詳細）タブをクリックします。

［JMSメッセージ種別］のドロップダウンリストから，JMSメッセージ種別を選択します。

［呼出し設定］でサービス部品の呼出方法を選択します。

［リモート呼出し］ラジオボタンを選択した場合

手順21.に進みます。

［ローカル呼出し］ラジオボタンを選択した場合

手順29.に進みます。

［最大メッセージ数］に，サービス部品が送信できる電文の数を指定します。

［宛先URL］に「5.3.3(1) キュー情報およびメッセージ種別の取得」で取得した，宛先のアドレスを入力します。

サービス部品がユーザ認証を必要とするかどうかで，次に示す操作をします。

ユーザ認証が必要な場合

手順24.～26.を実施して，手順27.に進みます。

ユーザ認証が不要な場合

手順27.に進みます。

ベーシック認証の［使う］チェックボックスをチェックします。

ユーザ名およびパスワードの欄に，ベーシック認証のために必要なユーザ名およびパスワードを入力します。

パスワード（確認）欄に，パスワードの欄で入力したパスワードと同じパスワードを入力します。

転送キュー作成先RDエリア名を必要に応じて入力します。

［順序保証］チェックボックスを必要に応じてチェックします。

定義内容を確認して，Eclipseのメニューから［ファイル］－［保管］を選択し，定義内容を保存します。

5.3.4　サービスアダプタ（MDB（DBキュー））を定義する

MDB（DBキュー）に対するアダプタの定義について説明します。MDB（DBキュー）に対するアダプタは，サービスアダプタ定義画面で定義できます。

＜この項の構成＞

(1)　キュー名称の取得

(2)　サービス部品の電文フォーマット

(3)　データ変換

(4)　サービスアダプタ定義画面での操作

(1)　キュー名称の取得

サービス部品がMDB（DBキュー）の場合，サービス部品のキュー名称を開発者から取得する必要があります。キュー名称は，サービスアダプタを定義するときに使用します。

(2)　サービス部品の電文フォーマット

MDB（DBキュー）の場合，サービス部品の電文フォーマットを作成して，設定する必要があります。

サービス部品の電文フォーマットの作成方法については，「4.3.4　サービス部品電文を作成する（MDB（WS-RまたはDBキュー）の場合）」を参照してください。

(3)　データ変換

サービスリクエスタの電文の形式と，サービスアダプタが呼び出すサービス部品の電文の形式が異なる場合，データ変換が必要です。

データ変換を行う場合，サービスアダプタ定義画面で標準電文にサービスリクエスタから入力される電文を設定し，データ変換定義画面でデータ変換を定義します。

データ変換の詳細については，「7.　データ変換の定義」を参照してください。

(4)　サービスアダプタ定義画面での操作

MDB（DBキュー）に対するアダプタを定義する場合の手順を次に示します。

サービスアダプタ定義画面を表示します。
サービスアダプタ定義画面の表示方法については，「5.3.1(5) サービスアダプタ定義画面の表示」を参照してください。

サービス部品制御情報の［サービス名］，［サービスID］，および［最大インスタンス数］を必要に応じて編集します。

サービス部品制御情報の［アドレス］を指定します。
［アドレス］には，共用キューを使用する場合の登録先キュー名を入力します。共用キューを使用する場合の登録先キュー名については，マニュアル「Cosminexus Reliable Messaging」の「8.3.19　hrmmkque（送信用共用キューの作成）」を参照してください。

サービス部品制御情報の［オペレーション］のドロップダウンリストから，編集したいオペレーションを選択します。

オペレーション情報に表示されている内容を確認します。

サービス部品制御情報の［システム例外をフォルトに変換する］チェックボックスを必要に応じてチェックします。

要求電文について次に示す操作をします。

標準電文のフォーマットを指定する場合

手順8.～11.を実施して，手順12.に進みます。

標準電文のフォーマットを指定しない場合

手順12.に進みます。

標準電文の［使う］チェックボックスをチェックします。

標準電文の［フォーマットID］を指定します。

標準電文の［参照］ボタンをクリックして，［電文フォーマット］に標準電文のフォーマットを指定します。
なお，外部のXMLスキーマを参照している電文フォーマットを設定する場合，必ずルートスキーマに当たるファイルを設定してください。ルートスキーマから参照される外部のXMLスキーマファイルは，自動的に取り込まれます。
指定できる電文フォーマットの形式については，「2.6.5　XMLスキーマの適用範囲」を参照してください。

標準電文の［表示］ボタンをクリックします。
標準電文のフォーマットが表示されます。必要に応じて指定した標準電文のフォーマットを確認してください。

サービス部品電文の［フォーマットID］を指定します。

サービス部品電文の［参照］ボタンをクリックして，［電文フォーマット］にサービス部品電文のフォーマットを指定します。

サービス部品電文の［表示］ボタンをクリックします。
サービス部品電文のフォーマットが表示されます。必要に応じて指定したサービス部品電文のフォーマットを確認してください。

次に示す操作をします。

標準電文の［使う］チェックボックスをチェックした場合

手順16.～18.を実施して，手順19.に進みます。

標準電文の［使う］チェックボックスをチェックしない場合

手順19.に進みます。

データ変換定義のファイル名を入力します。

［編集］ボタンをクリックします。
データ変換定義画面が表示されます。
なお，初めて定義する場合は，［ルート要素選択］ダイアログが表示されます。
また，電文フォーマットを変更した場合は，電文フォーマットの変更を反映するかを確認するダイアログが表示されます。電文フォーマットを変更した場合の手順は，「7.3.2　電文フォーマットを変更した場合の定義手順」を参照してください。

標準電文とサービス部品電文の内容をマッピングします。

定義内容を確認して，Eclipseのメニューから［ファイル］－［保管］を選択し，定義内容を保存します。

5.3.5　DBアダプタを定義する

DBアダプタの定義について説明します。DBアダプタは，サービスアダプタ定義画面で定義できます。

＜この項の構成＞

(1)　サービス部品の電文フォーマット

(2)　データ変換

(3)　独自定義ファイルの作成と設定

(4)　サービスアダプタ定義画面での操作

(5)　データ変換

(6)　EARファイルの入れ替え

(1)　サービス部品の電文フォーマット

DBアダプタの場合，WSDLが生成されないため，サービス部品の電文フォーマットも自動生成されません。そのため，サービス部品の電文フォーマット（DBアダプタ用のXMLフォーマット定義ファイル）を作成して，設定する必要があります。

DBアダプタ用のXMLフォーマット定義ファイルは，「5.3.5(3)(a) SQLオペレーション定義ファイルの作成」で示すSQLオペレーション定義ファイルを基にして，csamkxmlsコマンドを使用して作成します。

DBアダプタ用のXMLフォーマット定義ファイルの作成方法については，「4.3.5　サービス部品電文を作成する（DBアダプタ電文の場合）」を参照してください。

(2)　データ変換

サービスリクエスタの電文の形式と，DBアダプタ電文の形式が異なる場合，データ変換が必要です。

要求電文のデータ変換を行う場合，サービスアダプタ定義画面で標準電文にサービスリクエスタから入力される電文を設定し，データ変換定義画面でデータ変換を定義します。応答電文のデータ変換を行う場合，サービス部品から返される電文に標準電文を設定し，データ変換定義画面でデータ変換を定義します。

データ変換の詳細については，「7.　データ変換の定義」を参照してください。

(3)　独自定義ファイルの作成と設定

サービス部品の利用者は，次のファイルを作成し，サービスアダプタ定義画面で設定する必要があります。

(a)　SQLオペレーション定義ファイルの作成

SQLオペレーション定義ファイルは，テキストエディタなどを使用してXML文書形式で作成します。

ファイル名を[csa_sql_<任意の名称>.xml]で作成して編集します。

SQLオペレーション定義ファイルの作成については，「4.3.5(1) SQLオペレーション定義ファイルの作成」を参照してください。

(b)　アプリケーション統合属性ファイルの作成

アプリケーション統合属性ファイルは，サンプルファイルをテキストエディタなどで編集して作成します。アプリケーション統合属性ファイルは「cscadapter_property.xml」という名称で，次の場所に格納されています。

<Cosminexusのインストールディレクトリ>¥CSC¥config¥dba¥templates

なお，アプリケーション統合属性ファイルによるプロパティ設定については，マニュアル「Cosminexus アプリケーションサーバ アプリケーション設定操作ガイド」の「9.2　アプリケーション統合属性ファイルによるプロパティ設定」を参照してください。アプリケーション統合属性ファイルの詳細については，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.1　アプリケーション統合属性ファイル」を参照してください。

アプリケーション統合属性ファイルに設定する項目について，次の表に示します。

表5-3　アプリケーション統合属性ファイルの設定項目

タグ
説明
設定内容
変更
可否
設定例

<hitachi-application-all-property>
ルートタグ
－
否
－

　<ejb-jar>
EJBに関する情報の定義の開始タグ
－
否
－

　　<hitachi-session-bean-property>
SessionBeanの属性の定義の開始タグ
－
否
－

　　　<resource-ref>
リソース参照についての定義の開始タグ
－
否
－

　　　　<res-ref-name>
リソース参照名
SQLオペレーション定義ファイルの<DB_NAME>タグに指定したデータベース参照名
可
DB_SERVER1

　　　　<res-sharing-scope>
参照したリソースを共有するかどうかの指定
DBアダプタが参照するDB Connectorを共有するかどうかの指定
可
Shareable

　　　　<linked-to>
データソース表示名
DB Connectorのプロパティ定義（display-name）に指定したリソースアダプタの名称
可
DB_Connector_for_HiRDB_Type4_XAやDB_Connector_for_Oracle_XAなど※1
display-nameを変更した場合は変更後の名称。

　　　</resource-ref>
リソース参照についての定義の終了タグ
－
否
－

　　　<container-transaction>
コンテナのトランザクションについての定義の開始タグ
－
否
－

　　　　<trans-attribute>
メソッドに割り当てるトランザクション属性
トランザクションを引き継ぐRequired
否
Required※2

　　　</container-transaction>
コンテナのトランザクションについての定義の終了タグ
－
否
－

　　　<session-runtime>
runtimeの定義の開始タグ
－
否
－

　　　　<stateless>
statelessの定義の開始タグ
－
否
－

　　　　　<pooled-instance>
プール内のインスタンスについての定義の開始タグ
－
否
－

　　　　　　<minimum>
プール内のインスタンスの最小数
DBアダプタのインスタンスの最小数
可
0または1≦minimum≦maximum

　　　　　　<maximum>
プール内のインスタンスの最大数
DBアダプタのインスタンスの最大数
可
0（無制限）または1≦maximum≦maximum-sessions

　　　　　</pooled-instance>
プール内のインスタンスについての定義の終了タグ
－
否
－

　　　　</stateless>
statelessの定義の終了タグ
－
否
－

　　　</session-runtime>
runtimeの定義の終了タグ
－
否
－

　　</hitachi-session-bean-property>
SessionBeanの属性の定義の終了タグ
－
否
－

　</ejb-jar>
EJBに関する情報の定義の終了タグ
－
否
－

</hitachi-application-all-property>
ルートタグ
－
否
－

（凡例）

－：変更できません。

注※1

display-nameを変更した場合は，変更後の名称を指定してください。

注※2

デフォルトのままで変更できません。必ずRequiredを指定してください。

注意

表5-3で示した設定・変更できる項目以外は，サンプルファイルとして提供したアプリケーション統合属性ファイルを設定・変更しないでください。

(4)　サービスアダプタ定義画面での操作

DBアダプタを定義する場合の手順を次に示します。

サービスアダプタ定義画面を表示します。
サービスアダプタ定義画面の表示方法については，「5.3.1(5) サービスアダプタ定義画面の表示」を参照してください。

サービス部品制御情報の［サービス名］および［サービスID］を必要に応じて編集します。
サービス名は，サービスアダプタを追加したときに入力した名称から異なる名称に変更したい場合に入力してください。
サービスIDは，運用管理者がHCSCサーバの操作（オペレーション）を行うときに必要になる識別情報です。サービス名との関連がわかるような形で命名することを推奨します。

サービス部品制御情報の［追加］ボタンをクリックして，オペレーションを追加します。
オペレーション名は，サービスリクエスタからHCSCサーバを呼ぶときに必要になる識別情報です。

サービス部品制御情報の［システム例外をフォルトに変換する］チェックボックスを必要に応じてチェックします。

オペレーション情報の［通信モデル］のドロップダウンリストから，「同期」または「非同期」を選択します。
応答が必要な場合は「同期」を選択してください。

要求電文について，手順7.から手順18.までを実施します。

次に示す操作をします。

標準電文のフォーマットを指定する場合

手順8.～11.を実施して，手順12.に進みます。

標準電文のフォーマットを指定しない場合

手順12.に進みます。

標準電文の［使う］チェックボックスをチェックします。

標準電文の［フォーマットID］を指定します。
［フォーマットID］に任意の値を指定します。

標準電文の［参照］ボタンをクリックして，［電文フォーマット］に標準電文のフォーマットを指定します。
指定できる電文フォーマットの形式については，「2.6.5　XMLスキーマの適用範囲」を参照してください。なお，外部のXMLスキーマを参照している電文フォーマットは指定できません。

標準電文の［表示］ボタンをクリックします。
標準電文のフォーマットが表示されます。必要に応じて指定した標準電文のフォーマットを確認してください。

サービス部品電文の［フォーマットID］を指定します。
［フォーマットID］に任意の値を指定します。

サービス部品電文の［参照］ボタンをクリックして，［電文フォーマット］にサービス部品電文のフォーマットを指定します。
ここには，作成したDBアダプタ用のXMLフォーマット定義ファイルを指定します。
［電文フォーマット］に指定できる電文種別は，XML電文だけです。

サービス部品電文の［表示］ボタンをクリックします。
サービス部品電文のフォーマットが表示されます。必要に応じて指定したサービス部品電文のフォーマットを確認してください。

必要に応じて，データ変換定義を行います。
次に示す操作をします。

標準電文の［使う］チェックボックスをチェックした場合

手順16.～18.を実施して，手順19.に進みます。

標準電文の［使う］チェックボックスをチェックしない場合

手順19.に進みます。

データ変換定義のファイル名を入力します。

［編集］ボタンをクリックします。
データ変換定義画面が表示されます。
なお，初めて定義する場合は，［ルート要素選択］ダイアログが表示されます。
また，電文フォーマットを変更した場合は，電文フォーマットの変更を反映するかを確認するダイアログが表示されます。電文フォーマットを変更した場合の手順は，「7.3.2　電文フォーマットを変更した場合の定義手順」を参照してください。

標準電文とサービス部品電文の内容をマッピングします。

手順5.の［通信モデル］で「同期」を選択した場合，応答電文についても同様に，手順7.から手順18.までを実施します。

サービスアダプタ定義（詳細）タブをクリックします。

カスタムアダプタ（EJB-JARファイル）の名称を確認します。
カスタムアダプタ（EJB-JARファイル）の名称が，「cscdba_ejb.jar」であることを確認してください。
ユーティリティクラス（JARファイル）の設定は不要です。

独自定義ファイルの［追加］ボタンをクリックして，次のファイルを追加します。

SQLオペレーション定義ファイル
[csa_sql_<任意の名称>.xml]

アプリケーション統合属性ファイル
[cscadapter_property.xml]

定義内容を確認して，Eclipseのメニューから［ファイル］－［保管］を選択し，定義内容を保存します。

(5)　データ変換

(a)　データ変換が必要なケース

次のような場合は，標準電文のフォーマットを指定してデータ変換が必要です。

DBアダプタに指定した電文フォーマット（XMLフォーマット定義ファイル）と異なる電文フォーマットでDBアダプタを呼びたい場合

DBアダプタに指定した電文フォーマット（XMLフォーマット定義ファイル）と異なる電文フォーマットでDBアダプタからの応答を受け取りたい場合

(b)　データ変換の定義

要求電文のデータ変換をする場合
サービスアダプタ定義画面で標準電文にサービスリクエスタから入力される電文を設定し，データ変換定義画面でデータ変換を定義します。
要求電文については，DBアダプタに指定した電文フォーマット（XMLフォーマット定義ファイル）のDBA_IN_DATAと対応付けます。

応答電文のデータ変換をする場合
サービス部品から返される電文に標準電文を設定し，データ変換定義画面でデータ変換を定義します。
応答電文については，DBアダプタに指定した電文フォーマット（XMLフォーマット定義ファイル）のDBA_OUT_DATAと対応付けます。

データ変換の詳細については，「7.　データ変換の定義」を参照してください。

(6)　EARファイルの入れ替え

DBアダプタの追加時にEARファイルを設定します。DBアダプタを追加したあとにEARファイルを修正する必要がある場合，DBアダプタのサービスアダプタ定義画面で，EARファイルを入れ替えます。

DBアダプタのサービスアダプタ定義画面で，EARファイルを入れ替える手順を次に示します。

ツリービューのサービス定義一覧で，EARファイルを入れ替えるDBアダプタをダブルクリックします。
サービスアダプタ定義画面が表示されます。

画面下部の［サービスアダプタ定義（詳細）］タブをクリックします。
サービスアダプタ定義（詳細）画面が表示されます。

サービスアダプタ定義（詳細）画面で，［参照］ボタンをクリックします。

入れ替えるEARファイルを指定します。

5.3.6　カスタムアダプタを定義する

カスタムアダプタの定義について説明します。カスタムアダプタは，サービスアダプタ定義画面で定義できます。

＜この項の構成＞

(1)　オペレーションの設計

(2)　データ変換

(3)　独自定義ファイルの作成と設定

(4)　クラスファイルの作成

(5)　JARファイルの作成

(6)　EARファイルの作成

(7)　EARファイルの入れ替え

(8)　サービスアダプタ定義画面での操作

(1)　オペレーションの設計

一つのカスタムアダプタは複数のオペレーションを持つことができます。一つのオペレーションごとにオペレーション名，通信モデル，要求電文，および応答電文の設計が必要です。

(a)　オペレーション名の決定

オペレーション名は，サービスリクエスタからのサービス部品呼び出しや，ビジネスプロセスのサービス呼出アクティビティからのサービス部品呼び出しで，オペレーションを区別するための識別名です。

255バイト以内で，カスタムアダプタ内で一意な名称を付け，同じカスタムアダプタ内のほかのオペレーション名と重複しないように指定してください。

指定できる文字列および記号は次のとおりです。

英数字

アンダーライン（_）

ピリオド（.）

ハイフン（-）

カスタムアダプタ内のプロトコルコンバータでは，カスタムアダプタが呼び出されたときに，どのオペレーションが呼ばれたのかを識別するために使います。

(b)　通信モデルの決定

カスタムアダプタではオペレーションごとに通信モデルを選択できます。呼び出すサービス部品に合わせて，同期または非同期のどちらかを選択してください。

(c)　要求電文・応答電文の設計

プロトコルコンバータが受け取る要求電文とプロトコルコンバータが応答する応答電文について，電文形式と電文フォーマットを設計します。ただし，通信モデルが非同期の場合，応答電文を返さないので，応答電文を定義する必要はありません。

電文形式は，XML形式とバイナリ形式が選べます。

電文フォーマットは，サービス部品の実行に利用する電文でXML形式のデータを扱うか，バイナリ形式（XML形式以外）のデータを扱うかによって形式が異なります。呼び出すサービス部品に合わせてXML形式とバイナリ形式のどちらかを選択し，呼び出すサービス部品の形式に合わせて，電文フォーマットを作成してください。

XML形式とバイナリ形式の違いについては，「4.2　電文フォーマットの種類」を参照してください。

XML形式のデータを扱う場合の電文フォーマットの作成については，「4.3　電文フォーマット（XMLフォーマット定義ファイル）の作成方法」を，バイナリ形式（XML形式以外）のデータを扱う場合の電文フォーマットの作成については，「4.4　電文フォーマット（バイナリフォーマット定義ファイル）の作成方法」を参照してください。

(2)　データ変換

「5.3.6(1) オペレーションの設計」で設計したプロトコルコンバータが受けたい電文フォーマットと，サービスリクエスタやビジネスプロセスから要求するときの電文フォーマットが異なる場合，データ変換が必要です。電文のフォーマットは，サービスアダプタ定義画面で設定できます。

電文のデータ変換を行う場合，変換元の電文フォーマット定義ファイルおよび変換先の電文フォーマット定義ファイルを設定し，データ変換定義画面でデータ変換を定義します。

データ変換の詳細については，「7.　データ変換の定義」を参照してください。

(3)　独自定義ファイルの作成と設定

プロトコルコンバータやカスタムアダプタ開発フレームワークが使用する定義ファイルを作成します。

プロトコルコンバータ用独自定義ファイル

カスタムアダプタ開発フレームワーク動作定義ファイル

カスタムアダプタプロパティファイル

カスタムアダプタ用アプリケーション統合属性ファイル

カスタムアダプタ定義ファイル

作成した定義ファイルは，開発環境のサービスアダプタ定義画面で設定します。

次に作成するファイルの内容を説明します。

(a)　プロトコルコンバータ用独自定義ファイル

プロトコルコンバータは，アダプタコンテキストを通して，カスタムアダプタに設定されたリソース内容を読み込めます。

プロトコルコンバータの動作に必要なファイルがあれば作成してください。

(b)　カスタムアダプタ開発フレームワーク動作定義ファイル

カスタムアダプタ開発フレームワークが使用するプロトコルコンバータのクラス名（パッケージ名を含む）を指定します。ファイル名は必ず「framework_properties.xml」にしてください。

カスタムアダプタ開発フレームワーク動作定義ファイルの設定内容については，「付録F.2(1) カスタムアダプタ開発フレームワーク動作定義ファイル」を参照してください。

(c)　カスタムアダプタプロパティファイル

プロトコルコンバータに関する設定を外部ファイル化したい場合など，必要に応じて作成するファイルです。このファイルは独自定義ファイルの一種で，カスタムアダプタの定義時に使用します。ファイル名は必ず「customadapter_properties.xml」にしてください。

カスタムアダプタプロパティファイルの設定内容については，「付録F.2(2) カスタムアダプタプロパティファイル」を参照してください。

(d)　カスタムアダプタ用アプリケーション統合属性ファイル

カスタムアダプタ用アプリケーション統合属性ファイルを用いることで，運用する環境に合わせて，カスタムアダプタのパラメタを設定できます。カスタムアダプタ用アプリケーション統合属性ファイルを指定する場合，ファイル名は必ず「cscadapter_property.xml」にしてください。

アプリケーション統合属性ファイルの設定内容については，「付録F.2(3) カスタムアダプタ用アプリケーション統合属性ファイル」を参照してください。

アプリケーション統合属性ファイルを指定した場合，Session Bean属性の<pooled-instance>はアプリケーション統合属性ファイルで記載した値となります。

(e)　カスタムアダプタ定義ファイル

カスタムアダプタ定義ファイルを用いることで，データ変換時に電文の構造変換をスキップする機能（構造変換スキップ機能）を利用できます。カスタムアダプタ定義ファイルを指定する場合，ファイル名は必ず「csccustomadapter.properties」にしてください。

カスタムアダプタ定義ファイルの設定内容については，「付録F.2(4) カスタムアダプタ定義ファイル」を参照してください。

構造変換スキップ機能の設定方法について説明します。

要求電文のデータ変換では，ビジネスプロセスから受け取ったDOMツリーから，直接，バイナリ形式の要求電文を生成し，カスタムアダプタに渡したいときに，構造変換スキップ機能を有効にできます。

応答電文のデータ変換では，カスタムアダプタから返ってきたバイナリ形式の応答電文から生成したDOMツリーを，そのままビジネスプロセスに返したいときに，構造変換スキップ機能を有効にできます。

構造変換スキップ機能を設定するには，開発環境のサービスアダプタ定義（詳細）画面で，［独自定義ファイル］にカスタムアダプタ定義ファイルを設定する必要があります。

サービスアダプタ定義画面については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.2　サービスアダプタ定義画面」を参照してください。

構造変換スキップ機能を使用するときの注意事項を次に示します。

開発環境のサービスアダプタ定義画面で，要求電文および応答電文の標準電文フォーマットにXMLフォーマット定義ファイルを，要求電文および応答電文のサービス電文フォーマットにバイナリフォーマット定義ファイルを指定してください。

開発環境のサービスアダプタ定義画面で，要求電文および応答電文の標準電文フォーマットには，受付電文フォーマット（バイナリフォーマット定義ファイル）からcscdfx2xsdコマンドを使用して生成したXMLフォーマット定義ファイルを指定してください。

(4)　クラスファイルの作成

プロトコルコンバータ（プロトコル変換処理）を実装するクラスファイルを作成します。作成するクラスファイルは，カスタムアダプタ開発フレームワークが提供するCSCMsgCustomProtocolConverterインターフェースを実装します。

プロトコルコンバータは，Cosminexus アプリケーションサーバ上で動くStateless SessionBeanの一部として動作します。そのため，クラスファイルを作成するときは，マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」のEJBやStateless Session Beanに関する説明を参照してください。

CSCMsgCustomProtocolConverterインターフェースの詳細は，「付録F.1(1)(a) CSCMsgCustomProtocolConverterインターフェース」を参照してください。また，実装例については，「付録F.3　カスタムアダプタ開発フレームワークのサンプルプログラム」を参照してください。

プロトコルコンバータを実装するときに考慮する内容を次に示します。

(a)　カスタムアダプタのインスタンスとプロトコルコンバータのインスタンスの関係

一つのカスタムアダプタは複数のインスタンスを持つことがありますが，その場合でもプロトコルコンバータのインスタンスは常に一つです。そのため，プロトコルコンバータはマルチスレッドでアクセスされることに注意して実装してください。

図5-2　カスタムアダプタのインスタンスとプロトコルコンバータのインスタンスの関係

(b)　リソースの確保方法

カスタムアダプタ開発フレームワークでは，プロトコルコンバータでのリソースの確保について，次の方法を推奨しています。

静的なリソースの取得：CSCMsgCustomProtocolConverterのstartメソッド
サービス部品の呼び出しに必要なプロトコルのヘッダ情報やサービス部品のアドレスなど，サービス部品を呼び出すときに参照だけが行われるリソースについては，startメソッドでインスタンスフィールドに確保することを推奨しています。
これは，カスタムアダプタ開始時に一度だけ取得すれば，以後同じリソースを使い続けることができるためです。

動的なリソース（スレッドセーフでないリソース）の取得：CSCMsgCustomProtocolConverterのinvokeメソッド
ストリームによるファイルアクセスやサービス部品に対するコネクションなど，スレッドセーフにアクセスできないリソースについては，invokeメソッドでサービス部品を呼び出すごとに取得することを推奨しています。
スレッドセーフにアクセスできないリソースをインスタンスフィールドに確保してしまうと，スレッド間の排他制御が必要になります。
サービス部品を呼び出すごとにリソースを取得すれば，スレッド間の排他制御による処理性能の低下を抑止できます。

注意

一度確保したリソースは，処理が終了しても保持し続けるため，システム全体に高い負荷がかかった場合に，Javaヒープ不足やPermヒープ不足などが原因でOutOfMemoryErrorが発生することがあります。そのため，OutOfMemoryErrorが発生したときに適切にリソースを解放する処理や，ロールバックなどのエラー処理を実装しておく必要があります。

(c)　リソースファイルのファイル名指定方法

プロトコルコンバータでは，アダプタコンテキストを用いてアーカイブファイル内のリソースファイルにアクセスできます。アーカイブファイル内のリソースファイルにアクセスする場合，次の点に注意してください。

指定するファイル名は，アーカイブ内の相対パスを含むファイル名を指定してください。

独自定義ファイルのファイル名と，アーカイブファイル内のリソースファイル名が重なった場合，独自定義ファイルを指定したことになります。

複数のアーカイブファイル内で，同一名称のリソースファイルを配置しないでください。ファイル名が重複していると，どのアーカイブ内のファイルが使用されたのか特定できなくなります。

(d)　フォルト情報と例外の違い

CSCMsgCustomProtocolConverterのinvokeメソッドの実行中にエラーが起きた場合，プロトコルコンバータは例外を生成して送出，またはフォルト情報を応答電文メッセージに格納します。

フォルト情報は，サービス部品呼び出し処理（CSCMsgCustomProtocolConverterのinvokeメソッド）の実行中に発生した業務上の障害を，カスタムアダプタ開発フレームワークに伝達するために使用します。

例外は，サービス部品呼び出し処理中に発生した通信エラーなどのシステム障害を，カスタムアダプタ開発フレームワークに伝達するために使用します。

フォルトを使用した場合と例外を使用した場合とでは，障害情報を受け取るサービスアダプタやビジネスプロセスでは次のような違いがあります。

●フォルト情報

サービスリクエスタへの応答
フォルト情報の取得については，「10.2.8　エラー情報を取得する」または「10.4.7　エラー情報を取得する」を参照してください。

ビジネスプロセスへの応答
ビジネスプロセスでは，Cosminexus サービスプラットフォームが提供するほかのアダプタのフォルトと同様に処理できます。ビジネスプロセスでのフォルト処理については，「6.4.3　フォルト処理を定義する」を参照してください。

参考

カスタムアダプタ開発フレームワークに伝達するフォルト情報は，SOAPのSOAP Fault情報に対応する要素を持ちます。各要素の使用方法もSOAPの仕様に準拠しています。SOAP通信基盤がサポートするSOAPおよびSAAJの仕様に従って記述してください。SOAP通信基盤のサポートするSOAPおよびSAAJの仕様については，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」の「12.　標準仕様との対応」を参照してください。

●例外

サービスリクエスタへの応答
例外情報の取得については，サービスリクエスタ作成でのエラー情報の取得に関する内容を参照してください。

ビジネスプロセスへの応答
ビジネスプロセスでは，フォルト処理はできないため，エラー（例外）として扱われます。

(e)　コンパイル

カスタムアダプタ開発フレームワークで使用する次のJARファイルをクラスパスに指定してコンパイルする必要があります。

<Cosminexusのインストールディレクトリ>¥CSC¥lib¥csc_adapter.jar

また，CosminexusのアプリケーションサーバのAPIなどを使う場合は，別途必要なJARファイルを追加してコンパイルしてください。

(5)　JARファイルの作成

カスタムアダプタの開発で作成するJARファイルの総称を次のように分けています。

プロトコルコンバータJARファイル
プロトコルコンバータクラスファイルおよびカスタムアダプタ開発フレームワーク動作定義ファイルを含むJARファイル

ライブラリJARファイル
プロトコルコンバータJARファイル以外のJARファイル

それぞれのJARファイルの作成方法について説明します。

(a)　プロトコルコンバータJARファイルの作成

jarコマンドを使用して，プロトコルコンバータクラスファイルとそれが使用するクラスファイルおよび，カスタムアダプタ開発フレームワーク動作定義ファイルをJARファイルにアーカイブします。

JARファイルにアーカイブする場合のディレクトリ構成，およびjarコマンドの指定例を次に示します。

●JARファイルのディレクトリ構造

jarコマンドによってアーカイブするときのJARファイルのディレクトリ構成を次の表に示します。

表5-4　jarコマンドによってアーカイブするときのJARファイルのディレクトリ構成

ディレクトリ名
またはファイル名
説明
指定

/

アーカイブ内のルートディレクトリです。
○

*.class

プロトコルコンバータおよびそれらが依存するクラス（インターフェース）のクラスファイル（*.class）をパッケージ名に従ったディレクトリ階層で格納します。
○

framework_properties.xml

カスタムアダプタ開発フレームワークが使用するプロトコルコンバータのクラス名（パッケージ名を含む）を指定します。
○※

*

プロトコルコンバータが使用する任意のリソースファイルです。
ディレクトリを作成して，その中にファイルを格納できます。
－

/META-INF/

管理情報を格納するディレクトリです。
jarコマンドによって自動的に作成されます。
－

MANIFEST.MF

マニフェストファイルです。
jarコマンドのmオプションを指定することで，アーカイブ内に自動的に作成されます。
－

（凡例）

○：アーカイブするときに指定が必須であることを示します。

－：アーカイブするときに指定が不要，または任意であることを示します。

注※

JARファイルが複数の場合は，プロトコルコンバータを格納したJARファイルにだけ格納してください。

●JARファイル作成時のjarコマンド指定例

JARファイルにアーカイブする場合のjarコマンドの指定例を次に示します。

前提
カレントディレクトリおよびサブディレクトリに次のようにファイルが用意されているとします。

framework_properties.xml
protocolconverter/CustomProtocolConverter.class
lib/MyLib.class
data/table.dat

指定例
「MyProtocolConverter.jar」という名称のJARファイルを作成する場合のjarコマンドの指定例を次に示します。

jar cf ..¥MyProtocolConverter.jar .¥

(b)　ライブラリJARファイルの作成

ライブラリJARファイルは一般のJARファイルと同じように作成してください。

ライブラリJARファイルの作成時の注意事項を次に示します。

●JARファイルのファイル構造

複数のJARファイル間でファイル名は重複しないようにしてください。

ファイル名が重複していると，どのJARファイルのファイルが使用されたのか特定できなくなります。なお，ディレクトリだけが重複している場合は，問題ありません。

A.jarとB.jarという二つのJARファイルを使用し，アーカイブ内のディレクトリおよびファイル構造が重複した場合の例を次の表に示します。

表5-5　アーカイブ内のディレクトリおよびファイル構造が重複した場合の例

A.jarの構造
B.jarの構造
説明

myfile.txt

－
A.jarのファイル「myfile.txt」が使用されます。

samedata.dat

samedata.dat

A.jarとB.jarのどちらのファイル「samedata.dat」が使用されたのか特定できません。ファイル名は重複させないでください。

dir/

dir/

ディレクトリの重複はかまいません。

－

dir/b.class

B.jarのファイル「dir/b.class」が使用されます。

dir/same.class

dir/same.class

A.jarとB.jarのどちらのファイル「def/same.class」が使用されたのか特定できません。ファイル名は重複させないでください。

（凡例）

－：存在しないことを示します。

●JARファイルの配置

ファイル名が「famework_properties.xml」であるファイルをJARファイルのルートディレクトリに配置しないでください。

「famework_properties.xml」と同じファイル名のJARファイルがルートディレクトリに存在すると，プロトコルコンバータJARファイル内のファイル「famework_properties.xml」が使用されなくなるおそれがあります。

(6)　EARファイルの作成

カスタムアダプタの新規登録に必要なEARファイルを作成します。

EARファイルの作成は，jarコマンドを使用し，Cosminexus サービスプラットフォームが提供しているJARファイルをEARファイルにアーカイブします。

EARファイルにアーカイブする場合のディレクトリ構成，およびjarコマンドの指定例を次に示します。

●EARファイルのディレクトリ構造

jarコマンドによってアーカイブするときのEARファイルのディレクトリ構成を次の表に示します。

表5-6　jarコマンドによってアーカイブするときのEARファイルのディレクトリ構造

ディレクトリ名
またはファイル名
説明
指定

/

アーカイブ内のルートディレクトリです。
○

cscmsg_adpejb.jar

次に示すファイルのコピーを格納します。

<Cosminexusのインストールディレクトリ>¥CSC¥lib¥cscmsg_adpejb.jar

○

/META-INF/

管理情報を格納するディレクトリです。
jarコマンドによって自動的に作成されます。
－

MANIFEST.MF

マニフェストファイルです。
jarコマンドのmオプションを指定することで，アーカイブ内に自動的に作成されます。
－

（凡例）

○：アーカイブするときに指定が必須であることを示します。

－：アーカイブするときに指定が不要，または任意であることを示します。

注意

上記以外のファイルは格納しないでください。複数のjarファイルを格納した場合，カスタムアダプタの登録ができなくなります。

●EARファイル作成時のjarコマンド指定例

EARファイルにアーカイブする場合のjarコマンドの指定例を次に示します。

前提
カレントディレクトリに次に示すファイルのコピーを格納します。
<Cosminexusのインストールディレクトリ>¥CSC¥lib¥cscmsg_adpejb.jar

指定例
「CustomAdapter.ear」という名称のEARファイルを作成する場合のjarコマンドの指定例を次に示します。

jar cf ..¥CustomAdapter.ear .¥

(7)　EARファイルの入れ替え

カスタムアダプタの追加時にEARファイルを設定します。カスタムアダプタを追加したあとにEARファイルを修正する必要がある場合，カスタムアダプタのサービスアダプタ定義画面で，EARファイルを入れ替えます。

入れ替えるEARファイルに含まれるEJB-JARファイル名は，カスタムアダプタの追加時に設定したEARファイルのEJB-JAR名と同じにしてください。EJB-JARファイル名が異なる場合は，EARファイルを指定したときにエラーが発生し，EARファイルを設定できません。

カスタムアダプタのサービスアダプタ定義画面で，EARファイルを入れ替える手順を次に示します。

ツリービューのサービス定義一覧で，EARファイルを入れ替えるカスタムアダプタをダブルクリックします。
サービスアダプタ定義画面が表示されます。

画面下部の［サービスアダプタ定義（詳細）］タブをクリックします。
サービスアダプタ定義（詳細）画面が表示されます。

サービスアダプタ定義（詳細）画面で，［参照］ボタンをクリックします。

入れ替えるEARファイルを指定します。

(8)　サービスアダプタ定義画面での操作

カスタムアダプタを定義する場合の手順を次に示します。

サービスアダプタ定義画面を表示します。
サービスアダプタ定義画面の表示方法については，「5.3.1(5) サービスアダプタ定義画面の表示」を参照してください。

サービス部品制御情報の［サービス名］，［サービスID］，および［最大インスタンス数］を必要に応じて編集します。

サービス部品制御情報の［追加］ボタンをクリックして，オペレーションを追加します。
「5.3.6(1) オペレーションの設計」で設計したオペレーション名を指定してください。

サービス部品制御情報の［オペレーション］のドロップダウンリストから，編集したいオペレーションを選択します。

サービス部品制御情報の［システム例外をフォルトに変換する］チェックボックスを必要に応じてチェックします。

オペレーション情報の［通信モデル］のドロップダウンリストから，「同期」または「非同期」を選択します。
「5.3.6(1) オペレーションの設計」で設計した通信モデルを指定してください。

次に示す操作をします。

標準電文のフォーマットを指定する場合

手順8.～12.を実施して，手順13.に進みます。

標準電文のフォーマットを指定しない場合

手順13.に進みます。

要求電文の［>>］ボタンをクリックします。
標準電文およびデータ変換定義の情報欄が表示されます。

標準電文の［使う］チェックボックスをチェックします。

標準電文の［フォーマットID］を指定します。

標準電文の［参照］ボタンをクリックして，［電文フォーマット］に標準電文のフォーマットを指定します。
［電文フォーマット］には電文種別は，XML電文とバイナリ電文のどちらも指定できます。

標準電文の［表示］ボタンをクリックします。
標準電文のフォーマットが表示されます。必要に応じて指定した標準電文のフォーマットを確認してください。

サービス部品電文の［フォーマットID］を指定します。

サービス部品電文の［参照］ボタンをクリックして，［電文フォーマット］にサービス部品電文のフォーマットを指定します。
「5.3.6(1) オペレーションの設計」で設計した電文フォーマットを指定してください。
［電文フォーマット］には電文種別は，XML電文とバイナリ電文のどちらも指定できます。

サービス部品電文の［表示］ボタンをクリックします。
サービス部品電文のフォーマットが表示されます。必要に応じて指定したサービス部品電文のフォーマットを確認してください。

次に示す操作をします。

標準電文の［使う］チェックボックスをチェックした場合

手順17.～19.を実施して，手順20.に進みます。

標準電文の［使う］チェックボックスをチェックしない場合

手順20.に進みます。

データ変換定義のファイル名を入力します。

［編集］ボタンをクリックします。
データ変換定義画面が表示されます。
なお，初めて定義する場合は，［ルート要素選択］ダイアログが表示されます。
また，電文フォーマットを変更した場合は，電文フォーマットの変更を反映するかを確認するダイアログが表示されます。詳細は，「7.3.2　電文フォーマットを変更した場合の定義手順」を参照してください。

標準電文とサービス部品電文の内容をマッピングします。

手順6.で「同期」を選択した場合，応答電文についても同様に，手順7.から手順19.までを実施します。

サービスアダプタ定義（詳細）タブをクリックします。

カスタムアダプタ（EJB-JARファイル）の名称を確認します。
名称が「cscmsg_adpejb.jar」であることを確認します。

ユーティリティクラス（JARファイル）の［追加］ボタンをクリックして，JARファイルを登録します。
追加するファイルは，「5.3.6(5)(a) プロトコルコンバータJARファイルの作成」で作成したJARファイルです。
必要に応じて，プロトコルコンバータで使用するJARファイル（ライブラリJARファイルなど）も追加できます。

独自定義ファイルの［追加］ボタンをクリックして，必要に応じて次のファイルを追加します。

プロトコルコンバータ用独自定義ファイル

カスタムアダプタプロパティファイル

カスタムアダプタ用アプリケーション統合属性ファイル

定義内容を確認して，Eclipseのメニューから［ファイル］－［保管］を選択し，定義内容を保存します。

5.3.7　アダプタ定義での設定一覧

サービスアダプタ，DBアダプタ，およびカスタムアダプタの定義で使用する「サービスアダプタ定義画面」での設定について説明します。

注意

［電文フォーマットID］には「format」で始まる名称を指定しないでください。「format」で始まる名称を指定した場合，システムが内部で利用しているIDと重複し，エラーが発生するおそれがあります。

サービスアダプタ定義画面で指定する電文フォーマット定義ファイルが，外部のXMLスキーマを参照している電文フォーマットの場合，必ずルートスキーマに当たるファイルを設定してください。ルートスキーマから参照される外部のXMLスキーマファイルは，自動的に取り込まれます。

サービスアダプタ定義画面で指定する電文フォーマット定義ファイルは，「2.6.5　XMLスキーマの適用範囲」に示す条件を満たしている必要があります。スキーマの条件の詳細については，「2.6.5　XMLスキーマの適用範囲」を参照してください。

＜この項の構成＞

(1)　サービスアダプタの場合

(2)　DBアダプタの場合

(3)　カスタムアダプタの場合

(1)　サービスアダプタの場合

各サービス部品のサービスアダプタ定義画面での設定を次の表に示します。

表5-7　各サービス部品のサービスアダプタ定義画面での設定

分類
項目
Web
サービス
Session
Bean
MDB
(WS-R)
MDB
(DBキュー)

同期
同期
非同期
非同期

基本画面
サービス部品制御情報
サービス名
◎
◎
◎
◎

サービスID
◎
◎
◎
◎

サービス種別
×
×
×
×

アドレス
×
◎
◎
◎

最大インスタンス数
◎
◎
◎
◎

サービスクラス名
×
×
×
×

オペレーション
◎
◎
◎
◎

システム例外をフォルトに変換する（チェックボックス）
○
○
○
○

オペレーション情報
オペレーション名
×
×
×
×

通信モデル
×
×
×
×

要求電文
ヘッダ
ルート要素
○
－
－
－

名前空間
×
－
－
－

電文フォーマット
×
－
－
－

ボディ
使う（チェックボックス）
○
○
○
○

標準フォーマットID
△※1
△※1
△※1
△※1

標準電文フォーマット
△※1
△※1
△※1
△※1

サービス部品フォーマットID
◎
◎
◎
◎

サービス部品電文フォーマット
◎
◎
◎
◎

データ変換定義
△※1
△※1
△※1
△※1

応答電文
ヘッダ
ルート要素
○
－
－
－

名前空間
×
－
－
－

電文フォーマット
×
－
－
－

ボディ
使う（チェックボックス）
○
○
－
－

標準フォーマットID
△※2
△※2
－
－

標準電文フォーマット
△※2
△※2
－
－

サービス部品フォーマットID
◎
◎
－
－

サービス部品電文フォーマット
◎
◎
－
－

データ変換定義
△※2
△※2
－
－

フォルト電文
フォルト名
△※3
－
－
－

フォルト電文フォーマット
△※3
－
－
－

詳細画面
Webサービス制御情報
クライアント定義ファイル
◎
－
－
－

使う（チェックボックス）
○
－
－
－

ユーザ名
△※4
－
－
－

パスワード
△※4
－
－
－

パスワード（確認）
△※4
－
－
－

SessionBean制御情報
クライアント定義ファイル
－
◎
－
－

ユーザ定義クラス（JARファイル）
－
○
－
－

MDB制御情報
JMSメッセージ種別
－
－
◎
－

リモート呼出し（ラジオボタン）
－
－
◎※5
－

ローカル呼出し（ラジオボタン）
－
－
◎※5
－

最大メッセージ数
－
－
△※6
－

宛先URL
－
－
△※6
－

ベーシック認証（チェックボックス）
－
－
○※7
－

ユーザ名
－
－
△※4
－

パスワード
－
－
△※4
－

パスワード（確認）
－
－
△※4
－

転送キュー作成先RDエリア名
－
－
○※7
－

順序保証（チェックボックス）
－
－
○※7
－

（凡例）

◎：必ず設定します。

○：任意で設定します。

△：場合によっては必ず設定します。

×：表示されている内容を確認します。

－：該当しません。

注※1　要求電文の［使う］（チェックボックス）にチェックした場合，必ず設定します。

注※2　応答電文の［使う］（チェックボックス）にチェックした場合，必ず設定します。

注※3　サービス部品電文のフォルト電文があるときにだけ設定します。

注※4　次の場合に必ず設定します。

Webサービス制御情報の場合
ベーシック認証の［使う］（チェックボックス）にチェックした場合，必ず設定します。

MDB制御情報の場合
［リモート呼出し］（ラジオボタン）を選択し，ベーシック認証の［使う］（チェックボックス）にチェックした場合，必ず設定します。

注※5　［リモート呼出し］または［ローカル呼出し］のどちらか一方のラジオボタンを必ず選択します。

注※6　［リモート呼出し］ラジオボタンを選択した場合，必ず設定します。

注※7　［リモート呼出し］ラジオボタンを選択した場合にだけ，任意で設定できます。

注意

サービスアダプタ定義画面では，入力項目の前後に半角スペースや全角スペースを指定できません。ただし，MDB（WS-R）の詳細画面の［転送キュー作成先RDエリア名］には，末尾に半角スペースを指定できます。

(2)　DBアダプタの場合

DBアダプタを定義する場合の，サービスアダプタ定義画面での設定を次の表に示します。

表5-8　DBアダプタのサービスアダプタ定義画面での設定

分類 | 項目 | DBアダプタ
同期 | 非同期
基本画面 | サービス部品制御情報 | サービス名 | ◎ | ◎
サービスID | ◎ | ◎
サービス種別 | × | ×
アドレス | × | ×
最大インスタンス数※1 | ◎ | ◎
サービスクラス名 | × | ×
オペレーション | ◎ | ◎
システム例外をフォルトに変換する（チェックボックス） | ○ | ○
オペレーション情報 | オペレーション名 | × | ×
通信モデル | ◎※2 | ◎※3
要求電文 | any型を使う（チェックボックス） | ○ | ○
使う（チェックボックス） | ○ | ○
標準フォーマットID | △※4 | △※4
標準電文フォーマット | △※4 | △※4
サービス部品フォーマットID | ◎ | ◎
サービス部品電文フォーマット※6 | ◎ | ◎
データ変換定義 | △※4 | △※4
応答電文 | any型を使う（チェックボックス） | ○ | －
使う（チェックボックス） | ○ | －
標準フォーマットID | △※5 | －
標準電文フォーマット | △※5 | －
サービス部品フォーマットID | ◎ | －
サービス部品電文フォーマット※6 | ◎ | －
データ変換定義 | △※5 | －
フォルト電文 | フォルト名 | － | －
サービス部品電文フォーマット | － | －
詳細画面 | カスタムアダプタ制御情報 | カスタムアダプタ（EJB-JARファイル） | × | ×
ユーティリティクラス（JARファイル） | － | －
独自定義ファイル | ◎ | ◎

（凡例）

◎：必ず設定します。

○：任意で設定します。

△：場合によっては必ず設定します。

×：表示されている内容を確認します。

－：該当しません。

注※1　サービスアダプタ定義画面で設定した値は適用されません。最大インスタンス数は，アプリケーション統合属性ファイルの要素「hitachi-application-all-property/ejb-jar/hitachi-session-bean-property/session-runtime/stateless/pooled-instance/maximum」で指定した値が設定されます。

注※2　「同期」を設定します。

注※3　「非同期」を設定します。

注※4　要求電文の［使う］（チェックボックス）にチェックした場合，必ず設定します。

注※5　応答電文の［使う］（チェックボックス）にチェックした場合，必ず設定します。

注※6　電文種別がXML電文の電文フォーマットを設定します。

(3)　カスタムアダプタの場合

カスタムアダプタを定義する場合の，サービスアダプタ定義画面での設定を次の表に示します。

表5-9　カスタムアダプタのサービスアダプタ定義画面での設定

分類 | 項目 | DBアダプタ
同期 | 非同期
基本画面 | サービス部品制御情報 | サービス名 | ◎ | ◎
サービスID | ◎ | ◎
サービス種別 | × | ×
アドレス | × | ×
最大インスタンス数※1 | ◎ | ◎
サービスクラス名 | × | ×
オペレーション | ◎ | ◎
システム例外をフォルトに変換する（チェックボックス） | ○ | ○
オペレーション情報 | オペレーション名 | ◎ | ◎
通信モデル | ◎※2 | ◎※3
要求電文 | any型を使う（チェックボックス） | ○ | ○
使う（チェックボックス） | ○ | ○
標準フォーマットID | △※4 | △※4
標準電文フォーマット | △※4 | △※4
サービス部品フォーマットID | ◎ | ◎
サービス部品電文フォーマット※6 | ◎ | ◎
データ変換定義 | △※4 | △※4
応答電文 | any型を使う（チェックボックス） | ○ | －
使う（チェックボックス） | ○ | －
標準フォーマットID | △※5 | －
標準電文フォーマット | △※5 | －
サービス部品フォーマットID | ◎ | －
サービス部品電文フォーマット | ◎ | －
データ変換定義 | △※5 | －
フォルト電文 | フォルト名 | － | －
サービス部品電文フォーマット | － | －
詳細画面 | カスタムアダプタ制御情報 | カスタムアダプタ（EJB-JARファイル） | × | ×
ユーティリティクラス（JARファイル） | ◎ | ◎
独自定義ファイル | ◎ | ◎

（凡例）

◎：必ず設定します。

○：任意で設定します。

△：場合によっては必ず設定します。

×：表示されている内容を確認します。

－：該当しません。

注※1　アプリケーション統合属性ファイルの要素を独自定義ファイルとして追加した場合，サービスアダプタ定義画面で設定した値は適用されません。最大インスタンス数は，アプリケーション統合属性ファイルの要素「hitachi-application-all-property/ejb-jar/hitachi-session-bean-property/session-runtime/stateless/pooled-instance/maximum」で指定した値が設定されます。

注※2　「同期」を設定します。

注※3　「非同期」を設定します。

注※4　要求電文の［使う］（チェックボックス）にチェックした場合，必ず設定します。

注※5　応答電文の［使う］（チェックボックス）にチェックした場合，必ず設定します。

5.4　アダプタの保存

サービスアダプタ定義画面で編集中のサービスアダプタやDBアダプタの内容を，編集途中や編集終了時に保存できます。アダプタの内容はリポジトリに保存されます。

データ変換定義で生成したデータ変換定義ファイルは，サービスアダプタ定義画面と同時に保存されます。

アダプタを保存する手順を次に示します。

方法1

Eclipseのメニューから，［ファイル］－［保管］を選択します。

方法2

Eclipseのメニューから，［ファイル］－［すべて保管］を選択します。

方法3

サービスアダプタ定義画面で，［Ctrl］キー＋［S］キーを押します。

なお，アダプタを定義する画面を閉じてアダプタの定義を終了する場合に，アダプタが保存されていないときは，リソース保管ダイアログが表示されます。リソース保管ダイアログでは，保存されていないアダプタの定義を保存できます。

注意

不正なデータが入力されている場合，アダプタを保存できないことがあります。その場合，表示されているメッセージに従って対処してください。

5.5　アダプタの編集

保存したサービスアダプタやDBアダプタの内容を変更できます。アダプタの内容を変更するには，サービスアダプタ定義画面を表示して，内容を編集します。サービスアダプタ定義画面は，ツリービューのサービス定義一覧から，該当するアダプタを選択し，ダブルクリックすると表示されます。

アダプタの内容の定義方法については，「5.3　アダプタの内容の定義」を参照してください。

また，電文フォーマットを変更した場合は，アダプタの内容を編集してデータ変換を定義し直す必要があります。電文フォーマットを変更した場合の手順については，「7.3.2　電文フォーマットを変更した場合の定義手順」を参照してください。

5.6　アダプタの検証

作成したサービスアダプタやDBアダプタの内容が妥当かどうか検証できます。

必要なサービスアダプタ定義やDBアダプタ定義がない場合，または定義の関係が正しくない場合は正常に動作しません。そのため，実行環境で実行する前に，作成したサービスアダプタやDBアダプタに必要な項目がそろっているか，それらの関係が正しいかどうかを検証できます。検証は，必要に応じて，任意のタイミングで検証できます。

＜この節の構成＞

5.6.1　検証方法

5.6.2　検証内容の表示

5.6.1　検証方法

検証する手順を次に示します。

ツリービューのサービス定義一覧で，右クリックします。
サービス一覧のポップアップメニューが表示されます。

ポップアップメニューから「検証」を選択します。
検証結果がコンソールビューに表示されます。

また，パッケージングを実施した場合も，自動的に検証されます。

なお，検証する前にアダプタが保存されていないときは，リソース保管ダイアログが表示されます。リソース保管ダイアログでは，保存されていないアダプタの定義を保存できます。

5.6.2　検証内容の表示

検証結果として，メッセージがコンソールビューに表示されます。メッセージに従って，修正します。

表示されるメッセージの種類を次の表に示します。

表5-10　メッセージの種類

種類
説明

エラー
次のどちらかの場合に表示されます。

定義の内容に誤りがある。

正しい構文で定義しているが，実行できない定義をしている。

警告
実行時にエラーになるおそれがある定義をしている場合に表示されます。

情報
追加情報が表示されます。

5.7　アダプタの削除

作成したサービスアダプタやDBアダプタを削除できます。

＜この節の構成＞

(1)　削除方法

(2)　削除できないアダプタ

(1)　削除方法

削除する手順を次に示します。次に示す二つの方法があります。

方法1

ツリービューのサービス定義一覧で，サービスを選択します。

［Delete］キーを押します。
削除を確認するダイアログボックスが表示されます。

［はい］ボタンをクリックします。
指定したサービスアダプタやDBアダプタが削除されます。

方法2

ツリービューのサービス定義一覧で，サービスを選択して右クリックします。
サービス一覧のポップアップメニューが表示されます。

ポップアップメニューから「削除」を選択します。
削除を確認するダイアログボックスが表示されます。

［はい］ボタンをクリックします。
指定したサービスアダプタやDBアダプタが削除されます。

(2)　削除できないアダプタ

次に示す場合，サービスアダプタやDBアダプタは削除できません。

すでに配備定義されている場合

ビジネスプロセスのサービス呼出アクティビティから呼び出す対象として設定されている場合

6.　ビジネスプロセスの定義

この章では，ビジネスプロセスの定義について説明します。

＜この章の構成＞

6.1　定義の流れ

6.2　ビジネスプロセスの追加

6.3　ビジネスプロセスの内容の定義

6.4　アクティビティの配置と連結

6.5　変数・相関セットの定義

6.6　アクティビティの定義

6.7　ビジネスプロセスの保存

6.8　ビジネスプロセスの編集

6.9　ビジネスプロセスの検証

6.10　ビジネスプロセスの削除

6.1　定義の流れ

ビジネスプロセスの定義の流れを次の図に示します。

図6-1　ビジネスプロセスの定義の流れ

ビジネスプロセスの定義に関する作業について次に説明します。

＜この節の構成＞

(1)　ビジネスプロセスの追加

(2)　ビジネスプロセスの内容の定義

(3)　ビジネスプロセスの保存

(4)　ビジネスプロセスの検証

(5)　ビジネスプロセスのデバッグ

(6)　ビジネスプロセスの編集

(7)　ビジネスプロセスの削除

(1)　ビジネスプロセスの追加

ビジネスプロセスを追加するには，次のどちらかの方法を利用します。

新規に追加する場合

ウィザードを利用してビジネスプロセスを新規に追加します。

ウィザードを利用してビジネスプロセスを新規に追加するには，未定義のビジネスプロセスを追加する方法と，あらかじめBPMNを用いた上流設計ツールで作成したBPELファイルをインポートして，ビジネスプロセスの定義に変換して追加する方法があります。

ビジネスプロセスを新規に追加する方法の詳細については，「6.2.1　ビジネスプロセスを新規に追加する」を参照してください。

定義済みのビジネスプロセスを利用する場合

定義済みのビジネスプロセスを複製してビジネスプロセスを追加できます。定義済みのビジネスプロセスを複製すると，同じ定義内容のビジネスプロセスが追加されます。複製したビジネスプロセスの定義内容を編集することもできます。

定義済みのビジネスプロセスを利用してビジネスプロセスを追加する方法の詳細は，「6.2.2　定義済みビジネスプロセスを利用してビジネスプロセスを追加する」を参照してください。

(2)　ビジネスプロセスの内容の定義

ビジネスプロセス定義画面でアクティビティ，および変数・相関セットを定義します。

定義の方法および定義の内容の詳細については，「6.3　ビジネスプロセスの内容の定義」を参照してください。ビジネスプロセス定義画面の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.3　ビジネスプロセス定義画面」を参照してください。

(3)　ビジネスプロセスの保存

編集したビジネスプロセスの定義情報は，必要に応じてリポジトリに保存する必要があります。

ビジネスプロセスの定義情報の保存方法と保存されるタイミングについては，「6.7　ビジネスプロセスの保存」を参照してください。

(4)　ビジネスプロセスの検証

定義したビジネスプロセスの整合性を検証します。ビジネスプロセスの定義中や定義が終わったあとなど，任意のタイミングで検証できます。

検証方法の詳細については，「6.9　ビジネスプロセスの検証」を参照してください。

(5)　ビジネスプロセスのデバッグ

定義したビジネスプロセスを開発環境でデバッグします。ビジネスプロセスの定義が終わったあと，任意のタイミングでデバッグできます。

ビジネスプロセスをデバッグする方法については，「11.　ビジネスプロセスのデバッグ」を参照してください。

(6)　ビジネスプロセスの編集

定義済みのビジネスプロセスは，必要に応じて定義内容を編集して変更できます。

ビジネスプロセスの編集方法の詳細については，「6.8　ビジネスプロセスの編集」を参照してください。

(7)　ビジネスプロセスの削除

不要になったビジネスプロセスは，必要に応じて削除できます。

ビジネスプロセスの削除方法については，「6.10　ビジネスプロセスの削除」を参照してください。

6.2　ビジネスプロセスの追加

ビジネスプロセスを追加します。

ビジネスプロセスを新規に追加する場合，ビジネスプロセス追加ウィザードを利用します。また，すでに作成されているビジネスプロセスを複製して，新しいビジネスプロセスを追加することもできます。

＜この節の構成＞

6.2.1　ビジネスプロセスを新規に追加する

6.2.2　定義済みビジネスプロセスを利用してビジネスプロセスを追加する

6.2.1　ビジネスプロセスを新規に追加する

ビジネスプロセス追加ウィザードを利用してビジネスプロセスを新規に追加する方法には，次の二つがあります。

未定義のビジネスプロセスの新規追加
未定義のビジネスプロセスを新規に追加する方法です。この方法で新規に追加されるビジネスプロセスは，何も定義されていない状態になります。

BPELファイルをインポートして新規追加
あらかじめBPMNを用いた上流設計ツールでBPELファイルを作成します。そのあと，BPELファイルをインポートしてビジネスプロセスの定義に変換して新規に追加する方法です。この方法で新規に追加されるビジネスプロセスには，基となったBPELファイルの定義情報が引き継がれます。

それぞれの方法について，次に説明します。

＜この項の構成＞

(1)　未定義のビジネスプロセスを新規に追加する

(2)　BPELファイルをインポートしてビジネスプロセスを新規に追加する

(3)　ステータスの永続化の設定

(1)　未定義のビジネスプロセスを新規に追加する

何も定義されていないビジネスプロセスを新規に追加する方法を次に示します。

ツリービューのサービス定義一覧で，右クリックして［ビジネスプロセス追加］を選択します。
ビジネスプロセス定義を追加するためのダイアログが表示されます。

ビジネスプロセス名を入力し，ステータスを永続化するかどうか（ビジネスプロセスの実行状態をデータベースに保存するかどうか）を選択します。
ビジネスプロセス名（ビジネスプロセスのサービス名）は，64バイト以内で入力します。

［終了］ボタンをクリックします。
必要なファイルが作成され，リポジトリに保存されます。
ビジネスプロセスが正常に保存されると，ビジネスプロセス定義画面が表示されます。

(2)　BPELファイルをインポートしてビジネスプロセスを新規に追加する

あらかじめ上流設計ツールでBPELファイルを作成し，BPELファイルをインポートしてビジネスプロセスを新規に追加する方法について説明します。

(a)　BPELファイルの作成

上流設計ツールでBPEL1.1またはBPEL2.0に準拠したBPELファイルを作成します。BPELファイルの作成方法については，利用する上流設計ツールのドキュメントを参照してください。

BPELファイルに定義した要素および属性の内容と，ビジネスプロセス定義の内容との関連については，「付録E　上流設計ツールとの連携で使用するBPELのサポート範囲」を参照してください。

(b)　ビジネスプロセスの新規追加

BPELファイルをインポートして，ビジネスプロセスを新規に追加する方法を次に示します。

ツリービューのサービス定義一覧で，右クリックして［ビジネスプロセス追加］を選択します。
ビジネスプロセス定義を追加するためのダイアログが表示されます。

ビジネスプロセス名を入力し，ステータスを永続化するかどうか（ビジネスプロセスの実行状態をデータベースに保存するかどうか）を選択します。
ビジネスプロセス名（ビジネスプロセスのサービス名）は，64バイト以内で入力します。

［BPELファイル］の［インポートする］のチェックボックスをチェックします。

［ファイル名］にインポートするBPELファイルを指定します。
［...］ボタンをクリックして，インポートするBPELファイル選択することもできます。

アクティビティの配置方法を選択します。

［終了］ボタンをクリックします。
BPELファイルの定義が，ビジネスプロセスの定義に変換されます。変換が終わり，必要なファイルが作成されると，リポジトリに保存されます。
ビジネスプロセスが正常に保存されると，ビジネスプロセス定義画面が表示されます。表示されるビジネスプロセス定義画面のキャンバスには，手順5.で選択した方法でアクティビティが配置されます。

注意

BPELファイルをインポートする場合，次の点に注意が必要です。

変換されないBPELの定義

Cosminexus サービスプラットフォームの開発環境でサポートしていないBPELの定義は，無視されるか，無操作アクティビティに変換されます。

BPELファイルに定義した要素および属性の内容と，ビジネスプロセス定義の内容との関連については，「付録E　上流設計ツールとの連携で使用するBPELのサポート範囲」を参照してください。

BPELファイルでメッセージ型の変数が定義されていた場合

上流設計ツールでメッセージの名称を定義し，BPELファイルにメッセージ型の変数が定義されていた場合，BPELファイルをインポートして作成したビジネスプロセスでは，変数の種別が文字列型（string）に変換されます。

この場合，インポート後に変数の種別をメッセージ型（XML）に変更してください。変数の定義については，「6.5.1(6) 変数の定義方法」を参照してください。

サービス呼出アクティビティが定義されていた場合

BPELファイルをインポートしてビジネスプロセスを作成するとき，BPELファイルのinvoke要素はサービス呼出アクティビティに変換されます。invoke要素のportType属性のローカル名が呼び出すサービス名に，operation属性がオペレーション名に変換されます。

ただし，リポジトリに該当するサービスやオペレーションがない場合には，サービス名やオペレーション名は変換されません。

サービス名やオペレーション名が変換されなかった場合，BPELファイルをインポートしたあと，呼び出す対象のサービスアダプタやビジネスプロセスを作成して，サービス名およびオペレーション名を割り当てる必要があります。

BPELファイルに長い名称のアクティビティが多数定義されていた場合

配置方法で横方向が指定されていて，BPELファイルに長い名称のアクティビティが多数定義されている場合，インポート後にキャンバスの端でアクティビティが重なってしまうことがあります。その場合は，アクティビティを配置し直してください。

(3)　ステータスの永続化の設定

ビジネスプロセスには，データベースにプロセスの実行状態および実行履歴を永続化するビジネスプロセスと，永続化しないビジネスプロセスの２種類があります。永続化とは，プロセスの実行状態および実行履歴をデータベースに記録することです。

永続化するビジネスプロセスは，プロセスの実行状態と実行履歴の記録があるため，障害が発生した場合に，プロセスの実行の進捗度がわかり，プロセスを再実行できます。永続化しないビジネスプロセスは，プロセスの実行状態と実行履歴の記録を採らないため，高性能を実現する必要があるビジネスプロセスの場合に設定します。

永続化するビジネスプロセスではできることが，永続化しないビジネスプロセスではできないといった制約事項があります。永続化しないビジネスプロセスは，次の条件を満たす場合に定義できます。

非同期の受付アクティビティを含まない。

非同期のサービスアダプタに対して，サービスを呼び出すサービス呼出アクティビティを含まない。

待機アクティビティを含まない。

応答アクティビティよりあとにアクティビティ（分岐（終了）アクティビティおよび終了アクティビティを除く）が存在しない。
例を次に示します。

（例1）「スコープ」の中と外で「受付」と「応答」を使用する場合は，スコープ内の「応答1」のあとに，スコープ外の「受付2」を実行することになるため，永続化しないビジネスプロセスとして定義できません。

（例2）「並列処理」の中に「受付」と「応答」を使用する場合は，次に示すように，並列処理が必ず同時に実行して終了するとは限らないため，永続化しないビジネスプロセスとして定義できません。

「応答1」を実行したあとに「受付2」，「サービス呼出2」，または「応答2」のどれかを実行する。

「応答2」を実行したあとに「受付1」，「サービス呼出1」，または「応答1」のどれかを実行する。

（例3）「並列処理」の中に「サービス呼出」だけを使用する場合は，永続化しないビジネスプロセスとして定義できます。

（例4）「分岐」の中に「応答」を使用する場合は，「応答1」と「応答2」のどちらか一方だけを実行することになるため，永続化しないビジネスプロセスとして定義できます。

プロセスインスタンスの再実行を使用しない（障害発生時は，サービスリクエスタからサービス呼び出し要求（ビジネスプロセスの呼び出し）を再度実行する）。

6.2.2　定義済みビジネスプロセスを利用してビジネスプロセスを追加する

すでに定義されているビジネスプロセスを複製して，ビジネスプロセスを追加できます。

ツリービューのサービス定義一覧で，複製するビジネスプロセスを選択して右クリックします。
サービス一覧のポップアップメニューが表示されます。

ポップアップメニューから［複製］を選択します。
選択したビジネスプロセスの複製が作成されます。複製されたビジネスプロセス名（ビジネスプロセスのサービス名）やサービスID※などは，システム内で競合しないよう，自動的に別の情報が割り当てられます。

注※

アダプタおよびビジネスプロセスを追加するときに，自動的に割り当てられるシステム内で一意の番号です。サービスIDは変更できますが，すでに使用されているサービスIDには変更できません。

注意

ビジネスプロセスを複製すると，複製したビジネスプロセスに含まれるユーザ定義受付もあわせて複製されます。ただし，ユーザ定義受付だけを複製することはできません。

6.3　ビジネスプロセスの内容の定義

ビジネスプロセスの内容はビジネスプロセス定義画面で定義します。

ビジネスプロセス定義画面は，ツリービューのサービス定義一覧で表示されたサービス内のビジネスプロセスをダブルクリックすると表示されます。

ビジネスプロセス定義画面の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.3　ビジネスプロセス定義画面」を参照してください。

ビジネスプロセス定義画面では，アクティビティと変数・相関セットを定義します。

＜この節の構成＞

(1)　アクティビティ

(2)　変数・相関セット

(1)　アクティビティ

ビジネスプロセスは，複数のアクティビティを連結して定義します。

アクティビティとは，ビジネスプロセスの構成要素となる部品であり，処理の構造も表現したものです。複数のアクティビティを連結して，ビジネスプロセスの処理フローを定義します。ビジネスプロセスは，アクティビティを画面上で配置・連結して定義します。

アクティビティの配置，連結方法の詳細については，「6.4　アクティビティの配置と連結」を参照してください。

注意

一つのビジネスプロセスを実行する場合に，そのプロセスインスタンス内に生成できるアクティビティインスタンスの数は最大で2,147,483,648個です。ただし，次の場合は生成できる数が最大で32,768個になります。

activitynumber-maximum-compatibleプロパティに「ON」を設定した場合

旧バージョンからの移行で，データベースを使用している環境を上書きインストールした場合

最大数を変更するには，HCSCサーバの再セットアップが必要です。再セットアップすると，ビジネスプロセスの実行履歴が削除されるので注意してください。

最大数より多いアクティビティインスタンスを生成しようとしたときは，ビジネスプロセスの実行中にエラーになります。

なお，アクティビティインスタンスには，開始アクティビティ，終了アクティビティ，順次処理アクティビティなどのすべてのアクティビティが含まれます。

また，繰り返しアクティビティで処理を繰り返したときは，実行するアクティビティの数だけアクティビティインスタンスが生成されます。

(2)　変数・相関セット

ビジネスプロセスには，変数と相関セットを定義できます。

(a)　変数

ビジネスプロセスの処理の中で，条件式の項の値などに変数値を利用する場合，アクティビティの定義で変数を宣言します。

ビジネスプロセス内で利用できる変数の種類，アクティビティとの関係および定義方法については，「6.5.1　変数の定義」を参照してください。

(b)　相関セット

相関セットとは，サービスリクエスタからHCSCサーバを介してサービス部品に送信する要求電文を一意に識別するために利用する文字列です。

相関セットとアクティビティとの関係や定義方法については，「6.5.2　相関セットの定義」を参照してください。

注意

ビジネスプロセスの定義では，定義中に入力値が正しいかどうかのチェックはされません。入力値が正しいかどうかは，ビジネスプロセスの検証でチェックされます。入力値が正しくない場合，検証でエラーになります。

6.4　アクティビティの配置と連結

ビジネスプロセス定義画面では，アクティビティをキャンバスに配置し，連結してビジネスプロセスの処理フローを定義します。また，フォルト処理を設定する場合には，アクティビティ間の連結にフォルト処理を定義します。

以降の項では，アクティビティの配置方法，アクティビティの連結方法およびフォルト処理の定義方法について説明します。

＜この節の構成＞

6.4.1　アクティビティを配置する

6.4.2　アクティビティを連結する

6.4.3　フォルト処理を定義する

6.4.1　アクティビティを配置する

ビジネスプロセス定義画面でのアクティビティの配置方法を次に示します。

パレットの基本アクティビティまたは構造アクティビティの中から，キャンバスに配置するアクティビティをクリックします。
クリックしたアクティビティが選択された状態になります。

キャンバス上の適当な場所をクリックします。
選択したアクティビティがキャンバス上に配置されます。配置されたアクティビティは，ドラッグ＆ドロップで場所を移動できます。

なお，各アクティビティで定義できる内容の詳細については，「6.6　アクティビティの定義」を参照してください。

ポイント

上流設計ツールで作成したBPELファイルをインポートしてビジネスプロセスを追加した場合，ビジネスプロセスを追加するときに選択した配置方法によって，キャンバスに初期表示されるアクティビティの配置が異なります。

「縦方向」を選択した場合

上から下に処理が流れる形でアクティビティが初期表示されます。

「横方向」を選択した場合

左から右に処理が流れる形でアクティビティが初期表示されます。

必要に応じてドラッグ＆ドロップしたり，アクティビティを整列したりしてください。ビジネスプロセス定義画面（キャンバス）での操作については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.3　ビジネスプロセス定義画面」を参照してください。

6.4.2　アクティビティを連結する

キャンバスに配置された二つのアクティビティを連結すると，ビジネスプロセスの実行順序が定義されます。

＜この項の構成＞

(1)　連結の種類

(2)　連結の設定方法

(3)　連結の変更方法

(4)　連結線の折り曲げ

(5)　アクティビティの連結条件

(6)　コネクション使用時の注意事項

(1)　連結の種類

アクティビティの連結には，次の種類があります。

コネクションでの連結
通常のアクティビティの連結に利用します。

フォルトコネクションでの連結
アクティビティでフォルトが発生したときのためのフォルト処理を定義する場合に利用します。フォルト処理の定義の詳細については，「6.4.3　フォルト処理を定義する」を参照してください。

リンクコネクションでの連結
並列処理アクティビティを利用した並列処理で，リンクを定義する場合に利用します。並列処理とリンクについては，「6.6.15　並列処理アクティビティ」を参照してください。

連結方法によって，キャンバス上の連結線の表示は異なります。連結方法と連結線の関係を次の表に示します。

表6-1　連結の画面表示

連結方法 | 表示される連結線 | 線の色 | 線の種類 | 終端
コネクションでの連結 | [図データ]　 | 黒 | 実線 | 三角の矢印
フォルトコネクションでの連結 | [図データ]　 | 赤 | 破線 | 三角の矢印
リンクコネクションでの連結 | [図データ]　 | 青 | 点線 | 線の矢印

(2)　連結の設定方法

アクティビティを連結する方法を次に示します。

パレットの［コネクション］，［リンク］，または［フォルト］をクリックします。
コネクション，フォルトコネクション，またはリンクコネクションが選択された状態になります。
この状態で，アクティビティにマウスポインタを合わせると，そのアクティビティを連結元に設定できる場合，アクティビティの背景色が変わります。

キャンバスに配置したアクティビティのうち，連結元となるアクティビティをクリックします。
連結元となるアクティビティが設定されます。
この状態で，ほかのアクティビティにマウスポインタを合わせると，そのアクティビティを連結先に設定できる場合，アクティビティの背景色が変わります。

キャンバスに配置したアクティビティのうち，連結先となるアクティビティをクリックします。
連結元となるアクティビティと連結先となるアクティビティが連結されます。

(3)　連結の変更方法

すでに設定されている連結を変更するには，連結線の始点または終点をドラッグし，ほかのアクティビティにドロップします。

(4)　連結線の折り曲げ

連結線は，折り曲げて表示できます。アクティビティの連結が複雑になり，キャンバス上の連結線を整理する場合などに利用できます。連結線を折り曲げる方法について次に示します。

キャンバス上で連結線を選択します。
連結線の始点と終点の中間に折り曲げられる個所（ベンドポイント）が表示されます。

ベンドポイントに選択ツールのポインタを合わせます。
十字の矢印（[図データ]）が表示されます。

矢印を任意の位置にドラッグ＆ドロップします。
連結線がベンドポイントから折れ曲がります。
ベンドポイントで折り曲げた連結線では，次の個所もベンドポイントとして利用できます。

連結線の始点とベンドポイントの中間

ベンドポイントと連結線の終点の中間

ベンドポイントとベンドポイントの中間

(5)　アクティビティの連結条件

アクティビティと利用する連結の種類によって，アクティビティを連結元または連結先として利用できるかどうかが異なります。各アクティビティの連結元または連結先としての利用可否について，次の表に示します。

表6-2　連結元または連結先として利用できるアクティビティ

アクティビティ | コネクション | フォルトコネクション | リンクコネクション
連結元 | 連結先 | 連結元 | 連結先 | 連結元 | 連結先
開始 | ○ | － | － | － | － | －
受付 | ○ | ○ | － | ○ | ○ | ○
応答 | ○ | ○ | － | ○ | ○ | ○
サービス呼出 | ○ | ○ | ○ | ○ | ○ | ○
Java呼出 | ○ | ○ | ○ | ○ | ○ | ○
データ変換 | ○ | ○ | － | ○ | ○ | ○
代入 | ○ | ○ | － | ○ | ○ | ○
無操作 | ○ | ○ | － | ○ | ○ | ○
フォルト送出 | － | ○ | － | ○ | ○ | ○
待機 | ○ | ○ | － | ○ | ○ | ○
検証 | ○ | ○ | － | ○ | ○ | ○
スコープ | ○ | ○ | ○ | ○ | ○ | ○
繰り返し | ○ | ○ | － | ○ | ○ | ○
分岐（開始） | ○ | ○ | － | ○ | ○ | ○
分岐（終了） | ○ | ○ | － | － | － | －
並列処理（開始） | ○ | ○ | － | ○ | ○ | ○
並列処理（終了） | ○ | ○ | － | － | － | －
終了 | － | ○ | － | － | － | －

（凡例）

○：連結元または連結先としてアクティビティを利用できます。

－：連結元または連結先としてアクティビティを利用できません。

また，アクティビティをコネクションで連結するとき，あるアクティビティへの遷移元となるアクティビティを遷移元アクティビティ，あるアクティビティからの遷移先となるアクティビティを遷移先アクティビティといいます。

コネクション（フォルトコネクションおよびリンクコネクションは除く）で連結できる遷移元アクティビティおよび遷移先アクティビティの数は，アクティビティごとに異なります。

アクティビティごとの連結できる遷移元・遷移先アクティビティの数を次の表に示します。

表6-3　連結できる遷移元・遷移先アクティビティの数

アクティビティ | 連結できる遷移元アクティビティの数 | 連結できる遷移先アクティビティの数
開始 | 0 | 1
受付 | 1 | 1
応答 | 1 | 1
サービス呼出 | 1 | 1
Java呼出 | 1 | 1
データ変換 | 1 | 1
代入 | 1 | 1
無操作 | 1 | 1
フォルト送出 | 1 | 0
待機 | 1 | 1
検証 | 1 | 1
スコープ | 1 | 1
繰り返し | 1 | 1
分岐（開始） | 1 | 1以上
分岐（終了） | 1以上 | 1
並列処理（開始） | 1 | 1以上
並列処理（終了） | 1以上 | 1
終了 | 1 | 0

注意

ビジネスプロセスで最初に実行できる基本アクティビティは，インスタンスを生成する受付アクティビティだけです。

(6)　コネクション使用時の注意事項

リンクコネクションでリンク先の遷移条件が「あり」に設定した場合，遷移条件を設定してください。

リンクコネクションは，循環しないように設定してください。

リンク名はビジネスプロセス内で一意になるよう設定してください。

リンクコネクションは，フォルト処理外からフォルト処理内へ張らないでください。

コネクションで連結したアクティビティ同士を近づけると，連結線の矢印の向きが設定と逆に見える場合があります。連結したアクティビティ同士は，ある程度の距離をとって配置してください。

6.4.3　フォルト処理を定義する

アクティビティでフォルトが発生したときに何らかの処理を実行する場合，フォルト処理用のアクティビティを配置してフォルト処理を実行します。

フォルト処理は，フォルトが発生するアクティビティと，フォルト処理を行うアクティビティを連結して定義します。連結にはフォルトコネクションを利用します。

＜この項の構成＞

(1)　フォルト処理の定義手順

(2)　一括してプロセスのフォルト処理を実行する場合の定義

(3)　ビジネスプロセスのフォルト処理の定義で使用する電文フォーマット

(1)　フォルト処理の定義手順

フォルト処理の定義手順を次に示します。

フォルトが発生するアクティビティとフォルト処理を行うアクティビティをキャンバスに配置し，詳細を定義します。
フォルト処理を行うアクティビティは複数定義できます。
アクティビティの配置方法については，「6.4.1　アクティビティを配置する」を参照してください。各アクティビティの定義方法の詳細については，「6.6　アクティビティの定義」を参照してください。

フォルトコネクションを利用してフォルトが発生するアクティビティとフォルト処理を行うアクティビティを連結します。
アクティビティの連結方法については，「6.4.2(2) 連結の設定方法」を参照してください。また，フォルトコネクションを利用できるアクティビティについては，「6.4.2(5) アクティビティの連結条件」を参照してください。

連結線をダブルクリックします。
［フォルト処理の割当］ダイアログが表示されます。
［フォルト処理の割当］ダイアログの入力・表示内容の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.6　フォルト処理の割当ダイアログ」を参照してください。なお，フォルト処理に割り当てられる変数はメッセージ型（XML）だけです。メッセージ型（non-XMLおよびany）は割り当てられません。

フォルト処理の条件を定義します。
フォルトの対象となる変数と，フォルトが発生した場合に処理する連結先のアクティビティを，それぞれ［割当変数］および［遷移先］ドロップダウンリストで指定します。
定義していないフォルトが発生した場合のフォルト処理を設定する場合，［割当変数］ドロップダウンリストで「catch-all」を選択します。なお，フォルトの発生するアクティビティがJava呼出アクティビティの場合，定義できるのは「catch-all」のフォルト処理だけです。
サービスアダプタからサービス部品（Webサービス）を呼び出したときに発生したエラーの例外を，サービスアダプタでフォルト電文に変換する場合，変数の定義で設定した定義ファイルを［割当変数］ドロップダウンリストで選択します。定義ファイルの設定方法については，「6.5.1(6)(a)　新規に変数を定義する場合」を参照してください。

［OK］ボタンをクリックします。

次の図に示すように，フォルトが発生した場合，フォルト処理を実行したあとに，フォルトが発生したアクティビティの次のアクティビティに処理が移ります。

図6-2　フォルト処理を実行したあとの処理の流れ

(2)　一括してプロセスのフォルト処理を実行する場合の定義

プロセス内にフォルトが返るおそれのあるアクティビティが複数あった場合，アクティビティごとにフォルト処理を定義するのではなく，一括してプロセスのフォルト処理を実行できます。その場合，次の図に示すようにスコープアクティビティを使って，プロセス内の処理を一つのまとまりにして，フォルト処理を定義します。

図6-3　スコープアクティビティを使って定義したフォルト処理

(3)　ビジネスプロセスのフォルト処理の定義で使用する電文フォーマット

ビジネスプロセスのフォルト処理の定義で使用する電文フォーマットについて説明します。

(a)　複数のフォルト名に対応する電文フォーマット

複数のユーザ定義例外をthrowするJavaプログラムから，SOAPアプリケーション開発支援機能（Java2WSDLコマンド）を使用してDocumentスタイルのWSDLを生成し，これを入力としてアダプタを定義すると，アダプタ定義画面の［フォルト電文］に表示される複数のフォルト名に対応する電文フォーマットは，同一のものとなります。この場合，電文フォーマットは，次の例に示すような複数のルート要素を含む形式になっています。

複数のフォルト名に対応する電文フォーマット（ルートスキーマ）の例

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://service"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://service"
 xmlns:tns2="http://data.service"
 xmlns:tns3="http://fault.service">
 <xsd:import namespace="http://data.service"
             schemaLocation="cscformat2.xsd"/>
 <xsd:import namespace="http://fault.service"
             schemaLocation="cscformat3.xsd"/>
 <xsd:element name="order">
   <xsd:complexType>
     <xsd:sequence>
       <xsd:element name="in0" type="tns2:OrderData"/>
     </xsd:sequence>
   </xsd:complexType>
 </xsd:element>
 <xsd:element name="orderResponse">
   <xsd:complexType>
     <xsd:sequence>
       <xsd:element name="orderReturn" type="tns2:OrderResult"/>
     </xsd:sequence>
   </xsd:complexType>
 </xsd:element>
 <xsd:element name="StockShortageFault"
             type="tns3:StockShortageFault"/>
 <xsd:element name="InvalidCustomerFault"
              type="tns:InvalidCustomerFault"/>
 <xsd:complexType name="InvalidCustomerFault">
   <xsd:sequence>
     <xsd:element name="CustomerName" type="xsd:string"/>
   </xsd:sequence>
 </xsd:complexType>
</xsd:schema>

上記の例では，「StockShortageFault」と「InvalidCustomerFault」という二つのフォルトに対応したフォルト電文が，「cscformat1.xsd」という一つの電文フォーマットで扱われています。

SOAPアプリケーション開発支援機能（Java2WSDLコマンド）を使用してrpcスタイルのWSDLを生成し，フォルトを扱えるように，「4.3.2　サービス部品電文を作成する（Webサービスの場合）」の注意事項の手順で修正したWSDLを基にアダプタを定義した場合も，同様の形式となります。

発生するフォルトに応じて処理を切り分けるために，この電文フォーマットをフォルトごとに別々の変数として定義し，［フォルト処理の割当］ダイアログで二つのcatchの割当変数として定義した場合，二つのcatchに割り当てられている変数のフォーマットは同一になってしまいます。そのため，どちらのフォルトが発生しても先に定義されているcatchに適合してしまい，要因に応じたフォルト処理が呼び出されません。

フォルト電文がこのようなフォーマットになっている場合は，次に示す方法でビジネスプロセスを定義して対処してください。

(b)　定義方法

フォルトごとに変数を定義しないで，電文フォーマットが同一のフォルトに対して共通となる変数を一つ定義します。フォルト処理の遷移先も一つにし，［フォルト処理の割当］ダイアログで，共通となる変数を割り当てます。ただし，想定外のフォルト処理のために，別途catchAllの遷移先を設定することもできます。

フォルト処理の遷移先には分岐アクティビティを配置し，ルートの要素名などで発生したフォルトを切り分ける分岐条件を記述します。

共通となる変数を割り当てた場合の概念図を次に示します。

図6-4　共通となる変数を割り当てた場合の概念図

ルート要素名を取得して一致判定（図中の「ルート要素判定」）を実施する分岐条件の記述例を次に示します。

csc:getVariableData('Fault変数1','local-name(/*)')="StockShortageFault"

「Fault変数1」の部分にフォルト共通変数の変数名，「StockShortageFault」の部分にルート要素名を指定します。

6.5　変数・相関セットの定義

＜この節の構成＞

6.5.1　変数の定義

6.5.2　相関セットの定義

6.5.1　変数の定義

ビジネスプロセスを定義する場合，変数には，文字，メッセージに含まれる数値や条件式の項となる数値，またはメッセージを入れることができます。変数の値は，データベースに記録できるため，実行履歴として管理できます。

＜この項の構成＞

(1)　変数の種類

(2)　変数の型

(3)　変数を割り当てられるアクティビティ

(4)　変数の表示とパスの取得

(5)　変数を使用する場合の注意事項

(6)　変数の定義方法

(1)　変数の種類

変数にはグローバル変数とローカル変数の2種類があります。

グローバル変数
グローバル変数は，一つのプロセスインスタンス内であればどこからでも参照できます。また，プロセスが完了しても変数の値はデータベースに記録されているため，ビジネスプロセス全体の進行状況を分析できます。変数名は，プロセス内で一意にします。

ローカル変数
ローカル変数は，宣言したスコープ内で参照できます。宣言しているスコープが終了すると，変数の値もデータベースから削除されるため，プロセス実行中の条件判定など一時的に値を参照するために利用できます。変数名は，スコープ内で一意にします。スコープが異なれば同じ変数名を宣言できます。ただし，変数を参照する場合に，参照個所で最も内側に近いスコープで宣言された変数を参照します。

(2)　変数の型

変数には次に示す型の値を定義できます。変数は，定義した型の値だけを保持できます。

boolean型：真偽（trueまたはfalse）

numeric型：数値（64ビット浮動小数）

string型：文字列

メッセージ型：変数に代入する値は，変数に関連づけられたフォーマット定義に従います。変数の種別によって，次のフォーマットを定義します。
XML：XMLスキーマでフォーマットを定義します。
non-XML：バイナリフォーマット定義ファイルでフォーマットを定義します。
any：フォーマットを定義しません。

(3)　変数を割り当てられるアクティビティ

次の表に示すアクティビティの項目について変数を割り当てられます。

表6-4　変数を割り当てられるアクティビティと項目

アクティビティ | 項目 | 割り当てられる内容 | 備考
受付アクティビティ | 要求電文 | サービスリクエスタから受け取る要求電文を参照するメッセージ型の変数 | 相関セットの指定にも利用されます。
応答アクティビティ | 応答電文 | サービスリクエスタへの応答電文またはフォルト電文を参照するメッセージ型の変数
サービス呼出アクティビティ（同期） | 要求電文 | 同期サービスを呼び出す際の要求電文を参照するメッセージ型の変数
応答電文 | 呼び出した同期サービスから受け取る応答電文を参照するメッセージ型の変数
フォルト電文 | 呼び出した同期サービスでフォルトが発生した場合に受け取る応答電文を参照するメッセージ型の変数 | －
サービス呼出アクティビティ（非同期） | 要求電文 | 非同期サービスを呼び出す際の要求電文を参照するメッセージ型の変数 | 相関セットの指定にも利用されます。
Java呼出アクティビティ | 引数 | ユーザの作成したJavaクラスを呼び出す際の引数となる値を参照する変数 | －
戻り値 | 呼び出したJavaクラスからの戻り値を参照する変数 | －
データ変換アクティビティ | 変換元データ | データ変換アクティビティでデータ変換を行う際の変換元データを参照するメッセージ型の変数で，複数指定が可能 | －
変換先データ | データ変換アクティビティでデータ変換を行う際の変換先データを参照するメッセージ型の変数 | －
代入アクティビティ | コピー元 | 代入アクティビティでデータのコピーを行う際の，コピー元となるデータを参照する変数 | －
コピー先 | 代入アクティビティでデータのコピーを行う際の，コピー先となるデータを参照する変数 | －
フォルト送出アクティビティ | フォルト電文 | フォルト送出アクティビティでフォルトを送出する際に，フォルト電文を参照するメッセージ型の変数 | －
待機アクティビティ | 待機時間 | 待機時間の値を参照する変数 | －
検証アクティビティ | 検証する変数 | 検証する変数 | －
繰り返しアクティビティ | 繰り返し条件 | 繰り返しのループ変数や終端条件式の項となる値を参照する変数 | －
分岐アクティビティ | 分岐条件 | 分岐条件の式の項となる値を参照する変数 | －

（凡例）

－：該当しません。

(4)　変数の表示とパスの取得

変数・相関セット一覧ダイアログの［表示］ボタンをクリックすると，変数の表示ダイアログが表示されます。変数と一致したXMLスキーマをツリービューとして表示できます。ツリービューで表示された変数を選択すると，［選択パス］に選択した変数のパスがルート要素からの絶対パスで表示されます。

また，変数を選択して，右クリックし，［パスの取得］を選択すると，ルート要素からの絶対パスを取得できます。取得したパスは，任意の個所に貼り付けることができます。

注意

変数の表示ダイアログを操作する場合は，次の点に注意してください。

変数の表示ダイアログで表示されるXMLスキーマは編集できません。

ツリービューで選択できる変数は一つだけです。

変数の表示ダイアログで表示しようとしている変数のXMLスキーマで，要素が再帰になっている場合，2階層目以降の要素は表示されません。

XMLスキーマのsubstitutionGroup属性は無視されます。

(5)　変数を使用する場合の注意事項

(a)　スコープアクティビティを使用している場合の変数の使用

ビジネスプロセス内またはスコープ内のアクティビティで使用する変数を追加したり，編集したりできます。このとき，外側のスコープで宣言した変数は，内側のスコープから参照できますが，内側のスコープで宣言した変数はスコープ外からは参照できません。また，スコープが異なる場合は，同じ変数名を宣言できます。次に示す図の場合，スコープAやスコープBはプロセス（外側）の変数を参照できますが，プロセス（外側）からはスコープAやスコープBの変数は参照できません。

図6-5　スコープと変数の関係

(b)　フォルト処理を定義する場合の変数の使用

スコープアクティビティにフォルト処理を定義する場合，［フォルト処理の割当］ダイアログで割り当て変数として使用する変数を選択します。選択できる変数は，フォルトの対象となるスコープ（スコープアクティビティを含む），またはその外側のスコープで定義された変数です。ただし，［フォルト処理の割当］ダイアログで選択した変数と同じ名前の変数が，フォルトの対象のスコープでも定義されている場合，［フォルト処理の割当］ダイアログで選択した変数ではなく，フォルトの対象となるスコープで定義された変数が実行時に使用され，意図しない動作をする場合があります。したがって，スコープアクティビティにフォルト処理を定義する場合，［フォルト処理の割当］ダイアログで選択した変数と同じ名前の変数が，フォルトの対象となるスコープに定義されていないことを確認してください。

(c)　変数の定義で設定する電文フォーマット

電文フォーマットのファイル名

変数の定義時には，同じファイル名で異なるXMLスキーマの電文フォーマットである定義ファイルを複数の変数で設定できます。しかし，実行時には，どれか一つのXMLスキーマが使用されるため，意図しない動作をする場合があります。したがって，変数の定義で設定する電文フォーマットのファイル名とXMLスキーマは，必ず1対1になるように設定してください。

外部のXMLスキーマの参照を含む電文フォーマットの設定

外部のXMLスキーマを参照している電文フォーマットを設定する場合，必ずルートスキーマに当たるファイルを設定してください。ルートスキーマから参照される外部のXMLスキーマファイルは，自動的に取り込まれます。

電文フォーマットの形式

変数に使用する電文フォーマットは「2.6.5　XMLスキーマの適用範囲」に示す条件を満たしている必要があります。条件の詳細については，「2.6.5　XMLスキーマの適用範囲」を参照してください。

(d)　変数の定義情報の変更

変数の定義情報は，変数の使用個所によって，変更または削除できない場合があります。変数の定義情報を変更または削除できないケースを次の表に示します。なお，次の表に記載されていない個所で使用されている変数については，いつでも変数の定義情報を変更または削除できます。

表6-5　変数の定義情報を変更または削除できないケース

変数の使用個所
条件
削除の可否
変更の可否

変数名
型
電文フォーマット
部分

受付アクティビティ
応答アクティビティ

バージョンアップしたビジネスプロセスである。

バージョンアップ前に定義された受付・応答アクティビティである。

×
×
×
×※1
○

データ変換アクティビティ
データ変換定義ファイルが定義済みである。
×
×
×
○※1※2
○

相関セット

バージョンアップしたビジネスプロセスである。

バージョンアップ前のビジネスプロセスの受付・応答アクティビティで使用されている相関セットである。

×
×
×
×※1
○※3

（凡例）

○：変更または削除できます。

×：変更または削除できません。

注※1

電文フォーマットの変更とは，ダイアログで新しい電文フォーマットを選択することです。もし内容が同じ電文フォーマットを選択しても，変更として扱われます。

注※2

データ変換アクティビティで使用している変数の電文フォーマットを変更した場合は，データ変換を定義し直してください。電文フォーマットを変更した場合の手順については，「7.3.2　電文フォーマットを変更した場合の定義手順」を参照してください。

注※3

使用している部分が変更されていなければ，変更できます。部分の変更は，部分名，指定式および型の変更です。順番の変更は含みません。

注意

変数の定義情報を変更すると，その変数を割り当てた個所に，再度割り当てが必要になる場合があります。

例えば，あるアクティビティに変数Xを割り当て，その後，その変数Xの名前を変数Yに変更した場合，次のどちらかを行ってください。

アクティビティへ再度変数を割り当てる。

再度変数Xを定義する。

(e)　変数の定義情報の初期化

ビジネスプロセスを実行するときに，変数には，文字，メッセージに含まれる数値や条件式の項となる数値，またはメッセージ（XML電文）を設定する必要があります。

サービスリクエスタからの要求を受け付けたときや，サービス呼出アクティビティでサービスからの応答を受け取ったときは，変数に値が入っていますが，それ以外はデータ変換アクティビティや代入アクティビティなどを使用して変数に値を設定（初期化）する必要があります。

変数の初期化が不要な場合を次の図に示します。

図6-6　変数の初期化が不要な場合

変数A：

サービスリクエスタからの要求電文で変数が設定されているため，初期化は不要です。

変数B：

サービスからの応答電文で変数が設定されているため，初期化は不要です。

変数の初期化が必要な場合を次の図に示します。

図6-7　変数の初期化が必要な場合

変数A：

サービスリクエスタからの要求電文で変数が設定されているため，初期化は不要です。

変数B：

変数の初期化が必要になります。データ変換Aでは変数Aの情報を基に，変数Bに値を設定します。

変数C：

サービスからの応答電文で変数が設定されているため，初期化は不要です。

変数D：

変数の初期化が必要になります。データ変換Bでは変数Cの情報を基に，変数Dに値を設定します。

(6)　変数の定義方法

(a)　新規に変数を定義する場合

新規に変数を定義する手順を次に示します。なお，変数は，繰り返しアクティビティ内のキャンバスでは定義できません。

次のどちらかの方法で，変数・相関セット一覧ダイアログを表示します。

ビジネスプロセス定義画面のキャンバス上の［変数・相関セット］アイコンをダブルクリックします。

次に示すアクティビティダイアログの［編集］ボタンをクリックします。
・受付アクティビティ
・応答アクティビティ
・サービス呼出アクティビティ
・Java呼出アクティビティ
・データ変換アクティビティ
・代入アクティビティ
・フォルト送出アクティビティ
・検証アクティビティ

一覧から「変数一覧」を選択します。

変数名を入力します。

変数の種別をドロップダウンリストから選択します。

必要に応じて，次のどちらかの操作をします。

変数の種別がメッセージ型の場合で，呼び出すサービス部品またはユーザ定義受付の要求電文，応答電文，またはフォルト電文に設定されている電文フォーマットを，変数に設定する場合

［取込］ボタンをクリックし，［電文フォーマットの取込］ダイアログを表示します。［電文フォーマットの取込］ダイアログで，使用する電文フォーマットを指定します。

［電文フォーマットの取込］ダイアログの入力・表示項目の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.5　電文フォーマットの取込ダイアログ」を参照してください。

［電文フォーマットの取込］ダイアログでの操作の終了後，手順6.に進みます。

変数の種別がメッセージ型の場合で，上記以外の場合

［...］ボタンをクリックして，変数を使用する電文フォーマットの定義ファイルを設定します。

サービスアダプタからサービス部品（Webサービス）を呼び出したときに発生したエラーの例外を，サービスアダプタでフォルト電文に変換する場合は，［...］ボタンをクリックして，<Cosminexusインストールディレクトリ>¥CSC¥system¥msg¥cscfault.xsdを選択してください。

変数の種別がメッセージ型の場合，［部分指定］チェックボックスにチェックします。

［行追加］ボタンをクリックし，部分名，指定式，および型を指定します。

［追加］ボタンをクリックします。
変数一覧に，追加した変数が表示されます。

［OK］ボタンをクリックします。

(b)　電文フォーマットの定義ファイルを変更した場合

変数の定義で設定した電文フォーマットの定義ファイルを変更した場合，変更後の定義ファイルの内容は，次の手順で反映できます。

変数・相関セット一覧ダイアログを表示します。
変数・相関セット一覧ダイアログを表示する方法については，「6.5.1(6)(a) 新規に変数を定義する場合」の手順1.を参照してください。

次のどちらかの操作をします。

変数の種別がメッセージ型の場合で，呼び出すサービス部品またはユーザ定義受付の要求電文，応答電文，またはフォルト電文に設定されている電文フォーマットを，変数に設定する場合

［取込］ボタンをクリックし，［電文フォーマットの取込］ダイアログを表示します。［電文フォーマットの取込］ダイアログで，使用する電文フォーマットを指定します。

［電文フォーマットの取込］ダイアログの入力・表示項目の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.5　電文フォーマットの取込ダイアログ」を参照してください。

［電文フォーマットの取込］ダイアログでの操作の終了後，手順3.に進みます。

変数の種別がメッセージ型の場合で，上記以外の場合

［...］ボタンをクリックして，変数を使用する電文フォーマットの定義ファイルを設定します。

［更新］ボタンをクリックします。

6.5.2　相関セットの定義

相関セットは，サービスリクエスタから送信された要求電文を一意に識別するために利用する文字列です。

＜この項の構成＞

(1)　相関セットによるプロセスインスタンスの識別

(2)　相関セットを割り当てられるアクティビティ

(3)　相関セットを使用する場合の注意事項

(4)　相関セットの定義方法

(5)　相関セットを利用した定義の例

(1)　相関セットによるプロセスインスタンスの識別

ビジネスプロセスは，受付アクティビティダイアログの［インスタンス生成］に［yes］を指定した受付アクティビティへの要求ごとに，プロセスインスタンスを生成します。

サービスリクエスタから要求電文を受け取れるプロセスインスタンスがHCSCサーバ上に複数ある場合，HCSCサーバは要求電文に含まれる相関セットの値を利用してプロセスインスタンスを特定します。

例えば，あるビジネスプロセスに，サービスリクエスタからの要求を受け付ける受付アクティビティが二つ定義されているとします。一つ目の受付アクティビティへ要求を行い，二つ目の受付アクティビティでビジネスプロセスが待ち受け状態になっている場合，一つ目の受付アクティビティへの要求電文に含まれる相関セットの値と同じ値を二つ目の受付アクティビティへの要求電文に含めます。相関セットに同じ値を指定することで，二つの要求が同じプロセスインスタンスへのリクエストであると特定できます。これによって，二つ目の受付アクティビティ以降の処理を継続できます。

相関セットによるプロセスインスタンスの識別の例を次の図に示します。

図6-8　相関セットによるプロセスインスタンスの識別の例

複数の受付アクティビティがあるビジネスプロセスを実現するには，要求電文に含まれる値のうち，どの値を相関セットに使用するかをビジネスプロセスに定義する必要があります。ビジネスプロセスおよびサービスリクエスタを設計するときに，プロセスインスタンスを一意に特定するキーとなる値をサービスリクエスタからの要求電文に設定してください。

相関セットは，要求電文に含まれる一つの部分または複数の部分の連結によって構成することができます。

ビジネスプロセスで相関セットを使用すると，相関セットの値をキーとして，プロセスインスタンスの実行履歴を検索できます。実行履歴を検索することで，特定のリクエストの実行状態を確認できます。プロセスインスタンスの実行履歴の詳細については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「6.1　プロセスインスタンスの実行履歴の管理」を参照してください。

(2)　相関セットを割り当てられるアクティビティ

ビジネスプロセスでは，受付アクティビティ，応答アクティビティおよびサービス呼出アクティビティに相関セットを設定できます。また，一つの電文には複数の相関セットを設定できます。

アクティビティごとに，相関セットの設定の要否，および相関セットの役割が異なります。

(a)　受付アクティビティ，応答アクティビティの場合

受付アクティビティおよび応答アクティビティでは，インスタンスの生成の設定，割り当てた相関セットを初期化するかどうかの設定によって，相関セットの指定の要否および相関セットの内容が異なります。

インスタンスの生成の設定は，受付アクティビティダイアログで設定できます。また，相関セットを初期化するかどうかの設定は，割当相関セット群ダイアログで設定できます。

受付アクティビティダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.7　受付アクティビティダイアログ」を参照してください。割当相関セット群ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.3　割当相関セット群ダイアログ」を参照してください。

表6-6　相関セットの設定の要否と内容（受付・応答）

アクティビティ | インスタンスの生成 | 初期化の設定 | 設定の要否 | 最大設定数 | 設定した相関セットの内容
受付 | yes | yes | 任意 | 1 | プロセスインスタンスを生成するとき，プロセスインスタンスを識別するための相関セットが，変数として定義されている受信メッセージから生成されます。
no | 設定不可 | － | －
no | yes | 任意 | 1 | 生成済みのプロセスインスタンスを検索したあと，検索されたプロセスインスタンスに対する新たな相関セットが，変数として定義されている受信メッセージから生成されます。
no | 必須 | 1 | 指定した相関セットは，生成済みのプロセスインスタンスを検索するために，変数として定義されている受信メッセージ内の相関セットとして利用されます。
応答 | － | yes | 任意 | 1 | サービスリクエスタに応答を返すとき，変数として定義されている応答メッセージから新たな相関セットが生成されます。
－ | no | 任意 | 1 | サービスリクエスタに応答を返すとき，変数として定義されている応答メッセージ内の相関セットの値と，プロセスインスタンスの相関セットの値とが一致しているかどうかがチェックされます。

（凡例）

－：該当しません。

(b)　サービス呼出アクティビティの場合

サービス呼出アクティビティでは，割り当てた相関セットのパターンの設定，および相関セットを初期化するかどうかの設定によって，相関セットの指定の要否および相関セットの内容が異なります。

割り当てた相関セットのパターンの設定，および相関セットを初期化するかどうかの設定は，割当相関セット群ダイアログで設定できます。

割当相関セット群ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.3　割当相関セット群ダイアログ」を参照してください。

表6-7　相関セットを割り当てられるアクティビティ（サービス呼出）

アクティビティ
パターンの設定
初期化の設定
設定の要否
最大設定数
設定した相関セットの内容

サービス呼出
out
yes
任意
1
サービス部品にメッセージを送信するとき，変数として定義されている送信メッセージから新たな相関セットが生成されます。

no
任意
1
サービス部品にメッセージを送信するとき，変数として定義されている送信メッセージ内の相関セットの値と，プロセスインスタンスの相関セットの値とが一致しているかどうかがチェックされます。

in
yes
任意
1
サービス部品から応答を受けたとき，変数として定義されている応答メッセージから新たな相関セットが生成されます。

no
任意
1
サービス部品から応答を受けたとき，変数として定義されている応答メッセージ内の相関セットの値と，プロセスインスタンスの相関セットの値とが一致しているかどうかがチェックされます。

out-in
yes
任意
1

送信時

サービス部品にメッセージを送信するとき，変数として定義されている送信メッセージから新たな相関セットが生成されます。

受信時

サービス部品から応答を受けたとき，変数として定義されている応答メッセージ内の相関セットの値と，プロセスインスタンスの相関セットの値とが一致しているかどうかがチェックされます。

no
任意
1

送信時

サービス部品にメッセージを送信するとき，変数として定義されている送信メッセージ内の相関セットの値と，プロセスインスタンスの相関セットの値とが一致しているかどうかがチェックされます。

受信時

サービス部品から応答を受けたとき，変数として定義されている応答メッセージ内の相関セットの値と，プロセスインスタンスの相関セットの値とが一致しているかどうかがチェックされます。

(3)　相関セットを使用する場合の注意事項

(a)　スコープアクティビティを使用している場合の相関セットの使用

ビジネスプロセス内またはスコープ内のアクティビティで使用する相関セットを，変数と同様に追加したり，編集したりできます。詳細は，「6.5.1(5)(a) スコープアクティビティを使用している場合の変数の使用」を参照してください。

(b)　相関セットの定義情報の変更

次のすべての条件に該当する場合，相関セットの定義情報の変更や削除はできません。

バージョンアップしたビジネスプロセスの受付・応答アクティビティに設定されている相関セットである。

相関セットを使用している受付・応答アクティビティが，バージョンアップ前に定義されたものである。

また，相関セットの定義で使用されている変数の定義情報を変更できない場合もあります。詳細は，「6.5.1(5)(d) 変数の定義情報の変更」を参照してください。

注意

相関セットの定義情報を変更すると，その相関セットを割り当てた個所に，再度割り当てが必要になる場合があります。

例えば，あるアクティビティに相関セットAを割り当て，その後，その相関セットAの名前を相関セットBに変更した場合，次のどちらかを行ってください。

アクティビティへ再度相関セットを割り当てる。

再度相関セットAを定義する。

(c)　相関セットの有効範囲

ビジネスプロセスのグローバル変数で相関セットが宣言されている場合，該当するプロセスインスタンスの処理が完了するまでの間が有効範囲となります。

また，スコープ内のアクティビティで使用する相関セットを宣言している場合，該当するスコープ内の処理が完了するまでの間が有効範囲となります。

処理が完了した時点で相関セットは無効となります。

(4)　相関セットの定義方法

(a)　相関セットの新規定義

相関セットを定義するには，あらかじめ変数を定義し，定義した変数の中で相関セットとして利用する部分の部分指定を定義しておきます。新規に相関セットを定義する手順を次に示します。なお，相関セットは，繰り返しアクティビティ内のキャンバスでは定義できません。

次のどちらかの方法で，変数・相関セット一覧ダイアログを表示します。

ビジネスプロセス定義画面のキャンバス上の［変数・相関セット］アイコンをクリックします。

次に示すアクティビティダイアログの［編集］ボタンをクリックします。
・受付アクティビティ
・応答アクティビティ
・サービス呼出アクティビティ

一覧から「相関セット一覧」を選択します。

相関セット名を入力します。

［行追加］ボタンをクリックし，［取得部］に利用変数および部分名を追加し，相関セットとして使用する部分を指定します。
相関セットに指定できるのは，メッセージ型の変数（XML形式）で，かつメッセージ型以外の型を指定した部分名です。
利用するメッセージ型の変数が複数ある場合は，利用変数および部分名をドロップダウンリストから選択します。
なお，複数の部分を連結して連結後の文字列を相関セット値として設定する場合は，さらに［行追加］ボタンをクリックして利用変数および部分名を追加します。

［追加］ボタンをクリックします。
相関セット一覧に，追加した相関セットが表示されます。

［OK］ボタンをクリックします。

(b)　アクティビティからの相関セットの設定

「表6-7 相関セットを割り当てられるアクティビティ（サービス呼出）」に示すアクティビティから，相関セットを設定する手順を次に示します。

各アクティビティのダイアログの［設定］ボタンをクリックします。
割当相関セット群ダイアログが表示されます。

アクティビティに割り当てる相関セットを［相関セット群］から選択します。

［相関セット群］にない場合は，［編集］ボタンをクリックします。

変数・相関セット一覧ダイアログが表示されるので，相関セットを追加します。

割当相関セット群ダイアログで初期化するかどうかを指定します。

(5)　相関セットを利用した定義の例

相関セットを利用するビジネスプロセスの定義について，例を用いて説明します。

次の図に示すように，申請とその結果を非同期で確認する申請結果確認のリクエストを受け付けるビジネスプロセスを例として利用します。

図6-9　定義するビジネスプロセスの例

上記の図に示したビジネスプロセスを定義する場合の変数，相関セット，および受付アクティビティの定義内容を次に示します。

変数および相関セットの定義

次の表に示すように，利用する変数と相関セットを定義します。変数および相関セットは，［変数・相関セット一覧］ダイアログで定義します。［変数・相関セット一覧］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.1　変数・相関セット一覧ダイアログ」を参照してください。

表6-8　申請の要求電文に対応する変数の定義内容（例）

［変数・相関セット一覧］ダイアログ（変数情報の表示）での設定項目 | 設定する値
変数名 | 申請メッセージ
種別 | XML
電文フォーマット | 申請メッセージ.xsd
部分指定 | 部分名 | 申請ID
指定式 | /req1/id
型 | string

表6-9　申請結果確認の要求電文に対応する変数の定義内容（例）

［変数・相関セット一覧］ダイアログ（変数情報の表示）での設定項目 | 設定する値
変数名 | 申請確認メッセージ
種別 | XML
電文フォーマット | 申請確認メッセージ.xsd
部分指定 | 部分名 | 申請ID
指定式 | /req2/id
型 | string

表6-10　相関セットの定義内容（例）

［変数・相関セット一覧］ダイアログ（相関セット情報の表示）での設定項目 | 設定する値
相関セット名 | 申請相関ID
取得部 | 利用変数 | 申請メッセージ※
部分名 | 申請ID

注※

利用変数には「申請メッセージ」と「申請確認メッセージ」のどちらでも指定できます。

受付アクティビティの定義

次の表に示すように，受付アクティビティを定義します。受付アクティビティは受付アクティビティダイアログで定義します。受付アクティビティダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.7　受付アクティビティダイアログ」を参照してください。

表6-11　申請のリクエストを受け付ける受付アクティビティの定義内容（例）

［受付アクティビティ］ダイアログでの設定項目 | 設定する値
アクティビティ名 | 申請受付
オペレーション名 | request
割当変数 | 申請メッセージ
割当相関セット群 | 相関セット名 | 申請相関ID
初期化 | yes
通信モデル | 非同期
インスタンス生成 | yes

表6-12　申請結果確認のリクエストを受け付ける受付アクティビティの定義内容（例）

［受付アクティビティ］ダイアログでの設定項目 | 設定する値
アクティビティ名 | 確認受付
オペレーション名 | confirm
割当変数 | 申請確認メッセージ
割当相関セット群 | 相関セット名 | 申請相関ID
初期化 | no
通信モデル | 同期
インスタンス生成 | no

6.6　アクティビティの定義

アクティビティは，キャンバス上に配置・連結するとともに，詳細内容の定義をする必要があります。

定義できるアクティビティと定義内容の概要を次の表に示します。

表6-13　定義できるアクティビティ

アクティビティ
定義内容

開始
ビジネスプロセスの開始を表します。

受付※
サービスリクエスタからの要求電文を受け付けるためのインターフェースを定義します。

応答※
サービスリクエスタから同期受信した要求電文に対する応答またはフォルトを返すためのインターフェースを定義します。

サービス呼出※
定義済みのHCSCコンポーネントへの要求電文の送信を定義します。

Java呼出
専用インターフェースを実装したJavaクラスの呼び出しを定義します。

データ変換
データ変換処理を定義します。

代入
次の処理を実行するための定義をします。

ある変数（基本型，メッセージ型）をほかの変数に代入する

ある変数の一部をほかの変数に代入する

値（数値，文字列，真偽値）を作成し，変数に代入する

無操作
実行しても何の動作も行わないことを定義します。

フォルト送出
上位のスコープアクティビティへのフォルトの通知を定義します。

待機※
処理フローを一定の間隔または期限まで待機させる処理を定義します。

検証
ビジネスプロセス内で送受信される電文の妥当性を検証します。

スコープ
一つまたは複数のアクティビティから構成される処理フローを，ひとつの単位（スコープ）として定義します。

繰り返し
一つまたは複数のアクティビティを，条件が満たされるまで繰り返し処理するための定義をします。

分岐（開始）
条件式の結果によってビジネスプロセスの処理の分岐を定義します。分岐の開始個所と終了個所で定義が必要です。

分岐（終了）

並列処理（開始）
処理フローを複数のシーケンスに分けて同時に実行する（処理フローの並列化）処理を定義します。
並列処理の開始個所と終了個所で定義が必要です。

並列処理（終了）

終了
ビジネスプロセスの終了を表します。

注※　

ビジネスプロセスにステータスの永続化が設定されている場合，受付，応答，サービス呼出，待機アクティビティの処理が，アクティビティの状態を確定するタイミング（トランザクションの開始とコミットのタイミング）になります。

トランザクションの開始とコミットのタイミングを次に示します。

表6-14　トランザクションの開始とコミットのタイミング

処理
タイミング

トランザクションの開始
受付アクティビティでメッセージを受信したとき。

通信モデルが同期の場合のサービス呼出アクティビティで，メッセージを送信する前のトランザクションをコミットした直後。
また，ビジネスプロセスの状態の互換性（HCSCサーバセットアップ定義のbp-status-compatible）にOFFを指定した場合は，通信モデルの同期，非同期に関係なく，サービス呼出アクティビティでメッセージを送信する前のトランザクションをコミットした直後。

ビジネスプロセスの状態の互換性（HCSCサーバセットアップ定義のbp-status-compatible）にOFFを指定した場合，サービス呼出アクティビティの処理が完了したときにトランザクションをコミットした直後。

応答アクティビティの処理のあとに存在するアクティビティを実行する直前。

プロセス再実行ユーティリティによって，プロセスを再実行するとき。

待機アクティビティに指定された間隔または期限でタイマが解除された直後。

待機アクティビティの処理が完了したときのトランザクションをコミットした直後。

トランザクションのコミット
応答アクティビティでメッセージを応答する直前。

通信モデルが同期の場合のサービス呼出アクティビティでメッセージを送信する直前。
また，ビジネスプロセスの状態の互換性（HCSCサーバセットアップ定義のbp-status-compatible）にOFFを指定した場合は，通信モデルの同期，非同期に関係なく，サービス呼出アクティビティでメッセージを送信する直前。

ビジネスプロセスの状態の互換性（HCSCサーバセットアップ定義のbp-status-compatible）にOFFを指定した場合，サービス呼出アクティビティの処理が完了したとき。

すべてのアクティビティを実行し，ビジネスプロセスの処理を終了するとき。

待機アクティビティに指定された間隔または期限のJ2EEサーバのTimerServiceにタイマを登録する直前。

待機アクティビティの処理が完了したとき。

各アクティビティの定義の詳細について，以降の項で説明します。

＜この節の構成＞

6.6.1　開始アクティビティ

6.6.2　受付アクティビティ

6.6.3　応答アクティビティ

6.6.4　サービス呼出アクティビティ

6.6.5　Java呼出アクティビティ

6.6.6　データ変換アクティビティ

6.6.7　代入アクティビティ

6.6.8　無操作アクティビティ

6.6.9　フォルト送出アクティビティ

6.6.10　待機アクティビティ

6.6.11　検証アクティビティ

6.6.12　スコープアクティビティ

6.6.13　繰り返しアクティビティ

6.6.14　分岐アクティビティ

6.6.15　並列処理アクティビティ

6.6.16　終了アクティビティ

6.6.17　順次処理アクティビティ

6.6.18　XPathを指定する

6.6.1　開始アクティビティ

ビジネスプロセスの開始を表すアクティビティです。キャンバス上に一つだけ配置されます。このアクティビティは削除できません。

なお，開始アクティビティには，定義する内容はありません。

6.6.2　受付アクティビティ

ビジネスプロセスがサービスリクエスタからの要求電文を受け付けるためのインターフェースを定義するアクティビティです。一つのビジネスプロセス内にサービスリクエスタに公開するオペレーションが複数ある場合，そのオペレーションの数だけ定義が必要です。

受付アクティビティは，［受付アクティビティ］ダイアログで詳細を定義します。

＜この項の構成＞

(1)　定義手順

(2)　定義時の注意事項

(1)　定義手順

定義の手順を次に示します。

受付アクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

次のどちらかの方法で［受付アクティビティ］ダイアログを表示させます。

キャンバスの受付アクティビティをダブルクリックする

キャンバスの受付アクティビティを選択して右クリックし，［設定］を選択する

［受付アクティビティ］ダイアログが表示されます。

［受付アクティビティ］ダイアログに必要な情報を入力します。
［受付アクティビティ］ダイアログの表示・入力内容の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.7　受付アクティビティダイアログ」を参照してください。

［ボディ割当変数］に設定する変数の内容を編集する場合
［編集］ボタンをクリックします。表示される［変数・相関セット一覧］ダイアログで，変数の内容を編集できます。この項目には，メッセージ型（XML，non-XMLまたはany）の変数を設定できます。［変数・相関セット一覧］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.1　変数・相関セット一覧ダイアログ」を参照してください。
なお，該当するオペレーションを持つユーザ定義受付を定義している場合，ユーザ定義受付の電文フォーマットを変数に設定できます。設定は，［電文フォーマットの取込］ダイアログで行います。［電文フォーマットの取込］ダイアログは，［変数・相関セット一覧］ダイアログの［取込］ボタンをクリックすると表示されます。
［電文フォーマットの取込］ダイアログを表示する際，［受付アクティビティ］ダイアログでオペレーション名を設定しておくと，ユーザ定義受付内にある該当するオペレーションの電文フォーマットが選択された状態になります。
［電文フォーマットの取込］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.5　電文フォーマットの取込ダイアログ」を参照してください。

［ヘッダ割当変数］を設定する場合
［設定］ボタンをクリックします。表示される［ヘッダ割当変数］ダイアログでヘッダに割り当てる変数を設定します。この項目には，メッセージ型（XML）の変数を設定できます。メッセージ型（non-XMLまたはany）の変数は設定できません。［ヘッダ割当変数］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.2　ヘッダ割当変数ダイアログ」を参照してください。

［割当相関セット群］を設定する場合
［設定］ボタンをクリックします。表示される［割当相関セット群］ダイアログで割当相関セットを設定します。［割当相関セット群］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.3　割当相関セット群ダイアログ」を参照してください。

［OK］ボタンをクリックします。

(2)　定義時の注意事項

アクティビティ名はビジネスプロセス（スコープ内も含む）内で一意になるように指定してください。

アクティビティ名は64バイト以内にしてください。

ダイアログの入力フィールドに制御文字は指定しないでください。

必ずオペレーション名を設定してください。

同期の受付アクティビティの場合，そのオペレーションに対応する応答アクティビティを設定してください。

同期の受付アクティビティの場合，そのオペレーションに対応する応答アクティビティの間には，別の受付アクティビティを設定しないでください。

インスタンスを生成するすべての受付アクティビティは，使用する相関セットを同じになるように設定してください。

インスタンスを生成する受付アクティビティを一つ以上作成してください。

永続化しないビジネスプロセスの場合，非同期の受付アクティビティを設定しないでください。

6.6.3　応答アクティビティ

ビジネスプロセスがサービスリクエスタから同期受信した要求電文に対して，応答またはフォルトを返すためのインターフェースを定義するアクティビティです。対応する受付アクティビティの通信モデルに同期受付を定義した場合，必ず定義します。

応答アクティビティは，［応答アクティビティ］ダイアログで詳細を定義します。

＜この項の構成＞

(1)　定義手順

(2)　定義時の注意事項

(1)　定義手順

定義の手順を次に示します。

応答アクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

次のどちらかの方法で［応答アクティビティ］ダイアログを表示させます。

キャンバスの応答アクティビティをダブルクリックする

キャンバスの応答アクティビティを選択して右クリックし，［設定］を選択する

［応答アクティビティ］ダイアログが表示されます。

［応答アクティビティ］ダイアログに必要な情報を入力します。
［応答アクティビティ］ダイアログの表示・入力内容の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.8　応答アクティビティダイアログ」を参照してください。

［ボディ割当変数］に設定する変数の内容を編集する場合
［編集］ボタンをクリックします。表示される［変数・相関セット一覧］ダイアログで，変数の内容を編集できます。この項目には，メッセージ型（XML，non-XMLまたはany）の変数を設定できます。［変数・相関セット一覧］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.1　変数・相関セット一覧ダイアログ」を参照してください。
なお，該当するオペレーションを持つユーザ定義受付を定義している場合，ユーザ定義受付の電文フォーマットを変数に設定できます。設定は，［電文フォーマットの取込］ダイアログで行います。［電文フォーマットの取込］ダイアログは，［変数・相関セット一覧］ダイアログの［取込］ボタンをクリックすると表示されます。
［電文フォーマットの取込］ダイアログを表示する際，［応答アクティビティ］ダイアログでオペレーション名を設定しておくと，ユーザ定義受付内にある該当するオペレーションの電文フォーマットが選択された状態になります。
［電文フォーマットの取込］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.5　電文フォーマットの取込ダイアログ」を参照してください。

［ヘッダ割当変数］を設定する場合
［設定］ボタンをクリックします。表示される［ヘッダ割当変数］ダイアログでヘッダに割り当てる変数を設定します。この項目には，メッセージ型（XML）の変数を設定できます。メッセージ型（non-XMLまたはany）の変数は設定できません。［ヘッダ割当変数］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.2　ヘッダ割当変数ダイアログ」を参照してください。

［割当相関セット群］を設定する場合
［設定］ボタンをクリックします。表示される［割当相関セット群］ダイアログで割当相関セットを設定します。［割当相関セット群］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.3　割当相関セット群ダイアログ」を参照してください。

［OK］ボタンをクリックします。

(2)　定義時の注意事項

アクティビティ名はビジネスプロセス（スコープ内も含む）内で一意になるように指定してください。

アクティビティ名は64バイト以内にしてください。

ダイアログの入力フィールドに制御文字は指定しないでください。

必ずオペレーション名を設定してください。

フォルト名が設定されると，フォルトを返します。

必ず割当変数を指定してください。

同一のオペレーション名を持つ応答アクティビティで，同じ割当変数名を設定してください。

同一オペレーションの応答アクティビティのフォルト名に対応する割当変数を一つに設定してください。

同期の受付アクティビティを設定した場合，その受付アクティビティのオペレーションに対応する応答アクティビティを設定してください。

受付アクティビティとそのそのオペレーションに対応する応答アクティビティの間には，別の応答アクティビティを設定しないでください。

永続化しないビジネスプロセスの場合，応答アクティビティのあとに実行されるアクティビティを設定しないでください。

フォルト処理の割り当てに設定する割当変数には，メッセージ型（XML）の変数を設定してください。メッセージ型（non-XMLまたはany）の変数は設定できません。

6.6.4　サービス呼出アクティビティ

定義済みのHCSCコンポーネントへの要求電文の送信について定義するアクティビティです。

サービス呼出アクティビティは，［サービス呼出アクティビティ］ダイアログで詳細を定義します。

＜この項の構成＞

(1)　定義手順

(2)　定義時の注意事項

(1)　定義手順

定義の手順を次に示します。

サービス呼出アクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

次のどちらかの方法で［サービス呼出アクティビティ］ダイアログを表示させます。

キャンバスのサービス呼出アクティビティをダブルクリックする

キャンバスのサービス呼出アクティビティを選択して右クリックし，［設定］を選択する

［サービス呼出アクティビティ］ダイアログが表示されます。

［サービス呼出アクティビティ］ダイアログに必要な情報を入力します。
［サービス呼出アクティビティ］ダイアログの表示・入力内容の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.9　サービス呼出アクティビティダイアログ」を参照してください。

［要求電文用ボディ割当変数］および［応答電文用ボディ割当変数］に設定する変数の内容を編集する場合
［編集］ボタンをクリックします。表示される［変数・相関セット一覧］ダイアログで，変数の内容を編集できます。この項目には，メッセージ型（XML，non-XMLまたはany）の変数を設定できます。［変数・相関セット一覧］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.1　変数・相関セット一覧ダイアログ」を参照してください。
なお，呼び出すサービス部品で定義されている電文フォーマットを変数に設定する場合，［電文フォーマットの取込］ダイアログで設定できます。［電文フォーマットの取込］ダイアログを利用して呼び出すサービス部品で定義されている電文フォーマットを変数に設定する手順については，この手順の次に記載されている「ポイント」を参照してください。
［電文フォーマットの取込］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.5　電文フォーマットの取込ダイアログ」を参照してください。

［要求電文用ヘッダ割当変数］および［応答電文用ヘッダ割当変数］に変数を設定する場合
［設定］ボタンをクリックします。表示される［ヘッダ割当変数］ダイアログで割当変数を設定します。この項目には，メッセージ型（XML）の変数を設定できます。メッセージ型（non-XMLまたはany）の変数は設定できません。［ヘッダ割当変数］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.2　ヘッダ割当変数ダイアログ」を参照してください。

［割当相関セット群］を設定する場合
［設定］ボタンをクリックします。表示される［割当相関セット群］ダイアログで割当相関セットを設定します。［割当相関セット群］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.3　割当相関セット群ダイアログ」を参照してください。

［OK］ボタンをクリックします。

ポイント

呼び出すサービス部品で定義されている電文フォーマットを変数に設定する方法を次に示します。なお，要求電文の場合で説明していますが，応答電文についても同様の手順です。

［サービス呼出アクティビティ］ダイアログで呼び出すサービス名およびオペレーション名を設定します。

［要求電文用割当変数］の［編集］ボタンをクリックします。
［変数・相関セット一覧］ダイアログが表示されます。

変数名を設定します。

［取込］ボタンをクリックします。
［電文フォーマットの取込］ダイアログが表示されます。
［サービス名］および［オペレーション名］には，手順2.で設定した値が設定されています。また，［電文種別］に「要求電文」が設定されています。

［電文フォーマット］に電文フォーマット名を設定します。

［OK］ボタンをクリックします。
［電文フォーマットの取込］ダイアログが閉じられ，［変数・相関セット一覧］ダイアログに戻ります。

［追加］ボタンをクリックします。
定義した変数が［変数一覧］に追加されます。

変数一覧から追加した変数を選択します。

［OK］ボタンをクリックします。
［変数・相関セット一覧］ダイアログが閉じられ，［サービス呼出アクティビティ］ダイアログに戻ります。

(2)　定義時の注意事項

アクティビティ名はビジネスプロセス（スコープ内も含む）内で一意になるように指定してください。

サービス名およびオペレーション名には，定義済みのHCSCコンポーネントとそのオペレーションを設定してください。また，設定したオペレーションの通信モデルと定義されているオペレーションの通信モデルを一致させてください。

アクティビティ名は64バイト以内にしてください。

ダイアログの入力フィールドに制御文字は指定しないでください。

呼び出すサービス名を設定してください。

同期呼び出しの場合，必ず応答電文用の割当変数を設定してください。

永続化しないビジネスプロセスの場合，非同期のサービス呼出アクティビティを設定しないでください。

ボディ割当変数に指定したメッセージ型変数（XML，non-XML，any）と，呼び出すHCSCコンポーネントのメッセージ型を一致させてください。不一致の場合，ビジネスプロセス定義からビジネスプロセスを呼び出すとき以外は，呼び出すHCSCコンポーネントでエラーになります。

6.6.5　Java呼出アクティビティ

専用インターフェース（jp.co.Hitachi.soft.csc.bp.receiver.ejb.CustomClassInterface）を実装したJavaクラスの呼び出しを定義するアクティビティです。

Java呼出アクティビティは，［Java呼出アクティビティ］ダイアログで詳細を定義します。

＜この項の構成＞

(1)　Java呼出アクティビティの定義前の準備

(2)　利用するJavaクラスのインターフェース

(3)　定義手順

(4)　定義時の注意事項

(1)　Java呼出アクティビティの定義前の準備

Java呼出アクティビティを定義する前には，次の準備をする必要があります。

HCSCTEプロジェクトの作成

［Java呼出アクティビティ］ダイアログで指定するJavaクラスは，HCSCTEプロジェクトのsrcディレクトリに格納されます。そのため，必ずHCSCTEプロジェクトを作成しておく必要があります。

HCSCTEプロジェクトの作成方法については，「3.1　プロジェクトの管理」を参照してください。

Javaクラスの作成

Java呼出アクティビティで利用するJavaクラスを作成します。利用するJavaクラスのインターフェースについては「6.6.5(2) 利用するJavaクラスのインターフェース」を参照してください。

注意

Javaクラスは，リポジトリ内のすべてのHCSCコンポーネントで共有されます。そのため，既存のJavaクラスを変更した場合，変更前の内容のクラスと変更後の内容のクラスのHCSCコンポーネントが混在してしまうおそれがあります。Javaクラスを変更した場合，変更したJavaクラスを呼び出すJava呼出アクティビティが定義されているビジネスプロセスを，再度パッケージングしてください。
また，Java呼出アクティビティを削除しても，利用しているJavaクラスは削除されません。使用していない不要なJavaクラスは，別途削除してください。

Javaクラスの呼び出し時に確保したリソースは，処理が終了しても保持し続けるため，システム全体に高い負荷がかかった場合に，Javaヒープ不足やPermヒープ不足などが原因でOutOfMemoryErrorが発生することがあります。そのため，OutOfMemoryErrorが発生したときに適切にリソースを解放する処理や，ロールバックなどのエラー処理を実装しておく必要があります。

ライブラリの追加

ビジネスプロセスをパッケージングして作成されるEARファイルにライブラリを追加したい場合，HCSCTEプロジェクトのlibディレクトリにライブラリをコピーしておいてください。

libディレクトリにコピーしたライブラリは，ビジネスプロセスをパッケージングすると，自動的にEARファイルに追加されます。

なお，libディレクトリには，ディレクトリや次の名前のライブラリを登録しないでください。

csbdef.jar

cscbp_ejb.jar

csbjava.jar

注意

HCSCTEプロジェクト内のsrcディレクトリおよびlibディレクトリへのリンクは削除しないでください。

(2)　利用するJavaクラスのインターフェース

Java呼出アクティビティで呼び出すJavaクラスは，次に示すインターフェースを実装している必要があります。

package jp.co.Hitachi.soft.csc.bp.receiver.ejb;

public interface CustomClassInterface {
    public Object invoke(
        String processName,
        int version,
        String activityName,
        Object inputData
    ) throws CSBUserException,CSBSystemException;
}

Javaクラスの内容について次に説明します。

引数

仮引数名 | 説明
processName | ビジネスプロセス名
version | ビジネスプロセスのバージョン
activityName | アクティビティ名
inputData | Java呼出アクティビティダイアログの［引数用割当変数］で指定した変数

戻り値

Java呼出アクティビティダイアログの［戻り値用割当変数］に指定した変数に代入されます。

例外

throwされる例外がCSBUserExceptionか，CSBSystemExceptionかによって処理が異なります。

CSBUserExceptionがthrowされた場合

Java呼出アクティビティにフォルト処理が設定されている場合，CSBUserExceptionがthrowされると，フォルトコネクションでフォルト処理として定義されているアクティビティが実行されます。

Java呼出アクティビティにフォルト処理が設定されていない場合，invokeJavaFaultが発生したものとして処理が進められます。

CSBUserExceptionのインターフェースを次に示します。

package jp.co.Hitachi.soft.csc.bp;

public class CSBUserException extends Exception {
    public CSBUserException() { super(); }
    public CSBUserException(String message) { super(message); }
}

CSBSystemExceptionがthrowされた場合

CSBSystemExceptionがthrowされると，システム例外が発生したものとして処理が中断されます。このとき，プロセスの実行状態を永続化している場合には，ロールバックが実行されます。

CSBSystemExceptionのインターフェースを次に示します。

package jp.co.Hitachi.soft.csc.bp;

public class CSBSystemException extends Exception {
    public CSBSystemException() { super(); }
    public CSBSystemException(String message) { super(message); }
    public CSBSystemException(String message, Throwable cause) {
        super(message, cause);
    }
    public CSBSystemException(Throwable cause) { super(cause); }
}

CSBUserExceptionおよびCSBSystemException以外の例外が発生した場合，処理が中断されます。このとき，プロセスの実行状態を永続化している場合には，ロールバックが実行されます。

注意事項

Java呼出アクティビティダイアログの［引数用割当変数］および［戻り値用割当変数］に指定する変数の型と，このインターフェースの引数および戻り値の型の対応を次に示します。

［引数用割当変数］および［戻り値用割当変数］の変数型 | 引数および戻り値の型
boolean | java.lang.Boolean
numeric | java.lang.Double
string | java.lang.String
message（XML） | byte[]
message（non-XML） | byte[]
message（any） | byte[]

上記の型以外を指定した場合，エラー（KDEC20030-E）になります。

利用するJavaクラスのインターフェースはcscbp_ejb.jarに含まれます。そのため，コンパイルするときには，cscbp_ejb.jarをクラスパスに追加する必要があります。

Javaプログラムでは，呼び出しごとにデフォルトコンストラクタでインスタンスが生成されます。そのため，インスタンスにデータを保持することはできません。

Javaプログラムの呼び出しは，コンテナ拡張ライブラリの延長で行われます。開発および実行にあたっては，Cosminexusでのコンテナ拡張ライブラリの利用の指針に従ってください。コンテナ拡張ライブラリの利用の指針については，マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「13.3.1　コンテナ拡張ライブラリ利用の検討」を参照してください。

(3)　定義手順

Java呼出アクティビティの定義の手順を次に示します。

Java呼出アクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

次のどちらかの方法で［Java呼出アクティビティ］ダイアログを表示させます。

キャンバスのJava呼出アクティビティをダブルクリックする

キャンバスのJava呼出アクティビティを選択して右クリックし，［設定］を選択する

［Java呼出アクティビティ］ダイアログが表示されます。

［Java呼出アクティビティ］ダイアログに必要な情報を入力します。
［Java呼出アクティビティ］ダイアログの表示・入力内容の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.10　Java呼出アクティビティダイアログ」を参照してください。
［引数用割当変数］および［戻り値用割当変数］に設定する変数の内容を編集する場合，［編集］ボタンをクリックします。表示される［変数・相関セット一覧］ダイアログで，変数の内容を編集できます。［引数用割当変数］および［戻り値用割当変数］には，メッセージ型（XML，non-XML，またはany）の変数を設定できます。［変数・相関セット一覧］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.1　変数・相関セット一覧ダイアログ」を参照してください。

［Java呼出アクティビティ］ダイアログの［OK］ボタンをクリックします。
［Java呼出アクティビティ］ダイアログが閉じられます。

キャンバスのJava呼出アクティビティを右クリックし，［Javaエディタ起動］を選択します。
EclipseのJavaエディタが起動されます。
Javaエディタには，［Java呼出アクティビティ］ダイアログで指定したクラスのソースコードが表示されます。［Java呼出アクティビティ］ダイアログで指定したクラスが初めて編集するクラスの場合，Javaエディタを起動するとソースコードのテンプレートが表示されます。

Java呼出アクティビティから呼び出されるJavaクラスのソースコードを，Javaエディタで編集します。

編集したJavaクラスのソースコードをコンパイルします。

編集したソースコードおよびコンパイルしたクラスファイルを保存して，Javaエディタを終了します。

(4)　定義時の注意事項

アクティビティ名はビジネスプロセス（スコープ内も含む）内で一意になるように指定してください。

アクティビティ名は64バイト以内にしてください。

ダイアログの入力フィールドに制御文字は指定しないでください。

必ずJavaクラス名を設定してください。

6.6.6　データ変換アクティビティ

データ変換処理を定義するアクティビティです。

データ変換アクティビティは，［データ変換アクティビティ］ダイアログで詳細を定義します。

また，データ変換定義画面でデータの変換方法の定義情報（データ変換定義ファイル）を作成します。

＜この項の構成＞

(1)　定義手順

(2)　定義時の注意事項

(1)　定義手順

定義の手順を次に示します。

データ変換アクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

次のどちらかの方法で［データ変換アクティビティ］ダイアログを表示させます。

キャンバスのデータ変換アクティビティをダブルクリックする

キャンバスのデータ変換アクティビティを選択して右クリックし，［設定］を選択する

［データ変換アクティビティ］ダイアログが表示されます。

［データ変換アクティビティ］ダイアログに必要な情報を入力します。
［データ変換アクティビティ］ダイアログの表示・入力内容の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.11　データ変換アクティビティダイアログ」を参照してください。
［変換元変数］および［変換先変数］に設定する変数の内容を編集する場合，［編集］ボタンをクリックします。表示される［変数・相関セット一覧］ダイアログで，変数の内容を編集できます。［変換元変数］および［変換先変数］には，メッセージ型（any）の変数は設定できません。メッセージ型の変数を設定する場合は，メッセージ型（XMLまたはnon-XML）を設定してください。［変数・相関セット一覧］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.1　変数・相関セット一覧ダイアログ」を参照してください。

キャンバスのデータ変換アクティビティを右クリックし，［マッピング定義起動］を選択します。
［データ変換アクティビティ］ダイアログで指定した内容が保存され，ダイアログが閉じられます。また，データ変換定義画面が表示されます。
なお，電文フォーマットを変更した場合は，電文フォーマットの変更を反映するかを確認するダイアログが表示されます。詳細は，「7.3.2　電文フォーマットを変更した場合の定義手順」を参照してください。

データ変換定義画面でデータ変換定義ファイルを作成します。
データ変換定義ファイルの作成方法の詳細については，「7.3　データ変換定義」を参照してください。
データ変換定義画面の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.5　データ変換定義画面」を参照してください。
なお，作成されたデータ変換定義ファイルは，ビジネスプロセスを保存するまで一時ディレクトリに保存されます。ビジネスプロセスを保存したときにリポジトリに格納されます。

注意

［データ変換アクティビティ］ダイアログの［データ変換定義］に指定したデータ変換定義ファイルがリポジトリに格納されたあとは，［変換元変数］および［変換先変数］に設定されている変数の情報のうち，変数の部分指定に関する情報および電文フォーマットだけ変更できます。変数の部分指定に関する情報および電文フォーマット以外を変更したい場合，［ファイルを削除］ボタンをクリックしてください。

なお，この場合に［ファイルを削除］をクリックしても，データ変換定義ファイルはリポジトリから削除されません。データ変換定義ファイルは，ビジネスプロセスを保存したときにリポジトリから削除されます。

(2)　定義時の注意事項

アクティビティ名はビジネスプロセス（スコープ内も含む）内で一意になるように指定してください。

アクティビティ名は64バイト以内にしてください。

ダイアログの入力フィールドに制御文字は指定しないでください。

必ず変換先変数を設定してください。

必ず変換元変数を設定してください。

必ずデータ変換定義を設定してください。

6.6.7　代入アクティビティ

次に示す処理を実行するための定義をするアクティビティです。

変数（基本型・メッセージ型）をほかの変数に代入する

変数の一部をほかの変数に代入する

一般式を作成し，変数に代入する
一般式の評価結果は，文字列型として取得（java.lang.Stringへマッピング）されます。

代入アクティビティは，［代入アクティビティ］ダイアログで詳細を定義します。

なお，変数に値を代入する際に，変数の型が異なっていても，自動的に型を変換して代入できる場合があります。変換の可否と変換規則を次の表に示します。

表6-15　代入値の変換規則

代入する値のデータ型 | 変換後のデータ型
boolean | numeric | string | メッセージ
XML | non-XML | any
boolean | － | ○※1 | ○※2 | × | × | ×
numeric | ○※3 | － | ○※4 | × | × | ×
string | ○※5 | △※6 | － | × | × | ×
メッセージ | XML | × | × | × | － | × | ○
non-XML | × | × | × | × | － | ○
any | × | × | × | ○ | ○ | －

（凡例）

○：変換して代入できます。

△：場合によって変換して代入できます。

×：変換して代入できません。

－：変換の必要はありません。

注※1

trueの場合1，falseの場合0が代入されます。

注※2

trueまたはfalseが代入されます。

注※3

0の場合はfalse，それ以外の場合はtrueが代入されます。

注※4

java.lang.DoubleクラスのtoString(double)メソッドで得られる値が代入されます。

注※5

java.lang.BooleanクラスのparseBoolean(String)メソッドで得られる値が代入されます。

注※6

java.lang.DoubleクラスのparseDouble(String)メソッドで得られる値が代入されます。

代入アクティビティでは，コピー元とコピー先に指定できない組み合わせがあります。コピー元とコピー先の組み合わせを次の表に示します。

表6-16　コピー元とコピー先の組み合わせ

コピー元 | コピー先
変数（メッセージ型） | 変数（基本型） | 変数の部分（メッセージ型）※ | 変数の部分（基本型）※
XML | non-XML | any | XML | non-XML | XML | non-XML
変数（メッセージ型） | XML | ○ | × | ○ | × | ○ | × | × | ×
non-XML | × | ○ | ○ | × | × | × | × | ×
any | ○ | ○ | ○ | × | × | × | × | ×
変数（基本型） | × | × | × | ○ | × | × | ○ | ×
変数の部分（メッセージ型） | XML | ○ | × | × | × | ○ | × | × | ×
non-XML | × | × | × | × | × | × | × | ×
変数の部分（基本型） | XML | × | × | × | ○ | × | × | ○ | ×
non-XML | × | × | × | ○ | × | × | ○ | ×
式 | × | × | × | ○ | × | × | ○ | ×

（凡例）

○：指定できます。

×：指定できません。

注※

コピー先の変数が初期化されていない場合は，コピーできません。

＜この項の構成＞

(1)　定義手順

(2)　定義時の注意事項

(1)　定義手順

定義の手順を次に示します。

代入アクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

次のどちらかの方法で［代入アクティビティ］ダイアログを表示させます。

キャンバスの代入アクティビティをダブルクリックする

キャンバスの代入アクティビティを選択して右クリックし，［設定］を選択する

［代入アクティビティ］ダイアログが表示されます。

［代入アクティビティ］ダイアログに必要な情報を入力します。
［代入アクティビティ］ダイアログの表示・入力内容の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.12　代入アクティビティダイアログ」を参照してください。
［コピー元］および［コピー先］のデータを追加または編集する場合は，［追加］ボタンまたは［編集］ボタンをクリックしてください。表示されるダイアログ（［代入アクティビティ］サブダイアログ）で，［コピー元］および［コピー先］に設定するデータを追加，編集できます。［コピー元］および［コピー先］には，メッセージ型（XML，non-XML，またはany）の変数を設定できます。また，設定する値が変数で，変数の内容を編集する場合は，［代入アクティビティ］サブダイアログの［編集］ボタンをクリックします。表示される［変数・相関セット一覧］ダイアログで，変数の内容を編集できます。
［代入アクティビティ］サブダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.13　代入アクティビティサブダイアログ」を参照してください。［変数・相関セット一覧］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.1　変数・相関セット一覧ダイアログ」を参照してください。

［OK］ボタンをクリックします。

(2)　定義時の注意事項

アクティビティ名はビジネスプロセス（スコープ内も含む）内で一意になるように指定してください。

アクティビティ名は64バイト以内にしてください。

ダイアログの入力フィールドに制御文字は指定しないでください。

一つ以上の代入操作を設定してください。

必ずコピー元を設定してください。

必ずコピー先を設定してください。

コピー元のタイプとして，変数と式のどちらかを設定してください。

コピー元の変数が選択されている場合，必ず変数名を設定してください。

コピー元の式が選択されている場合，必ず式を設定してください。

コピー先とコピー元の変数の型が異なる場合，暗黙的に変換されたり，実行時にエラーが発生したりする場合があります。

変数（メッセージ型）から変数（メッセージ型）への代入を定義する場合，それぞれの変数の定義で設定する電文フォーマットには，同じXMLスキーマまたは同じバイナリフォーマットで，かつ同じファイル名の定義ファイルを指定してください。

6.6.8　無操作アクティビティ

実行しても何の動作も行わないことを定義するアクティビティです。無操作アクティビティは，分岐アクティビティを使用して分岐した処理や，フォルトコネクションを使用したフォルト処理などの中で，何も処理しないことを示すために使用します。

無操作アクティビティは，［無操作アクティビティ］ダイアログで詳細を定義します。

＜この項の構成＞

(1)　定義手順

(2)　定義時の注意事項

(1)　定義手順

定義の手順を次に示します。

無操作アクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

次のどちらかの方法で［無操作アクティビティ］ダイアログを表示させます。

キャンバスの無操作アクティビティをダブルクリックする

キャンバスの無操作アクティビティを選択して右クリックし，［設定］を選択する

［無操作アクティビティ］ダイアログが表示されます。

［無操作アクティビティ］ダイアログに必要な情報を入力します。
［無操作アクティビティ］ダイアログの表示・入力内容の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.14　無操作アクティビティダイアログ」を参照してください。

［OK］ボタンをクリックします。

(2)　定義時の注意事項

アクティビティ名はビジネスプロセス（スコープ内も含む）内で一意になるように指定してください。

アクティビティ名は64バイト以内にしてください。

ダイアログの入力フィールドに制御文字は指定しないでください。

6.6.9　フォルト送出アクティビティ

ビジネスプロセス内でフォルトを定義，送出して，上位のスコープアクティビティにフォルトを通知するためのアクティビティです。

フォルト送出アクティビティは，［フォルト送出アクティビティ］ダイアログで詳細を定義します。

＜この項の構成＞

(1)　定義手順

(2)　定義時の注意事項

(1)　定義手順

定義の手順を次に示します。

フォルト送出アクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

次のどちらかの方法で［フォルト送出アクティビティ］ダイアログを表示させます。

キャンバスのフォルト送出アクティビティをダブルクリックする

キャンバスのフォルト送出アクティビティを選択して右クリックし，［設定］を選択する

［フォルト送出アクティビティ］ダイアログが表示されます。

［フォルト送出アクティビティ］ダイアログに必要な情報を入力します。
［フォルト送出アクティビティ］ダイアログの表示・入力内容の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.15　フォルト送出アクティビティダイアログ」を参照してください。
［割当変数］には，フォルトを送出する際に割り当てる変数を設定します。この項目には，メッセージ型（XML）の変数を設定できます。メッセージ型（non-XMLまたはany）は設定できません。［割当変数］に設定する変数の内容を編集する場合，［編集］ボタンをクリックします。表示される［変数・相関セット一覧］ダイアログで，変数の内容を編集できます。［変数・相関セット一覧］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.1　変数・相関セット一覧ダイアログ」を参照してください。

［OK］ボタンをクリックします。

(2)　定義時の注意事項

アクティビティ名はビジネスプロセス（スコープ内も含む）内で一意になるように指定してください。

アクティビティ名は64バイト以内にしてください。

ダイアログの入力フィールドに制御文字は指定しないでください。

フォルト送出アクティビティを含む上位のスコープに，対応する割当変数またはcatchAllを利用したフォルト処理を定義してください。

フォルト処理の割り当てに設定する割当変数には，メッセージ型（XML）の変数を設定してください。メッセージ型（non-XMLまたはany）の変数は設定できません。

6.6.10　待機アクティビティ

待機アクティビティは，ビジネスプロセスの処理フローを一定の間隔または期限まで待機する処理を定義するアクティビティです。このアクティビティを使用すると，指定した期間の間，または指定した時刻まで，ビジネスプロセスの処理を待機することができます。

待機アクティビティは，［待機アクティビティ］ダイアログで詳細を定義します。待機する時間の間隔または期限はXPath式で指定します。

＜この項の構成＞

(1)　定義手順

(2)　待機時間として指定できる文字列

(3)　定義時の注意事項

(4)　HCSC簡易セットアップ機能で構築した環境で多重実行する場合の注意事項

(1)　定義手順

待機アクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

次のどちらかの方法で［待機アクティビティ］ダイアログを表示させます。

キャンバスの待機アクティビティをダブルクリックする

キャンバスの待機アクティビティを選択して右クリックし，［設定］を選択する

［待機アクティビティ］ダイアログが表示されます。

［待機アクティビティ］ダイアログに必要な情報を入力します。
待機時間には「間隔」または「期限」を選択し，待機時間の間隔または期限をXPath式で指定します。
［待機アクティビティ］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.16　待機アクティビティダイアログ」を参照してください。

［OK］ボタンをクリックします。

(2)　待機時間として指定できる文字列

待機時間に指定する式はXPath式になります。ビジネスプロセスの処理の中でXPath式を評価し，その結果で得た文字列を待機時間として使用します。XPath式を評価して得ることができる文字列は，BPEL標準規格により一部制限があります。

XPath式を評価して得ることができる文字列を次に説明します。なお，XPathの指定については，「6.6.18　XPathを指定する」を参照してください。

(a)　待機時間に「間隔」を指定する場合

待機時間に「間隔」を指定する場合，XPath式を評価して得ることができる文字列は，XML Schema型duration（xsd:duration）に従っている必要があります。XML Schema型durationとは，PnYnMnDTnHnMnS形式の経過時間を表す文字列を示す変数型です。

待機時間に「間隔」を指定する場合に，XPath式を評価して得ることができる文字列の例を次に示します。

（例1）1年2か月3日4時間5分6秒間隔を待機時間に指定する場合

XPath式を評価して得ることができる文字列は，「P1Y2M3DT4H5M6S」になります。

（例2）10秒間隔を待機時間に指定する場合

XPath式を評価して得ることができる文字列は，「PT10S」になります。

なお，［待機アクティビティ］ダイアログの［式］には，XPath式を指定する代わりに，「'」または「"」で囲むことで，直接待機する間隔を指定することもできます。「'」または「"」で直接待機する間隔を指定する場合の例を次に示します。

（例3）1年2か月3日4時間5分6秒間隔を待機時間に指定する場合

［待機アクティビティ］ダイアログの［式］に，「'P1Y2M3DT4H5M6S'」を直接指定します。

（例4）10秒間隔を待機時間に指定する場合

［待機アクティビティ］ダイアログの［式］に，「'PT10S'」を直接指定します。

(b)　待機時間に「期限」を指定する場合

待機時間に「期限」を指定する場合，XPath式を評価して得ることができる文字列は，XML Schema型dateTime（xsd:dateTime）に従っている必要があります。XML Schema型dateTimeとは，CCYY-MM-DDThh:mm:ss.sssTZ形式（.sssとTZは省略できる）の日時を表す文字列を示す変数型です。

待機時間に「期限」を指定する場合に，XPath式を評価して得ることができる文字列の例を次に示します。

（例1）2010年1月1日0時0分0秒を待機時間に指定する場合

XPath式を評価して得ることができる文字列は，「2010-01-01T00:00:00」または「2010-01-01T00:00:00.000TZ」になります。

なお，［待機アクティビティ］ダイアログの［式］には，XPath式を指定する代わりに，「'」または「"」で囲むことで，直接待機する期限を指定することもできます。「'」または「"」で直接待機する期限を指定する場合の例を次に示します。

（例2）日本時間の2010年1月1日0時0分0秒を待機時間に指定する場合

［待機アクティビティ］ダイアログの［式］に，「'2010-01-01T00:00:00+09:00'」を直接指定します。

（例3）グリニッジ標準時間（GMT）の2010年1月1日0時0分0秒を待機時間に指定する場合

［待機アクティビティ］ダイアログの［式］に，「'2010-01-01T00:00:00+00:00'」または「'2010-01-01T00:00:00Z'」を直接指定します。

(3)　定義時の注意事項

アクティビティ名はビジネスプロセス（スコープ内も含む）内で一意になるように指定してください。

アクティビティ名は64バイト以内にしてください。

ダイアログの入力フィールドに制御文字は指定しないでください。

必ず待機時間を指定してください。

永続化しないビジネスプロセスの場合，待機アクティビティを設定しないでください。

待機アクティビティは，応答アクティビティからサービスリクエスタに応答を返したあとに動作させなければならないため，応答アクティビティよりあとに設定してください。応答アクティビティより前に設定した場合，パッケージング時にはエラーになりませんが，ビジネスプロセス実行時にエラーになります。なお，応答アクティビティと，そのあとの受付アクティビティの間に待機アクティビティを設定している場合はエラーになりません。※1※2

待機アクティビティの後ろに，受付アクティビティと組になっていない応答アクティビティは設定しないでください。受付アクティビティと組になっていない応答アクティビティを設定した場合，パッケージング時にはエラーになりませんが，ビジネスプロセス実行時にエラーになります。なお，応答アクティビティ以外のアクティビティは設定してもエラーになりません。※1※3

注※1

エラーにならないケースを次に示します。

（例1）

応答アクティビティよりもあとに，待機アクティビティを設定しています。待機処理以降は，非同期のビジネスプロセスとして実行されるため，エラーになりません。

待機アクティビティで処理を待機し，待機期限の時刻になったら，サービス呼出アクティビティが実行されます。

（例2）

応答アクティビティよりもあとに，待機アクティビティを設定しています。待機処理以降は，非同期のビジネスプロセスとして実行されるため，エラーになりません。

サービスリクエスタからの要求に応じて，並列処理として片方の無操作アクティビティの処理が実行されます。サービスリクエスタからもう一方の要求を受けて，一度サービスリクエスタに応答を返したあと，待機処理が実行されます。

注※2

エラーになるケースを次に示します。

（例1）

応答アクティビティよりも前に，待機アクティビティを設定しています。同期のビジネスプロセス内で待機アクティビティが実行されるため，ビジネスプロセスを実行するとエラーになります。

注※3

エラーになるケースを次に示します。

（例1）

待機アクティビティよりもあとに，受付アクティビティと組になっていない応答アクティビティを設定しています。そのため，ビジネスプロセスを実行するとエラーになります。

(4)　HCSC簡易セットアップ機能で構築した環境で多重実行する場合の注意事項

HCSC簡易セットアップ機能で構築した環境では，待機アクティビティ後の処理の多重度がデフォルトで1に設定されているため，複数のプロセスインスタンスの待機アクティビティ後の処理は同時に実行されません。複数のプロセスインスタンスから同時に待機アクティビティ後の処理を行うと，あとから処理を開始したプロセスインスタンスの処理は，一つ前の処理が終了してから実行されます。

複数のプロセスインスタンスの待機アクティビティ後の処理を同時に実行したい場合は，usrconf.propertiesのejbserver.ejb.timerservice.maxCallbackThreadsプロパティを変更して，処理の多重度を調節してください。

複数のプロセスインスタンスを実行している場合で，待機アクティビティ後の処理の多重度が1のときと多重度を上げたときの処理の例を次の図に示します。なお，この例では，複数のプロセスインスタンスの処理が待機アクティビティ（待機1）で13：00まで待機したあと，待機後の処理（無操作2および無操作3）に2分掛かるものとします。

図6-10　待機後の処理の多重度が1のときと待機後の処理の多重度を上げたときの処理の例

処理の多重度の設定方法については，マニュアル「Cosminexus アプリケーションサーバ 運用管理ポータル操作ガイド」の「10.9.3　EJBコンテナの設定」を参照してください。

6.6.11　検証アクティビティ

ビジネスプロセス内で送受信される電文の妥当性を検証するためのアクティビティです。受付アクティビティやサービス呼出アクティビティによって外部と送受信する電文が，対応する割当変数のスキーマと一致するかどうかを検証するときに使われます。

検証アクティビティは，［検証アクティビティ］ダイアログで詳細を定義します。

＜この項の構成＞

(1)　定義手順

(2)　検証でエラーが発生した場合の処理

(3)　定義時の注意事項

(1)　定義手順

定義の手順を次に示します。

検証アクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

どちらかの方法で［検証アクティビティ］ダイアログを表示させます。

キャンバスの検証アクティビティをダブルクリックする

キャンバスの検証アクティビティを選択して右クリックし，［設定］を選択する

［検証アクティビティ］ダイアログが表示されます。

［検証アクティビティ］ダイアログに必要な情報を入力します。
［検証アクティビティ］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.17　検証アクティビティダイアログ」を参照してください。
［変数］に設定する変数の内容を編集する場合，［編集］ボタンをクリックします。表示される［変数・相関セット一覧］ダイアログで，変数の内容を編集できます。［変数］には，メッセージ型（XML）の変数を設定できます。メッセージ型（non-XMLまたはany）の変数は設定できません。［変数・相関セット一覧］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.1　変数・相関セット一覧ダイアログ」を参照してください。

［OK］ボタンをクリックします。

(2)　検証でエラーが発生した場合の処理

検証でエラーが発生した場合，固定のフォルトが発生します。発生したフォルト（cscvalidatefault.xsd）は次のディレクトリに格納されます。

<Cosminexusのインストールディレクトリ>¥CSC¥system¥msg

参考

検証アクティビティに変数が複数設定されていた場合，最初に検証でエラーになった変数の情報でフォルト電文を作成します。

フォルト処理に必要な設定を次に説明します。

(a)　フォルト処理を実行する場合の定義

検証アクティビティでフォルトが発生した場合，スコープアクティビティに設定されているフォルト処理の割り当てに従って処理が分岐されます。フォルト処理の割り当てが設定されていない場合は，フォルト例外が発生します。

フォルト処理の割り当て

検証アクティビティから直接フォルト処理を割り当てることはできません。検証アクティビティが所属するスコープアクティビティを使用して処理の割り当てをしてください。

フォルト処理の分岐

検証結果に対応した処理の分岐をさせたい場合は，分岐アクティビティを使用します。

フォルト電文に割り当てる変数から，変数の部分指定でフォルト情報を取得し，取得した情報によって処理が分岐するように定義してください。

任意のフォルトの発生

任意のフォルトを発生させたい場合は，フォルト送出アクティビティを使用します。

固定のフォルトが発生したときに，フォルト送出アクティビティで任意の変数値のフォルトを発生させるように定義してください。

(b)　フォルト処理の定義で使用する電文フォーマット

検証アクティビティでフォルトが発生した場合，スコープアクティビティを使用して処理の割り当てをします。

フォルト処理の定義で使用する電文フォーマットを次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<!--
DO NOT EDIT THIS FILE.
-->
<xs:schema
   elementFormDefault="qualified"
   targetNamespace="http://www.msg.csc.soft.Hitachi.co.jp/cscBpValidate"
   xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="fault">
   <xs:complexType>
     <xs:sequence>
       <xs:element name="exception-name"    type="xs:string"/>
       <xs:element name="exception-message" type="xs:string"/>
       <xs:element name="scope-name"        type="xs:string"/>
       <xs:element name="activity-name"     type="xs:string"/>
       <xs:element name="variable-name"     type="xs:string"/>
     </xs:sequence>
   </xs:complexType>
 </xs:element>
</xs:schema>

設定できる要素を次に示します。

exception-name

例外名を設定します。例外名には，Class.getName()の値を設定してください。

exception-message

例外情報を設定します。例外情報には，Exception.toString()の値を設してください。

scope-name

検証アクティビティが所属するスコープ名を設定します。

activity-name

検証アクティビティの名称を設定します。

variable-name

検証をする変数名を設定します。

(3)　定義時の注意事項

アクティビティ名はビジネスプロセス（スコープ内も含む）内で一意になるように指定してください。

アクティビティ名は64バイト以内にしてください。

ダイアログの入力フィールドに制御文字は指定しないでください。

6.6.12　スコープアクティビティ

一つまたは複数のアクティビティを，ひとまとまりの処理単位として定義するためのアクティビティです。

スコープアクティビティを利用した処理単位について，次の図に示します。

図6-11　スコープアクティビティを利用した処理単位の設定

スコープアクティビティを定義すると，スコープ内の処理フローを一つのまとまりとして扱うことができます。また，上図のスコープ3のように，スコープ内の処理フローにさらにスコープを定義することもできます。

なお，スコープ内で定義した変数は，そのスコープ内でだけ有効になります。スコープと変数の有効範囲についての詳細は，「6.5.1(5)(a) スコープアクティビティを使用している場合の変数の使用」を参照してください。

＜この項の構成＞

(1)　定義手順

(2)　定義時の注意事項

(1)　定義手順

定義の手順を次に示します。

スコープアクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

次のどちらかの方法で［スコープアクティビティ］ダイアログを表示させます。

キャンバスのスコープアクティビティをダブルクリックする

キャンバスのスコープアクティビティを選択して右クリックし，［設定］を選択する

［スコープアクティビティ］ダイアログが表示されます。

アクティビティ名を入力します。

［OK］ボタンをクリックします。

キャンバスのスコープアクティビティを選択して右クリックし，［開く］を選択します。
キャンバスの下部にスコープアクティビティ名のタブが表示されます。

スコープアクティビティ名のタブをクリックします。
スコープ内の処理を設定するキャンバスが表示されます。

任意のアクティビティを配置・連結・定義し，スコープ内の処理を設定します。

(2)　定義時の注意事項

アクティビティ名は64バイト以内にしてください。

ダイアログの入力フィールドに制御文字は指定しないでください。

6.6.13　繰り返しアクティビティ

一つまたは複数のアクティビティを，条件に従って繰り返すための定義をするアクティビティです。

繰り返しアクティビティを利用した繰り返し処理について，次の図に示します。

図6-12　繰り返しアクティビティを利用した繰り返し処理

繰り返しアクティビティを定義すると，一つまたは複数の処理を一定の条件で繰り返すことができます。また，上図の繰り返し3のように，繰り返す処理の中に繰り返し処理を定義することもできます。

＜この項の構成＞

(1)　定義手順

(2)　定義時の注意事項

(1)　定義手順

定義の手順を次に示します。

繰り返しアクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

次のどちらかの方法で［繰り返しアクティビティ］ダイアログを表示させます。

キャンバスの繰り返しアクティビティをダブルクリックする

キャンバスの繰り返しアクティビティを選択して右クリックし，［設定］を選択する

［繰り返しアクティビティ］ダイアログが表示されます。

［繰り返しアクティビティ］ダイアログに必要な情報を入力します。
［繰り返しアクティビティ］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.19　繰り返しアクティビティダイアログ」を参照してください。

［繰り返し条件設定］ボタンをクリックします。

繰り返しの条件を設定するための［条件設定］ダイアログが表示されます。
［条件設定］ダイアログの表示・入力内容の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.20　条件設定ダイアログ（繰り返しアクティビティ）」を参照してください。

［OK］ボタンをクリックします。

キャンバスの繰り返しアクティビティを選択して右クリックし，［開く］を選択します。
キャンバスの下部に繰り返しアクティビティ名のタブが表示されます。

繰り返しアクティビティ名のタブをクリックします。
繰り返す処理を設定するキャンバスが表示されます。

任意のアクティビティを配置・連結・定義し，繰り返す処理を設定します。

(2)　定義時の注意事項

アクティビティ名はビジネスプロセス（スコープ内も含む）内で一意になるように指定してください。

アクティビティ名は64バイト以内にしてください。

ダイアログの入力フィールドに制御文字は指定しないでください。

必ず繰り返し条件を設定してください。

6.6.14　分岐アクティビティ

条件の判定結果によるビジネスプロセスの処理の分岐を定義するアクティビティで，分岐開始アクティビティと分岐終了アクティビティの二つがあります。分岐の開始個所には分岐開始アクティビティを，終了個所には分岐終了アクティビティを配置します。

分岐アクティビティを利用した処理の分岐について，次の図に示します。

図6-13　分岐アクティビティを利用した処理の分岐

分岐開始アクティビティの下には幾つかの処理を用意して，分岐開始アクティビティに設定した条件と条件の判定結果によって分岐させます。分岐の終端には，分岐終了アクティビティを配置します。

分岐開始アクティビティから分岐した処理のうち，フォルト送出アクティビティで終了する処理は，分岐終了アクティビティに連結する必要はありません。また，分岐開始アクティビティから分岐した処理がすべてフォルト送出アクティビティで終了する場合，分岐終了アクティビティを配置する必要はありません。

＜この項の構成＞

(1)　分岐開始アクティビティの定義

(2)　分岐終了アクティビティの定義

(3)　定義時の注意事項

(1)　分岐開始アクティビティの定義

分岐開始アクティビティの定義の手順を次に示します。

分岐アクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

分岐アクティビティの連結先となるアクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

分岐アクティビティと連結先のアクティビティを連結します。
アクティビティを連結する方法については，「6.4.2(2) 連結の設定方法」を参照してください。

次のどちらかの方法で［分岐アクティビティ］ダイアログを表示させます。

キャンバスの分岐アクティビティをダブルクリックする

キャンバスの分岐アクティビティを選択して右クリックし，［設定］を選択する

［分岐アクティビティ］ダイアログが表示されます。

［分岐アクティビティ］ダイアログに必要な情報を入力します。
［分岐アクティビティ］ダイアログの表示・入力内容の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.21　分岐アクティビティダイアログ」を参照してください。
分岐条件を設定する場合，［条件設定］ボタンをクリックします。表示される［条件設定］ダイアログで，分岐条件を設定できます。連結先ごとに条件を設定します。分岐条件はXPath式で入力します。［条件設定］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.22　条件設定ダイアログ（分岐アクティビティ）」を参照してください。

［OK］ボタンをクリックします。

(2)　分岐終了アクティビティの定義

分岐終了アクティビティの定義の手順を次に示します。

分岐アクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

分岐アクティビティと連結元のアクティビティを連結します。
アクティビティを連結する方法については，「6.4.2(2) 連結の設定方法」を参照してください。

(3)　定義時の注意事項

アクティビティ名はビジネスプロセス（スコープ内も含む）内で一意になるように指定してください。

アクティビティ名は64バイト以内にしてください。

ダイアログの入力フィールドに制御文字は指定しないでください。

分岐条件を一つ以上設定してください。

遷移先を条件分岐またはデフォルトに割り当ててください。

必ず分岐の条件名を設定してください。

必ず分岐の条件を設定してください。

並列処理終了アクティビティに接続しないでください。

次に示すコネクションは接続しないでください。

開始アクティビティを元とするコネクション※1

あるアクティビティのあるフォルト処理の開始点を元とするコネクション※1

分岐開始アクティビティは，対応する一つの分岐終了アクティビティに接続してください。※2

対応する分岐処理を分岐終了アクティビティに接続してください。※2

分岐処理は必ず分岐終了アクティビティに接続してください。※2

分岐アクティビティと，対応する分岐終了アクティビティの間には，一つ以上のアクティビティを設定してください。

注※1

アクティビティを元とするコネクション，およびあるアクティビティのあるフォルト処理の開始点を元とするコネクションについては，「図6-16　コネクションの例」を参照してください。

注※2

すべての分岐処理の終端がフォルト送出アクティビティの場合を除きます。

6.6.15　並列処理アクティビティ

ビジネスプロセスの処理フローを二つ以上のシーケンスに枝分かれさせて並列実行するための定義をするアクティビティで，並列処理開始アクティビティと並列処理終了アクティビティの二つがあります。並列処理の開始個所には並列処理開始アクティビティを，複数のシーケンスの合流個所には並列処理終了アクティビティを配置します。

並列処理開始アクティビティから枝分かれさせて並列実行するシーケンスのうち，フォルト送出アクティビティで終了するシーケンスは，並列処理終了アクティビティに連結する必要はありません。また，並列処理開始アクティビティから枝分かれさせて並列実行するシーケンスがすべてフォルト送出アクティビティで終了する場合，並列処理終了アクティビティを配置する必要はありません。

並列処理アクティビティを利用した処理の並列実行について，次の図に示します。

図6-14　並列処理アクティビティを利用した処理の並列実行

並列処理開始アクティビティの下には複数のシーケンスを用意して，並列して処理を実行できます。なお，複数のシーケンス間での処理の順序を設定することもできます。

例えば，図6-14のA-1およびA-2が完了してからA-3を実行する場合，A-1およびA-2を連結元，A-3を連結先として，リンクコネクション（link1およびlink2）で連結します。さらに，A-1およびA-2の処理の終了に加えて，リンクの条件を設定してA-1およびA-2とA-3のリンクを制御することもできます。

図6-14の例の場合，連結先のA-3の処理は，次のような過程で開始されます。

A-1およびA-2の処理が完了します。

A-1およびA-2に設定されているリンクの条件が判定されます。
A-1およびA-2のリンクの条件が判定されると，それぞれリンクコネクションlink1およびlink2が活性化します。リンクコネクションは，条件の判定結果によって真または偽に活性化します。なお，条件が設定されていない場合，リンクコネクションは，リンク元のアクティビティの処理が完了すると真に活性化します。

A-3に連結されているすべてのリンクコネクションが活性化すると，A-3の処理が開始されます。
ただし，すべてのリンクコネクションが偽に活性化している場合，A-3の処理は開始されないで省略されます。A-3の処理が開始されるのは，リンクコネクションのうち，少なくとも一つのリンクコネクションが真に活性化している場合です。

並列処理終了アクティビティ以降のアクティビティの処理は，並列処理された複数のシーケンスがすべて完了したあとに実行されます。

＜この項の構成＞

(1)　並列処理アクティビティの定義

(2)　シーケンス間リンクの定義

(3)　定義時の注意事項

(1)　並列処理アクティビティの定義

並列処理アクティビティの定義の手順を次に示します。

並列処理開始アクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

並列処理開始アクティビティから枝分かれするシーケンスの各アクティビティを配置・定義します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を，アクティビティを定義する方法は，「6.6　アクティビティの定義」の各アクティビティの説明を参照してください。

並列処理終了アクティビティをキャンバスに配置します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

並列処理開始アクティビティから並列処理終了アクティビティまでの各アクティビティを連結します。
アクティビティを連結する方法については，「6.4.2(2) 連結の設定方法」を参照してください。

次のどちらかの方法で［並列処理アクティビティ］ダイアログを表示させます。

キャンバスの並列処理開始アクティビティをダブルクリックする

キャンバスの並列処理開始アクティビティを選択して右クリックし，［設定］を選択する

［並列処理アクティビティ］ダイアログが表示されます。

［並列処理アクティビティ］ダイアログに必要な情報を入力します。
［並列処理アクティビティ］ダイアログの表示・入力内容の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.23　並列処理アクティビティダイアログ」を参照してください。複数シーケンス間のリンクの設定方法の詳細については，「6.6.15(2) シーケンス間リンクの定義」を参照してください。

［OK］ボタンをクリックします。

(2)　シーケンス間リンクの定義

並列に処理する複数のシーケンス間でのリンクの定義手順について次に示します。

次のどちらかの方法で［並列処理アクティビティ］ダイアログを表示させます。

キャンバスの並列処理開始アクティビティをダブルクリックする

キャンバスの並列処理開始アクティビティを選択して右クリックし，［設定］を選択する

［並列処理アクティビティ］ダイアログが表示されます。

並列処理内で設定するリンクの数だけ，リンク名を入力します。

［OK］ボタンをクリックし，［並列処理アクティビティ］ダイアログを閉じます。

リンクさせるアクティビティを連結します。
アクティビティを配置する方法については，「6.4.1　アクティビティを配置する」を参照してください。

次のどちらかの方法で［リンク］ダイアログを表示させます。

手順4.で設定した連結線をダブルクリックする

手順4.で設定した連結線を選択して右クリックし，［設定］を選択する

［リンク］ダイアログが表示されます。

［リンク］ダイアログに必要な情報を入力します。
［リンク］ダイアログの表示・入力内容の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.24　リンクダイアログ」を参照してください。
リンクの条件を設定する場合，［遷移条件設定］ボタンをクリックします。表示される［条件設定］ダイアログで，リンクの条件を設定できます。リンクの条件はXPath式で入力します。［条件設定］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.25　条件設定ダイアログ（並列処理アクティビティ）」を参照してください。

［OK］ボタンをクリックします。

注意

並列処理開始アクティビティまたは分岐処理開始アクティビティからリンクが定義された場合，処理の流れは次の図のようになります。

図6-15　並列処理開始アクティビティまたは分岐処理開始アクティビティからリンクが定義された場合の処理の流れ

(3)　定義時の注意事項

アクティビティ名はビジネスプロセス（スコープ内も含む）内で一意になるように指定してください。

すでに［リンク］ダイアログで定義されているリンクについては，［並列処理アクティビティ］ダイアログでリンク名を変更・削除できません。

アクティビティ名は64バイト以内にしてください。

ダイアログの入力フィールドに制御文字は指定しないでください。

設定するリンク名の長さは64バイト以内にしてください。

分岐終了アクティビティに接続しないでください。

次に示すコネクションは接続しないでください。

開始アクティビティを元とするコネクション※1

あるアクティビティのあるフォルト処理の開始点を元とするコネクション※1

並列処理開始アクティビティは，対応する一つの並列処理終了アクティビティに接続してください。※2

対応する並列処理を並列処理終了アクティビティに接続してください。※2

並列処理は必ず並列処理終了アクティビティに接続してください。※2

並列処理開始アクティビティと，対応する並列処理終了アクティビティの間には，一つ以上のアクティビティを設定してください。

リンクコネクションに有効なリンク名を設定してください。

注※1

アクティビティを元とするコネクション，およびあるアクティビティのあるフォルト処理の開始点を元とするコネクションについては，「図6-16 コネクションの例」を参照してください。

注※2

並列処理するシーケンスの終端がフォルト送出アクティビティの場合を除きます。

6.6.16　終了アクティビティ

ビジネスプロセスの終了を表します。キャンバス上に一つだけ配置されます。このアクティビティは削除できません。

なお，終了アクティビティには，定義する内容はありません。

6.6.17　順次処理アクティビティ

順次処理される一連のアクティビティの情報を保持するためのアクティビティです。順序処理アクティビティは，必要に応じて自動で生成されます。順序処理アクティビティは，次に示すアクティビティの情報を保持します。

開始アクティビティと終了アクティビティの間に定義された一連のアクティビティ（スコープおよび繰り返しのキャンバスに定義されたアクティビティも同様）

分岐開始アクティビティと分岐終了アクティビティの間に定義された各分岐での一連のアクティビティ

並列処理開始アクティビティと並列処理終了アクティビティの間に定義された各分岐での一連のアクティビティ

フォルトコネクションからつながるフォルト処理を行う一連のアクティビティ

6.6.18　XPathを指定する

アクティビティの定義で使用するダイアログの入力欄には，XPathを指定する必要があります。アクティビティの定義とXPathを指定するダイアログの入力欄を次の表に示します。

表6-17　アクティビティの定義とXPathを指定するダイアログの入力欄

項番 | アクティビティ名 | ダイアログの入力欄
1 | 代入アクティビティ | ［代入アクティビティ］サブダイアログの［コピー元］の［値］
2 | 分岐アクティビティ | ［条件設定］ダイアログ（分岐アクティビティ）の［条件式］
3 | 並列処理アクティビティ | ［条件設定］ダイアログ（並列処理アクティビティ）の［条件式］
4 | 繰り返しアクティビティ | ［条件設定］ダイアログ（繰り返しアクティビティ）の［条件式］
5 | 待機アクティビティ | ［待機アクティビティ］ダイアログの［待機時間］の［式］

XPathの中では，拡張関数を使用して変数内の情報を取得する方法と，変数名を直接指定して情報を取得する方法の二つがあります。拡張関数については，「6.6.18(3) 拡張関数」を参照してください。

＜この項の構成＞

(1)　拡張関数を使用して変数内の情報を取得する方法

(2)　変数名を直接指定して情報を取得する方法

(3)　拡張関数

(1)　拡張関数を使用して変数内の情報を取得する方法

拡張関数を使用して変数内の情報を取得する方法を次に示します。

(a)　代入アクティビティサブダイアログでの指定

コピー元のXMLの値を取得するために，［値］には拡張関数でXPathを指定します。

属性propertyNameの値を取得する場合

拡張関数bpws:getVariablePropertyを使用して，属性propertyNameの値を取得します。変数の型がメッセージ型（XMLまたはnon-XML）の場合に使用できます。

指定方法

bpws:getVariableProperty('variableName','propertyName')

variableName：変数名を指定します。

propertyName：variableNameで指定した変数内で定義されている，messageType型以外の部分名を指定します。

指定例

bpws:getVariableProperty('VariableX','PropertyY')

変数の値を直接指定する場合

拡張関数csc:getVariableDataを使用して変数の値を取得します。変数の型がメッセージ型（XMLまたはnon-XML），string型，numeric型，またはboolean型の場合に使用できます。

指定方法（メッセージ型（XMLまたはnon-XML）のとき）

csc:getVariableData('variableName','locationPath')

variableName：変数名を指定します。

locationPath：XMLスキーマのノードを示すパス（［変数の表示］ダイアログの［選択パス］で取得したパス）を指定します。

指定例

csc:getVariableData('VariableX','input/forInvoke/depositData/id')

指定方法（string型，numeric型，またはboolean型のとき）

csc:getVariableData('variableName')

variableName：変数名を指定します。

指定例

csc:getVariableData('VariableX')

ヘッダ割当変数の初期化状態を取得する場合

拡張関数csc:getMessageInitializeを使用して，ヘッダ割当変数の初期化状態を取得します。変数の型がメッセージ型（XML，non-XMLまたはany）の場合に使用できます。

指定方法

csc:getMessageInitialize('variableName')

variableName：ヘッダ割当変数名を指定します。

指定例

csc:getMessageInitialize('VariableX')

メッセージ型変数（non-XML）の16進数形式の文字列を取得する場合

拡張関数csc:getHexVariableDataを使用して，メッセージ型変数（non-XMLまたはany）の16進数形式の文字列（半角英数大文字）を取得します。

変数の型がメッセージ型（non-XMLまたはany）の場合に使用できます。

指定方法

csc:getHexVariableData('variableName','beginIndex','compNumber')

variableName：取得元のメッセージ型（non-XMLまたはany）の変数名を指定します。

beginIndex：取得開始位置のバイト数を指定します。

compNumber：取得するバイト数を指定します。

指定例

csc:getHexVariableData('VariableX','2','1')

文字列を16進数形式で取得する場合

拡張関数csc:getHexStringを使用して，16進数形式の文字列（半角英数大文字）を取得します。

指定方法

csc:getHexString('convertString','characterCode')

convertString：16進数形式に変換する文字列を指定します。

characterCode：文字列からバイトデータにエンコードする場合に使用する文字コードを指定します。指定できる文字コードは，この関数を使用する環境のJavaVMに依存します。

指定例

csc:getHexString('PNG','UTF-8')

(b)　条件設定ダイアログでの指定

変数の値を判定する条件式を設定するために，［条件式］に条件となる式をXPathで指定します。

属性propertyNameの値を条件式にする場合

拡張関数bpws:getVariablePropertyを使用して，属性propertyNameの値により条件文を指定します。変数の型がメッセージ型（XMLまたはnon-XML）の場合に使用できます。

指定方法

次のどちらかの方法で指定します。

方法1

bpws:getVariableProperty('variableName','propertyName') = "比較対象の値"

方法2

bpws:getVariableProperty('variableName','propertyName') = bpws:getVariableProperty('variableName','propertyName')

variableName：変数名を指定します。

propertyName：variableNameで指定した変数内で定義されている，messageType型以外の部分名を指定します。

指定例

bpws:getVariableProperty('VariableX','PropertyY') = "HITACHI"

変数の値を条件式にする場合

拡張関数csc:getVariableDataを使用して，属性propertyNameの値により条件文を指定します。変数の型がメッセージ型（XMLまたはnon-XML），string型，numeric型，またはboolean型の場合に使用できます。

指定方法（メッセージ型（XMLまたはnon-XML）のとき）

csc:getVariableData('variableName','locationPath') = "比較対象の値"

variableName：変数名を指定します。

locationPath：XMLスキーマのノードを示すパス（［変数の表示］ダイアログの［選択パス］で取得したパス）を指定します。

指定例

csc:getVariableData('VariableX','input/forInvoke/depositData/userName/firstName') = "Taro"

指定方法（string型，numeric型，またはboolean型のとき）

csc:getVariableData('variableName') = "比較対象の値"

variableName：変数名を指定します。

指定例

csc:getVariableData('VariableX') = false()

注　VariableXがboolean型の場合です。

ヘッダ割当変数の初期化状態を条件式にする場合

拡張関数csc:getMessageInitializeを使用して，ヘッダ割当変数の初期化状態を条件式に指定します。変数の型がメッセージ型（XML，non-XMLまたはany）の場合に使用できます。

指定方法

csc:getMessageInitialize('variableName') = "比較対象の値"

variableName：ヘッダ割当変数名を指定します。

指定例

csc:getMessageInitialize('VariableX') = false()

メッセージ型変数（non-XML）の16進数形式の文字列を条件式にする場合

拡張関数csc:getHexVariableDataを使用して，メッセージ型変数（non-XMLまたはany）の16進数形式の文字列（半角英数大文字）を取得します。

変数の型がメッセージ型（non-XMLまたはany）の場合に使用できます。

指定方法

csc:getHexVariableData('variableName','beginIndex','compNumber') =
"比較対象の値の16進表記"

variableName：取得元のメッセージ型（non-XMLまたはany）の変数名を指定します。

beginIndex：取得開始位置のバイト数を指定します。

compNumber：取得するバイト数を指定します。

指定例1（先頭から3バイト目の値を取得して判定する場合）

csc: getHexVariableData ('VariableX','2','1') = "4e"

指定例2（先頭から3バイトの値を取得し，その文字列を拡張関数csc:getHexStringを使用して判定する場合場合）

csc: getHexVariableData ('VariableX','0','3') =
csc:getHexString('PNG','UTF-8')

16進数形式で取得した文字列を条件式にする場合

拡張関数csc:getHexStringを使用して，16進数形式の文字列（半角英数大文字）を条件式に指定します。

指定方法

csc:getHexString('convertString','characterCode') = "比較対象の値の16進表記"

convertString：16進数形式に変換する文字列を指定します。

characterCode：文字列からバイトデータにエンコードする場合に使用する文字コードを指定します。指定できる文字コードは，この関数を使用する環境のJavaVMに依存します。

指定例

csc:getHexString('PNG','UTF-8') = "504E47"

(c)　待機アクティビティダイアログでの指定

［待機時間］の［式］には拡張関数でXPathを指定します。

属性propertyNameの値を取得する場合

拡張関数bpws:getVariablePropertyを使用して，属性propertyNameの値を取得します。変数の型がメッセージ型（XMLまたはnon-XML）の場合に使用できます。

指定方法

bpws:getVariableProperty('variableName','propertyName')

variableName：変数名を指定します。

propertyName：variableNameで指定した変数内で定義されている，messageType型以外の部分名を指定します。

指定例

bpws:getVariableProperty('VariableX','PropertyY')

変数の値を直接指定する場合

拡張関数csc:getVariableDataを使用して，属性propertyNameの値を取得します。変数の型がメッセージ型（XMLまたはnon-XML）またはstring型の場合に使用できます。

指定方法（メッセージ型（XMLまたはnon-XML）のとき）

csc:getVariableData('variableName','locationPath')

variableName：変数名を指定します。

locationPath：XMLスキーマのノードを示すパス（［変数の表示］ダイアログの［選択パス］で取得したパス）を指定します。

指定例

csc:getVariableData('VariableX','input/forInvoke/depositData/id')

指定方法（string型のとき）

csc:getVariableData('variableName')

variableName：変数名を指定します。

指定例

csc:getVariableData('VariableX')

ヘッダ割当変数の初期化状態を取得する場合

拡張関数csc:getMessageInitializeを使用して，ヘッダ割当変数の初期化状態を取得します。変数の型がメッセージ型（XML，non-XMLまたはany）の場合に使用できます。

指定方法

csc:getMessageInitialize('variableName')

variableName：ヘッダ割当変数名を指定します。

指定例

csc:getMessageInitialize('VariableX')

メッセージ型変数（non-XML）の16進数形式の文字列を取得する場合

拡張関数csc:getHexVariableDataを使用して，メッセージ型変数（non-XMLまたはany）の16進数形式の文字列（半角英数大文字）を取得します。

変数の型がメッセージ型（non-XMLまたはany）の場合に使用できます。

指定方法

csc:getHexVariableData('variableName','beginIndex','compNumber')

variableName：取得元のメッセージ型（non-XMLまたはany）の変数名を指定します。

beginIndex：取得開始位置のバイト数を指定します。

compNumber：取得するバイト数を指定します。

指定例

csc:getHexVariableData('VariableX','2','1')

文字列を16進数形式で取得する場合

拡張関数csc:getHexStringを使用して，16進数形式の文字列（半角英数大文字）を取得します。

指定方法

csc:getHexString('convertString','characterCode')

convertString：16進数形式に変換する文字列を指定します。

characterCode：文字列からバイトデータにエンコードする場合に使用する文字コードを指定します。指定できる文字コードは，この関数を使用する環境のJavaVMに依存します。

指定例

csc:getHexString('PNG','UTF-8')

注意

待機時間を指定する場合は，次の点に注意してください。

待機時間に「間隔」を指定する場合
XPath式を評価して得ることができる文字列は，XML Schema型duration（xsd:duration）に従っている必要があります。

待機時間に「期限」を指定する場合
XPath式を評価して得ることができる文字列は，XML Schema型dateTime（xsd:dateTime）に従っている必要があります。

これらの仕様はBPEL標準規格により定められています。そのため，ビジネスプロセスのnumeric型およびboolean型の変数は指定できません。

なお，XPath式を指定する代わりに，「"」または「'」で囲むことで，直接間隔または期限を指定することもできます。

詳細については，「6.6.10(2)　待機時間として指定できる文字列」を参照してください。

(2)　変数名を直接指定して情報を取得する方法

変数名を直接指定して情報を取得する方法を次に示します。

(a)　代入アクティビティサブダイアログでの指定

［コピー元］の［値］を取得するためのXPathを直接指定します。

属性propertyNameの値を取得する場合

拡張関数を使用して変数内の情報を取得する方法を実施してください。

変数の値を直接指定する場合

「$variableName」で変数名を直接指定します。変数の型がメッセージ型，string型，numeric型，またはboolean型の場合に使用できます。

指定方法（メッセージ型のとき）

$variableName/locationPath

variableName：変数名を指定します。

locationPath：XMLスキーマのノードを示すパス（［変数の表示］ダイアログの［選択パス］で取得したパス）を指定します。

指定例

$VariableX/input/forInvoke/depositData/id

指定方法（string型，numeric型，またはboolean型のとき）

$variableName

variableName：変数名を指定します。

指定例

$VariableX

(b)　条件設定ダイアログでの指定

［条件式］のXPathを直接指定します。

属性propertyNameの値を条件式にする場合

拡張関数を使用して条件式を指定する方法を実施してください。

変数の値を条件式にする場合

「$variableName」で変数名を直接指定します。変数の型がメッセージ型，string型，numeric型，またはboolean型の場合に使用できます。

指定方法（メッセージ型のとき）

$variableName/locationPath

variableName：変数名を指定します。

locationPath：XMLスキーマのノードを示すパス（［変数の表示］ダイアログの［選択パス］で取得したパス）を指定します。

指定例

$VariableX/input/forInvoke/depositData/userName/firstName = "Taro"

指定方法（string型，numeric型，またはboolean型のとき）

$variableName

variableName：変数名を指定します。

指定例

$VariableX = false()

注　VariableXがboolean型の場合です。

(c)　待機アクティビティダイアログでの指定

［待機時間］の［式］には拡張関数でXPathを指定します。

属性propertyNameの値を取得する場合

拡張関数を使用して変数内の情報を取得する方法を実施してください。

変数の値を直接指定する場合

「$variableName」で変数名を直接指定します。変数の型がメッセージ型またはstring型の場合に使用できます。

指定方法（メッセージ型のとき）

$variableName/locationPath

variableName：変数名を指定します。

locationPath：XMLスキーマのノードを示すパス（［変数の表示］ダイアログの［選択パス］で取得したパス）を指定します。

指定例

$VariableX/input/forInvoke/depositData/id

指定方法（string型のとき）

$variableName

variableName：変数名を指定します。

指定例

$VariableX

注意

待機時間を指定する場合は，次の点に注意してください。

待機時間に「間隔」を指定する場合
XPath式を評価して得ることができる文字列は，XML Schema型duration（xsd:duration）に従っている必要があります。

待機時間に「期限」を指定する場合
XPath式を評価して得ることができる文字列は，XML Schema型dateTime（xsd:dateTime）に従っている必要があります。

これらの仕様はBPEL標準規格により定められています。そのため，ビジネスプロセスのnumeric型およびboolean型の変数は指定できません。

なお，XPath式を指定する代わりに，「"」または「'」で囲むことで，直接間隔または期限を指定することもできます。

詳細については，「6.6.10(2)　待機時間として指定できる文字列」を参照してください。

(3)　拡張関数

拡張関数には，次に示す(i)～(v)の五つがあります。拡張関数の形式，引数，および拡張関数を使用する場合の注意事項を説明します。

(i) bpws:getVariableProperty

形式

bpws:getVariableProperty('variableName','propertyName')

引数

variableName

変数名を指定します。

propertyName

variableNameで指定した変数内で定義されている，messageType型以外の部分名を指定します。

(ii) csc:getVariableData

形式

csc:getVariableData('variableName','locationPath')

引数

variableName

変数名を指定します。

locationPath

XMLスキーマのノードを示すパスを指定します。

注意事項

変数がメッセージ型以外の場合，引数にはvariableNameだけを指定してください。

変数がメッセージ型以外の場合，関数は変数の型に応じたデータ型を返します。

variableNameで指定した変数のデータに対して，locationPathで指定したパスを評価した結果は，文字列型（java.lang.Stringへマッピング）で返します。

locationPathに「'」を含む場合，locationPathを「"」で囲んでください。

(iii) getMessageInitialize

形式

csc:getMessageInitialize('variableName')

引数

variableName

変数名を指定します。

注意事項

variableNameに指定する変数のvariable要素は，messageType型で定義してください。

variableNameに指定した変数の初期化状態は，boolean型で返します。
初期化済みの場合：true
未初期化の場合：false

(iv) getHexVariableData

形式

csc:getHexVariableData('variableName','beginIndex','compNumber')

引数

variableName

変数名を指定します。

beginIndex

取得開始位置のバイト数を指定します。

compNumber

取得するバイト数を指定します。

注意事項

beginIndexには0以上，compNumberには1以上の値を指定できます。ただし，beginIndexの値とcompNumberの値を足した数が，variableNameに指定した変数のバイト数より小さくなるよう指定してください。beginIndexの値とcompNumberの値を足した数が，variableNameに指定した変数のバイト数以上の場合は，XPathFunctionExceptionが発生します。

beginIndexおよびcompNumberに数値以外の値を指定した場合，XPathFunctionExceptionが発生します。

variableNameに変数として存在しない値を指定した場合，XPathFunctionExceptionが発生します。

(v) getHexString

形式

csc:getHexString('convertString','characterCode')

引数

convertString

16進数形式に変換する文字列を指定します。

characterCode

文字列からバイトデータを取得する際に使用する文字コードを指定します。

注意事項

convertStringに空文字（''）を指定した場合は，処理結果として空文字を返します。

変数を使用する環境のJavaVMが対応する文字コード以外をcharacterCodeに設定した場合，XPathFunctionExceptionが発生します。

6.7　ビジネスプロセスの保存

ビジネスプロセス定義画面で編集中のビジネスプロセスの内容を，編集途中や編集終了時に新規保存したり，上書き保存したりできます。保存した内容はリポジトリに保存されます。

変数定義で指定した電文フォーマット定義ファイル，およびデータ変換定義で生成したデータ変換定義ファイルは，ビジネスプロセス定義画面と同時に保存されます。

ビジネスプロセスを保存する手順を次に示します。

方法1

Eclipseのメニューから，［ファイル］－［保管］を選択します。

方法2

Eclipseのメニューから，［ファイル］－［すべて保管］を選択します。

方法3

ビジネスプロセス定義画面で，［Ctrl］キー＋［S］キーを押します。

なお，ビジネスプロセス定義画面を閉じてビジネスプロセスの定義を終了する場合に，ビジネスプロセスが保存されていないときは，リソース保管ダイアログが表示されます。リソース保管ダイアログでは，保存されていないビジネスプロセスの定義を保存できます。

注意

不正なデータが入力されている場合，ビジネスプロセスを保存できないことがあります。その場合，表示されているメッセージに従って対処してください。

6.8　ビジネスプロセスの編集

保存したビジネスプロセスの内容を変更できます。ビジネスプロセスの内容を変更するには，ビジネスプロセス定義画面を表示して，内容を編集します。ビジネスプロセス定義画面は，ツリービューのサービス定義一覧から，該当するビジネスプロセスを選択し，ダブルクリックすると表示されます。

ビジネスプロセスの内容の定義方法については，「6.3　ビジネスプロセスの内容の定義」を参照してください。

＜この節の構成＞

6.8.1　ビジネスプロセスおよびアクティビティの定義情報を変更する

6.8.2　アクティビティ名を変更する

6.8.3　運用中のビジネスプロセス定義を変更する

6.8.1　ビジネスプロセスおよびアクティビティの定義情報を変更する

ビジネスプロセス，およびアクティビティの定義情報を変更できます。

＜この項の構成＞

(1)　ビジネスプロセスの定義情報を変更する

(2)　アクティビティの定義情報を変更する

(1)　ビジネスプロセスの定義情報を変更する

ビジネスプロセスの定義情報を変更するには，次の二つの方法があります。

方法1

ツリービューのサービス定義一覧で表示されたサービスから，該当するビジネスプロセスを選択し，ダブルクリックします。
選択したビジネスプロセスのビジネスプロセス定義画面が表示されます。

内容を変更します。

方法2

プロパティから，次に示すビジネスプロセスの定義情報を変更できます。次の情報以外を変更する場合は，方法1を実施します。

ビジネスプロセス名

サービスID※

ステータスの永続化

注※

サービスIDを変更する場合，8バイト以内の英数字およびアンダーライン（_）で指定してください。

ツリービューのサービス定義一覧で表示されたサービスから，該当するビジネスプロセスを選択します。
選択したビジネスプロセスに関するプロパティがプロパティービューに表示されます。

変更する項目を選択して変更します。
入力項目の前後に半角スペースや全角スペースを指定できません。

(2)　アクティビティの定義情報を変更する

アクティビティの定義情報を変更するには，次の二つの方法があります。

方法1

ツリービューのサービス定義一覧で表示されたサービスから，該当するビジネスプロセスを選択し，ダブルクリックします。
ビジネスプロセス定義画面が表示されます。

キャンバス上の該当するアクティビティを選択します。

ダブルクリック，または右クリックで「設定」を選択します。
アクティビティのダイアログが表示されます。

内容を変更します。

方法2

開始アクティビティおよび終了アクティビティ以外のアクティビティの場合，プロパティからサービス名を変更できます。サービス名以外の情報を変更する場合は，方法1を実施します。

アクティビティの定義情報をプロパティから変更する手順を次に示します。

ビジネスプロセス定義画面のキャンバス上のアクティビティを一つ選択します。
選択したアクティビティに関するプロパティがプロパティービューに表示されます。

変更する項目をダブルクリックして変更します。
入力項目の前後に半角スペースや全角スペースを指定できません。

6.8.2　アクティビティ名を変更する

開始アクティビティおよび終了アクティビティを除く，すべてのアクティビティ名を変更できます。

アクティビティ名は，ビジネスプロセス内で一意である必要があります。また，入力項目の前後に半角スペースや全角スペースを指定できません。

アクティビティ名を変更するには，次の二つの方法があります。

方法1

キャンバス上でアクティビティを選択します。

アクティビティを選択したまま，左クリックまたは［F2］キーを押します。

アクティビティ名を編集します。

［Enter］キーを押すか，カーソルを外します。
アクティビティ名が変更されます。

変更後のアクティビティ名が，ビジネスプロセス内ですでに使用されている場合や空白にした場合は，エラーになり，変更前のアクティビティに戻ります。

方法2

キャンバス上でアクティビティを選択します。
プロパティービューに選択したアクティビティのプロパティが表示されます。

プロパティービューに表示されるアクティビティ名を選択して，アクティビティ名を編集します。

［Enter］キーを押すか，カーソルを外します。

6.8.3　運用中のビジネスプロセス定義を変更する

業務の変更や改善に応じて運用中のビジネスプロセスの定義を変更する方法には，次の二つの方法があります。

変更前後のビジネスプロセスを並行運用する方法

既存のビジネスプロセスとバージョンアップしたビジネスプロセスを並行運用します。

変更前後のビジネスプロセスを並行運用しない方法

既存のビジネスプロセス定義に属するHCSCコンポーネントを実行環境からすべて削除して，定義を変更したビジネスプロセスに入れ替えます。

それぞれの方法を次に示します。

＜この項の構成＞

(1)　並行運用する方法

(2)　並行運用しない方法

(3)　並行運用する場合のバージョンアップ時の注意事項

(1)　並行運用する方法

運用環境からリポジトリ情報をエクスポートし，開発環境にインポートします。

ビジネスプロセスの配備定義を削除します。
ビジネスプロセスの配備定義の削除については，「9.3　HCSCコンポーネントの配備定義」を参照してください。

ツリービューのサービス定義一覧のビジネスプロセスを右クリックし，［バージョンアップ］を選択します。

手順3.で選択したビジネスプロセスをビジネスプロセス定義画面で編集します。

ビジネスプロセスをパッケージングします。
パッケージングについては，「9.2　パッケージング」を参照してください。

ビジネスプロセスの配備定義をします。
配備定義については，「9.3　HCSCコンポーネントの配備定義」を参照してください。

運用環境で既存のビジネスプロセスを停止および削除します。

手順2.～4.で変更したビジネスプロセスを含むリポジトリ情報をエクスポートし，運用環境にインポートします。

ビジネスプロセスを運用環境から実行環境に配備します。
運用環境での操作については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「3.1.13　ビジネスプロセスを配備する」を参照してください。

(2)　並行運用しない方法

運用環境からリポジトリ情報をエクスポートし，開発環境にインポートします。

既存のビジネスプロセスの配備定義を削除します。
ビジネスプロセスの配備定義の削除については，「9.3　HCSCコンポーネントの配備定義」を参照してください。

既存のビジネスプロセス定義をビジネスプロセス定義画面で変更します。

ビジネスプロセスをパッケージングします。
パッケージングについては，「9.2　パッケージング」を参照してください。

ビジネスプロセスの配備定義をします。
配備定義については，「9.3　HCSCコンポーネントの配備定義」を参照してください。

運用環境で，既存のビジネスプロセス定義に属するプロセスがすべて完了したのを確認してから，実行環境に配備されたHCSCコンポーネントを削除します。

手順2.および手順3.で変更したビジネスプロセスを含むリポジトリ情報をエクスポートし，運用環境にインポートします。

ビジネスプロセスを運用環境から実行環境に配備します。
運用環境での操作については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「3.1.13　ビジネスプロセスを配備する」を参照してください。

(3)　並行運用する場合のバージョンアップ時の注意事項

並行運用する場合，バージョンアップを実行すると，ビジネスプロセス定義画面で新バージョンのビジネスプロセスを編集できます。ただし，旧バージョンとの整合性を保つために，次に示す注意事項があります。

プロパティから，サービス名またはステータスの永続化は変更できません。

既存の受付アクティビティの定義情報の変更や，既存の受付アクティビティの削除はできません。アクティビティ名の直接編集もできません。

既存の応答アクティビティの定義情報の変更や，削除はできません。

既存の受付アクティビティや応答アクティビティで使用している変数の定義情報の変更や，変数の削除はできません。ただし，使用している部分が変更されていなければ，部分名，指定式および型を変更できます。

既存の受付アクティビティや応答アクティビティで使用している相関セットの定義情報の変更や，相関セットの削除はできません。

既存のビジネスプロセスでユーザ定義受付を作成したあとにバージョンアップした場合，既存のユーザ定義受付は削除できません。

6.9　ビジネスプロセスの検証

作成したビジネスプロセスの内容が妥当かどうか検証できます。

必要なビジネスプロセス定義がない場合，または定義の関係が正しくない場合は正常に動作しません。そのため，実行環境で実行する前に，すべてのビジネスプロセス定義を検証する必要があります。

作成したビジネスプロセスに必要な項目がそろっているか，それらの関係が正しいかどうかを検証します。必要に応じて任意のタイミングで検証できます。

ビジネスプロセスの検証として，次の検証を行います。

ビジネスプロセス定義の検証
ビジネスプロセスの定義内容を検証します。必須項目，ビジネスプロセスが構造化されているか，およびそのほかの検証を行います。

呼出サービス部品の検証
サービス呼出アクティビティで呼び出しているサービス部品との整合性を検証します。

Javaの検証
Java呼出アクティビティで使用するJavaクラス，およびJavaクラスから使用するライブラリについて検証します。

データ変換定義検証
データ変換アクティビティのデータ変換定義の内容を検証します。

ユーザ定義受付検証
検証対象のビジネスプロセスに含まれるユーザ定義受付の定義内容を検証します。

ビジネスプロセス定義，呼出サービス部品，およびJavaの検証内容については，「6.9.1　検証内容」を参照してください。

ユーザ定義受付の検証の内容については，「8.7　ユーザ定義受付の検証」を参照してください。

＜この節の構成＞

6.9.1　検証内容

6.9.2　検証方法

6.9.3　検証内容の表示

6.9.1　検証内容

ビジネスプロセスの検証では，次の内容を検証します。

必須項目の検証

定義されたビジネスプロセスが構造化されているかの検証

そのほかの検証

検証中にエラーが100件を超えた場合，検証途中でも検証が中止されます。この場合は，作成したビジネスプロセスを見直してください。

ビジネスプロセスの検証ではエラーにならなくても，ビジネスプロセスを実行したときに初めてエラーとなる場合があります。このような場合，ログを採取し，ログに出力されたメッセージに従って対処します。

なお，ビジネスプロセスの検証は，基本的に定義情報だけの検証であり，ビジネスプロセスの実行時にエラーが発生しないことを保証するものではありません。よって，運用する前に十分なテストを行ってください。

＜この項の構成＞

(1)　必須項目の検証

(2)　定義されたビジネスプロセスが構造化されているかの検証

(3)　そのほかの検証

(4)　呼出サービス部品の検証

(5)　Javaの検証

(6)　検証できない内容

(1)　必須項目の検証

ビジネスプロセス定義画面に記述したビジネスプロセスの各アクティビティに，必須の項目が定義されているかどうかが検証されます。また，任意の項目は，設定されている場合は検証されます。必須項目の検証内容と対処を次の表に示します。

表6-18　必須項目の検証内容と対処

項番
検証内容
エラーになった場合の対処

1
ビジネスプロセス名の長さが，64バイト以内か。
次のどちらかの方法で対処します。

ビジネスプロセス名を64バイト以下に変更。

使用する文字コードを変更。

2
変数・相関セット一覧ダイアログで定義した変数名の長さが，64バイト以内か。
次のどちらかの方法で対処します。

変数名を64バイト以下に変更。

使用する文字コードを変更。

3
変数・相関セット一覧ダイアログで定義した変数の型がメッセージ型の場合，変数に対応する電文フォーマットが設定されているか。
変数・相関セット一覧ダイアログで，メッセージ型の変数に対応する電文フォーマットを設定します。

4
変数・相関セット一覧ダイアログで定義した変数の部分名が設定されているか。
変数・相関セット一覧ダイアログで，変数の部分名を設定します。

5
変数・相関セット一覧ダイアログで定義した変数の部分名に，指定式が設定されているか。
変数・相関セット一覧ダイアログで，変数の部分名に指定式を設定します。

6
変数・相関セット一覧ダイアログで定義した変数の部分名に，型が設定されているか。
変数・相関セット一覧ダイアログで，変数の部分名に型を設定します。

7
変数・相関セット一覧ダイアログで定義した相関セット名の長さの長さが64バイト以内か。
次のどちらかの方法で対処します。

相関セット名を64バイト以下に変更。

使用する文字コードを変更。

8
変数・相関セット一覧ダイアログで定義した相関セットに，部分名が一つ以上設定されているか。
変数・相関セット一覧ダイアログで，相関セットに，部分名を一つ以上設定します。

9
変数・相関セット一覧ダイアログで定義した相関セットに，利用変数名が設定されているか。
変数・相関セット一覧ダイアログで，相関セットに利用変数を設定します。

10
変数・相関セット一覧ダイアログで定義した相関セットに，有効な変数名が設定されているか。
変数・相関セット一覧ダイアログで，有効な変数名を設定します。

11
変数・相関セット一覧ダイアログで定義した相関セットで指定されている変数に，基本型の部分があるか。
変数・相関セット一覧ダイアログで，基本型の部分を持つ変数を設定します。

12
変数・相関セット一覧ダイアログで定義した相関セットに，部分名が設定されているか。
変数・相関セット一覧ダイアログで，相関セットに部分名を設定します。

13
変数・相関セット一覧ダイアログで定義した相関セットに，有効な部分名が設定されているか。
変数・相関セット一覧ダイアログで，有効な部分名を設定します。

14
アクティビティのフォルト処理で，有効な変数が設定されているか。
フォルト処理の割当ダイアログで，有効な変数を設定します。

15
アクティビティのフォルト処理で，遷移先が設定されているか。
フォルト処理の割当ダイアログで，遷移先を設定します。

16
アクティビティのフォルト処理で，割当変数が設定されているか。
フォルト処理の割当ダイアログで，割当変数を設定します。

17
アクティビティのフォルト処理で，遷移先が設定されているか。
フォルト処理の割当ダイアログで，遷移先を設定します。

18
受付アクティビティで，オペレーション名が設定されているか。
受付アクティビティで，オペレーション名を設定します。

19
アクティビティ名の長さが64バイト以内か。
次のどちらかの方法で対処します。

アクティビティ名を64バイト以下に変更。

使用する文字コードを変更。

20
受付アクティビティで，有効なヘッダ割当変数が設定されているか。
受付アクティビティで，有効なヘッダ割当変数を設定します。

21
受付アクティビティで，有効なルート要素および名前空間が設定されているか。
受付アクティビティで，有効なルート要素および名前空間を設定します。

22
受付アクティビティで，有効なボディ割当変数が設定されているか。
受付アクティビティで，有効なボディ割当変数を設定します。

23
受付アクティビティで，有効な割当相関セットが設定されているか。
受付アクティビティで，有効な相関セットを設定します。

24
リンクコネクションで，リンク名が指定されているか。
リンクコネクションに，リンク名を設定します。

25
リンクコネクションで，リンク先の遷移条件が「あり」に設定されている場合に，XPathが設定されているか。
リンクコネクションについて，次のどちらかの方法で対処します。

遷移条件を設定。

遷移条件に「なし」を選択。

26
応答アクティビティで，オペレーション名が設定されているか。
応答アクティビティで，オペレーション名を設定します。

27
応答アクティビティで，有効なヘッダ割当変数が設定されているか。
応答アクティビティで，有効なヘッダ割当変数を設定します。

28
応答アクティビティで，有効なルート要素および名前空間が設定されているか。
応答アクティビティで，有効なルート要素および名前空間を設定します。

29
応答アクティビティで，有効なボディ割当変数が設定されているか。
応答アクティビティで，有効なボディ割当変数を設定します。

30
応答アクティビティで，有効な割当相関セットが設定されているか。
応答アクティビティで，有効な相関セットを設定します。

31
応答アクティビティで，ボディ割当変数が指定されているか。
応答アクティビティで，ボディ割当変数を設定します。

32
サービス呼出アクティビティで，呼び出すサービス名が設定されているか。
サービス呼出アクティビティで，呼び出すサービス名を設定します。

33
サービス呼出アクティビティで，有効な要求電文用のヘッダ割当変数が設定されているか。
サービス呼出アクティビティで，有効な要求電文用のヘッダ割当変数を設定します。

34
サービス呼出アクティビティで，有効な要求電文用のルート要素および名前空間が設定されているか。
サービス呼出アクティビティで，有効な要求電文用のルート要素および名前空間を設定します。

35
サービス呼出アクティビティで，有効な応答電文用のヘッダ割当変数が設定されているか。
サービス呼出アクティビティで，有効な応答電文用のヘッダ割当変数を設定します。

36
サービス呼出アクティビティで，有効な応答電文用のルート要素および名前空間が設定されているか。
サービス呼出アクティビティで，有効な応答電文用のルート要素および名前空間を設定します。

37
サービス呼出アクティビティで，有効な要求電文用のボディ割当変数が設定されているか。
サービス呼出アクティビティで，有効な要求電文用のボディ割当変数を設定します。

38
サービス呼出アクティビティで，有効な応答電文用のボディ割当変数が設定されているか。
サービス呼出アクティビティで，有効な応答電文用のボディ割当変数を設定します。

39
サービス呼出アクティビティで，同期呼び出しの場合に，応答電文用のボディ割当変数が設定されているか。
サービス呼出アクティビティで，同期呼び出しの場合，応答電文用のボディ割当変数を設定します。

40
サービス呼出アクティビティで，有効な相関セットが設定されているか。
サービス呼出アクティビティで，有効な相関セットを設定します。

41
代入アクティビティで，一つ以上の代入操作が設定されているか。
代入アクティビティで，一つ以上の代入操作を設定します。

42
代入アクティビティで，コピー元が設定されているか。
代入アクティビティで，コピー元を設定します。

43
代入アクティビティで，コピー先が設定されているか。
代入アクティビティで，コピー先を設定します。

44
代入アクティビティで，有効なコピー元変数が設定されているか。
代入アクティビティで，有効なコピー元変数を設定します。

45
代入アクティビティで，コピー元に有効な部分名が設定されているか。
代入アクティビティで，コピー元に有効な部分名を設定します。

46
データ変換アクティビティで，変換元変数が設定されているか。
データ変換アクティビティで，変換元変数を設定します。

47
データ変換アクティビティで，有効な変換元変数が設定されているか。
データ変換アクティビティで，有効な変換元変数を設定します。

48
データ変換アクティビティで，データ変換定義が設定されているか。
データ変換アクティビティで，データ変換定義を設定します。

49
データ変換アクティビティのデータ変換定義が正しいか。
検証で出力されたメッセージを参考にして，正しい定義に修正します。

50
代入アクティビティで，コピー元のタイプとして，変数と式のどちらかが選択されているか。
代入アクティビティで，コピー元のタイプとして，変数と式のどちらかを設定します。

51
代入アクティビティで，コピー元の変数が選択されている場合，変数名が設定されているか。
代入アクティビティで，コピー元の変数を設定します。

52
代入アクティビティで，コピー元の式が選択されている場合，式が設定されているか。
代入アクティビティで，コピー元の式を設定します。

53
代入アクティビティで，コピー先の変数名が設定されている場合，有効な変数が設定されているか。
代入アクティビティで，有効なコピー先変数を設定します。

54
データ変換アクティビティで，有効な変換先変数が設定されているか。
データ変換アクティビティで，有効な変換先変数を設定します。

55
代入アクティビティで，コピー先に有効な部分名が設定されているか。
代入アクティビティで，コピー先に有効な部分名を設定します。

56
代入アクティビティのコピー先，またはデータ変換アクティビティの変換先のどちらかで，変数が設定されているか。
次のどちらかの方法で対処します。

代入アクティビティで，コピー先の変数を設定します。

データ変換アクティビティで，変換先の変数を設定します。

57
並列処理開始アクティビティで，設定するリンク名の長さが64バイト以内か。
並列処理開始アクティビティで，定義されている，リンク名を次のどちらかの方法で対処します。

リンク名を64バイト以下に変更。

使用する文字コードを変更。

58
分岐アクティビティで，分岐条件を一つ以上設定しているか。
分岐アクティビティで，一つ以上の分岐条件を設定します。

59
分岐アクティビティで，条件分岐またはデフォルトに割り当てられていない遷移先があるか。
分岐アクティビティで，遷移先を条件分岐またはデフォルトに割り当てます。

60
分岐アクティビティで，条件名が設定されているか。
分岐アクティビティで，分岐の条件名を設定します。

61
分岐アクティビティで，条件が設定されているか。
分岐アクティビティで，分岐の条件を設定します。

62
繰り返しアクティビティで，繰り返し条件が設定されているか。
繰り返しアクティビティで，繰り返し条件を設定します。

63
Java呼出アクティビティで，Javaクラス名が設定されているか。
Java呼出アクティビティで，Javaクラス名を設定します。

64
Java呼出アクティビティで，有効な引数用割当変数が設定されているか。
Java呼出アクティビティで，有効な引数用割当変数を設定します。

65
Java呼出アクティビティで，有効な戻り値用割当変数が設定されているか。
Java呼出アクティビティで，有効な戻り値用割当変数を設定します。

66
フォルト送出アクティビティで，有効な割当変数が設定されているか。
フォルト送出アクティビティで，有効な割当変数を設定します。

67
待機アクティビティで，待機時間が設定されているか。
待機アクティビティで，待機時間を設定します。

68
HCSCTEプロジェクトのlibディレクトリにディレクトリがないか。
HCSCTEプロジェクトのlibディレクトリからディレクトリを取り除きます。

69
HCSCTEプロジェクトのlibディレクトリに次の名前のファイルがないか。

csbdef.jar

cscbp_ejb.jar

csbjava.jar

ファイルを削除するか，ファイル名を変更し，HCSCTEプロジェクトのlibディレクトリに左記のファイルが含まれないようにします。

70
検証アクティビティで，検証する変数が設定されているか。
検証アクティビティで，検証する変数を設定します。

71
検証アクティビティで，検証する変数に有効な変数名が設定されているか。
検証アクティビティで，検証する変数に有効な変数名を設定します。

(2)　定義されたビジネスプロセスが構造化されているかの検証

ビジネスプロセスが，コネクションを使用して構造化されているかどうかが検証されます。

検証でエラーになった場合，エラーとなったコネクションの元のコネクションもエラーとみなされます。

例えば，次の図のように，コネクションEがなかった場合は，分岐アクティビティや並列アクティビティなどに正常なコネクションが含まれていても，分岐アクティビティを元とするコネクション，並列アクティビティを元とするコネクション，および開始アクティビティを元とするコネクションすべてがエラーとみなされます。ただし，処理Dがフォルト送出アクティビティの場合，コネクションEは設定できないためエラーにはなりません。

図6-16　コネクションの例

定義されたビジネスプロセスの構造化の検証内容と対処を次の表に示します。

表6-19　定義されたビジネスプロセスの構造化の検証内容と対処

項番
分類
検証内容
エラーになった場合の対処

1
次の接続先
遷移元が開始アクティビティの場合，次の接続先があるか。
開始アクティビティを先頭にして，接続移先のアクティビティを設定します。

2
遷移元が並列処理開始アクティビティの場合，次の接続先があるか。
並列処理開始アクティビティ，およびリンクコネクションで，接続するアクティビティを設定します。

3
遷移元が分岐開始アクティビティの場合，次の接続先があるか。
分岐開始アクティビティで，接続するアクティビティを設定します。

4
遷移元が上記以外のアクティビティの場合，次の接続先があるか。
遷移元のアクティビティに接続するアクティビティを設定します。

5
並列処理
並列処理が分岐終了アクティビティに接続していないか。
並列処理，対応する並列処理終了アクティビティに接続します。

6
次に示すコネクションが，並列処理終了アクティビティに接続していないか。

開始アクティビティを元とするコネクション※

あるアクティビティのあるフォルト処理の開始点を元とするコネクション※

次のどちらかの方法で対処します。

並列処理終了アクティビティを削除。

並列処理終了アクティビティを，別のアクティビティに変更。

7
並列処理開始アクティビティからつながる並列処理終了アクティビティが複数ないか。
並列処理開始アクティビティを，対応する一つの並列処理終了アクティビティに接続します。

8
並列処理終了アクティビティが，対応する並列処理以外からのコネクションも受け付けていないか。
対応する並列処理を並列処理終了アクティビティに接続します。

9
並列処理が終了アクティビティに接続していないか。
並列処理を並列処理終了アクティビティに接続します。

10
並列処理開始アクティビティから直接，並列処理終了アクティビティに接続していないか。
並列処理開始アクティビティと，対応する並列処理終了アクティビティの間には，一つ以上のアクティビティを設定します。

11
分岐処理
分岐処理が並列処理終了アクティビティに接続していないか。
分岐処理を対応する分岐終了アクティビティに接続します。

12
次に示すコネクションが，分岐処理終了アクティビティに接続していないか。

開始アクティビティを元とするコネクション※

あるアクティビティのあるフォルト処理の開始点を元とするコネクション※

次のどちらかの方法で対処します。

分岐終了アクティビティを削除。

分岐終了アクティビティを，別のアクティビティに変更。

13
分岐開始アクティビティからつながる分岐終了アクティビティが複数ないか。
分岐開始アクティビティを，対応する一つの分岐終了アクティビティに接続します。

14
分岐終了アクティビティが，対応する分岐処理以外からのコネクションも受け付けていないか。
対応する分岐処理を分岐終了アクティビティに接続します。

15
分岐処理が終了アクティビティに接続していないか。
分岐処理を分岐終了アクティビティに接続します。

16
分岐開始アクティビティから直接，分岐終了アクティビティに接続していないか。
分岐アクティビティと，対応する分岐終了アクティビティの間には，一つ以上のアクティビティを設定します。

17
フォルト処理
あるアクティビティのあるフォルト処理の開始点を元とするコネクションを処理中に，終了となっていないか。
フォルト処理の接続先から，終了アクティビティを削除します。

注※

アクティビティを元とするコネクション，およびあるアクティビティのあるフォルト処理の開始点を元とするコネクションについては，「図6-16 コネクションの例」を参照してください。

(3)　そのほかの検証

そのほかに次の表に示す内容が検証されます。

表6-20　そのほかの検証内容と対処

項番
分類
検証内容
エラーになった場合の対処

1
ビジネスプロセス共通
ビジネスプロセスの最初に実行される基本アクティビティが，インスタンスを生成する受付アクティビティであるか。
開始アクティビティの次に，インスタンスを生成する受付アクティビティを接続します。

2
リンクコネクションに有効なリンク名が設定されているか。
リンク元の並列処理開始アクティビティで，リンク名を設定します。

3
代入アクティビティのコピー元とコピー先の変数の型が等しいか。
代入アクティビティで，コピー先とコピー元の変数の型を同じに設定します。

4
同一のオペレーション名を持つ応答アクティビティの変数の型が同一か。
同一のオペレーション名を持つ応答アクティビティで，同じ割当変数名を設定します。

5
同一オペレーションの応答アクティビティのフォルト名に対応付けられている変数が一つか。

（正しくない例）

フォルト名faultAに変数variableXとvariableYの二つが対応している場合

（正しい例）

フォルト名faultAに変数variableX，フォルト名faultBに変数variableYが対応している場合

フォルト名faultAに変数variableX，フォルト名faultBに変数variableXが対応している場合

フォルト処理の割当ダイアログで，同一オペレーションの応答アクティビティのフォルト名に対応する割当変数を一つに設定します。

6
循環するリンクコネクションが設定されていないか。
リンクコネクションが循環しないように設定します。

7
フォルト処理外からフォルト処理内へのリンクコネクションが張られていないか。
フォルト処理からフォルト処理内へのリンクコネクションを削除するよう設定します。

8
リンク名が複数回利用されていないか。
リンクコネクションで，リンク名がビジネスプロセス内で一意になるよう変更します。

9
同期の受付アクティビティのオペレーションに対応する応答アクティビティがあるか。
同期の受付アクティビティのオペレーションに対応する応答アクティビティを作成します。

10
応答アクティビティのオペレーションに対応する，同期の受付アクティビティがあるか。
次のどちらかの方法で対処します。

応答アクティビティのオペレーションに対応する同期の受付アクティビティを作成します。

応答アクティビティのオペレーション名を変更します。

11
インスタンスを生成するすべての受付アクティビティで，使用されている相関セットが同じか。
インスタンスを生成するすべての受付アクティビティで，使用する相関セットが同じになるように設定します。

12
インスタンスを生成する受付アクティビティがあるか。
次のどちらかの方法で対処します。

受付アクティビティで，インスタンス生成を「yes」に変更します。

インスタンスを生成する受付アクティビティを作成します。

13
ビジネスプロセスの開始点からコネクションを追っても到達できないアクティビティがあるか。
次のどちらかの方法で対処します。

到達できないアクティビティを削除します。

到達できるようにコネクションを設定します。

14
フォルト送出アクティビティから送出されたフォルト変数が，上位のスコープのフォルト処理でキャッチされるか。
次のどちらかの方法で対処します。

フォルト処理に適切な割当変数を設定します。

フォルト処理に割当変数として「catch-all」を設定します。

15
永続化しないビジネスプロセスの場合
永続化しないビジネスプロセスで，応答アクティビティのあとに実行されるアクティビティがないか。
応答アクティビティのあとにある実行されるアクティビティを削除します。

16
永続化しないビジネスプロセスに，非同期の受付アクティビティや非同期のサービス呼出アクティビティがないか。
次のどちらかの方法で対処します。

非同期の受付アクティビティや非同期のサービス呼出アクティビティを同期に変更します。

非同期の受付アクティビティや非同期のサービス呼出アクティビティを削除します。

17
永続化しないビジネスプロセスに，待機アクティビティがないか。
待機アクティビティを削除します。

「表6-20 そのほかの検証内容と対処」に示した検証の対象となるリンクの状態を次の図に示します。

図6-17　検証の対象となるリンクの状態

(4)　呼出サービス部品の検証

サービス呼出アクティビティに割り当てられているサービス部品のサービス名およびオペレーション名について検証されます。

呼出サービス部品の検証内容と対処を次の表に示します。

表6-21　呼出サービス部品の検証内容と対処

項番 | 検証内容 | エラーになった場合の対処
1 | サービス呼出アクティビティに割り当てられているサービス名がリポジトリ内に実在するか。 | サービス呼出アクティビティに，リポジトリ内に実在するサービス名を割り当ててください。
2 | サービス呼出アクティビティに割り当てられているサービス名がリポジトリ内に実在する場合，アクティビティに割り当てられているオペレーション名が呼出先サービス部品に存在するか。 | サービス呼出アクティビティに，リポジトリ内に実在するオペレーション名を割り当ててください。
3 | サービス呼出アクティビティに割り当てられているサービス名およびオペレーション名がリポジトリ内に実在する場合，アクティビティに設定されている通信モデルが呼出先のサービス部品およびオペレーションの通信モデルと一致するかどうか。 | サービス呼出アクティビティで，適切なサービス部品およびオペレーションを選択し直してください。

(5)　Javaの検証

Java呼出アクティビティで設定されているJavaクラスについて検証されます。

Javaの検証内容と対処を次の表に示します。

表6-22　Javaの検証内容と対処

項番
検証内容
エラーになった場合の対処

1
Java呼出アクティビティの「Javaクラス名」に指定されているクラスが，HCSCTEプロジェクトのclassesディレクトリ内に存在するか。
次のどちらかの対処を実施してください。

「Javaエディタ起動」からJavaクラスを作成します。

Java呼出アクティビティにHCSCTEプロジェクトのclassesディレクトリ内に存在するクラスを指定します。

2
Java呼出アクティビティで指定されているクラス※で，コンパイルエラーが検出されていないか。
Java呼出アクティビティで指定されているクラスのコンパイルエラーを解消するか，コンパイルエラーが発生しないクラスを指定してください。

注※

Java呼出アクティビティで指定されているクラスだけが検証の対象です。そのクラスから参照しているほかのクラスは検証の対象外です。

(6)　検証できない内容

ビジネスプロセスの検証ではエラーにならなくても，ビジネスプロセスを実行したときに初めてエラーとなる場合があります。このような場合，ログを採取し，ログに出力されたメッセージに従って対処します。ログの出力先については，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「4.3　アプリケーションサーバのログ（J2EEアプリケーションを実行するシステム）」を参照してください。

ビジネスプロセスの検証でエラーにならないが，ビジネスプロセスを実行したときにエラーになる例を次に示します。

アクティビティが生成したインスタンスの数が32,762を超えた。

サービスリクエスタで指定したオペレーション名の受付アクティビティに到達できない。

サービスリクエスタで指定したオペレーション名の受付アクティビティが待ち受け状態となっている。

サービスリクエスタで指定したオペレーション名の受付アクティビティに対応する応答アクティビティに到達できない。

プロセスインスタンスを生成する受付アクティビティの前に，受付アクティビティ以外の基本アクティビティを実行した。

サービスリクエスタ側で応答を待っていない状態で，応答アクティビティが実行された。

サービスリクエスタで指定した受付アクティビティのオペレーション名と，サービスリクエスタに応答として返す応答アクティビティのオペレーション名が一致しない。

定められた回数を超えて繰り返しを実行した。

6.9.2　検証方法

検証する手順を次に示します。

ツリービューのサービス定義一覧で，右クリックします。
サービス一覧のポップアップメニューが表示されます。

ポップアップメニューから「検証」を選択します。
検証結果がコンソールビューに表示されます。

また，パッケージングを実施した場合も，自動的に検証されます。

なお，検証する前にビジネスプロセスおよびユーザ定義受付が保存されていないときはリソース保管ダイアログが表示され，定義を保存できます。複数のビジネスプロセスおよびユーザ定義受付が編集中の場合は，複数回ダイアログが表示されます。保存する場合は［はい］ボタンをクリックします。これ以降，確認ダイアログを表示しないで，すべて保存する場合は［すべてはい］ボタンをクリックします。

6.9.3　検証内容の表示

検証結果として，メッセージがコンソールビューに表示されます。メッセージに従って，修正します。

表示されるメッセージの種類を次の表に示します。

表6-23　メッセージの種類

種類
説明

エラー
次のどちらかの場合に表示されます。

定義の内容に誤りがある。

正しい構文で定義しているが，実行できない定義をしている。

警告
実行時にエラーとなる可能性がある定義をしている場合に表示されます。

情報
追加情報が表示されます。

6.10　ビジネスプロセスの削除

ビジネスプロセスをバージョンアップする場合などに，ビジネスプロセスを削除できます。

定義したビジネスプロセスは削除できます。

＜この節の構成＞

(1)　削除方法

(2)　削除できないビジネスプロセス

(1)　削除方法

削除する手順を次に示します。次に示す二つの方法があります。

方法1

ツリービューのサービス定義一覧で，ビジネスプロセスを選択します。

［Delete］キーを押します。
削除を確認するダイアログボックスが表示されます。

［はい］ボタンをクリックします。
指定したビジネスプロセスが削除されます。

方法2

ツリービューのサービス定義一覧で，ビジネスプロセスを選択して右クリックします。
サービス一覧のポップアップメニューが表示されます。

ポップアップメニューから「削除」を選択します。
削除を確認するダイアログボックスが表示されます。

［はい］ボタンをクリックします。
指定したビジネスプロセスが削除されます。

注意

バージョンアップ時，最新のビジネスプロセスだけを削除することはできません。すべてのバージョンのビジネスプロセスが削除されます。

(2)　削除できないビジネスプロセス

次に示す場合，ビジネスプロセスは削除できません。

すでに配備定義されている場合

サービス呼出アクティビティで使用されている場合

7.　データ変換の定義

この章では，データ変換に必要な電文フォーマット定義ファイルおよびデータ変換定義について説明します。

＜この章の構成＞

7.1　データ変換に必要なファイルおよび定義

7.2　電文フォーマット定義ファイルの作成

7.3　データ変換定義

7.4　マッピングする

7.5　ファンクションを使用した値の加工

7.6　くり返しの設定

7.7　ノード条件を設定する

7.8　マッピング定義をコピーする

7.9　カスタムファンクションで使用するJavaプログラムの作成

7.10　マッピングの条件

7.1　データ変換に必要なファイルおよび定義

データ変換に必要なファイルの作成および定義の手順を次に示します。

電文フォーマット定義ファイルを作成します。
詳細については，「7.2　電文フォーマット定義ファイルの作成」を参照してください。

データ変換を定義します。
詳細については，「7.3　データ変換定義」を参照してください。

7.2　電文フォーマット定義ファイルの作成

データ変換定義の基となる電文フォーマット定義ファイルを作成する方法，および設定する方法について説明します。また，電文フォーマット定義ファイルおよびバイナリ電文フォーマットに関する注意事項についても説明します。

＜この節の構成＞

(1)　電文フォーマット定義ファイルの作成

(2)　電文フォーマット定義ファイルの設定

(3)　電文フォーマット定義ファイル作成時の注意事項

(4)　セパレータが設定されているバイナリ電文フォーマットに関する注意事項

(5)　任意形式（any形式）の電文フォーマットに関する注意事項

(1)　電文フォーマット定義ファイルの作成

電文フォーマット定義ファイルには，変換元の電文フォーマット定義ファイルと変換先の電文フォーマット定義ファイルがあります。電文フォーマット定義ファイルの種類および作成方法については，「4.　電文フォーマットの作成」を参照してください。

データ変換の定義に利用する電文フォーマット定義ファイルは，「2.6.5　XMLスキーマの適用範囲」に示す条件に従って作成してください。

(2)　電文フォーマット定義ファイルの設定

作成した電文フォーマット定義ファイルは，サービスアダプタ定義画面またはビジネスプロセス定義画面で設定します。サービスアダプタ定義画面，ビジネスプロセス定義画面での設定方法については，それぞれ「5.3　アダプタの内容の定義」，「6.3　ビジネスプロセスの内容の定義」を参照してください。

(3)　電文フォーマット定義ファイル作成時の注意事項

画面に表示されない要素

annotation，appinfo，documentation，およびnotationは，変換元スキーマツリービューアおよび変換先スキーマツリービューアにツリー表示されません。

sequence要素またはchoice要素の画面表示

sequence要素またはchoice要素は，定義するXMLスキーマの内容によって，変換元スキーマツリービューアおよび変換先スキーマツリービューアに次のように表示されます。

#(sequence)
sequence要素またはchoice要素下の，出現回数が1回に固定されているsequence要素（コンポジタ）を示します。

#(choice)
sequence要素またはchoice要素下の，出現回数が1回に固定されているchoice要素（コンポジタ）を示します。

#anonymous
出現回数が1回に固定されていないsequence要素，choice要素，またはall要素（コンポジタ）を示します。

(4)　セパレータが設定されているバイナリ電文フォーマットに関する注意事項

セパレータが設定されているバイナリ電文フォーマットを利用する場合，次の点に注意が必要です。

出現回数に［データの終端まで］を定義した場合で，次の二つの条件を満たす場合，繰り返しによる空要素の生成は一つだけになります。

弟要素が存在しない。

中間区切り文字の直後に繰り返しの終了文字が出現する

入力するバイナリデータにセパレータ文字と同じ値のバイトデータが含まれている場合（マルチバイト文字の構成バイトの一部分である場合も含む），バイナリデータの解析に失敗します。

エスケープ文字を付加しなくてもデータと認識される場合があるので注意してください。
例：開始文字と同じ文字列が，開始文字の直後に設定されている場合

(5)　任意形式（any形式）の電文フォーマットに関する注意事項

任意形式（any形式）を電文フォーマット定義ファイルに設定した場合に，カスタムアダプタやカスタム受付の一部の設定が無視されます。

無視される設定を次の表に示します。

表7-1　任意形式（any形式）で無視される設定

対象となるコンポーネント
無視される設定

カスタムアダプタ
DBアダプタ
HCSCサーバランタイム定義ファイル(cscsvconfig.properties)

xmltelegram-maxcache-num

telegram-validation

xmltelegram-namespace-complement

telegram-undefined-character-code

独自定義ファイル(csccustomadapter.properties)

custom-adapter.dt-skip

独自定義ファイル(csc_owncodeconvert.properties)

すべての設定

FTPアダプタ

TP1アダプタ

ファイル操作アダプタ

カスタム受付
TP1RPC受付
独自定義ファイル(cscurecptp1rpc.properties)

urecp-tp1rpc.dt-skip

独自定義ファイル(csc_owncodeconvert.properties)

すべての設定

7.3　データ変換定義

データ変換定義画面で，変換元の電文フォーマット定義ファイルおよび変換先の電文フォーマット定義ファイルを設定して，データ変換を定義します。データ変換定義画面で作成できる定義を次に示します。

データ変換定義

サービスアダプタやビジネスプロセスの定義で，各種フォーマット間のデータ変換パターンを定義することをデータ変換定義といいます。

データ変換定義は，XMLスキーマファイルまたはバイナリフォーマット定義ファイルとデータ変換定義ファイルから構成されています。

マッピング定義

データ変換定義のデータ変換パターンの情報をマッピング定義といいます。

この情報をエクスポートしたものをマッピング定義ファイル（拡張子：.mdo）と呼びます。マッピング定義ファイルには，データ変換定義画面の編集結果が保存されます。

データ変換を定義する手順について説明します。

＜この節の構成＞

7.3.1　データ変換の定義手順

7.3.2　電文フォーマットを変更した場合の定義手順

7.3.1　データ変換の定義手順

データ変換定義画面でデータ変換を定義する手順を次に示します。

＜この項の構成＞

(1)　新規にデータ変換を定義する場合

(2)　定義済みのデータ変換を編集する場合

(3)　ルート要素を変更する場合

(1)　新規にデータ変換を定義する場合

新規にデータ変換を定義する手順を次に示します。なお，データ変換定義画面を表示する方法によって，データ変換を定義する手順が異なります。

(a)　アダプタ定義画面，またはビジネスプロセス定義画面のデータ変換アクティビティから表示する方法

アダプタ定義画面，またはビジネスプロセス定義画面のデータ変換アクティビティから，データ変換定義画面を表示します。
データ変換定義画面が表示されたあと，［ルート要素選択］ダイアログが表示されます。
データ変換定義画面の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.5　データ変換定義画面」を参照してください。［ルート要素選択］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.1　ルート要素選択ダイアログ」を参照してください。

すべてのスキーマ論理名のルート要素を選択します。
［OK］ボタンがクリックできる状態になります。

［OK］ボタンをクリックします。
変換元スキーマツリービューアおよび変換先スキーマツリービューアに，選択したルート要素のスキーマがツリー表示されます。

マッピングします。
マッピングについては，「7.4　マッピングする」を参照してください。

データ変換定義画面の変換元スキーマツリービューア，マッピングビューア，または変換先スキーマツリービューアの適当な場所で右クリックして，［検証］を選択します。
検証が実行されます。

注意

手順3.で［キャンセル］ボタンをクリックした場合，エラーメッセージが表示されます。エラーメッセージが表示されたダイアログで［OK］ボタンをクリックすると，再度［ルート要素選択］ダイアログが表示されます。

(b)　Eclipseのメニューから表示する場合

Eclipseのメニューから，［ファイル］－［新規］－［その他］を選択します。
ウィザードを選択するダイアログが表示されます。

［HCSCTE マッピング定義］－［マッピング定義ファイル］を選択し，［次へ］ボタンをクリックします。
［新規マッピング定義ファイル］ダイアログが表示されます。

マッピング定義ファイルを保存するディレクトリおよびマッピング定義ファイル名を入力し，［次へ］ボタンをクリックします。

変換元スキーマおよび変換先スキーマを選択して，［終了］ボタンをクリックします。
データ変換定義画面が表示されたあと，［ルート要素選択］ダイアログが表示されます。データ変換定義画面の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.5　データ変換定義画面」を参照してください。［ルート要素選択］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.1　ルート要素選択ダイアログ」を参照してください。

すべてのスキーマ論理名のルート要素を選択します。
［OK］ボタンがクリックできる状態になります。

［OK］ボタンをクリックします。
変換元スキーマツリービューアおよび変換先スキーマツリービューアに，選択したルート要素のスキーマがツリー表示されます。

マッピングします。
マッピングについては，「7.4　マッピングする」を参照してください。

データ変換定義画面の適当な場所で右クリックして，［データ変換定義生成］を選択します。
データ変換定義を保存するディレクトリおよびファイル名を指定するダイアログが表示されます。

データ変換定義を保存するディレクトリおよびファイル名を指定して，［保存］ボタンをクリックします。
検証が実行され，データ変換定義が保存されます。

注意

手順6.で［キャンセル］ボタンをクリックした場合，エラーメッセージが表示されます。エラーメッセージが表示されたダイアログで［OK］ボタンをクリックすると，再度［ルート要素選択］ダイアログが表示されます。

(2)　定義済みのデータ変換を編集する場合

定義済みのデータ変換を編集する手順を次に示します。

アダプタ定義画面，またはビジネスプロセス定義画面のデータ変換アクティビティから，データ変換定義画面を表示します。
定義済みの状態のデータ変換定義画面が表示されます。
データ変換定義画面の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.5　データ変換定義画面」を参照してください。

必要に応じてルート要素を変更します。
ルート要素を変更する方法については，「7.3.1(3) ルート要素を変更する場合」を参照してください。

マッピングを編集します。
マッピングについては，「7.4　マッピングする」を参照してください。

データ変換定義画面の変換元スキーマツリービューア，マッピングビューア，または変換先スキーマツリービューアの適当な場所で右クリックして，［検証］を選択します。
検証が実行されます。

(3)　ルート要素を変更する場合

ルート要素は，ルート要素を選択してスキーマをツリー表示させたあとに，変更することができます。

ルート要素を変更する方法を次に示します。なお，ルート要素を変更する方法は，データ変換定義画面の表示方法によって異なります。

注意

DBアダプタの定義の場合，変換元（DBアダプタ側）のルート要素は変更しないでください。ルート要素を変更した場合，エラーになります。

(a)　アダプタ定義画面，またはビジネスプロセス定義画面のデータ変換アクティビティからデータ変換定義画面を表示した場合

変換元スキーマツリービューアまたは変換先スキーマツリービューアのスキーマ論理名を右クリックして，［ルート要素選択］を選択します。
［ルート要素選択］ダイアログが表示されます。

スキーマ論理名のルート要素を変更します。

［OK］ボタンをクリックします。
変換元スキーマツリービューアおよび変換先スキーマツリービューアに，変更したルート要素のスキーマがツリー表示されます。
変更前の状態でマッピングしていた場合，変更前の編集内容が破棄されることを知らせるダイアログが表示されます。変更前の編集内容を破棄して，新しく選択したルート要素のスキーマをツリー表示する場合は，［OK］ボタンをクリックします。

(b)　Eclipseのメニューからデータ変換定義画面を表示した場合

変換元スキーマツリービューアまたは変換先スキーマツリービューアのスキーマ論理名を右クリックして，［ルート要素選択］を選択します。
［変換元・変換先スキーマファイル設定］ダイアログが表示されます。

変換元スキーマおよび変換先スキーマを選択します。
［変換元・変換先スキーマファイル設定］ダイアログには，前回指定したファイルが設定されています。前回指定したファイルから変更しない場合，ファイルを設定し直す必要はありません。

［OK］ボタンをクリックします。
［ルート要素選択］ダイアログが表示されます。

スキーマ論理名のルート要素を変更します。

［OK］ボタンをクリックします。
変換元スキーマツリービューアおよび変換先スキーマツリービューアに，変更したルート要素のスキーマがツリー表示されます。
変更前の状態でマッピングしていた場合，変更前の編集内容が破棄されることを知らせるダイアログが表示されます。変更前の編集内容を破棄して，新しく選択したルート要素のスキーマをツリー表示する場合は，［OK］ボタンをクリックします。

7.3.2　電文フォーマットを変更した場合の定義手順

電文フォーマットを変更した場合，データ変換を定義し直す必要があります。データ変換を定義し直すときは，以前に作成したデータ変換定義を利用できます。新規に定義する必要はありません。

注意

データ変換定義が編集中の電文フォーマットを変更した場合は，いったんデータ変換定義画面を終了してから，再度データ変換定義画面を表示してください。編集中のデータ変換定義画面を終了しないまま，新しくデータ変換定義画面を表示した場合，電文フォーマットの変更が一部反映されないことがあります。

電文フォーマットを変更してデータ変換を定義し直す手順を次に示します。

アダプタ定義画面，またはビジネスプロセス定義画面のデータ変換アクティビティから，データ変換定義画面を表示します。
データ変換定義画面が表示される前に，電文フォーマットの変更を反映するかを確認するダイアログが表示されます。［OK］ボタンをクリックすると，次の画面が表示されます。

ルート要素を変更または削除した場合
データ変換定義画面が表示される前に，［ルート要素選択］ダイアログが表示されます。［ルート要素選択］ダイアログでルート要素を選択し，［OK］ボタンをクリックすると，データ変換定義画面が表示されます。［ルート要素選択］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.1　ルート要素選択ダイアログ」を参照してください。

ルート要素を変更または削除していない場合
データ変換定義画面が表示されます。

表示されたデータ変換定義画面には，電文フォーマットの変更が反映されています※。

必要に応じてマッピングします。
マッピングについては，「7.4　マッピングする」を参照してください。

データ変換定義画面の変換元スキーマツリービューア，マッピングビューア，または変換先スキーマツリービューアの適当な場所で右クリックして，［検証］を選択します。
検証が実行されます。

注※

電文フォーマットを変更する前にマッピングした内容がコピーされたデータ変換定義画面が表示されます。ただし，コピーされるのは，変更前と変更後の電文フォーマットを比較し，類似度の優先度が1であるものだけです。マッピング定義のコピーおよび類似度の判定については，「7.8　マッピング定義をコピーする」を参照してください。

7.4　マッピングする

マッピングとは，変換元（マッピング元）の値を変換先（マッピング先）の値に対応づけることです。マッピングの画面を次に示します。

図7-1　マッピングの画面

マッピングは，大きく分けて次の4種類になります。

(1) 変換元ノードの値を変換先ノードに直接マッピングする

操作は，パレットのツールを使用する場合とダイアログを使用する場合があります。マッピング方法の詳細については，「7.4.1　変換元ノードの値を変換先ノードに直接マッピングする」を参照してください。

(2) 変換元ノードの値を加工して変換先ノードにマッピングする

変換元ノードの値の加工には，ファンクションを使用します。

操作は，パレットのツールを使用する場合とダイアログを使用する場合があります。マッピング方法の詳細については，「7.4.2　変換元ノードの値を加工して変換先ノードにマッピングする」を参照してください。

(3) 変換元ノードの範囲と変換先ノードの範囲を指定して自動でマッピングする

操作は，ダイアログを使用します。マッピング方法の詳細については，「7.4.3　変換元ノードの範囲と変換先ノードの範囲を指定して自動でマッピングする」を参照してください。

(4) 変換先ノードの要素から候補を選択して自動でマッピングする

操作は，ダイアログを使用します。マッピング方法の詳細については，「7.4.4　変換先ノードの要素から候補を選択して自動でマッピングする」を参照してください。

マッピングを取り消す方法については，「7.4.5　マッピングを取り消す」を参照してください。

また，マッピングするときの注意事項については，「7.4.9　マッピングの注意事項」を参照してください。

＜この節の構成＞

7.4.1　変換元ノードの値を変換先ノードに直接マッピングする

7.4.2　変換元ノードの値を加工して変換先ノードにマッピングする

7.4.3　変換元ノードの範囲と変換先ノードの範囲を指定して自動でマッピングする

7.4.4　変換先ノードの要素から候補を選択して自動でマッピングする

7.4.5　マッピングを取り消す

7.4.6　マッピング元の表示形式

7.4.7　マッピング線とファンクションを見やすくする

7.4.8　自動マッピング時の類似度の判定

7.4.9　マッピングの注意事項

7.4.1　変換元ノードの値を変換先ノードに直接マッピングする

変換元ノードの値を変換先ノードに直接マッピングするには，パレットのツールを使用する方法とダイアログを使用する方法があります。それぞれの場合の手順を次に説明します。

＜この項の構成＞

(1)　パレットのツールを使用する場合

(2)　ダイアログを使用する場合

(1)　パレットのツールを使用する場合

パレットのツールを使用したマッピングの手順を次に示します。

パレットから［マッピング］を選択します。

マッピング元となる変換元ノードのノードアダプタをクリックします。
マッピング元には，マッピング対象※の変換元ノードを指定してください。マッピング元にできないノードを指定しようとした場合，マウスポインタに[図データ]が付き，指定できない状態になります。

マッピング先となる変換先ノードのノードアダプタをクリックします。
マッピング線[図データ]（代入線）が設定されます。なお，マッピング線の色は変更できます。マッピング線の色を変更する方法については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.10.4　マッピング線の色を変更する」を参照してください。
また，マッピング先には，マッピング対象※かつ「7.10.2　マッピングできるノードおよびファンクションの対応」で指定された条件を満たす変換先ノードを指定してください。マッピング先にできないノードを指定しようとした場合，マウスポインタに[図データ]が付き，指定できない状態になります。

注※

マッピング対象については，「7.10.1　マッピング対象とマッピング対象外」を参照してください。

(2)　ダイアログを使用する場合

［マッピング元設定］ダイアログを使用してマッピングします。［マッピング元設定］ダイアログを使用したマッピングの手順を次に示します。

変換先スキーマツリービューアのマッピング先となる変換先ノードを右クリックして，［マッピング元］を選択します。
［マッピング元設定］ダイアログが表示されます。

［ノード追加］ボタンをクリックします。
［ノード選択］ダイアログが表示されます。

マッピング元となる変換元ノードを指定して，［OK］ボタンをクリックします。
［パス/ファンクション名］に指定したノードのパス名が表示されます。パス名の表示形式の詳細については，「7.4.6　マッピング元の表示形式」を参照してください。
マッピング元には，マッピング対象※の変換元ノードを指定してください。

［OK］ボタンをクリックします。
マッピング線[図データ]（代入線）が設定されます。なお，マッピング線の色は変更できます。マッピング線の色を変更する方法については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.10.4　マッピング線の色を変更する」を参照してください。

注※

マッピング対象については，「7.10.1　マッピング対象とマッピング対象外」を参照してください。

7.4.2　変換元ノードの値を加工して変換先ノードにマッピングする

変換元ノードの値を加工して変換先ノードにマッピングする場合，ファンクションを使用します。ファンクションの詳細については，「7.5　ファンクションを使用した値の加工」を参照してください。

＜この項の構成＞

(1)　パレットのツールを使用する場合

(2)　ダイアログを使用する場合

(1)　パレットのツールを使用する場合

パレットのツールを使用したマッピングの手順を次に示します。

パレットから使用するファンクションを選択します。

マッピングビューアで適当な場所をクリックします。
ファンクションがマッピングビューアに配置されます。配置されたファンクションは，ドラッグ＆ドロップで移動できます。

パレットから［マッピング］を選択します。

マッピング元となる変換元ノードのノードアダプタまたはファンクションをクリックします。
マッピング元には，次の変換元ノードまたはファンクションを指定してください。

変換元ノード
マッピング対象※1の変換元ノード

ファンクション
出力側にマッピング線が設定されていないファンクション

マッピング元にできないノードまたはファンクションを指定しようとした場合，マウスポインタに[図データ]が付き，指定できない状態になります。

マッピング先となる変換先ノードのノードアダプタまたはファンクションをクリックします。
マッピング線[図データ]（代入線）が設定されます。くり返しファンクションを使用した場合は，マッピング線[図データ]（くり返し対応線）が設定されます。なお，マッピング線の色は変更できます。マッピング線の色を変更する方法については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.10.4　マッピング線の色を変更する」を参照してください。
また，マッピング先には，次の変換先ノードまたはファンクションを指定してください。

変換先ノード
マッピング対象※1かつ「7.10.2　マッピングできるノードおよびファンクションの対応」で指定された条件を満たす変換先ノード

ファンクション
「7.10.2　マッピングできるノードおよびファンクションの対応」および「7.10.3　接続できるマッピング線の数」で指定された条件を満たし，かつファンクション同士の接続で閉路※2とならないファンクション

マッピング先にできないノードまたはファンクションを指定しようとした場合，マウスポインタに[図データ]が付き，指定できない状態になります。

注※1

マッピング対象については，「7.10.1　マッピング対象とマッピング対象外」を参照してください。

注※2

ファンクションAからファンクションBに，ファンクションBからファンクションCに，ファンクションCからファンクションAにのように，ファンクション同士の接続が閉路を作成するマッピングです。

注意

ファンクションを配置する前にマッピング線を設定してしまった場合，マッピング線を削除して，もう1度やり直してください。

参考

ファンクションをマッピングビューアに配置すると，ファンクション名の末尾に番号が付きます。この番号は，ファンクション名が重複しないように，マッピングした順に1から付けられる自然数の通番です。ファンクションが削除された場合，削除されたファンクションの番号は欠番となります。

(2)　ダイアログを使用する場合

ダイアログを使用したマッピングは，マッピング元とマッピング先の種類によって使用するダイアログが次のように異なります。

マッピング元が変換元ノードでマッピング先がファンクションのとき
マッピング先のファンクションを設定するダイアログを使用します。
マッピング先が選択ファンクションの場合は，「7.5.14　条件によって異なる値を出力する」を参照してください。

マッピング元およびマッピング先がファンクションのとき
マッピング先のファンクションを設定するダイアログを使用します。
マッピング先が選択ファンクションの場合は，「7.5.14　条件によって異なる値を出力する」を参照してください。

マッピング元がファンクションでマッピング先が変換先ノードのとき
［マッピング元設定］ダイアログを使用します。
マッピング元がくり返しファンクションまたは選択ファンクション※の場合は，［くり返し設定］ダイアログも使用できます。［くり返し設定］ダイアログによるマッピングの詳細については，「7.6.1　［くり返し設定］ダイアログを使用してマッピングする」を参照してください。

注※

くり返しファンクションに接続されている，または何も接続されていない選択ファンクションになります。くり返しファンクション以外のファンクションに接続されている場合，［くり返し設定］ダイアログは使用できません。

(a)　マッピング元が変換元ノードでマッピング先がファンクションのとき

マッピング元が変換元ノードでマッピング先がファンクションのときのマッピングの手順を次に示します。

パレットから使用するファンクションを選択します。

マッピングビューアで適当な場所をクリックします。
ファンクションがマッピングビューアに配置されます。配置されたファンクションは，ドラッグ＆ドロップで移動できます。

次のどちらかの方法でマッピング先のファンクションを設定するダイアログを表示させます。

マッピング先のファンクションを右クリックして，［設定］を選択します。

マッピング先のファンクションをダブルクリックします。

マッピング先のファンクションを設定するダイアログが表示されます。

［ノード追加］ボタンまたは［ノード選択］ボタンをクリックします。
［ノード選択］ダイアログが表示されます。

マッピング元となる変換元ノードを指定して，［OK］ボタンをクリックします。
マッピング先のファンクションを設定するダイアログの［入力］（くり返しファンクションの場合は［基準パス］）に，マッピング元の変換元ノードが設定されます。変換元ノードはパス名で表示されます。パス名の表示形式の詳細については，「7.4.6　マッピング元の表示形式」を参照してください。
マッピング元には，マッピング対象※かつ「7.10.2　マッピングできるノードおよびファンクションの対応」で指定された条件を満たす変換元ノードを指定してください。

［OK］ボタンをクリックします。
マッピング線[図データ]（代入線）が設定されます。くり返しファンクションを使用した場合は，マッピング線[図データ]（くり返し対応線）が設定されます。なお，マッピング線の色は変更できます。マッピング線の色を変更する方法については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.10.4　マッピング線の色を変更する」を参照してください。

注※

マッピング対象については，「7.10.1　マッピング対象とマッピング対象外」を参照してください。

(b)　マッピング元およびマッピング先がファンクションのとき

マッピング元およびマッピング先がファンクションのときのマッピングの手順を次に示します。

パレットから使用するファンクションを選択します。

マッピングビューアで適当な場所をクリックします。
ファンクションがマッピングビューアに配置されます。配置されたファンクションは，ドラッグ＆ドロップで移動できます。

次のどちらかの方法でマッピング先のファンクションを設定するダイアログを表示させます。

マッピング先のファンクションを右クリックして，［設定］を選択します。

マッピング先のファンクションをダブルクリックします。

マッピング先のファンクションを設定するダイアログが表示されます。

［ファンクション追加］ボタンまたは［ファンクション選択］ボタンをクリックします。
［ファンクション選択］ダイアログが表示されます。

マッピング元となるファンクションを指定して，［OK］ボタンをクリックします。
マッピング先のファンクションを設定するダイアログの［入力］に，マッピング元のファンクションが設定されます。定数ファンクションの場合はアポストロフィ（'）で囲んだ定数値，定数ファンクション以外のファンクションの場合はファンクション名が表示されます。
マッピング元には，「7.10.2　マッピングできるノードおよびファンクションの対応」で指定された条件を満たし，かつ出力側にマッピング線が設定されていないファンクションを指定してください。

［OK］ボタンをクリックします。
マッピング線[図データ]（代入線）が設定されます。くり返しファンクションを使用した場合は，マッピング線[図データ]（くり返し対応線）が設定されます。なお，マッピング線の色は変更できます。マッピング線の色を変更する方法については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.10.4　マッピング線の色を変更する」を参照してください。

(c)　マッピング元がファンクションでマッピング先が変換先ノードのとき

パレットから使用するファンクションを選択します。

マッピングビューアで適当な場所をクリックします。
ファンクションがマッピングビューアに配置されます。配置されたファンクションは，ドラッグ＆ドロップで移動できます。

変換先スキーマツリービューアのマッピング先となる変換先ノードを右クリックして，［マッピング元］を選択します。
［マッピング元設定］ダイアログが表示されます。

［ファンクション追加］ボタンをクリックします。
［ファンクション選択］ダイアログが表示されます。

マッピング元となるファンクションを指定して，［OK］ボタンをクリックします。
［パス/ファンクション名］に指定したファンクション名が設定されます。
マッピング元には，「7.10.2　マッピングできるノードおよびファンクションの対応」で指定された条件を満たし，かつ出力側にマッピング線が設定されていないファンクションを指定してください。ただし，選択ファンクションで条件として指定したため，出力側にマッピング線[図データ]（条件線）が設定されているファンクションは指定できます。

［OK］ボタンをクリックします。
マッピング線[図データ]（代入線）が設定されます。なお，マッピング線の色は変更できます。マッピング線の色を変更する方法については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.10.4　マッピング線の色を変更する」を参照してください。

注意

ファンクションを配置する前にマッピング線を設定してしまった場合，マッピング線を削除して，もう1度やり直してください。

参考

ファンクションをマッピングビューアに配置すると，ファンクション名の末尾に番号が付きます。この番号は，ファンクション名が重複しないように，マッピングした順に1から付けられる自然数の通番です。ファンクションが削除された場合，削除されたファンクションの番号は欠番となります。

7.4.3　変換元ノードの範囲と変換先ノードの範囲を指定して自動でマッピングする

変換元ノードの範囲と変換先ノードの範囲を指定して自動でマッピングする場合，［自動マッピング元設定］ダイアログを使用します。［自動マッピング元設定］ダイアログでは，変換元ノードの範囲と変換先ノードの範囲を指定すると，変換元ノードと変換先ノードで類似度が高い要素同士を自動でマッピングします。範囲内にマッピング候補が存在しない場合やすでに変換先ノードアダプタにマッピング線が接続されている場合は，マッピングされません。マッピング時の類似度の判定については，「7.4.8　自動マッピング時の類似度の判定」を参照してください。

［自動マッピング元設定］ダイアログを使用したマッピングの手順を次に示します。

変換先スキーマツリービューアのマッピング先となる変換先ノードの要素を右クリックして，［自動マッピング］を選択します。
変換先ノードの要素には，マッピングさせる範囲の最上位の要素を選択してください。
［自動マッピング元設定］ダイアログが表示されます。

［ノード追加］ボタンをクリックします。
［ノード選択］ダイアログが表示されます。

マッピング元となる変換元ノードの要素を指定して，［OK］ボタンをクリックします。
変換元ノードの要素には，マッピングさせる範囲の最上位の要素を選択してください。
選択した要素のパス名が［パス］に表示されます。パス名の表示形式の詳細については，「7.4.6　マッピング元の表示形式」を参照してください。
要素を複数選択したい場合は，手順3.を繰り返してください。
なお，次の場合は，エラーメッセージが出力されます。

すでに選択している要素を選択した場合

選択した要素の祖先または子孫がすでに選択されている場合

エラーメッセージが出力された場合，［OK］ボタンをクリックしてメッセージダイアログを閉じたあと，要素を再選択してください。

［OK］ボタンをクリックします。
指定した範囲内にマッピング候補が存在する場合,マッピング線[図データ]（代入線）が自動で設定されます。範囲内にマッピング候補が存在しない場合やすでに変換先ノードアダプタにマッピング線が接続されている場合は，マッピングされません。

参考

設定されたマッピング線の色は変更できます。マッピング線の色を変更する方法については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.10.4　マッピング線の色を変更する」を参照してください。

注意

マッピング候補が複数存在する場合は，最も類似度が高い候補が選択されるため，一つの変換元ノードに複数のマッピング線が生成される場合があります。マッピング済みの変換元ノードを対象外にしたい場合など，マッピング候補を絞り込みたいときは，［自動マッピング候補選択］ダイアログを使用するか，自動でマッピングさせたい範囲を狭めるようにしてください。［自動マッピング候補選択］ダイアログを使用して自動でマッピングする方法については，「7.4.4　変換先ノードの要素から候補を選択して自動でマッピングする」を参照してください。

7.4.4　変換先ノードの要素から候補を選択して自動でマッピングする

変換先ノードの要素から候補を選択して自動でマッピングする場合，［自動マッピング候補選択］ダイアログを使用します。［自動マッピング候補選択］ダイアログでは，変換元ノードの要素の候補を指定すると，選択した候補の要素がマッピングされ，マッピング線（代入線）が自動で設定されます。また，選択した要素のノードアダプタにマッピング線が接続済みの場合でも，同一の要素で依存関係が異なるマッピング線を接続できるときは，指定した候補とのマッピングを実行します。マッピング時の類似度の判定については，「7.4.8　自動マッピング時の類似度の判定」を参照してください。

［自動マッピング候補選択］ダイアログを使用したマッピングの手順を次に示します。

変換先スキーマツリービューアのマッピング先となる変換先ノードからマッピングする要素を右クリックして，［自動マッピング候補選択］を選択します。
［自動マッピング候補選択］を選択できない場合は，その要素はマッピングの対象にはならないため，ほかの候補となる要素を選択してください。
［自動マッピング候補選択］ダイアログが表示されます。

［自動マッピング候補一覧］からマッピング候補を選択します。
［自動マッピング候補一覧］には優先度が高い候補ほど上位に表示されます。
マッピングの候補が存在しない場合，［自動マッピング候補一覧］には何も表示されません。

［OK］ボタンをクリックします。
選択した候補の要素がマッピングされ，マッピング線[図データ]（代入線）が自動で設定されます。
選択した要素のノードアダプタにマッピング線が接続済みの場合でも，同一の要素で依存関係が異なるマッピング線を接続できるときは，指定した候補とのマッピングが実行されます。

参考

設定されたマッピング線の色は変更できます。マッピング線の色を変更する方法については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.10.4　マッピング線の色を変更する」を参照してください。

7.4.5　マッピングを取り消す

マッピング線やファンクションを削除して，マッピングを取り消すことができます。

＜この項の構成＞

(1)　マッピング線を削除する

(2)　ファンクションを削除する

(1)　マッピング線を削除する

次のどちらかの方法で，マッピング線を削除します。

方法1

削除したいマッピング線を右クリックして，［削除］を選択します。

方法2

削除したいマッピング線を選択して，［Delete］キーを押します。

注意

条件線はユーザが削除できません。条件線は，条件の設定を取り消した場合に自動的に削除されます。

(2)　ファンクションを削除する

次のどちらかの方法で，ファンクションを削除します。

方法1

削除したいファンクションを右クリックして，［削除］を選択します。

方法2

削除したいファンクションを選択して，［Delete］キーを押します。

注意

条件としてファンクションを指定（［条件設定］ダイアログの［条件］でファンクションを指定）した場合，そのファンクションは削除できません。

7.4.6　マッピング元の表示形式

［マッピング元設定］ダイアログや各ファンクションを設定するダイアログで，マッピング元となる変換元ノードまたはファンクションを指定した場合，次のように表示されます。

＜この項の構成＞

(1)　変換元ノードの場合

(2)　ファンクションの場合

(1)　変換元ノードの場合

スキーマツリーのノードパスが表示されます。ノードパスは次のように表示されます。

(a)　変換元ノードに条件が設定されているとき

条件が設定されたノード名の後ろに，角括弧（[　]）で囲まれた条件が表示されます。

　（例）　/aa/bb[position()=’1’]/cc

条件としてファンクションを指定（［条件設定］ダイアログの［条件］でファンクションを指定）した場合，ファンクション名が表示されます。

　（例）　/aa/bb[length1=’5’]

(b)　スキーマ論理名が複数あるとき

ノードパスの先頭に，「$<スキーマ論理名>」が表示されます。

　（例）　$source1/aa/bb/cc

(c)　属性のとき

ノード名の前に「@」が表示されます。

　（例）　/aa/bb/@cc

(2)　ファンクションの場合

定数ファンクションのときと定数ファンクション以外のファンクションのときで，表示形式が異なります。

(a)　定数ファンクションのとき

［文字列］または［数値］を選択

アポストロフィ（'）で囲んだ定数値が表示されます。

［論理値］を選択

次のように表示されます。

trueの場合：true()

falseの場合：false()

［特殊ノード］を選択

ファンクション名が表示されます。

(b)　定数ファンクション以外のファンクションのとき

ファンクション名が表示されます。

7.4.7　マッピング線とファンクションを見やすくする

選択したノードに関連するマッピング線とファンクションだけを強調して表示できます。

選択したノードに関連するマッピング線とファンクションだけを強調するための手順を次に示します。

データ変換定義画面の変換元スキーマツリービューア，マッピングビューア，または変換先スキーマツリービューアの適当な場所で右クリックします。
ポップアップメニューが表示されます。

ポップアップメニューから［強調表示］を選択します。
強調表示のメニューが表示されます。

用途に合わせて，次のどちらかを選択します。
選択したメニューに合わせて，関連するマッピング線とファンクションだけが強調されます。

変換元ノードの関連を強調表示する

変換先ノードの関連を強調表示する

強調したくない場合は「強調表示しない」を選択してください。

強調するマッピング線とファンクションは，選択しているノードとの関連の強さによって，色の濃淡が異なります。強調しているマッピング線とファンクションは濃い色で表示され，強調していないマッピング線とファンクションは薄い色で表示されます。

なお，強調表示をしている状態で，マッピング線やファンクションを追加した場合は，ノードを選択し直したときに表示が更新されます。

参考

選択したいノードが見つからない場合

変換元ノードまたは変換先ノードを検索できます。検索方法を次に示します。

ツリービューアで右クリックをして，［要素名検索］を選択します。
［要素名検索］ダイアログが表示されます。

［検索］に検索したい文字列を入力します。

［検索対象］で変換元ノードまたは変換先ノードを選択し，［検索］ボタンをクリックします。
［検索結果一覧］に入力した文字列を含むノードの一覧が表示されます。

［検索結果一覧］から，検索していたノード名を選択します。
選択したノードがツリービューア上でも選択された状態になります。

7.4.8　自動マッピング時の類似度の判定

自動マッピングでは，変換先ノードのスキーマ要素に対して，変換元ノードのスキーマ要素の類似度を判定し，マッピングの候補とします。類似した要素の候補が複数あるときは，優先度の高い順にマッピングされます。

変換元ノードのスキーマ要素の類似度を判定するときの優先度を次の表に示します。なお，優先度はレベル1が最も高く，レベルの値が大きいほど低くなります。

表7-2　自動マッピングで判定される類似度の優先度

優先度 | パス全体 | 末端の要素
名前空間 | 要素名 | 名前空間 | 要素名
1 | ○ | ○ | － | －
2 | × | ○ | － | －
3 | － | △※ | ○ | ○
4 | － | △※ | × | ○
5 | － | △※ | × | △

（凡例）

○：一致します。

△：一部一致します。

×：一致しません。

－：該当しません。

注※　判定によって一致しないこともあります。

7.4.9　マッピングの注意事項

マッピングしたあとに，データ変換定義の内容が妥当かどうか検証をします。検証でエラーが発生しないように，次の点を考慮してマッピングしてください。

「7.10　マッピングの条件」に従ってマッピングしてください。

マッピング元の変換元ノードとマッピング先の変換先ノードの出現回数は一致させてください。

最少出現回数が2回以上に設定されている複合内容の要素は，必ずマッピングしてください。ただし，祖先に最少出現回数が0回のノードが出現する場合は除きます。

最小出現回数が1回以上に設定されている単純内容の要素（any要素を含む）は，必ずマッピングしてください。

複合内容要素の子要素にany要素が複数存在しないようにしてください。

choice要素の子ノードまたは子孫ノードに対してマッピングする場合，複数の子要素が同時に出現するか，またはどの子要素も出現しないようなマッピングを定義しないでください。

choice要素の複数の子要素または子孫ノードに対してマッピングする場合は，複数の子要素が同時に出現しないようにしてください。

choice要素のすべての子要素の最少出現回数が1回以上に設定されていて，一つの子要素の子孫要素がマッピングされている場合，その子要素に対して選択ファンクションを使用するときは，複数の子要素が同時に出現しないようにしてください。

マッピング先の変換先ノードには，targetNamespaceにxslとxsiのURIが指定されている名前空間を定義しないでください。

インスタンス属性（xsi:type，xsi:schemaLocation，xsi:noNamespaceSchemaLocation）は，マッピング元の変換元ノードで定義されていても，マッピング先の変換先ノードには出現しません。

インスタンス属性xsi:nilが定義された変換元ノードをnillable属性がtrueと定義された変換先ノードにマッピングした場合，変換先ノードには，変換元ノードのxsi:nilで定義された内容が反映されます。同様に，インスタンス属性xsi:nilが定義された変換元ノードを選択ファンクション（choose）を経由するようにマッピングした場合も，変換先ノードには，変換元ノードのxsi:nilで定義された内容が反映されます。

nillable属性が定義されている変換元ノードから，nillable属性が定義されていない変換先ノードへマッピングしないでください。

7.5　ファンクションを使用した値の加工

変換元ノードの値を加工して変換先ノードにマッピングする場合，ファンクションを使用します。ここでは，どのような場合にどのファンクション使用するかを説明します。ファンクションを使用したマッピング方法については，「7.4.2　変換元ノードの値を加工して変換先ノードにマッピングする」を参照してください。

ファンクションの一覧を次の表に示します。

表7-3　ファンクションの一覧

分類 | ファンクション名 | 説明
文字列系 | 文字列連結 | 複数の文字列を連結します。
部分文字列取得 | 一つの文字列から一部分の文字列を取り出します。
文字数取得 | 文字列の文字数をマッピング先に代入します。
文字列調査 | 文字列に指定した文字列が含まれているか，または指定した文字列で開始されているかを調査して，マッピング先に論理値を代入します。
空白除去 | 文字列の先頭と末尾の空白を除去します。また，文字列間の連続した空白を一つの半角スペースに置換します。
数値系 | 数値フォーマット変換 | 数値をフォーマット変換します。
数値演算 | 数値を演算（+，-，*，div，mod）します。
端数処理 | 小数点以下の端数を処理（四捨五入，切り捨て，および切り上げ）します。
総和 | 複数のノードセットのノードの数値を合計します。
ノード系 | ノード数取得 | ノード数をマッピング先に代入します。
ノード名取得 | ノード名をマッピング先に代入します。
ノード調査 | 指定した変換元ノードが存在するかを調査し，マッピング先にその論理値を代入します。
制御系 | くり返し | くり返しを対応づけます。
選択 | 条件によって異なる値を出力します。
その他 | 定数 | 指定した値をマッピング先に代入します。
値置換え | 変換テーブルの指定に基づいて，マッピング元の値を変換してマッピング先に代入します。
カスタム | ユーザが作成した任意のJavaプログラムを呼び出します。

＜この節の構成＞

7.5.1　複数の文字列を連結する

7.5.2　一つの文字列から一部分の文字列を取り出す

7.5.3　文字列の文字数を代入する

7.5.4　指定文字列の有無，または指定文字列の開始を調査する

7.5.5　文字列の空白を除去する

7.5.6　数値をフォーマット変換する

7.5.7　数値を演算する

7.5.8　小数点以下の端数を処理する

7.5.9　複数のノードセットのノードの数値を合計する

7.5.10　ノード数を代入する

7.5.11　ノード名を代入する

7.5.12　ノードの有無を調査する

7.5.13　くり返しを対応づける

7.5.14　条件によって異なる値を出力する

7.5.15　指定した値を代入する

7.5.16　変換テーブルを利用して値を変換する

7.5.17　変換元ノードの値にある値を付加する

7.5.18　変換元ノードの値を倍にする

7.5.19　ユーザが作成した任意のJavaプログラムを呼び出す

7.5.1　複数の文字列を連結する

複数のマッピング元の文字列を連結して，一つの文字列にします。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

複数のマッピング元の文字列を連結するには，文字列連結ファンクションを使用します。文字列連結ファンクションを使用した例を次に示します。

図7-2　文字列連結ファンクションの使用例

(2)　設定手順

複数のマッピング元の文字列を連結して，一つの文字列にする手順を次に示します。

パレットから文字列連結ファンクション（concat）を選択して，マッピングビューアに配置します。

マッピング線を設定します。

次のどちらかの方法で［文字列連結］ダイアログを表示させます。

文字列連結ファンクションを右クリックして，［設定］を選択します。

文字列連結ファンクションをダブルクリックします。

［文字列連結］ダイアログが表示されます。
［文字列連結］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.15　文字列連結ダイアログ」を参照してください。

［入力］に連結させたい文字列のマッピング元を追加する場合，次のように設定します。

マッピング元が変換元ノードの場合
［ノード追加］ボタンをクリックすると，［ノード選択］ダイアログが表示されます。［ノード選択］ダイアログで，マッピング元となる変換元ノードを選択します。

マッピング元がファンクションの場合
［ファンクション追加］ボタンをクリックすると，［ファンクション選択］ダイアログが表示されます。［ファンクション選択］ダイアログで，マッピング元となるファンクションを選択します。

［入力］に複数のマッピング元を指定した場合，［入力］に表示された連結対象は上から順に連結されます。いちばん上に表示された連結対象は，連結した文字列の左側に設定されます。

［入力］に変換元ノードが指定されている場合，その変換元ノードに条件を設定して，その条件を満たす場合だけマッピングさせたいとき，［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。
ノード条件の設定方法については，「7.7　ノード条件を設定する」を参照してください。また，［ノード条件設定］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.9　ノード条件設定ダイアログ」を参照してください。

［OK］ボタンをクリックします。

7.5.2　一つの文字列から一部分の文字列を取り出す

一つのマッピング元の文字列から，一部分の文字列を取り出します。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

一つのマッピング元の文字列から，一部分の文字列を取り出すには，部分文字列取得ファンクションを使用します。部分文字列取得ファンクションを使用した例を次に示します。

図7-3　部分文字列取得ファンクションの使用例

(2)　設定手順

一つのマッピング元の文字列から，一部分の文字列を取り出す手順を次に示します。

パレットから部分文字列取得ファンクション（substr）を選択して，マッピングビューアに配置します。

マッピング線を設定します。

次のどちらかの方法で［部分文字列取得］ダイアログを表示させます。

部分文字列取得ファンクションを右クリックして［設定］を選択します。

部分文字列取得ファンクションをダブルクリックします。

［部分文字列取得］ダイアログが表示されます。
［部分文字列取得］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.16　部分文字列取得ダイアログ」を参照してください。

［入力］に変換元ノードが指定されている場合，その変換元ノードに条件を設定して，その条件を満たす場合だけマッピングさせたいとき，［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。
ノード条件の設定方法については，「7.7　ノード条件を設定する」を参照してください。また，［ノード条件設定］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.9　ノード条件設定ダイアログ」を参照してください。

取り出す文字列を指定します。

取り出す範囲を文字列の先頭から指定する場合
［先頭からの範囲指定］ラジオボタンを選択し，［開始位置］に取り出す文字列の開始文字の位置を指定します。取り出す文字列の文字数を指定する場合，［文字数］に取り出す文字数を指定します。［開始位置］で指定した開始文字の位置から末尾までの文字列を取り出す場合，［開始位置から末尾までを取得］チェックボックスをチェックします。

取り出す範囲を文字列の末尾から指定する場合
［末尾からの範囲指定］ラジオボタンを選択し，［開始位置］に取り出す文字列の開始文字の位置を指定します。取り出す文字列の文字数を指定する場合，［文字数］に取り出す文字数を指定します。［開始位置］で指定した開始文字の位置から先頭までの文字列を取り出す場合，［開始位置から先頭までを取得］チェックボックスをチェックします。

文字列を二つに分割して，分割した前の部分かあとの部分かのどちらかを指定する場合
［分割文字列指定］ラジオボタンを選択し，［分割文字列］にマッピング元の文字列を分割する文字（文字列）を指定します。先頭の文字から［分割文字列］で指定した文字（文字列）より前の文字列を取り出したい場合，［取得部位］に「前」を指定します。［分割文字列］で指定した文字（文字列）のあとから末尾までの文字列を取り出したい場合，［取得部位］に「後」を指定します。

［OK］ボタンをクリックします。

7.5.3　文字列の文字数を代入する

マッピング元の文字列の文字数をマッピング先に代入します。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

マッピング元の文字列の文字数をマッピング先に代入するには，文字数取得ファンクションを使用します。文字数取得ファンクションを使用した例を次に示します。

図7-4　文字数取得ファンクションの使用例

(2)　設定手順

マッピング元の文字列の文字数をマッピング先に代入する手順を次に示します。

パレットから文字数取得ファンクション（length）を選択して，マッピングビューアに配置します。

マッピング線を設定します。

次のどちらかの方法で［文字数取得］ダイアログを表示させます。

文字数取得ファンクションを右クリックして，［設定］を選択します。

文字数取得ファンクションをダブルクリックします。

［文字数取得］ダイアログが表示されます。
［文字数取得］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.17　文字数取得ダイアログ」を参照してください。

［入力］に変換元ノードが指定されている場合，その変換元ノードに条件を設定して，その条件を満たす場合だけマッピングさせたいとき，［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。
ノード条件の設定方法については，「7.7　ノード条件を設定する」を参照してください。また，［ノード条件設定］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.9　ノード条件設定ダイアログ」を参照してください。

［OK］ボタンをクリックします。

7.5.4　指定文字列の有無，または指定文字列の開始を調査する

マッピング元の文字列に指定した文字列が含まれているか，または指定した文字列で開始されているかを調査して，マッピング先にその論理値を代入します。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

マッピング元の文字列に指定した文字列が含まれているか，または指定した文字列で開始されているかを調査して，マッピング先にその論理値を代入するには，文字列調査ファンクションを使用します。文字列調査ファンクションを使用した例を次に示します。

図7-5　文字列調査ファンクションの使用例

(2)　設定手順

マッピング元の文字列を調査し，マッピング先に論理値を代入する手順を次に示します。

パレットから文字列調査ファンクション（contain）を選択して，マッピングビューアに配置します。

マッピング線を設定します。

次のどちらかの方法で［文字列調査］ダイアログを表示させます。

文字列調査ファンクションを右クリックして，［設定］を選択します。

文字列調査ファンクションをダブルクリックします。

［文字列調査］ダイアログが表示されます。
［文字列調査］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.18　文字列調査ダイアログ」を参照してください。

［入力］に変換元ノードが指定されている場合，その変換元ノードに条件を設定して，その条件を満たす場合だけマッピングさせたいとき，［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。
ノード条件の設定方法については，「7.7　ノード条件を設定する」を参照してください。また，［ノード条件設定］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.9　ノード条件設定ダイアログ」を参照してください。

［調査種別］に次のどちらかを選択します。

［調査文字列］で指定した文字列が含まれているか調査する場合
「指定文字列を含む」を選択します。

［調査文字列］で指定した文字列で開始されているか調査する場合
「指定文字列から開始」を選択します。

［調査文字列］に調査対象となる文字列を指定します。

［OK］ボタンをクリックします。

7.5.5　文字列の空白を除去する

マッピング元の文字列の先頭と末尾の空白（半角スペース，タブ，復帰（Carriage Return），および改行（Line Feed））を除去します。また，文字列間の連続した空白を一つの半角スペースに置換します。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

文字列の空白を除去するには，空白除去ファンクションを使用します。空白除去ファンクションを使用した例を次に示します。

図7-6　空白除去ファンクションの使用例

(2)　設定手順

文字列の空白を除去する手順を次に示します。

パレットから空白除去ファンクション（trim）を選択して，マッピングビューアに配置します。

マッピング線を設定します。

次のどちらかの方法で［空白除去］ダイアログを表示させます。

空白除去ファンクションを右クリックして，［設定］を選択します。

空白除去ファンクションをダブルクリックします。

［空白除去］ダイアログが表示されます。
［空白除去］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.19　空白除去ダイアログ」を参照してください。

［入力］に変換元ノードが指定されている場合，その変換元ノードに条件を設定して，その条件を満たす場合だけマッピングさせたいとき，［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。
ノード条件の設定方法については，「7.7　ノード条件を設定する」を参照してください。また，［ノード条件設定］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.9　ノード条件設定ダイアログ」を参照してください。

［OK］ボタンをクリックします。

7.5.6　数値をフォーマット変換する

マッピング元の数値をjava.text.DecimalFormatクラスの形式のパターンでフォーマット変換します。また，パターンに指定する小数点文字または桁区切り文字をデフォルトから変更できます。java.text.DecimalFormatクラスの形式のパターンの詳細については，JavaのAPIに関するドキュメントを参照してください。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

マッピング元の数値をjava.text.DecimalFormatクラスの形式のパターンでフォーマット変換するには，数値フォーマット変換ファンクションを使用します。数値フォーマット変換ファンクションを使用した例を次に示します。

図7-7　数値フォーマット変換ファンクションの使用例

(2)　設定手順

マッピング元の数値をjava.text.DecimalFormatクラスの形式のパターンでフォーマット変換する手順を次に示します。

パレットから数値フォーマット変換ファンクション（format）を選択して，マッピングビューアに配置します。

マッピング線を設定します。

次のどちらかの方法で［数値フォーマット変換］ダイアログを表示させます。

数値フォーマット変換ファンクションを右クリックして，［設定］を選択します。

数値フォーマット変換ファンクションをダブルクリックします。

［数値フォーマット変換］ダイアログが表示されます。
［数値フォーマット変換］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.20　数値フォーマット変換ダイアログ」を参照してください。

［入力］に変換元ノードが指定されている場合，その変換元ノードに条件を設定して，その条件を満たす場合だけマッピングさせたいとき，［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。
ノード条件の設定方法については，「7.7　ノード条件を設定する」を参照してください。また，［ノード条件設定］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.9　ノード条件設定ダイアログ」を参照してください。

［パターン］に変換後のjava.text.DecimalFormatクラスの形式のパターン文字列を指定します。

小数点文字または桁区切り文字をデフォルトから変更する場合，［記号を変更する］チェックボックスをチェックし，次のように指定します。

小数点文字を変更する場合
［小数点文字］に変更後の小数点文字の記号を指定します。省略した場合，デフォルトの記号となります。

桁区切り文字を変更する場合
［桁区切り文字］に変更後の桁区切り文字の記号を指定します。省略した場合，デフォルトの記号となります。

［OK］ボタンをクリックします。

7.5.7　数値を演算する

二つのマッピング元の数値に対して，指定した演算をします。指定できる演算の種類を次に示します。

+（加算）

-（減算）

*（乗算）

/（除算）

%（剰余）

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

二つのマッピング元の数値に対して，指定した演算をするには，数値演算ファンクションを使用します。数値演算ファンクションを使用した例を次に示します。

図7-8　数値演算ファンクションの使用例

(2)　設定手順

二つのマッピング元の数値に対して，指定した演算をする手順を次に示します。

パレットから数値演算ファンクション（calc）を選択して，マッピングビューアに配置します。

マッピング線を設定します。

次のどちらかの方法で［数値演算］ダイアログを表示させます。

数値演算ファンクションを右クリックして，［設定］を選択します。

数値演算ファンクションをダブルクリックします。

［数値演算］ダイアログが表示されます。
［数値演算］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.21　数値演算ダイアログ」を参照してください。

［演算］に実行したい演算を指定します。

［入力1］または［入力2］に変換元ノードが指定されている場合，その変換元ノードに条件を設定して，その条件を満たす場合だけマッピングさせたいとき，［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。
ノード条件の設定方法については，「7.7　ノード条件を設定する」を参照してください。また，［ノード条件設定］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.9　ノード条件設定ダイアログ」を参照してください。

［OK］ボタンをクリックします。

7.5.8　小数点以下の端数を処理する

マッピング元の数値が小数の場合，小数点以下の端数を処理します。指定できる端数の処理を次に示します。

四捨五入

切り捨て

切り上げ

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

小数点以下の端数を処理するには，端数処理ファンクションを使用します。端数処理ファンクションを使用した例を次に示します。

図7-9　端数処理ファンクションの使用例

(2)　設定手順

小数点以下の端数を処理する手順を次に示します。

パレットから端数処理ファンクション（round）を選択して，マッピングビューアに配置します。

マッピング線を設定します。

次のどちらかの方法で［端数処理］ダイアログを表示させます。

端数処理ファンクションを右クリックして，［設定］を選択します。

端数処理ファンクションをダブルクリックします。

［端数処理］ダイアログが表示されます。
［端数処理］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.22　端数処理ダイアログ」を参照してください。

［入力］に指定されている変換元ノードに条件を設定して，その条件を満たす場合だけマッピングさせたい場合，［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。
ノード条件の設定方法については，「7.7　ノード条件を設定する」を参照してください。また，［ノード条件設定］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.9　ノード条件設定ダイアログ」を参照してください。

［種別］に実行したい端数の処理を指定します。

［OK］ボタンをクリックします。

7.5.9　複数のノードセットのノードの数値を合計する

複数のマッピング元のノードセットを指定し，そのノードセットに含まれているノードの数値を合計します。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

複数のノードセットのノードの数値を合計するには，総和ファンクションを使用します。総和ファンクションを使用した例を次に示します。

図7-10　総和ファンクションの使用例

(2)　設定手順

複数のノードセットのノードの数値を合計する手順を次に示します。

パレットから総和ファンクション（sum）を選択して，マッピングビューアに配置します。

マッピング線を設定します。

次のどちらかの方法で［総和］ダイアログを表示させます。

総和ファンクションを右クリックして，［設定］を選択します。

総和ファンクションをダブルクリックします。

［総和］ダイアログが表示されます。
［総和］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.23　総和ダイアログ」を参照してください。

［入力］に合計させたい数値のマッピング元を追加する場合，［ノード追加］ボタンをクリックします。
［ノード選択］ダイアログが表示されます。

マッピング元となるノードセットを指定します。
［入力］に合計させたい数値のマッピング元が設定されます。

［入力］に指定されている変換元ノードに条件を設定して，その条件を満たす場合だけマッピングさせたい場合，［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。
ノード条件の設定方法については，「7.7　ノード条件を設定する」を参照してください。また，［ノード条件設定］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.9　ノード条件設定ダイアログ」を参照してください。

［OK］ボタンをクリックします。

7.5.10　ノード数を代入する

マッピング元のノードセットのノード数をマッピング先に代入します。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

マッピング元のノードセットのノード数をマッピング先に代入するには，ノード数取得ファンクションを使用します。ノード数取得ファンクションを使用した例を次に示します。

図7-11　ノード数取得ファンクションの使用例

(2)　設定手順

マッピング元のノードセットのノード数をマッピング先に代入する手順を次に示します。

パレットからノード数取得ファンクション（count）を選択して，マッピングビューアに配置します。

マッピング線を設定します。

次のどちらかの方法で［ノード数取得］ダイアログを表示させます。

ノード数取得ファンクションを右クリックして，［設定］を選択します。

ノード数取得ファンクションをダブルクリックします。

［ノード数取得］ダイアログが表示されます。
［ノード数取得］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.24　ノード数取得ダイアログ」を参照してください。

［入力］に指定されている変換元ノードに条件を設定して，その条件を満たす場合だけマッピングさせたい場合，［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。
ノード条件の設定方法については，「7.7　ノード条件を設定する」を参照してください。また，［ノード条件設定］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.9　ノード条件設定ダイアログ」を参照してください。

［OK］ボタンをクリックします。

7.5.11　ノード名を代入する

マッピング元のノード名をマッピング先に代入します。マッピング元（変換元ノード）のインスタンスが存在しない場合，空文字列を代入します。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

マッピング元のノード名をマッピング先に代入するには，ノード名取得ファンクションを使用します。ノード名取得ファンクションを使用した例を次に示します。

図7-12　ノード名取得ファンクションの使用例

(2)　設定手順

マッピング元のノード名をマッピング先に代入する手順を次に示します。

パレットからノード名取得ファンクション（name）を選択して，マッピングビューアに配置します。

マッピング線を設定します。

次のどちらかの方法で［ノード名取得］ダイアログを表示させます。

ノード名取得ファンクションを右クリックして，［設定］を選択します。

ノード名取得ファンクションをダブルクリックします。

［ノード名取得］ダイアログが表示されます。
［ノード名取得］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.25　ノード名取得ダイアログ」を参照してください。

［入力］に指定されている変換元ノードに条件を設定して，その条件を満たす場合だけマッピングさせたい場合，［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。
ノード条件の設定方法については，「7.7　ノード条件を設定する」を参照してください。また，［ノード条件設定］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.9　ノード条件設定ダイアログ」を参照してください。

［OK］ボタンをクリックします。

7.5.12　ノードの有無を調査する

指定したマッピング元の変換元ノードが存在するかを調査して，マッピング先にその論理値を代入します。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

指定したマッピング元の変換元ノードが存在するかを調査して，マッピング先にその論理値を代入するには，ノード調査ファンクションを使用します。ノード調査ファンクションを使用した例を次に示します。

図7-13　ノード調査ファンクションの使用例

(2)　設定手順

指定したマッピング元の変換元ノードが存在するか調査する手順を次に示します。

パレットからノード調査ファンクション（exist）を選択して，マッピングビューアに配置します。

マッピング線を設定します。

次のどちらかの方法で［ノード調査］ダイアログを表示させます。

ノード調査ファンクションを右クリックして，［設定］を選択します。

ノード調査ファンクションをダブルクリックします。

［ノード調査］ダイアログが表示されます。
［ノード調査］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.26　ノード調査ダイアログ」を参照してください。

［入力］に指定されている変換元ノードに条件を設定して，その条件を満たす場合だけマッピングさせたい場合，［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。
ノード条件の設定方法については，「7.7　ノード条件を設定する」を参照してください。また，［ノード条件設定］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.9　ノード条件設定ダイアログ」を参照してください。

［OK］ボタンをクリックします。

7.5.13　くり返しを対応づける

複数回出現する変換先ノードに対して，複数回出現する変換元ノードをマッピング元として，くり返しを対応づけます。また，複数回出現する変換元ノードのインスタンスをソートすることもできます。

ここでは，くり返しを対応づける基本的な方法を説明します。くり返しの合成，くり返し依存対象などの内容については，「7.6　くり返しの設定」を参照してください。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

複数回出現する変換先ノードに対して，複数回出現する変換元ノードをマッピング元として，くり返しを対応づけるには，くり返しファンクションを使用します。くり返しファンクションを使用した例を次に示します。

図7-14　くり返しファンクションの使用例

(2)　設定手順

複数回出現する変換先ノードに対して，複数回出現する変換元ノードをマッピング元として，くり返しを対応づける手順を次に示します。

パレットからくり返しファンクション（loop）を選択して，マッピングビューアに配置します。

マッピング線を設定します。

次のどちらかの方法で［くり返し］ダイアログを表示させます。

くり返しファンクションを右クリックして，［設定］を選択します。

くり返しファンクションをダブルクリックします。

［くり返し］ダイアログが表示されます。
［くり返し］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.5　くり返し設定ダイアログ」を参照してください。

変換元ノードのインスタンスをソートする場合，［追加］ボタンをクリックします。
［ソート条件追加/編集］ダイアログが表示されます。
［ソート条件追加/編集］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.28　ソート条件追加/編集ダイアログ」を参照してください。

［ノード選択］ボタンをクリックします。
［ノード選択］ダイアログが表示されます。［ノード選択］ダイアログで，ソートさせたいインスタンスの変換元ノードを指定します。

次の項目を設定します。

［順序］
［昇順］または［降順］を選択します。

［言語］
［日本語］，［英語］，または［自動］を選択します。

［データタイプ］
［テキスト］または［数値］を選択します。

［優先順位］
［大文字］または［小文字］を選択します。

［OK］ボタンをクリックします。
［くり返し］ダイアログの［ソート条件］に，［ソート条件追加/編集］ダイアログで指定した内容が設定されます。

［ソート条件］にキーを追加する場合，手順4～手順7.をくり返します。
キーは八つまで設定できます。

［ソート条件］の順番を変える場合，［上へ］ボタンまたは［下へ］ボタンをクリックします。
［ソート条件］でいちばん上に設定した条件から順にソートされます。
例えば，いちばん上に日付，2番目に名前を条件として設定した場合，まず全体を日付でソートします。次に，ソートした中に同じ日付があった場合，その日付の中でさらに名前でソートします。

［OK］ボタンをクリックします。

注意

同じ変換先ノードに対して，くり返しをネストして定義しないでください。つまり，同じ変換先ノードに対して，くり返しファンクションを直列に接続しないでください。

同じ変換先ノードに対して，同じくり返し依存対象の代入線を複数設定しないでください。くり返し依存対象については，「7.6.3　くり返し依存対象の対応づけ」を参照してください。

同じ変換先ノードに対して，同じくり返し依存対象のくり返し対応線および代入線を同時に設定しないでください。くり返し依存対象については，「7.6.3　くり返し依存対象の対応づけ」を参照してください。

変換先ノードにくり返しを定義した場合，変換先ノードの子孫ノードにはくり返し依存対象を設定してください。くり返し依存対象については，「7.6.3　くり返し依存対象の対応づけ」を参照してください。

7.5.14　条件によって異なる値を出力する

ある条件を設定して，その条件に合致する場合または合致しない場合で，異なる値を出力します。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

ある条件を設定して，その条件に合致する場合または合致しない場合で，異なる値を出力させるには，選択ファンクションを使用します。選択ファンクションを使用した例を次に示します。

図7-15　選択ファンクションの使用例

(2)　設定手順

ある条件を設定して，その条件に合致する場合または合致しない場合で，異なる値を出力させる手順を次に示します。

パレットから選択ファンクション（choose）を選択して，マッピングビューアに配置します。

マッピング線を設定します。
パレットのツールではなく，［選択］ダイアログでマッピング元を設定してマッピング線を設定する場合は，手順.7～手順.11を実施します。

次のどちらかの方法で［選択］ダイアログを表示させます。

選択ファンクションを右クリックして，［設定］を選択します。

選択ファンクションをダブルクリックします。

［選択］ダイアログが表示されます。
手順2.でマッピング線を設定した場合は，［条件と出力値］の［出力値］にマッピング元が設定されています。
［選択］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.29　選択ダイアログ」を参照してください。

次のどちらかの方法で［条件追加/編集］ダイアログを表示させます。

［条件と出力値］の［出力値］にマッピング元が設定されている場合
［条件と出力値］の［出力値］に設定されているマッピング元を選択して，［編集］ボタンをクリックします。

［条件と出力値］の［出力値］にマッピング元が設定されていない場合
［追加］ボタンをクリックします。

［条件追加/編集］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.30　条件追加/編集ダイアログ」を参照してください。

［条件設定］ボタンをクリックします。
［条件設定］ダイアログが表示されます。

条件を設定します。
［条件設定］ダイアログでの条件設定の方法については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.10　条件設定ダイアログ（ノード条件の設定）」を参照してください。

［条件がtrueの場合］欄で次のように指定します。

変換先ノードを出力させる場合
［ノードを出力する］チェックボックスにチェックします。

変換先ノードを出力させない場合
［ノードを出力しない］チェックボックスにチェックします。

なお，［条件と出力値］の［出力値］ですでにマッピング元が設定されている場合，［値］にマッピング元が表示されます。マッピング元を変更しないときは，手順.10に進んでください。

手順7.で［ノードを出力する］チェックボックスにチェックした場合，［出力値］欄で次のように指定します。

変換先ノードに値を出力させる場合
［値を出力する］チェックボックスにチェックします。

変換先ノードに値を出力させない場合
［空ノード］チェックボックスにチェックします。

手順8.で［値を出力する］チェックボックスにチェックした場合，［値］を次のように指定します。

変換元ノードの値を出力させる場合
［ノード選択］ボタンをクリックすると，［ノード選択］ダイアログが表示されます。［ノード選択］ダイアログで，値を出力させたい変換元ノードを選択します。

ファンクションの値を出力させる場合
［ファンクション選択］ボタンをクリックすると，［ファンクション選択］ダイアログが表示されます。［ファンクション選択］ダイアログで，値を出力させたいファンクションを選択します。

［値］に変換元ノードが指定されている場合，その変換元ノードに条件を設定して，その条件を満たす場合だけマッピングさせたいとき，［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。
ノード条件の設定方法については，「7.7　ノード条件を設定する」を参照してください。また，［ノード条件設定］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.9　ノード条件設定ダイアログ」を参照してください。

［OK］ボタンをクリックします。
［条件追加/編集］ダイアログが閉じます。

条件を追加または編集する場合，手順4.～手順.11をくり返します。
［条件と出力値］に複数の条件およびマッピング元を指定した場合，いちばん上に表示された条件から順に，条件を判定します。

どの条件にも合致しない場合のマッピング元を，［選択］ダイアログの［どの条件にも合致しない場合］欄で設定します。
設定方法は，［条件追加/編集］ダイアログの［条件がtrueの場合］欄と同じです。

［OK］ボタンをクリックします。
［選択］ダイアログで設定した条件中に，マッピング元以外の変換元ノードまたはファンクションを指定した場合，その条件中の変換元ノードまたはファンクションと選択ファンクションの間にはマッピング線[図データ]（条件線）が設定されます。

注意

複合内容の変換先ノードにマッピングする場合，［値を出力する］を選択して［値］を指定しないでください。また，複合内容以外の変換先ノードにマッピングする場合，［値を出力する］を選択したときは，必ず［値］を指定してください。

すべての子要素の最小出現回数が1回以上に設定されているchoice要素にマッピングする場合，［空ノード］を指定しないでください。

最小出現回数が1回以上に設定されている子要素を持つ要素（choice要素以外）にマッピングする場合，［空ノード］を指定しないでください。

最小出現回数が1回以上に設定されているノードにマッピングする場合，［ノードを出力しない］を指定しないでください。

出力値にくり返しファンクションを一つでも設定した場合，ほかの出力値もすべてくり返しファンクションを設定してください。また，出力値にくり返しファンクション以外を設定した場合，ほかの出力値もすべてくり返しファンクション以外を設定してください。

7.5.15　指定した値を代入する

マッピング先に指定した値を代入します。指定できる値を次に示します。

文字列

数値

論理値（「真」または「偽」）

特殊ノード（「ノード出力なし」または「空ノード」）

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

マッピング先に，指定した値を代入するには，定数ファンクションを使用します。定数ファンクションに指定した値は，複数のマッピング先に代入できます。定数ファンクションにはマッピング元がありません。したがって，定数ファンクションの値がそのままマッピング先に代入されます。定数ファンクションの使用例を次の図に示します。

図7-16　定数ファンクションの使用例

(2)　設定手順

マッピング先に，指定した値を代入する手順を次に示します。

パレットから定数ファンクション（const）を選択して，マッピングビューアに配置します。

マッピング線を設定します。

次のどちらかの方法で［定数］ダイアログを表示させます。

定数ファンクションを右クリックして，［設定］を選択します。

定数ファンクションをダブルクリックします。

［定数］ダイアログが表示されます。
［定数］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.31　定数ダイアログ」を参照してください。

マッピング先に代入する値を指定します。

文字列を指定する場合
［文字列］ラジオボタンを選択し，［値］に代入する値を指定します。

数値を指定する場合
［数値］ラジオボタンを選択し，［値］に代入する数値を指定します。

論理値を指定する場合
［論理値］ラジオボタンを選択し，［論理値］欄で［真］または［偽］を選択します。

特殊ノードを指定する場合
［特殊ノード］ラジオボタンを選択し，［値］欄で［ノード出力なし］または［空ノード］を選択します。

［OK］ボタンをクリックします。

注意

特殊ノードを指定する場合，マッピング先には変換先ノードを指定してください。

特殊ノード以外を指定する場合，マッピング先には複合型ノード以外のノードを指定してください。

特殊ノードでノード出力なしを指定した場合，マッピング先には最小出現回数が0回の変換先ノードを指定してください。

すべての子要素の最小出現回数が1回以上に設定されているchoice要素にマッピングする場合，特殊ノードの空ノード以外を指定してください。

最小出現回数が1回以上に設定されている子要素を持つ要素（choice要素以外）にマッピングする場合，特殊ノードの空ノード以外を指定してください。

7.5.16　変換テーブルを利用して値を変換する

変換テーブルを利用して，マッピング元の値を変換してマッピング先に代入します。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

変換テーブルを利用して，マッピング元の値を変換してマッピング先に代入するには，値置換えファンクションを使用します。

値置換えファンクションを使用した例を次に示します。

図7-17　値置換えファンクションの使用例

(2)　設定手順

変換テーブルを利用して，マッピング元の値を変換してマッピング先に代入するには，まず，変換テーブルを作成・保存します。作成した変換テーブルの情報をシステムプロパティファイル（usrconf.properties）に記述すると，変換テーブルが利用できる状態になります。変換テーブルが利用できる状態になったあと，値置換えファンクションを定義します。

(a)　変換テーブルの作成と保存

変換テーブルの作成と保存について説明します。

ポイント

作成した変換テーブルはパッケージングの対象にはなりません。そのため，実行環境での実運用開始後にも，任意のタイミングで編集できます。編集された内容は，次回のシステム起動時に反映されます。

変換テーブルの作成

変換テーブルは，csvファイルで作成します。csvファイルの形式を次に示します。

"値A01","値B01"
"値A02","値B02"
"値A03","値B03"
　　　 :

同じ行に記述した「値Ann」と「値Bnn」を一対の組み合わせとして値を置き換えます。置き換え対象の文字列はダブルクォーテーション（"）で囲んで記述します。置き換え対象の文字列にダブルクォーテーションが含まれる場合，ダブルクォーテーションをエスケープ文字として使用できます。エスケープ対象外の文字をエスケープした場合，エスケープ文字は無視されて，以降の文字が処理されます。

なお，変換テーブルに使用できる文字コードは次のとおりです。

MS932

UTF8

UTF16（ビッグエンディアン，またはリトルエンディアン）

変換テーブルの記述に使用する文字について次の表に示します。

表7-4　変換テーブルに使用する文字

対象
使用する文字

開始文字
開始文字は不要です。

終了文字
次のどちらかの改行コードです。

LF（0x0A）

CR＋LF（0x0D0A）

実行するOSがUNIXの場合はLF，Windowsの場合はCR+LFを使用します。

注

LF：ラインフィード

CR：キャリッジリターン

中間区切り文字
コンマ（,）を利用します。

注意

変換テーブルに記述した変換対象は文字列として扱います。そのため，値置換えファンクションへの入力値が数値の場合，文字列に変換して処理されます。

変換対象および入力値に，空要素は指定できません。

属性値を入力する場合，入力値は正規化（タブをスペースに置き換えたり，連続したスペースを一つのスペースに置き換えたりするなど）した値で扱います。そのため，変換テーブルに記述した検索キー値も，正規化後の値を考慮する必要があります。

ポイント

「値Ann」から「値Bnn」の変換にするか，「値Bnn」から「値Ann」の変換にするかは，値置換えファンクションを定義するときに設定できます。

変換テーブルの保存

作成した変換テーブルは，任意の場所に保存します。

(b)　システムプロパティファイル（usrconf.properties）への登録

変換テーブルを作成したあとには，usrconf.propertiesに作成した変換テーブルを登録します。変換テーブルの登録方法の詳細については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「2.3.8　変換テーブルを登録する」を参照してください。

(c)　値置換えファンクションの定義

値置換えファンクションを利用して，マッピング元の値を変換してマッピング先に代入するための手順を次に示します。

パレットから値置換えファンクション（replace）を選択して，マッピングビューアに配置します。

マッピング線を設定します。

次のどちらかの方法で［値置換え］ダイアログを表示させます。

値置換えファンクションを右クリックして，［設定］を選択します。

値置換えファンクションをダブルクリックします。

［値置換え］ダイアログが表示されます。
［値置換え］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.32　値置換えダイアログ」を参照してください。

［入力］に変換元ノードが指定されている場合，その変換元ノードに条件を設定して，その条件を満たす場合だけマッピングさせたいとき，［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。
ノード条件の設定方法については，「7.7　ノード条件を設定する」を参照してください。また，［ノード条件設定］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.9　ノード条件設定ダイアログ」を参照してください。

［変換テーブルID］にシステムプロパティファイル（usrconf.properties）に記述した変換テーブルの名称を指定します。

［検索キー列指定］で，変換テーブルの左列と右列のどちらを値の置き換え元とするか選択します。

［検索失敗時の動作］で，マッピング元からの入力値が変換テーブルに存在しなかった場合のシステムの動作を選択します。

デフォルト値を出力してマッピング先に代入する場合

［デフォルト値を代入］をラジオボタンで選択し，［値］にデフォルト値として利用する文字列を入力します。

変換エラーにする場合

［変換エラー］をラジオボタンで選択します。

［OK］ボタンをクリックします。

7.5.17　変換元ノードの値にある値を付加する

変換元ノードの値にある値を付加して，マッピング先に代入します。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

変換元ノードの値にある値を付加して，マッピング先に代入するには，文字列連結ファンクションおよび定数ファンクションを組み合わせて使用します。文字列連結ファンクションおよび定数ファンクションを組み合わせて使用した例を次に示します。

図7-18　文字列連結ファンクションおよび定数ファンクションを組み合わせた使用例

(2)　設定手順

変換元ノードの値にある値を付加して，マッピング先に代入する手順を次に示します。

パレットから定数ファンクション（const）を選択して，マッピングビューアに配置します。

定数ファンクションで値を指定します。
値を指定する方法については，「7.5.15　指定した値を代入する」を参照してください。

パレットから文字列連結ファンクション（concat）を選択して，マッピングビューアに配置します。

定数ファンクションで指定した値と変換元ノードの値を，文字列連結ファンクションで連結します。
連結方法については，「7.5.1　複数の文字列を連結する」を参照してください。

7.5.18　変換元ノードの値を倍にする

変換元ノードの値を倍にして，マッピング先に代入します。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

変換元ノードの値を倍にして，マッピング先に代入するには，数値演算ファンクションおよび定数ファンクションを組み合わせて使用します。数値演算ファンクションおよび定数ファンクションを組み合わせて使用した例を次に示します。

図7-19　演算ファンクションおよび定数ファンクションを組み合わせた使用例

(2)　設定手順

変換元ノードの値を倍にして，マッピング先に代入する手順を次に示します。

パレットから定数ファンクション（const）を選択して，マッピングビューアに配置します。

定数ファンクションで値を指定します。
値を指定する方法については，「7.5.15　指定した値を代入する」を参照してください。

パレットから数値演算ファンクション（calc）を選択して，マッピングビューアに配置します。

定数ファンクションで指定した値と変換元ノードの値を，数値演算ファンクションで演算します。
演算方法については，「7.5.7　数値を演算する」を参照してください。

7.5.19　ユーザが作成した任意のJavaプログラムを呼び出す

ユーザが作成した任意のJavaプログラムを呼び出して，ファンクションとして使用します。uCosminexus Service Architectが提供するほかのファンクションでできる加工以外の加工をしたい場合に使用します。

なお，呼び出すJavaプログラムの作成方法については，「7.9　カスタムファンクションで使用するJavaプログラムの作成」を参照してください。

＜この項の構成＞

(1)　使用するファンクション

(2)　設定手順

(1)　使用するファンクション

ユーザが作成した任意のJavaプログラムを呼び出すには，カスタムファンクションを使用します。

カスタムファンクションからJavaプログラムを呼び出す方法を次の図に示します。なお，カスタムファンクションでは，呼び出すJavaプログラムのことを変換ファンクションと呼びます。

図7-20　カスタムファンクションからJavaプログラム（変換ファンクション）を呼び出す方法

(2)　設定手順

ユーザが作成した任意のJavaプログラムを呼び出す手順を次に示します。

Eclipseのメニューから［ウィンドウ］－［設定］を選択します。
［設定］ダイアログが表示されます。

ダイアログ左側で［HCSC-Definer］－［データ変換］を選択します。
データ変換定義画面の設定項目がダイアログ右側に表示されます。

［カスタムファンクション］タブをクリックします。
［設定］ダイアログの［カスタムファンクション］タブが表示されます。

変換ファンクション定義ファイルを指定し，［OK］ボタンをクリックします。

パレットからカスタムファンクション（custom）を選択して，マッピングビューアに配置します。

マッピング線を設定します。
設定するマッピング線の数は，呼び出すJavaプログラムの引数と同数です。

次のどちらかの方法で［カスタム］ダイアログを表示させます。

カスタムファンクションを右クリックして，［設定］を選択します。

カスタムファンクションをダブルクリックします。

［変換ファンクション選択］ボタンをクリックします。
［変換ファンクション選択］ダイアログが表示されます。

カスタムファンクションから呼び出すメソッドを選択し，［OK］ボタンをクリックします。
［変換ファンクション選択］ダイアログが閉じ，［カスタム］ダイアログが表示されます。

［引数名］に対応する入力値を［入力値］に指定します。
指定した入力値がJavaプログラムの引数に入力されます。

［OK］ボタンをクリックします。

注意事項

［カスタム］ダイアログで変換ファンクションの設定をしたあとに，マッピングビューアでマッピング線を設定した場合，引数の入力値は自動で設定されません。再度［カスタム］ダイアログで［引数名］に対応する入力値を［入力値］に指定してください。

カスタムファンクションは，［変換ファンクション選択］ダイアログで選択したときのメソッドの情報で呼び出します。［変換ファンクション選択］ダイアログでメソッドを選択したあとに，変換ファンクション定義ファイルの内容を変更しても，カスタムファンクションから呼び出すメソッドの情報には反映されません。変換ファンクション定義ファイルの変更をカスタムファンクションに反映させる場合は，変換ファンクションを選択し直してください。

次に示す設定内容が不一致の場合，ビジネスプロセスの検証時にエラーは発生しませんが，カスタムファンクションの実行時にエラーが発生します。そのため，設定内容を必ず一致させてください。

変換ファンクション定義ファイルの定義内容

カスタムファンクションの定義内容

パッケージングしたjarファイルの内容

複数の変換ファンクション定義ファイルを使用したい場合は，［設定］ダイアログで変換ファンクション定義ファイルを切り替えてからカスタムファンクションを設定してください。変換ファンクション定義ファイルを切り替えても，設定済みのカスタムファンクションには影響しません。

7.6　くり返しの設定

くり返しファンクションを使用したマッピングでは，くり返しを合成したり，くり返し依存対象を変更したりできます。

＜この節の構成＞

7.6.1　［くり返し設定］ダイアログを使用してマッピングする

7.6.2　くり返しを合成する

7.6.3　くり返し依存対象の対応づけ

7.6.4　くり返し依存対象を確認する

7.6.5　くり返し依存対象を変更する

7.6.6　くり返し依存対象が設定された変換元ノードのパスの表示

7.6.7　連携パスを設定して各要素のくり返し処理を連動させる

7.6.1　［くり返し設定］ダイアログを使用してマッピングする

くり返しファンクションまたは選択ファンクション※から変換先ノードへのマッピングは，［くり返し設定］ダイアログを使用することもできます。

［くり返し設定］ダイアログを使用したマッピングの手順を次に示します。

パレットからくり返しファンクションまたは選択ファンクションを選択します。

マッピングビューアで適当な場所をクリックします。
ファンクションがマッピングビューアに配置されます。配置されたファンクションは，ドラッグ＆ドロップで移動できます。

変換先スキーマツリービューア上のマッピング先となる変換先ノードを右クリックして，［くり返し］を選択します。
［くり返し設定］ダイアログが表示されます。

［ファンクション追加］ボタンをクリックします。
［ファンクション選択］ダイアログが表示されます。

マッピング元となるくり返しファンクションまたは選択ファンクションを指定して，［OK］ボタンをクリックします。
［ファンクション名］に指定したファンクション名が設定されます。

［OK］ボタンをクリックします。
マッピング線[図データ]（くり返し対応線）が設定されます。なお，マッピング線の色は変更できます。マッピング線の色を変更する方法については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.10.4　マッピング線の色を変更する」を参照してください。

注※

くり返しファンクションに接続されている，または何も接続されていない選択ファンクションになります。くり返しファンクション以外のファンクションに接続されている場合，［くり返し設定］ダイアログは使用できません。

注意

変換元ノードにくり返しを設定した場合，その変換元ノードの子孫のノードもくり返しの対象となり，変換先ノードに出現します。

ただし，［マッピング元設定］ダイアログでマッピング元に絶対パスを指定した場合は，常に絶対パスで指定したノードの値が代入されます。［マッピング元設定］ダイアログでマッピング元に相対パスが表示されている場合には，くり返しを設定した変換元ノードの子孫のノードがくり返し対象となり，くり返しに対応したノードの値が代入されます。

変換元ノードのパスの表示については，「7.6.6　くり返し依存対象が設定された変換元ノードのパスの表示」を参照してください。

7.6.2　くり返しを合成する

複数の変換元ノードのくり返しを合成して，一つの変換先ノードに対応づけることができます。くり返しを合成した場合の画面を次に示します。

図7-21　くり返しを合成した場合の画面

くり返しを合成した場合，変換先ノードに出現させる変換元ノードの順序を［くり返し設定］ダイアログで設定できます。図7-21の場合，loop1に対応した変換元ノード（自宅）とloop2に対応した変換元ノード（勤務地）のどちらを先に変換先ノードに出現させるか決めることができます。なお，くり返しに対応した変換元ノードの子孫のノードもくり返しの対象となり，変換先ノードに出現します。

変換先ノードに代入する変換元ノードの順序を指定する手順を次に示します。

変換先スキーマツリービューア上のマッピング先となる変換先ノードを右クリックして，［くり返し］を選択します。
［くり返し設定］ダイアログが表示されます。

［くり返し］に表示されたファンクション名を，変換先ノードに出現させる順番に並べ替えます。
いちばん上に表示されたファンクション名に対応する変換元ノードから順に，変換先ノードに出現します。

順番を上にしたい場合
上にしたいファンクション名を選択して［上へ］ボタンをクリックします。

順番を下にしたい場合
下にしたいファンクション名を選択して［下へ］ボタンをクリックします。

［OK］ボタンをクリックします。

7.6.3　くり返し依存対象の対応づけ

くり返しファンクションを使用して変換元ノードから変換先ノードへマッピングした場合，そのくり返しファンクションは，自動的に子孫ノードのマッピング元のくり返し対象として対応づけられます。また，くり返しファンクションやマッピング線を削除して，あるノードのくり返しを取り消したとします。その場合，その子孫ノードには，くり返しを取り消したノードの祖先ノードに設定されているくり返しファンクションが，自動的にマッピング元のくり返し対象として対応づけられます。これをくり返しの依存対象といいます。

くり返しの依存対象は次の場合に設定されます。

あるノードにくり返しファンクションを使用してくり返しを設定したあと，その子孫ノードをマッピングした場合
あるノードで使用したくり返しファンクションは，自動的にその子孫ノードのマッピング元のくり返し依存対象となります。

あるノードをマッピングしたあと，その祖先ノードにくり返しファンクションを使用してくり返しを設定した場合
祖先ノードで使用したくり返しファンクションは，その子孫ノードのマッピング元のくり返し依存対象となります。

祖先ノードにくり返しが設定されているノードのくり返しを取り消した場合
祖先ノードに設定されているくり返しファンクションは，くり返しを取り消したノードの子孫ノードで，マッピング元のくり返し依存対象となります。

それぞれの場合のくり返し依存対象が対応づけられるタイミングについて説明します。

＜この項の構成＞

(1)　あるノードにくり返しを設定したあと，その子孫ノードをマッピングした場合

(2)　あるノードをマッピングさせたあと，その祖先ノードにくり返しを設定した場合

(3)　祖先ノードにくり返しが設定されているノードのくり返しを取り消した場合

(1)　あるノードにくり返しを設定したあと，その子孫ノードをマッピングした場合

あるノードにくり返しを設定したあと，その子孫ノードをマッピングした場合の，くり返し依存対象が対応づけられるタイミングを次に示します。

図7-22　くり返しファンクションを使用したマッピング

まず，くり返しファンクションを使用して，変換元ノードAから変換先ノードBへマッピングします。

次に，変換元ノードAの子孫ノードであるノードCから，変換先ノードBの子孫ノードであるノードDへマッピングします。

図7-23　くり返し依存対象が対応づけられるタイミング（子孫ノードにファンクションがない場合）

ノードDに接続されたとき，子孫ノードに対してくり返し依存対象が自動的に設定されます。図7-22の場合，子孫ノードDのマッピング元のくり返し依存対象に「loop1」が設定されます。

子孫の変換元ノードから変換先ノードへのマッピングで複数のファンクションを使用した場合は，変換先ノードに接続された時点でくり返し依存対象が自動的に設定されます。

図7-24　くり返し依存対象が対応づけられるタイミング（子孫のノードに複数のファンクションがある場合）

(2)　あるノードをマッピングさせたあと，その祖先ノードにくり返しを設定した場合

あるノードをマッピングさせたあと，その祖先ノードにくり返しを設定した場合の，くり返し依存対象が対応づけられるタイミングを次に示します。

図7-25　くり返しファンクションを使用しないマッピング

まず，ある変換元ノードAから変換先ノードBへマッピングします。

次に，変換元ノードAの祖先ノードであるノードCから，変換先ノードBの祖先ノードであるノードDへマッピングします。

図7-26　くり返し依存対象が対応づけられるタイミング（祖先ノードのマッピングをあとにした場合）

ノードCからノードDにマッピングしたとき，子孫ノードに対してくり返し依存対象が自動的に設定されます。図7-25の場合，子孫ノードBに対してくり返し依存対象「loop1」が設定されます。

(3)　祖先ノードにくり返しが設定されているノードのくり返しを取り消した場合

祖先ノードにくり返しが設定されているノードのくり返しを取り消した場合の，くり返し依存対象が対応づけられるタイミングを次に示します。

図7-27　くり返しファンクションを使用したマッピング，およびくり返しファンクションを使用しないマッピング

まず，ある変換元ノードAから変換先ノードBへマッピングします。

次に，くり返しファンクションを使用して，変換元ノードAの祖先ノードであるノードCから，変換先ノードBの祖先ノードであるノードDへマッピングします。

そのあと，くり返しファンクションを使用して，変換元ノードAおよび変換元ノードCの祖先ノードである変換元ノードEから，変換先ノードBおよび変換先ノードDの祖先ノードである変換先ノードFへマッピングします。

図7-28　くり返し依存対象が対応づけられるタイミング（マッピングを取り消した場合）

ノードCからノードDへのマッピングを取り消したとき，マッピングを取り消したノードの子孫ノードに対して，くり返し依存対象が自動的に設定されます。図7-27の場合，子孫ノードBに対してくり返し依存対象「loop1」が設定されます。

7.6.4　くり返し依存対象を確認する

自動的に設定されたくり返し依存対象を確認する手順を次に示します。

くり返しを設定した変換先ノードの子孫ノードをスキーマツリービューア上で右クリックして，［マッピング元］を選択します。
［マッピング元設定］ダイアログが表示されます。

［パス/ファンクション名］には，くり返しファンクションが対応づけられた変換元ノードからの相対パスが表示されます。パス名の表示については，「7.6.6　くり返し依存対象が設定された変換元ノードのパスの表示」を参照してください。［依存対象］にはくり返し依存対象となるファンクション名が表示されます。

7.6.5　くり返し依存対象を変更する

複数の変換元ノードから一つの変換先ノードにマッピングしている場合，変換元ノードに対して自動的に設定されたくり返し依存対象を変更することができます。

くり返し依存対象を変更する手順を次に示します。

くり返しを設定した変換先ノードの子孫ノードをスキーマツリービューア上で右クリックして，［マッピング元］を選択します。
［マッピング元設定］ダイアログが表示されます。

［マッピング元］の［依存対象］を変更します。
変更した依存対象のパス名が絶対パスになります。パス名の表示については，「7.6.6　くり返し依存対象が設定された変換元ノードのパスの表示」を参照してください。

［OK］ボタンをクリックします。

7.6.6　くり返し依存対象が設定された変換元ノードのパスの表示

［マッピング元設定］ダイアログの［パス/ファンクション名］には，相対パスまたは絶対パスが表示されます。どのような場合に相対パスまたは絶対パスが表示されるかについて説明します。

＜この項の構成＞

(1)　相対パス

(2)　絶対パス

(1)　相対パス

くり返しファンクションが対応づけられた変換元ノードの子孫の変換元ノードに対してくり返し依存対象が設定された場合，くり返しファンクションが対応づけられた変換元ノードからの相対パスが表示されます。

具体的な例を次に示します。

図7-29　相対パスの例

自宅ノードにくり返しファンクション「loop1」を対応づけると，自宅ノードの子孫の電話番号ノードにくり返し依存対象「loop1」が設定されます。

このとき，マッピング後の電話番号ノードから［マッピング元設定］ダイアログを表示させると，［パス/ファンクション名］には，自宅ノードからの相対パスが表示されます。

(2)　絶対パス

次の場合，絶対パスが表示されます。

くり返し依存対象のくり返しファンクションが対応づけられた変換元ノードまたはその変換元ノードの祖先の変換元ノードに，ノード条件が設定されている場合
具体的な例を次に示します。

図7-30　絶対パスの例1

自宅ノードにくり返しファンクション「loop1」を対応づけると，自宅ノードの子孫の電話番号ノードにくり返し依存対象「loop1」が設定されます。なお，自宅ノードにはノード条件が設定されています。
このとき，マッピング後の電話番号ノードから［マッピング元設定］ダイアログを表示させると，［パス/ファンクション名］には，絶対パスが表示されます。

くり返し依存対象が設定された変換元ノードが，くり返し依存対象のくり返しファンクションが対応づけられた変換元ノードの子孫のノードでない場合
具体的な例を次に示します。

図7-31　絶対パスの例2（依存対象の変更前）

まず自宅ノードにくり返しファンクション「loop1」を対応づけ，次に勤務地ノードにくり返しファンクション「loop2」を対応づけます。これによって，自宅ノードの子孫の電話番号ノードおよび勤務地ノードの子孫の電話番号ノードには，最初に対応づけたくり返しファンクション「loop1」がくり返し依存対象に設定されます。
このとき，マッピング後の電話番号ノードから［マッピング元設定］ダイアログを表示させると，［パス/ファンクション名］には，次のように表示されます。

自宅ノード（「loop1」が対応づけられている）の子孫の電話番号ノード
自宅ノードからの相対パスが表示されます。

勤務地ノード（「loop2」が対応づけられている）の子孫の電話番号ノード
絶対パスが表示されます。

図7-32　絶対パスの例2（依存対象の変更後）

自宅ノードの子孫の電話番号ノードの依存対象を，勤務地ノードのくり返しファンクションである「loop2」に設定します。
このとき，マッピング後の電話番号ノードから［マッピング元設定］ダイアログを表示させると，［パス/ファンクション名］の表示が，次のように変更されます。

自宅ノード（「loop1」が対応づけられている）の子孫の電話番号ノード
自宅ノードからの相対パスが絶対パスになります。

7.6.7　連携パスを設定して各要素のくり返し処理を連動させる

くり返しに依存しない要素をくり返しに依存する要素に連動させて変換する場合，くり返しファンクションに連携パスを設定する必要があります。

ここでは，くり返しファンクションに連携パスを設定する方法，連携パスの表示，連携パスを使用した変換例を説明します。

＜この項の構成＞

(1)　連携パスの設定

(2)　連携パスの表示

(3)　連携パスを使用した変換例

(1)　連携パスの設定

くり返しファンクションに連携パスを設定することで，変換元の各要素のくり返し処理を連動できます。

なお，くり返し連携の対象となるのは，次の条件に当てはまる場合です。

マッピング線の変換先ノードが，該当するくり返しファンクションに依存している。

マッピング線の変換元ノードのパスに，くり返しファンクションに指定した連携パスが含まれている。

注意

次の場合に当てはまるパスは，連携パスに追加できません。指定するとエラーメッセージが表示されます。

同じくり返しファンクションの基準パスの祖先ノードまたは子孫ノードであるパスを指定した場合

同じくり返しファンクションの連携パスの祖先ノードまたは子孫ノードを複数指定した場合

連携パスは，次の手順で設定します。

次のどちらかの方法で［くり返し］ダイアログを表示させます。

くり返しファンクションを右クリックして，［設定］を選択します。

くり返しファンクションをダブルクリックします。

［くり返し］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.5　くり返し設定ダイアログ」を参照してください。

［連携パス］の［ノード追加］ボタンをクリックします。
［ノード選択ダイアログ］が表示されます。

連携する要素を選択し，［OK］ボタンをクリックします。
選択した要素のパスが［連携パス］に表示されます。複数の連携パスを指定する場合は，手順2.～3.を繰り返してください。

［くり返し］ダイアログの［OK］ボタンをクリックします。
連携パスが設定されます。

(2)　連携パスの表示

設定した連携パスは，マッピングビューアおよびプロパティービューに表示されます。

マッピングビューアでは，連携パスからくり返しファンクションに対して，マッピング線[図データ]（くり返し連携線）が表示されます。マッピング線の色は，くり返し対応線と同じです。マッピング線の色を変更する方法については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.10.4　マッピング線の色を変更する」を参照してください。

また，くり返し連携線をマッピングビューア上で削除し，マッピング（連携）を取り消すことができます。マッピングを取り消す方法については，「7.4.5　マッピングを取り消す」を参照してください。

くり返し連携線の表示例を次の図に示します。

図7-33　くり返し連携線の表示例

(3)　連携パスを使用した変換例

連携パスを使用したくり返しファンクションの変換例を次に示します。

くり返しファンクションと連携している値をマッピングする場合

図7-34　連携パスを使用した変換例1

くり返しファンクションと連携していない値をマッピングする場合

図7-35　連携パスを使用した変換例2

複数のくり返しファンクションと連携している値を参照する場合

図7-36　連携パスを使用した変換例3

7.7　ノード条件を設定する

マッピング元の変換元ノードに対して条件を設定して，その条件を満たす場合だけマッピングします。変換元ノードに条件を設定することをノード条件の設定といいます。ノード条件の設定は，マッピング先によって設定を開始する方法が次のように異なります。

マッピング先が変換先ノードの場合
［マッピング元設定］ダイアログからノード条件の設定を開始します。［マッピング元設定］ダイアログは，変換先ノードを右クリックして，［マッピング元］を選択すると表示されます。

マッピング先がファンクションの場合
各ファンクションを設定するダイアログからノード条件の設定を開始します。各ファンクションを設定するダイアログは，次のどちらかの方法で表示されます。

各ファンクションを右クリックして，［設定］を選択します。

各ファンクションをダブルクリックします。

ノード条件を設定する手順を次に示します。

［マッピング元設定］ダイアログまたは各ファンクションを設定するダイアログで，ノード条件を設定する変換元ノードを選択します。

［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。
［ノード条件設定］ダイアログには，［マッピング元設定］ダイアログで選択した変換元ノードとその祖先のノードが表示されます。ノード条件は，［ノード条件設定］ダイアログで表示されたすべてのノードに設定できます。

ノード条件を設定するノードを選択して，［条件設定］ボタンをクリックします。
［条件設定］ダイアログが表示されます。

条件を設定します。
［条件］で設定する条件を次のラジオボタンから選択し，条件の詳細を設定します。

［boolean値を返すノードまたはファンクション］ラジオボタン

［条件式］ラジオボタン

［二つの条件の論理積・論理和］ラジオボタン

設定した条件は，［生成する条件］に表示されます。
なお，［条件］で変換元ノードまたはファンクションを指定する場合，次の変換元ノードまたはファンクションを指定してください。

変換元ノード
マッピング対象※であり，かつ単純内容または属性のノード

ファンクション
出力側にマッピング線が設定されていない制御系以外のファンクション

注※

マッピング対象については，「7.10.1　マッピング対象とマッピング対象外」を参照してください。

［生成する条件］に表示された条件と反対の内容をノード条件としたい場合，［条件の否定をとる］チェックボックスにチェックします。

［OK］ボタンをクリックします。
［ノード条件設定］ダイアログの［条件］に，［条件設定］ダイアログで設定した条件が表示されます。

ほかのノードのノード条件を設定する場合，手順3.～手順6.を繰り返します。

［ノード条件設定］ダイアログで，［OK］ボタンをクリックします。
ノード条件が設定されます。
［条件設定］ダイアログで設定した条件中に，マッピング元以外の変換元ノードまたはファンクションを指定した場合，その条件中の変換元ノードまたはファンクションとマッピング先の間にマッピング線[図データ]（条件線）が設定されます。

ポイント

条件を設定した変換先ノードを選択すると，プロパティ領域の「マッピング元」に，設定したノード条件が表示されます。ノード条件は，条件を設定したノード名の後ろに角括弧（[　]）で囲まれて表示されます。なお，条件として指定したノード（［条件設定］ダイアログの［条件］で指定）が，条件を設定したノード（［ノード条件設定］ダイアログで指定）の子孫ノードの場合，条件を設定したノードからの相対パスが表示されます。それ以外は絶対パスが表示されます。

7.8　マッピング定義をコピーする

データ変換定義画面でマッピングした内容は，マッピング定義として保存できます。保存したマッピング定義は，別のデータ変換定義を作成する際にコピーして利用できます。

マッピング定義のコピーを次の図に示します。

図7-37　マッピング定義のコピー

マッピング定義は，マッピング情報ごとにコピーされます。マッピング情報とは，図7-37に示すように，一つの変換先ノードと，そのノードからマッピング線をたどって取得できる変換元ノード，ファンクション，およびマッピング線のことです。

コピー元のマッピング定義ファイルを作成するときに使用したスキーマの種別（XSDファイルまたはFDXファイル）と，コピー先のスキーマの種別が異なる場合でも，マッピング定義をコピーできます。

マッピング定義をコピーする方法には，構造一致複製マッピングと要素名一致複製マッピングの2種類があります。構造一致複製マッピングは，コピー元とコピー先の要素名およびスキーマの構造が一致している場合に使用できる方法です。このため，マッピング定義のコピー先となるノードに，すでにマッピング線が接続されている場合，マッピング定義はコピーできません。要素名一致複製マッピングは，コピー元とコピー先の要素名が類似している場合に使用できる方法です。このため，構造一致複製マッピングとは異なり，スキーマの構造が異なっていてもコピーできます。それぞれのコピー方法については，「7.8.4　マッピング定義のコピー」で説明します。

＜この節の構成＞

7.8.1　マッピング定義をコピーする流れ

7.8.2　マッピング定義の保存

7.8.3　マッピング定義の登録

7.8.4　マッピング定義のコピー

7.8.5　類似度の判定方法

7.8.6　マッピング定義をコピーする場合の注意事項

7.8.1　マッピング定義をコピーする流れ

マッピング定義をコピーする流れを次に示します。

データ変換定義画面でマッピングした内容をマッピング定義として保存します。
マッピング定義を保存する方法については，「7.8.2　マッピング定義の保存」を参照してください。

保存したマッピング定義をコピー元として登録します。
マッピング定義を登録する方法については，「7.8.3　マッピング定義の登録」を参照してください。

変換元スキーマおよび変換先スキーマを指定して，コピー先となるデータ変換定義画面を表示します。
データ変換定義画面を表示する方法については，「7.3.1　データ変換の定義手順」を参照してください。なお，データ変換定義画面を表示したら，マッピングはしないでください。

マッピング定義をコピーします。
コピー元のマッピング定義のスキーマ情報とコピー先のスキーマ情報を比較し，類似した要素があった場合，マッピング定義が自動でコピーされます。マッピング定義がコピーされる条件については，「7.8.5　類似度の判定方法」を参照してください。
マッピング定義をコピーする方法については，「7.8.4　マッピング定義のコピー」を参照してください。

7.8.2　マッピング定義の保存

マッピング定義ファイルを保存する方法を次に示します。

データ変換定義画面の変換元スキーマツリービューア，マッピングビューア，または変換先スキーマツリービューアの適当な場所で右クリックして，［マッピング定義保存］を選択します。
［マッピング定義保存］ダイアログが表示されます。
なお，［マッピング定義保存］ダイアログに最初に表示されるディレクトリは，［設定］ダイアログで任意の場所に設定できます。詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.14　設定ダイアログ」を参照してください。

マッピング定義を保存するファイル（拡張子：.mdo）を指定します。

［OK］ボタンをクリックします。
マッピング定義が保存されます。

7.8.3　マッピング定義の登録

マッピング定義を登録する方法を次に示します。登録できるマッピング定義は，一つのEclipseに対して一つだけです。登録したマッピング定義は，すべてのデータ変換定義画面で共有できます。なお，Eclipseを終了すると，登録したマッピング定義は破棄されます。

データ変換定義画面の変換元スキーマツリービューア，マッピングビューア，または変換先スキーマツリービューアの適当な場所で右クリックして，［マッピング定義登録］を選択します。
［マッピング定義登録］ダイアログが表示されます。

［選択］ボタンをクリックし，コピー元として登録するマッピング定義ファイル（拡張子：.mdo）を指定します。
なお，［選択］ボタンをクリックしたときに表示されるディレクトリは，［設定］ダイアログで任意の場所に設定できます。詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.6.14　設定ダイアログ」を参照してください。

［OK］ボタンをクリックします。
マッピング定義が登録されます。

7.8.4　マッピング定義のコピー

マッピング定義をコピーする方法を次に示します。

＜この項の構成＞

(1)　構造一致複製マッピング

(2)　要素名一致複製マッピング

(1)　構造一致複製マッピング

構造一致複製マッピングは，コピー先とコピー元の要素名だけでなく，スキーマの構造が一致している場合に使用できるコピー方法です。構造一致複製マッピングでマッピング定義をコピーする方法を次に示します。

データ変換定義画面の変換先スキーマツリービューアで，複合内容要素を右クリックして，［複製マッピング］－［構造一致］を選択します。
［複製マッピング元設定］ダイアログが表示されます。

［ノード追加］ボタンをクリックします。
［ノード選択ダイアログ］が表示されます。

コピーする要素を選択し，［OK］ボタンをクリックします。
選択した要素のパスが［パス］に追加されます。なお，変換元に複数のスキーマが存在する場合は，コピーする要素を複数選択してください。

［OK］ボタンをクリックします。
マッピング定義がコピーされます。

(2)　要素名一致複製マッピング

要素名一致複製マッピングは，コピー先とコピー元の要素名が一致している場合に使用できるコピー方法です。要素名一致複製マッピングでマッピング定義をコピーする方法を次に示します。

データ変換定義画面の変換先スキーマツリービューアで，複合内容要素を右クリックして，［複製マッピング］－［要素名一致］を選択します。
［複製マッピング範囲設定］ダイアログが表示されます。

コピー元およびコピー先情報を設定します。
コピー元の情報は［複製マッピング元］に，コピー先の情報は［複製マッピング先］に設定します。
各項目に設定するノードは，項目の横にある［ノード選択］ボタンをクリックして，選択してください。選択したノードが各項目に表示されます。

［OK］ボタンをクリックします。
マッピング定義がコピーされます。

注意

次の場合は，エラーメッセージが表示され，マッピング定義はコピーされません。

コピー元のマッピング定義ファイル（拡張子：.mdo）が登録されていない場合

コピー元のマッピング定義ファイル（拡張子：.mdo）の読み込みに失敗した場合

登録してあるコピー元のマッピング定義ファイル（拡張子：.mdo）の内容が空の場合

7.8.5　類似度の判定方法

マッピング定義をコピーすると，コピー元となるマッピング定義のスキーマの要素と，コピー先のスキーマの要素が比較され，類似した要素があった場合にコピーされます。類似した要素が複数あるときは，優先度の高い順にコピーされます。マッピングがコピーされる優先度を次に説明します。

注意

次の条件に当てはまるファンクションについては，優先度に関係なく，コピーされません。

ソート条件が設定されているくり返しファンクションのうち，ソート条件に対応する変換元ノードがないもの

連携パスが設定されているくり返しファンクションのうち，連携パスに対応する変換元ノードがないもの

条件が設定されている選択ファンクションのうち，条件に対応する変換元ノードがないもの

＜この項の構成＞

(1)　構造一致複製マッピング

(2)　要素名一致複製マッピング

(1)　構造一致複製マッピング

構造一致複製マッピングでマッピング定義をコピーした場合に，マッピングがコピーされる優先度を次の表に示します。

表7-5　マッピング定義がコピーされる優先度（構造一致複製マッピング）

優先度 | スキーマ論理名 | 親パス | 要素名
1 | ○ | ○ | ○
2 | × | ○ | ○

（凡例）

○：一致します。

×：一致しません。

(2)　要素名一致複製マッピング

要素名一致複製マッピングでマッピング定義をコピーした場合に，マッピングがコピーされる優先度を次の表に示します。

表7-6　マッピング定義がコピーされる優先度（要素名一致複製マッピング）

優先度 | 要素 | パス
名前空間 | 要素名 | 名前空間 | 要素名
1 | × | × | ○ | ○
2 | × | × | × | ○
3 | ○ | ○ | × | △
4 | × | ○ | × | △
5 | × | △ | × | △

（凡例）

○：一致します。

△：一部一致します。

×：一致しません。

なお，要素名一致複製マッピングでは，コピーした要素の依存関係に矛盾が生じないようにする必要があります。依存関係が設定されている変換先ノードをコピーする場合は，次の条件に合わせてコピーします。

依存対象となる変換先ノードがコピーされている場合は，依存対象の変換先ノードの子孫に含まれるようにコピーします。

依存対象となる変換先ノードをコピーできなかった場合は，依存対象となる変換先ノードと類似度が高い変換先ノードを検索して，そのノードの子孫に含まれるようにコピーします。類似度の高い変換先ノードが見つからなかった場合は，依存関係なしとしてコピーします。

また，次に示す値にノード条件が設定されている場合は，条件が設定されている祖先ノードが，変換先ノードおよびファンクションの接続元となる変換元ノードの祖先ノードになるようにコピーします。

変換先ノードの入力値

ファンクションの入力値

くり返しファンクションの連携パス

7.8.6　マッピング定義をコピーする場合の注意事項

コピー元のスキーマの内容およびコピー先のスキーマの内容によって，意図したコピーが実行されない場合があります。マッピング定義をコピーする場合の注意事項について説明します。

＜この項の構成＞

(1)　コピーする候補が複数ある場合

(2)　コピー元のマッピング定義が未完成の場合

(3)　一つの要素に複数のくり返しファンクションが接続されている場合

(1)　コピーする候補が複数ある場合

次に示す1.～4.の条件がすべて該当する場合，コピーする候補が複数あるとみなされます。

図7-38　コピーする候補が複数ある場合のコピー元およびコピー先の例

条件

コピー元のマッピング定義の変換元スキーマに，複数のスキーマが登録されている

コピー元のマッピング定義の変換元スキーマに，パスが同じノードが存在する

コピー元のマッピング定義に，2.のノードを含むマッピング情報がある

コピー先の変換元スキーマの一つに，2.と同じパスのノードが存在する

図7-38の場合のコピー結果を次の図に示します。

図7-39　コピーする候補が複数ある場合のコピー結果

(2)　コピー元のマッピング定義が未完成の場合

変換元ノードと変換先ノード同士を接続していない，未完成のマッピング定義をコピー元のマッピング定義とした場合，変換先ノードに対するマッピングだけがコピーされ，変換元ノードに対するマッピングはコピーされません。

コピー元のマッピング定義が未完成の場合に，マッピング定義をコピーしたときの例を次の図に示します。

図7-40　コピー元マッピング定義が未完成の場合のマッピング定義のコピー

(3)　一つの要素に複数のくり返しファンクションが接続されている場合

一つの単純内容要素または複合内容要素に，複数のくり返しファンクションが接続されたマッピング定義をコピー元とした場合，マッピング定義をコピーすると，最初にくり返しファンクションがコピーされます。このとき，［マッピング元設定］ダイアログを表示すると，コピー先とコピー元で［パス/ファンクション名］の表示順が異なることがあります。ただし，マッピング定義のコピー結果に影響はありません。

一つの要素に複数のくり返しファンクションが接続されている場合に，マッピング定義をコピーしたときの例を次の図に示します。

図7-41　一つの要素に複数のくり返しファンクションが接続されている場合のマッピング定義のコピー

7.9　カスタムファンクションで使用するJavaプログラムの作成

カスタムファンクションを使用すると，任意のJavaプログラムをファンクションとして使用できます。uCosminexus Service Architectが提供するほかのファンクションでできる加工以外の加工をしたい場合にカスタムファンクションを使用します。

カスタムファンクションを使用して値を加工する方法については，「7.5.19　ユーザが作成した任意のJavaプログラムを呼び出す」を参照してください。

ここでは，カスタムファンクションから呼び出すJavaプログラムの作成方法について説明します。なお，カスタムファンクションでは，呼び出すJavaプログラムのことを変換ファンクションと呼びます。

変換ファンクションは，次の手順で作成します。

変換ファンクション定義ファイルの作成
変換ファンクションの構成を定義した変換ファンクション定義ファイルを作成します。変換ファンクション定義ファイルの作成方法については，「7.9.1　変換ファンクション定義ファイルの作成」を参照してください。

Java雛形ファイルの生成
作成した変換ファンクション定義ファイルを基に，Javaプログラムのコーディング時に使用するJava雛形ファイルを生成します。Java雛形ファイルの生成方法については，「7.9.2　Java雛形ファイルの生成」を参照してください。

Javaプログラムのコーディング，ビルド，およびデバッグ
Java開発ツールを使用して，Javaプログラムのコーディング，ビルド，およびデバッグを実施します。Javaプログラムのコーディング，ビルド，およびデバッグ方法については，「7.9.3　Javaプログラムのコーディング，ビルド，およびデバッグ」を参照してください。

Javaプログラムのパッケージング
ビルドツールを使用して，作成したJavaプログラムをjarファイルにパッケージングします。Javaプログラムのパッケージング方法については，「7.9.4　Javaプログラムのパッケージング」を参照してください。

注意

呼び出すJavaプログラムの引数の数に応じてメモリ所要量（スタックメモリ）が増加します。そのため，引数が多いとスタックオーバーフローのエラーが発生するおそれがあります。引数は，多くても10個程度を目安としてください。

Javaプログラムの呼び出し時に確保したリソースは，処理が終了しても保持し続けるため，システム全体に高い負荷がかかった場合に，Javaヒープ不足やPermヒープ不足などが原因でOutOfMemoryErrorが発生することがあります。そのため，OutOfMemoryErrorが発生したときに適切にリソースを解放する処理や，ロールバックなどのエラー処理を実装しておく必要があります。

＜この節の構成＞

7.9.1　変換ファンクション定義ファイルの作成

7.9.2　Java雛形ファイルの生成

7.9.3　Javaプログラムのコーディング，ビルド，およびデバッグ

7.9.4　Javaプログラムのパッケージング

7.9.1　変換ファンクション定義ファイルの作成

変換ファンクション定義ファイルとは，カスタムファンクションから呼び出す変換ファンクションの構成を定義したファイルです。変換ファンクション定義ファイルは次のことに使用します。

Java雛形ファイルの生成

カスタムファンクションの定義

変換ファンクション定義ファイルの記述例を次に示します。斜体部分がユーザの指定するデータです。

<?xml version="1.0" encoding="UTF-8"?>
<func:customFunc xmlns:func="http://www.hitachi.co.jp/soft/xml/cosminexus/cscdt/functions">
<func:jar name="sample.jar">
 <func:package name="jp.co.Hitachi.soft.sample">
  <func:class name="SampleClass">
   <func:method name="sampleFunction">
    <func:comment>sampleFunction の説明</func:comment>
    <func:arguments>
     <func:argument name="arg1">
      <func:comment>arg1の説明</func:comment>
     </func:argument>
     <func:argument name="arg2">
      <func:comment>arg2の説明</func:comment>
     </func:argument>
     <func:argument name="arg3">
      <func:comment>arg3の説明</func:comment>
     </func:argument>
    </func:arguments>
   </func:method>
  </func:class>
 </func:package>
</func:jar>
</func:customFunc>

変換ファンクション定義ファイルは，ユーザがXMLエディタを使って作成します。ここでは，MyEclipseのXMLエディタを使って変換ファンクション定義ファイルを作成する方法を説明します。

Eclipseのメニューから，［ファイル］－［新規］－［その他］を選択します。
［新規］ダイアログが表示されます。

［MyEclipse］－［XML］－［XML（基本テンプレート）］を選択し，［次へ］ボタンをクリックします。
［XMLファイル］ページが表示されます。

変換ファンクション定義ファイルを保存するディレクトリ，および変換ファンクション定義ファイル名を指定して，［次へ］ボタンをクリックします。
［次からXMLファイルを作成］ページが表示されます。

［XMLスキーマ・ファイルからXMLファイルを作成］ラジオボタンを選択し，［次へ］ボタンをクリックします。
［XMLスキーマ・ファイルの選択］ページが表示されます。

［ファイルのインポート］ボタンをクリックします。
［インポート］ダイアログが表示されます。

［次のディレクトリーから］に次のディレクトリを指定します。

<uCosminexus Service Architectのインストールディレクトリ>¥CSCTE¥resources¥customfunc

［customfunc］チェックボックスおよび［customfunction_XMLSchema.xsd］チェックボックスにチェックします。

［インポート先フォルダ］にスキーマファイルをインポートするフォルダを指定します。

［終了］ボタンをクリックします。
再度［XMLスキーマ・ファイルの選択］ページが表示されます。

［次へ］ボタンをクリックします。
［ルート要素の選択］ページが表示されます。

［ルート要素］に［customFunc］を指定し，［終了］ボタンをクリックします。
変換ファンクション定義ファイルの雛形が生成されます。

変換ファンクション定義ファイルの雛形に必要な要素を追加し，変換ファンクション定義ファイルを作成します。
変換ファンクション定義ファイルで使用するタグを次に示します。

表7-7　変換ファンクション定義ファイルで使用するタグ一覧

項番 | 要素・属性名 | 内容 | 種別 | 個数 | 文字数
最小 | 最大 | 最小 | 最大
1 | customFunc | 変換ファンクション定義 | 要素 | 1 | 1 | － | －
2 | 　jar | jarファイル情報 | 要素 | 1 | 255 | － | －
3 | 　　name | jarファイル名 | 属性 | 1 | 1 | 1 | 100
4 | 　　package | パッケージ情報 | 要素 | 1 | 255 | － | －
5 | 　　　name | パッケージ名 | 属性 | 1 | 1 | 1 | 255
6 | 　　　class | クラス情報 | 要素 | 1 | 255 | － | －
7 | 　　　　name | クラス名 | 属性 | 1 | 1 | 1 | 100
8 | 　　　　method | メソッド情報 | 要素 | 1 | 255 | － | －
9 | 　　　　　name | メソッド名 | 属性 | 1 | 1 | 1 | 100
10 | 　　　　　comment | メソッドコメント | 要素 | 0 | 1 | 0 | 1,024
11 | 　　　　　arguments | 引数情報 | 要素 | 0 | 1 | － | －
12 | 　　　　　　argument | 引数 | 要素 | 1 | 255 | － | －
13 | 　　　　　　　name | 引数名 | 属性 | 1 | 1 | 1 | 100
14 | 　　　　　　　comment | 引数コメント | 要素 | 0 | 1 | 0 | 1,024

（凡例）

－：文字数に制限はありません。

また，変換ファンクション定義ファイルを作成する際は，次のことに注意してください。

クラス名とメソッド名を同じ名称にしないでください。

クラス名にStringを指定しないでください。

コメントは指定された文字列をそのまま1行に埋め込むため，内容によっては，Javaの構文エラーになるなど，意図しない結果になることがあります。意図しない結果になった場合は，生成されたJavaファイルを直接修正してください。

7.9.2　Java雛形ファイルの生成

Java雛形ファイルとは，変換ファンクションを開発するために，パッケージ，クラス，およびメソッド（引数を含む）の構成を記述したJavaプログラムの雛形のことです。Java雛形ファイルは，変換ファンクション定義ファイルを基に，uCosminexus Service Architectによって自動で生成されます。

Java雛形ファイルの例を次に示します。なお，この例は「7.9.1　変換ファンクション定義ファイルの作成」に示した変換ファンクション定義ファイルの記述例を基に生成した例です。斜体部分が変換ファンクション定義ファイルから入力されたデータです。

/**
* Java Template
*/

package jp.co.Hitachi.soft.sample;

public class SampleClass {

   /**
    * カスタムファンクションに関する説明・・・
    *
    * @param arg1
    *  選択している引数に関する説明・・・
    * @param arg2
    *  選択している引数に関する説明・・・
    * @param arg3
    *  選択している引数に関する説明・・・
    *
    * @return
    */
   public static String SampleFunction(String arg1, String arg2, String arg3) {

       // TODO Add Java Code Here
       return "";
   }
}

「// TODO Add Java Code Here」に処理を実装して，Javaプログラムを作成します。

Java雛形ファイルを生成する手順を次に示します。

Eclipseのメニューから［ファイル］－［新規］－［Javaプロジェクト］を選択します。
［新規Javaプロジェクト］ダイアログが表示されます。

プロジェクト名を指定し，［終了］ボタンをクリックします。
EclipseのワークスペースにJavaプロジェクトが作成されます。

「7.9.1　変換ファンクション定義ファイルの作成」で作成した変換ファンクション定義ファイルを次の場所に移動します。

＜作成したJavaプロジェクトのディレクトリ＞¥src

Eclipseのメニューから［ファイル］－［更新］を選択します。
Eclipseの画面が更新されます。

パッケージ・エクスプローラービューで，変換ファンクション定義ファイルを右クリックし，［HCSC-Definer］－［Java雛形ファイルの生成］を選択します。
Java雛形ファイル出力ウィザードが表示されます。

Java雛形ファイルの出力場所，および出力ファイルの文字コードセットを指定して，［次へ］を指定します。
出力文字コードは［MS932］，［UTF-8］，［UTF-16］から選択できます。なお，［UTF-16］にはBOM制御コード（0xFEFF）が付きます。

Java雛形ファイルに出力するクラスのチェックボックスにチェックし，［終了］をクリックします。
Java雛形ファイル出力ウィザードが閉じ，指定した場所にJava雛形ファイルが生成されます。

7.9.3　Javaプログラムのコーディング，ビルド，およびデバッグ

作成されたJava雛形ファイルを基に，Javaプログラムをコーディング，ビルド，およびデバッグします。Javaプログラムのコーディング，ビルド，およびデバッグには，EclipseなどのJava開発ツールを使用します。

Javaプログラムのインターフェース仕様を次に示します。

表7-8　Javaプログラムのインターフェース仕様

項番
インターフェース
内容

1
メソッド
アクセス修飾子は「public」で，静的メソッド（static宣言）とします。
オーバーロードはできません。

2
引数
0個以上の引数を持つことができます。
すべてString型の入力パラメタとなります。

3
関数値
必ずString型の関数値を設定してください。nullを返すことはできません。

4
例外
例外をスローした場合は，データ変換処理が失敗します。

Javaプログラムを作成する際には，次のことに注意してください。

外部参照したいjarファイルがある場合は，usrconf.cfg（J2EEサーバ用オプション定義ファイル）にクラスパスを追加してください。

カスタムファンクションはマルチスレッドで動作します。そのため，Javaプログラムはスレッドセーフとなるように実装してください。

外部リソースにアクセスするJavaプログラムを実装しないでください。

7.9.4　Javaプログラムのパッケージング

コーディング，ビルド，およびデバッグしたJavaプログラムをjarファイルにパッケージングします。Javaプログラムのパッケージングには，Antなどのビルドツールを使用します。

パッケージングしたjarファイルは次の場所に格納します。HCSCサーバをクラスタ構成で運用している場合は，それぞれの環境に格納してください。

<Cosminexusのインストールディレクトリ>¥CSC¥userlib¥customfunc

なお，HCSCサーバにjarファイルを格納する場合は，J2EEサーバを再起動してください。

HCSCサーバにjarファイルを格納する方法の詳細については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「2.3.9　データ変換で使用するjarファイルを格納する」を参照してください。

7.10　マッピングの条件

マッピング元（変換元ノードまたはファンクション），マッピング先（変換先ノードまたはファンクション），およびマッピング線の種類や組み合わせによってはマッピングできない場合があります。ここでは，マッピングできる条件について説明します。

＜この節の構成＞

7.10.1　マッピング対象とマッピング対象外

7.10.2　マッピングできるノードおよびファンクションの対応

7.10.3　接続できるマッピング線の数

7.10.1　マッピング対象とマッピング対象外

マッピングでは，マッピング対象の要素（ノード）とマッピング対象外の要素（ノード）があります。変換元ノードおよび変換先ノードに，マッピング対象外の要素は指定できません。マッピング対象外の要素を次の表に示します。

表7-9　マッピング対象外の要素

項目
内容

出現回数が1回に固定されていない，かつ名前が指定されていない要素（コンポジタ）
名前が指定されていないcomplexType要素の次の子要素（コンポジタ）のうち，出現回数が1回に固定されていない要素の子孫要素は，マッピング対象外とします。

sequence※1

choice

all

これらの要素（コンポジタ）は，#anonymous※2と表示されます。

再帰構造
再帰構造が定義されていた場合，再帰の開始要素だけを表示し，開始要素はマッピング対象外とします。

混在内容
混在内容であるmixed属性にtrueが指定されていた場合，要素間テキストはマッピング対象外とします。なお，要素間テキストは表示されません。

代替グループ
abstract属性にtrueを指定した要素はマッピング対象外とします。また，SubstitutionGroup属性の指定は無視されるため，SubstitutionGroup属性を指定した要素はスキーマツリービューアに表示されません。

2段階以上ネストしたunion要素またはlist要素
2段階以上ネストしたunion要素またはlist要素（union要素またはlist要素の属性がさらに定義されている）はマッピング対象外とします。

fixedが指定されている単純内容および属性の変換先ノード
fixedが指定されている単純内容および属性の変換先ノードはマッピング対象外とします。

注※1

要素（コンポジタ）下に単純内容要素が一つしか存在しない場合は除きます。

注※2

#anonymousについては，「7.2(3)　電文フォーマット定義ファイル作成時の注意事項」を参照してください。

7.10.2　マッピングできるノードおよびファンクションの対応

マッピング時は，マッピングできる変換元ノード，変換先ノード，およびファンクションの対応を考える必要があります。マッピングできる変換元ノード，変換先ノード，およびファンクションの対応を表7-10～表7-13に示します。

表7-10　変換元ノードから変換先ノードへのマッピング

マッピング元 | マッピング先
変換元ノード | 変換先ノード
単純内容※1※2 | 複合内容※1 | 属性※1※3
単純内容※1※2 | ○ | × | ○
複合内容※1 | × | × | ×
属性※1※3 | ○ | × | ○

（凡例）

○：マッピングできます。

×：マッピングできません。

注※1

単純内容，複合内容，および属性については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.5　データ変換定義画面」を参照してください。

注※2

any要素はany要素とだけマッピングできます。

注※3

anyAttribute属性はanyAttribute属性とだけマッピングできます。

表7-11　変換元ノードからファンクションへのマッピング

マッピング元 | マッピング先
変換元ノード | ファンクション
文字列系 | 数値系 | ノード系 | 制御系 | その他
文字列連結 | 部分文字列取得 | 文字数取得 | 文字列調査 | 空白除去 | 数値フォーマット変換 | 数値演算 | 端数処理 | 総和 | ノード数取得 | ノード名取得 | ノード調査 | くり返し | 選択 | 定数 | カスタム | 値置換え
単純内容※1※2 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | ○ | ○
複合内容※1 | × | × | × | × | × | × | × | × | × | ○ | ○ | ○ | ○ | × | × | × | ×
属性※1※3 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | ○ | × | ○ | ○

（凡例）

○：マッピングできます。

×：マッピングできません。

注※1

単純内容，複合内容，および属性については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.5　データ変換定義画面」を参照してください。

注※2

any要素はany要素とだけマッピングできます。any要素とany要素の間にファンクションを入れたマッピングはできません。

注※3

anyAttribute属性はanyAttribute属性とだけマッピングできます。anyAttribute属性とanyAttribute属性の間にファンクションを入れたマッピングはできません。

表7-12　ファンクションから変換先ノードへのマッピング

マッピング元 | マッピング先
ファンクション | 変換先ノード
単純内容※1※2 | 複合内容※1 | 属性※1※3
文字列系 | 文字列連結 | ○ | × | ○
部分文字列取得 | ○ | × | ○
文字数取得 | ○ | × | ○
文字列調査 | ○ | × | ○
空白除去 | ○ | × | ○
数値系 | 数値フォーマット変換 | ○ | × | ○
数値演算 | ○ | × | ○
端数処理 | ○ | × | ○
総和 | ○ | × | ○
ノード系 | ノード数取得 | ○ | × | ○
ノード名取得 | ○ | × | ○
ノード調査 | ○ | × | ○
制御系 | くり返し | ○ | ○ | ×
選択 | ○ | ○ | ○
その他 | 定数 | ○ | ○ | ○
カスタム | ○ | × | ○
値置換え | ○ | × | ○

（凡例）

○：マッピングできます。

×：マッピングできません。

注※1

単純内容，複合内容，および属性については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.5　データ変換定義画面」を参照してください。

注※2

any要素はany要素とだけマッピングできます。any要素とany要素の間にファンクションを入れたマッピングはできません。

注※3

anyAttribute属性はanyAttribute属性とだけマッピングできます。anyAttribute属性とanyAttribute属性の間にファンクションを入れたマッピングはできません。

表7-13　ファンクションからファンクションへのマッピング

マッピング元 | マッピング先
ファンクション | ファンクション
文字列系 | 数値系 | ノード系 | 制御系 | その他
文字列連結 | 部分文字列取得 | 文字数取得 | 文字列調査 | 空白除去 | 数値フォーマット変換 | 数値演算 | 端数処理 | 総和 | ノード数取得 | ノード名取得 | ノード調査 | くり返し | 選択※ | 定数 | カスタム | 値置換え
文字列系 | 文字列連結 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | × | × | × | ○ | × | ○ | ○
部分文字列取得 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | × | × | × | ○ | × | ○ | ○
文字数取得 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | × | × | × | ○ | × | ○ | ○
文字列調査 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | × | × | × | ○ | × | ○ | ○
空白除去 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | × | × | × | ○ | × | ○ | ○
数値系 | 数値フォーマット変換 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | × | × | × | ○ | × | ○ | ○
数値演算 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | × | × | × | ○ | × | ○ | ○
端数処理 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | × | × | × | ○ | × | ○ | ○
総和 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | × | × | × | ○ | × | ○ | ○
ノード系 | ノード数取得 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | × | × | × | ○ | × | ○ | ○
ノード名取得 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | × | × | × | ○ | × | ○ | ○
ノード調査 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | × | × | × | ○ | × | ○ | ○
制御系 | くり返し | × | × | × | × | × | × | × | × | × | × | × | × | × | ○ | × | × | ×
選択 | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × | ×
その他 | 定数 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | × | × | × | ○ | × | ○ | ○
カスタム | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | × | × | × | ○ | × | ○ | ○
値置換え | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | × | × | × | ○ | × | ○ | ○

（凡例）

○：マッピングできます。

×：マッピングできません。

注※

マッピング元のファンクションにくり返しファンクションを一つでも指定した場合，ほかのマッピング元もすべてくり返しファンクションを指定してください。

また，マッピング元のファンクションにくり返しファンクション以外を設定した場合，ほかのマッピング元もすべてくり返しファンクション以外を指定してください。

7.10.3　接続できるマッピング線の数

変換元ノード，変換先ノード，およびファンクションを接続するマッピング線は，接続できる数が決められています。出力として接続できるマッピング線の数を表7-14に，入力として接続できるマッピング線の数を表7-15に示します。

表7-14　出力として接続できるマッピング線の数

ノードまたはファンクション | 接続できるマッピング線の数
変換元ノード | 複数※1
すべてのファンクション | 1※2

注※1　上限値はありません。

注※2　定数ファンクションは代入線だけ複数接続できます。

表7-15　入力として接続できるマッピング線の数

ノードまたはファンクション | 接続できるマッピング線の数
変換先ノード | 複数※1
文字列系 | 文字列連結 | 複数※1
部分文字列取得 | 1
文字数取得 | 1
文字列調査 | 1
空白除去 | 1
数値系 | 数値フォーマット変換 | 1
数値演算 | 2
端数処理 | 1
総和 | 複数※1
ノード系 | ノード数取得 | 1
ノード名取得 | 1
ノード調査 | 1
制御系 | くり返し | 1
選択 | 複数※1
その他 | 定数 | 0
カスタム | 複数※2
値置換え | 1

注※1

上限値はありません。

注※2

対応する変換ファンクションの引数と同じ数が入力できます。0の場合もあります。

8.　ユーザ定義受付の定義

この章では，ユーザ定義受付の定義について説明します。

＜この章の構成＞

8.1　ユーザ定義受付の概要

8.2　定義の流れ

8.3　WSDLの作成

8.4　ユーザ定義受付の追加

8.5　ユーザ定義受付の内容の確認

8.6　ユーザ定義受付の保存

8.7　ユーザ定義受付の検証

8.8　ユーザ定義受付の情報の変更

8.9　ユーザ定義受付の削除

8.1　ユーザ定義受付の概要

ユーザ定義受付は，ユーザが定義した任意の形式でサービス部品実行要求を受け付け，応答を返すインターフェースです。

Cosminexus サービスプラットフォームでは，サービスリクエスタからのサービス部品の実行要求を受け付ける固定のインターフェースとして，4種類の標準受付（同期受付（Webサービス／SessionBean），非同期受付（WS-R／DBキュー））を備えています。標準受付を利用するには，それぞれの標準受付の形式に合わせてサービスリクエスタを作成し，さらにサービス部品の入出力形式に合わせて電文を作成，解析する必要があります。

これに対し，ユーザ定義受付は，個々のサービス部品およびビジネスプロセスの入出力形式に合わせた形式でサービスリクエスタからの要求を受け付けることができます。

ユーザ定義受付には次の種類があります。

SOAP受付

カスタム受付

TP1/RPC受付

FTP受付

SOAP受付は，ユーザが指定したWSDL形式のファイルをインターフェースとして使用し，サービスリクエスタとWebサービス（SOAP）で通信します。SOAP受付でリクエストを受け付けることができるHCSCコンポーネントはビジネスプロセスだけです。

カスタム受付は，任意のインターフェースおよび通信プロトコルでサービスリクエスタからの要求を受け付けます。カスタム受付を使用する場合，インターフェースおよび通信プロトコルはユーザが実装する必要があります。

カスタム受付については，「付録G　カスタム受付」を参照してください。

また，Cosminexus サービスプラットフォームでは，OpenTP1システム内にあるサービスリクエスタからの要求を受け付けるTP1/RPC受付と，FTPクライアントからの要求を受け付けるFTP受付の二つのユーザ定義受付を提供しています。

TP1/RPC受付については，「12.　TP1/RPC受付の概要」を参照してください。FTP受付については，「20.　FTP受付の定義」を参照してください。

なお，特に断りがない場合，ユーザ定義受付はSOAP受付を指します。

ユーザ定義受付，WSDL，ビジネスプロセスの定義の関係について，次の図に示します。

図8-1　ユーザ定義受付，WSDL，ビジネスプロセスの定義の関係

図8-1に示すように，ユーザ定義受付は，WSDLのポート（wsdl:port要素）ごとに作成します。一つのユーザ定義受付にwsdl:port要素に含まれるオペレーションがすべて含まれます。

また，図8-1のOperation_2は，Port_AおよびPort_Bの二つのwsdl:port要素に含まれます。このように，異なるwsdl:port要素に同じオペレーションが含まれる場合，複数のユーザ定義受付で同じオペレーションを利用できます。図8-1では，Operation_2は，ユーザ定義受付_1およびユーザ定義受付_2で利用しています。

8.2　定義の流れ

ユーザ定義受付の定義の流れには，次の二つがあります。

ビジネスプロセスの定義前にユーザ定義受付を定義する

次の二つの条件を満たす場合，先にWSDLを基にユーザ定義受付を作成し，そのあとでビジネスプロセスの受付アクティビティと応答アクティビティを定義します。

サービスリクエスタとのインターフェースが規定済み

規定したインターフェースに従ったWSDLが作成済み

この場合，ユーザ定義受付の作成時に入力したWSDLのインターフェースに合うように，受付アクティビティと応答アクティビティのオペレーションおよび電文定義をビジネスプロセス上で定義する必要があります。

ビジネスプロセスの定義後にユーザ定義受付を定義する

すでに定義されたビジネスプロセスがある場合，定義済みのビジネスプロセスに合ったユーザ定義受付を定義します。ユーザ定義受付を追加する前に，ビジネスプロセスの受付アクティビティと応答アクティビティのオペレーションおよび割当変数の電文定義に合うWSDLを作成しておく必要があります。

ユーザ定義受付は，ビジネスプロセスの受付アクティビティと応答アクティビティに定義されているオペレーション，および割当変数を呼び出せるように定義します。

ユーザ定義受付の定義の流れとして，これら二つの定義の流れを次に説明します。

＜この節の構成＞

8.2.1　ビジネスプロセスを定義する前にユーザ定義受付を定義する

8.2.2　ビジネスプロセスの定義後にユーザ定義受付を定義する

8.2.1　ビジネスプロセスを定義する前にユーザ定義受付を定義する

ビジネスプロセスを定義する前にユーザ定義受付を定義し，そのインターフェースに合うようにビジネスプロセスの受付アクティビティ，および応答アクティビティを定義する流れについて，次の図に示します。

図8-2　ユーザ定義受付の定義の流れ（ビジネスプロセスの定義前に定義する場合）

ビジネスプロセスを定義する前にユーザ定義受付を定義する場合の作業について次に説明します。

＜この項の構成＞

(1)　ビジネスプロセスの追加

(2)　ユーザ定義受付の追加

(3)　ビジネスプロセスの定義

(4)　ユーザ定義受付の内容の確認

(5)　ユーザ定義受付の保存

(6)　ユーザ定義受付の検証

(7)　ユーザ定義受付の情報の変更

(8)　ユーザ定義受付の削除

(1)　ビジネスプロセスの追加

ユーザ定義受付を定義するビジネスプロセスを作成します。（2）で定義するユーザ定義受付の内容と合うインターフェースとなるようにビジネスプロセスを定義します。そのため，ここではアクティビティの配置や変数の定義，各アクティビティの詳細を定義するダイアログでの情報の入力などをする必要はありません。

ビジネスプロセスの追加については，「6.2.1　ビジネスプロセスを新規に追加する」を参照してください。

(2)　ユーザ定義受付の追加

作成済みのWSDLをユーザ定義受付追加ウィザードで入力して，ユーザ定義受付を追加します。

ユーザ定義受付を新規に追加する方法の詳細については，「8.4　ユーザ定義受付の追加」を参照してください。

(3)　ビジネスプロセスの定義

ユーザ定義受付で定義されているすべてのオペレーションに対応する受付アクティビティ，および応答アクティビティを定義します。

受付アクティビティおよび応答アクティビティで，ユーザ定義受付で規定された電文フォーマットを持つ変数を定義し，割当変数として設定する手順を次に示します（次の手順は受付アクティビティの場合です。応答アクティビティの場合も同様の手順です）。

［受付アクティビティ］ダイアログで，ユーザ定義受付で定義されているオペレーション名を設定します。

［ボディ割当変数］の［編集］ボタンをクリックします。
［変数・相関セット一覧］ダイアログが表示されます。

変数名を設定します。

［取込］ボタンをクリックします。
［電文フォーマットの取込］ダイアログが表示されます。［電文フォーマットの取込］ダイアログには次の情報が表示されています。

受付名

手順1.で設定したオペレーションを持つユーザ定義受付の受付名が設定されています。

オペレーション名

手順1.で設定した値が設定されています。

電文種別

受付アクティビティの場合は要求電文が，応答アクティビティの場合は応答電文が選択されています。

電文フォーマット名

変数名が設定されています。

なお，手順1.で設定したオペレーション名がユーザ定義受付に存在しない場合，受付名およびオペレーション名が空白になります。この場合，手順1に戻って正しいオペレーション名を指定してください。
また，電文フォーマット名には，初期値として変数名が設定されています。必要に応じて適当な名称に変更してください。

［OK］ボタンをクリックします。
［電文フォーマットの取込］ダイアログが閉じられ，［変数・相関セット一覧］ダイアログが操作できる状態になります。

［変数・相関セット一覧］ダイアログの［追加］ボタンをクリックします。

［変数・相関セット一覧］ダイアログで電文のヘッダに割り当てる変数を追加します。
ヘッダに割り当てる変数を追加する手順については，手順3.から手順6.を参照してください。

［変数・相関セット一覧］ダイアログの変数一覧から追加した変数を選択します。

［変数・相関セット一覧］ダイアログの［OK］ボタンをクリックします。
［変数・相関セット一覧］ダイアログが閉じられます。

［受付アクティビティ］ダイアログで，［ヘッダ割当変数］の［設定］ボタンをクリックします。
［ヘッダ割当変数］ダイアログが表示されます。

［ヘッダ割当変数］ダイアログの［追加］ボタンをクリックします。

［ヘッダ割当変数］ダイアログの割当変数から追加した変数を選択します。

［ヘッダ割当変数］ダイアログの［OK］ボタンをクリックします。

［受付アクティビティ］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.7　受付アクティビティダイアログ」を参照してください。［変数・相関セット一覧］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.1　変数・相関セット一覧ダイアログ」を参照してください。［電文フォーマットの取込］ダイアログについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.4.5　電文フォーマットの取込ダイアログ」を参照してください。

ポイント

ユーザ定義受付のオペレーションにフォルトが含まれている場合，ビジネスプロセスではフォルト名を指定した応答アクティビティを定義します。［応答アクティビティ］ダイアログの［フォルト名］に，ユーザ定義受付定義画面の［フォルト電文］の［フォルト名］に表示されている値を指定してから，手順2.～9.と同様の方法で変数を割り当てます。

また，ユーザ定義受付のオペレーションに複数のフォルトが含まれている場合，含まれるフォルトの数だけ応答アクティビティを追加し，それぞれに対応するフォルト名を設定する必要があります。また，各応答アクティビティで，手順2.～9.と同様の方法で変数を割り当てます。

(4)　ユーザ定義受付の内容の確認

追加されたユーザ定義受付の内容を確認します。ユーザ定義受付の内容は，ビジネスプロセスの定義内容と合致している必要があります。

ユーザ定義受付の確認の詳細については，「8.5　ユーザ定義受付の内容の確認」を参照してください。

(5)　ユーザ定義受付の保存

定義したユーザ定義受付をリポジトリに保存します。

ユーザ定義受付を保存する方法については，「8.6　ユーザ定義受付の保存」を参照してください。

(6)　ユーザ定義受付の検証

定義したユーザ定義受付とビジネスプロセス定義との整合性を検証できます。

ユーザ定義受付の検証方法の詳細については，「8.7　ユーザ定義受付の検証」を参照してください。

(7)　ユーザ定義受付の情報の変更

定義したユーザ定義受付は，必要に応じて受付名，受付ID，およびコンテキストルートを変更できます。

ユーザ定義受付の情報を変更する方法については，「8.8　ユーザ定義受付の情報の変更」を参照してください。

(8)　ユーザ定義受付の削除

不要になったユーザ定義受付は，必要に応じて削除できます。

ユーザ定義受付の削除方法については，「8.9　ユーザ定義受付の削除」を参照してください。

8.2.2　ビジネスプロセスの定義後にユーザ定義受付を定義する

定義済みのビジネスプロセスのインターフェースに合うようにユーザ定義受付を定義する流れについて，次の図に示します。

図8-3　ユーザ定義受付の定義の流れ（ビジネスプロセスの定義後に定義する場合）

ビジネスプロセスの定義後にユーザ定義受付を定義する場合の作業について次に説明します。

＜この項の構成＞

(1)　ビジネスプロセスの定義

(2)　WSDLの作成

(3)　ユーザ定義受付の追加

(4)　ユーザ定義受付の内容の確認

(5)　ユーザ定義受付の保存

(6)　ユーザ定義受付の検証

(7)　ユーザ定義受付の情報の変更

(8)　ユーザ定義受付の削除

(1)　ビジネスプロセスの定義

ユーザ定義受付を定義する前に，ビジネスプロセスを定義しておく必要があります。ビジネスプロセスが定義途中の場合でも，サービスリクエスタとのインターフェースとなる受付アクティビティおよび応答アクティビティを配置し，オペレーション名および割当変数の設定まで行ってください。

ビジネスプロセスの定義については，「6.3　ビジネスプロセスの内容の定義」を参照してください。

(2)　WSDLの作成

ユーザ定義受付を定義する際に利用するWSDLを作成します。

WSDLの作成の詳細については，「8.3　WSDLの作成」を参照してください。

(3)　ユーザ定義受付の追加

ユーザ定義受付追加ウィザードを利用して，ユーザ定義受付を追加します。

ユーザ定義受付を新規に追加する方法の詳細については，「8.4　ユーザ定義受付の追加」を参照してください。

(4)　ユーザ定義受付の内容の確認

追加されたユーザ定義受付の内容を確認します。ユーザ定義受付の内容は，ビジネスプロセスの定義内容と合致している必要があります。

ユーザ定義受付の確認の詳細については，「8.5　ユーザ定義受付の内容の確認」を参照してください。

(5)　ユーザ定義受付の保存

定義したユーザ定義受付をリポジトリに保存します。

ユーザ定義受付を保存する方法については，「8.6　ユーザ定義受付の保存」を参照してください。

(6)　ユーザ定義受付の検証

定義したユーザ定義受付とビジネスプロセス定義との整合性を検証できます。

ユーザ定義受付の検証方法の詳細については，「8.7　ユーザ定義受付の検証」を参照してください。

(7)　ユーザ定義受付の情報の変更

定義したユーザ定義受付は，必要に応じて受付名，受付ID，およびコンテキストルートを変更できます。

ユーザ定義受付の情報を変更する方法については，「8.8　ユーザ定義受付の情報の変更」を参照してください。

(8)　ユーザ定義受付の削除

不要になったユーザ定義受付は，必要に応じて削除できます。

ユーザ定義受付の削除方法については，「8.9　ユーザ定義受付の削除」を参照してください。

8.3　WSDLの作成

ユーザ定義受付を利用してサービス部品を呼び出すときのインターフェース情報を定義するWSDLファイルを作成します。

ここでは，WSDLファイルの作成方法について説明します。

＜この節の構成＞

8.3.1　フォルトが発生した場合にフォルト電文を返す例

8.3.2　サービスアダプタの接続先情報を動的に変更する例

8.3.3　ユーザ定義受付のWSDL作成時の注意事項

8.3.1　フォルトが発生した場合にフォルト電文を返す例

サービス部品の呼び出しでフォルトが発生したあと，サービスリクエスタにフォルト電文を返す場合を例に，WSDLファイルの作成方法について説明します。

＜この項の構成＞

(1)　ビジネスプロセスの例

(2)　電文フォーマットの内容の例

(3)　WSDLの作成例

(1)　ビジネスプロセスの例

WSDLの作成の例として使用するビジネスプロセスを次の図に示します。

図8-4　WSDLの作成の例として使用するビジネスプロセス

サービスリクエスタがビジネスプロセスにサービス部品の実行を要求します。

サービス部品の実行要求では，XMLの要求電文（ボディ）が送付されます。

ビジネスプロセスはXMLの要求電文を受付1という受付アクティビティで受け取ります。このときのオペレーション名はoperation1です。

受付1には変数RequestMessageを割り当て，要求電文を規定する電文フォーマットとしてRequest.xsdが指定されています。

ビジネスプロセスからサービス部品を呼び出します。フォルトが発生した場合は項番10.でフォルトが返されます。

ビジネスプロセスが，サービス部品の実行結果をXMLの応答電文として構成し，応答1という応答アクティビティで返します。

応答1には変数ResponseMessageを割り当て，応答電文を規定する電文フォーマットとしてResponse.xsdが指定されています。

サービスリクエスタへの応答が返されます。

サービスリクエスタへの応答では，XMLの応答電文（ボディ）が送付されます。

項番5.でフォルトが発生した場合，応答2という応答アクティビティからfault1というフォルトが返されます。

応答2には変数FaultMessageを割り当て，フォルト電文を規定する電文フォーマットとしてFault.xsdが指定されています。

サービスリクエスタにフォルト電文が送付されます。

(2)　電文フォーマットの内容の例

図8-4に示すビジネスプロセスで利用する電文フォーマットの例を次に示します。

Request.xsd

XMLスキーマソース
文字列の値を持つ単一の要素<Request1>を規定する要求電文用の電文フォーマットです。

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://www.example.org/request"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <xsd:element name="Request1" type="xsd:string" />
</xsd:schema>

この電文フォーマットの規定に従って送付されるXML

<Request1>Sample request message</Request1>

Response.xsd

XMLスキーマソース
boolean値を持つ単一の要素<Response1>を規定する応答電文用の電文フォーマットです。

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://www.example.org/response"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <xsd:element name="Response1" type="xsd:boolean" />
</xsd:schema>

この電文フォーマットの規定に従って送付されるXML

<Response1>true</Response1>

Fault.xsd

XMLスキーマソース
<Fault1>という要素を規定し，さらにその子要素としてint値を持つ要素<param1>を規定するフォルト電文用の電文フォーマットです。

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://www.example.org/service"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:svc="http://www.example.org/service">
 <xsd:element name="Fault1" type="svc:SampleData"/>
 <xsd:complexType name="SampleData">
   <xsd:sequence>
     <xsd:element name="param1" type="xsd:int"/>
   </xsd:sequence>
 </xsd:complexType>
</xsd:schema>

この電文フォーマットの規定に従って送付されるXML

<Fault1>
 <param1>123</param1>
</Fault1>

(3)　WSDLの作成例

ここでは，SOAP1.1を利用する場合を想定して，「(1) ビジネスプロセスの例」に示すビジネスプロセスに合わせたWSDLの作成例を示します。

WSDLの形式に関する条件や注意事項については，「2.6.1　Webサービスを利用したサービス部品の適用範囲」および「8.3.3　ユーザ定義受付のWSDL作成時の注意事項」を参照してください。

WSDLの作成例は「Sample_Reception.wsdl」とします。Sample_Reception.wsdlの概要を次に示します。

「(1) ビジネスプロセスの例」に示す内容を前提としています。

ユーザ定義受付はオペレーション単位に作成することもできますが，Sample_Reception.wsdlは，一つのユーザ定義受付にすべてのオペレーション含むときのWSDLです。

作成するWSDLの通信スタイルは「document」スタイルを推奨しています。そのため，Sample_Reception.wsdlは「document」スタイルのWSDLとなっています。

WSDLの作成例「Sample_Reception.wsdl」を次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
targetNamespace="http://www.example.org/service"
xmlns:svc="http://www.example.org/service"
xmlns:req="http://www.example.org/request"
xmlns:res="http://www.example.org/response"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <wsdl:types>
   <xsd:schema targetNamespace="http://www.example.org/request">
     <xsd:element name="Request1" type="xsd:string" />
   </xsd:schema>
   <xsd:schema targetNamespace="http://www.example.org/response">
     <xsd:element name="Response1" type="xsd:boolean" />
   </xsd:schema>
   <xsd:schema targetNamespace="http://www.example.org/service">
     <xsd:element name="Fault1" type="svc:SampleData"/>
     <xsd:complexType name="SampleData">
       <xsd:sequence>
         <xsd:element name="param1" type="xsd:int"/>
       </xsd:sequence>
     </xsd:complexType>
   </xsd:schema>
 </wsdl:types>
 <wsdl:message name="ReqMsg1">
   <wsdl:part element="req:Request1" name="reqParam"/>
 </wsdl:message>
 <wsdl:message name="ResMsg1">
   <wsdl:part element="res:Response1" name="resParam"/>
 </wsdl:message>
 <wsdl:message name="FltMsg1">
   <wsdl:part element="svc:Fault1" name="fltParam"/>
 </wsdl:message>
 <wsdl:portType name="SamplePortType">
   <wsdl:operation name="operation1">
     <wsdl:input message="svc:ReqMsg1"/>
     <wsdl:output message="svc:ResMsg1"/>
     <wsdl:fault message="svc:FltMsg1" name="Fault1"/>
   </wsdl:operation>
 </wsdl:portType>
 <wsdl:binding name="SampleBinding" type="svc:SamplePortType">
   <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
   <wsdl:operation name="operation1">
     <soap:operation soapAction=""/>
     <wsdl:input>
       <soap:body/>
     </wsdl:input>
     <wsdl:output>
       <soap:body/>
     </wsdl:output>
     <wsdl:fault name="Fault1">
       <soap:fault name="Fault1"/>
     </wsdl:fault>
   </wsdl:operation>
 </wsdl:binding>
 <wsdl:service name="SampleService">
   <wsdl:port binding="svc:SampleBinding" name="UserInfo">
     <soap:address location="http://localhost:80/SampleService/services/UserInfo" />
   </wsdl:port>
 </wsdl:service>
</wsdl:definitions>

この作成例「Sample_Reception.wsdl」は，次の(a)～(h)の作業を行って作成します。

(a)　オペレーションとフォルト名のリストアップ

ビジネスプロセスの受付アクティビティ，および応答アクティビティで定義されている同期のオペレーションをリストアップします。また，フォルト名が定義されている応答アクティビティがある場合は，フォルト名もリストアップします。

作成例ではオペレーションは「operation1」が該当します。また，フォルト名は「Fault1」が該当します。

(b)　割当変数の電文フォーマット定義ファイルのリストアップ

受付アクティビティ，および応答アクティビティが使用している割当変数の電文フォーマット定義ファイルをリストアップします。

作成例では，「Request.xsd」，「Response.xsd」，および「Fault.xsd」が該当します。

注意

リストアップした電文フォーマット定義ファイルの中に，同じ名前空間のスキーマが複数存在する場合，一つのスキーマに集約する必要があります。
このとき，次の二つの条件を満たす場合，割当変数の電文フォーマット定義ファイルを名前の重複がなくなるよう変更してください。
　・スキーマの中の要素について名前の重複がある。
　・その要素の内容が異なる。
なお，割当変数の電文フォーマット定義ファイルが複数ファイルの場合（外部のXMLファイルを参照している場合），外部のXMLファイルのスキーマも含めて要素の重複がなくなるよう変更してください。
また，それぞれのスキーマの属性が相反する値を持つ場合，値の変更による影響を考慮してスキーマを集約してください。

リストアップした電文フォーマット定義ファイルの中に，targetNamespace属性を持たないスキーマ（カメレオンスキーマ）がある場合，割当変数の電文フォーマット定義ファイルは，targetNamespace属性を指定したスキーマに変更してください。

リストアップしたフォルト電文の電文フォーマット定義ファイルのルート要素が複合型でない場合，割当変数の電文フォーマット定義ファイルのルート要素を，複合型になるように変更してください。

フォルト電文のルート要素の名前空間は，wsdl:definitions要素の名前空間と一致させる必要があります。
このため，次の二つの条件を満たす場合，その割当変数の電文フォーマットファイルを変更してください。
　・フォルト電文が複数存在する。
　・ルート要素の名前空間が異なる。
異なるオペレーションのフォルト電文同士の名前空間が異なる場合，オペレーションごとにWSDLファイルを分けて作成し，ユーザ定義受付を複数作成して対応できます。

(c)　WSDLファイルのひな形の作成（wsdl:definitions要素の定義）

WSDLファイルのひな形として，XML宣言およびwsdl:definitions要素を定義します。wsdl:definitions要素には，次の表に示す属性を追加します。

表8-1　wsdl:definitions要素に追加する属性

属性 | 意味 | 値 | 個数
targetNamespace | サービス部品の名前空間URI | 任意のURIを定義できます。ただし，フォルト電文がある場合には，フォルト電文の電文フォーマット定義ファイルのxsd:schema要素が持つtargetNamespace属性値と同じURIを定義します。 | 1
xmlns:svc | サービス部品のプリフィックス宣言 | targetNamespace属性と同じ値を定義します。 | 1
xmlns:req | 要求電文の電文フォーマットプリフィックス宣言 | 要求電文の電文フォーマット定義ファイルのxsd:schema要素が持つtargetNamespace属性値と同じURIを定義します。 | 1
xmlns:res | 応答電文の電文フォーマットプリフィックス宣言 | 応答電文の電文フォーマット定義ファイルのxsd:schema要素が持つtargetNamespace属性値と同じURIを定義します。 | 1
xmlns:soap | SOAPのプリフィックス宣言 | 既定の値「http://schemas.xmlsoap.org/wsdl/soap/」を定義します。 | 1
xmlns:wsdl | WSDLのプリフィックス宣言 | 既定の値「http://schemas.xmlsoap.org/wsdl/」を定義します。 | 1
xmlns:xsd | XMLスキーマのプリフィックス宣言 | 既定の値「http://www.w3.org/2001/XMLSchema」を定義します。 | 1

wsdl:definitions要素の定義例を次の図に示します。

図8-5　wsdl:definitions要素の定義例

複数のオペレーションを使用する場合

作成例（Sample_Reception.wsdl）では，オペレーションを一つだけ使用していますが，複数のオペレーションを使用する場合，複数の要求電文，応答電文を扱うことになります。これらの電文が異なる複数の名前空間を使用している場合には，次の表に示すように，それぞれのプリフィックス宣言をwsdl:definitions要素に定義します。

表8-2　wsdl:definitions要素に追加する属性（複数のオペレーションを使用する場合）

属性
意味
値

xmlns:reqN(N>0)
要求電文が複数の名前空間に分かれる場合のプリフィックス宣言
要求電文の電文フォーマット定義ファイルのxsd:schema要素が持つtargetNamespace属性値と同じURIを定義します。

例

http://www.example.org/request1

xmlns:resN(N>0)
応答電文が複数の名前空間に分かれる場合のプリフィックス宣言
応答電文の電文フォーマット定義ファイルのxsd:schema要素が持つtargetNamespace属性値と同じURIを定義します。

例

http://www.example.org/response1

定義した内容はwsdl:message要素の子要素であるwsdl:part要素のelement属性に定義します。wsdl:message要素の定義については，「(e) wsdl:message要素の定義」を参照してください。

複数のオペレーションを使用する場合の定義例を次の図に示します。

図8-6　wsdl:definitions要素の定義例（複数のオペレーションを使用する場合）

(d)　wsdl:types要素の定義

wsdl:types要素とその下位要素，および属性を定義します。

「(c) WSDLファイルのひな形の作成（wsdl:definitions要素の定義）」で定義したwsdl:definitions要素の子要素として，wsdl:types要素を定義します。

「(b) 割当変数の電文フォーマット定義ファイルのリストアップ」でリストアップした電文フォーマット定義ファイルのxsd:schema要素をtargetNamespace属性で分類し，それぞれのtargetNamespaceの値ごとに一つずつxsd:schema要素を定義します。

手順2.で定義したxsd:schema要素の属性として，電文フォーマット定義ファイルのxsd:schema要素が持つすべての属性を追加します。

手順2.で定義したxsd:schema要素の子要素として，電文フォーマット定義ファイルのxsd:schema要素が持つすべての子要素を追加します。

複数のフォルト電文があり，名前空間が異なる場合，フォルト電文の名前空間をwsdl:definitions要素のtargetNamespace属性の値に変更します。

wsdl:types要素以下に定義する要素と属性を次の表に示します。

表8-3　wsdl:types要素以下に定義する要素と属性

要素 | 属性 | 意味 | 値 | 個数
wsdl:types | － | 型定義要素 | － | 1
| xsd:schema | － | スキーマ要素 | － | 1～電文フォーマット定義ファイルが使う名前空間の数
targetNamespace | 名前空間属性 | 電文のtargetNamespaceと同じ値を定義します。 | 1
xsd:schemaの属性 | 属性 | 電文の属性と同じ値を定義します。 | 1～属性の数
| xsd:schemaの子要素 | － | 電文の内容 | 電文が持つxsd:schema要素のすべての子要素をコピーします。 | 1～同一名前空間を使用する電文フォーマットのxsd:schema要素の子要素の数

（凡例）

－：該当しません。

wsdl:types要素の定義例を次の図に示します。

図8-7　wsdl:types要素の定義例

(e)　wsdl:message要素の定義

wsdl:message要素とその下位要素，および属性を定義します。

「(c) WSDLファイルのひな形の作成（wsdl:definitions要素の定義）」で定義したwsdl:definitions要素の子要素としてwsdl:message要素を定義します。
wsdl:message要素はWSDLで定義するオペレーションが持つすべての要求電文，応答電文，およびフォルト電文の数だけ定義します。
作成例では，オペレーションが一つあります。そのオペレーションには，要求電文が一つ，応答電文が一つ，フォルト電文が一つあるので，wsdl:message要素を三つ定義します。

wsdl:message要素にname属性を定義します。
name属性の値は，ファイル内で一意な値になるよう，ほかのwsdl:message要素のname属性とは異なる値を定義します。
作成例では，operation1の要求電文にはReqMsg1，応答電文にはResMsg1と定義しています。フォルト電文は個数に合わせてFltMsgN（Nは1以上）とします。

wsdl:message要素の子要素として，wsdl:part要素を一つずつ定義します。

wsdl:part要素にname属性とelement属性を定義します。
name属性には任意の文字列を指定します。
element属性の値には，「(d) wsdl:types要素の定義」でコピーしたxsd:schema要素の子要素から，ルート要素を選択して指定します。表8-1に示すプリフィックスとルート要素名を使用してQNameで指定します。

wsdl:message要素以下に定義する要素と属性を次の表に示します。

表8-4　wsdl:message要素以下に定義する要素と属性

要素 | 属性 | 意味 | 値 | 個数
wsdl:message | － | メッセージ定義要素 | － | 1
name | メッセージ名属性 | ほかのwsdl:message要素のname属性とは異なる一意の文字列を定義します。 | 1
| wsdl:part | － | メッセージパート定義要素 | － | 1
name | メッセージパート名属性 | 任意の文字列※を定義します。 | 1
element | 要素参照属性 | 該当する電文フォーマットファイルのルート要素を定義します。 | 1

（凡例）

－：該当しません。

注※

使用できる文字種には制限があります。使用できる文字種については，「8.3.3(2)　WSDL定義で使用できる文字」を参照してください。

wsdl:message要素の定義例を次の図に示します。

図8-8　wsdl:message要素の定義例

(f)　wsdl:portType要素の定義

wsdl:portType要素とその下位要素，および属性を定義します。

「(c) WSDLファイルのひな形の作成（wsdl:definitions要素の定義）」で定義したwsdl:definitions要素の子要素として，wsdl:portType要素を一つ定義します。

wsdl:portType要素にname属性を定義します。
name属性の値には，任意の文字列を指定できます。

wsdl:portType要素の子要素として，wsdl:operation要素を定義します。
wsdl:operation要素は，「(a) オペレーションとフォルト名のリストアップ」でリストアップしたオペレーションの数だけ定義します。

wsdl:operation要素にname属性を定義します。
name属性の値には，「(a) オペレーションとフォルト名のリストアップ」でリストアップしたオペレーションのオペレーション名を指定します。
作成例では，wsdl:operation要素を一つ定義し，name属性は「operation1」とします。

wsdl:operation要素の子要素として，wsdl:input要素，wsdl:output要素，およびwsdl:fault要素を定義します。
wsdl:input要素，wsdl:output要素，wsdl:fault要素の順序で定義します。
フォルト電文用の応答アクティビティが存在しない場合，wsdl:fault要素は省略できます。フォルト電文用の応答アクティビティが複数存在する場合，その数だけ定義します。
作成例では，wsdl:input要素，wsdl:output要素，およびwsdl:fault要素を一つずつ定義します。

wsdl:input要素およびwsdl:output要素にmessage属性を定義します。
message属性の値には，「(e) wsdl:message要素の定義」で定義したwsdl:message要素のname属性の値をQNameで指定します。

wsdl:fault要素にname属性とmessage属性を定義します。
name属性の値には，「(a) オペレーションとフォルト名のリストアップ」でリストアップしたフォルト名を指定します。
message属性の値には，「(e) wsdl:message要素の定義」で定義したwsdl:message要素のname属性の値をQNameで指定します。

wsdl:portType要素以下に定義する要素と属性を次の表に示します。

表8-5　wsdl:portType要素以下に定義する要素と属性

要素 | 属性 | 意味 | 値 | 個数
wsdl:portType | － | ポートタイプ定義要素 | － | 1
name | ポートタイプ名属性 | 任意の文字列※を定義します。 | 1
| wsdl:operation | － | オペレーション定義要素 | － | 1～オペレーションの個数
name | オペレーション名属性 | オペレーション名を定義します。 | 1
| wsdl:input | － | 要求メッセージ定義要素 | － | 1
message | メッセージ参照属性 | 「(e) wsdl:message要素の定義」で定義したwsdl:message要素のname属性値をQNameで指定します。 | 1
wsdl:output | － | 応答メッセージ定義要素 | － | 1
message | メッセージ参照属性 | 「(e) wsdl:message要素の定義」で定義したwsdl:message要素のname属性値をQNameで指定します。 | 1
wsdl:fault | － | フォルトメッセージ定義要素 | － | 1～フォルトの個数
name | フォルトメッセージ名属性 | フォルト名を定義します。 | 1
message | フォルトメッセージ参照属性 | 「(e) wsdl:message要素の定義」で定義したwsdl:message要素のname属性値をQNameで指定します。 | 1

（凡例）

－：該当しません。

注※

使用できる文字種には制限があります。使用できる文字種については，「8.3.3(2)　WSDL定義で使用できる文字」を参照してください。

wsdl:portType要素の定義例を次の図に示します。

図8-9　wsdl:portType要素の定義例

(g)　wsdl:binding要素の定義

wsdl:binding要素とその下位要素，および属性を定義します。

「(c) WSDLファイルのひな形の作成（wsdl:definitions要素の定義）」で定義したwsdl:definitions要素の子要素として，wsdl:binding要素を定義します。

wsdl:binding要素にname属性とtype属性を定義します。
name属性の値には，任意の文字列を指定できます。
type属性の値には，「(f) wsdl:portType要素の定義」で定義したwsdl:portType要素のname属性の値をQNameで指定します。

wsdl:binding要素の子要素として，soap:binding要素を定義します。

soap:binding要素にtransport属性を定義します。
transport属性の値は固定値です。「http://schemas.xmlsoap.org/soap/http」と定義します。

wsdl:binding要素の子要素として，wsdl:operation要素を定義します。
wsdl:operation要素は，「(a) オペレーションとフォルト名のリストアップ」でリストアップしたオペレーションの数だけ定義します。

wsdl:operation要素にname属性を定義します。
name属性の値には，「(f) wsdl:portType要素の定義」で定義したwsdl:portType要素の子要素であるwsdl:operation要素のname属性の値と同じ値を指定します。

wsdl:operation要素の子要素として，soap:operation要素を定義します。

soap:operation要素にsoapAction属性を指定します。
soapAction属性の値は空にします。

wsdl:operation要素の子要素として，wsdl:input要素，wsdl:output要素，およびwsdl:fault要素を定義します。
wsdl:input要素，wsdl:output要素，wsdl:fault要素の順序で定義します。
フォルト電文用の応答アクティビティが存在しない場合，wsdl:fault要素は省略できます。フォルト電文用の応答アクティビティが複数存在する場合，その数だけ定義します。
作成例では，wsdl:input要素，wsdl:output要素，およびwsdl:fault要素を一つずつ定義します。

wsdl:input要素とwsdl:output要素の子要素として，soap:body要素を定義します。
soap:body要素には，値は指定しません。

wsdl:fault要素にname属性を定義します。
name属性の値には，「(f) wsdl:portType要素の定義」で定義したwsdl:operation要素の子要素であるwsdl:fault要素のname属性の値と同じ値を指定します。

wsdl:fault要素の子要素として，soap:fault要素を定義します。

soap:fault要素にname属性を定義します。
name属性の値には，親要素であるwsdl:fault要素のname属性と同じ値を指定します。

wsdl:binding要素以下に定義する要素と属性を次の表に示します。

表8-6　wsdl:binding要素以下に定義する要素と属性

要素
属性
意味
値
個数

wsdl:binding
－
バインディング定義要素
－
1

name
バインディング名属性
任意の文字列※を定義します。
1

type
ポートタイプ参照属性
「(f) wsdl:portType要素の定義」で定義したwsdl:portTypeのname属性値をQNameで指定します。
1

soap:binding
－
SOAPバインディング定義要素
－
1

transport
SOAPバインディング伝送形態定義属性
「http://schemas.xmlsoap.org/soap/http」を定義します（固定値）。
1

wsdl:operation
－
オペレーション定義要素
－
1～オペレーションの個数

name
オペレーション名属性
オペレーション名を定義します。
「(f) wsdl:portType要素の定義」で定義したwsdl:operation要素の子要素であるwsdl:fault要素のname属性の値と同じ値を指定します。
1

soap:operation
－
SOAPバインディングオペレーション定義要素
－
1

soapAction
SOAPActionヘッダ定義属性
－
1

wsdl:input
－
要求メッセージ定義要素
－
1

soap:body
－
SOAPバインディングBody要素定義要素
－
1

wsdl:output
－
応答メッセージ定義要素
－
1

soap:body
－
SOAPバインディングBody要素定義要素
－
1

wsdl:fault
－
フォルトメッセージ定義要素
－
1～フォルトの個数

name
フォルトメッセージ名属性
フォルト名を定義します。
1

soap:fault
－
SOAPバインディングFault要素定義要素
－
1

name
SOAPバインディング名前属性
フォルト名を定義します。
1

（凡例）

－：該当しません。

注※

使用できる文字種には制限があります。使用できる文字種については，「8.3.3(2)　WSDL定義で使用できる文字」を参照してください。

wsdl:binding要素の定義例を次の図に示します。

図8-10　wsdl:binding要素の定義例

style属性およびuse属性を使用する場合

wsdl:binding要素以下にstyle属性およびuse属性を使用して，documentまたはliteralを明示することもできます。

図8-11　wsdl:binding要素の定義例（style属性およびuse属性を使用する場合）

(h)　wsdl:service要素の定義

wsdl:service要素とその下位要素，および属性を定義します。

「(c) WSDLファイルのひな形の作成（wsdl:definitions要素の定義）」で定義したwsdl:definitions要素の子要素として，wsdl:service要素を定義します。

wsdl:service要素にname属性を定義します。
name属性の値には，任意の文字列を指定できます。

wsdl:service要素の子要素として，wsdl:port要素を一つ定義します。

wsdl:port要素にname属性とbinding属性を定義します。
name属性の値には，任意の文字列を指定できます。
binding属性の値には，「(g) wsdl:binding要素の定義」で定義したwsdl:binding要素のname属性の値をQNameで指定します。

wsdl:port要素の子要素として，soap:address要素を一つ定義します。

soap:address要素にlocation属性を定義します。
location属性の値には，仮の値として「http://localhost:80/SampleService/services/<PortName>」を指定します。
<PortName>には，手順4.で定義したname属性と同じ値を指定してください。

ポイント

WSDLを作成した段階では，サービスロケーションの値（wsdl:port要素内のsoap-address要素のlocation属性値）は決定していません。このため，仮の値を設定します。この値は，Cosminexusが提供しているSOAP通信基盤およびJAX-WSエンジンでエラーにならない値です。

サービスロケーションの値は，ユーザ定義ファイルを含むHCSCコンポーネントを配備定義したあとに確定します。WSDLを編集して，確定したサービスロケーションの値を設定してから，WSDLを基にサービスリクエスタを作成してください。WSDLの編集の詳細については，「10.7.2　WSDLを編集する」を参照してください。

wsdl:service要素以下に定義する要素と属性を次の表に示します。

表8-7　wsdl:service要素以下に定義する要素と属性

要素
属性
意味
値
個数

wsdl:service
－
サービス定義要素
－
1

name
サービス名属性
任意の文字列※を定義します。
1

wsdl:port
－
ポート定義要素
－
1

name
ポート名属性
任意の文字列※を定義します。
1

binding
バインディング参照属性
「(g) wsdl:binding要素の定義」で定義したwsdl:binding要素のname属性値をQNameで指定します。
1

soap:address
－
SOAPバインディングアドレス定義要素
－
1

location
サービス位置定義属性
仮の値として，
「http://localhost:80/SampleService/services/<PortName>」を定義します。
<PortName>には，wsdl:port要素のname属性と同じ値を指定します。
1

（凡例）

－：該当しません。

注※

使用できる文字種には制限があります。使用できる文字種については，「8.3.3(2)　WSDL定義で使用できる文字」を参照してください。

wsdl:service要素の定義例を次の図に示します。

図8-12　wsdl:service要素の定義例

複数のwsdl:portを使用する場合

作成例（Sample_Reception.wsdl）では，一つのwsdl:port要素にすべてを定義していますが，複数のwsdl:port要素を使用して，それぞれにオペレーションを定義することもできます。

複数のwsdl:port要素を使用する場合の定義例を次の図に示します。

図8-13　wsdl:service要素の定義例（複数のwsdl:portを使用する場合）

8.3.2　サービスアダプタの接続先情報を動的に変更する例

接続先情報ファイルを使用することで，サービスアダプタの接続先情報を動的に変更できます。

ここでは，ユーザ定義受付およびサービスアダプタを使用したSOAP通信を行う場合を使って，接続先情報ファイルの使用例を説明します。

＜この項の構成＞

(1)　ビジネスプロセスの例

(2)　ユーザ定義受付を生成するWSDLの作成例

(3)　データ変換アクティビティの設定例

(4)　接続先情報の設定

(1)　ビジネスプロセスの例

接続先情報ファイルの使用方法の例として使用するビジネスプロセスを次の図に示します。

図8-14　接続先情報ファイルの使用方法の例として使用するビジネスプロセス

サービスリクエスタがビジネスプロセスにサービス部品の実行を要求します。

サービス部品の実行要求では，XMLの要求電文（ボディ）が送付されます。

ビジネスプロセスはXMLの要求電文を受付アクティビティで受け取ります。

ヘッダ要求データおよび要求データを生成します。

データ変換のマッピングを基に接続先URLを設定します。

ビジネスプロセスは設定された接続先URLを取得して，サービス部品を呼び出します。

ビジネスプロセスが，サービス部品の実行結果をXMLの応答電文として構成し，応答アクティビティで返します。

サービスリクエスタへの応答が返されます。

サービスリクエスタへの応答では，XMLの応答電文（ボディ）が送付されます。

(2)　ユーザ定義受付を生成するWSDLの作成例

ユーザ定義受付を生成するWSDLの作成例を次に示します。

なお，この例では，接続先となるサービス部品のURLをSOAPヘッダで送付しています。

(3)　データ変換アクティビティの設定例

図8-14に示すビジネスプロセスで使用するデータ変換アクティビティの設定例を次に示します。

ここでは，変換元に「ヘッダ要求データ」を，変換先に「接続先URL」を指定しています。

図8-15　データ変換アクティビティの設定例

また，変換のマッピングは，次の図の示すとおりに定義します。

図8-16　変換のマッピングの設定例

(4)　接続先情報の設定

図8-14に示すビジネスプロセスで使用する接続先情報の設定例を次に示します。なお，接続先情報は，サービス呼出アクティビティのヘッダ割当変数に設定します。ここで設定した情報が，アダプタで参照できる情報になります。

図8-17　接続先情報の設定例（サービス呼出アクティビティの設定）

8.3.3　ユーザ定義受付のWSDL作成時の注意事項

SOAP1.1モードを利用する場合で，ユーザ定義受付のWSDLを作成するときの注意事項とWSDL定義で使用できる文字について説明します。

SOAP1.1/1.2併用モードを利用する場合の注意事項については，「2.6.1(4)　WSDLの定義時と使用時の注意（SOAP1.1/1.2併用モード）」を参照してください。

＜この項の構成＞

(1)　WSDL作成時の注意事項（ユーザ定義受付）

(2)　WSDL定義で使用できる文字

(1)　WSDL作成時の注意事項（ユーザ定義受付）

ユーザ定義受付の場合，WSDLを作成するときに次の点に注意する必要があります。

wsdl:types要素以下にあるすべてのXMLスキーマの名前空間（targetNamespace）に，有効な値を指定してください。

XMLスキーマは，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」の「12.2.4　XML Schemaのサポート範囲」に記載されているXMLスキーマのサポート範囲内で定義してください。

wsdl:import要素は指定できません。

style属性が「document」の場合，soap:body要素にnamespace属性を指定しないでください。

style属性が「rpc」の場合，soap:body要素にnamespace属性を指定してください。

soap:header要素は指定できません。

soap:fault要素のname属性の値は，その親のwsdl:fault要素のname属性の値と一致させてください。また，namespace属性を指定しないでください。

(2)　WSDL定義で使用できる文字

WSDL定義では，RFC3986規定されている非予約文字と日本語を使用できます。ここでは，WSDL定義で使用できる文字，および使用する文字に関する注意事項を示します。

(a)　「document/literal」の場合

半角英数字（A～Z，a～z，0～9），アンダーライン（_），および次に示す文字を使用できます。

全角ひらがな，全角カタカナ

全角ギリシャ文字，全角ロシア文字など

繰り返し符号（「ゝ」，「ゞ」，「々」）

漢字（JIS X 0208 の第一水準，第二水準に含まれる範囲）

WSDLのデータ型がanyURIの属性については，次の文字も使用できます。

ハイフン（-）

ピリオド（.）

チルダ（~）

(b)　「rpc/literal」の場合

半角英数字（A～Z，a～z，0～9）およびアンダーライン（_）を使用できます。WSDLのデータ型がanyURIの属性については，次の文字も使用できます。

ハイフン（-）

ピリオド（.）

チルダ（~）

8.4　ユーザ定義受付の追加

ユーザ定義受付を追加します。ユーザ定義受付を新規に追加するには，ユーザ定義受付追加ウィザードを利用します。ユーザ定義受付追加ウィザードでは，追加するユーザ定義受付でどのWSDLファイルを使うか，WSDL内のどのwsdl:port要素を利用するかを定義します。

ポイント

追加するユーザ定義受付の定義内容は，ビジネスプロセスの受付アクティビティおよび応答アクティビティの定義に合わせる必要があります。次のどちらかの順で，ユーザ定義受付とビジネスプロセスの定義内容を合わせてください。

ユーザ定義受付を追加する前に，ビジネスプロセスの受付アクティビティおよび応答アクティビティを定義して，受付アクティビティおよび応答アクティビティのオペレーションや電文の定義に合わせてユーザ定義受付を追加します。

ユーザ定義受付を追加したあとに，ユーザ定義受付の内容に合わせてビジネスプロセスの受付アクティビティおよび応答アクティビティの定義を変更します。

＜この節の構成＞

8.4.1　ユーザ定義受付を新規に追加する

8.4.1　ユーザ定義受付を新規に追加する

ユーザ定義受付を新規に追加する手順を次に示します。

ツリービューのサービス定義一覧で，ユーザ定義受付を追加するサービス（ビジネスプロセス）を選択して，右クリックします。
サービス一覧のポップアップメニューが表示されます。

ポップアップメニューから［ユーザ定義受付追加］を選択します。
受付種別選択ウィザードが表示されます。

［受付種別］のドロップダウンリストから，［SOAP受付］を選択します。

［次へ］ボタンをクリックします。
ユーザ定義受付追加ウィザード（1/2）が表示されます。

［受付名］と［WSDLファイル］を指定します。

受付名
ユーザ定義受付の名称をXMLスキーマのNCName定義文字で指定します。1～40バイトで指定します。受付名は，ビジネスプロセス内で一意である必要があります。

WSDLファイル
ユーザ定義受付で利用するWSDLファイルを絶対パスで指定します。相対パス（例：wsdldir¥wsdlfile.wsdl）やUNC形式（例：¥¥mypc¥wsdldir¥wsdlfile.wsdl）で指定しないでください。
［...］ボタンをクリックして表示されるダイアログからWSDLファイルを選択することもできます。

［次へ］ボタンをクリックします。
ユーザ定義受付追加ウィザード（2/2）が表示されます。
［次へ］ボタンをクリックしたときに，「WSDLファイルの解析に失敗しました。」というメッセージが表示された場合，WSDLファイルにエラーがあります。
WSDLの形式については，「2.6.1　Webサービスを利用したサービス部品の適用範囲」および「8.3.3　ユーザ定義受付のWSDL作成時の注意事項」を参照してください。

［Portの指定］のドロップダウンリストから，利用するポートを選択します。
ドロップダウンリストには，手順5.で指定したWSDLファイルに定義されているポート名（wsdl:port要素のname属性の値）が表示されます。

［終了］ボタンをクリックします。
ユーザ定義受付がビジネスプロセスに追加され，ユーザ定義受付定義画面が表示されます。
ユーザ定義受付定義画面の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.6　ユーザ定義受付定義画面」を参照してください。

注意

警告メッセージが表示された場合は，表示されたメッセージの内容を確認してください。「KDCCC」で始まる警告メッセージが表示された場合は，マニュアル「Cosminexus アプリケーションサーバ メッセージ 1」の「4.2　KDCCC0001からKDCCC9999までのメッセージ」を参照してください。「KDJW」で始まる警告メッセージが表示された場合は，マニュアル「Cosminexus アプリケーションサーバ メッセージ 2」の「9.　KDJW00000からKDJW99999までのメッセージ」を参照してください。

8.5　ユーザ定義受付の内容の確認

ユーザ定義受付を追加したあとには，定義された内容を確認してください。ユーザ定義受付の内容は，ユーザ定義受付定義画面で確認できます。ユーザ定義受付定義画面は，ユーザ定義受付追加ウィザードでユーザ定義受付を追加したあとに表示されます。

ユーザ定義受付定義画面を任意のタイミングで表示したい場合は，次の手順で表示させてください。

ツリービューのサービス定義一覧で，ユーザ定義受付をダブルクリックします。
ユーザ定義受付定義画面が表示されます。

ユーザ定義受付定義画面の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.6　ユーザ定義受付定義画面」を参照してください。

ユーザ定義受付定義画面では，ユーザ定義受付の定義内容を確認して，受付アクティビティおよび応答アクティビティの定義と不整合になっていないか確認してください。不整合になっている場合，受付アクティビティまたは応答アクティビティの定義を変更してください。

8.6　ユーザ定義受付の保存

ユーザ定義受付定義画面で編集中のユーザ定義受付を編集途中や編集終了時に保存できます。ユーザ定義受付の内容はリポジトリに保存されます。

ユーザ定義受付を保存する手順を次に示します。

方法1

Eclipseのメニューから，［ファイル］－［保管］を選択します。

方法2

Eclipseのメニューから，［ファイル］－［すべて保管］を選択します。

方法3

Eclipseのツールバーの，［保管］アイコンをクリックします。

方法4

ユーザ定義受付定義画面で，［Ctrl］キー＋［S］キーを押します。

なお，ユーザ定義受付定義画面を閉じてユーザ定義受付の定義を終了する場合に，ユーザ定義受付が保存されていないときは，リソース保管ダイアログが表示されます。リソース保管ダイアログでは，保存されていないユーザ定義受付の定義を保存できます。

注意

不正なデータが入力されている場合，ユーザ定義受付を保存できないことがあります。その場合，表示されているメッセージに従って対処してください。

8.7　ユーザ定義受付の検証

uCosminexus Service Architectでは，作成したユーザ定義受付の内容が妥当かどうか検証できます。

＜この節の構成＞

8.7.1　検証内容

8.7.2　検証方法

8.7.1　検証内容

ユーザ定義受付の検証での検証内容と対処を次の表に示します。

表8-8　ユーザ定義受付の検証内容と対処

項番
検証内容
エラーになった場合の対処

1
ユーザ定義受付のオペレーション名と一致するオペレーション名がビジネスプロセス内に定義されているか。
ビジネスプロセスの受付アクティビティおよびユーザ定義受付のオペレーション名を見直し，一致するオペレーション名を定義します。

2
ユーザ定義受付のオペレーションの通信モデル（同期／非同期）と，ビジネスプロセスのオペレーションの通信モデル（同期／非同期）が一致しているか。
ビジネスプロセスの受付アクティビティおよびユーザ定義受付の定義を見直し，オペレーションの通信モデル（同期／非同期）を合わせます。

3
ユーザ定義受付に対応する受付アクティビティ，および応答アクティビティ（フォルト電文用を含む）の割当変数の種別がメッセージ型か。
ビジネスプロセスの定義を見直し，該当するアクティビティの割当変数をユーザ定義受付に対応する変数に変更します。

4
ユーザ定義受付に対応する応答電文用（フォルト電文用は含まない）の応答アクティビティが存在するか。
ビジネスプロセスの定義を見直し，ユーザ定義受付のオペレーションに対応する応答アクティビティを定義します。

5
ユーザ定義受付のオペレーションのフォルト名と一致するフォルト名がビジネスプロセスの応答アクティビティに存在するか。
ビジネスプロセスおよびユーザ定義受付の定義を見直し，次のどちらかの対処をします。

ユーザ定義受付のオペレーションのフォルト名に対応する応答アクティビティを定義します。

ユーザ定義受付のオペレーションから不要なフォルトの定義を削除します。この場合，一度ユーザ定義受付を削除し，フォルトの定義を削除したWSDLファイルからもう一度ユーザ定義受付を作成します。

6
ユーザ定義受付のオペレーションに存在しないフォルト名がビジネスプロセスの応答アクティビティに定義されていないか。
ビジネスプロセスおよびユーザ定義受付の定義を見直し，次のどちらかの対処をします。

ユーザ定義受付のオペレーションで定義されていないフォルトに対応する応答アクティビティを削除します。

ユーザ定義受付のオペレーションにフォルトの定義を追加します。この場合，一度ユーザ定義受付を削除し，フォルトの定義を追加したWSDLファイルからもう一度ユーザ定義受付を作成します。

8.7.2　検証方法

ユーザ定義受付の検証は，ビジネスプロセスを検証するときにあわせて実施されます。ビジネスプロセスを検証すると，検証対象のビジネスプロセス内のユーザ定義受付が検証されます。

ビジネスプロセスの検証方法の詳細については，「6.9.2　検証方法」を参照してください。

また，ユーザ定義受付の検証結果は，ビジネスプロセスの検証結果と同様に，コンソールビューに表示されます。検証結果の表示の詳細については，「6.9.3　検証内容の表示」を参照してください。

8.8　ユーザ定義受付の情報の変更

ユーザ定義受付定義画面で，受付名，受付ID，およびコンテキストルートを変更できます。

ユーザ定義受付の情報を変更する手順を次に示します。

ツリービューのサービス定義一覧で，ユーザ定義受付をダブルクリックします。
ユーザ定義受付定義画面が表示されます。

［ユーザ定義受付情報］の［受付名］，［受付ID］，および［コンテキストルート］のテキストボックスに，変更後の値を入力します。

ユーザ定義受付定義画面および入力できる値については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.6　ユーザ定義受付定義画面」を参照してください。

8.9　ユーザ定義受付の削除

ユーザ定義受付を削除します。なお，次のユーザ定義受付は削除できません。

すでに公開されているビジネスプロセスが持つユーザ定義受付

以前のバージョンのビジネスプロセスで作成したユーザ定義受付

＜この節の構成＞

(1)　複数のユーザ定義受付を同時に削除する場合

(2)　一つのユーザ定義受付を削除する場合

(1)　複数のユーザ定義受付を同時に削除する場合

複数のユーザ定義受付を同時に削除する手順について，次に示します。

ツリービューのサービス定義一覧で，ユーザ定義受付を削除するビジネスプロセスを右クリックします。
サービス一覧のポップアップメニューが表示されます。

ポップアップメニューから「ユーザ定義受付削除」を選択します。
［ユーザ定義受付削除］ダイアログが表示されます。［ユーザ定義受付削除］ダイアログの入力・表示内容の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.7.1　ユーザ定義受付削除ダイアログ」を参照してください。

削除するユーザ定義受付のチェックボックスをチェックします。

［OK］ボタンをクリックします。
指定したユーザ定義受付がビジネスプロセスから削除されます。

注意

ビジネスプロセスを削除すると，削除したビジネスプロセスに含まれるユーザ定義受付も削除されます。

(2)　一つのユーザ定義受付を削除する場合

一つのユーザ定義受付を削除する手順について，次に示します。

方法1

ツリービューのサービス定義一覧で，削除するユーザ定義受付を右クリックします。
対象のユーザ定義受付のポップアップメニューが表示されます。

ポップアップメニューから「削除」を選択します。
確認ダイアログが表示されます。

［はい］ボタンをクリックします。
指定したユーザ定義受付がビジネスプロセスから削除されます。

方法2

ツリービューのサービス定義一覧で，削除するユーザ定義受付を選択します。

［Delete］キーを押します。
確認ダイアログが表示されます。

［はい］ボタンをクリックします。
指定したユーザ定義受付がビジネスプロセスから削除されます。

9.　HCSCコンポーネントのパッケージングと配備定義

この章では，HCSCコンポーネントのパッケージングと配備定義について説明します。

＜この章の構成＞

9.1　パッケージングと配備定義

9.2　パッケージング

9.3　HCSCコンポーネントの配備定義

9.4　HCSCコンポーネントの情報の参照

9.5　HCSCコンポーネントをHCSCサーバに配備して開始する処理の一括実行

9.6　HCSCコンポーネントを停止してHCSCサーバから削除する処理の一括実行

9.1　パッケージングと配備定義

定義したHCSCコンポーネントは，パッケージングしたり，どのクラスタ（または単一のHCSCサーバ）に配備するか決めたり（配備定義）します。

ユーザは，配備定義をする前にリポジトリをインポートする必要があります。また，配備定義したあとにリポジトリをエクスポートして，運用環境に配備定義したシステム構成定義を提供します。システム構成定義の内容に従って，運用環境から実行環境のクラスタ（または単一のHCSCサーバ）にHCSCコンポーネントを配備します。

開発環境では，配備定義をしたあとに，配備定義をしたHCSCコンポーネントの情報を参照できます。

パッケージングから配備定義までの流れを次の図に示します。

図9-1　パッケージングから配備定義までの流れ

開発環境で定義した内容は，運用環境でHCSCコンポーネントとして配備されます。開発環境での定義と運用環境で配備されるHCSCコンポーネントの関係を次の図に示します。

図9-2　開発環境での定義と運用環境で配備されるHCSCコンポーネントの関係

なお，開発環境ではHCSCコンポーネントのパッケージングと配備定義をし，運用環境ではHCSCコンポーネントの配備と開始をしますが，これらの一連の処理を開発環境で一括して実行することもできます。開発環境または運用環境で一つ一つ実施していた作業を，開発環境で一括実行するため，ユーザの操作負担が軽減できます。ただし，一括実行は，システム開発時，または単体テストから結合テスト時を対象としています。詳細については，「9.5　HCSCコンポーネントをHCSCサーバに配備して開始する処理の一括実行」および「9.6　HCSCコンポーネントを停止してHCSCサーバから削除する処理の一括実行」を参照してください。

注意

リポジトリの一部の情報だけをインポートした場合には，インポートしたリポジトリ情報に含まれるHCSCコンポーネントをパッケージングする必要があります。

リポジトリの一部の情報だけのインポートについては，「3.2.3　リポジトリをインポートする」を参照してください。

9.2　パッケージング

実行環境に配備するために必要なHCSCコンポーネントに関するファイルを組み立てて，EARファイルを作成します。これをパッケージングと呼びます。ここでは，アダプタまたはビジネスプロセスをまとめてHCSCコンポーネントと呼びます。

HCSCコンポーネントのパッケージングに伴い，パッケージング対象のHCSCコンポーネントと関連するデータ変換定義およびユーザ定義受付もパッケージングされます。

パッケージングを実行すると，HCSCコンポーネントが検証されます。よって，HCSCコンポーネントが正しく定義されている場合はパッケージングできますが，正しく定義されていない場合はパッケージング時の検証でエラーが発生します。パッケージングの前に，あらかじめ，HCSCコンポーネントを検証しておくと，円滑にパッケージングできます。

パッケージングの方法を次に示します。

ツリービューのサービス定義一覧で，パッケージングするHCSCコンポーネントを右クリックして，「パッケージング」を選択します。
メッセージダイアログが表示されます。

次のどちらかの操作をします。

パッケージングが成功した場合
［OK］ボタンをクリックします。
すでにEARファイルがある場合，上書きを確認するダイアログが表示されます。上書きしてよいときは，［はい］ボタンをクリックします。

パッケージングが失敗した場合
ダイアログのメッセージに従って対処し，パッケージングを再実行します。

なお，パッケージングする前にアダプタ，ビジネスプロセスおよびユーザ定義受付が保存されていないときは，リソース保管ダイアログが表示され，定義を保存できます。複数のアダプタ，ビジネスプロセスおよびユーザ定義受付が編集中の場合は，複数回ダイアログが表示されます。保存する場合は［はい］ボタンをクリックします。これ以降，確認ダイアログを表示しないで，すべて保存する場合は［すべてはい］ボタンをクリックします。

9.3　HCSCコンポーネントの配備定義

配備定義とは，定義したHCSCコンポーネントをどのクラスタ（または単一のHCSCサーバ）に配備するか決めることです。

ツリー形式で表示されるツリービューのシステム構成定義一覧で，クラスタ（または単一のHCSCサーバ）の下位に表示されるHCSCコンポーネントは，そのクラスタ（または単一のHCSCサーバ）に配備するよう定義されていることを表します。ツリービューのシステム構成定義一覧のクラスタ（または単一のHCSCサーバ）の下位に，配備するHCSCコンポーネントを追加・削除して配備定義を行います。HCSCコンポーネントの追加と削除の例を次の図に示します。

図9-3　HCSCコンポーネントの追加と削除

開発環境で配備定義し，更新されたシステム構成定義の内容に従って，運用環境でクラスタ（または単一のHCSCサーバ）へHCSCコンポーネントが配備されます。クラスタ（または単一のHCSCサーバ）への配備方法の詳細については，次の個所を参照してください。

マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「3.1.8　サービスアダプタを配備する」

マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「3.1.13　ビジネスプロセスを配備する」

ここではクラスタ（または単一のHCSCサーバ）にHCSCコンポーネントを追加・削除して配備定義する方法を説明します。

なお，システム構成定義で定義されているサーバ構成とサービスの組み合わせによっては，配備定義できない場合があります。システム構成定義で定義されているサーバ構成とサービスの組み合わせによる配備定義の可否を次の表に示します。

表9-1　配備定義の可否

項番 | システム構成定義で定義されているサーバ構成 | サービスの種別 | 配備定義の可否
データベースの使用有無 | Cosminexus RMの使用有無
1 | 使用する | 使用する | すべて | ○
2 | 使用しない | 使用しない | ビジネスプロセス（永続化する） | ×
3 | ビジネスプロセス（永続化しない） | ○
4 | Webサービス | ○
5 | SessionBean | ○
6 | MDB（WS-R） | ×
7 | MDB（DBキュー） | ×
8 | カスタムアダプタ | ○
9 | 使用する | 使用しない | ビジネスプロセス（永続化する） | ×
10 | ビジネスプロセス（永続化しない） | ○
11 | Webサービス | ○
12 | SessionBean | ○
13 | MDB（WS-R） | ×
14 | MDB（DBキュー） | ×
15 | カスタムアダプタ | ○

（凡例）

○：配備定義できます。

×：配備定義できません。

＜この節の構成＞

9.3.1　配備できるクラスタ（または単一のHCSCサーバ）

9.3.2　クラスタにHCSCコンポーネントを追加する

9.3.3　クラスタからHCSCコンポーネントを削除する

9.3.1　配備できるクラスタ（または単一のHCSCサーバ）

配備できるクラスタ（または単一のHCSCサーバ）は，ツリービューのシステム構成定義一覧に表示されます。表示される情報は，運用環境でセットアップしたクラスタ（または単一のHCSCサーバ）の構成情報です。この情報は，運用環境でエクスポートしたリポジトリ情報を，開発環境でインポートして取得します。

リポジトリのインポートについては，「3.2.3　リポジトリをインポートする」を参照してください。

9.3.2　クラスタにHCSCコンポーネントを追加する

クラスタ（または単一のHCSCサーバ）にHCSCコンポーネントを追加する方法を次に示します。なお，HCSCコンポーネントをクラスタ（または単一のHCSCサーバ）に追加すると，追加したHCSCコンポーネントと関連するデータ変換定義およびユーザ定義受付もあわせて追加されます。

Eclipseのメニューから，［HCSC-Definer］－［システム構成定義一覧］を選択します。
ツリービューのシステム構成定義一覧に，クラスタ（または単一のHCSCサーバ）の一覧が表示されます。

クラスタ（または単一のHCSCサーバ）の一覧からHCSCコンポーネントを追加するクラスタ（または単一のHCSCサーバ）を選択し，ダブルクリックします。
クラスタの情報が表示されます。

手順2.で選択したクラスタ（または単一のHCSCサーバ）を右クリックして，［サービス追加］を選択します。
［サービス追加］ダイアログが表示されます。
定義済みのHCSCコンポーネントを，パッケージングしたあとに編集した場合，そのHCSCコンポーネントを追加対象にしてよいか確認するダイアログが表示されます。追加対象にしてよいときは，［はい］ボタンをクリックします。

追加するHCSCコンポーネントを［追加するサービス］のドロップダウンリストから選択します。

［OK］ボタンをクリックします。
追加したHCSCコンポーネント情報が表示されます。

9.3.3　クラスタからHCSCコンポーネントを削除する

クラスタ（または単一のHCSCサーバ）からHCSCコンポーネントを削除する方法を次に示します。なお，HCSCコンポーネントをクラスタ（または単一のHCSCサーバ）から削除すると，追加したHCSCコンポーネントと関連するデータ変換定義およびユーザ定義受付もあわせて削除されます。

ツリービューのシステム構成定義一覧から削除するHCSCコンポーネントを選択します。

次のどちらかの方法で削除します。

HCSCコンポーネントを右クリックして，［サービス削除］を選択します。

［Delete］キーを押します。

削除を確認するダイアログが表示されます。削除してよいときは，［はい］ボタンをクリックします。

9.4　HCSCコンポーネントの情報の参照

配備定義したあとに，配備定義をしたHCSCコンポーネントの情報を参照できます。HCSCコンポーネントの情報は，HCSCコンポーネント情報表示画面に表示されます。HCSCコンポーネント情報表示画面の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.7　HCSCコンポーネント情報表示画面」を参照してください。

また，HCSCコンポーネントに含まれるユーザ定義受付の情報も参照できます。ユーザ定義受付の情報は，ユーザ定義受付情報表示画面に表示されます。ユーザ定義受付情報表示画面の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.8　ユーザ定義受付情報表示画面」を参照してください。

＜この節の構成＞

9.4.1　参照できるHCSCコンポーネントの情報

9.4.2　HCSCコンポーネントの情報を表示する

9.4.3　HCSCコンポーネントの一覧を更新する

9.4.1　参照できるHCSCコンポーネントの情報

参照できるHCSCコンポーネントの情報を次に示します。

＜この項の構成＞

(1)　サービス部品の情報

(2)　ユーザ定義受付の情報

(1)　サービス部品の情報

サービス部品の情報として，次の情報を参照できます。

インターフェース情報
サービス名（HCSCコンポーネント名）とオペレーションの組み合わせに対応した，オペレーション情報，要求電文，応答電文，およびフォルト電文の情報を参照できます。

サーバ情報
サービス部品を呼び出すことができるクラスタ（または単一のHCSCサーバ）のサービス種別ごとの宛先を参照できます。

オペレーション情報
インターフェース情報で指定したオペレーションの名称，および通信モデルを参照できます。

要求電文
標準電文フォーマット，および電文フォーマットIDを参照できます。

応答電文
標準電文フォーマット，および電文フォーマットIDを参照できます。

フォルト電文
フォルト名，および電文フォーマットを参照できます。

(2)　ユーザ定義受付の情報

ユーザ定義受付の情報として，次の情報を参照できます。

ユーザ定義受付情報
ユーザ定義受付の受付名，ポート名，およびURL情報を参照できます。

9.4.2　HCSCコンポーネントの情報を表示する

HCSCコンポーネントの情報を表示させる方法を次に示します。

Eclipseのメニューから，［HCSC-Definer］－［公開サービス一覧］を選択します。
ツリービューの公開サービス一覧に，HCSCコンポーネントの一覧が表示されます。

HCSCコンポーネントの一覧から，情報を表示するHCSCコンポーネントを選択し，ダブルクリックします。
HCSCコンポーネント情報表示画面に，HCSCコンポーネントの情報が表示されます。

次に示す操作をします。

［オペレーション情報］，［要求電文］，［応答電文］，および［フォルト電文］の情報を参照する場合

［インタフェース情報］の［オペレーション］のドロップダウンリストから，情報を参照するオペレーションを選択します。

電文の内容を参照するときは，参照する電文（要求電文，応答電文，またはフォルト電文）の［表示］ボタンをクリックします。

クラスタ（または単一のHCSCサーバ）のサービス種別ごとの宛先を参照する場合

［サーバ情報］の［サーバ名］に宛先を参照するクラスタ名が表示されます。

Webサービスで使用するWSDLファイルを取得するときは，［WSDL取得］ボタンをクリックします。

SessionBeanで使用するRMI-IIOPスタブファイルを取得するときは，［スタブ取得］ボタンをクリックします。

ユーザ定義受付の情報を参照する場合

HCSCコンポーネント情報表示画面の下部の［ユーザ定義受付情報］タブをクリックして，ユーザ定義受付情報表示画面を表示させます。

9.4.3　HCSCコンポーネントの一覧を更新する

HCSCコンポーネントが変更された場合，リポジトリ内の情報とツリービューのシステム構成定義一覧に表示されている情報が不一致になる場合があります。このような場合，ツリービューのシステム構成定義一覧の表示内容を最新の情報に更新できます。

更新方法を次に示します。

ツリービューのシステム構成定義一覧で，表示されているHCSCコンポーネントを選択しないで右クリックして，［更新］を選択します。
ツリービューのシステム構成定義一覧に表示されているHCSCコンポーネントの一覧が更新されます。

注意

ツリービューのシステム構成定義一覧に表示されるクラスタ（または単一のHCSCサーバ）の構成情報は，運用環境でセットアップしたクラスタ（または単一のHCSCサーバ）の構成情報です。

ツリービューのシステム構成定義一覧に最新のサーバ構成一覧を表示するには，必要に応じて，運用環境でエクスポートしたリポジトリ情報を開発環境でインポートします。インポートすると，自動的に表示が更新されます。

リポジトリのインポートについては，「3.2.3　リポジトリをインポートする」を参照してください。

9.5　HCSCコンポーネントをHCSCサーバに配備して開始する処理の一括実行

HCSCコンポーネントをHCSCサーバに配備して開始する一連の処理を開発環境で一括実行できます。開発環境または運用環境で一つ一つ実施していた作業を開発環境で一括実行するため，ユーザの操作負担を軽減できます。なお，一括実行は，システム開発時，または単体テストから結合テスト時を対象としています。

HCSCコンポーネントをHCSCサーバに配備して開始する処理の一括実行には，次の二つがあります。

選択したHCSCコンポーネントをHCSCサーバに配備して開始する。

開発環境で定義したすべてのHCSCコンポーネントをHCSCサーバに配備して開始する。

ここでは，配備から開始までの処理の流れと操作方法について説明します。

＜この節の構成＞

9.5.1　配備から開始までの処理の流れ

9.5.2　HCSCコンポーネントをHCSCサーバに配備して開始する方法

9.5.1　配備から開始までの処理の流れ

HCSCコンポーネントをHCSCサーバに配備して開始する一連の処理の流れ，操作対象となるHCSCコンポーネントの範囲，およびHCSCコンポーネントの種類による処理の違いを次に説明します。

＜この項の構成＞

(1)　処理の流れ

(2)　操作対象となるHCSCコンポーネント

(3)　HCSCコンポーネントの種類による処理の違い

(1)　処理の流れ

HCSCコンポーネントをHCSCサーバに配備して開始する一連の処理の流れを次の図に示します。なお，図の2.～6.は，ユーザが開発環境で操作すると，自動的に実行されます。

図9-4　配備から開始までの処理の流れ

ユーザは開発環境で一括実行を実施します。

開発環境でHCSCコンポーネントがパッケージングされ，リポジトリに格納されます。

配備定義され，リポジトリ内のシステム構成定義が更新されます。

開発環境のリポジトリが運用環境に転送されます。

開発環境で更新されたシステム構成定義を基に，運用環境から実行環境のHCSCサーバにHCSCコンポーネントが配備されます。

実行環境のHCSCサーバに配備されたHCSCコンポーネントが開始されます。

(2)　操作対象となるHCSCコンポーネント

選択したHCSCコンポーネントをHCSCサーバに配備して開始する場合と，すべてのHCSCコンポーネントをHCSCサーバに配備して開始する場合とで，操作対象となるHCSCコンポーネントが異なります。なお，ここでいう操作対象とは，配備から開始までの一連の処理が実行されるHCSCコンポーネントのことです。

選択したHCSCコンポーネントをHCSCサーバに配備して開始する場合

開発環境で選択したHCSCコンポーネントが操作対象となります。選択したHCSCコンポーネントがビジネスプロセスの場合，そのビジネスプロセスに定義されているHCSCコンポーネント（ビジネスプロセス，サービスアダプタ，およびユーザ定義受付）も操作対象に含まれます。

ビジネスプロセスを選択した場合に操作対象となるHCSCコンポーネントの範囲を次の図に示します。

図9-5　操作対象となるHCSCコンポーネントの範囲（ビジネスプロセスを選択した場合）

なお，ここでの「HCSCコンポーネントの参照」とは，ユーザ定義受付の追加とサービス呼出アクティビティでの指定によって，ほかのHCSCコンポーネントを使用することです。

注意

ユーザ定義受付は，開発環境でビジネスプロセスと同時に処理されるため，ユーザ定義受付だけを操作対象にすることはできません。

すべてのHCSCコンポーネントをHCSCサーバに配備して開始する場合

開発環境で定義したすべてのHCSCコンポーネントが操作対象になります。

(3)　HCSCコンポーネントの種類による処理の違い

操作対象のHCSCコンポーネントが，サービスアダプタの場合とビジネスプロセスの場合とで処理が異なります。

サービスアダプタの場合

サービスアダプタが，すでにパッケージされている場合や配備定義（公開）されている場合は，再度パッケージングや配備定義をしません。

ビジネスプロセスの場合

Javaクラスを変更している可能性があるため，再度パッケージングをして配備定義します。

9.5.2　HCSCコンポーネントをHCSCサーバに配備して開始する方法

HCSCコンポーネントをHCSCサーバに配備して開始する方法について説明します。

＜この項の構成＞

(1)　前提条件

(2)　操作手順

(3)　注意事項

(1)　前提条件

HCSCコンポーネントをHCSCサーバに配備して開始するためには，次に示す条件を満たしている必要があります。

システム開発時，または単体テストから結合テスト時を対象に実施してください。

開発環境，運用環境，および実行環境は，同一のマシンに構築してください。複数マシンの構成にした場合，動作は保証できません。

HCSCサーバはセットアップ済みの状態である必要があります。なお，セットアップは，単一のHCSCサーバ構成で実施してください。HCSC簡易セットアップを利用する場合も，単一のHCSCサーバ構成でセットアップしてください。

HCSCサーバおよびデータベースを起動しておいてください。

(2)　操作手順

(a)　選択したHCSCコンポーネントをHCSCサーバに配備して開始する場合

ツリービューのサービス定義一覧で，HCSCサーバに配備するHCSCコンポーネントを選択します。

選択したHCSCコンポーネントを右クリックして，［サーバに配備して開始］を選択します。

対象となるHCSCコンポーネントが編集中の場合と編集中でない場合とで，表示されるダイアログおよびそのあとの手順が異なります。

対象となるHCSCコンポーネントが編集中の場合

編集中のHCSCコンポーネントの保管（非公開化）を確認するダイアログが表示されます。複数のサービスおよびユーザ定義受付が編集中の場合は，複数回ダイアログが表示されます。保管する場合は［はい］ボタンをクリックします。これ以降，確認ダイアログを表示しないで，すべて保管する場合は［すべてはい］ボタンをクリックします。保管しない場合は［キャンセル］ボタンをクリックして，処理を終了します。

手順3.に進みます。

対象となるHCSCコンポーネントが編集中でない場合

Eclipse起動後，最初に一括実行を実施するときは，［アカウント認証］ダイアログが表示されます。ユーザIDとパスワードを入力して［OK］ボタンをクリックすると処理が開始されます。Eclipse起動後，2回目以降に一括実行を実施するときは，すぐに処理が開始されます。

手順4.に進みます。

［はい］ボタンまたは［すべてはい］ボタンをクリックします。
Eclipse起動後，最初に一括実行を実施するときは，［アカウント認証］ダイアログが表示されます。ユーザIDとパスワードを入力して［OK］ボタンをクリックすると処理が開始されます。Eclipse起動後，2回目以降に一括実行を実施するときはすぐに処理が開始されます。
なお，編集中のHCSCコンポーネントが配備定義されている（公開）か，配備定義されていない（非公開）かによって，次のように処理が異なります。

HCSCコンポーネントが配備定義されている場合

配備定義されているHCSCコンポーネントを配備定義されていない状態にします。そのあと，編集中のHCSCコンポーネントを保存して処理を開始します。

HCSCコンポーネントが配備定義されていない場合

編集中のHCSCコンポーネントを保存して処理を開始します。

処理完了を伝えるダイアログが表示されたら，［OK］ボタンをクリックします。

必要に応じて，次の内容を確認します。

配備定義されているかを確認する

ツリービューのシステム構成定義一覧に，選択したHCSCコンポーネントが追加されていることを確認します。

上の例では，選択したビジネスプロセス（BP1），および選択したビジネスプロセスに定義されているサービスアダプタ（WebService1）が追加されていることを確認できます。

HCSCサーバに配備して開始されているかを確認する

HCSC-Managerにログインして，HCSC-Managerビューを選択します。選択したHCSCコンポーネントが，HCSCサーバに配備して開始されていることを確認します。HCSC-Managerのログイン方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.1　HCSCサーバのオペレーションをするための準備」を参照してください。

上の例では，選択したビジネスプロセス（BP1），および選択したビジネスプロセスに定義されているサービスアダプタ（WebService1）ならびにユーザ定義受付（Reception1）が，配備して開始されていることを確認できます。

(b)　すべてのHCSCコンポーネントをHCSCサーバに配備して開始する場合

ツリービューのサービス定義一覧で右クリックして，［全サービスをサーバに配備して開始］を選択します。

対象となるHCSCコンポーネントが編集中の場合

編集中のHCSCコンポーネントの保管（非公開化）を確認するダイアログが表示されます。複数のサービスおよびユーザ定義受付が編集中の場合は，複数回ダイアログが表示されます。保管する場合は［はい］ボタンをクリックします。これ以降，確認ダイアログを表示しないで，すべて保管する場合は［すべてはい］ボタンをクリックします。保管しない場合は［キャンセル］ボタンをクリックして，処理を終了します。

手順3.に進みます。

対象となるHCSCコンポーネントが編集中でない場合

Eclipse起動後，最初に一括実行を実施するときは，［アカウント認証］ダイアログが表示されます。ユーザIDとパスワードを入力して［OK］ボタンをクリックすると処理が開始されます。Eclipse起動後，2回目以降に一括実行を実施するときは，すぐに処理が開始されます。

手順4.に進みます。

［はい］ボタンまたは［すべてはい］ボタンをクリックします。
Eclipse起動後，最初に一括実行を実施するときは，［アカウント認証］ダイアログが表示されます。ユーザIDとパスワードを入力して［OK］ボタンをクリックすると処理が開始されます。Eclipse起動後，2回目以降に一括実行を実施するときはすぐに処理が開始されます。
なお，編集中のHCSCコンポーネントが配備定義されている（公開）か，配備定義されていない（非公開）かによって，次のように処理が異なります。

HCSCコンポーネントが配備定義されている場合

配備定義されているHCSCコンポーネントを配備定義されていない状態にします。そのあと，編集中のHCSCコンポーネントを保存して処理を開始します。

HCSCコンポーネントが配備定義されていない場合

編集中のHCSCコンポーネントを保存して処理を開始します。

処理完了を伝えるダイアログが表示されたら，［OK］ボタンをクリックします。

必要に応じて，次の内容を確認します。

配備定義されているかを確認する

ツリービューのシステム構成定義一覧に，開発環境で定義したすべてのHCSCコンポーネントが追加されていることを確認します。

上の例では，開発環境で定義したすべてのHCSCコンポーネント（BP1，WebService1，WebService2）が追加されていることを確認できます。

HCSCサーバに配備して開始されているかを確認する

HCSC-Managerにログインして，HCSC-Managerビューを選択します。開発環境で定義したすべてのHCSCコンポーネントが，HCSCサーバに配備して開始されていることを確認します。HCSC-Managerのログイン方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.1　HCSCサーバのオペレーションをするための準備」を参照してください。

上の例では，開発環境で定義したすべてのHCSCコンポーネント（BP1，WebService1，WebService2，Reception1）が，配備して開始されていることを確認できます。

(3)　注意事項

HCSCコンポーネントをHCSCサーバに配備して開始する場合の注意事項を次に示します。

選択したHCSCコンポーネントをHCSCサーバに配備して開始する場合，次のときにエラーになることがあります。
・開発環境と運用環境でリポジトリの構成形態（データベースとCosminexus RMの組み合わせ）が不一致である。
・運用環境のリポジトリで配備済みのサービスが，開発環境で更新または削除されている。
・開発環境と運用環境のリポジトリ内でSOAPモードが不一致である。
エラーになる場合は，定義したすべてのHCSCコンポーネントをHCSCサーバに配備して開始する方法を実施してください。

処理の途中でエラーが発生した場合，処理を中断して一括実行を終了します。ただし，エラー発生前に一括実行が終了している処理は，実行前の状態に戻りません。その場合，エラーの発生原因を取り除いて，再度実行してください。

複数のHCSCコンポーネントを修正して一括実行を実施する場合は，すべてのHCSCコンポーネントをHCSCサーバに配備して開始する方法を実施してください。ただし，修正したHCSCコンポーネントが「9.5.1(2) 操作対象となるHCSCコンポーネント」の参照範囲に含まれる場合，選択したHCSCコンポーネントをHCSCサーバに配備して開始する方法を実施できます。

HCSCコンポーネントをHCSCサーバに配備して開始する処理の一括実行に失敗すると，サービスが起動できない状態となり，HCSCコンポーネントを停止するまで再度実行できなくなることがあります。処理に失敗した場合は，csccompostop -allコマンド，csccompoundeploy -allコマンドの順に実行してHCSCコンポーネントを停止し，アンデプロイしてください。そのあと，再度HCSCコンポーネントをHCSCサーバに配備して開始してください。なお，「9.6　HCSCコンポーネントを停止してHCSCサーバから削除する処理の一括実行」の方法では，HCSCコンポーネントを停止できません。
csccompostopコマンドの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompostop（HCSCコンポーネントの停止）」を参照してください。csccompoundeployコマンドの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompoundeploy（配備済みのHCSCコンポーネントの削除）」を参照してください。

9.6　HCSCコンポーネントを停止してHCSCサーバから削除する処理の一括実行

HCSCコンポーネントを停止してHCSCサーバから削除する一連の処理を開発環境で一括実行できます。開発環境または運用環境で一つ一つ実施していた作業を開発環境で一括実行するため，ユーザの操作負担を軽減できます。なお，一括実行は，システム開発時，または単体テストから結合テスト時を対象としています。

HCSCコンポーネントを停止してHCSCサーバから削除する処理の一括実行には，次の二つがあります。

選択したHCSCコンポーネントを停止してHCSCサーバから削除する。開発環境では，HCSCコンポーネントの配備定義を削除する。

HCSCサーバに配備したすべてのHCSCコンポーネントを停止して，HCSCサーバから削除する。開発環境では，すべてのHCSCコンポーネントの配備定義を削除する。

ここでは，停止から削除までの処理の流れと操作方法について説明します。

＜この節の構成＞

9.6.1　停止から削除までの処理の流れ

9.6.2　HCSCコンポーネントを停止してHCSCサーバから削除する方法

9.6.1　停止から削除までの処理の流れ

HCSCコンポーネントを停止してHCSCサーバから削除する一連の処理の流れ，および操作対象となるHCSCコンポーネントの範囲を次に説明します。

＜この項の構成＞

(1)　処理の流れ

(2)　操作対象となるHCSCコンポーネント

(1)　処理の流れ

HCSCコンポーネントを停止してHCSCサーバから削除する一連の処理の流れを次の図に示します。なお，図の2.～4.は，ユーザが開発環境で操作すると，自動的に実行されます。

図9-6　停止から削除までの処理の流れ

ユーザは開発環境で，一括実行を実施します。

実行環境のHCSCサーバで稼働しているHCSCコンポーネントが停止されます。

実行環境のHCSCサーバからHCSCコンポーネントが削除されます。

開発環境でHCSCコンポーネントの配備定義が削除され，リポジトリ内のシステム構成定義が更新されます。

(2)　操作対象となるHCSCコンポーネント

選択したHCSCコンポーネントを停止してHCSCサーバから削除する場合と，すべてのHCSCコンポーネントを停止してHCSCサーバから削除する場合とで，操作対象となるHCSCコンポーネントが異なります。なお，ここでいう操作対象とは，停止から削除までの一連の処理が実行されるHCSCコンポーネントのことです。

選択したHCSCコンポーネントを停止してHCSCサーバから削除する場合

開発環境で選択したHCSCコンポーネントが操作対象となります。選択したHCSCコンポーネントがビジネスプロセスの場合，そのビジネスプロセスに定義されているユーザ定義受付も操作対象に含まれます。選択したHCSCコンポーネントに定義されているビジネスプロセスおよびサービスアダプタは，操作対象に含まれません。

ビジネスプロセスを選択した場合に操作対象となるHCSCコンポーネントの範囲を次の図に示します。

図9-7　操作対象となるHCSCコンポーネントの範囲（ビジネスプロセスを選択した場合）

なお，ここでの「HCSCコンポーネントの参照」とは，ユーザ定義受付の追加とサービス呼出アクティビティでの指定によって，ほかのHCSCコンポーネントを使用することです。

注意

ユーザ定義受付は，開発環境でビジネスプロセスと同時に処理されるため，ユーザ定義受付だけを操作対象にすることはできません。

すべてのHCSCコンポーネントを停止してHCSCサーバから削除する場合

HCSCサーバに配備したすべてのHCSCコンポーネント，および開発環境で配備定義したすべてのHCSCコンポーネントが操作対象になります。

9.6.2　HCSCコンポーネントを停止してHCSCサーバから削除する方法

HCSCコンポーネントを停止してHCSCサーバから削除する方法について説明します。

＜この項の構成＞

(1)　前提条件

(2)　操作手順

(3)　注意事項

(1)　前提条件

HCSCコンポーネントを停止してHCSCサーバから削除するためには，次に示す条件を満たしている必要があります。

システム開発時，または単体テストから結合テスト時を対象に実施してください。

開発環境，運用環境，および実行環境は，同一のマシンに構築してください。複数マシンの構成にした場合，動作は保証できません。

HCSCサーバはセットアップ済みの状態である必要があります。なお，セットアップは，単一のHCSCサーバ構成で実施してください。HCSC簡易セットアップを利用する場合も，単一のHCSCサーバ構成でセットアップしてください。

HCSCサーバおよびデータベースを起動しておいてください。

(2)　操作手順

(a)　選択したHCSCコンポーネントを停止してHCSCサーバから削除する場合

ツリービューのサービス定義一覧で，HCSCコンポーネントを停止してHCSCサーバから削除するHCSCコンポーネントを選択します。

選択したHCSCコンポーネントを右クリックして，［停止してサーバから削除］を選択します。

Eclipse起動後，最初に一括実行を実施するときは，［アカウント認証］ダイアログが表示されます。ユーザIDとパスワードを入力して［OK］ボタンをクリックすると処理が開始されます。Eclipse起動後，2回目以降に一括実行を実施するときは，すぐに処理が開始されます。

処理完了を伝えるダイアログが表示されたら，［OK］ボタンをクリックします。

必要に応じて，次の内容を確認します。

配備定義が削除されているかを確認する

ツリービューのシステム構成定義一覧から，選択したHCSCコンポーネントが削除されていることを確認します。

上の例では，選択したビジネスプロセス（BP1）が削除されていることを確認できます。

HCSCコンポーネントが停止してHCSCサーバから削除されているかを確認する

HCSC-Managerにログインして，HCSC-Managerビューを選択します。選択したHCSCコンポーネントが停止して，HCSCサーバから削除されていることを確認します。HCSC-Managerのログイン方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.1　HCSCサーバのオペレーションをするための準備」を参照してください。

上の例では，選択したビジネスプロセス（BP1），および選択したビジネスプロセスに定義されているユーザ定義受付（Reception1）が，停止して削除されていることを確認できます。

(b)　すべてのHCSCコンポーネントを停止してHCSCサーバから削除する場合

ツリービューのサービス定義一覧で右クリックして，［全サービスを停止してサーバから削除］を選択します。

Eclipse起動後，最初に一括実行を実施するときは，［アカウント認証］ダイアログが表示されます。ユーザIDとパスワードを入力して［OK］ボタンをクリックすると処理が開始されます。Eclipse起動後，2回目以降に一括実行を実施するときは，すぐに処理が開始されます。

処理完了を伝えるダイアログが表示されたら，［OK］ボタンをクリックします。

必要に応じて，次の内容を確認します。

配備定義が削除されているかを確認する

ツリービューのシステム構成定義一覧から，すべてのHCSCコンポーネントが削除されていることを確認します。

上の例では，すべてのHCSCコンポーネント（BP1，WebService1，WebService2）が削除されていることを確認できます。

HCSCコンポーネントが停止してHCSCサーバから削除されているかを確認する

HCSC-Managerにログインして，HCSC-Managerビューを選択します。すべてのHCSCコンポーネントが停止して，HCSCサーバから削除されていることを確認します。HCSC-Managerのログイン方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.1　HCSCサーバのオペレーションをするための準備」を参照してください。

上の例では，すべてのHCSCコンポーネント（BP1，WebService1，WebService2，Reception1）が，停止して削除されていることを確認できます。

(3)　注意事項

HCSCコンポーネントを停止してHCSCサーバから削除する場合の注意事項を次に示します。

選択したHCSCコンポーネントを停止してHCSCサーバから削除する場合，次のときにエラーになることがあります。
・開発環境と運用環境でリポジトリの構成形態（データベースとCosminexus RMの組み合わせ）が不一致である。
・運用環境のリポジトリで配備済みのサービスが，開発環境で更新または削除されている。
・開発環境と運用環境のリポジトリ内でSOAPモードが不一致である。
エラーになる場合は，すべてのHCSCコンポーネントを停止してHCSCサーバから削除する方法を実施してください。

処理の途中でエラーが発生した場合，処理を中断して一括実行を終了します。ただし，エラー発生前に一括実行が終了している処理は，実行前の状態に戻りません。その場合，エラーの発生原因を取り除いて，再度実行してください。

HCSCコンポーネントを停止してHCSCサーバから削除する処理の一括実行に失敗すると，サービスが起動できない状態となり，HCSCコンポーネントを停止するまで再度実行できなくなることがあります。処理に失敗した場合は，csccompostop -allコマンド，csccompoundeploy -allコマンドの順に実行してHCSCコンポーネントを停止し，アンデプロイしてください。そのあと，HCSCコンポーネントをHCSCサーバから削除してください。
csccompostopコマンドの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompostop（HCSCコンポーネントの停止）」を参照してください。csccompoundeployコマンドの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompoundeploy（配備済みのHCSCコンポーネントの削除）」を参照してください。

10.　サービスリクエスタの作成

この章では，HCSCサーバの標準受付およびユーザ定義受付にサービス部品を要求するサービスリクエスタの作成について説明します。

なお，テストおよびデバッグ目的でサービスリクエスタをエミュレートする方法については，「付録H　サービスリクエスタのエミュレーション」を参照してください。

＜この章の構成＞

10.1　サービスリクエスタ作成の概要

10.2　標準の同期受付（Webサービス）に要求を出すサービスリクエスタ（SOAP通信基盤）

10.3　標準の同期受付（Webサービス）に要求を出すサービスリクエスタ（JAX-WSエンジン）

10.4　標準の同期受付（SessionBean）に要求を出すサービスリクエスタ

10.5　標準の非同期受付（MDB（WS-R））に要求を出すサービスリクエスタ

10.6　標準の非同期受付（MDB（DBキュー））に要求を出すサービスリクエスタ

10.7　ユーザ定義受付（Webサービス）に要求を出すサービスリクエスタ

10.8　DBアダプタに要求を出すサービスリクエスタ

10.1　サービスリクエスタ作成の概要

サービスリクエスタとは，業務担当者からの要求を受け付けて，アダプタやビジネスプロセスなどの各HCSCコンポーネントにサービス部品の実行要求を送信するアプリケーションです。サービスリクエスタは，実行環境が提供するインターフェース情報を基に，開発環境で作成し，実行環境に配備して利用します。サービスリクエスタの開発は，Javaのプログラムを開発できる環境で行ってください。

サービスリクエスタの概要を次の図に示します。

図10-1　サービスリクエスタの概要

サービスリクエスタは，HCSCサーバの標準受付およびユーザ定義受付にサービス部品の実行を要求します。なお，サービスリクエスタが使用するプロトコルによって，要求先は異なります。サービスリクエスタが使用するプロトコルと標準受付およびユーザ定義受付の種類を次の表に示します。

表10-1　サービスリクエスタが使用するプロトコルと標準受付およびユーザ定義受付の種類

受付
プロトコル

標準受付
同期受付（Webサービス）
SOAP（HTTP）

同期受付（SessionBean）
RMI-IIOP

非同期受付（MDB（WS-R））
WS-R

非同期受付（MDB（DBキュー））

Cosminexus RM独自のプロトコル

JMS

ユーザ定義受付
同期受付（Webサービス）
SOAP（HTTP）

注意

運用時の処理の流れを考慮して，サービスリクエスタを開発する必要があります。また，障害発生時にすぐに対策できるように，よく理解した上でエラー処理を作成する必要があります。

詳細については，次の個所を参照してください。

マニュアル「Cosminexus サービスプラットフォーム 機能解説」の「2.　HCSCサーバのサービス部品呼び出し」

マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「7.　障害対策」

10.2　標準の同期受付（Webサービス）に要求を出すサービスリクエスタ（SOAP通信基盤）

標準の同期受付（Webサービス）へ要求電文を送信するサービスリクエスタは，SOAPを利用して標準受付と通信します。サービスリクエスタから標準受付へサービス部品実行の要求電文が送信され，HCSCサーバがサービス部品を実行します。

SOAPを利用する場合，同期受付（Webサービス）のインターフェース情報をWSDLから取得します。取得したWSDLからスタブを生成し，そのスタブを利用して，同期受付（Webサービス）に要求を出します。したがって，サービスリクエスタは，生成したスタブを利用できるように実装する必要があります。

標準の同期受付（Webサービス）に要求を出すサービスリクエスタとHCSCサーバの関係を次の図に示します。

図10-2　標準の同期受付（Webサービス）に要求を出すサービスリクエスタとHCSCサーバの関係（SOAP通信基盤）

なお，JAX-WSエンジンを使用する場合，スタブではなくサービスクラスを生成します。詳細については，「10.3　標準の同期受付（Webサービス）に要求を出すサービスリクエスタ（JAX-WSエンジン）」を参照してください。

＜この節の構成＞

10.2.1　サービスリクエスタ（標準の同期受付（Webサービス））の作成手順（SOAP通信基盤）

10.2.2　WSDLを取得する

10.2.3　スタブを生成する

10.2.4　オブジェクトを生成する

10.2.5　パラメタを設定する

10.2.6　要求電文を作成する

10.2.7　応答電文を取得する

10.2.8　エラー情報を取得する

10.2.9　ビジネスプロセスの再実行を要求するサービスリクエスタの作成（Webサービス・SOAP通信基盤）

10.2.10　サービスアダプタの稼働状況確認を要求するサービスリクエスタの作成（Webサービス・SOAP通信基盤）

10.2.1　サービスリクエスタ（標準の同期受付（Webサービス））の作成手順（SOAP通信基盤）

標準の同期受付（Webサービス）にサービス部品の実行を要求し，サービス部品を呼び出すためのサービスリクエスタの作成手順を次に示します。

図10-3　サービスリクエスタ（標準の同期受付（Webサービス））の作成手順（SOAP通信基盤）

各工程の作業を次に示します。

＜この項の構成＞

(1)　WSDLの取得

(2)　スタブの生成

(3)　オブジェクトの生成

(4)　パラメタの設定

(5)　要求電文の作成

(6)　応答電文の取得

(7)　エラー情報の取得

(1)　WSDLの取得

サービス部品を呼び出すHCSCサーバの同期受付（Webサービス）のインターフェース情報をWSDLから取得します。WSDLの取得については，「10.2.2　WSDLを取得する」を参照してください。

(2)　スタブの生成

「10.2.1(1) WSDLの取得」で取得したWSDLからスタブを生成します。スタブの生成については，「10.2.3　スタブを生成する」を参照してください。

(3)　オブジェクトの生成

同期受付（Webサービス）のメソッドを呼び出すために，「10.2.1(2) スタブの生成」で生成したスタブからオブジェクトを生成します。オブジェクトの生成については，「10.2.4　オブジェクトを生成する」を参照してください。

(4)　パラメタの設定

同期受付（Webサービス）のメソッドの引数となるパラメタを設定します。パラメタの設定については，「10.2.5　パラメタを設定する」を参照してください。

(5)　要求電文の作成

サービス部品の実行を要求する要求電文を作成します。要求電文の作成については，「10.2.6　要求電文を作成する」を参照してください。

(6)　応答電文の取得

同期受付（Webサービス）から，サービス部品の実行要求に対する応答電文を取得します。応答電文の取得については，「10.2.7　応答電文を取得する」を参照してください。

(7)　エラー情報の取得

要求先のサービス部品，HCSCサーバ，およびSOAPエンジンでエラーが発生した場合，エラー情報を取得し，その情報に従って対処します。エラー情報の取得については，「10.2.8　エラー情報を取得する」を参照してください。

10.2.2　WSDLを取得する

サービス部品を呼び出すHCSCサーバの同期受付（Webサービス）のインターフェース情報をWSDLから取得します。WSDLを取得するには，次の二つの方法があります。

方法1

Eclipseのメニューから，［HCSC-Definer］－［公開サービス一覧］を選択します。
ツリービューの公開サービス一覧に，HCSCコンポーネントの一覧が表示されます。

HCSCコンポーネントの一覧から，呼び出すサービス部品（HCSCコンポーネント）を選択し，ダブルクリックします。
HCSCコンポーネント情報表示画面に，HCSCコンポーネントの情報が表示されます。HCSCコンポーネント情報表示画面の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.7　HCSCコンポーネント情報表示画面」を参照してください。
［サーバ情報］には，サービス部品の要求先となるHCSCサーバの情報が表示されます。

必要に応じて，［バインディングスタイル］ラジオボタンおよび［SOAP バージョン］ラジオボタンで，取得するWSDLの種類を選択します。
［バインディングスタイル］ラジオボタンでは，取得するWSDL定義のスタイルを選択します。［SOAP バージョン］ラジオボタンでは，対応するSOAP仕様のバージョンを選択します。

［WSDL取得］ボタンをクリックします。
［WSDLファイルの保存］ダイアログが表示されます。
保存先を指定して，WSDLを取得します。

方法2

HCSC-Messagingをインストールしたディレクトリから，サンプルとして提供されているWSDLを取得します。
用途に合わせて次に示すどちらかのWSDLを取得してください。

rpc-literal型
cscmsg_ws.wsdlファイル

document-literal型
cscmsg_ws_doc.wsdlファイル

HCSC-Messagingをインストールしたディレクトリについては，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「2.1.2　uCosminexus Service Platformのインストール」を参照してください。

WSDLの<soap:address>のlocationの内容を次のように変更します。

http://<ホスト名>:<ポート番号>※1/<コンテキストルート>※2
           /services/CSCMsgSyncServiceDeliveryWSImpl

注※1

HCSCサーバのURLです。

注※2

開発環境および運用環境でHCSCサーバ構成配備時に決定されるHCSCサーバのクラスタ名です。

10.2.3　スタブを生成する

取得したWSDLからスタブを生成します。スタブは，Cosminexusが開発支援コマンドとして提供するWSDL2Javaコマンドで生成します。

コマンドの入力例（WSDLのスタイルがrpc-literalの場合）を次に示します。

WSDL2Java cscmsg_ws.wsdl

WSDLのスタイルがdocument-literalの場合，上記の例の「cscmsg_ws.wsdl」の部分には「cscmsg_ws_doc.wsdl」と設定します。

WSDL2Javaコマンドのオプションなどの詳細については，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」の「9.2　WSDL2Javaコマンド（ソースコードの生成）」を参照してください。

このコマンドを実行すると，次のディレクトリおよびファイルが作成されます。

/カレントディレクトリ
└jp
  └co
    └Hitachi
      └soft
        └csc
          └msg
            └message
              └reception
                └ejb
                  ├CSCMsgSyncServiceDeliveryWSImpl.java※1
                  ├CSCMsgSyncServiceDeliveryWSImplService.java※2
                  ├CSCMsgSyncServiceDeliveryWSImplServiceLocator.java※3
                  ├CSCMsgSyncServiceDeliveryWSImplSoapBindingStub.java※4
                  └CSCMsgServerFaultException.java※4

注※1

ユーザ定義のデータクラス（サービスリクエスタのインターフェースクラス）です。

注※2

サービス部品のインターフェースクラスです。

注※3

サービスクラス（サービス部品のインターフェースクラス）です。サービス部品への接続情報を保持します。

注※4

スタブクラスです。

10.2.4　オブジェクトを生成する

同期受付（Webサービス）のメソッドを呼び出すために，生成したスタブを使用して，オブジェクトを生成します。

＜この項の構成＞

(1)　使用するスタブ

(2)　オブジェクトの生成手順

(1)　使用するスタブ

次の二つのスタブを使用して，オブジェクトを生成します。

CSCMsgSyncServiceDeliveryWSImplServiceLocator.javaクラス

このクラスは，サービス部品への接続先（endpoint）情報の参照および設定をします。このクラスでは次のメソッドを提供します。

表10-2　CSCMsgSyncServiceDeliveryWSImplServiceLocator.javaクラスのメソッド

メソッド名
機能説明

getCSCMsgSyncServiceDeliveryWSImplAddress()
サービス部品への接続先情報を返します。

戻り値：

java.lang.String

getCSCMsgSyncServiceDeliveryWSImpl()
サービスクラスへのインターフェースクラスのオブジェクトポインタを返します。

戻り値：

インターフェースクラスオブジェクト（CSCMsgSyncServiceDeliveryWSImplオブジェクト）

getCSCMsgSyncServiceDeliveryWSImpl(java.net.URL portAddress)
設定されたサービス部品への接続先情報を使用して，サービスクラスへのオブジェクトポインタを返します。

戻り値：

インターフェースクラスオブジェクト（CSCMsgSyncServiceDeliveryWSImplオブジェクト）

CSCMsgSyncServiceDeliveryWSImpl.javaクラス

サービスクラスとして利用できるメソッドの一覧が記述されています。このクラスを使用してSOAPサービスを利用します。

(2)　オブジェクトの生成手順

同期受付（Webサービス）のメソッドを呼び出すためのオブジェクトを生成する手順を次に示します。

サービス部品のインターフェースクラスであるCSCMsgSyncServiceDeliveryWSImplServiceLocatorクラスのオブジェクトを生成します。

（例）

CSCMsgSyncServiceDeliveryWSImplServiceLocator locator
            = new CSCMsgSyncServiceDeliveryWSImplServiceLocator();

サービス部品のインターフェースクラスのオブジェクトを使用して，サービスリクエスタのインターフェースクラスであるCSCMsgSyncServiceDeliveryWSImpl.javaクラスのオブジェクトを生成します。
なお，生成・取得したサービスリクエスタのインターフェースクラスのインスタンスは，複数のスレッドで共有できません。

（例）

CSCMsgSyncServiceDeliveryWSImpl ws = null;
try {
     ws = locator.getCSCMsgSyncServiceDeliveryWSImpl();
}catch (ServiceException e) {
             e.printStackTrace();
             return;
}

サービス部品への接続先は，WSDL定義内のService要素のaddress子要素であるlocation属性となります。サービスリクエスタのプログラム内で，サービス部品への接続先情報を取得する場合は，次のように記述します。

（例）

String url = locator.getCSCMsgSyncServiceDeliveryWSImplAddress();

また，サービスリクエスタのプログラム内で，サービス部品への接続先を変更する場合は，次のように記述します。

（例）

java.net.URL endpoint
= new java.net.URL("http://hostname:80/<コンテキストルート>
                 /services/CSCMsgSyncServiceDeliveryWSImpl");
CSCMsgSyncServiceDeliveryWSImpl locator
= locator.getCSCMsgSyncServiceDeliveryWSImpl(endpoint);

生成したCSCMsgSyncServiceDeliveryWSImpl.javaクラスのオブジェクトを使用して，同期受付（Webサービス）のメソッドを呼び出します。

（例）要求電文がXMLの場合

String result = ws.invokeXML(               // メソッドの呼び出し
                      serviceName,         // サービス名
                      clientID,            // クライアント相関ID
                      requestFormatID,     // リクエストフォーマットID
                      responseFormatID,    // レスポンスフォーマットID
                      operationName,       // オペレーション名
                      userData);           // ユーザ電文

（例）要求電文がバイナリの場合

byte[] resultBinary = ws.invokeBinary(      // メソッドの呼び出し
                         serviceName,      // サービス名
                         clientID,         // クライアント相関ID
                         requestFormatID,  // リクエストフォーマットID
                         responseFormatID, // レスポンスフォーマットID
                         operationName,    // オペレーション名
                         userDataBinary.length,  // ユーザ電文長
                         userDataBinary);  // ユーザ電文

注意

バイナリ電文の要求電文を送信できるのは，サービス部品側で使用している電文形式がバイナリ形式のときだけです。

10.2.5　パラメタを設定する

同期受付（Webサービス）のメソッドを呼び出すため，メソッドの引数となるパラメタを設定します。パラメタの詳細を次の表に示します。

表10-3　パラメタの詳細（標準の同期受付（Webサービス））

パラメタ名
データ型
パラメタ
説明

invokeXML
invokeBinary

サービス名
（serviceName）
java.lang.String
in0（type="xsd:string"）
要求先のサービス名です。
このパラメタは必ず指定してください。
要求先のサービス名は，開発環境で定義したアダプタまたはビジネスプロセスを指定してください。

クライアント相関ID
（clientID）
java.lang.String
in1（type="xsd:string"）
サービスリクエスタからの要求電文を一意に識別するための相関識別子です。
255文字以内の英数字，アンダーライン（_），ピリオド（.）およびハイフン（-）で指定してください。
サービスリクエスタからの要求電文と，HCSCサーバで管理している実行履歴やログおよびトレースを対応づけるために使用します。したがって，HCSCサーバに送信した要求電文ごとに異なるIDを指定してください。
クライアント相関IDを省略したい場合，NULLを指定してください。

リクエストフォーマットID
（requestFormatID）
java.lang.String
in2（type="xsd:string"）
サービスリクエスタからの要求電文フォーマットを一意に識別するためのIDです。
このパラメタにはNULLを指定してください。

レスポンスフォーマットID
（responseFormatID）
java.lang.String
in3（type="xsd:string"）
HCSCサーバからの応答電文フォーマットを一意に識別するためのIDです。
このパラメタにはNULLを指定してください。

オペレーション名
（operationName）
java.lang.String
in4（type="xsd:string"）
要求先のサービス名に対するオペレーション名です。※
オペレーション名は，開発環境で定義したサービス部品のオペレーション名を指定します。255バイト以内のXMLSchemaのNCName定義文字で指定してください。
要求先のサービス部品が同期のサービス部品（WebサービスまたはSessionBean）またはビジネスプロセスの場合，必ず指定してください。
要求先のサービス部品が非同期のサービス部品の場合，オペレーション名を省略できます。省略する場合，NULLを指定してください。

ユーザ電文
（userData）
java.lang.String
in5
（type=
"xsd:string"）
×
サービスリクエスタからの要求電文です。※
要求電文がXMLの場合に指定します。要求電文がない場合，NULLまたは空文字（""）を指定してください。要求電文の詳細については，「10.2.6　要求電文を作成する」を参照してください。

ユーザ電文長
（userDataBinary.length）
int
×
in5（type=
"xsd:int"）
要求電文の長さです。
要求電文がバイナリの場合に指定します。要求電文がバイナリの場合は，必ず指定してください。
要求電文がない場合，0を指定してください。

ユーザ電文
（userDataBinary）
byte[]
×
in6（type=
"base64Binary"）
サービスリクエスタからの要求電文です。※
要求電文がバイナリの場合に指定します。要求電文の詳細については，「10.2.6　要求電文を作成する」を参照してください。
要求電文がない場合，NULLまたは0バイトのバイト配列を指定してください。

（凡例）

inX（X=1～6）：スタブで示しているメソッドごとのパラメタです。

×：指定できません。

注※

要求先のサービス部品のプロトコルがSOAPの場合，ユーザ電文のルート要素の名称（データ変換を行う場合，データ変換後の電文のルート要素の名称）から呼び出すオペレーションを決定します。そのため，ユーザ電文のルート要素に誤った名称を指定した場合，意図しないオペレーションを呼び出してしまうので注意してください。

10.2.6　要求電文を作成する

サービスリクエスタからHCSCサーバの同期受付（Webサービス）に，サービス部品を要求する要求電文を作成します。サービスリクエスタから送信する要求電文の内容は，サービス部品側と同じ電文フォーマットで作成してください。要求電文の送信を次の図に示します。

図10-4　要求電文の送信（標準の同期受付（Webサービス））

正常な要求電文の伝わり方については，マニュアル「Cosminexus サービスプラットフォーム 機能解説」の「2.2　Webサービス（SOAP通信）を使ったサービス部品呼び出し」を参照してください。

また，サービスリクエスタから同期受付（Webサービス）に送信する要求電文は，電文種別にXML電文とバイナリ電文の2種類があります。どちらの電文種別を使用するかは，サービス部品側で使用しているプロトコルによって異なります。電文種別がXML電文の要求電文とバイナリ電文の要求電文を次に説明します。

＜この項の構成＞

(1)　XML電文の要求電文

(2)　バイナリ電文の要求電文

(1)　XML電文の要求電文

サービス部品側のプロトコルが次に示すものの場合，およびビジネスプロセスに対して要求を行う場合，XML電文の要求電文を送信できます。

SOAP（サービスアダプタ（Webサービス）の場合）※1※2

RMI-IIOP（サービスアダプタ（SessionBean）の場合）※1※2

WS-R（サービスアダプタ（MDB（WS-R））の場合）※2

DBキュー（サービスアダプタ（MDB（DBQ））の場合）※2

注※1

必ず要求電文を指定してください。

注※2

要求電文を指定しなかった場合，サービスアダプタでデータ変換処理が行われません。

XML電文の要求電文を次の図に示します。

図10-5　XML電文の要求電文

注意

指定するXML文書（要求電文）の先頭には，必ずXML宣言を記述してください。XML宣言がない場合，またはXML文書中のユーザ電文にXML宣言がある場合，動作の保証はできません。

また，XML宣言の文字コードの指定（encoding）には，必ず「UTF-8」を指定してください。

(2)　バイナリ電文の要求電文

バイナリ電文の要求電文を送信できるのは，サービス部品側で使用しているプロトコルがDBキューのときだけです。

なお，要求電文を指定しなかった場合，サービスアダプタでデータ変換処理が行われません。

バイナリ電文の要求電文を次の図に示します。

図10-6　バイナリ電文の要求電文

10.2.7　応答電文を取得する

HCSCサーバの同期受付（Webサービス）から，サービス部品の実行要求に対する応答電文を取得します。サービスリクエスタは，サービス部品側と同じ電文フォーマットの応答電文を取得します。応答電文の取得を次の図に示します。

図10-7　応答電文の取得（標準の同期受付（Webサービス））

また，サービスリクエスタは，電文種別がXML電文の応答電文を取得します。サービス部品からの応答電文がない場合は，NULLまたは0バイトのバイト配列を受信します。応答電文がある場合とない場合に分けて次に説明します。

＜この項の構成＞

(1)　応答電文がある場合

(2)　応答電文がない場合

(1)　応答電文がある場合

サービスリクエスタが取得する，XML電文の応答電文を次に示します。

図10-8　XML電文の応答電文

(2)　応答電文がない場合

応答電文がない場合，応答がString型かbyte[]型かによって，サービスリクエスタが受信する形式が異なります。

応答がString型の場合
サービスリクエスタは，次の図に示すような形式のNULLを受信します。

図10-9　受信するNULLの形式

応答がbyte[]型の場合
サービスリクエスタは，次の図に示すような形式の0バイトのバイト配列を受信します。SOAPエンベロープは次に示すように空タグとなります。

図10-10　応答がbyte[]型の形式

注意

サービスリクエスタで実装しているSOAPエンジンによっては，図10-9および図10-10と取得形式が異なる場合があります。

10.2.8　エラー情報を取得する

要求先のサービス部品，HCSCサーバ，およびSOAPエンジンでエラーが発生した場合，エラー情報を取得し，その情報に従って対処します。エラーの伝わり方については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「7.7.1　Webサービス（SOAP通信）実行時の障害対策」を参照してください。

＜この項の構成＞

(1)　サービスリクエスタ側の実装例

(2)　エラー情報（SOAP Fault）の形式

(1)　サービスリクエスタ側の実装例

エラー情報の取得方法は，SOAP通信基盤の種類によって異なります。

(a)　Cosminexusが提供しているSOAP通信基盤を使用している場合

Cosminexusが提供しているSOAP通信基盤を使用している場合，CSCMsgServerFaultExceptionオブジェクトをキャッチして，SOAP Faultのエラー情報を取得します。

エラー情報を取得するには，サービスリクエスタ側で次のように実装する必要があります。

       ：
} catch (CSCMsgServerFaultException e) {
   System.err.println("Exception ErrorMessage = "
               + e.getErrorMessage() );
   System.err.println("Exception ErrorCode = "
               + e.getErrorCode() );
   System.err.println("Exception ProcessInstanceID = "
               + e.getProcessInstanceID() );
   System.err.println("Exception FaultCode = "
               + e.getCscmsgFaultCode() );
   System.err.println("Exception FaultString = "
               + e.getCscmsgFaultString() );
   System.err.println("Exception FaultActor = "
               + e.getCscmsgFaultActor() );
   System.err.println("Exception FaultDetails = "
               + new String(e.getCscmsgFaultDetail(), "UTF-8"));
   System.err.println("Exception FaultName = "
               + e.getFaultName() );
}
       ：

各メソッドについて，次に説明します。

●getErrorMessage

説明

エラーメッセージを取得します。

次の例外の内容を取得する場合に使用します。

HCSC-Messaging内で検知した例外

サービス部品やビジネスプロセスからのフォルト

形式

public java.lang.String getErrorMessage()

●getErrorCode

説明

エラーコードを取得します。

次の例外の内容に対するエラーコードを取得する場合に使用します。

HCSC-Messaging内で検知した例外

サービス部品やビジネスプロセスからのフォルト

形式

public java.lang.String getErrorCode()

●getProcessInstanceID

説明

ビジネスプロセスインスタンスIDを取得します。

形式

public String getProcessInstanceID()

●getCscmsgFaultCode

説明

サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultCode情報を取得します。

形式

public java.lang.String getCscmsgFaultCode()

●getCscmsgFaultString

説明

サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultString情報を取得します。

形式

public java.lang.String getCscmsgFaultString()

●getCscmsgFaultActor

説明

サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultActor情報を取得します。

形式

public java.lang.String getCscmsgFaultActor()

●getCscmsgFaultDetail

説明

サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのDetail情報を取得します。

サービス部品が設定したDetail情報をバイト配列でサービスリクエスタに引き渡します。したがって，取得したバイト配列を文字列に変換する必要があります。

なお，サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのDetail情報がない場合は，0バイトのバイト配列（SOAPメッセージの空タグ）で応答します。

形式

public byte[] getCscmsgFaultDetail()

●getFaultName

説明

サービス部品（Webサービス）またはビジネスプロセスからの例外名を取得します。

形式

public String getFaultName()

(b)　Cosminexusが提供しているSOAP通信基盤を使用していない場合

取得するエラー情報は，サービスリクエスタ側で実装しているSOAPエンジンに依存します。

(2)　エラー情報（SOAP Fault）の形式

エラー情報（SOAP Fault）の形式を次の表に示します。

表10-4　エラー情報（SOAP Fault）の形式

要素
名称
内容

faultcode
Faultコード
SOAPエンジンに依存する値です。
message partのメッセージ型属性が参照するQCNameです。

faultstring
Fault文字列
SOAPエンジンに依存する値です。
KDCCP0015-Eを出力します。

faultactor
Fault生成者
SOAPエンジンに依存する値です。値はありません。

detail※
Fault詳細
wsdl:faultに対応する内容です。

注※

要素「detail」はエラー情報の詳細です。次の表に示す構造体で格納されます。

表10-5　エラー情報（SOAP Fault）の詳細

フィールド名
説明

サービス部品，ビジネスプロセス，カスタムアダプタ，または連携するHCSCサーバからのエラー（フォルト）
HCSCサーバで検知したエラー（例外）

errorMessage
次に示すエラーの内容です。

HCSCサーバ内で検知したエラー

サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラー

errorCode
次に示す例外の内容に対応するエラーコードです。

HCSCサーバ内で検知したエラー

サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラー

processInstanceID
ビジネスプロセスのインスタンスIDの情報です。
ビジネスプロセスでエラーが発生した場合に値が設定されます。

cscmsgFaultCode
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultCode情報です。
－

cscmsgFaultString
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultString情報です。
－

cscmsgFaultActor
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultActor情報です。
－

cscmsgFaultDetail
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのDetail情報です。
－

faultName
サービス部品（WebサービスまたはSessionBean）またはビジネスプロセスからのフォルト名（例外名）情報です。
次の場合に値が設定されます。

サービス部品(WebサービスまたはSessionBean)からのユーザ定義例外のSOAP Faultの場合

ビジネスプロセスからのフォルトの場合

SOAP Fault動作定義ファイルにtargetNamespaceのURIを定義したWebサービスからのSOAP Faultの場合，値は設定されません。SOAP Fault動作定義ファイルについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「SOAP Fault動作定義ファイル」を参照してください。
－

（凡例）　－：該当しません。

10.2.9　ビジネスプロセスの再実行を要求するサービスリクエスタの作成（Webサービス・SOAP通信基盤）

標準の同期受付（Webサービス）に要求を出すサービスリクエスタとして，ビジネスプロセスの再実行を要求するサービスリクエスタを作成できます。

標準の同期受付（Webサービス）にビジネスプロセスの再実行を要求するサービスリクエスタを作成する流れは，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。作成の流れについては，「10.2.1　サービスリクエスタ（標準の同期受付（Webサービス））の作成手順（SOAP通信基盤）」を参照してください。

各工程で実施する内容を次に示します。

＜この項の構成＞

(1)　WSDLの取得

(2)　スタブの生成

(3)　オブジェクトの生成

(4)　パラメタの設定

(5)　応答電文の取得

(6)　エラー情報の取得

(1)　WSDLの取得

WSDLの取得方法は，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

WSDLの取得方法については，「10.2.2　WSDLを取得する」を参照してください。

(2)　スタブの生成

スタブの生成方法は，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同様に，Cosminexusが開発支援コマンドとして提供するWSDL2Javaコマンドで生成します。

スタブの生成については，「10.2.3　スタブを生成する」を参照してください。

(3)　オブジェクトの生成

オブジェクトの生成方法は，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

オブジェクトの生成については，「10.2.4　オブジェクトを生成する」を参照してください。

なお，ビジネスプロセスの再実行を要求するメソッドは，invokeBPXML()を使用して呼び出します。

ビジネスプロセスの再実行を要求するメソッドの例を次に示します。

（例）ビジネスプロセスの再実行を要求する場合

String result = ws.invokeBPXML(             // メソッドの呼び出し
                      serviceName,         // サービス名
                      bpRequestType,       // ビジネスプロセス用要求タイプ
                      bpProcessId,         // ビジネスプロセス用プロセスID
                      clientID,            // クライアント相関ID
                      requestFormatID,     // リクエストフォーマットID
                      responseFormatID,    // レスポンスフォーマットID
                      operationName,       // オペレーション名
                      userData);           // ユーザ電文

(4)　パラメタの設定

メソッドの引数となるパラメタは，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と異なります。同期受付（Webサービス）にビジネスプロセスの再実行を要求するサービスリクエスタの場合に設定するパラメタの詳細を次に示します。

表10-6　パラメタの詳細（標準の同期受付（Webサービス）／ビジネスプロセス再実行要求）

パラメタ名
データ型
パラメタ（invokeBPXML）
説明

サービス名
（serviceName）
java.lang.String
in0（type="xsd:string"）
要求先のサービス名です。
このパラメタは必ず指定してください。
要求先のサービス名は，開発環境で定義したビジネスプロセスを指定してください。

ビジネスプロセス用要求タイプ
（bpRequestType）
java.lang.String
in1（type="xsd:string"）
要求電文の種類を示します。
ビジネスプロセスの再実行を要求する場合，文字列「RECOVER」を指定してください。※1

ビジネスプロセス用プロセスID
（bpProcessId）
java.lang.String
in2（type="xsd:string"）
ビジネスプロセスインスタンスIDです。
エラー情報から取得した値，または，メッセージログに出力された値を指定してください。

クライアント相関ID
（clientID）
java.lang.String
in3（type="xsd:string"）
サービスリクエスタからの要求電文を一意に識別するための相関識別子です。
このパラメタにはNULLを指定してください。※1

リクエストフォーマットID
（requestFormatID）
java.lang.String
in4（type="xsd:string"）
サービスリクエスタからの要求電文フォーマットを一意に識別するためのIDです。
このパラメタにはNULLまたは空文字（""）を指定してください。※1

レスポンスフォーマットID
（responseFormatID）
java.lang.String
in5（type="xsd:string"）
HCSCサーバからの応答電文フォーマットを一意に識別するためのIDです。
このパラメタにはNULLまたは空文字（""）を指定してください。※1

オペレーション名
（operationName）
java.lang.String
in6（type="xsd:string"）
要求先のサービス名に対するオペレーション名です。※2
このパラメタにはNULLまたは空文字（""）を指定してください。※1

ユーザ電文
（userData）
java.lang.String
in7（type="xsd:string"）
サービスリクエスタからの要求電文です。※2
このパラメタにはNULLまたは空文字（""）を指定してください。※1

（凡例）

inX（X=0～7）：スタブで示しているメソッドごとのパラメタです。

注※1

これらのパラメタは，指定する値として固定値（「RECOVER」，NULLまたは空文字（""））が決められています。決められた値以外の値を指定すると，正常に動作しません。

注※2

要求先のサービス部品のプロトコルがSOAPの場合，ユーザ電文のルート要素の名称（データ変換を行う場合，データ変換後の電文のルート要素の名称）から呼び出すオペレーションを決定します。そのため，ユーザ電文のルート要素に誤った名称を指定した場合，意図しないオペレーションを呼び出してしまうので注意してください。

(5)　応答電文の取得

応答電文の取得方法は，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

応答電文の取得については，「10.2.7　応答電文を取得する」を参照してください。

(6)　エラー情報の取得

エラー情報を取得するためのサービスリクエスタの実装は，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

エラー情報の取得については，「10.2.8　エラー情報を取得する」を参照してください。

10.2.10　サービスアダプタの稼働状況確認を要求するサービスリクエスタの作成（Webサービス・SOAP通信基盤）

標準の同期受付（Webサービス）に要求を出すサービスリクエスタとして，アプリケーションからサービスアダプタの稼働状況確認を要求するサービスリクエスタを作成できます。

サービスアダプタの稼働状況を確認するには，標準の同期受付（Webサービス）に要求を出すサービス部品の呼び出しとは別に，稼働状態確認用のメソッドを呼び出す処理を追加する必要があります。

標準の同期受付（Webサービス）にアプリケーションからサービスアダプタの稼働状況確認を要求するサービスリクエスタの作成手順を次に示します。

図10-11　サービスアダプタの稼働状況確認を要求するサービスリクエスタの作成手順（標準の同期受付（Webサービス・SOAP通信基盤））

各工程の作業を次に示します。

＜この項の構成＞

(1)　WSDLの取得

(2)　スタブの生成

(3)　オブジェクトの生成

(4)　パラメタの設定

(5)　応答電文の取得

(6)　エラー情報の取得

(1)　WSDLの取得

WSDLの取得方法は，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

なお，サービス部品の呼び出し用の処理と，稼働状態確認用の処理で，WSDLを使い分ける必要はありません。

WSDLの取得方法については，「10.2.2　WSDLを取得する」を参照してください。

(2)　スタブの生成

スタブの生成方法は，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同様に，Cosminexusが開発支援コマンドとして提供するWSDL2Javaコマンドで生成します。

スタブの生成については，「10.2.3　スタブを生成する」を参照してください。

(3)　オブジェクトの生成

サービスアダプタの稼働状況確認を要求するメソッドを呼び出すためのオブジェクトを生成する手順を次に示します。

サービス部品のインターフェースクラスであるCSCMsgSyncServiceDeliveryWSImplServiceLocatorクラスのオブジェクトを生成します。

（例）

CSCMsgSyncServiceDeliveryWSImplServiceLocator locator
            = new CSCMsgSyncServiceDeliveryWSImplServiceLocator();

サービス部品のインターフェースクラスのオブジェクトを使用して，サービスリクエスタのインターフェースクラスであるCSCMsgSyncServiceDeliveryWSImpl.javaクラスのオブジェクトを生成します。
なお，生成・取得したサービスリクエスタのインターフェースクラスのインスタンスは，複数のスレッドで共有できません。

（例）

CSCMsgSyncServiceDeliveryWSImpl ws = null;
try {
     ws = locator.getCSCMsgSyncServiceDeliveryWSImpl();
}catch (ServiceException e) {
             e.printStackTrace();
             return;
}

サービス部品への接続先は，WSDL定義内のService要素のaddress子要素であるlocation属性となります。サービスリクエスタのプログラム内で，サービス部品への接続先情報を取得する場合は，次のように記述します。

（例）

String url = locator.getCSCMsgSyncServiceDeliveryWSImplAddress();

生成したCSCMsgSyncServiceDeliveryWSImpl.javaクラスのオブジェクトを使用して，同期受付（Webサービス）のサービスアダプタの稼働状況確認を要求するメソッドを呼び出します。

（例）optionに"type=status"を指定した場合

String result = ws.getServiceInfo(          // メソッドの呼び出し
                      serviceName,         // サービス名
                      clientID,            // クライアント相関ID
                      "type=status");      // オプション

（例）optionに"type=status,returnType=XML"を指定した場合

String result = ws.getServiceInfo(          // メソッドの呼び出し
                      serviceName,         // サービス名
                      clientID,            // クライアント相関ID
                      "type=status,returnType=XML");
                                           // オプション

(4)　パラメタの設定

サービスアダプタの稼働状況確認を要求するためには，getServiceInfoメソッドを使用します。メソッドの引数となるパラメタは，標準の同期受付（Webサービス）に要求を出す通常のサービスリクエスタを作成する場合と異なります。

同期受付（Webサービス）にサービスアダプタの稼働状況確認を要求するサービスリクエスタの場合に設定するパラメタの詳細を次に示します。

表10-7　パラメタの詳細（標準の同期受付（Webサービス）／サービスアダプタの稼働状況確認要求）

パラメタ名
データ型
パラメタ（invokeBPXML）
説明

サービス名
（serviceName）
java.lang.String
in0（type="xsd:string"）
サービスアダプタの稼働状況を確認するときの要求先のサービス名です。
このパラメタは必ず指定してください。
要求先のサービス名は，HCSCサーバに配備されているサービスアダプタを指定してください。

クライアント相関ID
（clientID）
java.lang.String
in1（type="xsd:string"）
サービスリクエスタからの要求電文を一意に識別するための相関識別子です。
255文字以内の英数字，アンダーライン（_），ピリオド（.）およびハイフン（-）で指定してください。
サービスリクエスタからの要求電文と，HCSCサーバで管理している実行履歴やログおよびトレースを対応づけるために使用します。したがって，HCSCサーバに送信した要求電文ごとに異なるIDを指定してください。
クライアント相関IDを省略したい場合，NULLを指定してください。

オプション
（option）
java.lang.String
in2（type="xsd:string"）
稼働状況の確認結果を取得するときに選択するオプションです。
オプションの入力形式は，「キー名称=値」です。オプションの前後はダブルクォーテーション（"）で囲んでください。また，複数のオプションを指定する場合は，コンマ（,）で区切って指定してください。※1

（例）

"キー名称=値,キー名称=値"

指定できるオプションを次に示します。

type={all/status}

取得する情報のパターンを指定するオプションです。

all（初期値）
serviceNameに指定したサービス名に該当するすべての情報を応答します。

status
serviceNameに指定したサービス名に該当する状態，HCSCサーバ名，およびクラスタ名を応答します。

returnType={Properties/String/XML}

応答の形式を指定するオプションです。

Properties（初期値）
java.util.Propertiesクラスに含まれるすべてのプロパティをXMLドキュメント形式※2で応答します。なお，値が存在しない場合は，プロパティのキーは存在しません。※3

String
java.util.PropertiesクラスをtoString()変換した形式で応答します。なお，値が存在しない場合は，プロパティのキーは存在しません。

XML
HCSCサーバが定義するXMLスキーマのXMLドキュメント形式で応答します。なお，値が存在しない場合は，空タグで応答します。

（凡例）

inX（X=0～2）：スタブで示しているメソッドごとのパラメタです。

注※1

コンマ（,）の前または後，イコール（=）の前または後に空白がある場合はエラーになります。また，文字列の最後がコンマ（,）にならないように指定してください。

注※2

PropertiesクラスのstoreToXML()メソッドを使用して，UTF-8エンコードしたXML形式です。この形式は，PropertiesクラスのloadFromXML()メソッドを使用してPropertiesクラスに復元できます。

注※3

Propertiesクラスで取得するとnullを応答します。

(5)　応答電文の取得

パラメタのオプションで指定した形式でサービスアダプタの稼働状況確認の応答電文が返ります。

次に応答電文の形式と例を説明します。

(a)　応答電文の形式

応答電文で取得できる情報については，typeオプションに指定する内容によって異なります。応答電文で取得できる情報を次に示します。

表10-8　応答電文で取得できる情報

キーまたはタグ | 情報の内容 | typeオプション指定による応答情報
all | status
HCSCServerName | HCSCサーバ名 | ○ | ○
ClusterName | クラスタ名 | ○ | ○
ServiceName | サービス名 | ○ | ×
ServiceStatus | サービスアダプタの状態 | ○ | ○
ServiceKind | サービスの種別 | ○ | ×
ServiceProtocolKind | アダプタのプロトコル種別 | ○ | ×
AdapterName | アダプタ名 | ○ | ×
AdapterLocalCall | ローカルキュー使用状況 | ○※ | ×
EntryTime | アダプタ定義追加時刻 | ○ | ×
ModifiedTime | アダプタ定義更新時刻 | ○ | ×

（凡例）○：取得できます。　×：取得できません。

注※　ServiceProtocolKindがMDB_WSRの場合だけ応答します。

取得情報の詳細を次に説明します。

●HCSCServerName

説明

情報を取得したHCSCサーバ名を取得します。

●ClusterName

説明

アダプタ（サービスアダプタ）を所有しているクラスタ名を取得します。

●ServiceName

説明

オプションに"type=all"を指定した場合に，配備されているサービス名を取得します。オプションに"type=status"を指定した場合は，この情報は取得しません。

●ServiceStatus

説明

サービスアダプタの状態を取得します。

active：起動状態

inactive：停止状態

starting：起動処理中

startfailed：起動失敗状態

stopping：停止処理中

stopfailed：停止失敗状態

deleting：削除処理中

●ServiceKind

説明

オプションに"type=all"を指定した場合に，配備されているサービスの種別を取得します。オプションに"type=status"を指定した場合は，この情報は取得しません。

ServiceAdapter：サービスアダプタ

●ServiceProtocolKind

説明

オプションに"type=all"を指定した場合に，アダプタのプロトコルの種別を取得します。オプションに"type=status"を指定した場合は，この情報は取得しません。

WebService：SOAP（HTTP）（同期受付（Webサービス））

SessionBean：RMI-IIOP（同期受付（SessionBean））

MDB_WSR：WS-R（非同期受付（MDB（WS-R）））

MDB_DBQ：Cosminexus RM独自のプロトコルまたはJMS（非同期受付（MDB（DBキュー）））

Custom：カスタムアダプタ

●AdapterName

説明

オプションに"type=all"を指定した場合に，配備されているアダプタ名を取得します。オプションに"type=status"を指定した場合は，この情報は取得しません。

●AdapterLocalCall

説明

オプションに"type=all"を指定した場合に，アダプタのローカルキューの使用状況を取得します。オプションに"type=status"を指定した場合は，この情報は取得しません。

この項目はServiceProtocolKindがMDB_WSRの場合だけ応答します。

true：ローカルキューを使用している

false：ローカルキューを使用していない

●EntryTime

説明

オプションに"type=all"を指定した場合に，サービスアダプタを配備した時刻（定義登録時刻）を応答します。オプションに"type=status"を指定した場合は，この情報は応答しません。

形式

YYYY/MM/DD hh:mm:ss.SSS

YYYY：西暦

MM：月

DD：日

hh：時

mm：分

ss：秒

SSS：ミリ秒

●ModifiedTime

説明

オプションに"type=all"を指定した場合に，サービスアダプタを開発環境で定義した時刻（更新時刻）を応答します。オプションに"type=status"を指定した場合は，この情報は応答しません。

形式

YYYY/MM/DD hh:mm:ss

YYYY：西暦

MM：月

DD：日

hh：時

mm：分

ss：秒

(b)　応答電文の例

応答電文の例を次に示します。

（例1）optionに"type=all,returnType=Properties"を指定した場合

<?xml version="1.0" encoding="UTF-8"?>
<getServiceInfoResponse>
<HCSCServerName>HCSC</HCSCServerName>
<ClusterName>Cluster</ClusterName>
<ServiceName>Service1</ServiceName>
<ServiceStatus>Active</ServiceStatus>
<ServiceKind>ServiceAdapter</ServiceKind>
<ServiceProtocolKind>WebService</ServiceProtocolKind>
<AdapterName>ad1</AdapterName><AdapterLocalCall/>
<EntryTime>YYYY/MM/DD hh:mm:ss.SSS</EntryTime>
<ModifiedTime>YYYY/MM/DD hh:mm:ss</ModifiedTime>
</getServiceInfoResponse>

注1

値の順番は変わることがあります（順不同です）。

注2

optionに"type=status,returnType=Properties"を指定した場合は，応答しない情報は応答電文に存在しません。

（例2）optionに"type=all,returnType=String"を指定した場合

{HCSCServerName=HCSC,ClusterName=Cluster,ServiceName=Service1,ServiceStatus=Active,ServiceKind=ServiceAdapter,ServiceProtocolKind=WebService,AdapterName=ad1,EntryTime=YYYY/MM/DD hh:mm:ss.SSS,ModifiedTime=YYYY/MM/DD hh:mm:ss}

注1

値の順番は変わることがあります（順不同です）。

注2

optionに"type=status,returnType=String"を指定した場合は，応答しない情報は応答電文に存在しません。

（例3）optionに"type=all,returnType=XML"を指定した場合

<?xml version="1.0" encoding="UTF-8"?>
<getServiceInfoResponse>
<HCSCServerName>HCSC</HCSCServerName>
<ClusterName>Cluster</ClusterName>
<ServiceName>Service1</ServiceName>
<ServiceStatus>Active</ServiceStatus>
<ServiceKind>ServiceAdapter</ServiceKind>
<ServiceProtocolKind>WebService</ServiceProtocolKind>
<AdapterName>ad1</AdapterName>
<AdapterLocalCall/>
<EntryTime>YYYY/MM/DD hh:mm:ss.SSS</EntryTime>
<ModifiedTime>YYYY/MM/DD hh:mm:ss</ModifiedTime>
</getServiceInfoResponse>

注1

値が存在しない場合は，空タグで応答します。

（例）

<AdapterLocalCall/>

注2

オプションに"type=status,returnType=XML"を指定した場合は，応答しない情報の<タグ>は応答電文に存在しません。

(6)　エラー情報の取得

サービスアダプタの稼働状況確認でエラーが発生した場合，CSCMsgServerFaultExceptionオブジェクトをキャッチして，SOAP Faultのエラー情報を取得します。

エラー情報の取得については，「10.2.8　エラー情報を取得する」を参照してください。

エラーになる主な要因として，次の場合が挙げられます。

必須の引数が指定されていない。

引数の入力値に誤りがある（形式不正）。

HCSCサーバに該当のサービス名のサービスアダプタが配備されていない。

リクエスト受付が起動状態ではない（停止状態，起動処理中，起動失敗状態，停止処理中，停止失敗状態，削除処理中）。

10.3　標準の同期受付（Webサービス）に要求を出すサービスリクエスタ（JAX-WSエンジン）

標準の同期受付（Webサービス）に要求を出すサービスリクエスタとして，JAX-WSエンジンを使用して通信するサービスリクエスタを作成できます。JAX-WSエンジンを使用して通信するサービスリクエスタは，SOAP（document-literal型）を利用して，標準の同期受付（Webサービス）に要求電文を送信します。

JAX-WSエンジンの場合のサービスリクエスタとHCSCサーバの関係を次の図に示します。

図10-12　標準の同期受付（Webサービス）に要求を出すサービスリクエスタとHCSCサーバの関係（JAX-WSエンジン）

＜この節の構成＞

10.3.1　サービスリクエスタ（標準の同期受付（Webサービス））の作成手順（JAX-WSエンジン）

10.3.2　WSDLを取得する

10.3.3　サービスクラスを生成する

10.3.4　オブジェクトを生成する

10.3.5　パラメタを設定する

10.3.6　要求電文を作成する

10.3.7　応答電文を取得する

10.3.8　エラー情報を取得する

10.3.9　ビジネスプロセスの再実行を要求するサービスリクエスタの作成（Webサービス・JAX-WSエンジン）

10.3.10　サービスアダプタの稼働状況確認を要求するサービスリクエスタの作成（Webサービス・JAX-WSエンジン）

10.3.1　サービスリクエスタ（標準の同期受付（Webサービス））の作成手順（JAX-WSエンジン）

標準の同期受付（Webサービス）にサービス部品の実行を要求し，サービス部品を呼び出すためのサービスリクエスタの作成手順を次に示します。

図10-13　サービスリクエスタ（標準の同期受付（Webサービス））の作成手順（JAX-WSエンジン）

各工程の作業を次に示します。

＜この項の構成＞

(1)　WSDLの取得

(2)　サービスクラスの生成

(3)　オブジェクトの生成

(4)　パラメタの設定

(5)　要求電文の作成

(6)　応答電文の取得

(7)　エラー情報の取得

(1)　WSDLの取得

サービス部品を呼び出すHCSCサーバの同期受付（Webサービス）のインターフェース情報をWSDLから取得します。WSDLの取得については，「10.3.2　WSDLを取得する」を参照してください。

(2)　サービスクラスの生成

「10.3.2　WSDLを取得する」で取得したWSDLからサービスクラスを生成します。サービスクラスの生成については，「10.3.3　サービスクラスを生成する」を参照してください。

(3)　オブジェクトの生成

同期受付（Webサービス）のメソッドを呼び出すために，「10.3.3　サービスクラスを生成する」で生成したサービスクラスからプロキシクラスのオブジェクトを生成します。プロキシクラスのオブジェクトの生成については，「10.3.4　オブジェクトを生成する」を参照してください。

(4)　パラメタの設定

同期受付（Webサービス）のメソッドの引数となるパラメタを設定します。パラメタの設定については，「10.3.5　パラメタを設定する」を参照してください。

(5)　要求電文の作成

サービス部品の実行を要求する要求電文を作成します。要求電文の作成については，「10.3.6　要求電文を作成する」を参照してください。

(6)　応答電文の取得

同期受付（Webサービス）から，サービス部品の実行要求に対する応答電文を取得します。応答電文の取得については，「10.3.7　応答電文を取得する」を参照してください。

(7)　エラー情報の取得

要求先のサービス部品，HCSCサーバ，およびJAX-WSエンジンでエラーが発生した場合，エラー情報を取得し，その情報に従って対処します。エラー情報の取得については，「10.3.8　エラー情報を取得する」を参照してください。

10.3.2　WSDLを取得する

サービス部品を呼び出すHCSCサーバの同期受付（Webサービス）のインターフェース情報をWSDLから取得します。WSDLを取得するには，次の二つの方法があります。

方法1

Eclipseのメニューから，［HCSC-Definer］－［公開サービス一覧］を選択します。
ツリービューの公開サービス一覧に，HCSCコンポーネントの一覧が表示されます。

HCSCコンポーネントの一覧から，呼び出すサービス部品（HCSCコンポーネント）を選択し，ダブルクリックします。
HCSCコンポーネント情報表示画面に，HCSCコンポーネントの情報が表示されます。HCSCコンポーネント情報表示画面の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.7　HCSCコンポーネント情報表示画面」を参照してください。
［サーバ情報］には，サービス部品の要求先となるHCSCサーバの情報が表示されます。

必要に応じて，［バインディングスタイル］ラジオボタンおよび［SOAP バージョン］ラジオボタンで，取得するWSDLの種類を選択します。
［バインディングスタイル］ラジオボタンでは，取得するWSDL定義のスタイルを選択します。［SOAP バージョン］ラジオボタンでは，対応するSOAP仕様のバージョンを選択します。

［WSDL取得］ボタンをクリックします。
［WSDLファイルの保存］ダイアログが表示されます。
保存先を指定して，WSDLを取得します。

方法2

HCSC-Messagingをインストールしたディレクトリから，WSDLのサンプルを取得します。
用途に合わせて次に示すWSDLのどちらかを取得してください。

SOAP1.1用／document-literal型
cscmsg_ws_doc.wsdlファイル

SOAP1.2用／document-literal型
cscmsg_ws_doc_1_2.wsdlファイル

HCSC-Messagingをインストールしたディレクトリについては，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「2.1.2　uCosminexus Service Platformのインストール」を参照してください。

WSDLの<soap:address>または<soap12:address>のlocationの内容を次のように変更します。

http://<ホスト名>:<ポート番号>※1/<コンテキストルート>※2
           /services/CSCMsgSyncServiceDeliveryWSImpl

注※1

HCSCサーバのURLです。

注※2

開発環境および運用環境でHCSCサーバ構成配備時に決定されるHCSCサーバのクラスタ名です。SOAP1.2の場合，クラスタ名に接尾辞"12"が付与されます。

10.3.3　サービスクラスを生成する

取得したWSDLからサービスクラスを生成します。サービスクラスはcjwsimportコマンドで生成します。

コマンドの入力例を次に示します。

cjwsimport -s <ソースファイルの出力先ディレクトリ> -d <コンパイル済みクラスファイルの出力先ディレクトリ> cscmsg_ws_doc.wsdl

JAX-WSエンジンの場合，WSDLのスタイルはdocument-literalになるため，「cscmsg_ws_doc.wsdl」と設定します。

なお，このコマンドの入力例は，「10.3.2　WSDLを取得する」で取得したWSDL（cscmsg_ws_doc.wsdl）がcjwsimportコマンドを実行するカレントディレクトリに格納されている場合の例になります。

cjwsimportコマンドのオプションなどの詳細については，マニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」の「11.1　cjwsimportコマンド」を参照してください。

このコマンドを実行すると，指定したソースファイルの出力先ディレクトリに，次のディレクトリおよびファイルが生成されます。

/ソースファイルの出力先ディレクトリ
├jp/co/hitachi/soft/csc/msg/message/reception/ejb/
｜├CSCMsgServerFaultException.java
｜｜   //HCSCサーバ独自のフォルト情報が格納されるクラス
｜├CSCMsgServerFaultException_Exception.java
｜｜   //CSCMsgServerFaultExceptionをラッパする例外クラス
｜├CSCMsgSyncServiceDeliveryWSImpl.java
｜｜   //WSDLのportType要素に対応するサービスエンドポイントインターフェース
｜├CSCMsgSyncServiceDeliveryWSImplService.java
｜｜   //サービスクラス
｜├GetServiceInfo.java
｜｜   //getServiceInfoオペレーションの要求電文に対するJavaBeanクラス※1
｜├GetServiceInfoResponse.java
｜｜   //getServiceInfoオペレーションの応答電文に対するJavaBeanクラス※1
｜├InvokeBinary.java
｜｜   //invokeBinaryオペレーションの要求電文に対するJavaBeanクラス※1
｜├InvokeBinaryResponse.java
｜｜   //invokeBinaryオペレーションの応答電文に対するJavaBeanクラス※1
｜├InvokeBPXML.java
｜｜   //invokeBPXMLオペレーションの要求電文に対するJavaBeanクラス※1
｜├InvokeBPXMLResponse.java
｜｜   //invokeBPXMLオペレーションの応答電文に対するJavaBeanクラス※1
｜├InvokeXML.java
｜｜   //invokeXMLオペレーションの要求電文に対するJavaBeanクラス※1
｜├InvokeXMLResponse.java
｜｜   //invokeXMLオペレーションの応答電文に対するJavaBeanクラス※1
｜├ObjectFactory.java
｜｜   //JAXB2.1仕様のObjectFactoryクラス
｜└package-info.java
｜     //JAXB2.1で使用するファイル
└cscmsg_ws_doc.wsdl※2

注※1

JAXB2.1で使用します。

注※2

この出力例は，次の状態でcjwsimportコマンドを実行した場合の例になります。

cjwsimportコマンドの-sオプションに指定したディレクトリに「10.3.2　WSDLを取得する」で取得したWSDL（cscmsg_ws_doc.wsdl）が格納されている。cjwsimportコマンドに指定したWSDLも，-sオプションに指定したディレクトリに存在するWSDLを指定している。

cjwsimportコマンドで-sオプションを省略して実行し，cjwsimportコマンドを実行するカレントディレクトリに「10.3.2　WSDLを取得する」で取得したWSDL（cscmsg_ws_doc.wsdl）が格納されている。cjwsimportコマンドに指定したWSDLもディレクトリを指定しないで，カレントディレクトリに存在するWSDLを指定している。

なお，cjwsimportコマンドに指定したWSDL（cscmsg_ws_doc.wsdl）は，コマンドを実行したあと，-sオプションに指定したソースファイルの出力先ディレクトリには出力されません。

注意

JAX-WSエンジンに対応したサービスリクエスタの場合，プログラム実行時にWSDLを読み込みます。サービスクラスのデフォルトコンストラクタを使用する場合は，cjwsimportコマンドで指定したWSDLのパス（「10.3.2　WSDLを取得する」で取得したWSDLファイルをサービスクラス生成のために格納したディレクトリ）のWSDLを読み込みます。そのため，cjwsimportコマンドを実行したあと，サービスクラスを基点としたWSDLファイルの構成位置は，相対関係を壊すような構成にならないよう，WSDLファイルを移動しないでください。サービスリクエスタ実行時に参照するWSDLの構成位置を，cjwsimportコマンドで指定したWSDLのパスから変更する場合は，URLを指定できるコンストラクタを使用してください。

10.3.4　オブジェクトを生成する

同期受付（Webサービス）のメソッドを呼び出すために，生成したサービスクラスを使用して，プロキシクラスのオブジェクトを生成します。プロキシクラスのオブジェクトを生成する手順を次に示します。

CSCMsgSyncServiceDeliveryWSImplServiceクラスのオブジェクトを生成します。

（例）

CSCMsgSyncServiceDeliveryWSImplService service
            = new CSCMsgSyncServiceDeliveryWSImplService();

wsdl:portTypeに対応するプロキシクラスであるCSCMsgSyncServiceDeliveryWSImpl.javaクラスを生成します。

（例）

CSCMsgSyncServiceDeliveryWSImpl ws
            = service.getCSCMsgSyncServiceDeliveryWSImpl();

生成したCSCMsgSyncServiceDeliveryWSImpl.javaクラスのオブジェクトを使用して，同期受付（Webサービス）のメソッドを呼び出します。

（例）要求電文がXMLの場合

String result = ws.invokeXML(                     // メソッドの呼び出し
                      serviceName,               // サービス名
                      clientID,                  // クライアント相関ID
                      requestFormatID,           // リクエストフォーマットID
                      responseFormatID,          // レスポンスフォーマットID
                      operationName,             // オペレーション名
                      userData);                 // ユーザ電文

（例）要求電文がバイナリの場合

byte[] resultBinary = ws.invokeBinary(            // メソッドの呼び出し
                         serviceName,            // サービス名
                         clientID,               // クライアント相関ID
                         requestFormatID,        // リクエストフォーマットID
                         responseFormatID,       // レスポンスフォーマットID
                         operationName,          // オペレーション名
                         userDataBinary.length,  // ユーザ電文長
                         userDataBinary);        // ユーザ電文

注意

バイナリ電文の要求電文を送信できるのは，サービス部品側で使用している電文形式がバイナリ形式のときだけです。

10.3.5　パラメタを設定する

メソッドの引数となるパラメタは，SOAP通信基盤でサービスリクエスタを作成する場合と同じです。

SOAP通信基盤のパラメタの設定については，「10.2.5　パラメタを設定する」を参照してください。

10.3.6　要求電文を作成する

要求電文の作成方法は，SOAP通信基盤でサービスリクエスタを作成する場合と同じです。

SOAP通信基盤の要求電文の作成については，「10.2.6　要求電文を作成する」を参照してください。

10.3.7　応答電文を取得する

応答電文の取得方法は，SOAP通信基盤でサービスリクエスタを作成する場合と同じです。

SOAP通信基盤の応答電文の取得については，「10.2.7　応答電文を取得する」を参照してください。

10.3.8　エラー情報を取得する

要求先のサービス部品，HCSCサーバ，およびJAX-WSエンジンでエラーが発生した場合，エラー情報を取得し，その情報に従って対処します。

JAX-WSエンジンを使用して通信するサービスリクエスタの場合，情報がラップされた例外（SOAP1.1の場合はCSCMsgServerFaultException_Exception，SOAP1.2の場合はCSCMsgServerFault12Exception_Exception）※がキャッチされます。そのため，getFaultInfo()メソッドを使用してフォルト情報の格納クラスを取得する必要があります。

注※

cjwsimportコマンド実行時に，"_"（アンダースコア）は除去され，フォルト情報の格納クラス（FaultBean）との名前重複を回避するために接尾辞"_Exception"が付与された例外名となります。

＜この項の構成＞

(1)　サービスリクエスタ側の実装例

(2)　エラー情報（SOAP Fault）の形式

(1)　サービスリクエスタ側の実装例

getFaultInfo()メソッドを使用して，フォルト情報の格納クラスを取得する場合の，サービスリクエスタ側の実装の例を次に示します。

SOAP1.1の場合

/**
* Sample Program
*/
{
   try {
       ：
     // Webサービス呼び出し
       ：
   } catch (CSCMsgServerFaultException_Exception e) {
     // CSC内部で例外またはユーザ定義例外が発生

     // CSCで定義している例外オブジェクトを取得
     CSCMsgServerFaultException faultInfo = e.getFaultInfo();

     // 例外情報を出力
     System.err.println("errorCode="
                          + faultInfo.getErrorCode());
     System.err.println("errorMessage="
                          + faultInfo.getErrorMessage());
     System.err.println("processInstanceID="
                          + faultInfo.getProcessInstanceID());
     System.err.println("faultCode="
                          + faultInfo.getCscmsgFaultCode());
     System.err.println("faultActor="
                          + faultInfo.getCscmsgFaultActor());
     System.err.println("faultString="
                          + faultInfo.getCscmsgFaultString());
     System.err.println("faultName="
                          + faultInfo.getFaultName());
     byte[] faultDetail = faultInfo.getCscmsgFaultDetail();
     try {
       if(faultDetail != null) {
         System.err.println("faultDetail="
                          + new String(faultDetail, "UTF-8"));
       }
     } catch (UnsupportedEncodingException e1) {
       e1.printStackTrace();
     }
   } catch (SOAPFaultException e) {
       ：
   }
}

SOAP1.2の場合

/**
* Sample Program
*/
{
   try {
       ：
     // Webサービス呼び出し
       ：
   } catch (CSCMsgServerFault12Exception_Exception e) {
     // CSC内部で例外またはユーザ定義例外が発生

     // CSCで定義しているフォルト情報のオブジェクトを取得
     CSCMsgServerFault12Exception faultInfo = e.getFaultInfo();

     // 例外情報を出力
     System.err.println("errorCode="
                          + faultInfo.getErrorCode());
     System.err.println("errorMessage="
                          + faultInfo.getErrorMessage());
     System.err.println("processInstanceID="
                          + faultInfo.getProcessInstanceID());
     CscmsgFaultCode code = faultInfo.getCscmsgFaultCode();
     if (code == null) {
       System.err.println("Code=" + code);
     } else {
       List<String> values = code.getValues();
       for(String value : values) {
         System.err.println("Code Value=" + value);
       }
     }
     CscmsgFaultReason reason = faultInfo.getCscmsgFaultReason();
     if (reason == null) {
       System.err.println("Reason=" + reason);
     } else {
       List<CscmsgFaultReasonText> texts =
         reason.getCscmsgFaultReasonText();
       Locale locale = Locale.getDefault();
       for(CscmsgFaultReasonText text : texts) {
         if(locale.equals(text.getLocale())) {
           System.err.println("Reason=" + text.getText());
         }
       }
     }
     System.err.println("Role="
                          + faultInfo.getCscmsgFaultRole());
     System.err.println("Node="
                          + faultInfo.getCscmsgFaultNode());
     System.err.println("faultName="
                          + faultInfo.getFaultName());
     byte[] faultDetail = faultInfo.getCscmsgFaultDetail();
     try {
       if(faultDetail != null) {
         System.err.println("faultDetail="
                          + new String(faultDetail, "UTF-8"));
       }
     } catch (UnsupportedEncodingException e1) {
       e1.printStackTrace();
     }
   } catch (SOAPFaultException e) {
       ：
   }
}

SOAPエンベロープのdetail情報には，Webサービスからの例外（SOAP Fault）の場合には，サービス（SOAP Fault発行元）が返してきたSOAP Faultの情報とHCSC-Messagingが設定したエラーメッセージ，およびエラーコードが含まれます。

HCSC-Messagingで検出した例外（Exception）の場合や，Webサービス以外のサービスからの例外（Exception）の場合には，HCSC-Messagingで検出したエラーのエラーコードとエラー情報が含まれます。

各メソッドについて，次に説明します。

(a)　例外情報保持クラスが持つメソッド

●getErrorMessage（SOAP1.1／SOAP1.2共通）

説明

エラーメッセージを取得します。

次の例外の内容を取得する場合に使用します。

HCSC-Messaging内で検知した例外

サービス部品やビジネスプロセスからのフォルト

形式

public java.lang.String getErrorMessage()

●getErrorCode（SOAP1.1／SOAP1.2共通）

説明

エラーコードを取得します。

次の例外の内容に対するエラーコードを取得する場合に使用します。

HCSC-Messaging内で検知した例外

サービス部品やビジネスプロセスからのフォルト

形式

public java.lang.String getErrorCode()

●getProcessInstanceID（SOAP1.1／SOAP1.2共通）

説明

ビジネスプロセスインスタンスIDを取得します。

形式

public String getProcessInstanceID()

●getCscmsgFaultCode（SOAP1.1用）

説明

SOAP1.1による通信の場合に，サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultCode情報を取得します。

形式

public java.lang.String getCscmsgFaultCode()

●getCscmsgFaultString（SOAP1.1用）

説明

SOAP1.1による通信の場合に，サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultString情報を取得します。

形式

public java.lang.String getCscmsgFaultString()

●getCscmsgFaultActor（SOAP1.1用）

説明

SOAP1.1による通信の場合に，サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultActor情報を取得します。

形式

public java.lang.String getCscmsgFaultActor()

●getCscmsgFaultCode（SOAP1.2用）

説明

SOAP1.2による通信の場合に，サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultCodeまたはCode情報を保持するCscmsgFaultCodeクラスを取得します。

形式

public jp.co.hitachi.soft.csc.msg.message.reception.ejb.CscmsgFaultCode getCscmsgFaultCode()

●getCscmsgFaultReason（SOAP1.2用）

説明

SOAP1.2による通信の場合に，サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのReason情報を保持するCscmsgFaultReasonクラスを取得します。

形式

public jp.co.hitachi.soft.csc.msg.message.reception.ejb.CscmsgFaultReason getCscmsgFaultReason()

●getCscmsgFaultRole（SOAP1.2用）

説明

SOAP1.2による通信の場合に，サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのRole情報を取得します。

形式

public java.lang.String getCscmsgFaultRole()

●getCscmsgFaultNode（SOAP1.2用）

説明

SOAP1.2による通信の場合に，サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのNode情報を取得します。

形式

public java.lang.String getCscmsgFaultNode()

●getCscmsgFaultDetail（SOAP1.1／SOAP1.2共通）

説明

サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのDetail情報を取得します。

サービス部品が設定したDetail情報をバイト配列でサービスリクエスタに引き渡します。したがって，取得したバイト配列を文字列に変換する必要があります。

なお，サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのDetail情報がない場合は，0バイトのバイト配列（SOAPメッセージの空タグ）で応答します。

形式

public byte[] getCscmsgFaultDetail()

●getFaultName（SOAP1.1／SOAP1.2共通）

説明

サービス部品（Webサービス）またはビジネスプロセスからの例外名を取得します。

形式

public String getFaultName()

(b)　CscmsgFaultCodeクラスが持つメソッド

●getValues（SOAP1.2用）

説明

SOAP1.2による通信の場合に，サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultCodeまたはCode情報が持つValue情報を取得します。

形式

public java.util.List<java.lang.String> getValues()

(c)　CscmsgFaultReasonクラスが持つメソッド

●getTexts（SOAP1.2用）

説明

SOAP1.2による通信の場合に，サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのReason情報が持つText情報を取得します。

形式

public java.util.List<java.lang.String> getTexts()

(2)　エラー情報（SOAP Fault）の形式

エラー情報（SOAP Fault）の形式を次の表に示します。

表10-9　エラー情報（SOAP Fault）の形式

要素
名称
内容

SOAP1.1
SOAP1.2

faultcode
Code
Faultコード
JAX-WSエンジンに依存する値です。
違反コードを出力します。

faultstring
－
Fault文字列
JAX-WSエンジンに依存する値です。
エラーメッセージを出力します。

－
Reason
Fault理由
JAX-WSエンジンに依存する値です。
エラーメッセージを出力します。

faultactor
Role
Fault生成者
JAX-WSエンジンに依存する値です。値はありません。

－
Node
Faultノード
JAX-WSエンジンに依存する値です。値はありません。

detail※1
Detail※2
Fault詳細
wsdl:faultに対応する内容です。

（凡例）　－：該当しません。

注※1

要素「detail」はエラー情報の詳細です。表10-10に示す構造体で格納されます。

注※2

要素「Detail」はエラー情報の詳細です。表10-11に示す構造体で格納されます。

表10-10　エラー情報（SOAP Fault）の詳細（SOAP1.1）

フィールド名
説明

サービス部品，ビジネスプロセス，カスタムアダプタ，または連携するHCSCサーバからのエラー（フォルト）
HCSCサーバで検知したエラー（例外）

errorMessage
次に示すエラーの内容です。

HCSCサーバ内で検知したエラー

サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラー

errorCode
次に示す例外の内容に対応するエラーコードです。

HCSCサーバ内で検知したエラー

サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラー

processInstanceID
ビジネスプロセスのインスタンスIDの情報です。
ビジネスプロセスでエラーが発生した場合に値が設定されます。

cscmsgFaultCode
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultCode情報です。
－

cscmsgFaultString
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultString情報です。
－

cscmsgFaultActor
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultActor情報です。
－

cscmsgFaultDetail
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのDetail情報です。
－

faultName
サービス部品（WebサービスまたはSessionBean）またはビジネスプロセスからのフォルト名（例外名）情報です。
次の場合に値が設定されます。

サービス部品（WebサービスまたはSessionBean）からのユーザ定義例外のSOAP Faultの場合

ビジネスプロセスからのフォルトの場合

SOAP Fault動作定義ファイルにtargetNamespaceのURIを定義したWebサービスからのSOAP Faultの場合，値は設定されません。SOAP Fault動作定義ファイルについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「SOAP Fault動作定義ファイル」を参照してください。
－

（凡例）　－：該当しません。

表10-11　エラー情報（SOAP Fault）の詳細（SOAP1.2）

フィールド名
説明

サービス部品，ビジネスプロセス，カスタムアダプタ，または連携するHCSCサーバからのエラー（フォルト）
HCSCサーバで検知したエラー（例外）

errorMessage
次に示すエラーの内容です。

HCSCサーバ内で検知したエラー

サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラー

errorCode
次に示す例外の内容に対応するエラーコードです。

HCSCサーバ内で検知したエラー

サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラー

processInstanceID
ビジネスプロセスのインスタンスIDの情報です。
ビジネスプロセスでエラーが発生した場合に値が設定されます。

cscmsgFaultCode
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultCode情報です。
－

cscmsgFaultReason
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultReason情報です。
－

cscmsgFaultRole
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのRole情報です。
－

cscmsgFaultDetail
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのDetail情報です。
－

faultName
サービス部品（WebサービスまたはSessionBean）またはビジネスプロセスからのフォルト名（例外名）情報です。
次の場合に値が設定されます。

サービス部品（WebサービスまたはSessionBean）からのユーザ定義例外のSOAP Faultの場合

ビジネスプロセスからのフォルトの場合

SOAP Fault動作定義ファイルにtargetNamespaceのURIを定義したWebサービスからのSOAP Faultの場合，値は設定されません。SOAP Fault動作定義ファイルについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「SOAP Fault動作定義ファイル」を参照してください。
－

（凡例）　－：該当しません。

10.3.9　ビジネスプロセスの再実行を要求するサービスリクエスタの作成（Webサービス・JAX-WSエンジン）

標準の同期受付（Webサービス）に要求を出すサービスリクエスタとして，ビジネスプロセスの再実行を要求するサービスリクエスタを作成できます。

サービスリクエスタと標準の同期受付（Webサービス）の間は，document/literalスタイルのSOAPメッセージで送受信されます。

標準の同期受付（Webサービス）にビジネスプロセスの再実行を要求するサービスリクエスタを作成する流れは，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。作成の流れについては，「10.3.1　サービスリクエスタ（標準の同期受付（Webサービス））の作成手順（JAX-WSエンジン）」を参照してください。

各工程で実施する内容を次に示します。

＜この項の構成＞

(1)　WSDLの取得

(2)　サービスクラスの生成

(3)　オブジェクトの生成

(4)　パラメタの設定

(5)　要求電文の作成

(6)　応答電文の取得

(7)　エラー情報の取得

(1)　WSDLの取得

WSDLの取得方法は，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

WSDLの取得方法については，「10.3.2　WSDLを取得する」を参照してください。

(2)　サービスクラスの生成

サービスクラスの生成方法は，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

サービスクラスの生成方法については，「10.3.3　サービスクラスを生成する」を参照してください。

(3)　オブジェクトの生成

オブジェクトの生成方法は，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

オブジェクトの生成については，「10.3.4　オブジェクトを生成する」を参照してください。

なお，ビジネスプロセスの再実行を要求するメソッドは，invokeBPXML()を使用して呼び出します。

(4)　パラメタの設定

メソッドの引数となるパラメタは，SOAP通信基盤でサービスリクエスタを作成する場合と同じです。

SOAP通信基盤のパラメタの設定については，「10.2.5　パラメタを設定する」を参照してください。

(5)　要求電文の作成

要求電文の作成方法は，SOAP通信基盤でサービスリクエスタを作成する場合と同じです。

SOAP通信基盤の要求電文の作成については，「10.2.6　要求電文を作成する」を参照してください。

(6)　応答電文の取得

応答電文の取得方法は，SOAP通信基盤でサービスリクエスタを作成する場合と同じです。

SOAP通信基盤の応答電文の取得については，「10.2.7　応答電文を取得する」を参照してください。

(7)　エラー情報の取得

エラー情報を取得するためのサービスリクエスタの実装は，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

エラー情報の取得については，「10.3.8　エラー情報を取得する」を参照してください。

10.3.10　サービスアダプタの稼働状況確認を要求するサービスリクエスタの作成（Webサービス・JAX-WSエンジン）

標準の同期受付（Webサービス）に要求を出すサービスリクエスタとして，アプリケーションからサービスアダプタの稼働状況確認を要求するサービスリクエスタを作成できます。

サービスアダプタの稼働状況を確認するには，標準の同期受付（Webサービス）に要求を出すサービス部品の呼び出しとは別に，稼働状態確認用のメソッドを呼び出す処理を追加する必要があります。

標準の同期受付（Webサービス）にアプリケーションからサービスアダプタの稼働状況確認を要求するサービスリクエスタの作成手順を次に示します。

図10-14　サービスアダプタの稼働状況確認を要求するサービスリクエスタの作成手順（標準の同期受付（Webサービス・JAX-WSエンジン））

各工程の作業を次に示します。

＜この項の構成＞

(1)　WSDLの取得

(2)　サービスクラスの生成

(3)　オブジェクトの生成

(4)　パラメタの設定

(5)　応答電文の取得

(6)　エラー情報の取得

(1)　WSDLの取得

WSDLの取得方法は，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

WSDLの取得方法については，「10.3.2　WSDLを取得する」を参照してください。

(2)　サービスクラスの生成

サービスクラスの生成方法は，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

サービスクラスの生成方法については，「10.3.3　サービスクラスを生成する」を参照してください。

(3)　オブジェクトの生成

オブジェクトの生成方法は，SOAP通信基盤でサービスリクエスタを作成する場合と同じです。

オブジェクトの生成については，「10.2.10(3)　オブジェクトの生成」を参照してください。

なお，サービスのメソッドを呼び出すには，クラスのオブジェクトを使用して，次のように実行します。

String result = ws.getServiceInfo(          // メソッドの呼び出し
                      serviceName,         // サービス名
                      clientID,            // クライアント相関ID
                      "type=all,returnType=Properties");      // オプション

(4)　パラメタの設定

メソッドの引数となるパラメタは，SOAP通信基盤でサービスリクエスタを作成する場合と同じです。

SOAP通信基盤のパラメタの設定については，「10.2.10(4)　パラメタの設定」を参照してください。

(5)　応答電文の取得

応答電文の取得方法は，SOAP通信基盤でサービスリクエスタを作成する場合と同じです。

SOAP通信基盤の応答電文の取得については，「10.2.10(5)　応答電文の取得」を参照してください。

(6)　エラー情報の取得

エラー情報を取得するためのサービスリクエスタの実装は，標準の同期受付（Webサービス）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

エラー情報の取得については，「10.3.8　エラー情報を取得する」を参照してください。

10.4　標準の同期受付（SessionBean）に要求を出すサービスリクエスタ

標準の同期受付（SessionBean）へ要求電文を送信するサービスリクエスタは，RMI-IIOPを利用して標準受付と通信します。サービスリクエスタから標準受付へサービス部品実行の要求電文が送信され，HCSCサーバがサービス部品の実行を行います。

ユーザは開発環境からスタブを取得し，そのスタブを利用して，同期受付（SessionBean）に要求を出します。したがって，サービスリクエスタは，取得したスタブを利用できるように実装する必要があります。

標準の同期受付（SessionBean）に要求を出すサービスリクエスタとHCSCサーバの関係を次の図に示します。

図10-15　標準の同期受付（SessionBean）に要求を出すサービスリクエスタとHCSCサーバの関係

＜この節の構成＞

10.4.1　サービスリクエスタ（標準の同期受付（SessionBean））の作成手順

10.4.2　スタブを取得する

10.4.3　インスタンスを生成する

10.4.4　パラメタを設定する

10.4.5　要求電文を作成する

10.4.6　応答電文を取得する

10.4.7　エラー情報を取得する

10.4.8　ビジネスプロセスの再実行を要求するサービスリクエスタの作成（SessionBean）

10.4.1　サービスリクエスタ（標準の同期受付（SessionBean））の作成手順

標準の同期受付（SessionBean）にサービス部品の実行を要求し，サービス部品を呼び出すためのサービスリクエスタの作成手順を次に示します。

図10-16　サービスリクエスタの作成手順（標準の同期受付（SessionBean））

各工程の作業を次に示します。

＜この項の構成＞

(1)　スタブの取得

(2)　インスタンスの生成

(3)　パラメタの設定

(4)　要求電文の作成

(5)　応答電文の取得

(6)　エラー情報の取得

(1)　スタブの取得

開発環境のHCSCコンポーネント情報表示画面から，HCSCサーバが配備されているJ2EEサーバ（JNDI名）に対応したスタブを取得します。スタブの取得については，「10.4.2　スタブを取得する」を参照してください。

(2)　インスタンスの生成

同期受付（SessionBean）のメソッドを呼び出すために，(1)で取得したスタブからEnterprise Beanのインスタンスを生成します。インスタンスの生成については，「10.4.3　インスタンスを生成する」を参照してください。

(3)　パラメタの設定

同期受付（SessionBean）のメソッドの引数となるパラメタを設定します。パラメタの設定については，「10.4.4　パラメタを設定する」を参照してください。

(4)　要求電文の作成

サービス部品の実行を要求する要求電文を作成します。要求電文の作成については，「10.4.5　要求電文を作成する」を参照してください。

(5)　応答電文の取得

同期受付（SessionBean）から，サービス部品の実行要求に対する応答電文を取得します。応答電文の取得については，「10.4.6　応答電文を取得する」を参照してください。

(6)　エラー情報の取得

要求先のサービス部品，HCSCサーバ，およびEJBコンテナでエラーが発生した場合，エラー情報を取得し，その情報に従って対処します。エラー情報の取得については，「10.4.7　エラー情報を取得する」を参照してください。

10.4.2　スタブを取得する

HCSCサーバが配備されているJ2EEサーバ（JNDI名）に対応したスタブを取得します。スタブを取得する方法を次に示します。

Eclipseのメニューから，［HCSC-Definer］－［公開サービス一覧］を選択します。
ツリービューの公開サービス一覧に，HCSCコンポーネントの一覧が表示されます。

HCSCコンポーネントの一覧から，呼び出すサービス部品（HCSCコンポーネント）を選択し，ダブルクリックします。
HCSCコンポーネント情報表示画面に，HCSCコンポーネントの情報が表示されます。HCSCコンポーネント情報表示画面の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.7　HCSCコンポーネント情報表示画面」を参照してください。
［サーバ情報］には，サービス部品の要求先となるHCSCサーバの情報が表示されます。

［スタブ取得］ボタンをクリックします。
［スタブファイルの保存］ダイアログが表示されます。
保存先を指定して，スタブを取得します。

取得したスタブの構成を次に示します。

/カレントディレクトリ
└cscmsg_ejb_client.jar

10.4.3　インスタンスを生成する

同期受付（SessionBean）のメソッドを呼び出すために，取得したスタブを使用して，Enterprise Beanのインスタンスを生成します。Enterprise Beanのインスタンスを生成する手順を次に示します。

EJBホームオブジェクトのリファレンスの検索に利用するJNDIネーミングコンテキストを生成します。

（例）

javax.naming.Context ctx = new javax.naming.InitialContext();

生成したJNDIネーミングコンテキストを使用して，EJBホームオブジェクトのリファレンスを取得します。
EJBホームオブジェクトのリファレンスは，ユーザ指定名前空間またはEJBコンテナ名前空間を利用して検索し，取得します。EJBホームオブジェクトのリファレンスの検索・取得の詳細については，マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「3.4.2　Enterprise Beanを呼び出すための実装」を参照してください。

（例）

Object objref
    = initial.lookup("HITACHI_EJB/SERVERS/" + "<J2EEサーバ名称>"
      + "/EJB/CSCMsgSyncServiceDelivery/CSCMsgSyncServiceDeliveryEJB");

CSCMsgSyncServiceDeliveryHome home
    = (CSCMsgSyncServiceDeliveryHome)PortableRemoteObject
       .narrow(objref, CSCMsgSyncServiceDeliveryHome.class);

EJBホームオブジェクトのcreateメソッドによって，Enterprise Beanのインスタンスを生成します。生成したEnterprise Beanのインスタンスを使用して，同期受付（SessionBean）のメソッド（Enterprise beanのメソッド）を呼び出します。

（例）要求電文がXMLの場合

CSCMsgSyncServiceDelivery reception = home.create();
     // Enterprise Beanのインスタンスを生成
String result = reception .invokeXML(    // メソッドの呼び出し
              serviceName,              // サービス名
              clientID,                 // クライアント相関ID
              requestFormatID,          // リクエストフォーマットID
              responseFormatID,         // レスポンスフォーマットID
              operationName,            // オペレーション名
              userData);                // ユーザ電文

（例）要求電文がバイナリの場合

CSCMsgSyncServiceDelivery reception = home.create();
     // Enterprise Beanのインスタンスを生成
byte[] resultBinary = reception .invokeBinary(  // メソッドの呼び出し
              serviceName,                 // サービス名
              clientID,                    // クライアント相関ID
              requestFormatID,             // リクエストフォーマットID
              responseFormatID,            // レスポンスフォーマットID
              operationName,               // オペレーション名
              userDataBinary.length,       // メッセージ長
              userDataBinary);             // ユーザ電文

注意

バイナリ電文の要求電文を送信できるのは，サービス部品側で使用している電文形式がバイナリ形式のときだけです。

10.4.4　パラメタを設定する

同期受付（SessionBean）のメソッドを呼び出すため，メソッドの引数となるパラメタを設定します。パラメタの詳細を次の表に示します。

表10-12　パラメタの詳細（標準の同期受付（SessionBean））

パラメタ名
データ型
パラメタ
説明

invokeXML
invokeBinary

サービス名
java.lang.String
serviceName
要求先のサービス名です。
このパラメタは必ず指定してください。
要求先のサービス名は，開発環境で定義したアダプタまたはビジネスプロセスを指定してください。

クライアント相関ID
java.lang.String
clientID
サービスリクエスタからの要求電文を一意に識別するための相関識別子です。
255文字以内の英数字，アンダーライン（_），ピリオド（.）およびハイフン（-）で指定してください。
サービスリクエスタからの要求電文と，HCSCサーバで管理している実行履歴やログおよびトレースを対応づけるために使用します。したがって，HCSCサーバに送信した要求電文ごとに異なるIDを指定してください。
クライアント相関IDを省略したい場合，NULLを指定してください。

リクエストフォーマットID
java.lang.String
cscRequestFormatID
サービスリクエスタからの要求電文フォーマットを一意に識別するためのIDです。
このパラメタにはNULLを指定してください。

レスポンスフォーマットID
java.lang.String
cscResponseFormatID
HCSCサーバからの応答電文フォーマットを一意に識別するためのIDです。
このパラメタにはNULLを指定してください。

オペレーション名
java.lang.String
serviceOperationName
要求先のサービス名に対するオペレーション名です。※
オペレーション名は，開発環境で定義したサービス部品のオペレーション名を指定します。255バイト以内のXMLSchemaのNCName定義文字で指定してください。
要求先のサービス部品が同期のサービス部品（WebサービスまたはSessionBean）またはビジネスプロセスの場合，必ず指定してください。
要求先のサービス部品が非同期のサービス部品の場合，オペレーション名を省略できます。省略する場合，NULLを指定してください。

ユーザ電文
java.lang.String
msg
×
サービスリクエスタからの要求電文です。※
要求電文がXMLの場合に指定します。要求電文がない場合，NULLまたは空文字（""）を指定してください。要求電文の詳細については，「10.4.5　要求電文を作成する」を参照してください。

ユーザ電文長
int
×
requestMessageLength
要求電文の長さです。
要求電文がバイナリの場合に指定します。要求電文がバイナリの場合は，必ず指定してください。
要求電文がない場合，0を指定してください。

ユーザ電文
byte[]
×
msg
サービスリクエスタからの要求電文です。※
要求電文がバイナリの場合に指定します。要求電文の詳細については，「10.4.5　要求電文を作成する」を参照してください。
要求電文がない場合，NULLまたは0バイトのバイト配列を指定してください。

（凡例）

×：指定できません。

注※

要求先のサービス部品のプロトコルがSOAPの場合，ユーザ電文のルート要素の名称（データ変換を行う場合，データ変換後の電文のルート要素の名称）から呼び出すオペレーションを決定します。そのため，ユーザ電文のルート要素に誤った名称を指定した場合，意図しないオペレーションを呼び出してしまうので注意してください。

10.4.5　要求電文を作成する

サービスリクエスタからHCSCサーバの同期受付（SessionBean）に，サービス部品を要求する要求電文を作成します。サービスリクエスタから送信する要求電文の内容は，サービス部品側と同じ電文フォーマットで作成してください。要求電文の送信を次の図に示します。

図10-17　要求電文の送信（標準の同期受付（SessionBean））

また，サービスリクエスタから同期受付（SessionBean）に送信する要求電文は，電文種別にXML電文とバイナリ電文の2種類があります。どちらの電文種別を使用するかは，サービス部品側で使用しているプロトコルによって異なります。

XML電文およびバイナリ電文の要求電文については，「10.2.6　要求電文を作成する」を参照してください。

正常な要求電文の伝わり方については，マニュアル「Cosminexus サービスプラットフォーム 機能解説」の「2.3　SessionBeanを使ったサービス部品呼び出し」を参照してください。

10.4.6　応答電文を取得する

HCSCサーバの同期受付（SessionBean）から，サービス部品の実行要求に対する応答電文を取得します。サービスリクエスタは，サービス部品側と同じ電文フォーマットの応答電文を取得します。応答電文の取得を次の図に示します。

図10-18　応答電文の取得（標準の同期受付（SessionBean））

また，サービスリクエスタは，電文種別がXML電文の応答電文を取得します。サービス部品からの応答電文がない場合は，NULLを受信します。

XML電文の応答電文およびNULLの受信については，「10.2.7　応答電文を取得する」を参照してください。

10.4.7　エラー情報を取得する

要求先のサービス部品，HCSCサーバ，およびEJBコンテナでエラーが発生した場合，エラー情報を取得し，その情報に従って対処します。

エラー情報は，サービスリクエスタ側でCSCMsgServerExceptionクラスを取得することによって取得できます。CSCMsgServerExceptionクラスについては「10.4.7(2) CSCMsgServerExceptionクラス」を参照してください。エラーの伝わり方については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「7.7.2　SessionBean実行時の障害対策」を参照してください。

エラーの詳細については，getErrorMessageメソッドおよびgetErrorCodeメソッドを使用して取得します。また，Webサービスからのエラー情報（SOAP Fault）を取得する場合は，checkSoapFaultメソッドを使用します。

＜この項の構成＞

(1)　サービスリクエスタ側の実装例

(2)　CSCMsgServerExceptionクラス

(1)　サービスリクエスタ側の実装例

CSCMsgServerExceptionクラスを取得する場合のサービスリクエスタ側の実装例を次に示します。

         ：
} catch (CSCMsgServerException e) {
   System.err.println("Exception ErrorMessage = "
               + e.getErrorMessage() );
   System.err.println("Exception ErrorCode = "
               + e.getErrorCode() );
   if (e.checkFaultMessage() == true) {
       System.err.println("Exception ProcessInstanceID = "
               + e.getProcessInstanceID() );
       System.err.println("Exception FaultCode = "
               + e.getFaultCode() );
       System.err.println("Exception FaultString = "
               + e.getFaultString() );
       System.err.println("Exception FaultActor = "
               + e.getFaultActor() );
       System.err.println("Exception FaultDetails = "
               + new String(e.getFaultDetail(), "UTF-8"));
   System.err.println("Exception FaultName = "
               + e.getFaultName() );
   }
}
         ：

(2)　CSCMsgServerExceptionクラス

サービスリクエスタが取得する例外クラスです。

(a)　クラス定義

パッケージ

jp.co.Hitachi.soft.csc.msg.message.reception

クラス

public class CSCMsgServerException
extends java.lang.Exception

(b)　フィールドの一覧

フィールド名
データ型
説明

errorMessage
java.lang.String
次に示す例外の内容です。

HCSC-Messaging内で検知した例外

サービス部品またはビジネスプロセスからのフォルト

errorCode
java.lang.String
次に示す例外の内容に対応するエラーコードです。

HCSC-Messaging内で検知した例外

サービス部品またはビジネスプロセスからのフォルト

processInstanceID
java.lang.String
ビジネスプロセスのインスタンスIDの情報です。
ビジネスプロセスでエラーが発生した場合に値が設定されます。

cscmsgFaultCode
java.lang.String
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultCode情報です。

cscmsgFaultString
java.lang.String
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultString情報です。

cscmsgFaultActor
java.lang.String
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultActor情報です。

cscmsgFaultDetail
byte[]
サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのDetail情報です。

faultName
java.lang.String
サービス部品（WebサービスまたはSessionBean），またはビジネスプロセスからのフォルト名（例外名）情報です。
次の場合に値が設定されます。

サービス部品(WebサービスまたはSessionBean)からのユーザ定義例外のSOAP Faultの場合

ビジネスプロセスからのフォルトの場合

SOAP Fault動作定義ファイルにtargetNamespaceのURIを定義したWebサービスからのSOAP Faultの場合，値は設定されません。SOAP Fault動作定義ファイルについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「SOAP Fault動作定義ファイル」を参照してください。

(c)　メソッドの一覧

メソッド名 | データ型 | 説明
getErrorMessage | java.lang.String | エラーメッセージを取得します。
getErrorCode | java.lang.String | エラーコードを取得します。
checkFaultMessage | boolean | サービス部品，ビジネスプロセス，またはカスタムアダプタからのフォルト情報があるかどうかをチェックします。
getFaultCode | java.lang.String | FaultCode情報を取得します。
getFaultString | java.lang.String | FaultString情報を取得します。
getFaultActor | java.lang.String | FaultActor情報を取得します。
getFaultDetail | byte[] | Detail情報を取得します。
getProcessInstanceID | java.lang.String | ビジネスプロセスのインスタンスIDを取得します。
getFaultName | java.lang.String | フォルト名（例外名）を取得します。

(d)　メソッドの詳細

●getErrorMessage

説明

エラーメッセージを取得します。

次の例外の内容を取得する場合に使用します。

HCSC-Messaging内で検知した例外

サービス部品またはビジネスプロセスからのフォルト

形式

public java.lang.String getErrorMessage()

パラメタ

なし

戻り値

エラーメッセージ

例外

なし

●getErrorCode

説明

エラーコードを取得します。

次の例外の内容に対するエラーコードを取得する場合に使用します。

HCSC-Messaging内で検知した例外

サービス部品またはビジネスプロセスからのフォルト

形式

public java.lang.String getErrorCode()

パラメタ

なし

戻り値

エラーコード

例外

なし

●checkFaultMessage

説明

サービス部品，ビジネスプロセス，またはカスタムアダプタからのフォルト情報があるかどうかをチェックします。

サービス部品またはビジネスプロセスがWebサービスの場合，SOAP Faultとして返されたエラーの内容が含まれているかどうかチェックします。

また，カスタムアダプタからの個別のエラーが含まれているかどうかをチェックします。

形式

public boolean checkFaultMessage()

パラメタ

なし

戻り値

true：Faultメッセージ情報が存在します。

false：Faultメッセージ情報が存在しません。

例外

なし

●getFaultCode

説明

サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultCode情報を取得します。

形式

public java.lang.String getFaultCode()

パラメタ

なし

戻り値

faultcode

例外

なし

●getFaultString

説明

サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultString情報を取得します。

形式

public java.lang.String getFaultString()

パラメタ

なし

戻り値

faultstring

例外

なし

●getFaultActor

説明

サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultActor情報を取得します。

形式

public java.lang.String getFaultActor()

パラメタ

なし

戻り値

faultactor

例外

なし

●getFaultDetail

説明

サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのDetail情報を取得します。

サービス部品が設定したDetail情報をバイト配列でサービスリクエスタに引き渡します。したがって，取得したバイト配列を文字列に変換する必要があります。

形式

public byte[] getFaultDetail()

パラメタ

なし

戻り値

detail

例外

なし

●getProcessInstanceID

説明

ビジネスプロセスのインスタンスIDを取得します。

形式

public String getProcessInstanceID()

パラメタ

なし

戻り値

String

例外

なし

●getFaultName

説明

フォルト名（例外名）を取得します。

形式

public String getFaultName()

パラメタ

なし

戻り値

String

例外

なし

(e)　サブクラスの一覧

クラス名
サブクラス名と説明

CSCMsgServerException

CSCMsgServiceException

サービス部品例外

CSCMsgServiceUserException

サービス部品からのフォルト情報またはException

CSCMsgBusinessProcessUserException

ビジネスプロセスからのフォルト情報またはException

CSCMsgServiceExecuteException

サービス部品（Webサービス）からユーザ定義例外以外の例外が返ってきた場合の例外

CSCMsgServiceDeliveryException

サービス部品要求振り分けエラー

CSCMsgLocationSearchException

ロケーション検索失敗

CSCMsgRoutingExecException

ルーティング失敗

CSCMsgDelivererExecException

メッセージ配送失敗

CSCMsgDBQServiceDeliveryException

非同期DBキューの標準受付からDBキューのサービス部品を呼んだ場合の例外

CSCMsgServerParameterException

入力パラメタエラー

－

CSCMsgServerInternalException

上記以外のエラー

－

（凡例）　－：サブクラスはありません。

10.4.8　ビジネスプロセスの再実行を要求するサービスリクエスタの作成（SessionBean）

標準の同期受付（SessionBean）に要求を出すサービスリクエスタとして，ビジネスプロセスの再実行を要求するサービスリクエスタを作成できます。

標準の同期受付（SessionBean）にビジネスプロセスの再実行を要求するサービスリクエスタの作成手順は，標準の同期受付（SessionBean）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。作成手順については，「10.4.1　サービスリクエスタ（標準の同期受付（SessionBean））の作成手順」を参照してください。

手順ごとに実施する内容を次に示します。

＜この項の構成＞

(1)　スタブの取得

(2)　インスタンスの生成

(3)　パラメタの設定

(4)　要求電文の作成

(5)　応答電文の取得

(6)　エラー情報の取得

(1)　スタブの取得

スタブの取得方法は，標準の同期受付（SessionBean）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

スタブの取得については，「10.4.2　スタブを取得する」を参照してください。

(2)　インスタンスの生成

インスタンスの生成方法は，標準の同期受付（SessionBean）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

インスタンスの生成については，「10.4.3　インスタンスを生成する」を参照してください。

なお，ビジネスプロセスの再実行を要求するメソッドは，invokeBPXML()を使用して呼び出します。

ビジネスプロセスの再実行を要求するメソッドの例を次に示します。

（例）ビジネスプロセスの再実行を要求する場合

String result = ws.invokeBPXML(             // メソッドの呼び出し
                      serviceName,         // サービス名
                      bpRequestType,       // ビジネスプロセス用要求タイプ
                      bpProcessId,         // ビジネスプロセス用プロセスID
                      clientID,            // クライアント相関ID
                      requestFormatID,     // リクエストフォーマットID
                      responseFormatID,    // レスポンスフォーマットID
                      operationName,       // オペレーション名
                      userData);           // ユーザ電文

(3)　パラメタの設定

メソッドの引数となるパラメタは，標準の同期受付（SessionBean）に要求を出す，通常のサービスリクエスタを作成する場合と異なります。同期受付（SessionBean）にビジネスプロセスの再実行を要求するサービスリクエスタの場合に設定するパラメタの詳細を次に示します。

表10-13　パラメタの詳細（標準の同期受付（SessionBean）／ビジネスプロセス再実行要求）

パラメタ名
データ型
パラメタ（invokeBPXML）
説明

サービス名
java.lang.String
serviceName
要求先のサービス名です。
このパラメタは必ず指定してください。
要求先のサービス名は，開発環境で定義したビジネスプロセスを指定してください。

ビジネスプロセス用要求タイプ
java.lang.String
cscBpRequestType
要求電文の種類を示します。
ビジネスプロセスの再実行を要求する場合，文字列「RECOVER」を指定してください。※

ビジネスプロセス用プロセスID
java.lang.String
cscBpProcessID
ビジネスプロセスインスタンスIDです。
エラー情報から取得した値，または，メッセージログに出力された値を指定してください。

クライアント相関ID
java.lang.String
clientID
サービスリクエスタからの要求電文を一意に識別するための相関識別子です。
このパラメタにはNULLを指定してください。※

リクエストフォーマットID
java.lang.String
cscRequestFormatID
サービスリクエスタからの要求電文フォーマットを一意に識別するためのIDです。
このパラメタにはNULLまたは空文字（""）を指定してください。※

レスポンスフォーマットID
java.lang.String
cscResponseFormatID
HCSCサーバからの応答電文フォーマットを一意に識別するためのIDです。
このパラメタにはNULLまたは空文字（""）を指定してください。※

オペレーション名
java.lang.String
serviceOperationName
要求先のサービス名に対するオペレーション名です。
このパラメタにはNULLまたは空文字（""）を指定してください。※

ユーザ電文
java.lang.String
msg
サービスリクエスタからの要求電文です。
このパラメタにはNULLまたは空文字（""）を指定してください。※

注※

これらのパラメタは，指定する値として固定値（「RECOVER」，NULLまたは空文字（""））が決められています。決められた値以外の値を指定すると，正常に動作しません。

(4)　要求電文の作成

要求電文の作成方法は，標準の同期受付（SessionBean）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

要求電文の作成については，「10.4.5　要求電文を作成する」を参照してください。

(5)　応答電文の取得

応答電文の作成方法は，標準の同期受付（SessionBean）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

応答電文の取得については，「10.4.6　応答電文を取得する」を参照してください。

(6)　エラー情報の取得

エラー情報を取得するためのサービスリクエスタの実装は，標準の同期受付（SessionBean）に要求を出す，通常のサービスリクエスタを作成する場合と同じです。

エラー情報の取得については，「10.4.7　エラー情報を取得する」を参照してください。

10.5　標準の非同期受付（MDB（WS-R））に要求を出すサービスリクエスタ

標準の非同期受付（MDB（WS-R））へ要求電文を送信するサービスリクエスタは，転送キューおよび受信キューを通して標準受付と通信を行います。

サービスリクエスタから転送キューに送信された要求電文は，受信キューを通して非同期受付（MDB（WS-R））に送信されます。

標準の非同期受付（MDB（WS-R））に要求を出すサービスリクエスタとHCSCサーバの関係を次の図に示します。

図10-19　標準の非同期受付（MDB（WS-R））に要求を出すサービスリクエスタとHCSCサーバの関係

＜この節の構成＞

10.5.1　サービスリクエスタ（標準の非同期受付（MDB（WS-R）））の作成手順

10.5.2　転送キューを作成する

10.5.3　JMSメッセージを生成する

10.5.4　パラメタを設定する

10.5.5　要求電文を作成する

10.5.6　JMSメッセージを送信する

10.5.7　応答用のキューを設定する

10.5.8　応答を取り出す

10.5.9　応答電文を取得する

10.5.1　サービスリクエスタ（標準の非同期受付（MDB（WS-R）））の作成手順

標準の非同期受付（MDB（WS-R））にサービス部品の実行を要求し，サービス部品を呼び出すためのサービスリクエスタの作成手順を次に示します。

図10-20　サービスリクエスタの作成手順（標準の非同期受付（MDB（WS-R）））

各工程の作業を次に示します。

＜この項の構成＞

(1)　転送キューの作成

(2)　JMSメッセージの生成

(3)　パラメタの設定

(4)　要求電文の作成

(5)　JMSメッセージの送信

(6)　応答用のキューの設定

(7)　応答の取り出し

(8)　応答電文の取得

(1)　転送キューの作成

サービスリクエスタから要求電文を送信するために必要な転送キューを作成します。転送キューの作成については，「10.5.2　転送キューを作成する」を参照してください。

(2)　JMSメッセージの生成

非同期受付（MDB（WS-R））にサービス部品の実行を要求するために，QueueSenderのオブジェクトおよびJMSメッセージを生成します。QueueSenderのオブジェクトおよびJMSメッセージの生成については，「10.5.3　JMSメッセージを生成する」を参照してください。

(3)　パラメタの設定

「10.5.1(2) JMSメッセージの生成」で生成したJMSメッセージにパラメタを設定します。パラメタの設定については，「10.5.4　パラメタを設定する」を参照してください。

(4)　要求電文の作成

サービス部品の実行を要求する要求電文を作成します。要求電文の作成については，「10.5.5　要求電文を作成する」を参照してください。

(5)　JMSメッセージの送信

JMSメッセージを転送キューに送信します。JMSメッセージの送信については，「10.5.6　JMSメッセージを送信する」を参照してください。

(6)　応答用のキューの設定

同期のサービス部品から応答を受け取るために，応答用のキュー（転送キュー）を設定します。応答用のキューの設定については，「10.5.7　応答用のキューを設定する」を参照してください。

(7)　応答の取り出し

応答用のキュー（転送キュー）から受信キューに送信された応答を取り出します。応答の取り出しについては，「10.5.8　応答を取り出す」を参照してください。

(8)　応答電文の取得

取り出した応答から応答電文を取得します。応答電文の取得については，「10.5.9　応答電文を取得する」を参照してください。

10.5.2　転送キューを作成する

サービスリクエスタから要求電文を送信するために必要な転送キューを作成します。転送キューは，サービスリクエスタからの要求電文を，HCSCサーバが提供する受信キューに送信します。

転送キューの作成には，Cosminexus RMのhrmmkaddrコマンドおよびhrmmkqueコマンドを使用します。

ここでは，hrmmkaddrコマンドおよびhrmmkqueコマンドのオプションの指定値について説明します。ここで説明していないhrmmkaddrコマンドのオプションについては，マニュアル「Cosminexus Reliable Messaging」の「8.3.16　hrmmkaddr（あて先登録）」を参照してください。また，hrmmkqueコマンドのオプションについては，マニュアル「Cosminexus Reliable Messaging」の「8.3.17　hrmmkque（ローカルキューの作成）」を参照してください。

＜この項の構成＞

(1)　hrmmkaddrコマンドのオプションの指定値

(2)　hrmmkqueコマンドのオプションの指定値

(1)　hrmmkaddrコマンドのオプションの指定値

hrmmkaddrコマンドのオプションの指定値を次に示します。

-u 宛先アドレス

HCSCサーバの宛先アドレス（転送先システムのキュー間転送用WebアプリケーションのURL）を指定します。

http://<ホスト名>:<ポート番号>※1/<コンテキストルート>※2/services/HRMReceiver/
https://<ホスト名>:<ポート番号>※1/<コンテキストルート>※2/services/HRMReceiver/

注※1

HCSCサーバのURLです。

注※2

受信側Cosminexus RMのキュー間転送用Webアプリケーションのコンテキストルートです。デフォルトは「uCosminexusRM」です。

(2)　hrmmkqueコマンドのオプションの指定値

-t キューの種類

transmit（転送キュー）を指定します。

-m キューの永続性

persistent（永続キュー属性）を指定します。

-v 転送先キュー名

次のどちらかを指定します。

CSC<HCSCサーバ名>ACPT_RCVQ

HCSCサーバがロードバランスクラスタ構成の場合に指定します。

CSC<HCSCクラスタ名>ACPT_RCVQ

HCSCサーバがHAクラスタ構成の場合に指定します。

HCSCクラスタ名は，開発環境および運用環境でHCSCサーバ構成配備時に決定されるHCSCサーバのクラスタ名です。

-i キューの転送モード

Compatible（互換モード）を指定します。

10.5.3　JMSメッセージを生成する

標準の非同期受付（MDB（WS-R））にサービス部品の実行を要求するためには，QueueSenderのオブジェクトおよびJMSメッセージを生成し，生成したJMSメッセージを転送キューに送信します。JMSメッセージを送信するアプリケーションの開発については，マニュアル「Cosminexus Reliable Messaging」を参照してください。

JMSメッセージを生成する手順を次に示します。

QueueConnectionFactoryとQueueの開始処理（lookup）を定義します。

（例）

Context ic = new InitialContext();
        ：
QueueConnectionFactory qcFactory
     = (QueueConnectionFactory) ic.lookup("java:comp/env/jms/qcf");
        ：
Queue queue = (Queue) ic.lookup("java:comp/env/jms/queue");
        ：

QueueSessionを生成します。

（例）

QueueSession qSession
   = qConnection.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);

QueueSessionからQueueSenderを作成します。

（例）

qSender = qSession.createSender(queue);

QueueSessionからJMSメッセージを生成します。

（例）要求電文がXMLの場合

TextMessage textMessage = qSession.createTextMessage();

（例）要求電文がバイナリの場合

BytesMessage bytesMessage = qSession.createBytesMessage();

10.5.4　パラメタを設定する

非同期受付（MDB（WS-R））のメソッドを呼び出すため，JMSメッセージにパラメタを設定します。

＜この項の構成＞

(1)　プロパティの設定

(2)　引き継がれるヘッダおよびプロパティ

(3)　ペイロードの設定

(4)　パラメタの詳細

(1)　プロパティの設定

JMSメッセージのプロパティを設定します。設定するプロパティの詳細については，「10.5.4(4) パラメタの詳細」を参照してください。

（例）要求電文がXMLの場合

textMessage = qSession.createTextMessage();
textMessage.setStringProperty("CSCServiceName", serviceName);
    // サービス部品名
textMessage.setStringProperty("CSCCorrelationID", clientID);
    // クライアント相関ID
textMessage.setStringProperty("CSCRequestFormatID", requestFormatID);
    // リクエストフォーマットID
textMessage.setStringProperty("CSCResponseFormatID", responseFormatID);
    // レスポンスフォーマットID
textMessage.setStringProperty("CSCServiceOperationName", operationName);
    // オペレーション名
textMessage.setStringProperty("CSCReplyToQueueName", replyToQueueName);
    // 応答用のキュー名
textMessage.setStringProperty("CSCMessageType", "XML");
    // 電文種別

注意

バイナリ電文の要求電文を送信できるのは，サービス部品側で使用している電文形式がバイナリ形式のときだけです。DBキューのサービス部品に送信する要求電文はバイナリ変換します。バイナリ変換する場合は，サービスリクエスタ側とサービス部品側で同じエンコードの方式を使用してください。

(2)　引き継がれるヘッダおよびプロパティ

次のヘッダおよびプロパティは，要求時の内容がサービス部品側のキューまで引き継がれます。したがって，必要に応じて次のヘッダおよびプロパティを設定してください。

JMSReplyTo

JMSCorrelationID※1

JMSType

JMSXGroupID

JMSXGroupSeq

ユーザ固有のプロパティ※2

注※1

指定できる範囲は，255バイトまでです。

注※2

ただし，次のプロパティはサービス部品側のキューまで引き継がれません。

JMSXで始まるJMS定義によるプロパティ名

JMS_で始まるプロバイダ指定のプロパティ名

CSCで始まるプロパティ名

HCSCで始まるプロパティ名

(3)　ペイロードの設定

JMSメッセージのペイロードに要求電文（ユーザ電文）を設定します。ペイロードの詳細については，「10.5.4(4) パラメタの詳細」を参照してください。

（例）要求電文がXMLの場合

textMessage.setText( userData );

(4)　パラメタの詳細

パラメタの詳細を次の表に示します。

表10-14　パラメタの詳細（標準の非同期受付（MDB（WS-R）））

パラメタ名
データ型
パラメタ
プロパティ/ペイロード
説明

TextMessage
BytesMessage

サービス名
String
StringProperty
（"CSCServiceName"）
プロパティ
要求先のサービス名です。
このパラメタは必ず指定してください。
要求先のサービス名は，開発環境で定義したアダプタまたはビジネスプロセスを指定してください。

クライアント相関ID
String
StringProperty
（"CSCCorrelationID"）
プロパティ
サービスリクエスタからの要求電文を一意に識別するための相関識別子です。
255文字以内の英数字，アンダーライン（_），ピリオド（.）およびハイフン（-）で指定してください。
サービスリクエスタからの要求電文と，HCSCサーバで管理している実行履歴やログおよびトレースを対応づけるために使用します。したがって，HCSCサーバに送信した要求電文ごとに異なるIDを指定してください。
なお，このパラメタを指定しないことで，クライアント相関IDを省略できます。

リクエストフォーマットID
String
StringProperty
（"CSCRequestFormatID"）
プロパティ
サービスリクエスタからの要求電文フォーマットを一意に識別するためのIDです。
1,024文字以内の英数字，アンダーライン（_），ピリオド（.）およびハイフン（-）で指定してください。
このパラメタにはNULLを指定してください。なお，このパラメタを指定しないことで，NULLが設定されます。

レスポンスフォーマットID
String
StringProperty
（"CSCResponseFormatID"）
プロパティ
HCSCサーバからの応答電文フォーマットを一意に識別するためのIDです。
1,024文字以内の英数字，アンダーライン（_），ピリオド（.）およびハイフン（-）で指定してください。
このパラメタにはNULLを指定してください。なお，このパラメタを指定しないことで，NULLが設定されます。

オペレーション名
String
StringProperty
（"CSCServiceOperationName"）
プロパティ
要求先のサービス名に対するオペレーション名です。※
オペレーション名は，開発環境で定義したサービス部品のオペレーション名を指定します。255バイト以内のXMLSchemaのNCName定義文字で指定してください。
要求先のサービス部品が同期のサービス部品（WebサービスまたはSessionBean）またはビジネスプロセスの場合，必ず指定してください。
要求先のサービス部品が非同期のサービス部品の場合，オペレーション名を省略できます。このパラメタを指定しないことで，オペレーション名を省略できます。

応答用のキュー名
String
StringProperty
（"CSCReplyToQueueName"）
プロパティ
要求先のサービス部品が同期（WebサービスまたはSessionBean）またはビジネスプロセスの場合に，サービス部品またはビジネスプロセスからの応答を受け取るキュー名です。
要求先のサービス部品が同期か非同期かわからない場合にこの指定をすると，応答を受け取ることができます。
応答用のキューの詳細については，「10.5.7　応答用のキューを設定する」を参照してください。
なお，このパラメタを指定しないことで，応答用のキュー名を省略できます。省略した場合，NULLが設定され，応答を受け取ることができません。

電文種別
String
StringProperty
（"CSCMessageType"）
プロパティ
次に示す要求電文の種別を指定してください。

XML電文（ペイロードがTextMessage）の場合：XML

バイナリ電文（ペイロードがBytesMessage）の場合：Binary

要求電文がある場合，このパラメタは必ず指定してください。
要求電文がない場合，このパラメタを指定しないことで，電文種別を省略することができます。

ユーザ電文
－
TextMessage
×
ペイロード
サービスリクエスタからの要求電文です。※
要求電文がXMLの場合に指定します。要求電文がない場合，指定する必要はありません。要求電文の詳細については，「10.5.5　要求電文を作成する」を参照してください。

ユーザ電文長
long
×
LongProperty
（"CSCMessageLength"）
プロパティ
要求電文の長さです。
要求電文がバイナリの場合に指定します。

ユーザ電文
－
×
BytesMessage
ペイロード
サービスリクエスタからの要求電文です。※
要求電文がバイナリの場合に指定します。要求電文がない場合，指定する必要はありません。要求電文の詳細については，「10.5.5　要求電文を作成する」を参照してください。

（凡例）

－：該当しません。

×：指定できません。

注※

要求先のサービス部品のプロトコルがSOAPの場合，ユーザ電文のルート要素の名称（データ変換を行う場合，データ変換後の電文のルート要素の名称）から呼び出すオペレーションを決定します。そのため，ユーザ電文のルート要素に誤った名称を指定した場合，意図しないオペレーションを呼び出してしまうので注意してください。

10.5.5　要求電文を作成する

サービスリクエスタからHCSCサーバの非同期受付（MDB（WS-R））に，サービス部品を要求する要求電文を作成します。サービスリクエスタから送信する要求電文の内容は，サービス部品側と同じ電文フォーマットで作成してください。要求電文の送信を次の図に示します。

図10-21　要求電文の送信（標準の非同期受付（MDB（WS-R）））

また，サービスリクエスタから非同期受付（MDB（WS-R））に送信する要求電文は，電文種別にXML電文とバイナリ電文の2種類があります。どちらの電文種別を使用するかは，サービス部品側で使用しているプロトコルによって異なります。

XML電文およびバイナリ電文の要求電文については，「10.2.6　要求電文を作成する」を参照してください。

正常な要求電文の伝わり方については，マニュアル「Cosminexus サービスプラットフォーム 機能解説」の「2.4　MDB（WS-R）を使ったサービス部品呼び出し」を参照してください。

10.5.6　JMSメッセージを送信する

パラメタを設定したJMSメッセージを転送キューに送信します。

JMSメッセージを送信する手順を次に示します。

ローカルトランザクションの開始およびJMSメッセージの登録を行います。

（例）

qSender.send(message);

終了処理を定義します。

（例）

qSession.commit();       // ローカルトランザクションのコミット
qSender.close();         // QueueSenderの解放
qSession.close();        // QueueSessionの解放
qConnection.close();     // QueueConnectionの解放

10.5.7　応答用のキューを設定する

標準の非同期受付（MDB（WS-R））は，非同期の要求電文の標準受付であり，基本的にはサービス部品からの応答がない場合に使用します。しかし，非同期受付（MDB（WS-R））から同期のサービス部品（WebサービスまたはSessionBean）を要求した場合，同期のサービス部品から応答が返るときがあります。このような場合，要求時に応答用のキュー（転送キュー）を指定することで，サービスリクエスタは同期のサービス部品から応答を受け取ることができます。要求時の応答用のキューの指定については，「10.5.4　パラメタを設定する」を参照してください。

標準の非同期受付（MDB（WS-R））は，同期サービス部品からの応答であるXML電文（ペイロードがTextMessage）を転送キューに送信します。転送キューで受け取った応答は，受信キューに送信します。受信キューに送信した応答を取り出すことで，サービス部品からの応答電文を取得できます。応答の取り出しについては，「10.5.8　応答を取り出す」を参照してください。

標準の非同期受付（MDB（WS-R）），転送キュー，および受信キューの関係を次に示します。

図10-22　標準の非同期受付（MDB（WS-R）），転送キュー，および受信キューの関係

転送キュー（応答用のキュー）

応答用のキューとなる転送キューを，HCSCサーバが稼働しているJ2EEサーバ（Cosminexus RM）内に作成します。

転送キューの転送先（宛先アドレス）には，受信キューを指定します。転送先以外の転送キューの設定は，ユーザの運用に合わせ，必要に応じて行ってください。

転送キューの作成方法については，「10.5.2　転送キューを作成する」，およびマニュアル「Cosminexus Reliable Messaging」の「8.3.20　hrmmkque（転送キューの作成）」を参照してください。

受信キュー（ローカルキュー）

サービスリクエスタが稼働しているJ2EEサーバ（Cosminexus RM）内に，受信キュー（ローカルキュー）を作成します。

受信キューの設定は，ユーザの運用に合わせ，必要に応じて行ってください。

受信キューの作成方法については，マニュアル「Cosminexus Reliable Messaging」の「8.3.17　hrmmkque（ローカルキューの作成）」を参照してください。

10.5.8　応答を取り出す

受信キューから応答を取り出すには，MDBで実装する方法とSessionBeanで実装する方法があります。正常な応答電文の伝わり方については，マニュアル「Cosminexus サービスプラットフォーム 機能解説」の「2.4.3　同期のサービス部品を呼び出す場合の応答電文の扱い」を参照してください。

＜この項の構成＞

(1)　応答の内容

(2)　引き継がれるヘッダおよびプロパティ

(1)　応答の内容

サービス部品からは次の内容が応答として送信されます。

電文種別（StringPropertyプロパティ（"CSCMessageType"））
応答電文の電文種別はXML電文のため，StringPropertyプロパティには「XML」が設定されています。

サービス部品からの応答電文（ペイロード（TextMessage））
XML電文（TextMessage）の応答電文が設定されています。
同期のサービス部品を実行したがその応答電文がない場合は，ペイロードなしのTextMessageが送信されます。

(2)　引き継がれるヘッダおよびプロパティ

次のヘッダおよびプロパティは，サービスリクエスタからサービス部品を要求したときに設定した内容が，応答用のキューを通し，受信キューまで引き継がれます。

(a)　HCSCサーバ関連のプロパティ

StringProperty（"CSCServiceName"）
サービスリクエスタが指定した，要求先のサービス名です。

StringProperty（"CSCCorrelationID"）
サービスリクエスタが指定した，サービスリクエスタからの要求電文を一意に識別するための相関識別子です。

StringProperty（"CSCResponseFormatID"）
NULLが設定されています。

StringProperty（"CSCServiceOperationName"）
サービスリクエスタが指定した，要求先のサービス名に対するオペレーション名です。

(b)　Cosminexus RM関連のヘッダ，およびプロパティ

JMSReplyTo

JMSCorrelationID

JMSType

JMSXGroupID

JMSXGroupSeq

ユーザ固有のプロパティ名称

10.5.9　応答電文を取得する

取り出した応答から応答電文を取得します。取得する応答電文は，次のどちらかになります。

サービス部品からの応答電文

サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラー情報（フォルト情報）

＜この項の構成＞

(1)　サービス部品からの応答電文

(2)　サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラー情報（フォルト情報）

(1)　サービス部品からの応答電文

取得する応答電文は，サービス部品側と同じ電文フォーマットのXML電文になります。XML電文の応答電文については，「10.2.7　応答電文を取得する」を参照してください。

同期のサービス部品（WebサービスまたはSessionBean）からの応答電文がない場合は，ペイロードなしのTextMessageを受信します。

非同期のサービス部品の場合は，応答がありません。

(2)　サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラー情報（フォルト情報）

取得する電文（エラー情報）は，非同期受付（MDB（WS-R））が応答用のキューに送信したXML電文になります。

SOAP1.2の場合とSOAP1.2以外の場合とに分けて，エラー情報の出力形式およびスキーマを示します。

(a)　SOAP1.2以外の場合

SOAP1.2以外を利用している場合の取得するXML電文（エラー情報）の形式を次に示します。

表10-15　取得するXML電文（エラー情報）の形式（SOAP1.2以外の場合）

タグ | 説明
errorcode | サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラーであることを示すエラーコードです。
errorstring | サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラーであることを示すエラーメッセージです。
processinstanceid | ビジネスプロセスのインスタンスIDの情報です。
cscmsgcode | サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultCode情報です。
cscmsgstring | サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultString情報です。
cscmsgactor | サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのFaultActor情報です。
cscmsgdetail | サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのDetail情報です。

SOAP1.2以外を利用している場合の取得するXML電文（エラー情報）のスキーマを次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <xsd:element name="cscmsgerror">
   <xsd:complexType>
     <xsd:sequence>
       <xsd:element name="errorcode" type="xsd:string"/>
       <xsd:element name="errorstring" type="xsd:string"/>
       <xsd:element name="processinstanceid" type="xsd:string"/>
       <xsd:element ref="errordetail"/>
     </xsd:sequence>
   </xsd:complexType>
 </xsd:element>

 <xsd:element name="errordetail">
   <xsd:complexType>
     <xsd:sequence>
       <xsd:element name="cscmsgcode" type="xsd:string"/>
       <xsd:element name="cscmsgstring" type="xsd:string"/>
       <xsd:element name="cscmsgactor" type="xsd:string"/>
       <xsd:element name="cscmsgdetail" type="xsd:string"/>
     </xsd:sequence>
   </xsd:complexType>
 </xsd:element>
</xsd:schema>

(b)　SOAP1.2の場合

SOAP1.2を利用している場合の取得するXML電文（エラー情報）の形式を次に示します。

表10-16　取得するXML電文（エラー情報）の形式（SOAP1.2の場合）

タグ | 説明
errorcode | サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラーであることを示すエラーコードです。
errorstring | サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラーであることを示すエラーメッセージです。
processinstanceid | ビジネスプロセスのインスタンスIDの情報です。
cscmsgcode | サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのCode情報です。
cscmsgvalue | サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのCodeが持つValue情報です。
cscmsgreason | サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのReason情報です。
cscmsgtext | サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのReasonが持つText情報です。
cscmsgrole | サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのRole情報です。
cscmsgnode | サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのNode情報です。
cscmsgdetail | サービス部品（Webサービス），ビジネスプロセス，またはカスタムアダプタからのDetail情報です。

SOAP1.2を利用している場合の取得するXML電文（エラー情報）のスキーマを次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <xsd:element name="cscmsgerror">
   <xsd:complexType>
     <xsd:sequence>
       <xsd:element name="errorcode" type="xsd:string"/>
       <xsd:element name="errorstring" type="xsd:string"/>
       <xsd:element name="processinstanceid" type="xsd:string"/>
       <xsd:element ref="errordetail"/>
     </xsd:sequence>
   </xsd:complexType>
 </xsd:element>

 <xsd:element name="errordetail">
   <xsd:complexType>
     <xsd:sequence>
       <xsd:element ref="cscmsgcode"/>
       <xsd:element ref="cscmsgreason"/>
       <xsd:element name="cscmsgrole" type="xsd:string"/>
       <xsd:element name="cscmsgnode" type="xsd:string"/>
       <xsd:element name="cscmsgdetail" type="xsd:string"/>
     </xsd:sequence>
   </xsd:complexType>
 </xsd:element>

 <xsd:element name="cscmsgcode" nillable="true">
   <xsd:complexType>
     <xsd:sequence>
       <xsd:element name="cscmsgvalue" type="xsd:string" maxOccurs="unbounded" nillable="true"/>
     </xsd:sequence>
   </xsd:complexType>
 </xsd:element>

 <xsd:element name="cscmsgreason" nillable="true">
   <xsd:complexType>
     <xsd:sequence>
     <xsd:element name="cscmsgtext" type="tns:cscmsgFaultReasonText" maxOccurs="unbounded" nillable="true" />
     </xsd:sequence>
   </xsd:complexType>
 </xsd:element>
 <xs:complexType name="cscmsgFaultReasonText">
   <xs:sequence>
     <xs:element name="locale" type="xs:string" nillable="true" />
     <xs:element name="text" type="xs:string" nillable="true" />
   </xs:sequence>
 </xs:complexType>
</xsd:schema>

10.6　標準の非同期受付（MDB（DBキュー））に要求を出すサービスリクエスタ

サービス部品を呼び出すHCSCサーバの標準の非同期受付（MDB（DBキュー））に要求を出すサービスリクエスタは，TP1/Server Base Enterprise Option（TP1/EE）とJMSの二つがあります。

TP1/Server Base Enterprise Option（TP1/EE）のサービスリクエスタ

サービスリクエスタ（TP1/EE）とサービス部品を呼び出すHCSCサーバの標準の非同期受付（MDB（DBキュー））の間は，受信用共用キューを通して通信を行います。標準の非同期受付（MDB（DBキュー））に要求を出すサービスリクエスタ（TP1/EE）とHCSCサーバの関係を次の図に示します。

図10-23　標準の非同期受付（MDB（DBキュー））に要求を出すサービスリクエスタ（TP1/EE）とHCSCサーバの関係

JMSのサービスリクエスタ

サービスリクエスタ（JMS）とサービス部品を呼び出すHCSCサーバの標準の非同期受付（MDB（DBキュー））の間は，送信用共用キューおよび受信用共用キューを通して通信を行います。標準の非同期受付（MDB（DBキュー））に要求を出すサービスリクエスタ（JMS）とHCSCサーバの関係を次の図に示します。

図10-24　非同期受付（MDB（DBキュー））に要求を出すサービスリクエスタ（JMS）とHCSCサーバの関係

＜この節の構成＞

10.6.1　サービスリクエスタ（標準の非同期受付（MDB（DBキュー）））の作成手順

10.6.2　送信用共用キューを作成する（JMS）

10.6.3　JMSメッセージを生成する（JMS）

10.6.4　バイナリデータを作成する（TP1/EE，JMS）

10.6.5　パラメタを設定する（TP1/EE，JMS）

10.6.6　要求電文を作成する（TP1/EE，JMS）

10.6.7　バイナリデータを受信用共用キューに設定する（TP1/EE）

10.6.8　JMSメッセージを送信する（JMS）

10.6.9　応答用のキューを設定する（TP1/EE，JMS）

10.6.10　応答を取り出す（TP1/EE，JMS）

10.6.11　応答電文を取得する（TP1/EE，JMS）

10.6.1　サービスリクエスタ（標準の非同期受付（MDB（DBキュー）））の作成手順

標準の非同期受付（MDB（DBキュー））にサービス部品の実行を要求し，サービス部品を呼び出すためのサービスリクエスタの作成手順を次に示します。

作成手順は，サービスリクエスタがTP1/EEの場合とJMSの場合で異なります。

＜この項の構成＞

(1)　TP1/EEの場合

(2)　JMSの場合

(1)　TP1/EEの場合

サービスリクエスタがTP1/EEの場合に，標準の非同期受付（MDB（DBキュー））にサービス部品の実行を要求し，サービス部品を呼び出すためのサービスリクエスタの作成手順を次に示します。

図10-25　サービスリクエスタ（TP1/EE）の作成手順（標準の非同期受付（MDB（DBキュー）））

(a)　バイナリデータの作成

標準の非同期受付（MDB（DBキュー））に要求電文を送信する場合，バイナリデータを作成する必要があります。バイナリデータの作成については，「10.6.4　バイナリデータを作成する（TP1/EE，JMS）」を参照してください。

(b)　パラメタの設定

「10.6.1(1)(a) バイナリデータの作成」で作成したバイナリデータの各タグに対応するパラメタを設定して，バイナリデータを組み立てます。パラメタの設定については，「10.6.5　パラメタを設定する（TP1/EE，JMS）」を参照してください。

(c)　要求電文の作成

サービス部品の実行を要求する要求電文を作成します。要求電文の作成については，「10.6.6　要求電文を作成する（TP1/EE，JMS）」を参照してください。

(d)　受信用共用キューへのバイナリデータの設定

パラメタを設定したバイナリデータをTP1/EEのAPI（DBキュー制御）を使用して，受信用共用キューがあるデータベースに設定します。受信用共用キューへのバイナリデータの設定については，「10.6.7　バイナリデータを受信用共用キューに設定する（TP1/EE）」を参照してください。

(e)　応答用のキューの設定

同期のサービス部品（WebサービスまたはSessionBean）から応答を受け取るために，応答用のキュー（受信用共用キュー）を設定します。応答用のキューの設定については，「10.6.9　応答用のキューを設定する（TP1/EE，JMS）」を参照してください。

(f)　応答の取り出し

TP1/EEのAPI（DBキュー制御）を使用して，応答用のキュー（受信用共用キュー）があるデータベースを参照して，応答のバイナリデータを取り出します。応答の取り出しについては，「10.6.10　応答を取り出す（TP1/EE，JMS）」を参照してください。

(g)　応答電文の取得

取り出した応答から応答電文を取得します。応答電文の取得については，「10.6.11　応答電文を取得する（TP1/EE，JMS）」を参照してください。

(2)　JMSの場合

サービスリクエスタがJMSの場合に，標準の非同期受付（MDB（DBキュー））にサービス部品の実行を要求し，サービス部品を呼び出すためのサービスリクエスタの作成手順を次に示します。

図10-26　サービスリクエスタ（JMS）の作成手順（標準の非同期受付（MDB（DBキュー）））

(a)　送信用共用キューの作成

サービスリクエスタ（JMS）から要求電文を送信するために必要な送信用共用キューを作成します。送信用共用キューの作成については，「10.6.2　送信用共用キューを作成する（JMS）」を参照してください。

(b)　JMSメッセージの生成

非同期受付（MDB（DBキュー））にサービス部品の実行を要求するために，QueueSenderのオブジェクトおよびJMSメッセージを生成します。QueueSenderのオブジェクトおよびJMSメッセージの生成については，「10.6.3　JMSメッセージを生成する（JMS）」を参照してください。

(c)　バイナリデータの作成

非同期受付（MDB（DBキュー））に要求電文を送信する場合，バイナリデータを作成する必要があります。バイナリデータの作成については，「10.6.4　バイナリデータを作成する（TP1/EE，JMS）」を参照してください。

(d)　パラメタの設定

「10.6.1(2)(c) バイナリデータの作成」で作成したバイナリデータの各タグに対応するパラメタを設定して，バイナリデータを組み立てます。パラメタの設定については，「10.6.5　パラメタを設定する（TP1/EE，JMS）」を参照してください。

(e)　要求電文の作成

サービス部品の実行を要求する要求電文を作成します。要求電文の作成については，「10.6.6　要求電文を作成する（TP1/EE，JMS）」を参照してください。

(f)　JMSメッセージの送信

ペイロードにバイナリデータを設定したJMSメッセージを送信用共用キューに送信します。JMSメッセージの送信については，「10.6.8　JMSメッセージを送信する（JMS）」を参照してください。

(g)　応答用のキューの設定

同期のサービス部品（WebサービスまたはSessionBean）から応答を受け取るために，応答用のキュー（送信用共用キュー）を設定します。応答用のキューの設定については，「10.6.9　応答用のキューを設定する（TP1/EE，JMS）」を参照してください。

(h)　応答の取り出し

応答用のキュー（送信用共用キュー）から受信用共用キューに送信された応答を取り出します。応答の取り出しについては，「10.6.10　応答を取り出す（TP1/EE，JMS）」を参照してください。

(i)　応答電文の取得

取り出した応答から応答電文を取得します。応答電文の取得については，「10.6.11　応答電文を取得する（TP1/EE，JMS）」を参照してください。

10.6.2　送信用共用キューを作成する（JMS）

サービスリクエスタから要求電文を送信するために必要な送信用共用キューを作成します。送信用共用キューは，サービスリクエスタからの要求電文を，HCSCサーバが提供する受信用共用キューに送信します。

送信用共用キューの作成には，Cosminexus RMのhrmmkqueコマンドを使用します。ここでは，hrmmkqueコマンドのオプションの指定値について説明します。ここで説明していないオプションについては，マニュアル「Cosminexus Reliable Messaging」の「8.3.17　hrmmkque（ローカルキューの作成）」を参照してください。

＜この項の構成＞

(1)　hrmmkqueコマンドのオプションの指定値

(1)　hrmmkqueコマンドのオプションの指定値

-t キューの種類

shr_send（送信用共用キュー）を指定します。

-b 共用キューを使用する場合の登録先キュー名

次のどちらかを指定します。

＜Cosminexus RMシステム名＞_SHR_CSC<HCSCサーバ名>ACPT_DBQ

HCSCサーバがロードバランスクラスタ構成の場合に指定します。

＜Cosminexus RMシステム名＞_SHR_CSC<HCSCクラスタ名>ACPT_DBQ

HCSCサーバがHAクラスタ構成の場合に指定します。

HCSCクラスタ名は，開発環境および運用環境でHCSCサーバ構成配備時に決定されるHCSCサーバのクラスタ名です。

10.6.3　JMSメッセージを生成する（JMS）

標準の非同期受付（MDB（DBキュー））にサービス部品の実行を要求するためには，QueueSenderのオブジェクトおよびJMSメッセージを生成し，送信用共用キューに送信します。JMSメッセージを送信するアプリケーションの開発については，マニュアル「Cosminexus Reliable Messaging」を参照してください。

生成したJMSメッセージのペイロードには，パラメタを設定したバイナリデータを指定します。なお，JMSメッセージはBytesMessageで生成し，パラメタを設定したバイナリデータをBytesMessageのペイロードに指定してください。要求電文がない場合でも，バイナリデータをBytesMessageのペイロードに指定してください。

また，JMSメッセージのプロパティを設定しても，プロパティの値は無視されます。

JMSメッセージを生成する手順については，「10.5.3　JMSメッセージを生成する」を参照してください。

10.6.4　バイナリデータを作成する（TP1/EE，JMS）

標準の非同期受付（MDB（DBキュー））に要求電文を送信する場合，次の表に示す形式のバイナリデータを作成する必要があります。

表10-17　バイナリデータの形式（要求電文）

項番
項目
長さ（バイト）
データ型※1
説明
必須

1
ヘッダタグ
4
char
サービス部品要求のメッセージ振り分け用の先頭タグです（アイキャッチャ）。
「DBQH」を指定します。
ASCIIコードを使用してください。
○

2
バイトオーダーフラグ
1
byte
ヘッダ内の数値データのバイトオーダー（エンディアン）識別フラグです。
ヘッダ内の数値データをバイナリにエンコードする方式を次のどちらかから指定します。

0b00000001：ビッグエンディアン

0b00000010：リトルエンディアン

○

3
予備
3
byte
予備領域です。
○

4
長さ
4
int
サービス部品要求のメッセージングのヘッダの長さ（項番5から項番28までの長さ）です。
バイト単位で指定してください。
○

5
タグ
8
char
パラメタ識別用のタグです（アイキャッチャ）。
「ServiceN」を指定します。
ASCIIコードを使用してください。
△

6
長さ
4
int
次のエリア（項番7）の長さです。
バイト単位で指定してください。

7
サービス名
任意
String
要求先のサービス名です。
要求先のサービス名は，開発環境で定義したアダプタまたはビジネスプロセスを指定してください。
UTF-8コードを使用してください。

8
タグ
8
byte
パラメタ識別用のタグです（アイキャッチャ）。
「ClientID」を指定します。
ASCIIコードを使用してください。
△

9
長さ
4
int
次のエリア（項番10）の長さです。
バイト単位で指定してください。

10
クライアント相関ID
任意
String
サービスリクエスタからの要求電文を一意に識別するための相関識別子です。
255文字以内の英数字，アンダーライン（_），ピリオド（.）およびハイフン（-）で指定してください。
サービスリクエスタからの要求電文と，HCSCサーバで管理している実行履歴やログおよびトレースを対応づけるために使用します。したがって，HCSCサーバに送信した要求電文ごとに異なるIDを指定してください。
UTF-8コードを使用してください。
省略する場合，このパラメタ，長さ，およびタグの，バイナリデータを組み立てる必要はありません。

11
タグ
8
byte
パラメタ識別用のタグです（アイキャッチャ）。
「ReqFmtID」を指定します。
ASCIIコードを使用してください。
×

12
長さ
4
int
次のエリア（項番13）の長さです。
バイト単位で指定してください。

13
HCSCリクエストフォーマットID
任意
String
要求電文のフォーマット定義を一意に識別するためのIDです。
このパラメタ，長さ，およびタグのバイナリデータは組み立てないでください。

14
タグ
8
byte
パラメタ識別用のタグです（アイキャッチャ）。
「ResFmtID」を指定します。
ASCIIコードを使用してください。
×

15
長さ
4
int
次のエリア（項番16）の長さです。
バイト単位で指定してください。

16
HCSCレスポンスフォーマットID
任意
String
応答電文のフォーマット定義を一意に識別するためのIDです。
このパラメタ，長さ，およびタグのバイナリデータは組み立てないでください。

17
タグ
8
byte
パラメタ識別用のタグです（アイキャッチャ）。
「ReplyToQ」を指定します。
ASCIIコードを使用してください。
△

18
長さ
4
int
次のエリア（項番19）の長さです。
バイト単位で指定してください。

19
応答用のキュー名
任意
String
要求先のサービス部品が同期（WebサービスまたはSessionBean）またはビジネスプロセスの場合に，サービス部品またはビジネスプロセスからの応答を受け取るキュー名です。
要求先のサービス部品が同期か非同期かわからない場合にこの指定をすると，応答を受け取ることができます。
詳細については，「10.6.9　応答用のキューを設定する（TP1/EE，JMS）」を参照してください。
UTF-8コードを使用してください。
省略すると，NULLが設定され，応答を受け取ることができません。省略する場合，このパラメタ，長さ，およびタグの，バイナリデータを組み立てる必要はありません。

20
タグ
8
byte
パラメタ識別用のタグです（アイキャッチャ）。
「OperatiN」を指定します。
ASCIIコードを使用してください。
△

21
長さ
4
int
次のエリア（項番22）の長さです。
バイト単位で指定してください。

22
サービスオペレーション名
任意
String
要求先のサービス名に対するオペレーション名です。※2
オペレーション名は，開発環境で定義したサービス部品のオペレーション名を指定します。255バイト以内のXMLSchemaのNCName定義文字で指定してください。
要求先のサービス部品が同期のサービス部品（WebサービスまたはSessionBean）またはビジネスプロセスの場合，必ず指定してください。
UTF-8コードを使用してください。
要求先のサービス部品が非同期のサービス部品の場合，応答用のキュー名を省略できます。省略する場合，このパラメタ，長さ，およびタグの，バイナリデータを組み立てる必要はありません。

23
タグ
8
byte
パラメタ識別用のタグです（アイキャッチャ）。
「MessageT」を指定します。
ASCIIコードを使用してください。
△

24
長さ
4
int
次のエリア（項番25）の長さです。
バイト単位で指定してください。

25
電文種別
任意
String
ユーザ電文（要求電文）の種別です。
XML電文（ペイロードがTextMessage）の場合は「XML」を，バイナリ電文（ペイロードがBytesMessage）の場合は「Binary」を指定します。
メッセージ（要求電文）がある場合，必ず指定してください。
UTF-8コードを使用してください。
要求電文がない場合，省略することができます。省略する場合，このパラメタ，長さ，およびタグの，バイナリデータを組み立てる必要はありません。

26
タグ
8
byte
パラメタ識別用のタグです（アイキャッチャ）。
「MgLength」を指定します。
ASCIIコードを使用してください。
○

27
長さ
4
int
次のエリア（項番28）の長さです。
「4」を指定してください。

28
メッセージ長
4
int
バイナリ変換したユーザ電文（要求電文）のメッセージの長さを指定します。
ユーザ電文（要求電文）がない場合，0を指定してください。

29
メッセージ
任意
byte[]
ユーザ電文（要求電文）です。※2
DBキューのヘッダ（項番1～28）の後ろに，バイナリ変換したユーザ電文（要求電文）を指定します。
なお，XML電文をバイナリに変換したメッセージの場合は，UTF-8コードでエンコードしてください。
ユーザ電文（要求電文）がない場合，省略できます。
△

（凡例）

○：必ず指定してください。

△：必ず指定しなければいけない場合があります。説明の内容を確認してください。

×：指定しないでください。

注※1

Javaのデータ型です。

注※2

要求先のサービス部品のプロトコルがSOAPの場合，ユーザ電文のルート要素の名称（データ変換を行う場合，データ変換後の電文のルート要素の名称）から呼び出すオペレーションを決定します。そのため，ユーザ電文のルート要素に誤った名称を指定した場合，意図しないオペレーションを呼び出してしまうので注意してください。

10.6.5　パラメタを設定する（TP1/EE，JMS）

作成したバイナリデータの各タグ（表10-17の項番5，8，11，17，20，23，および26）に対応するパラメタを設定して，バイナリデータを組み立てます。

バイナリデータのタグの形式を次の図に示します。

図10-27　バイナリデータのタグの形式

バイナリデータ中の各タグの出現順序は任意です。ただし，タグ，長さ，値の順序は，この図に示すように固定されています。

また，DBキューのヘッダ（項番1～28）の後ろに，バイナリ変換したメッセージ（要求電文）を指定します。要求電文がない場合，項番26のタグにMgLengthを指定し，その長さを0にすることもできます。

10.6.6　要求電文を作成する（TP1/EE，JMS）

サービスリクエスタからHCSCサーバの非同期受付（MDB（DBキュー））に，サービス部品を要求する要求電文を作成します。サービスリクエスタから送信する要求電文の内容は，サービス部品側と同じ電文フォーマットで作成してください。

サービスリクエスタがTP1/EEの場合とJMSの場合の，要求電文の送信を次の図に示します。

図10-28　要求電文の送信（標準の非同期受付（MDB（DBキュー）））

正常な要求電文の伝わり方については，マニュアル「Cosminexus サービスプラットフォーム 機能解説」の「2.5　MDB（DBキュー）を使ったサービス部品呼び出し」を参照してください。

また，サービスリクエスタでは，電文種別がXML電文の要求電文を作成します。作成した要求電文はバイナリ変換します。バイナリ変換する場合は，サービスリクエスタ側とサービス部品側で同じエンコードの方式を使用してください。XML電文の要求電文については，「10.2.6　要求電文を作成する」を参照してください。

なお，プロトコルの種類がDBキューのサービス部品の場合，非同期受付（MDB（DBキュー））から要求電文を送信できません。非同期受付（MDB（DBキュー））から要求電文を送信できるのは，サービス部品側で次のプロトコルを使用しているときになります。

SOAP

RMI-IIOP

WS-R

10.6.7　バイナリデータを受信用共用キューに設定する（TP1/EE）

パラメタを設定したバイナリデータをTP1/EEのAPI（DBキュー制御）を使用して，受信用共用キューがあるデータベースに設定します。

詳細は，マニュアル「TP1/Server Base Enterprise Option　プログラム作成の手引」を参照してください。

10.6.8　JMSメッセージを送信する（JMS）

ペイロードにバイナリデータを設定したJMSメッセージを，送信用共用キューに送信します。

JMSメッセージを送信する手順については，「10.5.6　JMSメッセージを送信する」を参照してください。

10.6.9　応答用のキューを設定する（TP1/EE，JMS）

標準の非同期受付（MDB（DBキュー））は，非同期の要求電文の標準受付であり，基本的にはサービス部品からの応答がない場合に使用します。しかし，非同期受付（MDB（DBキュー））から同期のサービス部品（WebサービスまたはSessionBean）を要求した場合，同期のサービス部品から応答が返るときがあります。このような場合，要求時に応答用のキューを指定することで，サービスリクエスタは同期のサービス部品から応答を受け取ることができます。要求時の応答用のキューの指定については，「10.5.6　JMSメッセージを送信する」を参照してください。

＜この項の構成＞

(1)　TP1/EEの場合

(2)　JMSの場合

(1)　TP1/EEの場合

非同期受付（MDB（DBキュー））は，応答電文を含むバイナリデータがペイロードに設定されたJMSメッセージを応答用のキュー（送信用共用キュー）に送信します。

送信用共用キューは，受け取った応答からバイナリデータを取り出し，受信用共用キューに送信します。受信用共用キューに送信した応答を取り出して，サービス部品からの応答電文を取得できます。応答の取り出しについては，「10.6.10　応答を取り出す（TP1/EE，JMS）」を参照してください。

標準の非同期受付（MDB（DBキュー））と送信用共用キュー，および受信用共用キューの関係を次に示します。

図10-29　標準の非同期受付（MDB（DBキュー））と送信用共用キュー，および受信用共用キューの関係（TP1/EEの場合）

送信用共用キュー（応答用のキュー）

応答用のキューとなる送信用共用キューを，HCSCサーバが稼働しているJ2EEサーバ（Cosminexus RM）内に作成します。送信用共用キューの登録先キューには，受信用共用キューを指定します。

送信用共用キューの作成方法については，マニュアル「Cosminexus Reliable Messaging」の「2.2.4　送信用共用キュー」を参照してください。

受信用共用キュー

TP1/EEのDBキューを，送信用共用キューがある（Cosminexus RMが使用している）データベースの同一のスキーマ定義内に作成します。詳細は，マニュアル「Cosminexus Reliable Messaging」の「2.2.3　受信用共用キュー」を参照してください。

また，DBキューの作成の詳細については，マニュアル「TP1/Server Base Enterprise Option　使用の手引」のDBキューに関する内容を参照してください。

(2)　JMSの場合

標準の非同期受付（MDB（DBキュー））は応答として，応答電文を含むバイナリデータがペイロードに設定されたJMSメッセージを応答用のキュー（送信用共用キュー）に送信します。送信用共用キューで受け取った応答は，受信用共用キューに送信します。受信用共用キューに送信した応答を取り出すことで，サービス部品からの応答電文を取得できます。応答の取り出しについては，「10.6.10　応答を取り出す（TP1/EE，JMS）」を参照してください。

標準の非同期受付（MDB（DBキュー））と送信用共用キュー，および受信用共用キューの関係を次に示します。

図10-30　標準の非同期受付（MDB（DBキュー））と送信用共用キュー，および受信用共用キューの関係（JMSの場合）

送信用共用キュー（応答用のキュー）

応答用のキューとなる送信用共用キューを，HCSCサーバが稼働しているJ2EEサーバ（Cosminexus RM）内に作成します。送信用共用キューの登録先キューには，受信用共用キューを指定します。

送信用共用キューの作成方法については，マニュアル「Cosminexus Reliable Messaging」の「2.2.4　送信用共用キュー」を参照してください。

受信用共用キュー

サービスリクエスタが稼働しているJ2EEサーバ（Cosminexus RM）内に，受信用共用キューを作成します。

受信用共用キューの設定は，ユーザの運用に合わせ，必要に応じて行ってください。

受信用共用キューの作成方法については，マニュアル「Cosminexus Reliable Messaging」の「2.2.3　受信用共用キュー」を参照してください。

10.6.10　応答を取り出す（TP1/EE，JMS）

＜この項の構成＞

(1)　TP1/EEの場合

(2)　JMSの場合

(1)　TP1/EEの場合

TP1/EEのAPI（DBキュー制御）を使用して，応答用のキュー（受信用共用キュー）があるデータベースを参照して，応答のバイナリデータを取り出します。正常な応答電文の伝わり方については，マニュアル「Cosminexus サービスプラットフォーム 機能解説」の「2.5.3　同期のサービス部品を呼び出す場合の応答電文の扱い」を参照してください。

詳細については，マニュアル「TP1/Server Base Enterprise Option　プログラム作成の手引」を参照してください。

応答のバイナリデータの形式を次の表に示します。

表10-18　バイナリデータの形式（応答電文）

項番
項目
長さ（バイト）
データ型※
説明

1
ヘッダタグ
4
char
HCSCメッセージ振り分け用の先頭タグです（アイキャッチャ）。
「DBQH」が設定されます。
ASCIIコードでエンコードされているバイナリデータが設定されます。

2
バイトオーダーフラグ
1
byte
要求時に指定したバイトオーダーフラグが設定されます。

3
予備
3
byte
予備領域です。

4
長さ
4
int
HCSCメッセージング用のヘッダの長さ（項番5から項番19までの長さ）が設定されます。

5
タグ
8
char
パラメタ識別用のタグです（アイキャッチャ）。
「ServiceN」が設定されます。
ASCIIコードでエンコードされているバイナリデータが設定されます。

6
長さ
4
int
次のエリア（項番7）の長さです。
バイト単位で設定されます。

7
サービス名
任意
String
要求時に指定したアダプタまたはビジネスプロセスが設定されます。
UTF-8コードでエンコードされているバイナリデータが設定されます。

8
タグ
8
byte
パラメタ識別用のタグです（アイキャッチャ）。
「ClientID」が設定されます。
ASCIIコードでエンコードされているバイナリデータが設定されます。

9
長さ
4
int
次のエリア（項番10）の長さです。
バイト単位で設定されます。

10
クライアント相関ID
任意
String
サービスリクエスタからの要求電文を一意に識別するための相関識別子です。
255文字以内の英数字，アンダーライン（_），ピリオド（.）およびハイフン（-）で設定されます。
UTF-8コードでエンコードされているバイナリデータが設定されます。

11
タグ
8
byte
パラメタ識別用のタグです（アイキャッチャ）。
「ResFmtID」を指定します。
ASCIIコードを使用してください。

12
長さ
4
int
次のエリア（項番13）の長さです。
バイト単位で指定してください。

13
HCSCレスポンスフォーマットID
任意
String
応答電文のフォーマット定義を一意に識別するためのIDです。
このパラメタ，長さ，およびタグは設定されません。

14
タグ
8
byte
パラメタ識別用のタグです（アイキャッチャ）。
「OperatiN」が設定されます。
ASCIIコードでエンコードされているバイナリデータが設定されます。

15
長さ
4
int
次のエリア（項番16）の長さです。
バイト単位で設定されます。

16
サービスオペレーション名
任意
String
要求先のサービス名に対するオペレーション名です。
255バイトのXMLSchemaのNCName定義文字で設定されます。
UTF-8コードでエンコードされているバイナリデータが設定されます。

17
タグ
8
byte
パラメタ識別用のタグです（アイキャッチャ）。
「MessageT」が設定されます。
ASCIIコードでエンコードされているバイナリデータが設定されます。

18
長さ
4
int
次のエリア（項番19）の長さです。
バイト単位で設定されます。

19
応答電文種別
任意
String
メッセージ（応答電文）の種別です。
電文種別がXML電文の場合，「XML」が設定されます。メッセージ（応答電文）がない場合，このパラメタは省略されます。
UTF-8コードでエンコードされているバイナリデータが設定されます。

20
タグ
8
byte
パラメタ識別用のタグです（アイキャッチャ）。
「MgLength」が設定されます。
ASCIIコードでエンコードされているバイナリデータが設定されます。

21
長さ
4
int
次のエリア（項番22）の長さです。
「4」が設定されます。

22
メッセージ長
4
int
メッセージ（応答電文）の長さが設定されます。
メッセージ（応答電文）がない場合，0バイトが設定されます。

23
メッセージ
任意
byte[]
次のどちらかの情報が設定されます。

サービス部品からの応答電文

サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラー情報（フォルト情報）

UTF-8コードでエンコードされているバイナリデータが設定されます。

注※　Javaのデータ型です。

(2)　JMSの場合

受信用共用キューから応答（JMSメッセージ）を取り出すには，MDBで実装する方法とSessionBeanで実装する方法があります。MDBおよびSessionBeanの実装については，マニュアル「Cosminexus Reliable Messaging」を参照してください。

なお，取り出した応答（JMSメッセージ）のペイロードに設定されたバイナリデータの形式については，表10-18を参照してください。

10.6.11　応答電文を取得する（TP1/EE，JMS）

取り出した応答から応答電文を取得します。取得する応答電文は，次のどちらかになります。

サービス部品からの応答電文

サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラー情報（フォルト情報）

＜この項の構成＞

(1)　サービス部品からの応答電文

(2)　サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラー情報（フォルト情報）

(1)　サービス部品からの応答電文

取得する応答電文は，サービス部品側と同じ電文フォーマットのXML電文になります。XML電文の応答電文については，「10.2.7　応答電文を取得する」を参照してください。

(2)　サービス部品，ビジネスプロセス，およびカスタムアダプタからのエラー情報（フォルト情報）

取得する電文（エラー情報）は，非同期受付（MDB（DBキュー））が応答用のキューに送信したXML電文になります。取得するXML電文（エラー情報）の形式については，「10.5.9　応答電文を取得する」を参照してください。

10.7　ユーザ定義受付（Webサービス）に要求を出すサービスリクエスタ

ユーザ定義受付（Webサービス）へ要求電文を送信するサービスリクエスタは，SOAPを利用してユーザ定義受付と通信します。サービスリクエスタからユーザ定義受付へサービス部品実行の要求電文が送信され，HCSCサーバがサービス部品の実行を行います。

ユーザ定義受付（Webサービス）のインターフェース情報は，開発環境でユーザ定義受付を定義した際に指定したWSDLになります。WSDLからスタブを生成し，そのスタブを利用して，ユーザ定義受付（Webサービス）に要求を出します。

ポイント

ユーザ定義受付（Webサービス）に要求を出すサービスリクエスタを作成する場合，標準受付とは異なり，要求電文を作成する必要はありません。サービスリクエスタのスタブの中でWSDLに合わせた形式の要求電文（SOAPメッセージ）が自動的に生成され，サービス部品の実行要求が出されます。

ユーザ定義受付（Webサービス）に要求を出すサービスリクエスタとHCSCサーバの関係を次の図に示します。

図10-31　ユーザ定義受付（Webサービス）に要求を出すサービスリクエスタとHCSCサーバの関係

なお，JAX-WSエンジンを使用して通信するサービスリクエスタの場合，スタブではなくサービスクラスを生成します。JAX-WSエンジンの場合のサービスリクエスタの作成については，「10.7.7　サービスリクエスタ（ユーザ定義受付（Webサービス））の作成手順（JAX-WSエンジン）」を参照してください。

＜この節の構成＞

10.7.1　サービスリクエスタ（ユーザ定義受付（Webサービス））の作成手順（SOAP通信基盤）

10.7.2　WSDLを編集する

10.7.3　スタブを生成する

10.7.4　オブジェクトを生成する

10.7.5　応答電文を取得する

10.7.6　エラー情報を取得する

10.7.7　サービスリクエスタ（ユーザ定義受付（Webサービス））の作成手順（JAX-WSエンジン）

10.7.1　サービスリクエスタ（ユーザ定義受付（Webサービス））の作成手順（SOAP通信基盤）

ユーザ定義受付（Webサービス）にサービス部品の実行を要求し，サービス部品を呼び出すためのサービスリクエスタの作成手順を次に示します。

図10-32　サービスリクエスタ（ユーザ定義受付（Webサービス））の作成手順（SOAP通信基盤）

各工程の作業を次に示します。

＜この項の構成＞

(1)　WSDLの編集

(2)　スタブの生成

(3)　オブジェクトの生成

(4)　応答電文の取得

(5)　エラー情報の取得

(1)　WSDLの編集

ユーザ定義受付の定義内容を確認して，スタブの生成に必要なWSDLの内容を編集します。WSDLの編集については，「10.7.2　WSDLを編集する」を参照してください。

(2)　スタブの生成

「10.7.1(1) WSDLの編集」で編集したWSDLからスタブを生成します。スタブの生成については，「10.7.3　スタブを生成する」を参照してください。

(3)　オブジェクトの生成

ユーザ定義受付（Webサービス）のメソッドを呼び出すために，「10.7.1(2) スタブの生成」で生成したスタブからオブジェクトを生成します。オブジェクトの生成については，「10.7.4　オブジェクトを生成する」を参照してください。

(4)　応答電文の取得

ユーザ定義受付（Webサービス）から，サービス部品の実行要求に対する応答電文を取得します。応答電文の取得については，「10.7.5　応答電文を取得する」を参照してください。

(5)　エラー情報の取得

要求先のサービス部品，HCSCサーバ，およびSOAPエンジンでエラーが発生した場合，エラー情報を取得し，その情報に従って対処します。エラー情報の取得については，「10.7.6　エラー情報を取得する」を参照してください。

10.7.2　WSDLを編集する

ユーザ定義受付（Webサービス）に実行要求を出すサービスリクエスタを作成するには，開発環境でユーザ定義受付を定義した際に指定したWSDLを利用します。WSDLの作成については「8.3　WSDLの作成」を参照してください。

開発環境でユーザ定義受付を定義した際に指定したWSDLは，サービスロケーションの値（wsdl:port要素内のsoap-address要素のlocation属性に設定している値）に，仮の値を設定しています。そのため，WSDLのサービスロケーションの値を，使用するユーザ定義受付のURL情報に編集する必要があります。

HCSCサーバをセットアップする際に，HCSCサーバセットアップ定義ファイルにユーザ定義受付（Webサービス）を使用するように指定（request-userdef-soap=ONを指定）している場合は，開発環境のユーザ定義受付情報表示画面の［Webサービス］にURLが表示されます。表示されるURLがユーザ定義受付のURL情報です。このURLをWSDLのサービスロケーションの値に設定します。

HCSCサーバをセットアップしていない場合，またはHCSCサーバをセットアップしたがHCSCサーバセットアップ定義ファイルでユーザ定義受付（Webサービス）を使用しないように指定している場合は，次の規則に従ってサービスロケーションの値を設定してください。

http://<ホスト名>:<ポート番号>※1/<コンテキストルート>※2
           /services/CSCMsgUserDefinedReception

注※1

HCSCサーバのURL（ホスト名およびポート番号）です。

注※2

コンテキストルート名は，開発環境でユーザ定義受付を定義したときに割り当てられた受付IDと同じ値がデフォルトで設定されます。ユーザ定義受付定義画面の［コンテキストルート］に表示されます。

ユーザ定義受付情報表示画面の表示方法は，「9.4.2　HCSCコンポーネントの情報を表示する」を参照してください。

10.7.3　スタブを生成する

編集したWSDLからスタブを生成します。スタブは，Cosminexusが開発支援コマンドとして提供するWSDL2Javaコマンドで生成できます。

コマンドの入力例を次に示します。

WSDL2Java xxxxx.wsdl

このコマンドを実行すると，指定したWSDLに記述されている内容に基づいてディレクトリおよびファイルが作成されます。

WSDL2Javaコマンドのオプションなどの詳細については，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」の「9.2　WSDL2Javaコマンド（ソースコードの生成）」を参照してください。生成されるスタブの内容については，マニュアル「Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引」の「3.7.1　スタブの使用」を参照してください。

10.7.4　オブジェクトを生成する

ユーザ定義受付（Webサービス）のメソッドを呼び出すために，生成したスタブを使用して，オブジェクトを生成します。

ユーザ定義受付（Webサービス）のメソッドを呼び出すためのオブジェクトを生成する手順を次に示します。

インターフェースクラスであるLocatorクラスのオブジェクトを生成します。

Locatorクラスを使って，ユーザ定義受付のインターフェースクラスのオブジェクトを生成します。
なお，生成・取得したサービスリクエスタのインターフェースクラスのインスタンスは，複数のスレッドで共有できません。

生成したオブジェクトのメソッドを呼び出すことで，ユーザ定義受付にサービス部品の実行が要求されます。スタブのオブジェクト内で，WSDLで定義された形式の要求電文（SOAPメッセージ）を自動生成します。

10.7.5　応答電文を取得する

ユーザ定義受付（Webサービス）から，サービス部品の実行要求に対する応答電文を取得します。スタブのオブジェクトは，ユーザ定義受付からの応答電文としてWSDLで定義された形式の応答電文（SOAPメッセージ）を受け取り，サービスリクエスタに応答を返します。応答電文の取得を次の図に示します。

図10-33　応答電文の取得（ユーザ定義受付（Webサービス））

サービス部品からの応答電文がない場合は，NULLを受信します。応答電文がある場合とない場合に分けて次に説明します。

＜この項の構成＞

(1)　応答電文がある場合

(2)　応答電文がない場合

(1)　応答電文がある場合

サービスリクエスタは，生成したオブジェクトのメソッドを呼び出した戻り値としてビジネスプロセスから応答電文を取得します。

(2)　応答電文がない場合

サービスリクエスタは，生成したオブジェクトのメソッドを呼び出した戻り値としてNULLを取得します。

10.7.6　エラー情報を取得する

要求先のサービス部品，HCSCサーバ，およびSOAPエンジンでエラーが発生した場合，エラー情報を取得し，その情報に従って対処します。

エラーの伝わり方については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「7.7.1　Webサービス（SOAP通信）実行時の障害対策」を参照してください。

＜この項の構成＞

(1)　サービスリクエスタ側の実装例

(1)　サービスリクエスタ側の実装例

エラー情報の取得方法は，SOAP通信基盤の種類によって異なります。

(a)　Cosminexusが提供しているSOAP通信基盤を使用している場合

サービス部品からのSOAP Faultの取得方法

WSDLに定義されているエラー情報用の例外オブジェクトをキャッチしてSOAP Faultのエラー情報を取得します。SOAP Faultの形式は，WSDLに定義されているFault形式（サービス部品側のFault形式）です。

サービス部品からのSOAP Faultを取得するには，サービスリクエスタ側で次のように実装する必要があります。

{
　　try {
　　　　：
　　　// Webサービス呼び出し
　　　　：
　　} catch (xxxxxxxxxxException e) {
　　　　：
　　} catch (C4Fault e) {
　　　　：
　　}
}

HCSCサーバ内で発生した例外の取得方法

CosminexusのSOAP通信基盤で提供するC4Faultオブジェクトをキャッチしてエラー情報を取得します。

サービスリクエスタ側の処理の流れを次に示します。

C4FaultまたはRuntimeExceptionでキャッチします。

C4FaultからgetFaultDetails()メソッドを使用してElement[]を取り出し，各配列に対してgetChildNodes()メソッドでNodeListを取得します。

NodeListからNodeを取り出し，個々のNodeに対してgetTextContent()メソッドでエラー情報を取り出します。

HCSCサーバ内で発生した例外を取得する場合の，サービスリクエスタ側の実装の例を次に示します。

{
　　try {
　　　　：
　　} catch (xxxxxxxxxxException e) {
　　　　：
　　} catch (C4Fault e) {
　　　// C4FaultからFault情報を取得
　　　System.out.println("C4Fault Message          = " + e.getMessage());
　　　System.out.println("C4Fault FaultCode        = " + e.getFaultCode());
　　　System.out.println("C4Fault FaultActor       = " + e.getFaultActor());
　　　System.out.println("C4Fault FaultString      = " + e.getFaultString());
　　　// C4FaultからDetailを取得
　　　Element ele[] = e.getFaultDetails();
　　　printElement(ele);
　　}
}

/**
* Print Element
*/
　private static void printElement(Element[] ele) {
　　int eleNumber = ele.length;
　　System.out.println("Element count = " + eleNumber);
　　for (int i=0; i<eleNumber; i++) {
　　　// Element配列からNodeListを取得
　　　if (ele[i] != null) {
　　　　printNodeList(ele[i].getChildNodes());
　　　} else {
　　　　System.out.println("Element[" + i + "] = null");
　　　}
　　}
　}

/**
* Print NodeList
*/
　private static void printNodeList(NodeList nodelist) {
　　int nodelistcount = nodelist.getLength();
　　for (int j=0; j<nodelistcount; j++) {
　　　Node node1 = nodelist.item(j);
　　　NodeList nodelist1 = node1.getChildNodes();
　　　int nodelist1len = nodelist1.getLength();

　　　if (nodelist1len == 0) {
　　　　System.out.println("empty ChildNode");
　　　} else if(nodelist1len == 1) {
　　　　Node node2 = node1.getFirstChild();
　　　　if(node2 != null) {
　　　　　System.out.println("ChildNode[" + j + "] getTextContent = "
　　　　　　　　　　　　　　　+ node2.getTextContent());
　　　　} else {
　　　　　System.out.println("ChildNode[" + j + "] = null");
　　　　}
　　　} else {
　　　　printNodeList(nodelist1);
　　　}
　　}
　}

getFaultDetails()メソッドを使用して取得したElement[]の構造を次に示します。

表10-19　getFaultDetails()メソッドを使用して取得したElement[]の構造

名称
説明

errorMessage
HCSCサーバ内で発生した例外に設定されているエラーメッセージです。

errorCode
HCSCサーバ内で発生した例外に対応するエラーコードです。

processInstanceID
ビジネスプロセスのインスタンスIDの情報です。
HCSCサーバ内で発生した例外の場合は設定されていないため，null（nil属性）になります。

(b)　Cosminexusが提供しているSOAP通信基盤を使用していない場合

サービス部品からのSOAP Faultの取得方法

WSDLに定義されているエラー情報用の例外オブジェクトをキャッチしてSOAP Faultのエラー情報を取得します。SOAP Faultの形式は，WSDLに定義されているFault形式（サービス部品側のFault形式）です。

HCSCサーバ内で発生した例外の取得方法

取得する方法は，サービスリクエスタ側で実装しているSOAPエンジンに依存します。

10.7.7　サービスリクエスタ（ユーザ定義受付（Webサービス））の作成手順（JAX-WSエンジン）

ユーザ定義受付（Webサービス）に要求を出すサービスリクエスタとして，JAX-WSエンジンを使用して通信するサービスリクエスタを作成できます。JAX-WSエンジンを使用して通信するサービスリクエスタは，SOAP（document-literal型）を利用して，ユーザ定義受付（Webサービス）に要求電文を送信します。

JAX-WSエンジンの場合のサービスリクエスタとHCSCサーバの関係を次の図に示します。

図10-34　JAX-WSエンジンを使用して通信するサービスリクエスタとHCSCサーバの関係（ユーザ定義受付（Webサービス））

JAX-WSエンジンを使用して通信するサービスリクエスタの作成手順を次に示します。

図10-35　JAX-WSエンジンを使用して通信するサービスリクエスタの作成手順（ユーザ定義受付（Webサービス））

各工程の作業を次に示します。

＜この項の構成＞

(1)　WSDLの編集

(2)　サービスクラスの生成

(3)　オブジェクトの生成

(4)　応答電文の取得

(5)　エラー情報の取得

(1)　WSDLの編集

WSDLの編集方法は，SOAP通信基盤でサービスリクエスタを作成する場合と同じです。

WSDLの編集方法については，「10.7.2　WSDLを編集する」を参照してください。

(2)　サービスクラスの生成

編集したWSDLからサービスクラスを生成します。サービスクラスは，Cosminexusが開発支援コマンドとして提供するcjwsimportコマンドで生成します。

コマンドの入力例を次に示します。

cjwsimport -s <ソースファイルの出力先ディレクトリ> -d <コンパイル済みクラスファイルの出力先ディレクトリ> <WSDLファイル>

cjwsimportコマンドのオプションなどの詳細については，マニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」の「11.1　cjwsimportコマンド」を参照してください。

なお，「10.7.7(1) WSDLの編集」で編集したWSDLファイルが，cjwsimportコマンドを実行するカレントディレクトリと異なる場所に格納されている場合は，ディレクトリも指定してください。

このコマンドを実行すると，WSDLに記述されている内容に基づいて，指定したソースファイルの出力先ディレクトリに，ディレクトリおよびファイルが生成されます。

注意

JAX-WSエンジンを使用して通信するサービスリクエスタの場合，プログラム実行時にWSDLを読み込みます。サービスクラスのデフォルトコンストラクタを使用する場合は，cjwsimportコマンドで指定したWSDLのパス（「10.7.7(1) WSDLの編集」で取得したWSDLファイルをサービスクラス生成のために格納したディレクトリ）のWSDLを読み込みます。そのため，cjwsimportコマンドを実行したあと，サービスクラスを基点としたWSDLファイルの構成位置は，相対関係を壊すような構成にならないよう，WSDLファイルを移動しないでください。サービスリクエスタ実行時に参照するWSDLの構成位置を，cjwsimportコマンドで指定したWSDLのパスから変更する場合は，URLを指定できるコンストラクタを使用してください。

(3)　オブジェクトの生成

ユーザ定義受付（Webサービス）のメソッドを呼び出すために，生成したサービスクラスを使用して，プロキシクラスのオブジェクトを生成します。

生成したサービスクラスを基に，ユーザ定義受付（Webサービス）を呼ぶためのプロキシクラスのオブジェクトを生成する手順を示します。

サービスクラスを生成します。

wsdl:portTypeに対応するプロキシクラスを生成します。

生成したプロキシクラスのオブジェクトを使用して，サービスのメソッドを呼び出します。

生成したオブジェクトのメソッドを呼び出すことで，ユーザ定義受付にサービス部品の実行が要求されます。サービスクラスのオブジェクト内で，WSDLで定義された形式の要求電文（SOAPメッセージ）を自動生成します。

(4)　応答電文の取得

応答電文の取得方法は，SOAP通信基盤でサービスリクエスタを作成する場合と同じです。

応答電文の取得については，「10.7.5　応答電文を取得する」を参照してください。

(5)　エラー情報の取得

要求先のサービス部品，HCSCサーバ，およびSOAPエンジンでエラーが発生した場合，エラー情報を取得し，その情報に従って対処します。

サービス部品からのSOAP Faultの取得方法

JAX-WSエンジンを使用して通信するサービスリクエスタの場合，情報がラップされた例外がキャッチされます。そのため，ユーザ定義例外を取得するには，getFaultInfo()メソッドを使用してフォルト情報の格納クラスを取得する必要があります。

HCSCサーバ内で発生した例外の取得方法

javax.xml.ws.soap.SOAPFaultExceptionオブジェクトをキャッチしてエラー情報を取得します。

サービスリクエスタ側の処理の流れを次に示します。

SOAPFaultExceptionでキャッチします。

SOAPFaultExceptionからgetFault()メソッドを使用してSOAP Faultを取り出します。

SOAP FaultからSOAPフォルトの情報を取り出します。

HCSCサーバ内で発生した例外を取得する場合の，サービスリクエスタ側の実装の例を次に示します。

/**
* Sample Program
*/
{
   try {
        ：
   } catch (xxxxxxxxxxException_Exception e) {
      // WSDLに定義しているSOAPフォルトが返ってきた場合
     xxxxxxxxxxException faultInfo = e.getFaultInfo();
        ：
   } catch (SOAPFaultException e) {
      // HCSCサーバ内で何らかのエラーが発生した場合
     SOAPFault soapFault = e.getFault();
     if(soapFault != null) {
        // SOAPフォルトの情報を出力
        System.err.println("faultCode=" + soapFault.getFaultCode());
        System.err.println("faultActor=" + soapFault.getFaultActor());
        System.err.println("faultString=" + soapFault.getFaultString());
        Detail detail = soapFault.getDetail();
        if(detail != null) {
          for(Iterator ite = detail.getDetailEntries(); ite.hasNext(); ) {
            printDetail((Element)ite.next());
         }
       }
     }
   }
}

なお，getDetail()メソッドを使用して取得したElement[]の構造は，次の表のようになります。

表10-20　getDetail()メソッドを使用して取得したElement[]の構造

名称 | 内容
errorMessage | 例外に設定されているエラーメッセージです。
errorCode | 例外に設定されているエラーメッセージに対応するエラーコードです。
processInstanceID | ビジネスプロセスのプロセスインスタンスIDです。メッセージング基盤内で検出したエラーの場合は設定されていないためnull（nil属性）となります。ビジネスプロセスで発生したエラーの場合に該当します。

10.8　DBアダプタに要求を出すサービスリクエスタ

DBアダプタに要求を出すサービスリクエスタは，要求電文を受け付ける標準受付の種類によって作成方法が異なります。それぞれの標準受付の種類ごとの作成方法を参照して作成してください。参照先を次の表に示します。

表10-21　DBアダプタに要求を出すサービスリクエスタの作成方法

標準受付の種類 | 参照先
同期受付 | Webサービス（SOAP1.1） | 10.2
Webサービス（SOAP1.2） | 10.3
SessionBean | 10.4
非同期受付 | MDB（WS-R） | 10.5
MDB（DBキュー） | 10.6

以降の項では，DBアダプタ電文の形式について説明します。

DBアダプタ用のサービスリクエスタの電文の形式が，DBアダプタ電文の形式と異なる場合，データ変換が必要です。データ変換の詳細については，「7.　データ変換の定義」を参照してください。

＜この節の構成＞

10.8.1　要求電文の形式

10.8.2　応答電文の形式

10.8.1　要求電文の形式

要求電文は，XML文書形式で作成します。

要素，属性およびテキストデータは，W3CのXMLの仕様に従って指定します。XML文書で使用できない「<」，「>」，「&」などの文字を使用する場合，エスケープするか，CDATAセクションを利用する必要があります。

＜この項の構成＞

(1)　要求電文の形式

(2)　要求電文の要素と属性

(1)　要求電文の形式

要求電文の形式は，単一のSQL文の実行を要求する場合と，複数のSQL文の実行を要求する場合とで異なります。

要求電文の形式を次に示します。なお，斜体の文字は可変値を表します。

単一のSQL文の実行を要求する場合

ルート要素（DBadapter要素）の下位要素としてSQL識別子要素を記述します。記述できるSQL識別子要素の数は，一つだけです。

<DBadapter>
 <SQL識別子 out_maxOccurs="検索結果出力最大件数">
   <DBA_IN_DATA>
     <引数要素 nulldata="空要素の扱い">引数要素のデータ</引数要素>
       ：
   </DBA_IN_DATA>
 </SQL識別子>
</DBadapter>

複数のSQL文の実行を要求する場合

ルート要素（DBadapter要素）の下位要素としてDBA_MULTI_SQL要素を記述します。複数のDBA_MULTI_SQL要素を記述できます。記述できる数は，SQLオペレーション定義ファイルのMAX_SQL_NO要素に設定した値以下です。

<DBadapter>
 <DBA_MULTI_SQL>
   <SQL識別子 out_maxOccurs="検索結果出力最大件数">
     <DBA_IN_DATA>
       <引数要素 nulldata="空要素の扱い">引数要素のデータ</引数要素>
         ：
     </DBA_IN_DATA>
   </SQL識別子>
 </DBA_MULTI_SQL>
   ：
</DBadapter>

(2)　要求電文の要素と属性

要求電文の要素と属性について次の表に示します。なお，要素および属性の指定は，SQLオペレーション定義ファイルの設定値に依存します。SQLオペレーション定義ファイルについては「4.3.5(1) SQLオペレーション定義ファイルの作成」を参照してください。

表10-22　要求電文の要素と属性（DBアダプタ用のサービスリクエスタ）

要素名・属性名
種別
内容と設定値
設定値の型
省略可否

DBadapter
要素
ルート要素です。次の下位要素があります。

単一SQL文の実行要求の場合

下位要素はSQL識別子要素です。

複数SQL文の実行要求の場合

下位要素はDBA_MULTI_SQL要素です。

－
×

DBA_MULTI_SQL
要素
サービスリクエスタからの要求が，複数のSQL文を実行する要求であることを示す要素です。SQL識別子以降の下位要素で入力情報を設定します。
SQLオペレーション定義ファイルのMAX_SQL_NO要素に設定した値以内で複数記述できます。

注

単一のSQL文の実行を要求する場合，この要素は記述できません。

－
○

SQL識別子
要素
SQL識別子にはSQLオペレーション定義ファイルで指定したSQL識別子の名称を指定します。
DBA_IN_DATA以降の下位要素で，入力情報を設定します。
属性にout_maxOccursがあります。
－
○

　out_maxOccurs
属性
検索結果出力最大件数を指定します。0以上の値を指定します。

省略した場合

SQLオペレーション定義ファイルで指定したout_maxOccursの値が設定されます。

「0」を設定した場合

最大件数が2,147,483,647件に設定されます。

xsd:int
○

DBA_IN_DATA
要素
引数要素以降の下位要素で，SQLオペレーション定義ファイルで設定した引数要素のデータを設定します。
－
×

引数要素
要素
引数要素にはSQLオペレーション定義ファイルで指定した引数要素の名称を指定します。
この要素には，SQLオペレーション定義ファイルで指定した引数要素のデータが格納されます。
属性にnulldataがあります。

注

SQLオペレーション定義ファイルの設定で，該当するSQL識別子に引数要素がない場合，この要素は設定できません。

xsd:stringまたはdata_typeの設定値※
×

　nulldata
属性
SQLオペレーション定義ファイルで指定したdba_inf（引数の種別）が「data」の場合に，空要素のデータを「null」として扱うかどうかを指定します（dba_infが「data」以外の場合は，指定できません）。

「null」として扱う場合

「"Y"」を指定します。

「null」として扱わない場合

「"N"」を指定します。

なお，省略した場合，この属性には「"N"」が設定されます。
xsd:string
{Y｜N}
○

（凡例）

－：設定値はありません。

○：省略できます。

×：省略できません。

注※

格納する引数要素の型は，SQLオペレーション定義ファイルで，該当する引数要素に指定したdba_inf（引数の種別）によって異なります。dba_infがtable，columnまたはpresetの場合，xsd:string型になります。dba_infがdataの場合，data_type（データ型）の設定値に従ってください。data_typeの設定値と引数要素の型の対応については，「表10-23」および「表10-24」を参照してください。

また，dba_infがdataの場合，引数要素に格納するデータをシングルクォーテーション（'）で囲む必要はありません。

表10-23　data_typeの設定値と引数要素の型の対応（HiRDBの場合）

data_typeの設定値 | 引数要素の型
INTEGER | xsd:int※
SMALLINT | xsd:short※
DECIMAL | xsd:string
FLOAT | xsd:double※
REAL | xsd:float※
CHAR | xsd:string
VARCHAR | xsd:string
DATE | xsd:date※
TIME | xsd:string
TIMESTAMP | xsd:string
LONGVARBINARY | xsd:hexBinary

注※

記述した型に加え，空要素の設定も許可されます。

表10-24　data_typeの設定値と引数要素の型の対応（Oracleの場合）

data_typeの設定値 | 引数要素の型
NUMERIC | xsd:string
CHAR | xsd:string
VARCHAR | xsd:string
DATE | xsd:date※
TIME | xsd:string
TIMESTAMP | xsd:string
LONGVARCHAR | xsd:string
CLOB | xsd:string
VARBINARY | xsd:hexBinary
LONGVARBINARY | xsd:hexBinary
BLOB | xsd:hexBinary

注※

記述した型に加え，空要素の設定も許可されます。

なお，DBアダプタに送信する要求電文で設定する引数要素の値は，次の表のとおりに扱います。

表10-25　DBアダプタに送信する要求電文での引数要素の扱い

要求電文の引数要素の値 | SQLオペレーション定義ファイルの設定値 | 要求電文のnulldataの属性値 | 引数要素の扱い
dba_infの属性値 | data_typeの属性値
空要素 | data | － | "Y"または"△Y△"※ | null
"Y"または"△Y△"以外（省略時も含む） | 空文字列（""）
data以外 | － | － | 空文字列（""）
空要素以外 | data | CHAR，VARCHAR，LONGVARCHAR，CLOB | － | 値の前後の空白文字は削除しません。<引数要素>△ABC△</引数要素>は，空白文字を削除しないで"△ABC△"として扱います。
CHAR，VARCHAR，LONGVARCHAR，CLOB以外 | － | 値の前後の空白文字を削除します。<引数要素>△123△</引数要素>は，空白文字を削除して"123"として扱います。
data以外 | － | － | 値の前後の空白文字は削除しません。<引数要素>△ABC△</引数要素>は，空白文字を削除しないで"△ABC△"として扱います。

（凡例）

－：判定の材料ではありません。

△：一つ以上の空白文字（半角空白文字，改行文字，タブ文字）です。

注※

nulldataの属性値の前後の空白文字は無視します。

10.8.2　応答電文の形式

応答電文は，XML文書形式で出力されます。

なお，検索結果（列名など）にXML文書で使用できない「<」や「&」などの文字が含まれていた場合，「&lt;」や「&amp;」などにエスケープして応答電文に設定されます。そのため，データベースに格納されているデータをエスケープする必要はありません。

＜この項の構成＞

(1)　応答電文の形式

(2)　応答電文の要素と属性

(1)　応答電文の形式

応答電文の形式は，単一のSQL文の実行要求に対する応答の場合と，複数のSQL文の実行要求に対する応答の場合とで異なります。

応答電文の形式を次に示します。なお，斜体の文字は可変値を表します。

単一のSQL文の実行要求に対する応答の場合

ルート要素（DBadapter要素）の下位要素としてSQL識別子要素が出力されます。

<DBadapter>
 <SQL識別子 out_maxOccurs="検索結果出力最大件数">
   <DBA_IN_DATA>
     <引数要素 nulldata="空要素の扱い">引数要素のデータ</引数要素>
       :
   </DBA_IN_DATA>
   <DBA_OUT_DATA>
     <DBA_ResultSetNo>SQLリターン値</DBA_ResultSetNo>
     <DBA_ResultSetXmlNo>検索結果の件数</DBA_ResultSetXmlNo>
     <DBA_ResultSetName>
       <DBA_ResultColumnName cid="列番号">列の名称</DBA_ResultColumnName>
         :
     </DBA_ResultSetName>
     <DBA_ResultSet lid="行番号">
       <DBA_ResultColumn cid="列番号">該当行n列目の検索結果</DBA_ResultColumn>
         :
     </DBA_ResultSet>
       :
   </DBA_OUT_DATA>
 </SQL識別子>
</DBadapter>

複数のSQL文の実行要求に対する応答の場合

ルート要素（DBadapter要素）の下位要素としてDBA_MULTI_SQL要素が出力されます。要求電文で記述したDBA_MULTI_SQL要素と同数のDBA_MULTI_SQL要素が出力されます。

<DBadapter>
 <DBA_MULTI_SQL>
   <SQL識別子 out_maxOccurs="検索結果出力最大件数">
     <DBA_IN_DATA>
       <引数要素 nulldata="空要素の扱い">引数要素のデータ</引数要素>
         :
     </DBA_IN_DATA>
     <DBA_OUT_DATA>
       <DBA_ResultSetNo>SQLリターン値</DBA_ResultSetNo>
       <DBA_ResultSetXmlNo>検索結果の件数</DBA_ResultSetXmlNo>
       <DBA_ResultSetName>
         <DBA_ResultColumnName cid="列番号">列の名称</DBA_ResultColumnName>
           :
       </DBA_ResultSetName>
       <DBA_ResultSet lid="行番号">
         <DBA_ResultColumn cid="列番号">該当行n列目の検索結果</DBA_ResultColumn>
           :
       </DBA_ResultSet>
         :
     </DBA_OUT_DATA>
   </SQL識別子>
 </DBA_MULTI_SQL>
   ：
</DBadapter>

なお，要求電文で入力情報が0（ゼロ）の場合，応答電文は次の形式で出力されます。

(2)　応答電文の要素と属性

応答電文の要素と属性について次の表に示します。

表10-26　応答電文の要素と属性（DBアダプタ用のサービスリクエスタ）

要素名・属性名
種別
内容と設定値
格納される値の型
省略の有無

DBadapter
要素
ルート要素です。次の下位要素があります。

単一SQL文の実行要求に対する応答の場合

下位要素としてSQL識別子要素が出力されます。

複数SQL文の実行要求に対する応答の場合

下位要素としてDBA_MULTI_SQL要素が出力されます。

－
×

DBA_MULTI_SQL
要素
サービスリクエスタからの複数のSQL文の実行要求に対する応答であることを示す要素です。SQL識別子以降の下位要素に入力情報（要求電文での設定情報）および出力情報（SQLの実行結果情報）が出力されます。
要求電文で記述したDBA_MULTI_SQL要素と同数のDBA_MULTI_SQL要素が出力されます。
－
×※1

SQL識別子
要素
下位の要素「DBA_IN_DATA」および「DBA_OUT_DATA」に，それぞれ入力情報（要求電文での設定情報）および出力情報（SQLの実行結果情報）が格納されます。
SQL識別子は，要求電文に設定したSQL識別子です。
なお，属性out_maxOccurs（検索結果出力最大件数）は，要求電文で設定した場合にだけ格納されます。
－
×

DBA_IN_DATA
要素
要求電文で設定した入力情報がこの要素の下位要素に格納されます。
－
×

DBA_OUT_DATA
要素
下位の要素にSQL実行時の出力情報が格納されます。実行したSQLによって，格納される出力情報が異なります。

INSERTの場合

DBA_ResultSetNoが下位要素として格納されます。

SELECTの場合

次の要素が下位要素として格納されます。

DBA_ResultSetNo

DBA_ResultSetXmlNo

DBA_ResultSetName

DBA_ResultSet

－
×

DBA_ResultSetNo
要素
実行したSQLによって，格納される出力情報が異なります。

INSERTの場合

更新した行数（PreparedStatementクラスのexecuteUpdateで取得した値）が格納されます。格納される要素の値が2,147,483,647を超えた場合に格納される値は，DB Connectorの使用するJDBCドライバのPreparedStatementクラスのexecuteUpdateの仕様に従います。

SELECTの場合

検索結果の件数が格納されます。

格納される要素の値が2,147,483,647を超えた場合，2,147,483,647が格納されます。

xsd:int
×

DBA_ResultSetXmlNo
要素
実行したSQLがSELECTの場合，実際の検索結果の件数（DBA_ResultSetNoの値）のうち，この応答電文に格納されている検索結果の件数が格納されます。
DBA_ResultSetNoの値が，要求電文またはSQLオペレーション定義ファイルのout_maxOccursに指定した値よりも大きい場合，out_maxOccursに指定した値が格納されます。
また，格納される要素の値が2,147,483,647を超えた場合，2,147,483,647が格納されます。
xsd:int
○

DBA_ResultSetName
要素
実行したSQLがSELECTの場合，検索結果の列の名称が，下位要素DBA_ResultColumnNameに格納されます。
なお，検索結果が0件の場合，この要素は格納されません。
－
△

DBA_ResultColumnName
要素
実行したSQLがSELECTの場合，該当する列の名称が格納されます。
なお，結果の列がデータベースの列の場合，「列名」の形式で設定されます。また，結果の列名が取得されない場合，SQLを発行した先のデータベースの仕様に従った名称が返されます。
属性にcidがあります。
xsd:string
△

　cid
属性
DBA_ResultColumnNameに格納される値の列番号を示します。
xsd:int

DBA_ResultSet
要素
実行したSQLがSELECTの場合，一行ごとの結果情報が，下位要素のDBA_ResultColumnに格納されます。なお，検索結果が0件の場合，この要素は格納されません。
属性にlidがあります。
－
△

　lid
属性
DBA_ResultSetに格納される値の行番号を示します。
また，格納される要素の値が2,147,483,647を超えた場合，2,147,483,647が格納されます。
xsd:int

DBA_ResultColumn
要素
該当する行（DBA_ResultSetで示される行）のn列目の検索結果が格納されます。※2
属性にcidおよびnulldataがあります。
xsd:string
△

　cid
属性
DBA_ResultColumnに格納される値の列番号を示します。
xsd:int

　nulldata
属性
DBA_ResultColumnに格納されたデータがnullであるかどうかを示します。
nullの場合「Y」が設定されます。nullでない場合，この属性は設定されません。
xsd:string

（凡例）

－：値は格納されません。

○：SQLがSELECTの場合にだけ出力されます。

△：SQLがSELECTの場合で，実行結果が1件以上のときに出力されます。

×：必ず出力されます。省略されません。

注※1

複数のSQL文の実行要求に対する応答の場合には必ず出力されます。単一のSQL文の実行要求に対する応答の場合には出力されません。

注※2

ResultSetクラスのgetStringで取得した値が格納されます。そのため，検索結果の書式はDB Connectorの使用するJDBCドライバのResultSetクラスのgetStringの仕様に従います。検索結果の書式を変更する場合，データベースが提供する関数（ファンクション）を使用して検索してください。

HiRDBのTIMESTAMP型（列名：c_ts）の書式をVARCHAR_FORMAT関数で変更する場合の例を次に示します。

SELECT VARCHAR_FORMAT(c_ts, 'YYYY-MONTH-DD HH:MI') FROM 表名

11.　ビジネスプロセスのデバッグ

この章では，ビジネスプロセスのデバッグの流れ，および操作手順について説明します。

＜この章の構成＞

11.1　デバッグの流れ

11.2　ビジネスプロセスのデバッグの準備

11.3　ビジネスプロセスのデバッグの開始

11.4　リクエストの送信

11.5　ビジネスプロセスのデバッグ

11.6　ビジネスプロセスのデバッグの終了

11.1　デバッグの流れ

ビジネスプロセスのデバッグの流れを次の図に示します。

図11-1　ビジネスプロセスのデバッグの流れ

ビジネスプロセスのデバッグに関する作業について次に説明します。

＜この節の構成＞

(1)　ビジネスプロセスのデバッグの準備

(2)　ビジネスプロセスのデバッグの開始

(3)　リクエストの送信

(4)　ビジネスプロセスのデバッグ

(5)　ビジネスプロセスのデバッグの終了

(1)　ビジネスプロセスのデバッグの準備

ビジネスプロセスのデバッグの準備では，次の項目を実施します。

ブレークポイントの設定
任意のアクティビティでプロセスインスタンスの処理を中断したい場合，中断するアクティビティにブレークポイントを設定します。
ブレークポイントの設定については，「11.2.1　ブレークポイントの設定」を参照してください。

サービスのエミュレーションの設定
作成済みの電文を実際にサービスを呼び出したときの応答電文の代わりに利用したい場合，サービスのエミュレーションを設定します。
サービスのエミュレーションの設定については，「11.2.2　サービスのエミュレーションの設定」を参照してください。

(2)　ビジネスプロセスのデバッグの開始

ビジネスプロセスのデバッグを開始します。

ビジネスプロセスのデバッグの開始方法については，「11.3　ビジネスプロセスのデバッグの開始」を参照してください。

(3)　リクエストの送信

サービスリクエスタやサービスリクエスタのエミュレーションを使って，受付アクティビティにリクエストを送信します。リクエストの送信後，ブレークポイントが設定されているアクティビティまでプロセスインスタンスの処理が進むと，プロセスインスタンスの処理が自動で中断されます。

リクエストの送信については，「11.4　リクエストの送信」を参照してください。

(4)　ビジネスプロセスのデバッグ

ビジネスプロセスのデバッグでは，次の項目を実施できます。

ステップ実行および再開
プロセスインスタンスの処理をアクティビティ単位で中断しながら，逐次処理を進めることができます。プロセスインスタンスの処理が中断しているときに実施できます。
ステップ実行および再開の方法については，「11.5.1　ステップ実行および再開」を参照してください。

変数・相関セットの確認
ビジネスプロセスで使用している変数，および相関セットを確認します。プロセスインスタンスの処理が中断しているときに実施できます。
変数・相関セットの確認方法については，「11.5.2　変数・相関セットの確認」を参照してください。

変数の更新
ビジネスプロセスで使用している変数の値を変更し，ビジネスプロセスに反映します。プロセスインスタンスの処理が中断しているときに実施できます。
変数の更新方法については，「11.5.3　変数の更新」を参照してください。

XPathの評価
分岐アクティビティや代入アクティビティに指定した条件式の妥当性を評価したり，変数の値の一部を参照したりできます。プロセスインスタンスの処理が中断しているときに実施できます。
XPathの評価方法については，「11.5.4　XPathの評価」を参照してください。

サービスのエミュレーション（自動／手動）
設定した応答電文をサービスの応答電文の代わりに利用します。
サービスの自動エミュレーションの実行方法については，「11.5.5　サービスの自動エミュレーション」を参照してください。サービスの手動エミュレーションの実行方法については，「11.5.6　サービスの手動エミュレーション」を参照してください。

(5)　ビジネスプロセスのデバッグの終了

ビジネスプロセスを定義し直す場合や，ビジネスプロセスの動作確認が終わった場合，ビジネスプロセスのデバッグを終了します。

ビジネスプロセスのデバッグの終了方法については，「11.6　ビジネスプロセスのデバッグの終了」を参照してください。

11.2　ビジネスプロセスのデバッグの準備

ビジネスプロセスのデバッグの準備では，ブレークポイントおよびサービスのエミュレーションを設定します。

なお，ブレークポイントおよびサービスのエミュレーションは，ビジネスプロセスのデバッグの開始後に設定することもできます。ビジネスプロセスのデバッグの開始後に設定する場合は，プロセスインスタンスの処理が中断しているときに実施してください。プロセスインスタンスの処理状態は，デバッグビューで確認できます。デバッグビューの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.4　ビジネスプロセスのデバッグ画面」を参照してください。

＜この節の構成＞

11.2.1　ブレークポイントの設定

11.2.2　サービスのエミュレーションの設定

11.2.1　ブレークポイントの設定

任意のアクティビティでプロセスインスタンスの処理を中断したい場合，中断するアクティビティにブレークポイントを追加します。追加したブレークポイントは，必要に応じて条件設定を変更したり，エクスポートおよびインポートしたりします。

ブレークポイントを設定できるアクティビティの種類については，「11.5.1(1) プロセスインスタンスの処理を中断できるアクティビティ」を参照してください。

＜この項の構成＞

(1)　ブレークポイントを追加する

(2)　ブレークポイントの条件設定を変更する

(3)　ブレークポイントを削除する

(4)　ブレークポイントを無効にする

(5)　ブレークポイントをエクスポート／インポートする

(1)　ブレークポイントを追加する

ブレークポイントには，通常のブレークポイントと条件付きブレークポイントの二つがあります。通常のブレークポイントを追加した場合，アクティビティに処理が進んだときにプロセスインスタンスの処理が必ず中断されます。条件付きブレークポイントを追加した場合，アクティビティに処理が進んだときに，入力した条件式を満たしている（評価結果が真になる）と，プロセスインスタンスの処理が中断されます。

アクティビティに通常のブレークポイント，および条件付きブレークポイントを追加する手順を次に示します。

(a)　通常のブレークポイントの追加

ビジネスプロセス定義画面でブレークポイントを追加するアクティビティを右クリックし，［ブレークポイントの追加］を選択します。
アクティビティにブレークポイントが追加され，アクティビティの横にブレークポイントを表すチェックが付きます。ビジネスプロセス定義画面の詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.3　ビジネスプロセス定義画面」を参照してください。

(b)　条件付きブレークポイントの追加

ビジネスプロセス定義画面でブレークポイントを追加するアクティビティを右クリックし，［条件付きブレークポイントの追加］を選択します。
［条件設定］ダイアログが表示されます。

条件式をXPathで入力します。※

［OK］ボタンをクリックします。
アクティビティにブレークポイントが追加され，アクティビティの横にブレークポイントを表すチェックが付きます。
ブレークポイントを追加したアクティビティに処理が進んだときに，入力したXPathの条件式を満たしている（評価結果が真になる）と，プロセスインスタンスの処理が中断されます。

注※　条件式を入力しなかった場合は，通常のブレークポイントとして扱われます。

(2)　ブレークポイントの条件設定を変更する

追加した通常のブレークポイントおよび条件付きブレークポイントは，必要に応じて中断の条件を変更できます。

ブレークポイントの条件設定を変更する手順を次に示します。

ビジネスプロセス定義画面でブレークポイントを追加したアクティビティを右クリックし，［条件の変更］を選択します。
［条件設定］ダイアログが表示されます。

条件式をXPathで入力します。※

［OK］ボタンをクリックします。
ブレークポイントの条件設定が変更されます。
ブレークポイントの条件設定を変更したアクティビティに処理が進んだときに，入力したXPathの条件式を満たしている（評価結果が真になる）と，プロセスインスタンスの処理が中断されます。

注※　条件式を入力しなかった場合は，通常のブレークポイントとして扱われます。

(3)　ブレークポイントを削除する

ビジネスプロセス定義画面でブレークポイントを削除するアクティビティを右クリックし，［ブレークポイントの削除］を選択すると，対象のアクティビティのブレークポイントが削除されます。

(4)　ブレークポイントを無効にする

Eclipseの標準機能を使用して，ブレークポイントビューから，アクティビティに追加したブレークポイントを一時的に無効にできます。

ブレークポイントビューの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.4　ビジネスプロセスのデバッグ画面」を参照してください。

(5)　ブレークポイントをエクスポート／インポートする

Eclipseの標準機能を使用して，アクティビティに追加したブレークポイントをエクスポートできます。また，エクスポートしたブレークポイントをインポートすることもできます。

エクスポート方法およびインポート方法の詳細については，Eclipseのドキュメントを参照してください。

注意

ブレークポイントをインポートする前に，すべてのアクティビティに設定されているブレークポイントを必ず削除してください。アクティビティにブレークポイントの設定が残っている場合，正常にインポートできないおそれがあります。

11.2.2　サービスのエミュレーションの設定

作成済みの応答電文を実際のサービスを呼び出す代わりに利用したい場合，サービスのエミュレーションを設定します。

サービスのエミュレーションを利用することで，ビジネスプロセスから呼び出すサービスがなくても，プロセスインスタンスの処理を進めることができます。

サービスのエミュレーションには，自動エミュレーションと手動エミュレーションの二つの機能があります。

サービスの自動エミュレーションとは，サービス呼出アクティビティからサービスを呼び出す前に，エミュレーションするサービスのオペレーションや，オペレーションの応答電文を設定しておくことで，プロセスインスタンスの処理がサービス呼出アクティビティに進んだときに，自動的にサービスのエミュレーションが実行される機能です。

サービスの手動エミュレーションとは，プロセスインスタンスの処理がサービス呼出アクティビティで中断しているときに，エミュレーションするサービスの応答電文を設定し，手動でサービスのエミュレーションを実行する機能です。

＜この項の構成＞

(1)　サービスの自動エミュレーションの設定

(2)　サービスの手動エミュレーションの設定

(1)　サービスの自動エミュレーションの設定

サービスの自動エミュレーションでは，エミュレーションするサービスのオペレーション，応答種別，応答電文などを設定します。

サービスの自動エミュレーションの設定手順については，「11.5.5　サービスの自動エミュレーション」を参照してください。

(2)　サービスの手動エミュレーションの設定

サービスの手動エミュレーションでは，プロセスインスタンスの処理がサービス呼出アクティビティで中断しているときに，応答種別および応答電文を設定します。

サービスの手動エミュレーションの設定手順については，「11.5.6　サービスの手動エミュレーション」を参照してください。

11.3　ビジネスプロセスのデバッグの開始

ビジネスプロセスのデバッグを開始する手順について説明します。

テスト環境を起動します。
テスト環境を起動する方法については，「2.4.3(1) テスト環境の起動と停止」を参照してください。

標準受付を開始します。
ビジネスプロセスに標準受付を使用していない場合，この手順は不要です。
標準受付を開始する方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.9　標準受付を開始する」を参照してください。

次のどれかの方法で，［デバッグ構成］ダイアログを表示します。

Eclipseのツールバーから［デバッグ（[図データ]）］－［デバッグの構成］を選択します。

ツリービューのサービス定義一覧からデバッグするビジネスプロセスを右クリックし，［デバッグの構成］を選択します。

パッケージ・エクスプローラーから対象のプロジェクトを右クリックし，［デバッグ］－［デバッグの構成］を選択します。

Eclipseのメニューから［実行］－［デバッグの構成］を選択します。

［デバッグ構成］ダイアログのメニューから［HCSC-BP］を右クリックし，［新規］を選択します。

［名前］にデバッグの名称を入力します。

［ビジネスプロセス設定］タブの［デバッグ対象］のドロップダウンリストから，デバッグするビジネスプロセスを選択します。

［デバッグ設定］タブを選択し，必要な情報を指定します。
［デバッグ設定］タブの表示・指定する内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.5.1　デバッグ構成ダイアログ」を参照してください。

［デバッグ］ボタンをクリックします。
デバッグの開始処理の経過がコンソールビューに表示されます。ビジネスプロセス，ユーザ定義受付，およびサービスアダプタが編集中の場合は，編集中の定義を保管するかを確認するダイアログが表示されます。
ビジネスプロセスエディタが表示されます。ビジネスプロセスエディタの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.4　ビジネスプロセスのデバッグ画面」を参照してください。
Eclipse起動後，最初にビジネスプロセスのデバッグを開始するときは，［アカウント認証］ダイアログが表示されます。ユーザIDとパスワードを入力して［OK］ボタンをクリックすると，ビジネスプロセスのデバッグの開始処理が開始されます。

［OK］ボタンをクリックします。
ビジネスプロセスのデバッグが開始されます。
一度ビジネスプロセスのデバッグを開始すると，Eclipseの［デバッグ］メニューにデバッグ構成のショートカットが作成されます。以降は，このショートカットを選択することで，手順3～手順8の操作を省略してデバッグを開始できます。

注意

開発環境，運用環境，および実行環境は，同一のマシンに構築してください。複数マシンの構成にした場合，動作は保証できません。

HCSCサーバはセットアップ済みの状態である必要があります。なお，セットアップは，単一のHCSCサーバ構成で実施してください。HCSC簡易セットアップを利用する場合も，単一のHCSCサーバ構成でセットアップしてください。

HCSCサーバおよびデータベースを起動しておいてください。

ビジネスプロセスのデバッグを開始する場合，次のときにエラーになることがあります。
・開発環境と運用環境でリポジトリの構成形態（データベースとCosminexus RMの組み合わせ）が不一致である。
・運用環境のリポジトリで配備済みのサービスが，開発環境で更新または削除されている。
・開発環境と運用環境のリポジトリ内でSOAPモードが不一致である。
エラーになる場合は，定義したすべてのHCSCコンポーネントを停止してHCSCサーバから削除したあと，再度ビジネスプロセスのデバッグを開始してください。

ビジネスプロセスのデバッグの開始処理の途中でエラーが発生した場合，処理を中断して終了します。ただし，エラー発生前に終了している処理は，開始前の状態に戻りません。その場合，エラーの発生原因を取り除いて，再度開始してください。

ビジネスプロセスのデバッグを開始したあとでビジネスプロセスやサービスアダプタを変更すると，デバッグの各機能が正常に動作しないおそれがあります。デバッグ中にビジネスプロセスやサービスアダプタを変更した場合は，ビジネスプロセスのデバッグをいったん終了してから再度デバッグを開始してください。

ビジネスプロセスのデバッグは，単一のマシン内で開始してください。複数のマシン間でデバッグを開始した場合，動作を保証しません。

ビジネスプロセスのデバッグの開始および終了操作は一度に一つしか実行できません。デバッグビューで複数のデバッグ構成を選択した状態で，デバッグの開始や終了操作をしないでください。

［デバッグ構成］ダイアログの［デバッグ対象］で選択したビジネスプロセスだけ，デバッグが開始されます。ビジネスプロセスから呼び出すほかのビジネスプロセスなど，複数のビジネスプロセスを同時にデバッグする場合は，それぞれビジネスプロセスのデバッグを開始してください。

デバッグの開始に失敗すると，サービスが起動できない状態となり，HCSCコンポーネントを停止するまでビジネスプロセスのデバッグを開始できなくなることがあります。デバッグの開始に失敗した場合は，csccompostop -allコマンド，csccompoundeploy -allコマンドの順に実行してHCSCコンポーネントを停止し，アンデプロイしてください。そのあと，ビジネスプロセスのデバッグを再度開始してください。なお，「9.6　HCSCコンポーネントを停止してHCSCサーバから削除する処理の一括実行」の方法では，HCSCコンポーネントを停止できません。
csccompostopコマンドの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompostop（HCSCコンポーネントの停止）」を参照してください。csccompoundeployコマンドの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompoundeploy（配備済みのHCSCコンポーネントの削除）」を参照してください。

同一のビジネスプロセスを重複して開始することはできません。

参考

ビジネスプロセスのデバッグを開始するときは，HCSCコンポーネントをHCSCサーバに配備して開始する処理が一括で実行されます。このとき，ビジネスプロセス，サービスアダプタ，およびユーザ定義は次のように配備定義されます。

ビジネスプロセス
［デバッグ構成］ダイアログで選択したビジネスプロセスの場合，再度パッケージングをして配備定義します。
［デバッグ構成］ダイアログで選択したビジネスプロセスから参照しているビジネスプロセスの場合，すでに配備定義（公開）されているときは，ビジネスプロセスのデバッグの開始時に再度配備定義をしません。それ以外のときは，再度パッケージングをして配備定義します。

サービスアダプタ
すでにパッケージングされている場合や配備定義（公開）されている場合は，ビジネスプロセスのデバッグの開始時に再度パッケージングや配備定義をしません。

ユーザ定義受付
［デバッグ構成］ダイアログで選択したビジネスプロセスのユーザ定義受付の場合，再度配備定義します。
［デバッグ構成］ダイアログで選択したビジネスプロセスから参照しているビジネスプロセスのユーザ定義受付の場合で，すでに配備定義（公開）されているときは，ビジネスプロセスのデバッグの開始時に再度配備定義しません。それ以外のときは，再度配備定義します。

11.4　リクエストの送信

サービスリクエスタやサービスリクエスタのエミュレーションを使って，受付アクティビティにリクエストを送信します。サービスリクエスタのエミュレーションについては，「付録H　サービスリクエスタのエミュレーション」を参照してください。

リクエストを送信すると，パースペクティブを切り替えるかどうかを確認するダイアログが表示されます。［はい］ボタンをクリックすると，［HCSCTE］パースペクティブから［デバッグ］パースペクティブに切り替わり，デバッグビュー，変数ビューなどのビューが表示されます。

リクエストの送信後，プロセスインスタンスの処理が開始され，ブレークポイントを設定しているアクティビティでプロセスインスタンスの処理が中断されます。

11.5　ビジネスプロセスのデバッグ

ビジネスプロセスのデバッグで実施できる操作について説明します。

ビジネスプロセスのデバッグの各操作は，プロセスインスタンスの処理が中断しているときに行ってください。プロセスインスタンスの処理状態は，デバッグビューで確認できます。

＜この節の構成＞

11.5.1　ステップ実行および再開

11.5.2　変数・相関セットの確認

11.5.3　変数の更新

11.5.4　XPathの評価

11.5.5　サービスの自動エミュレーション

11.5.6　サービスの手動エミュレーション

11.5.1　ステップ実行および再開

プロセスインスタンスの処理を中断できるアクティビティの種類と，ステップ実行および再開の操作について説明します。

＜この項の構成＞

(1)　プロセスインスタンスの処理を中断できるアクティビティ

(2)　ステップ実行および再開の操作

(3)　ステップインを実行したときに中断するアクティビティ

(4)　ステップオーバーを実行したときに中断するアクティビティ

(5)　ステップリターンを実行したときに中断するアクティビティ

(1)　プロセスインスタンスの処理を中断できるアクティビティ

プロセスインスタンスの処理を中断できるアクティビティの種類を次の表に示します。

表11-1　プロセスインスタンスの処理を中断できるアクティビティの種類

アクティビティの分類 | アクティビティ | 中断の可否
基本アクティビティ | 開始アクティビティ | ×
受付アクティビティ | ○
応答アクティビティ | ○
サービス呼出アクティビティ | ○
Java呼出アクティビティ | ○
データ変換アクティビティ | ○
代入アクティビティ | ○
無操作アクティビティ | ○
フォルト送出アクティビティ | ○
待機アクティビティ | ○
検証アクティビティ | ○
終了アクティビティ | ×
構造アクティビティ | スコープアクティビティ | ○
繰り返しアクティビティ | ○
分岐開始アクティビティ | ○
分岐終了アクティビティ | ×
並列処理開始アクティビティ | ○
並列処理終了アクティビティ | ×

（凡例）

○：中断できます。

×：中断できません。

(2)　ステップ実行および再開の操作

プロセスインスタンスをステップ実行，または再開するには，デバッグビューで中断しているアクティビティを選択し，実行したい操作のアイコンをクリックします。

ステップ実行および再開の操作と，デバッグの動作を次の表に示します。

表11-2　ステップ実行および再開の操作と，デバッグの動作

ステップ実行の操作 | アイコン | デバッグの動作
ステップイン | [図データ]　 | ステップインが実行されます。アクティビティごとにステップインを実行したときに中断するアクティビティについては，「11.5.1(3) ステップインを実行したときに中断するアクティビティ」を参照してください。
ステップオーバー | [図データ]　 | ステップオーバーが実行されます。アクティビティごとにステップオーバーを実行したときに中断するアクティビティについては，「11.5.1(4) ステップオーバーを実行したときに中断するアクティビティ」を参照してください。
ステップリターン | [図データ]　 | ステップリターンが実行されます。アクティビティごとにステップリターンを実行したときに中断するアクティビティについては，「11.5.1(5) ステップリターンを実行したときに中断するアクティビティ」を参照してください。
再開 | [図データ]　 | 次にブレークポイントを設定しているアクティビティまで，プロセスインスタンスの処理が再開されます。

なお，サービス呼出アクティビティからフォルト処理に移る場合，フォルト処理でプロセスインスタンスの処理を中断させるには，フォルト処理を行うアクティビティにブレークポイントを設定するか，ステップインを実行する必要があります。

(3)　ステップインを実行したときに中断するアクティビティ

アクティビティごとにステップインを実行したときに中断するアクティビティを次の表および図に示します。

表11-3　アクティビティごとにステップインを実行したときに中断するアクティビティ

アクティビティの分類 | アクティビティ | 説明
基本アクティビティ | 次のアクティビティに進みます。
構造アクティビティ | スコープアクティビティ | スコープアクティビティ内で最初に処理されるアクティビティに進みます。
繰り返しアクティビティ | 繰り返しアクティビティ内で最初に処理されるアクティビティに進みます。
分岐開始アクティビティ | 分岐開始アクティビティから分岐終了アクティビティまでの間で，最初に処理されるアクティビティに進みます。
並列処理開始アクティビティ | 並列処理開始アクティビティから並列処理終了アクティビティまでの間で，最初に処理されるアクティビティに進みます。

図11-2　基本アクティビティでステップインを実行したときに中断するアクティビティ

図11-3　構造アクティビティ（スコープ，繰り返し）でステップインを実行したときに中断するアクティビティ

図11-4　構造アクティビティ（分岐，並列）でステップインを実行したときに中断するアクティビティ

(4)　ステップオーバーを実行したときに中断するアクティビティ

アクティビティごとにステップオーバーを実行したときに中断するアクティビティを次の表および図に示します。

表11-4　アクティビティごとにステップオーバーを実行したときに中断するアクティビティ

アクティビティの分類 | アクティビティ | 説明
基本アクティビティ | 次のアクティビティに進みます。
構造アクティビティ | スコープアクティビティ | スコープアクティビティの内部のアクティビティを処理して次のアクティビティに進みます。途中でブレークポイントが設定されている場合は，そこで中断します。
繰り返しアクティビティ | 繰り返しアクティビティの内部のアクティビティを処理して次のアクティビティに進みます。途中でブレークポイントが設定されている場合は，そこで中断します。
分岐開始アクティビティ | 分岐終了アクティビティの次のアクティビティまで処理します。途中でブレークポイントが設定されている場合は，そこで中断します。
並列処理開始アクティビティ | 並列処理終了アクティビティの次のアクティビティまで処理します。途中でブレークポイントが設定されている場合は，そこで中断します。

図11-5　基本アクティビティでステップオーバーを実行したときに中断するアクティビティ

図11-6　構造アクティビティ（スコープ，繰り返し）でステップオーバーを実行したときに中断するアクティビティ

図11-7　構造アクティビティ（分岐，並列）でステップオーバーを実行したときに中断するアクティビティ

(5)　ステップリターンを実行したときに中断するアクティビティ

アクティビティごとにステップリターンを実行したときに中断するアクティビティについて説明します。

構造アクティビティ内の基本アクティビティで実行した場合は，所属する構造アクティビティの次のアクティビティまで処理します。所属する構造アクティビティが，スコープアクティビティまたは繰り返しアクティビティの場合は，内部のアクティビティをすべて処理して，次のアクティビティに進みます。所属する構造アクティビティが分岐開始アクティビティまたは並列処理開始アクティビティの場合は，対となる分岐終了アクティビティ，または並列処理終了アクティビティの次の位置まで処理します。

中断しているアクティビティが構造アクティビティ内にない場合は，再開と同じ動作をします。

途中でブレークポイントが設定されている場合は，そこで中断します。

構造アクティビティ内の各アクティビティでステップリターンを実行したときに中断するアクティビティを次の図に示します。

図11-8　構造アクティビティ内の基本アクティビティでステップリターンを実行したときに中断するアクティビティ

図11-9　構造アクティビティ内の構造アクティビティ（スコープ，繰り返し）でステップリターンを実行したときに中断するアクティビティ

図11-10　構造アクティビティ内の構造アクティビティ（分岐，並列）でステップリターンを実行したときに中断するアクティビティ

11.5.2　変数・相関セットの確認

プロセスインスタンスの処理が中断しているときに，デバッグビューで中断しているアクティビティを選択すると，ビジネスプロセスで現在使用している変数名，変数の値，相関セット名，および相関IDが変数ビューに表示されます。

変数ビューの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.4　ビジネスプロセスのデバッグ画面」を参照してください。

11.5.3　変数の更新

変数ビューに表示された変数の値を変更し，ビジネスプロセスに反映します。

変数の型ごとに入力できる値の範囲を次の表に示します。

表11-5　変数の型ごとに入力できる値の範囲

変数の型
値の範囲

numeric型
java.lang.DoubleのvalueOf（java.lang.String）メソッドで解釈できる値（例：+1，3.14，1e-2d）

boolean型
trueまたはfalse

string型
任意の文字列（例：15インチLCDディスプレイ）

メッセージ型※

XML形式の場合
任意のXML（例：<?xml version="1.0" encoding="UTF-8"?><message>Hello</message>）

non-XML形式の場合
任意のバイナリデータ（例：Hello）

any形式の場合
任意の形式

注※

メッセージ型の変数を更新すると，XMLの文字コードは必ずUTF-8になります（UTF-8以外の文字コードを指定してもUTF-8に変換されます）。

変数の更新には，［値の設定］ダイアログで更新する方法，変数ビューの入力フィールドから更新する方法，および変数ビューの［値］セルから更新する方法があります。

変数を更新する手順を次に示します。

＜この項の構成＞

(1)　［値の設定］ダイアログで更新する場合

(2)　変数ビューの入力フィールドから更新する場合

(3)　変数ビューの［値］セルから更新する場合

(1)　［値の設定］ダイアログで更新する場合

変数ビューから更新する変数を右クリックし，［値の変更］を選択します。
［値の設定］ダイアログが表示されます。［値の設定］ダイアログに表示される内容は，メッセージ型の場合とメッセージ型以外の場合とで異なります。それぞれの場合の［値の設定］ダイアログの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.5.3　値の設定ダイアログ」を参照してください。

［値の設定］ダイアログの入力フィールドに値を入力します。
変数の型がメッセージ型の場合，［XMLの保存］ボタンをクリックすることで，入力中の変数の値をXMLファイルに保存できます。また，［XMLの読み込み］ボタンをクリックすることで，XMLファイルに保存した変数の値を入力フィールドに読み込めます。

［OK］ボタンをクリックします。
入力した変数の値がビジネスプロセスに反映されます。更新した変数のセルが黄色で表示されます。

(2)　変数ビューの入力フィールドから更新する場合

変数ビューから更新する変数を選択します。
変数ビューの下部の入力フィールドに，選択した変数の値が表示されます。

入力フィールドに値を入力します。

次のどちらかの方法で変数を更新します。

［Ctrl］キー＋［S］キーを押す

右クリックし，［値の代入］を選択する

入力した変数の値がビジネスプロセスに反映されます。更新した変数のセルが黄色で表示されます。

(3)　変数ビューの［値］セルから更新する場合

変数ビューから，更新する変数の［値］セルを選択します。

［値］セルに値を入力します。

［Enter］キーを押します。
入力した変数の値がビジネスプロセスに反映されます。更新した変数のセルが黄色で表示されます。

11.5.4　XPathの評価

分岐アクティビティや代入アクティビティに指定した条件式の妥当性を評価したり，変数の値の一部を参照したりできます。プロセスインスタンスの処理が中断しているときに実行できます。

XPathの評価の手順を次に示します。

Eclipseのメニューから，［ウィンドウ］－［ビューの表示］－［その他］を選択します。
［ビューの表示］ダイアログが表示されます。

［デバッグ］－［HCSC XPath 評価］を選択し，［OK］ボタンをクリックします。
HCSC XPath 評価ビューが表示されます。HCSC XPath 評価ビューの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.4　ビジネスプロセスのデバッグ画面」を参照してください。

デバッグビューで，条件式を評価するビジネスプロセスのアクティビティを選択します。

HCSC XPath 評価ビューの入力フィールドにXPath式を入力し，［評価］ボタンをクリックします。
XPath式に対する評価結果が入力フィールドの下に表示されます。

11.5.5　サービスの自動エミュレーション

サービスの自動エミュレーションの設定，および実行手順について説明します。

＜この項の構成＞

(1)　サービスの自動エミュレーションの設定

(2)　サービスの自動エミュレーションの実行

(1)　サービスの自動エミュレーションの設定

Eclipseのメニューから，［ウィンドウ］－［ビューの表示］－［その他］を選択します。
［ビューの表示］ダイアログが表示されます。

［デバッグ］－［HCSC 自動エミュレート］を選択し，［OK］ボタンをクリックします。
HCSC 自動エミュレートビューが表示されます。
HCSC 自動エミュレートビューの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.4　ビジネスプロセスのデバッグ画面」を参照してください。

HCSC 自動エミュレートビューの［追加］ボタンをクリックします。
HCSC 自動エミュレートビューのテーブルに行が追加されます。

［サービス名］のセルをクリックし，ドロップダウンリストからエミュレーションしたいサービスを選択します。

［オペレーション名］のセルをクリックし，ドロップダウンリストからエミュレーションしたいサービスのオペレーションを選択します。

［応答種別］のセルを選択し，ドロップダウンリストから通常応答またはフォルト応答を選択します。

［応答電文］のセルを選択し，［...］ボタンをクリックします。
［ファイル選択］ダイアログが表示されます。

応答電文のファイル（拡張子：.xmlまたは.xsl）を選択し，［OK］ボタンをクリックします。※
注※　応答電文には，XMLの文字コードがUTF-8のものしか指定できません。

必要に応じて，［条件］のセルを選択し，XPath式で条件を入力します。
サービスの要求電文に対して条件式を評価した結果が真の場合に，サービスの自動エミュレーションが実行されます。条件を入力しなかった場合は，常に真として評価されます。

［有効］のセルのチェックボックスをチェックします。
サービスの自動エミュレーションが設定されます。

HCSC 自動エミュレートビューの設定内容を外部ファイルに保存したい場合は，HCSC 自動エミュレートビューで［保存］ボタンをクリックします。

また，［読み込み］ボタンをクリックすることで，外部ファイルに保存した設定内容を取得できます。すでにHCSC 自動エミュレートビューに設定内容がある場合は，HCSC 自動エミュレートビューの設定内容を上書きしてもよいか確認するダイアログが表示されます。

HCSC 自動エミュレートビューに同一のサービスとオペレーションの組み合わせを複数設定した場合，優先順位が最も高いサービスのエミュレーションが実行されます。サービスの優先順位を変更するには，変更したい行を選択し，［上へ］ボタンまたは［下へ］ボタンをクリックします。

応答電文のファイル名を右クリックし，［ファイルの表示］を選択すると，対象のファイルを開くことができます。

複数のビジネスプロセスをデバッグする場合，自動エミュレーションの設定（サービス名，オペレーション名）は，すべてのビジネスプロセスで有効になります。

なお，自動エミュレーションの対象となるサービス呼出アクティビティに対して手動エミュレーションを実行した場合，手動エミュレーションの実行が優先されます。

(2)　サービスの自動エミュレーションの実行

HCSC 自動エミュレートビューに設定したサービス呼出アクティビティにプロセスインスタンスの処理が進むと，設定した応答電文がサービスの応答電文の代わりに自動的に利用されます。

XML形式のファイルを応答電文に指定した場合，ファイルの内容がそのままサービスの応答電文としてエミュレーションされます。XSL形式のファイルを応答電文に指定した場合，サービスの要求電文にファイルの内容を適用した結果がサービスの応答電文としてエミュレーションされます。

なお，サービスの自動エミュレーションを設定していない場合は，通常のサービス呼び出しが実行されます。

注意

HCSC 自動エミュレートビューを閉じている場合，サービスの自動エミュレーションは実行されません。

11.5.6　サービスの手動エミュレーション

サービスの手動エミュレーションの設定，および実行手順について説明します。

＜この項の構成＞

(1)　サービスの手動エミュレーションの設定

(2)　サービスの手動エミュレーションの実行

(1)　サービスの手動エミュレーションの設定

Eclipseのメニューから，［ウィンドウ］－［ビューの表示］－［その他］を選択します。
［ビューの表示］ダイアログが表示されます。

［デバッグ］－［HCSC エミュレート］を選択し，［OK］ボタンをクリックします。
HCSC エミュレートビューが表示されます。
HCSC エミュレートビューの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.4　ビジネスプロセスのデバッグ画面」を参照してください。

デバッグビューで手動エミュレーションするアクティビティを選択します。

HCSC エミュレートビューの［追加］ボタンをクリックします。
HCSC エミュレートビューのテーブルに行が追加されます。

［応答種別］のセルを選択し，ドロップダウンリストから通常応答またはフォルト応答を選択します。

［応答電文］のセルを選択し，［...］ボタンをクリックします。
［ファイル選択］ダイアログが表示されます。

応答電文のファイル（拡張子：.xml）を選択し，［OK］ボタンをクリックします。※
サービスのエミュレーションが設定されます。
注※　応答電文には，XMLの文字コードがUTF-8のものしか指定できません。

HCSC エミュレートビューの設定内容を外部ファイルに保存したい場合は，HCSC エミュレートビューで［保存］ボタンをクリックします。

また，［読み込み］ボタンをクリックすることで，外部ファイルに保存した設定内容を取得できます。すでにHCSC エミュレートビューに設定内容がある場合は，HCSC エミュレートビューの設定内容を上書きしてもよいか確認するダイアログが表示されます。

応答電文のファイル名を右クリックし，［ファイルの表示］を選択すると，対象のファイルを開くことができます。

(2)　サービスの手動エミュレーションの実行

プロセスインスタンスの処理がサービス呼出アクティビティで中断しているときに，HCSC エミュレートビューの［再開］ボタンまたは［ステップ実行］ボタンをクリックすると，設定した応答電文がサービスの応答電文の代わりに利用されます。

なお，フォルト応答をエミュレーションしてサービス呼出アクティビティからフォルト処理に移る場合，フォルト処理でプロセスインスタンスの処理を中断させるには，フォルト処理を行うアクティビティにブレークポイントを設定する必要があります。

11.6　ビジネスプロセスのデバッグの終了

デバッグを終了する手順，およびデバッグを終了したときのビジネスプロセスとアクティビティの状態について説明します。

なお，ビジネスプロセスのデバッグの終了操作は，プロセスインスタンスの処理が中断しているときに行ってください。プロセスインスタンスの処理状態は，デバッグビューで確認できます。

デバッグを終了する手順を次に示します。

デバッグビューでデバッグ中のビジネスプロセスを選択します。

［終了］アイコン（[図データ]）をクリックします。
ビジネスプロセスのデバッグが終了されます。

プロセスインスタンスの処理中にデバッグを終了した場合，ビジネスプロセスとアクティビティのステータスは，デバッグを終了する直前に実行されたトランザクションのコミット時のステータスと同じ状態となります。

トランザクションのコミットのタイミングについては，「6.6　アクティビティの定義」を参照してください。

注意

ビジネスプロセスのデバッグで使用したビジネスプロセスやサービスアダプタは，デバッグの終了を行ったあともHCSCサーバに配備，開始した状態になります。必要に応じて，「9.6　HCSCコンポーネントを停止してHCSCサーバから削除する処理の一括実行」の方法でHCSCコンポーネントを停止してHCSCサーバから削除してください。

12.　TP1/RPC受付の概要

この章では，TP1/RPC受付の概要について説明します。

＜この章の構成＞

12.1　TP1/RPC受付とは

12.2　TP1/RPC受付使用時のトランザクション

12.3　TP1/RPC受付のデータ変換

12.1　TP1/RPC受付とは

TP1/RPC受付とは，既存のOpenTP1システム内にあるサービスリクエスタからのサービス部品呼び出し要求を受け付けるための機能（インターフェース）です。

TP1/RPC受付の構成を次に示します。

図12-1　TP1/RPC受付の構成

サービスリクエスタはビジネスプロセスを，TP1インバウンドアダプタおよびTP1/RPC受付を経由して，リモートプロシジャコール通信（同期応答型RPC）で呼び出すことができます。サービスリクエスタが呼び出すビジネスプロセスは，dc_rpc_call関数に指定するサービスグループ名とサービス名で特定されます。このとき指定したサービスグループ名とサービス名が，それぞれTP1インバウンドアダプタとTP1/RPC受付に結び付けられます。

なお，TP1/RPC受付は，サービスリクエスタからのサービス部品呼び出し要求をリソースアダプタであるTP1インバウンドアダプタから電文を受け取って処理をします。そのため，TP1/RPC受付を使用する場合は，TP1インバウンドアダプタのセットアップが必要になります。

TP1/RPC受付の処理の流れについては，以降で説明します。

12.2　TP1/RPC受付使用時のトランザクション

TP1/RPC受付では，サービスリクエスタおよびTP1インバウンドアダプタのトランザクションとは異なる新たなトランザクションを開始します。

また，ビジネスプロセス内ではさらにTP1/RPC受付と異なる新たなトランザクションが開始されます。

ビジネスプロセスを呼び出すときのTP1/RPC受付のトランザクションを次に示します。

図12-2　TP1/RPC受付のトランザクション

12.3　TP1/RPC受付のデータ変換

TP1/RPC受付でのデータの流れとデータ変換の関係，およびデータ変換時の構造変換スキップ機能の指定について説明します。

＜この節の構成＞

12.3.1　TP1/RPC受付でのデータの流れとデータ変換の関係

12.3.2　データ変換時の構造変換スキップ機能の指定

12.3.1　TP1/RPC受付でのデータの流れとデータ変換の関係

サービスリクエスタから受け取った要求電文（バイナリ形式）は，TP1/RPC受付によってデータ変換（バイナリ形式からXML形式への変換）が実行されます。データ変換によって変換された要求電文（XML形式）は，HCSCメッセージ配送制御を経由してビジネスプロセスに渡されます。ビジネスプロセスから返ってきた応答電文（XML形式）は，TP1/RPC受付によってデータ変換（XML形式からバイナリ形式への変換）が実行されます。データ変換によって変換された応答電文（バイナリ形式）は，TP1インバウンドアダプタを経由してサービスリクエスタに返されます。

TP1/RPC受付でのデータの流れとデータ変換の関係を次に示します。

図12-3　TP1/RPC受付でのデータの流れとデータ変換の関係

12.3.2　データ変換時の構造変換スキップ機能の指定

構造変換スキップ機能とは，データ変換時に電文の構造変換をスキップする機能のことです。

要求電文のデータ変換では，サービスリクエスタから受け取ったバイナリ形式の要求電文から生成したDOMツリーを，そのままビジネスプロセスに渡したいときに，構造変換スキップ機能を有効にできます。

応答電文のデータ変換では，ビジネスプロセスから返ってきたDOMツリーから，直接，バイナリ形式の応答電文を生成し，サービスリクエスタに返したいときに，構造変換スキップ機能を有効にできます。

＜この項の構成＞

(1)　構造変換スキップ機能の設定方法

(2)　構造変換スキップ機能を使用するときの注意事項

(1)　構造変換スキップ機能の設定方法

構造変換スキップ機能の設定を有効にするには，開発環境のユーザ定義受付定義画面で，［独自定義ファイル］にTP1/RPC受付定義ファイルを設定します。

ユーザ定義受付定義画面に表示される項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.6　ユーザ定義受付定義画面」を参照してください。

TP1/RPC受付定義ファイルの詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「TP1/RPC受付定義ファイル」を参照してください。

(2)　構造変換スキップ機能を使用するときの注意事項

開発環境のユーザ定義受付定義画面で，要求電文および応答電文の受付電文フォーマットにバイナリフォーマット定義ファイルを，要求電文および応答電文のサービス部品電文フォーマットにXMLフォーマット定義ファイルを指定します。

開発環境のユーザ定義受付定義画面で，要求電文および応答電文のサービス部品電文フォーマットには，受付電文フォーマット（バイナリフォーマット定義ファイル）からcscdfx2xsdコマンドを使用して生成したXMLフォーマット定義ファイルを指定してください。

13.　TP1/RPC受付の定義

この章では，TP1/RPC受付の追加，リポジトリのエクスポートなどTP1/RPC受付の定義について説明します。また，TP1/RPC受付で定義するファイルの内容についても説明します。

＜この章の構成＞

13.1　TP1/RPC受付の定義の流れ

13.2　TP1/RPC受付を追加する

13.3　リポジトリをエクスポートする

13.4　TP1/RPC受付の定義を編集する

13.5　TP1/RPC受付の定義を保存する

13.1　TP1/RPC受付の定義の流れ

TP1/RPC受付の定義の流れを次に示します。

図13-1　TP1/RPC受付の定義の流れ

13.2　TP1/RPC受付を追加する

開発環境で，サービスに関連づけて，TP1/RPC受付のEARファイルをインポートします。

TP1/RPC受付を新規に追加する手順を次に示します。

ツリービューのサービス定義一覧で，TP1/RPC受付を追加するサービス（ビジネスプロセス）を選択して，右クリックします。
サービス一覧のポップアップメニューが表示されます。

ポップアップメニューから［ユーザ定義受付追加］を選択します。
受付種別選択ウィザードが表示されます。

［受付種別］のドロップダウンリストから，［カスタム受付］を選択します。

［次へ］ボタンをクリックします。
カスタム受付追加ウィザードが表示されます。

［受付名］と［EARファイル］を指定します。

受付名
TP1/RPC受付の名称を1～40バイトで指定します。
受付名は，ビジネスプロセス内で一意である必要があります。

EARファイル
インポートするEARファイルを絶対パスで指定します。指定するEARファイルは，「<Cosminexusインストールフォルダ>¥CSC¥lib¥cscmsg_urecp_tp1rpc.ear」です。相対パスやUNC形式で指定しないでください。
［...］ボタンをクリックして表示されるダイアログからEARファイルを選択することもできます。

［終了］ボタンをクリックします。
TP1/RPC受付がビジネスプロセスに追加され，ユーザ定義受付定義画面が表示されます。
ユーザ定義受付定義画面の詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.6　ユーザ定義受付定義画面」を参照してください。

13.3　リポジトリをエクスポートする

定義したTP1/RPC受付を含むリポジトリは，一つのZIPファイルにして，指定したディレクトリに保存することができます。

リポジトリをエクスポートする手順を次に示します。

Eclipseのメニューから，［HCSC-Definer］－［定義情報管理］－［全定義情報エクスポート］を選択します。
［リポジトリエクスポート］ダイアログが表示されます。

保存するディレクトリを指定し，保存するZIPファイルのファイル名を入力します。

［保存］ボタンをクリックします。
指定したディレクトリにZIPファイルが保存されます。
保存先のディレクトリに同じファイル名称のファイルがある場合，上書きを確認するダイアログが表示されます。上書きしてよいときは，［はい］ボタンをクリックして保存します。

13.4　TP1/RPC受付の定義を編集する

ユーザ定義受付定義画面で，受付名，受付ID，オペレーション名などインポート済みのTP1/RPC受付の定義を編集します。TP1/RPC受付の定義を編集する場合は，カスタム受付制御情報の独自定義ファイルに，TP1/RPC受付定義ファイルを必ず指定してください。なお，TP1/RPC受付では，要求電文および応答電文にバイナリ形式（.fdx）の電文フォーマットを指定する必要があります。バイナリ形式の電文フォーマットの作成方法については，「4.4　電文フォーマット（バイナリフォーマット定義ファイル）の作成方法」を参照してください。

ユーザ定義受付定義画面および入力できる値については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.6　ユーザ定義受付定義画面」を参照してください。

13.5　TP1/RPC受付の定義を保存する

ユーザ定義受付定義画面で編集中のTP1/RPC受付を編集途中や編集終了時に保存できます。TP1/RPC受付の内容はリポジトリに保存されます。

ユーザ定義受付定義画面を閉じてTP1/RPC受付の定義を終了する場合に，TP1/RPC受付が保存されていないときは，リソース保管ダイアログが表示されます。リソース保管ダイアログでは，保存されていないTP1/RPC受付の定義を保存できます。

TP1/RPC受付を保存する方法を次に示します。

方法1

Eclipseのメニューから，［ファイル］－［保管］を選択します。

方法2

Eclipseのメニューから，［ファイル］－［すべて保管］を選択します。

方法3

Eclipseのツールバーの，［保管］アイコンをクリックします。

方法4

ユーザ定義受付定義画面で，［Ctrl］キー＋［S］キーを押します。

なお，不正なデータが入力されている場合，TP1/RPC受付を保存できないことがあります。その場合，表示されているメッセージに従って対処してください。

14.　TP1/RPC受付の運用

この章では，配備，開始，停止，削除などTP1/RPC受付の運用について説明します。

＜この章の構成＞

14.1　TP1/RPC受付の運用の流れ

14.2　リポジトリをインポートする

14.3　TP1/RPC受付定義ファイルを取得する

14.4　TP1/RPC受付定義ファイルの定義情報を設定する

14.5　TP1/RPC受付定義ファイルの定義情報を削除する

14.6　TP1/RPC受付を配備する

14.7　TP1/RPC受付のアプリケーション統合属性ファイルを取得する

14.8　TP1/RPC受付のアプリケーション統合属性ファイルの定義情報を設定する

14.9　TP1/RPC受付を開始する

14.10　TP1/RPC受付の情報を確認する

14.11　TP1/RPC受付を停止する

14.12　配備済みのTP1/RPC受付を削除する

14.13　TP1/RPC受付を更新する

14.1　TP1/RPC受付の運用の流れ

TP1/RPC受付の運用の流れを次に示します。

図14-1　TP1/RPC受付の運用の流れ

14.2　リポジトリをインポートする

開発環境で作成したTP1/RPC受付を運用環境で使用する場合，ZIPファイル形式で保存されたリポジトリ情報をリポジトリにインポートします。インポートする方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「4.3　リポジトリのインポート」を参照してください。

リポジトリにインポートするには，cscrepctlコマンドを実行します。詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscrepctl（インポート/エクスポート）」を参照してください。

14.3　TP1/RPC受付定義ファイルを取得する

開発環境で設定したTP1/RPC受付定義ファイルを取得するときの前提条件，および取得方法について説明します。

＜この節の構成＞

(1)　前提条件

(2)　取得方法

(1)　前提条件

TP1/RPC受付定義ファイルを取得するには，HCSCサーバが起動状態である必要があります。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　取得方法

開発環境で設定したTP1/RPC受付定義ファイルを取得するには，運用環境でcsccmctlコマンドを実行します。詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccmctl（定義ファイルの管理）」を参照してください。

csccmctlコマンドの実行形式を次に示します。

csccmctl -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <TP1/RPC受付の受付ID> -targetfilename <取得したい定義ファイル名> -operation get

注　TP1/RPC受付定義ファイルを取得する場合，取得したい定義ファイル名に「cscurecptp1rpc.properties」を必ず指定してください。

14.4　TP1/RPC受付定義ファイルの定義情報を設定する

取得したTP1/RPC受付定義ファイルの定義情報を運用環境に設定するときの前提条件，および設定方法について説明します。

＜この節の構成＞

(1)　前提条件

(2)　設定方法

(1)　前提条件

TP1/RPC受付定義ファイルの定義情報を設定するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること。

TP1/RPC受付定義ファイルの定義情報を設定するコマンドを実行する際は，コンポーネントの配備前であること。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　設定方法

TP1/RPC受付定義ファイルの定義情報を設定するには，運用環境でcsccmctlコマンドを実行します。詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccmctl（定義ファイルの管理）」を参照してください。

csccmctlコマンドの実行形式を次に示します。

csccmctl -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <TP1/RPC受付の受付ID> -targetfilename <設定したい定義ファイル名> -operation set

注　TP1/RPC受付定義ファイルの定義情報を設定する場合，設定したい定義ファイル名に「cscurecptp1rpc.properties」を必ず指定してください。

14.5　TP1/RPC受付定義ファイルの定義情報を削除する

運用環境のTP1/RPC受付定義ファイルの定義情報を削除するときの前提条件，および削除方法について説明します。

＜この節の構成＞

(1)　前提条件

(2)　削除方法

(1)　前提条件

TP1/RPC受付定義ファイルの定義情報を削除するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること。

TP1/RPC受付定義ファイルの定義情報を削除するコマンドを実行する際は，コンポーネントの配備前であること。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　削除方法

TP1/RPC受付定義ファイルの定義情報を削除するには，運用環境でcsccmctlコマンドを実行します。詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccmctl（定義ファイルの管理）」を参照してください。

なお，csccmctlコマンドを実行しても開発環境で設定した定義ファイルを削除することはできません。削除したい場合は開発環境に戻って定義ファイルを削除してください。

csccmctlコマンドの実行形式を次に示します。

csccmctl -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <TP1/RPC受付の受付ID> -targetfilename <削除したい定義ファイル名> -operation reset

注　TP1/RPC受付定義ファイルの定義情報を削除する場合，削除したい定義ファイル名に「cscurecptp1rpc.properties」を必ず指定してください。

14.6　TP1/RPC受付を配備する

TP1/RPC受付を配備するには，運用環境でcsccompodeployコマンドを実行します。詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompodeploy（HCSCコンポーネントの配備）」を参照してください。

TP1/RPC受付を実行環境に配備する場合の前提条件，および配備方法は，ユーザ定義受付を配備するときと同じです。配備する方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「3.1.14　ユーザ定義受付を配備する」を参照してください。

14.7　TP1/RPC受付のアプリケーション統合属性ファイルを取得する

TP1/RPC受付のアプリケーション統合属性ファイルを取得するときの前提条件，および取得方法について説明します。

＜この節の構成＞

(1)　前提条件

(2)　取得方法

(1)　前提条件

TP1/RPC受付のアプリケーション統合属性ファイルを取得するには，HCSCサーバが起動状態である必要があります。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　取得方法

TP1/RPC受付のアプリケーション統合属性ファイルを取得するには，運用環境でcsccompoconfigコマンドを実行します。

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompoconfig（HCSCコンポーネントの定義）」を参照してください。

csccompoconfigコマンドの実行形式を次に示します。

csccompoconfig -user <ログインユーザID> -pass <ログインパスワード> -operation get -csc <HCSCサーバ名> -name <TP1/RPC受付の受付ID>

14.8　TP1/RPC受付のアプリケーション統合属性ファイルの定義情報を設定する

TP1/RPC受付のアプリケーション統合属性ファイルの定義情報を設定するときの前提条件，および設定方法について説明します。

＜この節の構成＞

(1)　前提条件

(2)　設定方法

(1)　前提条件

TP1/RPC受付のアプリケーション統合属性ファイルの定義情報を設定するには，HCSCサーバが起動状態，かつTP1/RPC受付の状態が配備状態である必要があります。ただし，TP1/RPC受付が起動している場合はエラーとなります。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　設定方法

TP1/RPC受付のアプリケーション統合属性ファイルの定義情報を設定するには，運用環境でcsccompoconfigコマンドを実行します。

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompoconfig（HCSCコンポーネントの定義）」を参照してください。

csccompoconfigコマンドの実行形式を次に示します。

HCSCサーバに配備されているTP1/RPC受付に定義情報を設定する場合

HCSCサーバ名，およびTP1/RPC受付の受付IDを指定して実行します。

指定したHCSCサーバ上のカスタム受付に，アプリケーション統合属性ファイルで指定した定義情報が設定されます。

csccompoconfig -user <ログインユーザID> -pass <ログインパスワード> -operation set -propfile <アプリケーション統合属性ファイル> -csc <HCSCサーバ名> -name <TP1/RPC受付の受付ID>

クラスタ内のHCSCサーバに配備されているTP1/RPC受付に定義情報を設定する場合

クラスタ名，およびTP1/RPC受付の受付IDを指定して実行します。

指定したクラスタに配備されているTP1/RPC受付に，アプリケーション統合属性ファイルで指定した定義情報が設定されます。

csccompoconfig -user <ログインユーザID> -pass <ログインパスワード> -operation set -propfile <アプリケーション統合属性ファイル> -cluster <クラスタ名> -name <TP1/RPC受付の受付ID>

14.9　TP1/RPC受付を開始する

運用環境で，画面またはコマンドを使用して，TP1/RPC受付を開始します。

TP1/RPC受付を開始するときの前提条件，および開始方法について説明します。

＜この節の構成＞

(1)　前提条件

(2)　開始方法

(1)　前提条件

TP1/RPC受付を開始するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること。

TP1/RPC受付が定義されているビジネスプロセスが開始状態であること。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　開始方法

TP1/RPC受付を開始する方法を，画面を使用する場合とコマンドを使用する場合に分けて説明します。

(a)　画面を使用する場合

運用環境の画面を利用してTP1/RPC受付を開始する手順を次に示します。

ツリービュー上で，開始するユーザ定義受付（TP1/RPC受付）をダブルクリックします。
ダブルクリックしたTP1/RPC受付の情報がエディタエリアの稼働運用ページに表示されます。
稼働運用ページの内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「3.4(4) ユーザ定義受付稼働運用」を参照してください。

稼働運用ページに表示された内容を確認し，［開始］ボタンをクリックします。
TP1/RPC受付の開始を確認するダイアログが表示されます。

ダイアログに表示された内容を確認し，［OK］ボタンをクリックします。
TP1/RPC受付の開始処理が開始されます。開始処理中のログはコンソールビューに出力されます。
［キャンセル］ボタンをクリックした場合は，開始処理を実行しないで稼働運用ページに戻ります。
TP1/RPC受付の開始処理が完了すると，実行結果を示すダイアログが表示されます。

実行結果を示すダイアログを確認します。

開始処理が成功した場合
［OK］ボタンをクリックして，稼働運用ページに戻ります。
稼働運用ページでは，TP1/RPC受付の稼働状態が「開始状態」になります。また，［開始］ボタンが非活性化し，［停止］ボタンが活性化します。

開始処理が失敗した場合
ダイアログにエラーの内容が表示されます。詳細情報に表示されるメッセージIDを参照して対処してください。

(b)　コマンドを使用する場合

TP1/RPC受付を開始するには，運用環境でcsccompostartコマンドを実行します。

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompostart（HCSCコンポーネントの開始）」を参照してください。

csccompostartコマンドの実行形式を次に示します。

クラスタ内のすべてのHCSCサーバに配備されているTP1/RPC受付を一括して開始する場合（クラスタ単位）

クラスタ名と-allオプションを指定して実行します。

-clusterオプションで指定したクラスタ内のすべてのHCSCサーバに配備されているTP1/RPC受付が一括して開始されます（開始されていないサービスアダプタおよびビジネスプロセスも同時にすべて開始されます）。

csccompostart -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -all

HCSCサーバに配備されているTP1/RPC受付を一括して開始する場合（HCSCサーバ単位）

HCSCサーバ名と-allオプションを指定して実行します。

-cscオプションで指定したHCSCサーバに配備されているTP1/RPC受付が一括して開始されます（開始されていないサービスアダプタおよびビジネスプロセスも同時にすべて開始されます）。

csccompostart -user <ログインユーザID> -pass <ログインパスワード> -csc <HCSCサーバ名> -all

クラスタ内のすべてのHCSCサーバに配備されている特定のTP1/RPC受付を開始する場合

クラスタ名とTP1/RPC受付の受付IDを指定して実行します。

csccompostart -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <TP1/RPC受付の受付ID>

HCSCサーバに配備されている特定のTP1/RPC受付を開始する場合

HCSCサーバ名とTP1/RPC受付の受付IDを指定して実行します。

csccompostart -user <ログインユーザID> -pass <ログインパスワード> -csc <HCSCサーバ名> -name <TP1/RPC受付の受付ID>

14.10　TP1/RPC受付の情報を確認する

TP1/RPC受付の情報を確認するには，cscsvclsコマンドを実行します。詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscsvcls（サービス情報の表示）」を参照してください。

cscsvclsコマンドを実行すると，開発環境または運用環境に設定されている定義ファイルのファイル名とその状態を確認できます。確認する方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「3.1.7　サービス情報を確認する」を参照してください。

14.11　TP1/RPC受付を停止する

運用環境で，画面またはコマンドを使用して，TP1/RPC受付を停止します。

TP1/RPC受付を停止するときの前提条件，および停止方法について説明します。

＜この節の構成＞

(1)　前提条件

(2)　停止方法

(1)　前提条件

TP1/RPC受付を停止するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること
HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

TP1/RPC受付が開始状態であること
TP1/RPC受付の状態の確認方法は，ユーザ定義受付の状態の確認方法と同じです。確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.19　ユーザ定義受付の情報を確認する」を参照してください。

(2)　停止方法

TP1/RPC受付を停止するには，運用環境でcsccompostopコマンドを実行します。

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompostop（HCSCコンポーネントの停止）」を参照してください。

csccompostopコマンドの実行形式を次に示します。

クラスタ内のすべてのHCSCサーバに配備されているTP1/RPC受付を一括して停止する場合（クラスタ単位）

クラスタ名と-allオプションを指定して実行します。

-clusterオプションで指定したクラスタ内のすべてのHCSCサーバに配備されているTP1/RPC受付が一括して停止されます（停止されていないサービスアダプタおよびビジネスプロセスも同時にすべて停止されます）。

csccompostop -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -all

HCSCサーバに配備されているTP1/RPC受付を一括して停止する場合（HCSCサーバ単位）

HCSCサーバ名と-allオプションを指定して実行します。

-cscオプションで指定したHCSCサーバに配備されているTP1/RPC受付が一括して停止されます（停止されていないサービスアダプタおよびビジネスプロセスも同時にすべて停止されます）。

csccompostop -user <ログインユーザID> -pass <ログインパスワード> -csc <HCSCサーバ名> -all

クラスタ内のすべてのHCSCサーバに配備されている特定のTP1/RPC受付を停止する場合

クラスタ名とTP1/RPC受付の受付IDを指定して実行します。

csccompostop -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <TP1/RPC受付の受付ID>

HCSCサーバに配備されている特定のTP1/RPC受付を停止する場合

HCSCサーバ名とTP1/RPC受付の受付IDを指定して実行します。

csccompostop -user <ログインユーザID> -pass <ログインパスワード> -csc <HCSCサーバ名> -name <TP1/RPC受付の受付ID>

なお，csccompostopコマンドの停止処理では，HCSCサーバが保持するTP1/RPC受付の状態を「停止状態」に更新してからTP1/RPC受付のアプリケーションを停止します。TP1/RPC受付の停止処理中にリクエストを受信した場合，HCSCサーバが保持するTP1/RPC受付と，TP1/RPC受付のアプリケーションが両方とも起動していれば，リクエストは正常に受け付けられます。

14.12　配備済みのTP1/RPC受付を削除する

実行環境に配備済みのTP1/RPC受付を削除するには，運用環境でcsccompoundeployコマンドを実行します。詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompoundeploy（配備済みのHCSCコンポーネントの削除）」を参照してください。

配備済みのTP1/RPC受付を削除する場合の前提条件，および削除方法は，ユーザ定義受付を削除する方法と同じです。削除する方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「3.2.3　ユーザ定義受付を削除する」を参照してください。

14.13　TP1/RPC受付を更新する

運用環境にリポジトリをインポートしたあとに，開発環境でTP1/RPC受付の定義を編集した場合，次の手順でTP1/RPC受付を更新します。

リポジトリのエクスポート
編集後の定義を保存したリポジトリをエクスポートします。
リポジトリのエクスポートは開発環境で実行します。
リポジトリのエクスポートの詳細は，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「4.2　リポジトリのエクスポート」を参照してください。

リポジトリのインポート
開発環境でエクスポートしたリポジトリを運用環境にインポートします。
リポジトリのインポートの詳細は，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「4.3　リポジトリのインポート」を参照してください。

15.　TP1/RPC受付のチューニング

この章では，TP1/RPC受付の同時実行数，タイムアウト，およびトランザクションタイムアウトの設定変更について説明します。

＜この章の構成＞

15.1　同時実行数の設定方法（TP1/RPC受付）

15.2　タイムアウト時間の設定方法（TP1/RPC受付）

15.3　トランザクションタイムアウト時間の設定方法（TP1/RPC受付）

15.1　同時実行数の設定方法（TP1/RPC受付）

同時実行数の設定を変更するときのTP1インバウンドアダプタでの設定，およびTP1/RPC受付での設定について説明します。

＜この節の構成＞

(1)　TP1インバウンドアダプタでの設定

(2)　TP1/RPC受付での設定

(1)　TP1インバウンドアダプタでの設定

TP1インバウンドアダプタでの設定については，マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「4.11.2　リソースアダプタの設定」を参照してください。

(2)　TP1/RPC受付での設定

TP1/RPC受付では，次の環境でチューニングパラメタを変更できます。

開発環境（ユーザ定義受付定義画面でTP1/RPC受付定義ファイルを設定）

運用環境（コマンドでTP1/RPC受付定義ファイルを設定，またはコマンドでアプリケーション統合属性ファイルを設定）

TP1/RPC受付の同時実行数の設定を変更するとき，TP1/RPC受付で変更できる内容を次に示します。

(a)　TP1/RPC受付定義ファイルを設定する場合

次に示すTP1/RPC受付定義ファイルのプロパティに値を設定します。

urecp-tp1rpc.activation-config.queue_max_lengthプロパティ

urecp-tp1rpc.pooled-instance.minimumプロパティ

urecp-tp1rpc.pooled-instance.maximumプロパティ

(b)　アプリケーション統合属性ファイルを設定する場合

アプリケーション統合属性ファイルの要素に値を設定します。

設定する要素については，次に示すXPath式を参照してください。

//hitachi-application-all-property/ejb-jar/hitachi-ejb-jar-property/display-name[.='cscmsg_urecp_tp1rpc']/../../hitachi-message-bean-property/display-name[.='CSCMsgTp1RpcServiceDelivery']/../activation-config/activation-config-property/activation-config-property-name[.='queue_max_length']/../activation-config-property-value

//hitachi-application-all-property/ejb-jar/hitachi-ejb-jar-property/display-name[.='cscmsg_urecp_custom']/../../hitachi-session-bean-property/display-name[.='CSCMsgCustomServiceDelivery']/../session-runtime/stateless/pooled-instance/minimum

//hitachi-application-all-property/ejb-jar/hitachi-ejb-jar-property/display-name[.='cscmsg_urecp_custom']/../../hitachi-session-bean-property/display-name[.='CSCMsgCustomServiceDelivery']/../session-runtime/stateless/pooled-instance/maximum

//hitachi-application-all-property/ejb-jar/hitachi-ejb-jar-property/display-name[.='cscmsg_urecp_tp1rpc']/../../hitachi-message-bean-property/display-name[.='CSCMsgTp1RpcServiceDelivery']/../message-runtime/pooled-instance/maximum

15.2　タイムアウト時間の設定方法（TP1/RPC受付）

タイムアウトの設定を変更するときのTP1インバウンドアダプタでの設定，およびTP1/RPC受付での設定について説明します。

＜この節の構成＞

(1)　TP1インバウンドアダプタでの設定

(2)　TP1/RPC受付での設定

(1)　TP1インバウンドアダプタでの設定

TP1インバウンドアダプタでは，パフォーマンスチューニングのための機能を定義する場合，Connector属性ファイルを使用します。

TP1インバウンドアダプタでの設定については，マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「4.11.2　リソースアダプタの設定」を参照してください。ただし，サービス実行タイムアウトの設定は行わないでください。

(2)　TP1/RPC受付での設定

TP1/RPC受付で設定の変更はありません。

15.3　トランザクションタイムアウト時間の設定方法（TP1/RPC受付）

トランザクションタイムアウトの設定を変更するときのTP1インバウンドアダプタでの設定，およびTP1/RPC受付での設定について説明します。

＜この節の構成＞

(1)　TP1インバウンドアダプタでの設定

(2)　TP1/RPC受付での設定

(1)　TP1インバウンドアダプタでの設定

TP1インバウンドアダプタで設定の変更はありません。

(2)　TP1/RPC受付での設定

TP1/RPC受付では，次の環境でチューニングパラメタを変更できます。

開発環境（ユーザ定義受付定義画面でTP1/RPC受付定義ファイルを設定）

運用環境（コマンドでTP1/RPC受付定義ファイルを設定，またはコマンドでアプリケーション統合属性ファイルを設定）

TP1/RPC受付のトランザクションタイムアウトの設定を変更するとき，TP1/RPC受付で変更できる内容を次に示します。

(a)　TP1/RPC受付定義ファイルを設定する場合

次に示すTP1/RPC受付定義ファイルのプロパティに値を設定します。

urecp-tp1rpc.ejb-transaction-timeoutプロパティ

(b)　アプリケーション統合属性ファイルを設定する場合

アプリケーション統合属性ファイルの要素に値を設定します。

設定する要素については，次に示すXPath式を参照してください。

//hitachi-application-all-property/ejb-jar/hitachi-ejb-jar-property/display-name[.='cscmsg_urecp_custom']/../../hitachi-session-bean-property/display-name[.='CSCMsgCustomServiceDelivery']/../ejb-transaction-timeout/method/method-name[.='*']/../../transaction-timeout

16.　障害対策（TP1連携システム）

この章では，TP1/RPC受付実行時に発生する障害に対して取得できる情報の種類，および障害の対処方法などについて説明します。

＜この章の構成＞

16.1　TP1/RPC受付実行時に発生したエラーの伝わり方

16.2　障害情報の取得（TP1/RPC受付）

16.3　問題発生個所の切り分け方

16.4　そのほかの障害要因の特定方法（実行履歴の追跡）

16.1　TP1/RPC受付実行時に発生したエラーの伝わり方

エラーの伝わり方は，エラーの種類によって異なります。

ここでは，次の場合についてエラーの伝わり方を説明します。

サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）

サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）

HCSCサーバからエラーがリターンした場合（ビジネスプロセスを使用するとき）

TP1インバウンドアダプタでエラーを検知した場合

＜この節の構成＞

16.1.1　サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）

16.1.2　サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）

16.1.3　HCSCサーバからエラーがリターンした場合（ビジネスプロセスを使用するとき）

16.1.4　TP1インバウンドアダプタでエラーを検知した場合

16.1.1　サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）

＜この項の構成＞

(1)　フォルト処理で障害情報をサービス電文にデータ変換しない場合

(2)　フォルト処理で障害情報をサービス電文にデータ変換する場合

(1)　フォルト処理で障害情報をサービス電文にデータ変換しない場合

サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のTP1/RPC受付でのエラーの伝わり方（フォルト処理なし）を次の図に示します。

図16-1　サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のTP1/RPC受付でのエラーの伝わり方（フォルト処理なし）

サービス部品で発生した例外は，CSCMsgServerExceptionとしてTP1/RPC受付に伝わります。その例外をキャッチしたTP1/RPC受付は，実行時例外をTP1インバウンドアダプタに再スローします。その後，TP1インバウンドアダプタ経由で，サービスリクエスタには，サービス要求のリターン値としてDCRPCER_SYSERR_AT_SERVER(-316)が返ります。

(2)　フォルト処理で障害情報をサービス電文にデータ変換する場合

サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のTP1/RPC受付でのエラーの伝わり方（フォルト処理あり）を次の図に示します。

図16-2　サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のTP1/RPC受付でのエラーの伝わり方（フォルト処理あり）

サービス部品で発生した例外は，そのまま例外としてビジネスプロセスのフォルト処理に伝わります。その後，ビジネスプロセスのフォルト処理でその障害情報を応答電文にデータ変換し，障害情報を含んだ応答電文として，以降の処理に返します。この場合，メッセージ配送制御を経由して，TP1/RPC受付に応答電文が返ります。TP1/RPC受付は，通常の応答電文と同様，その応答電文をTP1インバウンドアダプタに返します。サービスリクエスタには，通常の処理と同様，サービス要求の引数に，応答電文が設定されて返ります。

16.1.2　サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）

＜この項の構成＞

(1)　フォルト処理で障害情報をサービス電文にデータ変換しない場合

(2)　フォルト処理で障害情報をサービス電文にデータ変換する場合

(1)　フォルト処理で障害情報をサービス電文にデータ変換しない場合

サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のTP1/RPC受付でのエラーの伝わり方（フォルト処理なし）を次の図に示します。

図16-3　サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のTP1/RPC受付でのエラーの伝わり方（フォルト処理なし）

サービス部品で想定外の例外が発生した場合，RuntimeException（システム例外）としてTP1/RPC受付に伝わります。その例外をキャッチしたTP1/RPC受付は，キャッチしたRuntimeException（システム例外）を，そのままTP1インバウンドアダプタに再スローします。その後，TP1インバウンドアダプタ経由で，サービスリクエスタには，サービス要求のリターン値としてDCRPCER_SYSERR_AT_SERVER(-316)が返ります。

(2)　フォルト処理で障害情報をサービス電文にデータ変換する場合

サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のTP1/RPC受付でのエラーの伝わり方（フォルト処理あり）を次の図に示します。

図16-4　サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のTP1/RPC受付でのエラーの伝わり方（フォルト処理あり）

サービス部品で発生した例外は，そのまま例外としてビジネスプロセスのフォルト処理に伝わります。その後，ビジネスプロセスのフォルト処理でその障害情報を応答電文にデータ変換し，障害情報を含んだ応答電文として，以降の処理に返します。この場合，メッセージ配送制御を経由して，TP1/RPC受付に応答電文が返ります。TP1/RPC受付は，通常の応答電文と同様，その応答電文をTP1インバウンドアダプタに返します。サービスリクエスタには，通常の処理と同様，サービス要求の引数に，応答電文が設定されて返ります。

16.1.3　HCSCサーバからエラーがリターンした場合（ビジネスプロセスを使用するとき）

HCSCサーバからエラーがリターンした場合（ビジネスプロセスを使用するとき）のTP1/RPC受付でのエラーの伝わり方を次の図に示します。

図16-5　HCSCサーバからエラーがリターンした場合（ビジネスプロセスを使用するとき）のTP1/RPC受付でのエラーの伝わり方

図中の各エラーには，次に示すケースが該当します。

エラー1：要求パラメタ不正など

エラー2：あて先（ロケーション）が見つからない，アダプタが停止しているなど

エラー3：データ変換に失敗したなど

エラー4：あて先不正，サービス部品が停止，通信障害など

エラー5：ビジネスプロセス処理上での例外エラーなど

HCSCサーバで図中のエラー1～エラー5のどれかを検知した場合，発生したエラーの情報をCSCMsgServerExceptionで，TP1/RPC受付にスローします。その例外をキャッチしたTP1/RPC受付は，実行時例外をTP1インバウンドアダプタに再スローします。その後，TP1インバウンドアダプタ経由で，サービスリクエスタには，サービス要求のリターン値としてDCRPCER_SYSERR_AT_SERVER(-316)が返ります。

16.1.4　TP1インバウンドアダプタでエラーを検知した場合

TP1インバウンドアダプタでエラーを検知した場合のTP1/RPC受付でのエラーの伝わり方を次の図に示します。

図16-6　TP1インバウンドアダプタでエラーを検知した場合のTP1/RPC受付でのエラーの伝わり方

TP1インバウンドアダプタでエラーが発生した場合，サービスリクエスタには，サービス要求のリターン値として0以外の値が返ります。

詳細は，マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「4.16　TP1インバウンドアダプタで発生するRPCエラー応答」を参照してください。

16.2　障害情報の取得（TP1/RPC受付）

運用時に障害が発生した場合は，障害対策に必要な情報が，ログとしてログファイルに出力されたり，トレースとしてトレースファイルに出力されたりします。

ここでは，メッセージログ，各種トレース，および実行履歴の取得方法について説明します。

＜この節の構成＞

16.2.1　メッセージログ（TP1/RPC受付）

16.2.2　リクエストトレース（TP1/RPC受付）

16.2.3　性能解析トレース（TP1/RPC受付）

16.2.4　ユーザ電文トレース（TP1/RPC受付）

16.2.5　実行履歴（TP1/RPC受付）

16.2.1　メッセージログ（TP1/RPC受付）

メッセージログは，次に示すログに出力されます。

HCSC-Managerのログ

Cosminexusの統合メッセージログ

CosminexusのJ2EEサーバの稼働ログ

メッセージログの取得方法および出力先については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「7.4.1　メッセージログ」を参照してください。また，メッセージログの詳細は，マニュアル「Cosminexus サービスプラットフォーム メッセージ」の「2.　メッセージ一覧」を参照してください。

16.2.2　リクエストトレース（TP1/RPC受付）

リクエストトレースは，リクエストの障害要因の解析に使用します。

リクエストトレースの詳細は，「付録G.8(2) リクエストトレース（カスタム受付）」を参照してください。

16.2.3　性能解析トレース（TP1/RPC受付）

性能解析トレース（PRFトレース）は，Cosminexusシステムの性能解析をするためのトレース情報で，それをCSV形式で編集出力したテキストファイルが性能解析トレースファイルです。性能解析トレースは，J2EEアプリケーションを含めた，システム全体の性能ボトルネックを解析するための情報が出力されます。システムの性能ネックや性能トラブルシュートに使用します。性能解析トレース機能については，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「4.6　性能解析トレース」を参照してください。

＜この項の構成＞

(1)　性能解析トレースの取得ポイント

(2)　性能解析トレースファイルの出力形式と出力内容

(3)　性能解析トレースの取得方法と出力先

(1)　性能解析トレースの取得ポイント

性能解析トレースの取得ポイントを次の図に示します。

図16-7　性能解析トレースの取得ポイント

イベントID，トレース取得ポイント，および性能解析トレース取得レベルを次の表に示します。なお，次の表の「図中の番号」は，図中の番号と対応しています。

表16-1　性能解析トレースの取得ポイント

イベントID | 図中の番号 | トレース取得ポイント | レベル
0x9860 | 1 | カスタム受付フレームワークの入口 | A
0x9861 | 2 | カスタム受付フレームワークの出口 | A
0x9862 | 3 | データ変換（要求電文）の呼び出し口 | B
0x9863 | 4 | データ変換（要求電文）の応答受信口 | B
0x9864 | 5 | メッセージ配送制御の呼び出し口 | A
0x9865 | 6 | メッセージ配送制御の応答受信口 | A
0x9866 | 7 | データ変換（応答電文）の呼び出し口 | B
0x9867 | 8 | データ変換（応答電文）の応答受信口 | B
0x9868 | 9 | カスタム受付の入口 | A
0x9869 | 10 | カスタム受付の出口 | A
0x986A | 11 | カスタム受付フレームワークの呼び出し口 | B
0x986B | 12 | カスタム受付フレームワークの応答受信口 | B

（凡例）

A：標準

B：詳細

(2)　性能解析トレースファイルの出力形式と出力内容

(a)　出力形式

性能解析トレースファイルに出力される形式は，Cosminexusの性能解析トレースと同様です。性能解析トレースファイルの詳細は，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「4.6　性能解析トレース」を参照してください。

(b)　出力内容

性能解析トレースファイルの出力内容を次の表に示します。

表16-2　性能解析トレースファイルに出力される内容

項目
内容

イベントID
各取得ポイントのイベントIDが出力されます。

リターンコード
取得ポイント種別が出力されます。

0：正常終了

1：異常終了

インターフェース名
クラス名が出力されます。

オペレーション名
メソッド名が出力されます。

オプション情報
次のオプション情報が出力されます。

受付名

受付ID

クライアント相関ID

サービス名

サービスオペレーション名

例外名※

注※　障害が発生したときだけ出力されます。

(3)　性能解析トレースの取得方法と出力先

性能解析トレースファイルの取得方法および出力先は，Cosminexus全体で共通です。取得方法および出力先については，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「4.6　性能解析トレース」を参照してください。

16.2.4　ユーザ電文トレース（TP1/RPC受付）

ユーザ電文トレースは，電文の状態を確認するために使用します。

次の内容をユーザ電文トレースとして取得できます。

TP1インバウンドアダプタ経由で受け付けたサービス部品呼び出し要求または応答の電文

ビジネスプロセスを呼び出したときの要求または応答の電文

サービスアダプタからサービス部品を呼び出したときの要求または応答の電文

データ変換を実行したときの変換前または変換後の電文

ユーザ電文トレースの詳細は，「付録G.8(4) ユーザ電文トレース（カスタム受付）」を参照してください。

16.2.5　実行履歴（TP1/RPC受付）

実行履歴は，サービスリクエスタから指定した情報や，HCSCサーバからの情報を基に，サービス部品呼び出しの処理がどこまで進んだかを追跡するために使用します。

実行履歴の詳細は，「付録G.8(5) 実行履歴（カスタム受付）」を参照してください。

16.3　問題発生個所の切り分け方

ここでは，サービスリクエスタからTP1/RPC受付を使用してサービス部品を呼び出した場合の問題発生個所の切り分け方について説明します。

問題発生個所の切り分け方を次の図に示します。

図16-8　問題発生個所の切り分け方

図中の(a)～(d)について，調査する内容を次に示します。

＜この節の構成＞

16.3.1　サービス部品に障害の要因がある場合

16.3.2　ビジネスプロセスに障害の要因がある場合

16.3.3　HCSCサーバでエラーを検知した場合

16.3.4　TP1インバウンドアダプタでエラーを検知した場合

16.3.1　サービス部品に障害の要因がある場合

サービス部品に障害の要因がある場合，実行環境のメッセージログを参照し，サービス部品が返した例外の内容を確認します。

要因は，次の観点で調査してください。

サービスリクエスタから要求したユーザ電文

サービス部品稼働マシン

サービス部品のプログラム

サービス部品呼び出し要求を再送するかどうかは，HCSCサーバを介したサービスリクエスタとサービス部品間（エンドツーエンド）の取り決めとなります。

16.3.2　ビジネスプロセスに障害の要因がある場合

ビジネスプロセスで実行したアクティビティの処理に障害の要因があるおそれがあります（サービス呼出アクティビティの場合，呼び出したサービス部品に障害の要因があるおそれがあります）。この場合，実行環境のメッセージログを参照し，ビジネスプロセスが返したフォルトの内容を確認します。

要因は，次の観点で調査してください。

サービスリクエスタから要求したユーザ電文

サービス部品稼働マシン

サービス部品のプログラム

ビジネスプロセスの定義内容

サービス部品呼び出し要求を再送するかどうかは，HCSCサーバを介したサービスリクエスタとサービス部品間（エンドツーエンド）の取り決めとなります。

また，ビジネスプロセスの設計内容によっても，再送（ビジネスプロセスの再実行）するかどうかを決めておく必要があります。

16.3.3　HCSCサーバでエラーを検知した場合

実行環境のメッセージログを参照し，エラーの内容を確認します。確認したエラーコードおよびエラーメッセージの対策に従って対処します。

要因は，次の観点で調査してください。

HCSCサーバの設定または状態

サービスアダプタの定義内容

ビジネスプロセスの定義内容

サービスリクエスタから要求したユーザ電文

サービス部品稼働マシン

サービス部品のプログラム

ネットワークの状態

サービス部品呼び出し要求を再送するかどうかは，エラーの内容によって異なります。一時的な障害の場合は，再送を試みることで成功することがありますが，次に示すエラーの場合は，再送を試みてもエラーとなります。

HCSCサーバの設定に誤りがある場合

サービスアダプタやビジネスプロセスの定義に誤りがある場合

サービスリクエスタから要求したユーザ電文に誤りがある場合

16.3.4　TP1インバウンドアダプタでエラーを検知した場合

TP1インバウンドアダプタの障害対策に従って，エラーの内容を調査します。詳細は，マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「4.16　TP1インバウンドアダプタで発生するRPCエラー応答」を参照してください。

16.4　そのほかの障害要因の特定方法（実行履歴の追跡）

サービスリクエスタから指定した情報や，HCSCサーバからの情報を基に，サービス部品呼び出しの処理がどこまで進んでいるかを実行履歴から追跡できます。

ここでは，実行履歴を追跡するために必要な次の情報について説明します。

ルートアプリケーション情報

クライアント相関ID

メッセージ共通ID

＜この節の構成＞

16.4.1　ルートアプリケーション情報

16.4.2　クライアント相関ID

16.4.3　メッセージ共通ID

16.4.1　ルートアプリケーション情報

ルートアプリケーション情報は，一連の処理の先頭になるプロセス（サービスリクエスタ）で取得した情報で，性能解析トレースに出力されます。

ルートアプリケーション情報が引き継がれる範囲を次の図に示します。

図16-9　ルートアプリケーション情報が引き継がれる範囲

16.4.2　クライアント相関ID

クライアント相関IDは，TP1/RPC受付がサービス部品呼び出し要求ごとに付与するIDです。サービスリクエスタからの要求電文と，HCSCサーバで管理している実行履歴，ログおよびトレースと対応づけるために使用します。

クライアント相関IDが引き継がれる範囲を次の図に示します。

図16-10　クライアント相関IDが引き継がれる範囲

16.4.3　メッセージ共通ID

メッセージ共通IDは，HCSCサーバがサービス部品呼び出し要求ごとに付与するIDです。HCSCサーバ内のログ，トレース，および電文の実行履歴情報を識別するために使用します。

メッセージ共通IDが引き継がれる範囲を次の図に示します。

図16-11　メッセージ共通IDが引き継がれる範囲

17.　FTP連携の概要

この章では，Cosminexus サービスプラットフォームのFTP連携の目的，FTP連携を利用したシステムの概要，およびシステムの開発の流れについて説明します。

＜この章の構成＞

17.1　FTP連携とは

17.2　FTP連携を利用するためのシステムの構成

17.3　FTP連携でサポートするFTPコマンド

17.4　FTP連携を利用したファイル転送パターン

17.5　FTP連携システムの開発の流れ

17.1　FTP連携とは

Cosminexus サービスプラットフォームでは，FTP（ファイル転送プロトコル）を利用したさまざまなシステム間のファイル転送を中継する機能を提供しています。この機能をFTP連携といいます。

ここでは，FTP連携の目的および特長について説明します。

＜この節の構成＞

(1)　FTP連携の目的

(2)　FTP連携の特長

(1)　FTP連携の目的

FTPを利用した既存のシステムでは，ファイルを転送するシステム同士が個別に連携しています。このため，システムの管理者にとって，システム全体の転送状況（転送経路やデータの種類など）を管理することが困難です。

既存のシステムでFTPによる転送状況を管理する例を次の図に示します。

図17-1　既存のシステムの例

FTP連携を利用することで，これまで個別に管理していたシステム間の転送状況をCosminexus サービスプラットフォーム上で一括して管理できるようになります。

Cosminexus サービスプラットフォームを利用したシステムでFTPによる転送状況を管理する例を次の図に示します。

図17-2　Cosminexus サービスプラットフォームを利用したシステムの例

システム間の転送状況を一括して管理することで，システムの改修時にシステム全体の影響範囲を把握しやすくなるため，改修時のコストを削減できるメリットもあります。

(2)　FTP連携の特長

FTP連携には次の特長があります。

FTPによるシステム間の転送状況を管理できます。
ビジネスプロセスのユーザ定義Javaクラスを使用することで，転送状況を把握するために必要な次の情報をログとして取得できます。

システム間の転送経路

転送の開始・終了時刻，および転送に要した時間

転送の頻度

転送のデータ量

FTPを利用したさまざまなシステムと連携できます。
既存のシステムと接続してファイルの送受信を中継できます。システム間でファイル形式や扱う文字コードが異なる場合，レイアウト・文字コード変換の機能を利用して対応することができます。接続するFTPクライアントおよびFTPサーバに対してソフトウェアの追加は不要です。

17.2　FTP連携を利用するためのシステムの構成

FTPによるファイル転送では，FTPクライアントがFTPサーバに転送を要求し，ファイルをアップロードしたりダウンロードしたりします。このマニュアルでは，転送を要求する側のシステムをFTPクライアント，転送要求を受け付ける側のシステムをFTPサーバと呼びます。

FTP連携を利用するための，FTPサーバ，FTPクライアント，およびCosminexus サービスプラットフォーム内のシステムの構成を次に示します。

図17-3　FTP連携を利用するためのシステムの構成

システムを構成する要素について説明します。

FTPインバウンドアダプタ

FTPクライアントからの要求の処理や，FTPクライアントの認証，ファイルのデータ転送処理などを行うためのリソースアダプタです。FTPクライアントからの要求はFTPインバウンドアダプタを経由してFTP受付に送られます。

FTP受付

FTPクライアントからの要求を受け付けるためのインターフェースです。FTPクライアントとビジネスプロセスとの間でファイルの送受信を行います。

ビジネスプロセス

ファイル操作アダプタやFTPアダプタを呼び出すためのアクティビティを定義します。

ファイル操作アダプタ

ファイルのレイアウト変換や文字コード変換，複製，削除などのファイル操作を行うためのアダプタです。

FTPアダプタ

FTPサーバと接続してファイルの送受信を行うためのアダプタです。

17.3　FTP連携でサポートするFTPコマンド

FTP連携でサポートするFTPコマンドを次の表に示します。

表17-1　サポートするFTPコマンド

分類 | コマンド | オプション | コンポーネント | RFC
FTPインバウンドアダプタ | FTP受付 | ビジネスプロセス | FTPアダプタ
認証 | ACCT | － | × | － | － | ○ | 959
USER | － | ○ | ○ | ○ | ○ | 959
PASS | － | ○ | × | × | ○ | 959
制御 | ABOR | － | × | － | － | × | 959
NOOP | － | ○ | － | － | ○ | 959
PASV | － | ○ | － | － | ○ | 959
PORT | － | ○ | － | － | ○ | 959
QUIT | － | ○ | － | － | ○ | 959
REIN | － | × | － | － | × | 959
REST | － | × | － | － | × | 959
EPRT | － | × | － | － | × | 2428
EPSV | － | × | － | － | × | 2428
セッション | CDUP | － | △ | △ | △ | ○ | 959
CWD | － | △ | △ | △ | ○ | 959
MODE | － | ○ | － | － | ○ | 959
S | ○ | － | － | ○ | －
B | × | － | － | × | －
C | × | － | － | × | －
LPRT | － | × | － | － | × | 1639
LPSV | － | × | － | － | × | 1639
ADAT | － | × | － | － | × | 2228
AUTH | － | ○ | － | － | ○ | 2228
CCC | － | × | － | － | × | 2228
CONF | － | × | － | － | × | 2228
ENC | － | × | － | － | × | 2228
MIC | － | × | － | － | × | 2228
PBSZ | － | ○ | － | － | ○ | 2228
PROT | － | ○ | － | － | ○ | －
OPTS | － | ○ | － | ○ | ○ | 2389
ファイル | TYPE | － | ○ | ○ | ○ | ○ | 959
LANG | － | × | － | － | × | 2640
転送 | APPE | － | ○ | ○ | ○ | ○ | 959
RETR | － | ○ | ○ | ○ | ○ | 959
STOU | － | × | － | － | × | 959
STRU | － | ○ | ○ | ○ | ○ | 959
F | ○ | ○ | ○ | ○ | －
R※ | ○ | ○ | ○ | ○ | －
P | × | － | － | × | －
更新 | ALLO | － | △ | △ | △ | ○ | 959
DELE | － | △ | △ | △ | ○ | 959
MKD | － | △ | △ | △ | ○ | 959
RMD | － | △ | △ | △ | ○ | 959
RNFR | － | △ | △ | △ | ○ | 959
RNTO | － | △ | △ | △ | ○ | 959
SMNT | － | △ | △ | △ | ○ | 959
STAT | － | △ | △ | △ | ○ | 959
参照 | HELP | － | × | － | － | × | 959
LIST | － | ○ | ○ | ○ | ○ | 959
NLST | － | ○ | ○ | ○ | ○ | 959
PWD | － | △ | △ | △ | ○ | 959
SITE | － | ○ | ○ | ○ | ○ | 959
STOR | － | ○ | ○ | ○ | ○ | 959
SYST | － | △ | △ | △ | △ | 959
FEAT | － | × | － | － | × | 2389
MDTM | － | △ | － | △ | ○ | 3659
MLSD | － | × | － | － | × | 3659
MLST | － | × | － | － | × | 3659
SIZE | － | △ | － | △ | ○ | 3659

（凡例）

○：サポートしています。

△：SITE CSCTHRコマンドでサポートしています。

×：サポートしていません。

－：該当しません。

注※

ファイルの変換処理は実施しません。

表中のFTPコマンドの分類について説明します。

＜この節の構成＞

(1)　認証

(2)　制御

(3)　セッション

(4)　ファイル

(5)　転送

(6)　更新

(7)　参照

(1)　認証

セッションの接続に必要なコマンドです。HCSCサーバ内でのアクセス管理に使用されます。

USERコマンドで渡されるユーザ名は，送受信されるファイルの属性としてビジネスプロセスに引き継ぐ必要があります。

(2)　制御

セッションの接続・解放などの制御に関わるコマンドです。ビジネスプロセスを経由してFTPアダプタに情報を引き継ぐ必要はありません。

(3)　セッション

1セッション内で有効な情報を設定するためのコマンドです。ビジネスプロセスを経由してFTPアダプタに情報を引き継ぐ必要はありません。

(4)　ファイル

送受信されるファイルの情報を設定するためのコマンドです。ビジネスプロセスを経由してFTPアダプタに情報を引き継ぐ必要があります。

(5)　転送

ファイル転送のためのコマンドです。

このコマンドを契機にビジネスプロセスが起動され，ビジネスプロセスを経由してFTPインバウンドアダプタからFTPアダプタに情報を引き継ぎます。

(6)　更新

FTPサーバ上のファイルおよびディレクトリを更新するコマンドです。

ファイル転送の前後でバッチ用途で実行することができます。FTPクライアントからSITE CSCTHRコマンドで指定します。

(7)　参照

FTPサーバ上のファイルおよびディレクトリに関する情報を参照し，FTPクライアントに渡すためのコマンドです。

LIST系コマンドは，転送コマンドと同様にビジネスプロセスを経由してFTPインバウンドアダプタからFTPアダプタに情報を引き継ぎます。LIST系以外のコマンドは，FTPクライアントからSITE CSCTHRコマンドで指定し，ビジネスプロセス上で結果を参照できます。

17.4　FTP連携を利用したファイル転送パターン

FTP連携を利用して実現できるファイル転送パターンには，次の種類があります。

FTPクライアントからFTPサーバへのファイル転送

FTPサーバからFTPクライアントへのファイル転送

FTPクライアントから別のFTPクライアントへのファイル転送

FTPサーバのファイルリストの取得

各ファイル転送パターンは，ビジネスプロセス，FTPアダプタ，ファイル操作アダプタ，およびFTP受付を組み合わせることで実現できます。

ここでは，各ファイル転送パターンの特長，およびファイル転送の流れについて説明します。

＜この節の構成＞

17.4.1　FTPクライアントからFTPサーバへのファイル転送

17.4.2　FTPサーバからFTPクライアントへのファイル転送

17.4.3　FTPクライアントから別のFTPクライアントへのファイル転送

17.4.4　FTPサーバのファイルリストの取得

17.4.1　FTPクライアントからFTPサーバへのファイル転送

この転送パターンでは，転送コマンドのSTORコマンドまたはAPPEコマンドを使用して，FTPクライアントからFTPサーバにファイルを送信します。

この転送パターンには次の2種類があります。

同期型ビジネスプロセスを利用する場合

FTPサーバへのファイル転送が完了してからFTPクライアントに応答を返す転送パターンです。

この転送パターンでは，FTP連携を利用しない場合と同様に，FTPクライアントとFTPサーバの処理の状態を同期させることができます。

非同期型ビジネスプロセスを利用する場合

FTPクライアントに応答を返してからFTPサーバにファイルを送信する転送パターンです。

この転送パターンでは，FTPクライアントから見た応答時間が短縮されるため，次の場合に活用できます。

ある拠点から複数の拠点に対して同じ情報を同報送信する場合

FTPクライアントの無通信監視時間を超えるような大規模ファイルを送信する場合

それぞれのファイル転送の流れを次に示します。

＜この項の構成＞

(1)　同期型ビジネスプロセスを利用したファイル転送の流れ

(2)　非同期型ビジネスプロセスを利用したファイル転送の流れ

(1)　同期型ビジネスプロセスを利用したファイル転送の流れ

ファイル転送の流れを次の図に示します。

図17-4　FTPクライアントからFTPサーバへのファイル転送の流れ（同期型ビジネスプロセスを利用する場合）

図中の制御，転送データ，およびビジネスプロセスの流れについて説明します。次の番号は，図中の番号と対応しています。

FTPクライアントが転送コマンド（STORコマンドまたはAPPEコマンド）を実行します。

転送コマンドを受け取ったFTPインバウンドアダプタがFTP受付を呼び出します。

FTP受付が作業フォルダ（HCSCサーバ上でファイルを扱うための一時的なフォルダ）を作成します。

FTPクライアントから転送されたファイルのデータが，作業フォルダ内に中間ファイルとして出力されます。

FTP受付がビジネスプロセスを呼び出します。このとき，FTPクライアントから受け取った転送コマンドや中間ファイルのファイル名などの情報は，要求電文に格納されてビジネスプロセスに渡されます。

ビジネスプロセスからファイル操作アダプタが呼び出されたあと，ファイル操作アダプタは作業フォルダ内の中間ファイルを読み込んで，レイアウト変換やコード変換などの処理をします。

ビジネスプロセスからFTPアダプタが呼び出されたあと，FTPアダプタは中間ファイルのデータをFTPサーバに転送します。

ビジネスプロセスで応答アクティビティが実行されたあと，FTP受付に応答電文が渡されます。

FTP受付が作業フォルダおよび作業フォルダ中の中間ファイルを削除します。

FTP受付からFTPインバウンドアダプタに応答を返します。

応答を受け取ったFTPインバウンドアダプタは，転送コマンドの実行結果をFTPクライアントに返します。

(2)　非同期型ビジネスプロセスを利用したファイル転送の流れ

ファイル転送の流れを次の図に示します。

図17-5　FTPクライアントからFTPサーバへのファイル転送の流れ（非同期型ビジネスプロセスを利用する場合）

図中の制御，転送データ，およびビジネスプロセスの流れについて説明します。次の番号は，図中の番号と対応しています。

FTPクライアントが転送コマンド（STORコマンドまたはAPPEコマンド）を実行します。

転送コマンドを受け取ったFTPインバウンドアダプタがFTP受付を呼び出します。

FTP受付が作業フォルダを作成します。

FTPクライアントから転送されたファイルのデータが，作業フォルダ内に中間ファイルとして出力されます。

FTP受付がビジネスプロセスを呼び出します。このとき，FTPクライアントから受け取った転送コマンドや中間ファイルのファイル名などの情報は，要求電文に格納されてビジネスプロセスに渡されます。

ビジネスプロセスで応答アクティビティが実行されたあと，FTP受付に応答電文が渡されます。

FTP受付からFTPインバウンドアダプタに応答を返します。

応答を受け取ったFTPインバウンドアダプタは，転送コマンドの実行結果をFTPクライアントに返します。

ビジネスプロセスからファイル操作アダプタAが呼び出されたあと，ファイル操作アダプタAは作業フォルダ内の中間ファイルを読み込んで，レイアウト変換やコード変換などの処理をします。

ビジネスプロセスからFTPアダプタが呼び出されたあと，FTPアダプタは中間ファイルのデータをFTPサーバに転送します。

ビジネスプロセスからファイル操作アダプタBが呼び出されたあと，ファイル操作アダプタBはビジネスプロセスが終了する前に作業フォルダおよび作業フォルダ中の中間ファイルを削除します。

17.4.2　FTPサーバからFTPクライアントへのファイル転送

この転送パターンでは，FTPクライアントから転送コマンドのRETRコマンドを使用して，FTPサーバからFTPクライアントにファイルを送信します。

ファイル転送の流れを次の図に示します。

図17-6　FTPサーバからFTPクライアントへのファイル転送の流れ

図中の制御，転送データ，およびビジネスプロセスの流れについて説明します。次の番号は，図中の番号と対応しています。

FTPクライアントが転送コマンド（RETRコマンド）を実行します。

転送コマンドを受け取ったFTPインバウンドアダプタがFTP受付を呼び出します。

FTP受付が作業フォルダを作成します。

FTP受付がビジネスプロセスを呼び出します。このとき，FTPクライアントから受け取った転送コマンドなどの情報は，要求電文に格納されてビジネスプロセスに渡されます。

ビジネスプロセスからFTPアダプタが呼び出されたあと，FTPアダプタはFTPサーバからファイルを取得し，作業フォルダ内に中間ファイルとして出力します。

ビジネスプロセスからファイル操作アダプタが呼び出されたあと，ファイル操作アダプタは作業フォルダ内の中間ファイルを読み込んで，レイアウト変換やコード変換などの処理をします。

ビジネスプロセスで応答アクティビティが実行されたあと，FTP受付に中間ファイルの情報を含んだ応答電文が渡されます。

応答電文で示された中間ファイルのデータが，作業フォルダからFTPクライアントに転送されます。

FTP受付が作業フォルダおよび作業フォルダ中の中間ファイルを削除します。

FTP受付からFTPインバウンドアダプタに応答を返します。

応答を受け取ったFTPインバウンドアダプタは，FTPクライアントに転送コマンドの実行結果を返します。

17.4.3　FTPクライアントから別のFTPクライアントへのファイル転送

1対1または1対複数のFTPクライアント間でファイルを送受信する転送パターンについて説明します。

この転送パターンでは，ファイルの送信側と受信側のシステムが任意のタイミングでHCSCサーバにアクセスできるため，海外拠点のように運用時間帯が異なるシステム間でファイル転送を行う場合に活用できます。

ファイル転送の流れを次の図に示します。

この図では，FTPクライアントAからSTORコマンドまたはAPPEコマンドを実行してHCSCサーバにファイルを送信（図中の番号1.～11.）したあと，FTPクライアントBからRETRコマンドを実行してHCSCサーバ内のファイルを取得（図中の番号12.～23.）しています。

図17-7　FTPクライアントから別のFTPクライアントへのファイル転送の流れ

図中の制御，転送データ，およびビジネスプロセスの流れについて説明します。次の番号は，図中の番号と対応しています。

FTPクライアントAが転送コマンド（STORコマンドまたはAPPEコマンド）を実行します。

転送コマンドを受け取ったFTPインバウンドアダプタがFTP受付Aを呼び出します。

FTP受付Aが作業フォルダAを作成します。

FTPクライアントAから転送されたファイルのデータが，作業フォルダA内に中間ファイルとして出力されます。

FTP受付AがビジネスプロセスAを呼び出します。このとき，FTPクライアントAから受け取った転送コマンドや中間ファイルのファイル名などの情報は，要求電文に格納されてビジネスプロセスAに渡されます。

ビジネスプロセスAからファイル操作アダプタAが呼び出され，作業フォルダAの中間ファイルにアクセスします。

ファイル操作アダプタAは，作業フォルダA内の中間ファイルを共通フォルダ（ユーザが作成する任意のフォルダ）内に複製します。

ビジネスプロセスAで応答アクティビティが実行されたあと，FTP受付Aに応答電文が渡されます。

FTP受付Aが作業フォルダAおよび作業フォルダA内の中間ファイルを削除します。

FTP受付AからFTPインバウンドアダプタに応答を返します。

応答を受け取ったFTPインバウンドアダプタは，転送コマンドの実行結果をFTPクライアントAに返します。

FTPクライアントBが転送コマンド（RETRコマンド）を実行します。

転送コマンドを受け取ったFTPインバウンドアダプタがFTP受付Bを呼び出します。

FTP受付Bが作業フォルダBを作成します。

FTP受付BがビジネスプロセスBを呼び出します。このとき，FTPクライアントBから受け取った転送コマンドなどの情報は，要求電文に格納されてビジネスプロセスBに渡されます。

ビジネスプロセスBからファイル操作アダプタBが呼び出され，共通フォルダ内のファイルにアクセスします。

ファイル操作アダプタBは，共通フォルダ内のファイルを作業フォルダBに複製します。

ビジネスプロセスBからファイル操作アダプタCが呼び出されたあと，ファイル操作アダプタCは，作業フォルダB内の中間ファイルを読み込んで，レイアウト変換やコード変換などの処理をします。

ビジネスプロセスBで応答アクティビティが実行されたあと，FTP受付Bに中間ファイルの情報を含んだ応答電文が渡されます。

応答電文で示された中間ファイルのデータがFTPインバウンドアダプタからFTPクライアントBに転送されます。

FTP受付Bは，作業フォルダBおよび作業フォルダB内の中間ファイルを削除します。

FTP受付BからFTPインバウンドアダプタに応答を返します。

応答を受け取ったFTPインバウンドアダプタは，FTPクライアントBに転送コマンドの実行結果を返します。

17.4.4　FTPサーバのファイルリストの取得

この転送パターンでは，FTPクライアントからリストコマンドを使用して，FTPサーバのファイルリストをFTPクライアントに送信しています。

ファイルリストの取得の流れを次の図に示します。

図17-8　FTPサーバのファイルリストの取得の流れ

図中の制御，リストデータ，およびビジネスプロセスの処理の流れについて説明します。次の番号は，図中の番号と対応しています。

FTPクライアントがリストコマンドを実行します。

リストコマンドを受け取ったFTPインバウンドアダプタがFTP受付を呼び出します。

FTP受付が作業フォルダを作成します。

FTP受付がビジネスプロセスを呼び出します。このとき，FTPクライアントから受け取ったFTPコマンドの情報などは，要求電文に格納されてビジネスプロセスに渡されます。

ビジネスプロセスからFTPアダプタが呼び出されたあと，FTPアダプタはFTPサーバからファイルリストを取得し，作業フォルダ内に中間ファイルとして出力します。

ビジネスプロセスからファイル操作アダプタが呼び出されたあと，ファイル操作アダプタは作業フォルダ内の中間ファイルを読み込んで，レイアウト変換やコード変換などの処理をします。

ビジネスプロセスで応答アクティビティが実行されたあと，FTP受付に中間ファイルの情報を含んだ応答電文が渡されます。

応答電文で示された中間ファイルのデータが，作業フォルダからFTPクライアントに転送されます。

FTP受付が作業フォルダおよび作業フォルダ中の中間ファイルを削除します。

FTP受付からFTPインバウンドアダプタに応答を返します。

応答を受け取ったFTPインバウンドアダプタは，FTPクライアントにリストコマンドの実行結果を返します。

17.5　FTP連携システムの開発の流れ

FTP連携システムの開発の流れを次の図に示します。図中の項目は，すべて開発環境で実施する作業です。

図17-9　FTP連携システムの開発の流れ

＜この節の構成＞

(1)　リポジトリのインポート

(2)　FTPアダプタの定義

(3)　ファイル操作アダプタの定義

(4)　ビジネスプロセスの定義

(5)　FTP受付の定義

(6)　HCSCコンポーネントのパッケージングと配備定義

(7)　リポジトリのエクスポート

(1)　リポジトリのインポート

運用環境でエクスポートしたリポジトリを開発環境にインポートします。

リポジトリのインポート方法の詳細については，「3.2.3　リポジトリをインポートする」を参照してください。

(2)　FTPアダプタの定義

サービスアダプタ定義画面を使用してFTPアダプタを定義します。FTPアダプタは，接続対象のFTPサーバごとに一つ定義します。

FTPアダプタの定義については，「18.　FTPアダプタの定義」を参照してください。

(3)　ファイル操作アダプタの定義

サービスアダプタ定義画面を使用してファイル操作アダプタを定義します。ファイル操作アダプタは，変換，複製，削除などのオペレーションごとに一つ定義します。

ファイル操作アダプタの定義については，「19.　ファイル操作アダプタの定義」を参照してください。

(4)　ビジネスプロセスの定義

ビジネスプロセス定義画面を使用してビジネスプロセスを定義します。ビジネスプロセスは，ファイル転送の経路ごとに一つ定義します。

ビジネスプロセスの定義については，「6.　ビジネスプロセスの定義」を参照してください。

(5)　FTP受付の定義

ユーザ定義受付定義画面を使用してFTP受付を定義します。FTP受付は，ビジネスプロセスごとに一つ定義します（必要に応じて複数定義します）。なお，一つのFTP受付を複数のビジネスプロセスに対応させることはできません。

FTP受付の定義については，「20.　FTP受付の定義」を参照してください。

(6)　HCSCコンポーネントのパッケージングと配備定義

定義したHCSCコンポーネントの定義に関連する定義ファイル，および実行環境が提供するファイルをまとめてEARファイルにパッケージングします。また，HCSCコンポーネントを配備するクラスタ（または単一のHCSCサーバ）の情報を定義（配備定義）します。

パッケージングと配備定義については，「9.　HCSCコンポーネントのパッケージングと配備定義」を参照してください。

(7)　リポジトリのエクスポート

HCSCコンポーネントの配備に必要な定義ファイルを格納したリポジトリをエクスポートします。開発環境からエクスポートした情報は，運用環境にインポートして利用されます。

リポジトリのエクスポートについては，「3.2.2　リポジトリをエクスポートする」を参照してください。

運用環境にインポートしたあと，FTP連携システムを運用する方法については，「21.　FTP連携システムの構築・運用」を参照してください。

18.　FTPアダプタの定義

この章では，FTPアダプタの概要，機能，および設定方法について説明します。

＜この章の構成＞

18.1　FTPアダプタの概要

18.2　FTPアダプタの機能

18.3　FTPアダプタの設定

18.4　FTPアダプタの電文フォーマット

18.1　FTPアダプタの概要

ここでは，FTPアダプタの役割，およびFTPアダプタを利用したファイル送受信の流れについて説明します。

＜この節の構成＞

18.1.1　FTPアダプタとは

18.1.2　FTPアダプタの処理の流れ

18.1.1　FTPアダプタとは

FTPアダプタとは，FTPサーバとCosminexus サービスプラットフォームとの間でファイルを送受信するためのサービスアダプタです。

FTPアダプタは，開発環境および実行環境に構築します。開発環境は「uCosminexus Service Adapter Architect for FTP」を，実行環境は「uCosminexus Service Adapter for FTP」をインストールして構築します。

FTP連携を利用したシステムでは，FTPクライアントとFTPサーバの間でファイルを送受信するために，接続するFTPサーバごとにFTPアダプタが必要になります。

FTPアダプタを利用したファイル送受信の流れを次の図に示します。

図18-1　FTPアダプタを利用したファイルの送受信の流れ

図中の制御およびデータの流れについて説明します。

FTPサーバからFTPクライアントへのファイル転送（GETオペレーション）の場合

FTPクライアントからファイル取得コマンドを実行すると，コマンドの実行要求がFTPインバウンドアダプタを経由してFTP受付に届けられます。そのあとビジネスプロセスが開始され，ビジネスプロセスからFTPアダプタが呼び出されます。

ビジネスプロセスから実行要求を受け取ったFTPアダプタは，FTPサーバと接続してFTPクライアントにファイルを送信します。

FTPクライアントからFTPサーバへのファイル転送（PUTオペレーション）の場合

FTPクライアントからファイル送信コマンドを実行すると，GETオペレーションの場合と同様に，コマンドの実行要求がFTPアダプタに届けられます。そのあと，FTPアダプタは，FTPサーバと接続してFTPクライアントからFTPサーバにファイルを送信します。

FTP連携システム全体のファイル送受信の流れについては，「17.4　FTP連携を利用したファイル転送パターン」を参照してください。

18.1.2　FTPアダプタの処理の流れ

FTPアダプタを中心としたファイル送受信時の処理の流れについて説明します。

ビジネスプロセスから実行要求を受けたときのFTPアダプタの処理の流れを次の図に示します。

図18-2　FTPアダプタの処理の流れ

ビジネスプロセスから実行要求を受けてFTPアダプタが呼び出されます。このとき，ファイルの転送情報は要求電文に格納されてFTPアダプタに渡されます。

要求電文を受け取ったFTPアダプタは，FTPサーバに対して接続・認証，転送コマンド，リストコマンド，切断などの処理を実行します。

FTPサーバの呼び出しが完了したあと，FTPアダプタは結果を応答電文に設定し，ビジネスプロセスに返します。
エラーが発生した場合は，応答電文の代わりにシステム例外を返します。

18.2　FTPアダプタの機能

ここでは，FTPアダプタの機能として，FTPアダプタが実行するFTPコマンドの種類，実行条件，およびタイマ管理などについて説明します。

＜この節の構成＞

18.2.1　FTPコマンドの実行

18.2.2　ファイル送受信時に使用するフォルダの指定

18.2.3　送受信後のファイルサイズ確認

18.2.4　タイマ管理

18.2.5　FTPSを使用したセキュアな接続

18.2.1　FTPコマンドの実行

FTPアダプタは，ビジネスプロセスから実行要求を受けたあと，条件に応じてFTPサーバに認証・接続や転送コマンドなどのFTPコマンドを実行します。

FTPアダプタが実行するFTPコマンドの種類，および実行条件を次の表に示します。

表18-1　FTPコマンドの種類とコマンドの実行可否

分類
FTPコマンド
コマンドの実行可否

接続・認証
（connect処理）
◎

AUTH
△※1

USER
◎

PASS
◎

ACCT
△※2

保護レベル
PBSZ
△※3

PROT
△※3

転送パラメタ
TYPE
△※2

MODE
△※2

PASV，PORT
○※4

ファイルサイズ確認
SITE FSIZE
△※5

転送前コマンド・転送後コマンド，
リスト前コマンド・リスト後コマンド※6
MDTM，SIZE，STAT，DELE，MKD，XMKD，RMD，XRMD，PWD，XPWD，CDUP，XCUP，CWD，XCWD，NOOP，SITE，RNFR，RNTO
△※7

転送または情報取得
STOR，APPE，RETR，LIST，NLST
○※2

切断
QUIT
◎

（凡例）

◎：必ず実行されます。

○：どれか一つが実行されます。

△：条件に依存します。

注※1

FTPSを使用する場合で，Explicitモードのときに実行されます。

注※2

要求電文フォーマットの指定によっては実行されます。実行条件については，「18.4.1　FTPアダプタの要求電文フォーマット」を参照してください。

注※3

FTPSを使用する場合に実行されます。

注※4

FTPアダプタ実行環境プロパティファイルのftpadp.pasvportプロパティの設定に依存します。FTPアダプタ実行環境プロパティファイルの詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTPアダプタ実行環境プロパティファイル」を参照してください。

注※5

SITE FSIZEコマンドの実行条件については，「18.2.3　送受信後のファイルサイズ確認」を参照してください。

注※6

ファイルの転送コマンド実行前，転送コマンド実行後，リストコマンド実行前，またはリストコマンド実行後に実行されるコマンドです。

注※7

要求電文フォーマットの<ftp-commands-before>タグ，および<ftp-commands-after>タグに実行指示がある場合に実行されます。

注意

FTPアダプタが実行するFTPコマンドの仕様はRFC959，RFC2228，およびRFC3659に準拠しています。ただし，次のコマンドは，RFCの仕様とFTPアダプタの仕様とで機能に差異があります。

TYPE
FTPアダプタのTYPEコマンドにEBCDICは指定できません。

MODE
FTPアダプタのMODEコマンドにブロックモードは指定できません。

LIST
コマンドの引数でオプションを指定できます。ただし，接続先FTPサーバがオプションの指定をサポートしている必要があります。

NLST
コマンドの引数でオプションを指定できます。ただし，接続先FTPサーバがオプションの指定をサポートしている必要があります。

18.2.2　ファイル送受信時に使用するフォルダの指定

FTPアダプタでは，HCSCサーバ内でFTP受付が管理する作業フォルダ，またはクラスタ構成内で共通に利用する共通フォルダを使用してファイルを送受信します。

PUTオペレーションまたはGETオペレーションの場合

ファイルの送受信時に使用するフォルダは，要求電文フォーマットのローカル側フォルダ（<local-folder>タグ）で指定できます。<local-folder>タグの属性に common="true"を指定している場合，ファイルの送受信には共通フォルダが利用されます。<local-folder>タグの属性に common="false"を指定している場合，ファイルの送受信には作業フォルダが利用されます。

GETINFOオペレーションの場合

必ず作業フォルダを使用します。

FTPアダプタの要求電文フォーマットの内容については，「18.4.1　FTPアダプタの要求電文フォーマット」を参照してください。

18.2.3　送受信後のファイルサイズ確認

送受信後のファイルサイズを確認する機能について説明します。

＜この項の構成＞

(1)　ファイルサイズ確認とは

(2)　設定方法

(3)　注意事項

(1)　ファイルサイズ確認とは

FTPサーバにJP1/File Transmission Server/FTPを使用している場合，FTPアダプタとFTPサーバとの間で送受信されたファイルのサイズが，送信側と受信側で正しいかどうかを確認できます。

転送中にファイルが破損した場合，FTPアダプタからの応答コードが正常終了しているときはファイルが破損しているかどうかをユーザから確認できません。このような場合に，FTPアダプタは転送元のファイルサイズと転送先のファイルサイズを比較して，ファイルサイズが異なる場合はビジネスプロセスにシステム例外（転送エラー）を返します。

なお，改行コードのバイト数が異なるOS間でASCIIモードのファイル転送をした場合，自動的に改行コードが変換されるためファイルサイズが増減しますが，この場合はエラーになりません。

JP1/File Transmission Server/FTPを使用したファイルサイズ確認機能については，マニュアル「JP1/File Transmission Server」を参照してください。

(2)　設定方法

ファイルサイズ確認を有効にするには，FTPアダプタ実行環境プロパティファイルのftpadp.file-size-checkプロパティを「TRUE」に設定している必要があります。

FTPアダプタ実行環境プロパティファイルの詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTPアダプタ実行環境プロパティファイル」を参照してください。

(3)　注意事項

FTPサーバにJP1/File Transmission Server/FTPを使用していない場合にFTPアダプタ実行環境プロパティファイルのftpadp.file-size-checkプロパティを「TRUE」に設定していると，FTPアダプタは例外を返して，リクエスト処理を終了します。

18.2.4　タイマ管理

FTPアダプタのタイマ管理の機能，およびタイムアウト値の設定方法について説明します。

FTPアダプタでは，次のタイムアウトを設定できます。

制御コネクション接続タイムアウト

FTPコマンドリプライタイムアウト

排他取得タイムアウト

データコネクション接続タイムアウト

データ転送・取得タイムアウト

Listenタイムアウト

各タイムアウト値は，FTPアダプタ実行環境プロパティファイルで設定できます。

FTPアダプタ実行環境プロパティファイルの詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTPアダプタ実行環境プロパティファイル」を参照してください。

＜この項の構成＞

(1)　制御コネクション接続タイムアウト

(2)　FTPコマンドリプライタイムアウト

(3)　排他取得タイムアウト

(4)　データコネクション接続タイムアウト

(5)　データ転送・取得タイムアウト

(6)　Listenタイムアウト

(1)　制御コネクション接続タイムアウト

FTPアダプタとFTPサーバの間のコマンド実行やその応答などは，制御コネクション接続によって通信されます。

FTPアダプタからの制御コネクションの接続要求時に相手先ビジーなどでコネクションを確立できなかった場合，指定間隔おきに指定回数まで接続処理をリトライします。接続処理をリトライした場合，リトライの状況を保守ログに出力します。

設定するパラメタを次の表に示します。

表18-2　制御コネクション接続タイムアウトの設定

値 | キー名称 | デフォルト値
制御コネクション接続リトライ回数（回） | ftpadp.control-con.retry.count | 5
制御コネクション接続リトライ間隔（秒） | ftpadp.control-con.retry.interval | 2
1回の制御コネクション接続タイムアウト時間（秒） | ftpadp.control-con.connect.timeout | 10

タイムアウト時間は，これらのパラメタに指定した値を使った次の計算式で求められます。

（1回の制御コネクション接続タイムアウト時間＋制御コネクション接続リトライ間隔）×制御コネクション接続リトライ回数

(2)　FTPコマンドリプライタイムアウト

FTPアダプタからFTPコマンドを発行したあと，指定した時間を経過しても応答がない場合，例外が発生します。FTPコマンドリプライタイムアウトを設定することで，例外が発生するまでの時間を設定できます。

設定するパラメタを次の表に示します。

表18-3　FTPコマンドリプライタイムアウトの設定

値 | キー名称 | デフォルト値（秒）
FTPコマンドリプライタイムアウト値 | ftpadp.ftp-command-reply.timeout | 60

(3)　排他取得タイムアウト

共通フォルダ内のファイルをPUTオペレーションでFTPサーバに転送する場合，共通フォルダ内のファイルに対して共有ロックが設定されます。

また，GETオペレーションで共通フォルダのファイルを取得する場合，共通フォルダのファイルに占有ロックが設定されます。

共有ロックまたは占有ロックの設定時に他プロセスとの競合によって設定が失敗したとき，指定間隔おきに指定回数まで排他取得処理をリトライします。排他取得処理をリトライした場合，リトライの状況を保守ログに出力します。リトライ間隔とリトライ回数の積がタイムアウト時間となります。

設定するパラメタを次の表に示します。

表18-4　排他取得タイムアウトの設定

値 | キー名称 | デフォルト値
共有ロックリトライ回数（回） | ftpadp.read-lock.retry.count | 0
共有ロックリトライ間隔（秒） | ftpadp.read-lock.retry.interval | 1
占有ロックリトライ回数（回） | ftpadp.write-lock.retry.count | 0
占有ロックリトライ間隔（秒） | ftpadp.write-lock.retry.interval | 1

(4)　データコネクション接続タイムアウト

FTPアダプタ，FTPサーバ間でのデータ転送は，データコネクション接続によって通信されます。

接続モードがPASVモードの場合，データコネクション接続要求時に相手先ビジーなどによってコネクションを確立できなかったときは，指定間隔おきに指定回数まで接続処理をリトライします。接続処理をリトライした場合，リトライの状況を保守ログに出力します。

接続モードがPORTモードの場合，データコネクション接続タイムアウトはFTPサーバの仕様に依存するため，FTPアダプタでは設定できません。

設定するパラメタを次の表に示します。

表18-5　データコネクション接続タイムアウトの設定

値 | キー名称 | デフォルト値
PASVモードのデータコネクション接続リトライ回数（回） | ftpadp.data-con.retry.count | 5
PASVモードのデータコネクション接続リトライ間隔（秒） | ftpadp.data-con.retry. interval | 2
1回のデータコネクション接続タイムアウト時間（秒） | ftpadp.data-con.connect.timeout | 10

タイムアウト時間は，これらのパラメタに指定した値を使った次の計算式で求められます。

（1回のデータコネクション接続タイムアウト時間＋PASVモードのデータコネクション接続リトライ間隔）×PASVモードのデータコネクション接続リトライ回数

(5)　データ転送・取得タイムアウト

FTPアダプタからデータ転送コマンドまたはリストコマンドを実行したあと，指定した時間を経過してもデータ転送またはリストデータの取得が完了しない場合は例外が発生します。データ転送タイムアウトおよびデータ取得タイムアウトを設定することで，例外が発生するまでの時間を指定できます。

この例外が発生した場合のローカルファイルおよびリモートファイルの扱いを次に示します。

RETRコマンド，LISTコマンド，またはNLSTコマンド実行中のローカルファイル
FTPアダプタが削除します。

STORコマンドまたはAPPEコマンド実行中のリモートファイル
FTPサーバの仕様に依存します。

設定するパラメタを次の表に示します。

表18-6　データ転送・取得タイムアウトの設定

値 | キー名称 | デフォルト値（秒）
データ転送タイムアウト値 | ftpadp.data-con-put.timeout | 60
データ取得タイムアウト値 | ftpadp.data-con-get.timeout | 60

(6)　Listenタイムアウト

接続モードがPORTモードの場合，FTPアダプタがPORTコマンドの応答を受けたあと，Listen状態で一定時間サーバからデータコネクションの接続要求がなかった場合，例外が発生します。Listenタイムアウトを設定することで，例外が発生するまでの時間を指定できます。

設定するパラメタを次の表に示します。

表18-7　Listenタイムアウトの設定

値 | キー名称 | デフォルト値（秒）
Listenタイムアウト値 | ftpadp.listen.timeout | 60

18.2.5　FTPSを使用したセキュアな接続

FTPアダプタでは，FTPS（File Transfer Protocol over SSL/TLS）によるFTPサーバとの接続をサポートしています。FTPSによる接続を利用することで，認証に必要なユーザ名やパスワードを暗号化し，第三者に盗聴される危険性を低下できます。

＜この項の構成＞

(1)　FTPSに関する設定項目

(2)　キーストアに関する設定

(1)　FTPSに関する設定項目

FTPSに関する設定項目について説明します。なお，FTPアダプタでは，要求電文またはFTPアダプタ実行環境プロパティファイルで設定できます。要求電文とFTPアダプタ実行環境プロパティファイルの両方で設定された場合は，要求電文が優先されます。

表18-8　FTPに関する設定項目

項目
説明

FTPSを使用する／使用しない
FTPサーバとの接続に，通常のFTPを使用するかFTPSを使用するか設定できます。デフォルトでは通常のFTPが使用されます。

使用するセキュリティ通信用のプロトコル
セキュリティ通信用のプロトコルとして，次のどちらかを選択できます。

SSL

TLS

FTPSのImplicitモードを使用する／使用しない
次のどちらかを選択できます。

Implicitモード
FTPサーバに接続した直後から暗号化された通信を開始するモードです。

Explicitモード
FTPサーバに接続したあと，FTPクライアント側でAUTHコマンドを実行してから暗号化された通信を開始するモードです。

なお，FTPサーバ側で使用する制御コネクションのポート番号は，ExplicitモードとImplicitモードで異なります。そのため，モードを変更する場合は接続先FTPサーバの制御コネクションポート番号も変更する必要があります。

データコネクションの通信を暗号化する／しない
FTPサーバとの接続にFTPSを使用する場合，データコネクションの通信を暗号化するかどうかを設定できます。

サーバ認証をする／しない
次のどちらかを選択できます。

サーバ認証をする
接続先FTPサーバの公開鍵の証明書が信頼できるかどうかをチェックし，信頼できる場合だけ処理を実行します。

サーバ認証をしない
接続先FTPサーバの公開鍵の証明書が信頼できるかどうかをチェックしないで，処理を実行します。

要求電文で設定できる項目の詳細は，「18.4.1　FTPアダプタの要求電文フォーマット」を参照してください。FTPアダプタ実行環境プロパティファイルで設定できる項目の詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTPアダプタ実行環境プロパティファイル」を参照してください。

注意

FTPアダプタでは，クライアント認証を必要とするFTPSサーバには接続できません。

(2)　キーストアに関する設定

FTPSを使用する場合で，かつFTPアダプタでサーバ認証をするとき，信頼できる証明書を格納したキーストア（トラストストア）が必要になります。

トラストストアには，次の証明書のどれかが格納されている必要があります。

接続先FTPサーバの公開鍵の証明書

接続先FTPサーバの公開鍵の証明書がCAから発行された証明書の場合は，この証明書を発行したCAの証明書

上記のCAが中間CAの場合は，中間CAからルートCAまでのどれかに該当するCAの証明書

キーストアへの証明書のインポート方法については，JDKのドキュメントの「keytool」に関する個所を参照してください。

キーストアのパスおよびパスワードに関する設定方法を次に示します。

キーストアのパス

サーバ認証をする場合，FTPアダプタは次の順にキーストアを探し，最初に発見したトラストストアを使用してサーバ認証を実施します。

usrconf.properties（J2EEサーバ用ユーザプロパティファイル）のjavax.net.ssl.trustStoreプロパティが指定されている場合，このシステムプロパティに指定されたパスに存在するキーストアを使用します。

次のパスにファイルが存在する場合，このファイルをキーストアとして使用します。
<Cosminexusインストールディレクトリ>¥jdk¥jre¥lib¥security¥jssecacerts

次のパスにファイルが存在する場合，このファイルをキーストアとして使用します。
<Cosminexusインストールディレクトリ>¥jdk¥jre¥lib¥security¥cacerts

上記のどれにも該当しない場合は，信頼できないサーバと判断されます。

キーストアのパスワード

usrconf.properties（J2EEサーバ用ユーザプロパティファイル）のjavax.net.ssl.trustStorePasswordプロパティでキーストアのパスワードが指定されている場合，キーストアを使用する前に，キーストアのデータが完全かどうかの検査が実施されます。

javax.net.ssl.trustStorePasswordプロパティが指定されていない場合は，キーストアのデータの検査が実施されません。

usrconf.properties（J2EEサーバ用ユーザプロパティファイル）の詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.4　usrconf.properties（J2EEサーバ用ユーザプロパティファイル）」を参照してください。

18.3　FTPアダプタの設定

FTPアダプタの設定方法について説明します。

＜この節の構成＞

18.3.1　FTPアダプタの設定の流れ

18.3.2　FTPアダプタの定義ファイルを作成する

18.3.3　FTPアダプタを追加する

18.3.4　FTPアダプタのデータ変換（マッピング）を定義する

18.3.5　FTPアダプタを保存する

18.3.6　FTPアダプタを削除する

18.3.1　FTPアダプタの設定の流れ

FTPアダプタの設定の流れを次の図に示します。設定方法については，以降の項で説明します。

図18-3　FTPアダプタの設定の流れ

FTPアダプタの設定に関する作業について次に説明します。

＜この項の構成＞

(1)　FTPアダプタの定義ファイルの作成

(2)　FTPアダプタの追加

(3)　データ変換（マッピング）の定義

(4)　FTPアダプタの保存

(5)　FTPアダプタの削除

(1)　FTPアダプタの定義ファイルの作成

FTPアダプタで使用する定義ファイルを作成し，指定された場所に格納します。

FTPアダプタの定義ファイルの作成については，「18.3.2　FTPアダプタの定義ファイルを作成する」を参照してください。

(2)　FTPアダプタの追加

ウィザードおよびサービスアダプタ定義画面を利用してFTPアダプタを追加します。FTPアダプタは，接続するFTPサーバごとに定義する必要があります。

FTPアダプタを追加する手順については，「18.3.3　FTPアダプタを追加する」を参照してください。

(3)　データ変換（マッピング）の定義

データ変換定義画面を利用して，変換元の電文フォーマット定義ファイルおよび変換先の電文フォーマット定義ファイルのデータ変換を定義します。

データ変換の定義については，「18.3.4　FTPアダプタのデータ変換（マッピング）を定義する」を参照してください。

(4)　FTPアダプタの保存

FTPアダプタの定義情報は，必要に応じてリポジトリに保存する必要があります。

FTPアダプタの保存については，「18.3.5　FTPアダプタを保存する」を参照してください。

(5)　FTPアダプタの削除

不要になったFTPアダプタは，必要に応じて削除できます。

FTPアダプタの削除については，「18.3.6　FTPアダプタを削除する」を参照してください。

18.3.2　FTPアダプタの定義ファイルを作成する

FTPアダプタで使用する定義ファイルの種類，および作成方法について説明します。

＜この項の構成＞

(1)　定義ファイルの種類

(2)　定義ファイルの作成

(1)　定義ファイルの種類

作成する定義ファイルの種類を次に示します。

FTPアダプタコマンド定義ファイル
FTPアダプタで使用するユーザ管理コマンドのメッセージログの出力先，出力レベルなどを定義するためのファイルです。

アカウント定義ファイル
FTP許可ユーザ，課金情報などのユーザアカウント情報を定義するためのファイルです。このファイルはFTPアダプタ実行環境プロパティファイルから参照されます。

FTPコマンド許可リスト定義ファイル（FTPアダプタ用）
転送前および転送後に実行するFTPコマンドの実行許可を定義するためのファイルです。このファイルはFTP受付コンフィグファイルおよびFTPアダプタ実行環境プロパティファイルから参照されます。

FTPアダプタ実行環境プロパティファイル
FTPアダプタごとの構成情報を定義するためのファイルです。

(2)　定義ファイルの作成

定義ファイルの作成手順について説明します。定義ファイルは，FTPアダプタが提供しているテンプレートファイルを利用して作成できます。

(a)　FTPアダプタコマンド定義ファイル

テンプレートファイル（<FTPアダプタのインストールディレクトリ>¥config¥templates¥adpftpcommand.properties）をコピーして，次のディレクトリに格納します。
<FTPアダプタのインストールディレクトリ>¥config

定義内容を編集して保存します。
FTPアダプタコマンド定義ファイルで編集できる定義内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTPアダプタコマンド定義ファイル」を参照してください。

(b)　アカウント定義ファイル

csaftpuseraddコマンドを実行してアカウント定義ファイルを作成します。
作成したアカウント定義ファイルのパスは，FTPアダプタ実行環境プロパティファイルのftpadp.account-inf-filepathキーで指定する必要があります。csaftpuseraddコマンドの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csaftpuseradd（FTPアダプタのユーザの登録・更新）」を参照してください。

(c)　FTPコマンド許可リスト定義ファイル（FTPアダプタ用）

テンプレートファイル（<FTPアダプタのインストールディレクトリ>¥config¥templates¥cscthrough.properties）をコピーして，任意のディレクトリに格納します。

コピーしたテンプレートファイルのファイル名を任意の名称に変更します。

定義内容を編集して保存します。
FTPコマンド許可リスト定義ファイル（FTPアダプタ用）で編集できる定義内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTPコマンド許可リスト定義ファイル」を参照してください。

(d)　FTPアダプタ実行環境プロパティファイル

テンプレートファイル（<FTPアダプタのインストールディレクトリ>¥config¥templates¥adpftp.properties）をコピーして，次のディレクトリに格納します。
<FTPアダプタのインストールディレクトリ>¥config

コピーしたテンプレートファイルのファイル名を「<サービスID※>.properties」に変更します。

定義内容を編集して保存します。
FTPアダプタ実行環境プロパティファイルで編集できる定義内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTPアダプタ実行環境プロパティファイル」を参照してください。

注※

サービスIDは，FTPアダプタを新規に追加するときにサービスアダプタ定義画面で指定する任意の文字列です。

18.3.3　FTPアダプタを追加する

FTPアダプタを新規に追加する手順を次に示します。

Eclipseのメニューから，［ウィンドウ］－［ビューの表示］－［その他］を選択します。
［ビューの表示］ダイアログが表示されます。

［HCSC-Definer］－［HCSCTEビュー］を選択し，［OK］ボタンをクリックします。
ツリービューにサービス定義一覧が表示されます。

ツリービューのサービス定義一覧で右クリックして「サービスアダプタ追加」を選択します。
追加するサービスアダプタから利用するサービス種別を設定するダイアログが表示されます。

サービス部品の種別のドロップダウンリストから「汎用カスタムアダプタ」を選択します。
［次へ］ボタンをクリックすると，カスタムアダプタの追加に必要な情報を入力するダイアログが表示されます。

サービス名とEARファイルを入力します。
サービス名には，任意のサービス名を入力します。EARファイルには，<FTPアダプタのインストールディレクトリ>¥lib¥adpftpejb.earを指定します。

［終了］ボタンをクリックします。
必要なファイルが作成され，リポジトリに保存されます。サービスアダプタ定義画面（基本）が表示されます。

定義項目を設定します。
サービスアダプタ定義画面（基本）で設定が必要な項目を次の表に示します。なお，下記以外の設定項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.2　サービスアダプタ定義画面」を参照してください。

表18-9　FTPアダプタのサービスアダプタ定義画面（基本）の設定項目

分類
項目
設定内容

サービス部品制御情報
オペレーション
次の中から使用するオペレーションを追加します。
PUT：PUT系（STORまたはAPPE）処理
GET：GET系（RETR）処理
GETINFO：GETINFO系（LISTまたはNLST）処理

オペレーション情報
通信モデル
「同期」を設定します。

要求電文
サービス部品
電文フォーマット
［オペレーション］の設定に応じて，必ず次のどれかの要求電文用フォーマット定義ファイルを指定します。

PUTの場合：ftpadp_put_request.xsd※

GETの場合：ftpadp_get_request.xsd※

GETINFOの場合：ftpadp_getinfo_request.xsd※

応答電文
サービス部品
電文フォーマット
［オペレーション］の設定に応じて，必ず次のどれかの応答電文用フォーマット定義ファイルを指定します。

PUTの場合：ftpadp_put_response.xsd※

GETの場合：ftpadp_get_response.xsd※

GETINFOの場合：ftpadp_getinfo_response.xsd※

注※

ファイルの格納先ディレクトリは「<FTPアダプタのインストールディレクトリ>¥schema」です。

［サービスアダプタ定義（詳細）］タブをクリックします。
サービスアダプタ定義画面（詳細）が表示されます。

定義情報を設定します。
サービスアダプタ定義画面（詳細）で設定が必要な項目を次の表に示します。サービスアダプタ定義画面（詳細）については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.2　サービスアダプタ定義画面」を参照してください。

表18-10　FTPアダプタのサービスアダプタ定義画面（詳細）の設定項目

分類
項目
設定内容

カスタムアダプタ制御情報
ユーティリティクラス（JARファイル）
FTPアダプタでは，次のユーティリティクラスを追加します。

adpftppc.jar※

独自定義ファイル
－

（凡例）

－：設定しません。

注※

ファイルの格納先ディレクトリは「<FTPアダプタのインストールディレクトリ>¥lib」です。

参考

作成したFTPアダプタは，必要に応じて保存，編集，および検証できます。

FTPアダプタを編集する方法については，「5.5　アダプタの編集」を参照してください。FTPアダプタを検証する方法については，「5.6　アダプタの検証」を参照してください。

18.3.4　FTPアダプタのデータ変換（マッピング）を定義する

データ変換定義画面を利用して，変換元の電文フォーマット定義ファイルおよび変換先の電文フォーマット定義ファイルのデータ変換を定義します。

データ変換の定義方法については，「7.　データ変換の定義」を参照してください。

18.3.5　FTPアダプタを保存する

サービスアダプタ定義画面で編集したFTPアダプタの定義情報をリポジトリに保存します。

FTPアダプタの保存手順はサービスアダプタを保存する場合と同様です。手順の詳細は，「5.4　アダプタの保存」を参照してください。

18.3.6　FTPアダプタを削除する

作成したFTPアダプタは必要に応じて削除できます。

FTPアダプタの削除手順はサービスアダプタを削除する場合と同様です。手順の詳細は，「5.7　アダプタの削除」を参照してください。

18.4　FTPアダプタの電文フォーマット

ここでは，FTPアダプタで作成する電文フォーマットの種類，および内容について説明します。

＜この節の構成＞

18.4.1　FTPアダプタの要求電文フォーマット

18.4.2　FTPアダプタの応答電文フォーマット

18.4.1　FTPアダプタの要求電文フォーマット

＜この項の構成＞

(1)　PUTオペレーション

(2)　GETオペレーション

(3)　GETINFOオペレーション

(1)　PUTオペレーション

ビジネスプロセスからFTPアダプタに渡すPUTオペレーションの要求電文フォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csaftp/put_request」です。

表18-11　要求電文フォーマット（PUTオペレーション）

タグ名
出現回数※1
説明

<request>
1回
－

<host-ipaddr>
0または1回
接続するFTPサーバのIPアドレスまたはホスト名です。

タグがあって値がある場合
指定の文字列でconnectが発行されます。

タグがあって値がない場合
システム例外を返します。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。FTPアダプタ実行環境プロパティファイルに指定がない場合，システム例外を返します。

<host-con-port>
0または1回
FTPサーバの制御コネクション用ポート番号です。

タグがあって値がある場合
1から65535までのポート番号を指定します。これ以外の値を指定した場合，システム例外を返します。

タグがあって値がない場合
デフォルトの21が指定されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

<file-name-charset>
0または1回
FTPサーバとの間の制御コネクションで，ファイル名などの情報を送受信するときに使用する文字セットの名称を示すタグです。指定値は次のどちらかです。
UTF-8：文字セットに「UTF-8」を使用します。
MS932：文字セットに「MS932」を使用します。

タグがあって値が使用できる文字セットの場合
ファイル名などの情報を送受信するときの文字セットとして適用されます。

タグがあって値が使用できない文字セット名の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「UTF-8」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

<ftps>
0または1回
FTPSに関する設定を示すタグです。タグがない場合，FTPSに関するすべての設定はFTPアダプタ実行環境プロパティファイルの値が有効となります。

<ftps-enable>
0または1回
FTPサーバとの接続にFTPSを使用するかどうかを指定するタグです。指定値は次のどちらかです。
true：FTPサーバとの接続にFTPSを使用します。
false：FTPサーバとの接続に通常のFTPを使用します。※2
FTPSを使用する場合，制御コネクションおよびデータコネクションの通信は暗号化されます。ただし，接続先のFTPサーバがFTPSによる接続をサポートしている必要があります。「true」を指定した場合でも，データコネクションの通信の暗号化が設定されていないときは，データコネクションの通信も暗号化されません。

タグがあって値が「true」または「false」の場合
指定した値が適用されます。

タグがあって値が「true」または「false」以外の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「false」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

<ftps-protocol-name>
0または1回
FTPサーバとの接続にFTPSを使用する場合に，使用するセキュリティ通信用のプロトコルを示すタグです。指定値は次のどちらかです。
TLS：セキュリティ通信用のプロトコルにTLSを使用します。
SSL：セキュリティ通信用のプロトコルにSSLを使用します。

タグがあって値が「TLS」または「SSL」の場合
指定した値が適用されます。

タグがあって値が「TLS」または「SSL」以外の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「TLS」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

この設定は，FTPサーバとの接続にFTPSを使用する場合だけ有効となります。

<ftps-implicit-mode>
0または1回
FTPサーバとの接続にFTPSを使用する場合に，FTPSのImplicitモードを使用するかどうかを指定するタグです。指定値は次のどちらかです。
true：Implicitモードを使用します。
false：Explicitモードを使用します。※2

タグがあって値が「true」または「false」の場合
指定した値が適用されます。

タグがあって値が「true」または「false」以外の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「false」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

この設定は，FTPサーバとの接続にFTPSを使用する場合だけ有効となります。

<ftps-data-con-secure>
0または1回
FTPサーバとの接続にFTPSを使用する場合に，データコネクションの通信を暗号化するかどうかを指定するタグです。指定値は次のどちらかです。
true：データコネクションの通信を暗号化します。
false：データコネクションの通信を暗号化しません。

タグがあって値が「true」または「false」の場合
指定した値が適用されます。

タグがあって値が「true」または「false」以外の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「true」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

この設定は，FTPサーバとの接続にFTPSを使用する場合だけ有効となります。

<ftps-server-authentication>
0または1回
FTPサーバとの接続にFTPSを使用する場合に，サーバ認証をするかどうかを指定するタグです。指定値は次のどちらかです。
true：サーバ認証をします。
false：サーバ認証をしません。

タグがあって値が「true」または「false」の場合
指定した値が適用されます。

タグがあって値が「true」または「false」以外の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「false」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

この設定は，FTPサーバとの接続にFTPSを使用する場合だけ有効となります。なお，「true」を指定する場合，キーストアに関する設定が必要になります。キーストアの設定方法については，「18.2.5　FTPSを使用したセキュアな接続」を参照してください。

<ftp-user>※3
0または1回
接続するFTPサーバのログインユーザ名を示すタグです。USERコマンドの引数として使用します。このタグに指定するログインユーザには，ファイル操作を実行できる権限が与えられている必要があります。
FTPアダプタ実行環境プロパティファイルに重複して設定されている場合，要求電文の値が有効になります。

タグがあって正常な値がある場合
「USER　"値"」が発行されます。値に改行が含まれている場合，システム例外を返します。

タグがあって値がない場合，または値に不正な文字が含まれている場合
システム例外を返します。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。FTPアダプタ実行環境プロパティファイルに指定がない場合，システム例外を返します。

<ftp-acct>※3
0または1回
接続するFTPサーバの課金情報を示すタグです。
FTPアダプタ実行環境プロパティファイルに重複して設定されている場合，要求電文の値が有効になります。

課金情報を必要とするユーザ

条件に応じて次の値が利用されます。

タグがあって正常な値がある場合
タグの内容がACCTコマンドに利用されます。値に改行が含まれている場合，システム例外を返します。

タグがあって値に不正な文字が含まれている場合
システム例外を返します。

タグがあって値がない場合
「ACCT　""」が発行されます。

タグがない場合
アカウント定義ファイルで指定されているACCTの値が利用されます。アカウント定義ファイルにACCTがない場合は「ACCT　""」が発行されます。

課金情報を必要としないユーザ

指定は無視されます。

<ftp-type>
0または1回
転送するデータタイプ（伝送モード）を示すタグです。TYPEコマンドの引数として使用します。FTPアダプタ実行環境プロパティファイルに重複して設定されている場合，要求電文の値が有効になります。
指定値は次のどちらかです。
A：ASCII形式で転送します。
I：バイナリ形式で転送します。

タグがあって値が「A」または「I」の場合
TYPEコマンドの引数として使用されます。

タグがあって値が「A」および「I」のどちらでもない場合
システム例外を返します。

タグがあって値がない場合
TYPEコマンドは実行されません。※4

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。FTPアダプタ実行環境プロパティファイルに指定がない場合，TYPEコマンドは実行されません。※4

<ftp-mode>
0または1回
転送モード（圧縮モード）を示すタグです。MODEコマンドの引数として使用します。FTPアダプタ実行環境プロパティファイルに重複して設定されている場合，要求電文の値が有効になります。
指定値は次のどちらかです。
S：ファイルを圧縮しないで伝送します。
C：ファイルを圧縮して伝送します。

タグがあって値が「S」または「C」の場合
MODEコマンドの引数として使用されます。

タグがあって値が「S」および「C」のどちらでもない場合
システム例外を返します。

タグがあって値がない場合
MODEコマンドは実行されません。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効となります。FTPアダプタ実行環境プロパティファイルにも指定がない場合は，デフォルトの「S」でMODEコマンドが実行されます。

<transfer-type>
1回
転送種別を示すタグです。次のどれかを設定します。
STOR：ファイルの上書き
APPE：ファイルへの情報追加

タグがあって値が「STOR」または「APPE」の場合
転送種別として利用されます。

タグがない，またはタグがあって値が「STOR」および「APPE」のどちらでもない場合
システム例外を返します。

<request-id>
0または1回
受付で作成したリクエストIDを示すタグです。

タグがあって値がある場合
リクエストIDとして利用されます。

タグがない，またはタグがあって値がない場合
作業フォルダを利用するときはシステム例外を返します。共通フォルダを利用するときは無視されます。

<local-folder>
1回
ローカル側フォルダを示すタグです。

タグの属性にcommon="true"が指定されている場合
ローカルフォルダとして共通フォルダを利用し，このタグには「共通フォルダ定義名」を指定します。
指定された共通フォルダ定義名から共通フォルダが取得できないときは，システム例外を返します。

タグの属性にcommon="false"が指定されている場合
ローカルフォルダとして作業フォルダを利用します。

common属性がない，または値が"true"および"false"のどちらでもない場合
システム例外を返します。

<local-file-name>
1回
ローカル側ファイル名を示すタグです。
作業フォルダまたは共通フォルダ直下のファイルを指定してください。ファイル名の先頭以外にスラッシュ（/）や円マーク（¥）などの区切り文字は使用できません。ファイル名の先頭にスラッシュ（/）を使用した場合，スラッシュ（/）は無視されます。また，シンボリックリンク以外のファイルを指定してください。

タグがあって値が上記の制限に従っている場合
ファイル名として使用されます。

タグがあって値が上記の制限に違反する場合
システム例外を返します。

タグがない，またはタグがあって値がない場合
システム例外を返します。

<remote-path>※5
1回
リモートパス名（FTPサーバに転送するときの転送先パス名）を示すタグです。

タグがあって値がある場合
リモートパス名として利用されます。

タグがない，またはタグがあって値がない場合
システム例外を返します。

<ftp-commands-before>
0または1回
ファイル転送前に実行するFTPコマンドとその引数を示すタグです。※6
複数のコマンドを実行する場合は，実行する順番にセミコロン（;）で区切って設定します（例：MKD transdir;CWD transdir）。

タグがあって値がある場合
ファイル転送前に実行するコマンドとして利用されます。

タグがない，またはタグがあって値がない場合
ファイル転送前に実行するコマンドはありません。

<ftp-commands-after>
0または1回
ファイル転送後に実行するFTPコマンドとその引数を示すタグです。※6
複数のコマンドを実行する場合は，実行する順番にセミコロン（;）で区切って設定します（例：RNFR oldfile.txt;RNTO newfile.txt）。

タグがあって値がある場合
ファイル転送後に実行するコマンドとして利用されます。

タグがない，またはタグがあって値がない場合
ファイル転送後に実行するコマンドはありません。

（凡例）

－：該当する項目はありません。

注※1

規定の出現回数を超える場合の動作は保証しません。

注※2

接続先FTPサーバがFTPSのImplicitモードで動作している場合に<ftps-enable>タグ，または<ftps-implicitmode>タグの値にfalseを指定すると，FTPサーバに接続したあとタイムアウトが発生するまで待ち状態となることがあります。

タイムアウトが発生するまでの時間は，次のうちどちらか小さい方の値となります。

FTPアダプタ実行環境プロパティファイルのftpadp.control-con.connect.timeoutプロパティで指定した値

接続先FTPサーバ側で設定されたタイムアウト値

FTPアダプタ実行環境プロパティファイルのftpadp.control-con.connect.timeoutプロパティで指定した値でタイムアウトとなった場合，FTPアダプタ実行環境プロパティファイルのftpadp.control-con.retry.countプロパティで指定した回数のリトライを行ったあと，KDEK30407-Eのエラーが発生します。

接続先FTPサーバ側で設定されたタイムアウト値でタイムアウトとなった場合，KDEK30428-Eのエラーが発生します。

注※3

次に示す文字以外は使用できません。

半角英数字，半角空白，感嘆符（!），ダブルクォーテーション（"），番号記号（#），ドル記号（$），パーセント（%），アンパサンド（&），アポストロフィ（'），始め小括弧（(），終わり小括弧（)），アスタリスク（*），正符号（+），コンマ（,），ハイフン（-），ピリオド（.），スラッシュ（/），コロン（:），セミコロン（;），左アングルブラケット（<），右アングルブラケット（>），等号（=），クエスチョンマーク（?），単価記号（@），始め角括弧（[），終わり角括弧（]），円マーク（¥），アクサンシルコンフレックス（^），アンダーライン（_），アクサングラーブ（`），始め波括弧（{），終わり波括弧（}），パイプライン（|），波ダッシュ（~）

注※4

FTPプロトコルの仕様（RFC959）に従い，デフォルトではASCII形式で転送されます。

注※5

FTP受付の要求電文の<transfer-path>タグと同じ値をFTPアダプタの<remote-path>タグに設定すると，パスの先頭がスラッシュ（/）になります。

相対パスを指定する場合やWindowsの絶対パス形式でパスを指定したい場合など，パスの先頭にスラッシュ（/）があると問題がある場合は，ビジネスプロセスのデータ変換アクティビティで部分文字列取得ファンクション（substr）を使用してFTP受付の要求電文の<transfer-path>タグの値から2文字目以降の文字列を取り出して，FTPアダプタの<remote-path>タグに設定してください。

注※6

<ftp-commands-before>タグおよび<ftp-commands-after>タグに指定されたコマンドは，そのままFTPサーバに送られ，FTPアダプタはコマンドのオプションの妥当性やコマンドの実行による影響について関知しません。

そのため，<ftp-commands-before>タグおよび<ftp-commands-after>タグにOPTS UTF {ON|OFF}コマンドを指定した場合は，FTPサーバとの通信に適用される文字セットを次のどちらかで指定しておく必要があります。

要求電文の<file-name-charset>タグ

FTPアダプタ実行環境プロパティファイルのftpadp.file-name.charsetプロパティ

(2)　GETオペレーション

ビジネスプロセスがFTPアダプタに渡すGETオペレーションの要求電文のフォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csaftp/get_request」です。

表18-12　要求電文フォーマット（GETオペレーション）

タグ名
出現回数※1
説明

<request>
1回
－

<host-ipaddr>
0または1回
接続するFTPサーバのIPアドレスまたはホスト名です。

タグがあって値がある場合
指定の文字列でconnectが発行されます。

タグがあって値がない場合
システム例外を返します。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。FTPアダプタ実行環境プロパティファイルに指定がない場合，システム例外を返します。

<host-con-port>
0または1回
FTPサーバの制御コネクション用ポート番号です。

タグがあって値がある場合
1から65535までのポート番号を指定します。これ以外の値を指定した場合，システム例外を返します。

タグがあって値がない場合
デフォルトの21が指定されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

<file-name-charset>
0または1回
FTPサーバとの間の制御コネクションで，ファイル名などの情報を送受信するときに使用する文字セットの名称を示すタグです。指定値は次のどちらかです。
UTF-8：文字セットに「UTF-8」を使用します。
MS932：文字セットに「MS932」を使用します。

タグがあって値が使用できる文字セットの場合
ファイル名などの情報を送受信するときの文字セットとして適用されます。

タグがあって値が使用できない文字セット名の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「UTF-8」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

<ftps>
0または1回
FTPSに関する設定を示すタグです。タグがない場合，FTPSに関するすべての設定はFTPアダプタ実行環境プロパティファイルの値が有効となります。

<ftps-enable>
0または1回
FTPサーバとの接続にFTPSを使用するかどうかを指定するタグです。指定値は次のどちらかです。
true：FTPサーバとの接続にFTPSを使用します。
false：FTPサーバとの接続に通常のFTPを使用します。※2
FTPSを使用する場合，制御コネクションおよびデータコネクションの通信は暗号化されます。ただし，接続先のFTPサーバがFTPSによる接続をサポートしている必要があります。「true」を指定した場合でも，データコネクションの通信の暗号化が設定されていないときは，データコネクションの通信も暗号化されません。

タグがあって値が「true」または「false」の場合
指定した値が適用されます。

タグがあって値が「true」または「false」以外の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「false」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

<ftps-protocol-name>
0または1回
FTPサーバとの接続にFTPSを使用する場合に，使用するセキュリティ通信用のプロトコルを示すタグです。指定値は次のどちらかです。
TLS：セキュリティ通信用のプロトコルにTLSを使用します。
SSL：セキュリティ通信用のプロトコルにSSLを使用します。

タグがあって値が「TLS」または「SSL」の場合
指定した値が適用されます。

タグがあって値が「TLS」または「SSL」以外の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「TLS」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

この設定は，FTPサーバとの接続にFTPSを使用する場合だけ有効となります。

<ftps-implicit-mode>
0または1回
FTPサーバとの接続にFTPSを使用する場合に，FTPSのImplicitモードを使用するかどうかを指定するタグです。指定値は次のどちらかです。
true：Implicitモードを使用します。
false：Explicitモードを使用します。※2

タグがあって値が「true」または「false」の場合
指定した値が適用されます。

タグがあって値が「true」または「false」以外の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「false」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

この設定は，FTPサーバとの接続にFTPSを使用する場合だけ有効となります。

<ftps-data-con-secure>
0または1回
FTPサーバとの接続にFTPSを使用する場合に，データコネクションの通信を暗号化するかどうかを指定するタグです。指定値は次のどちらかです。
true：データコネクションの通信を暗号化します。
false：データコネクションの通信を暗号化しません。

タグがあって値が「true」または「false」の場合
指定した値が適用されます。

タグがあって値が「true」または「false」以外の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「true」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

この設定は，FTPサーバとの接続にFTPSを使用する場合だけ有効となります。

<ftps-server-authentication>
0または1回
FTPサーバとの接続にFTPSを使用する場合に，サーバ認証をするかどうかを指定するタグです。指定値は次のどちらかです。
true：サーバ認証をします。
false：サーバ認証をしません。

タグがあって値が「true」または「false」の場合
指定した値が適用されます。

タグがあって値が「true」または「false」以外の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「false」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

この設定は，FTPサーバとの接続にFTPSを使用する場合だけ有効となります。なお，「true」を指定する場合，キーストアに関する設定が必要になります。キーストアの設定方法については，「18.2.5　FTPSを使用したセキュアな接続」を参照してください。

<ftp-user>※3
0または1回
接続するFTPサーバのログインユーザ名を示すタグです。USERコマンドの引数として使用します。このタグに指定するログインユーザには，ファイル操作を実行できる権限が与えられている必要があります。
FTPアダプタ実行環境プロパティファイルに重複して設定されている場合，要求電文の値が有効になります。

タグがあって正常な値がある場合
「USER　"値"」が発行されます。値に改行が含まれている場合，システム例外を返します。

タグがあって値がない場合，または値に不正な文字が含まれている場合
システム例外を返します。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。FTPアダプタ実行環境プロパティファイルに指定がない場合，システム例外を返します。

<ftp-acct>※3
0または1回
接続するFTPサーバの課金情報を示すタグです。FTPアダプタ実行環境プロパティファイルに重複して設定されている場合，要求電文の値が有効になります。

課金情報を必要とするユーザ

条件に応じて次の値が利用されます。

タグがあって正常な値がある場合
タグの内容がACCTコマンドに利用されます。値に改行が含まれている場合，システム例外を返します。

タグがあって値に不正な文字が含まれている場合
システム例外を返します。

タグがあって値がない場合
「ACCT　""」が発行されます。

タグがない場合
アカウント定義ファイルで指定されているACCTの値が利用されます。アカウント定義ファイルにACCTがない場合は「ACCT　""」が発行されます。

課金情報を必要としないユーザ

指定は無視されます。

<ftp-type>
0または1回
転送するデータタイプ（伝送モード）を示すタグです。TYPEコマンドの引数として使用します。FTPアダプタ実行環境プロパティファイルに重複して設定されている場合，要求電文の値が有効になります。
指定値は次のどちらかです。
A：ASCII形式で転送します。
I：バイナリ形式で転送します。

タグがあって値が「A」または「I」の場合
TYPEコマンドの引数として使用されます。

タグがあって値が「A」および「I」のどちらでもない場合
システム例外を返します。

タグがあって値がない場合
TYPEコマンドは実行されません。※4

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。FTPアダプタ実行環境プロパティファイルに指定がない場合，TYPEコマンドは実行されません。※4

<ftp-mode>
0または1回
転送モード（圧縮モード）を示すタグです。MODEコマンドの引数として使用します。FTPアダプタ実行環境プロパティファイルに重複して設定されている場合，要求電文の値が有効になります。
指定値は次のどちらかです。
S：ファイルを圧縮しないで伝送します。
C：ファイルを圧縮して伝送します。

タグがあって値が「S」または「C」の場合
MODEコマンドの引数として使用されます。

タグがあって値が「S」または「C」以外の場合
システム例外を返します。

タグがあって値がない場合
MODEコマンドは実行されません。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効となります。FTPアダプタ実行環境プロパティファイルにも指定がない場合は，デフォルトの「S」でMODEコマンドが実行されます。

<request-id>
0または1回
受付で作成したリクエストIDを示すタグです。

タグがあって値がある場合
リクエストIDとして利用されます。

タグがない，またはタグがあって値がない場合
作業フォルダを利用するときはシステム例外を返します。共通フォルダを利用するときは無視されます。

<local-folder>
1回
ローカル側フォルダを示すタグです。

タグの属性にcommon="true"が指定されている場合
ローカルフォルダとして共通フォルダを利用し，このタグには「共通フォルダ定義名」を指定します。
指定された共通フォルダ定義名から共通フォルダが取得できないときは，システム例外を返します。

タグの属性にcommon="false"が指定されている場合
ローカルフォルダとして作業フォルダを利用します。

common属性がない，または値が"true"および"false"のどちらでもない場合
システム例外を返します。

<local-file-name>
1回
ローカル側ファイル名を示すタグです。

作業フォルダを利用する場合

タグがあって値があるとき
この設定は無視されて処理が続行します。

タグがない，またはタグがあって値がないとき
処理が続行します。

共通フォルダを利用する場合

共通フォルダ直下のファイルを指定してください。ファイル名の先頭以外にスラッシュ（/）や円マーク（¥）などの区切り文字は使用できません。ファイル名の先頭にスラッシュ（/）を使用した場合，スラッシュ（/）は無視されます。また，シンボリックリンク以外のファイルを指定してください。

タグがあって値が上記の制限に従っているとき
ファイル名として使用されます。

タグがあって値が上記の制限に違反するとき
システム例外を返します。

タグがない，またはタグがあって値がないとき
システム例外を返します。

<remote-path>※5
1回
リモートパス名（FTPサーバに転送するときの転送先パス名）を示すタグです。

タグがあって値がある場合
リモートパス名として利用されます。

タグがない，またはタグがあって値がない場合
システム例外を返します。

<ftp-commands-before>※6
0または1回
ファイル転送前に実行するFTPコマンドとその引数を示すタグです。
複数のコマンドを実行する場合は，実行する順番にセミコロン（;）で区切って設定します。（例：MKD transdir;CWD transdir）

タグがあって値がある場合
ファイル転送前に実行するコマンドとして利用されます。

タグがない，またはタグがあって値がない場合
ファイル転送前に実行するコマンドはありません。

<ftp-commands-after>※6
0または1回
ファイル転送後に実行するFTPコマンドとその引数を示すタグです。
複数のコマンドを実行する場合は，実行する順番にセミコロン（;）で区切って設定します。（例：RNFR oldfile.txt;RNTO newfile.txt）

タグがあって値がある場合
ファイル転送後に実行するコマンドとして利用されます。

タグがない，またはタグがあって値がない場合
ファイル転送後に実行するコマンドはありません。

（凡例）

－：該当する項目はありません。

注※1

規定の出現回数を超える場合の動作は保証しません。

注※2

接続先FTPサーバがFTPSのImplicitモードで動作している場合に<ftps-enable>タグ，または<ftps-implicitmode>タグの値にfalseを指定すると，FTPサーバに接続したあとタイムアウトが発生するまで待ち状態となることがあります。

タイムアウトが発生するまでの時間は，次のうちどちらか小さい方の値となります。

FTPアダプタ実行環境プロパティファイルのftpadp.control-con.connect.timeoutプロパティで指定した値

接続先FTPサーバ側で設定されたタイムアウト値

FTPアダプタ実行環境プロパティファイルのftpadp.control-con.connect.timeoutプロパティで指定した値でタイムアウトとなった場合，FTPアダプタ実行環境プロパティファイルのftpadp.control-con.retry.countプロパティで指定した回数のリトライを行ったあと，KDEK30407-Eのエラーが発生します。

接続先FTPサーバ側で設定されたタイムアウト値でタイムアウトとなった場合，KDEK30428-Eのエラーが発生します。

注※3

次に示す文字以外は使用できません。

半角英数字，半角空白，感嘆符（!），ダブルクォーテーション（"），番号記号（#），ドル記号（$），パーセント（%），アンパサンド（&），アポストロフィ（'），始め小括弧（(），終わり小括弧（)），アスタリスク（*），正符号（+），コンマ（,），ハイフン（-），ピリオド（.），スラッシュ（/），コロン（:），セミコロン（;），左アングルブラケット（<），右アングルブラケット（>），等号（=），クエスチョンマーク（?），単価記号（@），始め角括弧（[），終わり角括弧（]），円マーク（¥），アクサンシルコンフレックス（^），アンダーライン（_），アクサングラーブ（`），始め波括弧（{），終わり波括弧（}），パイプライン（|），波ダッシュ（~）

注※4

FTPプロトコルの仕様（RFC959）に従い，デフォルトではASCII形式で転送されます。

注※5

FTP受付の要求電文の<transfer-path>タグと同じ値をFTPアダプタの<remote-path>タグに設定すると，パスの先頭がスラッシュ（/）になります。

相対パスを指定する場合やWindowsの絶対パス形式でパスを指定したい場合など，パスの先頭にスラッシュ（/）があると問題がある場合は，ビジネスプロセスのデータ変換アクティビティで部分文字列取得ファンクション（substr）を使用してFTP受付の要求電文の<transfer-path>タグの値から2文字目以降の文字列を取り出して，FTPアダプタの<remote-path>タグに設定してください。

注※6

<ftp-commands-before>タグおよび<ftp-commands-after>タグに指定されたコマンドは，そのままFTPサーバに送られ，FTPアダプタはコマンドのオプションの妥当性やコマンドの実行による影響について関知しません。

そのため，<ftp-commands-before>タグおよび<ftp-commands-after>タグにOPTS UTF {ON|OFF}コマンドを指定した場合は，FTPサーバとの通信に適用される文字セットを次のどちらかで指定しておく必要があります。

要求電文の<file-name-charset>タグ

FTPアダプタ実行環境プロパティファイルのftpadp.file-name.charsetプロパティ

(3)　GETINFOオペレーション

ビジネスプロセスがFTPアダプタに渡すGETINFOオペレーションの要求電文のフォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csaftp/getinfo_request」です。

表18-13　要求電文フォーマット（GETINFOオペレーション）

タグ名
出現回数※1
説明

<request>
1回
－

<host-ipaddr>
0または1回
接続するFTPサーバのIPアドレスまたはホスト名です。

タグがあって値がある場合
指定の文字列でconnectが発行されます。

タグがあって値がない場合
システム例外を返します。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。FTPアダプタ実行環境プロパティファイルに指定がない場合，システム例外を返します。

<host-con-port>
0または1回
FTPサーバの制御コネクション用ポート番号です。

タグがあって値がある場合
1から65535までのポート番号を指定します。これ以外の値を指定した場合，システム例外を返します。

タグがあって値がない場合
デフォルトの21が指定されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

<file-name-charset>
0または1回
FTPサーバとの間の制御コネクションで，次に示す情報を送受信するときに使用する文字セットの名称を示すタグです。

制御コネクションで送受信する情報（ファイル名など）

LISTコマンドまたはNLSTコマンド実行時にデータコネクションを介してFTPサーバから受け取る情報（ファイルの一覧情報）

指定値は次のどちらかです。
UTF-8：文字セットに「UTF-8」を使用します。
MS932：文字セットに「MS932」を使用します。

タグがあって値が使用できる文字セットの場合
ファイル名などの情報を送受信するときの文字セットとして適用されます。

タグがあって値が使用できない文字セット名の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「UTF-8」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

<ftps>
0または1回
FTPSに関する設定を示すタグです。タグがない場合，FTPSに関するすべての設定はFTPアダプタ実行環境プロパティファイルの値が有効となります。

<ftps-enable>
0または1回
FTPサーバとの接続にFTPSを使用するかどうかを指定するタグです。指定値は次のどちらかです。
true：FTPサーバとの接続にFTPSを使用します。
false：FTPサーバとの接続に通常のFTPを使用します。※2
FTPSを使用する場合，制御コネクションおよびデータコネクションの通信は暗号化されます。ただし，接続先のFTPサーバがFTPSによる接続をサポートしている必要があります。「true」を指定した場合でも，データコネクションの通信の暗号化が設定されていないときは，データコネクションの通信も暗号化されません。

タグがあって値が「true」または「false」の場合
指定した値が適用されます。

タグがあって値が「true」または「false」以外の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「false」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

<ftps-protocol-name>
0または1回
FTPサーバとの接続にFTPSを使用する場合に，使用するセキュリティ通信用のプロトコルを示すタグです。指定値は次のどちらかです。
TLS：セキュリティ通信用のプロトコルにTLSを使用します。
SSL：セキュリティ通信用のプロトコルにSSLを使用します。

タグがあって値が「TLS」または「SSL」の場合
指定した値が適用されます。

タグがあって値が「TLS」または「SSL」以外の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「TLS」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

この設定は，FTPサーバとの接続にFTPSを使用する場合だけ有効となります。

<ftps-implicit-mode>
0または1回
FTPサーバとの接続にFTPSを使用する場合に，FTPSのImplicitモードを使用するかどうかを指定するタグです。指定値は次のどちらかです。
true：Implicitモードを使用します。
false：Explicitモードを使用します。※2

タグがあって値が「true」または「false」の場合
指定した値が適用されます。

タグがあって値が「true」または「false」以外の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「false」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

この設定は，FTPサーバとの接続にFTPSを使用する場合だけ有効となります。

<ftps-data-con-secure>
0または1回
FTPサーバとの接続にFTPSを使用する場合に，データコネクションの通信を暗号化するかどうかを指定するタグです。指定値は次のどちらかです。
true：データコネクションの通信を暗号化します。
false：データコネクションの通信を暗号化しません。

タグがあって値が「true」または「false」の場合
指定した値が適用されます。

タグがあって値が「true」または「false」以外の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「true」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

この設定は，FTPサーバとの接続にFTPSを使用する場合だけ有効となります。

<ftps-server-authentication>
0または1回
FTPサーバとの接続にFTPSを使用する場合に，サーバ認証をするかどうかを指定するタグです。指定値は次のどちらかです。
true：サーバ認証をします。
false：サーバ認証をしません。

タグがあって値が「true」または「false」の場合
指定した値が適用されます。

タグがあって値が「true」または「false」以外の場合
システム例外を返します。

タグがあって値がない場合
デフォルトの「false」が使用されます。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。

この設定は，FTPサーバとの接続にFTPSを使用する場合だけ有効となります。なお，「true」を指定する場合，キーストアに関する設定が必要になります。キーストアの設定方法については，「18.2.5　FTPSを使用したセキュアな接続」を参照してください。

<ftp-user>※3
0または1回
接続するFTPサーバのログインユーザ名を示すタグです。USERコマンドの引数として使用します。ログインユーザ名は80文字以内で指定してください。このタグに指定するログインユーザには，ファイル操作を実行できる権限が与えられている必要があります。
FTPアダプタ実行環境プロパティファイルに重複して設定されている場合，要求電文の値が有効になります。

タグがあって正常な値がある場合
「USER　"値"」が発行されます。値に改行が含まれている場合，システム例外を返します。

タグがあって値がない場合，または値に不正な文字が含まれている場合
システム例外を返します。

タグがない場合
FTPアダプタ実行環境プロパティファイルの値が有効になります。FTPアダプタ実行環境プロパティファイルに指定がない場合，システム例外を返します。

<ftp-acct>※3
0または1回
接続するFTPサーバの課金情報を示すタグです。FTPアダプタ実行環境プロパティファイルに重複して設定されている場合，要求電文の値が有効になります。

課金情報を必要とするユーザ

条件に応じて次の値が利用されます。

タグがあって正常な値がある場合
タグの内容がACCTコマンドに利用されます。値に改行が含まれている場合，システム例外を返します。

タグがあって値に不正な文字が含まれている場合
システム例外を返します。

タグがあって値がない場合
「ACCT　""」が発行されます。

タグがない場合
アカウント定義ファイルで指定されているACCTの値が利用されます。アカウント定義ファイルにACCTがない場合は「ACCT　""」が発行されます。

課金情報を必要としないユーザ

指定は無視されます。

<getinfo-type>
1回
接続するFTPサーバから取得する情報の取得種別を示すタグです。
設定値は次のどちらかです。
LIST：LISTコマンドを実行し，ファイル情報の一覧を取得します。
NLST：NLSTコマンドを実行し，ファイル名の一覧を取得します。

タグがあって値が「LIST」または「NLST」の場合
指定された値を取得種別として利用します。

タグがあって値が「LIST」または「NLST」以外の場合
システム例外を返します。

タグがない，またはタグがあって値がない場合
システム例外を返します。

<getinfo-option>
0または1回
接続するFTPサーバから取得する情報の取得オプションを示すタグです。<getinfo-type>で指定したコマンドを実行するときに指定するオプションになります。

タグがあって値がある場合
指定された値をオプションとして指定して，<getinfo-type>で指定されたコマンドを実行します。

タグがない，またはタグがあって値がない場合
オプションなしで，<getinfo-type>で指定されたコマンドを実行します。

<getinfo-path>
0または1回
接続するFTPサーバから取得する情報の取得パスを示すタグです。<getinfo-type>で指定したコマンドを実行するときに指定するパスになります。

タグがあって値がある場合
指定された値をパスとして指定して，<getinfo-type>で指定されたコマンドを実行します。

タグがない，またはタグがあって値がない場合
パスなしで，<getinfo-type>で指定されたコマンドを実行します。

<request-id>
1回
FTP受付で作成したリクエストIDを示すタグです。

値がある場合
指定されている値をリクエストIDとして利用します。

値がない場合
システム例外を返します。

<ftp-commands-before>※4
0または1回
リストコマンド実行前に実行するFTPコマンドとその引数を示すタグです。
複数のコマンドを実行する場合は，実行する順番にセミコロン（;）で区切って設定します（例：MKD transdir;CWD transdir）。

タグがあって値がある場合
リストコマンド実行前に実行するコマンドとして利用されます。

タグがない，またはタグがあって値がない場合
リストコマンド実行前に実行するコマンドはありません。

<ftp-commands-after>※4
0または1回
リストコマンド実行後に実行するFTPコマンドとその引数を示すタグです。
複数のコマンドを実行する場合は，実行する順番にセミコロン（;）で区切って設定します（例：RNFR oldfile.txt;RNTO newfile.txt）。

タグがあって値がある場合
リストコマンド実行後に実行するコマンドとして利用されます。

タグがない，またはタグがあって値がない場合
リストコマンド実行後に実行するコマンドはありません。

（凡例）

－：該当する項目はありません。

注※1

規定の出現回数を超える場合の動作は保証しません。

注※2

接続先FTPサーバがFTPSのImplicitモードで動作している場合に<ftps-enable>タグ，または<ftps-implicitmode>タグの値にfalseを指定すると，FTPサーバに接続したあとタイムアウトが発生するまで待ち状態となることがあります。

タイムアウトが発生するまでの時間は，次のうちどちらか小さい方の値となります。

FTPアダプタ実行環境プロパティファイルのftpadp.control-con.connect.timeoutプロパティで指定した値

接続先FTPサーバ側で設定されたタイムアウト値

FTPアダプタ実行環境プロパティファイルのftpadp.control-con.connect.timeoutプロパティで指定した値でタイムアウトとなった場合，FTPアダプタ実行環境プロパティファイルのftpadp.control-con.retry.countプロパティで指定した回数のリトライを行ったあと，KDEK30407-Eのエラーが発生します。

接続先FTPサーバ側で設定されたタイムアウト値でタイムアウトとなった場合，KDEK30428-Eのエラーが発生します。

注※3

次に示す文字以外は使用できません。

半角英数字，半角空白，感嘆符（!），ダブルクォーテーション（"），番号記号（#），ドル記号（$），パーセント（%），アンパサンド（&），アポストロフィ（'），始め小括弧（(），終わり小括弧（)），アスタリスク（*），正符号（+），コンマ（,），ハイフン（-），ピリオド（.），スラッシュ（/），コロン（:），セミコロン（;），左アングルブラケット（<），右アングルブラケット（>），等号（=），クエスチョンマーク（?），単価記号（@），始め角括弧（[），終わり角括弧（]），円マーク（¥），アクサンシルコンフレックス（^），アンダーライン（_），アクサングラーブ（`），始め波括弧（{），終わり波括弧（}），パイプライン（|），波ダッシュ（~）

注※4

<ftp-commands-before>タグおよび<ftp-commands-after>タグに指定されたコマンドは，そのままFTPサーバに送られ，FTPアダプタはコマンドのオプションの妥当性やコマンドの実行による影響について関知しません。

そのため，<ftp-commands-before>タグおよび<ftp-commands-after>タグにOPTS UTF {ON|OFF}コマンドを指定した場合は，FTPサーバとの通信に適用される文字セットを次のどちらかで指定しておく必要があります。

要求電文の<file-name-charset>タグ

FTPアダプタ実行環境プロパティファイルのftpadp.file-name.charsetプロパティ

18.4.2　FTPアダプタの応答電文フォーマット

＜この項の構成＞

(1)　PUTオペレーション

(2)　GETオペレーション

(3)　GETINFOオペレーション

(4)　FTPアダプタが実行したコマンドの出力フォーマットと出力例

(5)　FTPコマンドのメッセージフォーマットと出力例

(1)　PUTオペレーション

FTPアダプタが呼び出し元のビジネスプロセスに返すPUTオペレーションの応答電文のフォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csaftp/put_response」です。

表18-14　応答電文フォーマット（PUTオペレーション）

タグ名
出現回数
説明

<response>
1回
－

<local-folder>
1回
ローカル側フォルダを示すタグです。
作業フォルダを利用した場合，属性に「common="false"」が設定されます。値には空白が設定されます。
共通フォルダを利用した場合，属性に「common="true"」が設定されます。値には，要求電文の<local-folder>タグで指定された共通フォルダ定義名が設定されます。

<local-file-name>
1回
ローカル側ファイル名を示すタグです。
要求電文の<local-file-name>で指定した値が設定されます。

<command-info>
1回以上
－

<command>
1回
FTPアダプタが実行したコマンドを示すタグです。※1
実行したすべてのFTPコマンドが出力されます。

<command-message>
1回以上
FTPアダプタが実行したコマンドの表示メッセージを示すタグです。※2
FTPコマンドのメッセージはFTP応答コードとメッセージから構成されます。
メッセージが複数行ある場合，これらが同一の応答コードのときは，一つのタグが生成されます。複数の種類のFTP応答コードがあるときは，このタグも複数生成されます。

（凡例）

－：該当する項目はありません。

注※1

FTPアダプタが実行するコマンドの種類については，「18.2.1　FTPコマンドの実行」を参照してください。

FTPアダプタが実行したコマンドの出力フォーマットと出力例については，「(4) FTPアダプタが実行したコマンドの出力フォーマットと出力例」を参照してください。

注※2

FTPコマンドのメッセージフォーマットと応答例については，「(5) FTPコマンドのメッセージフォーマットと出力例」を参照してください。

(2)　GETオペレーション

FTPアダプタが呼び出し元のビジネスプロセスに返すGETオペレーションの応答電文のフォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csaftp/get_response」です。

表18-15　応答電文フォーマット（GETオペレーション）

タグ名
出現回数
説明

<response>
1回
－

<local-folder>
1回
ローカル側フォルダを示すタグです。
作業フォルダを利用した場合，属性に「common="false"」が設定されます。値には空白が設定されます。
共通フォルダを利用した場合，属性に「common="true"」が設定されます。値には，要求電文の<local-folder>タグで指定された共通フォルダ定義名が設定されます。

<local-file-name>
1回
ローカル側ファイル名を示すタグです。

作業フォルダを利用する場合

作業フォルダの下に格納したファイル名が設定されます。ファイル名は，「csc_<内部生成された文字>」の形式となります。

共通フォルダを利用する場合

要求電文の<local-file-name>で指定した値が設定されます。

<file-size>
1回
送受信したリモートファイルのサイズを示すタグです。
FTPサーバから取得したローカルファイルのサイズが設定されます。

<command-info>
1回以上
－

<command>
1回
FTPアダプタが実行したFTPコマンドを示すタグです。※1
実行したすべてのFTPコマンドが出力されます。

<command-message>
1回以上
FTPアダプタが実行したコマンドの表示メッセージを示すタグです。※2
FTPコマンドのメッセージはFTP応答コードとメッセージから構成されます。
メッセージが複数行ある場合，これらが同一の応答コードのときは，一つのタグが生成されます。複数の種類のFTP応答コードがあるときは，このタグも複数生成されます。

（凡例）

－：該当する項目はありません。

注※1

FTPアダプタが実行するコマンドの種類については，「18.2.1　FTPコマンドの実行」を参照してください。

FTPアダプタが実行したコマンドの出力フォーマットと出力例については，「(4) FTPアダプタが実行したコマンドの出力フォーマットと出力例」を参照してください。

注※2

FTPコマンドのメッセージフォーマットと応答例については，「(5) FTPコマンドのメッセージフォーマットと出力例」を参照してください。

(3)　GETINFOオペレーション

FTPアダプタが呼び出し元のビジネスプロセスに返すGETINFOオペレーションの応答電文のフォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csaftp/getinfo_response」です。

表18-16　応答電文フォーマット（GETINFOオペレーション）

タグ名
出現回数
説明

<response>
1回
－

<local-file-name>
1回
ローカル側ファイル名を示すタグです。
作業フォルダの下に格納したファイル名が設定されます。ファイル名は，「csc_<内部生成された文字>」の形式となります。
取得した情報は，「UTF-16」の文字セットで出力されます。また，改行コードはCRLFで出力されます。

<reply-code>
1回
LISTコマンドまたはNLSTコマンドのリプライコードを示すタグです。
LISTコマンドまたはNLSTコマンドを実行したときに，FTPサーバから最後に送られてくるリプライコードとして，次のどれかが設定されます。

200～299
処理が正常に完了したことを示すコードです。

450または550
ファイル操作ができなかったことを示すコードです。

なお，LISTコマンドまたはNLSTコマンドで指定したパスが存在しない場合，返されるリプライコードは接続先のFTPサーバによって異なります。

<reply-message>
1回
LISTコマンドまたはNLSTコマンドのリプライメッセージを示すタグです。
LISTコマンドまたはNLSTコマンドを実行したときに，FTPサーバから最後に送られてきたリプライメッセージが設定されます。

<command-info>
1回以上
－

<command>
1回
FTPアダプタが実行したFTPコマンドを示すタグです。※1
実行したすべてのFTPコマンドが出力されます。

<command-message>
1回以上
FTPアダプタが実行したコマンドの表示メッセージを示すタグです。※2
FTPコマンドのメッセージはFTP応答コードとメッセージから構成されます。
メッセージが複数行ある場合，これらが同一の応答コードのときは，一つのタグが生成されます。複数の種類のFTP応答コードがあるときは，このタグも複数生成されます。

（凡例）

－：該当する項目はありません。

注※1

FTPアダプタが実行するコマンドの種類については，「18.2.1　FTPコマンドの実行」を参照してください。

FTPアダプタが実行したコマンドの出力フォーマットと出力例については，「(4) FTPアダプタが実行したコマンドの出力フォーマットと出力例」を参照してください。

注※2

FTPコマンドのメッセージフォーマットと応答例については，「(5) FTPコマンドのメッセージフォーマットと出力例」を参照してください。

(4)　FTPアダプタが実行したコマンドの出力フォーマットと出力例

応答電文の<command>タグに出力されるFTPコマンドの出力フォーマットと出力例を次の表に示します。

表18-17　FTPアダプタが実行したコマンドの出力フォーマットと出力例

項番
FTPコマンド
出力フォーマット
出力例
備考

1
（接続処理）
Connected to <xxxxx>.
Connected to 10.208.180.254.
<xxxxx>はFTPサーバのIPアドレスまたはホスト名です。

2
USER
USER <ユーザ名>
USER user1
－

3
PASS
PASS ********
PASS ********
パスワードは8個の*で表示されます。

4
ACCT
ACCT <課金情報>
ACCT acct1
－

5
TYPE
TYPE <形式オプション>
TYPE A
<形式オプション>には「A」または「I」のどちらかが表示されます。

6
MODE
MODE <転送モードオプション>
MODE S
<転送モードオプション>には「S」または「C」のどちらかが表示されます。

7
PASV
PASV
PASV
－

8
PORT
PORT <aaa>,<bbb>,<ccc>,<ddd>,<mmm>,<nnn>
PORT 10,208,182,27,14,160
<aaa>,<bbb>,<ccc>,<ddd>はローカル側のIPアドレスです。
<mmm>,<nnn>はポート番号です。ローカル側のデータコネクションポート番号は256*mmm+nnnで表現されます。

9
SITE
SITE FSIZE [<ファイルサイズ>]
SITE FSIZE 4096
GETオペレーションの場合，<ファイルサイズ>は出力されません。
また，PUTオペレーションの場合，<ファイルサイズ>に転送元ファイルの転送路上のファイルサイズが出力されます。

10
転送前コマンドまたはリスト前コマンド
<コマンド名> [<コマンド引数>]
CWD ./workdir
－

11
STOR
STOR <パス名>
STOR work/fileA.txt
－

12
APPE
APPE <パス名>
APPE work/fileA.txt
－

13
RETR
RETR <パス名>
RETR fileA.txt
－

14
LIST
LIST [<オプション>] [<パス名>]
LIST -l work
－

15
NLST
NLST [<オプション>] [<パス名>]
NLST -l work
－

16
転送後コマンドまたはリスト後コマンド
<コマンド名> [<コマンド引数>]
RNFR fileA.txt
RNTO fileB.txt
－

17
QUIT
QUIT
QUIT
－

（凡例）

－：該当する説明はありません。

(5)　FTPコマンドのメッセージフォーマットと出力例

応答電文の<command-message>タグに出力されるFTPコマンドのメッセージフォーマット，および出力例を次の表に示します。

表18-18　FTPコマンドのメッセージフォーマットと出力例

条件
メッセージフォーマット
出力例

単一応答コード
<FTP応答コード> <メッセージ>
226 File receive OK.

<FTP応答コード>-<メッセージ1>
[<メッセージ2>]
：
<FTP応答コード> <メッセージn※>
214-The following commands are recognized.
ACCT ALLO APPE CDUP ... MDTM MKD
NLST NOOP OPTS PASS ... RMD RNFR
214 Help OK.

複数応答コード
<FTP応答コード1> <メッセージ1>
<FTP応答コード2> <メッセージ2>
150 File status okay; about to open data connection.
226 Transfer complete.

注※

nは自然数です。

応答コードおよびメッセージの文字列の内容については，使用しているFTPサーバのドキュメントを参照してください。

19.　ファイル操作アダプタの定義

この章では，ファイル操作アダプタの概要，機能，および設定方法について説明します。

＜この章の構成＞

19.1　ファイル操作アダプタの概要

19.2　ファイル変換オペレーションの機能

19.3　ファイル操作アダプタの設定

19.4　ファイル操作アダプタの電文フォーマット

19.1　ファイル操作アダプタの概要

ファイル操作アダプタの構成およびサポートするオペレーションについて説明します。

＜この節の構成＞

19.1.1　ファイル操作アダプタとは

19.1.2　ファイル操作アダプタでサポートするオペレーション

19.1.1　ファイル操作アダプタとは

ファイル操作アダプタとは，FTPプログラムなどを利用して生成したファイルに対してレイアウト変換や文字コード変換，複製，削除などのファイル操作をするためのアダプタです。ファイル操作アダプタでは，ファイルに対する操作の単位をオペレーションと呼びます。

FTP連携を利用する場合，FTP受付およびFTPアダプタを使用してオペレーションごとにファイル操作アダプタを定義する必要があります。

ファイル操作アダプタの構成を次の図に示します。

図19-1　ファイル操作アダプタの構成

19.1.2　ファイル操作アダプタでサポートするオペレーション

ファイル操作アダプタでサポートするオペレーションには，次の種類があります。

ファイル変換オペレーション

ファイル複製オペレーション

ファイル・フォルダ削除オペレーション

それぞれのオペレーションの動作を次の図に示します。

図19-2　ファイル操作アダプタのオペレーションの動作

図中の1.～3.について説明します。次の番号は図中の番号と対応しています。

ファイル操作アダプタA（ファイル変換オペレーション）は，作業フォルダ（または共通フォルダ）から変換元の入力ファイルを読み込み，変換後の出力ファイルを作業フォルダ（または共通フォルダ）に書き込みます。

ファイル操作アダプタB（ファイル複製オペレーション）は，作業フォルダ（または共通フォルダ）から入力ファイルを読み込み，作業フォルダ（または共通フォルダ）に出力ファイルを複製します。

ファイル操作アダプタC（ファイル・フォルダ削除オペレーション）は，共通フォルダのファイル，または作業フォルダを削除します。

ファイル操作アダプタを使用してファイルの変換や削除などをする場合，オペレーションごとにファイル操作アダプタを定義する必要があります。

19.2　ファイル変換オペレーションの機能

ファイル変換オペレーションは，作業フォルダまたは共通フォルダから変換元の入力ファイルを読み込み，変換後の出力ファイルを作業フォルダまたは共通フォルダに書き込みます。

ファイル変換オペレーションの処理の概要について，次の図に示します。

図19-3　ファイル変換オペレーションの処理

ここでは，ファイル変換オペレーションでサポートするファイル形式，処理方式，およびファイル変換オペレーション使用時の注意事項について説明します。

＜この節の構成＞

19.2.1　ファイル変換オペレーションでサポートするファイル形式

19.2.2　ファイル変換オペレーションの処理方式

19.2.3　文字コード変換UOCを使用したファイルの変換

19.2.4　ファイル変換オペレーション使用時の注意事項

19.2.1　ファイル変換オペレーションでサポートするファイル形式

ファイル変換オペレーションで使用するファイル形式，対象フォルダ，ファイル形式の指定方法，およびデータ変換の指定方法について説明します。

＜この項の構成＞

(1)　サポートするファイル形式

(2)　変換の対象フォルダ

(3)　変換するファイル形式の指定方法

(4)　データ変換定義の指定方法

(1)　サポートするファイル形式

ファイル変換オペレーションでサポートする入力ファイル，および出力ファイルのファイル形式について次の表に示します。

表19-1　ファイル変換オペレーションでのファイル形式

項番 | ファイル形式 | 入力ファイル | 出力ファイル
1 | XML形式 | × | ×
2 | バイナリ形式 | 固定長形式 | ○ | ○
3 | レングスタグ形式 | × | ×
4 | 改行セパレータ形式 | ○ | ○
5 | 上記以外 | × | ×

（凡例）　○：サポート　×：未サポート

固定長形式，レングスタグ形式，および改行セパレータ形式の違いを次に示します。

固定長形式
レコードのバイト長をあらかじめ決めておく形式です。

レングスタグ形式
データ要素に対して，その長さまたは個数を表す数値情報を付けた形式です。

改行セパレータ形式
改行コード（LF（0x0a）またはCR+LF（0x0d 0x0a））の出現をレコードの区切りとする形式です。

ファイル変換オペレーションでの変換パターンを次の表に示します。

表19-2　ファイル変換オペレーションでの変換パターン

項番 | ファイル形式
変換前 | 変換後
1 | 固定長形式 | 固定長形式
2 | 改行セパレータ形式
3 | 改行セパレータ形式 | 固定長形式
4 | 改行セパレータ形式

ファイル変換時に，改行コードの付与・削除，文字コード変換，レイアウト変換ができます。

(2)　変換の対象フォルダ

ファイル変換オペレーションは，作業フォルダ，または共通フォルダを指定してファイルを変換します。作業フォルダ，または共通フォルダを指定しなかった場合，ファイルを変換できません。ただし，作業フォルダからファイルを入力して共通フォルダへファイルを出力したり，共通フォルダからファイルを入力して作業フォルダへ出力したりすることはできます。

出力先のフォルダに，すでに同名のファイルが存在する場合，ファイル操作アダプタ定義ファイルのプロパティで，ファイルを上書きするか，エラーメッセージを出力するかを指定できます。ファイル操作アダプタ定義ファイルの詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「ファイル操作アダプタ定義ファイル」を参照してください。

共通フォルダでは，ファイル変換時に入力ファイル，および出力ファイルを排他管理する必要があります。このため，読み込み対象のファイルには共有ロック，書き込みまたは削除対象のファイルには占有ロックが掛かります。

排他管理するには，実行環境プロパティファイルにあるロックリトライ回数またはロックリトライ間隔のパラメタを指定してください。排他管理で使用するパラメタについて，次の表に示します。

表19-3　排他管理で使用するパラメタ

項番 | ロック種別 | ロックリトライ回数 | ロックリトライ間隔
1 | 共有ロック | readLock.retry.count | readLock.retry.interval
2 | 占有ロック | writeLock.retry.count | writeLock.retry.interval

実行環境プロパティファイルの詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「実行環境プロパティファイル」を参照してください。

(3)　変換するファイル形式の指定方法

ファイル変換オペレーションで読み込むファイルや書き込むファイルの形式は，あらかじめバイナリフォーマット定義画面でバイナリフォーマット定義ファイルを作成したあと，ファイル操作アダプタの独自定義ファイルとして指定してください。

バイナリフォーマット定義画面の詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.1　バイナリフォーマット定義画面」を参照してください。

バイナリフォーマット定義ファイルの作成については，「4.4　電文フォーマット（バイナリフォーマット定義ファイル）の作成方法」を参照してください。

ファイル操作アダプタの独自定義ファイルの指定については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「ファイル操作アダプタ定義ファイル」を参照してください。

(4)　データ変換定義の指定方法

あらかじめ作成した入力ファイルから出力ファイルへ変換する定義ファイル（xslファイル）を，ファイル操作アダプタの独自定義ファイルとして指定します。

HCSCTEマッピング定義のマッピング定義ファイルから，データ変換定義を利用してxslファイルを作成してください。ファイル操作アダプタの独自定義ファイルの指定については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「ファイル操作アダプタ定義ファイル」を参照してください。

19.2.2　ファイル変換オペレーションの処理方式

ファイル変換オペレーションの処理方式について説明します。

＜この項の構成＞

(1)　処理方式の種類

(2)　一括処理方式

(3)　分割処理方式

(1)　処理方式の種類

ファイル操作アダプタのファイル変換オペレーションには，次の二種類の処理方式があります。

一括処理方式

分割処理方式

(2)　一括処理方式

入力ファイルを一括して読み込み，一括して変換します。変換後，一括して出力ファイルへ書き込みます。

一括処理方式で対象となるデータフォーマット，および対象とする変換内容を次に示します。

対象とするデータフォーマット
一つのバイナリフォーマット定義で定義できる範囲。

対象とする変換内容
一つのxslファイルで定義できる範囲。

注意

入力ファイルおよび出力ファイルのサイズが2GB以上のファイルは変換できません。2GB以上のファイルを変換した場合，動作を保証しません。

(3)　分割処理方式

入力ファイルの読み込み，変換，出力ファイルへの書き込みを，入力ファイルのレコード単位で処理します。入力ファイルの終端まで繰り返し処理を実行します。

レコード単位の判定には，次の二種類の方式があります。

固定長方式
レコードのバイト長をあらかじめ指定する方式です。入力ファイルが固定長形式の場合に使用します。

改行セパレータ方式
改行コード（LF（0x0a）またはCR+LF（0x0d 0x0a））の出現をレコードの区切りとして判定する方式です。入力ファイルが改行セパレータ形式の場合に使用します。改行セパレータ方式については，「19.2.2(3)(b)　処理の流れ」にあるレコード分割機能の説明を参照してください。

分割処理方式で，改行セパレータ方式を選択した場合，バイナリフォーマット定義に関係なく，改行コード（LF（0x0a）またはCR+LF（0x0d 0x0a））の出現でレコードの区切りを判断しているため，変換元ファイルにある文字コードの改行のバイトパターンが，改行コード以外のとき（文字コード例：UTF-16_BIG，UTF-16_LITTLE，KEIS+EBCDIC，KEIS+EBCDIK，KEIS），改行セパレータ方式の分割処理方式では正常に処理できません。

なお，CUSTOMを選択した場合，処理対象のデータに従います。

注意

入力ファイルおよび出力ファイルのサイズに制限はありません。ただし，入力ファイルおよび出力ファイルの1レコードのサイズが2GB以上のファイルは変換できません。1レコードのサイズが2GB以上のファイルを変換した場合，動作を保証しません。

(a)　対象とするデータフォーマット

ファイル分割機能が対象とするデータフォーマットは，バイナリフォーマット定義だけです。また，ファイル分割機能が対象とするデータ構造は，ヘッダレコード部，データレコード部，トレーラレコード部がこの順番で出現する構造である必要があります。

データレコード部は，決められた要素の並びが連続して繰り返されている構造を持ったデータです。データベースのテーブル構造と同じで，決められた要素の並び（行）をレコードと呼び，これがn回繰り返されているイメージです。レコード内の要素数およびレコード数に制限はありません。

ヘッダレコード部およびトレーラレコード部は，任意の要素が並ぶ複合内容要素で，レコードが繰り返されることはありません。また，これらの部分は省略できます。

データファイル構造とデータレコード部のイメージを次に示します。

図19-4　データファイル構造

図19-5　データレコード部のイメージ

データフォーマットは固定長形式および改行セパレータ形式に対応します。また，入力および出力フォーマットとも上記の形式の構造であることが必要です。

データ形式の例を次に示します。

図19-6　固定長形式のデータ例

図19-7　改行セパレータ形式のデータ例

フォーマット定義，およびデータ変換定義を次に示します。

フォーマット定義

分割処理方式を利用する場合，入力側と出力側のファイルフォーマットを定義する必要があるため，バイナリフォーマット定義エディタを使用して次のフォーマット定義を作成してください。

入力側のヘッダレコード部のフォーマット

入力側のデータレコード部のフォーマット

入力側のトレーラレコード部のフォーマット

出力側のヘッダレコード部のフォーマット

出力側のデータレコード部のフォーマット

出力側のトレーラレコード部のフォーマット

データ変換定義

分割処理方式を利用する場合，入力側と出力側のフォーマット間のデータ変換を定義する必要があるため，マッピング定義エディタを使用して次のデータ変換定義を作成してください。

ヘッダレコード部のデータ変換定義

データレコード部のデータ変換定義

トレーラレコード部のデータ変換定義

(b)　処理の流れ

レコード分割機能，およびレコード部の位置と長さについて説明します。

レコード分割機能

入力ファイルのバイナリデータがレコード単位に分割されて読み込まれます。読み込まれたデータは，レコードごとにデータ変換されて，出力ファイルへ書き込まれます。レコードの区切りの判定は，固定長方式または改行セパレータ方式から選択して指定できます。

データフォーマットの種類は，ファイル操作アダプタ定義ファイルの次のパラメタで指定してください。

csc.adapter.fileOperation.transform.format

内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「ファイル操作アダプタ定義ファイル」を参照してください。

固定長方式の場合
レコードの区切りは，ファイル操作アダプタ定義ファイルの次のパラメタに指定した個所です。
・csc.adapter.fileOperation.transform.header.fixedSize
・csc.adapter.fileOperation.transform.data.fixedSize
・csc.adapter.fileOperation.transform.trailer.fixedSize
内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「ファイル操作アダプタ定義ファイル」を参照してください。

改行セパレータ方式の場合
レコードの区切りは，入力ファイルに改行コード（LF（0x0a）またはCR+LF（0x0d 0x0a））が出現する個所です。ファイル終端もレコードの区切りとして扱われます。なお，改行直後にファイルの終端が出現する場合は，直前の改行と合わせて一つのレコードセパレータとして扱われます。

レコード部の位置と長さ

分割処理方式の場合，現在読み込まれているレコードが，ヘッダレコード部，データレコード部，トレーラレコード部のうちどれなのかを判定する必要があります。そのために，データフォーマットの種類ごとに，レコード部の位置と長さを判定する方法を次に示します。

固定長方式の場合
レコード部の位置と長さの判定について，次の表に示します。

表19-4　レコード有無指定によるレコード種別（固定長方式）

レコード
有無指定
ヘッダレコード部
指定有無
有
有
無
無

トレーラレコード部
指定有無
有
無
有
無

レコード部の位置と長さ
ヘッダレコード部
ファイル先頭
～
ヘッダレコード長
ファイル先頭
～
ヘッダレコード長
－
－

データレコード部
ヘッダレコード部
終了位置
～
データレコード長
＊データレコード数
ヘッダレコード部
終了位置
～
データレコード長
＊データレコード数
ファイル先頭
～
データレコード長
＊データレコード数
ファイル先頭
～
データレコード長
＊データレコード数

トレーラレコード部
データレコード部
終了位置
～
トレーラレコード長
－
データレコード部
終了位置
～
トレーラレコード長
－

（凡例）　－：該当しません。

データレコード数は，次の計算式に従って算出します。

データレコード部サイズ＝
データファイルサイズ －（ヘッダレコード長＋トレーラレコード長）
レコード数 ＝ データレコード部サイズ／データレコード長（小数点以下切り捨て）

レコード数の計算結果にあまりがある場合，メッセージ（KDEC80045-W）が出力されたあと，処理が継続されます。この場合，次に示すような可能性があるため，確認して原因を取り除いてください。
・入力ファイルの末尾にEODがある。
・入力ファイルに誤りがある。
・ファイル操作アダプタ定義ファイルの次の項目の設定に誤りがある。
　　csc.adapter.fileOperation.transform.headerRecord
　　csc.adapter.fileOperation.transform.trailerRecord
　　csc.adapter.fileOperation.transform.header.fixedSize
　　csc.adapter.fileOperation.transform.data.fixedSize
　　csc.adapter.fileOperation.transform.trailer.fixedSize

改行セパレータ方式の場合
レコード部の位置と長さの判定について，次の表に示します。

表19-5　レコード有無指定によるレコード種別（改行セパレータ方式）

レコード
有無指定
ヘッダレコード部
指定有無
有
有
無
無

トレーラレコード部
指定有無
有
無
有
無

レコード部の位置と長さ
ヘッダレコード部
先頭行
先頭行
－
－

データレコード部
先頭行以降
～
最終行直前
先頭行以降
～
最終行
先頭行
～
最終行直前
先頭行
～
最終行

トレーラレコード部
最終行
－
最終行
－

（凡例）　－：該当しません。

メッセージ（KDEC80047-E）が出力されて処理が終了された場合，次に示すような可能性があるため，確認して原因を取り除いてください。
・入力ファイルのレコード数が不足している。
・ファイル操作アダプタ定義ファイルの次の項目の設定に誤りがある。
　　csc.adapter.fileOperation.transform.headerRecord
　　csc.adapter.fileOperation.transform.trailerRecord

表19-6　エラー判定パターン

ヘッダレコード部 | トレーラレコード部 | 変換するファイルの行数
有 | 有 | 1行以下
有 | 無 | 0行以下
無 | 有 | 0行以下

19.2.3　文字コード変換UOCを使用したファイルの変換

ファイル変換オペレーションでは，ファイルの変換に文字コード変換UOCを使用できます。

文字コード変換UOCを使用する場合は，サービスアダプタ定義画面（詳細）の独自定義ファイルに，次のファイルを設定する必要があります。

入力ファイルと出力ファイルの変換で同じ独自定義ファイルを使用する場合

csc_owncodeconvert.properties

入力ファイルと出力ファイルの変換で別々の独自定義ファイルを使用する場合

csc_owncodeconvert_in.properties

csc_owncodeconvert_out.properties

1.で示したファイルと2.で示したファイルとを同時に指定した場合，1.で示したファイルが優先され，2.で示したファイルは無視されます。

サービスアダプタ定義画面（詳細）の設定方法については，「19.3.3(1)　ファイル変換オペレーション」を参照してください。

文字コード変換UOCの概要および実装方法については，「付録I　文字コード変換UOCを利用した文字コード変換」を参照してください。

19.2.4　ファイル変換オペレーション使用時の注意事項

ファイル変換オペレーションで分割処理方式を選択して，入力ファイルに改行セパレータ形式のファイルを扱う場合，次のファイルの複合内容要素のセパレータには，LineFeedを設定しないでください。

入力側のヘッダレコード部のバイナリフォーマット定義ファイル

入力側のデータレコード部のバイナリフォーマット定義ファイル

入力側のトレーラレコード部のバイナリフォーマット定義ファイル

LineFeedを設定した場合，メッセージ（KDEC80043-E）が出力され，ファイル変換の処理が中止されます。

正しく設定したセパレータの設定画面例を次に示します。

図19-8　セパレータの設定画面例（LineFeed設定なし）

図19-9　セパレータの設定画面例（CSV形式の場合）

19.3　ファイル操作アダプタの設定

ファイル操作アダプタの設定方法について説明します。

＜この節の構成＞

19.3.1　ファイル操作アダプタの設定の流れ

19.3.2　ファイル操作アダプタの定義ファイルを作成する

19.3.3　ファイル操作アダプタを追加する

19.3.4　ファイル操作アダプタを保存する

19.3.5　ファイル操作アダプタを削除する

19.3.1　ファイル操作アダプタの設定の流れ

ファイル操作アダプタの設定の流れを次の図に示します。

図19-10　ファイル操作アダプタの設定の流れ

ファイル操作アダプタの設定に関する作業について次に説明します。

＜この項の構成＞

(1)　ファイル操作アダプタの定義ファイルの作成

(2)　ファイル操作アダプタの追加

(3)　ファイル操作アダプタの保存

(4)　ファイル操作アダプタの削除

(1)　ファイル操作アダプタの定義ファイルの作成

ファイル操作アダプタで使用する定義ファイルを作成し，指定された場所に格納します。

ファイル操作アダプタの定義ファイルの作成については，「19.3.2　ファイル操作アダプタの定義ファイルを作成する」を参照してください。

(2)　ファイル操作アダプタの追加

ウィザードを利用してファイル操作アダプタを新規に追加します。ファイル操作アダプタを新規に追加するウィザードは，アダプタが呼び出すサービス部品の種類（Webサービス，SessionBean，MDB（WS-RまたはDBキュー））によって異なります。

ファイル操作アダプタを追加する方法の詳細は，「19.3.3　ファイル操作アダプタを追加する」を参照してください。

(3)　ファイル操作アダプタの保存

編集したファイル操作アダプタの定義情報は，必要に応じてリポジトリに保存する必要があります。

ファイル操作アダプタの定義情報の保存方法と保存されるタイミングについては，「19.3.4　ファイル操作アダプタを保存する」を参照してください。

(4)　ファイル操作アダプタの削除

不要になったファイル操作アダプタは，必要に応じて削除できます。

ファイル操作アダプタの削除方法については，「19.3.5　ファイル操作アダプタを削除する」を参照してください。

19.3.2　ファイル操作アダプタの定義ファイルを作成する

ファイル操作アダプタで使用する定義ファイルの種類，および作成方法について説明します。

＜この項の構成＞

(1)　定義ファイルの種類

(2)　定義ファイルの作成

(1)　定義ファイルの種類

作成する定義ファイルの種類を次に示します。

実行環境プロパティファイル
ファイル操作アダプタごとの構成情報を定義するためのファイルです。

ファイル操作アダプタ定義ファイル
ファイル操作アダプタの動作内容を定義するためのファイルです。

(2)　定義ファイルの作成

ファイル操作アダプタで使用する定義ファイルの作成手順について説明します。定義ファイルは，ファイル操作アダプタが提供しているテンプレートファイルを利用して作成します。

(a)　実行環境プロパティファイル

テンプレートファイル（<Cosminexusインストールディレクトリ>¥CSC¥config¥adpfop¥templates¥adpfop.properties）をコピーして，次のディレクトリに格納します。
<Cosminexusインストールディレクトリ>¥CSC¥config¥adpfop

コピーしたテンプレートファイルのファイル名を「<サービスID>.properties」に変更します。
サービスIDとは，ファイル操作アダプタを新規に追加するときに指定する任意の文字列です。

定義内容を編集して保存します。
実行環境プロパティファイルで編集できる項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「実行環境プロパティファイル」を参照してください。

実行環境プロパティファイルは，ファイル操作アダプタを開始する際に実行環境に反映されます。実行環境プロパティファイルの内容を変更する場合は，ファイル操作アダプタを停止してから作業をします。ファイル操作アダプタを再開始すると，変更内容が実行環境に反映されます。

(b)　ファイル操作アダプタ定義ファイル

テンプレートファイル（<Cosminexusインストールディレクトリ>¥CSC¥config¥adpfop¥templates¥cscFileOperation.properties）を，任意のディレクトリにコピーします。
ファイル名は変更しないでください。

定義内容を編集して保存します。
ファイル操作アダプタ定義ファイルで編集できる項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「ファイル操作アダプタ定義ファイル」を参照してください。

ファイル操作アダプタの定義情報設定時に，任意のディレクトリに格納したファイル操作アダプタ定義ファイルを，独自定義ファイルとして指定します。
ファイル操作アダプタのサービスアダプタ定義画面（詳細）については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.2　サービスアダプタ定義画面」を参照してください。

ファイル操作アダプタを開始すると，ファイル操作アダプタ定義ファイルに設定した内容が有効になります。

19.3.3　ファイル操作アダプタを追加する

ファイル操作アダプタは，オペレーションごとに定義する必要があります。

＜この項の構成＞

(1)　ファイル変換オペレーション

(2)　ファイル複製オペレーション

(3)　ファイル・フォルダ削除オペレーション

(1)　ファイル変換オペレーション

ファイル変換オペレーションを行う場合の，ファイル操作アダプタを新規に追加する手順を次に示します。

Eclipseのメニューから，［ウィンドウ］－［ビューの表示］－［その他］を選択します。
［ビューの表示］ダイアログが表示されます。

［HCSC-Definer］－［HCSCTEビュー］を選択し，［OK］ボタンをクリックします。
ツリービューにサービス定義一覧が表示されます。

ツリービューのサービス定義一覧で右クリックして「サービスアダプタ追加」を選択します。
追加するサービスアダプタから利用するサービス種別を設定するダイアログが表示されます。

サービス部品の種別のドロップダウンリストから「汎用カスタムアダプタ」を選択します。
［次へ］ボタンをクリックすると，カスタムアダプタの追加に必要な情報を入力するダイアログが表示されます。

サービス名とEARファイルを入力します。
サービス名には，任意のサービス名を入力します。EARファイルには，<Cosminexusのインストールディレクトリ>¥lib¥adpfopejb.earを指定します。

［終了］ボタンをクリックします。
必要なファイルが作成され，リポジトリに保存されます。サービスアダプタ定義画面（基本）が表示されます。

ファイル操作アダプタの定義情報を設定します。
ファイル操作アダプタの設定項目について次の表に示します。表に記載されていないサービスアダプタ定義画面の設定項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.2　サービスアダプタ定義画面」を参照してください。

表19-7　ファイル操作アダプタのサービスアダプタ定義画面（基本）の設定項目

分類 | 項目 | 設定内容
サービス部品制御情報 | オペレーション | 「TRANSFORM」を追加します。
オペレーション情報 | 通信モデル | 「同期」を設定します。
要求電文 | 標準 | ［使う］チェックボックス | チェックしません。
サービス部品 | 電文フォーマット | adpfop_transform_request.xsd※を指定します。
応答電文 | 標準 | ［使う］チェックボックス | チェックしません。
サービス部品 | 電文フォーマット | adpfop_transform_response.xsd※を指定します。
フォルト電文 | 電文フォーマット | 設定しません（フォルト電文は使用しません）。

注※

ファイルの格納先ディレクトリは「<Cosminexusインストールディレクトリ>¥CSC¥schema¥adpfop」です。

サービスアダプタ定義（詳細）タブをクリックします。

次の表に示すように，ファイル操作アダプタの定義情報を設定します。
表に記載されていないサービスアダプタ定義画面の設定項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.2　サービスアダプタ定義画面」を参照してください。

表19-8　ファイル操作アダプタのサービスアダプタ定義画面（詳細）の設定項目

分類
項目
設定内容

カスタムアダプタ制御情報
ユーティリティクラス（JARファイル）
adpfoppc.jar※を追加します。

独自定義ファイル
一括処理方式および分割処理方式共通の設定
cscFileOperation.properties（ファイル操作アダプタ定義ファイル）を追加します。
また，文字コード変換UOCが独自定義ファイルを参照する場合は，次のファイルを追加します。

csc_owncodeconvert.properties

csc_owncodeconvert_in.properties（入力ファイル用）

csc_owncodeconvert_out.properties（出力ファイル用）

一括処理方式を選択した場合
ファイル操作アダプタ定義ファイルの次のキーに指定したファイルを追加します。

csc.adapter.fileOperation.transform.all.inFormat

csc.adapter.fileOperation.transform.all.outFormat

csc.adapter.fileOperation.transform.all.styleSheet

分割処理方式を選択した場合
ファイル操作アダプタ定義ファイルの次のキーに指定したファイルを追加します。

csc.adapter.fileOperation.transform.data.inFormat

csc.adapter.fileOperation.transform.data.outFormat

csc.adapter.fileOperation.transform.data.styleSheet

ヘッダレコード部を使用する場合は，ファイル操作アダプタ定義ファイルの次のキーに指定したファイルを追加します。

csc.adapter.fileOperation.transform.header.inFormat

csc.adapter.fileOperation.transform.header.outFormat

csc.adapter.fileOperation.transform.header.styleSheet

トレーラレコード部を使用する場合は，ファイル操作アダプタ定義ファイルの次のキーに指定したファイルを追加します。

csc.adapter.fileOperation.transform.trailer.inFormat

csc.adapter.fileOperation.transform.trailer.outFormat

csc.adapter.fileOperation.transform.trailer.styleSheet

注※

ファイルの格納先ディレクトリは「<Cosminexusインストールディレクトリ>¥CSC¥lib」です。

参考

作成したファイル操作アダプタは，必要に応じて保存，編集，および検証できます。

ファイル操作アダプタを編集する方法については，「5.5　アダプタの編集」を参照してください。ファイル操作アダプタを検証する方法については，「5.6　アダプタの検証」を参照してください。

(2)　ファイル複製オペレーション

ファイル複製オペレーションを行う場合の，ファイル操作アダプタを新規に追加する手順を次に示します。

Eclipseのメニューから，［ウィンドウ］－［ビューの表示］－［その他］を選択します。
［ビューの表示］ダイアログが表示されます。

［HCSC-Definer］－［HCSCTEビュー］を選択し，［OK］ボタンをクリックします。
ツリービューにサービス定義一覧が表示されます。

ツリービューのサービス定義一覧で右クリックして「サービスアダプタ追加」を選択します。
追加するサービスアダプタから利用するサービス種別を設定するダイアログが表示されます。

サービス部品の種別のドロップダウンリストから「汎用カスタムアダプタ」を選択します。
［次へ］ボタンをクリックすると，カスタムアダプタの追加に必要な情報を入力するダイアログが表示されます。

サービス名とEARファイルを入力します。
サービス名には，任意のサービス名を入力します。EARファイルには，<Cosminexusのインストールディレクトリ>¥lib¥adpfopejb.earを指定します。

［終了］ボタンをクリックします。
必要なファイルが作成され，リポジトリに保存されます。サービスアダプタ定義画面（基本）が表示されます。

ファイル操作アダプタの定義情報を設定します。
ファイル操作アダプタの設定項目について次の表に示します。表に記載されていないサービスアダプタ定義画面の設定項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.2　サービスアダプタ定義画面」を参照してください。

表19-9　ファイル操作アダプタのサービスアダプタ定義画面（基本）の設定項目

分類 | 項目 | 設定内容
サービス部品制御情報 | オペレーション | 「COPY」を追加します。
オペレーション情報 | 通信モデル | 「同期」を設定します。
要求電文 | 標準 | ［使う］チェックボックス | チェックしません。
サービス部品 | 電文フォーマット | adpfop_copy_request.xsd※を指定します。
応答電文 | 標準 | ［使う］チェックボックス | チェックしません。
サービス部品 | 電文フォーマット | adpfop_copy_response.xsd※を指定します。
フォルト電文 | 電文フォーマット | 設定しません（フォルト電文は使用しません）。

注※

ファイルの格納先ディレクトリは「<Cosminexusインストールディレクトリ>¥CSC¥schema¥adpfop」です。

サービスアダプタ定義（詳細）タブをクリックします。

次の表に示すように，ファイル操作アダプタの定義情報を設定します。
表に記載されていないサービスアダプタ定義画面の設定項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.2　サービスアダプタ定義画面」を参照してください。

表19-10　ファイル操作アダプタのサービスアダプタ定義画面（詳細）の設定項目

分類 | 項目 | 設定内容
カスタムアダプタ制御情報 | ユーティリティクラス（JARファイル） | adpfoppc.jar※を追加します。
独自定義ファイル | cscFileOperation.properties（ファイル操作アダプタ定義ファイル）を追加します。

注※

ファイルの格納先ディレクトリは「<Cosminexusインストールディレクトリ>¥CSC¥lib」です。

参考

作成したファイル操作アダプタは，必要に応じて保存，編集，および検証できます。

ファイル操作アダプタを編集する方法については，「5.5　アダプタの編集」を参照してください。ファイル操作アダプタを検証する方法については，「5.6　アダプタの検証」を参照してください。

(3)　ファイル・フォルダ削除オペレーション

ファイル・フォルダ削除オペレーションを行う場合の，ファイル操作アダプタを新規に追加する手順を次に示します。

Eclipseのメニューから，［ウィンドウ］－［ビューの表示］－［その他］を選択します。
［ビューの表示］ダイアログが表示されます。

［HCSC-Definer］－［HCSCTEビュー］を選択し，［OK］ボタンをクリックします。
ツリービューにサービス定義一覧が表示されます。

ツリービューのサービス定義一覧で右クリックして「サービスアダプタ追加」を選択します。
追加するサービスアダプタから利用するサービス種別を設定するダイアログが表示されます。

サービス部品の種別のドロップダウンリストから「汎用カスタムアダプタ」を選択します。
［次へ］ボタンをクリックすると，カスタムアダプタの追加に必要な情報を入力するダイアログが表示されます。

サービス名とEARファイルを入力します。
サービス名には，任意のサービス名を入力します。EARファイルには，<Cosminexusのインストールディレクトリ>¥lib¥adpfopejb.earを指定します。

［終了］ボタンをクリックします。
必要なファイルが作成され，リポジトリに保存されます。サービスアダプタ定義画面（基本）が表示されます。

ファイル操作アダプタの定義情報を設定します。
ファイル操作アダプタの設定項目について次の表に示します。表に記載されていないサービスアダプタ定義画面の設定項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.2　サービスアダプタ定義画面」を参照してください。

表19-11　ファイル操作アダプタのサービスアダプタ定義画面（基本）の設定項目

分類 | 項目 | 設定内容
サービス部品制御情報 | オペレーション | 「DELETE」を追加します。
オペレーション情報 | 通信モデル | 「同期」を設定します。
要求電文 | 標準 | ［使う］チェックボックス | チェックしません。
サービス部品 | 電文フォーマット | adpfop_delete_request.xsd※を指定します。
応答電文 | 標準 | ［使う］チェックボックス | チェックしません。
サービス部品 | 電文フォーマット | adpfop_delete_response.xsd※を指定します。
フォルト電文 | 電文フォーマット | 設定しません（フォルト電文は使用しません）。

注※

ファイルの格納先ディレクトリは「<Cosminexusインストールディレクトリ>¥CSC¥schema¥adpfop」です。

サービスアダプタ定義（詳細）タブをクリックします。

次の表に示すように，ファイル操作アダプタの定義情報を設定します。
表に記載されていないサービスアダプタ定義画面の設定項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.2　サービスアダプタ定義画面」を参照してください。

表19-12　ファイル操作アダプタのサービスアダプタ定義画面（詳細）の設定項目

分類 | 項目 | 設定内容
カスタムアダプタ制御情報 | ユーティリティクラス（JARファイル） | adpfoppc.jar※を追加します。
独自定義ファイル | cscFileOperation.properties（ファイル操作アダプタ定義ファイル）を追加します。

注※

ファイルの格納先ディレクトリは「<Cosminexusインストールディレクトリ>¥CSC¥lib」です。

参考

作成したファイル操作アダプタは，必要に応じて保存，編集，および検証できます。

ファイル操作アダプタを編集する方法については，「5.5　アダプタの編集」を参照してください。ファイル操作アダプタを検証する方法については，「5.6　アダプタの検証」を参照してください。

19.3.4　ファイル操作アダプタを保存する

サービスアダプタ定義画面で編集したファイル操作アダプタの定義情報をリポジトリに保存します。

ファイル操作アダプタの保存手順はサービスアダプタを保存する場合と同様です。手順の詳細は，「5.4　アダプタの保存」を参照してください。

19.3.5　ファイル操作アダプタを削除する

作成したファイル操作アダプタは必要に応じて削除できます。

ファイル操作アダプタの削除手順はサービスアダプタを削除する場合と同様です。手順の詳細は，「5.7　アダプタの削除」を参照してください。

19.4　ファイル操作アダプタの電文フォーマット

ファイル操作アダプタで作成する電文フォーマットの種類，および内容について説明します。

＜この節の構成＞

19.4.1　ファイル操作アダプタの要求電文フォーマット

19.4.2　ファイル操作アダプタの応答電文フォーマット

19.4.1　ファイル操作アダプタの要求電文フォーマット

ファイル操作アダプタの要求電文フォーマットを，オペレーションごとに説明します。

＜この項の構成＞

(1)　ファイル変換オペレーション

(2)　ファイル複製オペレーション

(3)　ファイル・フォルダ削除オペレーション

(4)　ファイル操作アダプタが要求電文の取得に失敗した場合

(1)　ファイル変換オペレーション

ビジネスプロセスからファイル操作アダプタに渡す要求電文フォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/adapter/fileoperation/transform_request」です。

表19-13　要求電文フォーマット（ファイル変換オペレーション）

タグ名
出現回数※
説明

<request>
1回
－

<request-id>
0または1回
FTP受付で作成したリクエストIDです。作業フォルダのパス生成に使用します。入力フォルダ，および出力フォルダに作業フォルダを指定しない場合は，省略できます。

<input-folder-name>
1回
変換するファイルが格納されているフォルダを指定します。

作業フォルダを指定する場合
タグの属性にcommon="false"を，値に空文字を指定します。

共通フォルダを指定する場合
タグの属性にcommon="true"を，値に共通フォルダ定義名を指定します。

<input-file-name>
1回
変換するファイル名を指定します。
ファイル名の先頭以外にスラッシュ（/）は使用できません。また，ファイル名の先頭に設定されたスラッシュ（/）は，無視されます。
Windowsの場合，次の制限があります。

大文字と小文字は区別されません。

UNC形式のファイル名は指定できません。

NTFSのストリーム名は指定できません。

予約デバイス名を含むファイル名は指定できません。

<output-folder-name>
1回
変換後のファイルを出力するフォルダを指定します。

作業フォルダを指定する場合
タグの属性にcommon="false"を，値に空文字を指定します。

共通フォルダを指定する場合
タグの属性にcommon="true"を，値に共通フォルダ定義名を指定します。

<output-file-name>
0または1回
変換後のファイルのファイル名を指定します。
ただし，変換後のファイルの出力先が作業フォルダの場合（output-folder-nameタグの属性にcommon="false"を指定した場合），java.io.FileのcreateTempFile()を使用して作業フォルダ内で一意のファイルが作成されるため，指定は無視されます。
ファイル名の先頭以外にスラッシュ（/）は使用できません。また，ファイル名の先頭に設定されたスラッシュ（/）は，無視されます。
Windowsの場合，次の制限があります。

大文字と小文字は区別されません。

UNC形式のファイル名は指定できません。

NTFSのストリーム名は指定できません。

予約デバイス名を含むファイル名は指定できません。

（凡例）

－：該当する項目はありません。

注※

規定の出現回数を超える場合の動作は保証しません。

(2)　ファイル複製オペレーション

ビジネスプロセスからファイル操作アダプタに渡す要求電文フォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/adapter/fileoperation/copy_request」です。

表19-14　要求電文フォーマット（ファイル複製オペレーション）

タグ名
出現回数※
説明

<request>
1回
－

<request-id>
0または1回
FTP受付で作成したリクエストIDです。作業フォルダのパス生成に使用します。入力フォルダ，および出力フォルダに作業フォルダを指定しない場合は，省略できます。

<input-folder-name>
1回
複製するファイルが格納されているフォルダを指定します。

作業フォルダを指定する場合
タグの属性にcommon="false"を，値に空文字を指定します。

共通フォルダを指定する場合
タグの属性にcommon="true"を，値に共通フォルダ定義名を指定します。

<input-file-name>
1回
複製するファイル名を指定します。
ファイル名の先頭以外にスラッシュ（/）は使用できません。また，ファイル名の先頭に設定されたスラッシュ（/）は，無視されます。
Windowsの場合，次の制限があります。

大文字と小文字は区別されません。

UNC形式のファイル名は指定できません。

NTFSのストリーム名は指定できません。

予約デバイス名を含むファイル名は指定できません。

<output-folder-name>
1回
複製後のファイルを出力するフォルダを指定します。

作業フォルダを指定する場合
タグの属性にcommon="false"を，値に空文字を指定します。

共通フォルダを指定する場合
タグの属性にcommon="true"を，値に共通フォルダ定義名を指定します。

<output-file-name>
0または1回
複製後のファイルのファイル名を指定します。
ただし，変換後のファイルの出力先が作業フォルダの場合（output-folder-nameタグの属性にcommon="false"を指定した場合），java.io.FileのcreateTempFile()を使用して作業フォルダ内で一意のファイルが作成されるため，指定は無視されます。
ファイル名の先頭以外にスラッシュ（/）は使用できません。また，ファイル名の先頭に設定されたスラッシュ（/）は，無視されます。
Windowsの場合，次の制限があります。

大文字と小文字は区別されません。

UNC形式のファイル名は指定できません。

NTFSのストリーム名は指定できません。

予約デバイス名を含むファイル名は指定できません。

（凡例）

－：該当する項目はありません。

注※

規定の出現回数を超える場合の動作は保証しません。

(3)　ファイル・フォルダ削除オペレーション

ビジネスプロセスからファイル操作アダプタに渡す要求電文フォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/adapter/fileoperation/delete_request」です。

表19-15　要求電文フォーマット（ファイル・フォルダ削除オペレーション）

タグ名
出現回数※
説明

<request>
1回
－

<request-id>
0または1回
FTP受付で作成したリクエストIDです。作業フォルダのパス生成に使用します。入力フォルダ，および出力フォルダに作業フォルダを指定しない場合は，省略できます。

<folder-name>
1回
削除するファイルが格納されているフォルダ，または削除するフォルダを指定します。

作業フォルダを指定する場合
タグの属性にcommon="false"を，値に空文字を指定します。

共通フォルダを指定する場合
タグの属性にcommon="true"を，値に共通フォルダ定義名を指定します。

<input-file-name>
1回
削除するファイル名を指定します。
ファイル名の先頭以外にスラッシュ（/）は使用できません。また，ファイル名の先頭に設定されたスラッシュ（/）は，無視されます。
Windowsの場合，次の制限があります。

大文字と小文字は区別されません。

UNC形式のファイル名は指定できません。

NTFSのストリーム名は指定できません。

予約デバイス名を含むファイル名は指定できません。

（凡例）

－：該当する項目はありません。

注※

規定の出現回数を超える場合の動作は保証しません。

(4)　ファイル操作アダプタが要求電文の取得に失敗した場合

エラーメッセージ（KDEC80002-E）を出力して処理を終了します。

19.4.2　ファイル操作アダプタの応答電文フォーマット

ファイル操作アダプタの応答電文フォーマットを，オペレーションごとに説明します。

＜この項の構成＞

(1)　ファイル変換オペレーション

(2)　ファイル複製オペレーション

(3)　ファイル・フォルダ削除オペレーション

(4)　ファイル操作アダプタが応答電文の生成に失敗した場合

(1)　ファイル変換オペレーション

ファイル操作アダプタが呼び出し元のビジネスプロセスへ返す応答電文のフォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/adapter/fileoperation/transform_response」です。

表19-16　応答電文フォーマット（ファイル変換オペレーション）

タグ名
出現回数※
説明

<response>
1回
－

<output-folder-name>
1回
変換後のファイルを出力するフォルダが設定されます。

作業フォルダが設定されている場合
タグの属性にcommon="false"が，値に空文字が設定されます。

共通フォルダが設定されている場合
タグの属性にcommon="true"が，値に共通フォルダ定義名が設定されます。

<output-file-name>
1回
変換後のファイルのファイル名が設定されます。

<output-file-size>
1回
変換後のファイルのサイズ（バイト）が設定されます。

（凡例）

－：該当する項目はありません。

注※

規定の出現回数を超える場合の動作は保証しません。

(2)　ファイル複製オペレーション

ファイル操作アダプタが呼び出し元のビジネスプロセスへ返す応答電文のフォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/adapter/fileoperation/copy_response」です。

表19-17　応答電文フォーマット（ファイル複製オペレーション）

タグ名
出現回数※
説明

<response>
1回
－

<output-folder-name>
1回
複製後のファイルを出力するフォルダが設定されます。

作業フォルダが設定されている場合
タグの属性にcommon="false"が，値に空文字が設定されます。

共通フォルダが設定されている場合
タグの属性にcommon="true"が，値に共通フォルダ定義名が設定されます。

<output-file-name>
1回
複製後のファイルのファイル名が設定されます。

（凡例）

－：該当する項目はありません。

注※

規定の出現回数を超える場合の動作は保証しません。

(3)　ファイル・フォルダ削除オペレーション

ファイル操作アダプタが呼び出し元のビジネスプロセスへ返す応答電文のフォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/adapter/fileoperation/delete_response」です。

表19-18　応答電文フォーマット（ファイル・フォルダ削除オペレーション）

タグ名
出現回数※
説明

<response>
1回
－

<output-folder-name>
1回
削除されたファイルが格納されているフォルダ名が設定されます。

作業フォルダが設定されている場合
タグの属性にcommon="false"が，値に空文字が設定されます。

共通フォルダが設定されている場合
タグの属性にcommon="true"が，値に共通フォルダ定義名が設定されます。

<output-file-name>
1回
削除されたファイルのファイル名が設定されます。
作業フォルダを削除した場合は空文字です。

（凡例）

－：該当する項目はありません。

注※

規定の出現回数を超える場合の動作は保証しません。

(4)　ファイル操作アダプタが応答電文の生成に失敗した場合

エラーメッセージ（KDEC80003-E）を出力して処理を終了します。

20.　FTP受付の定義

この章では，FTP受付の概要，機能，設定，および電文フォーマットについて説明します。

＜この章の構成＞

20.1　FTP受付の概要

20.2　FTP受付の機能

20.3　FTPインバウンドアダプタとは

20.4　FTP受付の設定

20.5　FTP受付の電文フォーマット

20.1　FTP受付の概要

FTP受付の目的，およびFTP受付を利用したファイル送受信の概要について説明します。

＜この節の構成＞

20.1.1　FTP受付とは

20.1.2　FTP受付でサポートするオペレーションとFTPコマンド

20.1.3　FTP受付で使用できる通信モデルおよびビジネスプロセス

20.1.4　FTP受付使用時のトランザクション

20.1.5　リクエストIDの生成

20.1.6　作業フォルダと中間ファイルの作成

20.1.1　FTP受付とは

FTP受付とは，FTPクライアントからFTPインバウンドアダプタを経由して接続を受け付け，ビジネスプロセスを呼び出したり，FTPクライアントとビジネスプロセスの間で送受信されるファイルのデータやファイルの一覧情報を仲介したりするインターフェースです。

ビジネスプロセスから呼び出されるファイル操作アダプタやFTPアダプタと連携して動作することによって，ビジネスプロセスを介したFTPクライアントとFTPサーバ間のファイル転送，およびファイルの一覧情報取得を実現できます。

FTPサーバへファイルを転送する場合を例にFTP受付を使用したFTP連携の流れを次の図に示します。

図20-1　FTP受付を使用したFTP連携の流れ

20.1.2　FTP受付でサポートするオペレーションとFTPコマンド

FTP受付では，ファイルに対する操作の単位をオペレーションと呼びます。

FTP受付でサポートするオペレーションには，次の種類があります。

PUTオペレーション

FTPクライアント側からFTPサーバ側へファイルを転送するオペレーションです。

GETオペレーション

FTPサーバ側からFTPクライアント側へファイルを転送するオペレーションです。

GETINFOオペレーション

FTPサーバ側のファイル一覧情報を取得してFTPクライアント側へ送付するオペレーションです。

FTPクライアントからFTPインバウンドアダプタに対してFTPコマンドが呼び出された場合に，これらのオペレーションがFTPインバウンドアダプタから呼び出されます。

注意

一つのFTPインバウンドアダプタに対して，GETINFOオペレーションを定義したFTP受付を複数定義しないでください。

一つのビジネスプロセスに対して複数のFTP受付を関連づける場合，これらのFTP受付にはすべて同じオペレーションを選択してください。異なるオペレーションのFTP受付を一つのビジネスプロセスに複数定義した場合は，動作を保証しません。

＜この項の構成＞

(1)　FTP受付でサポートするオペレーションとFTPコマンドの種類

(2)　FTPコマンドの実行形式と注意事項

(1)　FTP受付でサポートするオペレーションとFTPコマンドの種類

FTP受付でサポートするFTPコマンドを次の表に示します。

表20-1　FTP受付でサポートするFTPコマンド

FTPコマンド
用途
呼び出されるFTP受付のオペレーション

STOR
ファイルの内容をサーバ側のファイルに蓄積します。すでにサーバにファイルが存在する場合，既存のファイルの内容は上書きされます。
PUTオペレーション

APPE
ファイルの内容をサーバ側のファイルに蓄積します。すでにサーバにファイルが存在する場合，転送したデータが既存のファイルに追加されます。

RETR
サーバ側に存在するファイルの複製を取得します。
GETオペレーション

LIST
サーバ側に存在するファイルの情報の一覧を取得します。
GETINFOオペレーション

NLST
サーバ側に存在するファイルの名前の一覧を取得します。

SITE CSCTHR
転送コマンド実行前，転送コマンド実行後，リストコマンド実行前，またはリストコマンド実行後にビジネスプロセスで実行するFTPコマンドを設定します。
FTPクライアントが転送コマンドまたはリストコマンドを実行する前にこのコマンドを実行しておくと，そのあとに実行した転送コマンドまたはリストコマンドの情報とともに，このコマンドで指定した情報がビジネスプロセスに渡されます。
－

（凡例）

－：呼び出されるオペレーションはありません。

(2)　FTPコマンドの実行形式と注意事項

FTPコマンドの実行形式と注意事項を次に示します。

実行形式

<FTPコマンド> /<FTP受付の受付ID>/<リモートファイルパス>

注意事項

FTP受付の受付IDの先頭に指定する記号およびリモートファイルパスに指定する区切り文字は必ずスラッシュ（/）を指定してください。FTP受付の受付IDの形式については，「20.1.5　リクエストIDの生成」を参照してください。

転送コマンドの引数の指定についての制限はFTPプロトコルの仕様に従ってください。

20.1.3　FTP受付で使用できる通信モデルおよびビジネスプロセス

ここでは，FTP受付で使用できる通信モデルおよびビジネスプロセスの型について説明します。

＜この項の構成＞

(1)　FTP受付で使用できる通信モデル

(2)　FTP受付で使用できるビジネスプロセス

(1)　FTP受付で使用できる通信モデル

FTP受付で使用できる通信モデルは，同期通信です。

(2)　FTP受付で使用できるビジネスプロセス

FTP受付と関連づけられるビジネスプロセスは，同期型，および非同期型の2種類です。それぞれのビジネスプロセスの特徴を次の表に示します。

表20-2　ビジネスプロセスの特徴

ビジネスプロセスの型 | 特徴 | 備考
同期型 | FTP受付から呼び出されたビジネスモデルが，目的の処理を完了したあとに応答を返します。応答を返したあとに実行するアクティビティはありません。 | オペレーションの種別やファイル連携方式に関係なく使用できます。
非同期型 | FTP受付から呼び出されたビジネスモデルが，目的の処理を完了する前に応答を返します。応答を返したあとに実行するアクティビティはあります。 | ビジネスプロセスのうち，非同期に実行される処理（FTP受付に応答を返したあとに実行される処理）で，GETオペレーションおよびGETINFOオペレーションに関する処理は実行できません。

20.1.4　FTP受付使用時のトランザクション

FTPインバウンドアダプタにはトランザクションでFTP受付以降の処理に引き継ぐ情報がありません。そのため，FTP受付では，FTPインバウンドアダプタのトランザクションとは異なる新たなトランザクションを開始します。ただし，ビジネスプロセス内ではさらにFTP受付と異なる新たなトランザクションが開始されます。

新たなトランザクションが開始されるタイミングは，FTP受付のタイムアウトの監視をする場合としない場合とで異なります。

FTP受付のタイムアウトの監視の詳細は，「20.2.4　タイムアウトの監視」を参照してください。

＜この項の構成＞

(1)　FTP受付のトランザクション（タイムアウトの監視をしない場合）

(2)　FTP受付のトランザクション（タイムアウトの監視をする場合）

(1)　FTP受付のトランザクション（タイムアウトの監視をしない場合）

FTP受付のタイムアウトの監視をしない場合で，ビジネスプロセスを呼び出すときのFTP受付のトランザクションを次に示します。

図20-2　FTP受付のトランザクション（タイムアウトの監視をしない場合）

なお，ビジネスプロセス内でFTPアダプタを使用してサーバ側にファイルを転送する場合，サーバ側へのファイル転送が完了したあとにビジネスプロセスの処理でエラーが発生すると，トランザクションはロールバックされて，FTPクライアント側にエラーが返ります。ただし，サーバ側のファイルは転送後の状態のままとなり，転送前の状態に戻されません。

(2)　FTP受付のトランザクション（タイムアウトの監視をする場合）

FTP受付のタイムアウトの監視をする場合，異なるスレッドでビジネスプロセスが呼び出されるため，HCSCメッセージ配送制御で新たなトランザクションが開始します。FTP受付のタイムアウトの監視をする場合で，ビジネスプロセスを呼び出すときのFTP受付のトランザクションを次に示します。

図20-3　FTP受付のトランザクション（タイムアウトの監視をする場合）

HCSCメッセージ配送制御で開始するトランザクションは，J2EEサーバのトランザクションタイムアウトの値で監視されます。トランザクションタイムアウトの設定については，マニュアル「Cosminexus アプリケーションサーバ システム設計ガイド」の「8.6.4　トランザクションタイムアウトを設定する」を参照してください。

なお，FTP受付のタイムアウト値を設定する場合，J2EEサーバのトランザクションタイムアウトの値よりも大きい値を設定することを推奨します。

20.1.5　リクエストIDの生成

FTP受付は，FTPクライアントからのリクエストを受け付けると，リクエストごとにリクエストIDを生成します。ビジネスプロセスの処理は，生成したリクエストIDを指定して実行されます。

リクエストIDは次の形式で生成されます。

<受付ID><FTPクライアントのIPアドレス><日付><時刻><追番>

リクエストIDのそれぞれの項目について次の表に示します。

表20-3　リクエストIDの項目

項目
桁数
内容

<受付ID>
8桁
FTP受付の設定で指定した受付IDです。受付IDが8桁に満たない場合は，受付IDの右側に足りない分の「-」が設定されます。

<FTPクライアントのIPアドレス>
12桁
要求元のFTPクライアントのIPアドレスです。IPアドレスのそれぞれのバイトが3桁に満たない場合は，それぞれのバイトの左側に足りない分の「0」が設定されます。

<日付>
8桁
FTP受付がリクエストを受け付けた日付がyyyymmddの形式で設定されます。

yyyy：西暦

mm：月

dd：日

<時刻>
9桁
FTP受付がリクエストを受け付けた時刻がhhmmssSSSの形式で設定されます。

hh：時

mm：分

ss：秒

SSS：ミリ秒

<追番>
3桁
<追番>以外の項目が重複するリクエストIDがすでに存在する場合，「001」からの数字が設定されます。<追番>以外の項目がすでに存在するリクエストと重複していない場合は，「000」が設定されます。
「001」から「999」のどれを設定してもほかのリクエストIDと重複してしまう場合，FTPインバウンドアダプタにエラー情報が返されます。

20.1.6　作業フォルダと中間ファイルの作成

FTP受付は，ビジネスプロセスとの間のファイルデータを受け渡すために，FTPクライアントから送られてきたファイルのデータやファイルの一覧情報を一時的に格納する中間ファイルを作成します。また，中間ファイルは，FTPクライアントごとに作成される作業フォルダに格納されます。

作業フォルダを作成するディレクトリはHCSCサーバランタイム定義ファイルのwork-folderプロパティで設定してください。詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「HCSCサーバランタイム定義ファイル」を参照してください。

なお，作業フォルダと作業フォルダに格納された中間ファイルは，次の条件を満たした場合に削除されます。

FTP受付定義ファイルのurecp-ftp.work-dir.auto-deleteプロパティの値が「true」である。

FTP受付がビジネスプロセスを呼び出して，呼び出したビジネスプロセスから，<success>タグの値がtrueの応答電文を受け取った。

FTP受付とFTPインバウンドアダプタの間のデータ（ファイルの内容やリストデータ）の受け渡しが正常に終了した。または，GETINFOオペレーションの応答電文の<reply-code>の値が400～599の値である。

上記の条件を満たしていない場合で，かつFTP受付が作業フォルダを削除できなかった場合，次の方法で作業フォルダと中間ファイルを削除してください。

FTP受付定義ファイルのurecp-ftp.work-dir.auto-deleteプロパティの値が「false」の場合

ビジネスプロセスが実行する最後の処理でファイル操作アダプタを呼び出して作業フォルダと中間ファイルを削除してください。または，cscfswlsコマンドで作業フォルダを参照し，削除対象かどうか確認したあと，cscfswrmコマンドで作業フォルダを削除してください。

FTP受付定義ファイルのurecp-ftp.work-dir.auto-deleteプロパティの値が「true」の場合

cscfswlsコマンドで作業フォルダを参照し，削除対象かどうか確認したあと，cscfswrmコマンドで作業フォルダを削除してください。

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscfswls（作業フォルダの参照）」または「cscfswrm（作業フォルダの削除）」を参照してください。

20.2　FTP受付の機能

ここでは，FTP受付の機能として，ビジネスプロセスのアクセス制御と，転送前または転送後に実行するFTPコマンドの管理について説明します。

＜この節の構成＞

20.2.1　ビジネスプロセスのアクセス制御

20.2.2　転送前／転送後またはリスト前／リスト後に実行するFTPコマンドの管理

20.2.3　リストコマンドオプションの設定によるLIST／NLSTコマンドの実行

20.2.4　タイムアウトの監視

20.2.1　ビジネスプロセスのアクセス制御

FTP受付は，ビジネスプロセスへのアクセスを許可および禁止するユーザを設定することで，ビジネスプロセスへのアクセスをユーザごとに制御できます。

ビジネスプロセスのアクセス制御の設定は，FTP実行許可リスト定義ファイルで設定できます。FTP受付は，FTP実行許可リスト定義ファイルの設定内容を基に，FTPクライアントからアクセスしてきたユーザに対してビジネスプロセスのアクセスを許可するかどうかを判断して，許可する場合にだけビジネスプロセスを呼び出し，許可しない場合はビジネスプロセスを呼び出さずにエラーを返します。

ビジネスプロセスのアクセス制御の流れを次の図に示します。

図20-4　ビジネスプロセスのアクセス制御の流れ

この図では，FTP実行許可リスト定義ファイルで許可されているユーザAからのリクエストはビジネスプロセスを呼び出していますが，FTP実行許可リスト定義ファイルで許可されていないユーザBのリクエストに対しては，ビジネスプロセスを呼び出さずにエラーを返しています。

FTP実行許可リスト定義ファイルで設定する内容を次の表に示します。

表20-4　FTP実行許可リスト定義ファイルで設定する内容

内容
指定方法
デフォルト値

FTP受付が関連づいたビジネスプロセスへのアクセスを許可するユーザ
urecp-ftp.permission.allowプロパティでユーザ名を指定します。
複数のユーザを指定する場合は，ユーザ名とユーザ名の間をコンマ（,）で区切ってください。
アスタリスク（*）を指定した場合は，すべてのユーザのアクセスを許可します。
*

FTP受付が関連づいたビジネスプロセスのアクセスを許可しないユーザ
urecp-ftp.permission.denyプロパティでユーザ名を指定します。
複数のユーザを指定する場合は，ユーザ名とユーザ名の間をコンマ（,）で区切ってください。
なし

注

両方に同じユーザが指定されている場合，アクセスを許可しない設定が優先されます。

なお，FTP実行許可リスト定義ファイルは，任意のファイル名で任意のフォルダに格納できますが，FTP実行許可リスト定義ファイルの絶対パスをFTP受付コンフィグファイルに指定する必要があります。FTP受付コンフィグファイルにFTP実行許可リスト定義ファイルの絶対パスが指定されていない場合は，すべてのユーザに対してビジネスプロセスへのアクセスが許可されます。

また，FTP実行許可リスト定義ファイルの内容を変更した場合，変更したFTP許可リスト定義ファイルを使用しているFTP受付を再起動する必要があります。

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTP実行許可リスト定義ファイル」または「FTP受付コンフィグファイル」を参照してください。

20.2.2　転送前／転送後またはリスト前／リスト後に実行するFTPコマンドの管理

SITE CSCTHRコマンドを実行することによって，転送コマンド実行前，転送コマンド実行後，リストコマンド実行前，またはリストコマンド実行後にビジネスプロセスで実行するFTPコマンドを設定できます。FTPクライアントが転送コマンドまたはリストコマンドを実行する前にSITE CSCTHRコマンドを実行しておくと，そのあとに実行したFTPコマンドの情報とともに，SITE CSCTHRコマンドで指定した情報がビジネスプロセスに渡されます。

SITE CSCTHRコマンドの実行形式を次に示します。

実行形式

SITE CSCTHR {-B｜-A} <FTPコマンド>[;<FTPコマンド> …]

FTPコマンド以外の，FTPサーバが独自にサポートしているコマンドを指定する場合は，次のように<FTPコマンド>の部分にSITEコマンドを指定して，SITEコマンドの引数にコマンドを指定してください。

SITE CSCTHR {-B｜-A} SITE <FTPサーバが独自にサポートしているコマンド>

また，オプションに-B，または-Aを指定することで，指定したFTPコマンドを転送コマンド実行前／リストコマンド実行前に実行するか，または転送コマンド実行後／リストコマンド実行後に実行するかを設定できます。

-Bオプションを使用した場合の動作

「<FTPコマンド>[;<FTPコマンド> …]」の部分に指定したFTPコマンドが，FTP受付の要求電文の<ftp-commands-before>タグに設定されます。この形式で指定したFTPコマンドは，転送コマンド実行前またはリストコマンド実行前に実行されます。SITE CSCTHRコマンドをこの形式で複数回実行した場合，「<FTPコマンド>[;<FTPコマンド> …]」の部分がSITE CSCTHRコマンドを実行した順番にセミコロン（;）で接続されて<ftp-commands-before>タグに追加されます。

-Aオプションを使用した場合の動作

「<FTPコマンド>[;<FTPコマンド> …]」の部分に指定したFTPコマンドが，FTP受付の要求電文の<ftp-commands-after>タグに設定されます。この形式で指定したFTPコマンドは，転送コマンド実行後またはリストコマンド実行後に実行されます。SITE CSCTHRコマンドをこの形式で複数回実行した場合，「<FTPコマンド>[;<FTPコマンド> …]」の部分がSITE CSCTHRコマンドを実行した順番にセミコロン（;）で接続されて<ftp-commands-after>タグに追加されます。

また，転送コマンド実行前，転送コマンド実行後，リストコマンド実行前，またはリストコマンド実行後にビジネスプロセスで実行を許可するコマンドは，FTPコマンド許可リスト定義ファイル（FTP受付用）に指定して管理できます。FTPコマンド許可リスト定義ファイル（FTP受付用）に指定されていないFTPコマンドがSITE CSCTHRコマンドに含まれていても，FTP受付の要求電文の<ftp-commands-before>タグ，または<ftp-commands-after>タグに追加されません。その場合，ビジネスプロセスが呼び出されないため，エラーが発生します。

なお，FTPコマンド許可リスト定義ファイル（FTP受付用）は，任意のファイル名で任意のフォルダに格納できますが，FTPコマンド許可リスト定義ファイル（FTP受付用）の絶対パスをFTP受付コンフィグファイルに指定する必要があります。FTP受付コンフィグファイルにFTPコマンド許可リスト定義ファイル（FTP受付用）の絶対パスが指定されていない場合は，すべてのFTPコマンドに対してビジネスプロセスでの実行が禁止されます。

またFTPコマンド許可リスト定義ファイル（FTP受付用）の内容を変更した場合，変更したFTPコマンド許可リスト定義ファイル（FTP受付用）を使用しているFTP受付を再起動する必要があります。

FTPコマンド許可リスト定義ファイル（FTP受付用）で編集できる定義内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTPコマンド許可リスト定義ファイル」を参照してください。

20.2.3　リストコマンドオプションの設定によるLIST／NLSTコマンドの実行

LISTコマンドまたはNLSTコマンドの引数オプションをリストコマンドオプション定義ファイルで定義しておくことで，引数オプションを指定してリストコマンドを実行できます。

引数オプションを指定した場合のコマンドの実行形式を次に示します。

LISTコマンドの場合

LIST [ <オプション>][ <パス>]

NLSTコマンドの場合

NLST [ <オプション>][ <パス>]

リストコマンドオプション定義ファイルの詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「リストコマンドオプション定義ファイル」を参照してください。

リストコマンドオプション定義ファイルは，任意のパスに任意のファイル名で保持できます。ただし，リストコマンドオプション定義ファイルの絶対パスがFTP受付コンフィグファイルで指定されている必要があります。

FTP受付コンフィグファイルについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTP受付コンフィグファイル」を参照してください。

リストコマンドオプション定義ファイルに引数オプションを指定した場合，FTPクライアントからリストコマンドが実行されたとき，リストコマンドの引数に指定された情報がリストコマンドオプション定義ファイルの定義に従って<オプション>と<パス>に分割され，GETINFOオペレーションの要求電文の<getinfo-option>と<getinfo-path>に設定されます。

リストコマンドオプション定義ファイルに引数オプションの指定がない場合，またはFTP受付コンフィグファイルでリストコマンドオプション定義ファイルのパスが指定されていない場合，リストコマンドの引数で指定された情報は，すべて<パス>の情報として要求電文の<getinfo-path>に設定されます。

リストコマンドオプション定義ファイルの設定を変更した場合，設定を有効にするには，リストコマンドオプション定義ファイルに関連づけられたFTP受付を再起動する必要があります。

20.2.4　タイムアウトの監視

FTP受付コンフィグファイルのurecp-ftp.request-timeoutにタイムアウト値を設定することで，ビジネスプロセスに要求電文を渡してから応答電文が返ってくるまでの処理時間を監視できます。設定した時間を経過しても応答が返ってこない場合，障害としてタイムアウト例外が発生します。

なお，デフォルトではFTP受付のタイムアウトの監視をしません。

FTP受付でタイムアウトを監視するとき，HCSCメッセージ配送制御内部にFTP受付単位でスレッドが生成されます。タイムアウトの監視に使われるスレッドのうち，受付起動時に生成されて常駐するスレッドの数（常駐スレッド数）は，FTP受付コンフィグファイルのurecp-ftp.resident-thread.countプロパティで設定できます。

常駐スレッド数を超える数のタスクを受け付けた場合，タスクを処理する際にスレッドが一時的に追加生成されます。追加生成されたスレッドは，タスク処理後に300秒間待機状態となり，次のタスクが来なければ破棄されます。

FTP受付のタイムアウトを監視するために生成されるスレッドの最大数（常駐スレッド数＋追加生成されたスレッド数）は，FTP受付コンフィグファイルのurecp-ftp.timer-thread.maximumプロパティで設定できます。なお，常駐スレッド数と最大スレッド数を同じ値に設定した場合，スレッドは追加生成されません。

FTP受付コンフィグファイルで設定できるプロパティの詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTP受付コンフィグファイル」を参照してください。

20.3　FTPインバウンドアダプタとは

FTPインバウンドアダプタとは，FTPクライアントからの転送要求を受信して，ビジネスプロセスに関連づけられたFTP受付に振り分けるアダプタです。

FTP連携でのFTPインバウンドアダプタの位置づけを次の図に示します。

図20-5　FTP連携でのFTPインバウンドアダプタの位置づけ

ここでは，FTPインバウンドアダプタでサポートする次の機能について説明します。

送受信後のファイルサイズ確認

タイムアウトの監視

セキュアプロトコルによる暗号化・認証

＜この節の構成＞

20.3.1　送受信後のファイルサイズ確認

20.3.2　タイムアウトの監視

20.3.3　セキュアプロトコルによる暗号化・認証

20.3.1　送受信後のファイルサイズ確認

FTPインバウンドアダプタでは，JP1/File Transmission Server/FTPと連携することによって，転送前と転送後のファイルのサイズを比較します。FTPクライアントからSITE FSIZEコマンドが実行されると，ファイルが転送処理の間に破損していないかなどの確認がされるため，送受信されたファイルの信頼性を確保できます。

JP1/File Transmission Server/FTPについては，マニュアル「JP1/File Transmission Server」を参照してください。

20.3.2　タイムアウトの監視

FTPインバウンドアダプタとFTPクライアントとの通信中や，FTP受付への振り分け中に，FTPクライアントやネットワークの異常によって通信処理が無応答になったり，FTP受付以降のファイル操作処理に時間が掛かってしまったりしている場合に，FTPインバウンドアダプタでタイムアウトを検知します。

タイムアウトが検知された場合，メッセージが出力されたりコネクションが切断されたりして，システムの処理能力の低下を防止します。

FTPインバウンドアダプタでタイムアウトを監視するポイントを次の図に示します。

図20-6　FTPインバウンドアダプタでタイムアウトを監視するポイント

＜この項の構成＞

(1)　タイムアウトしたときの動作と注意事項

(2)　設定方法

(1)　タイムアウトしたときの動作と注意事項

それぞれのポイントでの，タイムアウトしたときの動作，および注意事項について説明します。

(a)　アイドルタイムアウト

制御コネクションに対して，FTPインバウンドアダプタから応答を返してから，FTPクライアントから次のFTPコマンドが送信されてくるまでの時間を監視します。

アイドルタイムアウトの監視の流れを次の図に示します。

図20-7　アイドルタイムアウトの監視の流れ

次に，タイムアウトしたときの動作および注意事項を示します。

タイムアウトしたときの動作

メッセージを出力します。

タイムアウトが発生した制御コネクションを切断します。

注意事項
データコネクションでのデータ送信中はアイドルタイムアウトは発生しません。

(b)　データコネクション接続のタイムアウト

データコネクションの接続方式がアクティブモードの場合，FTPクライアントへのデータコネクションの接続を開始してから完了するまでの時間を監視します。時間の監視は，コネクション接続の監視時間，リトライ間隔およびリトライ回数で指定します。データコネクション接続のタイムアウトの監視の流れを次の図に示します。

図20-8　データコネクション接続のタイムアウトの監視の流れ

次に，タイムアウトしたときの動作および注意事項を示します。

タイムアウトしたときの動作

メッセージを出力します。

制御コネクションでレスポンスコード「425 Can't open data connection.」を返します。

注意事項
指定した監視時間より，TCP/IPで設定されたコネクション接続の監視時間が短い場合は，TCP/IPで設定された監視時間でタイムアウトが発生します。

(c)　データ受信のタイムアウト

FTPクライアントからのファイルデータの受信を開始してからファイルデータが送信されるまでの時間を監視します。

データ受信のタイムアウトの監視の流れを次の図に示します。

図20-9　データ受信のタイムアウトの監視の流れ

次に，タイムアウトしたときの動作を示します。

タイムアウトしたときの動作

メッセージを出力します。

タイムアウトが発生したデータコネクションを切断します。

制御コネクションでレスポンスコード「551 <ファイルパス>: Error on output file.」を返します。

FTP受付に例外「FileTransferFailedException」を通知します。

(d)　データ送信のタイムアウト

FTPクライアントへファイルまたはリストデータの送信を開始してからファイルまたはリストデータの送信が完了するまでの時間を監視します。

データ送信のタイムアウトの監視の流れを次の図に示します。

図20-10　データ送信のタイムアウトの監視の流れ

タイムアウトしたときの動作

メッセージを出力します。

タイムアウトが発生したデータコネクションを切断します。

制御コネクションで次のレスポンスコードを返します。

ファイルデータ転送の場合
「551 <ファイルパス>: Error on input file.」を返します。

リストデータ転送の場合
「551 Requested action aborted.」を返します。

FTP受付に例外「FileTransferFailedException」を通知します。

(2)　設定方法

cjgetrarpropコマンドで取得したconnector属性ファイルの次の項目を設定してください。

nioListener_idleTimeout（アイドルタイムアウト）

nioListener_dataConnection_active_connectRetryCount（データコネクション接続のリトライ回数）

nioListener_dataConnection_active_connectRetryInterval（データコネクション接続のリトライ間隔）

nioListener_dataConnection_idleTimeout（データ送信およびデータ受信のタイムアウト）

設定方法の詳細は，「21.1.3　FTPインバウンドアダプタをセットアップする」を参照してください。

20.3.3　セキュアプロトコルによる暗号化・認証

FTPインバウンドアダプタでは，FTPSを使用してユーザ名やパスワードを含む送受信データを暗号化できます。なお，FTPインバウンドアダプタでは，サーバ認証だけをサポートしています。

ここでは，FTPインバウンドアダプタでサポートするFTPS関連プロトコル，コマンド，およびFTPSに関する設定について説明します。

＜この項の構成＞

(1)　サポートするFTPS関連プロトコルおよびコマンド

(2)　FTPインバウンドアダプタの設定

(3)　キーストアの設定

(1)　サポートするFTPS関連プロトコルおよびコマンド

FTPインバウンドアダプタでは，次の表に示すプロトコルをサポートしています。

表20-5　サポートするFTPS関連プロトコルおよびそのバージョン

プロトコル | バージョン
SSL | 3.0
TLS | 1.0

また，次のFTPS関連コマンドをサポートしています。

AUTH

PBSZ

PROT

(2)　FTPインバウンドアダプタの設定

FTPSに関する設定は，FTPインバウンドアダプタの属性ファイルで実施できます。

FTPインバウンドアダプタの属性ファイルの設定方法および定義項目の詳細は，「21.1.3(3) FTPインバウンドアダプタの設定」を参照してください。

(3)　キーストアの設定

FTPインバウンドアダプタで使用するキーストアは，JKS形式だけをサポートしています。JKS形式のキーストアおよびキーは，JDKに付属するkeytoolコマンドで作成してください。keytoolコマンドの詳細は，keytoolのドキュメントを参照してください。

なお，複数のキーを格納したキーストアを使用する場合は，使用しないキーも含めて，すべてのキーのパスワードを同じにする必要があります。

また，keytoolコマンドでは，aliasオプション指定時の大文字が小文字として保存されます。このため，FTPインバウンドアダプタの属性ファイルのnioListener_ftps_keystore_keyAlias属性には，大文字を使用しないで，keytoolコマンドのlistオプションの結果に表示されるエイリアス名を指定してください。

20.4　FTP受付の設定

FTP受付の設定について説明します。

＜この節の構成＞

20.4.1　FTP受付の設定の流れ

20.4.2　FTP受付の定義ファイルを作成する

20.4.3　FTP受付を追加する

20.4.4　FTP受付のデータ変換（マッピング）を定義する

20.4.5　FTP受付を保存する

20.4.6　FTP受付を削除する

20.4.1　FTP受付の設定の流れ

FTP受付の設定の流れを次の図に示します。

図20-11　FTP受付の設定の流れ

FTP受付の設定に関する作業について次に説明します。

＜この項の構成＞

(1)　FTP受付の定義ファイルの作成

(2)　FTP受付の追加

(3)　FTP受付のデータ変換（マッピング）の定義

(4)　FTP受付の保存

(5)　FTP受付の削除

(1)　FTP受付の定義ファイルの作成

FTP受付で使用する定義ファイルを作成し，指定された場所に格納します。

FTP受付の定義ファイルの作成については，「20.4.2　FTP受付の定義ファイルを作成する」を参照してください。

(2)　FTP受付の追加

ウィザードおよびサービスアダプタ定義画面を利用してFTP受付を追加します。

FTP受付を追加する手順については，「20.4.3　FTP受付を追加する」を参照してください。

(3)　FTP受付のデータ変換（マッピング）の定義

データ変換定義画面を利用して，変換元の電文フォーマット定義ファイルおよび変換先の電文フォーマット定義ファイルのデータ変換を定義します。

データ変換の定義については，「20.4.4　FTP受付のデータ変換（マッピング）を定義する」を参照してください。

(4)　FTP受付の保存

FTP受付の定義情報は，必要に応じてリポジトリに保存する必要があります。

FTP受付の保存については，「20.4.5　FTP受付を保存する」を参照してください。

(5)　FTP受付の削除

不要になったFTP受付は，必要に応じて削除できます。

FTP受付の削除については，「20.4.6　FTP受付を削除する」を参照してください。

20.4.2　FTP受付の定義ファイルを作成する

FTP受付の定義ファイルの種類，および作成方法について説明します。

＜この項の構成＞

(1)　定義ファイルの種類

(2)　定義ファイルの作成

(1)　定義ファイルの種類

作成する定義ファイルの種類を次に示します。

FTP受付定義ファイル
FTP受付をセットアップしたあとに設定変更できる内容を定義するファイルです。任意で作成します。

FTP実行許可リスト定義ファイル
ビジネスプロセスの実行を許可するユーザや，ビジネスプロセスの実行を許可しないユーザを定義するファイルです。任意で作成します。

FTPコマンド許可リスト定義ファイル
転送前または転送後に実行することを許可するFTPコマンドを定義するファイルです。任意で作成します。

リストコマンドオプション定義ファイル
リストコマンドの引数でオプションとして指定できる文字列を定義するファイルです。任意で作成します。

FTP受付コンフィグファイル
FTP受付をセットアップしたあとに設定変更できる内容で，かつ頻繁に設定変更する可能性のある情報を定義するファイルです。任意で作成します。

(2)　定義ファイルの作成

FTP受付で使用する定義ファイルの作成手順について説明します。リストコマンドオプション定義ファイル以外の定義ファイルは，FTP受付が提供しているテンプレートファイルを利用して作成します。

(a)　FTP受付定義ファイル

テンプレートファイル（<Cosminexusのインストールディレクトリ>¥CSC¥config¥ftprecp¥templates¥cscurecpftp.properties）を任意のディレクトリに格納します。

定義内容を編集して保存します。
FTP受付定義ファイルで編集できる項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTP受付定義ファイル」を参照してください。

FTP受付定義ファイルは，FTP受付の開始時に実行環境に反映されます。

(b)　FTP実行許可リスト定義ファイル

テンプレートファイル（<Cosminexusのインストールディレクトリ>¥CSC¥config¥ftprecp¥templates¥ftp_permission_allow.properties）をコピーして，任意のディレクトリに格納します。

コピーしたテンプレートファイルのファイル名を任意の名称に変更します。

定義内容を編集して保存します。
FTP実行許可リスト定義ファイルで編集できる項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTP実行許可リスト定義ファイル」を参照してください。

FTP実行許可リスト定義ファイルは，FTP受付の開始時に実行環境に反映されます。

(c)　FTPコマンド許可リスト定義ファイル（FTP受付用）

テンプレートファイル（<Cosminexusのインストールディレクトリ>¥CSC¥config¥ftprecp¥templates¥ftp_command_allow.properties）をコピーして，任意のディレクトリに格納します。

コピーしたテンプレートファイルのファイル名を任意の名称に変更します。

定義内容を編集して保存します。
FTPコマンド許可リスト定義ファイルで編集できる項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTPコマンド許可リスト定義ファイル」を参照してください。

FTPコマンド許可リスト定義ファイルは，FTP受付の開始時に実行環境に反映されます。

(d)　リストコマンドオプション定義ファイル

任意の名称でテキストファイルを作成し，任意のディレクトリに格納します。

定義内容を編集して保存します。
リストコマンドオプション定義ファイルで編集できる項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「リストコマンドオプション定義ファイル」を参照してください。

リストコマンドオプション定義ファイルは，FTP受付の開始時に実行環境に反映されます。

(e)　FTP受付コンフィグファイル

テンプレートファイル（<Cosminexusのインストールディレクトリ>¥CSC¥config¥ftprecp¥templates¥ftprecp_config.properties）をコピーして，次のディレクトリに格納します。
<Cosminexusのインストールディレクトリ>¥CSC¥config¥ftprecp

コピーしたテンプレートファイルのファイル名を「<FTP受付の受付ID>.properties」に変更します。

定義内容を編集して保存します。
FTP受付コンフィグファイルで編集できる項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTP受付コンフィグファイル」を参照してください。

FTP受付コンフィグファイルは，FTP受付の開始時に実行環境に反映されます。

20.4.3　FTP受付を追加する

FTP受付を新規に追加する手順を次に示します。

Eclipseのメニューから，［ウィンドウ］－［ビューの表示］－［その他］を選択します。
［ビューの表示］ダイアログが表示されます。

［HCSC-Definer］－［HCSCTEビュー］を選択し，［OK］ボタンをクリックします。
ツリービューにサービス定義一覧が表示されます。

ツリービューのビジネスプロセスで右クリックして「ユーザ定義受付追加」を選択します。
追加するサービスアダプタから利用するサービス種別を設定するダイアログが表示されます。

サービス部品の種別のドロップダウンリストから「カスタム受付」を選択します。
［次へ］ボタンをクリックすると，カスタム受付の追加に必要な情報を入力するダイアログが表示されます。

受付名とEARファイルを入力します。
受付名には，追加するFTP受付に設定する受付名を入力します。EARファイルには，<Cosminexusインストールディレクトリ>¥CSC¥lib¥cscmsg_urecp_ftp.earを指定します。

［終了］ボタンをクリックします。
必要なファイルが作成され，リポジトリに保存されます。サービスアダプタ定義画面（基本）が表示されます。

FTP受付の定義情報を設定します。
FTP受付の設定項目について次の表に示します。

表20-6　FTP受付のユーザ定義受付定義画面（基本）の設定項目

分類
項目
設定内容

ユーザ定義受付情報
受付名
設定した受付名が表示されます。

受付ID
受付IDが表示されます。必要に応じて変更します。

デフォルトオペレーション名
デフォルトで呼び出すオペレーションを選択します。

オペレーション
次の中から使用するオペレーションを追加します。
PUT：FTPクライアントからFTPサーバへファイルを転送する
GET：FTPサーバからFTPクライアントへファイルを転送する
GETINFO：FTPサーバの情報を取得し，FTPクライアントへ送付する

オペレーション情報
通信モデル
「同期」を設定します。

要求電文
受付
電文フォーマット
［オペレーション］の設定に応じて，必ず次の要求電文用フォーマット定義ファイルを指定します。

PUTの場合：urecp_ftp_put_request.xsd※

GETの場合：urecp_ftp_get_request.xsd※

GETINFOの場合：urecp_ftp_getinfo_request.xsd※

サービス部品
［使う］チェックボックス
必要に応じてチェックします。

応答電文
受付
電文フォーマット
［オペレーション］の設定に応じて，必ず次の応答電文用フォーマット定義ファイルを指定します。

PUTの場合：urecp_ftp_put_response.xsd※

GETの場合：urecp_ftp_get_response.xsd※

GETINFOの場合：urecp_ftp_getinfo_response.xsd※

サービス部品
［使う］チェックボックス
必要に応じてチェックします。

注※

ファイルの格納先ディレクトリは「<Cosminexusインストールディレクトリ>¥CSC¥schema¥ftprecp」です。

上記以外のサービスアダプタ定義画面の設定項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.6　ユーザ定義受付定義画面」を参照してください。

ユーザ定義受付（詳細）タブをクリックします。
ユーザ定義受付定義画面（詳細）が表示されます。

FTP受付の定義情報を設定します。
FTP受付の設定項目について次の表に示します。

表20-7　FTP受付のユーザ定義受付定義画面（詳細）の設定項目

分類 | 項目 | 設定内容
カスタム受付制御情報 | 独自定義ファイル | 必要に応じてFTP受付定義ファイルを指定します。

上記以外のサービスアダプタ定義画面の設定項目については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.2　サービスアダプタ定義画面」を参照してください。

20.4.4　FTP受付のデータ変換（マッピング）を定義する

データ変換定義画面を利用して，変換元の電文フォーマット定義ファイルおよび変換先の電文フォーマット定義ファイルのデータ変換を定義します。

データ変換の定義については，「7.　データ変換の定義」を参照してください。

データ変換定義画面については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.5　データ変換定義画面」を参照してください。

20.4.5　FTP受付を保存する

ユーザ定義受付定義画面で編集中のFTP受付を編集途中や編集終了時に保存できます。FTP受付の内容はリポジトリに保存されます。

FTP受付を保存する手順を次に示します。

方法1

Eclipseのメニューから，［ファイル］－［保管］を選択します。

方法2

Eclipseのメニューから，［ファイル］－［すべて保管］を選択します。

方法3

Eclipseのツールバーの，［保管］アイコンをクリックします。

方法4

ユーザ定義受付定義画面で，［Ctrl］キー＋［S］キーを押します。

なお，ユーザ定義受付定義画面を閉じてFTP受付の定義を終了する場合に，FTP受付が保存されていないときは，リソース保管ダイアログが表示されます。リソース保管ダイアログでは，保存されていないFTP受付の定義を保存できます。

注意

不正なデータが入力されている場合，FTP受付を保存できないことがあります。その場合，表示されているメッセージに従って対処してください。

20.4.6　FTP受付を削除する

FTP受付を削除します。なお，次のFTP受付は削除できません。

すでに公開されているビジネスプロセスが持つFTP受付

以前のバージョンのビジネスプロセスで作成したFTP受付

＜この項の構成＞

(1)　複数のFTP受付を同時に削除する場合

(2)　一つのFTP受付を削除する場合

(1)　複数のFTP受付を同時に削除する場合

複数のFTP受付を同時に削除する手順について，次に示します。

ツリービューのサービス定義一覧で，FTP受付を削除するビジネスプロセスを右クリックします。
サービス一覧のポップアップメニューが表示されます。

ポップアップメニューから「ユーザ定義受付削除」を選択します。
［ユーザ定義受付削除］ダイアログが表示されます。［ユーザ定義受付削除］ダイアログの入力・表示内容の詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.7.1　ユーザ定義受付削除ダイアログ」を参照してください。

削除するFTP受付のチェックボックスをチェックします。

［OK］ボタンをクリックします。
指定したFTP受付がビジネスプロセスから削除されます。

注意

ビジネスプロセスを削除すると，削除したビジネスプロセスに含まれるFTP受付も削除されます。

(2)　一つのFTP受付を削除する場合

一つのFTP受付を削除する手順について，次に示します。

方法1

ツリービューのサービス定義一覧で，削除するFTP受付を右クリックします。
対象のFTP受付のポップアップメニューが表示されます。

ポップアップメニューから「削除」を選択します。
確認ダイアログが表示されます。

［はい］ボタンをクリックします。
指定したFTP受付がビジネスプロセスから削除されます。

方法2

ツリービューのサービス定義一覧で，削除するFTP受付を選択します。

［Delete］キーを押します。
確認ダイアログが表示されます。

［はい］ボタンをクリックします。
指定したFTP受付がビジネスプロセスから削除されます。

20.5　FTP受付の電文フォーマット

FTP受付で作成する電文フォーマットの種類，および内容について説明します。

＜この節の構成＞

20.5.1　FTP受付の要求電文フォーマット

20.5.2　FTP受付の応答電文フォーマット

20.5.1　FTP受付の要求電文フォーマット

FTP受付の要求電文フォーマットをオペレーションごとに示します。

＜この項の構成＞

(1)　PUTオペレーション

(2)　GETオペレーション

(3)　GETINFOオペレーション

(1)　PUTオペレーション

PUTオペレーションのFTP受付からビジネスプロセスに渡す要求電文フォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/ftp/put_request」です。

表20-8　FTP受付の要求電文フォーマット（PUTオペレーション）

タグ名
出現回数※
説明

<request>
1回
－

<ftpclient-ipaddr>
1回
FTPクライアントのIPアドレスです。
IPアドレスのテキスト表現形式で設定します。

<ftp-user>
1回
FTPクライアントがUSERコマンドで指定したユーザ名です。
USERコマンドの引数に指定された情報がそのまま設定されます。

<ftp-type>
1回
FTPクライアントがTYPEコマンドで指定したタイプの情報です。
TYPEコマンドの引数に指定された情報がそのまま設定されます。

<transfer-type>
1回
転送種別です。次のどちらかが設定されます。

APPE
ファイルへの情報追加

STOR
ファイルの上書き

<transfer-path>
1回
転送対象ファイルパスです。
FTPクライアントがAPPEコマンド，またはSTORコマンドで指定したパス情報から，先頭の振分定義部分を取り除いたファイルパスの情報が設定されます。
先頭には必ず「/」が設定されます。

<file-name>
1回
FTPクライアントから送られてきたファイルのデータが書き出された中間ファイルのファイル名です。

<file-size>
1回
FTPクライアントから送られてきて，中間ファイルに書き出されたデータのサイズです。

<request-id>
1回
リクエストIDです。FTP受付が生成したリクエストIDが設定されます。

<ftp-commands-before>
0または1回
転送前に実行するFTPコマンドです。
FTPクライアントから次に示すFTPコマンドが要求されている場合に設定されます。

SITE CSCTHR -B <FTPコマンド>[;<FTPコマンド> …]

この場合，「<FTPコマンド>[;<FTPコマンド> …]」の部分がそのままの形式で設定されます。
ただし，SITE CSCTHRコマンドの引数で指定されたFTPコマンドが，FTPコマンド許可リスト定義機能で許可されていない場合は設定されません。
FTPクライアントからCSCTHRコマンドが複数要求されている場合は，「<FTPコマンド>[;<FTPコマンド> …]」の部分がSITE CSCTHRコマンドを実行した順番にセミコロン（;）で接続されて追加されます。
CSCTHRコマンドが一度も要求されていない場合はこのタグは出力されません。

<ftp-commands-after>
0または1回
転送後に実行する必要があるFTPコマンドです。
FTPクライアントから次に示すコマンドが要求されている場合に設定されます。

SITE CSCTHR -A <FTPコマンド>[;<FTPコマンド> …]

この場合，「<FTPコマンド>[;<FTPコマンド> …]」の部分がそのままの形式で設定されます。
ただし，SITE CSCTHRコマンドの引数で指定されたFTPコマンドが，FTPコマンド許可リスト定義機能で許可されていない場合は設定されません。
FTPクライアントからCSCTHRコマンドが複数要求されている場合は，「<FTPコマンド>[;<FTPコマンド> …]」の部分がSITE CSCTHRコマンドを実行した順番にセミコロン（;）で接続されて追加されます。
CSCTHRコマンドが一度も要求されていない場合はこのタグは出力されません。

（凡例）

－：該当する項目はありません。

注※

規定の出現回数を超える場合の動作は保証しません。

(2)　GETオペレーション

GETオペレーションのFTP受付からビジネスプロセスに渡す要求電文フォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/ftp/get_request」です。

表20-9　FTP受付の要求電文フォーマット（GETオペレーション）

タグ名
出現回数※
説明

<request>
1回
－

<ftpclient-ipaddr>
1回
FTPクライアントのIPアドレスです。
IPアドレスのテキスト表現形式で設定します。

<ftp-user>
1回
FTPクライアントがUSERコマンドで指定したユーザ名です。
USERコマンドの引数に指定された情報がそのまま設定されます。

<ftp-type>
1回
FTPクライアントがTYPEコマンドで指定したタイプの情報です。
TYPEコマンドの引数に指定された情報がそのまま設定されます。

<transfer-type>
1回
転送種別です。次の内容が設定されます。

RETR
ファイルの取得

<transfer-path>
1回
転送対象ファイルパスです。
FTPクライアントがRETRコマンドで指定したパス情報から，先頭の振分定義部分を取り除いたファイルパスの情報が設定されます。
先頭には必ず「/」が設定されます。

<request-id>
1回
リクエストIDです。FTP受付が生成したリクエストIDを設定します。

<ftp-commands-before>
0または1回
転送前に実行する必要があるFTPコマンドです。
FTPクライアントから次に示すFTPコマンドが要求されている場合に設定されます。

SITE CSCTHR -B <FTPコマンド>[;<FTPコマンド> …]

この場合，「<FTPコマンド>[;<FTPコマンド> …]」の部分がそのままの形式で設定されます。
ただし，SITE CSCTHRコマンドの引数で指定されたFTPコマンドが，FTPコマンド許可リスト定義機能で許可されていない場合は設定されません。
FTPクライアントからCSCTHRコマンドが複数要求されている場合は，「<FTPコマンド>[;<FTPコマンド> …]」の部分がSITE CSCTHRコマンドを実行した順番にセミコロン（;）で接続されて追加されます。
CSCTHRコマンドが一度も要求されていない場合はこのタグは出力されません。

<ftp-commands-after>
0または1回
転送後に実行する必要があるFTPコマンドです。
FTPクライアントから次に示すコマンドが要求されている場合に設定されます。

SITE CSCTHR -A <FTPコマンド>[;<FTPコマンド> …]

この場合，「<FTPコマンド>[;<FTPコマンド> …]」の部分がそのままの形式で設定されます。
ただし，SITE CSCTHRコマンドの引数で指定されたFTPコマンドが，FTPコマンド許可リスト定義機能で許可されていない場合は設定されません。
FTPクライアントからCSCTHRコマンドが複数要求されている場合は，「<FTPコマンド>[;<FTPコマンド> …]」の部分がSITE CSCTHRコマンドを実行した順番にセミコロン（;）で接続されて追加されます。
CSCTHRコマンドが一度も要求されていない場合はこのタグは出力されません。

（凡例）

－：該当する項目はありません。

注※

規定の出現回数を超える場合の動作は保証しません。

(3)　GETINFOオペレーション

GETINFOオペレーションのFTP受付からビジネスプロセスに渡す要求電文フォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/ftp/getinfo_request」です。

表20-10　FTP受付の要求電文フォーマット（GETINFOオペレーション）

タグ名
出現回数※
説明

<request>
1回
－

<ftpclient-ipaddr>
1回
FTPクライアントのIPアドレスです。
IPアドレスのテキスト表現形式で設定します。

<ftp-user>
1回
FTPクライアントがUSERコマンドで指定したユーザ名です。
USERコマンドの引数に指定された情報がそのまま設定されます。

<getinfo-type>
1回
情報取得種別として，次のどちらかが設定されます。

LIST
ファイル情報の一覧を取得します。

NLST
ファイル名の一覧を取得します。

<getinfo-option>
0または1回
情報取得オプション情報です。
次の条件をすべて満たす場合は，オプション定義ファイルに設定されている文字列と一致した文字列部分が設定されます。

FTPクライアントがLISTコマンドまたはNLSTコマンドで指定した引数の先頭部分が，オプション定義ファイルに設定されている文字列と一致する

引数の先頭部分の後ろに文字列が続いていない，または空白文字になっている

なお，次のどちらかに当てはまる場合，このタグは出力されません。

FTPクライアントがLISTコマンドまたはNLSTコマンドで引数を指定しなかった場合

FTPクライアントがLISTコマンドまたはNLSTコマンドで指定した引数の先頭部分がオプション定義ファイルに設定されている文字列と一致しなかった場合

<getinfo-path>
0または1回
情報取得パス情報です。
<getinfo-option>タグが出力されていない場合は，FTPクライアントがLISTコマンドまたはNLSTコマンドで指定した引数がそのまま設定されます。
<getinfo-option>タグが出力されている場合は，FTPクライアントがLISTコマンドまたはNLSTコマンドで指定した引数の先頭から，<getinfo-option>タグに出力されているオプション情報およびその後ろの空白文字を取り除いたパス情報部分が設定されます。
なお，次のどちらかに当てはまる場合，このタグは出力されません。

FTPクライアントがLISTコマンドまたはNLSTコマンドで引数を指定しなかった場合

FTPクライアントがLISTコマンドまたはNLSTコマンドで指定した引数に，オプション情報しか指定されていなかった場合

<request-id>
1回
リクエストIDです。FTP受付が生成したリクエストIDを設定します。

<ftp-commands-before>
0または1回
リストコマンド実行前に実行する必要があるFTPコマンドです。
FTPクライアントから次に示すFTPコマンドが要求されている場合に設定されます。

SITE CSCTHR -B <FTPコマンド>[;<FTPコマンド> …]

この場合，「<FTPコマンド>[;<FTPコマンド> …]」の部分がそのままの形式で設定されます。
ただし，SITE CSCTHRコマンドの引数で指定されたFTPコマンドが，FTPコマンド許可リスト定義機能で許可されていない場合は設定されません。
FTPクライアントからCSCTHRコマンドが複数要求されている場合は，「<FTPコマンド>[;<FTPコマンド> …]」の部分がSITE CSCTHRコマンドを実行した順番にセミコロン（;）で接続されて追加されます。
CSCTHRコマンドが一度も要求されていない場合は，このタグは出力されません。

<ftp-commands-after>
0または1回
リストコマンド実行後に実行する必要があるFTPコマンドです。
FTPクライアントから次に示すコマンドが要求されている場合に設定されます。

SITE CSCTHR -A <FTPコマンド>[;<FTPコマンド> …]

この場合，「<FTPコマンド>[;<FTPコマンド> …]」の部分がそのままの形式で設定されます。
ただし，SITE CSCTHRコマンドの引数で指定されたFTPコマンドが，FTPコマンド許可リスト定義機能で許可されていない場合は設定されません。
FTPクライアントからCSCTHRコマンドが複数要求されている場合は，「<FTPコマンド>[;<FTPコマンド> …]」の部分がSITE CSCTHRコマンドを実行した順番にセミコロン（;）で接続されて追加されます。
CSCTHRコマンドが一度も要求されていない場合は，このタグは出力されません。

（凡例）

－：該当する項目はありません。

注※

規定の出現回数を超える場合の動作は保証しません。

20.5.2　FTP受付の応答電文フォーマット

FTP受付の応答電文フォーマットをオペレーションごとに示します。

＜この項の構成＞

(1)　PUTオペレーション

(2)　GETオペレーション

(3)　GETINFOオペレーション

(1)　PUTオペレーション

ビジネスプロセスからPUTオペレーションのFTP受付に渡す応答電文フォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/ftp/put_response」です。

表20-11　FTP受付の応答電文フォーマット（PUTオペレーション）

タグ名
出現回数※1
説明

<response>
1回
－

<message>
0または1回
ビジネスプロセスの終了状態を示すメッセージです。指定できるメッセージの最大長は1,024文字です。
最大長を超える長さのメッセージを指定した場合，メッセージが1,024文字に収まるようメッセージの後ろの部分は切り捨てられます。
使用できない文字※2が含まれていた場合，使用できない文字はクエスチョンマーク（?）に置き換えられます。
省略した場合，次のメッセージが設定されます。

<success>タグの値がtrueの場合
Transfer complete.

<success>タグの値がfalseの場合
Requested action aborted.

<success>
0または1回
ビジネスプロセスの終了状態を示すフラグです。次のどちらかを指定します。

true
ビジネスプロセスの処理が正常に終了した。

false
ビジネスプロセスの処理でエラーが発生した。

省略した場合，trueが設定されます。

（凡例）

－：該当する項目はありません。

注※1

規定の出現回数を超える場合の動作は保証しません。

注※2

次に示す文字以外は使用できません。

半角英数字，半角空白，半角タブ，半角改行，感嘆符（!），ダブルクォーテーション（"），番号記号（#），ドル記号（$），パーセント（%），アンパサンド（&），アポストロフィ（'），始め小括弧（(），終わり小括弧（)），アスタリスク（*），正符号（+），コンマ（,），ハイフン（-），ピリオド（.），スラッシュ（/），コロン（:），セミコロン（;），左アングルブラケット（<），右アングルブラケット（>），等号（=），クエスチョンマーク（?），単価記号（@），始め角括弧（[），終わり角括弧（]），円マーク（¥），アクサンシルコンフレックス（^），アンダーライン（_），アクサングラーブ（`），始め波括弧（{），終わり波括弧（}），パイプライン（|），波ダッシュ（~）

(2)　GETオペレーション

ビジネスプロセスからGETオペレーションのFTP受付に渡す応答電文フォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/ftp/get_response」です。

表20-12　FTP受付の応答電文フォーマット（GETオペレーション）

タグ名
出現回数※1
説明

<response>
1回
－

<message>
0または1回
ビジネスプロセスの終了状態を示すメッセージです。指定できるメッセージの最大長は1,024文字です。
最大長を超える長さのメッセージを指定した場合，メッセージが1,024文字に収まるようメッセージの後ろの部分は切り捨てられます。
使用できない文字※2が含まれていた場合，使用できない文字はクエスチョンマーク（?）に置き換えられます。
省略した場合，次のメッセージが設定されます。

<success>タグの値がtrueの場合
Transfer complete.

<success>タグの値がfalseの場合
Requested action not taken.

<success>
0または1回
ビジネスプロセスの終了状態を示すフラグです。次のどちらかを指定します。

true
ビジネスプロセスの処理が正常に終了した。

false
ビジネスプロセスの処理でエラーが発生した。

省略した場合，trueが設定されます。

<file-name>
0または1回
FTPクライアントへ送り返すファイルのデータが書き出された中間ファイルのファイル名です。
ただし，<success>タグの値がfalseの場合，この設定は不要です。もし設定されていても無視されます。

<file-size>
0または1回
FTPクライアントへ送り返すファイルのデータのサイズです。
ただし，<success>タグの値がfalseの場合，この設定は不要です。もし設定されていても無視されます。

（凡例）

－：該当する項目はありません。

注※1

規定の出現回数を超える場合の動作は保証しません。

注※2

次に示す文字以外は使用できません。

半角英数字，半角空白，半角タブ，半角改行，感嘆符（!），ダブルクォーテーション（"），番号記号（#），ドル記号（$），パーセント（%），アンパサンド（&），アポストロフィ（'），始め小括弧（(），終わり小括弧（)），アスタリスク（*），正符号（+），コンマ（,），ハイフン（-），ピリオド（.），スラッシュ（/），コロン（:），セミコロン（;），左アングルブラケット（<），右アングルブラケット（>），等号（=），クエスチョンマーク（?），単価記号（@），始め角括弧（[），終わり角括弧（]），円マーク（¥），アクサンシルコンフレックス（^），アンダーライン（_），アクサングラーブ（`），始め波括弧（{），終わり波括弧（}），パイプライン（|），波ダッシュ（~）

(3)　GETINFOオペレーション

ビジネスプロセスからGETINFOオペレーションのFTP受付に渡す応答電文フォーマットを次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/ftp/getinfo_response」です。

表20-13　FTP受付の応答電文フォーマット（GETINFOオペレーション）

タグ名
出現回数※1
説明

<response>
1回
－

<reply-code>
0または1回
情報取得処理を実行したときにFTPサーバから受け取ったリプライコード（またはそれに準ずるコード）です。
FTPアダプタのGETINFOオペレーションを使用して情報取得処理を実行する場合は，FTPアダプタの応答電文の<reply-code>の値をこのタグに設定することを推奨しています。
このタグに指定できる値は，200～299の数値，または
400～599の数値です。
200～299を設定した場合は，FTPクライアントに返されるリプライコードは266となります。
400～599の値を設定した場合は，設定した値がFTPクライアントに返されるリプライコードとなります。
<success>タグの値がtrueで，このタグを省略した場合は，FTP受付がリプライコードに226を仮定します。
<success>タグの値がfalseの場合は，この設定は不要です。もし設定されていても無視されます。

<message>
0または1回
情報取得処理を実行したときにFTPサーバから受け取ったリプライメッセージ，またはビジネスプロセスの終了状態を示すメッセージです。
指定できるメッセージの最大長は1,024文字です。最大長を超える長さのメッセージを指定した場合，メッセージが1,024文字に収まるようメッセージの後ろの部分は切り捨てられます。
使用できない文字※2が含まれていた場合，使用できない文字はクエスチョンマーク（?）に置き換えられます。
省略した場合，次のメッセージが設定されます。

<success>タグの値がtrueの場合
Transfer complete.

<success>タグの値がfalseの場合
Requested action not taken.

FTPアダプタのGETINFOオペレーションを使用して情報取得処理を実行する場合は，FTPアダプタの応答電文の<reply-message>の値をこのタグに設定することを推奨しています。

<success>
0または1回
ビジネスプロセスの終了状態を示すフラグです。次のどちらかを指定します。

true
ビジネスプロセスの処理が正常に終了した。

false
ビジネスプロセスの処理でエラーが発生した。

省略した場合，trueが設定されます。

<file-name>
0または1回
FTPクライアントへ送り返すデータが書き出された中間ファイルのファイル名です。
このタグに指定したファイルには，次の形式で取得した情報が書き込まれる必要があります。

文字コード：UTF-16

改行コード：CRLF

ただし，次のどちらかに当てはまる場合，この設定は不要です。もし設定されていても無視されます。

<success>タグの値がfalseの場合

<success>タグの値がtrueで，<reply-code>の値が400～599場合

（凡例）

－：該当する項目はありません。

注※1

規定の出現回数を超える場合の動作は保証しません。

注※2

次に示す文字以外は使用できません。

半角英数字，半角空白，半角タブ，半角改行，感嘆符（!），ダブルクォーテーション（"），番号記号（#），ドル記号（$），パーセント（%），アンパサンド（&），アポストロフィ（'），始め小括弧（(），終わり小括弧（)），アスタリスク（*），正符号（+），コンマ（,），ハイフン（-），ピリオド（.），スラッシュ（/），コロン（:），セミコロン（;），左アングルブラケット（<），右アングルブラケット（>），等号（=），クエスチョンマーク（?），単価記号（@），始め角括弧（[），終わり角括弧（]），円マーク（¥），アクサンシルコンフレックス（^），アンダーライン（_），アクサングラーブ（`），始め波括弧（{），終わり波括弧（}），パイプライン（|），波ダッシュ（~）

21.　FTP連携システムの構築・運用

この章では，FTP連携システムを利用するためのセットアップの手順，および運用するための手順などについて説明します。

＜この章の構成＞

21.1　FTP連携システムのセットアップとアンセットアップ

21.2　FTP連携システムの運用

21.1　FTP連携システムのセットアップとアンセットアップ

FTP連携システムのセットアップとアンセットアップの流れ，および手順について説明します。

＜この節の構成＞

21.1.1　FTP連携システムのセットアップの流れ

21.1.2　共通フォルダおよび作業フォルダを設定する

21.1.3　FTPインバウンドアダプタをセットアップする

21.1.4　受付およびアダプタの定義ファイルを配置する

21.1.5　リポジトリをインポートする

21.1.6　FTP受付定義ファイルを取得する

21.1.7　FTP受付定義ファイルの定義情報を設定する

21.1.8　HCSCコンポーネントを配備する

21.1.9　FTP受付のアプリケーション統合属性ファイルを取得する

21.1.10　FTP受付のアプリケーション統合属性ファイルの定義情報を設定する

21.1.11　FTPアダプタのアーカイブファイルをJ2EEサーバのクラスパスに設定する

21.1.12　FTP連携システムのアンセットアップの流れ

21.1.13　配備済みのHCSCコンポーネントを削除する

21.1.14　FTP受付定義ファイルの定義情報を削除する

21.1.15　FTPインバウンドアダプタをアンセットアップする

21.1.1　FTP連携システムのセットアップの流れ

FTP連携システムのセットアップの流れを次に示します。

図21-1　FTP連携システムのセットアップの流れ

21.1.2　共通フォルダおよび作業フォルダを設定する

FTP連携システムを使用するには，HCSCサーバランタイム定義ファイルに共通フォルダおよび作業フォルダのパスを設定する必要があります。

HCSCサーバランタイム定義ファイルに設定するプロパティについては，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「HCSCサーバランタイム定義ファイル」を参照してください。

HCSCサーバランタイム定義ファイルをクラスタ内のHCSCサーバに設定する場合の実行形式を次に示します。

cscsvconfig -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -operation set -propfile <HCSCサーバランタイム定義ファイル名>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscsvconfig（HCSCサーバランタイムの定義）」を参照してください。

21.1.3　FTPインバウンドアダプタをセットアップする

FTPインバウンドアダプタをセットアップするには，HCSCサーバが起動している必要があります。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

FTPインバウンドアダプタのセットアップの流れを次に示します。

図21-2　FTPインバウンドアダプタのセットアップの流れ

＜この項の構成＞

(1)　FTPインバウンドアダプタのインポート

(2)　FTPインバウンドアダプタのデプロイ

(3)　FTPインバウンドアダプタの設定

(4)　ユーザ情報の設定

(1)　FTPインバウンドアダプタのインポート

FTPインバウンドアダプタをインポートする場合の実行形式を次に示します。

<Cosminexusインストールディレクトリ>¥CC¥admin¥bin¥cjimportres <J2EEサーバ名> -type rar -f "<Cosminexusインストールディレクトリ>¥CSC¥inbound-adapter¥ftp¥rar¥ftp_inbound_adapter.rar"

cjimportresコマンドの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。

(2)　FTPインバウンドアダプタのデプロイ

FTPインバウンドアダプタをデプロイする場合の実行形式を次に示します。

<Cosminexusインストールディレクトリ>¥CC¥admin¥bin¥cjdeployrar <J2EEサーバ名> -resname FTP_Inbound_Resource_Adapter

cjdeployrarコマンドの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。

(3)　FTPインバウンドアダプタの設定

FTPインバウンドアダプタを設定する手順，およびプロパティファイルの内容を次に示します。

参考

初期状態の設定のままでFTP連携システムを運用する場合，ここでの設定は省略できます。

(a)　設定手順

FTPインバウンドアダプタのRARファイルから属性を取得して，属性ファイルを作成します。
FTPインバウンドアダプタのRARファイルから属性ファイルを作成する場合の実行形式を次に示します。

<Cosminexusインストールディレクトリ>¥CC¥admin¥bin¥cjgetrarprop <J2EEサーバ名> -resname FTP_Inbound_Resource_Adapter -c <属性ファイルのファイルパス>

cjgetrarpropコマンドの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。

属性ファイルを編集します。
属性ファイルの詳細は，「(b) プロパティの内容」を参照してください。

定義項目を編集した属性ファイルに指定された値を，FTPインバウンドアダプタのRARファイルへ反映します。
属性ファイルをFTPインバウンドアダプタへ反映する場合の実行形式を次に示します。

<Cosminexusインストールディレクトリ>¥CC¥admin¥bin¥cjsetrarprop <J2EEサーバ名> -resname FTP_Inbound_Resource_Adapter -c <属性ファイルのファイルパス>

cjsetrarpropコマンドの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。

(b)　プロパティの内容

属性ファイルの定義

属性ファイルにある定義のタグを次に示します。

<hitachi-connector-property>
   <resourceadapter>
       <config-property>
           <config-property-name>   ：定義の名称
           <config-property-type>   ：定義の型
           <config-property-value>  ：定義の値
       </config-property>
       <config-property>
           <config-property-name>   ：定義の名称
           <config-property-type>   ：定義の型
           <config-property-value>  ：定義の値
       </config-property>
                   ：
     （以降，定義の数分，繰り返される）
                   :

定義を編集する場合は，編集する「定義の名称」を検索して，対応する「定義の値」を書き替えます。編集できる項目については，「属性ファイルの定義項目」を参照してください。

属性ファイルを編集する際の注意事項を次に示します。

「定義項目」に示している定義項目の値だけを書き替えてください。ほかの項目や値を変更しないでください。

属性ファイルの内容を，Cosminexusアプリケーション属性ファイル（cosminexus.xml）には記載しないでください。

属性ファイル内にある<display-name>タグのリソースアダプタの名称を変更しないでください。

ログ出力に関する設定で，各ログのログファイル１面あたりのファイルサイズ，およびログファイルのバックアップファイルの面数を変更した場合は，FTPインバウンドアダプタを起動する前に，ログファイルをバックアップしておいてください。

属性ファイルの定義個所

次に，属性ファイルの定義個所を示します。

図21-3　属性ファイルの内容および定義の設定個所

属性ファイルの定義項目

属性ファイルの定義項目を次の表に示します。

表21-1　属性ファイルの定義項目一覧（転送制御に関する設定）

定義項目
定義名
値の範囲
デフォルト値
補足

最大同時接続数
server_maxLogins
1～1024
10
－

文字セットUTF-8の使用
server_charset_UTF8
ONまたはOFF
ON
ONを指定した場合は，文字コードにUTF-8を使用します。
OFFを指定した場合は，文字コードにMS932を使用します。
なお，FTPコマンドで文字セットを指定した場合は，その設定が有効になります。

ローカルIPアドレス
nioListener_localAddress
0.0.0.0～255.255.255.255
All available
（すべてのIPアドレスで要求を受け付けます。）
IPv4のIPアドレスだけ指定できます。
IPv6はサポート対象外です。

ポート番号
nioListener_port
1～65535
21
－

データコネクション確立時のローカルIPアドレス
nioListener_dataConnection_active_localAddress
0.0.0.0～255.255.255.255
Any available
（どれかのIPアドレスが設定されます。）
IPv4のIPアドレスだけ指定できます。
IPv6はサポート対象外です。

データコネクション確立時のポート番号
nioListener_dataConnection_active_localPort
1～65535
Any available
（空いているポート番号が割り当てられます。）
すでに使用されているポート番号は指定しないでください。指定した場合はデータコネクションの確立に失敗します。

Listenバックログ数
nioListener_listenBacklog
1～2147483647
50
－

データコネクションのバッファサイズ
nioListener_dataConnection_socketBufferSize
1～65536
16384
（単位：バイト）

（凡例）－：特にありません。

表21-2　属性ファイルの定義項目一覧（タイムアウトに関する設定）

定義項目
定義名
値の範囲
デフォルト値
補足

アイドルタイムアウト
nioListener_idleTimeout
0～7200
300
0を指定した場合はタイムアウト監視をしません。
（単位：秒）

データコネクション接続のリトライ回数
nioListener_dataConnection_active_connectRetryCount
0～50
5
0を指定した場合はリトライしません。

データコネクション接続のリトライ間隔
nioListener_dataConnection_active_connectRetryInterval
0～1800
10
0を指定した場合はタイムアウト監視をしません。
（単位：秒）

データ送信およびデータ受信のタイムアウト
nioListener_dataConnection_idleTimeout
0～1800
10
0を指定した場合はタイムアウト監視をしません。
（単位：秒）

表21-3　属性ファイルの定義項目一覧（FTPSに関する設定）

定義項目
定義名
値の範囲
デフォルト値
補足

FTPS有効化
server_ftps_enable
trueまたはfalse
false
trueを指定した場合は，FTPSに関する設定が有効になります。
falseを指定した場合は，FTPSに関する設定がすべて無視されます。

制御コネクションのImplicitモード
nioListener_ftps_implicitMode
trueまたはfalse
false
trueを指定した場合は，Implicitモードで動作します。
falseを指定した場合は，Explicitモードで動作します。

キーストアのファイルパス※
nioListener_ftps_keystore_file
任意の文字列
空文字列
絶対パスで記述してください。

キーストアのパスワード
nioListener_ftps_keystore_password
6文字以上の任意の文字列
空文字列
－

キーのパスワード
nioListener_ftps_keystore_keyPassword
6文字以上の任意の文字列
空文字列
この項目を指定しなかった場合は，キーストアのパスワードをキーのパスワードと見なします。

キーのエイリアス
nioListener_ftps_keystore_keyAlias
任意の文字列
空文字列
この項目を指定しなかった場合は，キーストアに含まれる最初のキー（キー証明書のフィンガープリントのバイト列を昇順にしたときの最初のキー）を利用します。

データコネクションの暗号化
nioListener_ftps_dataConnection_secure
trueまたはfalse
true
PROTコマンドを指定していない場合，この項目の指定が有効になります。PROTコマンドが成功した場合は，その指定が有効になります。

trueを指定した場合は，データコネクションを暗号化します。
falseを指定した場合は，暗号化しません。

（凡例）－：特にありません。

注※

指定したパスに，「//」，「/./」，「/../」が含まれる場合は，エラーになります。なお，Windowsの場合は，大文字と小文字は区別されません。

表21-4　属性ファイルの定義項目一覧（ログ出力に関する設定）

分類
定義項目
定義名
値の範囲
デフォルト値
補足

メッセージログ
出力レベル
server_message_logLevel
debug，またはinfo
info
info：
通常の運用時に使用し，運用時に必要な情報を出力します。
debug：
テストや障害が発生した場合の調査時に使用し，infoの情報に加えて，デバッグ用の情報を出力します。

ログファイル1面当たりのファイルサイズ
server_message_maxFileSize
1MB～2048MB
10MB
単位の文字列も指定してください。
（単位：MB）

ログファイルのバックアップファイルの面数
server_message_maxBackupIndex
1～16
4
－

保守ログ
ログ出力レベル
server_maintenance_logLevel
debug，またはinfo
info
「info」および「debug」の意味は，メッセージログの「ログ出力レベル」と同じです。

ログファイル1面当たりのファイルサイズ
server_maintenance_maxFileSize
1MB～2048MB
5MB
単位の文字列も指定してください。
（単位：MB）

ログファイルのバックアップファイルの面数
server_maintenance_maxBackupIndex
1～16
4
－

プロトコルトレースログ
ログ出力レベル
server_protocol_logLevel
debug，またはinfo
info
「info」および「debug」の意味は，メッセージログの「ログ出力レベル」と同じです。

ログファイル1面当たりのファイルサイズ
server_protocol_maxFileSize
1MB～2048MB
20MB
単位の文字列も指定してください。
（単位：MB）

ログファイルのバックアップファイルの面数
server_protocol_maxBackupIndex
1～16
4
－

転送履歴ログ
ログ出力レベル
server_history_logLevel
debug，またはinfo
info
「info」および「debug」の意味は，メッセージログの「ログ出力レベル」と同じです。

ログファイル1面当たりのファイルサイズ
server_history_maxFileSize
1MB～2048MB
12MB
単位の文字列も指定してください。
（単位：MB）

ログファイルのバックアップファイルの面数
server_history_maxBackupIndex
1
1
－

リソースアダプタ間共通ログ
ログ出力レベル
server_common_logLevel
debug，またはinfo
info
「info」および「debug」の意味は，メッセージログの「ログ出力レベル」と同じです。

ログファイル1面当たりのファイルサイズ
server_common_maxFileSize
1MB～2048MB
5MB
単位の文字列も指定してください。
（単位：MB）

ログファイルのバックアップファイルの面数
server_common_maxBackupIndex
1～16
4
－

（凡例）－：特にありません。

(4)　ユーザ情報の設定

ユーザ情報は，FTPインバウンドアダプタによって，ファイルとして管理されます。認証情報のファイルは，管理者権限を持っている管理者が運用コマンドを実行することによって，登録，更新，削除，および表示できます。

(a)　認証情報の運用コマンド

認証情報の運用コマンドを次の表に示します。

表21-5　認証情報の運用コマンド

運用コマンド | 内容
csmftpaddusr（FTPインバウンドアダプタのユーザの登録・更新コマンド） | ユーザを新規に登録します。また，すでに登録されているユーザのパスワードを更新します。
csmftpdelusr（FTPインバウンドアダプタのユーザの削除コマンド） | 登録されているユーザの認証情報を削除します。
csmftplsusr（FTPインバウンドアダプタのユーザの表示コマンド） | 登録されているユーザの認証情報を表示します。

運用コマンドの詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「4.　コマンド（運用環境・実行環境）」の説明を参照してください。

運用コマンドを実行するときの注意事項を次に示します。

FTPインバウンドアダプタが停止している状態で，運用コマンドを実行してください。

運用コマンドの実行中に，別の運用コマンドは実行できません。先に実行した運用コマンドが終了してから，別の運用コマンドを実行してください。

運用コマンドの実行形式を次に示します。

FTPインバウンドアダプタのユーザの登録・更新
FTPインバウンドアダプタのユーザを登録および更新する場合の実行形式を次に示します。

csmftpaddusr -usr <ユーザ名> -pass <ユーザのパスワード>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csmftpaddusr（FTPインバウンドアダプタのユーザの登録・更新）」を参照してください。

FTPインバウンドアダプタのユーザの削除
FTPインバウンドアダプタのユーザを削除する場合の実行形式を次に示します。

csmftpdelusr -usr <ユーザ名>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csmftpdelusr（FTPインバウンドアダプタのユーザの削除）」を参照してください。

FTPインバウンドアダプタのユーザの表示
FTPインバウンドアダプタのユーザを表示する場合の実行形式を次に示します。

csmftplsusr

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csmftplsusr（FTPインバウンドアダプタのユーザの表示）」を参照してください。

(b)　認証情報へのアクセス制限

認証情報にアクセス制限をするには，運用者が運用開始前に，認証情報のファイルに対して，運用コマンドを実行する管理者だけに更新・参照のアクセス権を設定する必要があります。

なお，管理者にアクセス権を設定すると，認証情報のファイルの所有者は管理者となります。

21.1.4　受付およびアダプタの定義ファイルを配置する

FTP受付，FTPアダプタ，およびファイル操作アダプタの各種定義ファイルの格納先を次の表に示します。

表21-6　FTP受付，FTPアダプタ，およびファイル操作アダプタの各種定義ファイルの格納先

定義ファイル名 | 定義利用コンポーネント | 格納先
FTP受付コンフィグファイル | FTP受付 | <HCSCインストールディレクトリ>¥CSC¥config¥ftprecp¥<サービスID>.properties
FTP実行許可リスト定義ファイル | 任意。※1
リストコマンドオプション定義ファイル | 任意。※1
FTPコマンド許可リスト定義ファイル（FTPアダプタ用） | FTPアダプタ | 任意。※2
FTPコマンド許可リスト定義ファイル（FTP受付用） | FTP受付 | 任意。※1
FTPアダプタ実行環境プロパティファイル | FTPアダプタ | <FTPアダプタインストールディレクトリ>¥config¥<サービスID>.properties
アカウント定義ファイル | 任意。※2
実行環境プロパティファイル | ファイル操作アダプタ | <HCSCインストールディレクトリ>¥CSC¥config¥adpfop¥<サービスID>.properties

注※1　FTP受付コンフィグファイルから参照されます。

注※2　FTPアダプタ実行環境プロパティファイルから参照されます。

21.1.5　リポジトリをインポートする

開発環境で作成したFTP受付を運用環境で使用する場合，ZIPファイル形式で保存されたリポジトリ情報をリポジトリにインポートします。

リポジトリ情報をリポジトリにインポートするには，cscrepctlコマンドを実行します。

リポジトリ情報をリポジトリにインポートする場合の実行形式を次に示します。

cscrepctl -user <ログインユーザID> -pass <ログインパスワード> -import <ファイル名>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscrepctl（インポート/エクスポート）」を参照してください。

21.1.6　FTP受付定義ファイルを取得する

開発環境で設定したFTP受付定義ファイルを取得するときの前提条件，および取得方法について説明します。

＜この項の構成＞

(1)　前提条件

(2)　取得方法

(1)　前提条件

FTP受付定義ファイルを取得するには，HCSCサーバが起動状態である必要があります。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　取得方法

開発環境で設定したFTP受付定義ファイルを取得するには，運用環境でcsccmctlコマンドを実行します。

FTP受付定義ファイルを取得する場合の実行形式を次に示します。

csccmctl -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <FTP受付の受付ID> -targetfilename cscurecpftp.properties -basedir <cscurecpftp.propertiesが格納されたディレクトリのファイルパス> -operation get

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccmctl（定義ファイルの管理）」を参照してください。

21.1.7　FTP受付定義ファイルの定義情報を設定する

取得したFTP受付定義ファイルの定義情報を運用環境に設定するときの前提条件，および設定方法について説明します。

＜この項の構成＞

(1)　前提条件

(2)　設定方法

(1)　前提条件

FTP受付定義ファイルの定義情報を設定するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること

FTP受付定義ファイルの定義情報を設定するコマンドを実行する際は，コンポーネントの配備前であること

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　設定方法

FTP受付定義ファイルの定義情報を設定するには，運用環境でcsccmctlコマンドを実行します。

FTP受付定義ファイルの定義情報を設定する場合の実行形式を次に示します。

csccmctl -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <FTP受付の受付ID> -targetfilename cscurecpftp.properties -basedir <cscurecpftp.propertiesが格納されたディレクトリのファイルパス> -operation set

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccmctl（定義ファイルの管理）」を参照してください。

21.1.8　HCSCコンポーネントを配備する

HCSCコンポーネントを実行環境に配備するときの前提条件，および配備方法について説明します。

＜この項の構成＞

(1)　前提条件

(2)　配備方法

(1)　前提条件

HCSCコンポーネントをセットアップ済みのHCSCサーバに配備するには，配備先の実行環境のHCSCサーバが起動状態である必要があります。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　配備方法

HCSCコンポーネントをセットアップ済みのHCSCサーバに配備するには，運用環境でcsccompodeployコマンドを実行します。

HCSCコンポーネントを配備する場合の実行形式を次に示します。

csccompodeploy -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -all

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompodeploy（HCSCコンポーネントの配備）」を参照してください。

21.1.9　FTP受付のアプリケーション統合属性ファイルを取得する

FTP受付のアプリケーション統合属性ファイルを取得するときの前提条件，および取得方法について説明します。

＜この項の構成＞

(1)　前提条件

(2)　取得方法

(1)　前提条件

FTP受付のアプリケーション統合属性ファイルを取得するには，HCSCサーバが起動状態である必要があります。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　取得方法

FTP受付のアプリケーション統合属性ファイルを取得するには，運用環境でcsccompoconfigコマンドを実行します。

FTP受付のアプリケーション統合属性ファイルを取得する場合の実行形式を次に示します。

csccompoconfig -user <ログインユーザID> -pass <ログインパスワード> -csc <HCSCサーバ名> -name <FTP受付の受付ID> -operation get

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompoconfig（HCSCコンポーネントの定義）」を参照してください。

21.1.10　FTP受付のアプリケーション統合属性ファイルの定義情報を設定する

FTP受付のアプリケーション統合属性ファイルの定義情報を設定するときの前提条件，および設定方法について説明します。

＜この項の構成＞

(1)　前提条件

(2)　設定方法

(1)　前提条件

FTP受付のアプリケーション統合属性ファイルの定義情報を設定するには，HCSCサーバが起動状態，かつFTP受付の状態が配備状態である必要があります。ただし，FTP受付が起動している場合はエラーとなります。

また，次の条件に当てはまる場合は，アプリケーション統合属性ファイルで設定した最大インスタンス数と，FTP受付コンフィグファイルに設定するFTP受付のタイムアウトの監視で利用する最大スレッド数を同じ値にする必要があります。

FTP受付にタイムアウト値を設定する

csccompoconfigコマンドで最大インスタンス数を変更する

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　設定方法

FTP受付のアプリケーション統合属性ファイルの定義情報を設定するには，運用環境でcsccompoconfigコマンドを実行します。

FTP受付のアプリケーション統合属性ファイルの定義情報を設定する場合の実行形式を次に示します。

csccompoconfig -user <ログインユーザID> -pass <ログインパスワード> -csc <HCSCサーバ名> -name <FTP受付の受付ID> -operation set

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompoconfig（HCSCコンポーネントの定義）」を参照してください。

21.1.11　FTPアダプタのアーカイブファイルをJ2EEサーバのクラスパスに設定する

実行環境でFTPアダプタを動作させるために，J2EEサーバのクラスパスにFTPアダプタのアーカイブファイルのパスを追加します。usrconf.cfg（J2EEサーバ用オプション定義ファイル）に次の内容を追加してください。

add.class.path=<FTPアダプタインストールディレクトリ>¥lib¥adpftprt.jar
add.class.path=<FTPアダプタインストールディレクトリ>¥lib¥ftp_common.jar

usrconf.cfg（J2EEサーバ用オプション定義ファイル）の詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.3　usrconf.cfg（J2EEサーバ用オプション定義ファイル）」を参照してください。

21.1.12　FTP連携システムのアンセットアップの流れ

FTP連携システムのアンセットアップの流れを次に示します。

図21-4　FTP連携システムのアンセットアップの流れ

21.1.13　配備済みのHCSCコンポーネントを削除する

実行環境に配備されているHCSCコンポーネントを削除するときの前提条件，および削除方法について説明します。

＜この項の構成＞

(1)　前提条件

(2)　削除方法

(1)　前提条件

HCSCコンポーネントを削除するには，次の条件を満たす必要があります。

HCSCサーバが起動状態であること
HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

HCSCコンポーネントが停止状態であること
HCSCコンポーネントの状態の確認方法については，「21.2.9　HCSCコンポーネントの情報を確認する」を参照してください。

(2)　削除方法

配備済みのHCSCコンポーネントを削除するには，運用環境でcsccompoundeployコマンドを実行します。

HCSCコンポーネントを削除する場合の実行形式を次に示します。

csccompoundeploy -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -all

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompoundeploy（配備済みのHCSCコンポーネントの削除）」を参照してください。

21.1.14　FTP受付定義ファイルの定義情報を削除する

FTP受付定義ファイルの定義情報を運用環境から削除するときの前提条件，および削除方法について説明します。

＜この項の構成＞

(1)　前提条件

(2)　削除方法

(1)　前提条件

FTP受付定義ファイルの定義情報を削除するには，次の条件を満たす必要があります。

HCSCサーバが起動状態であること

FTP受付定義ファイルの定義情報を削除するコマンドを実行する際は，コンポーネントの配備前であること

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　削除方法

FTP受付定義ファイルの定義情報を運用環境から削除するには，運用環境でcsccmctlコマンドを実行します。

FTP受付定義ファイルの定義情報を削除する場合の実行形式を次に示します。

csccmctl -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <FTP受付の受付ID> -targetfilename <削除したい定義ファイル名> -operation reset

注意

FTP受付定義ファイルの定義情報を削除する場合，削除したい定義ファイル名に「cscurecpftp.properties」を必ず指定してください。

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccmctl（定義ファイルの管理）」を参照してください。

21.1.15　FTPインバウンドアダプタをアンセットアップする

FTPインバウンドアダプタをアンセットアップするには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること
HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

FTPインバウンドアダプタのアンセットアップの流れを次に示します。

図21-5　FTPインバウンドアダプタのアンセットアップの流れ

＜この項の構成＞

(1)　HCSCコンポーネントの停止

(2)　FTPインバウンドアダプタの停止

(3)　FTPインバウンドアダプタの設定の解除

(4)　HCSCサーバの停止

(5)　HCSCサーバの再起動

(6)　FTPインバウンドアダプタのアンデプロイ

(7)　FTPインバウンドアダプタの削除

(1)　HCSCコンポーネントの停止

HCSCコンポーネントを停止する場合の実行形式を次に示します。

csccompostop -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -all

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompostop（HCSCコンポーネントの停止）」を参照してください。

(2)　FTPインバウンドアダプタの停止

FTPインバウンドアダプタを停止する場合の実行形式を次に示します。

<Cosminexusインストールディレクトリ>¥CC¥admin¥bin¥cjstoprar <J2EEサーバ名称> -resname <リソースアダプタ表示名>

cjstoprarコマンドの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。

(3)　FTPインバウンドアダプタの設定の解除

次のコマンドを実行し，FTPインバウンドアダプタに登録されているすべてのユーザ情報（ユーザ名およびパスワード）を削除します。

<Cosminexusインストールディレクトリ>¥CSC¥bin¥csmftpdelusr -usr <ユーザ名>

コマンドの詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csmftpdelusr（FTPインバウンドアダプタのユーザの削除）」を参照してください。

環境変数（CSCFTP_CMD_LOG）に運用コマンド実行時のログ出力先ディレクトリを設定している場合は，設定を解除します。

(4)　HCSCサーバの停止

HCSCサーバの停止方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.31　HCSCサーバを停止する」を参照してください。

(5)　HCSCサーバの再起動

HCSCサーバの再起動方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.4　HCSCサーバを起動する」を参照してください。

(6)　FTPインバウンドアダプタのアンデプロイ

FTPインバウンドアダプタをアンデプロイする場合の実行形式を次に示します。

<Cosminexusインストールディレクトリ>¥CC¥admin¥bin¥cjundeployrar <J2EEサーバ名称> -resname <リソースアダプタ表示名>

cjundeployrarコマンドの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。

(7)　FTPインバウンドアダプタの削除

FTPインバウンドアダプタを削除する場合の実行形式を次に示します。

<Cosminexusインストールディレクトリ>¥CC¥admin¥bin¥cjdeleteres <J2EEサーバ名称> -type rar -resname <表示名>

cjdeleteresコマンドの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。

21.2　FTP連携システムの運用

FTP連携システムの運用の流れ，および運用に必要な手順について説明します。

＜この節の構成＞

21.2.1　FTP連携システムの運用の流れ

21.2.2　HCSCサーバを起動する

21.2.3　FTPインバウンドアダプタを起動する

21.2.4　HCSCコンポーネントを起動する

21.2.5　標準受付を開始する

21.2.6　FTP受付を開始する

21.2.7　HCSCサーバの情報を確認する

21.2.8　FTPインバウンドアダプタの情報を確認する

21.2.9　HCSCコンポーネントの情報を確認する

21.2.10　HCSCサーバの定義情報を変更する

21.2.11　FTPインバウンドアダプタの定義情報を変更する

21.2.12　FTPインバウンドアダプタのユーザ情報を確認・変更する

21.2.13　FTPアダプタの定義情報を変更する

21.2.14　FTPアダプタのユーザ情報を確認および変更する

21.2.15　ファイル操作アダプタの定義情報を変更する

21.2.16　FTP受付の定義情報を変更する

21.2.17　リポジトリを更新する

21.2.18　転送履歴を取得する

21.2.19　作業フォルダを参照する

21.2.20　作業フォルダを削除する

21.2.21　共通フォルダの情報を参照する

21.2.22　共通フォルダ内のファイルを削除する

21.2.23　FTP受付を停止する

21.2.24　標準受付を停止する

21.2.25　HCSCコンポーネントを停止する

21.2.26　FTPインバウンドアダプタを停止する

21.2.27　HCSCサーバを停止する

21.2.1　FTP連携システムの運用の流れ

FTP連携システムの運用について，開始する場合と停止する場合に分けて説明します。

＜この項の構成＞

(1)　FTP連携システムの運用を開始する場合

(2)　FTP連携システムの運用を停止する場合

(1)　FTP連携システムの運用を開始する場合

FTP連携システムの運用を開始する場合の流れを，次に示します。

図21-6　FTP連携システムの運用を開始する場合の流れ

(2)　FTP連携システムの運用を停止する場合

FTP連携システムの運用を停止する場合の流れを，次に示します。

図21-7　FTP連携システムの運用を停止する場合の流れ

21.2.2　HCSCサーバを起動する

HCSCサーバの起動方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.4　HCSCサーバを起動する」を参照してください。

21.2.3　FTPインバウンドアダプタを起動する

FTPインバウンドアダプタを起動するときの前提条件，および起動方法について説明します。

＜この項の構成＞

(1)　前提条件

(2)　起動方法

(1)　前提条件

FTPインバウンドアダプタを起動するには，HCSCサーバが起動状態である必要があります。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　起動方法

FTPインバウンドアダプタを起動するには，運用環境でcjstartrarコマンドを実行します。

FTPインバウンドアダプタを起動する場合の実行形式を次に示します。

<Cosminexusインストールディレクトリ>¥CC¥admin¥bin¥cjstartrar <J2EEサーバ名称> -resname <リソースアダプタ表示名>

cjstartrarコマンドの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。

21.2.4　HCSCコンポーネントを起動する

実行環境に配備済みの次のHCSCコンポーネントを起動するときの前提条件，および起動方法について説明します。

FTPアダプタ

ファイル操作アダプタ

ビジネスプロセス

＜この項の構成＞

(1)　前提条件

(2)　起動方法

(1)　前提条件

HCSCコンポーネントを起動するには，HCSCサーバが起動状態である必要があります。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　起動方法

HCSCコンポーネントを起動するには，運用環境でcsccompostartコマンドを実行します。

FTPアダプタの起動
FTPアダプタを起動する場合の実行形式を次に示します。

csccompostart -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <FTPアダプタのサービスID>

ファイル操作アダプタの起動
ファイル操作アダプタを起動する場合の実行形式を次に示します。

csccompostart -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <ファイル操作アダプタのサービスID>

ビジネスプロセスの起動
ビジネスプロセスを起動する場合の実行形式を次に示します。

csccompostart -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <ビジネスプロセスのサービスID>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompostart（HCSCコンポーネントの開始）」を参照してください。

21.2.5　標準受付を開始する

標準受付を開始する方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.9　標準受付を開始する」を参照してください。

21.2.6　FTP受付を開始する

FTP受付を開始するときの前提条件，および開始方法について説明します。

＜この項の構成＞

(1)　前提条件

(2)　開始方法

(1)　前提条件

FTP受付を開始するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること

FTP受付が定義されているビジネスプロセスが開始状態であること

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　開始方法

FTP受付を開始するには，運用環境でcsccompostartコマンドを実行します。

FTP受付を開始する場合の実行形式を次に示します。

csccompostart -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <FTP受付の受付ID>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompostart（HCSCコンポーネントの開始）」を参照してください。

21.2.7　HCSCサーバの情報を確認する

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

21.2.8　FTPインバウンドアダプタの情報を確認する

FTPインバウンドアダプタの情報を確認するときの前提条件，および確認方法について説明します。

＜この項の構成＞

(1)　前提条件

(2)　開始方法

(1)　前提条件

FTPインバウンドアダプタの情報を確認するには，HCSCサーバが起動状態である必要があります。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　開始方法

FTPインバウンドアダプタの情報を確認するには，運用環境でcjlistrarコマンドを実行します。

FTPインバウンドアダプタの情報を確認する場合の実行形式を次に示します。

<Cosminexusインストールディレクトリ>¥CC¥admin¥bin¥cjlistrar <J2EEサーバ名称>

cjstartrarコマンドの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。

実行結果の例を次に示します。

KDJE37400-I Connecting to <J2EEサーバ名称>...
running  FTP_Inbound_Resource_Adapter
KDJE37508-I All rars have been listed successfully. (number = [1])

「running」は，FTPインバウンドアダプタが起動していることを示しています。停止している場合は「stopped」と出力されます。

21.2.9　HCSCコンポーネントの情報を確認する

実行環境に配備済みの次のHCSCコンポーネントの情報を確認する方法について説明します。

FTPアダプタ

ファイル操作アダプタ

ビジネスプロセス

FTP受付

HCSCコンポーネントの情報を確認するには，cscstatus（状態表示）コマンド，csmlslocation（サービスアダプタまたはビジネスプロセスの情報の表示）コマンド，csmlsreceptionコマンド（ユーザ定義受付の情報の表示），またはcscutil（各種操作）コマンドを実行します。

cscstatusコマンドおよびcscutilコマンドは運用環境から，csmlslocationコマンドおよびcsmlsreceptionコマンドは実行環境から実行できます。

コマンドごとに確認方法を説明します。

＜この項の構成＞

(1)　cscstatusコマンドで情報を確認する場合

(2)　csmlslocationコマンドで情報を確認する場合

(3)　csmlsreceptionコマンドで情報を確認する場合

(4)　cscutilコマンドで情報を確認する場合

(1)　cscstatusコマンドで情報を確認する場合

cscstatusコマンドで情報を確認する場合，-cscオプションと-typeオプションを指定して実行します。-typeオプションには「compo」を指定します。

HCSCコンポーネントの情報を確認する場合の実行形式を次に示します。

cscstatus -user <ログインユーザID> -pass <ログインパスワード> -csc <HCSCサーバ名> -type compo

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscstatus（状態表示）」を参照してください。

(2)　csmlslocationコマンドで情報を確認する場合

csmlslocationコマンドで情報を確認する場合，情報を参照するビジネスプロセスが配備されているHCSCサーバの名称と，-kオプションにbpを指定して実行します。

HCSCコンポーネントの情報を確認する場合の実行形式を次に示します。

csmlslocation <HCSCサーバ名> -k bp

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csmlslocation（サービスアダプタまたはビジネスプロセスの情報の表示）」を参照してください。

参考

-kオプションの代わりに-allオプションを指定すると，HCSCサーバに登録されているすべてのHCSCコンポーネント（およびサービスグループ）の情報を参照できます。

(3)　csmlsreceptionコマンドで情報を確認する場合

csmlsreceptionコマンドで情報を確認する場合，HCSCサーバ名と-iオプションを指定して実行します。-iオプションにはFTP受付の受付IDを指定します。

HCSCコンポーネントの情報を確認する場合の実行形式を次に示します。

csmlsreception <HCSCサーバ名> -i <FTP受付の受付ID>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csmlsreception（ユーザ定義受付の情報の表示）」を参照してください。

(4)　cscutilコマンドで情報を確認する場合

cscutilコマンドで情報を確認する場合，-targetオプションにcompoを，また-operationオプションにget_bp_infoを指定して実行します。

cscutilコマンドの実行形式は，プロパティ定義ファイルを使用するかどうかによって異なります。

(a)　プロパティ定義ファイルを使用しない場合

-propsオプションにHCSCサーバ名およびビジネスプロセスのサービスIDを指定します。

cscutil -user <ログインユーザID> -pass <ログインパスワード> -mng <Cosminexus Manager名> -target compo -operation get_bp_info -props "CSCSrvName=<HCSCサーバ名>, AdapterName=<ビジネスプロセスのサービスID>"

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscutil（各種操作）」を参照してください。

参考

cscutilコマンドに指定するCosminexus Manager名，HCSCサーバ名およびビジネスプロセスのサービスIDは，cscreplsコマンドで確認できます。詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscrepls（リポジトリ情報の表示）」を参照してください。

(b)　プロパティ定義ファイルを使用する場合

-propfileオプションにプロパティ定義ファイル名を指定します。プロパティ定義ファイルは，J2SEのプロパティファイル形式であらかじめ作成しておく必要があります。

cscutil -user <ログインユーザID> -pass <ログインパスワード> -mng <Cosminexus Manager名> -target compo -operation get_bp_info -propfile <プロパティ定義ファイル名>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscutil（各種操作）」を参照してください。

注意

配備されていないビジネスプロセスの情報を取得した場合，nullという文字列が表示されます。

ビジネスプロセスのサービスIDを指定しないでcscutilコマンドを実行すると，HCSCサーバが管理しているすべてのビジネスプロセスの情報が出力されます。

21.2.10　HCSCサーバの定義情報を変更する

HCSCサーバの定義情報を変更する場合，HCSCサーバの定義情報を設定する場合と同じ方法で行います。HCSCサーバの定義情報を設定する方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「3.1.4　HCSCサーバの定義情報を設定する」を参照してください。

21.2.11　FTPインバウンドアダプタの定義情報を変更する

運用中にFTPインバウンドアダプタの属性定義を変更するときの前提条件，および変更方法について説明します。

＜この項の構成＞

(1)　前提条件

(2)　変更方法

(1)　前提条件

FTPインバウンドアダプタの属性定義を変更するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること

FTP受付が停止状態で，かつFTPインバウンドアダプタが停止状態であること

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　変更方法

FTPインバウンドアダプタの定義情報を変更するには，FTPインバウンドアダプタのRARファイルから属性を取得して，属性ファイルを作成したあと，その属性ファイルを編集して定義を反映させます。

FTPインバウンドアダプタの定義情報を変更する手順を次に示します。

FTPインバウンドアダプタのRARファイルから属性を取得して，属性ファイルを作成します。
FTPインバウンドアダプタのRARファイルから属性ファイルを作成する場合の実行形式を次に示します。

<Cosminexusインストールディレクトリ>¥CC¥admin¥bin¥cjgetrarprop <J2EEサーバ名> -resname FTP_Inbound_Resource_Adapter -c <属性ファイルのファイルパス>

cjgetrarpropコマンドの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。

属性ファイルを編集します。
属性ファイルの定義項目については，「21.1.3(3)(b)　プロパティの内容」を参照してください。

次のコマンドを実行して，FTPインバウンドアダプタの属性定義を反映します。

<Cosminexusインストールディレクトリ>¥CC¥admin¥bin¥cjsetrarprop <J2EEサーバ名称> -resname <リソースアダプタ表示名> -c <属性ファイルパス>

cjsetrarpropコマンドの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。

21.2.12　FTPインバウンドアダプタのユーザ情報を確認・変更する

運用中にFTPインバウンドアダプタのユーザ情報を確認する方法および変更する方法について説明します。

＜この項の構成＞

(1)　FTPインバウンドアダプタのユーザ情報を確認する

(2)　FTPインバウンドアダプタのユーザ情報を変更する

(1)　FTPインバウンドアダプタのユーザ情報を確認する

FTPインバウンドアダプタのユーザ情報を確認する場合の前提条件，および確認方法について説明します。

(a)　前提条件

FTPインバウンドアダプタのユーザ情報を確認するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること

FTP受付が停止状態で，かつFTPインバウンドアダプタが停止状態であること

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(b)　確認方法

FTPインバウンドアダプタのユーザ定義情報を確認する場合の実行形式を次に示します。

csmftplsusr

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csmftplsusr（FTPインバウンドアダプタのユーザの表示）」を参照してください。

(2)　FTPインバウンドアダプタのユーザ情報を変更する

FTPインバウンドアダプタのユーザ情報を確認する場合の前提条件，および確認方法について説明します。

(a)　前提条件

FTPインバウンドアダプタのユーザ情報を確認するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること

FTP受付が停止状態で，かつFTPインバウンドアダプタが停止状態であること

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(b)　変更方法

FTPインバウンドアダプタのユーザ定義情報を変更する場合の実行形式を次に示します。

ユーザを追加する場合

csmftpaddusr -usr <ユーザ名> -pass <ユーザのパスワード>

ユーザを削除する場合

csmftpdelusr -usr <ユーザ名>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csmftpaddusr（FTPインバウンドアダプタのユーザの登録・更新）」および「csmftpdelusr（FTPインバウンドアダプタのユーザの削除）」を参照してください。

注意

複数のユーザを追加または削除する場合は，ユーザの数だけコマンドを実行してください。

FTPインバウンドアダプタのユーザのパスワードを変更する場合，いったんパスワードを変更するユーザを削除したあと，変更したパスワードを設定したユーザを追加してください。

21.2.13　FTPアダプタの定義情報を変更する

運用中に次に示すFTPアダプタの定義情報を変更する方法について説明します。

FTPアダプタ実行環境プロパティファイル

FTP実行許可リストファイル

＜この項の構成＞

(1)　前提条件

(2)　変更方法

(1)　前提条件

FTPアダプタの定義情報を確認するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること

FTP受付が停止状態で，かつFTPアダプタが停止状態であること

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　変更方法

(a)　FTPアダプタ実行環境プロパティファイルを変更する場合

FTPアダプタ実行環境プロパティファイルの変更は，直接定義ファイルを編集します。

FTPアダプタ実行環境プロパティファイルの格納先は次のとおりです。

<FTPアダプタインストールディレクトリ>¥config¥<サービスID>.properties

(b)　FTP実行許可リストファイルを変更する場合

FTP実行許可リストファイルの変更は，直接定義ファイルを編集します。

21.2.14　FTPアダプタのユーザ情報を確認および変更する

運用中にFTPアダプタのユーザ情報を確認および変更する方法について説明します。

＜この項の構成＞

(1)　FTPアダプタのユーザ情報を確認する

(2)　FTPアダプタのユーザ情報を変更する

(1)　FTPアダプタのユーザ情報を確認する

FTPアダプタのユーザ情報を確認するときの前提条件，および開始方法について説明します。

(a)　前提条件

FTPアダプタのユーザ情報を確認するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること

FTP受付が停止状態で，かつFTPアダプタが停止状態であること

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(b)　確認方法

FTPアダプタのユーザ情報を確認するには，運用環境でcsaftpuserlsコマンドを実行します。

FTPアダプタのユーザ情報を確認する場合の実行形式を次に示します。

csaftpuserls -f <アカウント定義ファイルのパス>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csaftpuserls（FTPアダプタのユーザの表示）」を参照してください。

(2)　FTPアダプタのユーザ情報を変更する

FTPアダプタのユーザ情報を変更するときの前提条件，および開始方法について説明します。

(a)　前提条件

FTPアダプタのユーザ情報を変更するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること

FTP受付が停止状態で，かつFTPアダプタが停止状態であること

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(b)　変更方法

FTPアダプタのユーザ情報を変更するには，運用環境でcsaftpuserlsコマンドを実行します。なお，FTPアダプタの要求電文にも課金情報が設定されている場合，csaftpuserlsコマンドで変更した課金情報は無視されてFTPアダプタの要求電文の設定が有効になります。

FTPアダプタのユーザを追加する場合，ユーザを削除する場合，およびユーザのパスワードを変更する場合の実行形式を次に示します。

ユーザを追加する場合

csaftpuseradd -user <ユーザ名> -pass <ユーザのパスワード> -f <アカウント定義ファイルのパス>

複数のユーザを追加する場合は，ユーザの数だけコマンドを実行してください。
課金情報を設定したユーザを登録する場合の実行形式を次に示します。

csaftpuseradd -user <ユーザ名> -pass <ユーザのパスワード> -account <課金情報> -f <アカウント定義ファイルのパス>

ユーザを削除する場合

csaftpuserdel -user <ユーザ名> -f <アカウント定義ファイルのパス>

複数のユーザを削除する場合は，ユーザの数だけコマンドを実行してください。

ユーザのパスワードを変更する場合

csaftpuseradd -user <ユーザ名> -pass <ユーザのパスワード> -r -f <アカウント定義ファイルのパス>

ユーザに課金情報を追加する場合と，ユーザに設定された課金情報を削除する場合の実行形式を次に示します。

ユーザに課金情報を追加する場合

csaftpuseradd -user <ユーザ名> -pass <ユーザのパスワード> -account <課金情報> -r -f <アカウント定義ファイルのパス>

ユーザに設定された課金情報を削除する場合

csaftpuseradd -user <ユーザ名> -pass <ユーザのパスワード> -r -f <アカウント定義ファイルのパス>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csaftpuseradd（FTPアダプタのユーザの登録・更新）」または「csaftpuserdel（FTPアダプタのユーザの削除）」を参照してください。

21.2.15　ファイル操作アダプタの定義情報を変更する

運用中に次に示すファイル操作アダプタの定義情報を変更するときの前提条件，および開始方法について説明します。

ファイル操作アダプタ定義ファイルを変更する場合

実行環境プロパティファイルを変更する場合

＜この項の構成＞

(1)　前提条件

(2)　変更方法

(1)　前提条件

ファイル操作アダプタの定義情報を変更するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること

FTP受付が停止状態で，かつファイル操作アダプタが停止状態であること

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　変更方法

ファイル操作アダプタの定義情報の変更方法を説明します。

(a)　ファイル操作アダプタ定義ファイルを変更する場合

ファイル操作アダプタ定義ファイルは，次の手順で変更します。

定義を変更するファイル操作アダプタをアンデプロイします。
ファイル操作アダプタをアンデプロイする場合の実行形式を次に示します。

csccompoundeploy -cluster <クラスタ名> -user <ログインユーザID> -pass <ログインパスワード> -name <サービスID>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompoundeploy（配備済みのHCSCコンポーネントの削除）」を参照してください。

ファイル操作アダプタ定義ファイルを変更します。
ファイル操作アダプタ定義ファイルを変更する場合の実行形式を次に示します。

csccmctl -cluster <クラスタ名> -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <サービスID> -operation get -targetfilename cscFileOperation.properties -basedir <cscFileOperation.propertiesが格納されたディレクトリのファイルパス>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccmctl（定義ファイルの管理）」を参照してください。

定義を変更したファイル操作アダプタをデプロイします。
ファイル操作アダプタ定義ファイルをデプロイする場合の実行形式を次に示します。

csccompodeploy -cluster <クラスタ名> -user <ログインユーザID> -pass <ログインパスワード> -name <サービスID>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompodeploy（HCSCコンポーネントの配備）」を参照してください。

(b)　実行環境プロパティファイルを変更する場合

ファイル操作アダプタの実行環境プロパティファイルの変更は，直接ファイルを編集します。

ファイル操作アダプタの実行環境プロパティファイルの格納先は次のとおりです。

<HCSCインストールディレクトリ>¥CSC¥config¥adpfop¥<サービスID>.properties

21.2.16　FTP受付の定義情報を変更する

運用中に次に示すFTP受付の定義情報を変更するときの前提条件，および開始方法について説明します。

FTP受付定義ファイル

FTP受付コンフィグファイル

FTP実行許可リストファイル，FTPコマンド許可リスト定義ファイル（FTP受付用），またはリストコマンドオプション定義ファイル

＜この項の構成＞

(1)　前提条件

(2)　変更方法

(1)　前提条件

FTP受付の定義情報を変更するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること

FTP受付が停止状態であること

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　変更方法

FTP受付の定義情報の変更方法を説明します。

(a)　FTP受付定義ファイルを変更する場合

FTP受付定義ファイルは，次の手順で変更します。

定義ファイルを変更するFTP受付をアンデプロイします。
FTP受付をアンデプロイする場合の実行形式を次に示します。

csccompoundeploy -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <サービスID>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompoundeploy（配備済みのHCSCコンポーネントの削除）」を参照してください。

FTP受付定義ファイルを変更します。
FTP受付定義ファイルを変更する場合の実行形式を次に示します。

csccmctl -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <サービスID> -operation set -targetfilename cscurecpftp.properties -basedir <cscurecpftp.propertiesが格納されたディレクトリのファイルパス>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccmctl（定義ファイルの管理）」を参照してください。

定義ファイルを変更したFTP受付をデプロイします。
FTP受付をデプロイする場合の実行形式を次に示します。

csccompodeploy -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <サービスID>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompodeploy（HCSCコンポーネントの配備）」を参照してください。

(b)　FTP受付コンフィグファイルを変更する場合

FTP受付コンフィグファイルの変更は，直接ファイルを編集します。

FTP受付コンフィグファイルの格納先は次のとおりです。

<CSCインストールディレクトリ>¥CSC¥config¥ftprecp¥<サービスID>.properties

(c)　FTP実行許可リストファイル，FTPコマンド許可リスト定義ファイル（FTP受付用），またはリストコマンドオプション定義ファイルを変更する場合

FTP実行許可リストファイル，FTPコマンド許可リスト定義ファイル（FTP受付用），およびリストコマンドオプション定義ファイルを変更するには，直接ファイルを編集します。

FTP実行許可リストファイル，FTPコマンド許可リスト定義ファイル（FTP受付用），およびリストコマンドオプション定義ファイルは，FTP受付コンフィグファイルで指定したパスに格納されています。

21.2.17　リポジトリを更新する

運用環境にリポジトリをインポートしたあとに，開発環境でHCSCコンポーネントの定義を変更した場合，次の手順でリポジトリを更新します。

リポジトリをエクスポートします。
編集後の定義を保存したリポジトリをエクスポートします。
リポジトリのエクスポートは開発環境で実行します。
リポジトリのエクスポートの詳細は，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「4.2　リポジトリのエクスポート」を参照してください。

FTPインバウンドアダプタを停止します。
FTPインバウンドアダプタの停止方法については，「21.1.15(2) FTPインバウンドアダプタの停止」を参照してください。

csccompostopコマンドを実行してHCSCコンポーネントを停止します。
詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompostop（HCSCコンポーネントの停止）」を参照してください。

csccompoundeployコマンドを実行して配備済みのHCSCコンポーネントを削除します。
詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompoundeploy（配備済みのHCSCコンポーネントの削除）」を参照してください。

次のコマンドを入力して，ファイル操作アダプタおよびFTP受付の定義ファイルを運用環境から削除します。
コマンドの実行形式を次に示します。

ファイル操作アダプタの定義ファイルを削除する場合

csccmctl -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <ファイル操作アダプタのサービスID> -operation reset  -targetfilename cscFileOperation.properties

FTP受付の定義ファイルを削除する場合

csccmctl -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <FTP受付の受付ID> -operation reset  -targetfilename cscurecpftp.properties

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccmctl（定義ファイルの管理）」を参照してください。

リポジトリをインポートします。
開発環境でエクスポートしたリポジトリを運用環境にインポートします。
リポジトリのインポートの詳細は，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「4.3　リポジトリのインポート」を参照してください。

21.2.18　転送履歴を取得する

転送履歴を取得するには，運用環境でcsmftplshistoryコマンドを実行します。

csmftplshistoryコマンドは，管理者権限を持っているユーザだけが実行できます。

転送履歴を取得する場合の実行形式を次に示します。

csmftplshistory <J2EEサーバ名>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csmftplshistory（転送履歴の表示）」を参照してください。

なお，転送履歴は，転送履歴ログとしてファイルに出力されます。転送履歴ログファイルの格納先やログファイル名については，「22.1.4　転送履歴ログ（FTPインバウンドアダプタ）」を参照してください。

21.2.19　作業フォルダを参照する

作業フォルダのフォルダ一覧を参照するには，運用環境でcscfswlsコマンドを実行します。

作業フォルダを削除する前の状態を取得する場合と，作業フォルダを削除したあとの状態を取得する場合の実行形式を次に示します。

＜この項の構成＞

(1)　作業フォルダを削除する前の状態を取得する場合

(2)　作業フォルダを削除したあとの状態を取得する場合

(1)　作業フォルダを削除する前の状態を取得する場合

cscfswls -user <ログインユーザID> -pass <ログインパスワード> -all -csc <HCSCサーバ名> <作業フォルダ削除前の一覧結果のファイルパス>

(2)　作業フォルダを削除したあとの状態を取得する場合

cscfswls -user <ログインユーザID> -pass <ログインパスワード> -all -csc <HCSCサーバ名> <作業フォルダ削除後の一覧結果のファイルパス>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscfswls（作業フォルダの参照）」を参照してください。

21.2.20　作業フォルダを削除する

作業フォルダを削除するときの前提条件，および削除方法について説明します。

＜この項の構成＞

(1)　前提条件

(2)　削除方法

(1)　前提条件

作業フォルダを削除するには，作業フォルダを管理するFTP受付，およびそのFTP受付から呼び出されるビジネスプロセスが停止している必要があります。

(2)　削除方法

作業フォルダを削除するには，運用環境でcscfswrmコマンドを実行します。

作業フォルダを削除する場合の実行形式を次に示します。

cscfswrm -user <ログインユーザID> -pass <ログインパスワード> -d 0 -all -csc <HCSCサーバ名>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscfswrm（作業フォルダの削除）」を参照してください。

21.2.21　共通フォルダの情報を参照する

共通フォルダ内のファイル一覧を参照するには，運用環境でcscfsclsコマンドを実行します。

共通フォルダを削除する前の状態を取得する場合と，共通フォルダを削除したあとの状態を取得する場合の実行形式を次に示します。

＜この項の構成＞

(1)　共通フォルダを削除する前に取得する場合

(2)　共通フォルダを削除したあとに取得する場合

(1)　共通フォルダを削除する前に取得する場合

cscfscls -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -folder <共通フォルダ定義名> -csc <HCSCサーバ名> <共通フォルダ内のファイル削除前の一覧結果のファイルパス>

(2)　共通フォルダを削除したあとに取得する場合

cscfscls -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -folder <共通フォルダ定義名> -csc <HCSCサーバ名> <共通フォルダ内のファイル削除後の一覧結果のファイルパス>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscfscls（共通フォルダの参照）」を参照してください。

21.2.22　共通フォルダ内のファイルを削除する

共通フォルダ内のファイルを削除するには，運用環境でcscfscrmコマンドを実行します。

共通フォルダ内のファイルを削除する場合の実行形式を次に示します。

cscfscrm -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -folder <共通フォルダ定義名> -d 0 -csc <HCSCサーバ名>

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscfscrm（共通フォルダの削除）」を参照してください。

21.2.23　FTP受付を停止する

FTP受付を停止するには，運用環境でcsccompostopコマンドを実行します。

FTP受付を停止する場合の実行形式を次に示します。

csccompostop -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <FTP受付の受付ID>

csccompostopコマンドの詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompostop（HCSCコンポーネントの停止）」を参照してください。

21.2.24　標準受付を停止する

標準受付を停止する方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.26　標準受付を停止する」を参照してください。

21.2.25　HCSCコンポーネントを停止する

実行環境に配備済みの次のHCSCコンポーネントを停止するときの前提条件，および開始方法について説明します。

FTPアダプタ

ファイル操作アダプタ

ビジネスプロセス

＜この項の構成＞

(1)　前提条件

(2)　停止方法

(1)　前提条件

HCSCコンポーネントを停止するには，HCSCサーバが起動状態である必要があります。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(2)　停止方法

HCSCコンポーネントを停止するには，運用環境でcsccompostopコマンドを実行します。

HCSCコンポーネントを停止する場合の実行形式を次に示します。

csccompostop -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -all

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompostop（HCSCコンポーネントの停止）」を参照してください。

21.2.26　FTPインバウンドアダプタを停止する

FTPインバウンドアダプタの停止方法については，「21.1.15(2)　FTPインバウンドアダプタの停止」を参照してください。

21.2.27　HCSCサーバを停止する

HCSCサーバの停止方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.31　HCSCサーバを停止する」を参照してください。

22.　障害対策（FTP連携）

この章では，FTP連携の運用時に発生する障害に対して取得できる情報の種類について説明します。

＜この章の構成＞

22.1　障害情報の取得（FTPインバウンドアダプタ）

22.2　障害情報の取得（FTPアダプタ）

22.3　障害情報の取得（ファイル操作アダプタ）

22.4　FTP受付実行時に発生したエラーの伝わり方

22.5　障害情報の取得（FTP受付）

22.1　障害情報の取得（FTPインバウンドアダプタ）

FTPインバウンドアダプタに関する障害情報には次の種類があります。

メッセージログ※

保守用ログ※

プロトコルトレース※

転送履歴ログ※

リソースアダプタ間共通ログ※

運用コマンド実行時の保守用ログ

性能解析トレース

ここでは，これらの障害情報について説明します。

注※

これらのログについて，ファイル転送，またはFTPインバウンドアダプタの起動・停止を1回実行するときに必要なログファイルのサイズを次の表に示します。この表の値を参考にして，環境に応じて必要なログファイルサイズを算出してください。

表22-1　必要なログファイルサイズ

ログの種類 | 1回のファイル転送に必要なログファイルサイズ | 1回の起動・停止に必要なログファイルサイズ
メッセージログ | 1.0KB | 1.5KB
保守用ログ | 0.5KB | 0.5KB
プロトコルトレース | 2.0KB | 0.0KB
転送履歴ログ | 0.5KB | 0.0KB
リソースアダプタ間共通ログ | 0.5KB | 1.5KB

なお，FTPインバウンドアダプタでは，このマニュアルで説明する障害情報のほかに，FTPインバウンドアダプタが動作するJ2EEサーバおよびJavaVMが出力する資料があります。J2EEサーバおよびJavaVMが出力する資料については，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「4.　トラブルシューティング（資料の出力先と出力方法）」を参照してください。

＜この節の構成＞

22.1.1　メッセージログ（FTPインバウンドアダプタ）

22.1.2　保守用ログ（FTPインバウンドアダプタ）

22.1.3　FTPプロトコルトレース（FTPインバウンドアダプタ）

22.1.4　転送履歴ログ（FTPインバウンドアダプタ）

22.1.5　リソースアダプタ間共通ログ（FTPインバウンドアダプタ）

22.1.6　運用コマンド実行時の保守用ログ（FTPインバウンドアダプタ）

22.1.7　性能解析トレース（FTPインバウンドアダプタ）

22.1.1　メッセージログ（FTPインバウンドアダプタ）

メッセージログには，FTPインバウンドアダプタのエラー情報，および稼働情報を示すメッセージが出力されます。ここでは，FTPインバウンドアダプタでのメッセージログについて説明します。

＜この項の構成＞

(1)　メッセージログの出力形式と出力される内容

(2)　メッセージログの出力先

(1)　メッセージログの出力形式と出力される内容

(a)　出力形式

メッセージログの出力形式を次に示します。

<日付> <時刻> <pid> <tid> <転送ID> <メッセージID> <メッセージテキスト>

(b)　出力される内容

メッセージログに出力される内容を次の表に示します。

表22-2　メッセージログに出力される内容（FTPインバウンドアダプタ）

項目
内容

日付
メッセージログの取得日付がyyyy/mm/ddの形式で出力されます。

yyyy：西暦

mm：月

dd：日

時刻
メッセージログの取得時刻がhh:mm:ss.SSSの形式で出力されます。

hh：時

mm：分

ss：秒

SSS：ミリ秒

pid
プロセスを識別するためのIDが出力されます。

tid
スレッドを識別するためのIDが出力されます。

転送ID
転送IDが出力されます。

メッセージID
メッセージIDが出力されます。

メッセージテキスト
メッセージの内容が出力されます。

(2)　メッセージログの出力先

メッセージログの出力先およびログファイル名を次の表に示します。

表22-3　メッセージログの出力先およびファイル名（FTPインバウンドアダプタ）

ログファイルの出力先パス
ログファイル名

<J2EEサーバの作業ディレクトリ>¥ejb¥<J2EEサーバ名>¥logs¥csc¥inbound-adapter¥ftp¥FTP_Inbound_Resource_Adapter

現用ファイル

message.log

バックアップファイル※

message<面数>.log

注※

現用ファイルのサイズが1面当たりのファイルサイズを超えた場合，バックアップファイルにリネームされます。バックアップファイル名には，バックアップファイルの面数が含まれます。新しいログファイルの方が小さい番号となります。

<J2EEサーバの作業ディレクトリ>は，usrconf.cfg（J2EEサーバ用オプション定義ファイル）のejb.public.directoryキーで変更できます。デフォルトは，<Cosminexusのインストールディレクトリ>¥CC¥server¥publicです。メッセージログの出力先はejb.server.log.directoryキーでは変更できないため注意してください。usrconf.cfgの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.3　usrconf.cfg（J2EEサーバ用オプション定義ファイル）」を参照してください。

なお，RARファイルの属性を設定するConnector属性ファイルの次のプロパティで，メッセージログの出力レベル，ファイルのサイズ，およびファイル面数を変更できます。

server_message_logLevel＝メッセージログの出力レベル

server_message_maxFileSize＝メッセージログのファイルサイズ

server_message_maxBackupIndex＝バックアップファイルの面数

RARファイルの属性を取得してConnector属性ファイルを生成するには，cjgetrarpropコマンドを実行します。cjgetrarpropコマンドについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。また，Connector属性ファイルについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「4.1　Connector属性ファイル」を参照してください。

22.1.2　保守用ログ（FTPインバウンドアダプタ）

保守用ログには，FTPインバウンドアダプタでのエラー発生時のログが出力されます。このログは，保守員に連絡するときに必要です。ここでは，FTPインバウンドアダプタでの保守用ログについて説明します。

＜この項の構成＞

(1)　保守用ログの出力形式と出力される内容

(2)　保守用ログの出力先

(1)　保守用ログの出力形式と出力される内容

(a)　出力形式

保守用ログの出力形式を次に示します。

<日付> <時刻> <pid> <tid> <保守情報>

(b)　出力される内容

保守用ログに出力される内容を次の表に示します。

表22-4　保守用ログに出力される内容（FTPインバウンドアダプタ）

項目
内容

日付
保守用ログの取得日付がyyyy/mm/ddの形式で出力されます。

yyyy：西暦

mm：月

dd：日

時刻
保守用ログの取得時刻がhh:mm:ss.SSSの形式で出力されます。

hh：時

mm：分

ss：秒

SSS：ミリ秒

pid
プロセスを識別するためのIDが出力されます。OSが管理するプロセスIDとは異なります。

tid
スレッドを識別するためのIDが出力されます。OSが管理するスレッドIDとは異なります。

保守情報
システム管理者または保守員に連絡するときに必要な保守情報が出力されます。

(2)　保守用ログの出力先

保守用ログの出力先およびログファイル名を次の表に示します。

表22-5　保守用ログの出力先およびファイル名（FTPインバウンドアダプタ）

ログファイルの出力先パス
ログファイル名

<J2EEサーバの作業ディレクトリ>¥ejb¥<J2EEサーバ名>¥logs¥csc¥inbound-adapter¥ftp¥FTP_Inbound_Resource_Adapter

現用ファイル

maintenance.log

バックアップファイル

maintenance<面数>.log

注※

現用ファイルのサイズが1面当たりのファイルサイズを超えた場合，バックアップファイルにリネームされます。バックアップファイル名には，バックアップファイルの面数が含まれます。新しいログファイルの方が小さい番号となります。

<J2EEサーバの作業ディレクトリ>は，usrconf.cfg（J2EEサーバ用オプション定義ファイル）のejb.public.directoryキーで変更できます。デフォルトは，<Cosminexusのインストールディレクトリ>¥CC¥server¥publicです。保守用ログの出力先はejb.server.log.directoryキーでは変更できないため注意してください。usrconf.cfgの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.3　usrconf.cfg（J2EEサーバ用オプション定義ファイル）」を参照してください。

なお，RARファイルの属性を設定するConnector属性ファイルの次のプロパティで，保守用ログの出力レベル，ファイルのサイズ，およびファイル面数を変更できます。

server_maintenance_logLevel＝保守用ログの出力レベル

server_maintenance_maxFileSize＝保守用ログのファイルサイズ

server_maintenance_maxBackupIndex＝バックアップファイルの面数

RARファイルの属性を取得してConnector属性ファイルを生成するには，cjgetrarpropコマンドを実行します。cjgetrarpropコマンドについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。また，Connector属性ファイルについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「4.1　Connector属性ファイル」を参照してください。

22.1.3　FTPプロトコルトレース（FTPインバウンドアダプタ）

FTPプロトコルトレースでは，FTPクライアントと送受信を行ったFTPプロトコルメッセージのトレースが出力されます。ここでは，FTPインバウンドアダプタでのFTPプロトコルトレースについて説明します。

＜この項の構成＞

(1)　FTPプロトコルトレースの出力形式と出力される内容

(2)　FTPプロトコルトレースの出力先

(3)　FTPプロトコルトレースの出力例

(1)　FTPプロトコルトレースの出力形式と出力される内容

(a)　出力形式

FTPプロトコルトレースの出力形式を次に示します。

<日付> <時刻> <pid> <tid> <転送ID> <送受信方向> <プロトコルメッセージ>

(b)　出力される内容

FTPプロトコルトレースに出力される内容を次の表に示します。

表22-6　FTPプロトコルトレースに出力される内容（FTPインバウンドアダプタ）

項目
内容

日付
プロトコルメッセージの送受信日付がyyyy/mm/ddの形式で出力されます。

yyyy：西暦

mm：月

dd：日

時刻
プロトコルメッセージの送受信時刻がhh:mm:ss.SSSの形式で出力されます。

hh：時

mm：分

ss：秒

SSS：ミリ秒

pid
プロセスを識別するためのIDが出力されます。

tid
スレッドを識別するためのIDが出力されます。

転送ID※
転送IDが出力されます。ただし，最初のコネクション接続時のトレースには出力されません。

送受信方向
プロトコルメッセージの送受信方向が出力されます。
--->：FTPクライアントから受信した場合
<---：FTPクライアントへ送信した場合

プロトコルメッセージ
プロトコルメッセージの内容が出力されます。
PASSコマンドの引数であるパスワードの文字列がFTPプロトコルトレースに出力される場合，パスワードの文字列の代わりに「*****」が表示されます。

注※

転送IDが出力されているレコードから，該当する処理スレッド（tid）がわかります。tidを検索することで，転送処理に対する一連のFTPプロトコルトレースを参照できます。

(2)　FTPプロトコルトレースの出力先

FTPプロトコルトレースの出力先およびトレースファイル名を次の表に示します。

表22-7　FTPプロトコルトレースの出力先およびファイル名（FTPインバウンドアダプタ）

トレースファイルの出力先パス
トレースファイル名

<J2EEサーバの作業ディレクトリ>¥ejb¥<J2EEサーバ名>¥logs¥csc¥inbound-adapter¥ftp¥FTP_Inbound_Resource_Adapter

現用ファイル

protocol.log

バックアップファイル

protocol<面数>.log

注※

現用ファイルのサイズが1面当たりのファイルサイズを超えた場合，バックアップファイルにリネームされます。バックアップファイル名には，バックアップファイルの面数が含まれます。新しいログファイルの方が小さい番号となります。

<J2EEサーバの作業ディレクトリ>は，usrconf.cfg（J2EEサーバ用オプション定義ファイル）のejb.public.directoryキーで変更できます。デフォルトは，<Cosminexusのインストールディレクトリ>¥CC¥server¥publicです。FTPプロトコルトレースの出力先はejb.server.log.directoryキーでは変更できないため注意してください。usrconf.cfgの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.3　usrconf.cfg（J2EEサーバ用オプション定義ファイル）」を参照してください。

なお，RARファイルの属性を設定するConnector属性ファイルの次のプロパティで，FTPプロトコルトレースの出力レベル，ファイルのサイズ，およびファイル面数を変更できます。

server_protocol_logLevel＝FTPプロトコルトレースの出力レベル

server_protocol_maxFileSize＝FTPプロトコルトレースのファイルサイズ

server_protocol_maxBackupIndex＝バックアップファイルの面数

RARファイルの属性を取得してConnector属性ファイルを生成するには，cjgetrarpropコマンドを実行します。cjgetrarpropコマンドについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。また，Connector属性ファイルについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「4.1　Connector属性ファイル」を参照してください。

(3)　FTPプロトコルトレースの出力例

RETRコマンドを実行して，サーバからファイルを取得する場合のFTPプロトコルトレースの出力例を次に示します。

2010/10/29 21:50:15.346    <pid>    <tid>                     ---> connection from 10.209.12.244
2010/10/29 21:50:15.346    <pid>    <tid> <転送ID>            ---> OPENED
2010/10/29 21:50:15.346    <pid>    <tid> <転送ID>            <--- 220 Service ready for new user.
2010/10/29 21:50:15.346    <pid>    <tid> <転送ID>            ---> USER admin
2010/10/29 21:50:15.346    <pid>    <tid> <転送ID>            <--- 331 User name okay, need password for admin.
2010/10/29 21:50:15.346    <pid>    <tid> <転送ID>            ---> PASS *****
2010/10/29 21:50:15.346    <pid>    <tid> <転送ID>            <--- 230 User logged in, proceed.
2010/10/29 21:50:15.346    <pid>    <tid> <転送ID>            ---> TYPE A
2010/10/29 21:50:15.346    <pid>    <tid> <転送ID>            <--- 200 Command TYPE okay.
2010/10/29 21:50:15.346    <pid>    <tid> <転送ID>            ---> PORT 10,209,12,244,17,28
2010/10/29 21:50:15.346    <pid>    <tid> <転送ID>            <--- 200 Command PORT okay.
2010/10/29 21:50:15.346    <pid>    <tid> <転送ID>            ---> RETR /sample1/hoge.txt
2010/10/29 21:50:15.361    <pid>    <tid> <転送ID>            <--- 150 Opening ASCII mode data connection for
/sample1/hoge.txt.
2010/10/29 21:50:15.533    <pid>    <tid> <転送ID>            <--- 226 Transfer Complete.
2010/10/29 21:50:15.533    <pid>    <tid> <転送ID>            ---> QUIT
2010/10/29 21:50:15.533    <pid>    <tid> <転送ID>            <--- 221 Goodbye.
2010/10/29 21:50:15.533    <pid>    <tid> <転送ID>            ---> CLOSED

22.1.4　転送履歴ログ（FTPインバウンドアダプタ）

転送履歴ログは，FTP連携システムでの転送履歴が出力されます。転送履歴ログの出力先およびログファイル名を次の表に示します。

表22-8　転送履歴ログの出力先およびファイル名（FTPインバウンドアダプタ）

ログファイルの出力先パス
ログファイル名

<J2EEサーバの作業ディレクトリ>¥ejb¥<J2EEサーバ名>¥logs¥csc¥inbound-adapter¥ftp¥FTP_Inbound_Resource_Adapter

現用ファイル

history.log

バックアップファイル

history<面数>.log

注※

現用ファイルのサイズが1面当たりのファイルサイズを超えた場合，バックアップファイルにリネームされます。バックアップファイル名には，バックアップファイルの面数が含まれます。新しいログファイルの方が小さい番号となります。

<J2EEサーバの作業ディレクトリ>は，usrconf.cfg（J2EEサーバ用オプション定義ファイル）のejb.public.directoryキーで変更できます。デフォルトは，<Cosminexusのインストールディレクトリ>¥CC¥server¥publicです。転送履歴ログの出力先はejb.server.log.directoryキーでは変更できないため注意してください。usrconf.cfgの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.3　usrconf.cfg（J2EEサーバ用オプション定義ファイル）」を参照してください。

なお，RARファイルの属性を設定するConnector属性ファイルの次のプロパティで，転送履歴ログの出力レベル，ファイルのサイズ，およびファイル面数を変更できます。

server_history_logLevel＝転送履歴ログの出力レベル

server_history_maxFileSize＝転送履歴ログのファイルサイズ

server_history_maxBackupIndex＝バックアップファイルの面数

RARファイルの属性を取得してConnector属性ファイルを生成するには，cjgetrarpropコマンドを実行します。cjgetrarpropコマンドについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。また，Connector属性ファイルについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「4.1　Connector属性ファイル」を参照してください。

22.1.5　リソースアダプタ間共通ログ（FTPインバウンドアダプタ）

リソースアダプタ間共通ログには，FTPインバウンドアダプタの起動を開始してからリソースアダプタ名称が決まるまでの処理，ネットワーク制御やログ出力などの処理に関する情報が出力されます。ここでは，FTPインバウンドアダプタでのリソースアダプタ間共通ログについて説明します。

＜この項の構成＞

(1)　リソースアダプタ間共通ログの出力形式と出力される内容

(2)　リソースアダプタ間共通ログの出力先

(1)　リソースアダプタ間共通ログの出力形式と出力される内容

リソースアダプタ間共通ログは，メッセージと保守情報として出力されます。

(a)　出力形式

リソースアダプタ間共通ログの出力形式を次に示します。

メッセージの場合

<日付> <時刻> <pid> <tid> <転送ID> <メッセージID> <メッセージテキスト>

保守情報の場合

<日付> <時刻> <pid> <tid> <保守情報>

(b)　出力される内容

リソースアダプタ間共通ログに出力される内容を次の表に示します。

メッセージの場合

表22-9　リソースアダプタ間共通ログに出力される内容（FTPインバウンドアダプタ）（メッセージの場合）

項目
内容

日付
リソースアダプタ間共通ログの取得日付がyyyy/mm/ddの形式で出力されます。

yyyy：西暦

mm：月

dd：日

時刻
リソースアダプタ間共通ログの取得時刻がhh:mm:ss.SSSの形式で出力されます。

hh：時

mm：分

ss：秒

SSS：ミリ秒

pid
プロセスを識別するためのIDが出力されます。

tid
スレッドを識別するためのIDが出力されます。

転送ID
転送IDが出力されます。

メッセージID
メッセージIDが出力されます。

メッセージテキスト
メッセージの内容が出力されます。

保守情報の場合

表22-10　リソースアダプタ間共通ログに出力される内容（FTPインバウンドアダプタ）（保守情報の場合）

項目
内容

日付
リソースアダプタ間共通ログの取得日付がyyyy/mm/ddの形式で出力されます。

yyyy：西暦

mm：月

dd：日

時刻
リソースアダプタ間共通ログの取得時刻がhh:mm:ss.SSSの形式で出力されます。

hh：時

mm：分

ss：秒

SSS：ミリ秒

pid
プロセスを識別するためのIDが出力されます。

tid
スレッドを識別するためのIDが出力されます。

保守情報
システム管理者または保守員に連絡するときに必要な保守情報が出力されます。

(2)　リソースアダプタ間共通ログの出力先

リソースアダプタ間共通ログの出力先およびログファイル名を次の表に示します。

表22-11　リソースアダプタ間共通ログの出力先およびファイル名（FTPインバウンドアダプタ）

ログファイルの出力先パス
ログファイル名

<J2EEサーバの作業ディレクトリ>¥ejb¥<J2EEサーバ名>¥logs¥csc¥inbound-adapter¥ftp¥common

現用ファイル

ftpd.log

バックアップファイル※

ftpd<面数>.log

注※

現用ファイルのサイズが1面当たりのファイルサイズを超えた場合，バックアップファイルにリネームされます。バックアップファイル名には，バックアップファイルの面数が含まれます。新しいログファイルの方が小さい番号となります。

<J2EEサーバの作業ディレクトリ>は，usrconf.cfg（J2EEサーバ用オプション定義ファイル）のejb.public.directoryキーで変更できます。デフォルトは，<Cosminexusのインストールディレクトリ>¥CC¥server¥publicです。リソースアダプタ間共通ログの出力先はejb.server.log.directoryキーでは変更できないため注意してください。usrconf.cfgの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.3　usrconf.cfg（J2EEサーバ用オプション定義ファイル）」を参照してください。

なお，RARファイルの属性を設定するConnector属性ファイルの次のプロパティで，リソースアダプタ間共通ログの出力レベル，ファイルのサイズ，およびファイル面数を変更できます。

server_common_logLevel＝リソースアダプタ間共通ログの出力レベル

server_common_maxFileSize＝リソースアダプタ間共通ログのファイルサイズ

server_common_maxBackupIndex＝バックアップファイルの面数

RARファイルの属性を取得してConnector属性ファイルを生成するには，cjgetrarpropコマンドを実行します。cjgetrarpropコマンドについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。また，Connector属性ファイルについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「4.1　Connector属性ファイル」を参照してください。

22.1.6　運用コマンド実行時の保守用ログ（FTPインバウンドアダプタ）

運用コマンド実行時の保守用ログには，運用コマンドでのエラー発生時のログが出力されます。このログは，保守員に連絡するときに必要です。

運用コマンド実行時の保守用ログの出力先およびログファイル名を次の表に示します。

表22-12　運用コマンド実行時の保守用ログの出力先およびファイル名（FTPインバウンドアダプタ）

ログファイルの出力先パス
ログファイル名

<Cosminexusのインストールディレクトリ>¥CSC¥inbound-adapter¥ftp¥logs¥FTP_Inbound_Resource_Adapter

メッセージログ

現用ファイル
message.log

バックアップファイル※
message<面数>.log

保守用ログ

現用ファイル
maintenance.log

バックアップファイル※
maintenance<面数>.log

プロトコルトレース

現用ファイル
protocol.log

バックアップファイル※
protocol<面数>.log

転送履歴ログ

現用ファイル
history.log

バックアップファイル※
history<面数>.log

注※

現用ファイルのサイズが1面当たりのファイルサイズを超えた場合，バックアップファイルにリネームされます。バックアップファイル名には，バックアップファイルの面数が含まれます。新しいログファイルの方が小さい番号となります。

運用コマンド実行時のログの出力先を変更する場合は，環境変数（CSCFTP_CMD_LOG）に変更後の出力先ディレクトリをフルパスで指定します。指定したパスが存在しない場合は，運用コマンド実行時にディレクトリが作成されます。環境変数が設定されていない場合，または環境変数の値として空文字を指定した場合，デフォルトの出力先に出力されます。

環境変数（CSCFTP_CMD_LOG）に指定できるパスは，次の条件を満たしている必要があります。

「//」，「/./」，または「/../」を含まないこと

半角英数字，半角スペース，ファイルセパレータ（「¥」または「/」），および「:」を使用していること

パスの長さが128バイト（半角文字で128文字）以内であること

なお，Linuxの場合，ディレクトリのパスにスペースを含むときは，パスをダブルクォーテーション（"）で囲む必要があります。

なお，RARファイルの属性を設定するConnector属性ファイルで，運用コマンド実行時の保守用ログの出力レベル，ファイルのサイズ，およびファイル面数を変更できます。設定するプロパティは，FTPインバウンドアダプタのメッセージログ，保守用ログ，FTPプロトコルトレース，および転送履歴ログの設定をするプロパティと同じです。

RARファイルの属性を取得してConnector属性ファイルを生成するには，cjgetrarpropコマンドを実行します。cjgetrarpropコマンドについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「2.4　J2EEサーバで使用するリソース操作コマンド」を参照してください。また，Connector属性ファイルについては，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「4.1　Connector属性ファイル」を参照してください。

22.1.7　性能解析トレース（FTPインバウンドアダプタ）

FTPインバウンドアダプタでの性能解析トレースについて説明します。

＜この項の構成＞

(1)　性能解析トレースの出力形式と出力される内容

(2)　性能解析トレースの取得ポイント

(3)　性能解析トレースの取得方法と出力先

(1)　性能解析トレースの出力形式と出力される内容

(a)　出力形式

性能解析トレースファイルに出力される形式は，Cosminexusの性能解析トレースと同様です。詳細は，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「4.6　性能解析トレース」を参照してください。

(b)　出力される内容

性能解析トレースファイルに出力される内容を次の表に示します。

表22-13　性能解析トレースファイルに出力される内容（FTPインバウンドアダプタ）

項目
内容

イベントID
取得ポイントのイベントIDが出力されます。
取得ポイントの詳細は，次の個所を参照してください。

「(2) 性能解析トレースの取得ポイント」

リターンコード
取得ポイント種別が出力されます。

0：正常終了

1：異常終了

インターフェース名
クラス名が出力されます。

オペレーション名
メソッド名が出力されます。

オプション情報
保守情報が出力されます。取得ポイントによっては出力されないこともあります。

(2)　性能解析トレースの取得ポイント

性能解析トレースの取得ポイントを次の図に示します。

図22-1　性能解析トレースの取得ポイント（FTPインバウンドアダプタ）

イベントID，トレース取得ポイント，および性能解析トレース取得レベルを次の表に示します。表の「図中の番号」は，図22-1中の番号と対応しています。

表22-14　性能解析トレースの取得ポイント（FTPインバウンドアダプタ）

図中の番号 | イベントID | トレース取得ポイント | レベル
1 | 0x9950 | FTPクライアントから新規にリクエストを受信した個所 | A
2 | 0x9951 | FTPクライアントからの一連のリクエストが完了し，セッションを完了する個所 | A
3 | 0x9952 | 転送リクエストを受信し，FTP受付への振り分けを依頼する個所の前 | A
4 | 0x9953 | 転送リクエストを受信し，FTP受付への振り分けを依頼する個所のあと | A
5 | 0x9954 | FTP受付で実行される転送処理の個所の前 | A
0x9956 | FTP受付で実行されるリストデータ転送処理の個所の前 | A
6 | 0x9955 | FTP受付で実行される転送処理の個所のあと | A
0x9957 | FTP受付で実行されるリストデータ転送処理の個所のあと | A

（凡例）

A：標準

(3)　性能解析トレースの取得方法と出力先

性能解析トレースを取得するには設定が必要です。設定の詳細は，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「4.6　性能解析トレース」を参照してください。

22.2　障害情報の取得（FTPアダプタ）

FTPアダプタに関する障害情報には次の種類があります。

メッセージログ

保守用ログ

性能解析トレース

FTPプロトコルトレース

FTPコマンドメッセージログ

ここでは，これらの障害情報について説明します。

＜この節の構成＞

22.2.1　メッセージログ（FTPアダプタ）

22.2.2　保守用ログ（FTPアダプタ）

22.2.3　性能解析トレース（FTPアダプタ）

22.2.4　FTPプロトコルトレース（FTPアダプタ）

22.2.5　コマンドメッセージログ（FTPアダプタ）

22.2.1　メッセージログ（FTPアダプタ）

FTPアダプタでのメッセージログについて説明します。

＜この項の構成＞

(1)　メッセージログの出力形式と出力される内容

(2)　メッセージログの出力先

(1)　メッセージログの出力形式と出力される内容

(a)　出力形式

メッセージログの出力形式を次の図に示します。

図22-2　メッセージログの出力形式（FTPアダプタ）

(b)　出力される内容

メッセージログに出力される内容を次の表に示します。

表22-15　メッセージログに出力される内容（FTPアダプタ）

項目
内容

番号
メッセージログの出力通番が表示されます。

日付
メッセージログの取得日付がyyyy/mm/ddの形式で出力されます。

yyyy：西暦

mm：月

dd：日

時刻
メッセージログの取得時刻がhh:mm:ss.SSSの形式で出力されます。

hh：時

mm：分

ss：秒

SSS：ミリ秒

製品ID
製品を特定するための識別子として，Cosminexus Component Containerを示す「HEJB」が出力されます。また，バージョン情報が出力されます。

pid
プロセスを識別するためのIDが出力されます。

tid
スレッドを識別するためのIDが出力されます。

メッセージID
メッセージIDが「KDEKnnnnn-X」の形式で出力されます。

メッセージテキスト
メッセージの内容が出力されます。

CRLF
レコードの終端符号が出力されます。

(2)　メッセージログの出力先

メッセージログの出力先およびログファイル名を次の表に示します。

表22-16　メッセージログの出力先およびファイル名（FTPアダプタ）

ログファイルの出力先パス | ログファイル名
CosminexusのJ2EEサーバの稼働ログの出力先に指定されたパス※ | cjmessage<面数>.log

注※

CosminexusのJ2EEサーバの稼働ログの出力先は，usrconf.cfg（J2EEサーバ用オプション定義ファイル）のejb.server.log.directoryキーで指定します。デフォルトの出力先は，<Cosminexusのインストールディレクトリ>¥CC¥server¥public¥ejb¥<J2EEサーバ名>¥logsです。usrconf.cfgの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.3　usrconf.cfg（J2EEサーバ用オプション定義ファイル）」を参照してください。

なお，ログファイルの面数は，HCSCサーバが動作するJ2EEサーバ用ユーザプロパティファイル（usrconf.properties）のejbserver.logger.channels.define.<チャネル名>.filenumキーで指定します。ログファイルのサイズは，HCSCサーバが動作するJ2EEサーバ用ユーザプロパティファイル（usrconf.properties）のejbserver.logger.channels.define.<チャネル名>filesizeキーで指定します。

22.2.2　保守用ログ（FTPアダプタ）

FTPアダプタでの保守用ログについて説明します。

＜この項の構成＞

(1)　保守用ログの出力形式と出力される内容

(2)　保守用ログの出力先

(1)　保守用ログの出力形式と出力される内容

(a)　出力形式

保守用ログの出力形式を次の図に示します。

図22-3　保守用ログの出力形式（FTPアダプタ）

(b)　出力される内容

保守用ログに出力される内容を次の表に示します。

表22-17　保守用ログに出力される内容（FTPアダプタ）

項目
内容

番号
保守用ログの出力通番が表示されます。

日付
保守用ログの取得日付がyyyy/mm/ddの形式で出力されます。

yyyy：西暦

mm：月

dd：日

時刻
保守用ログの取得時刻がhh:mm:ss.SSSの形式で出力されます。

hh：時

mm：分

ss：秒

SSS：ミリ秒

製品ID
製品を特定するための識別子として，FTPアダプタを示す「FTPADP」が出力されます。また，バージョン情報が出力されます。

pid
プロセスを識別するためのIDが出力されます。

tid
スレッドを識別するためのIDが出力されます。

ID，種別
表示されません。

出力種別
保守用ログの取得ポイント情報（取得位置）が出力されます。

BGN：メソッドの開始

END：メソッドの終了

CAL：メソッドの呼び出し

RET：メソッドの戻り

THR：例外のスロー

CTH：例外のキャッチ

クラス名
保守用ログを取得するクラス名が出力されます。

メソッド名
保守用ログを取得するメソッド名が出力されます。

入出力情報
保守用ログを取得するメソッドの入出力情報（引数の値，戻り値，例外名など）が出力されます。

CRLF
レコードの終端符号が出力されます。

(2)　保守用ログの出力先

保守用ログの出力先およびログファイル名を次の表に示します。

表22-18　保守用ログの出力先およびファイル名（FTPアダプタ）

ログファイルの出力先パス | ログファイル名
FTPアダプタ実行環境プロパティファイルのftpadp.methodtrace.filepathプロパティで指定したパス | cscftpadpmtd_<HCSCサーバ名>_<面数>.log

なお，ログファイルの面数は，FTPアダプタ実行環境プロパティファイルのftpadp.methodtrace.filenumプロパティで指定します。ログファイルのサイズは，FTPアダプタ実行環境プロパティファイルのftpadp.methodtrace.filesizeプロパティで指定します。

FTPアダプタ実行環境プロパティファイルの詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTPアダプタ実行環境プロパティファイル」を参照してください。

22.2.3　性能解析トレース（FTPアダプタ）

FTPアダプタでの性能解析トレースについて説明します。

＜この項の構成＞

(1)　性能解析トレースの出力形式と出力される内容

(2)　性能解析トレースの取得ポイント

(3)　性能解析トレースの取得方法と出力先

(1)　性能解析トレースの出力形式と出力される内容

(a)　出力形式

性能解析トレースファイルに出力される形式は，Cosminexusの性能解析トレースと同様です。詳細は，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「4.6　性能解析トレース」を参照してください。

(b)　出力される内容

性能解析トレースファイルに出力される内容を次の表に示します。

表22-19　性能解析トレースファイルに出力される内容（FTPアダプタ）

項目
内容

イベントID
取得ポイントのイベントIDが出力されます。
取得ポイントの詳細は，次の個所を参照してください。

「(2) 性能解析トレースの取得ポイント」

リターンコード
取得ポイント種別が出力されます。

0：正常終了

1：異常終了

インターフェース名
クラス名が出力されます。

オペレーション名
メソッド名が出力されます。

オプション情報
サービスID
HCSCコンポーネントのサービスIDが出力されます。

オペレーション
次のどれかが出力されます。

PUT

GET

GETINFO

FTPコマンド名
STOR，APPE，RETR，LIST，NLST，TYPEなどが出力されます。

転送ファイル名またはパス
FTPコマンド名がSTORまたはAPPEの場合はローカルファイル名が出力されます。
FTPコマンド名がRETRの場合はリモートファイル名が出力されます。
FTPコマンド名がLISTまたはNLSTの場合はリモートパスが出力されます。

転送サイズ
転送ファイルのサイズまたはリストデータのサイズがバイト単位で出力されます。

任意時刻からのナノ秒
java.lang.SystemクラスのnanoTimeメソッドの戻り値が出力されます。

例外クラス名
例外が発生したクラス名が出力されます。

(2)　性能解析トレースの取得ポイント

性能解析トレースの取得ポイントを次の図に示します。

図22-4　性能解析トレースの取得ポイント（FTPアダプタ）

イベントID，トレース取得ポイント，および性能解析トレース取得レベルを次の表に示します。表の「図中の番号」は，図22-4中の番号と対応しています。

表22-20　性能解析トレースの取得ポイント（FTPアダプタ）

イベントID | 図中の番号 | トレース取得ポイント | レベル
0xAB00 | 1 | リクエスト受付時 | B
0xAB02 | 2 | 転送またはリスト以外のFTPコマンド実行時 | A
0xAB03 | 3 | 転送またはリスト以外のFTPコマンドリプライ時 | A
0xAB04 | 4 | 転送コマンドまたはリストコマンド（STOR，APPE，RETR，LIST，またはNLST）実行時 | A
0xAB05 | 5 | 転送コマンドまたはリストコマンド（STOR，APPE，RETR，LIST，またはNLST）リプライ時 | A
0xAB01 | 6 | レスポンス送信時 | B

（凡例）

A：標準

B：詳細

(3)　性能解析トレースの取得方法と出力先

性能解析トレースを取得するには設定が必要です。設定の詳細は，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「4.6　性能解析トレース」を参照してください。

22.2.4　FTPプロトコルトレース（FTPアダプタ）

FTPアダプタでのFTPプロトコルトレースについて説明します。

＜この項の構成＞

(1)　FTPプロトコルトレースの出力形式と出力される内容

(2)　FTPプロトコルトレースの出力先

(3)　FTPプロトコルトレースの出力例

(1)　FTPプロトコルトレースの出力形式と出力される内容

(a)　出力形式

FTPプロトコルトレースの出力形式を次の図に示します。

図22-5　FTPプロトコルトレースの出力形式（FTPアダプタ）

(b)　出力される内容

FTPプロトコルトレースに出力される内容を次の表に示します。

表22-21　FTPプロトコルトレースに出力される内容（FTPアダプタ）

項目
内容

番号
FTPプロトコルトレースの出力通番が出力されます。

日付
FTPプロトコルトレースの取得日付がyyyy/mm/ddの形式で出力されます。

yyyy：西暦

mm：月

dd：日

時刻
FTPプロトコルトレースの取得時刻がhh:mm:ss.SSSの形式で出力されます。

hh：時

mm：分

ss：秒

SSS：ミリ秒

製品ID
製品を特定するための識別子として，ファイル操作アダプタを示す「FTPADP」が出力されます。また，バージョン情報が出力されます。

pid
プロセスを識別するためのIDが出力されます。

tid
スレッドを識別するためのIDが出力されます。

ID
出力されません。

種別
FTPプロトコルトレースの種別が出力されます。

CMD：コマンド実行

REP：応答行

リクエストID
受付で作成された，リクエストIDが出力されます。共通フォルダを使用している場合は，リクエストIDが存在しないため「****」が出力されます。

トレース情報
種別がCMDの場合，FTPコマンド名が出力されます。
種別がREPの場合，コマンドメッセージが出力されます。

CRLF
レコードの終端符号が出力されます。

(2)　FTPプロトコルトレースの出力先

FTPプロトコルトレースの出力先およびログファイル名を次の表に示します。

表22-22　FTPプロトコルトレースの出力先およびファイル名（FTPアダプタ）

トレースファイルの出力先パス | ログファイル名
FTPアダプタ実行環境プロパティファイルのftpadp.ftpprotocoltrace.filepathプロパティで指定したパス | ftpprotocoltrace_<面数>.log

なお，ログファイルの面数は，FTPアダプタ実行環境プロパティファイルのftpadp.ftpprotocoltrace.filenumプロパティで指定します。ログファイルのサイズは，FTPアダプタ実行環境プロパティファイルのftpadp.ftpprotocoltrace.filesizeプロパティで指定します。

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTPアダプタ実行環境プロパティファイル」を参照してください。

(3)　FTPプロトコルトレースの出力例

FTPアダプタでのFTPプロトコルトレースの出力例を次に示します。

CMD RCP01---0102000300000420100602144121012000 Connected to 10.208.180.254.
REP RCP01---0102000300000420100602144121012000 220 (vsFTPd 2.0.1)
CMD RCP01---0102000300000420100602144121012000 USER user1
REP RCP01---0102000300000420100602144121012000 331 Please specify the password.
CMD RCP01---0102000300000420100602144121012000 PASS ********
REP RCP01---0102000300000420100602144121012000 230 Login successful.
CMD RCP01---0102000300000420100602144121012000 TYPE I
REP RCP01---0102000300000420100602144121012000 200 Switching to Binary mode.
CMD RCP01---0102000300000420100602144121012000 PORT 10,210,182,27,8,173
REP RCP01---0102000300000420100602144121012000 200 PORT command successful. Consider using PASV.
CMD RCP01---0102000300000420100602144121012000 STOR test.txt
REP RCP01---0102000300000420100602144121012000 150 Ok to send data.
REP RCP01---0102000300000420100602144121012000 226 File receive OK.
CMD RCP01---0102000300000420100602144121012000 QUIT
REP RCP01---0102000300000420100602144121012000 221 Goodbye.

22.2.5　コマンドメッセージログ（FTPアダプタ）

FTPアダプタでのコマンドメッセージログについて説明します。

FTPアダプタのユーザ管理コマンドの開始時，停止時のインフォメーション情報や，コマンド実行中に障害などが発生した場合のエラーメッセージは，ログファイルとしてコマンドメッセージログに出力されます。コマンドメッセージログを参照することで，過去に実行したコマンドの障害情報や稼働情報を確認できます。

＜この項の構成＞

(1)　コマンドメッセージログの出力形式と出力される内容

(2)　コマンドメッセージログの出力先

(1)　コマンドメッセージログの出力形式と出力される内容

(a)　出力形式

コマンドメッセージログの出力形式を次の図に示します。

図22-6　コマンドメッセージログの出力形式（FTPアダプタ）

(b)　出力される内容

コマンドメッセージログに出力される内容を次の表に示します。

表22-23　コマンドメッセージログに出力される内容（FTPアダプタ）

項目
内容

番号
コマンドメッセージログの出力通番が表示されます。

日付
コマンドメッセージログの取得日付がyyyy/mm/ddの形式で出力されます。

yyyy：西暦

mm：月

dd：日

時刻
コマンドメッセージログの取得時刻がhh:mm:ss.sssの形式で出力されます。

hh：時

mm：分

ss：秒

sss：ミリ秒

製品ID
製品を特定するための識別子として，FTPアダプタを示す「FTPADP」の後ろに，実行したコマンドの名前を示す「add」，「del」または「ls」が出力されます。

FTPADP:add

FTPADP:del

FTPADP:ls

pid
プロセスを識別するためのIDが出力されます。

tid
スレッドを識別するためのIDが出力されます。

メッセージID
メッセージIDが「KDEKnnnnn-X」の形式で出力されます。

メッセージテキスト
メッセージの内容が出力されます。

CRLF
レコードの終端符号が出力されます。

(2)　コマンドメッセージログの出力先

コマンドメッセージログの出力先およびログファイル名を次の表に示します。

表22-24　　コマンドメッセージログの出力先およびファイル名（メールアダプタ）

ログファイルの出力先パス | ログファイル名
FTPアダプタコマンド定義ファイルのftpadp.command.messagelog.filepathキーに指定されたパス | message<面数>.log

なお，ログファイルの面数は，FTPアダプタコマンド定義ファイルのftpadp.command.messagelog.filenumキーで指定します。ログファイルのサイズは，FTPアダプタコマンド定義ファイルのftpadp.command.messagelog.filesizeキーで指定します。

22.3　障害情報の取得（ファイル操作アダプタ）

ファイル操作アダプタに関する障害情報には次の種類があります。

メッセージログ

保守用ログ

性能解析トレース

ここでは，これらの障害情報について説明します。

＜この節の構成＞

22.3.1　メッセージログ（ファイル操作アダプタ）

22.3.2　保守用ログ（ファイル操作アダプタ）

22.3.3　性能解析トレース（ファイル操作アダプタ）

22.3.1　メッセージログ（ファイル操作アダプタ）

ファイル操作アダプタでのメッセージログについて説明します。

＜この項の構成＞

(1)　メッセージログの出力形式と出力される内容

(2)　メッセージログの出力先

(1)　メッセージログの出力形式と出力される内容

(a)　出力形式

メッセージログの出力形式を次の図に示します。

図22-7　メッセージログの出力形式（ファイル操作アダプタ）

(b)　出力される内容

メッセージログに出力される内容を次の表に示します。

表22-25　メッセージログに出力される内容（ファイル操作アダプタ）

項目
内容

番号
メッセージログの出力通番が表示されます。

日付
メッセージログの取得日付がyyyy/mm/ddの形式で出力されます。

yyyy：西暦

mm：月

dd：日

時刻
メッセージログの取得時刻がhh:mm:ss.SSSの形式で出力されます。

hh：時

mm：分

ss：秒

SSS：ミリ秒

製品ID
製品を特定するための識別子として，Cosminexus Component Containerを示す「HEJB」が出力されます。

pid
プロセスを識別するためのIDが出力されます。

tid
スレッドを識別するためのIDが出力されます。

メッセージID
メッセージIDが「KDECnnnnn-X」の形式で出力されます。

メッセージテキスト
メッセージの内容が出力されます。

CRLF
レコードの終端符号が出力されます。

(2)　メッセージログの出力先

メッセージログの出力先およびログファイル名を次の表に示します。

表22-26　メッセージログの出力先およびファイル名（ファイル操作アダプタ）

ログファイルの出力先パス | ログファイル名
CosminexusのJ2EEサーバの稼働ログの出力先に指定されたパス※ | cjmessage<面数>.log

注※

CosminexusのJ2EEサーバの稼働ログの出力先は，usrconf.cfg（J2EEサーバ用オプション定義ファイル）のejb.server.log.directoryキーで指定します。デフォルトの出力先は，<Cosminexusのインストールディレクトリ>¥CC¥server¥public¥ejb¥<J2EEサーバ名>¥logsです。usrconf.cfgの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.3　usrconf.cfg（J2EEサーバ用オプション定義ファイル）」を参照してください。

なお，ログファイルの面数は，HCSCサーバが動作するJ2EEサーバ用ユーザプロパティファイル（usrconf.properties）のejbserver.logger.channels.define.<チャネル名>.filenumキーで指定します。ログファイルのサイズは，HCSCサーバが動作するJ2EEサーバ用ユーザプロパティファイル（usrconf.properties）のejbserver.logger.channels.define.<チャネル名>filesizeキーで指定します。

22.3.2　保守用ログ（ファイル操作アダプタ）

ファイル操作アダプタでの保守用ログについて説明します。

＜この項の構成＞

(1)　保守用ログの出力形式と出力される内容

(2)　保守用ログの出力先

(1)　保守用ログの出力形式と出力される内容

(a)　出力形式

保守用ログの出力形式を次の図に示します。

図22-8　保守用ログの出力形式（ファイル操作アダプタ）

(b)　出力される内容

保守用ログに出力される内容を次の表に示します。

表22-27　保守用ログに出力される内容（ファイル操作アダプタ）

項目
内容

番号
保守用ログの出力通番が表示されます。

日付
保守用ログの取得日付がyyyy/mm/ddの形式で出力されます。

yyyy：西暦

mm：月

dd：日

時刻
保守用ログの取得時刻がhh:mm:ss.SSSの形式で出力されます。

hh：時

mm：分

ss：秒

SSS：ミリ秒

製品ID
製品を特定するための識別子として，ファイル操作アダプタを示す「FOPADP」が出力されます。また，バージョン情報が出力されます。

pid
プロセスを識別するためのIDが出力されます。

tid
スレッドを識別するためのIDが出力されます。

ID，種別
表示されません。

出力種別
保守用ログの取得ポイント情報（取得位置）が出力されます。

BGN：メソッドの開始

END：メソッドの終了

CAL：メソッドの呼び出し

RET：メソッドの戻り

THR：例外のスロー

CTH：例外のキャッチ

クラス名
保守用ログを取得するクラス名が出力されます。

メソッド名
保守用ログを取得するメソッド名が出力されます。

入出力情報
保守用ログを取得するメソッドの入出力情報（引数の値，戻り値，例外名など），またはスタックトレースが出力されます。

CRLF
レコードの終端符号が出力されます。

(2)　保守用ログの出力先

保守用ログの出力先およびログファイル名を次の表に示します。

表22-28　保守用ログの出力先およびファイル名（ファイル操作アダプタ）

ログファイルの出力先パス | ログファイル名
<Cosminexus ログ出力ディレクトリ>¥CSCADP¥ADPFOP¥maintenance¥<ファイル操作アダプタのサービスID> | cscadpfopmnt_<HCSCサーバ名>_<面数>.log

なお，ログファイルの面数は，HCSCサーバランタイム定義ファイルのmethodtrace-filenumプロパティで指定します。ログファイルのサイズは，HCSCサーバランタイム定義ファイルのmethodtrace-filesizeプロパティで指定します。

HCSCサーバランタイム定義ファイルの詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「HCSCサーバランタイム定義ファイル」を参照してください。

22.3.3　性能解析トレース（ファイル操作アダプタ）

ファイル操作アダプタでの性能解析トレースについて説明します。

＜この項の構成＞

(1)　性能解析トレースに出力形式と出力される内容

(2)　性能解析トレースの取得ポイント

(3)　性能解析トレースの取得方法と出力先

(1)　性能解析トレースに出力形式と出力される内容

(a)　出力形式

性能解析トレースファイルに出力される形式は，Cosminexusの性能解析トレースと同様です。詳細は，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「4.6　性能解析トレース」を参照してください。

(b)　出力される内容

性能解析トレースファイルに出力される内容を次の表に示します。

表22-29　性能解析トレースファイルに出力される内容（ファイル操作アダプタ）

項目
内容

イベントID
取得ポイントのイベントIDが出力されます。
取得ポイントの詳細は，次の個所を参照してください。

「(2) 性能解析トレースの取得ポイント」

リターンコード
取得ポイント種別が出力されます。

0：正常終了

1：異常終了

インターフェース名
クラス名が出力されます。

オペレーション名
メソッド名が出力されます。

付加情報
データ（16進数形式）
取得ポイントごとに異なる情報（16進数形式）が出力されます。512文字を超えた場合は超えた分が切り捨てられます。

データ（ASCII形式）※
データ（16進数形式）の内容がASCII形式で出力されます。512文字を超えた場合は超えた分が切り捨てられます。

注※　データ（ASCII形式）の出力形式例を次に示します。

Service ID=<サービスID>, Operation Name=<サービスオペレーション名>, Time=<任意時刻からのナノ秒>, Exception=<例外クラス名>

(2)　性能解析トレースの取得ポイント

性能解析トレースの取得ポイントを次の図に示します。

図22-9　性能解析トレースの取得ポイント（ファイル操作アダプタ）

イベントID，トレース取得ポイント，および性能解析トレース取得レベルを次の表に示します。表の「図中の番号」は，図22-9中の番号と対応しています。

表22-30　性能解析トレースの取得ポイント（ファイル操作アダプタ）

イベントID | 図中の番号 | トレース取得ポイント | レベル
0x9B80 | 1 | ファイル操作アダプタの入口 | A
0x9B81 | 2 | ファイル操作アダプタの出口 | A
0x9B82 | 3 | ファイル操作アダプタのオペレーションの呼び出し口 | A
0x9B83 | 4 | ファイル操作アダプタのオペレーション結果の受け取り口 | A

（凡例）

A：標準

(3)　性能解析トレースの取得方法と出力先

性能解析トレースを取得するには設定が必要です。設定の詳細は，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「4.6　性能解析トレース」を参照してください。

22.4　FTP受付実行時に発生したエラーの伝わり方

FTPクライアントからFTP受付を使用してビジネスプロセスを呼び出す場合のエラーの伝わり方を説明します。エラーの伝わり方は，エラーの種類によって異なります。

FTP受付にエラーを示す応答電文が返された場合

FTP受付にエラーを示す応答電文が返された場合のエラーの伝わり方を次の図に示します。

図22-10　FTP受付にエラーを示す応答電文が返された場合のエラーの伝わり方

サービスアダプタから返されたフォルト電文は，ビジネスプロセスのフォルト処理に伝わります。ビジネスプロセスのフォルト処理で，エラー情報を，エラーを示す応答電文（応答電文の<success>タグにfalseを設定した応答電文）に変換し，FTP受付に返します。このとき，エラーを示す応答電文は，メッセージ配送基盤およびカスタム受付フレームワークを経由してFTP受付に返されます。

FTP受付では，応答電文に設定されているメッセージテキストをそのままの形でFTPインバウンドアダプタに返します。FTPインバウンドアダプタでは，受け取ったメッセージテキストをFTPの転送コマンドまたはリストコマンドのレスポンスとしてFTPクライアントへ応答します。

カスタム受付フレームワークがエラーをリターンした場合

カスタム受付フレームワークがエラーをリターンした場合のエラーの伝わり方を次の図に示します。なお，ビジネスプロセスから呼び出したアダプタからフォルト電文が返され，このフォルトに該当するフォルト処理がビジネスプロセスに定義されていない場合も，次の図に示す流れと同じです。

図22-11　カスタム受付フレームワークがエラーをリターンした場合のエラーの伝わり方

図中に示したエラー1～エラー5の要因を次に示します。

エラー1：要求パラメタ不正など

エラー2：あて先（ロケーション）が見つからない，アダプタが停止しているなど

エラー3：データ変換の失敗など

エラー4：あて先不正，サービス部品が停止，通信障害など

エラー5：ビジネスプロセス処理上での例外エラーなど

エラー1～エラー5のどれかが発生した場合，例外をキャッチしたカスタム受付フレームワークはFTP受付の受付処理に対して，CSCMsgServerExceptionをスローします。

FTP受付の受付処理では，キャッチした例外を基にKDEC00384-EまたはKDEC00385-Eのメッセージテキストを生成し，FTPインバウンドアダプタに応答します。FTPインバウンドアダプタでは，受け取ったメッセージテキストを，FTPの転送コマンドまたはリストコマンドのレスポンスとしてFTPクライアントに応答します。

CSCMsgServerExceptionの詳細は，「付録G.3　カスタム受付フレームワークのAPI」を参照してください。

FTP受付がエラーを検知した場合

FTP受付がエラーを検知した場合のエラーの伝わり方を次の図に示します。

図22-12　FTP受付がエラーを検知した場合のエラーの伝わり方

図中に示したエラー1～エラー2の要因を次に示します。

エラー1：作業フォルダの作成失敗など

エラー2：FTPインバウンドアダプタでのファイルデータまたはリストデータ転送中に障害発生など

FTP受付では，検知した障害を基にKDEC00386-E～KDEC00410-Eのメッセージテキストを生成し，FTPインバウンドアダプタに応答します。FTPインバウンドアダプタでは，受け取ったメッセージテキストを，FTPの転送コマンドまたはリストコマンドのレスポンスとしてFTPクライアントに応答します。

22.5　障害情報の取得（FTP受付）

FTP受付に関する障害情報には次の種類があります。

性能解析トレース

ここでは，この障害情報について説明します。

＜この節の構成＞

22.5.1　性能解析トレース（FTP受付）

22.5.1　性能解析トレース（FTP受付）

FTP受付での性能解析トレースについて説明します。

＜この項の構成＞

(1)　性能解析トレースの出力形式と出力内容

(2)　性能解析トレースの取得ポイント

(3)　性能解析トレースの取得方法と出力先

(1)　性能解析トレースの出力形式と出力内容

(a)　出力形式

性能解析トレースファイルに出力される形式は，Cosminexusの性能解析トレースと同様です。詳細は，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「4.6　性能解析トレース」を参照してください。

(b)　出力される内容

性能解析トレースファイルに出力される内容を次の表に示します。

表22-31　性能解析トレースファイルに出力される内容（FTP受付）

項目
内容

イベントID
取得ポイントのイベントIDが出力されます。
取得ポイントの詳細は，次の個所を参照してください。

「(2) 性能解析トレースの取得ポイント」

リターンコード
取得ポイント種別が出力されます。

0：正常終了

1：異常終了

インターフェース名
クラス名が出力されます。

オペレーション名
メソッド名が出力されます。

オプション情報
次のオプション情報が出力されます。

受付名

受付ID

リクエストID

サービス名

サービスオペレーション名

例外名（障害発生時だけ）

(2)　性能解析トレースの取得ポイント

性能解析トレースの取得ポイントを次の図に示します。

図22-13　性能解析トレースの取得ポイント（FTP受付）

イベントID，トレース取得ポイント，および性能解析トレース取得レベルを次の表に示します。表の「図中の番号」は，図22-13中の番号と対応しています。

表22-32　性能解析トレースの取得ポイント（FTP受付）

イベントID
図中の番号
トレース取得ポイント
レベル

0x9870
1
カスタム受付の入口
A

0x9871
2
カスタム受付の出口
A

0x9872
3
カスタム受付フレームワークの呼び出し口
B

0x9873
4
カスタム受付フレームワークの応答受信口
B

0x9874
5

PUTオペレーションの場合

ビジネスプロセスの呼び出し後，作業ディレクトリの削除前

GETオペレーションの場合

FTPクライアントへのファイルデータ転送後，作業ディレクトリの削除前

GETINFOオペレーションの場合

FTPクライアントへのリストデータ転送後，作業ディレクトリの削除前

A

0x9860
6
カスタム受付フレームワークの入口
A

0x9861
7
カスタム受付フレームワークの出口
A

0x9864
8
HCSCメッセージ配送制御の呼び出し口
A

0x9865
9
HCSCメッセージ配送制御の応答受信口
A

（凡例）

A：標準

B：詳細

(3)　性能解析トレースの取得方法と出力先

性能解析トレースを取得するには設定が必要です。設定の詳細は，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「4.6　性能解析トレース」を参照してください。

23.　旧バージョンからの移行（FTPアダプタ）

この章では，FTPアダプタをバージョンアップする場合の，旧バージョンからの移行方法について説明します。

＜この章の構成＞

23.1　インストール

23.2　定義の移行

23.1　インストール

旧バージョンのFTPアダプタに，上書きインストールする手順を次に示します。

FTPアダプタが登録されているHCSCサーバを停止します。

既存のインストールディレクトリをバックアップします。

新バージョンのFTPアダプタを上書きインストールします。

23.2　定義の移行

運用中のFTPアダプタをバージョンアップするには，カスタムアダプタの構成内容を入れ替えます。ここでは，バージョンアップ時の移行方法について説明します。

＜この節の構成＞

23.2.1　移行の流れ

23.2.2　移行手順（開発環境）

23.2.1　移行の流れ

最初に，開発環境でFTPアダプタを用いたカスタムアダプタ定義を変更して，再パッケージングとリポジトリのエクスポートを行います。

次に，運用環境で旧バージョンのFTPアダプタの停止および削除を行い，リポジトリのインポートを行います。そのあと，変更したカスタムアダプタを実行環境に再配備します。J2EEサーバは再起動してください。

FTPアダプタのバージョンアップ時の移行手順を次の図に示します。

図23-1　バージョンアップ時の移行手順

23.2.2　移行手順（開発環境）

開発環境で電文フォーマット定義ファイルおよびユーティリティクラスに定義されているadpftppc.jar（プロトコルコンバータアーカイブファイル）を新しいものに入れ替える手順を次に示します。

なお，電文フォーマット定義ファイルおよびadpftppc.jarの格納場所については，「18.3.3　FTPアダプタを追加する」を参照してください。

＜この項の構成＞

(1)　電文フォーマット定義ファイルの入れ替え

(2)　ユーティリティクラスのadpftppc.jarの入れ替え

(1)　電文フォーマット定義ファイルの入れ替え

FTPアダプタのサービスアダプタ定義（基本）画面で，電文フォーマット定義ファイルを入れ替える手順を次に示します。

ツリービューのサービス定義一覧で，移行するFTPアダプタをダブルクリックします。
サービスアダプタ定義（基本）画面が表示されます。

要求電文のサービス部品の電文フォーマットで［参照］ボタンをクリックします。

新しいバージョンの要求電文フォーマット定義ファイルを選択します。

応答電文のサービス部品の電文フォーマットで［参照］ボタンをクリックします。

新しいバージョンの応答電文フォーマット定義ファイルを選択します。

(2)　ユーティリティクラスのadpftppc.jarの入れ替え

FTPアダプタのサービスアダプタ定義（詳細）画面で，ユーティリティクラスに定義されているadpftppc.jar（プロトコルコンバータアーカイブファイル）を入れ替える手順を次に示します。

ツリービューのサービス定義一覧で，移行するFTPアダプタをダブルクリックします。
サービスアダプタ定義（基本）画面が表示されます。

画面下部の［サービスアダプタ定義（詳細）］タブをクリックします。
サービスアダプタ定義（詳細）画面が表示されます。

ユーティリティクラスの一覧から「adpftppc.jar」を選択して，［削除］ボタンをクリックします。
一覧から「adpftppc.jar」が削除されます。

ユーティリティクラスの［追加］ボタンをクリックします。

新しいバージョンの「adpftppc.jar」を選択します。

付録

＜この付録の構成＞

付録A　旧バージョンからの移行

付録B　評価版からの移行

付録C　上流設計ツールを利用したシステムの開発

付録D　上流設計ツールを利用したシステムの開発例

付録E　上流設計ツールとの連携で使用するBPELのサポート範囲

付録F　カスタムアダプタ開発フレームワーク

付録G　カスタム受付

付録H　サービスリクエスタのエミュレーション

付録I　文字コード変換UOCを利用した文字コード変換

付録J　外部ツール実行機能を利用したコマンドの実行

付録K　DBアダプタで取得したデータのフォーマットの変換例

付録L　DBアダプタ定義支援機能を利用したDBアダプタの定義

付録M　外部バインディングファイルを利用したWSDLのカスタマイズ

付録N　このマニュアルの参考情報

付録O　用語解説

付録A　旧バージョンからの移行

旧バージョンの開発環境で使用していたリポジトリ情報を，バージョンアップ後も使用する場合のバージョンアップ方法について説明します。

なお，バージョンアップ前に使用していたリポジトリ情報をそのまま使用して，バージョンアップ後も運用する場合のバージョンアップ方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「付録G　旧バージョンからの移行」を参照してください。

注意

08-10以前の開発環境で使用していたリポジトリ情報は，SOAP 1.1モードの場合だけ移行できます。08-50以降はSOAP 1.1モードおよびSOAP 1.1/1.2併用モードの場合に移行できます。

＜この節の構成＞

付録A.1　移行の対象となるバージョン

付録A.2　旧バージョンからの移行手順

付録A.3　旧バージョンで開発環境と運用環境のリポジトリを共有していた場合の移行手順

付録A.1　移行の対象となるバージョン

リポジトリ情報の移行の対象となる旧バージョンを次に示します。これらのバージョンのリポジトリ情報を移行して，開発環境を08-70にバージョンアップできます。

uCosminexus Service Architect　07-10

uCosminexus Service Architect　07-20

uCosminexus Service Architect　07-50

uCosminexus Service Architect　07-60

uCosminexus Service Architect　08-00

uCosminexus Service Architect　08-10

uCosminexus Service Architect　08-50

uCosminexus Service Architect　08-51

uCosminexus Service Architect　08-53

付録A.2　旧バージョンからの移行手順

次の図に示す(1)～(6)の手順に従って，Cosminexus サービスプラットフォーム（開発環境）を旧バージョンから08-70へ移行してください。

図A-1　旧バージョンからの移行手順

図A-1の(1)～(6)の手順の詳細を次に示します。

＜この項の構成＞

(1)　リポジトリのエクスポート

(2)　HCSCTEプロジェクトの削除

(3)　開発環境のアンインストール

(4)　開発環境のインストール

(5)　HCSCTEプロジェクトの作成

(6)　リポジトリのインポート

(1)　リポジトリのエクスポート

バージョンアップ前の開発環境のリポジトリをエクスポートして，いったん退避します。複数のリポジトリを使用している場合，必要なリポジトリをすべてエクスポートして，退避します。

リポジトリのエクスポート方法の詳細については，「3.2.2　リポジトリをエクスポートする」を参照してください。

(2)　HCSCTEプロジェクトの削除

HCSCTEプロジェクトをいったん削除します。

手順の詳細は，「3.1.4　プロジェクトを削除する」を参照してください。

(3)　開発環境のアンインストール

開発環境で旧バージョンのCosminexus サービスプラットフォームをアンインストールします。Cosminexus以下のディレクトリ情報を退避したあとに，旧バージョンのCosminexus サービスプラットフォームをアンインストールすることをお勧めします。

注意

J2EEサーバ，Management Server，PRFなど実行環境の構成要素を停止してからアンインストールしてください。

組み込みデータベースを使用している場合，組み込みデータベースを停止してからアンインストールしてください。

(4)　開発環境のインストール

開発環境で08-70のCosminexus サービスプラットフォームをインストールしてバージョンアップします。

(5)　HCSCTEプロジェクトの作成

バージョンアップした開発環境で，新たにHCSCTEプロジェクトを作成します。また，リポジトリとして利用するディレクトリを指定します。なお，リポジトリとして利用するディレクトリには，運用環境のリポジトリを指定しないでください。

手順の詳細は，「3.1.1　プロジェクトを作成する」を参照してください。

(6)　リポジトリのインポート

「付録A.2(1) リポジトリのエクスポート」でエクスポートしたリポジトリ情報を開発環境にインポートします。インポートするときは，Eclipseのメニューの［プロジェクト］－［自動的にビルド］をオフにしてから，リポジトリをインポートしてください。リポジトリのインポート終了後は，オンに戻してください。

旧バージョンのリポジトリをインポートすると，パッケージングおよび配備定義が自動で実施され，リポジトリ情報が今バージョンに引き継がれます。なお，パッケージングおよび配備定義が自動で実施されるのは，旧バージョンでパッケージングおよび配備定義したサービスアダプタ，ビジネスプロセス，およびユーザ定義受付だけです。旧バージョンのDBアダプタは使用しないで，新規に追加してください。DBアダプタを新規に追加する方法については，「5.2.2　DBアダプタを新規に追加する」を参照してください。

リポジトリのインポート方法については，「3.2.3　リポジトリをインポートする」を参照してください。

注意

07-50より前のバージョンから移行する場合の注意

サービスアダプタ（SessionBean）のユーザ定義クラスに次のファイル名が設定されているときは，警告メッセージが表示されます。

csmsvcadpdef.jar

cscmsg_adpejb.jar

警告メッセージが表示された場合，サービスアダプタ定義画面で，上記のユーザ定義クラスを削除し，ファイル名を変更してから，再度設定してください。

07-60以降のバージョンから移行する場合の注意

07-60以降のバージョンから移行する場合，実行環境に配備するサービスアダプタおよびユーザ定義受付は，開発環境にインポートして再度パッケージングしてください。サービスアダプタを再度パッケージングしないと，メッセージKDEC03007-Eが出力されないことがあります。また，ユーザ定義受付を再度パッケージングしないと，メッセージKDEC00001-Eで不正な埋字が出力されることがあります。パッケージングの方法については，「9.2　パッケージング」を参照してください。

08-10より前のバージョンから移行する場合の注意

データ変換定義で，sequence要素またはchoice要素下に，出現回数が1回に固定されている次の要素（コンポジタ）を定義している場合，ノードの表示が変更されるため，マッピング定義ファイルで使用しているXML Schemaが変更されている旨のエラーメッセージが表示されます。

sequence

choice

エラーメッセージが表示された場合は，再度マッピング定義を起動し，変更を反映させてください。

メモリについての注意

旧バージョンのリポジトリをインポートするときは，メモリを多く必要とします。そのため，次の手順でメモリサイズが十分かどうかを確認し，メモリが不足している場合は，メモリサイズを増やしてからリポジトリをインポートしてください。

Eclipseのメニューから，［MyEclipse］－［ユーティリティー］－［ガーベッジ・コレクションの実行］を選択します。

［メモリー使用量(MB)］ダイアログの［ガーベッジ・コレクション後］に表示されている，「最大許容メモリー・サイズ」および「メモリー使用量」を確認します。

次の条件に当てはまる場合，eclipse.iniを編集し，推奨値に従ってメモリサイズ（-Xmxの値）を大きくします。条件に当てはまらない場合，対処は不要です。eclipse.iniの編集については，マニュアル「Cosminexus アプリケーションサーバ アプリケーション開発ガイド」の「付録B.1　インストール」を参照してください。
条件：「メモリー使用量」+定義済みサービス部品数×3 ＞ 「最大許容メモリー・サイズ」
推奨値：変更後の「-Xmx」の値 = 定義済みサービス部品数×3 +変更前の「-Xmx」の値

開発環境にインポートしたリポジトリ情報を使用して実際に運用する場合，このリポジトリ情報を開発環境から運用環境にエクスポートし，運用環境からHCSCコンポーネントを配備します。

付録A.3　旧バージョンで開発環境と運用環境のリポジトリを共有していた場合の移行手順

バージョン07-60以降では，開発環境と運用環境で同じリポジトリを共有できません。開発環境と運用環境で同じリポジトリを共有していた場合，次の図に示す(1)～(6)の手順に従って，Cosminexus サービスプラットフォームを旧バージョンから08-70へ移行してください。

図A-2　旧バージョンからの移行手順（開発環境と運用環境のリポジトリを共有していた場合）

図A-2の(1)～(6)の手順の詳細を次に示します。

＜この項の構成＞

(1)　リポジトリのエクスポート（運用環境）

(2)　HCSCTEプロジェクトの削除（開発環境）

(3)　各環境のアンインストール

(4)　各環境のインストール

(5)　HCSCTEプロジェクトの作成（開発環境）

(6)　リポジトリのインポート（開発環境）

(1)　リポジトリのエクスポート（運用環境）

cscrepctlコマンド（-exportオプション）を運用環境で実行して，バージョンアップ前のリポジトリをエクスポートします。複数のリポジトリを使用している場合，必要なリポジトリをすべてエクスポートして，退避します。

(2)　HCSCTEプロジェクトの削除（開発環境）

HCSCTEプロジェクトをいったん削除します。

手順の詳細は，「3.1.4　プロジェクトを削除する」を参照してください。

(3)　各環境のアンインストール

開発環境，運用環境で旧バージョンのCosminexus サービスプラットフォームをアンインストールします。Cosminexus以下のディレクトリ情報を退避したあとに，旧バージョンのCosminexus サービスプラットフォームをアンインストールすることをお勧めします。

注意

J2EEサーバ，Management Server，PRFなど実行環境の構成要素を停止してからアンインストールしてください。

組み込みデータベースを使用している場合，組み込みデータベースを停止してからアンインストールしてください。

HCSCサーバをアンセットアップしたあとに，リポジトリルート配下を削除してください。

(4)　各環境のインストール

開発環境，運用環境で08-70のCosminexus サービスプラットフォームをインストールしてバージョンアップします。

(5)　HCSCTEプロジェクトの作成（開発環境）

バージョンアップした開発環境で，新たにHCSCTEプロジェクトを作成します。また，リポジトリとして利用するディレクトリを指定します。なお，リポジトリとして利用するディレクトリには，運用環境のリポジトリを指定しないでください。

手順の詳細は，「3.1.1　プロジェクトを作成する」を参照してください。

(6)　リポジトリのインポート（開発環境）

「付録A.3(1) リポジトリのエクスポート（運用環境）」でエクスポートしたリポジトリ情報を開発環境にインポートします。インポートするときは，Eclipseのメニューの［プロジェクト］－［自動的にビルド］をオフにしてから，リポジトリをインポートしてください。リポジトリのインポート終了後は，オンに戻してください。

旧バージョンのリポジトリをインポートすると，パッケージングおよび配備定義が自動で実施され，リポジトリ情報が今バージョンに引き継がれます。なお，パッケージングおよび配備定義が自動で実施されるのは，旧バージョンでパッケージングおよび配備定義したHCSCコンポーネントだけです。

リポジトリのインポート方法については，「3.2.3　リポジトリをインポートする」を参照してください。

注意

07-50より前のバージョンから移行する場合の注意

サービスアダプタ（SessionBean）のユーザ定義クラスに次のファイル名が設定されているときは，警告メッセージが表示されます。

csmsvcadpdef.jar

cscmsg_adpejb.jar

警告メッセージが表示された場合，サービスアダプタ定義画面で，上記のユーザ定義クラスを削除し，ファイル名を変更してから，再度設定してください。

08-10より前のバージョンから移行する場合の注意

データ変換定義で，sequence要素またはchoice要素下に，出現回数が1回に固定されている次の要素（コンポジタ）を定義している場合，ノードの表示が変更されるため，マッピング定義ファイルで使用しているXML Schemaが変更されている旨のエラーメッセージが表示されます。

sequence

choice

エラーメッセージが表示された場合は，再度マッピング定義を起動し，変更を反映させてください。

メモリについての注意

旧バージョンのリポジトリをインポートするときは，メモリを多く必要とします。そのため，次の手順でメモリサイズが十分かどうかを確認し，メモリが不足している場合は，メモリサイズを増やしてからリポジトリをインポートしてください。

Eclipseのメニューから，［MyEclipse］－［ユーティリティー］－［ガーベッジ・コレクションの実行］を選択します。

［メモリー使用量(MB)］ダイアログの［ガーベッジ・コレクション後］に表示されている，「最大許容メモリー・サイズ」および「メモリー使用量」を確認します。

次の条件に当てはまる場合，eclipse.iniを編集し，推奨値に従ってメモリサイズ（-Xmxの値）を大きくします。条件に当てはまらない場合，対処は不要です。eclipse.iniの編集については，マニュアル「Cosminexus アプリケーションサーバ アプリケーション開発ガイド」の「付録B.1　インストール」を参照してください。
条件：「メモリー使用量」+定義済みサービス部品数×3 ＞ 「最大許容メモリー・サイズ」
推奨値：変更後の「-Xmx」の値 = 定義済みサービス部品数×3 +変更前の「-Xmx」の値

開発環境にインポートしたリポジトリ情報を使用して実際に運用する場合，このリポジトリ情報を開発環境から運用環境にエクスポートし，運用環境からHCSCコンポーネントを配備します。

付録B　評価版からの移行

uCosminexus Service Architectの評価版を使用していた場合，評価版の運用環境のリポジトリ情報を製品版の運用環境に移行できます。

注意

プロセスインスタンスの実行履歴，および電文の実行履歴の情報は移行できません。

評価版から製品版への移行の流れを次の図に示します。

図B-1　評価版からの移行の流れ

＜この節の構成＞

(1)　リポジトリのエクスポート

(2)　テスト環境のアンセットアップ

(3)　製品版の上書きインストール

(4)　テスト環境のセットアップ

(5)　リポジトリのインポート

(6)　HCSCコンポーネントの配備・開始

(1)　リポジトリのエクスポート

評価版の運用環境のリポジトリをエクスポートして，いったん退避します。複数のリポジトリを使用している場合，必要なリポジトリをすべてエクスポートして，退避します。

次のコマンドを入力します。

cscrepctl -user admin -pass admin -export <エクスポートするリポジトリのファイル名（拡張子：.zip）>

cscrepctlコマンドの詳細については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscrepctl（インポート/エクスポート）」を参照してください。

(2)　テスト環境のアンセットアップ

評価版の開発環境で構築したテスト環境をアンセットアップします。

テスト環境のアンセットアップ手順については，「2.4.2(2) テスト環境のアンセットアップ」を参照してください。

(3)　製品版の上書きインストール

uCosminexus Service Architectの製品版を上書きインストールします。

注意

J2EEサーバ，Management Server，PRFなど実行環境の構成要素を停止してから上書きインストールしてください。

組み込みデータベースを使用している場合，組み込みデータベースを停止してから上書きインストールしてください。

(4)　テスト環境のセットアップ

開発環境でテスト環境を構築します。

手順の詳細は，「2.4.2(1) テスト環境のセットアップ」を参照してください。

なお，HCSC簡易セットアップ画面（［メイン］タブ）では，評価版のテスト環境のセットアップ時に指定したSOAPモード（SOAP 1.1モードまたはSOAP 1.1/1.2併用モード）と同じSOAPモードを選択してください。異なるSOAPモードを選択した場合，正常に動作しないおそれがあります。

(5)　リポジトリのインポート

エクスポートしたリポジトリ情報を運用環境にインポートします。

次のコマンドを入力します。

cscrepctl -user admin -pass admin -import <インポートするリポジトリのファイル名（拡張子：.zip）>

インポートしたリポジトリ情報を使用して開発する場合，このリポジトリ情報を開発環境にインポートします。

開発環境にリポジトリをインポートする手順については，「3.2.3　リポジトリをインポートする」を参照してください。

(6)　HCSCコンポーネントの配備・開始

HCSCサーバを起動して，インポートしたHCSCコンポーネントを配備・開始します。

次のコマンドを入力して，HCSCサーバを起動します。

cscsvstart -user admin -pass admin -system

次のコマンドを入力して，HCSCサーバにHCSCコンポーネントを配備します。

csccompodeploy -user admin -pass admin -csc MyCSC -all

次のコマンドを入力して，配備したHCSCコンポーネントを起動します。

csccompostart -user admin -pass admin -csc MyCSC -all

次のコマンドを入力して，標準受付を開始します。

cscrcptnstart -user admin -pass admin -csc MyCSC

付録C　上流設計ツールを利用したシステムの開発

Cosminexus サービスプラットフォームの開発環境は，BPELをサポートした上流設計ツールと連携してビジネスプロセスを開発できます。上流設計ツールの多くは，BPMNなどのわかりやすいフロー表記法をサポートしているため，システム開発の上流工程で顧客を交えてビジネスプロセスを検討できるといった特長があります。

ここでは，上流設計ツールとCosminexus サービスプラットフォームを組み合わせてシステムを開発する方法について説明します。

＜この節の構成＞

付録C.1　上流設計ツールを利用したシステム開発の概要

付録C.2　上流設計ツールを利用したシステム開発の流れ

付録C.3　上流設計ツール利用時の前提事項

付録C.4　上流設計ツール利用時のトラブルシューティング

付録C.1　上流設計ツールを利用したシステム開発の概要

上流設計ツールとCosminexus サービスプラットフォームを組み合わせた場合のシステム開発の流れと，成果物のイメージを次の図に示します。

図C-1　上流設計ツールとCosminexus サービスプラットフォームを組み合わせたシステム開発

SOAに基づいたシステムの開発は，ビジネスプロセス開発とサービス開発の二つから成り，それぞれの成果物をドリルダウンしながら並行に作業を進めます。

各開発の作業手順とその内容を次の表に示します。

表C-1　ビジネスプロセス開発とサービス開発の開発手順と作業内容

手順
ビジネスプロセス開発の作業
サービス開発の作業

1
●ビジネスプロセスの概要設計（顧客向け）
システム化する業務の内容や範囲を顧客と検討するため，業務の基本フローをハイレベル・ビジネスプロセス，およびミドルレベル・ビジネスプロセスとして作成します。
●サービスの抽出
ビジネスプロセス設計と並行して，業務を処理するサービスの粒度を検討します。

2
●ビジネスプロセスの概要設計（開発向け）
ビジネスプロセスを詳細化し，ローレベル・ビジネスプロセスにします。詳細化では，再利用性や可読性を考慮したフローの階層化や，業務例外への対応，コメントの追加などをします。
●サービスの概要設計
サービスのインターフェース（サービスが公開するオペレーションの一覧）を決定し，概要WSDLを作成します。

3
●ビジネスプロセスの詳細化（開発向け）
サービスの抽出および概要設計の結果を受けて，ビジネスプロセスにメッセージ定義やメッセージ変換の処理を追加します。また，実際に動かすことを想定したシステム例外への対応処理なども追加します。
●サービスの詳細設計
サービスのオペレーションが使用するメッセージの構造やサービスの処理方式を決定し，実装します。

上流設計ツールとCosminexus サービスプラットフォームを組み合わせてシステムを開発する場合，手順1および手順2の範囲で上流設計ツールを使用し，手順3からCosminexus サービスプラットフォームの開発環境を使用します。上流設計ツールから開発環境への設計の引き継ぎは，BPELファイルを通して行います。

付録C.2　上流設計ツールを利用したシステム開発の流れ

上流設計ツールを利用したシステム開発の流れを次の図に示します。「付録D　上流設計ツールを利用したシステムの開発例」では，この流れに沿ってサンプルプログラムを開発します。

図C-2　上流設計ツールを利用したシステム開発の流れ

＜この項の構成＞

(1)　ビジネスプロセスの概要の設計

(2)　サービスの概要インターフェースの検討

(3)　ビジネスプロセスの詳細化

(4)　ビジネスプロセスの出力

(5)　サービスの詳細インターフェースの検討

(6)　サービスアダプタの作成

(7)　ビジネスプロセスのインポート

(8)　ユーザ定義受付の追加

(9)　メッセージのスキーマの登録

(10)　メッセージ変換とシステム例外処理の追加

(1)　ビジネスプロセスの概要の設計

上流設計ツールでハイレベル・ビジネスプロセスを作成します。ハイレベル・ビジネスプロセスに対して顧客と検討を繰り返し，より具体化したミドルレベル・ビジネスプロセスにします。

(2)　サービスの概要インターフェースの検討

ミドルレベル・ビジネスプロセスの検討が終わったら，サービスの概要インターフェースを検討します。また，検討した結果を基に概要WSDLを作成します。

(3)　ビジネスプロセスの詳細化

ビジネスプロセスを詳細化し，ローレベル・ビジネスプロセスにします。Cosminexus サービスプラットフォームに最適なビジネスプロセスとして設計するため，「付録C.3　上流設計ツール利用時の前提事項」に従ってフローを設計してください。

(4)　ビジネスプロセスの出力

上流設計ツールで設計したビジネスプロセスをBPELファイル形式で出力します。このとき，ビジネスプロセスと連携するサービスのWSDLも一緒にまとめておきます。

(5)　サービスの詳細インターフェースの検討

これまでに検討した仕様を踏まえて，各サービスのオペレーションのメッセージ構造を検討します。また，検討した結果を基に，概要WSDLにメッセージ構造の宣言を追加します。

(6)　サービスアダプタの作成

Cosminexus サービスプラットフォームの開発環境で，WSDLからサービスアダプタを作成します。サービスの名前は，WSDLに記載されたポートタイプ（portType）属性と同じにします。サービスアダプタを作成する方法については，「5.2.1　サービスアダプタを新規に追加する」を参照してください。

(7)　ビジネスプロセスのインポート

Cosminexus サービスプラットフォームの開発環境で，「付録C.2(4) ビジネスプロセスの出力」で出力したBPELファイルをビジネスプロセスとしてインポートします。インポートする方法については，「6.2.2　定義済みビジネスプロセスを利用してビジネスプロセスを追加する」を参照してください。

(8)　ユーザ定義受付の追加

ビジネスプロセスにユーザ定義受付を追加します。ユーザ定義受付を追加する方法については，「8.4.1　ユーザ定義受付を新規に追加する」を参照してください。

(9)　メッセージのスキーマの登録

ビジネスプロセスで使用するメッセージ（変数）のスキーマ（構造）を登録します。

(10)　メッセージ変換とシステム例外処理の追加

必要に応じて，ビジネスプロセスにメッセージ変換処理，システム例外の対応処理などを追加します。

付録C.3　上流設計ツール利用時の前提事項

Cosminexus サービスプラットフォーム用のビジネスプロセスを設計するときの前提事項（上流設計ツールを使うときの注意点）について説明します。

＜この項の構成＞

(1)　ビジネスプロセス全体に関する前提事項

(2)　アクティビティに関する前提事項

(3)　メッセージに関する前提事項

(1)　ビジネスプロセス全体に関する前提事項

(a)　インスタンス補正の設定

Cosminexus サービスプラットフォームはインスタンス補正を行いません。上流設計ツールでビジネスプロセスのインスタンス補正を設定できる場合は，「補正無し」を指定してください。設定できない場合は，インスタンス補正されないことを前提にフローを設計してください。

(b)　抽象プロセスの指定

Cosminexus サービスプラットフォームは，実行可能な実装レベルのビジネスプロセスだけ扱うことができます。上流設計ツールでビジネスプロセスを抽象プロセスとして設定できる場合は，「抽象プロセス」として指定しないでください。

(c)　joinFailureフォルトの抑止

Cosminexus サービスプラットフォームは，joinFailureフォルトを常に抑止して動作します。上流設計ツールでjoinFailureフォルトの抑止を設定できる場合は，「抑止する」を指定してください。設定できない場合は，joinFailureフォルトが抑止されることを前提にフローを設計してください。

(2)　アクティビティに関する前提事項

(a)　未サポート要素および属性の使用

BPELインポート機能がサポートしないBPELの要素，および属性は使用しないでください。サポートしていない要素や属性は，取り込みのスキップ，またはほかの要素へ置き換えられるため，意図しないフローに変わることがあります。BPELインポート機能のサポート状況については，「付録E　上流設計ツールとの連携で使用するBPELのサポート範囲」を参照してください。

また，上流設計ツールの各要素（BPMN要素）や設定項目と，BPELの各要素や属性との対応については，BPMN仕様または上流設計ツールのマニュアルを参照してください。

(b)　補償ハンドラの使用

BPELインポート機能は，compensationHandler要素をサポートしていません。BPMNを利用した上流設計ツールで補償マーカを使用すると，compensationHandler要素としてBPELに出力されることがあるため，補償マーカを使用しないで設計することを推奨します。補償マーカを使用しないで同等の設計をする例を示します。

図C-3　補償マーカを使用しないで設計する場合の例

(c)　サービス名の文字種

Cosminexus サービスプラットフォームは，ビジネスプロセスと連携するサービスの名前にNCNameだけ使用できます。上流設計ツールでサービスの名前（BPMNではInterface属性）を設定する場合は，NCNameで値を指定してください。NCName以外の文字が使用されている場合，情報の取り込みが一部スキップされます。

(d)　メッセージの部分指定

上流設計ツールではメッセージの部分指定をしないでください。メッセージの部分指定は，メッセージの構造が確定する必要があるため，開発環境にビジネスプロセス定義を取り込んだあとで指定します。BPELのassignアクティビティなどに部分指定（part）属性を指定した場合，BPELインポート機能によって指定が無視されます。

(3)　メッセージに関する前提事項

(a)　メッセージタイプの指定

上流設計ツールではメッセージの構造を指定しないでください。メッセージの構造は，サービスのインターフェースが確定する必要があるため，開発環境にビジネスプロセスを取り込んだあとで指定します。BPELにメッセージタイプ（messageType）属性を指定した場合，string型の変数に置き換えて取り込まれます。

(b)　タイプの指定

メッセージが基本型（構造を持たない）の場合は，XMLスキーマの名前空間（http://www.w3.org/2001/XMLSchema）に属する型を指定してください。BPELのタイプ（type）属性にそのほかの型を指定した場合，互換性があると推測される型に置き換えて取り込まれます。

付録C.4　上流設計ツール利用時のトラブルシューティング

上流設計ツールで作成したBPELファイルをインポートするときに表示されるメッセージについて，メッセージの詳細と解決方法を説明します。

ここで説明するメッセージの形式を次に示します。

メッセージテキスト

メッセージの説明

出力条件

メッセージの出力条件

対処方法

メッセージの対策および補足事項

メッセージテキスト

Cosminexus サービスプラットフォームが出力したメッセージテキストを示します。

[　]で囲まれた部分はXPathで，{　}で囲まれた部分は値で表示されます。

メッセージの説明

メッセージテキストに対する補足説明を示します。

出力条件

メッセージが出力される条件を示します。

対処方法

メッセージが出力された場合の対処方法，または対処に関する補足事項を示します。

定義されるBPELの要素ごとに，出力されるメッセージを示します。

＜この項の構成＞

(1)　プロセス

(2)　パートナーリンク

(3)　変数・相関セット（変数）

(4)　変数・相関セット（相関セット）

(5)　アクティビティ（receive）

(6)　アクティビティ（reply）

(7)　アクティビティ（assign）

(8)　アクティビティ（invoke）

(9)　アクティビティ（flow）

(10)　アクティビティ（throw）

(11)　アクティビティ（全般）

(12)　ハンドラ（補償ハンドラ）

(13)　ハンドラ（イベントハンドラ）

(14)　ハンドラ（終了ハンドラ）

(15)　ハンドラ（フォルトハンドラ）

(16)　その他

(1)　プロセス

要素[process]の属性targetNamespaceはサポートしていないため反映されません。

Cosminexus サービスプラットフォームでは，常にシステム予約の固定値をtargetNamespace属性値として使用します。targetNamespace属性値を指定しても，BPELファイルのインポート時にシステム予約の固定値に置き換えられます。

出力条件

targetNamespace属性が定義されている場合

対処方法

ビジネスプロセスの実行には影響しません。特に対処の必要はありません。

要素[process]の属性enableInstanceCompensationはサポートしていないため反映されません。

Cosminexus サービスプラットフォームでは，enableInstanceCompensation属性（インスタンス補正）はサポートしていません。そのため，常にenableInstanceCompensation属性に「no」を指定した場合と同じ動作になります。
なお，BPEL1.1の場合，enableInstanceCompensation属性のデフォルト値は「no」です。BPEL2.0の場合，enableInstanceCompensation属性は指定できません。

出力条件

enableInstanceCompensation属性が定義されている場合

対処方法

このメッセージが出力された場合，BPELファイルのenableInstanceCompensation属性の指定を確認し，次の観点で対処してください。

enableInstanceCompensation属性に「no」を指定している場合
Cosminexus サービスプラットフォームと同じ動作になります。特に対処の必要はありません。

enableInstanceCompensation属性に「yes」を指定している場合
BPELファイルのインポート時に，enableInstanceCompensation属性の指定は「no」に置き換えられます。そのため，インスタンス補正を前提にフローを設計している場合は，ビジネスプロセスの実行結果に差異が生じるおそれがあります。インポートしたビジネスプロセスをビジネスプロセスエディタで開いて，ビジネスプロセスが意図した内容に定義されているか見直してください。

インスタンス補正の内容はベンダーに依存します。インスタンス補正を前提にビジネスプロセスを作成した場合，実行時の互換性が保証できないことがあります。

そのため，上流設計の段階からenableInstanceCompensation属性は指定しないか，または「no」を指定して設計してください。

要素[process]の属性abstractProcessはサポートしていないため反映されません。

Cosminexus サービスプラットフォームでは，abstractProcess属性はサポートしていません。Cosminexus サービスプラットフォームは，実行可能な実装レベルのビジネスプロセスを対象としています。そのため，常にabstractProcess属性に「no」を指定した場合と同じ動作になります。
なお，BPEL1.1の場合，abstractProcess属性のデフォルト値は「no」です。BPEL2.0の場合，abstractProcess属性は指定できません。

出力条件

abstractProcess属性が定義されている場合

対処方法

このメッセージが出力された場合，BPELファイルのabstractProcess属性の指定を確認し，次の観点で対処してください。

abstractProcess属性に「no」を指定している場合
Cosminexus サービスプラットフォームと同じ動作になります。特に対処の必要はありません。

abstractProcess属性に「yes」を指定している場合
実行不可能な抽象レベルのビジネスプロセスであるおそれがあります。インポートしたビジネスプロセスをビジネスプロセスエディタで開いて，ビジネスプロセス定義を見直してください。

(2)　パートナーリンク

要素[partnerLinks]はサポートしていないため反映されません。また配下に属性や要素が存在する場合は、それらも反映されません。

Cosminexus サービスプラットフォームでは，partnerLinks属性はサポートしていません。BPELファイルのインポートでは，ビジネスプロセスと外部サービスの関係を表すpartnerLinks要素は取り込みません。

出力条件

partnerLinks要素が定義されている場合

対処方法

ビジネスプロセスの実行には影響しません。特に対処の必要はありません。

Cosminexus サービスプラットフォームでは，BPELファイルのパートナーリンク情報はユーザ定義受付およびサービスアダプタに相当します。

必要に応じて，BPELファイルとセットになったWSDLファイルからユーザ定義受付やサービスアダプタを作成してください。

次に示すメッセージの対処方法も合わせて参照してください。

参照先：付録C.4(5) アクティビティ（receive）
要素[receive]の属性partnerLinkはサポートしていないため反映されません。

参照先：付録C.4(6) アクティビティ（reply）
要素[reply]の属性partnerLinkはサポートしていないため反映されません。

参照先：付録C.4(8) アクティビティ（invoke）
要素[invoke]の属性partnerLinkはサポートしていないため反映されません。

(3)　変数・相関セット（変数）

変数{変数名}はstring型に置き換えました。変数の種別をXMLに変更し、電文フォーマットを登録してください。

BPELファイルのインポートでは，構造を持ったメッセージは変数として取り込みません。
上流設計ツールではメッセージ（変数）の名前だけを指定し，詳細設計に入ってからメッセージの構造を定義してください。

出力条件

variable要素のmessageType属性が定義されている場合

対処方法

BPELファイルをインポートしたあとに，ビジネスプロセスエディタで変数の種別をXMLに変更し，スキーマファイルを指定してください。

変数{変数名}の型{変更前の変数の型}は名前空間"http://www.w3.org/2001/XMLSchema"に属している必要があります。{変更後の変数の型}型として反映されますが、問題ないか確認してください。

XMLスキーマの名前空間で定義されていない型が変数に指定されています。互換性があると推測される型に置き換えて，変数を取り込みました。

出力条件

XMLスキーマの名前空間で定義されていない型が変数に指定されている場合

対処方法

置き換えられた変数の型がビジネスプロセスに影響ないか確認してください。必要に応じて，BPELファイルをインポートしたあとに，ビジネスプロセスエディタで変数の型を見直してください。

(4)　変数・相関セット（相関セット）

要素[correlationSets]はサポートしていないため反映されません。また配下に属性や要素が存在する場合は、それらも反映されません。

BPELファイルのインポートでは，相関セットを定義したcorrelationSets要素は取り込みません。
上流設計ツールでは相関セットを定義しないでください。

出力条件

correlationSets要素が定義されている場合

対処方法

BPELファイルをインポートしたあとに，ビジネスプロセスエディタで相関セットを定義し直してください。

(5)　アクティビティ（receive）

要素[receive]の属性partnerLinkはサポートしていないため反映されません。

BPELファイルのインポートでは，partnerLink属性は取り込みません。

出力条件

partnerLink属性が定義されている場合

対処方法

標準受付を使う範囲では特に気にする必要はありません。

receive要素のpartnerLink属性はCosminexus サービスプラットフォームではユーザ定義受付に相当します。

必要に応じて，BPELファイルをインポートしたあとに，ビジネスプロセスのWSDLファイルからユーザ定義受付を作成してください。

要素[receive]の属性portTypeはサポートしていないため反映されません。

BPELファイルのインポートでは，portType属性は取り込みません。

出力条件

portType属性が定義されている場合

対処方法

portType属性はBPELファイルとWSDLファイルの可読性のために指定する属性です。ビジネスプロセスの実行には影響しません。特に対処の必要はありません。

アクティビティ[receive]のオペレーション名は重複しているため{オペレーション名}に置き換えました。

異なるportType属性値を持つ複数のreceive要素に，同じオペレーション名が指定されています。重複しないように，BPELファイルのインポート時にオペレーション名を置き換えて取り込みました。

出力条件

異なるportType属性値を持つ複数のreceive要素に同じオペレーション名が指定されている場合

対処方法

ビジネスプロセスの実行には影響しません。特に対処の必要はありません。ただし，ビジネスプロセスのWSDLと一致しなくなるおそれがあるため，必要に応じてビジネスプロセスエディタでオペレーション名を変更してください。

receiveアクティビティ[receive]はportTypeとoperationが同一のものが既に存在するため、無操作アクティビティに置き換えました。

同じportType属性値を持つ複数のreceive要素に，同じオペレーション名が指定されています。BPELファイルのインポート時に，二つ目以降のreceive要素を無操作アクティビティに置き換えて取り込みました。

出力条件

同じportType属性値を持つ複数のreceive要素に同じオペレーション名が指定されている場合

対処方法

BPELファイルをインポートしたあとに，無操作アクティビティを適切な受付アクティビティとして再定義してください。

要素[receive]の属性[createInstance]に指定されている値"no"を"yes"に置き換えました。

BPELファイルのインポートでは，receive要素のcreateInstance属性は常に「yes」として取り込みます。

出力条件

createInstance属性が指定されていない場合

createInstance属性に「no」が指定されている場合

対処方法

BPELファイルをインポートしたあとに，受付アクティビティのインスタンス生成を指定し直してください。

要素[correlations]はサポートしていないため反映されません。また配下に属性や要素が存在する場合は、それらも反映されません。

BPELファイルのインポートでは，相関セットを指定したcorrelations要素は取り込みません。上流設計ツールでは相関セットを指定しないでください。

出力条件

correlations要素が定義されている場合

対処方法

BPELファイルをインポートしたあとに，ビジネスプロセスエディタで相関セットを指定してください。

(6)　アクティビティ（reply）

要素[reply]の属性partnerLinkはサポートしていないため反映されません。

BPELファイルのインポートでは，partnerLink属性は取り込みません。

出力条件

partnerLink属性が定義されている場合

対処方法

Cosminexus サービスプラットフォームでは，reply要素のpartnerLink属性はユーザ定義受付に相当します。

必要であれば，BPELファイルをインポートしたあとに，ビジネスプロセスのWSDLファイルからユーザ定義受付を作成してください。

要素[reply]の属性portTypeはサポートしていないため反映されません。

BPELファイルのインポートでは，portType属性は取り込みません。

出力条件

portType属性が定義されている場合

対処方法

portType属性はBPELファイルとWSDLファイルの可読性のために指定する属性です。ビジネスプロセスの実行には影響しません。特に対処の必要はありません。

要素[reply]の属性faultNameに指定されている値{名前空間}:{ローカル名}を{ローカル名}に置き換えました。

Cosminexus サービスプラットフォームでは，デフォルトではフォルトの名前空間をサポートしていません。
BPELファイルにフォルトの名前空間が指定されている場合は，ローカル名だけ取り込みます。

出力条件

faultName属性値に名前空間指定がある場合

対処方法

標準受付を使用する場合，フォルト電文はローカル名だけ保持します。

ユーザ定義受付を使用する場合，フォルト電文は名前空間とローカル名の両方を保持します。

必要に応じて，フォルト電文がビジネスプロセスのインターフェースに従うように，ビジネスプロセスのWSDLファイルからユーザ定義受付を作成してください。

アクティビティ[reply]のオペレーション名は重複しているため{オペレーション名}に置き換えました。

異なるportType属性値を持つ複数のreply要素に，同じオペレーション名が指定されています。重複しないように，BPELファイルのインポート時にオペレーション名を置き換えて取り込みました。

出力条件

異なるportType属性値を持つ複数のreply要素に同じオペレーション名が指定されている場合

対処方法

ビジネスプロセスの実行には影響しません。特に対処の必要はありません。ただし，ビジネスプロセスのWSDLと一致しなくなるおそれがあるため，必要に応じてビジネスプロセスエディタでオペレーション名を変更してください。

要素[correlations]はサポートしていないため反映されません。また配下に属性や要素が存在する場合は、それらも反映されません。

BPELファイルのインポートでは，相関セットを指定したcorrelations要素は取り込みません。上流設計ツールでは相関セットを指定しないでください。

出力条件

correlations要素が定義されている場合

対処方法

BPELファイルをインポートしたあとに，ビジネスプロセスエディタで相関セットを指定してください。

(7)　アクティビティ（assign）

要素[assign/copy/from]の属性partはサポートしていないため反映されません。

BPELファイルのインポートでは，part属性は取り込みません。
上流設計ツールではメッセージ（変数）の名前だけを指定し，詳細設計に入ってからメッセージの構造を定義してください。

出力条件

part属性が定義されている場合

対処方法

BPELファイルをインポートしたあとに，ビジネスプロセスエディタでメッセージの構造定義および部分指定をしてください。

要素[assign/copy/to]の属性partはサポートしていないため反映されません。

BPELファイルのインポートでは，part属性は取り込みません。
上流設計ツールではメッセージ（変数）の名前だけを指定し，詳細設計に入ってからメッセージの構造を定義してください。

出力条件

part属性が定義されている場合

対処方法

BPELファイルをインポートしたあとに，ビジネスプロセスエディタでメッセージの構造定義および部分指定をしてください。

assignアクティビティ[assign]のcopy要素は、copy/fromに定義されている属性がサポートしていない形式であるため反映されません。

assignアクティビティのcopy要素を取り込む場合，copy/from要素の属性が取り込み可能な組み合わせに定義されている必要があります。
取り込み可能な組み合わせについては，「付録E　上流設計ツールとの連携で使用するBPELのサポート範囲」を参照してください。

出力条件

copy/from要素の属性が取り込みできない組み合わせで定義されている場合

対処方法

BPELファイルをインポートしたあとに，assignアクティビティの代入設定を定義し直してください。

assignアクティビティ[assign]のto要素は、copy/toに定義されている属性がサポートしていない形式であるため反映されません。

assignアクティビティのto要素を取り込む場合，copy/to要素の属性が取り込み可能な組み合わせに定義されている必要があります。
取り込み可能な組み合わせについては，「付録E　上流設計ツールとの連携で使用するBPELのサポート範囲」を参照してください。

出力条件

copy/to要素の属性が取り込みできない組み合わせで定義されている場合

対処方法

BPELファイルをインポートしたあとに，assignアクティビティの代入設定を定義し直してください。

(8)　アクティビティ（invoke）

要素[invoke]の属性partnerLinkはサポートしていないため反映されません。

BPELファイルのインポートでは，partnerLink属性は取り込みません。

出力条件

partnerLink属性が定義されている場合

対処方法

Cosminexus サービスプラットフォームでは，invoke要素のpartnerLink属性はサービスアダプタに相当します。

すでにpartnerLink属性に対応するサービスアダプタを作成している場合は，特に対処の必要はありません。

リポジトリ内に該当するサービスまたはオペレーションが存在しないため、invokeアクティビティ[invoke]のportTypeに指定されているサービス名{サービス名}は反映されません。

portType属性およびoperation属性に対応するサービスアダプタがリポジトリにない場合，portType属性は取り込みません。

出力条件

portType属性に対応するサービスアダプタがリポジトリに存在しない場合

portType属性に対応するサービスアダプタがoperation属性に対応するオペレーションを持たない場合

対処方法

対応するサービスアダプタを作成し，呼出アクティビティのサービス名を再設定してください。

リポジトリ内に該当するサービスまたはオペレーションが存在しないため、invokeアクティビティ[invoke]のoperationに指定されているオペレーション名{オペレーション名}は反映されません。

portType属性およびoperation属性に対応するサービスアダプタがリポジトリにない場合，operation属性は取り込みません。

出力条件

portType属性に対応するサービスアダプタがリポジトリに存在しない場合

portType属性に対応するサービスアダプタがoperation属性に対応するオペレーションを持たない場合

対処方法

対応するサービスアダプタを作成し，呼出アクティビティのオペレーション名を再設定してください。

invokeアクティビティ[invoke]に指定されている属性inputVariableの値{変数名}はリポジトリ内に対応するオペレーション{オペレーション名}が存在しないため反映されません。

portType属性およびoperation属性に対応するサービスアダプタがリポジトリにない場合，inputVariable属性は取り込みません。

出力条件

portType属性に対応するサービスアダプタがリポジトリに存在しない場合

portType属性に対応するサービスアダプタがoperation属性に対応するオペレーションを持たない場合

対処方法

対応するサービスアダプタを作成し，呼出アクティビティの要求電文用割当変数を再設定してください。

invokeアクティビティ[invoke]に指定されている属性outputVariableの値{変数名}はリポジトリ内に対応するオペレーション{オペレーション名}が存在しないため反映されません。

portType属性およびoperation属性に対応するサービスアダプタがリポジトリにない場合，outputVariable属性は取り込みません。

出力条件

portType属性に対応するサービスアダプタがリポジトリに存在しない場合

portType属性に対応するサービスアダプタがoperation属性に対応するオペレーションを持たない場合

対処方法

対応するサービスアダプタを作成し，呼出アクティビティの応答電文用割当変数を再設定してください。

invokeアクティビティ[invoke]に指定されている属性outputVariableの値{変数名}はリポジトリ内のサービス{サービス名}のオペレーション{オペレーション名}が非同期のため反映されません。

呼び出し先サービスのオペレーションの通信方法が非同期の場合，応答電文は必要ないため，outputVariable属性は取り込みません。

出力条件

呼び出し先サービスのオペレーションの通信方法が非同期で，outputVariable属性が定義されている場合

対処方法

入力に使用したBPELファイルとWSDLファイルの整合性が取れていないおそれがあります。オペレーションの通信方法が非同期で問題ないか確認してください。

要素[invoke/catch]の属性faultNameはサポートしていないため反映されません。

Cosminexus サービスプラットフォームでは，faultName属性を使用したフォルトの捕捉はサポートしていません。

出力条件

faultName属性が定義されている場合

対処方法

BPELファイルをインポートしたあとに，ビジネスプロセスエディタでフォルトの捕捉を再設定してください。

要素[invoke/catch]の属性faultMessageTypeはサポートしていないため反映されません。

Cosminexus サービスプラットフォームでは，faultMessageType属性を使用したフォルトの捕捉はサポートしていません。

出力条件

faultMessageType属性が定義されている場合

対処方法

BPELファイルをインポートしたあとに，ビジネスプロセスエディタでフォルトの捕捉を再設定してください。

要素[invoke/catch]の属性faultElementはサポートしていないため反映されません。

Cosminexus サービスプラットフォームでは，faultElement属性を使用したフォルトの捕捉はサポートしていません。

出力条件

faultElement属性が定義されている場合

対処方法

BPELファイルをインポートしたあとに，ビジネスプロセスエディタでフォルトの捕捉を再設定してください。

要素[correlations]はサポートしていないため反映されません。また配下に属性や要素が存在する場合は、それらも反映されません。

BPELファイルのインポートでは，相関セットを指定したcorrelations要素は取り込みません。
上流設計ツールでは相関セットを指定しないでください。

出力条件

correlations要素が定義されている場合

対処方法

BPELファイルをインポートしたあとに，ビジネスプロセスエディタで相関セットを指定してください。

(9)　アクティビティ（flow）

要素[flow/links]はサポートしていないため反映されません。また配下に属性や要素が存在する場合は、それらも反映されません。

BPELファイルのインポートでは，リンクを指定したlinks要素は取り込みません。
上流設計ツールではリンクを指定しないでください。

出力条件

links要素が定義されている場合

対処方法

BPELファイルをインポートしたあとに，ビジネスプロセスエディタでリンクを指定してください。

(10)　アクティビティ（throw）

要素[throw]の属性faultNameはサポートしていないため反映されません。

Cosminexus サービスプラットフォームでは，faultName属性を使用したフォルトの送出をサポートしていません。

出力条件

faultName属性が定義されている場合

対処方法

BPELファイルをインポートしたあとに，ビジネスプロセスエディタでフォルトの送出を設定してください。

(11)　アクティビティ（全般）

アクティビティ[someElement]の名称は重複しているため{新しい名称}に置き換えました。

Cosminexus サービスプラットフォームでは，アクティビティの名前（name属性）を重複して指定できません。
BPELファイルのインポート時にアクティビティの名前が重複している場合，アクティビティの名前の末尾に数値を追加して取り込みます。数値は1から順番に指定されます。

出力条件

アクティビティの名前（name属性）が重複している場合

対処方法

アクティビティの名前は運用環境の実行履歴や実行環境のログ出力に使用されます。必要に応じて，アクティビティの名前を変更してください。

要素[someElement]はサポートしていないため無操作アクティビティに置き換えました。また配下に属性や要素が存在する場合は、それらも反映されません。

Cosminexus サービスプラットフォームでは，[someElement]で表されるアクティビティはサポートしていません。
BPELファイルのインポート時に，[someElement]を無操作アクティビティに置き換えて取り込みました。

出力条件

サポートしていないアクティビティが定義されている場合

対処方法

Cosminexus サービスプラットフォームがサポートするアクティビティに，処理を置き換えてください。

(12)　ハンドラ（補償ハンドラ）

要素[compensationHandler]はサポートしていないため反映されません。また配下に属性や要素が存在する場合は、それらも反映されません。

Cosminexus サービスプラットフォームでは，compensationHandler要素はサポートしていません。

出力条件

compensationHandler要素が定義されている場合

対処方法

Cosminexus サービスプラットフォームがサポートするアクティビティに，処理を置き換えてください。

(13)　ハンドラ（イベントハンドラ）

要素[eventHandler]はサポートしていないため反映されません。また配下に属性や要素が存在する場合は、それらも反映されません。

Cosminexus サービスプラットフォームでは，eventHandler要素はサポートしていません。

出力条件

eventHandler要素が定義されている場合

対処方法

Cosminexus サービスプラットフォームがサポートするアクティビティに，処理を置き換えてください。

(14)　ハンドラ（終了ハンドラ）

要素[terminationHandler]はサポートしていないため反映されません。また配下に属性や要素が存在する場合は、それらも反映されません。

Cosminexus サービスプラットフォームでは，terminationHandler要素はサポートしていません。

出力条件

terminationHandler要素が定義されている場合

対処方法

Cosminexus サービスプラットフォームがサポートするアクティビティに，処理を置き換えてください。

(15)　ハンドラ（フォルトハンドラ）

faultHandlers[faultHandlers]はcatch/catchAllが定義されていないため、反映されません。

catchまたはcatchAllが一つ以上定義されていないフォルトハンドラは取り込みません。

出力条件

faultHandler要素にcatch要素またはcatchAll要素が一つ以上定義されていない場合

対処方法

ビジネスプロセスの実行には影響しません。特に対処の必要はありません。

要素[faultHandlers/catch]の属性faultNameはサポートしていないため反映されません。

Cosminexus サービスプラットフォームでは，faultName属性を使用したフォルトの捕捉はサポートしていません。

出力条件

faultName属性が定義されている場合

対処方法

BPELファイルをインポートしたあとに，ビジネスプロセスエディタでフォルトの捕捉を再設定してください。

要素[faultHandlers/catch]の属性faultMessageTypeはサポートしていないため反映されません。

Cosminexus サービスプラットフォームでは，faultMessageType属性を使用したフォルトの捕捉はサポートしていません。

出力条件

faultMessageType属性が定義されている場合

対処方法

BPELファイルをインポートしたあとに，ビジネスプロセスエディタでフォルトの捕捉を再設定してください。

要素[faultHandlers/catch]の属性faultElementはサポートしていないため反映されません。

Cosminexus サービスプラットフォームでは，faultElement属性を使用したフォルトの捕捉はサポートしていません。

出力条件

faultElement属性が定義されている場合

対処方法

BPELファイルをインポートしたあとに，ビジネスプロセスエディタでフォルトの捕捉を再設定してください。

(16)　その他

要素[someElement]の属性suppressJoinFailureに指定されている値noをyesに置き換えました。

Cosminexus サービスプラットフォームでは，suppressJoinFailure属性はサポートしていません。そのため，常にbpws:joinFailureフォルトは抑止され，suppressJoinFailure属性に「yes」を指定した場合と同じ動作になります。
なお，BPEL1.1およびBPEL2.0の場合，suppressJoinFailure属性のデフォルト値は「no」です。

出力条件

suppressJoinFailure属性が指定されていない場合

suppressJoinFailure属性に「no」が指定されている場合

対処方法

BPELファイルのインポート時に，suppressJoinFailure属性の指定は「yes」に置き換えられます。そのため，ビジネスプロセスの実行結果に差異が生じるおそれがあります。BPELファイルをビジネスプロセスエディタで開いて，ビジネスプロセスが意図した内容に定義されているか見直してください。

注

suppressJoinFailure属性の値によって，ビジネスプロセスの動作が異なります。

Cosminexus サービスプラットフォームでは，常にsuppressJoinFailure属性が「yes」として動作するため，アクティビティのjoinCondition が満たされない場合，ビジネスプロセスは直ちに再開できない中断状態になります。

suppressJoinFailure属性が「no」として動作する環境では，joinConditionが満たされない場合，bpws:joinFailureフォルトがスローされても，ビジネスプロセス定義に従って処理を続行します。

suppressJoinFailure属性の指定とbpws:joinFailureの関係を次の図に示します。

図C-4　suppressJoinFailure属性の指定とbpws:joinFailureの関係

suppressJoinFailure属性が"no"の場合：

（1）のjoinFailureが発生したときは，joinFailureが上位のスコープに伝播されます。この例では，スコープY→スコープX→プロセスの順に伝播しますが，スコープXのFaultHandlerでjoinFailureのエラー処理が行われ，処理が継続されます。

（2）のjoinFailureが発生したときは，プロセスの上位に伝播しようとしますが，joinFailureを捕捉するものがないため，ビジネスプロセスが停止します。このとき，ビジネスプロセスは再開可能な中断状態になります。

suppressJoinFailure属性が"yes"の場合：

（1）のjoinFailureが発生したときは，joinFailureの伝播が抑止され，ビジネスプロセスは再開不能な中断状態になります。

（2）のjoinFailureが発生したときも，joinFailureの伝播が抑止され，ビジネスプロセスは再開不能な中断状態になります。

要素[someElement]の属性queryLanguageはサポートしていないため反映されません。

Cosminexus サービスプラットフォームでは，queryLanguage属性はサポートしていません。クエリ言語として常にXPath1.0を使用します。Cosminexus サービスプラットフォームのXPath1.0は，一部独自の拡張があります。
なお，BPEL1.1およびBPEL2.0の場合，クエリのデフォルト値はXPath1.0です。

出力条件

queryLanguage属性が定義されている場合

対処方法

上流設計ツールでクエリを使用していない場合は，特に対処の必要はありません。

XPath1.0以外のクエリ言語を使用している場合は，BPELファイルをインポートしたあとに，ビジネスプロセスエディタでクエリの指定を修正してください。

要素[someElement]の属性expressionLanguageはサポートしていないため反映されません。

Cosminexus サービスプラットフォームでは，expressionLanguage属性はサポートしていません。式言語として常にXPath1.0を使用します。Cosminexus サービスプラットフォームのXPath1.0は，一部独自の拡張があります。
なお，BPEL1.1およびBPEL2.0の場合，式のデフォルト値はXPath1.0です。

出力条件

expressionLanguage属性が定義されている場合

対処方法

上流設計ツールで式を使用していない場合は，特に対処の必要はありません。

XPath1.0以外の式を使用している場合は，BPELファイルをインポートしたあとに，ビジネスプロセスエディタで式の指定を修正してください。

要素[someElement]にアクティビティが定義されていないため、無操作アクティビティを追加しました。

子要素を持つことができるBPEL要素（whileアクティビティなど）に子要素が一つ以上定義されていない場合，BPELファイルのインポート時に，無操作アクティビティを子要素として追加します。

出力条件

[someElement]のactivity要素が子要素を持たない場合

対処方法

ビジネスプロセスの実行には影響しません。特に対処の必要はありません。

要素[someElement]はサポートしていないため反映されません。また配下に属性や要素が存在する場合は、それらも反映されません。

Cosminexus サービスプラットフォームでは，[someElement]で表されるBPEL要素はサポートしていません。

出力条件

サポートしていない要素が定義されている場合

対処方法

Cosminexus サービスプラットフォームがサポートする機能に，処理を置き換えてください。

要素[someElement]の属性[someAttribute]はサポートしていないため反映されません。

Cosminexus サービスプラットフォームでは，[someAttribute]で表されるBPEL属性はサポートしていません。

出力条件

サポートしていない属性が定義されている場合

対処方法

Cosminexus サービスプラットフォームがサポートする機能に，処理を置き換えてください。

付録D　上流設計ツールを利用したシステムの開発例

上流設計ツールとCosminexus サービスプラットフォームを連携したシステム開発の例を説明します。開発するシステムの概要，および使用する上流設計ツールを次に示します。

開発するシステムの概要

Cosminexus サービスプラットフォームに付属している「商品手配サンプルプログラム」と同じものを開発します。「商品手配サンプルプログラム」は，リクエスタからの要求に基づいて，注文商品の在庫引当や配送手配を行います。処理内容については，マニュアル「Cosminexus サービスプラットフォーム サンプルプログラムガイド」の「2.3.3　プロセス統合パターン」を参照してください。

使用する上流設計ツール

Process Modeler

（Process Modeler 5 for Microsoft Visio Professional Edition）

＜この節の構成＞

付録D.1　ビジネスプロセスの概要を設計する

付録D.2　サービスの概要インターフェースを検討する

付録D.3　ビジネスプロセスを詳細化する

付録D.4　ビジネスプロセスを出力する

付録D.5　サービスの詳細インターフェースを検討する

付録D.6　サービスアダプタを作成する

付録D.7　ビジネスプロセスをインポートする

付録D.8　ユーザ定義受付を追加する

付録D.9　メッセージのスキーマを登録する

付録D.10　メッセージ変換とシステム例外処理を追加する

付録D.1　ビジネスプロセスの概要を設計する

業務の基本フローをハイレベル・ビジネスプロセスとして作成し，作成したハイレベル・ビジネスプロセスを具体化します。

＜この項の構成＞

(1)　ハイレベル・ビジネスプロセスを作成する

(2)　ミドルレベル・ビジネスプロセスを作成する

(1)　ハイレベル・ビジネスプロセスを作成する

上流設計ツールでハイレベル・ビジネスプロセスを作成します。商品手配サンプルプログラムのビジネスプロセスの場合，システム化する業務は在庫引当と配送手配の二つのタスクなので，これを基本フローとして記述します。

商品手配サンプルプログラムのハイレベル・ビジネスプロセスの記述例を次に示します。

図D-1　ハイレベル・ビジネスプロセスの記述例

(2)　ミドルレベル・ビジネスプロセスを作成する

作成したハイレベル・ビジネスプロセスを具体化し，業務全体の流れが把握できるミドルレベル・ビジネスプロセスを作成します。ここでは，在庫引当タスクのあとに排他ゲートウェイを追加し，手配を受けた商品の在庫がない場合の業務エラーフローを追加します。作成したビジネスプロセスに対して顧客と検討を繰り返し，検討不足の業務フローや改善点があればブラッシュアップします。

商品手配サンプルプログラムのミドルレベル・ビジネスプロセスの記述例を次に示します。

図D-2　ミドルレベル・ビジネスプロセスの記述例

商品手配サンプルプログラムでは，次の表に示す要素でビジネスプロセスを実現することにします。

表D-1　商品手配ビジネスプロセスを構成する要素

項番 | 名前 | 要素の種類 | 備考
1 | 受付 | 開始ノード |
2 | 在庫引当 | タスク |
3 | － | 排他ゲートウェイ | 在庫引当の結果を判定
4 | 配送手配 | タスク |
5 | 応答_手配成功 | 終了ノード | 配送手配が成功したときの終了ノード
6 | 応答_在庫なしエラー | 終了ノード | 在庫がなかったときの終了ノード

（凡例）

－：名前はありません。

空欄：備考として説明する内容はありません。

また，この段階でサービスの粒度も検討します。ここでは，次の表に示すように在庫引当タスクと配送手配タスクをそれぞれ一つのサービスで実現することにします。

表D-2　サービスの粒度の検討

項番 | タスク | サービス（実装時のサービス名）
1 | 在庫引当 | 在庫引当サービス（InventoryManager）
2 | 配送手配 | 配送手配サービス（Delivery）

付録D.2　サービスの概要インターフェースを検討する

ミドルレベル・ビジネスプロセスの検討が終わったら，サービスの概要インターフェースを検討し，検討した結果を基に概要WSDLを作成します。検討するサービスを次に示します。

在庫引当サービス（InventoryManager）

配送手配サービス（Delivery）

商品手配ビジネスプロセス （ArrangementService）

＜この項の構成＞

(1)　概要インターフェースを検討する

(2)　概要WSDLを作成する

(1)　概要インターフェースを検討する

最初に，サービスの概要インターフェースを検討します。次の図のように，サービスリクエスタから見ると商品手配ビジネスプロセス自体もサービスになるため，概要インターフェースの検討対象になります。

図D-3　サービスのコンポーネント構成

商品手配サンプルプログラムでは，次の図および次の表のように概要インターフェースを決定したものとします。

図D-4　サービスの概要インターフェース

表D-3　概要インターフェースの詳細

項番
サービス名
提供オペレーション名
（オペレーションの内容）
要求メッセージ名
応答メッセージ名

1
在庫引当サービス
reserveItem
（商品を在庫引当する）
reserveItemRequest
reserveItemResponse

2
配送手配サービス
deliverItem
（商品を配送する）
deliverItemRequest
deliverItemResponse

3
商品手配ビジネスプロセス
arrangeItem
（商品を手配し配送する）
arrangeItemRequest
arrangeItemResponse

(2)　概要WSDLを作成する

概要インターフェースが決定したら，概要WSDLを作成します。商品手配サンプルプログラムでは，サービスごとに次の表に示す名前でWSDLファイルを作成します。

表D-4　サービスごとのWSDLファイルの名前

項番 | サービス名 | WSDLファイルの名前
1 | 在庫引当サービス | InventoryManagementService.wsdl
2 | 配送手配サービス | DeliveryService.wsdl
3 | 商品手配ビジネスプロセス | ArrangementService.wsdl

概要WSDLを作成するときのポイントは次のとおりです。

概要WSDL作成のポイント

サービス名をwsdl:portのname属性に記述する。

提供オペレーション名をwsdl:operationのname属性に記述する。

要求メッセージ名をwsdl:inputのname属性に記述する。

応答メッセージ名をwsdl:outputのname属性に記述する。

メッセージの構造は記述しない。
（ルート要素だけを宣言し，型はxsd:stringなどの基本型にする。）

在庫引当サービスのWSDL（InventoryManagementService.wsdl）の例を次に示します。WSDL中の太字は「概要WSDL作成のポイント」で示した部分の記述を表します。

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
     targetNamespace="http://sample/InventoryManagementService"
     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns:ims="http://sample/InventoryManagementService">

  <wsdl:types>
     <xsd:schema
           targetNamespace="http://sample/InventoryManagementService"
           elementFormDefault="qualified">
        <xsd:element name="reserveItem" type="xsd:string" />
        <xsd:element name="reserveItemResponse" type="xsd:string" />
     </xsd:schema>
  </wsdl:types>

  <wsdl:message name="reserveItemRequest">
     <wsdl:part name="parameters" element="ims:reserveItem" />
  </wsdl:message>

  <wsdl:message name="reserveItemResponse">
     <wsdl:part name="parameters" element="ims:reserveItemResponse" />
  </wsdl:message>

  <wsdl:portType name="InventoryManager">
     <wsdl:operation name="reserveItem">
        <wsdl:input message="ims:reserveItemRequest" name="reserveItemRequest" />
        <wsdl:output message="ims:reserveItemResponse" name="reserveItemResponse" />
     </wsdl:operation>
  </wsdl:portType>

  <wsdl:binding name="InventoryManagerSoapBinding" type="ims:InventoryManager">
     <soap:binding style="document"
           transport="http://schemas.xmlsoap.org/soap/http" />
     <wsdl:operation name="reserveItem">
        <soap:operation soapAction="" />
        <wsdl:input name="reserveItemRequest">
           <soap:body use="literal" />
        </wsdl:input>
        <wsdl:output name="reserveItemResponse">
           <soap:body use="literal" />
        </wsdl:output>
     </wsdl:operation>
  </wsdl:binding>

  <wsdl:service name="InventoryManagementService">
     <wsdl:port binding="ims:InventoryManagerSoapBinding" name="InventoryManager">
        <soap:address location="http://localhost/InventoryManagementServiceWeb/services/InventoryManager" />
     </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

付録D.3　ビジネスプロセスを詳細化する

「付録D.1(2) ミドルレベル・ビジネスプロセスを作成する」で作成したミドルレベル・ビジネスプロセスに設定を追加し，詳細化します。

＜この項の構成＞

(1)　実装方式を決定する

(2)　プロセスの属性を設定する

(3)　ノード・タスクを詳細化する

(4)　WSDLを登録する

(5)　オペレーションを割り当てる

(1)　実装方式を決定する

最初に，ダイアグラムの実装方式を設定します。

Process Modelerのウィンドウメニューから［プロセス］－［表示］－［属性エクスプローラ］を選択します。
ウィンドウに［属性エクスプローラ］が表示されます。

フローの何もないところをマウスでクリックし，ダイアグラムを選択します。
［属性エクスプローラ］にダイアグラムの属性が表示されます。

［システム定義の属性］を展開し，［実装］のドロップダウンリストから「BPEL 1.1」を選択します。

(2)　プロセスの属性を設定する

ビジネスプロセス全体の属性を設定します。

Process Modelerのウィンドウメニューから［プロセス］－［実装］－［BPEL］を選択します。
［BPEL］ダイアログが表示されます。

［プロセスの設定］タブを選択します。

［プロセス属性］と［プール システム定義の属性］を次のとおりに指定します。

Name：未指定または任意の値※

ProcessType：未指定

TargetNamespace：未指定または任意の値※

注※

任意の値を指定できますが，BPELインポート機能ではこれらの値は使用しません。

(3)　ノード・タスクを詳細化する

ビジネスプロセスの開始ノード，終了ノード，およびタスクの詳細な設定をします。

最初に，サービスリクエスタからの要求メッセージによってビジネスプロセスが開始されるように設定します。開始ノードに設定する手順を示します。

ビジネスプロセスの開始ノードを選択します。

右クリックして表示されるメニューから［Trigger］－［Message］を選択します。

また，ビジネスプロセスの実行結果をサービスリクエスタに応答メッセージとして返すようにするため，終了ノードも同じように，右クリックして表示されるメニューから［Result］－［Message］を選択します。

次に，在庫引当タスクと配送手配タスクをサービスとして実行することを表すために，在庫引当タスクと配送手配タスクをそれぞれ右クリックしてメニューを表示し，［TaskType］－［Service］を選択します。

開始ノード，終了ノード，およびタスクの設定内容は次のとおりです。

表D-5　開始ノード／終了ノード／タスクの設定内容

項番 | 要素 | 設定項目 | 設定値
1 | 開始ノード | Trigger | Message
2 | 在庫引当タスク | TaskType | Service
3 | 配送手配タスク | TaskType | Service
4 | 終了ノード | Result | Message

ここまでの手順を終えると，開始ノード，終了ノード，およびタスクにメッセージを表す手紙のアイコンや，サービスを表す歯車のアイコンが追加されます。

(4)　WSDLを登録する

「付録D.2(2) 概要WSDLを作成する」で作成したサービスの概要WSDLをProcess Modelerに登録します。

Process Modelerのウィンドウメニューから［プロセス］－［実装］－［BPEL］を選択します。
［BPEL］ダイアログが表示されます。

［WSDLのインポート］タブを選択します。

［新規］ボタンをクリックします。
［WSDLのインポート］ダイアログが表示されます。

WSDLごとに次の内容を入力します。

表D-6　インポート対象のWSDLと設定値

項番
インポート対象
項目
設定値

1
ArrangementService.wsdl
（商品手配ビジネスプロセスのWSDL）
WSDLの場所
ファイル

WSDLファイル
［参照］ボタンから選択

名前
ArrangementService

エクスポート時のネームスペース
任意の値※

2
InventoryManagementService.wsdl
（在庫引当サービスのWSDL）
WSDLの場所
ファイル

WSDLファイル
［参照］ボタンから選択

名前
InventoryManagementService

エクスポート時のネームスペース
任意の値※

3
DeliveryService.wsdl
（配送手配サービスのWSDL）
WSDLの場所
ファイル

WSDLファイル
［参照］ボタンから選択

名前
DeliveryService

エクスポート時のネームスペース
任意の値※

注※

任意の値を指定できますが，BPELインポート機能でこれらの値を使用しません。

［OK］ボタンをクリックします。
WSDLが登録されます。表D-6で示したWSDLをすべてインポートすると，［WSDLのインポート］タブは次のようになります。

(5)　オペレーションを割り当てる

登録したWSDLを使用して，開始ノード，終了ノード，およびタスクがどのように外部のサービスリクエスタやサービスと連携するか，オペレーションとそのインターフェースを設定します。

最初に，開始ノードのインターフェースを設定します。

開始ノードを右クリックして表示されるメニューから［実装］－［BPEL］を選択します。
［BPEL］ダイアログが表示されます。

［Operationの割り当て］タブを選択します。

［ArrangementService］－［arrangeItem］を選択して，［割り当て］ボタンをクリックします。
開始ノードのオペレーションは，名前「ArrangementService」のWSDLに「arrangeItem」として定義されているため，「arrangeItem」を割り当てます。

残りのノード，タスクについても，次の表を参考にオペレーションを割り当てます。

表D-7　［Operationの割り当て］タブの設定内容

項番 | 要素の名前 | WSDLの名前 | Operationの名前
1 | 受付 | ArrangementService | arrangeItem
2 | 在庫引当 | InventoryManagementService | reserveItem
3 | 配送手配 | DeliveryService | deliverItem
4 | 応答_手配成功 | ArrangementService | arrangeItem
5 | 応答_在庫なしエラー | ArrangementService | arrangeItem

以上で，上流設計ツールを使用したビジネスプロセス設計は終了です。

付録D.4　ビジネスプロセスを出力する

上流設計ツールで作成したビジネスプロセスをCosminexus サービスプラットフォームの開発環境に引き継ぐために，BPELファイルとして出力します。

Process Modelerのウィンドウメニューから［プロセス］－［ダイアグラム］－［エクスポート］を選択します。
［エクスポート］ダイアログが表示されます。

［エクスポート先］が「BPEL 1.1」になっていることを確認し，［エンコード］を「UTF-8」に変更します。

［エクスポート］ボタンをクリックします。
［フォルダの参照］ダイアログが表示されます。

BPELファイルを出力する場所を選択し，［OK］ボタンをクリックします。
選択したフォルダに次に示すファイルが生成されます。

主要プール.bpel
作成したビジネスプロセスのBPELファイルです。

主要プール_types.wsdl
このファイルは使用しません。

なお，プールに名前を付けた場合は，<プールの名前>.bpelと<プールの名前>_types.wsdlが生成されます。

付録D.5　サービスの詳細インターフェースを検討する

これまでに検討した仕様を踏まえて，各サービスのオペレーションのメッセージ構造を決定します。具体的には，「付録D.2(2)　概要WSDLを作成する」で作成した概要WSDLにメッセージ構造の宣言を追加します。

各サービスの要求メッセージと応答メッセージには，次の表に示す情報が必要になるため，これを概要WSDLのメッセージ宣言に反映（ルート要素の下に宣言を追加）します。

表D-8　サービスの要求／応答メッセージに必要な情報

項番 | サービス名 | メッセージ | 必要な情報
名前 | 型 | 説明
1 | 在庫引当サービス | reserveItemRequest | ItemName | xsd:string | 在庫引当する商品の名前
Quantity | xsd:int | 在庫引当する個数
reserveItemResponse | ReservationNumber | xsd:string | 引当番号
2 | 配送手配サービス | deliverItemRequest | ReservationNumber | xsd:string | 配送手配する引当番号
deliverItemResponse | DeliveryNumber | xsd:string | 配送番号
3 | 商品手配ビジネスプロセス | arrangeItemRequest | ItemName | xsd:string | 手配する商品の名前
Quantity | xsd:int | 手配する商品の個数
arrangeItemResponse | DeliveryNumber | xsd:string | 配送番号

在庫引当サービスを例にWSDL（InventoryManagementService.wsdl）の定義例を次に示します。WSDL中の太字は，追記した内容を表します。

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
     targetNamespace="http://sample/InventoryManagementService"
     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns:ims="http://sample/InventoryManagementService">

  <wsdl:types>
     <xsd:schema
           targetNamespace="http://sample/InventoryManagementService"
           elementFormDefault="qualified">
        <xsd:element name="reserveItem">
           <xsd:complexType>
              <xsd:sequence>
                 <xsd:element name="ItemName" type="xsd:string" />
                 <xsd:element name="Quantity" type="xsd:int" />
              </xsd:sequence>
           </xsd:complexType>
        </xsd:element>
        <xsd:element name="reserveItemResponse">
           <xsd:complexType>
              <xsd:sequence>
                 <xsd:element name="ReservationNumber" type="xsd:string" />
              </xsd:sequence>
           </xsd:complexType>
        </xsd:element>
     </xsd:schema>
  </wsdl:types>

  <wsdl:message name="reserveItemRequest">
     <wsdl:part name="parameters" element="ims:reserveItem" />
  </wsdl:message>

  <wsdl:message name="reserveItemResponse">
     <wsdl:part name="parameters" element="ims:reserveItemResponse" />
  </wsdl:message>

  <wsdl:portType name="InventoryManager">
     <wsdl:operation name="reserveItem">
        <wsdl:input message="ims:reserveItemRequest" name="reserveItemRequest" />
        <wsdl:output message="ims:reserveItemResponse" name="reserveItemResponse" />
     </wsdl:operation>
  </wsdl:portType>

  <wsdl:binding name="InventoryManagerSoapBinding" type="ims:InventoryManager">
     <soap:binding style="document"
           transport="http://schemas.xmlsoap.org/soap/http" />
     <wsdl:operation name="reserveItem">
        <soap:operation soapAction="" />
        <wsdl:input name="reserveItemRequest">
           <soap:body use="literal" />
        </wsdl:input>
     <wsdl:output name="reserveItemResponse">
           <soap:body use="literal" />
        </wsdl:output>
     </wsdl:operation>
  </wsdl:binding>

  <wsdl:service name="InventoryManagementService">
     <wsdl:port binding="ims:InventoryManagerSoapBinding" name="InventoryManager">
        <soap:address location="http://localhost/InventoryManagementServiceWeb/services/InventoryManager" />
     </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

詳細インターフェースを記載したWSDLは，サンプルプログラムに同梱されています。サンプルプログラムの格納場所については，マニュアル「Cosminexus サービスプラットフォーム サンプルプログラムガイド」の「付録A　サンプルプログラムのファイルの構成」を参照してください。

付録D.6　サービスアダプタを作成する

「付録D.5　サービスの詳細インターフェースを検討する」で詳細化したWSDLを使用して，ビジネスプロセスと，在庫引当サービスおよび配送手配サービスをつなげるためのサービスアダプタを追加します。

まず，在庫管理サービス（InventoryManager）のサービスアダプタを作成します。

ツリービューのサービス定義一覧で右クリックして「サービスアダプタ追加」を選択します。
サービスアダプタ定義追加ウィザードが表示されます。

［サービス部品の種別］に「Webサービス」を指定します。

［次へ］ボタンをクリックします。
サービス名とサービスのWSDLファイルを指定するページが表示されます。

サービス名と作成した在庫管理サービスのWSDLを指定します。

注意

サービス名はWSDLに書かれたポートタイプ要素（portType）の名前属性値（name）と同じ値にしてください。

［次へ］ボタンをクリックします。
WSDLのポートを指定するページが表示されます。

［Portの指定］が「InventoryManager」になっていることを確認して，［終了］ボタンをクリックします。

WSDLの解析が終わるとサービスアダプタが作成されます。

配送手配サービス（Delivery）についても，次に示す設定をして，サービスアダプタを作成します。

表D-9　配送手配サービスのサービスアダプタの設定値

項番 | 項目 | 設定値
1 | サービス部品の種別 | Webサービス
2 | サービス名 | Delivery
3 | WSDLファイル | DeliveryService.WSDL
4 | ポート | Delivery

付録D.7　ビジネスプロセスをインポートする

「付録D.4　ビジネスプロセスを出力する」で出力したBPELファイルをCosminexus サービスプラットフォームの開発環境に取り込みます。

ツリービューのサービス定義一覧で右クリックして「ビジネスプロセス追加」を選択します。
ビジネスプロセス定義追加ウィザードが表示されます。

ビジネスプロセス名と出力したBPELファイルを指定します。

［終了］ボタンをクリックします。
BPELファイルのインポートが終わると，上流設計ツールから引き継いだビジネスプロセスが表示されます。

ここでは，次のようにBPMN要素が変換されています。

表D-10　BPMN要素の変換結果

項番
BPMN要素
ビジネスプロセスの要素

1
「受付」開始ノード
「受付」受付アクティビティ

2
「在庫引当」タスク
「在庫引当」サービス呼出アクティビティ

3
排他ゲートウェイ
「Gateway」分岐開始アクティビティ
「Gateway_終了」分岐終了アクティビティ

4
「配送手配」タスク
「配送手配」サービス呼出アクティビティ

5
「応答_手配成功」終了ノード
「応答_手配成功」応答アクティビティ

6
「応答_在庫なしエラー」終了ノード
「応答_在庫なしエラー」応答アクティビティ

コンソールビューにインポートのログが表示されているので，BPELファイルが正しく取り込まれているかを確認します。
ログに出力された問題の解決方法については，「付録C.4　上流設計ツール利用時のトラブルシューティング」を参照してください。

付録D.8　ユーザ定義受付を追加する

「付録D.5　サービスの詳細インターフェースを検討する」で詳細化したWSDLを使用して，ビジネスプロセスにユーザ定義受付を追加します。

ツリービューのサービス定義一覧でArrangementService（商品手配サービス）を選択し，右クリックして「ユーザ定義受付追加」を選択します。
受付種別選択ウィザードが表示されます。

［受付種別］のドロップダウンリストから［SOAP受付］を選択します。

［次へ］ボタンをクリックします。
ユーザ定義受付追加ウィザードが表示されます。

受付名と作成したビジネスプロセスのWSDLを指定します。

［次へ］ボタンをクリックします。
ポートを指定するページが表示されます。

［Portの指定］が「Arrangement」になっていることを確認して［終了］ボタンをクリックします。

WSDLの解析が終わると，次のようにユーザ定義受付が作成されます。

付録D.9　メッセージのスキーマを登録する

受付アクティビティ，応答アクティビティ，サービス呼出アクティビティで使用するメッセージ（変数）のスキーマ（構造）を登録します。

まず，受付アクティビティで使用するメッセージのスキーマを登録します。

ビジネスプロセス定義画面のキャンバス上の［変数・相関セット］アイコンをダブルクリックします。
［変数・相関セット一覧］ダイアログが表示されます。

受付アクティビティが使用するメッセージ「ns3arrangeItemRequest_MessageData」※を選択し，［種別］を「XML」に変更します。

注※

Process Modelerは，WSDLで定義したメッセージ名の前に名前空間の修飾辞を付け，メッセージ名の後に「_MessageData」を付けてBPELファイルを生成します。例を次に示します。

（例）

arrangeItemRequest → ns3arrangeItemRequest_MessageData

arrangeItemResponse → ns3arrangeItemResponse_MessageData

この例にあるように，［変換・相関セット一覧］ダイアログでメッセージを選択するときは，メッセージ名が変更されていることに注意してください。なお，修飾辞の「ns3」の部分は「表D-6」で設定したエクスポート時のネームスペースになるため，マニュアル上と実際に操作する画面で表示が異なる場合があります。

次に，受付アクティビティが使用するメッセージのスキーマ（電文フォーマット）をビジネスプロセスのユーザ定義受付から取り込みます。

［電文フォーマット］横の［取込］ボタンをクリックします。
［電文フォーマットの取込］ダイアログが表示されます。

次の画面および表に示すとおりに指定します。

表D-11　受付アクティビティの電文フォーマットの取り込み指定

項番
項目
指定値

1
サービス/受付
受付名：サービス受付

2
取込対象
オペレーション名
arrangeItem

3
電文種別
要求電文

4
電文フォーマット
ns3arrangeItemRequest_MessageData
（自動設定されます。）

［OK］ボタンをクリックします。
メッセージのスキーマの取り込みが終わると，［電文フォーマット］に電文フォーマット名が表示されます。

［更新］ボタンをクリックします。
これで，受付アクティビティで使用するメッセージのスキーマが登録されます。

次に示す電文についても，メッセージのスキーマを設定します。

「在庫引当」サービス呼出アクティビティの要求電文（ns1reserveItemRequest_MessageData）

「在庫引当」サービス呼出アクティビティの応答電文（ns1reserveItemResponse_MessageData）

「配送手配」サービス呼出アクティビティの要求電文（ns2deliverItemRequest_MessageData）

「配送手配」サービス呼出アクティビティの応答電文（ns2deliverItemResponse_MessageData）

応答アクティビティの応答電文（ns3arrangeItemResponse_MessageData）

各メッセージのスキーマの取り込み指定を次の各表に示します。すべてのスキーマの取り込みが終わったら，［変数・相関セット一覧］ダイアログで［OK］ボタンをクリックします。

表D-12　ns1reserveItemRequest_MessageDataの取り込みの指定

項番
項目
指定値

1
サービス/受付
受付名：InventoryManager

2
取込対象
オペレーション名
reserveItem

3
電文種別
要求電文

4
電文フォーマット
ns1reserveItemRequest_MessageData
（自動設定されます。）

表D-13　ns1reserveItemResponse_MessageDataの取り込みの指定

項番
項目
指定値

1
サービス/受付
サービス名：InventoryManager

2
取込対象
オペレーション名
reserveItem

3
電文種別
応答電文

4
電文フォーマット
ns1reserveItemResponse_MessageData
（自動設定されます。）

表D-14　ns2deliverItemRequest_MessageDataの取り込みの指定

項番
項目
指定値

1
サービス/受付
サービス名：Delivery

2
取込対象
オペレーション名
deliverItem

3
電文種別
要求電文

4
電文フォーマット
ns2deliverItemRequest_MessageData
（自動設定されます。）

表D-15　ns2deliverItemResponse_MessageDataの取り込みの指定

項番
項目
指定値

1
サービス/受付
サービス名：Delivery

2
取込対象
オペレーション名
deliverItem

3
電文種別
応答電文

4
電文フォーマット
ns2deliverItemResponse_MessageData
（自動設定されます。）

表D-16　ns3arrangeItemResponse_MessageDataの取り込みの指定

項番
項目
指定値

1
サービス/受付
受付名：サービス受付

2
取込対象
オペレーション名
arrangeItem

3
電文種別
応答電文

4
電文フォーマット
ns3arrangeItemResponse_MessageData
（自動設定されます。）

付録D.10　メッセージ変換とシステム例外処理を追加する

必要に応じて，ビジネスプロセスにメッセージ変換（データ変換アクティビティ）や実行時のシステム例外に対処する処理を追加します。商品手配サンプルプログラムでは，次のようにメッセージ変換を追加しました。

図D-5　メッセージ変換の追加

メッセージ変換の詳細な定義内容については，商品手配ビジネスプロセスのサンプルデータを参照してください。

以上で，上流設計ツールを利用したビジネスプロセスの開発は終了です。

付録E　上流設計ツールとの連携で使用するBPELのサポート範囲

Cosminexus サービスプラットフォームでは，BPEL1.1とBPEL2.0のインポートをサポートしています。BPEL1.1とBPEL2.0では，BPELファイルのサポート範囲およびビジネスプロセス定義への変換ルールが異なります。

ここでは，上流設計ツールで作成したBPELファイルをインポートする場合の，BPELファイルのサポート範囲およびビジネスプロセス定義への変換ルールをBPEL1.1とBPEL2.0に分けて説明します。

注意

BPELファイルの要素・属性のうち，以降の説明に登場しない要素・属性は，ビジネスプロセスの定義に変換されません。

BPELファイル内の要素が，ビジネスプロセスのどの定義内容に変換されるのかの関係を次の表に示します。

表E-1　BPELファイルの要素とビジネスプロセス定義の関係

変換前の要素（BPELファイル）
変換後の定義内容（ビジネスプロセス）
変換方法の参照先

BPEL1.1
BPEL2.0

process要素
variables要素
変数
付録E.1(1)(b)
付録E.2(1)(b)

correlationSets要素
相関セット
付録E.1(1)(c)
付録E.2(1)(c)

faultHandlers要素
フォルト処理
付録E.1(1)(d)
付録E.2(1)(d)

receive要素
受付アクティビティ
付録E.1(2)(a)
付録E.2(2)(a)

reply要素
応答アクティビティ
付録E.1(2)(b)
付録E.2(2)(b)

invoke要素
サービス呼出アクティビティ
付録E.1(2)(c)
付録E.2(2)(c)

assign要素
代入アクティビティ
付録E.1(2)(d)
付録E.2(2)(d)

empty要素
無操作アクティビティ
付録E.1(2)(e)
付録E.2(2)(e)

throw要素
フォルト送出アクティビティ
付録E.1(2)(f)
付録E.2(2)(f)

scope要素
スコープアクティビティ
付録E.1(3)(a)
付録E.2(3)(a)

while要素
繰り返しアクティビティ
付録E.1(3)(b)
付録E.2(3)(b)

switch要素※1
分岐開始アクティビティ
分岐終了アクティビティ
付録E.1(3)(c)
－

if要素※2
－
付録E.2(3)(c)

flow要素
並列処理開始アクティビティ
並列処理終了アクティビティ
付録E.1(3)(d)
付録E.2(3)(d)

sequence要素
順次処理アクティビティ
付録E.1(3)(e)
付録E.2(3)(e)

wait要素
待機アクティビティ
付録E.1(2)(g)
付録E.2(2)(g)

compensate要素※3
無操作アクティビティ
－
－

terminate要素※1※3

pick要素※3

extensionActivity要素※2※3

rethrow要素※2※3

exit要素※2※3

validate要素※2※3

compensateScope要素※2※3

forEach要素※2※3

repeatUntil要素※2※3

（凡例）

－：参照先はありません。

注※1

BPEL1.1の場合だけ定義できる要素です。

注※2

BPEL2.0の場合だけ定義できる要素です。

注※3

これらの要素はサポート外のため，インポート時に無操作アクティビティに変換されます。

ポイント

ビジネスプロセス内の各アクティビティを連結するコネクションの定義内容は，BPELファイルの構造，各要素の定義などから判断して設定されます。

BPELファイルをインポートしてビジネスプロセスを作成した場合に，Java呼出アクティビティおよびデータ変換アクティビティが定義されることはありません。

以降の項で，BPELファイルの各要素と，ビジネスプロセス定義の内容との関係の詳細をBPEL1.1とBPEL2.0に分けて説明します。

＜この節の構成＞

付録E.1　BPEL1.1のビジネスプロセス定義をインポートする場合

付録E.2　BPEL2.0のビジネスプロセス定義をインポートする場合

付録E.1　BPEL1.1のビジネスプロセス定義をインポートする場合

BPEL1.1の場合の，BPELファイルのサポート範囲およびビジネスプロセス定義への変換ルールについて説明します。

Cosminexus サービスプラットフォームでは，BPEL1.1の場合のBPELファイルに定義されている要素および属性で，一部サポートしていないものがあります。BPEL1.1の場合のBPELファイルに定義されている要素および属性について，Cosminexus サービスプラットフォームでのサポート有無を次の表に示します。

表E-2　BPELファイルに定義されている要素および属性のサポート有無（BPEL1.1の場合）

分類 | 要素 | 下位要素または属性 | サポート有無
ビジネスプロセス全体の定義に関する要素 | process要素 | name属性 | ×
targetNamespace属性 | ×
queryLanguage属性 | ×
expressionLanguage属性 | ×
suppressJoinFailure属性 | ×
enableInstanceCompensation属性 | ×
abstractProcess属性 | ×
partnerLinks要素 | ×
partners要素 | ×
correlationSets要素 | ×
variables要素 | variable要素 | name属性 | ○
messageType属性 | ○
type属性 | ○
element属性 | ×
faultHandlers要素 | catch要素 | faultName属性 | ×
faultVariable属性 | ○
activity※1 | ○
catchAll要素 | activity※1 | ○
compensationHandler要素 | ×
eventHandlers要素 | ×
activity※1 | ○
基本アクティビティに関連する要素 | receive要素 | name属性 | ○
joinCondition属性 | ×
suppressJoinFailure属性 | ×
partnerLink属性 | ×
portType属性 | ×
operation属性 | ○
variable属性 | ○
createInstance属性 | △
target要素 | ×
source要素 | ×
correlations要素 | ×
reply要素 | name属性 | ○
joinCondition属性 | ×
suppressJoinFailure属性 | ×
partnerLink属性 | ×
portType属性 | ×
operation属性 | ○
variable属性 | ○
faultName属性 | ○
target要素 | ×
source要素 | ×
correlations要素 | ×
invoke要素 | name属性 | ○
joinCondition属性 | ×
suppressJoinFailure属性 | ×
partnerLink属性 | ×
portType属性 | ○
operation属性 | ○
inputVariable属性 | ○
outputVariable属性 | ○
target要素 | ×
source要素 | ×
correlations要素 | ×
catch要素 | faultName属性 | ×
faultVariable属性 | ○
activity※1 | ○
catchAll要素 | activity※1 | ○
assign要素 | name属性 | ○
joinCondition属性 | ×
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
copy要素 | from要素 | variable属性 | ○
expression属性 | ○
part属性 | ×
partnerLink属性 | ×
endpointReference属性 | ×
property属性 | ×
opaque属性 | ×
query属性 | ×
タグ値※2 | ○
to要素 | variable属性 | ○
part属性 | ×
partnerLink属性 | ×
property属性 | ×
query属性 | ×
empty要素 | name属性 | ○
joinCondition属性 | ×
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
throw要素 | faultName属性 | ×
faultVariable属性 | ○
name属性 | ○
joinCondition属性 | ×
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
wait要素 | name属性 | ○
joinCondition属性 | ×
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
for属性 | ○
until属性 | ○
terminate要素※3 | name属性 | ○
joinCondition属性 | ×
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
compensate要素※3 | name属性 | ○
joinCondition属性 | ×
suppressJoinFailure属性 | ×
scope属性 | ×
target要素 | ×
source要素 | ×
構造アクティビティに関連する要素 | scope要素 | name属性 | ○
joinCondition属性 | ×
suppressJoinFailure属性 | ×
variableAccessSerializable属性 | ×
target要素 | ×
source要素 | ×
correlationSets要素 | ×
variables要素 | variable要素 | name属性 | ○
messageType属性 | ○
type属性 | ○
element属性 | ×
faultHandlers要素 | catch要素 | faultName属性 | ×
faultVariable属性 | ○
activity※1 | ○
catchAll要素 | activity※1 | ○
compensationHandler要素 | ×
eventHandlers要素 | ×
activity※1 | ○
while要素 | name属性 | ○
joinCondition属性 | ×
condition属性 | ○
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
activity※1 | ○
switch要素 | name属性 | ○
joinCondition属性 | ×
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
case要素 | condition属性 | ○
activity※1 | ○
otherwise要素 | activity※1 | ○
flow要素 | name属性 | ○
joinCondition属性 | ×
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
links要素 | ×
activity※1 | ○
sequence要素 | name属性 | ×
joinCondition属性 | ×
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
activity※1 | ○
pick要素※3 | name属性 | ○
joinCondition属性 | ×
suppressJoinFailure属性 | ×
createInstance属性 | ×
target要素 | ×
source要素 | ×
onAlarm要素 | ×
onMessage要素 | ×

（凡例）

○：サポートしています。

△：制限付きでサポートしています。

×：サポートしていません。

注※1

activityの部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

注※2

from要素のタグ値が変換元になります。

注※3

未サポートアクティビティのため，name属性だけを反映した無操作アクティビティとして取り込まれます。

＜この項の構成＞

(1)　ビジネスプロセス全体の定義に関連する要素の変換

(2)　基本アクティビティに関連する要素の変換

(3)　構造アクティビティに関連する要素の変換

(1)　ビジネスプロセス全体の定義に関連する要素の変換

BPELファイルに定義されている要素のうち，ビジネスプロセス全体に関連する内容（ビジネスプロセスそのものの設定，利用する変数など）の変換について次に説明します。

(a)　process要素の変換

process要素およびその下位要素・属性は，ビジネスプロセス全体の定義に関連する内容に変換されます。

変換の詳細を次の表に示します。

表E-3　process要素の変換

BPELファイルの要素 | ビジネスプロセスの定義内容
定義内容 | 説明
process要素 | variables要素 | 変数 | 詳細は「付録E.1(1)(b) variables要素の変換」を参照してください。
correlationSets要素 | 相関セット | 詳細は「付録E.1(1)(c) correlationSets要素の変換」を参照してください。
faultHandlers要素 | フォルト処理 | 詳細は「付録E.1(1)(d) faultHandlers要素の変換」を参照してください。
activity※ | アクティビティ | ビジネスプロセスを構成するアクティビティに変換されます。
－ | ビジネスプロセス名 | ビジネスプロセス定義を追加するためのダイアログで指定したビジネスプロセス名が設定されます。
－ | ビジネスプロセスのバージョン | 「1」が設定されます。
－ | 永続化 | ビジネスプロセス定義を追加するためのダイアログで指定した永続化の有無が設定されます。

（凡例）

－：該当する要素はありません。定義内容は，自動設定されるか，またはビジネスプロセス定義を追加するためのダイアログで指定した内容が設定されます。

注※

activity の部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

ビジネスプロセスの各アクティビティに変換される要素については，「付録E.1(2) 基本アクティビティに関連する要素の変換」および「付録E.1(3) 構造アクティビティに関連する要素の変換」を参照してください。

(b)　variables要素の変換

variables要素およびその下位要素・属性は，ビジネスプロセス（またはスコープ内）に設定されている変数の定義に変換されます。インポートしたあとは，定義内容を変数・相関セット一覧ダイアログで変更できます。

注意

Cosminexus サービスプラットフォームでは，スコープ内のフォルト処理を構成するアクティビティの割当変数として定義できる変数は，フォルト処理のあるスコープの上位スコープで定義されている変数です。

そのため，BPELファイルのscope/faultHandlers要素以下の要素で，変数として同じscope要素内の変数を利用している場合，インポートしたあとにビジネスプロセスで割当変数を再定義してください。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，変数・相関セット一覧ダイアログの項目名です。

表E-4　variables要素の変換

variables要素の下位要素または属性
ビジネスプロセスの定義内容

項目
説明

variable要素
name属性
変数名
変数の名称が設定されます。

messageType属性
種別
この属性が定義されていた場合，type属性は文字列型（string）に変換されます。
そのため，変換後に変数の種別をメッセージ型（XML）に変更し，電文フォーマットを登録する必要があります。

type属性
種別
次に示す変数の種別が設定されます。

booleanの場合
「boolean」が設定されます。

doubleで表現可能な型※の場合
「numeric」が設定されます。

上記以外または未定義の場合
「string」が設定されます。

－
部分指定
変数の部分指定には，値は設定されません。部分指定を利用する場合，インポートしたあとに変数・相関セット一覧ダイアログで設定してください。

（凡例）

－：該当する要素はありません。

注※

次の型が該当します。

int，short，byte，unsignedInt，unsignedShort，unsignedByte，float，double

(c)　correlationSets要素の変換

correlationSets要素の定義内容は，ビジネスプロセスの定義では「相関セット」に当たる情報です。BPELファイルをインポートしてビジネスプロセスを作成しても値は設定されません。

ビジネスプロセスで相関セットを利用する場合，インポートしたあとに変数・相関セット一覧ダイアログで相関セットを定義し，相関セットを使用するアクティビティの割当相関セット群ダイアログで相関セットを割り当ててください。

(d)　faultHandlers要素の変換

faultHandlers要素およびその下位要素・属性は，ビジネスプロセス内のフォルト処理の定義内容に変換されます。変換後の定義内容は，フォルト処理の割当ダイアログで変更できます。

注意

process要素の直下にfaultHandlers要素が定義されている場合，最上位のビジネスプロセスにスコープが作成され，そのスコープのフォルト処理として定義されます。その場合，process要素の直下のアクティビティは作成されたスコープ内に移動されます。

scope要素の配下にfaultHandlers要素が定義されている場合，上位のスコープ内にフォルト処理が設定されます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，フォルト処理の割当ダイアログの項目名です。

表E-5　faultHandlers要素の変換

faultHandlers要素の下位要素または属性 | ビジネスプロセスの定義内容
項目 | 説明
catch要素 | faultVariable属性 | 割当変数 | 変数については「付録E.1(1)(b) variables要素の変換」の注意事項も参照してください。
activity※ | アクティビティ | ビジネスプロセスを構成するアクティビティに変換されます。
catchAll要素 | activity※ | アクティビティ | ビジネスプロセスを構成するアクティビティに変換されます。
－ | 割当変数 | 常に「catch-all」が設定されます。
－ | 遷移先 | catch要素またはcatchAll要素が定義されている場合，フォルト処理の遷移先が自動的に設定されます。

（凡例）

－：該当する要素はありません。定義内容は自動で設定されます。

注※

activityの部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

(2)　基本アクティビティに関連する要素の変換

BPELファイルに定義されている要素のうち，基本アクティビティに変換される要素の変換について次に説明します。

(a)　receive要素の変換

receive要素およびその下位要素・属性は，受付アクティビティの定義内容に変換されます。インポートしたあとは，定義内容を受付アクティビティダイアログで変更できます。

注意

次の条件を満たすreceive要素が複数定義されている場合，二つ目以降のreceive要素は無操作アクティビティに変換されます。

portType属性が同一である

operation属性が同一である

変換の詳細を次の表に示します。表内の「項目」に示す名称は，受付アクティビティダイアログの項目名です。

表E-6　receive要素の変換

receive要素の下位要素または属性 | ビジネスプロセスの定義内容
項目 | 説明
operation属性 | オペレーション名 | portType属性が異なり，かつoperation属性が同一のreceive要素がすでに定義されている場合，オペレーション名の末尾に<n>（nは1以上の整数）が付与されます。
variable属性 | 割当変数 | 変数については「付録E.1(1)(b) variables要素の変換」の注意事項も参照してください。
createInstance属性 | インスタンス生成 | 属性値に関係なく「yes」に変換されます。
name属性 | アクティビティ名 | アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。
－ | 通信モデル | ビジネスプロセス定義の内容から判断して「同期」または「非同期」が設定されます。

（凡例）

－：該当する要素はありません。定義内容は自動で設定されます。

(b)　reply要素の変換

reply要素およびその下位要素・属性は，応答アクティビティの定義内容に変換されます。インポートしたあとは，定義内容を応答アクティビティダイアログで変更できます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，応答アクティビティダイアログの項目名です。

表E-7　reply要素の変換

reply要素の下位要素または属性
ビジネスプロセスの定義内容

項目
説明

operation属性
オペレーション名
portType属性とoperation属性が一致するreceive要素のオペレーション名の末尾に<n>（nは1以上の整数）が付与された場合（表E-6のoperation属性を参照），reply要素のオペレーション名の末尾にも同じ<n>が付与されます。
portType属性とoperation属性が一致する，receive要素とreply要素の変換について図E-1に示します。

variable属性
割当変数
変数については「付録E.1(1)(b) variables要素の変換」の注意事項も参照してください。

faultName属性
フォルト名
プリフィックスが付与されている場合は，ローカル名に変換されます。

name属性
アクティビティ名
アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。

図E-1　portType属性とoperation属性が一致するreceive要素とreply要素の変換

(c)　invoke要素の変換

invoke要素およびその下位要素・属性は，サービス呼出アクティビティの定義内容に変換されます。invoke要素の下位要素として，catch要素またはcatchAll要素が定義されている場合，これらはサービス呼出アクティビティのフォルト処理（フォルトコネクションで連結したアクティビティ）に変換されます。インポートしたあとは，サービス呼出アクティビティダイアログまたはフォルト処理の割当ダイアログから定義内容を変更できます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，サービス呼出アクティビティダイアログまたはフォルト処理の割当ダイアログの項目名です。

表E-8　invoke要素の変換

invoke要素の下位要素または属性
ビジネスプロセスの定義内容

項目
説明

portType属性
サービス名
該当するサービス部品やオペレーションがリポジトリにある場合にだけ変換されます。ローカル名に変換されます。

operation属性
オペレーション名
該当するサービス部品やオペレーションがリポジトリにある場合にだけ変換されます。

inputVariable属性
要求電文用割当変数
サービス部品とオペレーションがリポジトリに存在する場合に設定されます。
変数については「付録E.1(1)(b) variables要素の変換」の注意事項も参照してください。

outputVariable属性
応答電文用割当変数
サービス部品とオペレーションがリポジトリに存在し，かつ通信タイプが同期の場合に設定されます。
変数については「付録E.1(1)(b) variables要素の変換」の注意事項も参照してください。

name属性
アクティビティ名
アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。

catch要素
faultVariable属性
割当変数
フォルト処理の割当ダイアログの項目です。
変数については「付録E.1(1)(b) variables要素の変換」の注意事項も参照してください。

activity※
アクティビティ
ビジネスプロセスを構成するアクティビティに変換されます。

catchAll要素
activity※
アクティビティ
ビジネスプロセスを構成するアクティビティに変換されます。

－
割当変数
フォルト処理の割当ダイアログの項目です。
常に「catch-all」が設定されます。

（凡例）

－：該当する要素はありません。定義内容は自動で設定されます。

注※

activityの部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

(d)　assign要素の変換

assign要素およびその下位要素・属性は，代入アクティビティの定義内容に変換されます。インポートしたあとは，定義内容を代入アクティビティダイアログまたは代入アクティビティサブダイアログで変更できます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，代入アクティビティダイアログまたは代入アクティビティサブダイアログの項目名です。

表E-9　assign要素の変換

assign要素の下位要素または属性
ビジネスプロセスの定義内容

項目
説明

name属性
アクティビティ名
アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。

copy要素
from要素
variable属性
名前（コピー元の変数）
代入アクティビティサブダイアログの項目です。
変数については「付録E.1(1)(b) variables要素の変換」の注意事項も参照してください。

expression属性
値（コピー元の式）
代入アクティビティサブダイアログの項目です。
variable属性が定義されている場合は変換されません。

タグ値※
値（コピー元の式）
代入アクティビティサブダイアログの項目です。
variable属性およびexpression属性が定義されていない場合，タグ値が式の値として設定されます。

to要素
variable属性
変数名（コピー先）
代入アクティビティサブダイアログの項目です。
変数については「付録E.1(1)(b) variables要素の変換」の注意事項も参照してください。

注※

from要素のタグ値が変換元になります。

(e)　empty要素の変換

empty要素は，無操作アクティビティの定義内容に変換されます。インポートしたあとは，定義内容を無操作アクティビティダイアログで変更できます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，無操作アクティビティダイアログの項目名です。

表E-10　empty要素の変換

empty要素の下位要素または属性 | ビジネスプロセスの定義内容
項目 | 説明
name属性 | アクティビティ名 | アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。

(f)　throw要素の変換

throw要素およびその下位要素・属性は，フォルト送出アクティビティの定義内容に変換されます。インポートしたあとは，定義内容をフォルト送出アクティビティダイアログで変更できます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，フォルト送出アクティビティダイアログの項目名です。

表E-11　throw要素の変換

throw要素の下位要素または属性 | ビジネスプロセスの定義内容
項目 | 説明
faultVariable属性 | 割当変数 | 変数については「付録E.1(1)(b) variables要素の変換」の注意事項も参照してください。
name属性 | アクティビティ名 | アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。

(g)　wait要素の変換

wait要素は，待機アクティビティの定義内容に変換されます。インポートしたあとは，定義内容を待機アクティビティダイアログで変更できます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，待機アクティビティダイアログの項目名です。

表E-12　wait要素の変換

wait要素の下位要素または属性 | ビジネスプロセスの定義内容
項目 | 説明
name属性 | アクティビティ名 | アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。
for属性※ | 式 | 待機する間隔の情報です。［間隔］がONになります。
until属性※ | 式 | 待機する期限の情報です。［期限］がONになります。

注※

for属性とuntil属性の両方が定義されていた場合，for属性が取り込まれ，until属性が無視されます。また，for属性とuntil属性の両方が定義されていない場合，［間隔］がONになります。

(3)　構造アクティビティに関連する要素の変換

BPELファイルに定義されている要素のうち，基本アクティビティに変換される要素の変換について次に説明します。

(a)　scope要素の変換

scope要素およびその下位要素・属性は，スコープアクティビティの定義内容に変換されます。インポートしたあとは，定義内容をスコープアクティビティダイアログで変更できます。

また，scope要素内に定義されている変数，相関セット，フォルト処理の情報は，変数・相関セット一覧ダイアログおよびフォルト処理の割当ダイアログで変更できます。

変換の詳細を次の表に示します。

表E-13　scope要素の変換

scope要素の下位要素または属性
ビジネスプロセスの定義内容

項目
説明

name属性
アクティビティ名
アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。

variables要素
変数
スコープ内で利用する変数の情報です。
変数については「付録E.1(1)(b) variables要素の変換」を参照してください。

correlationSets要素
相関セット
スコープ内で利用する相関セットの情報です。
相関セットの情報については「付録E.1(1)(c) correlationSets要素の変換」を参照してください。

faultHandlers要素
フォルト処理
スコープ内のフォルト処理の情報です。
フォルト処理の情報については「付録E.1(1)(d) faultHandlers要素の変換」を参照してください。

activity※
アクティビティ
ビジネスプロセスを構成するアクティビティに変換されます。

注※

activityの部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

(b)　while要素の変換

while要素およびその下位要素・属性は，繰り返しアクティビティの定義内容に変換されます。インポートしたあとは，定義内容を繰り返しアクティビティダイアログおよび条件設定ダイアログで変更できます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，繰り返しアクティビティダイアログまたは条件設定ダイアログの項目名です。

表E-14　while要素の変換

while要素の下位要素または属性 | ビジネスプロセスの定義内容
項目 | 説明
name属性 | アクティビティ名 | アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。
condition属性 | 条件式 | 条件設定ダイアログの条件式に値が設定されます。
activity※ | アクティビティ | ビジネスプロセスを構成するアクティビティに変換されます。
－ | 最大繰り返し回数 | 「100」が自動的に設定されます。

（凡例）

－：該当する要素はありません。定義内容は自動で設定されます。

注※

activityの部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

(c)　switch要素の変換

switch要素およびその下位要素・属性は，分岐開始アクティビティの定義内容に変換されます。インポートしたあとは，定義内容を分岐アクティビティダイアログおよび条件設定ダイアログで変更できます。

注意

分岐終了アクティビティは，switch要素以下が分岐開始アクティビティに変換されたときに自動的に設定されます。その際，分岐終了アクティビティの名称として，分岐開始アクティビティの名称に「_終了」を付けた名称が設定されます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，分岐アクティビティダイアログまたは条件設定ダイアログの項目名です。

表E-15　switch要素の変換

switch要素の下位要素または属性
ビジネスプロセスの定義内容

項目
説明

name属性
アクティビティ名
アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。

case要素
activity※
アクティビティ
ビジネスプロセスを構成するアクティビティに変換されます。

condition属性
条件式
条件設定ダイアログの条件式に値が設定されます。

－
条件名
分岐アクティビティダイアログの項目です。
「condition<n>」が自動的に設定されます。<n>は分岐内でユニークになる整数が設定されます。

－
優先順位
分岐アクティビティダイアログの項目です。
switch要素内の条件の出現順に設定されます。

otherwise要素
activity※
アクティビティ
ビジネスプロセスを構成するアクティビティに変換されます。

－
優先順位
分岐アクティビティダイアログの項目です。
defaultに設定されます。

－
遷移先
分岐アクティビティダイアログの項目です。
case要素およびotherwise要素の定義から判断して設定されます。

（凡例）

－：該当する要素はありません。定義内容は自動で設定されます。

注※

activityの部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

(d)　flow要素の変換

flow要素およびその下位要素・属性は，並列処理開始アクティビティの定義内容に変換されます。インポートしたあとは，定義内容を並列処理アクティビティダイアログで変更できます。

注意

リンクの定義（BPELファイル内のlinks要素以下の定義）は変換されません。

並列処理終了アクティビティは，flow要素以下が並列処理開始アクティビティに変換されたときに自動的に設定されます。その際，並列処理終了アクティビティの名称として，並列処理開始アクティビティの名称に「_終了」を付けた名称が設定されます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，並列処理アクティビティダイアログの項目名です。

表E-16　flow要素の変換

flow要素の下位要素または属性 | ビジネスプロセスの定義内容
項目 | 説明
name属性 | アクティビティ名 | アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。
activity※ | アクティビティ | ビジネスプロセスを構成するアクティビティに変換されます。

注※

activityの部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

(e)　sequence要素の変換

sequence要素は，順次処理アクティビティの定義内容に変換されます。定義内容は変更できません。

なお，sequence要素には，変換される下位属性はありません。

Cosminexus サービスプラットフォームでは，「6.6.17　順次処理アクティビティ」に相当する位置に記述されたsequence要素だけが，ビジネスプロセスの定義に変換されます。

付録E.2　BPEL2.0のビジネスプロセス定義をインポートする場合

BPEL2.0の場合の，BPELファイルのサポート範囲およびビジネスプロセス定義への変換ルールについて説明します。

Cosminexus サービスプラットフォームでは，BPEL2.0の場合のBPELファイルに定義されている要素および属性で，一部サポートしていないものがあります。BPEL2.0の場合のBPELファイルに定義されている要素および属性について，Cosminexus サービスプラットフォームでのサポート有無を次の表に示します。

表E-17　BPELファイルに定義されている要素および属性のサポート有無（BPEL2.0の場合）

分類 | 要素 | 下位要素または属性 | サポート有無
ビジネスプロセス全体の定義に関する要素 | process要素 | name属性 | ×
targetNamespace属性 | ×
queryLanguage属性 | ×
expressionLanguage属性 | ×
suppressJoinFailure属性 | ×
exitOnStandardFault属性 | ×
partnerLinks要素 | ×
correlationSets要素 | ×
variables要素 | documentation要素 | ×
variable要素 | name属性 | ○
messageType属性 | ○
type属性 | ○
element属性 | ×
documentation要素 | ×
from要素 | ×
faultHandlers要素 | documentation要素 | ×
catch要素 | faultName属性 | ×
faultVariable属性 | ○
faultMessageType属性 | ×
faultElement属性 | ×
documentation要素 | ×
activity※1 | ○
catchAll要素 | documentation要素 | ×
activity※1 | ○
eventHandlers要素 | ×
import要素 | ×
messageExchanges要素 | ×
documentation要素 | ×
activity※1 | ○
基本アクティビティに関連する要素 | receive要素 | name属性 | ○
suppressJoinFailure属性 | ×
partnerLink属性 | ×
portType属性 | ×
operation属性 | ○
variable属性 | ○
createInstance属性 | △
messageExchange属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
correlations要素 | ×
fromParts要素 | ×
reply要素 | name属性 | ○
suppressJoinFailure属性 | ×
partnerLink属性 | ×
portType属性 | ×
operation属性 | ○
variable属性 | ○
faultName属性 | ○
messageExchange属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
correlations要素 | ×
toParts要素 | ×
invoke要素 | name属性 | ○
suppressJoinFailure属性 | ×
partnerLink属性 | ×
portType属性 | ○
operation属性 | ○
inputVariable属性 | ○
outputVariable属性 | ○
target要素 | ×
source要素 | ×
documentation要素 | ×
correlations要素 | ×
toParts要素 | ×
fromParts要素 | ×
catch要素 | faultName属性 | ×
faultVariable属性 | ○
faultMessageType属性 | ×
faultElement属性 | ×
documentation要素 | ×
activity※1 | ○
catchAll要素 | documentation要素 | ×
activity※1 | ○
assign要素 | name属性 | ○
suppressJoinFailure属性 | ×
validate属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
copy要素 | keepSrcElementName属性 | ×
ignoreMissingFromData属性 | ×
documentation要素 | ×
from要素 | variable属性 | ○
expressionLanguage属性 | ×
part属性 | ×
partnerLink属性 | ×
endpointReference属性 | ×
property属性 | ×
documentation要素 | ×
literal要素 | ○
query要素 | queryLanguage属性 | ×
to要素 | variable属性 | ○
part属性 | ×
partnerLink属性 | ×
expressionLanguage属性 | ×
property属性 | ×
documentation要素 | ×
query要素 | queryLanguage属性 | ×
empty要素 | name属性 | ○
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
throw要素 | name属性 | ○
suppressJoinFailure属性 | ×
faultName属性 | ×
faultVariable属性 | ○
target要素 | ×
source要素 | ×
documentation要素 | ×
wait要素 | name属性 | ○
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
for要素 | ○
└ | expressionLanguage属性 | ×
until要素 | ○
└ | expressionLanguage属性 | ×
compensate要素※2 | name属性 | ○
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
extensionActivity要素※2 | anyElementQName※3 | name属性 | ○
suppressJoinFailure属性 | ×
anyAttribute※3 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
any※3 | ×
rethrow要素※2 | name属性 | ○
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
exit要素※2 | name属性 | ○
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
validate要素※2 | name属性 | ○
suppressJoinFailure属性 | ×
variables属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
compensateScope要素※2 | name属性 | ○
suppressJoinFailure属性 | ×
target属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
構造アクティビティに関連する要素 | scope要素 | name属性 | ○
suppressJoinFailure属性 | ×
exitOnStandardFault属性 | ×
isolated属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
correlationSets要素 | ×
variables要素 | documentation要素 | ×
variable要素 | name属性 | ○
messageType属性 | ○
type属性 | ○
element属性 | ×
documentation要素 | ×
from要素 | ×
faultHandlers要素 | documentation要素 | ×
catch要素 | faultName属性 | ×
faultVariable属性 | ○
faultMessageType属性 | ×
faultElement属性 | ×
documentation要素 | ×
activity※1 | ○
catchAll要素 | documentation要素 | ×
activity※1 | ○
compensationHandler要素 | ×
eventHandlers要素 | ×
terminationHandler要素 | ×
partnerLinks要素 | ×
messageExchanges要素 | ×
activity※1 | ○
while要素 | name属性 | ○
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
condition要素 | ○
└ | expressionLanguage属性 | ×
activity※1 | ○
if要素 | name属性 | ○
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
condition要素 | ○
└ | expressionLanguage属性 | ×
elseif要素 | documentation要素 | ×
condition要素 | ○
activity※1 | ○
else要素 | documentation要素 | ×
activity※1 | ○
activity※1 | ○
flow要素 | name属性 | ○
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
links要素 | ×
activity※1 | ○
sequence要素 | name属性 | ○
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
activity※1 | ○
pick要素※2 | name属性 | ○
suppressJoinFailure属性 | ×
createInstance属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
onAlarm要素 | ×
onMessage要素 | ×
forEach要素※2 | name属性 | ○
suppressJoinFailure属性 | ×
counterName属性 | ×
parallel属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
startCounterValue要素 | ×
finalCounterValue要素 | ×
completionCondition要素 | ×
scope要素 | ×
repeatUntil要素※2 | name属性 | ○
suppressJoinFailure属性 | ×
target要素 | ×
source要素 | ×
documentation要素 | ×
condition要素 | ×

（凡例）

○：サポートしています。

△：制限付きでサポートしています。

×：サポートしていません。

注※1

activityの部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

注※2

未サポートアクティビティのため，name属性だけを反映した無操作アクティビティとして取り込まれます。

注※3

anyElementQNameの部分には，実際には拡張アクティビティを表す要素が入ります。anyAttributeは拡張アクティビティ固有の属性，anyは拡張アクティビティ固有の要素を示します。

＜この項の構成＞

(1)　ビジネスプロセス全体の定義に関連する要素の変換

(2)　基本アクティビティに関連する要素の変換

(3)　構造アクティビティに関連する要素の変換

(1)　ビジネスプロセス全体の定義に関連する要素の変換

BPELファイルに定義されている要素のうち，ビジネスプロセス全体に関連する内容（ビジネスプロセスそのものの設定，利用する変数など）の変換について次に説明します。

(a)　process要素の変換

process要素およびその下位要素・属性は，ビジネスプロセス全体の定義に関連する内容に変換されます。

変換の詳細を次の表に示します。

表E-18　process要素の変換

BPELファイルの要素 | ビジネスプロセスの定義内容
定義内容 | 説明
process要素 | variables要素 | 変数 | 詳細は「付録E.2(1)(b) variables要素の変換」を参照してください。
correlationSets要素 | 相関セット | 詳細は「付録E.2(1)(c) correlationSets要素の変換」を参照してください。
faultHandlers要素 | フォルト処理 | 詳細は「付録E.2(1)(d) faultHandlers要素の変換」を参照してください。
activity※ | アクティビティ | ビジネスプロセスを構成するアクティビティに変換されます。
－ | ビジネスプロセス名 | ビジネスプロセス定義を追加するためのダイアログで指定したビジネスプロセス名が設定されます。
－ | ビジネスプロセスのバージョン | 「1」が設定されます。
－ | 永続化 | ビジネスプロセス定義を追加するためのダイアログで指定した永続化の有無が設定されます。

（凡例）

－：該当する要素はありません。定義内容は，自動設定されるか，またはビジネスプロセス定義を追加するためのダイアログで指定した内容が設定されます。

注※

activityの部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

ビジネスプロセスの各アクティビティに変換される要素については，「付録E.2(2) 基本アクティビティに関連する要素の変換」および「付録E.2(3) 構造アクティビティに関連する要素の変換」を参照してください。

(b)　variables要素の変換

variables要素およびその下位要素・属性は，ビジネスプロセス（またはスコープ内）に設定されている変数の定義に変換されます。インポートしたあとは，定義内容を変数・相関セット一覧ダイアログで変更できます。

注意

Cosminexus サービスプラットフォームでは，スコープ内のフォルト処理を構成するアクティビティの割当変数として定義できる変数は，フォルト処理のあるスコープの上位スコープで定義されている変数です。

そのため，BPELファイルのscope/faultHandlers要素以下の要素で，変数として同じscope要素内の変数を利用している場合，インポートしたあとにビジネスプロセスで割当変数を再定義してください。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，変数・相関セット一覧ダイアログの項目名です。

表E-19　variables要素の変換

variables要素の下位要素または属性
ビジネスプロセスの定義内容

項目
説明

variable要素
name属性
変数名
変数の名称が設定されます。

messageType属性
種別
この属性が定義されていた場合，type属性は文字列型（string）に変換されます。
そのため，変換後に変数の種別をメッセージ型（XML）に変更し，電文フォーマットを登録する必要があります。

type属性
種別
次に示す変数の種別が設定されます。

booleanの場合
「boolean」が設定されます。

doubleで表現可能な型※の場合
「numeric」が設定されます。

上記以外または未定義の場合
「string」が設定されます。

－
部分指定
変数の部分指定には，値は設定されません。部分指定を利用する場合，インポートしたあとに変数・相関セット一覧ダイアログで設定してください。

（凡例）

－：該当する要素はありません。

注※

次の型が該当します。

int，short，byte，unsignedInt，unsignedShort，unsignedByte，float，double

(c)　correlationSets要素の変換

correlationSets要素の定義内容は，ビジネスプロセスの定義では「相関セット」に当たる情報です。BPELファイルをインポートしてビジネスプロセスを作成しても値は設定されません。

ビジネスプロセスで相関セットを利用する場合，インポートしたあとに変数・相関セット一覧ダイアログで相関セットを定義し，相関セットを使用するアクティビティの割当相関セット群ダイアログで相関セットを割り当ててください。

(d)　faultHandlers要素の変換

faultHandlers要素およびその下位要素・属性は，ビジネスプロセス内のフォルト処理の定義内容に変換されます。変換後の定義内容は，フォルト処理の割当ダイアログで変更できます。

注意

process要素の直下にfaultHandlers要素が定義されている場合，最上位のビジネスプロセスにスコープが作成され，そのスコープのフォルト処理として定義されます。その場合，process要素の直下のアクティビティは作成されたスコープ内に移動されます。

scope要素の配下にfaultHandlers要素が定義されている場合，上位のスコープ内にフォルト処理が設定されます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，フォルト処理の割当ダイアログの項目名です。

表E-20　faultHandlers要素の変換

faultHandlers要素の下位要素または属性 | ビジネスプロセスの定義内容
項目 | 説明
catch要素 | faultVariable属性 | 割当変数 | 変数については「付録E.2(1)(b) variables要素の変換」の注意事項も参照してください。
activity※ | アクティビティ | ビジネスプロセスを構成するアクティビティに変換されます。
catchAll要素 | activity※ | アクティビティ | ビジネスプロセスを構成するアクティビティに変換されます。
－ | 割当変数 | 常に「catch-all」が設定されます。
－ | 遷移先 | catch要素またはcatchAll要素が定義されている場合，フォルト処理の遷移先が自動的に設定されます。

（凡例）

－：該当する要素はありません。定義内容は自動で設定されます。

注※

activityの部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

(2)　基本アクティビティに関連する要素の変換

BPELファイルに定義されている要素のうち，基本アクティビティに変換される要素の変換について次に説明します。

(a)　receive要素の変換

receive要素およびその下位要素・属性は，受付アクティビティの定義内容に変換されます。インポートしたあとは，定義内容を受付アクティビティダイアログで変更できます。

注意

次の条件を満たすreceive要素が複数定義されている場合，二つ目以降のreceive要素は無操作アクティビティに変換されます。

portType属性が同一である

operation属性が同一である

変換の詳細を次の表に示します。表内の「項目」に示す名称は，受付アクティビティダイアログの項目名です。

表E-21　receive要素の変換

receive要素の下位要素または属性 | ビジネスプロセスの定義内容
項目 | 説明
operation属性 | オペレーション名 | portType属性が異なり，かつoperation属性が同一のreceive要素がすでに定義されている場合，オペレーション名の末尾に<n>（nは1以上の整数）が付与されます。
variable属性 | 割当変数 | 変数については「付録E.2(1)(b) variables要素の変換」の注意事項も参照してください。
createInstance属性 | インスタンス生成 | 属性値に関係なく「yes」に変換されます。
name属性 | アクティビティ名 | アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。
－ | 通信モデル | ビジネスプロセス定義の内容から判断して「同期」または「非同期」が設定されます。

（凡例）

－：該当する要素はありません。定義内容は自動で設定されます。

(b)　reply要素の変換

reply要素およびその下位要素・属性は，応答アクティビティの定義内容に変換されます。インポートしたあとは，定義内容を応答アクティビティダイアログで変更できます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，応答アクティビティダイアログの項目名です。

表E-22　reply要素の変換

reply要素の下位要素または属性
ビジネスプロセスの定義内容

項目
説明

operation属性
オペレーション名
portType属性とoperation属性が一致するreceive要素のオペレーション名の末尾に<n>（nは1以上の整数）が付与された場合（表E-21のoperation属性を参照），reply要素のオペレーション名の末尾にも同じ<n>が付与されます。
portType属性とoperation属性が一致する，receive要素とreply要素の変換について図E-2に示します。

variable属性
割当変数
変数については「付録E.2(1)(b) variables要素の変換」の注意事項も参照してください。

faultName属性
フォルト名
プリフィックスが付与されている場合は，ローカル名に変換されます。

name属性
アクティビティ名
アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。

図E-2　portType属性とoperation属性が一致するreceive要素とreply要素の変換

(c)　invoke要素の変換

invoke要素およびその下位要素・属性は，サービス呼出アクティビティの定義内容に変換されます。invoke要素の下位要素として，catch要素またはcatchAll要素が定義されている場合，これらはサービス呼出アクティビティのフォルト処理（フォルトコネクションで連結したアクティビティ）に変換されます。インポートしたあとは，サービス呼出アクティビティダイアログまたはフォルト処理の割当ダイアログから定義内容を変更できます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，サービス呼出アクティビティダイアログまたはフォルト処理の割当ダイアログの項目名です。

表E-23　invoke要素の変換

invoke要素の下位要素または属性
ビジネスプロセスの定義内容

項目
説明

portType属性
サービス名
該当するサービス部品やオペレーションがリポジトリにある場合にだけ変換されます。ローカル名に変換されます。

operation属性
オペレーション名
該当するサービス部品やオペレーションがリポジトリにある場合にだけ変換されます。

inputVariable属性
要求電文用割当変数
サービス部品とオペレーションがリポジトリに存在する場合に設定されます。
変数については「付録E.2(1)(b) variables要素の変換」の注意事項も参照してください。

outputVariable属性
応答電文用割当変数
サービス部品とオペレーションがリポジトリに存在し，かつ通信タイプが同期の場合に設定されます。
変数については「付録E.2(1)(b) variables要素の変換」の注意事項も参照してください。

name属性
アクティビティ名
アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。

catch要素
faultVariable属性
割当変数
フォルト処理の割当ダイアログの項目です。
変数については「付録E.2(1)(b) variables要素の変換」の注意事項も参照してください。

activity※
アクティビティ
ビジネスプロセスを構成するアクティビティに変換されます。

catchAll要素
activity※
アクティビティ
ビジネスプロセスを構成するアクティビティに変換されます。

－
割当変数
フォルト処理の割当ダイアログの項目です。
常に「catch-all」が設定されます。

（凡例）

－：該当する要素はありません。定義内容は自動で設定されます。

注※

activityの部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

(d)　assign要素の変換

assign要素およびその下位要素・属性は，代入アクティビティの定義内容に変換されます。インポートしたあとは，定義内容を代入アクティビティダイアログまたは代入アクティビティサブダイアログで変更できます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，代入アクティビティダイアログまたは代入アクティビティサブダイアログの項目名です。

表E-24　assign要素の変換

assign要素の下位要素または属性
ビジネスプロセスの定義内容

項目
説明

name属性
アクティビティ名
アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。

copy要素
from要素
variable属性
名前（コピー元の変数）
代入アクティビティサブダイアログの項目です。
代入アクティビティサブダイアログに設定される値は，variable属性，literal要素，およびquery要素の指定によって異なります。詳細は，表E-25を参照してください。
変数については「付録E.2(1)(b) variables要素の変換」の注意事項も参照してください。

literal要素
値（コピー元の式）
代入アクティビティサブダイアログの項目です。
代入アクティビティサブダイアログに設定される値は，variable属性，literal要素，およびquery要素の指定によって異なります。詳細は，表E-25を参照してください。

query要素
値（コピー元の式）
代入アクティビティサブダイアログの項目です。
代入アクティビティサブダイアログに設定される値は，variable属性，literal要素，およびquery要素の指定によって異なります。詳細は，表E-25を参照してください。

to要素
variable属性
変数名（コピー先）
代入アクティビティサブダイアログの項目です。
変数については「付録E.2(1)(b) variables要素の変換」の注意事項も参照してください。

variable属性，literal要素，およびquery要素の指定によって，代入アクティビティサブダイアログに設定される値を次の表に示します。

表E-25　代入アクティビティサブダイアログに設定される値

項番 | assign要素下のfrom要素の属性 | 代入アクティビティサブダイアログに設定される値
variable属性 | literal要素 | query要素
1 | × | × | × | 設定されません。
2 | ○ | × | × | ［コピー元］の［変数］の［名前］に，variable属性で指定した値が設定されます。
3 | × | ○ | × | ［コピー元］の［式］の［値］に，literal要素で指定した値が設定されます。
4 | × | × | ○ | ［コピー元］の［式］の［値］に，query要素で指定した値が設定されます。
5 | ○ | ○ | × | ［コピー元］の［変数］の［名前］に，variable属性で指定した値が設定されます。
6 | ○ | × | ○ | ［コピー元］の［式］の［値］に，query要素で指定した値が設定されます。
7 | × | ○ | ○ | assign要素は変換されません（エラーが発生します）。
8 | ○ | ○ | ○ | assign要素は変換されません（エラーが発生します）。

（凡例）

○：値を指定していることを示します。

×：値を指定していないことを示します。

(e)　empty要素の変換

empty要素は，無操作アクティビティの定義内容に変換されます。インポートしたあとは，定義内容を無操作アクティビティダイアログで変更できます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，無操作アクティビティダイアログの項目名です。

表E-26　empty要素の変換

empty要素の下位要素または属性 | ビジネスプロセスの定義内容
項目 | 説明
name属性 | アクティビティ名 | アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。

(f)　throw要素の変換

throw要素およびその下位要素・属性は，フォルト送出アクティビティの定義内容に変換されます。インポートしたあとは，定義内容をフォルト送出アクティビティダイアログで変更できます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，フォルト送出アクティビティダイアログの項目名です。

表E-27　throw要素の変換

throw要素の下位要素または属性 | ビジネスプロセスの定義内容
項目 | 説明
faultVariable属性 | 割当変数 | 変数については「付録E.2(1)(b) variables要素の変換」の注意事項も参照してください。
name属性 | アクティビティ名 | アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。

(g)　wait要素の変換

wait要素は，待機アクティビティの定義内容に変換されます。インポートしたあとは，定義内容を待機アクティビティダイアログで変更できます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，待機アクティビティダイアログの項目名です。

表E-28　wait要素の変換

wait要素の下位要素または属性 | ビジネスプロセスの定義内容
項目 | 説明
name属性 | アクティビティ名 | アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。
for要素 | 式 | 待機する間隔の情報です。［間隔］がONになります。
until要素 | 式 | 待機する期限の情報です。［期限］がONになります。

(3)　構造アクティビティに関連する要素の変換

BPELファイルに定義されている要素のうち，基本アクティビティに変換される要素の変換について次に説明します。

(a)　scope要素の変換

scope要素およびその下位要素・属性は，スコープアクティビティの定義内容に変換されます。インポートしたあとは，定義内容をスコープアクティビティダイアログで変更できます。

また，scope要素内に定義されている変数，相関セット，フォルト処理の情報は，変数・相関セット一覧ダイアログおよびフォルト処理の割当ダイアログで変更できます。

変換の詳細を次の表に示します。

表E-29　scope要素の変換

scope要素の下位要素または属性
ビジネスプロセスの定義内容

項目
説明

name属性
アクティビティ名
アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。

variables要素
変数
スコープ内で利用する変数の情報です。
変数については「付録E.2(1)(b) variables要素の変換」を参照してください。

correlationSets要素
相関セット
スコープ内で利用する相関セットの情報です。
相関セットの情報については「付録E.2(1)(c) correlationSets要素の変換」を参照してください。

faultHandlers要素
フォルト処理
スコープ内のフォルト処理の情報です。
フォルト処理の情報については「付録E.2(1)(d) faultHandlers要素の変換」を参照してください。

activity※
アクティビティ
ビジネスプロセスを構成するアクティビティに変換されます。

注※

activityの部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

(b)　while要素の変換

while要素およびその下位要素・属性は，繰り返しアクティビティの定義内容に変換されます。インポートしたあとは，定義内容を繰り返しアクティビティダイアログおよび条件設定ダイアログで変更できます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，繰り返しアクティビティダイアログまたは条件設定ダイアログの項目名です。

表E-30　while要素の変換

while要素の下位要素または属性 | ビジネスプロセスの定義内容
項目 | 説明
name属性 | アクティビティ名 | アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。
condition要素 | 条件式 | 条件設定ダイアログの条件式に値が設定されます。
activity※ | アクティビティ | ビジネスプロセスを構成するアクティビティに変換されます。
－ | 最大繰り返し回数 | 「100」が自動的に設定されます。

（凡例）

－：該当する要素はありません。定義内容は自動で設定されます。

注※

activityの部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

(c)　if要素の変換

if要素およびその下位要素・属性は，分岐開始アクティビティの定義内容に変換されます。インポートしたあとは，定義内容を分岐アクティビティダイアログおよび条件設定ダイアログで変更できます。

注意

分岐終了アクティビティは，if要素以下が分岐開始アクティビティに変換されたときに自動的に設定されます。その際，分岐終了アクティビティの名称として，分岐開始アクティビティの名称に「_終了」を付けた名称が設定されます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，分岐アクティビティダイアログまたは条件設定ダイアログの項目名です。

表E-31　if要素の変換

if要素の下位要素または属性
ビジネスプロセスの定義内容

項目
説明

name属性
アクティビティ名
アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。

condition要素
条件式
条件設定ダイアログの条件式に値が設定されます。

activity※
アクティビティ
ビジネスプロセスを構成するアクティビティに変換されます。

－
優先順位
分岐アクティビティダイアログの項目です。
常に「1」が設定されます。

elseif要素
condition要素
条件式
条件設定ダイアログの条件式に値が設定されます。

activity※
アクティビティ
ビジネスプロセスを構成するアクティビティに変換されます。

－
条件名
分岐アクティビティダイアログの項目です。
「condition<n>」が自動的に設定されます。<n>は分岐内でユニークになる整数が設定されます。

－
優先順位
分岐アクティビティダイアログの項目です。
出現順に「2」から順に設定されます。

else要素
activity※
アクティビティ
ビジネスプロセスを構成するアクティビティに変換されます。

－
優先順位
分岐アクティビティダイアログの項目です。
defaultに設定されます。

（凡例）

－：該当する要素はありません。定義内容は自動で設定されます。

注※

activityの部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

(d)　flow要素の変換

flow要素およびその下位要素・属性は，並列処理開始アクティビティの定義内容に変換されます。インポートしたあとは，定義内容を並列処理アクティビティダイアログで変更できます。

注意

リンクの定義（BPELファイル内のlinks要素以下の定義）は変換されません。

並列処理終了アクティビティは，flow要素以下が並列処理開始アクティビティに変換されたときに自動的に設定されます。その際，並列処理終了アクティビティの名称として，並列処理開始アクティビティの名称に「_終了」を付けた名称が設定されます。

変換の詳細を次の表に示します。表内の「項目」に示す名称は，並列処理アクティビティダイアログの項目名です。

表E-32　flow要素の変換

flow要素の下位要素または属性 | ビジネスプロセスの定義内容
項目 | 説明
name属性 | アクティビティ名 | アクティビティの名称が設定されます。ビジネスプロセス内に同一名称のアクティビティがすでに定義されている場合，アクティビティ名の末尾に<n>（nは1以上の整数）が付与されます。
activity※ | アクティビティ | ビジネスプロセスを構成するアクティビティに変換されます。

注※

activityの部分には，実際にはreceive要素，reply要素，invoke要素などが入ります。

(e)　sequence要素の変換

sequence要素は，順次処理アクティビティの定義内容に変換されます。定義内容は変更できません。

なお，sequence要素には，変換される下位属性はありません。

Cosminexus サービスプラットフォームでは，「6.6.17　順次処理アクティビティ」に相当する位置に記述されたsequence要素だけが，ビジネスプロセスの定義に変換されます。

付録F　カスタムアダプタ開発フレームワーク

カスタムアダプタ開発フレームワークを使用したカスタムアダプタの開発について説明します。

＜この節の構成＞

付録F.1　カスタムアダプタ開発フレームワークのAPI

付録F.2　カスタムアダプタ開発フレームワークの定義ファイル

付録F.3　カスタムアダプタ開発フレームワークのサンプルプログラム

付録F.4　カスタムアダプタの定義画面

付録F.5　カスタムアダプタを使用する際の環境設定

付録F.6　トラブルシューティング

付録F.1　カスタムアダプタ開発フレームワークのAPI

ここでは，Cosminexus サービスプラットフォームが提供するカスタムアダプタ開発フレームワークのAPIについて説明します。

カスタムアダプタ開発フレームワークで定義されているインターフェースおよび例外クラスは，次の場所に格納されています。

<Cosminexusのインストールディレクトリ>¥CSC¥lib¥csc_adapter.jar

カスタムアダプタをコンパイルするときは，このJARファイルをクラスパスに含めてください。

＜この項の構成＞

(1)　プロトコルコンバータインターフェース

(2)　アダプタコンテキストインターフェース

(3)　メッセージインターフェース

(4)　例外クラス

(1)　プロトコルコンバータインターフェース

(a)　CSCMsgCustomProtocolConverterインターフェース

説明

プロトコルコンバータを実装するためのインターフェースです。

CSCMsgCustomProtocolConverterのパッケージ名は，jp.co.Hitachi.soft.csc.msg.adapter.customです。

形式

public interface CSCMsgCustomProtocolConverter
{
 public void start()
         throws CSCMsgCustomAdapterException;
 public void stop();
 public void setCustomAdapterContext(CSCMsgCustomAdapterContext adapterContext);
 public void invoke(CSCMsgRequestMessage requestMessage,
                    CSCMsgResponseMessage responseMessage)
         throws CSCMsgCustomAdapterException;
}

メソッド

CSCMsgCustomProtocolConverterインターフェースのメソッドを次の表に示します。

メソッド名
説明

startメソッド
カスタムアダプタが開始されるときに呼び出されるメソッドです。プロトコルコンバータ開始処理を実装します。
このメソッドは，一度だけ呼び出されます。

stopメソッド
カスタムアダプタが終了されるときに呼び出されるメソッドです。プロトコルコンバータ終了処理を実装します。
このメソッドは，一度だけ呼び出されます。

setCustomAdapterContextメソッド
アダプタコンテキストが設定されるときに呼び出されるメソッドです。与えられたアダプタコンテキストをプロトコルコンバータのインスタンスフィールドに格納する処理を記述します。
このメソッドは，一度だけ呼び出されます。

invokeメソッド
カスタムアダプタを介してサービス部品を呼び出すときに呼び出されるメソッドです。サービス部品を呼び出す処理を記述します。
このメソッドは，サービスアダプタの呼び出し要求があるたびに呼び出されます。

カスタムアダプタ開発フレームワークからの各メソッドの呼び出し順序を次の図に示します。

図F-1　カスタムアダプタ開発フレームワークからの各メソッドの呼び出し順序

1. コンストラクタ

プロトコルコンバータは，カスタムアダプタ開始時に，カスタムアダプタ開発フレームワークから呼び出されたデフォルトコンストラクタによってインスタンス化されます。

2. setCustomAdapterContextメソッド

プロトコルコンバータクラスがインスタンス化された直後に，カスタムアダプタ開発フレームワークから呼ばれます。このメソッドは，カスタムアダプタの開始時に一度だけ呼ばれます。引数として受け取ったアダプタコンテキストは，プロトコルコンバータのインスタンスフィールドに保持してください。

3. startメソッド

setServiceAdapterInfoメソッドの直後にカスタムアダプタ開発フレームワークから呼ばれます。このメソッドは，カスタムアダプタの開始時に一度だけ呼ばれます。

4. invokeメソッド

サービス部品呼び出し処理時にカスタムアダプタ開発フレームワークから呼ばれます。このメソッドで，プロトコル変換とサービス呼び出し処理を行います。

5. stopメソッド

カスタムアダプタがHCSCサーバから削除される直前にカスタムアダプタ開発フレームワークから呼ばれます。アダプタの終了時処理を行います。このメソッドは，カスタムアダプタの終了時に一度だけ呼ばれます。

注意事項

publicなデフォルトコンストラクタ
カスタムアダプタ開発フレームワークは，このインターフェースを実装したクラスをインスタンス化するときに，デフォルトコンストラクタを使用します。そのため，このインターフェースを実装したクラスでは，publicなデフォルトコンストラクタを実装する必要があります。

マルチスレッド
プロトコルコンバータは，複数のカスタムアダプタのインスタンスから共有されるため，スレッドセーフなクラスを実装する必要があります。

例外の送出
CSCMsgCustomProtocolConverterの各メソッドでは，指定された例外だけ送出できます。java.lang.RuntimeExceptionおよびその派生クラスは送出しないでください。送出した場合，動作の保証はできません。

●startメソッド

説明

カスタムアダプタが開始されるときに呼び出されるメソッドです。

カスタムアダプタのライフサイクルを通じて使用するリソースは，このメソッドで確保することを推奨します。

形式

public void start()
 throws CSCMsgCustomAdapterException;

パラメタ

なし。

例外

jp.co.Hitachi.soft.csc.msg.adapter.custom.CSCMsgCustomAdapterException：

startメソッドの実行に失敗した場合に発生させます。

戻り値

なし。

●stopメソッド

説明

カスタムアダプタ終了時に呼び出されるメソッドです。カスタムアダプタの終了処理を記述します。

形式

public void stop();

パラメタ

なし。

例外

なし。

戻り値

なし。

●setCustomAdapterContextメソッド

説明

アダプタコンテキストが設定されるときに呼び出されるメソッドです。

このメソッドのあとに必ずstartメソッドを呼び出します。

このメソッドで受け取ったアダプタコンテキストインターフェースは，カスタムアダプタのライフサイクルを通じて保持する必要があります。

形式

public void setCustomAdapterContext(CSCMsgCustomAdapterContext adapterContext);

パラメタ

adapterContext：

CSCMsgCustomAdapterContextのリファレンスが渡されます。

例外

なし。

戻り値

なし。

●invokeメソッド

説明

カスタムアダプタを経由してサービス部品を呼び出すときに，呼び出されるメソッドです。サービス部品を呼び出す処理を記述します。

requestMessageに格納されている要求電文を基にサービス部品を呼び出します。

通信モデルが同期の場合，応答電文はresponseMessageを格納します。

通信モデルが非同期の場合，responseMessageにはnullが渡されます。

形式

public void invoke (CSCMsgRequestMessage requestMessage,
                   CSCMsgResponseMessage responseMessage)
 throws CSCMsgCustomAdapterException;

パラメタ

requestMessage：
要求電文が格納されたCSCMsgRequestMessageのリファレンスが渡されます。

responseMessage：
通信モデルが同期の場合，応答電文を格納するCSCMsgResponseMessageのリファレンスが渡されます。通信モデルが非同期通信の場合，nullが渡されます。

例外

jp.co.Hitachi.soft.csc.msg.adapter.custom.CSCMsgCustomAdapterException：

invokeメソッドの実行に失敗した場合に発生させます。

戻り値

なし。

(2)　アダプタコンテキストインターフェース

(a)　CSCMsgCustomAdapterContextインターフェース

説明

プロトコルコンバータがアダプタ情報を取得するためのインターフェースです。CSCMsgCustomAdapterContextのパッケージ名は，jp.co.Hitachi.soft.csc.msg.adapter.customです。

アダプタコンテキストインターフェースは，カスタムアダプタ開始処理の直前に，setCustomAdapterContextメソッドの引数として入力されます。プロトコルコンバータでは，この引数をインスタンスフィールドとして保持し，必要な情報を取得します。

形式

public interface CSCMsgCustomAdapterContext
{
 public String getAdapterName();
 public Properties getProperties();
 public byte[] getResourceAsBytes(String fileName)
   throws CSCMsgResourceAccessException;
 public java.io.InputStream getResourceAsStream(String fileName)
   throws CSCMsgResourceAccessException;
}

メソッド

CSCMsgCustomAdapterContextインターフェースのメソッドを次の表に示します。

メソッド名 | 説明
getAdapterNameメソッド | カスタムアダプタの名称を取得します。
getPropertiesメソッド | カスタムアダプタプロパティファイルの内容をPropertiesとして取得します。
getResourceAsBytesメソッド | リソースファイルの内容をバイナリ形式で取得します。
getResourceAsStreamメソッド | リソースファイルにアクセスするためのストリームを取得します。

●getAdapterNameメソッド

説明

カスタムアダプタの名称を取得します。

形式

public String getAdapterName();

パラメタ

なし。

例外

なし。

戻り値

カスタムアダプタの名称を返却します。

●getPropertiesメソッド

説明

カスタムアダプタプロパティファイルの内容をPropertiesとして取得します。

形式

public Properties getProperties();

パラメタ

なし。

例外

なし。

戻り値

プロパティファイルの内容を返却します。

●getResourceAsBytesメソッド

説明

リソースファイルの内容をバイナリ形式で取得します。

形式

public byte[] getResourceAsBytes(String fileName)
 throws CSCMsgResourceAccessException;

パラメタ

fileName：

アクセスしたいリソースのファイル名を指定します。

例外

CSCMsgResourceAccessException：

fileNameで指定したリソースが見つからなかった，またはjava.io.IOExceptionが発生しました。

戻り値

リソースファイルの内容をバイナリ形式で返却します。

●getResourceAsStreamメソッド

説明

リソースファイルにアクセスするためのストリームを取得します。

形式

public java.io.InputStream getResourceAsStream(String fileName)
 throws CSCMsgResourceAccessException;

パラメタ

fileName：

アクセスしたいリソースのファイル名を指定します。

例外

CSCMsgResourceAccessException：

fileNameで指定したリソースが見つからなかった，またはjava.io.IOExceptionが発生しました。

戻り値

リソースファイルの内容をストリーム形式で返却します。

注意事項

このメソッドで取得したストリームをstaticなフィールドに割り当てないでください。メモリリークが発生するおそれがあります。

(3)　メッセージインターフェース

HCSCサーバとプロトコルコンバータの間でメッセージを交換するためのインターフェースの一覧を次の表に示します。

表F-1　メッセージ操作に使用するAPIの一覧

インターフェース名 | 説明
CSCMsgMessageConstantインターフェース | メッセージの操作に必要な定数を定義します。
CSCMsgRequestMessageインターフェース | サービス部品呼び出しに必要な情報（オペレーション名，電文など）を取得するためのメソッドを提供します。
CSCMsgResponseMessageインターフェース | サービス部品呼び出し結果（電文またはフォルト情報）を格納するためのメソッドを提供します。

(a)　CSCMsgMessageConstantインターフェース

説明

プロトコルコンバータがメッセージの操作に必要な定数を定義するインターフェースです。CSCMsgMessageConstantのパッケージ名は，jp.co.Hitachi.soft.csc.msg.adapter.customです。

プロトコルコンバータで要求メッセージに格納されている電文の種類，または応答メッセージに格納する電文の種類を確認するためにこの定数を使用します。

形式

public interface CSCMsgMessageConstant
{
 public static final int MESSAGE_TYPE_NONE;
 public static final int MESSAGE_TYPE_XML;
 public static final int MESSAGE_TYPE_BINARY;
 public static final int MESSAGE_TYPE_ANY;
}

メンバ属性

MESSAGE_TYPE_NONE：

電文が格納されていないことを示します。

MESSAGE_TYPE_XML：

電文の形式がXML形式(DOM形式)であることを示します。

MESSAGE_TYPE_BINARY：

電文の形式がバイナリであることを示します。

MESSAGE_TYPE_ANY：

電文の形式が任意形式であることを示します。

(b)　CSCMsgRequestMessageインターフェース

説明

サービス部品の呼び出しに必要な情報（オペレーション名，電文など）を取得するためのメソッドを提供するインターフェースです。

CSCMsgRequestMessageのパッケージ名は，jp.co.Hitachi.soft.csc.msg.adapter.customです。

形式

public interface CSCMsgRequestMessage
{
 public byte[] getBytes()
         throws CSCMsgIllegalMessageTypeException,
                CSCMsgInvalidMessageException;
 public Map getMessageContext();
 public int getMessageType();
 public String getOperationName();
 public org.w3c.dom.Document getXMLDocument()
         throws CSCMsgIllegalMessageTypeException,
                CSCMsgInvalidMessageException;
}

メソッド

CSCMsgRequestMessageインターフェースのメソッドを次の表に示します。

メソッド名 | 説明
getBytesメソッド | バイナリ形式の電文を取得します。
getMessageContextメソッド | 未サポートのメソッドです。
getMessageTypeメソッド | 要求メッセージに格納されている電文の種別を取得します。
getOperationNameメソッド | サービス部品呼び出し時に呼び出すオペレーションの名称を取得します。
getXMLDocumentメソッド | XML形式の電文を取得します。

●getBytesメソッド

説明

バイナリ形式の電文を取得します。

形式

public byte[] getBytes()
 throws CSCMsgIllegalMessageTypeException,
        CSCMsgInvalidMessageException;

パラメタ

なし。

例外

jp.co.Hitachi.soft.csc.msg.adapter.custom.CSCMsgIllegalMessageTypeException：
電文の形式がバイナリではありません。または，電文が格納されている状態です。電文の種別がXML形式の場合は，このメソッドを使用して電文を取得することはできません。

jp.co.Hitachi.soft.csc.msg.adapter.custom.CSCMsgInvalidMessageException：
格納されている電文が不正です。

戻り値

設定されている電文の種別がバイナリ形式（MESSAGE_TYPE_BINARY）の場合，バイト配列で応答を返します。

電文が格納されていない（MESSAGE_TYPE_NONE）場合，0バイトのバイト配列（長さ0の配列）を返します。

注意事項

このメソッドで取得したバイナリ電文（バイト配列）については，変更しても問題ありません。

このメソッドを実行したときに，オブジェクトのコピーを作成します。そのため，再度このメソッドを発行すると，変更前のオブジェクトを再取得することになるので注意してください。

●getMessageContextメソッド

説明

未サポートのメソッドです。

呼び出すと必ずnullを返却します。

形式

public Map getMessageContext();

パラメタ

なし。

例外

なし。

戻り値

常にnullを返します。

●getMessageTypeメソッド

説明

要求メッセージに格納されている電文の種別を取得します。

形式

public int getMessageType();

パラメタ

なし。

例外

なし。

戻り値

要求メッセージに格納されている電文の種別を返却します。返却される値については，「付録F.1(3)(a) CSCMsgMessageConstantインターフェース」を参照してください。ただし，任意形式のカスタムアダプタを作成した場合は，電文の種別に関係なく，「MESSAGE_TYPE_ANY」を返却します。

●getOperationNameメソッド

説明

サービス部品呼び出し時に呼び出すオペレーションの名称を取得します。

形式

public String getOperationName();

パラメタ

なし。

例外

なし。

戻り値

呼び出すオペレーションの名称を返却します。

●getXMLDocumentメソッド

説明

XML形式の電文を取得します。

形式

public org.w3c.dom.Document getXMLDocument()
 throws CSCMsgIllegalMessageTypeException,
        CSCMsgInvalidMessageException;

パラメタ

なし。

例外

jp.co.Hitachi.soft.csc.msg.adapter.custom.CSCMsgIllegalMessageTypeException：
電文の形式がXML形式ではありません。または，電文が格納されている状態です。電文の種別がバイナリ形式の場合は，このメソッドを使用して電文を取得することはできません。

jp.co.Hitachi.soft.csc.msg.adapter.custom.CSCMsgInvalidMessageException：
格納されている電文が不正です。

戻り値

設定されている電文の種別がXML形式（MESSAGE_TYPE_XML）の場合，DOM形式のオブジェクトで応答を返します。

電文が格納されていない（MESSAGE_TYPE_NONE）場合，nullを返します。

注意事項

このメソッドで取得したXML電文（DOM）については，変更しても問題ありません。

このメソッドを実行したときに，オブジェクトのコピーを作成します。そのため，再度このメソッドを発行すると，変更前のオブジェクトを再取得することになるので注意してください。

任意形式のカスタムアダプタを作成した場合，このメソッドを実行するとエラー（KDEC03016-E）になり，電文を取得できません。この場合は，getBytesメソッドを使用してください。

(c)　CSCMsgResponseMessageインターフェース

説明

サービス部品呼び出し結果（電文またはフォルト情報）を格納するためのメソッドを提供するインターフェースです。

CSCMsgResponseMessageのパッケージ名は，jp.co.Hitachi.soft.csc.msg.adapter.customです。

形式

public interface CSCMsgResponseMessage
{
 public int getMessageType();
 public void setBytes(byte[] message)
         throws CSCMsgIllegalMessageTypeException,
                CSCMsgMultipleMessageInsertionException,
                CSCMsgInvalidMessageException;
 public void setFault(String faultCode,
                      String faultString,
                      String faultActor,
                      byte[] faultDetail)
         throws CSCMsgMultipleMessageInsertionException;
 public void setFault(String faultCode,
                      String faultString,
                      String faultActor,
                      org.w3c.dom.Document faultDetail)
         throws CSCMsgMultipleMessageInsertionException,
                CSCMsgInvalidMessageException;
 public void setXMLDocument(org.w3c.dom.Document dom)
         throws CSCMsgIllegalMessageTypeException,
                CSCMsgMultipleMessageInsertionException,
                CSCMsgInvalidMessageException;
}

メソッド

CSCMsgResponseMessageインターフェースのメソッドを次の表に示します。

メソッド名 | 説明
getMessageTypeメソッド | 応答メッセージに格納する電文の種別を取得します。
setBytesメソッド | 応答メッセージにバイナリ形式の電文を格納します。
setFaultメソッド（形式1） | サービス部品を呼び出すときに発生したフォルト情報を格納します。
setFaultメソッド（形式2） | サービス部品を呼び出すときに発生したフォルト情報を格納します。
setXMLDocumentメソッド | 応答メッセージにXML形式の電文を格納します。

●getMessageTypeメソッド

説明

応答メッセージに格納する電文の種別を取得します。

形式

public int getMessageType();

パラメタ

なし。

例外

なし。

戻り値

応答メッセージに格納する電文の種別を返却します。ただし，任意形式のカスタムアダプタを作成した場合は，電文の種別に関係なく，「MESSAGE_TYPE_ANY」を返却します。

MESSAGE_TYPE_NONE：
電文を格納しません。

MESSAGE_TYPE_XML：
電文の種別がXML形式の電文を格納します。

MESSAGE_TYPE_BINARY：
電文の種別がバイナリ形式の電文を格納します。

●setBytes メソッド

説明

応答メッセージにバイナリ形式の電文を格納します。

形式

public void setBytes(byte[] message)
       throws CSCMsgIllegalMessageTypeException,
              CSCMsgMultipleMessageInsertionException,
              CSCMsgInvalidMessageException;

パラメタ

message：

バイナリ形式の電文を指定します。

なお，バイナリ形式の電文を格納した場合は，電文の種別をバイナリ形式（MESSAGE_TYPE_BINARY）に設定し，長さ0のバイト列やnullを格納した場合は，電文を格納しない種別（MESSAGE_TYPE_NONE）に設定します。

例外

jp.co.Hitachi.soft.csc.msg.adapter.custom.CSCMsgIllegalMessageTypeException：
設定されている電文の種別がバイナリではありません。または電文が格納されていない状態ではありません。要求時の電文の形式がXMLの場合に，応答時の電文の形式をバイナリに変えることはできません。

jp.co.Hitachi.soft.csc.msg.adapter.custom.CSCMsgMultipleMessageInsertionException：
すでに電文またはフォルト情報が設定されています。

jp.co.Hitachi.soft.csc.msg.adapter.custom.CSCMsgInvalidMessageException：
指定したバイナリ形式に誤りがあります。

戻り値

なし。

注意事項

任意形式のカスタムアダプタを作成した場合は，電文の形式に関係なく，このメソッドを使用してください。格納した電文の種別を任意形式（MESSAGE_TYPE_ANY）に設定します。長さ0のバイト列やnullを格納した場合でも，任意形式（MESSAGE_TYPE_ANY）に設定します。

●setFaultメソッド（形式1）

説明

サービス部品を呼び出したときに発生したフォルト情報を格納します。

faultDetailの内容をバイナリ形式で格納する場合に使用します。

なお，応答時の電文は存在しないため，電文を格納しない種別（MESSAGE_TYPE_NONE）を設定します。

形式

public void setFault(String faultCode,
                    String faultString,
                    String faultActor,
                    byte[] faultDetail)
       throws CSCMsgMultipleMessageInsertionException;

パラメタ

faultCode：
FaultCode情報を指定します。
nullを指定した場合，"Server.ServiceExecutionError"が格納されます。

faultString：
FaultString情報を指定します。
nullを指定した場合，"Service Excution Error at CustomAdapter"が格納されます。

faultActor：
FaultActor情報を指定します。
nullを指定した場合，HCSC-Definerで設定したサービスIDが格納されます。

faultDetail：
XML形式のDetail情報をバイト配列で指定します。
長さ0のバイト列を指定した場合，そのまま長さ0のバイト列が格納されます。nullを指定した場合，そのままnullが格納されます。

例外

jp.co.Hitachi.soft.csc.msg.adapter.custom.CSCMsgMultipleMessageInsertionException：

すでに応答電文またはフォルト情報が設定されています。

戻り値

なし。

注意事項

faultDetailは，XML文書をバイナリ化したものです。必ず，先頭にXML宣言をしてください。宣言をしなかった場合は，エラーにはなりませんが，正常に動作しないおそれがあります。

XML文書をバイト配列に変換する場合は，文字コードとしてUTF-8を使用してください。指定した文字コード以外では，正常に動作しないおそれがあります。

●setFaultメソッド（形式2）

説明

サービス部品を呼び出したときに発生したフォルト情報を格納します。

faultDetailの内容をXML形式（DOM形式）で格納する場合に使用します。

なお，応答時の電文は存在しないため，電文を格納しない種別（MESSAGE_TYPE_NONE）を設定します。

形式

public void setFault(String faultCode,
                    String faultString,
                    String faultActor,
                    org.w3c.dom.Document faultDetail)
       throws CSCMsgMultipleMessageInsertionException,
              CSCMsgInvalidMessageException;

パラメタ

faultCode：
FaultCode情報を指定します。
nullを指定した場合，"Server.ServiceExecutionError"が格納されます。

faultString：
FaultString情報を指定します。
nullを指定した場合，"Service Excution Error at CustomAdapter"が格納されます。

faultActor：
FaultActor情報を指定します。
nullを指定した場合，HCSC-Definerで設定したサービスIDが格納されます。

faultDetail：
Detail情報をDOM形式で指定します。
nullを指定した場合，そのままnullが格納されます。

例外

jp.co.Hitachi.soft.csc.msg.adapter.custom.CSCMsgMultipleMessageInsertionException：
すでに応答電文またはフォルト情報が設定されています。

jp.co.Hitachi.soft.csc.msg.adapter.custom.CSCMsgInvalidMessageException：
指定したDOM形式に誤りがあります。

戻り値

なし。

●setXMLDocument メソッド

説明

応答メッセージにXML形式（DOM形式）の電文を格納します。

形式

public void setXMLDocument(org.w3c.dom.Document dom)
       throws CSCMsgIllegalMessageTypeException,
              CSCMsgMultipleMessageInsertionException,
              CSCMsgInvalidMessageException;

パラメタ

dom：

DOM形式の電文を指定します。

なお，XML形式の電文を格納した場合は，電文の種別をXML（MESSAGE_TYPE_XML）に設定し，nullを格納した場合は，電文を格納しない種別（MESSAGE_TYPE_NONE）に設定します。

例外

jp.co.Hitachi.soft.csc.msg.adapter.custom.CSCMsgIllegalMessageTypeException：
設定されている電文の種別がXMLではありません。または電文が格納されていない状態ではありません。要求時の電文の形式がXMLの場合に，応答時の電文の形式をバイナリに変えることはできません。

jp.co.Hitachi.soft.csc.msg.adapter.custom.CSCMsgMultipleMessageInsertionException：
すでに電文またはフォルト情報が設定されています。

jp.co.Hitachi.soft.csc.msg.adapter.custom.CSCMsgInvalidMessageException：
指定したDOM形式に誤りがあります。

戻り値

なし。

注意事項

任意形式のカスタムアダプタを作成した場合，このメソッドを実行するとエラー（KDEC03016-E）になり，電文を格納できません。この場合は，setBytesメソッドを使用してください。

(4)　例外クラス

プロトコルコンバータの開発時に発生する例外クラスの一覧を次の表に示します。

表F-2　プロトコルコンバータの例外クラス一覧

クラス名
説明

CSCMsgCustomAdapterExceptionクラス
カスタムアダプタの初期化処理やサービス部品を呼び出す処理で例外が発生した場合に送出する例外です。

CSCMsgIllegalMessageTypeExceptionクラス
電文の取得または格納時に，電文タイプと異なるタイプの電文形式のメソッドが呼ばれた場合に送出する例外です。

CSCMsgMultipleMessageInsertionExceptionクラス
すでに電文またはフォルト情報が格納されれた場合に送出する例外です。
電文またはフォルト情報を格納したあとに，再び電文またはフォルト情報を設定することはできません。

CSCMsgInvalidMessageException クラス
要求電文の場合，格納さてている電文の種別（形式）が不正なときに送出する例外です。
応答電文の場合，不正な形式の電文種別を指定しているときに送出する例外です。

CSCMsgResourceAccessException クラス
リソースアクセス処理中にエラーが発生した場合に送出する例外です。
次のどちらかの場合に発生します。

取得しようとしたリソースがない場合

入出力例外（java.io.IOException）が発生した場合

付録F.2　カスタムアダプタ開発フレームワークの定義ファイル

ここでは，カスタムアダプタ開発フレームワークでカスタムアダプタを開発するときに定義するファイルの内容について説明します。

＜この項の構成＞

(1)　カスタムアダプタ開発フレームワーク動作定義ファイル

(2)　カスタムアダプタプロパティファイル

(3)　カスタムアダプタ用アプリケーション統合属性ファイル

(4)　カスタムアダプタ定義ファイル

(1)　カスタムアダプタ開発フレームワーク動作定義ファイル

カスタムアダプタ開発フレームワーク動作定義ファイルは，java.util.PropertiesクラスのloadFromXMLメソッドで読み込むことができるXML形式のプロパティファイルです。カスタムアダプタ開発フレームワーク動作定義ファイルのファイル名は必ず「framework_properties.xml」にしてください。

機能

カスタムアダプタ開発フレームワークが読み込むプロトコルコンバータのクラス名（パッケージ名を含む）を指定します。プロトコルコンバータのクラス名は，key属性がclassnameであるentryタグに記述します。

ファイルの格納先

プロトコルコンバータのJARファイルを作成するときに，JARファイルのルートディレクトリに格納します。プロトコルコンバータのJARファイルの作成方法については，「5.3.6(5) JARファイルの作成」を参照してください。

注意事項

ファイルが存在しない場合，またはjava.util.PropertiesクラスのloadFromXMLメソッドで読み込めないファイル形式の場合は，カスタムアダプタを起動できません。

複数のentry要素でkey属性を重複して指定しないでください。

記述例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="classname">protocolconverter.MyProtocolConverter</entry>
</properties>

(2)　カスタムアダプタプロパティファイル

カスタムアダプタプロパティファイルは，java.util.PropertiesクラスのloadFromXMLメソッドで読み込むことができるXML形式のプロパティファイルです。カスタムアダプタプロパティファイルのファイル名は，必ず「customadapter_properties.xml」にしてください。

機能

プロトコルコンバータで使用するプロパティを設定します。

アダプタの開始時に，カスタムアダプタ開発フレームワークからプロパティが読み込まれます。読み込まれたプロパティは，アダプタコンテキストからgetPropertyメソッドで取得するPropertyインスタンスとして取得できます。

ファイルの格納先

カスタムアダプタの定義時に，独自定義ファイルとしてカスタムアダプタに登録します。カスタムアダプタの定義方法については，「5.3.6　カスタムアダプタを定義する」を参照してください。

注意事項

ファイルが存在する場合でも，java.util.PropertiesクラスのloadFromXMLメソッドで読み込むことができないファイル形式のときは，カスタムアダプタを起動できません。

記述例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="init">1</entry>
<entry key="min">0</entry>
<entry key="max">10</entry>
</properties>

(3)　カスタムアダプタ用アプリケーション統合属性ファイル

カスタムアダプタ用アプリケーション統合属性ファイルは，Cosminexusアプリケーション統合属性ファイルの一つで，次の場合に使用するXML形式のファイルです。

アプリケーション，EJB-JAR，およびSessionBeanの属性を一括して取得する場合

アプリケーション，EJB-JAR，およびSessionBeanの属性を一括して編集する場合

カスタムアダプタ用アプリケーション統合属性ファイルのファイル名は，必ず「cscadapter_property.xml」にしてください。

Cosminexusアプリケーション統合属性ファイルの詳細については，次の個所を参照してください。

マニュアル「Cosminexus アプリケーションサーバ アプリケーション設定操作ガイド」の「9.2　アプリケーション統合属性ファイルによるプロパティ設定」

マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「2.　Cosminexusアプリケーション属性ファイル（cosminexus.xml）」

機能

アプリケーション統合属性ファイルを使用することで，実行環境に合わせてカスタムアダプタのパラメタを設定できます。

ファイルの格納先

カスタムアダプタの定義時に，独自定義ファイルとしてカスタムアダプタに登録します。カスタムアダプタの定義方法については，「5.3.6　カスタムアダプタを定義する」を参照してください。

指定内容

カスタムアダプタ用アプリケーション統合属性ファイルのテンプレートを次の表に示します。このテンプレートを基に，可変部分を変更または追加してください。

また，<hitachi-application-all-property>/<ejb-jar>/<hitachi-session-bean-property>以下の要素として，次の項目の追加および編集ができます。

<ejb-ref>（リモートインターフェースを持つEnterprise Beanへの参照情報についての定義）

<ejb-local-ref>（EJB参照情報の設定）

<env-entry>（環境エントリについての定義）

<resource-ref>（リソース参照についての定義）

<resource-env-ref>（リソース環境変数についての定義）

<linked-queue>（queue名称）

表F-3　カスタムアダプタ用アプリケーション統合属性ファイルのテンプレート

タグ
説明
変更可否

<?xml version="1.0" encoding="MS932"?>
XML宣言
○

<!DOCTYPE hitachi-application-all-property
PUBLIC '-//Hitachi, Ltd.//DTD Application All Property 7.1//EN'
'http://localhost/hitachi-application-all-property_7_1.dtd'>
DOCTYPE宣言
－

<hitachi-application-all-property>
ルートタグ
－

　<hitachi-application-property>
アプリケーションに関する情報の定義開始タグ
－

　　<description></description>
アプリケーションの説明
○

　　<icon>
Deployツール上に表示されるJ2EEアプリケーションのアイコンの定義開始タグ
－

　　　<small-icon></small-icon>
スモールアイコン（16×16）のファイル名
○

　　　<large-icon></large-icon>
ラージアイコン（32×32）のファイル名
○

　　</icon>
Deployツール上に表示されるJ2EEアプリケーションのアイコンの定義終了タグ
－

　　<lookup-name>CTMADP</lookup-name>
クライアントからEJBをルックアップするときに使う名称
○※1

　　<security-prop>
Enterprise Beanのセキュリティの管理方法の定義開始タグ
－

　　　<security-method>no_security_for_methods_without_roles
　　　</security-method>
セキュリティの管理方法
－

　　　<default-security-role></default-security-role>
security-methodにmap_methods_without_rolesを指定した場合のデフォルトセキュリティロール
－

　　</security-prop>
Enterprise Beanのセキュリティの管理方法の定義終了タグ
－

　　<start-order>120</start-order>
J2EEアプリケーション開始時および停止時の順番
△※2

　　<scheduling-unit>Application</scheduling-unit>
キューの配置モデルの指定
－

　　<scheduling>
CTMとの連携についての定義開始タグ
－

　　　<queue-name>CTMADP</queue-name>
スケジューリングをするキューの名称
○※1

　　　<parallel-count>1</parallel-count>
CTMがアプリケーションを呼び出すために用意するスレッド数
－

　　　<queue-length></queue-length>
スケジューリングをするキューの長さ
－

　　</scheduling>
CTMとの連携についての定義終了タグ
－

　　<managed-by-ctm>false</managed-by-ctm>
CTM連携をするかどうかの指定
－

　　<method-observation-recovery-mode>
　　</method-observation-recovery-mode>
J2EEアプリケーションの時間監視機能の障害回復モードの指定
－

　</hitachi-application-property>
アプリケーションに関する情報の定義終了タグ
－

　<ejb-jar>
EJBに関する情報の定義開始タグ
－

　　<hitachi-ejb-jar-property>
EJB-JARの属性に関する情報の定義開始タグ
－

　　<description xml:lang="en"></description>
EJB-JARの説明
○

　　　<display-name xml:lang="en">CSCMsgServiceAdapter
　　　</display-name>
EJB-JARの表示名
－

　　　<icon xml:lang="en">
GUIツール上に表示されるEJB-JARのアイコンの定義開始タグ
－

　　　　<small-icon></small-icon>
スモールアイコン（16×16）のファイル名
○

　　　　<large-icon></large-icon>
ラージアイコン（32×32）のファイル名
○

　　　</icon>
GUIツール上に表示されるEJB-JARのアイコンの定義終了タグ
－

　　　<ejb-client-jar></ejb-client-jar>
クライアントJARファイルの名称
－

　　</hitachi-ejb-jar-property>
EJB-JARの属性に関する情報の定義終了タグ
－

　　<hitachi-session-bean-property>
SessionBeanの属性の定義の開始タグ
－

　　　<description xml:lang="en"></description>
SessionBeanの説明
○

　　　<display-name xml:lang="en">CSCMsgServiceAdapterEJB
　　　</display-name>
SessionBeanの表示名
－

　　　<icon xml:lang="en">
GUIツール上に表示されるSessionBeanのアイコンの定義開始タグ
－

　　　　<small-icon></small-icon>
スモールアイコン（16×16）のファイル名
○

　　　　<large-icon></large-icon>
ラージアイコン（32×32）のファイル名
○

　　　</icon>
GUIツール上に表示されるSessionBeanのアイコンの定義終了タグ
－

　　　<session-type>Stateless</session-type>
SessionBeanの種別
－

　　　<transaction-type>Container</transaction-type>
トランザクション管理種別
－

　　　<env-entry>
環境エントリについての定義開始タグ
△※3

　　　　<description xml:lang="en"></description>
env-entryの説明

　　　　<env-entry-name>CscServerName</env-entry-name>
環境エントリの名称

　　　　<env-entry-type>java.lang.String</env-entry-type>
環境エントリのデータ型

　　　　<env-entry-value>HCSC</env-entry-value>
環境エントリの値

　　　</env-entry>
環境エントリについての定義終了タグ

　　　<env-entry>
環境エントリについての定義開始タグ

　　　　<description xml:lang="en"></description>
env-entryの説明

　　　　<env-entry-name>CscClusterName</env-entry-name>
環境エントリの名称

　　　　<env-entry-type>java.lang.String</env-entry-type>
環境エントリのデータ型

　　　　<env-entry-value>Cluster</env-entry-value>
環境エントリの値

　　　</env-entry>
環境エントリについての定義終了タグ

　　　<env-entry>
環境エントリについての定義開始タグ

　　　　<description xml:lang="en"></description>
env-entryの説明

　　　　<env-entry-name>AdapterName</env-entry-name>
環境エントリの名称

　　　　<env-entry-type>java.lang.String</env-entry-type>
環境エントリのデータ型

　　　　<env-entry-value>CTMADP</env-entry-value>
環境エントリの値

　　　</env-entry>
環境エントリについての定義終了タグ

　　　<container-transaction>
コンテナのトランザクションについての定義開始タグ
－

　　　　<description xml:lang="en"></description>
container-transactionの説明
－

　　　　<method>
メソッドについての定義開始タグ
－

　　　　　<description xml:lang="en"></description>
メソッドの説明
－

　　　　　<method-intf></method-intf>
メソッドが属するインターフェース種別
－

　　　　　<method-name>*</method-name>
メソッド名
－

　　　　</method>
メソッドについての定義終了タグ
－

　　　　<trans-attribute>Required</trans-attribute>
メソッドに割り当てるトランザクション属性
－

　　　</container-transaction>
コンテナのトランザクションについての定義終了タグ
－

　　　<session-runtime>
runtimeの定義開始タグ
－

　　　　<lookup-name>CSCMsgServiceAdapterEJB
　　　　</lookup-name>
クライアントからEJBをルックアップする場合に使う名前
－

　　　　<optional-name>CTMADP</optional-name>
リモートインターフェースの別名
△※3

　　　　<maximum-sessions>0</maximum-sessions>
セッションの最大数
○

　　　　<stateless>
statelessの定義開始タグ
－

　　　　　<pooled-instance>
プール内のインスタンスについての定義開始タグ
－

　　　　　　<minimum>1</minimum>
プール内のインスタンスの最小数
○

　　　　　　<maximum>0</maximum>
プール内のインスタンスの最大数
○

　　　　　</pooled-instance>
プール内のインスタンスについての定義終了タグ
－

　　　　　<instance-timeout>0</instance-timeout>
インスタンス取得時のタイムアウト時間
○

　　　　</stateless>
stateless定義の終了タグ
－

　　　　<enable-scheduling>false</enable-scheduling>
該当するBeanをスケジューリングの対象にするかどうか（スケジューラのGateとして使用するかどうか）の指定
－

　　　　<pass-by-reference>true</pass-by-reference>
Bean単位でのデータの参照渡し（pass by reference）の指定
△※3

　　　　<scheduling>
CTM連携関連の情報の定義開始タグ
－

　　　　　<queue-name>CSCMsgServiceAdapterEJB
　　　　　</queue-name>
スケジューリングを行うqueue名称
－

　　　　　<parallel-count>1</parallel-count>
CTMがアプリケーションを呼び出すために用意するスレッド数
－

　　　　　<queue-length></queue-length>
スケジューリングをするキューの長さ
－

　　　　</scheduling>
CTM連携関連の情報の定義終了タグ
－

　　　　<front-ejb>false</front-ejb>
フロントEJB（クライアントが直接呼び出すEJB）かどうかの指定
－

　　　</session-runtime>
runtimeの定義終了タグ
－

　　　<start-order>10</start-order>
J2EEアプリケーション開始時および停止時の順番の指定
－

　　</hitachi-session-bean-property>
SessionBeanの属性の定義の終了タグ
－

　</ejb-jar>
EJBに関する情報の定義の終了タグ
－

</hitachi-application-all-property>
ルートタグ
－

（凡例）

○：変更できます。

△：自動的に変更されます。

－：変更できません。

注※1

サービスIDを指定してください。

注※2

カスタムアダプタのデプロイ時に自動的に設定されます。

注※3

カスタムアダプタのデプロイ時に自動的に追加または上書きされます。

注意事項

表F-3で示した変更できる項目以外は，テンプレートの内容を変更しないでください。

ファイル形式がアプリケーション統合属性ファイルとして適切でない場合，カスタムアダプタを配備できません。

(4)　カスタムアダプタ定義ファイル

カスタムアダプタ定義ファイルの機能，および設定できるプロパティについて説明します。

機能

カスタムアダプタの情報を設定します。

ファイルの格納先

<Cosminexusのインストールディレクトリ>¥CSC¥samples¥customadapter¥csccustomadapter.properties

設定できるプロパティ

custom-adapter.dt-skip={ true | false }

データ変換時に電文の構造変換をスキップするかどうかを指定します。キーまたは値を省略した場合は，構造変換をスキップしません。

true
構造変換をスキップします。

false
構造変換をスキップしません。

なお，値を指定する場合は，trueまたはfalseのどちらかを指定してください。trueまたはfalse以外の値を指定した場合，コマンド実行時にエラーになります。

付録F.3　カスタムアダプタ開発フレームワークのサンプルプログラム

ここでは，カスタムアダプタ開発フレームワークを使用するカスタムアダプタのサンプルプログラムについて説明します。

＜この項の構成＞

(1)　サンプルプログラムの概要

(2)　電文フォーマット

(3)　サンプルコード

(4)　プロパティファイル

(5)　プロトコルコンバータJARファイル

(6)　EARファイル

(1)　サンプルプログラムの概要

サンプルプログラムでは，カウント増加要求（increment），またはカウント減少要求（decrement）を受け付け，カウンタサービスを呼び出すカスタムアダプタを作成します。

カウンタサービスを呼び出すカスタムアダプタの概要を次の図に示します。

図F-2　カウンタサービスを呼び出すカスタムアダプタの概要

次にカウンタサービス，およびカスタムアダプタのプロトコルコンバータについて説明します。

(a)　カウンタサービス

カウンタサービスは，カウントを保持します。

サンプルプログラムのカウンタサービスは通常のJavaクラスですが，サービスに見立てています。そのため，カウンタサービスの格納先は，プロトコルコンバータと同じJARになります。

カウンタサービスは次に示す三つのサービスを提供します。

カウント増加サービス（increment）
カウントを一つ増やします。

カウント減少サービス（decrement）
カウントを一つ減らします。ただし，カウントを0未満にしようとしたときには，例外が発生します。

カウント値参照サービス（getCount）
現在のカウント値を返します。

(b)　プロトコルコンバータ

プロトコルコンバータは，カウンタサービスを呼び出します。

プロトコルコンバータは，次に示す二つのオペレーションを持ちます。

カウントの増加（incrementオペレーション）
カウンタサービスのカウント増加サービスを要求電文で指定された回数呼び出します。
非同期通信で，要求電文としてバイナリ電文を受け付けます。
要求電文で増加量を指定でき，指定された増加量の絶対値分だけ，カウンタサービスのカウント増加を実行します。増加量は1バイトの符号付の2進数で指定します。
要求電文フォーマットについては，「付録F.3(2)(a) incrementの要求電文フォーマット」を参照してください。

カウントの減少（decrementオペレーション）
カウンタサービスのカウント減少サービスを呼び，指定された数だけ減らします。
同期通信で，要求電文としてXML電文を受け付け，応答電文としてXML電文を返します。
要求電文で増加量を指定でき，指定された減少量の整数値分だけ，カウントを減らします。減少量は整数値を文字列で与えます。
カウンタの減少要求の応答電文は，カウント減少後のカウント値を含みます。
カウンタサービスのカウント減少サービスを実施した場合に例外が発生したときは，フォルトが発生します。また，要求電文で与えられたカウンタの減少量がIntegerクラスのparseIntメソッドで処理できない形式だった場合は，例外を送出します。
要求電文フォーマットについては「付録F.3(2)(b) decrementの要求電文フォーマット」を，応答電文フォーマットについては「付録F.3(2)(c) decrementの応答電文フォーマット」を参照してください。

(2)　電文フォーマット

サンプルプログラムで使用する電文形式を次に示します。

(a)　incrementの要求電文フォーマット

1バイトの符号付の2進整数を一つ取るバイナリフォーマット定義ファイルを作成します。ファイル名は，「BinaryRequest.fdx」にしてください。

バイナリフォーマット定義ファイルの作成方法については，「4.4　電文フォーマット（バイナリフォーマット定義ファイル）の作成方法」を参照してください。

(b)　decrementの要求電文フォーマット

decrementの要求電文フォーマット（XMLフォーマット定義ファイル）は，テキストエディタなどを使用してXML文書形式で作成します。ファイル名は「XMLRequest.xsd」にしてください。

XMLフォーマット定義ファイルの作成方法については，「4.3　電文フォーマット（XMLフォーマット定義ファイル）の作成方法」を参照してください。

作成するXMLフォーマット定義ファイルの内容を次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/RequestXML" xmlns:tns="http://www.example.org/RequestXML">
   <element name="request" type="string"></element>
</schema>

(c)　decrementの応答電文フォーマット

decrementの応答電文フォーマット（XMLフォーマット定義ファイル）は，テキストエディタなどを使用してXML文書形式で作成します。ファイル名は「XMLResponse.xsd」にしてください。

XMLフォーマット定義ファイルの作成方法については，「4.3　電文フォーマット（XMLフォーマット定義ファイル）の作成方法」を参照してください。

作成するXMLフォーマット定義ファイルの内容を次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/RequestXML" xmlns:tns="http://www.example.org/RequestXML">
   <element name="response" type="string"></element>
</schema>

(3)　サンプルコード

サンプルプログラムで使用するカウンタサービス，およびプロトコルコンバータのサンプルコードについて説明します。

(a)　カウンタサービス

カウンタサービスのサンプルコードを次に示します。クラス名は「Counter」，パッケージ名は「service」です。

/* All Rights Reserved. Copyright (C) 2008, Hitachi, Ltd. */
package service;

/**
* カウント値の増減とカウント値の取得クラス(サービスに見立てる)
* カウント値は常に0以上
*/
public class Counter {

   /**
    * カウント値 (常に0以上)
    */
   protected int count;

   /**
    * コンストラクタ
    * @param init countの初期値
    * @throws IllegalArgumentException不正な0未満の値を指定しました。
    * @return void
    */
   public Counter(int init) {

       if (init < 0) {
             throw new IllegalArgumentException();
       }
             this.count = init;
   }

   /**
    * カウントを一つ増やす
    * @return void
    */
   public void increment() {
       ++this.count;
   }

   /**
    * カウントを一つ減らす
    * @throws IllegalStateException countが0以下の時に呼び出しました。
    * @return void
    */
   public void decrement() {
       if (this.count <= 0) {
             throw new IllegalStateException();
       }
       --this.count;
   }

   /**
    * カウント値を取得する
    * @return int カウント値
    */
   public int getCount() {
       return this.count;
   }
}

(b)　プロトコルコンバータ

プロトコルコンバータのサンプルコードを次に示します。クラス名は「MyProtocolConverter」，パッケージ名は「protocolconverter」です。

/* All Rights Reserved. Copyright (C) 2008, Hitachi, Ltd. */
package protocolconverter;

import java.util.Properties;

import javax.xml.parsers.*;
import org.w3c.dom.*;
import jp.co.Hitachi.soft.csc.msg.adapter.custom.*;

import service.Counter;

/**
* カスタムプロトコルコンバータインターフェースの実装クラス
*/
public class MyProtocolConverter implements CSCMsgCustomProtocolConverter {

   /**
    * アダプタコンテキスト
    */
   private CSCMsgCustomAdapterContext adapterContext;

   /**
    * カウンタクラス(サービスに見立てている)
    */
   private Counter counter;

   /**
    * DOM. XML電文を作成するために使用
    */
   private DocumentBuilderFactory docBuilderFactory;
   private DocumentBuilder docBuilder;

   /**
    * publicなデフォルトコンストラクタ (必須)
    */
   public MyProtocolConverter() { }

   /**
    * カスタムアダプタ開始時(startが呼ばれる前)に呼ばれます。
    * アダプタコンテキストを取得します。
    * @param adapterContext アダプタコンテキスト
    */
   public void setCustomAdapterContext(
            CSCMsgCustomAdapterContext adapterContext) {
       this.adapterContext = adapterContext;
   }

   /**
    * カスタムアダプタ開始時(setCustomAdapterContextが呼ばれた後)に呼ばれます。
    * 初期化処理を実装します。
    * @throws CSCMsgCustomAdapterException カスタムアダプタで例外が発生しました。
    */
   public void start() throws CSCMsgCustomAdapterException {
       try {
            log("start");

            Properties properties = this.adapterContext.getProperties();
            String init = properties.getProperty("init");
            if (init == null) {
                 // init値の指定は必須
                 throw new CSCMsgCustomAdapterException("init");
           }

           // リソースの確保（アダプタのライフサイクル中使い続けるリソース）
           this.counter = new Counter(Integer.parseInt(init));

           docBuilderFactory = DocumentBuilderFactory.newInstance();
           //docBuilderFactory.setNamespaceAware(true);
           docBuilder = docBuilderFactory.newDocumentBuilder();
       } catch (CSCMsgCustomAdapterException e) {
           // カスタムアダプタ側で障害解析に必要なログを出力する
           log(e);
           throw e;
       } catch (Exception e) { // RuntimeExceptionもキャッチする
           // カスタムアダプタ側で障害解析に必要なログを出力する
           log(e);
           // CSCMsgCustomAdapterExceptionでラップして再送出
           throw new CSCMsgCustomAdapterException("start failed", e);
       }
   }

   /**
    * サービス部品呼び出し処理を実装します。
    * @param request 要求メッセージ
    * @param response 応答メッセージ
    * @throws CSCMsgCustomAdapterException カスタムアダプタで例外が発生しました。
    */
   public void invoke(CSCMsgRequestMessage request,
            CSCMsgResponseMessage response)
            throws CSCMsgCustomAdapterException {

       try {
            log("invoke [" + request.getOperationName() + "]");

           // オペレーション名で振り分け
           if (request.getOperationName().equals("increment")) {
                 // カウント増加処理
                 execIncrement(request, response);
           } else if(request.getOperationName().equals("decrement")) {
                 // カウント減少処理
                 try {
                      execDecrement(request, response);
                 } catch(IllegalStateException e) { // カウントの減少に失敗
                      // ログ出力
                      log(e);
                      // フォルト設定
                      response.setFault("invoke error", "decrement failed",
                                this.adapterContext.getAdapterName(), (Document)null);
                 }
           } else {
                throw new CSCMsgCustomAdapterException("unknown operation");
           }
           // 現在のカウントを出力
           log("Count:" + counter.getCount());
       } catch (CSCMsgCustomAdapterException e) {
           // カスタムアダプタ側で障害解析に必要なログを出力する
           log(e);
           throw e;
       } catch (Exception e) { // RuntimeExceptionもキャッチする
           // カスタムアダプタ側で障害解析に必要なログを出力する
           log(e);
           // CSCMsgCustomAdapterExceptionでラップして再送出
           throw new CSCMsgCustomAdapterException("invoke failed", e);
       }
   }

   /**
    * カウント増加処理
    * @param request 要求メッセージ
    * @param response 応答メッセージ
    * @throws CSCMsgCustomAdapterException カスタムアダプタで例外が発生しました。
    * @throws CSCMsgIllegalMessageTypeException 電文形式がバイナリ形式ではありません。
    * @throws CSCMsgInvalidMessageException 不正な電文が指定されました。
    */
   private void execIncrement(
             CSCMsgRequestMessage request,
             CSCMsgResponseMessage response)
       throws CSCMsgCustomAdapterException,
             CSCMsgIllegalMessageTypeException,
             CSCMsgInvalidMessageException {
       // 非同期オペレーション：increment

       if (response != null) {
             // 通信モデルが同期
             throw new CSCMsgCustomAdapterException("不正な通信モデル");
       }

       if (request.getMessageType() != CSCMsgMessageConstant.MESSAGE_TYPE_BINARY) {
             // 電文フォーマットがバイナリ形式でない
             throw new CSCMsgCustomAdapterException("不正な電文フォーマット(要求)");
       }

       byte[] data = request.getBytes();
       if (data.length != 1) {
           throw new CSCMsgCustomAdapterException("不正なデータ");
       }

       int loop = Math.abs(data[0]);
       for (int i = 0; i < loop; ++i) {
            counter.increment();
       }
   }

   /**
    * カウント減少処理
    * @param request 要求メッセージ
    * @param response 応答メッセージ
    * @throws CSCMsgCustomAdapterException カスタムアダプタで例外が発生しました。
    * @throws CSCMsgIllegalMessageTypeException 電文形式がバイナリ形式ではありません。
    * @throws CSCMsgInvalidMessageException 不正な電文が指定されました。
    * @throws CSCMsgMultipleMessageInsertionException すでに電文またはフォルト情報が格納されています。
    */
   private void execDecrement(
            CSCMsgRequestMessage request,
            CSCMsgResponseMessage response)
       throws CSCMsgCustomAdapterException,
            CSCMsgIllegalMessageTypeException,
            CSCMsgInvalidMessageException,
            CSCMsgMultipleMessageInsertionException  {
       // 同期オペレーション：decrement

       if (response == null) {
             // 通信モデルが非同期
             throw new CSCMsgCustomAdapterException("不正な通信モデル");
       }

       if (request.getMessageType() != CSCMsgMessageConstant.MESSAGE_TYPE_XML) {
             // 電文フォーマットがXML形式でない
             throw new CSCMsgCustomAdapterException("不正な電文フォーマット(要求)");
       }

       if (response.getMessageType() != CSCMsgMessageConstant.MESSAGE_TYPE_XML) {
             // 電文フォーマットがXML形式でない
             throw new CSCMsgCustomAdapterException("不正な電文フォーマット(応答)");
       }

       // 要求電文解析処理
       NodeList nodeList = request.getXMLDocument().getElementsByTagName("request");
       if (nodeList.getLength() != 1) {
             // ルートノードが見つからない
             throw new CSCMsgCustomAdapterException("不正な要求電文");
       }
       Text text = (Text)nodeList.item(0).getChildNodes().item(0);

       int loop = Math.abs(Integer.parseInt(text.getNodeValue()));
       for (int i = 0; i < loop; ++i) {
            this.counter.decrement();
       }

       // 応答電文の組み立て
       Document responseDoc = docBuilder.newDocument();
       Element rootElement = responseDoc.createElement("response");
       responseDoc.appendChild(rootElement);
       Text countTextNode = responseDoc.createTextNode(Integer.toString(counter.getCount()));
       rootElement.appendChild(countTextNode);

       // 応答電文の格納
       response.setXMLDocument(responseDoc);
   }

   /**
    * 終了処理，リソースの解放などを行う
    */
   public void stop() {
       log("stop");

       // リソースの解放
       this.counter = null;
       this.adapterContext = null;
       this.docBuilderFactory = null;
       this.docBuilder = null;
   }

   /**
    * ログ出力
    * @param message 出力するメッセージ
    */
   public void log(String message) {
       // 標準出力への出力結果は，ユーザ出力ログに出力される
       System.out.printf("[%s] %s¥n",
               this.adapterContext.getAdapterName(), message);
               System.out.flush();
   }

   /**
    * ログ出力
    * @param message 出力する例外
    */
   public void log(Exception e) {
       // 標準エラー出力への出力結果は，ユーザエラーログに出力される
       e.printStackTrace();
       System.err.flush();
   }
}

(4)　プロパティファイル

サンプルプログラムで使用するプロパティファイルについて説明します。

(a)　カスタムアダプタ開発フレームワーク動作定義ファイル

カスタムアダプタ開発フレームワーク動作定義ファイルには，プロトコルコンバータのクラス名をパッケージ名付きで指定します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="classname">protocolconverter.MyProtocolConverter</entry>
</properties>

(b)　カスタムアダプタプロパティファイル

カスタムアダプタプロパティファイルには，プロトコルコンバータで使用するプロパティを設定します。

カウンタサービスのカウントの初期値を1に設定するプロパティファイルを次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="init">1</entry>
</properties>

(5)　プロトコルコンバータJARファイル

プロトコルコンバータクラスファイルとカスタムアダプタ開発フレームワーク動作定義ファイルを含むJARファイルを作成します。

プロトコルコンバータJARファイルの作成は，jarコマンドを使用して，プロトコルコンバータクラスファイルとそれが使用するクラスファイル，およびカスタムアダプタ開発フレームワーク動作定義ファイルをJARファイルにアーカイブします。

jarコマンドによるアーカイブ時のJARファイルのディレクトリ構成については，「5.3.6(5) JARファイルの作成」を参照してください。

(a)　事前準備

カレントディレクトリおよびサブディレクトリに，作成したファイルを次に示すように配置します。

framework_properties.xml
protocolconverter/CustomProtocolConverter.class
service/Counter.class

(b)　ファイルの作成

ここでは，作成するJARファイルを「MyProtocolConverter.jar」というファイル名でアーカイブします。

次のコマンドを実行すると，JARファイルが作成されます。

jar cf ..¥MyProtocolConverter.jar .¥

(6)　EARファイル

カスタムアダプタの新規登録に必要なEARファイルを作成します。ここでは，作成するEARファイルを「CustomAdapter.ear」というファイル名でアーカイブします。

EARファイルの作成はjarコマンドを使用し，Cosminexus サービスプラットフォームが提供しているJARファイルをEARファイルにアーカイブします。

jarコマンドによるアーカイブ時のEARファイルのディレクトリ構成については，「5.3.6(6) EARファイルの作成」を参照してください。

(a)　事前準備

カレントディレクトリに次に示すファイルのコピーを格納します。

<Cosminexusのインストールディレクトリ>¥CSC¥lib¥cscmsg_adpejb.jar

(b)　ファイルの作成

作成するEARファイルのファイル名は「CustomAdapter.ear」にしてください。

次のコマンドを実行すると，EARファイルが作成されます。

jar cf ..¥CustomAdapter.ear .¥

(c)　ファイルの登録

カスタムアダプタとして使用するには，アダプタ追加ウィザードを利用し，作成したEARファイルをHCSC-Definerに登録する必要があります。登録方法については，「5.2.3　カスタムアダプタを新規に追加する」を参照してください。

付録F.4　カスタムアダプタの定義画面

ここでは，カスタムアダプタを定義するときのサービスアダプタ定義画面について説明します。

＜この項の構成＞

(1)　サービスアダプタ定義（基本）画面

(2)　サービスアダプタ定義（詳細）画面

(1)　サービスアダプタ定義（基本）画面

サービスアダプタ定義（基本）画面の項目について説明します。

図F-3　サービスアダプタ定義（基本）画面

(a)　［サービス部品制御情報］

カスタムアダプタ新規作成時に指定したサービス部品についての情報が表示されます。

［サービス名］

サービスアダプタ定義追加画面で設定した内容が表示されます。

［サービスID］

サービスIDを入力します。サービスIDは，8バイト以内の英数字およびアンダーライン（_）で指定します。

［サービス種別］

サービス部品の種別として「汎用カスタムアダプタ」が表示されます。

［アドレス］

この項目は使用しません。

［最大インスタンス数］

サービス部品の最大インスタンス数が表示されます。

［サービスクラス名］

この項目は使用しません。

［オペレーション］

オペレーション名が表示されます。サービス部品が持つオペレーション名をドロップダウンリストから選択できます。

［システム例外をフォルトに変換する］チェックボックス

サービス部品で発生した例外をフォルトに変換する場合にチェックします。

［追加］ボタン

オペレーションを追加するダイアログが表示されます。

［削除］ボタン

オペレーション欄で選択したオペレーションを削除します。

(b)　［オペレーション情報］

サービス部品のオペレーションについての情報が表示されます。

［オペレーション名］

サービス部品制御情報のオペレーション欄で選択したオペレーションの名称が表示されます。

［通信モデル］

サービス部品制御情報のオペレーション欄で選択したオペレーションの通信モデルが表示されます。同期または非同期をドロップダウンリストから選択できます。選択内容によって，次のように表示が変わります。

同期を選択した場合：応答電文とフォルト電文の情報が表示されます。

非同期を選択した場合：応答電文とフォルト電文の情報は表示されません。非同期のまま，アダプタ定義を保存すると，応答電文とフォルト電文の全項目は消えます。

(c)　［要求電文］

サービスリクエスタから送信される要求電文の情報が表示されます。

［any型を使う］チェックボックス

要求電文のデータ型を指定しないで作成する場合にチェックします。

［標準］

［使う］チェックボックス

サービスリクエスタから受け付けた標準電文の内容を確認したり，標準電文をカスタムアダプタ用の電文のフォーマットにデータ変換したりする場合にチェックします。

［フォーマットID］

サービスリクエスタから受け付けた標準電文のフォーマットIDが表示されます。

［電文フォーマット］

サービスリクエスタから受け付けた標準電文のフォーマット名が表示されます。

［参照］ボタン

標準電文フォーマットを設定するダイアログが表示されます。

［表示］ボタン

標準電文のフォーマットが表示されます。

［出力］ボタン

標準電文フォーマットの出力先を指定するダイアログが表示されます。

［サービス部品］

［フォーマットID］

カスタムアダプタのプロトコルコンバータが受け取る要求電文の電文フォーマットのフォーマットIDが表示されます。

［電文フォーマット］

カスタムアダプタのプロトコルコンバータが受け取る要求電文の電文フォーマットのフォーマット名が表示されます。

［参照］ボタン

カスタムアダプタのプロトコルコンバータが受け取る要求電文の電文フォーマットを設定するダイアログが表示されます。

［表示］ボタン

カスタムアダプタのプロトコルコンバータが受け取る要求電文の電文フォーマットが表示されます。

［出力］ボタン

カスタムアダプタのプロトコルコンバータが受け取る要求電文の電文フォーマットの出力先を指定するダイアログが表示されます。

［データ変換］

［データ変換定義］

標準電文からカスタムアダプタのプロトコルコンバータが受け取る要求電文へデータ変換するための定義ファイル名を入力します。標準電文の［使う］チェックボックスにチェックを入れていない場合は，この項目は使用しません。

［編集］ボタン

データ変換定義画面が表示されます。データ変換定義欄で設定した定義ファイルの内容を編集できます。初めて定義する場合は，［ルート要素選択］ダイアログが表示されます。標準電文の［使う］チェックボックスにチェックを入れていない場合は，この項目は使用しません。

［削除］ボタン

［編集］ボタンで設定したデータ変換定義を削除します。標準電文の［使う］チェックボックスにチェックを入れていない場合は，この項目は使用しません。

(d)　［応答電文］

サービス部品から送信される応答電文の情報が表示されます。

オペレーション情報の通信モデル欄で，「同期」を選択した場合だけ，設定できます。

［any型を使う］チェックボックス

応答電文のデータ型を指定しないで作成する場合にチェックします。

［標準］

［使う］チェックボックス

サービス部品から受け付けたカスタムアダプタ用の電文の内容を確認したり，カスタムアダプタ用の電文を標準電文のフォーマットにデータ変換したりする場合にチェックします。

［フォーマットID］

サービスリクエスタへ応答する標準電文のフォーマットIDが表示されます。

［電文フォーマット］

サービスリクエスタへ応答する標準電文のフォーマット名が表示されます。

［参照］ボタン

標準電文フォーマットを設定するダイアログが表示されます。

［表示］ボタン

標準電文のフォーマットが表示されます。

［出力］ボタン

標準電文フォーマットの出力先を指定するダイアログが表示されます。

［サービス部品］

［フォーマットID］

カスタムアダプタのプロトコルコンバータが送信する応答電文の電文フォーマットのフォーマットIDが表示されます。

［電文フォーマット］

カスタムアダプタのプロトコルコンバータが送信する応答電文の電文フォーマットのフォーマット名が表示されます。

［参照］ボタン

カスタムアダプタのプロトコルコンバータが送信する応答電文の電文フォーマットを設定するダイアログが表示されます。

［表示］ボタン

カスタムアダプタのプロトコルコンバータが送信する応答電文の電文フォーマットが表示されます。

［出力］ボタン

カスタムアダプタのプロトコルコンバータが送信する応答電文の電文フォーマットの出力先を指定するダイアログが表示されます。

［データ変換］

［データ変換定義］

カスタムアダプタのプロトコルコンバータから送信する応答電文から標準電文へデータ変換するための定義ファイル名を入力します。標準電文の［使う］チェックボックスにチェックを入れていない場合は，この項目は使用しません。

［編集］ボタン

データ変換定義画面が表示されます。データ変換定義欄で設定した定義ファイルの内容を編集できます。初めて定義する場合は，［ルート要素選択］ダイアログが表示されます。標準電文の［使う］チェックボックスにチェックを入れていない場合は，この項目は使用しません。

［削除］ボタン

［編集］ボタンで設定したデータ変換定義を削除します。標準電文の［使う］チェックボックスにチェックを入れていない場合は，この項目は使用しません。

(e)　［フォルト電文］

サービス部品のフォルト電文についての情報が表示されます。

［追加］ボタン

フォルト名を追加するダイアログが表示されます。カスタムアダプタの定義では，このボタンは使用しません。

［削除］ボタン

フォルト名欄で選択したフォルト名を削除します。カスタムアダプタの定義では，このボタンは使用しません。

［フォルト名］

サービス部品のフォルトの名称が表示されます。カスタムアダプタの定義では，この欄は使用しません。

［電文フォーマット］

サービス部品のフォルト電文のフォーマット名が表示されます。カスタムアダプタの定義では，この欄は使用しません。

［参照］ボタン

フォルト電文のフォーマットを設定するダイアログが表示されます。カスタムアダプタの定義では，このボタンは使用しません。

［表示］ボタン

フォルト電文のフォーマットが表示されます。カスタムアダプタの定義では，このボタンは使用しません。

［出力］ボタン

フォルト電文のフォーマットの出力先を指定するダイアログが表示されます。カスタムアダプタの定義では，このボタンは使用しません。

(2)　サービスアダプタ定義（詳細）画面

サービスアダプタ定義（詳細）画面の項目について説明します。

図F-4　サービスアダプタ定義（詳細）画面

(a)　［カスタムアダプタ制御情報］

カスタムアダプタの新規作成時に指定したサービス部品についての情報が表示されます。

カスタムアダプタ

［カスタムアダプタ（EJB-JARファイル）］

カスタムアダプタのEJB-JARファイルの名称が表示されます。

［参照］ボタン

カスタムアダプタのEJB-JARファイル名を設定するダイアログが表示されます。

ユーティリティクラス

［ユーティリティクラス（JARファイル）］

［追加］ボタンで設定したユーティリティクラスが表示されます。

［追加］ボタン

ユーティリティクラスを追加するダイアログが表示されます。「5.3.6　カスタムアダプタを定義する」で作成したJARファイルを追加します。

［出力］ボタン

ユーティリティクラスの出力先を指定するダイアログが表示されます。

［削除］ボタン

ユーティリティクラス欄で選択したファイルを削除します。

独自定義ファイル

［独自定義ファイル］

［追加］ボタンで設定したプロトコルコンバータ用独自定義ファイル，カスタムアダプタプロパティファイル，カスタムアダプタ用アプリケーション統合属性ファイル，およびカスタムアダプタ定義ファイルが表示されます。

［追加］ボタン

独自定義ファイル（プロトコルコンバータ用独自定義ファイル，カスタムアダプタプロパティファイル，カスタムアダプタ用アプリケーション統合属性ファイル，およびカスタムアダプタ定義ファイル）を追加するダイアログが表示されます。

［出力］ボタン

独自定義ファイル（プロトコルコンバータ用独自定義ファイル，カスタムアダプタプロパティファイル，カスタムアダプタ用アプリケーション統合属性ファイル，およびカスタムアダプタ定義ファイル）の出力先を指定するダイアログが表示されます。

［削除］ボタン

独自定義ファイル欄で選択したファイルを削除します。

付録F.5　カスタムアダプタを使用する際の環境設定

ここでは，カスタムアダプタを使用するときに，HCSCサーバの実行環境に対して設定する必要がある内容について説明します。

＜この項の構成＞

(1)　保護区リストファイルの設定

(1)　保護区リストファイルの設定

HCSCサーバ上でカスタムアダプタを使用するには，プロトコルコンバータ（プロトコル変換処理）を実装しているクラスを，メソッドキャンセルを禁止するクラスとして保護区リストファイルに設定します。

「保護区リストファイル」の要素として，カスタムアダプタの実装クラス名またはプリフィックス名を設定してください。

設定した保護区リストファイルは，J2EEサーバの起動時に読み込まれ，Cosminexusをインストールしたマシン上で動作するすべてのJ2EEサーバで有効になります。

「保護区リストファイル」については，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.6　criticalList.cfg（保護区リストファイル）」を参照してください。

付録F.6　トラブルシューティング

ここでは，カスタムアダプタの運用時に発生する障害と考えられる原因と対処方法を説明します。

＜この項の構成＞

(1)　カスタムアダプタの配備に関するトラブルシューティング

(2)　カスタムアダプタの開始に関するトラブルシューティング

(3)　プロトコルコンバータからの操作に関するトラブルシューティング

(1)　カスタムアダプタの配備に関するトラブルシューティング

カスタムアダプタを配備できない場合の原因，原因の特定および対策を次に示します。

(a)　原因

カスタムアダプタのデプロイに失敗する場合，主に次の原因が考えられます。

カスタムアダプタ用アプリケーション統合属性ファイルの形式または内容に誤りがある。

「5.3.6　カスタムアダプタを定義する」に示す正しい手順に従っていないため，誤りがあるEARファイルを登録した。

(b)　原因の特定

デプロイ時に表示されるコンソールログを確認してください。

次のようなメッセージが表示されていた場合：

KEOS50007-E An exception occurred during the operation. (Cosminexus Manager
name = <マネージャ識別名>, object name = jp.co.Hitachi.soft.csc.msg:type=
CSCMsgAdapterBuilder, operation = setup, details = The application attributes
file is invalid. (<詳細情報>) ErrorCode=KDEC10031-E)

原因の1.または2.のおそれがあります。
具体的な原因については，＜詳細情報＞を確認してください。

(c)　対策

次の対処をしてください。

カスタムアダプタ用アプリケーション統合属性ファイルの形式または内容に誤りがないか確認してください。誤りがある場合は，ファイルを再作成してください。アプリケーション統合属性ファイルについては，「付録F.2(3) カスタムアダプタ用アプリケーション統合属性ファイル」を参照してください。

使用しているEARファイルの形式または内容に誤りがないか確認してください。誤りがある場合は，ファイルを再作成してください。EARファイルの作成方法については，「5.3.6(6) EARファイルの作成」を参照してください。

(2)　カスタムアダプタの開始に関するトラブルシューティング

カスタムアダプタを開始できない場合の原因，原因の特定および対策を次に示します。

(a)　原因

カスタムアダプタの開始に失敗する場合，主に次の原因が考えられます。

登録されているすべてのJARファイルのルートフォルダに，カスタムアダプタ開発フレームワーク動作定義ファイルが配置されていない。

カスタムアダプタ開発フレームワーク動作定義ファイルの形式に誤りがある。

カスタムアダプタプロパティファイルの形式に誤りがある。

プロトコルコンバータJARファイルにプロトコルコンバータのクラスファイルが含まれていない。

カスタムアダプタ開発フレームワーク動作定義ファイルで，プロトコルコンバータの指定に誤りがある，または存在しないプロトコルコンバータを指定している。

プロトコルコンバータにpublicなデフォルトコンストラクタがない。

プロトコルコンバータのstartメソッドで例外が発生した。

(b)　原因の特定

メッセージログファイルを確認してください。

メッセージログに次のようなメッセージが記録されていた場合：

KDEC02513-E An attempt to read the file has failed. (adapter name =
<アダプタ名>, file name =<ファイル名>, information =<詳細情報>)

埋め文字と原因の対応を次の表に示します。

表F-4　KDEC02513-E発生時の原因

ファイル名 | 詳細情報 | 原因
framework_properties.xml | InputStream is null | 原因の1.のおそれがあります。
InvalidPropertiesFormatException | 原因の2.のおそれがあります。
defs/customadapter_properties.xml | InvalidPropertiesFormatException | 原因の3.のおそれがあります。

メッセージログに次のようなメッセージが記録されていた場合：

KDEC03015-E An initialization error occurred in the protocol converter.
(adapter name = <アダプタ名>, information =<原因となった例外名>)

埋め文字と原因の対応を次の表に示します。

表F-5　KDEC03015-E発生時の原因

原因となった例外名 | 原因
ClassNotFoundException | 原因の4.または5.のおそれがあります。
IllegalAccessException | 原因の6.のおそれがあります。
CSCMsgCustomAdapterException | 原因の7.のおそれがあります。

(c)　対策

原因が1.～2.の場合，次の対処をしてください。

カスタムアダプタ開発フレームワーク動作定義ファイルの形式または内容に誤りがないか確認してください。誤りがある場合は，ファイルを再作成してください。カスタムアダプタ開発フレームワーク動作定義ファイルの詳細は，「付録F.2(1) カスタムアダプタ開発フレームワーク動作定義ファイル」を参照してください。

カスタムアダプタ開発フレームワーク動作定義ファイルをプロトコルコンバータJARファイルの中の指定された場所に配置しているか確認してください。指定された場所に配置されていない場合は，正しい場所に配置し直してください。

原因が3.の場合，次の対処をしてください。

カスタムアダプタプロパティファイルの形式または内容に誤りがないか確認してください。誤りがある場合は，ファイルを再作成してください。カスタムアダプタプロパティファイルの詳細は，「付録F.2(2) カスタムアダプタプロパティファイル」を参照してください。

原因が4.～5.の場合，次の対処をしてください。

プロトコルコンバータJARファイルにプロトコルコンバータのクラスファイルが含まれているか確認してください。含まれていない場合は，jarコマンドを使用して，プロトコルコンバータクラスファイルとそれが使用するクラスファイルおよび，カスタムアダプタ開発フレームワーク動作定義ファイルをJARファイルにアーカイブしてください。プロトコルコンバータJARファイルの作成方法については，「5.3.6(5)(a) プロトコルコンバータJARファイルの作成」を参照してください。

カスタムアダプタ開発フレームワーク動作定義ファイルで，プロトコルコンバータ名をパッケージ名付きで指定しているか確認してください。誤りがある場合は，プロトコルコンバータ名をパッケージ名付きで指定し直してください。

カスタムアダプタ開発フレームワーク動作定義ファイルで，プロトコルコンバータ名を指定するentry要素のkey属性の値はclassnameか確認してください。誤りがある場合は，key属性がclassnameであるentryタグに，プロトコルコンバータのクラス名を記述してください。

原因が6.の場合，次の対処をしてください。

プロトコルコンバータにpublicなデフォルトコンストラクタを定義しているか確認してください。定義されていない場合は，publicなデフォルトコンストラクタを定義してください。

原因が7.の場合，次の対処をしてください。

プロトコルコンバータのstartメソッドの処理を確認してください。処理内容に誤りがある場合は，実装し直してください。startメソッドの形式については，「付録F.1(2)(a) CSCMsgCustomAdapterContextインターフェース」を参照してください。

使用している環境や設定がプロトコルコンバータの開始できる状態か確認してください。

(3)　プロトコルコンバータからの操作に関するトラブルシューティング

プロトコルコンバータからファイルの操作をしようとするとjava.security.AccessControlException例外が発生する場合の原因，原因の特定および対策を次に示します。

(a)　原因

Javaのセキュリティ機能によって，ファイルアクセスが禁止された可能性があります。

(b)　原因の特定

プロトコルコンバータの中で，ファイルアクセス時にjava.security.AccessControlExceptionが送出されることを確認してください。

(c)　対策

次の対策をしてください。

コンテナ拡張ライブラリを使用する
コンテナ拡張ライブラリの利用については，マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「13.2　コンテナ拡張ライブラリの利用」を参照してください。コンテナ拡張ライブラリの実装については，マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「13.3.2　コンテナ拡張ライブラリの作成と利用の流れ」を参照してください。

セキュリティポリシーファイルの設定を書き換える
セキュリティポリシーの設定については，マニュアル「Cosminexus アプリケーションサーバ 機能解説 拡張編」の「12.8.2　セキュリティポリシーの設定」を参照してください。

ユーザログ機能を使用する（ファイルアクセスの目的がログ出力の場合）
ユーザログ機能については，マニュアル「Cosminexus アプリケーションサーバ 機能解説 拡張編」の「12.12　ユーザログ機能を使用する場合の注意事項」を参照してください。

付録G　カスタム受付

ここでは，サービスリクエスタの仕様に合わせた受付処理を作成できるカスタム受付について説明します。

＜この節の構成＞

付録G.1　カスタム受付の概要

付録G.2　カスタム受付の開発

付録G.3　カスタム受付フレームワークのAPI

付録G.4　カスタム受付の定義

付録G.5　カスタム受付の運用

付録G.6　カスタム受付のチューニング

付録G.7　カスタム受付でのエラーの伝わり方

付録G.8　障害情報の取得（カスタム受付）

付録G.1　カスタム受付の概要

Cosminexus サービスプラットフォームでは，ユーザが任意の受付を作成できるようにカスタム受付フレームワークを提供しています。このカスタム受付フレームワーク上でユーザが作成したJ2EEアプリケーションを動作させることで，任意のプロトコルに対応した受付を開発できます。

＜この項の構成＞

(1)　カスタム受付の構成

(2)　カスタム受付フレームワークの動作の流れ

(3)　カスタム受付のデータ変換

(1)　カスタム受付の構成

カスタム受付は，開発者が作成する受付処理と，カスタム受付フレームワークから構成されるJ2EEアプリケーションです。

開発者が作成する受付処理の内容と，カスタム受付フレームワークで実行される処理の内容を次に示します。

開発者が作成する受付処理の内容

サービスリクエスタからのサービス部品呼び出し要求を受け付ける処理

カスタム受付フレームワークに要求電文を渡す処理

カスタム受付フレームワークから返ってきた応答電文を，サービスリクエスタに返す処理

カスタム受付フレームワークで実行される処理

受付処理から渡された要求電文を，HCSCメッセージ配送制御に渡す処理

HCSCメッセージ配送制御から返された応答電文を，受付処理に返す処理

HCSCデータ変換定義に従って，要求電文または応答電文のデータ変換を行う処理

(2)　カスタム受付フレームワークの動作の流れ

カスタム受付フレームワークは，カスタム受付を開発および動作させるためのフレームワークです。カスタム受付フレームワークでは，カスタム受付を作成するためのAPIを提供しています。APIの詳細は，「付録G.3　カスタム受付フレームワークのAPI」を参照してください。

カスタム受付フレームワークは，開発者が作成したカスタム受付を，Cosminexus サービスプラットフォームの実行環境で受付として動作させるための仕組みを提供しています。カスタム受付がサービス部品呼び出し要求を受けるときの，カスタム受付フレームワークの動作の流れを次の図に示します。

図G-1　カスタム受付フレームワークの動作の流れ

受付処理は，サービスリクエスタからサービス部品呼び出し要求を受け付けます。

受付処理は，サービスリクエスタから受け取った要求電文を，カスタム受付フレームワークに渡します。

カスタム受付フレームワークは，要求電文のデータ変換をします。

カスタム受付フレームワークは，HCSCメッセージ配送制御を呼び出します。

カスタム受付フレームワークは，HCSCメッセージ配送制御から，応答電文を受け取ります。

カスタム受付フレームワークは，応答電文のデータ変換をします。

受付処理は，カスタム受付フレームワークから応答電文を受け取ります。

受付処理は，サービスリクエスタに応答電文を返します。

(3)　カスタム受付のデータ変換

カスタム受付では，カスタム受付フレームワークで要求電文および応答電文のデータ変換をします。ただし，通信モデルが非同期の場合は，応答電文のデータ変換をしません。この場合，受付処理にnullを返します。

受付処理から受け取った要求電文は，HCSCメッセージ配送制御を呼び出す前に，カスタム受付フレームワークによってデータ変換されます。ビジネスプロセスには，データ変換によって変換された要求電文が，HCSCメッセージ配送制御を経由して渡されます。ビジネスプロセスから返ってきた応答電文は，受付処理に返る前に，カスタム受付フレームワークによってデータ変換されます。サービスリクエスタには，データ変換によって変換された応答電文が，受付処理を経由して返されます。

カスタム受付でのデータの流れとデータ変換の関係を次に示します。

図G-2　カスタム受付でのデータの流れとデータ変換の関係

要求電文および応答電文のデータ変換時の形式の組み合わせを次に示します。

(a)　要求電文のデータ変換時の形式の組み合わせ

ビジネスプロセスを呼び出したときに，カスタム受付フレームワークが実行できる要求電文のデータ変換の形式を次の表に示します。

表G-1　カスタム受付フレームワークが実行できる要求電文のデータ変換の形式

要求電文の形式 | データ変換の可否
受付電文フォーマット | サービス部品電文フォーマット
バイナリ | －（指定なし） | ×
バイナリ | ×
XML | ○
XML | －（指定なし） | ○
バイナリ | ×
XML | ○

（凡例）

○：変換できます。

×：変換できません。エラーになります。

(b)　応答電文のデータ変換時の形式の組み合わせ

ビジネスプロセスのオペレーションを呼び出したときに，カスタム受付フレームワークが実行できる応答電文のデータ変換の形式を次の表に示します。

表G-2　カスタム受付フレームワークが実行できる応答電文のデータ変換の形式

応答電文の形式 | データ変換の可否
サービス部品電文フォーマット | 受付電文フォーマット
バイナリ | －（指定なし） | ×
バイナリ | ×
XML | ×
XML | －（指定なし） | ○
バイナリ | ○
XML | ○

（凡例）

○：変換できます。

×：変換できません。エラーになります。

付録G.2　カスタム受付の開発

ここでは，カスタム受付の開発について説明します。

カスタム受付は，開発環境で開発します。

＜この項の構成＞

(1)　開発するファイルの構成

(2)　受付処理ファイルを作成する

(3)　定義ファイルを作成する

(4)　カスタム受付EARファイルを作成する

(1)　開発するファイルの構成

開発環境で作成するカスタム受付EARファイルの構成を次に示します。

├ META-INF                    
│├ application.xml            … 1.
│├ cosminexus.xml             … 2.
│└ MANIFEST.MF                … 3.
└ 受付処理ファイル               … 4.

EARファイルのデプロイメント記述子

EARファイルのCosminexusアプリケーション属性ファイル

EARファイルのマニフェストファイル

作成した受付処理のアーカイブファイル

なお，カスタム受付EARファイルの構成は変更しないでください。受付処理の動作に必要な定義情報などを使用したい場合は，カスタム受付ユーザファイルを作成してください。カスタム受付ユーザファイルについては，「付録G.2(3)(d) カスタム受付ユーザファイル」を参照してください。

(2)　受付処理ファイルを作成する

開発者は，受付処理の実装ファイルおよび必要な定義ファイルをアーカイブして，受付処理ファイルを作成します。

注意

受付処理の実行時に確保したリソースは，処理が終了しても保持し続けるため，システム全体に高い負荷が掛かった場合に，Javaヒープ不足やPermヒープ不足などが原因でOutOfMemoryErrorが発生することがあります。そのため，OutOfMemoryErrorが発生したときに適切にリソースを解放する処理や，ロールバックなどのエラー処理を実装しておく必要があります。

次に，受付処理ファイルの詳細を説明します。

(a)　受付処理ファイルの形式

受付処理ファイルの形式には，WARファイル形式またはEJB-JARファイル形式を選択できます。受付処理がサポートするプロトコルに応じて，どちらかを選択してください。

(b)　受付処理の実装に使用するライブラリ

受付処理の実装には，カスタム受付フレームワークが提供するAPIのライブラリJARファイルを使用します。受付処理の実装時には，次に示すJARファイルをクラスパスに指定する必要があります。

<Cosminexusインストールディレクトリ>¥CSC¥lib¥cscmsg.jar
<Cosminexusインストールディレクトリ>¥CSC¥lib¥cscmsg_urecp_custom.jar

(c)　受付処理の実装内容

受付処理で実装する内容は，次の1.～3.です。

サービスリクエスタからのサービス部品呼び出し要求を受け付ける処理

カスタム受付フレームワークに要求電文を渡す処理

カスタム受付フレームワークから返ってきた応答電文を，サービスリクエスタに返す処理

なお，実装時に利用するカスタム受付フレームワークのAPIの詳細は，「付録G.3　カスタム受付フレームワークのAPI」を参照してください。

(d)　デプロイメント記述子の設定

受付処理ファイルのデプロイメント記述子を設定します。

設定する内容は任意です。

(e)　受付処理ファイルの作成

作成した受付処理のファイルをアーカイブした受付処理ファイルを作成します。

作成手順は，受付処理ファイルの形式に依存します。

なお，作成する受付処理ファイルは，「csc」で始まる名称にはしないでください。「csc」で始まる名称にした場合，動作は保障されません。

(3)　定義ファイルを作成する

カスタム受付で設定する定義ファイルは次の四つです。

デプロイメント記述子（application.xml）

Cosminexusアプリケーション属性ファイル（cosminexus.xml）

マニフェストファイル（MANIFEST.MF）

カスタム受付ユーザファイル

次に，それぞれのファイルについて説明します。

(a)　デプロイメント記述子（application.xml）

カスタム受付EARファイルのデプロイメント記述子を設定します。

デプロイメント記述子の設定は，Cosminexus サービスプラットフォームが提供するテンプレートを基に受付処理の設定を追加します。テンプレートの格納先を次に示します。

<Cosminexusインストールディレクトリ>¥CSC¥samples¥urecp¥application.xml

デプロイメント記述子のテンプレートファイルに記載されている要素および値の編集可否を次の表に示します。なお，デプロイメント記述子のDTDは，「application_1_3.dtd」です。

表G-3　デプロイメント記述子のテンプレートファイルに記載されている要素

要素
編集可否

<?xml version="1.0" encoding="UTF-8"?>
×

<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd">
×

<!-- All Rights Reserved. Copyright (C) 2010, Hitachi, Ltd. -->
×

<application>
×

 <display-name>CSCMsgCustomServiceDelivery</display-name>

×

 <description></description>

○

 <module>

○

   <web>

○

     <web-uri>web-uri</web-uri>

○

     <context-root>context-root</context-root>

○

   </web>

○

 </module>

○

 <module>

○

   <ejb>ejb</ejb>

○

 </module>

○

 <module>

○

   <java>java</java>

○

 </module>

○

</application>
×

（凡例）　○：編集できます。　×：編集できません。

(b)　Cosminexusアプリケーション属性ファイル（cosminexus.xml）

カスタム受付EARファイルのCosminexusアプリケーション属性ファイルを設定します。

Cosminexusアプリケーション属性ファイルの設定は，Cosminexus サービスプラットフォームが提供するテンプレートを基に受付処理の設定を追加します。テンプレートの格納先を次に示します。

<Cosminexusインストールディレクトリ>¥CSC¥samples¥urecp¥cosminexus.xml

Cosminexusアプリケーション属性ファイルのテンプレートファイルに記載されている要素および値の編集可否を次の表に示します。なお，Cosminexusアプリケーション属性ファイルのDTDは「cosminexus_8_0.dtd」です。

表G-4　Cosminexusアプリケーション属性ファイルのテンプレートファイルに記載されている要素

要素
編集可否

<?xml version="1.0" encoding="UTF-8"?>
×

<!DOCTYPE cosminexus-app PUBLIC "-//Hitachi, Ltd.//DTD Cosminexus 8.0//EN" "file:///C:/Program%20Files/Hitachi/Cosminexus/CC/admin/dtds/cosminexus_8_0.dtd">
×

<!-- All Rights Reserved. Copyright (C) 2010, Hitachi, Ltd. -->
×

<cosminexus-app>
×

 <start-order>180</start-order>

×

 <ejb-jar>

×

   <module-name>cscmsg_urecp_custom.jar</module-name>

×

   <session>

×

     <ejb-name>CSCMsgCustomFwInitializerEJB</ejb-name>

×

     <maximum-sessions>0</maximum-sessions>

×

     <stateless>

×

       <pooled-instance>

×

         <minimum>1</minimum>

×

         <maximum>1</maximum>

×

       </pooled-instance>

×

     </stateless>

×

     <start-order>10</start-order>

×

   </session>

×

   <session>

×

     <ejb-name>CSCMsgCustomOperationCallerEJB</ejb-name>

×

     <maximum-sessions>0</maximum-sessions>

×

     <stateless>

×

       <pooled-instance>

×

         <minimum>0</minimum>

×

         <maximum>0</maximum>

×

       </pooled-instance>

×

     </stateless>

×

     <start-order>20</start-order>

×

     <ejb-transaction-timeout>

×

       <method>

×

         <method-name>*</method-name>

×

       </method>

×

       <transaction-timeout>0</transaction-timeout>

×

     </ejb-transaction-timeout>

×

   </session>

×

 </ejb-jar>

×

</cosminexus-app>
×

（凡例）　×：編集できません。

注1

「csc」で始まる名称のモジュールの設定を追加（<module-name>要素に「csc」で始まる値を指定）しないでください。

注2

メソッドタイムアウト時間（<method-observation-timeout>要素，および<ejb-method-observation-timeout>要素）を設定しないでください。

注3

受付処理のJ2EEアプリケーション開始時および停止時の順序（<start-order>要素）には，50より大きい値を設定してください。

(c)　マニフェストファイル（MANIFEST.MF）

カスタム受付EARファイルのマニフェストファイル（MANIFEST.MF）を記載します。

なお，マニフェストファイルを作成するかどうかは任意です。

(d)　カスタム受付ユーザファイル

受付処理に関する設定を外部ファイル化したい場合などに，カスタム受付ユーザファイルを作成します。カスタム受付ユーザファイルは，カスタム受付フレームワークのAPIを使用して，受付処理の中で読み込むことができます。カスタム受付ユーザファイルを読み込むためのAPIの詳細は，「付録G.3　カスタム受付フレームワークのAPI」を参照してください。

カスタム受付ユーザファイルは，開発環境でカスタム受付を定義するときに，独自定義ファイルとして登録します。カスタム受付の定義については，「付録G.4　カスタム受付の定義」を参照してください。

(4)　カスタム受付EARファイルを作成する

antやjarコマンドなどを使用して，受付処理ファイルおよび定義ファイルをアーカイブしたカスタム受付EARファイルを作成します。

付録G.3　カスタム受付フレームワークのAPI

ここでは，カスタム受付フレームワークが提供するAPIについて説明します。

＜この項の構成＞

(1)　カスタム受付フレームワークのAPIの呼び出し順序

(2)　CSCMsgCustomServiceDeliveryFactoryクラス

(3)　CSCMsgCustomServiceDeliveryインターフェース

(4)　APIの使用例

(1)　カスタム受付フレームワークのAPIの呼び出し順序

受付処理が，カスタム受付フレームワークのAPIを呼び出す順序を次の図に示します。

図G-3　カスタム受付フレームワークのAPIの呼び出し順序

CSCMsgCustomServiceDeliveryFactoryクラスのnewInstanceメソッドを呼び出して，CSCMsgCustomServiceDeliveryFactoryオブジェクトを取得します。

1.で取得したCSCMsgCustomServiceDeliveryFactoryオブジェクトのcreateCSCMsgCustomServiceDeliveryメソッドを呼び出して，CSCMsgCustomServiceDeliveryオブジェクトを取得します。

2.で取得したCSCMsgCustomServiceDeliveryオブジェクトのinvokeXMLメソッドまたはinvokeBinaryメソッドを呼び出して，カスタム受付フレームワークに要求電文を渡します。

(2)　CSCMsgCustomServiceDeliveryFactoryクラス

(a)　説明

CSCMsgCustomServiceDeliveryFactoryクラスは，CSCMsgCustomServiceDeliveryFactoryオブジェクトの生成，CSCMsgCustomServiceDeliveryオブジェクトの生成などの機能を提供するファクトリクラスです。

(b)　形式

package jp.co.Hitachi.soft.csc.msg.message.reception.custom;
public abstract class CSCMsgCustomServiceDeliveryFactory {
 public static CSCMsgCustomServiceDeliveryFactory newInstance();
 public CSCMsgCustomServiceDelivery createCSCMsgCustomServiceDelivery();
}

(c)　メソッド

CSCMsgCustomServiceDeliveryFactoryクラスのメソッドを次の表に示します。

メソッド名 | 機能
newInstanceメソッド | CSCMsgCustomServiceDeliveryFactoryオブジェクトを生成します。
createCSCMsgCustomServiceDeliveryメソッド | CSCMsgCustomServiceDeliveryオブジェクトを生成します。

newInstanceメソッド

説明

CSCMsgCustomServiceDeliveryFactoryオブジェクトを生成します。

形式

public static CSCMsgCustomServiceDeliveryFactory newInstance();

パラメタ

なし。

例外

なし。

戻り値

CSCMsgCustomServiceDeliveryFactory
CSCMsgCustomServiceDeliveryFactoryオブジェクトを返却します。

createCSCMsgCustomServiceDeliveryメソッド

説明

CSCMsgCustomServiceDeliveryオブジェクトを生成します。

形式

public CSCMsgCustomServiceDelivery createCSCMsgCustomServiceDelivery();

パラメタ

なし。

例外

なし。

戻り値

CSCMsgCustomServiceDelivery
CSCMsgCustomServiceDeliveryオブジェクトを返却します。

(3)　CSCMsgCustomServiceDeliveryインターフェース

(a)　説明

カスタム受付の受付処理が，カスタム受付フレームワークと電文の受け渡しをするためのメソッドを提供します。また，開発環境で登録したカスタム受付ユーザファイルを取得するメソッドを提供します。

(b)　形式

package jp.co.Hitachi.soft.csc.msg.message.reception.custom;
public interface CSCMsgCustomServiceDelivery {
 public String invokeXML(String cscCorrelationID, String cscServiceOperationName,
     String msg) throws CSCMsgServerException;
 public String invokeXML(String cscCorrelationID, String msg)
     throws CSCMsgServerException;
 public byte[] invokeBinary(String cscCorrelationID, String cscServiceOperationName,
     int requestMessageLength, byte[] msg) throws CSCMsgServerException;
 public byte[] invokeBinary(String cscCorrelationID, int requestMessageLength,
     byte[] msg) throws CSCMsgServerException;
 public InputStream getUserFile(String fileName);
}

(c)　メソッド

CSCMsgCustomServiceDeliveryインターフェースのメソッドを次の表に示します。

メソッド名 | 機能
invokeXMLメソッド（形式1） | 指定されたオペレーション名のサービスに対してXML電文のメッセージを送信し，その応答を返します。
invokeXMLメソッド（形式2）※1 | デフォルトのオペレーション名のサービスに対してXML電文のメッセージを送信し，その応答を返します。
invokeBinaryメソッド（形式1） | 指定されたオペレーション名のサービスに対してバイナリ電文のメッセージを送信し，その応答を返します。
invokeBinaryメソッド（形式2）※2 | デフォルトのオペレーション名のサービスに対してバイナリ電文のメッセージを送信し，その応答を返します。
getUserFileメソッド | 開発環境で登録したカスタム受付ユーザファイルのInputStreamを返します。

注※1

invokeXMLメソッド（形式１）のオペレーション名を省略した場合と同等のメソッドです。

注※2

invokeBinaryメソッド（形式１）のオペレーション名を省略した場合と同等のメソッドです。

invokeXMLメソッド（形式1）

説明

指定されたオペレーション名のサービスに対してXML電文のメッセージを送信し，その応答を返します。

形式

public String invokeXML(String cscCorrelationID,
   String cscServiceOperationName, String msg)
   throws CSCMsgServerException;

パラメタ

cscCorrelationID（クライアント相関ID）
クライアント相関IDは，サービスリクエスタからの要求電文を一意に識別するための相関識別子です。
クライアント相関IDが次の制限に従っていない場合，CSCMsgServerException例外をスローします。
・サイズ：255文字以内
・使用できる文字：半角の英数字，アンダーライン（_），ピリオド（.）およびハイフン（-）
クライアント相関IDは，サービスリクエスタからの要求電文と，HCSCサーバで管理している実行履歴やログおよびトレースを対応づけるために使用します。したがって，HCSCサーバに送信した要求電文ごとに異なるIDを指定する必要があります。
クライアント相関IDを省略する場合，nullまたは空文字列（""）を指定します。

cscServiceOperationName（オペレーション名）
オペレーション名は，要求先のサービス名に対するオペレーション名です。
オペレーション名は，開発環境で定義したサービス部品のオペレーション名を指定します。
オペレーション名が次の制限に従っていない場合，CSCMsgServerException例外をスローします。
・サイズ：255バイト以内
・使用できる文字：XMLSchemaのNCName定義文字
カスタム受付定義画面で定義していないオペレーション名を指定した場合，CSCMsgServerException例外をスローします。
オペレーション名を省略する（デフォルトのオペレーション名を使用する）場合，nullまたは空文字列（""）を指定します。

msg（ユーザ電文）
ユーザ電文は，サービスリクエスタからの要求電文（XML形式）です。
要求電文がない場合，nullまたは空文字列（""）を指定します。

例外

CSCMsgServerException
次の場合にスローします。
・メソッドのパラメタに不正な値が指定された場合
・要求電文および応答電文のデータ変換でエラーが発生した場合
・要求先のサービス部品でエラーが発生した場合

戻り値

String
・通信モデルが同期の場合
　サービス部品の実行要求に対する応答電文（XML形式）を返却します。
　応答電文がない場合，nullを返却します。
・通信モデルが非同期の場合
　nullを返却します。

invokeXMLメソッド（形式2）

説明

デフォルトのオペレーション名のサービスに対してXML電文のメッセージを送信し，その応答を返します。

形式

public String invokeXML(String cscCorrelationID, String msg)
   throws CSCMsgServerException;

パラメタ

cscCorrelationID（クライアント相関ID）
クライアント相関IDは，サービスリクエスタからの要求電文を一意に識別するための相関識別子です。
クライアント相関IDが次の制限に従っていない場合，CSCMsgServerException例外をスローします。
・サイズ：255文字以内
・使用できる文字：半角の英数字，アンダーライン（_），ピリオド（.）およびハイフン（-）
クライアント相関IDは，サービスリクエスタからの要求電文と，HCSCサーバで管理している実行履歴やログおよびトレースを対応づけるために使用します。したがって，HCSCサーバに送信した要求電文ごとに異なるIDを指定する必要があります。
クライアント相関IDを省略する場合，nullまたは空文字列（""）を指定します。

msg（ユーザ電文）
ユーザ電文は，サービスリクエスタからの要求電文（XML形式）です。
要求電文がない場合，nullまたは空文字列（""）を指定します。

例外

CSCMsgServerException
次の場合にスローします。
・メソッドのパラメタに不正な値が指定された場合
・要求電文および応答電文のデータ変換でエラーが発生した場合
・要求先のサービス部品でエラーが発生した場合

戻り値

String
・通信モデルが同期の場合
　サービス部品の実行要求に対する応答電文（XML形式）を返却します。
　応答電文がない場合，nullを返却します。
・通信モデルが非同期の場合
　nullを返却します。

invokeBinaryメソッド（形式1）

説明

指定されたオペレーション名のサービスに対してバイナリ電文のメッセージを送信し，その応答を返します。

形式

public byte[] invokeBinary(String cscCorrelationID,
   String cscServiceOperationName, int requestMessageLength, byte[] msg)
   throws CSCMsgServerException;

パラメタ

cscCorrelationID（クライアント相関ID）
クライアント相関IDは，サービスリクエスタからの要求電文を一意に識別するための相関識別子です。
クライアント相関IDが次の制限に従っていない場合，CSCMsgServerException例外をスローします。
・サイズ：255文字以内
・使用できる文字：半角の英数字，アンダーライン（_），ピリオド（.）およびハイフン（-）
クライアント相関IDは，サービスリクエスタからの要求電文と，HCSCサーバで管理している実行履歴やログおよびトレースを対応づけるために使用します。したがって，HCSCサーバに送信した要求電文ごとに異なるIDを指定する必要があります。
クライアント相関IDを省略する場合，nullまたは空文字列（""）を指定します。

cscServiceOperationName（オペレーション名）
オペレーション名は，要求先のサービス名に対するオペレーション名です。
オペレーション名は，開発環境で定義したサービス部品のオペレーション名を指定します。
オペレーション名が次の制限に従っていない場合，CSCMsgServerException例外をスローします。
・サイズ：255バイト以内
・使用できる文字：XMLSchemaのNCName定義文字
ユーザ定義受付定義画面で定義していないオペレーション名を指定した場合，CSCMsgServerException例外をスローします。
オペレーション名を省略する（デフォルトのオペレーション名を使用する）場合，nullまたは空文字列（""）を指定します。

requestMessageLength（ユーザ電文長）
ユーザ電文長は，要求電文の長さです。
ユーザ電文長が次の制限に従っていない場合，CSCMsgServerException例外をスローします。
・0以上の整数値
・ユーザ電文（msgパラメタ）のバイト長以下の整数値
要求電文がない場合，0を指定します。
また，ユーザ電文（msgパラメタ）のバイト長より小さい値を指定した場合，要求電文の長さとして，ユーザ電文長（requestMessageLengthパラメタ）に指定した値を使用します。つまり，サービス部品に渡す要求電文には，ユーザ電文（msgパラメタ）のユーザ電文長（requestMessageLengthパラメタ）＋1バイト目以降は含まれません。

msg（ユーザ電文）
ユーザ電文は，サービスリクエスタからの要求電文（バイナリ形式）です。
要求電文がない場合，nullまたは0バイトのバイト配列を指定します。

例外

CSCMsgServerException
次の場合にスローします。
・メソッドのパラメタに不正な値が指定された場合
・要求電文および応答電文のデータ変換でエラーが発生した場合
・要求先のサービス部品でエラーが発生した場合

戻り値

byte[]
・通信モデルが同期の場合
　サービス部品の実行要求に対する応答電文（バイナリ形式）を返却します。
　応答電文がない場合，nullを返却します。
・通信モデルが非同期の場合
　nullを返却します。

invokeBinaryメソッド（形式2）

説明

デフォルトのオペレーション名のサービスに対してバイナリ電文のメッセージを送信し，その応答を返します。

形式

public byte[] invokeBinary(String cscCorrelationID,
   int requestMessageLength, byte[] msg)
   throws CSCMsgServerException;

パラメタ

cscCorrelationID（クライアント相関ID）
クライアント相関IDは，サービスリクエスタからの要求電文を一意に識別するための相関識別子です。
クライアント相関IDが次の制限に従っていない場合，CSCMsgServerException例外をスローします。
・サイズ：255文字以内
・使用できる文字：半角の英数字，アンダーライン（_），ピリオド（.）およびハイフン（-）
クライアント相関IDは，サービスリクエスタからの要求電文と，HCSCサーバで管理している実行履歴やログおよびトレースを対応づけるために使用します。したがって，HCSCサーバに送信した要求電文ごとに異なるIDを指定する必要があります。
クライアント相関IDを省略する場合，nullまたは空文字列（""）を指定します。

requestMessageLength（ユーザ電文長）
ユーザ電文長は，要求電文の長さです。
ユーザ電文長が次の制限に従っていない場合，CSCMsgServerException例外をスローします。
・0以上の整数値
・ユーザ電文（msgパラメタ）のバイト長以下の整数値
要求電文がない場合，0を指定します。
また，ユーザ電文（msgパラメタ）のバイト長より小さい値を指定した場合，要求電文の長さとして，ユーザ電文長（requestMessageLengthパラメタ）に指定した値を使用します。つまり，サービス部品に渡す要求電文には，ユーザ電文（msgパラメタ）のユーザ電文長（requestMessageLengthパラメタ）＋1バイト目以降は含まれません。

msg（ユーザ電文）
ユーザ電文は，サービスリクエスタからの要求電文（バイナリ形式）です。
要求電文がない場合，nullまたは0バイトのバイト配列を指定します。

例外

CSCMsgServerException
次の場合にスローします。
・メソッドのパラメタに不正な値が指定された場合
・要求電文および応答電文のデータ変換でエラーが発生した場合
・要求先のサービス部品でエラーが発生した場合

戻り値

byte[]
・通信モデルが同期の場合
　サービス部品の実行要求に対する応答電文（バイナリ形式）を返却します。
　応答電文がない場合，nullを返却します。
・通信モデルが非同期の場合
　nullを返却します。

getUserFileメソッド

説明

パラメタに指定されたファイル名のカスタム受付ユーザファイルを読み込んで，ファイルの内容をストリームとして返します。

このメソッドは，カスタム受付ユーザファイルのファイル形式に関係なく，ストリームとしてファイルの内容をそのまま返します。このメソッドの呼び出し元で，ファイル形式に応じて処理してください（Propertiesクラスのloadメソッドでプロパティファイルとして読み込むなど）。

このメソッドで取得したストリームは，使用後に，呼び出し元で閉じてください。

形式

public InputStream getUserFile(String fileName);

パラメタ

fileName
カスタム受付ユーザファイルのファイル名です。
開発環境でカスタム受付を定義するときに登録したカスタム受付ユーザファイルのファイル名を指定します。
使用できる文字は任意です。

例外

なし。

戻り値

InputStream
カスタム受付ユーザファイルのストリームを返却します。
パラメタに指定したファイル名のファイルが見つからなかった場合はnullを返却します。

(4)　APIの使用例

カスタム受付フレームワークのAPIを利用して，受付処理をEJB（Stateless Session Bean）形式で実装する場合の実装例を次に示します。

MyReception.java

package com.example.sample.reception.ejb;

import javax.ejb.EJBObject;

/**
* 受付処理(Stateless Session Bean)の実装例(Remoteインターフェース)
*/
public interface MyReception extends EJBObject {
 public String invoke(String cscCorrelationID, String cscServiceOperationName, String msg) throws RemoteException;
}

MyReceptionHome.java

package com.example.sample.reception.ejb;

import java.rmi.RemoteException;

import javax.ejb.CreateException;
import javax.ejb.EJBHome;

/**
* 受付処理(Stateless Session Bean)の実装例(Homeインターフェース)
*/
public interface MyReceptionHome extends EJBHome {
 public MyReception create() throws RemoteException, CreateException;
}

MyReceptionBean.java

package com.example.sample.reception.ejb;

import java.rmi.RemoteException;

import javax.ejb.CreateException;
import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;

import jp.co.Hitachi.soft.csc.msg.message.reception.CSCMsgServerException;
import jp.co.Hitachi.soft.csc.msg.message.reception.custom.CSCMsgCustomServiceDelivery;
import jp.co.Hitachi.soft.csc.msg.message.reception.custom.CSCMsgCustomServiceDeliveryFactory;

/**
* 受付処理(Stateless Session Bean)の実装例(Beanクラス)
*/
public class MyReceptionBean implements SessionBean {
 private static final CSCMsgCustomServiceDeliveryFactory factory =
     CSCMsgCustomServiceDeliveryFactory.newInstance();
 private CSCMsgCustomServiceDelivery delivery;
 private SessionContext context;

 public MyReceptionBean() {
 }

 public void ejbActivate() throws EJBException, RemoteException {
 }

 public void ejbCreate() throws CreateException {
   // CSCMsgCustomServiceDeliveryオブジェクトを生成
   delivery = factory.createCSCMsgCustomServiceDelivery();
 }

 public void ejbPassivate() throws EJBException, RemoteException {
 }

 public void ejbRemove() throws EJBException, RemoteException {
   // CSCMsgCustomServiceDeliveryオブジェクトを破棄
   delivery = null;
 }

 public String invoke(final String cscCorrelationID, final String cscServiceOperationName, final String msg) {
   try {
     // カスタム受付フレームワークを呼び出す
     final String response = delivery.invokeXML(cscCorrelationID, cscServiceOperationName, msg);
     return response;
   } catch (CSCMsgServerException e) {
     // カスタム受付フレームワークの例外をキャッチ
     // 例外処理を実装すること
   }
 }

 public void setSessionContext(final SessionContext sc) throws EJBException {
   context = sc;
 }
}

付録G.4　カスタム受付の定義

ここでは，カスタム受付の定義について説明します。

カスタム受付の定義の流れを次の図に示します。

図G-4　カスタム受付の定義の流れ

次に，カスタム受付の定義の流れに合わせてそれぞれの内容を説明します。

＜この項の構成＞

(1)　カスタム受付の追加

(2)　カスタム受付の定義の確認

(3)　カスタム受付の定義の編集

(4)　カスタム受付の定義の保存

(5)　リポジトリのエクスポート

(1)　カスタム受付の追加

開発環境で作成したカスタム受付EARファイルをインポートします。

カスタム受付を新規に追加する手順を次に示します。

ツリービューのサービス定義一覧で，カスタム受付を追加するサービス（ビジネスプロセス）を選択して，右クリックします。
サービス一覧のポップアップメニューが表示されます。

ポップアップメニューから［ユーザ定義受付追加］を選択します。
受付種別選択ウィザードが表示されます。

［受付種別］のドロップダウンリストから，［カスタム受付］を選択します。

［次へ］ボタンをクリックします。
カスタム受付追加ウィザードが表示されます。

［受付名］と［EARファイル］を指定します。

受付名
カスタム受付の名称を1～40バイトで指定します。
受付名は，ビジネスプロセス内で一意である必要があります。

EARファイル
インポートするEARファイルを絶対パスで指定します。相対パスやUNC形式で指定しないでください。
［...］ボタンをクリックして表示されるダイアログからEARファイルを選択することもできます。

［終了］ボタンをクリックします。
カスタム受付がビジネスプロセスに追加され，ユーザ定義受付定義画面が表示されます。
ユーザ定義受付定義画面の詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.6　ユーザ定義受付定義画面」を参照してください。

(2)　カスタム受付の定義の確認

カスタム受付をインポートしたあとに，定義された内容を確認してください。カスタム受付の内容は，ユーザ定義受付定義画面で確認できます。ユーザ定義受付定義画面は，カスタム受付追加ウィザードでカスタム受付を追加したあとに表示されます。

ユーザ定義受付定義画面を任意のタイミングで表示したい場合は，次の手順で表示させてください。

ツリービューのサービス定義一覧で，カスタム受付をダブルクリックします。
ユーザ定義受付定義画面が表示されます。

(3)　カスタム受付の定義の編集

ユーザ定義受付定義画面で，受付名，受付ID，オペレーション名などインポート済みのカスタム受付の定義を編集します。

ユーザ定義受付定義画面を任意のタイミングで表示させる手順については，「(2) カスタム受付の定義の確認」を参照してください。また，ユーザ定義受付定義画面および入力できる値については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「1.2.6　ユーザ定義受付定義画面」を参照してください。

(4)　カスタム受付の定義の保存

ユーザ定義受付定義画面で編集中のカスタム受付を編集途中や編集終了時に保存できます。カスタム受付の内容はリポジトリに保存されます。

ユーザ定義受付定義画面を閉じてカスタム受付の定義を終了する場合に，カスタム受付が保存されていないときは，リソース保管ダイアログが表示されます。リソース保管ダイアログでは，保存されていないカスタム受付の定義を保存できます。

カスタム受付を保存する方法を次に示します。

方法1

Eclipseのメニューから，［ファイル］－［保管］を選択します。

方法2

Eclipseのメニューから，［ファイル］－［すべて保管］を選択します。

方法3

Eclipseのツールバーの，［保管］アイコンをクリックします。

方法4

ユーザ定義受付定義画面で，［Ctrl］キー＋［S］キーを押します。

なお，不正なデータが入力されている場合，カスタム受付を保存できないことがあります。その場合，表示されているメッセージに従って対処してください。

(5)　リポジトリのエクスポート

定義したカスタム受付を含むリポジトリは，一つのZIPファイルにして，指定したディレクトリに保存することができます。

リポジトリをエクスポートする手順を次に示します。

Eclipseのメニューから，［HCSC-Definer］－［定義情報管理］－［全定義情報エクスポート］を選択します。
［リポジトリエクスポート］ダイアログが表示されます。

保存するディレクトリを指定し，保存するZIPファイルのファイル名を入力します。

［保存］ボタンをクリックします。

指定したディレクトリにZIPファイルが保存されます。

保存先のディレクトリに同じファイル名称のファイルがある場合，上書きを確認するダイアログが表示されます。上書きしてよいときは，［はい］ボタンをクリックして保存します。

付録G.5　カスタム受付の運用

ここでは，カスタム受付の運用について説明します。

カスタム受付の運用の流れを次の図に示します。

図G-5　カスタム受付の運用の流れ

次に，カスタム受付の運用の流れに合わせてそれぞれの内容を説明します。

＜この項の構成＞

(1)　リポジトリのインポート

(2)　カスタム受付の配備

(3)　カスタム受付のアプリケーション統合属性ファイルの取得

(4)　カスタム受付のアプリケーション統合属性ファイルの定義情報の設定

(5)　カスタム受付の開始

(6)　カスタム受付の情報の確認

(7)　カスタム受付の停止

(8)　配備済みのカスタム受付の削除

(9)　リポジトリの再インポート

(1)　リポジトリのインポート

開発環境で作成したカスタム受付を運用環境で使用する場合，ZIPファイル形式で保存されたリポジトリ情報をリポジトリにインポートします。インポートする方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「4.3　リポジトリのインポート」を参照してください。

リポジトリにインポートするには，cscrepctlコマンドを実行します。詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscrepctl（インポート/エクスポート）」を参照してください。

(2)　カスタム受付の配備

カスタム受付を配備するには，運用環境でcsccompodeployコマンドを実行します。詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompodeploy（HCSCコンポーネントの配備）」を参照してください。

カスタム受付を実行環境に配備する場合の前提条件，および配備方法は，ユーザ定義受付を配備する方法と同じです。詳細は，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「3.1.14　ユーザ定義受付を配備する」を参照してください。

(3)　カスタム受付のアプリケーション統合属性ファイルの取得

カスタム受付のアプリケーション統合属性ファイルを取得するときの前提条件，および取得方法について説明します。

(a)　前提条件

カスタム受付のアプリケーション統合属性ファイルを取得するには，HCSCサーバが起動状態である必要があります。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(b)　取得方法

カスタム受付のアプリケーション統合属性ファイルを取得するには，運用環境でcsccompoconfigコマンドを実行します。

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompoconfig（HCSCコンポーネントの定義）」を参照してください。

csccompoconfigコマンドの実行形式を次に示します。

csccompoconfig -user <ログインユーザID> -pass <ログインパスワード> -operation get -csc <HCSCサーバ名> -name <カスタム受付の受付ID>

(4)　カスタム受付のアプリケーション統合属性ファイルの定義情報の設定

カスタム受付のアプリケーション統合属性ファイルの定義情報を設定するときの前提条件，および設定方法について説明します。

(a)　前提条件

カスタム受付のアプリケーション統合属性ファイルの定義情報を設定するには，HCSCサーバが起動状態である必要があります。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(b)　設定方法

カスタム受付のアプリケーション統合属性ファイルの定義情報を設定するには，運用環境でcsccompoconfigコマンドを実行します。

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompoconfig（HCSCコンポーネントの定義）」を参照してください。

csccompoconfigコマンドの実行形式を次に示します。

HCSCサーバに配備されているカスタム受付に定義情報を設定する場合

HCSCサーバ名，およびカスタム受付の受付IDを指定して実行します。

指定したHCSCサーバ上のカスタム受付に，アプリケーション統合属性ファイルで指定した定義情報が設定されます。

csccompoconfig -user <ログインユーザID> -pass <ログインパスワード> -operation set -propfile <アプリケーション統合属性ファイル> -csc <HCSCサーバ名> -name <カスタム受付の受付ID>

クラスタ内のHCSCサーバに配備されているカスタム受付に定義情報を設定する場合

クラスタ名，およびカスタム受付の受付IDを指定して実行します。

指定したクラスタに配備されているカスタム受付に，アプリケーション統合属性ファイルで指定した定義情報が設定されます。

csccompoconfig -user <ログインユーザID> -pass <ログインパスワード> -operation set -propfile <アプリケーション統合属性ファイル> -cluster <クラスタ名> -name <カスタム受付の受付ID>

(5)　カスタム受付の開始

カスタム受付を開始するときの前提条件，および開始方法について説明します。

(a)　前提条件

カスタム受付を開始するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること。

カスタム受付が定義されているビジネスプロセスが開始状態であること。

HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

(b)　開始方法（画面の場合）

運用環境の画面を利用してカスタム受付を開始する手順を次に示します。

ツリービュー上で，開始するユーザ定義受付（カスタム受付）をダブルクリックします。
ダブルクリックしたカスタム受付の情報がエディタエリアの稼働運用ページに表示されます。
カスタム受付の稼働運用ページの内容については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「3.4(4) ユーザ定義受付稼働運用」を参照してください。

稼働運用ページに表示された内容を確認し，［開始］ボタンをクリックします。
カスタム受付の開始を確認するダイアログが表示されます。

ダイアログに表示された内容を確認し，［OK］ボタンをクリックします。
カスタム受付の開始処理が開始されます。開始処理中のログはコンソールビューに出力されます。
［キャンセル］ボタンをクリックした場合は，開始処理を実行しないで稼働運用ページに戻ります。
カスタム受付の開始処理が完了すると，実行結果を示すダイアログが表示されます。

実行結果を示すダイアログを確認します。

開始処理が成功した場合
［OK］ボタンをクリックして，稼働運用ページに戻ります。
稼働運用ページでは，カスタム受付の稼働状態が「開始状態」になります。また，［開始］ボタンが非活性化し，［停止］ボタンが活性化します。

開始処理が失敗した場合
ダイアログにエラーの内容が表示されます。詳細情報に表示されるメッセージIDを参照して対処してください。

(c)　開始方法（コマンドの場合）

カスタム受付を開始するには，運用環境でcsccompostartコマンドを実行します。

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompostart（HCSCコンポーネントの開始）」を参照してください。

csccompostartコマンドの実行形式を次に示します。

クラスタ内のすべてのHCSCサーバに配備されているカスタム受付を一括して開始する場合（クラスタ単位）

クラスタ名と-allオプションを指定して実行します。

-clusterオプションで指定したクラスタ内のすべてのHCSCサーバに配備されているカスタム受付が一括して開始されます（開始されていないサービスアダプタおよびビジネスプロセスも同時にすべて開始されます）。

csccompostart -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -all

HCSCサーバに配備されているカスタム受付を一括して開始する場合（HCSCサーバ単位）

HCSCサーバ名と-allオプションを指定して実行します。

-cscオプションで指定したHCSCサーバに配備されているカスタム受付が開始されます（開始されていないサービスアダプタおよびビジネスプロセスも同時にすべて開始されます）。

csccompostart -user <ログインユーザID> -pass <ログインパスワード> -csc <HCSCサーバ名> -all

クラスタ内のすべてのHCSCサーバに配備されている特定のカスタム受付を開始する場合

クラスタ名とカスタム受付の受付IDを指定して実行します。

csccompostart -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <カスタム受付の受付ID>

HCSCサーバに配備されている特定のカスタム受付を開始する場合

HCSCサーバ名とカスタム受付の受付IDを指定して実行します。

csccompostart -user <ログインユーザID> -pass <ログインパスワード> -csc <HCSCサーバ名> -name <カスタム受付の受付ID>

(6)　カスタム受付の情報の確認

カスタム受付の情報を参照するには，cscsvclsコマンドを実行します。詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「cscsvcls（サービス情報の表示）」を参照してください。

cscsvclsコマンドを実行すると，開発環境または運用環境に設定されている定義ファイルのファイル名とその状態を確認できます。確認する方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「3.1.7　サービス情報を確認する」を参照してください。

(7)　カスタム受付の停止

カスタム受付を停止するときの前提条件，および停止方法について説明します。

(a)　前提条件

カスタム受付を停止するには，次の条件を満たしている必要があります。

HCSCサーバが起動状態であること
HCSCサーバの状態の確認方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.15　HCSCサーバの情報を確認する」を参照してください。

カスタム受付が開始状態であること
カスタム受付の状態の確認方法は，ユーザ定義受付の状態を確認する方法と同じです。詳細は，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「5.2.19　ユーザ定義受付の情報を確認する」を参照してください。

(b)　停止方法

カスタム受付を停止するには，運用環境でcsccompostopコマンドを実行します。

詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompostop（HCSCコンポーネントの停止）」を参照してください。

csccompostopコマンドの実行形式を次に示します。

クラスタ内のすべてのHCSCサーバに配備されているカスタム受付を一括して停止する場合（クラスタ単位）

クラスタ名と-allオプションを指定して実行します。

-clusterオプションで指定したクラスタ内のすべてのHCSCサーバに配備されているカスタム受付が一括して停止されます（停止されていないサービスアダプタおよびビジネスプロセスも同時にすべて停止されます）。

csccompostop -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -all

HCSCサーバに配備されているカスタム受付を一括して停止する場合（HCSCサーバ単位）

HCSCサーバ名と-allオプションを指定して実行します。

-cscオプションで指定したHCSCサーバに配備されているカスタム受付が停止されます（停止されていないサービスアダプタおよびビジネスプロセスも同時にすべて停止されます）。

csccompostop -user <ログインユーザID> -pass <ログインパスワード> -csc <HCSCサーバ名> -all

クラスタ内のすべてのHCSCサーバに配備されている特定のカスタム受付を停止する場合

クラスタ名とカスタム受付の受付IDを指定して実行します。

csccompostop -user <ログインユーザID> -pass <ログインパスワード> -cluster <クラスタ名> -name <カスタム受付の受付ID>

HCSCサーバに配備されている特定のカスタム受付を停止する場合

HCSCサーバ名とカスタム受付の受付IDを指定して実行します。

csccompostop -user <ログインユーザID> -pass <ログインパスワード> -csc <HCSCサーバ名> -name <カスタム受付の受付ID>

なお，csccompostopコマンドの停止処理では，CSCが保持するカスタム受付の状態を「停止状態」に更新してからカスタム受付のアプリケーションを停止します。カスタム受付の停止処理中にリクエストを受信した場合，CSCが保持するカスタム受付と，カスタム受付のアプリケーションが両方とも起動していれば，リクエストは正常に受け付けられます。

(8)　配備済みのカスタム受付の削除

実行環境に配備済みのカスタム受付を削除するには，運用環境でcsccompoundeployコマンドを実行します。詳細は，マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csccompoundeploy（配備済みのHCSCコンポーネントの削除）」を参照してください。

配備済みのカスタム受付を削除する場合の前提条件，および削除方法は，ユーザ定義受付を削除する方法と同じです。削除する方法については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「3.2.3　ユーザ定義受付を削除する」を参照してください。

(9)　リポジトリの再インポート

運用環境にリポジトリをインポートしたあとに，開発環境でカスタム受付の定義を編集した場合，次の手順でリポジトリを再インポートします。

リポジトリのエクスポート
編集後の定義を保存したリポジトリをエクスポートします。
リポジトリのエクスポートは開発環境で実行します。
リポジトリのエクスポートの詳細は，「3.2.2　リポジトリをエクスポートする」を参照してください。

リポジトリのインポート
開発環境でエクスポートしたリポジトリを運用環境にインポートします。
リポジトリのインポートの詳細は，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「4.3　リポジトリのインポート」を参照してください。

付録G.6　カスタム受付のチューニング

ここでは，カスタム受付の同時実行数，およびトランザクションタイムアウトの設定方法について説明します。

＜この項の構成＞

(1)　同時実行数の設定方法（カスタム受付）

(2)　トランザクションタイムアウト時間の設定方法（カスタム受付）

(1)　同時実行数の設定方法（カスタム受付）

同時実行数の設定方法を次に示します。

(a)　受付処理の場合

受付処理の同時実行数は，受付処理の処理内容に合わせて，カスタム受付の開発時および運用時に設定できます。

カスタム受付開発時の設定
受付処理の処理内容に合わせて，Cosminexusアプリケーション属性ファイル（cosminexus.xml）の要素に値を設定します。

カスタム受付運用時の設定
受付処理の処理内容に合わせて，アプリケーション統合属性ファイルの要素に値を設定します。

Cosminexusアプリケーション属性ファイル（cosminexus.xml）の詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「2.　Cosminexusアプリケーション属性ファイル（cosminexus.xml）」を参照してください。アプリケーション統合属性ファイルの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.1　アプリケーション統合属性ファイル」を参照してください。

(b)　カスタム受付フレームワークの場合

カスタム受付フレームワークの同時実行数は，カスタム受付の開発時には設定できません。カスタム受付の運用時に設定できます。

アプリケーション統合属性ファイルの要素に値を設定します。

設定する要素については，次に示すXPath式を参照してください。

//hitachi-application-all-property/ejb-jar/hitachi-ejb-jar-property/display-name[.='cscmsg_urecp_custom']/../../hitachi-session-bean-property/display-name[.='CSCMsgCustomServiceDelivery']/../session-runtime/stateless/pooled-instance/minimum

//hitachi-application-all-property/ejb-jar/hitachi-ejb-jar-property/display-name[.='cscmsg_urecp_custom']/../../hitachi-session-bean-property/display-name[.='CSCMsgCustomServiceDelivery']/../session-runtime/stateless/pooled-instance/maximum

(2)　トランザクションタイムアウト時間の設定方法（カスタム受付）

トランザクションタイムアウト時間の設定方法を次に示します。

(a)　受付処理の場合

受付処理のトランザクションタイムアウトは，受付処理の実装形式に合わせて，カスタム受付の開発時および運用時に設定できます。

カスタム受付開発時の設定
受付処理の処理内容に合わせて，Cosminexusアプリケーション属性ファイル（cosminexus.xml）の要素に値を設定します。

カスタム受付運用時の設定
受付処理の処理内容に合わせて，アプリケーション統合属性ファイルの要素に値を設定します。

Cosminexusアプリケーション属性ファイル（cosminexus.xml）の詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「2.　Cosminexusアプリケーション属性ファイル（cosminexus.xml）」を参照してください。アプリケーション統合属性ファイルの詳細は，マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.1　アプリケーション統合属性ファイル」を参照してください。

(b)　カスタム受付フレームワークの場合

カスタム受付フレームワークのトランザクションタイムアウト時間は，カスタム受付の開発時には設定できません。カスタム受付の運用時に設定できます。

アプリケーション統合属性ファイルの要素に値を設定します。

設定する要素については，次に示すXPath式を参照してください。

//hitachi-application-all-property/ejb-jar/hitachi-ejb-jar-property/display-name[.='cscmsg_urecp_custom']/../../hitachi-session-bean-property/display-name[.='CSCMsgCustomServiceDelivery']/../ejb-transaction-timeout/method/method-name[.='*']/../../transaction-timeout

付録G.7　カスタム受付でのエラーの伝わり方

サービスリクエスタからカスタム受付を使用してサービス部品を呼び出すときに，障害が発生すると，サービスリクエスタにエラーがリターンします。ここでは，エラーが発生した個所からサービスリクエスタまでどのようにエラーが伝わるかについて説明します。

＜この項の構成＞

(1)　サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）

(2)　サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）

(3)　HCSCサーバからエラーがリターンした場合（ビジネスプロセスを使用するとき）

(1)　サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）

ここでは，サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のエラーの伝わり方を説明します。

(a)　フォルト処理で障害情報をサービス電文にデータ変換しない場合

サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のカスタム受付でのエラーの伝わり方（フォルト処理なし）を次の図に示します。

図G-6　サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のカスタム受付でのエラーの伝わり方（フォルト処理なし）

サービス部品で発生した例外は，そのまま例外としてカスタム受付フレームワークに伝わります。その例外をキャッチしたカスタム受付フレームワークは，CSCMsgServerExceptionを受付処理に再スローします。

(b)　フォルト処理で障害情報をサービス電文にデータ変換する場合

サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のカスタム受付でのエラーの伝わり方（フォルト処理あり）を次の図に示します。

図G-7　サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のカスタム受付でのエラーの伝わり方（フォルト処理あり）

サービス部品で発生した例外は，そのまま例外としてビジネスプロセスのフォルト処理に伝わります。そのあと，ビジネスプロセスのフォルト処理でその障害情報を応答電文にデータ変換し，障害情報を含んだ応答電文として，以降の処理に返します。この場合，HCSCメッセージ配送制御を経由して，カスタム受付フレームワークに応答電文が返ります。カスタム受付フレームワークは，通常の応答電文と同様，その応答電文を受付処理に返します。

(2)　サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）

ここでは，サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のエラーの伝わり方を説明します。

(a)　フォルト処理で障害情報をサービス電文にデータ変換しない場合

サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のカスタム受付でのエラーの伝わり方（フォルト処理なし）を次の図に示します。

図G-8　サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のカスタム受付でのエラーの伝わり方（フォルト処理なし）

サービス部品で想定外の例外が発生した場合，RuntimeException（システム例外）としてカスタム受付フレームワークに伝わります。その例外をキャッチしたカスタム受付フレームワークは，キャッチしたRuntimeException（システム例外）を，そのまま受付処理に再スローします。

(b)　フォルト処理で障害情報をサービス電文にデータ変換する場合

サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のカスタム受付でのエラーの伝わり方（フォルト処理あり）を次の図に示します。

図G-9　サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）のカスタム受付でのエラーの伝わり方（フォルト処理あり）

サービス部品で発生した例外は，そのまま例外としてビジネスプロセスのフォルト処理に伝わります。そのあと，ビジネスプロセスのフォルト処理でその障害情報を応答電文にデータ変換し，障害情報を含んだ応答電文として，以降の処理に返します。この場合，HCSCメッセージ配送制御を経由して，カスタム受付フレームワークに応答電文が返ります。カスタム受付フレームワークは，通常の応答電文と同様，その応答電文を受付処理に返します。

(3)　HCSCサーバからエラーがリターンした場合（ビジネスプロセスを使用するとき）

ここでは，HCSCサーバからエラーがリターンした場合（ビジネスプロセスを使用するとき）のエラーの伝わり方を説明します。

HCSCサーバからエラーがリターンした場合（ビジネスプロセスを使用するとき）のカスタム受付でのエラーの伝わり方を次の図に示します。

図G-10　HCSCサーバからエラーがリターンした場合（ビジネスプロセスを使用するとき）のカスタム受付でのエラーの伝わり方

図中の各エラーには，次に示すケースが該当します。

エラー1：要求パラメタ不正など

エラー2：あて先（ロケーション）が見つからない，アダプタが停止しているなど

エラー3：データ変換に失敗したなど

エラー4：あて先不正，サービス部品が停止，通信障害など

エラー5：ビジネスプロセス処理上での例外エラーなど

HCSCサーバで図中のエラー1～エラー5のどれかを検知した場合，カスタム受付フレームワークは，発生したエラーの情報をCSCMsgServerExceptionで，受付処理にスローします。

付録G.8　障害情報の取得（カスタム受付）

カスタム受付の運用時に障害が発生すると，障害対策に必要な次の情報が出力されます。

メッセージログ

リクエストトレース

性能解析トレース

ユーザ電文トレース

実行履歴

ここでは，ログおよび各種トレースの取得方法について説明します。

＜この項の構成＞

(1)　メッセージログ（カスタム受付）

(2)　リクエストトレース（カスタム受付）

(3)　性能解析トレース（カスタム受付）

(4)　ユーザ電文トレース（カスタム受付）

(5)　実行履歴（カスタム受付）

(1)　メッセージログ（カスタム受付）

メッセージログは，次に示すログに出力されます。

HCSC-Managerのログ

Cosminexusの統合メッセージログ

CosminexusのJ2EEサーバの稼働ログ

メッセージログの取得方法および出力先については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「7.4.1　メッセージログ」に関する内容を参照してください。また，詳細は，マニュアル「Cosminexus サービスプラットフォーム メッセージ」の「2.　メッセージ一覧」を参照してください。

(2)　リクエストトレース（カスタム受付）

リクエストトレースは，リクエストの障害要因の解析に使用します。

(a)　リクエストトレースの取得ポイント

リクエストトレースの取得ポイントを次の図に示します。

図G-11　リクエストトレースの取得ポイント

詳細位置，およびトレース取得ポイントを次の表に示します。なお，表の「図中の番号」は，図中の番号と対応しています。

表G-5　リクエストトレースの取得ポイント

図中の番号 | 詳細位置 | トレース取得ポイント
1 | IN | カスタム受付フレームワークの入口
2 | OUT | カスタム受付フレームワークの出口

(b)　リクエストトレースの出力形式と出力内容

出力形式

リクエストトレースの出力形式については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「7.4.2　リクエストトレース」を参照してください。

出力内容

リクエストトレースに出力される内容を次の表に示します。

表G-6　リクエストトレースに出力される内容

項目
内容

番号
トレースレコードの出力通番が出力されます。

日付
トレースレコードの取得日付（yyyy/mm/dd形式）が出力されます。

時刻
トレースレコードの取得時刻（hh:mm:ss.sss形式）が，ローカル時刻で出力されます。

製品ID
製品を識別するためのIDが出力されます。

CSCMSG：メッセージング基盤

pid
プロセスを識別するためのIDが出力されます。

tid
スレッドを識別するためのIDが出力されます。

ID
－

メッセージ共通ID
リクエスト識別情報（親ID）が出力されます。

サービスリクエストID
リクエスト識別情報（子ID）が出力されます。

取得ポイント識別情報
取得位置
トレースの取得ポイント情報（取得位置）が出力されます。

URCP：ユーザ定義受付

プロトコル種別
トレースの取得ポイント情報（プロトコル種別）が出力されます。

CUSTM：カスタム受付

詳細位置
トレースの取得ポイント情報（詳細位置）が出力されます。

IN：受付

OUT：応答

名称
－

アダプタ種別
－

結果
応答結果種別が出力されます。ただし，詳細位置がINの場合は，出力されません。

NORMAL：正常終了

ERROR：異常終了

付加情報
応答結果の付加情報が出力されます。

受付名

受付ID

クライアント相関ID

サービス名

サービスオペレーション名

CRLF
レコード終端符号が出力されます。

（凡例）－：何も出力されません。

(c)　リクエストトレースの取得方法と出力先

リクエストトレースの取得方法と出力先については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「7.4.2　リクエストトレース」を参照してください。

(3)　性能解析トレース（カスタム受付）

性能解析トレース（PRFトレース）は，Cosminexusシステムの性能解析をするためのトレース情報で，それをCSV形式で編集出力したテキストファイルが性能解析トレースファイルです。性能解析トレースは，J2EEアプリケーションを含めた，システム全体の性能ボトルネックを解析するための情報が出力されます。システムの性能ネックや性能トラブルシュートに使用します。性能解析トレース機能については，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「6.　性能解析トレースを使用したシステムの性能解析」を参照してください。

(a)　性能解析トレースの取得ポイント

性能解析トレースの取得ポイントを次の図に示します。

図G-12　性能解析トレースの取得ポイント

イベントID，トレース取得ポイント，および性能解析トレース取得レベルを次の表に示します。なお，表の「図中の番号」は，図中の番号と対応しています。

表G-7　性能解析トレースの取得ポイント

イベントID | 図中の番号 | トレース取得ポイント | レベル
0x9860 | 1 | カスタム受付フレームワークの入口 | A
0x9861 | 2 | カスタム受付フレームワークの出口 | A
0x9862 | 3 | データ変換（要求電文）の呼び出し口 | B
0x9863 | 4 | データ変換（要求電文）の応答受信口 | B
0x9864 | 5 | HCSCメッセージ配送制御の呼び出し口 | A
0x9865 | 6 | HCSCメッセージ配送制御の応答受信口 | A
0x9866 | 7 | データ変換（応答電文）の呼び出し口 | B
0x9867 | 8 | データ変換（応答電文）の応答受信口 | B

（凡例）

A：標準

B：詳細

(b)　性能解析トレースの出力形式と出力内容

出力形式

性能解析トレースファイルに出力される形式は，Cosminexusの性能解析トレースと同様です。性能解析トレースファイルの詳細は，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「6.3　性能解析トレースファイル」を参照してください。

出力内容

性能解析トレースファイルに出力される内容を次の表に示します。

表G-8　性能解析トレースファイルに出力される内容

項目
内容

イベントID
取得ポイントのイベントIDが出力されます。

リターンコード
取得ポイント種別が出力されます。

0：正常終了

1：異常終了

インターフェース名
クラス名が出力されます。
パッケージ名は表示されません。

オペレーション名
メソッド名が出力されます。

オプション情報
次のオプション情報が出力されます。

リクエスト識別情報（親ID）

リクエスト識別情報（子ID）

受付名

受付ID

クライアント相関ID

サービス名

サービスオペレーション名

例外クラス名（異常終了時だけ）

(c)　性能解析トレースの取得方法と出力先

性能解析トレースファイルの取得方法および出力先は，Cosminexus全体で共通です。性能解析トレースファイルの取得方法および出力先については，マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編」の「6.3　性能解析トレースファイル」を参照してください。

(4)　ユーザ電文トレース（カスタム受付）

ユーザ電文トレースは，電文の状態を確認するために使用します。

(a)　ユーザ電文トレースの取得ポイント

ユーザ電文トレースの取得ポイントを次の図に示します。

図G-13　ユーザ電文トレースの取得ポイント

詳細位置，およびトレース取得ポイントを次の表に示します。なお，表の「図中の番号」は，図中の番号と対応しています。

表G-9　ユーザ電文トレースの取得ポイント

図中の番号 | 詳細位置 | トレース取得ポイント
1 | IN | カスタム受付フレームワークの入口
2 | OUT | カスタム受付フレームワークの出口
3 | RQA※ | データ変換（要求電文）の応答口
4 | RSB※ | データ変換（応答電文）の呼び出し口

注※　データ変換をする場合だけトレースを取得します。

(b)　ユーザ電文トレースの出力形式と出力内容

出力形式

ユーザ電文トレースの出力形式については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「7.4.4　ユーザ電文トレース」を参照してください。

出力内容

ユーザ電文トレースに出力される内容を次の表に示します。

表G-10　ユーザ電文トレースに出力される内容（トレース開始）

項目
内容

番号
トレースレコードの出力通番が出力されます。

日付
トレースレコードの取得日付（yyyy/mm/dd形式）が出力されます。

時刻
トレースレコードの取得時刻（hh:mm:ss.sss形式）が，ローカル時刻で出力されます。

製品ID
製品を識別するためのIDが出力されます。

CSCMSG：メッセージング基盤

pid
プロセスを識別するためのIDが出力されます。

tid
スレッドを識別するためのIDが出力されます。

ID
－

電文トレース開始取得ポイント識別情報
電文トレース開始
ユーザ電文トレース開始を示す文字列「telegramtrace started」が出力されます。

取得位置
トレースの取得ポイント情報（取得位置）が出力されます。

URCP：ユーザ定義受付

プロトコル種別
トレースの取得ポイント情報（プロトコル種別）が出力されます。

CUSTM：カスタム受付

詳細位置
トレースの取得ポイント情報（詳細位置）が出力されます。

IN：受付

OUT：応答

RQA：カスタム受付での要求時のデータ変換後

RSB：カスタム受付での応答時のデータ変換前

メッセージ共通ID
リクエスト識別情報（親ID）が出力されます。

付加情報
次の付加情報が出力されます。

リクエスト識別情報（子ID）

受付名

受付ID

クライアント相関ID

サービス名

サービスオペレーション名

CRLF
レコード終端符号が出力されます。

（凡例）－：何も出力されません。

表G-11　ユーザ電文トレースに出力される内容（トレースデータ）

項目
内容

番号
トレースレコードの出力通番が出力されます。

日付
トレースレコードの取得日付（yyyy/mm/dd形式）が出力されます。

時刻
トレースレコードの取得時刻（hh:mm:ss.sss形式）が，ローカル時刻で出力されます。

製品ID
製品を識別するためのIDが出力されます。

CSCMSG：メッセージング基盤

pid
プロセスを識別するためのIDが出力されます。

tid
スレッドを識別するためのIDが出力されます。

ID
－

電文トレースデータ情報
出力位置
ユーザ電文の先頭からのオフセット値（16進数形式）が出力されます。

データ
（16進数形式）
ユーザ電文の内容（16進数形式）が出力されます。

データ
（ASCII形式）
ユーザ電文の内容（ASCII形式）が出力されます。
0x20～0x7Eの範囲の場合にASCII文字が出力されます。
範囲外の場合は，ピリオド（.）が出力されます。

CRLF
レコード終端符号が出力されます。

（凡例）－：何も出力されません。

表G-12　ユーザ電文トレースに出力される内容（トレース終了）

項目
内容

番号
トレースレコードの出力通番が出力されます。

日付
トレースレコードの取得日付（yyyy/mm/dd形式）が出力されます。

時刻
トレースレコードの取得時刻（hh:mm:ss.sss形式）が，ローカル時刻で出力されます。

製品ID
製品を識別するためのIDが出力されます。

CSCMSG：メッセージング基盤

pid
プロセスを識別するためのIDが出力されます。

tid
スレッドを識別するためのIDが出力されます。

ID
－

電文トレース終了取得ポイント識別情報
電文トレース終了
ユーザ電文トレース終了を示す文字列「telegramtrace ended」が出力されます。

取得位置
トレースの取得ポイント情報（取得位置）が出力されます。

URCP：ユーザ定義受付

プロトコル種別
トレースの取得ポイント情報（プロトコル種別）が出力されます。

CUSTM：カスタム受付

詳細位置
トレースの取得ポイント情報（詳細位置）が出力されます。

IN：受付

OUT：応答

RQA：カスタム受付での要求時のデータ変換後

RSB：カスタム受付での応答時のデータ変換前

メッセージ共通ID
リクエスト識別情報（親ID）が出力されます。

付加情報
ユーザ電文の長さ（10進数形式）が出力されます。ユーザ電文がない場合は「null」が出力されます。

CRLF
レコード終端符号が出力されます。

（凡例）－：何も出力されません。

(c)　ユーザ電文トレースの取得方法と出力先

ユーザ電文トレースの取得方法と出力先については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「7.4.4　ユーザ電文トレース」を参照してください。

(5)　実行履歴（カスタム受付）

ここでは，カスタム受付の運用時に出力される実行履歴の取得について説明します。

(a)　実行履歴の取得ポイント

実行履歴の取得ポイントを，次の図に示します。

図G-14　実行履歴の取得ポイント

実行履歴採取方向，および実行履歴取得ポイントを次の表に示します。表の「図中の番号」は，図中の番号と対応しています。

表G-13　実行履歴の取得ポイント

図中の番号 | 実行履歴取得ポイント | 実行履歴の採取方向
１ | カスタム受付フレームワークの出口（正常応答） | Service Response Direction
１ | カスタム受付フレームワークの出口（異常応答） | Service Error

(b)　実行履歴の出力形式と出力内容

出力形式

実行履歴の出力形式については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「6.　実行履歴の管理」を参照してください。

出力内容

実行履歴の表示項目を次の表に示します。

表G-14　実行履歴の表示項目

表示項目
説明

EntryCount
エントリ番号を示します。

TimeStamp
実行履歴採取時刻を示します。
java.text.SimpleDateFormatで定義されているフォーマットに，YYYY/MM/DD hh:mm:ss.SSSの形式で表示されます。

YYYY：西暦

MM：月

DD：日

hh：時

mm：分

ss：秒

SSS：ミリ秒

HCSCServerName
受付HCSCサーバ名を示します。

ClusterName
サービス部品を呼び出したHCSCサーバのクラスタ名を示します。

HistoryDirection
実行履歴採取方向を示します。次のどちらかが表示されます。

Service Response Direction：応答方向

Service Error：サービス部品呼び出しエラー

HCSCCommonID
メッセージ共通IDを示します。

ServiceRequestID
サービスリクエストIDを示します。

ClientID
クライアント相関IDを示します。

JMSMessageID
JMSメッセージIDを示します。「null」が表示されます。

JMSCorrelationID
JMS相関識別子を示します。「null」が表示されます。

RequestType
サービスリクエスタ種別を示します。「ClientProgram」が表示されます。

RequestProtocolKind
リクエストのプロトコル種別を示します。「Custom」が表示されます。

RequestServiceName
ビジネスプロセスのサービス名を示します。

ServiceName
呼び出し先のサービス名を示します。次の内容が表示されます。

ビジネスプロセスのサービス名

ServiceKind
サービス部品の種別を示します。次の内容が表示されます。

BusinessProcess：ビジネスプロセス

AdapterName
ビジネスプロセスのサービスIDを示します。

ServiceProtocolKind
サービスアダプタの種類を示します。「null」が表示されます。

ServiceOperationName
サービス部品のオペレーション名を示します。

ConnectProtocolKind
連携プロトコル種別を示します。「null」が表示されます。

RequestUserTelegramType
ユーザ電文の種別を示します。次のどれかが表示されます。

XML：XML電文

BINARY：バイナリ電文

ANY：ANY電文

要求時のデータ変換を行った場合，データ変換後の電文種別が表示されます。

ResponseUserTelegramType
ユーザへの応答電文の種別を示します。次のどれかが表示されます。

XML：XML電文

BINARY：バイナリ電文

ANY：ANY電文

BPActivity
ビジネスプロセス用アクティビティ番号を示します。ビジネスプロセスのアクティビティインスタンスを識別するための番号です。「-1」が表示されます。

BPProcessID
ビジネスプロセス用プロセスIDを示します。「null」が表示されます。

BPRequestType
ビジネスプロセス用要求タイプを示します。「null」が表示されます。

ReplyToQueueName
応答用のキュー名を示します。「null」が表示されます。

RouteHistory
経路履歴情報を示します。HCSCサーバ名またはサービスアダプタのサービスIDが「->」でつなげた文字列で表示されます。

ErrorCode
エラー情報を示します。HistoryDirectionがService Errorの場合，次の理由のどれかとエラーコードが表示されます。

HCSCサーバ内で検出したエラーのエラー理由

ビジネスプロセス基盤でのロールバック発生理由

電文の二重配信理由

HistoryDirectionがService Response Directionの場合，「null」が表示されます。

Version
実行履歴情報コンテナのバージョン番号を示します。

Revision
実行履歴情報コンテナのリビジョン番号を示します。

UserTelegram
ユーザ電文を示します。ユーザ電文がない，またはHistoryDirectionがService Errorの場合，「null」が表示されます。

(c)　実行履歴の取得方法と出力先

実行履歴の取得方法と出力先については，マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「6.　実行履歴の管理」を参照してください。

付録H　サービスリクエスタのエミュレーション

HCSCコンポーネントをテストするときに，MyEclipseが搭載しているWebサービス・エクスプローラーをサービスリクエスタとして利用できます。ここでは，テスト用にWebサービス・エクスプローラーを利用する場合のサービスリクエスタのエミュレート方法について説明します。

なお，Webサービス・エクスプローラーはプロトコルにSOAP（HTTP）を使用するため，送信できる受付は標準受付（同期受付（Webサービス））とユーザ定義受付です。Webサービス・エクスプローラーの詳細については，MyEclipseのヘルプを参照してください。

＜この節の構成＞

付録H.1　サービスリクエスタのエミュレーションの流れ

付録H.2　サービスリクエスタのエミュレーション手順

付録H.1　サービスリクエスタのエミュレーションの流れ

Webサービス・エクスプローラーを利用したサービスリクエスタのエミュレーションの流れを示します。この流れに沿って，「付録H.2　サービスリクエスタのエミュレーション手順」でエミュレーションの実行例を説明します。

図H-1　サービスリクエスタのエミュレーションの流れ

＜この項の構成＞

(1)　HCSCコンポーネントの配備

(2)　受付のWSDLファイルの取得

(3)　Webサービス・エクスプローラーによる要求電文の送信

(1)　HCSCコンポーネントの配備

Webサービス・エクスプローラーから要求電文を送信できるように，テストするHCSCコンポーネントを配備します。

(2)　受付のWSDLファイルの取得

送信する受付のWSDLファイルを取得して，Eclipseの任意のプロジェクトにコピーします。標準受付のWSDLファイルの取得方法については，「10.2.2　WSDLを取得する」を参照してください。

ユーザ定義受付の場合は，ユーザ定義受付の作成時に使用したWSDLファイルをコピーしてください。ただし，ユーザ定義受付のWSDLは，サービスロケーションの値を修正しているものとします。サービスロケーションの値の設定については，「10.7.2　WSDLを編集する」を参照してください。

(3)　Webサービス・エクスプローラーによる要求電文の送信

Webサービス・エクスプローラーを起動し，要求電文を送信します。Webサービス・エクスプローラーから要求電文を送信するには，送信するオペレーションを選択し，必要なパラメタを設定します。

付録H.2　サービスリクエスタのエミュレーション手順

ここでは，Cosminexus サービスプラットフォームに付属している「商品手配サンプルプログラム」を例に，Webサービス・エクスプローラーでテストする手順について説明します。サンプルプログラムの詳細については，マニュアル「Cosminexus サービスプラットフォーム サンプルプログラムガイド」の「2.3.3　プロセス統合パターン」を参照してください。

＜この項の構成＞

(1)　HCSCコンポーネントを配備する

(2)　受付のWSDLファイルを取得する

(3)　Webサービス・エクスプローラーで要求電文を送信する

(1)　HCSCコンポーネントを配備する

Webサービス・エクスプローラーから要求電文を送信できるように，商品手配サンプルプログラムのWebサービスやHCSCコンポーネントを配備します。

(2)　受付のWSDLファイルを取得する

商品手配サンプルプログラムでは，ユーザ定義受付を使用します。このユーザ定義受付のWSDLファイルは次の場所にあります。

<uCosminexus Service Architectのインストールディレクトリ>¥CSCTE¥Samples¥商品手配¥Service¥WSDL¥ArrangementService.wsdl

このファイルをEclipseの任意のプロジェクトにコピーします。

(3)　Webサービス・エクスプローラーで要求電文を送信する

Webサービス・エクスプローラーから次の手順で要求電文を送信します。

コピーしたWSDLファイルを右クリックして，［MyEclipse］－［Web サービス・エクスプローラーでのテスト］を選択します。

Webサービス・エクスプローラーが起動し，オペレーションを選択する画面が表示されます。

送信したいオペレーションを選択します。
ここでは，「arrangeItem」を選択します。

「arrangeItem」オペレーションのパラメタを設定します。
ここでは，次に示すパラメタを設定しています。

ItemName：HDD対応プラズマテレビ△６０型（△は半角スペース）

Quantity：1

［Go］ボタンをクリックします。
送信結果（応答電文またはエラー）が右下のペインに表示されます。

付録I　文字コード変換UOCを利用した文字コード変換

Cosminexus サービスプラットフォームで対応していない文字コードを利用する場合，その文字コードを処理する文字コード変換UOCを作成することで，対応していない文字コードを扱えるようにします。

注意

文字コード変換UOCは，HCSCサーバに一つだけ定義できます。

ここでは，文字コード変換UOCについて説明します。

＜この節の構成＞

付録I.1　文字コード変換UOCのjarファイルの開発

付録I.2　文字コード変換UOCを使用するための設定

付録I.3　文字コード変換UOCの実装例

付録I.1　文字コード変換UOCのjarファイルの開発

文字コード変換UOCは，Cosminexus サービスプラットフォームが提供するjarファイルを使用して開発します。

文字コード変換UOCの開発に必要なjarファイルに定義されているインターフェースおよび例外クラスは，次の場所に格納されています。

<Cosminexusのインストールディレクトリ>¥CSC¥lib¥cscdt_uoc.jar

注意

開発した文字コード変換UOCのjarファイルは，任意のディレクトリに格納してください。また，文字コード変換UOCをコンパイルするときは，cscdt_uoc.jarをクラスパスに含めてください。

文字コード変換UOCの実行時に確保したリソースは，処理が終了しても保持し続けるため，システム全体に高い負荷が掛かった場合に，Javaヒープ不足などが原因でOutOfMemoryErrorが発生することがあります。そのため，OutOfMemoryErrorが発生したときに適切にリソースを解放する処理や，ロールバックなどのエラー処理を実装しておく必要があります。

＜この項の構成＞

(1)　インターフェース

(2)　例外クラス

(1)　インターフェース

文字コード変換UOCのインターフェースを次に示します。

インターフェース名

CSCOwnCodeConverterインターフェース

説明

文字コード変換UOCを実装するためのインターフェースです。

CSCOwnCodeConverterのパッケージ名は，jp.co.Hitachi.soft.csc.dt.uoc.CSCOwnCodeConverterです。

形式

public class OwnCodeConverter implements CSCOwnCodeConverter
{
 public void setProperties(final Properties properties)
          throws CSCOwnCodeConverterException;
 public char[] ownCodeToUnicode(final byte[] inBuffer)
          throws CSCOwnCodeConverterException;
 public byte[] unicodeToOwnCode(final char[] inBuffer)
          throws CSCOwnCodeConverterException;
 public int available(final byte[] inBuffer)
          throws CSCOwnCodeConverterException;
}

メソッド

CSCOwnCodeConverterインターフェースのメソッドを次の表に示します。

メソッド名 | 説明
setPropertiesメソッド | 独自定義ファイルの定義内容を文字コード変換UOCに渡すためのメソッドです。
ownCodeToUnicodeメソッド | 独自文字コードの文字列をUnicodeに変換するメソッドです。
unicodeToOwnCodeメソッド | Unicode（UTF-16）の文字列を独自文字コードに変換するメソッドです。
availableメソッド | 文字コード変換時に変換できる文字列のバイト数を返すメソッドです。

文字コード変換UOCからの各メソッドの呼び出し順序を次の図に示します。

図I-1　文字コード変換UOCからの各メソッドの呼び出し順序

インスタンス生成
変換前の電文を受け取ったあと，データ変換によって文字コード変換UOCのインスタンスを生成します。

setPropertiesメソッド
独自定義ファイルの定義内容を文字コード変換UOCに渡します。このメソッドは，文字コード変換UOC開始時に一度だけ呼ばれます。

ownCodeToUnicodeメソッド，unicodeToOwnCodeメソッド，availableメソッド
それぞれのメソッドは，文字コード変換UOC実行時に文字コード変換から呼ばれます。メソッドの実行順序は電文フォーマットに依存します。

ownCodeToUnicodeメソッド
このメソッドで独自文字コードの文字列をUnicodeに変換します。

unicodeToOwnCodeメソッド
このメソッドでUnicode（UTF-16）の文字列を独自文字コードに変換します。

availableメソッド
このメソッドは，文字コード変換時に変換できる文字列のバイト数を返します。

(a)　setPropertiesメソッド

説明

独自定義ファイルの定義内容を文字コード変換UOCに渡します。

形式

public void setProperties(final Properties properties)
        throws CSCOwnCodeConverterException;

パラメタ

properties：

独自定義ファイルの定義内容が格納されます。

注意事項

次の場合，setPropertiesメソッドの引数は必ずnullになります。setPropertiesメソッドの引数がnullの場合でも，文字コード変換UOCがエラーにならないように実装してください。

独自定義ファイルが存在しない（定義されていない）場合

カスタム受付以外の受付（独自定義ファイルを定義できない受付）から文字コード変換UOCを実行した場合

カスタムアダプタ以外のアダプタ（独自定義ファイルを定義できないアダプタ）から文字コード変換UOCを実行した場合

例外

CSCOwnCodeConverterException：

文字コード変換処理中に異常が発生したため，データ変換処理全体を中断しました。

戻り値

なし。

(b)　ownCodeToUnicodeメソッド

説明

独自文字コードの文字列をUnicodeに変換します。

形式

public char[] ownCodeToUnicode(final byte[] inBuffer)
        throws CSCOwnCodeConverterException;

パラメタ

inBuffer：

独自文字コードの文字列を格納したバイト配列のバッファが格納されます。このバッファは読み込み専用のため，編集はできません。

例外

CSCOwnCodeConverterException：

文字コード変換処理中に異常が発生したため，データ変換処理全体を中断しました。

戻り値

Unicodeに変換した文字列を格納した文字配列のバッファを返します。

(c)　unicodeToOwnCodeメソッド

説明

Unicode(UTF-16)の文字列を独自文字コードに変換します。

形式

public byte[] unicodeToOwnCode(final char[] inBuffer)
        throws CSCOwnCodeConverterException;

パラメタ

inBuffer：

Unicodeの文字列を格納した文字配列のバッファが格納されます。

このバッファは読み込み専用のため，編集はできません。

例外

CSCOwnCodeConverterException：

文字コード変換処理中に異常が発生したため，データ変換処理全体を中断しました。

戻り値

独自文字コードに変換した文字列を格納したバイト配列バッファを返します。

(d)　availableメソッド

説明

文字コード変換時に変換できる文字列のバイト数を返します。

形式

public int available(final byte[] inBuffer)
        throws CSCOwnCodeConverterException;

パラメタ

inBuffer：

独自文字コードの文字列を格納したバイト配列のバッファが格納されます。このバッファは読み込み専用のため，編集はできません。

例外

CSCOwnCodeConverterException：

文字コード変換処理中に異常が発生したため，データ変換処理全体を中断しました。

戻り値

正常に変換できる文字列のバイト数を格納します。ただし，変換できない文字がある場合は，その文字の前の文字までのバイト数を格納します。

(2)　例外クラス

文字コード変換UOCの開発時に発生する例外クラスを次に示します。

クラス名

CSCOwnCodeConverterExceptionクラス

説明

文字コード変換処理中に異常が発生した場合に送出する例外です。

この例外が発生した場合は，データ変換処理全体を中断します。

付録I.2　文字コード変換UOCを使用するための設定

文字コード変換UOCを使用するために必要な設定について説明します。

＜この項の構成＞

(1)　プロパティ（独自定義ファイル）の定義

(2)　文字コード変換UOCのjarファイルを使用するための設定

(1)　プロパティ（独自定義ファイル）の定義

文字コード変換UOCは，カスタム受付またはカスタムアダプタで定義したプロパティ（独自定義ファイル）を取得することで，文字コード変換処理を切り分けることができます。独自定義ファイルのファイル名は，必ず「csc_owncodeconvert.properties」にしてください。

独自定義ファイルは，「<キー値>= <指定値>」の形式で指定します。

キー値および指定値には，任意の値を指定してください。

(2)　文字コード変換UOCのjarファイルを使用するための設定

開発環境で作成した文字コード変換UOCを実行環境で使用するには，次の設定が必要です。

J2EEサーバ用オプション定義ファイル（usrconf.cfg）にクラスパスを追加

システムプロパティファイル（usrconf.properties）にクラス名を登録

(a)　クラスパスの追加

J2EEサーバ用オプション定義ファイル（usrconf.cfg）にクラスパスを追加する手順を次に示します。

運用管理ポータルから，［論理サーバの環境設定］を選択します。

サーバビューから，［論理J2EEサーバ］－［J2EEサーバ］－［<論理サーバ名>］を選択します。

［コンテナ］タブの［拡張パラメタ］にクラスパスを指定します。
クラスパスは次の形式で指定します。

add.class.path=<jarファイルのパス>

<jarファイルのパス>

文字コード変換UOCのjarファイルを絶対パスで指定します。

(b)　jarファイルの登録

J2EEサーバ用ユーザプロパティファイル（usrconf.properties）にクラス名を登録する手順を次に示します。

運用管理ポータルから，［論理サーバの環境設定］を選択します。

サーバビューから，［論理J2EEサーバ］－［J2EEサーバ］－［<論理サーバ名>］を選択します。

［コンテナJVM］タブの［プロパティ］にクラス名（パッケージ名を含む）を指定します。
クラス名（パッケージ名を含む）は次の形式で指定します。

csc.dt.ownCodeConverter.className=<文字コード変換UOCのクラス名>

<文字コード変換UOCのクラス名>

文字コード変換UOCのクラスを完全修飾名で指定します。

付録I.3　文字コード変換UOCの実装例

文字コード変換UOCの実装例を次に示します。

public class OwnConvertUoc implements CSCOwnCodeConverter {

  // 日立コード変換オプション
  HJCOption option = null;
  // 日立コード変換結果
  HJCResult result = null;
  // エンコード
  String encode = null;

  // コンストラクタ
  public void OwnConvertUoc() {
     result = new HJCResult();
     option = new HJCOption();
  }

  // 独自定義ファイルをJavaのプロパティ形式で受け取る
  public void setProperties(final Properties properties)
                 throws CSCOwnCodeConverterException {

     if ( properties == null ) {
        // 独自定義ファイルが登録されていない
        // カスタム受付／カスタムアダプタ以外から実行されている
        // 可能性があるのでエラーにしない
        encode = "";
        return;
     }

     encode = properties.getProperty("encode");

     if ( encode == null ) {
        // キーがない場合
        String message = "文字コードが指定されていません。";
        throw new CSCOwnCodeConverterException(message);
     }
  }

  // 独自コードをUnicodeに変換する
  public char[] ownCodeToUnicode(final byte[] inBuffer)
                   throws CSCOwnCodeConverterException {

     if ( encode.equals("SJIS") ) {
        // SJIS(MS932)からUnicodeに変換
        // 日立コード変換を使用
        HJCString inStr = new HJCString( inBuffer );
        try {
           HJCConverters.cs_ms932tounicode(inStr, result, option);
        } catch ( Exception e ){
           throw new CSCOwnCodeConverterException(e);
        }
        return result.getStrResult().toString().toCharArray();
     }
     else if ( encode.equals("KEIS") ) {
        // KEISからUnicodeに変換
        // 日立コード変換を使用
        HJCString inStr = new HJCString( inBuffer );
        try {
           HJCConverters.cs_keistounicode(inStr, result, option);
        } catch ( Exception e ){
           throw new CSCOwnCodeConverterException(e);
        }
        return result.getStrResult().toString().toCharArray();
     }
     else {
        // 対象外の文字コード
        String message = "対象外の文字コードです。";
        throw new CSCOwnCodeConverterException(message);
     }
  }

  // Unicodeを独自コードに変換する
  public byte[] unicodeToOwnCode(final char[] inBuffer)
                 throws CSCOwnCodeConverterException {
     // (中略)
  }

  // 正常に変換できるバイト数を返す
  public int available(final byte[] inBuffer)
                 throws CSCOwnCodeConverterException {
     // (中略)
  }
}

付録J　外部ツール実行機能を利用したコマンドの実行

Eclipseの外部ツール実行機能にHCSCサーバの起動，停止などのコマンドを登録することで，登録したコマンドをEclipseのメニューから実行できます。

外部ツール実行機能とは，Eclipseにあらかじめ外部プログラムの起動方法を登録しておくと，Eclipseのメニューから任意の起動方法を選ぶだけで外部プログラムを実行できるEclipseの標準機能のことです。

外部ツール実行機能を利用したコマンドの登録，および実行手順を次に示します。

Eclipseのメニューから［実行］－［外部ツール］－［外部ツールダイアログを開く］を選択します。
［外部ツール］ダイアログが開きます。

［外部ツール］ダイアログから［プログラム］を右クリックし，［新規］を選択します。
プログラムの新規構成が作成されます。

必要な情報を入力または指定します。
Cosminexus Performance Tracer，J2EEサーバ，およびHCSCサーバを起動するコマンドの場合の入力例を次の表に示します。

表J-1　Cosminexus Performance Tracer，J2EEサーバ，およびHCSCサーバを起動するコマンドの場合の入力例

タブ | 項目名 | 入力例
メイン | ロケーション | <uCosminexus Service Architectのインストールディレクトリ>¥CSC¥bin¥cscsvstart.bat
作業ディレクトリー |
引数※1 | -system
共通 | バックグラウンドでの起動※2 | チェックを外します。

（凡例）

空欄：入力しないことを表します。

注※1

引数の入力値はコマンドによって異なります。コマンドに指定できる引数については，マニュアル「Cosminexus サービスプラットフォーム リファレンス」を参照してください。

注※2

外部プログラムを利用するときにEclipse上で別の操作をするとエラーになることがあります。Eclipse上で別の操作をする必要がない場合は，［バックグラウンドでの起動］のチェックを外すことをお勧めします。標準入力から操作するプログラムを利用する場合は，［バックグラウンドでの起動］をチェックする必要があります。

［実行］ボタンをクリックします。
コマンドが登録および実行されます。以降はEclipseのメニューの［実行］－［外部ツール］－［実行］から登録したコマンドを実行できます。

参考

Eclipseの外部ツール実行機能でテスト環境起動コマンドおよびテスト環境停止コマンドを登録して，Eclipseのメニューからテスト環境を起動，停止できます。

テスト環境起動コマンド（csctestsvstart.bat）の格納先と実行される処理を示します。

テスト環境起動コマンドの格納先

<uCosminexus Service Architectのインストールディレクトリ>¥CSCTE¥Samples¥bats¥csctestsvstart.bat

テスト環境起動コマンドで実行される処理

次の順番で処理が実行されます。

・組み込みデータベースの起動（cddbstartコマンド）

・Cosminexus Performance Tracer，J2EEサーバ，およびHCSCサーバの起動（cscsvstart -systemコマンド）

・標準受付の起動（cscrcptnstart -standardコマンド）

テスト環境停止コマンド（csctestsvstop.bat）の格納先と実行される処理を示します。

テスト環境停止コマンドの格納先

<uCosminexus Service Architectのインストールディレクトリ>¥CSCTE¥Samples¥bats¥csctestsvstop.bat

テスト環境停止コマンドで実行される処理

次の順番で処理が実行されます。

・標準受付の停止（cscrcptnstop -standardコマンド）

・HCSCコンポーネントの停止（csccompostop -allコマンド）

・Cosminexus Performance Tracer，J2EEサーバ，およびHCSCサーバの停止（cscsvstop -systemコマンド）

・組み込みデータベースの停止（cddbstopコマンド）

付録K　DBアダプタで取得したデータのフォーマットの変換例

DBアダプタで取得したデータは，列名をキーにして簡単に値を参照できません。そこで，列名が要素名となるフォーマットに変換することで，データを扱いやすくできます。

ここでは，DBアダプタで取得したデータを，列名が要素名となるフォーマットに変換する方法について例題を使って説明します。

＜この節の構成＞

付録K.1　例題

付録K.2　フォーマットの変換方法

付録K.1　例題

例題で使用するデータベースの内容，実行するSQLの形式，SQLオペレーション定義ファイル，および変換後のフォーマットを次に示します。

データベースの内容

データベース参照名：DB_SERVER1

スキーマ名：DBA

テーブル名：受注表

テーブル構成：

受注番号（INTEGER） | 得意先コード（CHAR） | 商品コード（CHAR） | 受注個数（INTEGER）
1 | AA001 | 0001 | 5
2 | AB002 | 0001 | 1
3 | AA001 | 0102 | 3
4 | XA005 | 0103 | 1
5 | AA001 | 0105 | 1

実行するSQLの形式

OPERATION1：SELECT * FROM DBA.受注表 WHERE <val1> <val2> <val3>

SQLオペレーション定義ファイル

<?xml version="1.0" encoding="UTF-8" ?>
<DBadapter_SQL_OPERATION>
   <DATABASE_DATA>
       <DB_NAME>DB_SERVER1</DB_NAME>
       <DB_TYPE>HIRDB</DB_TYPE>
   </DATABASE_DATA>
   <SQL_DATA>
       <OPERATION1>
           SELECT * FROM DBA.受注表 WHERE <val1 dba_inf="column"/>
               <val2 dba_inf="preset"/>
               <val3 dba_inf="data" data_type="CHAR"/>
       </OPERATION1>
   </SQL_DATA>
</DBadapter_SQL_OPERATION>

SQLオペレーション定義ファイルの各項目については，「4.3.5　サービス部品電文を作成する（DBアダプタ電文の場合）」を参照してください。また，DBアダプタで取得できるデータの形式については，「10.8.2　応答電文の形式」を参照してください。

変換後のフォーマットのXMLスキーマ

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/DBA_Sample1"
xmlns:tns="http://www.example.org/DBA_Sample1"
elementFormDefault="qualified">

 <complexType name="DBA_Sample1Type">
   <sequence>
     <element name="record" type="tns:RecordType"
              maxOccurs="unbounded" minOccurs="0"/>
   </sequence>
 </complexType>

 <complexType name="RecordType">
   <sequence>
     <element name="受注番号" type="int" maxOccurs="unbounded" minOccurs="0"/>
     <element name="得意先コード" type="string" maxOccurs="unbounded" minOccurs="0"/>
     <element name="商品コード" type="string" maxOccurs="unbounded" minOccurs="0"/>
     <element name="受注個数" type="int" maxOccurs="unbounded" minOccurs="0"/>
     </sequence>
 </complexType>

 <element name="受注表" type="tns:DBA_Sample1Type"/>
</schema>

付録K.2　フォーマットの変換方法

DBアダプタで取得したデータのフォーマットの変換の流れを次に示します。

変換元および変換先のデータの設定
DBアダプタで取得したデータのフォーマットの変換には，データ変換定義を使用します。データのフォーマットの変換を始める前に，データ変換定義画面に変換元および変換先のデータを設定します。

列名のcid属性値の取得
空白除去ファンクションを使用して，列名のID（cid属性値）を取得します。

くり返しファンクションの設定
くり返しファンクションを設定して，DBアダプタで取得したすべての値を変換先に代入できるようにします。

変換先の列名要素への値の代入
列名のIDと値のIDを比較して，IDが等しい場合に，変換先に値を代入するように設定します。

定義した内容の検証
定義した内容を検証し，マッピングに矛盾がないことを確認します。

それぞれの手順を次に示します。

＜この項の構成＞

(1)　変換元および変換先のデータの設定

(2)　列名のcid属性値の取得

(3)　くり返しファンクションの設定

(4)　変換先の列名要素への値の代入

(5)　定義した内容の検証

(1)　変換元および変換先のデータの設定

DBアダプタで取得したデータのフォーマットの変換には，データ変換定義を使用します。

データ変換定義画面の変換元スキーマツリービューアにDBアダプタで取得したデータ，変換先スキーマツリービューアに変換後のフォーマットのXMLスキーマを設定してください。

(2)　列名のcid属性値の取得

応答電文のDBA_ResultSetName要素には，列名とそのID（cid属性）が対で格納されています。ここでは，空白除去ファンクションを使用して，ノード条件に指定した列名に対応するcid属性を取得します。

列名のcid属性値を取得する手順を次に示します。

DBA_ResultColumnName要素の下のcid属性に空白除去ファンクションを定義します。
空白除去ファンクションを定義する方法については，「7.5.5　文字列の空白を除去する」を参照してください。

［空白除去］ダイアログで［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。

［ノード条件設定］ダイアログで［条件設定］ボタンをクリックします。
［条件設定］ダイアログが表示されます。

ノード条件を設定します。
次のように設定してください。

左辺：DBA_ResultColumnName要素

右辺：列名（ここでは［受注番号］）

「得意先コード」「商品コード」「受注個数」の各要素についても，同様に定義します。

(3)　くり返しファンクションの設定

変換元のDBA_ResultSet要素から，変換先のrecord要素にくり返しファンクションをマッピングします。くり返しファンクションを定義する方法については，「7.5.13　くり返しを対応づける」を参照してください。

(4)　変換先の列名要素への値の代入

変換先の各行名要素に値を代入します。このとき，DBA_ResultColumn要素の下のcid属性と「(2)　列名のcid属性値の取得」で定義した空白除去ファンクションが一致するように条件を設定します。

変換先の各行名要素に値を代入する手順を次に示します。

変換先の要素（ここでは「受注番号」）を右クリックし，［マッピング元］を選択します。
［マッピング元設定］ダイアログが表示されます。

［マッピング元］にDBA_ResultColumnを選択します。

［マッピング元設定］ダイアログで［ノード条件設定］ボタンをクリックします。
［ノード条件設定］ダイアログが表示されます。

［ノード条件設定］ダイアログで［条件設定］ボタンをクリックします。
［条件設定］ダイアログが表示されます。

ノード条件を設定します。
次のように設定してください。

左辺：DBA_ResultColumn要素の下のcid属性

右辺：変換先の列名に対応するように定義した空白除去ファンクション

「得意先コード」「商品コード」「受注個数」の各要素についても，同様に定義します。

(5)　定義した内容の検証

定義したマッピングに矛盾がないことを検証します。検証方法については，「6.9.2　検証方法」を参照してください。

付録L　DBアダプタ定義支援機能を利用したDBアダプタの定義

ここでは，DBアダプタ定義支援機能を利用して，DBアダプタの定義を作成する方法について説明します。

＜この節の構成＞

付録L.1　DBアダプタ定義支援機能の概要

付録L.2　DBアダプタの定義

付録L.3　分散開発時のエクスポート・インポート

付録L.1　DBアダプタ定義支援機能の概要

DBアダプタ定義支援機能は，大きく分けて，次の二つの機能があります。

DBアダプタ用各種定義ファイルの作成
DBアダプタ定義時に必要なファイルを生成します。この機能を使用すると，次のファイルを生成できます。

SQLオペレーション定義ファイル

アプリケーション統合属性ファイル

要求電文および応答電文の標準電文

要求電文および応答電文のサービス部品電文

注意

サービスリクエスタからの1回のサービス部品の実行要求で，複数のSQLを実行する機能に対応した，要求電文の標準電文フォーマットについては生成できません。1回の要求で複数のSQLを実行する要求電文の標準電文フォーマットについては，手動で作成してください。

引数要素のあるSQL文のデバッグ
DBアダプタ定義支援機能では，引数要素があるSQL文をデバッグするために，次の三つの機能を提供します。

引数要素を抽出する機能

引数要素に値を代入したあとでSQL文を実行する機能

SQL実行結果を確認する機能

付録L.2　DBアダプタの定義

開発環境上でDBアダプタを定義する場合の作業の流れを次の図に示します。

図L-1　DBアダプタの定義の流れ

各作業の詳細は，以降で説明します。なお，ここでは，HiRDBを使用することを前提として説明します。Oracleを使用する場合は，各種定義を読み替えてください。

＜この項の構成＞

(1)　SQL設計

(2)　アダプタ設計

(3)　デバッグ用のDBアダプタの定義ファイルの生成

(4)　デバッグ用のデータベースの設定

(5)　SQL文の作成

(6)　SQLのデバッグ

(7)　本番環境用のデータベースの設定

(8)　本番環境用のDBアダプタの定義ファイルの生成

(9)　本番環境用のDBアダプタの設定

(1)　SQL設計

DBアダプタ定義支援機能を使って，DBアダプタ上で実行するSQL文の内容を設計します。SQL実行文の表や列の名称およびデータなどの可変部分については，引数要素として設計します。

ただし，DBアダプタ定義支援機能で指定できるSQL命令は次の二つです。

SELECT

INSERT

また，指定できるデータ型は，Cosminexus DB Connectorで使用するJDBCドライバがサポートしているデータ型だけです。

(2)　アダプタ設計

DBアダプタの内容を設計します。次の内容について設計してください。

(a)　DBアダプタの作成単位

DBアダプタはDB Connector単位で必要なため，DB Connectorの構成に合わせてDBアダプタを用意します。

例えば，複数のデータベースと連携するシステムでは，データベースごとにDB Connectorが存在します。このため，データベースのDB ConnectorごとにDBアダプタを作成します。

図L-2　データベースごとにDB Connectorが存在する場合

また，コネクションプールの設定値をDBアダプタごとに設定する場合などは，同じデータベースに複数のDB Connectorを用意します。この場合は，データベースの数に関係なく，DB Connector単位でDBアダプタを作成します。

図L-3　一つのデータベースに複数のDB Connectorが存在する場合

(b)　SQL文の定義単位

DBアダプタには，一つ以上のSQL文を定義できます。各DBアダプタで定義するSQL文の内容を設計します。SQL文の設計例を次に示します。

データベースごとに異なるSQL文を実行したい場合
データベースごとに異なるSQL文を実行したい場合は，それぞれのデータベースに対応するDBアダプタ上にSQL文を定義します。
例えば，図中の「データベース1」で検索した結果を「データベース2」に登録したい場合は，「DBアダプタ1」にSELECTを，「DBアダプタ2」にINSERTを定義します。

図L-4　データベースごとに異なるSQL文を実行したい場合

同一データベースに対して，異なるSQL文を実行したい場合
同じデータベースに対して，アクティビティごとに異なるSQL文を実行したい場合は，DBアダプタ上に複数のSQL文を定義します。
例えば，最初のアクティビティで検索した結果を，次のアクティビティで登録したい場合は，同じDBアダプタ上にSELECTとINSERTの両方を定義します。

図L-5　同一のデータベースに対して異なるSQL文を実行したい場合

DBアダプタ定義支援機能を使用して，一つのDBアダプタ上に複数のSQL文を定義する場合は，オペレーションを呼び出すSQL文単位で定義します。
オペレーションの指定方法については，「(5)　SQL文の作成」を参照してください。

(3)　デバッグ用のDBアダプタの定義ファイルの生成

デバッグに使用するDBアダプタの定義ファイルのひな形を作成します。DBアダプタの定義ファイルは，Eclipse上で作成します。DBアダプタの定義ファイルを新規作成する方法を次に示します。

Eclipse上にプロジェクトを作成します。
プロジェクトの種類は，HCSCTEプロジェクトを推奨します。HCSCTEプロジェクトの作成方法については，「3.1.1　プロジェクトを作成する」を参照してください。

Eclipseのメニューから，［ウィンドウ］－［パースペクティブを開く］－［その他］を選択します。
［パースペクティブを開く］ダイアログが表示されます。

［HCSC-DBEditor］を選択し，［OK］ボタンをクリックします。
［DBアダプタ開発支援］パースペクティブが表示されます。

Eclipseのメニューから，［ファイル］－［新規］－［その他］を選択します。
ウィザードを選択するダイアログが表示されます。

［HCSCTE-DBEDITOR］の［DBEditor ファイル］を選択して，［次へ］ボタンをクリックします。
［新規DBアダプタ定義ファイル］ウィザードが表示されます。

［親フォルダを入力または選択］で，DBアダプタの定義ファイルを保存するフォルダを入力または選択します。

保存する定義ファイルのファイル名を［ファイル名］に指定します。

［終了］ボタンをクリックします。
新しい定義ファイルが作成され，DBアダプタ開発支援画面が表示されます。

(4)　デバッグ用のデータベースの設定

DBアダプタの定義ファイルに，使用するデータベースの内容を設定します。本番環境用のデータベースとは別にデバッグ用のデータベースを使用するかどうかによって，設定方法が異なります。デバッグ用のデータベースを使用しない場合は，SQLのデバッグができません。

参考

uCosminexus Service Architectには，デバッグで使用できる組み込みデータベースが含まれています。

(a)　本番環境用とは別にデバッグ用のデータベースを用意する場合

本番環境用のデータベースとは別に，デバッグ用のデータベースを用意する場合の設定方法を次に示します。

Eclipse上でDBアダプタの定義ファイルを開きます。
DBアダプタ開発支援画面が表示されます。

［コネクション］タブにある［DataSources］を右クリックし，［新規データソース］を選択します。
［新規データソース］ダイアログが表示されます。

［データベースコネクション］の入力フィールドに値を入力します。
SQLをデバッグするための設定をします。
ここでは，JDBCドライバを利用して接続するための設定をします。

表L-1　［データベースコネクション］の入力フィールドに定義する内容（［新規データソース］ダイアログ）

表示項目
説明
デフォルト値※

名称
DBアダプタ開発支援画面の［コネクション］タブに表示する名称です。DBエディタ定義ファイル内で一意になるような任意の名称を指定します。
HiRDB

データベースなし
デバッグ用のデータベースがない場合にチェックします。
チェックなし

ドライバ JAR
JDBCドライバのJARファイルを指定します。
対応するJDBCドライバは事前に入手しておいてください。
<Cosminexusインストールディレクトリ>¥DB¥CLIENT¥UTL¥pdjdbc2.jar

ドライバ
使用するJDBCドライバのパッケージ名（完全修飾Javaクラス名）を指定します。
JP.co.Hitachi.soft.HiRDB.JDBC.HiRDBDriver

URL
接続するデータベースのポート番号とホスト名を指定した，データベース接続URLを指定します。
jdbc:hitachi:hirdb://DBID=22200,DBHOST=localhost

ユーザ名
データベースへ接続するときに使用するログインユーザ名を指定します。
admin

パスワード
データベースへ接続するときに使用するパスワードを指定します。
admin（画面上の表示は「****」）

注

［データベースコネクション］の入力フィールドの値は，SQL文をデバッグするときにだけに使用されます。DBアダプタ定義支援機能で生成するSQLオペレーション定義ファイルおよびアプリケーション統合属性ファイルには，使用されません。

注※

デフォルト値は，［新規データソース］ダイアログ上の［デフォルト］ボタンをクリックした場合の値です。

初期値は，HCSC簡易セットアップ機能を初期値で実行した場合に構築された環境の値です。

［DBアダプタ設定］の入力フィールドに値を入力します。
ここでは，DBアダプタ用のSQLオペレーション定義ファイル，およびアプリケーション統合属性ファイルを定義するための設定をします。使用するDB Connectorの設定に沿って指定してください。

表L-2　［DBアダプタ設定］の入力フィールドに定義する内容（［新規データソース］ダイアログ）

表示項目
説明
デフォルト値※

データベース参照名
データベース参照名を指定します。
DB_SERVER1

データベース種別
データベース種別を指定します。
HIRDB

リソースアダプタ名
DB Connectorのプロパティ定義（display-name）に指定したリソースアダプタの名称を指定します。
リソースアダプタ名がドロップダウンリストから選択できない場合は，直接値を入力してください。
DBConnector_HiRDB_Type4_CP

インスタンスの最大値
DBアダプタのインスタンスの最大数を指定します。
無制限の場合は，0を指定します。
0

インスタンスの最小値
DBアダプタのインスタンスの最小数を指定します。
1

DB Connector の共有
DBアダプタが参照するDB Connectorを共有するかどうかを指定します。
Shareable

検索結果出力最大件数
SELECTで検索した結果の最大出力件数を指定します。
検索結果が指定値より大きい場合は，指定値までの件数が表示されます。

（例）

「1000」を指定した場合は，最大1,000レコードまでの結果を表示します。

1000

実行する SQL 文の最大個数
1回のサービス部品実行要求で複数のSQL文を実行する場合，実行するSQL文の最大個数を指定します。
1024

注※

デフォルト値は，［新規データソース］ダイアログ上の［デフォルト］ボタンをクリックした場合の値です。

初期値は，HCSC簡易セットアップ機能を初期値で実行した場合に構築された環境の値です。

［OK］ボタンをクリックします。
設定した内容が登録されます。

(b)　本番環境用のデータベースをデバッグに使用する場合

デバッグ用のデータベースを使用しない場合の設定方法を次に示します。

Eclipse上でDBアダプタの定義ファイルを開きます。
DBアダプタ開発支援画面が表示されます。

［コネクション］タブにある［DataSources］を右クリックし，［新規データソース］を選択します。
［新規データソース］ダイアログが表示されます。

［データベースコネクション］の［データベースなし］チェックボックスをチェックします。

［DBアダプタ設定］に本番環境用のデータベースの設定内容を入力します。

［OK］ボタンをクリックします。
設定した内容が登録されます。

(5)　SQL文の作成

DBアダプタ上で実行するSQL文を定義します。

Eclipse上でDBアダプタの定義ファイルを開きます。
DBアダプタ開発支援画面が表示されます。

［データソース］プルダウンリストから，使用するデータソースを選択します。

［オペレーション］プルダウンリストの横の［追加］ボタンをクリックします。
追加するオペレーションの名称を定義するダイアログが表示されます。

追加するオペレーション名を入力し，［OK］ボタンをクリックします。
一つのDBアダプタに複数のSQLを定義したい場合は，オペレーションを呼び出すSQLごとに定義します。

SQL文の入力フィールドに実行するSQL文を定義します。
引数要素の定義方法については，「4.3.5(1)(c)　SQLオペレーション定義ファイルの形式」を参照してください。

注意

各オペレーションに記述できるSQLは一つだけです。

ワイルドカード（*）は使用できません。SELECTで検索するカラム名は，すべて記述してください。

SQL文の最後にセミコロンは不要です。

(6)　SQLのデバッグ

定義したSQLのデバッグを実施します。SQL文中の引数要素については，値を代入して実行します。なお，SQLのデバッグは，本番環境用のデータベースとは別に，デバッグ用のデータベースを用意している場合にだけ実施できます。

次の手順でSQLのデバッグを実施してください。

デバッグ用のテーブルを作成します。
事前にデバッグ用のデータベース上にデバッグで使用するテーブルを作成します。定義したSQLに沿ってテーブルを作成してください。

作成例

テーブル名：PURCHASEMASTERTABLE

テーブル構成：

ORDERID
(VARCHAR)
ORDERNAME
(VARCHAR)
PRODUCTCODE
(VARCHAR)
PRODUCTNAME
(VARCHAR)
NUMBER
(INTEGER)

01
AA001
0A1
NPW
4

02
AA002
0A1
NPW
3

03
AA003
0E1
NPW
3

04
BB001
0E1
NPW
4

05
BB002
0B1
NPW
5

Eclipse上でDBアダプタの定義ファイルを開きます。
DBアダプタ開発支援画面が表示されます。

引数要素を抽出したいSQL文を［オペレーション］プルダウンリストから選択した状態で，ツールバーの［変数の生成］アイコン（[図データ]）をクリックします。
引数要素が抽出され，抽出結果が［変数］タブに反映されます。

［変数］タブの［値］列に，デバッグで使用したい値を入力します。
設定例

引数要素名 | DBa_inf | data_type | 値
KEYCOLUMN | column | － | ORDERID
ENZANSHI | preset | － | =
DATA | data | VARCHAR | '01'

なお，デバッグ用のデータベースを用意していない場合は，以降の手順を実施できません。［実行するSQL文の表示］アイコン（[図データ]）をクリックすると，Messagesビューに引数要素に値を代入した状態のSQLが表示されるので，この画面でSQL文が正しいかどうかを確認してください。

［コネクション］タブに表示されている，デバッグに使用するデータソースを右クリックし，［接続］を選択します。
設定した内容でデータベースに接続します。接続が成功すると，Messagesビューに，「INFO: データソース <データソース名> の接続に成功しました。」のメッセージが表示されます。
なお，SQL文が複数定義されている場合は，SQL文ごとに手順3～手順5を繰り返してください。

ツールバーにある［SQLの実行］アイコン（[図データ]）をクリックします。
SQLの実行に失敗した場合は，Messagesビューにエラーメッセージが表示されます。メッセージに従ってSQLおよび引数要素名を修正してください。
なお，SQLの実行結果は，［実行結果］タブに表示されます。

(7)　本番環境用のデータベースの設定

DBアダプタの定義ファイルのデータソースの設定を，本番環境用のデータベースの情報に変更します。

注意

本番環境用のデータベースの情報に変更する前に，デバッグで使用したデータリソースを切断しておいてください。データソースの切断方法は，次のとおりです。

デバッグで使用したDBアダプタの定義ファイルをEclipse上で開きます。

［コネクション］タブで，デバッグに使用したデータソースを右クリックし，［切断］を選択します。

次の手順でデータベースの情報を変更します。

デバッグで使用したDBアダプタの定義ファイルをEclipse上で開きます。
DBアダプタ開発支援画面が表示されます。

［コネクション］タブに表示されているデータソースを右クリックして，［データソース編集］を選択します。
［データソース編集］ダイアログが表示されます。

［DBアダプタ設定］の入力フィールドに本番環境用のデータベースの情報を入力します。

［OK］ボタンをクリックします。
設定した内容が登録されます。

(8)　本番環境用のDBアダプタの定義ファイルの生成

本番環境で使用するDBアダプタの定義ファイルの生成方法を次に示します。

Eclipse上で，デバッグ用のDBアダプタの定義ファイルを開きます。
DBアダプタ開発支援画面が表示されます。

［データソース］プルダウンリストから，本番環境用のDBアダプタの定義ファイルに反映させたいデータソースを選択します。

ツールバーの［DBアダプタ定義生成］アイコン（[図データ]）をクリックします。
［DBアダプタ定義生成］ダイアログが表示されます。

［出力先ディレクトリ］に，本番環境用のDBアダプタの定義ファイルを出力するディレクトリを指定します。
［...］ボタンをクリックすると，［出力先ディレクトリ］に次のパスが選択されます。
＜Eclipseのプロジェクトのパス＞¥＜DBアダプタの定義ファイル名＞_Output

注意

出力先ディレクトリにEclipseのプロジェクトのパスを指定した場合は，Eclipseの機能を使って，DBアダプタの定義ファイルおよび生成結果を一括でインポートおよびエクスポートできます。

出力先ディレクトリ名は，絶対パスをUTF-8で変換したときに155バイト以内になるように指定してください。

生成したいオペレーションのチェックボックスにチェックします。
一つのDBアダプタに複数のSQL文を定義した場合は，SQLの定義に必要なオペレーションをすべて選択してください。

［終了］ボタンをクリックします。
指定した出力先ディレクトリに，本番環境で使用するDBアダプタの定義ファイルが出力されます。
なお，出力先ディレクトリにEclipseのプロジェクトのパスを指定している場合は，DBアダプタの定義ファイルを生成したあとに，出力先となるEclipseのプロジェクトを更新してください。Eclipseのパッケージ・エクスプローラー上に，生成されたDBアダプタの定義ファイルが表示されます。
生成されるファイルの一覧を次の表に示します。

表L-3　生成されるファイルの一覧

ファイルの種別 | ファイル名 | 数量 | 備考
SQLオペレーション定義ファイル | csa_sql_dbadapter.xml | 1 | －
アプリケーション統合属性ファイル | cscadapter_property.xml | 1 | －
要求電文の標準電文※1 | ＜オペレーション名＞_Input.xsd | 0～N※2 | ＜オペレーション名＞は，指定したオペレーション名になります。
応答電文の標準電文※3 | ＜オペレーション名＞_Output.xsd | 0～N※2 | ＜オペレーション名＞は，指定したオペレーション名になります。
要求電文および応答電文のサービス部品電文 | ServiceMessageFile.xsd | 1 | 要求電文および応答電文のサービス部品電文には，同じファイルを使用してください。

（凡例）

－：該当する説明はありません。

注※1

SQL文中に引数要素がない場合，要求電文の標準電文は生成されません。サービス部品電文だけを使用してください。引数要素がない状態でDBアダプタを呼び出す場合は，Javaアクティビティなどで要求電文を生成して，DBアダプタを呼び出します。

設定例

　オペレーション名：select_op

　実行するSQL文：SELECT ORDERID FROM PURCHASEMASTERTABLE

　Javaアクティビティなどで生成する電文：

<?xml version="1.0" encoding="UTF-8"?>

<BDAdapter>

<DBA_MULTI_SQL>

<select_op/>

</DBA_MULTI_SQL>

</BDAdapter>

注※2

本番環境用のDBアダプタの定義ファイルを生成したときに指定したオペレーションの数になります。

注※3

応答電文の標準電文は，SQL命令がSELECTの場合にだけ出力されます。INSERTの場合は，応答電文のサービス部品電文フォーマットを使用してください。

(9)　本番環境用のDBアダプタの設定

生成した本番環境用のDBアダプタの定義ファイルを使用して，DBアダプタを作成します。

(a)　DBアダプタの作成

Eclipseに組み込まれているHCSCTEを利用して，DBアダプタを新規作成します。DBアダプタを新規に作成する方法については，「5.2.2　DBアダプタを新規に追加する」を参照してください。

また，「(8)　本番環境用のDBアダプタの定義ファイルの生成」で指定したオペレーションを，作成したDBアダプタに追加してください。複数のオペレーションを指定した場合は，指定したオペレーションの数だけ追加してください。

(b)　SQLオペレーション定義ファイルとアプリケーション統合属性ファイルの設定

作成したDBアダプタのサービスアダプタ定義（詳細）画面を表示します。［独自定義ファイル］に次のファイルを追加してください。

csa_sql_dbadapter.xml（生成したSQLオペレーション定義ファイル）

cscadapter_property.xml（生成したアプリケーション統合属性ファイル）

図L-6　DBアダプタに追加する独自定義ファイル

(c)　要求電文と応答電文の設定

作成したDBアダプタのサービスアダプタ定義（基本）画面を表示します。次の内容を設定してください。

オペレーション名の設定

［サービス部品制御情報］の［オペレーション］
オペレーション名をドロップダウンリストから選択します。

オペレーションに対応する要求電文の設定

［要求電文］の［標準］の［電文フォーマット］
「＜オペレーション名＞_Input.xsd」を指定します。

［要求電文］の［サービス部品］の［電文フォーマット］
「ServiceMessageFile.xsd」を指定します。

オペレーションに対応する応答電文の設定

［応答電文］の［標準］の［電文フォーマット］
「＜オペレーション名＞_Output.xsd」を指定します。ただし，指定したオペレーションに含まれるSQL命令がSELECTの場合にだけ指定します。INSERTの場合は不要です。

［応答電文］の［サービス部品］の［電文フォーマット］
「ServiceMessageFile.xsd」を指定します。

設定例を次の図に示します。

図L-7　要求電文と応答電文の設定例

(d)　データ変換（マッピング）の定義

データ変換するときの変換元と変換先のマッピングを定義します。

要求電文のデータ変換（マッピング）の定義
要求電文の標準電文およびサービス部品電文のデータ変換には，自動マッピング機能を使用できます。自動マッピング機能の詳細については，「7.4　マッピングする」を参照してください。

応答電文のデータ変換（マッピング）の定義
応答電文の標準電文およびサービス部品電文のデータ変換は，手動でマッピングする必要があります。
SELECTの検索結果を標準電文に変換する方法については，「5.3.5(2)　データ変換」を参照してください。
INSERTの場合は，応答電文の標準電文フォーマットファイルが出力されないため，マッピングの必要はありません。INSERTの実行結果は，サービス部品側と同じ電文フォーマットのXML電文に格納されます。

付録L.3　分散開発時のエクスポート・インポート

複数の開発環境でDBアダプタを開発（分散開発）する場合は，マスタ開発環境以外の環境で開発したDBアダプタをエクスポートし，マスタ開発環境にインポートします。

DBアダプタ単位でエクスポートおよびインポートする方法と，DBアダプタの定義ファイル単位でエクスポートおよびインポートする方法について，次に説明します。

＜この項の構成＞

(1)　DBアダプタ単位のエクスポート・インポート

(2)　DBアダプタの定義ファイル単位のエクスポート・インポート

(1)　DBアダプタ単位のエクスポート・インポート

Eclipseに組み込まれているHCSCTEを利用して開発した場合，作成したDBアダプタはリポジトリに格納されます。このため，DBアダプタを分散開発した場合，一つのリポジトリとしてエクスポートおよびインポートすることができます。

エクスポート方法については「3.2.2　リポジトリをエクスポートする」を，インポート方法については「3.2.3　リポジトリをインポートする」を参照してください。

(2)　DBアダプタの定義ファイル単位のエクスポート・インポート

DBアダプタ用の各種定義ファイルの出力先にEclipseのプロジェクトを指定している場合は，Eclipseの標準機能を使用して，DBアダプタの定義ファイルおよび生成結果を一括でエクスポートおよびインポートできます。

エクスポート方法およびインポート方法の詳細については，Eclipseのドキュメントを参照してください。

付録M　外部バインディングファイルを利用したWSDLのカスタマイズ

外部バインディングファイルを利用して，WSDLファイルの解析方法をカスタマイズできます。外部バインディングファイルを利用したWSDLのカスタマイズの流れを次に示します。

外部バインディングファイルを作成します。
ファイル名は，「custombinding.xml」にしてください。
外部バインディングファイルの作成例については，マニュアル「Cosminexus アプリケーションサーバ Webサービス開発の手引」の「12.2　WSDLからJavaへのマッピングのカスタマイズ」を参照してください。

作成した外部バインディングファイル（custombinding.xml）を「<Cosminexusインストールディレクトリ>¥CSCTE¥config¥tools¥custom」フォルダに格納します。
格納した外部バインディングファイルを基に，WSDLファイルを解析します。カスタマイズしたWSDLファイルは，サービスアダプタやユーザ定義受付を作成するときに使用できます。

付録N　このマニュアルの参考情報

このマニュアルを読むに当たっての参考情報を示します。

＜この節の構成＞

付録N.1　関連マニュアル

付録N.2　このマニュアルでの表記

付録N.3　英略語

付録N.4　KB（キロバイト）などの単位表記について

付録N.1　関連マニュアル

このマニュアルの関連マニュアルを，次の図に示します。必要に応じてお読みください。

図N-1　このマニュアルの関連マニュアル

また，図に示したマニュアル以外で，このマニュアルと関連するマニュアルを次に示します。必要に応じてお読みください。

Cosminexus アプリケーションサーバ関連

Cosminexus アプリケーションサーバ V8 概説（3020-3-U01）

Cosminexus アプリケーションサーバ V8 ファーストステップガイド（3020-3-U02）

Cosminexus アプリケーションサーバ V8 システム設計ガイド（3020-3-U03）

Cosminexus アプリケーションサーバ V8 システム構築・運用ガイド（3020-3-U04）

Cosminexus アプリケーションサーバ V8 機能解説 基本・開発編(Webコンテナ)（3020-3-U05）

Cosminexus アプリケーションサーバ V8 機能解説 基本・開発編(EJBコンテナ)（3020-3-U06）

Cosminexus アプリケーションサーバ V8 機能解説 基本・開発編(コンテナ共通機能)（3020-3-U07）

Cosminexus アプリケーションサーバ V8 機能解説 拡張編（3020-3-U08）

Cosminexus アプリケーションサーバ V8 機能解説 運用／監視／連携編（3020-3-U09）

Cosminexus アプリケーションサーバ V8 機能解説 保守／移行／互換編（3020-3-U10）

Cosminexus アプリケーションサーバ V8 アプリケーション設定操作ガイド（3020-3-U12）

Cosminexus アプリケーションサーバ V8 運用管理ポータル操作ガイド（3020-3-U13）

Cosminexus アプリケーションサーバ V8 リファレンス コマンド編（3020-3-U14）

Cosminexus アプリケーションサーバ V8 リファレンス 定義編(サーバ定義)（3020-3-U15）

Cosminexus アプリケーションサーバ V8 リファレンス 定義編(アプリケーション／リソース定義)（3020-3-U16）

Hitachi Web Server（3020-3-U17）

Cosminexus アプリケーションサーバ V8 仮想化システム構築・運用ガイド（3020-3-U18）

TPBroker Version 5 トランザクショナル分散オブジェクト基盤 TPBroker ユーザーズガイド（3020-3-U19）

TPBroker Version 5 トランザクショナル分散オブジェクト基盤 TPBroker 運用ガイド（3020-3-U20）

Cosminexus アプリケーションサーバ V8 Cosminexus Reliable Messaging（3020-3-U21）

Cosminexus アプリケーションサーバ V8 アプリケーション開発ガイド（3020-3-U25）

Cosminexus アプリケーションサーバ V8 リファレンス API編（3020-3-U26）

Cosminexus アプリケーションサーバ V8 Cosminexus XML Processor ユーザーズガイド（3020-3-U27）

VisiBroker Version 5 Borland(R) Enterprise Server VisiBroker(R) デベロッパーズガイド（3020-3-U28）

VisiBroker Version 5 Borland(R) Enterprise Server VisiBroker(R) プログラマーズリファレンス（3020-3-U29）

Cosminexus アプリケーションサーバ V8 SOAPアプリケーション開発の手引（3020-3-U30）

Cosminexus アプリケーションサーバ V8 Webサービス開発の手引（3020-3-U31）

Cosminexus アプリケーションサーバ V8 Webサービスセキュリティ 使用の手引（3020-3-U32）

Cosminexus アプリケーションサーバ V8 Cosminexus XML Security - Core ユーザーズガイド（3020-3-U33）

Cosminexus アプリケーションサーバ V8 メッセージ 1 KDAL-KDCGおよびHitachi Web Server編（3020-3-U41）

Cosminexus アプリケーションサーバ V8 メッセージ 2 KDJE-KDJW編（3020-3-U42）

Cosminexus アプリケーションサーバ V8 メッセージ 3 KECX-KEDT／KEOS02000-29999／KEUC-KFRM編（3020-3-U43）

Cosminexus アプリケーションサーバ V8 メッセージ 4 監査ログ編（3020-3-U44）

Cosminexus ビジネスプロセス管理/エンタープライズサービスバス V8 サービスプラットフォーム TP1アダプタ　ユーザーズガイド（3020-3-U58）

HiRDB関連

HiRDB Version 8 システム運用ガイド（UNIX(R)用）（3000-6-354）

HiRDB Version 9 システム運用ガイド（UNIX(R)用）（3000-6-454）

HiRDB Version 8 コマンドリファレンス（UNIX(R)用）（3000-6-355）

HiRDB Version 9 コマンドリファレンス（UNIX(R)用）（3000-6-455）

HiRDB Version 8 システム運用ガイド（Windows(R)用）（3020-6-354）

HiRDB Version 9 システム運用ガイド（Windows(R)用）（3020-6-454）

HiRDB Version 8 コマンドリファレンス（Windows(R)用）（3020-6-355）

HiRDB Version 9 コマンドリファレンス（Windows(R)用）（3020-6-455）

HiRDB Version 8 UAP開発ガイド（3020-6-356）

HiRDB Version 9 UAP開発ガイド（3020-6-456）

HiRDB SQL Executer オンラインヘルプ（GUI版）（3020-6-35B）

HiRDB SQL Executer オンラインヘルプ（GUI版）（3020-6-45C）

HiRDB SQL Executer オンラインヘルプ（ラインモード版）（3020-6-35C）

HiRDB SQL Executer オンラインヘルプ（ラインモード版）（3020-6-45B）

その他

TP1/Server Base Enterprise Option　使用の手引（3000-3-982）

TP1/Server Base Enterprise Option　プログラム作成の手引（3000-3-983）

Cosminexus サービスプラットフォーム TP1 アダプタ ユーザーズガイド（3020-3-P07）

COBOL85 言語（3020-3-782）

JP1 Version 9 JP1/File Transmission Server/FTP（Windows(R)用）（3020-3-S36）

JP1 Version 9 JP1/File Transmission Server/FTP（UNIX(R)用）（3020-3-S37）

JP1 Version 9 JP1/File Transmission Server - 全銀TCP（3020-3-S38）

なお，このマニュアルでは，次のマニュアルについて，対象OSおよびバージョン番号を省略して表記しています。マニュアルの正式名称とこのマニュアルでの表記を次の表に示します。

正式名称 | このマニュアルでの表記
Cosminexus ビジネスプロセス管理/エンタープライズサービスバス V8 サービスプラットフォーム 概説 | Cosminexus サービスプラットフォーム 概説
Cosminexus ビジネスプロセス管理/エンタープライズサービスバス V8 サービスプラットフォーム システム構築・運用ガイド | Cosminexus サービスプラットフォーム システム構築・運用ガイド
Cosminexus ビジネスプロセス管理/エンタープライズサービスバス V8 サービスプラットフォーム 機能解説 | Cosminexus サービスプラットフォーム 機能解説
Cosminexus ビジネスプロセス管理/エンタープライズサービスバス V8 サービスプラットフォーム サンプルプログラムガイド | Cosminexus サービスプラットフォーム サンプルプログラムガイド
Cosminexus ビジネスプロセス管理/エンタープライズサービスバス V8 サービスプラットフォーム リファレンス | Cosminexus サービスプラットフォーム リファレンス
Cosminexus アプリケーションサーバ V8 システム構築・運用ガイド | Cosminexus アプリケーションサーバ システム構築・運用ガイド
Cosminexus アプリケーションサーバ V8 機能解説 基本・開発編(Webコンテナ) | Cosminexus アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)
Cosminexus アプリケーションサーバ V8 機能解説 基本・開発編(EJBコンテナ) | Cosminexus アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)
Cosminexus アプリケーションサーバ V8機能解説 基本・開発編(コンテナ共通機能) | Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)
Cosminexus アプリケーションサーバ V8 機能解説 拡張編 | Cosminexus アプリケーションサーバ 機能解説 拡張編
Cosminexus アプリケーションサーバ V8 機能解説 保守／移行／互換編 | Cosminexus アプリケーションサーバ 機能解説 保守／移行／互換編
Cosminexus アプリケーションサーバ V8 アプリケーション設定操作ガイド | Cosminexus アプリケーションサーバ アプリケーション設定操作ガイド
Cosminexus アプリケーションサーバ V8 運用管理ポータル操作ガイド | Cosminexus アプリケーションサーバ 運用管理ポータル操作ガイド
Cosminexus アプリケーションサーバ V8 リファレンス コマンド編 | Cosminexus アプリケーションサーバ リファレンス コマンド編
Cosminexus アプリケーションサーバ V8 リファレンス 定義編(サーバ定義) | Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)
Cosminexus アプリケーションサーバ V8 リファレンス 定義編(アプリケーション／リソース定義) | Cosminexus アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)
Cosminexus アプリケーションサーバ V8 Cosminexus Reliable Messaging | Cosminexus Reliable Messaging
Cosminexus アプリケーションサーバ V8 アプリケーション開発ガイド | Cosminexus アプリケーションサーバ アプリケーション開発ガイド
Cosminexus アプリケーションサーバ V8 SOAPアプリケーション開発の手引 | Cosminexus アプリケーションサーバ SOAPアプリケーション開発の手引
Cosminexus アプリケーションサーバ V8 Webサービス開発の手引 | Cosminexus アプリケーションサーバ Webサービス開発の手引
Cosminexus アプリケーションサーバ V8 メッセージ 1 KDAL-KDCGおよびHitachi Web Server編 | Cosminexus アプリケーションサーバ メッセージ 1
Cosminexus アプリケーションサーバ V8 メッセージ 2 KDJE-KDJW編 | Cosminexus アプリケーションサーバ メッセージ 2
Cosminexus アプリケーションサーバ V8 メッセージ 3 KECX-KEDT／KEOS02000-29999／KEUC-KFRM編 | Cosminexus アプリケーションサーバ メッセージ 3
HiRDB Version 8 システム運用ガイド（Windows(R)用） | HiRDB システム運用ガイド
HiRDB Version 8 システム運用ガイド（UNIX(R)用）
HiRDB Version 9 システム運用ガイド（Windows(R)用）
HiRDB Version 9 システム運用ガイド（UNIX(R)用）
HiRDB Version 8 コマンドリファレンス（Windows(R)用） | HiRDB コマンドリファレンス
HiRDB Version 8 コマンドリファレンス（UNIX(R)用）
HiRDB Version 9 コマンドリファレンス（Windows(R)用）
HiRDB Version 9 コマンドリファレンス（UNIX(R)用）
HiRDB Version 8 UAP開発ガイド | HiRDB UAP開発ガイド
HiRDB Version 9 UAP開発ガイド
HiRDB SQL Executer オンラインヘルプ(GUI版) | HiRDB SQL Executer オンラインヘルプ
HiRDB SQL Executer オンラインヘルプ(ラインモード版)
JP1 Version 9 JP1/File Transmission Server/FTP（Windows(R)用） | JP1/File Transmission Server
JP1 Version 9 JP1/File Transmission Server/FTP（UNIX(R)用）
JP1 Version 9 JP1/File Transmission Server - 全銀TCP

付録N.2　このマニュアルでの表記

＜この項の構成＞

(1)　製品名

(2)　Cosminexusの機能名

(3)　Java関連用語

(1)　製品名

このマニュアルで使用する表記と，対応する製品名を次に示します。

表記 | 製品名
Eclipse | Eclipse Classic 3.6.1
HiRDBまたはHiRDBサーバ | HiRDB/Parallel Server | HiRDB/Parallel Server Version 8
HiRDB/Single Server | HiRDB/Single Server Version 8
HiRDB Embedded Serverまたは組み込みデータベース | HiRDB Embedded Server Version 8
HiRDB Server | HiRDB Server Version 9
IPF | Itanium(R) Processor Family
JP1/AJS2 for Web Service | JP1/Automatic Job Management System 2 for Web Service
JP1/File Transmission Server/FTP | JP1 Version 9 JP1/File Transmission Server/FTP
Oracle | Oracle 10g | Oracle 10g R2
Oracle 11g | Oracle Database 11g
Process Modeler | Process Modeler 5 for Microsoft(R) Visio Professional Edition
TP1/COBOL adapter | TP1/COBOL adapter for Cosminexus
TP1/EE | TP1/Server Base Enterprise Option
UNIX | AIX | AIX 5L V5.3
AIX V6.1
AIX V7.1
HP-UX | HP-UX 11i V2（IPF）
HP-UX 11i V3（IPF）
Linux（IPF） | Red Hat Enterprise Linux(R) AS 4（IPF）
Red Hat Enterprise Linux(R) 5（Intel Itanium(R)）
Red Hat Enterprise Linux(R) 5 Advanced Platform（Intel Itanium(R)）
LinuxまたはLinux（x86／AMD64 & Intel EM64T） | Red Hat Enterprise Linux(R) AS 4（x86）
Red Hat Enterprise Linux(R) 5 Advanced Platform（x86）
Red Hat Enterprise Linux(R) ES 4（x86）
Red Hat Enterprise Linux(R) 5（x86）
Red Hat Enterprise Linux(R) AS 4（AMD64 & Intel EM64T）
Red Hat Enterprise Linux(R) 5 Advanced Platform（AMD/Intel 64）
Red Hat Enterprise Linux(R) ES 4（AMD64 & Intel EM64T）
Red Hat Enterprise Linux(R) 5（AMD/Intel 64）
Red Hat Enterprise Linux(R) Server 6（32-bit x86）
Red Hat Enterprise Linux(R) Server 6（64-bit x86_64）

(2)　Cosminexusの機能名

このマニュアルで使用する表記と，対応するCosminexusの機能名を次に示します。

表記 | Cosminexusの機能名
Cosminexus RM | Cosminexus Reliable Messaging
CTM | Cosminexus Component Transaction Monitor
HCSC | Hitachi Cosminexus Service Coordinator
HCSC-Business Process，ビジネスプロセス基盤，またはBP基盤 | Hitachi Cosminexus Service Coordinator - Business Process
HCSC-Data Transformまたはデータ変換基盤 | Hitachi Cosminexus Service Coordinator - Data Transform
HCSC-DB AdapterまたはDBアダプタ | Hitachi Cosminexus Service Coordinator - Database Adapter
HCSC-ManagerまたはHCSC-MNG | Hitachi Cosminexus Service Coordinator - Manager
HCSC-Messaging，HCSC-MSG，またはメッセージング基盤 | Hitachi Cosminexus Service Coordinator - Messaging
HCSCTE | Hitachi Cosminexus Service Coordinator Tools for Eclipse
Management Server | Cosminexus Management Server
MyEclipse | MyEclipse for Cosminexus
PRF | Cosminexus Performance Tracer
TPBroker | Cosminexus TPBroker

(3)　Java関連用語

このマニュアルで使用する表記と，対応するJava関連用語を次に示します。

表記 | Java関連用語
Connector 1.5 | J2EETM Connector Architecture 1.5
EAR | Enterprise ARchive
EJBまたはEnterprise JavaBeans | Enterprise JavaBeans
J2EE | J2EETM
JavaTM 2 Platform, Enterprise Edition
J2SE | JavaTM 2 Platform, Standard Edition
JAR | JavaTM Archive
Java | JavaTM
JDBC | JavaTM Database Connectivity
JDK | JDKTM
JavaTM Development Kit
JMS | JavaTM Message Service
JNDI | Java Naming and Directory InterfaceTM
SAAJ | SOAP with Attachments API for Java

付録N.3　英略語

このマニュアルで使用する英略語を次に示します。

英略語 | 英字での表記
API | Application Programming Interface
ASCII | American Standard Code for Information Interchange
BMT | Bean Managed Transaction
BP | Business Process
BPEL | Business Process Execution Language
BPMN | Business Process Modeling Notation
CA | Certificate Authority
CMT | Container Managed Transaction
DB | Database
DBMS | Database Management System
DOM | Document Object Model
DTD | Document Type Definition
ERP | Enterprise Resource Planning
GMT | Greenwich Mean Time
GUI | Graphical User Interface
HTML | Hyper Text Markup Language
HTTP | Hyper Text Transfer Protocol
HTTPS | Hyper Text Transfer Protocol Security
IDE | Integrated Development Environment
IIOP | Internet Inter-Orb Protocol
MDB | Message-Driven Bean
OS | Operating System
RDB | Relational Database
RMI | Remote Method Invocation
RPC | Remote Procedure Call
SOA | Service Oriented Architecture
SOAP | Simple Object Access Protocol
SSL | Secure Socket Layer
TLS | Transport Layer Security
UNC | Universal Naming Convention
URL | Uniform Resource Locator
UTF | UCS Transformation Format
VM | Virtual Machine
W3C | World Wide Web Consortium
WS-I | Web Services Interoperability
WS-R | Web Services Reliability
WSDL | Web Service Description Language
WST | Web Standard Tools
XML | Extensible Markup Language
XPath | XML Path Language

付録N.4　KB（キロバイト）などの単位表記について

1KB（キロバイト），1MB（メガバイト），1GB（ギガバイト），1TB（テラバイト）はそれぞれ1,024バイト，1,024²バイト，1,024³バイト，1,024⁴バイトです。

付録O　用語解説

（英字）

BPEL（Business Process Execution Language）

XMLをベースにしたワークフロー記述言語です。Cosminexus サービスプラットフォームでは，アクティビティとコネクションで定義したビジネスプロセスをBPEL形式で保存できます。

BPMN（Business Process Modeling Notation）

業務手順をわかりやすく図示して可視化するための表記ルールを定めたものです。ビジネスプロセス・モデリング表記法ともいいます。

CA（Certificate Authority）

認証局と呼ばれる，証明書を発行する機関です。

ほかのエンティティのために有効な証明書を発行する，信頼のおけるエンティティです。次に示す種類があります。

ルートCA
上位のCAによる認証を受けないで，自分の正当性を自ら証明します。

中間CA
自分の正当性を証明するために，上位のCAによる認証を受けています。

DB Connector

データベースに接続するためのリソースアダプタです。

DBアダプタ

データベースの操作をサービス部品として利用する場合に，操作するデータベースや実行するSQLを定義したHCSCコンポーネントです。

DBキュー

データベースを介してシステム間で連携する，TP1/EE（TP1/Server Base Enterprise Option）の機能です。DBキュー機能を使用すると，データベースをキューとして，TP1/EEとJ2EEとの間で，非同期型のメッセージ送受信ができます。

EAR（Enterprise ARchive）ファイル

J2EEアプリケーションを構成する複数のファイルをEARファイル形式でパッケージ化したものです。

Cosminexus サービスプラットフォームでは，HCSCコンポーネントをパッケージングして，EARファイルを作成します。

Eclipse

Eclipseプロジェクト（eclipse.org）が提供するオープンソースの統合開発環境です。ソースコードの編集支援機能やデバッグ機能など，アプリケーションの開発効率を向上させる各種機能を備えています。

Cosminexus サービスプラットフォームでは，Eclipseに必要な機能をプラグインして利用します。

EJB（Enterprise JavaBeans）

業務ロジックをプログラムとして記述したビジネスロジック，および永続的データを格納するオブジェクトであるエンティティをJavaコンポーネント化したものです。Oracle CorporationからEJB仕様が公開されています。

FTPアダプタ

Cosminexus サービスプラットフォームとFTPサーバとの間でファイルの送受信をするために利用するアダプタです。

FTPインバウンドアダプタ

FTP連携で使用するリソースアダプタです。Connector 1.5仕様に準拠しています。

FTP受付

FTPインバウンドアダプタを経由してFTPクライアントからの実行要求を受け付ける機能（インターフェース）です。

ファイル操作アダプタやFTPアダプタと連携することで，Cosminexus サービスプラットフォーム上でFTPクライアントとFTPサーバの間のファイル転送ができるようになります。

FTPクライアント

FTPを使用してファイルの送受信を行うクライアント用ソフトウェアです。

FTPサーバ

FTPクライアントからの要求によってファイルを送受信するサーバ用ソフトウェアです。

FTP連携

Cosminexus サービスプラットフォーム上でFTPクライアントとFTPサーバの間のファイル転送を実現するための機能です。

HCSC（Hitachi Cosminexus Service Coordinator）

uCosminexus Service Platformを構成する構成ソフトウェアの一つです。Cosminexus サービスプラットフォームでSOAを適用したシステムを構築，運用するための機能として，ビジネスプロセス実行機能，データ変換機能，DBアダプタ機能，実行環境の運用管理機能，およびメッセージング制御機能を提供しています。

HCSC-Business Process（ビジネスプロセス基盤）

ビジネスプロセスの定義に従って，適切なサービス部品を呼び出すための機能です。

HCSC-Data Transform（データ変換基盤）

データ変換定義に従って，要求電文・応答電文の電文フォーマットを変換する機能です。

HCSC-DB Adapter（DBアダプタ）

DBアダプタの定義に従って適切なサービス部品（データベースの操作）を呼び出す機能です。

HCSCTE

Cosminexus サービスプラットフォームの開発環境で利用する開発支援機能です。HCSCTEで提供される機能は，Eclipseにプラグインして利用します。

アダプタやビジネスプロセスの作成・定義機能などが含まれます。

HCSCコンポーネント

開発環境で作成するサービスアダプタ，DBアダプタ，ビジネスプロセス，およびユーザ定義受付の総称です。

HCSCコンポーネントの検証

定義したアダプタ，ビジネスプロセス，データ変換定義の内容が妥当かどうか検証する機能です。必要な定義があるか，また定義の関係が正しいかを，必要に応じて任意のタイミングで検証できます。

HCSCサーバ

実行環境でサービス部品の実行を管理するサーバ機能です。メッセージング基盤，ビジネスプロセス基盤，データ変換基盤など，実行環境に必要な機能が含まれます。また，標準受付，ユーザ定義受付などのリクエスト受付機能や，サービスアダプタ（Webサービス，SessionBean，MDB（WS-R），MDB（DBキュー），DBアダプタ）の各種アダプタ機能も含まれます。

HCSCサーバランタイム定義ファイル（cscsvconfig.properties）

HCSCサーバの起動時に必要なランタイム情報を定義するファイルです。J2SEのプロパティ形式のファイルとして作成します。

実行履歴を採取するかどうかや，トレースファイルのレベル・出力先などを定義できます。

HTTP

インターネットで，WWWサーバとWWWクライアントの間でHTML文書を送受信するための通信プロトコルです。

IDE（Integrated Development Environment）

Javaの統合開発環境です。Cosminexus サービスプラットフォームでは，Eclipseを利用します。

iWayアダプタ

Cosminexus サービスプラットフォームの実行環境から他社ERPパッケージのサービス部品を呼び出す場合に利用するアダプタです。

J2EEサーバ

アプリケーションを実行するためのサーバ基盤であるJ2EEコンテナを生成，実行する環境です。Cosminexus サービスプラットフォームは，J2EEサーバとしてCosminexus Component Containerを使用します。

Java雛形ファイル

カスタムファンクションから呼び出す変換ファンクションの雛形ファイルです。パッケージ，クラス，およびメソッド（引数を含む）の構成が記載されています。

JAX-WSエンジン

Cosminexusが提供するWebサービスの通信基盤です。SOAP1.1仕様およびSOAP1.2仕様に対応しています。

MDB（Message-Driven Bean）

JMSと連携するメッセージ駆動タイプのBeanです。EJBコンテナはJMSのDestinationからのJMSメッセージ受信を契機にBeanを起動します。

Message Queueアダプタ

Cosminexus サービスプラットフォームの実行環境から既存のメッセージキュー（IBM WebSphere MQシステム）に対してメッセージの送受信をする場合に利用するアダプタです。

MyEclipse

Javaアプリケーションの開発環境です。MyEclipseには，Eclipseでアプリケーションを開発するときに使用するプラグインがまとめられています。MyEclipseを使用すると，アプリケーションの作成，J2EEサーバへのアプリケーションのデプロイ，J2EEサーバの起動・停止，データベースの操作などができます。

Cosminexusでは，構成ソフトウェアとして，MyEclipseの日本語版環境であるMyEclipse for Cosminexusを提供しています。

Object Accessアダプタ

Cosminexus サービスプラットフォームの実行環境から既存のTPBrokerシステム（Object Wrapperシステム）のサービス部品を呼び出す場合に利用するアダプタです。

RMI-IIOP

JavaRMIとJavaIDLを統合したAPIです。

SessionBean

セッション単位での処理を行う機能がある，EJBで規定されているBeanの一つです。

SOAP（Simple Object Access Protocol）

ネットワーク上のサービス部品を呼び出す際のメッセージを規定したものです。HTTPとXMLがベースとなっています。

SOAP1.1/1.2併用モード

利用するWebサービスの標準仕様および通信基盤を表すモードです。SOAP1.1仕様およびSOAP1.2仕様に対応したサービス部品／サービスリクエスタを利用するときに指定します。SOAP1.1/1.2併用モードでは，通信基盤としてCosminexusが提供するJAX-WSエンジンを利用します。

SOAP1.1モード

利用するWebサービスの標準仕様および通信基盤を表すモードです。SOAP1.1仕様に対応したサービス部品／サービスリクエスタを利用するときに指定します。SOAP1.1モードでは，通信基盤としてCosminexusが提供するSOAP通信基盤を利用します。

SOAP通信基盤

Cosminexusが提供するWebサービス（SOAPアプリケーション）の通信基盤です。SOAP1.1仕様に対応しています。

SQLオペレーション定義ファイル

DBアダプタを利用してデータベースにアクセスする場合に，実行するSQLを定義するファイルです。DBアダプタ用のXMLフォーマット定義ファイルを作成するときの基となるファイルです。

SSL（Secure Sockets Layer）

情報を暗号化してネットワークで送受信するためのプロトコルの一つです。

TLS（Transport Layer Security）

情報を暗号化してネットワークで送受信するためのプロトコルの一つです。SSLを基に改良が加えられたプロトコルです。

TP1/RPC受付

既存のOpenTP1システム内にあるサービスリクエスタからのサービス部品呼び出し要求を受け付けるための機能（インターフェース）です。

TP1アダプタ

Cosminexus サービスプラットフォームの実行環境から既存のOpenTP1システム内にあるサービス部品を呼び出す場合に利用するアダプタです。

TP1インバウンドアダプタ

TP1インバウンド連携機能で使用するリソースアダプタです。Connector 1.5仕様に準拠しています。

TP1連携システム

OpenTP1システム内にあるサービスリクエスタおよびサービス部品と接続するためのシステム構成です。

uCosminexus Service Architect

Cosminexus サービスプラットフォームの開発環境を構築・運用するための製品です。

uCosminexus Service Platform

Cosminexus サービスプラットフォームの実行環境・運用環境を構築・運用するための製品です。

W3C（World Wide Web Consortium）

XMLやDOMを含むWeb関連技術の標準化を推進する非営利団体です。

Webサービス

インターネット上に分散するアプリケーションが提供するサービス部品を，クライアントにAPIとして提供するサービス部品です。

WS-R（Web Services Reliability）

標準化団体OASISで標準化された，インターネット向けのオープンな非同期通信プロトコルです。

WSDL（Web Service Description Language）

Webサービスを記述するための言語仕様です。XMLがベースとなっています。

XMLスキーマ

W3C勧告で定められた仕様で，XML文書内の論理的なデータ構造を規定するための仕組みです。

XMLフォーマット定義ファイル

XML形式のデータを扱う場合に利用する電文フォーマット定義ファイルです。XMLスキーマファイルとして作成します。

XPath

XML文書の中の特定の要素を示すための記述方法に関するW3C勧告の標準仕様です。XML形式のデータのツリー構造をたどって要素や属性にアクセスする手段が規定されています。

（ア行）

アクティビティ

ビジネスプロセスの処理フローを定義する部品です。基本アクティビティと構造アクティビティに分類されます。複数のアクティビティを画面上に配置し，コネクションで連結して，ビジネスプロセスの処理フローを定義します。

アダプタ

サービスリクエスタからの要求電文を受け取り，アダプタ内で定義されているサービス部品へ要求電文を送信して，サービス部品を呼び出すアプリケーションです。

アダプタには，標準で使用するサービスアダプタ（標準アダプタ）と，ユーザが必要に応じて使用するカスタムアダプタ（DBアダプタ，TP1アダプタなど）があります。サービスアダプタは，Webサービス，SessionBean，MDB（WS-R），およびMDB（DBキュー）のサービス部品を呼び出すアダプタです。カスタムアダプタは，それ以外のサービス部品を呼び出すアダプタです。

受付処理

サービス部品の呼び出し要求を受け付けたり，電文を転送したりする処理を記述したAPIです。ユーザが作成した受付処理をカスタム受付フレームワーク上で動作させることで，任意のプロトコルに対応した受付を開発できます。

運用環境

開発環境で作成したEARファイルをリポジトリから読み込み，実行環境に配備する環境です。また，実行環境で利用するHCSCサーバをセットアップします。実行環境での業務の運用を開始したあとは，システムの起動・停止，および状態を監視します。

永続化

ビジネスプロセスのプロセスインスタンスの実行状況を履歴として，データベースに記録することです。

応答電文

サービス部品の実行結果を返すための電文です。応答電文には，サービス部品からHCSCサーバに送信される電文と，HCSCサーバからサービスリクエスタに送信される電文があります。

（カ行）

開発環境

実行環境でサービス部品を呼び出すために必要なHCSCコンポーネントを作成したり，作成したHCSCコンポーネントをHCSCサーバおよびクラスタにどのように配備するか定義（配備定義）したりする環境です。

カスタムアダプタ

呼び出すサービス部品の種類が，Webサービス，SessionBean，MDB（WS-R），MDB（DBキュー）以外のアダプタです。

カスタム受付

サービスリクエスタからの実行要求を受け付けるための機能（インターフェース）です。ユーザが作成した受付処理をカスタム受付フレームワーク上で動作させることで，任意のプロトコルからの実行要求を受け付けることができます。

カスタム受付フレームワーク

カスタム受付を作成するためにCosminexus サービスプラットフォームで提供している開発用フレームワークです。

カスタムファンクション

データ変換の定義で使用するファンクションの一つです。このファンクションでは，ユーザが作成した任意のJavaプログラムを呼び出し，データを加工できます。

キーストア

秘密鍵，公開鍵，および証明書を持つ，保護されたデータベースです。

基本アクティビティ

受付処理，応答処理，サービス部品の呼び出しなど，ビジネスプロセス内の基本的な処理を定義するためのアクティビティです。

共通フォルダ

FTP連携で，複数のビジネスプロセスからアクセスできるファイルを格納するためにHCSCサーバに作成する任意のフォルダです。

クライアント認証

サーバが，クライアントから送られてきたクライアントの証明書を基に，信頼できるクライアントかどうかを確認することです。

公開

HCSCコンポーネントをHCSCサーバに追加（配備定義）して，システム構成定義を更新することです。

公開鍵

特定のエンティティ（署名者）に関連づけられた数値です。

該当するエンティティとの間に信頼できる関係を持つ必要がある，すべての人に対して公開することを意図しています。署名の検証に使用されます。

構造アクティビティ

分岐処理，並列処理，繰り返し処理など，ビジネスプロセス内の処理の構造を定義するためのアクティビティです。

コネクション

アクティビティを連結して，アクティビティの実行順序を定義するための部品です。通常のコネクションに加えて，フォルト処理を連結するフォルトコネクションおよび並列処理時のリンクを設定するリンクコネクションがあります。

（サ行）

サーバ認証

クライアントが，サーバから送られてきたサーバの証明書を基に，信頼できるサーバかどうかを確認することです。

サービス

業務と一対一に対応し，業務に必要な機能を再利用できるソフトウェア部品のことです。SOAでは，サービスを組み合わせて業務システムを構築します。これによって，業務の変化に対して，システムを迅速に変更できます。

サービスアダプタ

どのサービス部品を実行するかを定義したHCSCコンポーネントです。呼び出すサービス部品の種類（Webサービス，SessionBean，MDB（WS-R），MDB（DBキュー））ごとに定義する内容は異なります。

サービス部品

サービスアダプタおよびDBアダプタから実行できる業務処理のことです。Webサービス，SessionBean，MDB（WS-R），MDB（DBキュー），およびデータベースの操作をサービス部品として利用できます。

サービス部品電文

サービス部品独自の電文フォーマットを持った電文です。サービス部品がデータベースの操作の場合，DBアダプタ電文といいます。

サービスリクエスタ

HCSCサーバへサービス部品の実行要求（要求電文）を送信するアプリケーションです。HCSCサーバの標準受付が同期標準受付（Webサービス／SessionBean）か，非同期標準受付（MDB（WS-R）／MDB（DBキュー））か，またはユーザ定義受付（Webサービス）かによって，作成するサービスリクエスタの形式が異なります。

標準受付にサービス部品の実行を要求するサービスリクエスタを作成するときは，HCSCサーバに送信される要求電文の電文フォーマットを，標準電文に合わせる必要があります。

ユーザ定義受付にサービス部品の実行を要求するサービスリクエスタを作成するときは，サービス部品またはビジネスプロセスに定義した電文フォーマット（WSDL）に合わせることができます。

作業フォルダ

FTP連携で，FTPクライアントやFTPサーバなどから受信したファイルを扱うためにHCSCサーバに作成されるフォルダです。

システム構成定義

HCSCサーバおよびクラスタのセットアップ情報と，HCSCコンポーネントをHCSCサーバおよびクラスタにどのように配備するかの情報が含まれる定義情報です。

HCSCサーバおよびクラスタのセットアップ情報は，運用環境で更新されます。開発環境では，HCSCサーバおよびクラスタにHCSCコンポーネントをどのように配備するかの情報を定義します。

実行環境

サービスリクエスタで受け付けた実行要求に応じて，HCSCサーバを介して適切なサービス部品を呼び出し，業務を実行する環境です。

証明書

公開鍵証明書です。あるエンティティの識別情報および公開鍵の内容を証明します。証明書には，自己署名付き証明書と，CA（認証局）から発行された証明書があります。

相関セット

サービスリクエスタから送信された要求電文を一意に識別するために利用する文字列です。HCSCサーバには，サービスリクエスタから相関セットを含む要求電文が送信されます。サービス部品のHCSCサーバは，相関セットを含んだ応答電文をサービスリクエスタに返信します。その結果，サービスリクエスタは受信した応答電文が，どの要求電文に対する応答であるのかを一意に識別できます。

（タ行）

データ変換

標準電文とサービス部品電文の電文フォーマットが異なる場合に，データ変換定義に従って，標準電文をサービス部品電文の電文フォーマットに変換することです。

データ変換定義

標準電文とサービス部品電文の電文フォーマットの相違を解消するためのデータ変換方法を定義したものです。標準電文とサービス部品電文の電文フォーマット定義ファイルの各要素をマッピングし，必要に応じてファンクションを設定して定義します。

電文フォーマット

要求電文および応答電文のデータ構造です。

サービスリクエスタからHCSCサーバに送信される要求電文の電文フォーマットは，標準電文の電文フォーマットに合わせる必要があります。標準電文とサービス部品に実行要求するための電文（サービス部品電文）の電文フォーマットが異なる場合は，データ変換定義を作成して，電文フォーマットの相違を解消します。

電文フォーマット定義ファイル

電文の構造（電文フォーマット）を定義したファイルです。XMLフォーマット定義ファイルとバイナリフォーマット定義ファイルとがあります。サービス部品の実行に利用する電文でXML形式のデータを扱う場合は，XMLフォーマット定義ファイルを，バイナリ形式（XML形式以外）のデータを扱う場合は，バイナリフォーマット定義ファイルを利用します。

トラストストア

信頼できる証明書を格納したキーストアです。サーバ認証をする場合に，このトラストストアに格納されている証明書を基に，そのサーバが信頼できるかどうかが判断されます。

（ナ行）

ノード

データ変換定義画面で，ツリービューに表示される各要素のことです。データ変換の元になる変換元ノードと，変換先になる変換先ノードがあります。

（ハ行）

バイナリフォーマット定義ファイル

バイナリ形式（XML形式以外）のデータを扱う場合に利用する電文フォーマット定義ファイルです。XMLスキーマファイルとして作成します。バイナリ形式のデータ内の値の格納形式を定義し，定義した情報をXMLスキーマファイルに付加したファイル（拡張子：.fdx）です。

配備

HCSCコンポーネントを適切なHCSCサーバに配置することです。開発環境で作成したHCSCコンポーネントは，運用環境を利用して実行環境（HCSCサーバ）に配備します。

配備定義

開発環境で，HCSCコンポーネントをHCSCサーバおよびクラスタにどのように配備するか定義し，システム構成定義を更新することです。運用環境からHCSCコンポーネントを配備するときには，開発環境で配備定義したシステム構成定義の内容に従って配備します。

パッケージング

開発環境で作成したHCSCコンポーネントを，実行環境に配備できるようにEARファイルに組み立てることです。

非公開

HCSCコンポーネントをHCSCサーバから削除（配備定義を削除）して，システム構成定義を更新することです。

ビジネスプロセス

複数のサービス部品の処理の順番や条件などを定義して，一連の業務の流れとして定義したものです。Cosminexus サービスプラットフォームの開発環境では，複数のアクティビティを画面上に配置し，コネクションで連結して定義します。

秘密鍵

特定のエンティティだけが知っている数値のことです。この数値を「エンティティの秘密鍵（または非公開鍵）」と呼びます。

秘密鍵は秘密にすることが前提です。秘密鍵と公開鍵は，すべての公開鍵暗号化システムで対になって存在します。

標準受付

サービスリクエスタからの要求電文を受け付けるための機能（インターフェース）です。HCSCサーバに含まれる機能です。標準受付を開始すると，サービスリクエスタからの要求電文を受け付けられる状態になります。

同期受付（Webサービス／SessionBean）および非同期受付（MDB（WS-R）／MDB（DBキュー））の要求を受け付けることができます。

標準電文（標準電文フォーマット）

Cosminexus サービスプラットフォームで提供する標準的な電文フォーマットです。

ファイルアダプタ

Cosminexus サービスプラットフォームの実行環境からHCSCサーバ上のローカルディスクに対して直接ファイルの入出力をする場合に利用するアダプタです。

ファイル操作アダプタ

ファイルのレイアウト変換，文字コード変換，複製，および削除をするためのアダプタです。

ファンクション

データ変換を定義する場合に，変換元ノードの値を加工して変換先ノードにマッピングする場合に使用するときの加工の方法を定義するものです。

文字列や数値を変換するファンクション，ノードの名称を取得するファンクション，条件による処理の選択や繰り返しを定義するファンクションなどがあります。

プロセスインスタンス

ビジネスプロセスで実行している業務の一つの実体です。ワークフローの案件に相当します。

変換ファンクション

カスタムファンクションから呼び出すJavaプログラムのことです。

変換ファンクション定義ファイル

カスタムファンクションから呼び出す変換ファンクションの構成を定義したファイルです。

（マ行）

マッピング

データ変換を定義する場合に，変換元と変換先のノードを連結することです。マッピングの始点をマッピング元，終点をマッピング先といいます。

文字コード変換UOC

文字コード変換用の外部プログラムのことです。文字コード変換UOCは，Cosminexus サービスプラットフォームが提供するjarファイルを使用して開発します。

（ヤ行）

ユーザ定義受付

サービスリクエスタからの実行要求を受け付けるための機能（インターフェース）です。HCSCサーバに含まれる標準受付とは異なり，ユーザが任意のインターフェースを定義できます。定義したユーザ定義受付をHCSCサーバに配備して開始すると，サービスリクエスタからの要求電文を受け付けられる状態になります。

ユーザ電文

サービスリクエスタから送信される要求電文です。

要求電文

サービス部品の実行を要求するための電文です。要求電文には，サービスリクエスタからHCSCサーバに送信される電文とHCSCサーバ内のアダプタからサービス部品に送信される電文があります。

（ラ行）

リポジトリ

定義したHCSCコンポーネントやシステム構成定義を格納するディレクトリです。格納した情報は，リポジトリの管理機能（リポジトリのインポート／エクスポート機能）を利用して，開発環境と運用環境との間で受け渡します。

索引

[Ａ][Ｂ][Ｃ][Ｄ][Ｅ][Ｆ][Ｈ][Ｉ][Ｊ][Ｋ][Ｌ][Ｍ][Ｏ][Ｐ][Ｒ][Ｓ][Ｔ][Ｕ][Ｖ][Ｗ][Ｘ]
[ア行][カ行][サ行][タ行][ナ行][ハ行][マ行][ヤ行][ラ行]

(英字)

(Ａ)

assign要素の変換〔BPEL1.1〕

assign要素の変換〔BPEL2.0〕

(Ｂ)

BPEL〔用語解説〕

BPEL1.1のビジネスプロセス定義をインポートする場合

BPEL2.0のビジネスプロセス定義をインポートする場合

BPELのサポート範囲

BPELファイルの作成

BPMN〔用語解説〕

(Ｃ)

CA〔用語解説〕

COBOL登録集原文ファイルからのバイナリフォーマット定義ファイルの生成

COBOL登録集原文ファイルとバイナリフォーマット定義ファイルのデータ型の対応

correlationSets要素の変換〔BPEL1.1〕

correlationSets要素の変換〔BPEL2.0〕

Cosminexus RMのローカルキューを利用したサービス部品の適用範囲

CSCMsgCustomAdapterContextインターフェース

CSCMsgCustomProtocolConverterインターフェース

CSCMsgMessageConstantインターフェース

CSCMsgRequestMessageインターフェース

CSCMsgResponseMessageインターフェース

CSCMsgServerExceptionクラス

cscsvconfig.properties〔用語解説〕

(Ｄ)

DB Connector〔用語解説〕

DBアダプタ〔用語解説〕

DBアダプタ定義支援機能の概要

DBアダプタ定義支援機能を利用したDBアダプタの定義

DBアダプタで取得したデータのフォーマットの変換例

DBアダプタ電文

DBアダプタに要求を出すサービスリクエスタ

DBアダプタ用のXMLフォーマット定義ファイルの作成

DBアダプタを新規に追加する

DBアダプタを定義する

DBキュー〔用語解説〕

DBキューを利用したサービス部品の適用範囲

DBクライアント（HCSCサーバ）側の設定

DBサーバ側の設定

(Ｅ)

EARファイル〔用語解説〕

Eclipse〔用語解説〕

EJB〔用語解説〕

empty要素の変換〔BPEL1.1〕

empty要素の変換〔BPEL2.0〕

(Ｆ)

faultHandlers要素の変換〔BPEL1.1〕

faultHandlers要素の変換〔BPEL2.0〕

flow要素の変換〔BPEL1.1〕

flow要素の変換〔BPEL2.0〕

FTPSに関する設定項目

FTPSを使用したセキュアな接続

FTPアダプタ

FTPアダプタ〔用語解説〕

FTPアダプタコマンド定義ファイル

FTPアダプタ実行環境プロパティファイル

FTPアダプタとは

FTPアダプタのアーカイブファイルをJ2EEサーバのクラスパスに設定する

FTPアダプタの応答電文フォーマット

FTPアダプタの概要

FTPアダプタの機能

FTPアダプタの処理の流れ

FTPアダプタの設定

FTPアダプタの設定の流れ

FTPアダプタの定義情報を変更する

FTPアダプタの定義ファイルを作成する

FTPアダプタのデータ変換（マッピング）を定義する

FTPアダプタの電文フォーマット

FTPアダプタのユーザ情報を確認および変更する

FTPアダプタの要求電文フォーマット

FTPアダプタを削除する

FTPアダプタを追加する

FTPアダプタを保存する

FTPインバウンドアダプタ

FTPインバウンドアダプタ〔用語解説〕

FTPインバウンドアダプタとは

FTPインバウンドアダプタの情報を確認する

FTPインバウンドアダプタの設定の解除

FTPインバウンドアダプタの定義情報を変更する

FTPインバウンドアダプタのユーザ情報を確認・変更する

FTPインバウンドアダプタをアンセットアップする

FTPインバウンドアダプタを起動する

FTPインバウンドアダプタをセットアップする

FTPインバウンドアダプタを停止する

FTP受付

FTP受付〔用語解説〕

FTP受付コンフィグファイル

FTP受付実行時に発生したエラーの伝わり方

FTP受付使用時のトランザクション

FTP受付定義ファイル

FTP受付定義ファイルの定義情報を削除する

FTP受付定義ファイルの定義情報を設定する

FTP受付定義ファイルを取得する

FTP受付でサポートするオペレーションとFTPコマンド

FTP受付で使用できる通信モデルおよびビジネスプロセス

FTP受付とは

FTP受付のアプリケーション統合属性ファイルの定義情報を設定する

FTP受付のアプリケーション統合属性ファイルを取得する

FTP受付の応答電文フォーマット

FTP受付の概要

FTP受付の機能

FTP受付の設定

FTP受付の設定の流れ

FTP受付の定義情報を変更する

FTP受付の定義ファイルを作成する

FTP受付のデータ変換（マッピング）を定義する

FTP受付の電文フォーマット

FTP受付の要求電文フォーマット

FTP受付を開始する

FTP受付を削除する

FTP受付を追加する

FTP受付を停止する

FTP受付を保存する

FTPクライアント〔用語解説〕

FTPクライアントからFTPサーバへのファイル転送

FTPクライアントからFTPサーバへのファイル転送の流れ（同期型ビジネスプロセスを利用する場合）

FTPクライアントからFTPサーバへのファイル転送の流れ（非同期型ビジネスプロセスを利用する場合）

FTPクライアントから別のFTPクライアントへのファイル転送

FTPコマンド許可リスト定義ファイル（FTPアダプタ用）

FTPコマンド許可リスト定義ファイル（FTP受付用）

FTPコマンドの実行

FTPコマンドリプライタイムアウト（FTPアダプタ）

FTPサーバ〔用語解説〕

FTPサーバからFTPクライアントへのファイル転送

FTPサーバのファイルリストの取得

FTP実行許可リスト定義ファイル

FTPと連携したシステムの開発

FTPプロトコルトレース（FTPアダプタ）

FTPプロトコルトレース（FTPインバウンドアダプタ）

FTP連携〔用語解説〕

FTP連携システムのアンセットアップの流れ

FTP連携システムの運用

FTP連携システムの運用の流れ

FTP連携システムの開発の流れ

FTP連携システムのセットアップとアンセットアップ

FTP連携システムのセットアップの流れ

FTP連携でサポートするFTPコマンド

FTP連携とは

FTP連携を利用したファイル転送パターン

FTP連携を利用するためのシステムの構成

(Ｈ)

HCSC〔用語解説〕

HCSC-Business Process〔用語解説〕

HCSC-Data Transform〔用語解説〕

HCSC-DB Adapter〔用語解説〕

HCSCTE〔用語解説〕

HCSC簡易セットアップ画面（［サーバ名称］タブ）

HCSC簡易セットアップ画面（［メイン］タブ）

HCSC簡易セットアップ画面で入力する項目

HCSC簡易セットアップ機能

HCSC簡易セットアップ機能で構築できる環境

HCSC簡易セットアップ機能でセットアップした組み込みデータベースの運用

HCSC簡易セットアップ機能でセットアップしたテスト環境の運用

HCSC簡易セットアップ機能の実行

HCSCコンポーネント〔用語解説〕

HCSCコンポーネントの一覧を更新する

HCSCコンポーネントの情報の参照

HCSCコンポーネントの情報を確認する

HCSCコンポーネントの情報を表示する

HCSCコンポーネントをHCSCサーバに配備して開始する処理の一括実行

HCSCコンポーネントをHCSCサーバに配備して開始する方法

HCSCコンポーネントを起動する

HCSCコンポーネントを停止してHCSCサーバから削除する処理の一括実行

HCSCコンポーネントを停止してHCSCサーバから削除する方法

HCSCコンポーネントを停止する

HCSCコンポーネントを配備する

HCSCサーバ〔用語解説〕

HCSCサーバからエラーがリターンした場合（ビジネスプロセスを使用するとき）

HCSCサーバでエラーを検知した場合

HCSCサーバの情報を確認する

HCSCサーバの定義情報を変更する

HCSCサーバランタイム定義ファイル〔用語解説〕

HCSCサーバを起動する

HCSCサーバを停止する

HTTP〔用語解説〕

(Ｉ)

IDE〔用語解説〕

if要素の変換〔BPEL2.0〕

invoke要素の変換〔BPEL1.1〕

invoke要素の変換〔BPEL2.0〕

iWayアダプタ〔用語解説〕

(Ｊ)

J2EEサーバ〔用語解説〕

JARファイルの作成〔プロトコルコンバータJARファイル〕

JARファイルの作成〔ライブラリJARファイル〕

Javaのビルド・パスの指定

Java雛形ファイル〔用語解説〕

Java雛形ファイルの生成

Javaプログラムのコーディング，ビルド，およびデバッグ

Javaプログラムのパッケージング

Java呼出アクティビティ

JAX-WSエンジン〔用語解説〕

JMSのサービスリクエスタ

JMSメッセージを生成する〔標準の非同期受付（MDB（DBキュー））〕

JMSメッセージを生成する〔標準の非同期受付（MDB（WS-R））〕

JMSメッセージを送信する〔標準の非同期受付（MDB（DBキュー））〕

JMSメッセージを送信する〔標準の非同期受付（MDB（WS-R））〕

(Ｋ)

KB（キロバイト）などの単位表記について

(Ｌ)

Listenタイムアウト（FTPアダプタ）

(Ｍ)

MDB〔用語解説〕

Message Queueアダプタ〔用語解説〕

MyEclipse〔用語解説〕

(Ｏ)

Object Accessアダプタ〔用語解説〕

OpenTP1と連携したシステムの開発

(Ｐ)

process要素の変換〔BPEL1.1〕

process要素の変換〔BPEL2.0〕

(Ｒ)

RDエリアの未使用領域を確認する

receive要素の変換〔BPEL1.1〕

receive要素の変換〔BPEL2.0〕

reply要素の変換〔BPEL1.1〕

reply要素の変換〔BPEL2.0〕

RMI-IIOP〔用語解説〕

(Ｓ)

scope要素の変換〔BPEL1.1〕

scope要素の変換〔BPEL2.0〕

sequence要素の変換〔BPEL1.1〕

sequence要素の変換〔BPEL2.0〕

SessionBean〔用語解説〕

SessionBeanを利用したサービス部品の適用範囲

SOAP〔用語解説〕

soap:binding要素

soap:body要素

soap:fault要素

soap:operation要素

SOAP1.1/1.2併用モード〔用語解説〕

SOAP1.1モード〔用語解説〕

SOAP通信基盤〔用語解説〕

SOAPモードの確認

SOAPモードの設定

SOAPモードを変更する

SQLオペレーション定義ファイル

SQLオペレーション定義ファイル〔用語解説〕

SQLオペレーション定義ファイルの構造

SQLオペレーション定義ファイルの作成

SQLオペレーション定義ファイルの作成例

SSL〔用語解説〕

switch要素の変換〔BPEL1.1〕

(Ｔ)

throw要素の変換〔BPEL1.1〕

throw要素の変換〔BPEL2.0〕

TLS〔用語解説〕

TP1/RPC受付〔用語解説〕

TP1/RPC受付実行時に発生したエラーの伝わり方

TP1/RPC受付使用時のトランザクション

TP1/RPC受付定義ファイルの定義情報を削除する

TP1/RPC受付定義ファイルの定義情報を設定する

TP1/RPC受付定義ファイルを取得する

TP1/RPC受付でのデータの流れとデータ変換の関係

TP1/RPC受付とは

TP1/RPC受付のアプリケーション統合属性ファイルの定義情報を設定する

TP1/RPC受付のアプリケーション統合属性ファイルを取得する

TP1/RPC受付の運用の流れ

TP1/RPC受付の情報を確認する

TP1/RPC受付の定義の流れ

TP1/RPC受付の定義を編集する

TP1/RPC受付の定義を保存する

TP1/RPC受付のデータ変換

TP1/RPC受付を開始する

TP1/RPC受付を更新する

TP1/RPC受付を追加する

TP1/RPC受付を停止する

TP1/RPC受付を配備する

TP1/Server Base Enterprise Option（TP1/EE）のサービスリクエスタ

TP1アダプタ〔用語解説〕

TP1インバウンドアダプタ〔用語解説〕

TP1インバウンドアダプタでエラーを検知した場合

TP1インバウンドアダプタでエラーを検知した場合

TP1連携システム〔用語解説〕

(Ｕ)

uCosminexus Service Adapter Architect for FTP

uCosminexus Service Adapter for FTP

uCosminexus Service Architect〔用語解説〕

uCosminexus Service Platform〔用語解説〕

uCosminexus 日立コード変換 - Development Kitのセットアップ

(Ｖ)

variables要素の変換〔BPEL1.1〕

variables要素の変換〔BPEL2.0〕

(Ｗ)

W3C〔用語解説〕

wait要素の変換〔BPEL1.1〕

wait要素の変換〔BPEL2.0〕

Webサービス〔用語解説〕

Webサービス・エクスプローラー

Webサービスを利用したサービス部品の適用範囲

while要素の変換〔BPEL1.1〕

while要素の変換〔BPEL2.0〕

WS-R〔用語解説〕

WSDL〔用語解説〕

wsdl:fault要素

wsdl:import要素

wsdl:operation要素

wsdl:service要素

wsdl:types要素

WSDLの作成

WSDLの作成例

WSDLを取得する

WSDLを取得する

WSDLを登録する

WSDLを編集する

(Ｘ)

XMLスキーマ〔用語解説〕

XMLスキーマの適用範囲

XMLフォーマット定義ファイル

XMLフォーマット定義ファイル〔用語解説〕

XPath〔用語解説〕

XPathの評価

XPathを指定する

xsd:schema要素

(ア行)

(あ)

アイドルタイムアウト（FTPインバウンドアダプタ）

アカウント定義ファイル

空きページおよび空きセグメントを解放する

アクティビティ

アクティビティ〔用語解説〕

アクティビティの定義

アクティビティの定義情報を変更する

アクティビティの配置と連結

アクティビティの連結条件

アクティビティ名を変更する

アクティビティを配置する

アクティビティを連結する

値置換えファンクション

アダプタ〔用語解説〕

アダプタコンテキストインターフェース〔カスタムアダプタ開発フレームワークのAPI〕

アダプタ定義での設定一覧

アダプタの検証

アダプタの削除

アダプタの追加

アダプタの定義

アダプタの内容の定義

アダプタの編集

アダプタの保存

アプリケーション統合属性ファイル

アンインストール

(い)

移行の対象となるバージョン

インスタンスを生成する

インストール

インポート〔プロジェクト〕

インポート〔リポジトリ〕

(う)

受付アクティビティ

受付およびアダプタの定義ファイルを配置する

受付処理〔用語解説〕

運用環境〔用語解説〕

運用コマンド実行時の保守用ログ（FTPインバウンドアダプタ）

運用中のビジネスプロセス定義を変更する

(え)

永続化〔用語解説〕

英略語

エクスポート〔プロジェクト〕

エクスポート〔リポジトリ〕

エラー情報を取得する

エラー情報を取得する〔標準の同期受付（SessionBean）〕

エラー情報を取得する〔標準の同期受付（Webサービス）〕

エラー情報を取得する〔ユーザ定義受付（Webサービス）〕

(お)

応答アクティビティ

応答電文

応答電文〔用語解説〕

応答電文の形式〔DBアダプタ〕

応答電文を取得する

応答電文を取得する〔標準の同期受付（SessionBean）〕

応答電文を取得する〔標準の同期受付（Webサービス）〕

応答電文を取得する〔標準の非同期受付（MDB（DBキュー））〕

応答電文を取得する〔標準の非同期受付（MDB（WS-R））〕

応答電文を取得する〔ユーザ定義受付（Webサービス）〕

応答用のキューを設定する〔標準の非同期受付（MDB（DBキュー））〕

応答用のキューを設定する〔標準の非同期受付（MDB（WS-R））〕

応答を取り出す〔標準の非同期受付（MDB（DBキュー））〕

応答を取り出す〔標準の非同期受付（MDB（WS-R））〕

オブジェクトを生成する

オブジェクトを生成する〔標準の同期受付（Webサービス）〕

オブジェクトを生成する〔ユーザ定義受付（Webサービス）〕

オペレーションを割り当てる

(カ行)

(か)

開始アクティビティ

開発から実運用までの流れ

開発から実運用までの流れ

開発環境〔用語解説〕

開発環境を使用するためのセットアップ

開発手順

外部ツール実行機能を利用したコマンドの実行

外部バインディングファイルを利用したWSDLのカスタマイズ

概要WSDLを作成する

概要インターフェースを検討する

拡張関数

カスタムアダプタ〔用語解説〕

カスタムアダプタ開発フレームワーク

カスタムアダプタ開発フレームワーク動作定義ファイル〔カスタムアダプタ開発時の定義ファイル〕

カスタムアダプタ開発フレームワーク動作定義ファイル〔カスタムアダプタの定義〕

カスタムアダプタ開発フレームワークのAPI

カスタムアダプタ開発フレームワークの定義ファイル

カスタムアダプタ定義ファイル〔カスタムアダプタ開発時の定義ファイル〕

カスタムアダプタの開始に関するトラブルシューティング

カスタムアダプタの定義画面

カスタムアダプタの配備に関するトラブルシューティング

カスタムアダプタプロパティファイル〔カスタムアダプタ開発時の定義ファイル〕

カスタムアダプタプロパティファイル〔カスタムアダプタの定義〕

カスタムアダプタ用アプリケーション統合属性ファイル〔カスタムアダプタ開発時の定義ファイル〕

カスタムアダプタ用アプリケーション統合属性ファイル〔カスタムアダプタの定義〕

カスタムアダプタを使用する際の環境設定

カスタムアダプタを新規に追加する

カスタムアダプタを定義する

カスタム受付

カスタム受付〔用語解説〕

カスタム受付でのエラーの伝わり方

カスタム受付の運用

カスタム受付の開発

カスタム受付の概要

カスタム受付のチューニング

カスタム受付の定義

カスタム受付フレームワーク〔用語解説〕

カスタム受付フレームワークのAPI

カスタムファンクション〔用語解説〕

カスタムファンクションで使用するJavaプログラムの作成

環境設定

関連マニュアル

(き)

キーストア〔用語解説〕

キーストアに関する設定

基本アクティビティ〔用語解説〕

基本アクティビティに関連する要素の変換〔BPEL1.1〕

基本アクティビティに関連する要素の変換〔BPEL2.0〕

旧バージョンからの移行

旧バージョンからの移行（FTPアダプタ）

旧バージョンからの移行手順

旧バージョンで開発環境と運用環境のリポジトリを共有していた場合の移行手順

共通フォルダ〔用語解説〕

共通フォルダおよび作業フォルダを設定する

共通フォルダ内のファイルを削除する

共通フォルダの情報を参照する

(く)

空白除去ファンクション

組み込みデータベースの構築

クライアント相関ID

クライアント定義ファイルの作成と設定（SessionBean）

クライアント定義ファイルの作成と設定（Webサービス）

クライアント認証〔用語解説〕

クラスタからHCSCコンポーネントを削除する

クラスタにHCSCコンポーネントを追加する

繰り返しアクティビティ

くり返し依存対象が設定された変換元ノードのパスの表示

くり返し依存対象の対応づけ

くり返し依存対象を確認する

くり返し依存対象を変更する

くり返し設定ダイアログを使用してマッピングする

くり返しの設定

くり返しファンクション

くり返しを合成する

くり返しを対応づける

グローバル定義の要素を構成要素に設定する

グローバル変数

(け)

検証〔用語解説〕

検証アクティビティ

検証結果の表示〔バイナリフォーマット定義ファイル〕

検証設定

検証内容〔バイナリフォーマット定義ファイル〕

検証内容〔ビジネスプロセス〕

検証内容〔ユーザ定義受付〕

検証内容の表示〔アダプタ〕

検証内容の表示〔ビジネスプロセス〕

検証方法〔アダプタ〕

検証方法〔バイナリフォーマット定義ファイル〕

検証方法〔ビジネスプロセス〕

検証方法〔ユーザ定義受付〕

(こ)

公開〔用語解説〕

公開鍵〔用語解説〕

構成の形態およびSOAPモードの選択

構成要素

構成要素の開始セパレータを選択して選択条件を設定する

構成要素の選択条件を設定する

構成要素を設定する

構造アクティビティ〔用語解説〕

構造アクティビティに関連する要素の変換〔BPEL1.1〕

構造アクティビティに関連する要素の変換〔BPEL2.0〕

コネクション〔用語解説〕

このマニュアルでの表記

このマニュアルの参考情報

コマンドメッセージログ（FTPアダプタ）

(サ行)

(さ)

サーバ認証〔用語解説〕

サービス〔用語解説〕

サービスアダプタ〔用語解説〕

サービスアダプタ（MDB（DBキュー））を定義する

サービスアダプタ（MDB（WS-R））を定義する

サービスアダプタ（SessionBean）を定義する

サービスアダプタ（Webサービス）を定義する

サービスアダプタ定義（基本）画面

サービスアダプタ定義（詳細）画面

サービスアダプタ定義画面での設定（DBアダプタの場合）

サービスアダプタ定義画面での設定（カスタムアダプタの場合）

サービスアダプタ定義画面での設定（サービスアダプタの場合）

サービスアダプタ定義画面での操作〔DBアダプタ〕

サービスアダプタ定義画面での操作〔MDB（DBキュー）〕

サービスアダプタ定義画面での操作〔MDB（WS-R）〕

サービスアダプタ定義画面での操作〔SessionBean〕

サービスアダプタ定義画面での操作〔Webサービス〕

サービスアダプタ定義画面での操作〔カスタムアダプタ〕

サービスアダプタの稼働状況確認を要求するサービスリクエスタの作成（Webサービス・JAX-WSエンジン）

サービスアダプタの稼働状況確認を要求するサービスリクエスタの作成（Webサービス・SOAP通信基盤）

サービスアダプタの新規追加（MDB（WS-RまたはDBキュー）の場合）

サービスアダプタの新規追加（SessionBeanの場合）

サービスアダプタの新規追加（Webサービスの場合）

サービスアダプタの接続先情報を動的に変更する例

サービスアダプタを作成する

サービスアダプタを新規に追加する

サービスクラスを生成する

サービスのエミュレーションの設定

サービスの概要インターフェースを検討する

サービスの自動エミュレーション

サービスの手動エミュレーション

サービスの詳細インターフェースを検討する

サービス部品〔用語解説〕

サービス部品からユーザ定義例外以外のエラーがリターンした場合（ビジネスプロセスを使用するとき）

サービス部品からユーザ定義例外のエラーがリターンした場合（ビジネスプロセスを使用するとき）

サービス部品電文

サービス部品電文〔用語解説〕

サービス部品電文を作成する（DBアダプタ電文の場合）

サービス部品電文を作成する（MDB（WS-RまたはDBキュー）の場合）

サービス部品電文を作成する（SessionBeanの場合）

サービス部品電文を作成する（Webサービスの場合）

サービス部品に障害の要因がある場合

サービス呼出アクティビティ

サービスリクエスタ

サービスリクエスタ〔用語解説〕

サービスリクエスタ（標準の同期受付（SessionBean））の作成手順

サービスリクエスタ（標準の同期受付（Webサービス））の作成手順（JAX-WSエンジン）

サービスリクエスタ（標準の同期受付（Webサービス））の作成手順（SOAP通信基盤）

サービスリクエスタ（標準の非同期受付（MDB（DBキュー）））の作成手順

サービスリクエスタ（標準の非同期受付（MDB（WS-R）））の作成手順

サービスリクエスタ（ユーザ定義受付（Webサービス））の作成手順（JAX-WSエンジン）

サービスリクエスタ（ユーザ定義受付（Webサービス））の作成手順（SOAP通信基盤）

サービスリクエスタが使用するプロトコルと標準受付およびユーザ定義受付の種類

サービスリクエスタ作成の概要

サービスリクエスタのエミュレーション

サービスリクエスタのエミュレーション手順

サービスリクエスタのエミュレーションの流れ

サービスリクエスタの作成

作業フォルダ〔用語解説〕

作業フォルダと中間ファイルの作成

作業フォルダを削除する

作業フォルダを参照する

削除できないアダプタ

削除できないビジネスプロセス

参照できるHCSCコンポーネントの情報

サンプルプログラム〔カスタムアダプタ開発フレームワーク〕

(し)

システム構成定義〔用語解説〕

システム全体と開発環境の関係

実行環境〔用語解説〕

実行環境プロパティファイル

実行履歴（TP1/RPC受付）

実装方式を決定する

指定した値を代入する

指定文字列の有無，または指定文字列の開始を調査する

自動マッピング時の類似度の判定

終了アクティビティ

出力前の確認事項

順次処理アクティビティ

障害情報の取得（FTPアダプタ）

障害情報の取得（FTPインバウンドアダプタ）

障害情報の取得（FTP受付）

障害情報の取得（TP1/RPC受付）

障害情報の取得（カスタム受付）

障害情報の取得（ファイル操作アダプタ）

条件によって異なる値を出力する

小数点以下の端数を処理する

使用するSOAPモード

証明書〔用語解説〕

上流設計ツール利用時の前提事項

上流設計ツール利用時のトラブルシューティング

上流設計ツールを利用したシステム開発の概要

上流設計ツールを利用したシステム開発の流れ

上流設計ツールを利用したシステムの開発

上流設計ツールを利用したシステムの開発例

(す)

数値演算ファンクション

数値フォーマット変換ファンクション

数値を演算する

数値をフォーマット変換する

スコープアクティビティ

スタブを取得する

スタブを生成する〔標準の同期受付（Webサービス）〕

スタブを生成する〔ユーザ定義受付（Webサービス）〕

ステータスの永続化

ステップ実行および再開

(せ)

制御コネクション接続タイムアウト（FTPアダプタ）

性能解析トレース（FTPアダプタ）

性能解析トレース（FTPインバウンドアダプタ）

性能解析トレース（FTP受付）

性能解析トレース（TP1/RPC受付）

性能解析トレース（ファイル操作アダプタ）

セキュアプロトコルによる暗号化・認証

設計情報として出力できる情報

設計情報の出力

設計情報の出力方法

接続できるマッピング線の数

セパレータを設定する

選択条件ノードを選択して選択条件を設定する

選択ファンクション

前提条件

(そ)

相関セット

相関セット〔用語解説〕

相関セットによるプロセスインスタンスの識別

相関セットの定義

相関セットの定義方法

相関セットの有効範囲

相関セットを利用した定義の例

相関セットを割り当てられるアクティビティ

送受信後のファイルサイズ確認

送受信後のファイルサイズ確認

送信用共用キューを作成する

総和ファンクション

そのほかの障害要因の特定方法（実行履歴の追跡）

(タ行)

(た)

待機アクティビティ

待機時間として指定できる文字列

代入アクティビティ

タイマ管理

タイムアウト時間の設定方法（TP1/RPC受付）

タイムアウトの監視〔FTPインバウンドアダプタ〕

タイムアウトの監視〔FTP受付〕

単純内容要素

単純内容要素を設定する

(て)

定義済みアダプタを利用してアダプタを追加する

定義済みビジネスプロセスを利用してビジネスプロセスを追加する

定義の流れ〔アダプタ〕

定義の流れ〔ビジネスプロセス〕

定義の流れ〔ユーザ定義受付〕

停止から削除までの処理の流れ

定数ファンクション

データコネクション接続タイムアウト（FTPアダプタ）

データコネクション接続のタイムアウト（FTPインバウンドアダプタ）

データ受信のタイムアウト（FTPインバウンドアダプタ）

データ送信のタイムアウト（FTPインバウンドアダプタ）

データ転送・取得タイムアウト（FTPアダプタ）

データベースとCosminexus RMの使用有無

データベースとCosminexus RMの使用有無を確認する

データ変換

データ変換〔用語解説〕

データ変換アクティビティ

データ変換基盤〔用語解説〕

データ変換時の構造変換スキップ機能の指定

データ変換定義

データ変換定義

データ変換定義〔用語解説〕

データ変換に必要なファイルおよび定義

データ変換の定義

データ変換の定義手順

テスト環境のアンセットアップ

テスト環境の運用に必要な情報

テスト環境のカスタマイズ

テスト環境の簡易セットアップ

テスト環境の起動と停止

テスト環境のセットアップ

テスト環境の前提ソフトウェア

デバッグの流れ

転送キューを作成する

転送前／転送後またはリスト前／リスト後に実行するFTPコマンドの管理

転送履歴ログ（FTPインバウンドアダプタ）

転送履歴を取得する

電文の実行履歴を削除する

電文の種類

電文の流れ

電文フォーマット

電文フォーマット〔用語解説〕

電文フォーマット（XMLフォーマット定義ファイル）の作成方法

電文フォーマット（バイナリフォーマット定義ファイル）の作成方法

電文フォーマット定義ファイル

電文フォーマット定義ファイル〔用語解説〕

電文フォーマット定義ファイルの作成

電文フォーマットとデータ変換

電文フォーマットの作成

電文フォーマットの種類

電文フォーマットの変更

電文フォーマットを変更した場合の定義手順

(と)

同時実行数の設定方法（TP1/RPC受付）

トラストストア〔用語解説〕

トラブルシューティング

トランザクションタイムアウト時間の設定方法（TP1/RPC受付）

(ナ行)

(の)

ノード〔用語解説〕

ノード・タスクを詳細化する

ノード条件を設定する

ノード数取得ファンクション

ノード数を代入する

ノード調査ファンクション

ノードの有無を調査する

ノード名取得ファンクション

ノード名を代入する

(ハ行)

(は)

排他取得タイムアウト（FTPアダプタ）

バイナリデータを作成する

バイナリデータを受信用共用キューに設定する

バイナリフォーマット定義ファイル

バイナリフォーマット定義ファイル〔用語解説〕

バイナリフォーマット定義ファイルからXMLスキーマファイルの生成

バイナリフォーマット定義ファイルの作成の流れ

バイナリフォーマット定義ファイルの生成方法

バイナリフォーマット定義ファイルのデータ型

バイナリフォーマット定義ファイルの文字コードの種類

バイナリフォーマット定義ファイルを検証する

バイナリフォーマット定義ファイルを新規作成する

バイナリフォーマット定義ファイルを編集する

配備〔用語解説〕

配備から開始までの処理の流れ

配備済みのHCSCコンポーネントを削除する

配備済みのTP1/RPC受付を削除する

配備定義

配備定義〔用語解説〕

配備できるクラスタ（または単一のHCSCサーバ）

ハイレベル・ビジネスプロセスを作成する

端数処理ファンクション

パッケージング

パッケージング〔用語解説〕

パッケージングから配備定義までの流れ

パッケージングと配備定義

パラメタを設定する

パラメタを設定する〔標準の同期受付（SessionBean）〕

パラメタを設定する〔標準の同期受付（Webサービス）〕

パラメタを設定する〔標準の非同期受付（MDB（DBキュー））〕

パラメタを設定する〔標準の非同期受付（MDB（WS-R））〕

(ひ)

非公開〔用語解説〕

ビジネスプロセス〔用語解説〕

ビジネスプロセスおよびアクティビティの定義情報を変更する

ビジネスプロセス基盤〔用語解説〕

ビジネスプロセス全体の定義に関連する要素の変換〔BPEL1.1〕

ビジネスプロセス全体の定義に関連する要素の変換〔BPEL2.0〕

ビジネスプロセスに障害の要因がある場合

ビジネスプロセスのアクセス制御

ビジネスプロセスの概要を設計する

ビジネスプロセスの検証

ビジネスプロセスの再実行を要求するサービスリクエスタの作成（SessionBean）

ビジネスプロセスの再実行を要求するサービスリクエスタの作成（Webサービス・JAX-WSエンジン）

ビジネスプロセスの再実行を要求するサービスリクエスタの作成（Webサービス・SOAP通信基盤）

ビジネスプロセスの削除

ビジネスプロセスの追加

ビジネスプロセスの定義

ビジネスプロセスの定義後にユーザ定義受付を定義する

ビジネスプロセスの定義情報を変更する

ビジネスプロセスのデバッグ

ビジネスプロセスのデバッグ

ビジネスプロセスのデバッグの開始

ビジネスプロセスのデバッグの終了

ビジネスプロセスのデバッグの準備

ビジネスプロセスの内容の定義

ビジネスプロセスの編集

ビジネスプロセスの保存

ビジネスプロセスをインポートする

ビジネスプロセスを出力する

ビジネスプロセスを詳細化する

ビジネスプロセスを新規に追加する

ビジネスプロセスを新規に追加する〔BPELファイルのインポート〕

ビジネスプロセスを新規に追加する〔未定義のビジネスプロセス〕

ビジネスプロセスを定義する前にユーザ定義受付を定義する

一つの文字列から一部分の文字列を取り出す

秘密鍵〔用語解説〕

評価版からの移行

標準受付〔用語解説〕

標準受付を開始する

標準受付を停止する

標準電文

標準電文〔用語解説〕

標準電文フォーマット〔用語解説〕

標準電文を作成する

標準の同期受付（SessionBean）に要求を出すサービスリクエスタ

標準の同期受付（Webサービス）に要求を出すサービスリクエスタ（JAX-WSエンジン）

標準の同期受付（Webサービス）に要求を出すサービスリクエスタ（SOAP通信基盤）

標準の非同期受付（MDB（DBキュー））に要求を出すサービスリクエスタ

標準の非同期受付（MDB（WS-R））に要求を出すサービスリクエスタ

標準プロトコル以外のシステムとの連携

(ふ)

ファイルアダプタ〔用語解説〕

ファイル操作アダプタ

ファイル操作アダプタ〔用語解説〕

ファイル操作アダプタ定義ファイル

ファイル操作アダプタでサポートするオペレーション

ファイル操作アダプタとは

ファイル操作アダプタの応答電文フォーマット

ファイル操作アダプタの概要

ファイル操作アダプタの設定

ファイル操作アダプタの設定の流れ

ファイル操作アダプタの定義情報を変更する

ファイル操作アダプタの定義ファイルを作成する

ファイル操作アダプタの電文フォーマット

ファイル操作アダプタの要求電文フォーマット

ファイル操作アダプタを削除する

ファイル操作アダプタを追加する

ファイル操作アダプタを保存する

ファイル送受信時に使用するフォルダの指定

ファイル変換オペレーション使用時の注意事項

ファイル変換オペレーションでサポートするファイル形式

ファイル変換オペレーションの機能

ファイル変換オペレーションの処理方式

ファンクション〔用語解説〕

ファンクションを削除する

ファンクションを使用した値の加工

フォーマット情報を設定する〔CSV以外の形式の場合〕

フォーマット情報を設定する〔CSV形式の場合〕

フォーマットの変換方法〔DBアダプタで取得したデータのフォーマット変換例〕

フォルトが発生した場合にフォルト電文を返す例

フォルト処理を定義する

フォルト送出アクティビティ

複合内容要素

複合内容要素を設定する

複数のノードセットのノードの数値を合計する

複数の文字列を連結する

部分文字列取得ファンクション

ブレークポイントの条件設定を変更する

ブレークポイントの設定

ブレークポイントをエクスポート/インポートする

ブレークポイントを削除する

ブレークポイントを追加する

ブレークポイントを無効にする

プロジェクトの管理

プロジェクトを削除する

プロジェクトを作成する

プロセスインスタンス〔用語解説〕

プロセスインスタンスの識別

プロセスインスタンスの実行履歴を削除する

プロセスの属性を設定する

プロトコルコンバータJARファイルの作成

プロトコルコンバータインターフェース〔カスタムアダプタ開発フレームワークのAPI〕

プロトコルコンバータからの操作に関するトラブルシューティング

プロトコルコンバータ用独自定義ファイル

プロパティを設定する

分岐アクティビティ

(へ)

並列処理アクティビティ

ヘッダ要素およびレコード要素の構成要素を設定する

ヘッダ要素およびレコード要素の出現回数を設定する

変換先ノードの要素から候補を選択して自動でマッピングする

変換テーブルの作成

変換テーブルの保存

変換テーブルを利用して値を変換する

変換できるCOBOL登録集原文ファイルの記述形式

変換ファンクション〔用語解説〕

変換ファンクション定義ファイル〔用語解説〕

変換ファンクション定義ファイルの作成

変換元ノードの値にある値を付加する

変換元ノードの値を加工して変換先ノードにマッピングする

変換元ノードの値を倍にする

変換元ノードの値を変換先ノードに直接マッピングする

変換元ノードの範囲と変換先ノードの範囲を指定して自動でマッピングする

編集できる定義ファイル

変数

変数・相関セットの確認

変数・相関セットの定義

変数の型

変数の更新

変数の種類

変数の定義

変数の定義方法

変数の表示

変数を割り当てられるアクティビティ

(ほ)

保守用ログ（FTPアダプタ）

保守用ログ（FTPインバウンドアダプタ）

保守用ログ（ファイル操作アダプタ）

補償ハンドラの使用

(マ行)

(ま)

マッピング〔用語解説〕

マッピング情報

マッピングする

マッピング線とファンクションを見やすくする

マッピング線を削除する

マッピング対象とマッピング対象外

マッピング定義

マッピング定義のコピー

マッピング定義の登録

マッピング定義の保存

マッピング定義をコピーする

マッピング定義をコピーする流れ

マッピング定義をコピーする場合の注意事項

マッピングできるノードおよびファンクションの対応

マッピングの条件

マッピングの注意事項

マッピング元の表示形式

マッピングを取り消す

(み)

ミドルレベル・ビジネスプロセスを作成する

(む)

無操作アクティビティ

(め)

メッセージインターフェース〔カスタムアダプタ開発フレームワークのAPI〕

メッセージ共通ID

メッセージのスキーマを登録する

メッセージ変換とシステム例外処理を追加する

メッセージログ（FTPアダプタ）

メッセージログ（FTPインバウンドアダプタ）

メッセージログ（TP1/RPC受付）

メッセージログ（ファイル操作アダプタ）

(も)

文字コード変換UOC〔用語解説〕

文字コード変換UOCのjarファイルの開発

文字コード変換UOCの実装例

文字コード変換UOCを使用したファイルの変換

文字コード変換UOCを使用するための設定

文字コード変換UOCを利用した文字コード変換

文字数取得ファンクション

文字列調査ファンクション

文字列の空白を除去する

文字列の文字数を代入する

文字列連結ファンクション

問題発生個所の切り分け方

(ヤ行)

(ゆ)

ユーザが作成した任意のJavaプログラムを呼び出す

ユーザ定義受付

ユーザ定義受付〔用語解説〕

ユーザ定義受付（Webサービス）に要求を出すサービスリクエスタ

ユーザ定義受付のWSDL作成時の注意事項

ユーザ定義受付の概要

ユーザ定義受付の検証

ユーザ定義受付の削除

ユーザ定義受付の情報の変更

ユーザ定義受付の追加

ユーザ定義受付の定義

ユーザ定義受付の内容の確認

ユーザ定義受付の保存

ユーザ定義受付を新規に追加する

ユーザ定義受付を追加する

ユーザ電文〔用語解説〕

ユーザ電文トレース（TP1/RPC受付）

(よ)

要求電文

要求電文〔用語解説〕

要求電文の形式〔DBアダプタ〕

要求電文を作成する

要求電文を作成する〔標準の同期受付（SessionBean）〕

要求電文を作成する〔標準の同期受付（Webサービス）〕

要求電文を作成する〔標準の非同期受付（MDB（DBキュー））〕

要求電文を作成する〔標準の非同期受付（MDB（WS-R））〕

用語解説

要素を定義する（CSV以外の形式の場合）

要素を定義する（CSV形式の場合）

(ラ行)

(ら)

ライブラリJARファイルの作成

(り)

リクエストIDの生成

リクエストトレース（TP1/RPC受付）

リクエストの送信

リストコマンドオプション定義ファイル

リストコマンドオプションの設定によるLIST／NLSTコマンドの実行

リソースアダプタ間共通ログ（FTPインバウンドアダプタ）

リポジトリ〔用語解説〕

リポジトリの管理

リポジトリの指定

リポジトリの初期化

リポジトリの設定

リポジトリの変更

リポジトリをインポートする

リポジトリをインポートする

リポジトリをエクスポートする

リポジトリを更新する

リポジトリを設定する

利用できるサービス部品の種類と適用範囲

(る)

類似度の判定方法

ルートアプリケーション情報

ルート要素を設定する〔CSV以外の形式の場合〕

ルート要素を設定する〔CSV形式の場合〕

ルート要素を変更する

(れ)

例外クラス〔カスタムアダプタ開発フレームワークのAPI〕

例題〔DBアダプタで取得したデータのフォーマット変換例〕

連携パスを設定して各要素のくり返し処理を連動させる

(ろ)

ローカル定義の単純内容要素を構成要素として設定する

ローカル変数

■ 商標類

AIXは，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
AIX 5Lは，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
AMDは，Advanced Micro Devices, Inc.の商標です。
Borlandのブランド名および製品名はすべて，米国Borland Software Corporationの米国およびその他の国における商標または登録商標です。
HP-UXは，Hewlett-Packard Companyのオペレーティングシステムの名称です。
Internet Explorerは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Itaniumは，アメリカ合衆国およびその他の国におけるIntel Corporationの商標です。
iWayおよびiWay Softwareは，Information Builders, Inc.の米国およびその他の国における登録商標です。
J2EEは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
Javaは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
JDBCは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
JDKは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
Linuxは，Linus Torvalds氏の日本およびその他の国における登録商標または商標です。
Microsoftは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
MyEclipseは，米国Genuitec社の商品名称です。
OMG，CORBA，IIOP，UML，Unified Modeling Language，MDA，Model Driven Architectureは，Object Management Group, Inc.の米国及びその他の国における登録商標または商標です。
ORACLEは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
Oracle及びOracle 10gは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
Oracle及びOracle9iは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
Oracle及びOracle Database 11gは，Oracle Corporation 及びその子会社，関連会社の米国 及びその他の国における登録商標または商標です。
Process Modelerは，スイスitp-commerce Ltd.の商品名称です。
Red Hatは，米国およびその他の国でRed Hat, Inc. の登録商標もしくは商標です。
SOAP（Simple Object Access Protocol）は，分散ネットワーク環境においてXMLベースの情報を交換するための通信プロトコルの名称です。
UNIXは，The Open Groupの米国ならびに他の国における登録商標です。
Visioは，米国およびその他の国における米国Microsoft Corporationの登録商標です。
W3Cは，World Wide Web Consortiumの商標（多数の国において登録された）です。
WebSphereは，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
Windowsは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Vistaは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Eclipseは，開発ツールプロバイダのオープンコミュニティであるEclipse Foundation, Inc.により構築された開発ツール統合のためのオープンプラットフォームです。
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).