XML スキーマファイル (BOR) を編集するには

この文書では、ビジネスオブジェクトのメソッドの引数を構成する XML スキーマを編集する方法を説明します。

概要

メソッドを生成したり、マニュアルで作成したメソッドを保存したりすると、そのメソッドの引数に対する XML スキーマファイルが生成されます。これらのファイルに、引数が実際に保存されます。

ビジネスオブジェクトメソッド引数 (ttadv7113m000) セッションの適切なメニューからXML スキーマの生成コマンドを使用して、入力済みの XML スキーマファイルを生成できます。ただし、すべてが自動的に生成されるわけではないので、このファイルをマニュアルで編集する必要があります。

特定の引数について (入力された) XML スキーマが生成されると、以下の処理が実行されます。

  • スキーマファイルの <RequestDataArea> グループの後に、個別宣言要素として、公開属性が追加されます。名前情報およびドメイン情報が保存されます。
  • ビジネスオブジェクトが、RequestDataArea 要素の子として追加されます。
  • ビジネスオブジェクトの保護階層に構成要素が存在する場合は、その構成要素がビジネスオブジェクト要素の子としてリンクされます。
  • 構成要素が存在する場合、公開属性が構成要素の子として追加されます。構成要素が存在しない場合、公開属性はビジネスオブジェクト要素の子として追加されます。
注意

このプロセスでは、構成要素の構造は考慮されません。すべての構成要素が、ビジネスオブジェクト要素の下の同じレベルに配置されます。

入力された XSD 構造の例
<xs:element name="CreateRequest" type="CreateRequestType"/>

<xs:simpleType name="Attribute1DT">

    <xs:restriction base="xs:long">

        <xs:totalDigits value="10"/>

    </xs:restriction>

</xs:simpleType>

<xs:simpleType name="Attribute2DT">

    <xs:restriction base="xs:string">

        <xs:maxLength value="5"/>

    </xs:restriction>

</xs:simpleType>

<xs:simpleType name="Attribute3DT">

    <xs:restriction base="xs:string">

        <xs:maxLength value="9"/>

    </xs:restriction>

</xs:simpleType>

<xs:simpleType name="Attribute4DT">

    <xs:restriction base="xs:string">

        <xs:maxLength value="9"/>

    </xs:restriction>

</xs:simpleType>

<xs:simpleType name="Attribute5DT">

    <xs:restriction base="xs:string">

        <xs:maxLength value="9"/>

    </xs:restriction>

</xs:simpleType>

<xs:simpleType name="Attribute6DT">

    <xs:restriction base="xs:string">

        <xs:maxLength value="9"/>

    </xs:restriction>

</xs:simpleType>

<xs:simpleType name="Attribute7DT">

    <xs:restriction base="xs:string">

        <xs:maxLength value="9"/>

    </xs:restriction>

</xs:simpleType>

<xs:complexType name="CreateRequestType">

       <xs:sequence>

           <xs:element name="ControlArea" type="bo:CreateRequestControlArea" minOccurs="0"/>

           <xs:element name="DataArea" type="bo:CreateRequestDataArea"/>

       </xs:sequence>

    </xs:complexType>

</xs:complexType>

<xs:complexType name="CreateRequestDataAreaType">

    <xs:sequence>

        <xs:element name="BusinessObject" type="CreateRequestBusinessObjectType"/>

    </xs:sequence>

</xs:complexType>

<xs:complexType name="CreateRequestBusinessObjectType">

    <xs:sequence>

        <xs:element name="Component1" type="CreateRequestComponent1Type"/>

        <xs:element name="Component2" type="CreateRequestComponent2Type"/>

    </xs:sequence>

</xs:complexType>

<xs:complexType name="CreateRequestComponent1Type">

    <xs:sequence>

        <xs:element name="Attribute1" type="Attribute1DT" minOccurs="0"/>

        <xs:element name="Attribute2" type="Attribute2DT" minOccurs="0"/>

        <xs:element name="Attribute3" type="Attribute3DT" minOccurs="0"/>

    </xs:sequence>

