B2C Commerce のジョブの概要
学習の目的
この単元を完了すると、次のことができるようになります。
- ジョブを作成する理由を 3 つ挙げる。
- 新しいジョブフレームワークを使用する利点について説明する。
- ジョブの重要な概念 (フロー、範囲、ロック、スケジュール) について説明する。
- ジョブを成功させる要因を説明する。
はじめに
Linda Rosenberg は高級なカスタムスニーカーを扱う Cloud Kicks 社の新任管理者です。ここ最近、Cloud Kicks のストアフロントの管理に役立つ Salesforce B2C Commerce のさまざまなスキルを学んでいます。今週は、複数のタスクを組み合わせた複雑な管理プロセスの設定方法を習得したいと考えています。この最適なツールが B2C Commerce のジョブ機能で、次のことを行うタスクをスケジュールできます。
- インポートとエクスポートを自動化する。
- データまたはコードをレプリケートする。
- 検索インデックスを作成する。
- カスタムタスクを実行する。
B2C Commerce のジョブとは、インポートファイルのダウンロードや検索インデックスの再作成など、時間のかかる操作を実行する一連の手順です。Linda はジョブを作成するときに、コーディングが一切不要な標準搭載のシステムジョブステップを使用できます。Linda が想定している作業を実行するシステムステップがない場合は、デベロッパーにカスタムジョブステップの作成を依頼できます。
以下は、ジョブを使用する一般的な理由です。
データ |
用途 |
---|---|
顧客 |
顧客レコードを Marketing Cloud Engagement などの外部システムにエクスポートする。 |
プロモーション |
プロモーションデータを外部のカスタマーサービスソフトウェアシステムにエクスポートして、カスタマーサービス担当者 (CSR) に電話をしてきた買い物客がオンラインの場合と同じプロモーションを利用できるようにする。 |
カタログ |
税計算システムへのカタログの特殊なエクスポートを実行して、税計算ソフトウェアで商品種別を認識したうえで税額が適切に計算されるようにする。たとえば、米国マサチューセッツ州では一定の価格以下の衣料品は課税対象外ですが、電子機器は課税の対象です。 |
カタログ |
Google Merchant へのカタログの特殊なエクスポートを実行して、Google の検索結果に商品の現在のストアフロント価格が表示されるようにする。 |
注文 |
カスタムの注文エクスポートを実行する。一部の注文管理システムは B2C Commerce の order.xml の要件を認識しません。フィードファイルを特別に作成して転送する必要があります。 |
では始めましょう。
新しいジョブフレームワーク
Linda は、Business Manager の一定のジョブ機能に廃止予定と表示されていることに気が付きました。
-
ジョブ (廃止予定)
-
ジョブ履歴 (廃止予定)
これらは、B2C Commerce の古いジョブフレームワークのオプションですが、レガシージョブを管理するために引き続き使用できます。ただし、改良された新しいジョブフレームワークがあるため、Linda は新しいジョブには新しいフレームワークを使用するつもりです。新しいジョブフレームワークには次のような利点があります。
- コーディングが一切不要な標準搭載のシステムステップを使用できる。
- デベロッパーが任意の IDE を使用してカスタムジョブステップを作成し、CommonJS モジュールを記述できる。
- フローを使用して、ジョブステップの並列実行を設定できる。
- Open Commerce API (OCAPI) を使用して、ジョブを開始し監視できる。
- Business Manager でジョブの進行状況を監視できる。
よろしいですか。Linda もそう思っています! そして、この新しいジョブフレームワークの使用法を学びたいと思っています。
ジョブの重要な概念
ジョブを計画して作成する前に、Linda は次の重要な概念を理解しておく必要があります。
- ジョブのフロー
- ジョブの範囲
- ジョブのロック
- ジョブのスケジュール
ジョブのフロー
ジョブフローは、B2C Commerce がジョブステップを実行する順序を制御します。どのジョブにもフローが 1 つ以上必要です。どのフローにもジョブステップが 1 つ以上必要です。
Linda はステップを 1 つずつ実行する順次フローを設定できます。Business Manager ユーザーインターフェースでは、順次フローはページ幅いっぱいに表示され (1)、上から順に実行されます。
Business Manager にアクセスするには、B2C Commerce の実装が必要です。このモジュールでは、受講者が B2C Commerce 管理者で、これらのタスクを実行する適切な権限を有しているものと想定しています。ただし、B2C Commerce 管理者でなくても大丈夫です。このまま読み進み、Sandbox インスタンスで管理者がこれらの手順をどのように実行するのかを見てみましょう。Trailhead Playground で次の手順を実行しないでください。Trailhead Playground では B2C Commerce を使用できません。B2C Commerce の Sandbox インスタンスがある場合は、これらの手順をそのインスタンスで実行できます。Sandbox インスタンスがない場合は、使用可能なインスタンスがないかマネージャーにお問い合わせください。
また、並列実行される同位フローを設定することもできます。同位フローは Business Manager に横並びで表示されます (1)。
同位フローは、システムリソースを使用可能な限り、同時に実行されます。並列実行が可能でない場合は (複数の並列ステップが外部リソースに同時にアクセスする必要がある場合など)、同位フローを順次実行するよう設定できます。順次同位フローは左から順に実行されます。
Linda が並列実行を設定しても、十分なリソースを使用できない場合は、B2C Commerce が同位フローを順次実行します。また、特定のジョブステップは並列実行をサポートしていないため、Linda がこれらのステップを含むフローを並列同位フローとして設定しても、常に順次実行されます。たとえば、B2C Commerce は、データベースの競合を回避するために、レガシーパイプラインの実行をサポートする ExecutePipeline システムステップを常に順次実行します。
順次フローが 1 つ以上のサイトで実行されるように (後述の範囲を使用して) 構成した場合は、並列実行に対応する十分なシステムリソースがある限り、B2C Commerce が各種のサイトでこのフローを並列実行します。
Linda は同位フローや順次フローを使用して、複数のフローが 1 つのフローに再結合されるジョブを設定できます。一例を挙げると、同位並列フローでカタログファイルをダウンロードした後、順次フローでカタログファイルをインポートし、続いて別の一連の同位並列フローで価格ファイルをダウンロードしてから、また別の順次フローで価格ファイルをインポートします。このジョブの最後に、再インデックス付けを行ってから Production (本番) にレプリケートする並列フローを配置することが考えられます。
次の図は、Linda が 3 つのフローを設定した場合の流れを示しています。
ジョブフローの範囲
Linda は各フローを範囲に割り当てる必要があります。範囲は組織全体にすることも、1 つ以上のサイトにすることもできます。フローはデフォルトで組織に対して実行されます。ジョブステップの中には、特定の範囲でのみ有効なものがあります。たとえば、インデックスの再構築はサイトごとに範囲を指定する必要があり、組織を範囲として実行することはできません。
ジョブのロック
Linda はジョブの設定時に、特定のリソースをジョブに割り当てることができます。ジョブの実行中は B2C Commerce がそのリソースをロックするため、ジョブがリソースを利用中に Linda や他のユーザーによって変更されることがありません。このしくみにより、データの整合性が保たれ、データの競合が回避されます。
ジョブのスケジュール
Linda はジョブを手動で実行することも、特定の間隔で特定の時刻に自動的に実行されるようスケジュールすることもできます。同じジョブの前回の実行が継続している間はジョブが開始されないため、ジョブの実行の所要時間を把握したうえでスケジュールすることが重要です。もう 1 つ重要な点は、複数のジョブが同じオブジェクトのロックを同時に取得しようとしないようにジョブをスケジュールすることです。
通常は、最大 15 個のジョブを同時に実行できます。
モード
B2C Commerce でのジョブの成功とはどのようなものなのでしょうか? 簡単に言うと、B2C Commerce がジョブをエラーなく実行し、データがまさに意図した方法で意図した場所など意図したとおり転送され、完全な再インデックス付けが行われ、ストアフロントで検索可能になることです。ジョブが失敗すると、B2C Commerce が新規データの一部しか転送できず、その結果新旧のデータが混在する可能性があります。これは「問題のあるデータ」です。
ジョブが他の理由で失敗することもあります。ジョブは概して大量のデータや時間のかかる操作に使用するため、ネットワークや電源の変動が原因で失敗することがあります。
次のステップ
この単元で Linda は、ジョブを使用する状況と、新しいジョブフレームワークの利点を学習しました。また、ジョブの重要な概念 (フロー、範囲、ロック、スケジュール) についても習得しました。さらに、ジョブを成功させる要因を学びました。次は、ジョブステップについて学習します。
リソース