プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle B2Bユーザーズ・ガイド
12c (12.2.1.2.0)
E82782-02
目次へ移動
目次
索引へ移動
索引

前
前へ
次
次へ

Q 非標準文字のオーバーライド

この付録では、Oracle B2BインスタンスのXEngineエンジンで使用できる、デフォルトの文字をオーバーライドする方法について説明します。

この付録の内容は次のとおりです。

Q.1 概要

XEngineによって、Oracle B2Bは、EDI、X12およびHL7ドキュメントの、ネイティブ形式からXML形式への変換、およびXML形式からネイティブ形式への変換を実行できます。

特定のドキュメント標準でXEngineが使用できるシステム文字またはデフォルト文字は、$ORACLE_HOME/soa/thirdparty/soa-infra/edifecs/XEngine/config/charsetsにあります。たとえば、EDI X12の場合のファイル名はx12.csで、EDI EDIFACTの場合のファイル名はedifact.csです。

XEngineが提供するこれらのファイルは編集しないことをお薦めします。しかし、システムで使用されるデフォルト文字をオーバーライドするには、Oracle Document Editorを使用します。

Q.2 XEngineを使用した文字のオーバーライド

システムで使用されるデフォルト文字をオーバーライドするには、Oracle Document Editorを使用してuser.csファイルを作成する必要があります。

user.csファイルが作成されない場合、次のエラー・メッセージが表示されます。

Error Brief : A data element contains characters not listed in the allowed character set.

user.csファイルを作成するには:

  1. Oracle Document Editorで、「ツール」タブの文字セット・レジストリにアクセスします。

  2. オーバーライドする文字の標準/バージョン/DocTypeを選択し、「重複」ボタンをクリックして、標準/バージョン/DocTypeの複製を作成します。

  3. この新しいエントリのコンテンツを編集して文字を追加し(EDI X12 V4010 850のÿなど)、この新しいエントリをuser.csというファイルにエクスポートします。

user.csファイルを編集するには:

  1. Windowsでワードパッドを使用してuser.csファイルを開きます。

    EDIFACT D98A ORDERSのuser.csファイルには、次のセクションがあります。

    Key="EDIFACT:*:*:*:UNOB" 
    

    非標準文字をサポートする必要があるDocType/バージョン固有となるように、このファイルをさらに編集する必要があります。

  2. セクションKey="EDIFACT:*:*:*:UNOB"Key="EDIFACT:*:98A:ORDERS:UNOB"に変更します。

    この変更が行われない場合、XEngineはuser.csのコンテンツを選択せず、edifact.cs内のデフォルト設定をオーバーライドしません。

    X12の例では、Key="X12:*:*:*:*"Key="X12:*:V4010*:850:*"に変更する必要があり(V4010*はV4010VICSとV4010の両方に対応します)、Key="*:*:*:*:*""GuidelineType:Standard:Version:DocType:CharsetName"にマッピングされます。

    多くの場合、変更する必要があるのはバージョンとDocTypeのどちらかのセクション、または両方のセクションのみです。

  3. 実行時に使用するために、user.csファイルを$ORACLE_HOME/soa/thirdparty/soa-infra/edifecs/Commonディレクトリに保存します。

Q.3 オーバーライド: 例

これは非標準文字をオーバーライドする方法の例です。

例として、文字ÿを850.xml XDATAファイルに挿入します。デフォルトでは、この文字はデフォルトのx12.csファイルではサポートされません。「XEngineを使用した文字のオーバーライド」に示されている手順に従ってuser.csを生成し、これを$ORACLE_HOME/soa/thirdparty/soa-infra/edifecs/Commonに置く必要があります。

AQを使用するアウトバウンドの場合、プロパティ・ファイル内でencoding=ISO-8859-1を使用することで、正しいエンコーディングが使用され、データベースへの送信でÿ文字が保持されます。Oracle B2B UIでアプリケーション・メッセージ・ペイロードを表示し、文字ÿがランダム文字ではなく、正しく表示されるかどうかを調べることによって、これが正しく行われることを確認できます。

検証が有効で、user.csファイルがある場合、850.xmlが適切に処理されます。user.csがない場合、次のエラー・メッセージが表示されます。

"Error Brief : A data element contains characters not listed in the allowed character set." 

最後に、b2b.encoding=ISO-8859-1プロパティがFusion Middleware Enterprise Management Controlコンソールで設定されている場合、Emacsエディタで出力ファイルを表示すると、文字ÿが表示されます。b2b.encodingが設定されていない場合、デフォルトのUTF-8文字セットが使用されます。この場合は、Emacsエディタを使用して、ÿではなくÿという2つの文字が表示されます。これは、UTF-8コード・ページでは文字ÿが2バイトにエンコードされるためです。

850.xmlに挿入されたマルチバイトの文字セットでもテストできます(マルチバイト文字が正しくエンコードされないことを確認します)。さらに、データベースはマルチバイトの文字セットをサポートする必要があります。次のSQL問合せを発行して、データベースの文字セットを確認できます。

select value from NLS_DATABASE_PARAMETERS where parameter = 'NLS_CHARACTERSET';