XML でのユーザーおよびグループの割り当てについて
ユーザーまたはグループのデータ・フィルターへの割り当ては、ユーザー・インターフェースを使用する代わりに XML で行うこともできます。XML でユーザーおよびグループをデータ・フィルターに割り当て可能なのは、手動指定を使用してデータ・フィルターを作成する場合のみです。
ワイルドカードの #user_login# を使用できます。このワイルドカードは、ユーザーの Marketing Platform ログイン名に基づいてデータ・フィルターを自動的に作成します。
ユーザーまたはグループをデータ・フィルターに関連付けるには、AddAssignments XML 要素ブロックを使用します。
例で使用するシナリオ
例では、次のシナリオを使用します。
ある組織が Distributed Marketing を使用していて、フィールド・マーケティング担当者が自分の担当地域の顧客のみを表示できるように、データ・フィルターを作成したいと考えています。したがって、データ・フィルターはユーザーごとに必要になります。
Distributed Marketing で、地域に基づいてリスト表示とフォーム・テンプレートをセットアップします。この構成については、「IBM Distributed Marketing 管理者ガイド」で詳しく説明しています。
オーディエンス・レベルは「顧客」です。
次の表に示すように、exampleSchema データベースの 4 つのテーブルに対してデータ・フィルターが作成されます。
テーブル | フィールド |
---|---|
exampleSchema.Corporate_Lists | UserID、State、および RegionID これは、Distributed Marketing でセットアップされたリスト表示テーブルです。UserID 列には、フィールド・マーケティング担当者の Marketing Platform ログイン名が入ります。このテーブルにより、フィールド・マーケティング担当者の Marketing Platform ログイン名と担当地域が関連付けられます。 |
exampleSchema.customer_contact | 顧客の Indiv_ID、Region_ID、および State フィールド |
exampleSchema.lkup_state | state_name フィールドのルックアップ・テーブル |
exampleSchema.lkup_region | region_id フィールドのルックアップ・テーブル |
例: ワイルドカードを使用してグループ・メンバーをデータ・フィルターに割り当てる
指定したグループのメンバーごとに別々のデータ・フィルターを作成するには、以下のようにします。
- 通常どおり論理フィールドを作成します。
- expression 要素でワイルドカード #user_login# を使用して、単一のデータ・フィルターを作成します。
- AssignmentByName 要素の下で、principalType に 2 を、principalName 要素にグループ名を、dataObjectId 要素にワイルドカード・データ・フィルターの ID をそれぞれ設定します。
- 通常どおりオーディエンス関連付けを作成します。
以下の XML は、この方法を上記のシナリオを使用して示しています。
<ExecuteBatch>
<!-- ********************************** -->
<!-- Data configuration -->
<!-- ********************************** -->
<name>SeedData</name>
<operations>
<ExecuteBatch>
<name>DataFiltering</name>
<operations>
<AddDataConfiguration>
<dataConfiguration>
<id>1</id>
<name>collaborate</name>
</dataConfiguration>
</AddDataConfiguration>
</operations>
</ExecuteBatch>
<!-- ********************************** -->
<!-- Logical fields -->
<!-- ********************************** -->
<AddLogicalFields>
<logicalFields>
<LogicalField>
<id>1</id>
<name>Customer_ID</name>
<type>java.lang.String</type>
</LogicalField>
<LogicalField>
<id>2</id>
<name>AudienceLevel</name>
<type>java.lang.String</type>
</LogicalField>
<LogicalField>
<id>3</id>
<name>UserID</name>
<type>java.lang.String</type>
</LogicalField>
<LogicalField>
<id>4</id>
<name>State_code</name>
<type>java.lang.String</type>
</LogicalField>
<LogicalField>
<id>5</id>
<name>Region</name>
<type>java.lang.Long</type>
</LogicalField>
</logicalFields>
</AddLogicalFields>
<!-- ********************************** -->
<!-- Wild card data filter -->
<!-- ********************************** -->
<AddDataFilters>
<dataFilters>
<DataFilter><
<configId>1</configId>
<id>1</id>
<fieldConstraints>
<FieldConstraint>
<logicalFieldId>3</logicalFieldId>
<expression>#user_login#</expression>
</FieldConstraint>
</fieldConstraints>
</DataFilter>
</dataFilters>
</AddDataFilters>
<!-- ********************************************************* -->
<!-- Add data tables -->
<!-- ********************************************************* -->
<ExecuteBatch>
<name>addTables</name>
<operations>
<!-- ********************************************************* -->
<!-- Table exampleSchema.Corporate_Lists -->
<!-- ********************************************************* -->
<AddDataTable>
<dataTable>
<id>1</id>
<name>exampleSchema.Corporate_Lists</name>
<fields>
<TableField>
<tableId>1</tableId>
<name>UserID</name>
<logicalFieldId>3</logicalFieldId>
</TableField>
<TableField>
<tableId>1</tableId>
<name>State</name>
<logicalFieldId>4</logicalFieldId>
</TableField>
<TableField>
<tableId>1</tableId>
<name>Region_ID</name>
<logicalFieldId>5</logicalFieldId>
</TableField>
</fields>
</dataTable>
</AddDataTable>
<!-- ********************************************************* -->
<!-- Table exampleSchema.customer_contact -->
<!-- ********************************************************* -->
<AddDataTable>
<dataTable>
<id>2</id>
<name>exampleSchema.customer_contact</name>
<fields>
<TableField>
<tableId>2</tableId>
<name>Indiv_ID</name>
<logicalFieldId>1</logicalFieldId>
</TableField>
<TableField>
<tableId>2</tableId>
<name>Region_ID</name>
<logicalFieldId>5</logicalFieldId>
</TableField>
<TableField>
<tableId>2</tableId>
<name>State</name>
<logicalFieldId>4</logicalFieldId>
</TableField>
</fields>
</dataTable>
</AddDataTable>
<!-- ********************************************************* -->
<!-- Table exampleSchema.lkup_state -->
<!-- ********************************************************* -->
<AddDataTable>
<dataTable>
<id>3</id>
<name>example.schema.lkup_state</name>
<fields>
<TableField>
<tableId>3</tableId>
<name>state_name</name>
<logicalFieldId>4</logicalFieldId>
</TableField>
</fields>
</dataTable>
</AddDataTable>
<!-- ********************************************************* -->
<!-- Table exampleSchema.lkup_region -->
<!-- ********************************************************* -->
<AddDataTable>
<dataTable>
<id>4</id>
<name>exampleSchema.lkup_region</name>
<fields>
<TableField>
<tableId>4</tableId>
<name>Region_ID</name>
<logicalFieldId>5</logicalFieldId>
</TableField>
</fields>
</dataTable>
</AddDataTable>
</operations>
</ExecuteBatch>
<!-- ********************************************************* -->
<!-- Audience table associations -->
<!-- ********************************************************* -->
<ExecuteBatch>
<name>addAudiences</name>
<operations>
<AddAudience>
<audience>
<id>1</id>
<name>Customer</name>
<fields>
<AudienceField>
<logicalFieldId>2</logicalFieldId>
<fieldOrder>0</fieldOrder>
</AudienceField>
</fields>
</audience>
</AddAudience>
<AddAudience>
<audience>
<id>2</id>
<name>default</name>
<fields>
<AudienceField>
<logicalFieldId>2</logicalFieldId>
<fieldOrder>0</fieldOrder>
</AudienceField>
</fields>
</audience>
</AddAudience>
</operations>
</ExecuteBatch>
<ExecuteBatch>
<name>addAudienceTableAssociations</name>
<operations>
<AddAudienceTableAssociation>
<audienceTableAssociation>
<audienceId>1</audienceId>
<tableId>1</tableId>
<configId>1</configId>
</audienceTableAssociation>
</AddAudienceTableAssociation>
<AddAudienceTableAssociation>
<audienceTableAssociation>
<audienceId>1</audienceId>
<tableId>2</tableId>
<configId>1</configId>
</audienceTableAssociation>
</AddAudienceTableAssociation>
<AddAudienceTableAssociation>
<audienceTableAssociation>
<audienceId>2</audienceId>
<tableId>3</tableId>
<configId>1</configId>
</audienceTableAssociation>
</AddAudienceTableAssociation>
<AddAudienceTableAssociation>
<audienceTableAssociation>
<audienceId>2</audienceId>
<tableId>4</tableId>
<configId>1</configId>
</audienceTableAssociation>
</AddAudienceTableAssociation>
</operations>
</ExecuteBatch>
<!-- ********************************************************* -->
<!-- Link filters (dataObjectId) to group -->
<!-- ********************************************************* -->
<AddAssignments>
<assignments>
<AssignmentByName>
<namespaceId>1</namespaceId>
<dataObjectId>1</dataObjectId>
<principalType>2</principalType>
<principalName>FieldMarketer</principalName>
</AssignmentByName>
</assignments>
</AddAssignments>
</operations>
</ExecuteBatch>