</xs:complexType>

<xs:complexType name="CreateRequestComponent2Type">

    <xs:sequence>

        <xs:element name="Attribute4" type="Attribute4DT"/>

        <xs:element name="Attribute5" type="Attribute5DT" minOccurs="0"/>

        <xs:element name="Attribute6" type="Attribute6DT" minOccurs="0"/>

        <xs:element name="Attribute7" type="Attribute7DT" minOccurs="0"/>

    </xs:sequence>

</xs:complexType>

<xs:complexType name="CreateRequestControlArea">

       <xs:sequence>

           <xs:element name="ApplicationControlData" type="bo:CreateRequestApplicationControlData" minOccurs="0"/>

           <xs:element name="processingScope" type="bo:processingScopeDT" default="request" minOccurs="0"/>

       </xs:sequence>

</xs:complexType>

<xs:complexType name="CreateRequestApplicationControlData">

       <xs:sequence/>

    </xs:complexType>

    <xs:simpleType name="processingScopeDT">

        <xs:restriction base="xs:string">

             <xs:enumeration value="not_applicable"/>

             <xs:enumeration value="request"/>

             <xs:enumeration value="business_entity"/>

             <xs:enumeration value="business_entity_component"/>

        </xs:restriction>

</xs:simpleType>

マニュアル修正

生成された XML スキーマは、マニュアルで修正する必要があります。これは、すべてを自動で行うことはできないため、また、外部接続についてすべての属性が重要なわけではないためです。変更は、XML スキーマの構造と内容の両方に関連します。以下のセクションで変更の詳細を説明します。

構造
重要

以下は、XML スキーマの構造に関する重要なルールです。

「ビジネスオブジェクトのすべての構成要素は、XML スキーマにおいてグループ要素として存在しなくてはならない」

たとえば、要素 「Order」 には、繰り返しのサブ要素 「Line」 があります。XSD ルールによれば、「Header」 構成要素の属性は 「Order」 要素に直接リンクでき、「Line」 の繰返し属性は繰り返される 「Line」 要素にリンクする必要があります。サブ要素 「Header」 は、オーダ固有の属性を 「Header」 構成要素にマッピングするために挿入できます。差異の可視化については、次の図を参照してください。どちらの構成も可能ですが、最初の構成が優先されます。

ビジネスオブジェクト 「Order」、XSD ルールにしたがって有効
OrderorderNumber
businessPartner
country
Line*lineNumber
quantity
unitOfMeasure

 

 

ビジネスオブジェクト 「Order」、特定ルールにしたがって有効
OrderHeaderorderNumber
businessPartner
country
Line*lineNumber
quantity
unitOfMeasure

 

一般チェック

すべてのメソッドについて次の変更が必要です。

  • 繰り返し要素は、maxOcc プロパティ/属性を unbounded に設定する必要があります。
  • 必須構成要素のグループ要素は、minOcc プロパティ/属性を 1 に設定する必要があります。
  • 必須でない構成要素のグループ要素は、minOcc プロパティ/属性を 0 に設定する必要があります。
  • 親構成要素ですでに定義済の識別フィールドは、サブ構成要素に属する要素から削除する必要があります。たとえば、属性 orderNumber は 「ヘッダ」 要素に存在しますが、「ライン」 要素で繰り返してはなりません。
メソッドごとの変更

以下のセクションでは、各特定メソッドごとの変更について説明します。

Create

要求引数について、次の変更が必要です。

  • ビジネスオブジェクト要素が繰り返される場合、該当構成要素のビジネスオブジェクトに Create メソッドがないグループを削除します。
  • サブ構成要素が繰り返され、必須の場合、親構成要素の属性と同じレベルになるように、右に移動します。
  • 以下の不要な属性を削除します。

    • DAL2 論理を使用して入力される属性
    • すべての読取専用の属性
    • すべての派生フィールド。DAL2 フック fieldX.is.derived を参照してください。条件付き派生フィールドはそのままにしておくことができます。

