IDX Build Tool を知る
学習の目的
この単元を完了すると、次のことができるようになります。
- 開発パイプラインでの IDX Workbench と IDX Build Tool の役割を説明する。
- IDX Build Tool を使用して移行データのプロパティファイルとジョブファイルを作成する。
- IDX Build Tool で 2 つの組織間でのデータ移行に使用するコマンドを挙げる。
もう 1 つのメタデータ移行ツールを使用する理由
このモジュールで前述したとおり、環境間で OmniStudio コンポーネントの変更を移行するために使用される開発者ツールには IDX Workbench と IDX Build Tool があります。Vijay は IDX Workbench の使用には慣れてきましたが、IDX Build Tool についても、詳しく知って、自分の役割をしっかりと果たせるようにしたいと考えています。
Vijay が両方のツールについてさらに学習を進めるのを手伝いましょう。
IDX Workbench と IDX Build Tool は同じ機能を使用してメタデータの高速なエクスポートとデプロイを行いますが、IDX Workbench は Build Tool 上で機能する UI です。実際のデプロイメントパイプラインの観点からツールを見ると、その違いがわかります。たとえば、ソース管理に変更をコミットする方法は、各ツールで異なります。
コマンドラインツールを好む Vijay のような開発者には、IDX Build Tool よりも設定しやすい IDX Build Tool が適しています。IDX Build Tool を使うと、Jenkins のような環境で自動化を実行できます。一方、それほど技術的でないユーザーにとっては、クリックによって IDX Build Tool にコマンドを送信して処理できる IDX Workbench の UI が便利です。
実際のツール
実際のプロジェクトのライフサイクルでは、開発者は開発組織で Salesforce メタデータと OmniStudio DataPack を使用してプロジェクトのコードを記述します。次に、IDX Workbench を使用してコードを Git リポジトリなどのバージョン管理システムにコミットします。すべてのコードがリポジトリにチェックインされたら、Jenkins などの自動化サーバーを使用して変更をデプロイします。自動化サーバーでは、IDX Build Tool や SFDX-CLI (Salesforce コマンドラインインターフェース) を使用して、自動的にデプロイメントを行います。製品デプロイに応じて、自動化サーバーはコード変更をさまざまなテスト環境や本番環境にデプロイします。
IDX Workbench と IDX Build Tool はどちらも、それぞれ固有の方法でコードのデプロイメントをサポートする強力なメタデータ移行ツールです。IDX Build Tool は、Vijay にソース管理への変更をコミットする超強力な機能を提供し、一方で、別のチームのビジネスコンサルタントは、IDX Workbench デスクトップアプリケーションを使ってポイントとクリックによってアプリケーションをデプロイできます。さらに、IDX Build Tool は、PC から移行を実行することを好む開発者や CICD (継続的インテグレーションおよび継続的デプロイメント) アプリケーションとコードを連携させる必要がある DevOps チームにとっても便利です。
データ移行ツールの役割が理解できた Vijay に光明が差してきました。これで実際に IDX Build Tool を使用してみる準備が整いました。さっそく始めましょう。
IDX Build Tool を使ってみる
IDX Build Tool は Node.js コマンドラインツールで、OmniStudio DataPack と Salesforce メタデータをエクスポートしてデプロイするのに使用できます。プロジェクトは YAML (YAML Ain't Markup Language) マニフェストによってソース管理に対応した形式で記述されます。IDX Build Tool の最大の目的は、OmniStudio メタデータのソース管理に対する継続的インテグレーションを可能にすることです。
IDX Build Tool の使用を開始する手順は次のとおりです。
- https://nodejs.org/ から Node をダウンロードしてインストールします。このツールには Node バージョン 10 以降が必要です。
- NPM を使用して IDX Build Tool をインストールします。NPM は Node JavaScript プラットフォームのパッケージマネージャーで、Node プログラムを公開、発見、インストール、開発するために使用できます。
IDX Build Tool をインストールするには次のコマンドを使用します。
npm install --global vlocity
ツールを正常にインストールできたら、使用してみましょう。まず、使用する主なファイルの種別について説明します。
プロパティファイル
その他のデータ移行ツールと同じように、IDX Build Tool ではソース、ターゲット、移行するコンポーネントを定義する必要があります。これはプロパティファイルとジョブファイルを使用して定義します。
プロパティファイルには使用する組織のログイン情報が含まれています。このファイルは .properties
拡張子を使用して保存する必要があります。
次の構文を使用して自分のプロパティファイルを作成できます。
sf.username = < Salesforce Username > sf.password = < Salesforce Password + Security Token > sf.loginUrl = < https://login.salesforce.com or https://test.salesforce.com for Sandbox >
2 つの組織間でデータを移行するときには、2 つの名前付きプロパティファイル (build_source.properties
と build_target.properties
など) が必要です。
ジョブファイル
ジョブファイルは、プロジェクトの場所を指定し、DataPack のエクスポートとデプロイに必要なさまざまな設定を定義するために使用します。ジョブファイルは .yaml
拡張子を使用して保存する必要があります。
ジョブファイルには 2 つの部分が含まれています。
- projectPath
- queries
projectPath ではプロジェクトが保存されるフォルダーを指定します。フォルダーへの絶対パス、プロジェクトの設定コマンドを実行する場所からの相対パス、どちらでも可能です。queries 部分はエクスポートするレコードの ID を返す Salesforce SOQL クエリです。
プロジェクトの設定に使用されるジョブファイルの簡単な例を見てみましょう。
projectPath: ./Exportfile1 queries: - VlocityDataPackType: Data Mapper query: Select Id from %vlocity_namespace%__DRBundle__c where Name LIKE '%Team' LIMIT 1
この明示的なクエリは、Data Mapper DRBundle__c の SObject テーブルをクエリすることによって Data Mapper OmniStudio DataPack をエクスポートし、LIMIT 1 および LIKE 構文もサポートしています。
Salesforce はサポートされるすべての DataPack 種別に対して完全なクエリを定義しており、現在有効なすべての Vlocity メタデータをエクスポートできます。組織からすべての Data Mapper と OmniScript をエクスポートするには、次の定義済みクエリを使用します。
projectPath: ./Exportfile1 queries: - Data Mapper - OmniScript
この構文は lib/querydefinitions.yaml
で定義され、次の明示的クエリを読み込みます。
queries: - VlocityDataPackType: Data Mapper query: Select Id, Name from %vlocity_namespace%__DRBundle__c where %vlocity_namespace%__Type__c != 'Migration' - VlocityDataPackType: OmniScript query: Select Id, %vlocity_namespace%__Type__c, %vlocity_namespace%__SubType__c, %vlocity_namespace%__Language__c from %vlocity_namespace%__OmniScript__c where %vlocity_namespace%__IsActive__c = true AND %vlocity_namespace%__IsProcedure__c = false
定義済みクエリを使用するのはジョブファイルクエリを定義する最も簡単な方法です。
DataPack キーベースのエクスポート
一意の VlocityDataPackKey を使用して DataPack をエクスポートできます。VlocityDataPackKey は DataPack のエクスポート先フォルダーの名前と同じです。Product2 DataPack の場合は、VlocityDataPackKey は vlocity_namespace__GlobalKey__c
を使用して作成されます。
次の Product2 の例を見てみましょう。
{ "%vlocity_namespace%__GlobalKey__c": "7e0b4fa5-4290-d439-ba96-f1a1c3708b0b", "Family": "Phones", "IsActive": true, "Name": "iPhone 6s Plus", "VlocityDataPackType": "SObject", "VlocityRecordSObjectType": "Product2" }
ここで、VlocityDataPackKey は次のようになります。
Product2/7e0b4fa5-4290-d439-ba96-f1a1c3708b0b
このキーは Product2 DataPack がファイルシステムに保存されたときのフォルダー名と同じです。Product2 の GlobalKey__c
は一意の項目である必要があり、フォルダー名も一意である必要があります。
ジョブファイルは、マニフェストオプションなど、DataPacks API で使用可能ないくつかの追加の Vlocity Build オプションをサポートします。ジョブファイルのマニフェストセクションを使用して、エクスポートまたはデプロイ用の DataPack のコレクションを作成できます。マニフェストは各 DataPack の VlocityDataPackKey に基づきます。
ジョブファイルのマニフェストで VlocityDataPackKey を使用することによって、商品とそのすべての依存関係を一緒にエクスポートできます。
projectPath: ./Exportpath1 manifest: - Product2/7e0b4fa5-4290-d439-ba96-f1a1c3708b0b
マニフェスト主導のエクスポートについての詳細は、この単元の「リソース」セクションを参照してください。
IDX Build Tool のコマンド
IDX Build Tool ではいくつかのコマンドを使用してさまざまなプロセスを実行します。使用可能なコマンドのリストを表示するには、vlocity help
を使用します。このコマンドは、インストール済みの IDX Build Tool バージョンとすべてのコマンドを表示します。
このセクションでは、データ移行中に使用するコマンドを見ていきます。
コマンド |
説明と構文 |
---|---|
packExport |
ジョブファイルの定義に従って、Vlocity DataPack 内の組織からすべての Vlocity メタデータを取得し、それをバージョン管理しやすいフォーマットでローカルファイルシステムに書き込みます。 構文:
|
packDeploy |
ジョブファイルの projectPath のすべてのコンテンツを Salesforce 組織にデプロイします。 構文:
|
cleanOrgData |
組織内の不良なデータを検索して排除するスクリプトを実行します。グローバルキーがない SObject にグローバルキーを追加し、データの欠落がある古いデータレコードを削除して、クリーンで使用しやすい状態にします。 構文:
|
validateLocalData |
グローバルキーの欠落や重複など、ローカルデータファイルの問題を見つけて修正します。 構文:
|
packRetry |
以前実行していたジョブを再起動し、すべてのエラーをもう一度デプロイできる状態に戻します。 構文:
|
packGetDiffsAndDeploy |
ターゲット組織とローカルで異なるすべてのファイルを見つけて、変更または新規追加された DataPack のみをデプロイします。 構文:
|
refreshProject |
projectPath のデータのフォルダーを再作成します。さらに、ファイルが正しい順序でデプロイされるように、欠落しているファイル間の参照を解決します。 構文:
|
データを準備、エクスポート、デプロイするには、次のコマンドを使用します。
# Source Org vlocity -propertyfile <filepath>-job <filepath> cleanOrgData vlocity -propertyfile <filepath>-job <filepath> packExport vlocity -propertyfile <filepath>-job <filepath> packRetry # If any errors # Target Org vlocity -propertyfile <filepath> -job <filepath> cleanOrgData vlocity -propertyfile <filepath> -job <filepath> packDeploy vlocity -propertyfile <filepath> -job <filepath> packRetry # If any errors
コマンドの実行に成功したら、データの移行は完了です。
まとめ
この単元では、Vijay に IDX Build Tool の基本機能やコマンド、使用方法を説明しました。IDX Build Tool のコマンドや高度な機能についての詳細は、この単元の「リソース」セクションを参照してください。
IDX Workbench または IDX Build Tool を使用するためにライセンスは必要ありません。Vijay のような開発者はツールをフル活用して、環境間でシームレスにメタデータを移行できます。