ジョブの作成と構成
学習の目的
- [ジョブ] モジュールで実行できるタスクを 3 つ挙げる。
- ジョブを作成する。
- ジョブにリソースを割り当てる。
- ジョブステップを 1 つ以上のフローに追加する。
- グローバルパラメーターを作成する。
はじめに
Linda がジョブについて理解し、システムジョブステップとカスタムジョブステップを認識したところで、いよいよジョブを作成して設定します。このためには、Business Manager の [ジョブ] モジュールにアクセスする必要があります。[ジョブ] モジュールでは、ジョブの作成やスケジュール、ジョブが失敗した場合のメールによる通知の設定、競合を回避するジョブのリソースの使用などを実行できます。
Business Manager にアクセスするには、B2C Commerce の実装が必要です。このモジュールでは、受講者が B2C Commerce 管理者であり、次のタスクを実行する適切な権限を有していると想定しています。B2C Commerce 管理者でなくても大丈夫です。このまま読み進み、ステージングインスタンスで管理者がこれらの手順をどのように実行するのかを確認します。Trailhead Playground で次の手順を実行しないでください。Trailhead Playground では B2C Commerce を使用できません。B2C Commerce のステージングインスタンスがある場合は、これらの手順をそのインスタンスで実行できます。ステージングインスタンスがない場合は、使用可能なインスタンスがないかマネージャーにお問い合わせください。
ジョブの作成
Linda がカタログをインポートするジョブを作成する手順は、次のとおりです。
- Business Manager を開きます。
- [管理] > [オペレーション] > [ジョブ] を選択します。
- [新規ジョブ](1) をクリックします。
- [ID] (1) に「cloudkicks-catalog-data」、[説明] (2) に「Catalog data for Cloud Kicks」 (Cloud Kicks のカタログデータ) と入力します。
- [優先度] 機能は無視します。現時点ではサポートされていません。
- [作成] (3) をクリックします。
- [スケジュールと履歴] タブをクリックします。
- [有効] を選択すると、ジョブがスケジュールどおりに実行されます。ジョブが有効になっていない場合でも、手動でジョブをトリガーできます。
- [1 回] を選択するとジョブが 1 度トリガーされます。[定期的な実行間隔] を選択することもできます。
- 定期的に実行するジョブには、カレンダーアイコンを使用して過去の日付を選択します。過去の日付をスケジュールしないと、指定した日までジョブが実行されません。ジョブを実行する曜日、時刻、間隔、回数も選択できます。
リソースのロック
Linda は、自身のジョブがリソースを利用中に他のユーザーやジョブによってそのリソースが変更されないように、リソースをロックできます。たとえば、カタログを更新中に、他のジョブやユーザーによってそのカタログやカテゴリ、商品などが更新または変更されないようにします。リソースをロックする手順は、次のとおりです。
- [リソース] タブ (1) をクリックします。
- [選択] (2) をクリックします。
- [システムリソース](3) を選択します。
- ジョブで変更または更新するオブジェクトをリソース (注文など) として追加します。
- [選択] (4) をクリックします。
ジョブステップのフローへの追加
Linda がジョブステップを追加しようとしています。
- 新しいジョブの [ジョブステップ] タブをクリックします。すでに空のフローが設定されています。この 1 つ目のフローは、[ジョブステップ] ページにグレーの長方形 (1) として表示されます。
- [ステップを設定] をクリックして、フローの新しいステップを作成します。
- [ステップの選択と設定] ペインで、フローに追加するシステムジョブステップまたはカスタムジョブステップを選択します。Linda は [ImportCatalog] を選択します。
- ジョブステップのパラメーターを指定します。各ジョブステップに独自のパラメーターがあります。パラメーター名の上にマウスポインターを置くと、そのパラメーターの詳細が表示されます。この例の ImportCatalog ジョブステップには以下のパラメーターがあります。
- 一意のステップ ID を入力します。
- 説明を追加します。ワークフローとジョブにこの説明が表示されます。
- 作業フォルダーを指定します。このフォルダーには、インポートするカタログファイルの IMPEX/src に対する相対パスが含まれます。この値を定義しない場合は、B2C Commerce が IMPEX/src を作業フォルダーとして使用します。
- FileNamePattern を入力します。これはインポートするファイルの名前です。複数のファイルを指定する場合は、正規表現 (regex) を使用します。この値を定義しない場合は、B2C Commerce が作業フォルダー内のすべてのファイルをインポートします。
- NoFilesFoundHandling に、B2C Commerce がインポートするファイルを見つけられなかった場合の処理を指定します。
- ImportFailedHandling に、インポートに失敗した場合の処理を指定します。
- AfterImportFileHandling に、インポート後のファイルの処理を指定します。
- ArchiveFolder を指定します。このパラメーターが Archive または Archive zipped に設定されている場合は、B2C Commerce がファイルを保存する場所の MPEX ディレクトリに対する相対パスを定義します。定義されていない場合は、B2C Commerce がファイルを IMPEX/archive にアーカイブします。
- インポートモードを選択します。
- 削除: オブジェクトを削除します。
- マージ: オブジェクトが存在しない場合は作成したうえで、更新を行います。
- 置換: 提供されたデータを使用してオブジェクトを再作成します。
- 更新: 既存のオブジェクトを更新します。
- ジョブが失敗した場合に B2C Commerce がジョブをリスタートするようにする場合は、[リスタート時に常に実行する] を選択します。リスタートする前に B2C Commerce がジョブを完了している場合でも、このステップが常に実行に含められるようにします。
- [エラー処理] には、ジョブエラーに対するシステムの対処法を指定します。
- [範囲] は、デフォルト値の [Organization (組織)] のままにします。ImportCatalog ジョブステップは、範囲を組織にして実行する必要があります。
新しいフローの追加
Linda がジョブを作成する時点で、すでにフローが 1 つ設定されています。このフローにすべてのジョブステップを追加できます。また、兄弟フローを 4 つまで作成できます。同位フローは Business Manager の [ジョブステップ] タブに横並びで表示されます。同位フローは順次実行または並列実行されるように設定できます。
ただし、前述のとおり、並列実行するだけの十分なリソースがない場合や、ステップタイプで並列実行がサポートされていない場合は、B2C Commerce がその同位フローを順次実行します。
次のグラフィックは、[ジョブ] タブのフローのオプションを示しています。
- 同位フローを追加します。
- 同位フローの順次処理と並列処理を切り替えます。
- 新しい順次フローを追加します。
トラブルシューティングの設定
Linda は問題を特定しやすくするために、トラブルシューティングを設定したいと考えています。そのために次の手順を実行します。
- [エラー処理] タブをクリックして、失敗ルールを選択します。ジョブステップの [エラー処理] が [ERROR] で、[エラー処理] の [操作] に [停止] が指定されている場合は、B2C Commerce がこのルールを呼び出します。
- ジョブのステータスに関する通知を受け取る場合は、[通知] タブをクリックします。
- [有効] を選択します。
- 通知を受け取るイベントを選択します。
- メールの必須情報を入力します。
- [延長ランタイム検知] の下にある [有効] を選択して、実行時間のしきい値を入力します。
ジョブの手動実行
Linda は時として、重要なジョブや緊急ジョブの依頼を受けることや、トラブルシューティング時にジョブを手動で実行しなければならないことがあります。Maria の作業は次のとおりです。
- Business Manager を開きます。
- [管理] > [オペレーション] > [ジョブ] を選択します。
- 実行するジョブを選択します。
- [ただちに実行] をクリックします。
- ページ下部の履歴セクションで、ジョブにエラーや問題がないか確認します。
- また、[管理] > [オペレーション] > [ジョブ履歴] を選択して、ジョブのステータスを監視することもできます。
ジョブパラメーターの作成
Linda は、さまざまなジョブステップで使用するジョブパラメーターを作成できます。たとえば、ReplicationProcessID パラメーターを作成して、特定のレプリケーション処理の ID に設定することが考えられます。このパラメーターは、さまざまなジョブステップで使用できます。別のレプリケーション処理を使用する必要がある場合は、このパラメーターの値を変更すれば、B2C Commerce がそのパラメーターを含むすべてのステップを更新します。
ジョブパラメーターを設定した後、ステップパラメーターで再利用できるのは、元のパラメーターとまったく同じ方法で定義されているもののみです。
例:
- Linda が、Boolean の true/false 値を求めるステップパラメーターにジョブパラメーターを作成したとします。このジョブパラメーターを、文字列を求めるステップパラメーターに使用することはできません。
- 2 つのステップに、FileName という文字列パラメーターがあり、パターン制約が *.xml であるとします。この場合は、両方のステップにジョブパラメーターを定義できます。
- 1 つのステップに FileName という文字列パラメーターがあり、パターン制約が .xml で、もう 1 つのステップにも FileName の文字列パラメーターがありますが、このパターン制約は .txt であるとします。この場合は、両方のステップで使用するジョブパラメーターを定義することはできません。
いくつかのカスタムジョブステップに同じジョブパラメーターを設定したい場合、steptypes.json ファイルでこのステップパラメーターの定義種別が同一である必要があります。つまり、そのパラメーターの全属性がまったく同じように定義されていなければなりません。たとえば、Linda が同じジョブパラメーターを使用して、次の 2 つのカスタムステップパラメーターを設定することはできません。MyParameter1 の @type 属性は "long" で、MyParameter2 の @type 属性は "double" であるためです。
{ "@name":"MyParameter1", "@type":"long", "@required":"false", "description":"An optional long parameter. The default value is 10 when not defined.", "default-value":"10" }, "@name":"MyParameter2", "@type":"double", "@required":"true", "@trim":"true", "description":"A required double parameter were the raw value is trimmed, value must be between -10 and +10.", "min-value":"-10", "Max-value":"10" },
ジョブパラメーターの作成
- ジョブステップを作成するか、既存のステップを選択します。
- パラメーターを作成する項目をクリックします。
- [ジョブパラメーター] をクリックします。
- [ジョブパラメーターの追加] をクリックします。
- パラメーターの一意の名前を入力します。
- パラメーターの値を入力します。
- [保存] をクリックします。
- [割り当て] をクリックします。
- このパラメーターを別のジョブステップで使用する手順は、次のとおりです。
- このパラメーターを使用する項目をクリックします。
- [ジョブパラメーター] をクリックします。
- 使用するパラメーターを選択します。
- [割り当て] をクリックします。
ジョブパラメーターの変更
ジョブパラメーターを変更する手順は、次のとおりです。
- [ジョブステップ] タブで [ジョブパラメーター] を選択します。
- 変更するパラメーターを選択して、新しい値を入力します。
- [保存] をクリックします。