応答引数の構造は、要求引数と同じでなくてはなりません。ただし、機能条件によってはその他の属性が必要な場合があります。それらはアプリケーション論理によってデフォルトで入力されます。

Change

Create メソッドを参照してください。Change メソッドの構造は Create メソッドと同じでなくてはなりません。属性も同じです。

Delete

要求引数について、次の変更が必要です。

  • ビジネスオブジェクト要素が繰り返される場合、該当構成要素のビジネスオブジェクトに Delete メソッドがないグループを削除します
  • サブ構成要素が繰り返され、必須の場合、親構成要素の属性と同じレベルになるように、右に移動します。
  • 識別する属性以外のすべての属性を削除します

応答引数の構造は、要求引数と同じでなくてはなりません。ただし、機能条件によってはその他の属性が必要な場合があります。それらは削除されたビジネスオブジェクトのテーブルフィールドを使用して入力されます。

List

要求引数では、filterAttributeList から、Read メソッドによって選択された関連ビジネスオブジェクトの属性を削除しなくてはなりません。どのビジネスオブジェクトが Read メソッドによって選択されているかは、st プログラムスクリプトの List 機能でチェックできます。また、フィルタで使用できないその他のすべての属性を削除する必要があります (記述タイプ属性など)。

応答引数について、次の変更が必要です。

  • ビジネスオブジェクト要素が繰り返される場合、「Unbounded」 に設定します
  • 構成要素がサブ構成要素の場合、親構成要素の属性と同じレベルになるように、右に移動します
  • 要素が必須でない場合は 「Optional」 に設定します。すべての必須要素が 「Optional」 に設定されていないことを確認します。
注意

List メソッドにおいて、応答 XSD はビジネスオブジェクトの構造を反映します。要求 XSD は、ビジネスオブジェクトの属性を有するフィルタ条件の定義についての指定属性および論理を含みます。

Show

要求引数では、filterAttributeList から、Read メソッドによって選択された関連ビジネスオブジェクトの属性を削除しなくてはなりません。どのビジネスオブジェクトが Read メソッドによって選択されているかは、st プログラムスクリプトの Show 機能でチェックできます。また、フィルタで使用できないその他のすべての属性を削除する必要があります (記述タイプ属性など)。

応答引数について、次の変更が必要です。

  • 構成要素がサブ構成要素の場合、親構成要素の属性と同じレベルになるように、右に移動します
  • 要素が必須でない場合は 「Optional」 に設定します。すべての必須要素が 「Optional」 に設定されていないことを確認します。
注意

Show メソッドは List メソッドと密接な関係があります。ただ、Show メソッドはビジネスオブジェクトのレコード表示を 1 つだけ取り出し、可能な場合は、オプションでサブ構成要素の複数のレコード表示を取り出します。

CreateRef

要求引数について、次の変更が必要です。

  • ビジネスオブジェクト要素が繰り返される場合、該当構成要素のビジネスオブジェクトに CreateRef メソッドがないグループを削除します
  • サブ構成要素が繰り返され、必須の場合、親構成要素の属性と同じレベルになるように、右に移動します。
  • 以下の属性以外のすべての属性を削除します

    • 識別する属性

応答引数の構造は要求引数と同じでなくてはなりません。また、要求引数の属性のみを使用する必要があります。その他の属性は必要ありません。これは、メソッドが参照テーブルでのみ動作し、ビジネスオブジェクトのその他のテーブルでは動作しないためです。参照テーブルの DAL においてその他の読取処理が追加されている場合のみ、その他の引数を使用できます。

DeleteRef

要求引数について、次の変更が必要です。

  • ビジネスオブジェクト要素が繰り返される場合、該当構成要素のビジネスオブジェクトに DeleteRef メソッドがないグループを削除します
  • サブ構成要素が繰り返され、必須の場合、親構成要素の属性と同じレベルになるように、右に移動します。
  • 識別する属性以外のすべての属性を削除します

応答引数の構造は、要求引数と同じでなくてはなりません。参照テーブルの属性のみが使用されます。参照テーブルの DAL においてその他の読取処理が追加されている場合のみ、その他の引数を使用できます。