Skip to main content

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 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 の元の名前は Vlocity Build Tool (VBT) でした。ドキュメントやその他の場所で Vlocity Build Tool と呼ばれることがありますが、同じものですので、戸惑わないでください。 

IDX Build Tool の使用を開始する手順は次のとおりです。

  1. https://nodejs.org/ から Node をダウンロードしてインストールします。このツールには Node バージョン 10 以降が必要です。
  2. 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.propertiesbuild_target.properties など) が必要です。

ジョブファイル

ジョブファイルは、プロジェクトの場所を指定し、DataPack のエクスポートとデプロイに必要なさまざまな設定を定義するために使用します。ジョブファイルは .yaml 拡張子を使用して保存する必要があります。

ジョブファイルには 2 つの部分が含まれています。

  • projectPath
  • queries

projectPath ではプロジェクトが保存されるフォルダーを指定します。フォルダーへの絶対パス、プロジェクトの設定コマンドを実行する場所からの相対パス、どちらでも可能です。queries 部分はエクスポートするレコードの ID を返す Salesforce SOQL クエリです。 

プロジェクトの設定に使用されるジョブファイルの簡単な例を見てみましょう。 

projectPath: ./Exportfile1
queries:
- VlocityDataPackType: DataRaptor
query: Select Id from %vlocity_namespace%__DRBundle__c where Name LIKE '%Team' LIMIT 1

この明示的なクエリは、DataRaptor DRBundle__c の SObject テーブルをクエリすることによって DataRaptor OmniStudio DataPack をエクスポートし、LIMIT 1 および LIKE 構文もサポートしています。

Salesforce はサポートされるすべての DataPack 種別に対して完全なクエリを定義しており、現在有効なすべての Vlocity メタデータをエクスポートできます。組織からすべての DataRaptor と OmniScript をエクスポートするには、次の定義済みクエリを使用します。 

projectPath: ./Exportfile1
queries:
- DataRaptor
- OmniScript

この構文は lib/querydefinitions.yaml で定義され、次の明示的クエリを読み込みます。

queries:
- VlocityDataPackType: DataRaptor
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 ファイルが記述される場所を指定する projectPath です。その他のすべての設定では、デフォルトのプロジェクト設定が使用されます。デフォルト設定を上書きするには、定義済みクエリまたは明示的クエリを使用します。   

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 バージョンとすべてのコマンドを表示します。

IDX Build Tool のコマンド

このセクションでは、データ移行中に使用するコマンドを見ていきます。 

  コマンド
  説明と構文

packExport

ジョブファイルの定義に従って、Vlocity DataPack 内の組織からすべての Vlocity メタデータを取得し、それをバージョン管理しやすいフォーマットでローカルファイルシステムに書き込みます。

構文:

vlocity -propertyfile <filepath> -job <filepath> packExport

packDeploy

ジョブファイルの projectPath のすべてのコンテンツを Salesforce 組織にデプロイします。

構文:

vlocity -propertyfile <filepath> -job <filepath> packDeploy

cleanOrgData

組織内の不良なデータを検索して排除するスクリプトを実行します。グローバルキーがない SObject にグローバルキーを追加し、データの欠落がある古いデータレコードを削除して、クリーンで使用しやすい状態にします。

構文:

vlocity -propertyfile <propertyfile> -job <job> cleanOrgData

validateLocalData

グローバルキーの欠落や重複など、ローカルデータファイルの問題を見つけて修正します。

構文:

vlocity -propertyfile <filepath> -job <filepath> validateLocalData

packRetry

以前実行していたジョブを再起動し、すべてのエラーをもう一度デプロイできる状態に戻します。

構文:

vlocity -propertyfile <filepath> -job <filepath> packRetry

packGetDiffsAndDeploy

ターゲット組織とローカルで異なるすべてのファイルを見つけて、変更または新規追加された DataPack のみをデプロイします。

構文:

vlocity -propertyfile <filepath> -job <filepath> packGetDiffsAndDeploy

refreshProject

projectPath のデータのフォルダーを再作成します。さらに、ファイルが正しい順序でデプロイされるように、欠落しているファイル間の参照を解決します。

構文:

vlocity -propertyfile <filepath> -job <filepath> refreshProject

データを準備、エクスポート、デプロイするには、次のコマンドを使用します。

# 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 のような開発者はツールをフル活用して、環境間でシームレスにメタデータを移行できます。 

リソース

無料で学習を続けましょう!
続けるにはアカウントにサインアップしてください。
サインアップすると次のような機能が利用できるようになります。
  • 各自のキャリア目標に合わせてパーソナライズされたおすすめが表示される
  • ハンズオン Challenge やテストでスキルを練習できる
  • 進捗状況を追跡して上司と共有できる
  • メンターやキャリアチャンスと繋がることができる