先頭の SO と末尾の SI 文字を追加する
PIC G 形式の文字列の場合は、TI Project の文字列の [COBOL 定義] タブ (プロパティ ページ) の [先頭に SO と末尾の SI チェックを追加する] ボックスを選択して、先頭のシフトアウト (SO) 文字と末尾のシフトイン (SI) 文字を追加するようにトランザクション インテグレーター (TI) ランタイム環境に指示できます。
[先頭に SO と末尾の SI チェックを追加する] ボックスが選択されている場合、TI ランタイム環境では、2 バイト文字セット (DBCS) 文字列の記述に使用されるメインフレーム データ構造で 2 つの追加バイトが処理されます。 メインフレームに送信されるメッセージを書式設定すると、TI ランタイム環境では、先頭の SO バイトと末尾の SI バイトが追加されます。 メインフレームから受信したメッセージを解釈すると、TI ランタイム環境は先頭の SO バイトと末尾の SI バイトを破棄します。
PIC G 文字列の次元値は、周囲の SO および SI 文字の有無に関係なく、文字列内の 2 バイト DBCS 文字の数を常に指定します。
この自動 SO および SI 処理の使用は、クライアント アプリケーションでは非表示になります。 ただし、メインフレーム アプリケーションでは、適切な PIC X 宣言が PIC G 文字列の宣言を囲む必要があります。
TI プロジェクトでは、次のサンプル コードに示すように、周囲の SO バイトと SI バイトの適切な宣言が生成されます。
01 A-SOSI-WRAPPED-DBCS.
05 LEADING-SO-1 PIC X.
05 MY-DBCS-STRING PIC G(80).
05 LEADING-SI-1 PIC X.
TI Project の COBOL インポート ウィザードでは、先頭に SO バイトと末尾 SI バイトを追加するオプションは設定されていません。 言い換えると、COBOL インポート ウィザードでは、PIC G 文字列を囲む PIC X 宣言が存在する意味はありません。 既存のメインフレーム・トランザクション・プログラム (TP) が、PIC G ストリングをラップする SO および SI 文字の明示的な宣言を含む COBOL 宣言を使用する場合は、COBOL インポート・ウィザードによって作成されたインターフェースを手動で変更する必要があります。