[v8 にも適用されます]{class="badge positive" title="Campaign v8 にも適用されます"}
データパッケージの使用 working-with-data-packages
データパッケージについて about-data-packages
Adobe Campaign では、パッケージシステムを通じて、プラットフォーム設定とデータをエクスポートまたはインポートできます。パッケージには、様々な種類の設定や要素を含めることができ、フィルターされている場合とそうでない場合があります。
データパッケージを使用すると、XML 形式のファイル経由で Adobe Campaign データベース内のエンティティを表示できます。パッケージに含まれる 1 つのエンティティは、それに該当するすべてのデータによって表現されます。
データパッケージ の原則とは、データの設定をエクスポートして別の Adobe Campaign システム内に組み込むことです。この節では、一貫したデータパッケージのセットを維持する方法を説明します。
パッケージの種類 types-of-packages
エクスポート可能なパッケージとしては、ユーザーパッケージ、プラットフォームパッケージ、管理パッケージの 3 種類があります。
-
ユーザーパッケージ:エクスポートするエンティティのリストを選択できます。このタイプのパッケージでは、依存関係の管理とエラーの検証がおこなわれます。
-
プラットフォームパッケージ:スキーマ、JavaScript コードなど、すべての付加的な技術リソース(非標準)が含まれています。
-
管理パッケージ:テンプレート、ライブラリなど、すべての付加的なテンプレートやビジネスオブジェクト(非標準)が含まれています。
データ構造 data-structure
1 つのデータパッケージは、xrk:navtree データスキーマの文法に準拠した 1 個の構造化 XML ドキュメントによって記述されます。
データパッケージの例:
<package>
<entities schema="nms:recipient">
<recipient email="john.smith@adobe.com" lastName="Smith" firstName="John">
<folder _operation="none" name="nmsRootFolder"/>
<company _operation="none" name="Adobe"/>
</recipient>
</entities>
<entities schema="sfa:company">
<company name="Adobe">
location city="London" zipCode="W11 2BQ"/>
</company>
</entities>
</package>
XML ドキュメントの先頭と末尾には必ず <package>
要素を記述します。それに続くすべての <entities>
要素によって、データがドキュメントタイプ別に配置されます。
1 つの <entities>
要素には、その要素の schema 属性で指定されたデータスキーマの形式に基づくパッケージのデータが含まれます。
パッケージ内のデータには、例えば自動生成キー(autopk オプション)のような、ベース間の互換性がない内部キーが含まれていてはなりません。
この例では、"folder" リンクと "company" リンクが、宛先テーブル内のいわゆる "ハイレベル" キーで次のように置き換えられています。
<recipient>
<folder _operation="none" name="nmsRootFolder"/>
<company _operation="none" name="Adobe"/>
</recipient>
operation
属性の値が "none" であることが、紐付けリンクの定義であることを意味します。
データパッケージの作成は、任意のテキストエディターを使って手作業でおこなうことができます。ただし、XML ドキュメントの構造は常に "xtk:navtree" データスキーマに準拠している必要があります。Adobe Campaign コンソールには、データパッケージのエクスポートとインポートを実行できるモジュールがあります。
パッケージのエクスポート exporting-packages
パッケージのエクスポートについて about-package-export
パッケージは次の 3 つの方法でエクスポートできます。
- パッケージエクスポートアシスタント を使用して、単一のパッケージにオブジェクトセットをエクスポートできます。詳しくは、パッケージへの一連のオブジェクトのエクスポートを参照してください。
- 単一のオブジェクト を右クリックして、アクション/パッケージにエクスポート を選択して、パッケージにエクスポートできます。
- パッケージ定義 を使用して、パッケージ構造を作成し、オブジェクトを追加した後、パッケージにエクスポートできます。詳しくは、 パッケージ定義の管理を参照してください。
パッケージをエクスポートしたら、そのパッケージと追加したすべてのエンティティを別の Campaign インスタンスにインポートできます。
パッケージに含まれる一連のオブジェクトのエクスポート exporting-a-set-of-objects-in-a-package
Adobe Campaign クライアントコンソールの ツール/詳細設定/パッケージをエクスポート メニューを選択すると、パッケージエクスポートアシスタントにアクセスできます。
アシスタントでは、これら 3 種類のパッケージを以下に示す手順で扱います。
-
エクスポートの対象とするエンティティのリストをドキュメントタイプ別に表示します。
note caution CAUTION エクスポートの対象が オファーカテゴリ、オファー環境、プログラム または プラン タイプのフォルダーである場合は、xtk:folder を絶対に選択しないでください。選択するとデータの一部が失われることがあります。フォルダーに対応するエンティティ(オファーカテゴリには nms:offerCategory、オファー環境には nms:offerEnv、プログラムには nms:program、プランには nms:plan)を選択します。 リスト管理機能により、エクスポートの対象として設定に含めるエンティティを追加および削除できます。新しいエンティティを追加するには「追加」をクリックします。
「詳細」ボタンをクリックすると、選択されている設定内容を編集できます。
note note NOTE エンティティのエクスポート処理の流れは、依存関係メカニズムによってコントロールされます。詳しくは、依存関係の管理を参照してください。 -
エンティティ設定画面で、抽出するドキュメントのタイプに関するフィルタークエリを定義します。
ここでは、データ抽出用のフィルタリング節を設定する必要があります。
note note NOTE Query Editor については、この節を参照してください。 -
「次へ」をクリックし、抽出処理時にデータの順序を決める並べ替え基準の列を選択します。
-
エクスポートを実行する前に、抽出するデータのプレビューを確認します。
-
パッケージエクスポートアシスタントの最終ページで、エクスポートを開始します。「ファイル」フィールドで指定されたファイルにデータが格納されます。
依存関係の管理 managing-dependencies
Adobe Campaign のエクスポートメカニズムでは、エクスポートされる様々な要素間のリンクをトラッキングできます。
このメカニズムは次の 2 つのルールに基づいて機能します。
- リンクの整合性タイプ own または owncopy を使ってリンクされたオブジェクトは、エクスポート対象オブジェクトと同じパッケージに含めてエクスポートされます。
- リンクの整合性タイプ neutral または define を使ってリンク(定義リンク)されたオブジェクトは、別途エクスポートする必要があります。
キャンペーンのエクスポート exporting-a-campaign
キャンペーンをエクスポートする方法の例を以下に示します。エクスポートするマーケティングキャンペーンには、「MyWorkflow」フォルダー(ノード:管理/プロダクション/テクニカルワークフロー/キャンペーンプロセス/MyWorkflow)内のタスク(ラベル:「MyTask」)およびワークフロー(ラベル:「CampaignWorkflow」)が含まれます。
タスクとワークフローはキャンペーンと同じパッケージ内にエクスポートされます。これは、対応するスキーマが "own" 整合性タイプのリンクで結びつけられているからです。
パッケージの内容:
<?xml version='1.0'?>
<package author="Administrator (admin)" buildNumber="7974" buildVersion="7.1" img=""
label="" name="" namespace="" vendor="">
<desc></desc>
<version buildDate="AAAA-MM-DD HH:MM:SS.954Z"/>
<entities schema="nms:operation">
<operation duration="432000" end="AAAA-MM-DD" internalName="OP1" label="MyCampaign"
modelName="opEmpty" start="AAAA-MM-DD">
<controlGroup>
<where filteringSchema=""/>
</controlGroup>
<seedList>
<where filteringSchema="nms:seedMember"></where>
<seedMember internalName="SDM1"></seedMember>
</seedList>
<parameter useAsset="1" useBudget="1" useControlGroup="1" useDeliveryOutline="1"
useDocument="1" useFCPValidation="0" useSeedMember="1" useTask="1"
useValidation="1" useWorkflow="1"></parameter>
<fcpSeed>
<where filteringSchema="nms:seedMember"></where>
</fcpSeed>
<owner _operation="none" name="admin" type="0"/>
<program _operation="none" name="nmsOperations"/>
<task end="2023-01-17 10:07:51.000Z" label="MyTask" name="TSK2" start="2023-01-16 10:07:51.000Z"
status="1">
<owner _operation="none" name="admin" type="0"/>
<operation _operation="none" internalName="OP1"/>
<folder _operation="none" name="nmsTask"/>
</task>
<workflow internalName="WKF12" label="CampaignWorkflow" modelName="newOpEmpty"
order="8982" scenario-cs="Notification of the workflow supervisor (notifySupervisor)"
schema="nms:recipient">
<scenario internalName="notifySupervisor"/>
<desc></desc>
<folder _operation="none" name="Folder4"/>
<operation _operation="none" internalName="OP1"/>
</workflow>
</operation>
</entities>
</package>
パッケージのタイプに対する所属関係は、スキーマ内では @pkgAdmin および @pkgPlatform 属性によって定義されています。どちらの属性にも、パッケージへの所属条件を定義する XTK 式が指定されます。
<element name="offerEnv" img="nms:offerEnv.png"
template="xtk:folder" pkgAdmin="@id != 0">
最後に、@pkgStatus 属性は、これらの要素または属性に関するエクスポートルールの定義に使われます。この属性の値に応じて、該当する要素または属性はエクスポートされるパッケージに含まれます。この属性に指定できる値は次の 3 種類です。
- never:そのフィールドやリンクをエクスポートしない
- always:そのフィールドを必ずエクスポートする
- preCreate:リンクされたエンティティの作成を許可する
パッケージ定義の管理 managing-package-definitions
パッケージ定義では、パッケージ構造を作成し、エンティティを追加してから、単一のパッケージにエクスポートできます。その後、このパッケージと追加されたすべてのエンティティを他の Campaign インスタンスにインポートできます。
関連トピック:
パッケージ定義の作成 creating-a-package-definition
パッケージ定義には、管理/設定/パッケージ管理/パッケージ定義 メニューからアクセスできます。
パッケージ定義を作成するには、「新規」ボタンをクリックし、パッケージ定義の一般情報を入力します。
その後、パッケージ定義にエンティティを追加し、XML ファイルパッケージにエクスポートします。
関連トピック:
パッケージ定義へのエンティティの追加 adding-entities-to-a-package-definition
「コンテンツ」タブで「追加」ボタンをクリックし、パッケージとしてエクスポートするエンティティを選択します。エンティティを選択する際のベストプラクティスについては、この節を参照してください。
エンティティは、インスタンス内の場所から直接パッケージ定義に追加できます。これをおこなうには、以下の手順に従います。
-
目的のエンティティを右クリックして、アクション/パッケージにエクスポート を選択します。
-
パッケージ定義に追加 を選択し、エンティティを追加するパッケージ定義を選択します。
-
エンティティをパッケージ定義に追加すると、そのエンティティがパッケージとしてエクスポートされます(この節を参照)。
パッケージ定義の生成の設定 configuring-package-definitions-generation
パッケージの生成は、パッケージ定義の「コンテンツ」タブで設定できます。設定をおこなうには、「生成パラメーター」リンクをクリックします。
-
定義を含める:パッケージ定義で現在使用されている定義を含めます。
-
インストールスクリプトを含める:パッケージのインポート時に実行する JavaScript スクリプトを追加できます。選択すると、パッケージ定義画面に「スクリプト」タブが表示されます。
-
デフォルト値を含める:すべてのエンティティ属性の値をパッケージに追加します。
このオプションは、エクスポート内容が長くなりすぎないように、デフォルトでは選択されません。つまり、デフォルト値(スキーマで別途定義されていない場合の、空の文字列、「0」、「false」)を持つエンティティ属性はパッケージに追加されず、エクスポートもおこなわれません。
note caution CAUTION このオプションの選択を解除すると、ローカルのバージョンとインポートされたバージョンが結合されます。 パッケージのインポート先のインスタンスに、パッケージと同じエンティティ(同じ外部 ID など)が含まれている場合は、そのエンティティの属性は更新されません。元のインスタンスにデフォルト値を持つ属性がある場合、それらがパッケージに含まれないので、こうしたことが起こります。 この場合は「デフォルト値を含める」オプションを選択すると、元のインスタンスからすべての属性がパッケージにエクスポートされるので、複数のバージョンが結合されることはありません。
パッケージ定義からのパッケージのエクスポート exporting-packages-from-a-package-definition
パッケージ定義からパッケージをエクスポートするには、以下の手順に従います。
-
エクスポートするパッケージ定義を選択し、「アクション」ボタンをクリックし、「パッケージをエクスポート」を選択します。
-
エクスポートするパッケージに対応した XML ファイルがデフォルトで選択されます。パッケージ定義の名前空間と名前に基づいて名前が付けられます。
-
パッケージ名と場所を定義したら、「開始」ボタンをクリックしてエクスポートを開始します。
パッケージのインポート importing-packages
Adobe Campaign クライアントコンソールのメインメニューで ツール/詳細設定/パッケージをインポート を選択すると、パッケージインポートアシスタントにアクセスできます。
ライセンス条項に応じて、(例えば、別の Adobe Campaign インスタンスから)既にエクスポートしたパッケージをインポートするか、組み込みパッケージをインポートすることができます。
ファイルからのパッケージのインストール installing-a-package-from-a-file
既存のデータパッケージをインポートするには、パッケージの XML ファイルを選択し、「開く」をクリックします。
インポートされるパッケージの内容が、エディターの中央部セクションに表示されます。
「次へ」、「開始」の順にクリックすると、インポートが開始されます。
ビルトインパッケージのインストール installing-a-standard-package
標準パッケージは、Adobe Campaign の設定時にインストールされるビルトインパッケージです。権限とデプロイメントモデルに応じて、新しいオプションやアドオンを入手する場合や、新しいオファーにアップグレードする場合に、新しい標準パッケージをインポートできます。
インストールできるパッケージを確認するには、ライセンス契約を参照してください。
ビルトインパッケージについて詳しくは、こちらを参照してください。
データパッケージのベストプラクティス data-package-best-practices
この節では、プロジェクトの全期間にわたって一貫した方法でデータパッケージを編成する方法について説明します。
パッケージには、様々な種類の設定や要素を含めることができ、フィルターされている場合とそうでない場合があります。一部の要素が見つからない場合や、要素またはパッケージが正しい順序で読み込まれない場合は、プラットフォームの設定が破損する可能性があります。
また、複数のユーザーが多数の機能を持つ同じプラットフォームで作業をおこなう場合、パッケージ仕様フォルダーがすぐに複雑化する可能性があります。
必須ではありませんが、この節では、Adobe Campaign で大規模プロジェクトのパッケージを整理して使用するのに役立つソリューションを提供します。
主な制約を次に示します。
- パッケージを整理し、変更内容と変更日時を追跡する
- 設定が更新された場合、更新に直接リンクされていない要素の破損リスクを最小限に抑える
レコメンデーション data-package-recommendations
必ず、同じバージョンのプラットフォーム内でインポートします。同じビルドを持つ 2 つのインスタンス間にパッケージをデプロイしていることを確認する必要があります。ビルドが異なる場合は、インポートを強制的に実行せず、最初にプラットフォームを必ず更新してください。
スキーマとデータベースの構造に注意してください。スキーマを含むパッケージのインポートの後にスキーマの生成が必要です。
解決策 data-package-solution
パッケージの種類 package-types
まず、様々なタイプのパッケージを定義します。次の 4 つのタイプのみが使用されます。
エンティティ
- スキーマ、フォーム、フォルダー、配信テンプレートなど、Adobe Campaign 内のすべての「xtk」および「nms」固有の要素が含まれます。
- エンティティは、「admin」要素と「platform」要素の両方として見なすことができます。
- Campaign インスタンスにアップロードする際に、パッケージに複数のエンティティを含めないでください。
新しいインスタンスに設定をデプロイする必要がある場合は、すべてのエンティティパッケージをインポートできます。
機能
このパッケージタイプには、以下が当てはまります。
- クライアントの要件や仕様に対応する。
- 1 つまたは複数の機能が含まれる。
- 他のパッケージを使用せずに機能を実行できるように、すべての依存関係を含める必要がある。
キャンペーン
このパッケージは必須ではありません。キャンペーンが機能として見なされる場合でも、すべてのキャンペーンに対して特定のタイプを作成すると便利です。
アップデート
設定が完了すると、1 つの機能を別の環境にエクスポートすることができます。例えば、開発環境からテスト環境にパッケージをエクスポートすることができます。このテストでは、欠陥が明らかになります。まず、開発環境で欠陥を修正する必要があります。次に、パッチをテストプラットフォームに適用する必要があります。
1 つ目の解決策は、機能全体を再度エクスポートすることです。ただし、リスク(不要な要素の更新)を回避するには、修正のみを含むパッケージを使用した方が安全です。
そのため、機能のエンティティタイプを 1 つだけ含む「アップデート」パッケージを作成することをお勧めします。
更新は修正になるだけでなく、エンティティ、機能、キャンペーンパッケージの新しい要素にもなります。パッケージ全体をデプロイしないようにするには、アップデートパッケージをエクスポートします。
命名規則 data-package-naming
タイプが定義されたら、命名規則を指定する必要があります。Adobe Campaign では、パッケージ仕様のサブフォルダーを作成できません。パッケージ名を整理する最適な方法は、番号を使用することです。番号は、パッケージ名のプレフィックスとして使用します。次の規則を使用できます。
- エンティティ:1 ~ 99
- 機能:100 ~ 199
- キャンペーン:200 ~ 299
- アップデート:5000 ~ 5999
パッケージ data-packages
エンティティパッケージの順序 entity-packages-order
インポートを円滑におこなうために、エンティティパッケージはインポートされる順に並べる必要があります。次に例を示します。
- 001 – スキーマ
- 002 – フォーム
- 003 – 画像
- その他
パッケージ 200 package-200
パッケージ番号「200」を、特定のキャンペーンに使用しないでください。この番号は、すべてのキャンペーンに関する情報を更新する際に使用されます。
アップデートパッケージ update-package
最後に、アップデートパッケージの番号について説明します。アップデートパッケージには、プレフィックスが「5」のパッケージ番号(エンティティ、機能またはキャンペーン)が割り当てられます。次に例を示します。
- 5001 で 1 つのスキーマを更新
- 5200 ですべてのキャンペーンを更新
- 5101 で 101 機能を更新
容易に再利用できるようにするために、アップデートパッケージには、特定のエンティティを 1 つだけ含める必要があります。分割するには、新しい番号(1 からの開始)を追加します。これらのパッケージに固有の順序規則はありません。例えば、101 機能(ソーシャルアプリケーション)があると仮定します。
-
これには、Web アプリと外部アカウントが含まれます。
- パッケージのラベルは「101 - ソーシャルアプリケーション(socialApplication)」です。
-
Web アプリに欠陥があります。
- Web アプリを修正します。
- 「5101 - 1 - ソーシャルアプリケーションの Web アプリ(socialApplication_webApp)」という名前の修正パッケージを作成する必要があります。
-
ソーシャル機能用に新しい外部アカウントを追加する必要があります。
- 外部アカウントを作成します。
- 新しいパッケージは「5101 - 2 - ソーシャルアプリケーションの外部アカウント(socialApplication_extAccount)」です。
- 同時に、101 パッケージが更新され、外部アカウントに追加されますが、デプロイされません。
パッケージドキュメント package-documentation
パッケージを更新する場合、変更内容や理由(「新しいスキーマを追加」、「欠陥を修正」など)の詳細を説明するために、必ず説明フィールドにコメントを入れてください。
また、コメントの日付も指定する必要があります。アップデートパッケージに関するコメントは常に「親」(「5」プレフィックスを含まないパッケージ)に報告してください。