ビジネス・オブジェクト定義内のアプリケーション固有の情報では、ビジネス・オブジェクトの処理方法に関するアプリケーション依存の指示をコネクターに提供します。メタデータ主導型コネクターはサポートするビジネス・オブジェクトの設計方法に関する仮定を行うため、ビジネス・オブジェクトに対する変更は、コネクターが変更されたビジネス・オブジェクトを正しく処理できるように、コネクターの規則に合致していなければなりません。したがって、Siebel アプリケーション固有のビジネス・オブジェクトを変更または作成する場合は、ビジネス・オブジェクト定義内のアプリケーション固有の情報がコネクターの期待する構文に合致しているかどうかを確認してください。
ここでは、Siebel ビジネス・オブジェクト、属性、および動詞に関するアプリケーション固有の情報について説明します。
ビジネス・オブジェクトのトップレベルにあるアプリケーション固有の情報では、Siebel ビジネス・オブジェクトの名前を指定します。例えば、親ビジネス・オブジェクト Siebel_BCAccount のオブジェクト・アプリケーション固有の情報では、以下に示 すように Siebel Account オブジェクトを指定します。
[BusinessObjectDefinition] Name = Siebel_BCAccount Version = 1.0.0 AppSpecificInfo = ON=Account;CN=Account
複数の無関係なビジネス・コンポーネントの例:
[BusinessObjectDefinition] Name = Siebel_BCInternalProduct Version = 1.0.0 AppSpecificInfo = CN=InternalProduct [BusinessObjectDefinition] Name = Siebel_BCProductDefect Version = 1.0.0 AppSpecificInfo = CN=ProductDefect [BusinessObjectDefinition] Name = Siebel_BOInternalProduct Version = 1.0.0 AppSpecificInfo = ON=InternalProduct [Attribute] Name = Siebel_BCInternalProduct Type = Siebel_BCInternalProduct ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo = [Attribute] Name = Siebel_BCProductDefect Type = Siebel_BCProductDefect ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo =
コネクターは、単純属性とコンテナー属性でアプリケーション固有の情報を使用します。ObjectEventId 属性については、アプリケーション固有のプロパティー・フィールドは空でなければなりません。
単純属性の場合、アプリケーション固有の情報は以下の表にリストされている名前値のペアから構成されています。名前値のペアは順序に依存せず、セミコロンで区切られます。
パラメーター | 説明 |
---|---|
FN = | Siebel ビジネス・コンポーネントの対応するフィールドの名前。 |
PLK = ...;Restrict=<field name>:Siebel GUI Name>,<field name>:Siebel GUI Name | Siebel のビジネス・コンポーネントは、ピック・リストを使用して多対 1 の関係に関連づけることができます。ピック・リストを検索し、特定値を選んでフィールドに設定することができます。PickListKey は、Siebel 内にフィールドに関連するピック・リストがある場合に設定されます。PickListKey は、ピック・リスト・レコードを取得するために検索指定で使用される、ピック・リスト内のフィールドを識別します。場合によっては、複数の属性に基づいて PickList 値を選択します。そのような場合、ピック・リストを複数のフィールドで制限することができます。 |
以下の各セクションでは、これらのパラメーターの使用例を示します。
単純ビジネス・オブジェクト属性のアプリケーション固有の情報では、Siebel ビジネス・コンポーネント内の対応するフィールドの名前を指定する必要があります。このためのアプリケーション固有の情報は次のとおりです。
FN=fieldname
例えば、Siebel_BCAccount ビジネス・オブジェクトで、Main Phone 属性のアプリケーション固有の情報は、Main Phone Number が Siebel Account ビジネス・コンポーネント内の対応するフィールドであることを指定します。ビジネス・オブジェクト属性のアプリケーション固有の情報を以下に示します。
Name = Main Phone Type = String IsKey = false AppSpecificInfo = FN=Main Phone Number
Siebel で、2 つのビジネス・コンポーネント間の外部キー関係はピック・リストで定義されます。関連付けられたピック・リストがフィールドにある場合、そのフィールドの PickList プロパティーと PickList の対応関係は 2 つのビジネス・コンポーネントの関係を定義します。PickList の対応関係における属性のうちの 1 つは通常、Account Id や Product Id などの ID です。
ビジネス・オブジェクトの単純属性では、関連づけられたピック・リストが Siebel ビジネス・コンポーネント・フィールドにある場合に、ビジネス・オブジェクト内の属性のアプリケーション固有の情報をコード化してこの情報をコネクターに与え、コネクターが属性を外部キーとして使用できるようにする必要があります。
ある属性にピック・リストを指定するには、ビジネス・オブジェクトに 2 つの属性を組み込む必要があります。第 1 の属性は関連するビジネス・コンポーネントの外部キー・フィールドを指定し、第 2 の属性はフィールド・プロパティーとしてピック・リストを持つビジネス・コンポーネント内のフィールドに対応します。2 つの属性が必要なのは、ピック・リストの関係がオブジェクト ID でなくオブジェクト名に基づいているためです。
ピック・リスト属性のアプリケーション固有の情報で、テキスト PLK を使用してこの属性がピック・リストであることを指定します。次に、ピック・リスト内のどのレコードを選択すべきかを識別するために、テキスト PLK=...;Restrict=<field name>:<Siebel GUI Name>,<field name>:Siebel GUI Name> を使用します。
例えば、Siebel_BCAsset ビジネス・オブジェクトを作成する際、このビジネス・オブジェクトに Siebel_BCInternalProduct ビジネス・オブジェクトへの外部キーとして属性を追加するとします。Siebel Asset Mgmt ビジネス・コンポーネント内の Product Name フィールドは Internal Product ビジネス・コンポーネントに対するピック・リストであるため、キーとピック・リストに追加する属性は異なる属性にします。属性の定義は、以下に示すようにビジネス・オブジェクト内で行えます。
[Key Attribute] Name = Id Type = String Cardinality = 1 IsForeignKey = true AppSpecificInfo = Product Id [PickList Attribute] Name = ProductName Type = string Cardinality = n AppSpecificInfo = FN=ProductName;PLK=Id
場合によっては、複数の属性に基づいて PickList 値を選択します。例えば、同じ名前の Account が複数ある場合、Account 名が唯一のピック・リスト値として設定されていれば、Contact 検索ではその名前の付いた最初の Account を取得します。正しいデータが検索されるようにするために、複数のフィールドでピック・リストを制限することができます。以下の例では、Contact ビジネス・オブジェクトが Account、Site、および City で制限されます。
[Key Attribute] Name = ContactId Type = String Cardinality = 1 AppSpecificInfo = FN=Id Name = Last_Name Type = String Cardinality = 1 AppSpecificInfo = FN=Last Name Name = First_Name Type = String Cardinality = 1 AppSpecificInfo = FN=First Name Name = Site Type = String Cardinality = 1 AppSpecificInfo = N/A Name = City Type = String Cardinality = 1 AppSpecificInfo = N/A Name = Account Type = String Cardinality = 1 AppSpecificInfo = FN=Account;PLK=Name;Restrict=Location:Site,City:City
ピック・リスト・フィールドを制限するための AppSpecificInfo は、以下の構文に従います。
Restrict=<field name>:<Siebel GUI name>,<field name>:<Siebel GUI name>
制限用フィールドの数は無制限です。Restrict パラメーターの後の属性間にはスペースを入れないでください。制限用フィールドはすべて、ビジネス・オブジェクトに対して属性として追加しなければならず、AppSpecificInfo を持っていてはなりません。これらの属性は、制限用フィールドのプレースホルダーの役割を果たします。
Retrieve で、アプリケーション固有の情報 PLK=Id は ProductName 属性がピック・リスト・ビジネス・コンポーネントに対応することを指定し、set パラメーターはコネクターがどのレコードをピックすべきかを ID の値で示すことを指定します。
ピック・リスト関係の中には、ピックされた子の作成を必要とするものがあります。例えば、Siebel_BCQuote 内の Account と Quote の間のピック・リスト関係があります。Create では、以下のように Quote ビジネス・コンポーネントに対する包含関係を使用して新しい Account ビジネス・コンポーネントを作成する必要があります。
[Business Object Definition] Name = Siebel_BCQuote Version = 7.0.0 Relationship = Containment AppSpecificInfo = ON=Quote;CN=Quote Name = Account Type = String AppSpecificInfo = FN=AccountId Name = Account Type = Siebel_BCAccount Relationship = Containment Cardinality = 1 IsForeignKey = false AppSpecificInfo = LFN=Account;PL=true;From=AccountId;To=AccountId [Siebel_BCAccount] Name = AccountId IsKey = true AppSpecificInfo = ...
ピック・リスト属性については、以下のビジネス処理に関するヒントに注意してください。
コンテナー属性の場合、アプリケーション固有の情報には以下の表にリストされている名前値のペアが含まれています。名前値のペアは順序は関係なく、セミコロンで区切られます。
パラメーター | 説明 |
---|---|
LFN = ...; | Siebel ビジネス・コンポーネントに関連する Multi Value Field Name。 |
MVL = ...; | MVL を Active に設定すると、1 対多の関係を指定したことになります。Inactive に MVL を設定することは、親オブジェクトと子オブジェクトの間に非アクティブな複数値リンクの関係があることを示します。つまり、親オブジェクトが複数値フィールドを持っていないということです。 |
PL = ... | PL を True に設定すると、それは多対 1 の関係があることを示します。 |
Assoc = ... | Assoc を True に設定すると、それは関係が交差テーブルを通じて多対多であることを示します。 |
From = ...; To = ... | これらは、To 属性を From 属性の値に設定するためのコネクターに対するプリプロセス命令です。From 属性は取り込む必要がありますが、True 属性はヌルのときのみ設定されます。これらの属性を含むオブジェクトには、1 対 1 の関係がなければなりません。これは Retrieve 操作で使用され、取り出す必要のある子レコードを指定します。 |
SF | ビジネス・オブジェクトの下にビジネス・コンポーネント構造のマスター詳細ビューを表示する単純リンク。SF はソース・フィールドを表します。 |
DF | ビジネス・オブジェクトの下にビジネス・コンポーネント構造のマスター詳細ビューを表示する単純リンク。DF は宛先フィールド (外部キー) を表します。 |
子ビジネス・オブジェクトを表すコンテナー属性のアプリケーション固有の情報では、親ビジネス・コンポーネントに関連する Multi-Value Field の名前を指定する必要があります。Multi-Value Field は、Siebel における親と子のビジネス・コンポーネント間の関係を定義する Multi-Value Link を表します。このためのアプリケーション固有の情報は次のとおりです。
LFN=multiValueFieldName
例えば、WebSphere Business Integration Server Expess Plus システムのビジネス・オブジェクト Siebel_BCContact には、子ビジネス・オブジェクト Siebel_BCBusinessAddress のコンテナー属性があります。このコンテナー属性のアプリケーション固有の情報では、Siebel Business Address ビジネス・コンポーネントへのリンクを含む Multi-Value Field として Street Address を指定します。
[Example of Container Attribute] Name = PrimaryAddress Type = Siebel_BCBusinessAddress ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = n IsKey = false IsForeignKey = false AppSpecificInfo = MVL=Active;LFN=Street Address
コンテナー属性のアプリケーション固有の情報には、フィールド名のほか、Siebel 内の親と子のビジネス・コンポーネント間の関係の型を定義するパラメーターを含めることができます。
関係型パラメーターを 0 に設定するのは無効です。関係型を false に設定する際は、そのパラメーターを含めないでください。
例えば、前のセクションで示した子ビジネス・オブジェクト Siebel_BCBusinessAddress のコンテナー属性には、Street Address が Siebel Account ビジネス・コンポーネントを Siebel Business Address ビジネス・コンポーネントにリンクする Multi Value Field であることを示すパラメーターを含めることができます。
[Example of Container Attribute] Name = PrimaryAddress Type = Siebel_BCBusinessAddress ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = n IsKey = false IsForeignKey = false AppSpecificInfo = MVL=Active;LFN=Street Address
ここに、子ビジネス・オブジェクト Siebel_BCOpportunity のもう一つの例を示します。このビジネス・オブジェクトには、Siebel_BCContact または Association に対して多対多の関係があります。この場合、Create 操作では、コネクターはコンテナーに取り込まれたビジネス・オブジェクト・フィールドを使用してビジネス・コンポーネントを検索します。コネクターは一致するオブジェクトを見つけると、そのオブジェクトを親ビジネス・コンポーネントに関連づけます。オブジェクトが見つからないと、エラーが記録され、ビジネス・オブジェクト要求は失敗します。
Name = Siebel_BCContact Version = 1.0.0 AppSpecificInfo = ON=Contact;CN=Contact Name = ContactId Type = String Cardinality = 1 MaxLength = 10 IsKey = true IsForeignKey = false IsRequired = false AppSpecificInfo = FN=Id Name = ... Name = ... Name = Siebel_BCOpportunity Type = Siebel_BCOpportunity ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = N MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo =LFN=Opportunity;Assoc=true
この例は、単純リンクの関係の場合です。この場合、Quote と Order Entry の間に単純リンクがあります。
Name = Siebel_BCQuote Version = 1.0.0 AppSpecificInfo = ON=Quote;CN=Quote Name = QuoteId Type = String Cardinality = 1 MaxLength = 10 IsKey = true IsFireignKey = false IsRequired - false AppspecificInfo = FN=Id Name = ... Name = ... Name = Siebel_BCOrderEntry Type = Siebel_BCOrderEntry ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = N MaxLength = 0 IsKey = true IsFireignKey = false IsRequired - false AppspecificInfo = SF=QuoteId;DF=QuoteId
属性アプリケーション固有の情報をコード化して、コネクターが属性の値を取得し、第 2 の属性が処理される前に別の属性にその値を指定することができます。この機能は、Retrieve 操作で主に検索する子のレコードを指定するために、コンテナー属性で使用します。
この機能を使用するには、ビジネス・オブジェクト定義内の属性アプリケーション固有の情報を編集して以下のテキストを組み込みます。
From=attribute;To=attribute;
属性パス値は、現行のビジネス・オブジェクト内の属性名とすることができます。以下の規則に注意してください。
例えば、Siebel_BCQuote ビジネス・オブジェクトに子ビジネス・オブジェクトSiebel _BCAccount が含まれている場合、Siebel_BCQuote オブジェクト内の属性は、ピック・リストのどのアドレスを検索するかを指定することができます。この例で、AccountId はキー属性、Siebel_BCAccount はピックされるオブジェクトです。コネクターは AccountId 属性の値を取得し、その値を使用して特定アカウントを検索します。子属性は、親ビジネス・オブジェクト内の属性の後で処理されます。次の例は、親ビジネス・オブジェクトから子ビジネス・オブジェクトへの属性の処理の流れを示しています。
[Siebel_BCQuote] Name = Account Type = String AppSpecificInfo = FN=Id Name = Account Type = Siebel_BCAccount Relationship = Containment Cardinality = 1 IsForeignKey = false AppSpecificInfo = LFN=Address;PL=true;From=AccountId;To=AccountId [Siebel_BCAccount] Name = AccountId IsKey = true AppSpecificInfo = ...
ピック・リストの関係の中には、同じトランザクション内のピックされた子オブジェクトの作成を必要とするものがあります。In WebSphere Business Integration Server Express Plus システムのビジネス・オブジェクトでは、親ビジネス・オブジェクトと子ビジネス・オブジェクトの間のピック・リスト関係は、ピックされたオブジェクトのキー属性および単一カーディナリティー・コンテナー属性の 2 つの属性で表されます。この属性集合を使用して、ピック・リスト・マップに含まれていないピック・リスト・ビジネス・コンポーネントのいくつかの属性またはすべての属性を検索することができます。
例えば、Quote と Opportunity との間のピック・リスト関係を指定するための 2 つの属性を含めるように、Siebel_BCQuote ビジネス・オブジェクトを設計することができます。以下に示すように、OpportunityId はキー属性、Opportunity はピック・リスト・オブジェクトです。
Name = Siebel_BCQuote Version = 1.0.0 AppSpecificInfo = ON=Quote;CN=Quote Name = ... Name = ... Name = OpportunityId Type = String Cardinality = 1 MaxLength = 10 IsKey = false IsForeignKEy = true IsRequired = false AppSpecificInfo = FN= OpportunityId Name = Siebel_BCOpportunity Type = Siebel_BCOpportunity ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo = LFN=Opportunity;PL=true;From=OpportunityId;To=OpportunityId
アプリケーション固有の情報の PL=true はコンテナー属性がピック・リストを表すことを示しています。From= パラメーターはキー属性へのポインターであり、To= パラメーターは Siebel_BCOpprotunity ビジネス・オブジェクトのキー属性を指しています。
Retrieve 操作では属性の順序が重要です。これは、OpportunityId の値を検索してからでないと、子オブジェクト内の外部キーとして定義できないためです。Create または Update 操作では、OpprotunityId の値が外部キーであり、オブジェクトの作成後に検索されます。
ピック・リスト・コンテナーとして完全なビジネス・オブジェクトを使用する必要はありません。必要なキーのみが設定されたオブジェクトで十分です。コネクターは、ピック・リスト・コンテナーを処理するために以下の規則を適用します。
以下に、コンテナー・ビジネス・オブジェクトのピック・リスト属性のマップに関するガイドラインを示します。
アダプターは、インバウンド IBM ビジネス・オブジェクトに対してキーがすべて設定されていることをチェックしないという点を除き、Retrieve 動詞を処理するのと同様の方法で RetrievebyContent 動詞を処理します。
Adapter for Siebel eBusiness Applications は、ラッパー・ビジネス・オブジェクトをサポートします。ビジネス・オブジェクトの構造および関係を参照してください。アダプターは、RetrievebyContent 動詞とラッパー・ビジネス・オブジェクトを使用して、要求処理中に複数のレコードを検索できます。複数カーディナリティー・コンテナーを持つラッパー・ビジネス・オブジェクトの場合、一致するレコードがすべて戻されます。単一カーディナリティーの子の場合は、1 つのレコードのみが処理され、MULTIPLE_HITS が戻されます。
ビジネス・オブジェクトの Retrieve 動詞に関するアプリケーション固有の情報では、コネクターが検索ごとに一定数のオブジェクトを検索するように指定できます。オブジェクトの一部を検索するためのアプリケーション固有の情報は max=n です。5 つのオブジェクトだけを指定する Retrieve 動詞の例を以下に示します。
[Verb] Name = Retrieve AppSpecificInfo = max=5
他の動詞の場合、アプリケーション固有のプロパティーは使用せず、ブランクのままにするか、ビジネス・オブジェクト定義の作成時に省略してください。
Create または Update 要求では、Object Key 値が RowId と異なる場合、Siebel アプリケーションは、Object Key 属性を消去してそのレコード用の独自の RowId を作成します。