SMP for Salesforceを利用
-
補足事項バージョンアップについてバージョンごとの留意事項バージョンアップについてSMPforSalesforceについて、機能不具合の修正や機能改善を実施してアプリケーションのバージョンが上がった場合、インストール済みの組織のバージョンは強制的にアップデートされます。なんらかの理由で最新版になっていないアプリケーションを手動でアップデートする場合は、バージョンアップ手順をご参照ください。バージョンごとの留意事項バージョン1.22アップデートアップデート概要1.22より、SMP連携オブジェクトに「キャンペーン申込キャンセル」が追加されました。SFDCからSMPへの連携によって、SMPの申込をキャンセルすることが可能となります。具体的な利用方法は、SMPオブジェクトリファレンスのキャンペーン申込キャンセルをご参照ください。アップデート時の追加手順1.22より前のバージョンからアップデートした場合、キャンペーン申込キャンセルを利用するためには以下の追加手順が必要です。[設定]の[作成][オブジェクト]からカスタムオブジェクトの一覧を表示し、「オブジェクトマッピング」の詳細に進みます「カスタム項目&リレーション」欄の「SMP更新方法」をクリックして詳細へ進み、「値」欄に「DELETE」を新規追加しますオブジェクトマッピングの詳細へ戻り、「カスタム項目&リレーション」欄の「SMP連携オブジェクト名」をクリックして詳細へ進み、「値」欄に「キャンペーン申込キャンセル」を新規追加します「SMP連携オブジェクト名」の詳細に戻り、「項目の連携関係」欄の「SMP更新方法」の編集をクリックします項目の連携関係の編集で、「SMP連携オブジェクト名」の「キャンペーン申込キャンセル」に対して「SMP更新方法」の「DELETE」を選択し、保存します。上記設定により、オブジェクトマッピングでキャンペーン申込キャンセルを指定し、SMP更新方法にDELETEを指定できるようになります。バージョン1.23.1アップデートアップデート概要1.23.1にて、オブジェクトマッピングに項目「SMP取得件数」が追加されました。この値を調節することにより、SMPから1回で取得したデータサイズが大きすぎる場合にエラーになる現象を回避することができます。また、以前のバージョンでは上記データサイズ制限によってエラーになった場合に延々とSMPへのリクエストを繰り返していましたが、本バージョンより実行エラーで停止するようになりました。アップデート時の追加手順1.23.1より前のバージョンからアップデートした場合、この項目を利用するためにはオブジェクトマッピング画面のレイアウトを編集する必要があります。アプリケーションのバージョンアップを実施後、追加で下記の操作を行います。オブジェクトマッピングの詳細画面にて、「Force.comクイックアクセスメニュー」の「レイアウトを編集する」をクリックします画面上部の項目リストから「SMP取得件数」が選択できることを確認します。「SMP取得件数」をドラッグし、図の位置にドロップします上部の「保存」をクリックしてレイアウトを保存すると、オブジェクトマッピングの編集・詳細画面にて「SMP取得件数」を更新・閲覧できるようになります。バージョン1.23.2アップデートアップデート概要SOQLで利用可能な組み込みの変数「次回実行日時」NextRunDateTimeを利用できるようになりました。SFDCから取得するデータの範囲をより細かく制御できます。具体的には、SFDCから連携するデータを2回の連携ジョブで重複して取得しないようにすることができるようになります。変数「次回実行日時」の用途たとえば、ある連携ジョブで「最終更新日時が前回実行日時以降」という条件だけでSFDCデータの取得を行っていた場合、対象データには取得実行時までのものが含まれます。前回実行日時はそのジョブが終わると、その連携ジョブの開始した日時が入るので、前回の連携実行中に更新されたデータは、前回の連携と次回の連携の両方で対象データとして取得される可能性があります。これは、複数の連携ジョブや複数のオブジェクトマッピングを実行しているなど1度の連携ジョブの実行に時間がかかる場合に起きやすく、キャンペーン申込キャンセルなど繰り返し実行するとエラーになるような連携を実行している場合に問題となる場合があります。キャンペーン申込キャンセルを連携しているケースで例示すると、以下のようなイメージです。01:00-ジョブ<1回目>開始01:00-オブジェクトマッピング1(何かの連携)を開始01:02-申込キャンセル連携の対象レコードAを更新01:03-オブジェクトマッピング2(申込キャンセル)を開始 <前回実行日時>から現在までの更新を取得 レコードAを連携(キャンセル実行)→OK01:05-ジョブ<1回目>終了02:00-ジョブ<2回目>開始 オブジェクトマッピング1を開始02:03-オブジェクトマッピング2(申込キャンセル)を開始 前回実行日時=01:00から現在までの更新を取得 再びレコードAを連携(キャンセル実行)→キャンセル済みなのでエラー(NG)02:03-ジョブ<2回目>終了この問題を回避するために、次回実行日時の変数を利用して、「最終更新日時が前回実行日時以降、かつ、最終更新実行日時が次回実行日時以前」という条件を設定します。SOQL実行時、その時点で「次回実行日時」にはまだ現在実行中の連携ジョブが開始した日時が入っています(連携ジョブが正常完了すると、リスケジュールされて「次回の」日時に更新されます)そのため、データの取得範囲を「次回実行日時」以前とすることで、次回の連携ジョブ実行時には前回の取得範囲のデータが再度入らないようにすることができます。たとえば、以下のようなSOQLを指定します。SELECTId,SMP_ID__c,SMPApplicationStatus__cFROMCampaignMemberWHERESMP_ID__c!=nullANDSMPApplicationStatus__c='キャンセル'ANDLastModifiedDate:LastRunDateTimeANDLastModifiedDate=:NextRunDateTimeバージョン1.32アップデートアップデート概要連携ログの保存方法の改善SMPforSalesforceの連携ログの保存方法を変更しました。従来、連携ログは連携ジョブごとにファイル形式で分割・保存していましたが、Salesforceのレポート機能を利用して閲覧・出力する方式に変更します。連携ジョブ1回の処理量が多い場合でも、ログをひとつのExcelファイルとしてダウンロードできます。連携ログの出力内容の改善連携エラーになった連携元データの主キーを追加出力するように改善しました。エラー対象データを特定しやすくすることで、運用・導入時のトラブルシュートの負担を軽減します。停止した可能性のある連携ジョブを検知する機能を追加実行中のまま長時間経過した連携ジョブや、実行予定時刻を過ぎても実行開始していない連携ジョブを検知する機能を追加しました。Saleforceの基盤や想定外の障害等によって、連携ジョブの自動実行が停止してしまった可能性がある場合にメール送信します。既存データの判別に利用する項目(更新キー)を複数指定可能に連携先にデータがすでに存在するかどうかを判断するための更新キーに利用する項目を複数指定できるようにしました。たとえば、リード情報であればEmail+姓+名+会社名など複数の項目を利用して、連携先に既に該当するデータが存在するか判定することができます。一部フィルタ処理の不具合改善連携元データが空白の場合に処理をスキップすべき一部のフィルタ処理がエラーになる問題を改善しました。アップデート時の追加手順*連携ログ参照のために必要な設定連携ログの参照方法変更に伴い、追加の設定が必要です。カスタムオブジェクト「SMP_ログ」の設定変更[設定]→左上のクイック検索より「オブジェクト」で検索、カスタムオブジェクト設定へオブジェクト「SMP_ログ」を開き、「レポートで使用する」にチェックがついていることを確認します「レポートで使用する」にチェックがついていない場合、編集画面を開いて「レポートを許可」にチェックを入れて保存します連携ジョブの画面レイアウトを変更して「ログレポート」を表示連携ジョブの詳細画面にて、「レイアウトを編集する」(または「Force.comクイックアクセスメニュー」の「レイアウトを編集する」)をクリックします画面上部の項目リストから「ログレポート」が選択できることを確認します。「ログレポート」をドラッグし、図の位置にドロップします上部の「保存」をクリックしてレイアウトを保存すると、オブジェクトマッピングの編集・詳細画面にて「SMP取得件数」を更新・閲覧できるようになります。レイアウトを変更しても、項目「ログレポート」が表示されない場合、項目の参照権限が設定されていない可能性がありますレポートIDの設定セットアップ手順の連携ログレポートのレポートID設定を参照して、レポートIDをカスタム設定に登録してください。停止した連携ジョブ検知のための設定セットアップ手順の連携ジョブの停止検知機能のための設定を参照して設定を行ってください。(既に別途、検知のためのワークフロー等を導入済みであれば設定は不要です)バージョン1.34アップデートアップデート概要トークン取得エラー対応のためにリトライを追加タイムアウトを10秒から120秒へ延長https://smpdoc.shanon.co.jp/ja/cooperation/apex2/chapter009/
-
FAQ・トラブルシュート機能・仕様について連携実行時のトラブルシュート機能・仕様についてアプリケーションをインストールするSFDC組織のエディションに制限はありますか?本アプリケーションはSFDCのワークフローやトリガー等の機能を利用するため、Enterpriseエディション以上でのみご利用可能です。SFDC上でSMPのリード、キャンペーンに相当するオブジェクトをカスタムオブジェクトで設定することはできますか?はい、任意のカスタムオブジェクトを連携対象とすることが可能です。ただし、キャンペーンメンバーのようなリレーションを実現するためには、同様の参照関係を設定する必要があります。また、キャンペーンメンバーを利用する場合と同様、一時オブジェクトおよびSFDC→SFDC連携を利用して、参照関係を更新するよう設定を工夫する必要があります。連携ジョブが重複実行されることはありますか?スケジュールされたタイミングでの自動実行の場合、基本的に同時並列実行されません。連携ジョブの間で実行順の指定はユニーク制約がかかります。また、同一連携ジョブの実行中は「実行中フラグ」が立ち、同時実行しないようになっています。ただし、手動実行した場合は他の連携ジョブと同時実行される可能性があります。手動実行する場合、実行中の連携ジョブにご注意ください。一度失敗した連携ジョブを途中から実行することはできますか?途中で止まった連携ジョブを再開することはできません。また、ジョブが実行中のまま停止してしまった場合などは、トラブルシュートの連携ジョブが実行中のまま停止してしまった場合をご参照ください。連携ジョブのコピーはできますか?SFDC標準機能によるオブジェクト単位のコピーが可能です。別環境への移行等については、SFDC提供のデータローダで可能です。詳しくは、データのエクスポート・インポートの項をご参照ください。アプリケーションのインストールに伴い、顧客SFDC環境のカスタムタブを消費しますか?いいえ、消費しません。アプリケーション用のカスタムタブは実際に追加されますが、これらはインストールした組織のカスタムタブ数にはカウントされませんSMPに接続できない場合、リトライする機能はありますか?SMPに対するAPIコールは、3回までリトライされます。3回実行してSMPに接続できない場合は、異常終了します。連携用SFDCユーザーを変更することは可能ですか?可能です。SMPforSalesforceをインストールした後、連携ジョブを最初に作成・保存すると、[設定]の[スケジュール済みジョブ]に「SMP_SFDC_API_JOB」という名前のジョブが作成されます。このスケジュール済みジョブが保存されていることで、連携処理を定期実行するようになっています。このジョブの「登録実行者」には連携ジョブを作成した管理者が設定されており、連携処理の定期実行はこの管理者による操作として処理されます。連携処理を実行する管理者を変更するためには、このスケジュール済みジョブの「登録実行者」を変更する必要があります。連携ジョブを新規作成したタイミングでこのスケジュール済みジョブが存在しなければ自動作成されます。スケジュール済みジョブは1件だけ必要で、既に同名のジョブが存在する場合は何もしません。既存のスケジュール済みジョブを削除し、新しい管理者で連携ジョブを一度新規作成することで、新たな管理者を登録実行者としたスケジュール済みジョブを作成し直すことができます。変更手順は以下を参考ください。実行中の連携ジョブがないことを確認し、作成済みのすべての連携ジョブの有効フラグを外します[設定]→[ジョブ]→[スケジュール済みのジョブ]からジョブ名「SMP_SFDC_API_JOB」のジョブを削除しますスケジュールが削除されている間は、連携ジョブの定期実行が停止します新たに登録実行者とする管理者で、[連携ジョブ]の「新規」ボタンから連携ジョブを作成、必須項目に適当な値を入力してダミーの連携ジョブを保存しますこの連携ジョブは有効である(有効フラグにチェックを入れる)必要はありません。配下にオブジェクトマッピングなどを追加する必要もありません新たな管理者は、SMPforSalesforceに対する全権限と、連携対象データの操作権限がある標準ライセンスユーザーである必要がありますChatterユーザーなど、機能制限のある無料アカウントは利用できませんスケジュール済みのジョブに「SMP_SFDC_API_JOB」のジョブが再作成されていることを確認します上で作成した連携ジョブは、スケジュール済みジョブが作成された後に削除してもかまいません上の手順1で有効フラグを外した連携ジョブの有効フラグを元に戻します連携の定期実行を停止することはできますか?上記回答にある[スケジュール済みジョブ]の「SMP_SFDC_API_JOB」という名前のジョブを削除すると、定期的な自動実行は停止します。自動実行を再開する場合は、上記手順にあるように、連携実行者とする管理者ユーザーによって何らかの連携ジョブを新規登録してください。SFDCのAPIコールはどの程度消費しますか。その他、SFDCのガバナ制限に関連して注意すべき点はありますか?SMPforSalesforceでは、連携処理時のSFDCに対するデータ取得・更新はApexコードを通じてSFDC内で実行されるため、SFDC側のAPIコールは原則、消費しません。ちなみにSMPに対しては、SMPからのデータ取得時は100件ごとに1APIコール(単純なリード情報のみの場合。複数のオブジェクトを参照するリソースの場合、その数分コールします。たとえば、「キャンペーン申込」であればリード+キャンペーン+申込+申込フローなどの参照先それぞれのAPIメソッドが実行されます)、SMPへのデータ登録・更新時は1件ごとに存在チェックと登録・更新処理でそれぞれ1APIコール(1件あたり最低2コール)が、最低限発生するAPIコール数の目安となります。また、APIコール以外のApexガバナ制限についても、処理を分割するなど、原則として制限にかからないような作りになっております。処理件数が多い場合、トータルの実行時間は長くなりますが、単位時間あたりのリソース消費量は一定量に抑えているイメージです。処理性能については、パフォーマンスについてをご参照ください。さらにまた、SFDCで保持できるデータ量は契約によって異なります。連携するデータはもちろん、連携ログデータによっても容量を消費しますので、ログの保存期間の設定などにご注意ください。SMPforSalesforceを利用しているSFDC環境のSandboxを作成した場合、どのような影響がありますか?SMPforSalesforceでは、SMP接続設定というカスタム設定で接続先のSMP情報を保持しています。また、スケジュール済みジョブに設定があることで連携処理が定期実行されます。つまり、これらの情報も含めてSandboxを作成した場合、Sandbox環境から連携先に設定しているSMPへの連携が実行される可能性があります。Sandbox環境から意図しない連携が実行されてしまうのを確実に防ぐためには、Sandbox作成時はこれらの情報をコピーしないようにするか、Sandbox作成後にSMP接続設定を削除、または編集して有効チェックを外すか別の接続先に変更してください。また、作成した環境で連携を利用しない場合は、保存されている連携ジョブの有効フラグを外すか、または連携ジョブを削除ください。自動実行を停止する場合は、「スケジュール済みジョブ」の「SMP_SFDC_API_JOB」を削除してください。なお、SalesforceにおけるSandbox作成時の挙動や、コピー対象となるデータ等の正確な情報につきましては、恐れ入りますがSalesforceへご確認ください。ジョブの実行時間の長さによって、次回のジョブ実行の時間が遅くなることはありますか?ジョブの実行時間が繰り返しタイミングの時間内に収まっている場合、実行時間が遅くなる(後ろにずれる)ことはありません。たとえば、繰り返しタイミングを6時間と設定していてジョブ実行に平均3時間かかる場合、以下のようになります。(1回目)00:00開始→03:00終了(2回目)06:00開始→09:00終了(3回目)12:00開始→18:00終了一方、ジョブ実行が繰り返しタイミングに設定している時間よりも長くなってしまった場合は、次回の実行をスキップします。たとえば、繰り返しタイミングを3時間と設定していてジョブ実行に4時間かかる場合、以下のようになります。(1回目)00:00開始→04:00終了(2回目)03:00開始→(1回目が終わっていない=実行中のためスキップ)(3回目)06:00開始→10:00終了「キャンペーン申込」と「サブキャンペーン申込」、「キャンペーン申込」と「キャンペーン申込アンケート」、あるいは、「キャンペーン申込アンケート」と「アンケート履歴」の違いは?「キャンペーン申込」は、キャンペーン型のキャンペーンに対する申込情報を取得するためのオブジェクトです。一方、「サブキャンペーン申込」は、サブキャンペーン型のキャンペーンに対する申込情報を取得します。よって、取得したい申込情報のキャンペーンの型に応じてどちらを利用するか決めます。そもそもサブキャンペーン型キャンペーンを利用していない場合、「サブキャンペーン申込(アンケート)」は不要です。「(サブ)キャンペーン申込アンケート」は、「(サブ)キャンペーン申込」の内容に申込時のアンケート回答内容が追加されたものです。つまり、「(サブ)キャンペーン申込」の上位互換なので、「(サブ)キャンペーン申込」が取得可能な情報はすべて取得可能ですが、申込時のアンケート回答情報を取得する必要がない場合は、「(サブ)キャンペーン申込」を利用するとよいでしょう。「アンケート履歴」は、キャンペーンへの申込情報は取得せず、アンケート回答履歴を取得します。事後アンケート(キャンペーン申込者が回答可能なアンケート)の回答も取得できます。申込に関係なく、アンケート回答情報のみを取得したい場合は、こちらを利用します。連携実行時のトラブルシュートSMPへのAPI接続に失敗するケース1:SMP接続設定のURLのフォーマットが間違っている(プロトコル部(が入力されていない等)SMP接続設定で指定するURLはhttps://から始まるフォーマットで記述する必要があります。例:エラー例[2015-10-13T17:30:43.444JST]ERROR[JOB-ID:a0928000004dCimAAE]0300設定情報の取得に失敗しました。トークンケース2:リモートサイト設定を追加していない接続対象となるSMPのドメインは、SFDCの設定「セキュリティコントロール」にある「リモートサイト設定」に登録されている必要があります。エラー例[2015-10-20T16:26:46.250JST]FATAL[JOB-ID:a09280000045bqKAAQ]0300設定情報の取得に失敗しました。トークン[SMPAbRequest]Line:1102【System.CalloutException】Unauthorizedendpoint,pleasecheckSetup-Security-Remotesitesettings.endpoint=[2015-10-20T16:26:46.252JST]FATAL[JOB-ID:a09280000045bqKAAQ]0003ケース3:APIリクエストがIP制限にひっかかっている連携に使用するSMPのAPIキーはSFDC環境のIPアドレスからのリクエストを許可されている必要があるため、SMPforSalesforce専用に発行されたAPIキーを利用してください。SMPforSalesforceのために発行されたAPIキーを接続設定に指定しても下記のようなエラーが連携ログに出力される場合、サポートまでお問い合わせください。また、SMPのシステム設定でIP制限をドメイン全体に適用している場合は、SFDC環境のIPアドレスをその許可対象にも含める必要があります。ホワイトリスト登録が必要なSalesforceのIPアドレスとドメイン(Salesforceヘルプサイト)を参照し、「SalesforceのIP範囲」に記載されたIPアドレス範囲を「IP制限」の設定値に含めてください。(IP制限の設定を誤ると、管理画面も含め対象SMPにどこからもアクセスできなくなる可能性もあるため、設定変更は慎重に行ってください)エラー例ERROR[JOB-ID:a026F00000tZ0fZQAS]1012GET:/services/rest/visitorに1件失敗しました。403Forbiddenケース4:SMPがメンテナンス停止中SMP環境が停止メンテナンスを実施中の場合、連携実行できません。サービス再開後に再度お試しください。エラー例[2015-12-26T02:00:52.998JST]ERROR[JOB-ID:a0828000007EEUEAA4]1012GET:/services/rest/visitorに1件失敗しました。システムメンテナンスのお知らせ連携設定に起因するエラーや問題存在しないSFDCオブジェクトまたは項目をマッピングに指定している連携ジョブ実行時、項目マッピングに指定されているオブジェクトおよび項目が、実際に設定が存在するかチェックがかかります。存在しない場合は、エラーとなります。指定した項目のAPI参照名を確認し、実際の項目名に修正するか、カスタム項目を設定してください。エラー例[2015-10-20T16:23:47.332JST]FATAL[JOB-ID:a09280000045bqKAAQ]0003[SMPAbRequest]Line:220【SMPCOOP.SMPCheckObject.ExistObjectException】オブジェクトまたは項目が存在しません。オブジェクト[Lead]フィールド[SMP_ID__c]オブジェクトまたは項目が存在しません。オブジェクト[Lead]フィールド[SMP_ID__c](SMPCOOP)存在しないSMPの項目をAPIパラメータや項目マッピングに指定しているSMPに対して存在しない項目を条件に指定したAPIリクエストを実行すると、APIエラーが発生します。特に、追加項目のIDがその環境に存在するものかなど、APIパラメータや項目マッピングの指定に間違いがないかご確認ください。エラー例ERROR[JOB-ID:a026F00000tZ0fYQAS]1012GET:/services/rest/seminarに1件失敗しました。3000ReceiverServerError読み取り専用のSFDC項目を連携先の更新対象に指定している項目が存在していても、読み取り専用に設定されている項目は連携時に更新できません。書き込み可能な項目を指定してください。たとえば、各オブジェクトのid項目はシステムによる自動採番でユーザーによる書き込みができないため、項目マッピングによって書き込み先に指定することはできません。エラー例FATAL[JOB-ID:a2w5F000004VQnAQAW]0003[SMPAbRequest]Line:152【SMPCOOP.SMPCheckObject.AccessException】編集権限が無いオブジェクトまたは項目が存在します。オブジェクト[contact]フィールド[id]権限チェック中にエラーが発生しました。オブジェクト[contact]フィールド[id](SMPCOOP)必須入力の項目に空白値で登録しようとしている入力が必須の項目は、連携時に必ず値が入力されるようにします。エラー例[2015-10-20T16:42:38.592JST]ERROR[JOB-ID:a09280000045bqKAAQ]1102SFDC:leadのINSERTに失敗しました。Database.SaveResult[getErrors=(Database.Error[getFields=(Company);getMessage=値を入力してください:[Company];getStatusCode=REQUIRED_FIELD_MISSING;]);getId=null;isSuccess=false;][2015-10-20T16:42:38.596JST]INFO[JOB-ID:a09280000045bqKAAQ]1101SFDC:leadのINSERTに0件成功、1件失敗しました。SFDCからのデータ取得にSOQLを記述していて、select対象に含めていない項目をマッピング設定してしまったSOQLを記述する場合、項目マッピングに指定する項目はすべてselect句の対象に含める必要があります。エラー例(1)[2015-10-24T04:52:01.507JST]ERROR[JOB-ID:a09280000057015AAA]2100フィルター処理エラー。レコード=Lead:{Id=00Q28000002kL0EEAU,LastName=鈴木,Company=シャノンテスト社,SMP_ID__c=5}[SMP]Line:75【SMPCOOP.Filter.FilterException】SObjectrowwasretrievedviaSOQLwithoutqueryingtherequestedfield:Lead.FirstName(SMPCOOP)[2015-10-24T04:52:01.508JST]FATAL[JOB-ID:a09280000057015AAA]0003[SMPAbRequest]Line:1664【SMPCOOP.SMP.SMPException】SObjectrowwasretrievedviaSOQLwithoutqueryingtherequestedfield:Lead.FirstName(SMPCOOP)エラー例(2)[2016-05-02T01:05:00.371JST]INFO[JOB-ID:a0828000007EEUBAA4]0000SOQL.query:SELECTId,SessionTitle__c,Lead__c,Campaign__c,SMP_ID__c,SMP_VS_ID__cFROMSubCampaignApplicationEnquete__cWHERELead__c!=nullANDCampaign__c!=nullANDVisitorId__c=:var1ANDSessionId__c=:var3ORDERBYidLIMIT1[2016-05-02T01:05:00.443JST]FATAL[JOB-ID:a0828000007EEUBAA4]0003[SMPAbRequest]Line:811【System.NullPointerException】Attempttode-referenceanullobject(SMPCOOP)SMP項目の指定にプレフィックスが付いていないか、間違っている項目マッピングや、更新キーにSMPの項目を指定する場合、APIメソッド名をプレフィックスに含めた形式(Visitor.Name1など)で正確に指定する必要があります。(参考:項目表記フォーマット)エラー例[2015-11-19T17:22:02.424JST]INFO[JOB-ID:a09280000057HXEAA2]1000ジョブ:L1:リード新規(SFDC→SMP)を開始します。[2015-11-19T17:22:07.538JST]INFO[JOB-ID:a09280000057HXEAA2]0000SOQL.query:SELECTId,SMP_ID__c,Email,FirstName,LastName,CompanyFROMLeadWHERELastModifiedById!='005280000018AFK'ANDIsConverted=FALSEORDERBYidLIMIT1[2015-11-19T17:22:07.565JST]FATAL[JOB-ID:a09280000057HXEAA2]0003[SMPAbRequest]Line:784【System.NullPointerException】Argumentcannotbenull.(SMPCOOP)変数の格納対象に、連携元ではなく連携先の項目を指定している変数に格納可能な項目は、連携元で、かつ、項目マッピングに指定されているものです。エラー例[2015-11-19T18:38:32.636JST]ERROR[JOB-ID:a09280000057HXEAA2]2000変数処理中にエラーが発生しました。オブジェクトID=a0D280000016qX8EAI[SettingUtils]Line:669【System.SObjectException】InvalidfieldVisitor.IdforLead(SMPCOOP)更新キーに一致するレコードがあるにも関わらず、新規レコードとして連携してしまう原因(1)項目名の記述が間違っているか、項目マッピングが設定されていない可能性があります。更新キーに対して検索する連携元の項目は項目マッピングから参照するので、更新キーに指定する項目は、必ず項目マッピングもあわせて設定してください。原因(2)SFDCには、入力値の先頭末尾の空白を自動的に削除して登録する仕様があります。そのため、たとえばSMPリードとSFDC取引先の間で、会社名・取引先名を更新キーに指定しているような場合、SMPで先頭または末尾に空白を含む会社名でデータを登録すると、更新キーによる存在チェック時は空白を含む値でチェックしますが、実際に連携によってSFDCに登録される会社名からは空白が自動削除されるので、更新キーに一致することなく連携のたびにSFDCに新規レコードが作成されます。一部のSMPデータのみが、更新のたびにSFDCで新規作成されるような場合は、こちらの可能性についても(SMPのデータに空白が含まれていないか)ご確認ください。連携処理に時間がかかるケース1:SOQL変数を利用して取得条件を指定している場合たとえば、SMPから取得したデータ項目を変数に格納し、続くオブジェクトマッピングでSFDCからの取得条件のSOQLにその変数を利用しているような場合があるとします。たとえば、以下のようなSOQLを設定しているとします。SELECTId,Email,dup_key__cFROMLeadWHEREEmail=:var1ANDIsConverted=FALSEここで、変数:var1には、直前のオブジェクトマッピングで取得したSMPリードのメールアドレスがされているものとします。実際に取得したSMPリードが存在した場合はその件数で該当するLeadだけを取得します。しかし、取得した件数がゼロ件だった場合、:var1の中身は空になるので、Emailが空欄のリードをすべて取得することになり、存在するデータ量によっては大幅に時間がかかる可能性があります。これを防ぐために、SOQLの条件に変数を利用する場合は、以下のように空欄でないデータを対象とするように条件を指定します。SELECTId,Email,dup_key__cFROMLeadWHEREEmail=:var1ANDEmail!=nullANDIsConverted=FALSEこれにより、実際に該当するデータ量に応じた処理時間になることが期待できます。当然、実際に該当件数が多い場合は、相応の実行時間となります。環境に起因する問題エラー通知メールが送信されないメール送信のアクセス制御によって、メール送信ができない場合があります。特に、Sandbox環境の場合、デフォルトでメール送信は「システムメールのみ」に制限されているので、SFDCのメール管理設定をご確認ください。参考ヘルプサイト)連携ジョブが実行中のまま停止してしまった場合連携実行中に予期しないエラー(SFDC自体の障害や負荷、SMPからの想定外のレスポンス等)によって、連携ジョブが実行中のまま停止してしまう場合があります。具体的には、連携ジョブの「実行中」フラグにチェックがついたまま、(連携対象のデータ量に比較して)長時間処理状況が進捗しない状態を指します。以下の観点で、連携ジョブが実際停止してしまっていることを確認し、調査に必要なデータを収集します。「実行中」のままになっている連携ジョブを確認する連携処理が完了すると「実行中」フラグはOFFになり、次回実行日時が更新されます。もし、実行中のチェックがついたまま、実行日時を大きく超過している場合「SMP_ログ」タブのレコードを確認し、保存します・連携ジョブが実際に実行されている場合、処理が進捗するにつれて「SMP_ログ」のデータが増えていきます。連携処理が完了すれば、このデータは連携ジョブごとのログ・ファイルに保存され、SMP_ログからはデータが自動的に削除されます。・連携ジョブが中断してしまった場合、「SMP_ログ」にデータが残ったままになっている場合があります。このデータはログ保存期間の設定によって、指定日数を超えると自動的に削除されてしまうため、もしここにデータが残っている場合は、画面キャプチャやデータローダー等を利用して内容を保存します。あるいは、SMP接続設定タブからログ保存期間の日数をより大きい値に変更し、自動削除されるまでの期間を延ばします。・ここのデータが増え続けている場合、連携処理は継続しています。単純に連携対象が多い場合、この状態は正常ですが、連携対象が多くないにも関わらずこの状態が長時間継続する場合は、想定外のエラー等により処理がループしている可能性があります。(以下のApexジョブから停止させる必要がある可能性があります)SFDCの[設定]にて、[Apexジョブ]および[ApexFlexキュー]の状態を確認します・SFDCのジョブ実行機構そのものに問題があった場合、Apexジョブのキュー状況が正常でない可能性があります。・Apexジョブに処理中のままのものが残っていたり、同じ内容のキューが繰り返し登録され続けているような場合、対象のApexジョブを「中止」させる必要があります。・ジョブを中止させる場合、以下の手順を参考ください。[設定][ジョブ][スケジュール済みジョブ]から、ジョブ名が「SMP_SFDC_API_JOB」のジョブを削除します連携設定用管理者で、ダミーの連携ジョブをひとつ新規作成します(これにより、スケジュール済みジョブが再設定されます)「Apexジョブ」にスタックしているSMPforSalesforceのジョブを上から順にすべて「中止」します「ApexFlexキュー」が、ジョブの中止によってクリアされていることを確認しますこれらの情報から問題の原因が判明する場合は、その対応を行い、下記の復旧手順を実施します。原因が分からない場合、上で収集した情報を含め、サポートまでお問い合わせください。停止した連携の復旧手順連携ジョブが停止してしまった場合、以下の手順で復旧します。再実行してよい連携ジョブのみ「有効」フラグにチェックがついた状態にします(=再実行させない連携ジョブの有効フラグを外す)基本的には、途中停止してしまったジョブとそれ以降に実行されるはずだった連携ジョブのみ、有効な状態にします。すべてのジョブの「実行中」フラグのチェックを外します「SMP接続設定一覧」タブから連携ジョブバッチ実行を押下し手動実行しますジョブが完了したら「有効」フラグを元に戻しますすべてのジョブの「前回実行日時」を「次回実行日時」と同じにしますすべてのジョブの「次回実行時間」を、次回自動実行されるべき未来の日時(時刻は00分)に変更しますhttps://smpdoc.shanon.co.jp/ja/cooperation/apex2/chapter008/
-
重要な制限事項機能面における制限事項ご利用にあたっての注意事項パフォーマンスについて機能面における制限事項削除データは連携しません連携元のレコードを削除した場合でも、自動的に連携先のデータを削除することはありません。手動で連携先のデータを削除する必要があります。リードデータを手動マージした場合も同様に、連携先でも同様にマージや削除を行う必要があります。SMPの来場取り消しは連携しませんSMPにおける来場の取り消しは来場データの削除に相当するため、連携によって反映させることができません。一度「来場済み」として連携された来場履歴を取り消した場合は、手動でSFDCから削除等行う必要があります。連携設定後に追加された項目は連携対象に含まれません連携設定後に追加・変更されたSMPまたはSFDCの追加項目、カスタム項目を連携対象に含める場合は、項目マッピングを追加する必要があります。項目のタイプ別の注意事項SMPにおけるファイル型、画像型の項目は連携サポート対象外ですSMPにおける数値型項目では10進数で表記するには大きい数や小さい数が指数表現として出力される場合がありますが、通常表記に変換するフィルターはありませんご利用にあたっての注意事項SFDCリードが取引先責任者に昇格(商談化)する際の注意事項一般的にSFDCでは、リードは「取引の開始」処理によって、取引先および取引先責任者に昇格します。昇格後、リード情報は取引先または取引先責任者に引き継がれ、元のリードは参照できなくなります。SFDCにおけるリードと取引先責任者は別オブジェクトであるため、それぞれに対応したオブジェクトマッピングを設定する必要があります。また、連携のために追加した項目は、昇格時に引き継がれるようにする必要がある場合があります。たとえば、リードにカスタム項目として「SMP_ID」を設定してSMP上のリードIDを保持している場合、取引先責任者にも同様のカスタム項目を設定し、昇格時にSMP_IDを引き継いで、引き続き取引先責任者とSMPリードが連携されるようにすることなどが可能です。同じオブジェクトを双方向で連携する場合の注意事項同じオブジェクト間の連携(たとえばSMPリード⇔SFDCリード)を双方向に設定した場合、連携による更新が、次回バッチで再度更新として認識されてしまうため、一度更新対象となったレコードが、バッチ処理のたびに延々更新される状態になってしまいます。たとえば、リード情報を相互に更新している場合、SMPでの更新がSFDCに反映され、次回バッチではそのSFDCの更新がSMPに反映され、さらに次回のバッチではそのSMPの更新がSFDCに反映され、、、といったように、常に差分ありとして認識されるようになります。対策として、SFDCでのデータ取得時の条件に、「最終更新者が連携設定したシステム管理者でない」ことを追加することで防止することが可能です。詳しくは、「データ連携チュートリアル」の項をご参照ください。パフォーマンスについてSMPへの登録・更新パフォーマンスはSMPのAPI性能に依存します。一方、SFDCへの登録・更新処理はApexコードの実行によるSFDCのプラットフォーム内の処理性能に依存します。一般的に言って、Apexコードによる内部処理よりも、APIによる処理のほうが時間がかかります。連携オブジェクトの種類に依りますが、SMPに登録・更新する場合は、1時間あたり数百件程度連携できます。オブジェクトマッピング単位での処理性能の目安はおおよそ、以下のとおりです。連携方向1時間あたりの処理件数目安SMP→SFDCリード連携でおよそ50,000件/時間SFDC→SMPリード連携でおよそ600件/時間SFDC→SFDCリード参照関係の更新でおよそ1,000件/時間注意処理性能は対象環境の状態やレコード内容によって変化します。あくまで参考値としてご理解ください。また、Force.comプラットフォーム上で動作する仕組みであるため、SFDCのガバナ制限による制約を受けます。アプリケーションの処理においては、原則、制約の範囲でおさまるように実装していますが、たとえば連携対象に極端にデータサイズの大きいものが含まれる場合など、制限によってエラーとなる可能性があります。https://smpdoc.shanon.co.jp/ja/cooperation/apex2/chapter007/
-
SMP連携オブジェクトリファレンスSMP連携オブジェクトごとにAPIの仕様について記述します。連携オブジェクトによって、連携元として利用する場合に必須となる項目マッピングが存在します。SMPからデータ取得する場合のSMP連携オブジェクトごとのAPI仕様SMPへのデータ登録・更新・削除場合のSMP連携オブジェクトごとのAPI仕様SMPからデータ取得する場合のSMP連携オブジェクトごとのAPI仕様SMPからデータ取得する場合のSMP連携オブジェクトごとのAPI仕様です。実際に利用されるSMPAPIと必須となる項目マッピングは、次のとおりです。リードキャンペーンサブキャンペーンキャンペーン申込サブキャンペーン申込キャンペーン申込アンケートサブキャンペーン申込アンケートキャンペーン来場サブキャンペーン来場メール履歴クリックカウント履歴アンケート履歴活動履歴資料ダウンロード履歴Webトラッキング履歴Webトラッキングセッション履歴割引履歴1.リードデータ取得時に利用されるSMPAPIメソッドvisitor.getデータ取得時に必要な項目マッピング特にありません2.キャンペーンデータ取得時に利用されるSMPAPIメソッドseminar.getデータ取得時に必要な項目マッピング特にありません3.サブキャンペーンデータ取得時に利用されるSMPAPIメソッドseminar.getSessionデータ取得時に必要な項目マッピング特にありません4.キャンペーン申込注意・「キャンペーン申込」オブジェクトではサブキャンペーンへの申込情報は取得できません。サブキャンペーン申込情報を取得する場合は、キャンペーン申込とは別に「サブキャンペーン申込」オブジェクトを利用してオブジェクトマッピングを設定してください。・「キャンペーン申込」オブジェクトでは申込に伴うアンケート回答情報は取得できません。アンケート回答情報も取得する必要がある場合は、「キャンペーン申込アンケート」オブジェクトを利用してください。データ取得時に利用されるSMPAPIメソッドvisitor.getApplicationSeminarvisitor.getApplicationvisitor.getseminar.getFlowseminar.getデータ取得時に必要な項目マッピング最低限、設定すべき項目マッピングは、次のとおりです。visitor.getApplicationSeminarSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性申込IDVisitorApplicationSeminar.TransactionIdList外部IDSMP項目が選択リストリードIDVisitorApplicationSeminar.VisitorId任意--なし--visitor.getApplicationSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性申込IDVisitorApplication.Id任意--なし--申込フローIDVisitorApplication.ApplicationFlow任意SMP項目が選択リストvisitor.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性リードIDVisitor.Id任意--なし--seminar.getFlowSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性申込フローIDSeminarFlow.Id任意--なし--キャンペーンIDSeminarFlow.Seminar任意SMP項目が選択リストseminar.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性キャンペーンIDSeminar.Id任意--なし--5.サブキャンペーン申込データ取得時に利用されるSMPAPIメソッドvisitor.getApplicationSessionvisitor.getApplicationvisitor.getseminar.getFlowseminar.getseminar.getSessionデータ取得時に必要な項目マッピング最低限、設定すべき項目マッピングは、次のとおりです。visitor.getApplicationSessionSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性申込IDVisitorApplicationSession.TransactionIdList外部IDSMP項目が選択リストリードIDVisitorApplicationSession.VisitorId任意--なし--サブキャンペーンIDVisitorApplicationSession.session任意SMP項目が選択リストvisitor.getApplicationSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性申込IDVisitorApplication.Id任意--なし--申込フローIDVisitorApplication.ApplicationFlow任意SMP項目が選択リストvisitor.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性リードIDVisitor.Id任意--なし--seminar.getFlowSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性申込フローIDSeminarFlow.Id任意--なし--キャンペーンIDSeminarFlow.Seminar任意SMP項目が選択リストseminar.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性キャンペーンIDSeminar.Id任意--なし--seminar.getSessionSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性サブキャンペーンIDSeminarSession.Id任意--なし--6.キャンペーン申込アンケート注意「キャンペーン申込アンケート」オブジェクトではサブキャンペーンへの申込情報は取得できません。サブキャンペーン申込情報を取得する場合は、キャンペーン申込アンケートとは別に「サブキャンペーン申込アンケート」オブジェクトを利用してオブジェクトマッピングを設定してください。データ取得時に利用されるSMPAPIメソッドvisitor.getApplicationSeminarvisitor.getApplicationvisitor.getseminar.getFlowseminar.getvisitor.getEnqueteenquetehistory.getデータ取得時に必要な項目マッピング最低限、設定すべき項目マッピングは、次のとおりです。visitor.getApplicationSeminarSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性申込IDVisitorApplicationSeminar.TransactionIdList外部IDSMP項目が選択リストリードIDVisitorApplicationSeminar.VisitorId任意--なし--visitor.getApplicationSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性申込IDVisitorApplication.Id任意--なし--申込フローIDVisitorApplication.ApplicationFlow任意SMP項目が選択リストアンケート回答情報ID*VisitorApplication.EnqueteDataId任意--なし--visitor.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性リードIDVisitor.Id任意--なし--seminar.getFlowSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性申込フローIDSeminarFlow.Id任意--なし--キャンペーンIDSeminarFlow.Seminar任意SMP項目が選択リストseminar.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性キャンペーンIDSeminar.Id任意--なし--visitor.getEnqueteSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性アンケート回答情報ID*VisitorEnquete.DataId任意--なし--アンケート履歴ID*VisitorEnquete.HistoryId任意--なし--enquetehistory.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性アンケート履歴ID*Enquetehistory.Id任意--なし--補足アンケート回答を持たない申込情報を取得した場合は、値が存在しません。7.サブキャンペーン申込アンケートデータ取得時に利用されるSMPAPIメソッドvisitor.getApplicationSessionvisitor.getApplicationvisitor.getseminar.getFlowseminar.getseminar.getSessionvisitor.getEnqueteenquetehistory.getデータ取得時に必要な項目マッピング最低限、設定すべき項目マッピングは、次のとおりです。visitor.getApplicationSessionSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性申込IDVisitorApplicationSession.TransactionIdList外部IDSMP項目が選択リストリードIDVisitorApplicationSession.VisitorId任意--なし--サブキャンペーンIDVisitorApplicationSession.session任意SMP項目が選択リストvisitor.getApplicationSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性申込IDVisitorApplication.Id任意--なし--申込フローIDVisitorApplication.ApplicationFlow任意SMP項目が選択リストアンケート回答情報ID*VisitorApplication.EnqueteDataId任意--なし--visitor.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性リードIDVisitor.Id任意--なし--seminar.getFlowSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性申込フローIDSeminarFlow.Id任意--なし--キャンペーンIDSeminarFlow.Seminar任意SMP項目が選択リストseminar.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性キャンペーンIDSeminar.Id任意--なし--seminar.getSessionSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性サブキャンペーンIDSeminarSession.Id任意--なし--visitor.getEnqueteSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性アンケート回答情報ID*VisitorEnquete.DataId任意--なし--アンケート履歴ID*VisitorEnquete.HistoryId任意--なし--enquetehistory.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性+アンケート履歴ID*Enquetehistory.Id任意--なし--補足アンケート回答を持たない申込情報を取得した場合は、値が存在しません。8.キャンペーン来場データ取得時に利用されるSMPAPIメソッドvisitor.getAttendanceSeminarseminar.getvisitor.getデータ取得時に必要な項目マッピング最低限、設定すべき項目マッピングは、次のとおりです。visitor.getAttendanceSeminarSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性+来場履歴IDVisitorAttendanceSeminar.Id外部ID--なし--キャンペーンIDVisitorAttendanceSeminar.Seminar任意SMP項目が選択リストリードIDVisitorAttendanceSeminar.VisitorId任意--なし--seminar.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性キャンペーンIDSeminar.Id任意--なし--visitor.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性リードIDVisitor.Id任意--なし--9.サブキャンペーン来場データ取得時に利用されるSMPAPIメソッドvisitor.getAttendanceSessionseminar.getSessionseminar.getvisitor.getデータ取得時に必要な項目マッピング最低限、設定すべき項目マッピングは、次のとおりです。visitor.getAttendanceSessionSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性来場履歴IDVisitorAttendanceSession.Id外部ID--なし--サブキャンペーンIDVisitorAttendanceSession.Session任意SMP項目が選択リストリードIDVisitorAttendanceSession.VisitorId任意--なし--seminar.getSessionSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性サブキャンペーンIDSeminarSession.Id任意--なし--キャンペーンIDSeminarSession.Seminar任意SMP項目が選択リストseminar.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性キャンペーンIDSeminar.Id任意--なし--visitor.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性リードIDVisitor.Id任意--なし--10.メール履歴データ取得時に利用されるSMPAPIメソッドvisitor.getMailvisitor.getデータ取得時に必要な項目マッピング最低限、設定すべき項目マッピングは、次のとおりです。visitor.getMailSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性メール情報IDVisitorMail.Id外部ID--なし--リードIDVisitorMail.VisitorId任意--なし--visitor.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性リードIDVisitor.Id任意--なし--11.クリックカウント履歴データ取得時に利用されるSMPAPIメソッドvisitor.getClickcountclickcounturl.getvisitor.getデータ取得時に必要な項目マッピング最低限、設定すべき項目マッピングは、次のとおりです。visitor.getClickcountSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性クリックカウント履歴IDVisitorClickcount.Id外部ID--なし--クリックカウントURLIDVisitorClickcount.ClickCountUrlId任意--なし--リードIDVisitorClickcount.VisitorId任意--なし--clickcounturl.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性クリックカウントURLIDClickcounturl.Id任意--なし--visitor.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性リードIDVisitor.Id任意--なし--12.アンケート履歴データ取得時に利用されるSMPAPIメソッドvisitor.getEnqueteenquetehistory.getvisitor.getデータ取得時に必要な項目マッピング最低限、設定すべき項目マッピングは、次のとおりです。visitor.getEnqueteSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性アンケート履歴ID-リードIDVisitorEnquete.Id外部ID--なし--アンケート履歴IDVisitorEnquete.HistoryId任意--なし--リードIDVisitorEnquete.VisitorId任意--なし--enquetehistory.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性アンケート履歴IDEnquetehistory.Id任意--なし--visitor.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性リードIDVisitor.Id任意--なし--13.活動履歴データ取得時に利用されるSMPAPIメソッドvisitor.getActivityvisitor.getデータ取得時に必要な項目マッピング最低限、設定すべき項目マッピングは、次のとおりです。visitor.getActivitySMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性活動履歴IDVisitorActivity.Id外部ID--なし--リードIDVisitorActivity.VisitorId任意--なし--visitor.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性リードIDVisitor.Id任意--なし--14.資料ダウンロード履歴データ取得時に利用されるSMPAPIメソッドvisitor.getDocumentdownloaddocument.getvisitor.getデータ取得時に必要な項目マッピング最低限、設定すべき項目マッピングは、次のとおりです。visitor.getDocumentdownloadSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性資料ダウンロード履歴IDVisitorDocumentdownload.Id外部ID--なし--資料IDVisitorDocumentdownload.DocumentId任意--なし--リードIDVisitorDocumentdownload.VisitorId任意--なし--document.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性資料IDDocument.Id任意--なし--visitor.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性リードIDVisitor.Id任意--なし--15.Webトラッキング履歴データ取得時に利用されるSMPAPIメソッドvisitor.getTrackingaccesslogvisitor.getデータ取得時に必要な項目マッピング最低限、設定すべき項目マッピングは、次のとおりです。visitor.getTrackingaccesslogSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性アクセス履歴IDVisitorTrackingaccesslog.Id外部ID--なし--リードIDVisitorTrackingaccesslog.VisitorId任意--なし--visitor.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性リードIDVisitor.Id任意--なし--16.Webトラッキングセッション履歴データ取得時に利用されるSMPAPIメソッドvisitor.getTrackingsessionvisitor.getデータ取得時に必要な項目マッピング最低限、設定すべき項目マッピングは、次のとおりです。visitor.getTrackingsessionSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性トラッキングセッション履歴IDVisitorTrackingsession.Id外部ID--なし--リードIDVisitorTrackingsession.VisitorId任意--なし--visitor.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性リードIDVisitor.Id任意--なし--17.割引履歴データ取得時に利用されるSMPAPIメソッドvisitor.getDiscounthistoryseminar.getDiscountvisitor.getApplicationvisitor.getデータ取得時に必要な項目マッピング最低限、設定すべき項目マッピングは、次のとおりです。visitor.getDiscounthistorySMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性割引履歴IDVisitorDiscounthistory.Id外部ID--なし--申込履歴IDVisitorDiscounthistory.ApplicationId任意--なし--割引IDVisitorDiscounthistory.DiscountId任意--なし--seminar.getDiscountSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性割引IDSeminarDiscount.Id任意--なし--visitor.getApplicationSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性申込IDVisitorApplication.Id任意--なし--リードIDVisitorApplication.VisitorId任意--なし--visitor.getSMP項目名SMP項目または連携先SFDC項目SFDC項目SMP項目の属性リードIDVisitor.Id任意--なし--SMPへのデータ登録・更新・削除場合のSMP連携オブジェクトごとのAPI仕様SMPへのデータ連携は、「SMPオブジェクト名とAPIの対応表」ページに記載されているAPIメソッドの実行によって実現します。連携可能な項目については、APIマニュアルにて対応するメソッドを参照しつつ、連携設定を行ってください。以下では、一部の特殊仕様を持つメソッドについて説明します。キャンペーン申込SMPへのキャンペーン申込を実行するためには、SMPのキャンペーン申込API(application.post)に必要なパラメータと項目をリクエストするように連携設定を行う必要があります。以下のパラメータおよび項目が必須です。申込フローID(APIパラメータapplication_flow_id)キャンペーンID(SsDataId)申込数(NumberOfApplication)また、キャンペーン申込APIは、ひとつのメソッドの中で複数のエレメント(VisitorData,Transaction,etc)を指定する特殊な仕様になっています。そのため、項目マッピングでも項目名の部分をApplication.Transaction_SsDataIdのように、アンダースコアを区切り文字として_を表記します。さらに、キャンペーン申込APIは登録成功すると申込IDとリードIDの2つをレスポンスします。これらを格納するために、「SMPAPIレスポンスで格納する要素」「SMPAPIレスポンスを格納するSFDC項目」をカンマ区切りで複数指定することができます。キャンペーン申込の連携設定例連携元のSFDCオブジェクトに、以下のAPI名の項目が作成されているとして、最低限の設定例を下記に例示します。SMP_ID__c(申込IDを格納するための項目)SMP_V_ID__c(リードIDを格納するための項目)SMP_Flow_ID__c(SMP申込フローIDを保持している項目)SMP_Seminar_ID__c(SMPキャンペーンIDを保持している項目)オブジェクトマッピングの「SFDC→SMP」部分の設定例は以下のようになります。申込ID、リードIDをそれぞれレスポンスから格納するようにしています。項目名設定値SMP更新キーApplication.IdSMP更新方法POSTSMPAPIレスポンスで格納する要素Id,VisitorIdSMPAPIレスポンスを格納するSFDC項目SMP_ID__c,SMP_V_ID__cAPIパラメータは以下のように設定します。SMP_Flow_ID__cを括弧で括っている点に注意してください。APIパラメータキーAPIパラメータ内容検索オペレータ前回実行日・条件日時を指定application_flow_id(SMP_Flow_ID__c)eq--なし--ignore_itemcheck1eq--なし--項目マッピングは以下のように設定します。TransactionエレメントのCartListに指定する項目について、「SMP項目の属性」として「SMP項目がカート一覧」を指定している点に注意してください。SMP項目または連携先SFDC項目SFDC項目SMP項目の属性Application.IdSMP_ID__c--なし--Application.Transaction_SsDataIdSMP_Seminar_ID__cSMP項目がカート一覧Application.Transaction_NumberOfApplicationSMP_Seminar_ID__cSMP項目がカート一覧また、申込数を1で固定するため、上で設定した項目マッピング「Application.Transaction_NumberOfApplication」に対して、以下のフィルターを設定します。フィルター種類フィルター式実行順序固定値の代入[1]1オブジェクトマッピングの設定画面の例は以下のようになります。キャンペーン申込の注意・制限事項申込時の、登録時言語の指定はサポートされていませんその他、キャンペーン申込APIの仕様・制限事項について、「キャンペーン申込・会員登録API」もご参照ください。キャンペーン申込キャンセルSMPへのキャンペーン申込を実行するためには、SMPのキャンペーン申込API(application.delete)に必要なパラメータと項目をリクエストするように連携設定を行う必要があります。以下のパラメータおよび項目が必須です。申込ID(APIパラメータによってキャンセル対象の申込のIDを指定します)キャンペーン申込キャンセルの連携設定例連携元のSFDCオブジェクトに、以下のAPI名の項目が作成されているとして、最低限の設定例を下記に例示します。SMP_ID__c(申込IDを格納するための項目)オブジェクトマッピングの「SFDC→SMP」部分の設定例は以下のようになります。項目名設定値SMP更新キーApplication.IdSMP更新方法DELETESMPAPIレスポンスで格納する要素Application.IdSMPAPIレスポンスを格納するSFDC項目SMP_ID__cAPIパラメータは以下のように設定します。SMP_ID__cを括弧で括っている点に注意してください。APIパラメータキーAPIパラメータ内容検索オペレータ前回実行日・条件日時を指定id(SMP_ID__c)eq--なし--項目マッピングは以下のように設定します。SMP項目または連携先SFDC項目SFDC項目SMP項目の属性Application.IdSMP_ID__c--なし--キャンペーン申込キャンセルの注意・制限事項キャンセル実行時はSMPAPIレスポンスから格納できる情報はありませんそのため、「SMPAPIレスポンスで格納する要素」「SMPAPIレスポンスを格納するSFDC項目」への入力は擬似設定であり、実効性はありませんその他、キャンペーン申込APIの仕様・制限事項について、「申込キャンセルAPI」もご参照ください。https://smpdoc.shanon.co.jp/ja/cooperation/apex2/chapter006/
-
機能リファレンス機能ごとの項目や操作の詳細について記載します。連携ジョブオブジェクトマッピング項目マッピングAPIパラメータ変数定義フィルターテーブル変換連携ジョブ実行結果(SMP_ログ)とエラー通知設定データのエクスポート・インポートフィルターを利用した項目連携のTips連携ジョブ新規作成新しく連携ジョブを作成する場合は、[連携ジョブ]タブから[新規]をクリックします以下の項目を入力し、[保存]をクリックして設定を保存します項目入力内容ジョブ名連携ジョブを表現する、適当な名前を入力します。連携ジョブID連携ジョブを識別するためのIDを入力します。(半角英数字で入力します)繰り返しタイミング連携ジョブのバッチ処理実行間隔を指定します。起動時刻繰り返しタイミングを「毎日」よりも広く指定した場合、バッチ処理の実行時間を指定します。00:00~23:00の毎時0分を指定可能です。条件「前回実行日時から実行」または「条件時間から実行」を選択します。条件時間「条件」にて「条件時間から実行」を指定した場合、その条件となる日時を指定します。前回実行日時この連携ジョブの、直前に実行された日時がバッチ処理実行時に自動的にセットされます。次回実行日時この連携ジョブの、次に実行される日時がバッチ処理実行時に自動的にセットされます。エラー時制御連携するデータでエラーが発生した場合に処理を継続するかどうかを指定します。「続行」または「停止」を選択します。エラー通知先連携ジョブでエラーが発生した場合に通知するメールアドレスを入力します。(半角英数字で入力します)実行順序連携ジョブの中での実行順序を指定します。バッチ実行のタイミングで、数字の若いジョブから順次実行します。(半角数字で入力します)有効連携ジョブを実際に動作させる場合は、チェックをつけます。ここにチェックがついていない連携ジョブは、設定されていても実行をスキップします。ジョブ実行中この連携ジョブが実行中の場合、自動的にチェックがつきます。基本的に、手動で設定する必要はありません。説明この連携ジョブについての任意の説明文やメモを入力します。ログレポートこの連携ジョブの直近の連携ログを表示するためのリンクです。(参照のみ)設定済み連携ジョブの操作設定した連携ジョブの内容を確認する場合は、[連携ジョブ]タブから任意のビューを選択し、[Go!]ボタンをクリックします設定済みの連携ジョブの一覧が表示されるので、確認したい連携ジョブのジョブ名をクリックして詳細を確認します連携ジョブを編集・削除する場合は、一覧または詳細から[編集]または[削除]をクリックしますオブジェクトマッピングオブジェクトマッピングの種類と考え方オブジェクトマッピングは、選択する「連携方向」の種類によって動作および設定すべき項目が異なります。連携方向説明・用途SMP→SFDCSMPのデータをSFDCへ連携します。SFDC→SMPSFDCのデータをSMPへ連携します。SFDC→SFDCSFDCのデータをSFDC内で移動します。SMPから連携したデータがSFDC側のオブジェクト間でリレーションを持つ場合、リレーション更新のために利用します。その他、中間テーブル(一時オブジェクト)を経由してSFDCへデータ連携する場合に使います。SFDCレコード削除SFDC内の特定のオブジェクトのデータを一括削除します。中間テーブル(一時オブジェクト)を利用した場合、ジョブごとでその一時データを削除(クリア)するために利用する想定です。オブジェクトマッピングの新規作成オブジェクトマッピングを作成する連携ジョブの詳細を表示します[新規オブジェクトマッピング]をクリックします以下の項目を入力し、[保存]をクリックして設定を保存します■連携方向によらず、常に設定が必要な項目項目入力内容オブジェクトマッピング名オブジェクトマッピングの任意の名前を入力しますオブジェクトマッピングIDオブジェクトマッピングに対するユニークなIDを指定します。設定データのエクスポート・インポート時に使用します。(半角英数字で入力します)実行順序このオブジェクトマッピングの、属する連携ジョブの中での実行順序を指定します。(半角数字で入力します)有効オブジェクトマッピングを実際に動作させる場合は、チェックをつけます。ここにチェックがついていないオブジェクトマッピングは、設定されていても実行をスキップします。連携方向データ連携の向き、またはマッピング処理の種別を以下から選択しますNULLでの上書きデータの更新時、取得した項目の値がNULLの場合に、既存のデータを上書きする(空白にする)か保持するかどうかを選択します■連携方向で[SMP→SFDC]を選択した場合に設定する項目項目入力内容SMP連携オブジェクト名データ連携元となるSMPのオブジェクトを選択しますSFDCオブジェクト取得したデータを登録するSFDCオブジェクトのAPI参照名を入力します(例:LeadやCampaign、SomeCustomObj__c等)SFDC更新キーSFDC側のオブジェクトで、SMPのIDを保持するカラムを指定します。この項目を利用して、対象データを新規登録するか更新するかが判定されます。カンマ区切りで複数の項目を更新キーに指定できます(例:名前とEmailが両方一致したものを更新対象とする場合、Name,Email)SFDCAPIレスポンスで格納する要素SMPへ書き戻すSFDC上のID項目を指定しますSMP取得件数SMPから取得するデータを1APIコールあたり何件データを取得するかを指定します。1から100の整数を入力します補足SMP取得件数についてSMPから1回のAPIコールで取得するデータサイズが大きすぎる場合、SFDCのメモリ制限によってレスポンスを格納できず、SMPへのデータ取得リクエストを実行し続けてしまう現象が確認されています。メールの履歴やキャンペーン情報など、多くのテキスト情報を含む可能性があるデータを連携対象とする場合、一度に取得する件数を抑えることでこの問題を回避します。「SMP取得件数」を入力せずに新規オブジェクトマッピングを作成した際、SMP連携オブジェクト名が「キャンペーン」「メール履歴」の場合は「10」が、それ以外の場合は「100」が自動的に設定されます。また、空白に設定更新した場合も、100件ずつデータ取得します。■連携方向で[SFDC→SMP]を選択した場合に設定する項目項目入力内容SMP連携オブジェクト名SFDCから取得したデータの連携先となるSMPのオブジェクトを選択します。選択できるリソースは、SMPへの登録更新が可能なものに限られますSFDCオブジェクトデータ連携元となるSFDCオブジェクトのAPI参照名を入力します(例:LeadやCampaign、SomeCustomObj__c等)SMP更新キーSMP側のオブジェクトで、SFDCのIDを保持するカラムを指定します。この項目を利用して、対象データを新規登録するか更新するかが判定されます。(例:Visitor.IdやSeminar.Title等)カンマ区切りで複数の項目を更新キーに指定できます(例:姓+名+Emailがすべて一致したものを更新対象とする場合、Visitor.Name1,Visitor.Name2,Visitor.Email)SMPAPIレスポンスで格納する要素SFDCへ書き戻すSMP上のID項目を指定します(例:IdやAttribute3等)注1:オブジェクト名のプレフィックス(たとえばSeminar.など)を指定せず、項目名(Idなど)のみを指定してください注2:連携対象のSMPオブジェクトがリードの場合、この設定に関わらず、常にリードIDが格納されます(リードの場合、レスポンス内容からリードIDを取得可能なため)注3:この設定を誤り、実際には存在しない項目などを指定した場合、エラーにはならず、「SMPAPIレスポンスを格納するSFDC項目」に指定したSFDC項目を空白で上書きしてしまうため、ご注意くださいSMPAPIレスポンスを格納するSFDC項目SMP上のIDを格納するSFDCの項目を指定します(例:NameやSomeCustomAttribute__c等)SMP更新方法SMPのデータを更新する方法を指定します。PUT(更新のみ)、POST(新規登録のみ)、PUT/POST(更新または新規登録)のいずれかを指定しますデータ取得基準連携元となるSFDCオブジェクトのレコードを取得する範囲を、登録日または更新日を指定します。連携ジョブの「条件」は、ここで指定した基準に対して適用されます。SFDC取得SOQLデータ取得基準以外の条件を利用してデータ取得する場合は、こちらに取得のための具体的なSOQLを記述します。■連携方向で[SFDC→SFDC]を選択した場合に設定する項目項目入力内容データ取得基準連携元となるSFDCオブジェクトのレコードを取得する範囲の基準に、登録日または更新日を指定します連携元SFDCオブジェクトデータ連携元となるSFDCオブジェクトのAPI参照名を入力します(例:LeadやCampaign、SomeCustomObj__c等)連携先SFDCオブジェクトデータ連携先となるSFDCオブジェクトのAPI参照名を入力します(例:LeadやCampaign、SomeCustomObj__c等)連携元更新キー連携元となるオブジェクトでのIDを保持するカラムを指定します。この項目を利用して、対象データを新規登録するか更新するかが判定されます(複数項目は指定できません)連携先更新キー連携元の更新キーに対応する値を保持する、連携先オブジェクトでの項目を指定します(複数項目は指定できません)更新方法連携先SFDCオブジェクトに対する更新方法についてINSERT/UPDATE/UPSERTのいずれかを指定します。データ取得基準連携元となるSFDCオブジェクトのレコードを取得する範囲を、登録日または更新日を指定します。連携ジョブの「条件」は、ここで指定した基準に対して適用されます。SFDC取得SOQLデータ取得基準以外の条件を利用してデータ取得する場合は、こちらに取得のための具体的なSOQLを記述します。■連携方向で[SFDCレコード削除]を選択した場合に設定する項目項目入力内容SFDCオブジェクト削除対象とするオブジェクトを指定します(例:LeadやCampaign、SomeCustomObj__c等)補足「オブジェクトマッピング」タブから「新規」をクリックして作成することも可能です。その場合、連携ジョブ欄には既存の連携ジョブを選択して入力する必要があります。SFDC取得SOQLについて連携方向に[SFDC→SMP]または[SFDC→SFDC]を指定した場合、取得対象データを詳細に定義するためにSOQLを記述することができます。SOQLを記述した場合、データ取得基準などは無視され、記述されたSOQLを発行することでSFDCのデータを取得します。連携対象とするSFDC項目(項目マッピングで連携元として指定する SFDC項目)は、抽出対象項目としてSOQLのSELECT句に明記する必要がありますたとえば、リードの姓、名を連携する場合:「SELECTLastName,FirstNameFROMLead」注意・項目マッピングを後から追加した場合、SELECT句の更新も忘れないよう、ご注意ください。・一般的なSQLで全項目を取得する構文「SELECT*FROM~」は、SOQLの仕様により使えません。SOQL文中では、変数を利用することができます。詳細は、変数の設定方法については、変数の項をご参照ください前回連携処理以降の差分を連携対象としたい場合は、変数を利用して取得条件をWHERE句に明記する必要があります。たとえば、リードの最終更新日が前回実行日時以降のものを対象とする場合:「~WHERELastModifiedDate:LastRunDateTime」のように指定します。チュートリアルの章もご参照ください。SOQL自体の仕様詳細については、SFDCのドキュメントをご参照ください設定済みオブジェクトマッピングの操作設定したオブジェクトマッピングの内容を確認する場合は、対象のオブジェクトマッピングを設定した連携ジョブの詳細から、[オブジェクトマッピング名]列のリンクをクリックしますオブジェクトマッピングの設定を編集・削除する場合は、[編集]または[削除]をクリックします項目マッピング設定済みのオブジェクトマッピングに対して、項目ごとのマッピングを設定します。オブジェクトマッピングで指定するSMP連携オブジェクトの種類によっては、必ず設定する必要がある項目マッピングが存在します。詳細は「7.SMP連携オブジェクトリファレンス」をご参照ください。更新キーに指定した項目については必ず項目マッピングを指定する必要があります。指定しないと、常に新規レコードとして連携します。SMP項目には必ず「Visitor」「Seminar」「VisitorApplicationSeminar」など、項目が所属するAPIメソッド名をプレフィックスとして記述する必要があります。(参考:項目表記フォーマット)このプレフィックスは実際のAPIコールにも使用される場合があり、記述に誤りがあるとAPIコール自体が失敗するので、正確な文字列を入力するようご注意ください。新規作成項目マッピングを設定する連携ジョブの詳細を表示します項目マッピングを設定するオブジェクトマッピングの詳細を表示します[新規項目マッピング]をクリックします以下の項目を入力し、[保存]をクリックして設定を保存しますSMP項目または連携先SFDC項目:SMP→SFDCまたはSFDC→SMPの場合、SMPの項目名を入力します(例:Visitor.Name1,Visitor.Attribute1,Seminar.Title,etc)SFDC→SFDCの場合、連携先となるSFDCオブジェクトの項目名を入力します(例:SMP_ID__c)SFDC項目:SFDC→SMPまたはSFDC→SFDCの場合、連携元となるSFDCオブジェクトの項目名を入力しますSMP→SFDCの場合、連携先となるSFDCオブジェクトの項目名を入力します項目ID:この設定をユニークに識別するIDを半角英数字で入力しますSMP項目:SMP側に指定した項目が選択肢型または複数選択肢型の場合、指定します設定済み項目マッピングの操作設定した項目マッピングの内容を確認する場合は、対象のマッピングを設定したオブジェクトマッピングの詳細から、[No]列のリンクをクリックします項目マッピングの設定を編集・削除する場合は、[編集]または[削除]をクリックしますAPIパラメータSMPへのAPIリクエストに対してパラメータによる条件付けを行うことができます。SMPからのデータ取得(GET)時SMPから取得する連携対象データを絞り込む検索条件を指定するために利用します。検索条件の値の指定には、以下のいずれかを指定します。「APIパラメータ内容」に具体的な検索条件値を入力し、検索オペレータを指定「前回実行時・条件日時を指定」をチェック(APIパラメータ内容は空欄に)この場合、自動的に前回実行時などが検索値に指定されるようになりますパラメータ名には、たとえば「Visitor.DateUpdate」(システム更新日時)、「Visitor.DateRegist」(システム登録日時)など日時系の項目を指定する必要があります検索オペレータには、gt(「>」)を指定します注意同じ項目に対する条件をOR条件として指定することはできません。(NG例:Visitor.Attribute1=bbb&Visitor.Attribute1=ccc)指定した連携オブジェクトが複数のAPIメソッドを参照するタイプである場合、検索条件は主軸となるAPIメソッドに対してのみ付加されます。たとえば、「キャンペーン申込」オブジェクトの場合、「visitor.getApplicationSeminar」に対するAPIパラメータとなります。主軸となるAPIメソッドは、「3-4-1.SMPからデータ取得するための連携オブジェクト」または「7.SMP連携オブジェクトリファレンス」をご参照ください。また、APIパラメータには複数の条件を指定可能です。これらの条件は、すべて「かつ」(AND条件)で連結されます。例:Visitor.Attribute1=aaa&Visitor.Attribute2=xxx&Visitor.Attribute3=pppSMPへのデータ登録(POST/PUT)時SMPへのPOSTまたはPUT時にAPIメソッドにURLパラメータを指定するために利用します。たとえば、SMP連携オブジェクトに「リード」を指定した場合、visitor.postまたはvisitor.putがコールされるので、URLパラメータとして「ignore_itemcheck=1」(必須チェック・型チェックを無視する)を指定することなどが可能です。注意SMPへのデータ登録用に指定したAPIパラメータ設定時、「検索オペレータ」「前回実行時・条件日時を指定」の指定は無視されます。APIパラメータの設定追加設定対象となる連携ジョブの詳細を表示しますAPIパラメータを設定するオブジェクトマッピングの詳細を表示しますAPIパラメータの一覧から、[新規APIパラメータ]をクリックします以下の項目を入力し、[保存]をクリックして設定を保存しますGET(SMPが連携元)の場合APIパラメータ名:検索する項目名を入力します(例:Visitor.Attribute5やVisitor.DateUpdate等)APIパラメータ内容:検索値を入力します(例:30)または、「前回実行時・条件日時を指定」をチェックして、空欄にします検索オペレータ:検索オペレータの種類を選択しますPOST(SMPが連携先)の場合APIパラメータ名:指定するパラメータ名を入力します(例:application_flow_master_idやtype、is_update、ignore_itemcheck等)APIパラメータ内容:パラメータに対する値を入力します(例:235や1等)変数定義取得したデータを同一連携ジョブ内の後続オブジェクトマッピングで利用することができます。たとえば、あるマッピングでリードのリストを取得した場合、それらのIDのリストを変数に格納し、続くオブジェクトマッピングで取得する対象データの検索条件に使用する、といったことが可能です。変数には、連携元から取得したデータのみ指定可能です(連携先の項目は指定できません)変数に指定する項目は、項目マッピングにも定義されている必要があります(下記注意参照)定義した変数のスコープは連携ジョブです。一度格納した変数は、連携ジョブ内で共有されます。連携ジョブ内のオブジェクトマッピングがすべて実行されるとクリアされます。また、以下のシステム変数は、変数定義を追加することなく利用可能です。変数名変数内容LastRunDateTime対象の連携ジョブの、前回実行日時が格納されていますNextRunDateTime対象の連携ジョブの、次回実行日時が格納されていますConditionDateTime対象の連携ジョブに設定されている条件時間の日時が格納されています変数定義の追加変数定義を設定する連携ジョブの詳細を表示します変数定義を設定するオブジェクトマッピングの詳細を表示します[新規変数定義]をクリックします以下の項目を入力し、[保存]をクリックして設定を保存します変数名:var1~var32から選択します(連携ジョブ内で重複して指定しないようにご注意ください)変数内容:マッピングで取得した内容から、格納する値を持つ項目名を入力します(例:Visitor.Id)説明:変数の取得内容や目的を記述します注意変数定義に格納する値は、項目マッピングにて取得対象として指定されている必要があります。たとえば、SMPから取得したVisitor.Idを格納する場合、対象となるオブジェクトマッピングに、「SMP項目または連携先SFDC項目」にVisitor.Idを指定した項目マッピングを追加する必要があります。定義した変数の利用APIパラメータで利用する場合APIパラメータの設定時、APIパラメータ内容欄にて、変数名をで括って記述しますたとえば、var5にリードのIDリストが格納されており、それを条件にSMPから取得するリードを絞り込む場合、以下のようにしますAPIパラメータ名:Visitor.IdAPIパラメータ内容:検索オペレータ:eq実際は、以下のような条件がvisitor.getのPOST内容に追加されますsearch_key1=Id&search_operator1=eq&search_value1=12345&search_key1=Id&search_operator1=eq&search_value1=23456&search_key1=Id&search_operator1=eq&search_value1=34567(以下略)SOQL記述で利用する場合オブジェクトマッピングのSFDC取得SOQL欄にて、変数名に:をつけて記述しますたとえば、var16にキャンペーン名リストが格納されており、それを条件に取得するCampaignデータを絞り込む場合、以下のようにWHERE句を記述しますSELECTName,Description,ActualCost,SMPCOOP__SMP_ID__c,SMPCOOP__ApplicationType__cFROMCampaignWHEREName=:var16実行時のSOQLのWHERE句は、以下のように展開されますWHERE(Name=’キャンペーン名1’orName=’キャンペーン名2’or…(以下略))フィルター項目マッピングに対して定義済みのフィルタールールを適用することで、連携するデータ内容を加工することができます。具体的な設定例については、下の「フィルターを利用した項目連携のTips」をご参照ください。利用可能なフィルター一覧利用可能なフィルターは以下のとおりです。カテゴリフィルタ処理内容フィルター式の記述方法連携元が空文字(NULL)でフィルタを実行した場合の期待値文字列小文字→大文字変換半角英小文字を半角英大文字に変換する。-空文字として本フィルターを処理する。文字列大文字→小文字変換半角英大文字を半角英小文字に変換する。-空文字として本フィルターを処理する。文字列半角→全角変換半角英数記号(。「」、・.゚)を全角に変換する。-空文字として本フィルターを処理する。文字列全角→半角変換全角英数記号(。「」、・゛゜.)を半角に変換する。-空文字として本フィルターを処理する。文字列空白除去半角スペースを除去する。-空文字として本フィルターを処理する。文字列文字列の切り出し文字列から指定個所を切り出す。(Java等のプログラミング言語でいうsubstring関数と同様)[開始位置][終了位置]例:abcdeという文字列があった場合、[0][4]を指定するとabcd、[1][3]を指定するとbcを切り出す※1[開始位置]文字列の長さの場合、空文字※2[終了位置]文字列の長さの場合、[開始位置]以降の文字列スキップして、次のフィルターを処理する。文字列文字列の埋め込み該当の項目と指定項目(複数)の間に指定文字を埋め込む[埋め込み文字][項目名1][項目名2]…空文字として本フィルターを処理する。文字列文字列のパディング指定方向に指定文字列をパディングする。[パディング文字列][桁数※1][方向※2]※10の場合はパディング文字列をひとつだけ追加※2方向はRの場合は右パディング。右以外の場合は左パディング空文字として本フィルターを処理する。例:[0][8][L]の場合、「00000000」になる文字列正規表現での変換正規表現に一致する箇所を全て置換する。[正規表現][置換後文字列]空文字として本フィルターを処理する。文字列固定値の代入フィールドの値を固定値に代入する。[代入する値]空文字として本フィルターを処理する。(固定値を代入する。)日付時刻指定された形式の日付フォーマットに変換日付型を指定された文字列フォーマットに変換する。[文字列フォーマット]スキップして、次のフィルターを処理する。数値加算該当の項目と指定項目を加算する。[指定項目名]スキップして、次のフィルターを処理する。数値減算該当の項目から指定項目を減算する。[指定項目名]スキップして、次のフィルターを処理する。数値乗算該当の項目から指定項目を乗算する。[指定項目名]スキップして、次のフィルターを処理する。数値剰余算該当の項目から指定項目を余りを求める。[指定項目名]スキップして、次のフィルターを処理する。数値数値の範囲チェック最小値と最大値の範囲内に収まっているか判定する。[最小値][最大値]スキップして、次のフィルターを処理する。数値切り上げ小数点以下を切り上げる。-スキップして、次のフィルターを処理する。数値切り捨て小数点以下を切り捨てる。-スキップして、次のフィルターを処理する。数値四捨五入指定した桁数以下の小数点を四捨五入する。[桁数]スキップして、次のフィルターを処理する。数値指定された形式の数値フォーマットに変換文字列を指定数字フォーマットに変更する。[数字フォーマット]INTEGER、DOUBLE、LONG、DECIMAL※INTEGERとLONGは整数のみスキップして、次のフィルターを処理する。日付時刻現在時刻を設定現在時刻を設定する。(システム時刻:JST)空文字として本フィルターを処理する。(現在時刻を設定する。)日付時刻日時の計算指定時刻の値だけ加算する。[年][月][日][時][分][秒]例:[0][1][0][0][0][1]2015/11/1000:00:00↓2015/12/1000:00:01スキップして、次のフィルターを処理する。フィルターの適用フィルターを設定する項目マッピングを含む連携ジョブの詳細を表示しますフィルターを設定する項目マッピングを含むオブジェクトマッピングの詳細を表示しますフィルターを設定する項目マッピングの詳細を表示します[新規フィルター]をクリックします以下の項目を入力し、[保存]をクリックして設定を保存しますフィルターID:任意の識別子を入力しますフィルター種類:適用するフィルターの種類を選択しますフィルター式:変換方法の指定が必要なフィルターについてはフィルター式を記述します。「6-6-1.利用可能なフィルター一覧」をご参照ください実行順序:対象の項目マッピング内での、フィルターの実行順序を指定しますテーブル変換項目マッピングに任意の変換テーブルによるルールを定義することで、特定の値を別の値に変換してデータ連携させることができます。たとえば、連携元では項目「都道府県」に格納されているものを、連携先では「エリア」のような項目に格納する場合、以下のようなテーブル変換定義をしておくことで、「東京都」→「関東」といった変換を連携時に適用することができます。変換前変換後東京都関東千葉県関東埼玉県関東大阪府関西京都府関西福岡県九州補足・テーブル変換が適用されるのは、連携元の値が「変換前」に指定された文字列に完全一致する場合のみです。・テーブル変換設定に一致する定義がない場合、連携元の値をそのまま連携します。テーブル変換の定義を追加変換テーブルを設定する項目マッピングを含む連携ジョブの詳細を表示します変換テーブルを設定する項目マッピングを含むオブジェクトマッピングの詳細を表示します変換テーブルを設定する項目マッピングの詳細を表示します[新規テーブル変換]をクリックします以下の項目を入力し、[保存]をクリックして設定を保存しますテーブル変換ID:任意の識別子を入力します変換前:連携元として想定する値を入力します変換後:変換した結果、連携先に格納する値を入力します変換テーブルの行数分だけ、4.~5.を繰り返します連携ジョブ実行結果(SMP_ログ)とエラー通知SMP_ログとエラー通知メール連携ジョブ実行中のログはSMP_ログに保存されます。連携ジョブの詳細画面の「ログレポート」リンクから、対象のジョブの直前の実行結果ログを確認し、Excelにエクスポートして参照することができます。また、対象期間を変更することで過去の実行結果を参照できます。ログデータは、ログ保存期間に設定された日数を経過すると、自動的に削除されます。また、連携ジョブ実行時にエラーが発生した場合、連携ジョブの[エラー通知先]に設定したメールアドレスにエラーが送信されます。エラー通知メールに対象の連携ジョブ名および詳細リンクが表示されるので、SFDCにログインしてログファイルの内容を確認します。送信されるエラー通知メールの例以下の連携ジョブの処理中にエラーが発生しました。詳細リンクからログファイルの内容ご確認いただき、必要な対応をお願いいたします。====連携ジョブ名:C1:キャンペーン連携(SMP-SFDC)詳細リンク:作成者:テスト管理者最終更新者:テスト管理者所有者メール:test+appex2-ac-test5@example.comエラー時制御:停止エラー通知先:test+appex2-ac-test5-c1error@example.com実行順序:5繰り返しタイミング:1時間起動時刻:指定しない前回実行日時:2015/12/260:00次回実行時間:2015/12/263:00====ご不明な点がございましたら、組織のシステム管理者にお問い合わせください。よろしくお願い申し上げます。エラー通知メールのテンプレートは、[設定]→[コミュニケーションテンプレート]→[メールテンプレート]に「エラー情報送信メール」という名称で保存されています。件名や本文など、一部の内容は変更することができます。エラー通知メールの送信者(From欄)は、ジョブの実行者となります。こちらは変更できません。エラー通知メールは、連携ジョブのエラー通知先に設定したメールアドレスに加えて、ジョブ実行者のメールアドレスにも送信されます。これは、連携ジョブの設定自体が取得できない場合のためであり、宛先から外すことはできません設定データのエクスポート・インポート連携ジョブなどの設定データのエクスポート・インポートには、SFDCが提供するデータローダを利用します。データローダの詳細は、SFDCの提供するドキュメントをご参照ください。データローダ(SFDCヘルプサイト)フィルターを利用した項目連携のTips複数の項目を結合する連携元では分離している項目を結合して、連携先のひとつの項目に入力することができます。たとえば、郵便番号の3桁部分と4桁部分を結合して連携したり、「姓」と「名」を結合して「氏名」欄に連携したりするケースがあります。ここでは、SMPの「郵便番号1」(Zip1)と「郵便番号2」(Zip2)をハイフンつなぎで結合してSFDCリードの郵便番号(PostalCode)に連携するケースを例に、設定方法を説明します。項目マッピングで、「SMP項目または連携先SFDC項目」「SFDC項目」が以下のペアとなるレコードを追加しますVisitor.Zip1/PostalCodeVisitor.Zip2/PostalCode上の2つの項目マッピングにそれぞれ、フィルター設定を追加しますフィルターの種類:文字列の埋め込みフィルター式:[-][Visitor.Zip1][Visitor.Zip2]実行順序:1注意フィルターは、結合する項目すべて(上の例ではZip1、Zip2の両方)の項目マッピングに設定するようにしてください。片方だけしか設定していない場合、連携時のどちらの項目マッピングが処理されるかによって、フィルターが適用されたりされなかったりします。フィルターに設定している「実行順序」は項目マッピングの中で複数のフィルターを設定した場合の実行順序を決めるものであり、項目マッピングがどの順序で処理されるかは制御できません。SFDCの日時項目をSMPに連携するSFDCの日付/日時項目をSMPの日時項目に連携する場合、フィルタを利用してフォーマットを変換する必要があります。「SMP項目または連携先SFDC項目」にSMPの日時型の項目、「SFDC項目」に日時型の項目を指定した項目マッピングを作成します上の項目マッピングに、フィルター設定を追加しますフィルターの種類:指定された形式の日付フォーマットに変換フィルター式:[yyyy-MM-dd’T’HH:mm:ss'+09:00']実行順序:1注意上記の例は、SFDC/SMPのタイムゾーン設定が日本標準時(JST)であることを前提としています。SMPのリード詳細画面のURLをSFDCへ連携するフィルター「文字列のパディング」を利用すると、連携する値に固定文字列を付加することができます。これを利用して、連携するSMPリードのIDにURL文字列を追加して、SMPリード詳細画面のURLを作成・連携することができます。たとえば、チュートリアルの章にあるSMPリードをSFDCリードに連携するオブジェクトマッピングにて、連携元にSMPリードID(Visitor.Id等)を指定した項目マッピングに対して、以下のフィルター設定を追加します。フィルター種類:文字列のパディングフィルター式:[][0][L]これにより、連携先SFDC項目にはたとえば、リードID33のデータを連携した場合、「」といった文字列が登録されます。(末尾に33がついている)実際にこのリンクをクリックすると、対象のSMPに管理者としてログイン済みであればそのままリード詳細画面が表示されます。未ログインの場合は管理者ログイン画面が表示され、ログインした後にリード詳細画面が表示されます。なお、連携先のSFDC項目にはURL型のカスタム項目を利用すると自動的にリンク表示になるため便利ですが、その場合、255文字以内の入力制限がつくため、ご注意ください。(文字数を超えるデータを連携しようとした場合、登録エラーになります)SFDCの郵便番号をSMPへ連携するSFDCで保持している郵便番号(例:123-0001)から3桁部分と4桁部分を分割・取り出して、それぞれSMPの郵便番号1と郵便番号2に連携します。たとえば、SFDCの取引先責任者の郵送先住所の郵便番号MailingPostalCodeを、SMPのリード項目Visitor.Zip1、Visitor.Zip2に連携するとします。まず、3桁部分の項目マッピング(MailingPostalCode→Visitor.Zip1)を作成し、そこにフィルターを2種類追加します。ひとつめのフィルターフィルター種類:正規表現による変換フィルター式:[-][]実行順序:1ふたつめのフィルターフィルター種類:文字列の切り出しフィルター式:[0][3]実行順序:2同様に4桁部分の項目マッピング(MailingPostalCode→Visitor.Zip2)も作成し、フィルター2種類を追加します。ひとつめのフィルターフィルター種類:正規表現による変換フィルター式:[-][]実行順序:1ふたつめのフィルターフィルター種類:文字列の切り出しフィルター式:[3][7]実行順序:2ひとつの項目マッピングの中で2つのフィルターを続けて通すことで、正規表現による変換でハイフンを除去した後、文字列の切り出しで左からゼロ番目~3番目の範囲(3桁部分の場合)、あるいは3番目から7番目の範囲(4桁部分の場合)を取り出す、という処理を施すことになります。ただし、この方法はSFDCで登録されている元の郵便番号が、ハイフン部分を除いた結果7桁の数字となることを前提としています。(ハイフンはあってもなくても問題ありません)桁数が一致していないと、ずれた範囲を取り出してしまうことになるのでご注意ください。キャンペーンの開始時間をSFDCへ連携するたとえば、SMPのキャンペーン開始日から、日付部分などを除いて時間だけをSFDCのテキスト項目(ここでは仮にStartDateTimeText__cとします)に連携したいとします。この場合も、正規表現のよる置換を利用することで実現可能です。元のSMP日時は「2018-05-18T16:00:00+09:00」といった文字列になるので、そこから不要部分を削除することで時・分だけが取り出せます。項目マッピング(Seminar.StartDay→StartDateTimeText__c)を作成し、以下の2種類のフィルターを追加します。ひとつめのフィルター(年月日部分を削除する)フィルター種類:正規表現による変換フィルター式:[\d{4}-\d{2}-\d{2}T][]実行順序:1ふたつめのフィルター(秒とタイムゾーン部分を削除する)フィルター種類:正規表現による変換フィルター式:[:\d{2}\+09:00][]実行順序:2https://smpdoc.shanon.co.jp/ja/cooperation/apex2/chapter005/
-
データ連携チュートリアルサンプルケースを利用して連携設定に必要な基本手順を解説します。はじめてSMPforSalesforceを操作する場合は、こちらの内容で操作の全体感を掴んでください。そのため、機能ごとの設定項目の詳細については説明を省略している箇所も多いため、「6.機能リファレンス」もあわせてご参照ください。設定のために必要な情報の参照方法サンプルケース項目連携のTips設定のために必要な情報の参照方法データ連携を設定するにあたっては、SMPおよびSFDCのオブジェクトや項目の正確なシステム名称を指定する必要があります。ご利用の環境における具体的な名称は、それぞれ以下をご参照ください。SFDCにおけるオブジェクトおよび項目名の確認方法詳細あるいは最新情報についてはSFDCのヘルプやドキュメントをご参照ください。例:「」ページ等標準オブジェクトの場合SFDCログインします[設定]に進み、[アプリケーションの設定](または[ビルド])の[カスタマイズ]を開きます設定対象のオブジェクト(例:リード、キャンペーン等)の、[項目]を開きます標準項目の一覧にある[項目名]、または、カスタム項目の一覧の[API参照名]に表示されている項目名を確認しますカスタムオブジェクトの場合SFDCログインします[設定]に進み、[ビルド]の[作成]→[オブジェクト]を開きます設定対象のオブジェクトの詳細を開きますオブジェクト名は、カスタムオブジェクトの定義詳細にて、オブジェクト名を確認します項目名は、標準項目の一覧にある[項目名]、または、カスタム項目の一覧の[API参照名]に表示されている内容を確認しますSMPにおけるAPI項目名の確認方法項目表記フォーマットSMPforSalesforceでは、SMPの項目名を以下のフォーマットで指定します。.例:Visitor.Name1Seminar.Attribute12VisitorApplicationSeminar.VisitorIdSeminarFlow.SeminarAPIメソッドと項目名連携対象となる項目を指定するために、SMPのAPIのメソッド名と項目名が必要です。「マーケティングプラットフォームAPI開発者ガイド」ページをご参照ください。追加項目やアンケート項目の項目名SMPでユーザ自身で追加設定される項目は、具体的な項目に含まれるIDがドメインごとで異なります。例えば、「Visitor.Attribute45」といった形式で、数字の部分が環境ごとのIDになっています。APIキー一覧画面([設定][API])の「API定義のダウンロード」ボタンから、WSDLファイルをダウンロードすることでご確認いただけます。画面から確認する場合は各機能のCSV一括登録のベースファイルや、表示項目設定からIDを参照してご確認ください。補足項目名として指定する場合は、Visitor.Attributeといった形式で、APIメソッド名をベースとしたプレフィックスを指定する必要があります。上記「項目表記フォーマット」をご参照ください項目の機能項目のIDを参照可能な箇所の例リード追加項目[リード][基本項目設定][設定エクスポート]キャンペーン追加項目[キャンペーン][一括登録][ベースファイルダウンロード]サブキャンペーン追加項目サブキャンペーン型のキャンペーンの[管理開始]後、[サブキャンペーン][一括登録][ベースファイルダウンロード]アンケート項目[アンケート][アンケートテンプレート][アンケート設問の追加/修正][エクスポート]活動履歴項目[リード][活動履歴一覧][一括登録][ベースファイルダウンロード]サンプルケースサンプルケースは、次のとおりです。・リード情報の連携設定例・リードに結びつく履歴データの連携の例リード情報の連携設定例サンプルケースの連携仕様SMPとSFDCのリード情報を相互に更新を反映する連携モデルを想定します。なお、ここに記述したケースはあくまで連携仕様の1例であり、SMPforSalesforceでできる唯一の方法というわけではありません。更新キー連携済みのデータを識別するための項目を「更新キー」と呼びます。「更新キー」に該当するデータが連携先に存在していればデータを更新し、存在しなければ新規作成します。ここでは「更新キー」を「リードID」とします。つまり、SMP側ではSFDC上でのリードのシステムIDを保持し、SFDC側では逆に、SMPのリードIDを保持して、連携済みデータの識別に利用します。図の例では、SFDCにカスタム項目「SMP_ID」を設定しています。SMPにリードID=17のリードが登録されると、連携実行時にSFDCにSMP_ID=17のリードがいるかどうかを探して、存在しなければリードをSFDCに新規登録し、そのリードにSMP_ID=17をセットします。また、登録されたリードのSFDC上のIDを、SMPの追加項目「SFDC_ID」にセットします。これにより、以後、片方のシステムでデータを更新すると、相手方システムの対応するリード情報が更新されることになります。Q.両システムで同じレコードを同時に更新した場合はどうなりますか?連携バッチ処理が実行されるまでの間にSMP/SFDCそれぞれのデータを更新する場合、先に処理する連携先のデータを更新します。つまり、1.SMP→SFDC2.SFDC→SMPの順序で連携する場合、先にSMPのデータでSFDCを更新するため、SFDCの更新は失われます。連携させるデータの種類と条件SMP/SFDCの両システムに登録・更新されたリード情報をそれぞれ抽出・反映します。実行頻度は、1時間に一度とし、前回実行日時以降に発生したリード情報を更新を連携するようにします。新規登録・更新をそれぞれSMP→SFDC、SFDC→SMPに連携するため、以下の4種類の連携ジョブを設定することになります。連携ジョブの種類連携条件未連携SMPリード→SFDCリードSMPのリードで、以下のもの・「SFDC_ID」が空白・「システム更新日時」が「前回実行日時」よりも新しい未連携SFDCリード→SMPリードSFDCのリードで、・「SMP_ID」が空白・「最終更新日時」が「前回実行日時」よりも新しい連携済みSFDCリード→SMPリードSFDCのリードで、・「SMP_ID」に値がある・「最終更新日時」が「前回実行日時」よりも新しい連携済みSMPリード→SFDCリードSMPのリードで、・「SFDC_ID」に値がある・「システム更新日時」が「前回実行日時」よりも新しいバッチ処理ごとに連携対象となるデータの範囲連携ジョブを実行するたびに、前回のジョブ実行以降に変更があったリード情報のレコードが差分として更新対象になります。図の例では、10時台に登録されたリードA、リードBを11時のバッチ処理で新規レコードとして連携します。次に、11時台にリードAが2回更新され、リードCが新しく登録されています。すると12時に、リードAの最新情報(2回目の更新後の内容)を連携し、リードCを新規レコードとして連携します。最後に、12時台には更新がないので、13時には何も連携対象になりません。設定手順1:システム設定連携設定の前に、システムに対して必要な設定を行います。相互のリードIDを保持するための追加項目・カスタム項目を作成します。SMPの設定SMPにはリードの基本項目設定で、追加項目を追加します。管理側の[リード]→[基本項目設定]→[新規項目追加]から登録します。項目名:SFDC_LEAD_ID表示/非表示:管理者側のみ表示フォーム種別:テキスト必須の可否:必須にしないフィールドサイズ:30最大文字数:30作成された追加項目「SFDC_LEAD_ID」の、IDを確認しておきます。[リード][一括登録]から、[ベースファイルダウンロード]をクリックしてダウンロードしたCSVファイルのカラムで、確認可能です。ここでは、図のように「attribute1」が「SFDC_LEAD_ID」の項目IDであるとします。SFDCの設定SFDCでは、リードオブジェクトへのカスタム項目を追加します。[設定][カスタマイズ][リード][新規]から、「リードカスタム項目&リレーション」から[新規]へ進み、以下の内容で登録します。データ型:テキスト項目の表示ラベル:SMP_ID項目名:SMP_ID文字数:10外部ID:「外部システムの一意のレコード識別子として設定する」にチェック項目レベルセキュリティの設定、ページレイアウトへの追加はデフォルトのまま進めます。図のように、上で作成したカスタム項目の、API参照名は「SMP_ID__c」となります。以下の設定では、このAPI参照名を項目マッピング等で利用します。設定手順2:連携設定その1(新規SMPリードをSFDCリードへ)以降では、SMP接続設定は設定済みで、ひとつの設定が有効となっていることを前提とします。また、Force.comアプリケーションメニューで「SMPforSalesforce」が選択済みであることとします。もし上記設定されていない場合は、「4.セットアップ手順」を参照し、設定を行ってください。連携ジョブの設定SMP/SFDCの両システムに登録・更新されたリード情報をそれぞれ抽出・反映するため、以下の連携ジョブを設定します。まず、SMPからSFDCへ新規登録されたリード情報を反映する連携ジョブを以下の内容で作成します。項目の詳細は、次のとおりです。項目入力内容ジョブ名連携ジョブを表現する、適当な名前を入力します。例えば、「チュートリアル:新規SMPリード→SFDCリード」とします。連携ジョブID連携ジョブを識別するためのIDを入力します。例えば、「job-tutorial1」とします。(半角英数字で入力します)繰り返しタイミング「1時間」を選択します。起動時刻繰り返しタイミングが1時間の場合は指定不要なので、「指定しない」のままにします。条件「前回実行日時から実行」を選択します。前回実行日時適当な過去の日時を指定します。次回実行日時適当な未来の日時を指定します。エラー時制御連携するデータでエラーが発生した場合に処理を継続するかどうかを指定します。ここでは「続行」を選択します。エラー通知先連携ジョブでエラーが発生した場合に通知するメールアドレスを入力します。ご自身のメールアドレスをご入力ください。(半角英数字で入力します)実行順序連携ジョブの中での実行順序を指定します。ここでは「10」と入力します。(半角数字で入力します)オブジェクトマッピングの設定続いて、オブジェクトマッピングを設定します。上で作成した連携ジョブID「job-tutorial1」の詳細から、新規オブジェクトマッピングを作成します。最終的には以下の図のような内容となるように、設定を追加します。以下の内容を入力し、保存をクリックします。項目入力内容オブジェクトマッピング名リード新規SMP→SFDCオブジェクトマッピングIDobj-tutorial1-1実行順序10連携方向SMP→SFDCSMP連携オブジェクト名リードNULLでの上書きNULL項目は上書きしないSFDCオブジェクトLeadSFDC更新キーSMP_ID__cSFDCAPIレスポンスで格納する要素SMP_ID__c項目マッピングの設定上で設定したオブジェクトマッピングに項目マッピングを追加します。オブジェクトマッピングの詳細画面にある、[新規項目マッピング]ボタンから登録画面を開き、以下の表の1行分の設定を入力・保存し、合計5つの項目マッピング設定を追加します。SFDC項目の、「LastName」(姓)と「Company」(会社名)は入力必須項目のため、必ず設定しましょう。項目の詳細は、次のとおりです。項目IDSMP項目または連携先SFDC項目SFDC項目SMP項目の属性item-t1-1-idVisitor.IdSMP_ID__c--なし--item-t1-1-emailVisitor.EmailEmail--なし--item-t1-1-name1Visitor.Name1LastName--なし--item-t1-1-name2Visitor.Name2FirstName--なし--item-t1-1-companynameVisitor.CompanyNameCompany--なし--APIパラメータの設定項目マッピングと同様、上で設定したオブジェクトマッピングの詳細から、APIパラメータも追加していきます。[新規APIパラメータ]ボタンから、以下の設定を追加します。APIパラメータIDAPIパラメータキー検索オペレータAPIパラメータ内容前回実行日・条件日時を指定apiparam-t1-1-1Visitor.Attribute1eq(空白)(チェックしない)apiparam-t1-1-2Visitor.DateUpdatege(空白)☑SFDC_LEAD_ID(Attribute1)が空白である、つまり、まだSFDCリードと対応していないリードを抽出対象とします。また、更新日時(DateUpdate)が前回実行日時以降のものとすることで、前回からの差分レコードを更新対象とします。動作確認(連携ジョブの手動実行と連携ログの確認)ここまでの手順で、SMPに新規登録されたリード情報がSFDCのリードに連携されるようになっているはずです。以下の手順で、動作を確認してみましょう。SMPから、リードを新規登録する管理側[リード]→[新規登録]から、姓、名、会社名、Emailを入力し、登録しますSFDC_LEAD_IDには何も入力しないようにしますSMPforSalesforceの連携を手動実行しますSFDCで、[SMP接続設定一覧]タブをクリックし、[連携ジョブバッチ実行]ボタンをクリックします連携ジョブの実行が開始されると、下の図のように対象の連携ジョブの「ジョブ実行中」フラグがONになります。すべてのジョブの実行が完了すると、自動的にOFFに戻ります。実行が完了したら、連携ジョブの詳細画面から「ログレポート」のリンクをクリックします。レポート画面で、直前に実行した連携ログの内容が表示されます。補足・「詳細のエクスポート」から、Excel形式でログデータをダウンロードして全文を参照します。・「SMP_ログ:No」の条件をクリアし、追加で任意の期間条件を指定することで過去のログを参照することができます。内容を確認し、エラーなどが起きていないことを確認します。もしエラーが発生した場合は、連携ジョブのエラー通知先に設定したメールアドレスに通知メールが送信されます。エラーがある場合は、エラー内容や連携実行時のトラブルシュートを参考に、ここまでの設定内容を見直してください。設定手順3:連携設定その2(新規作成されたSFDCリードのIDをSMPに反映)変数の定義SMPからSFDCに連携して新規作成されたリードには、新しいSFDCのリードIDが振り出されています。これをSMPのリードに戻すことで、以後、SFDC側の更新がSMPにも反映されるようにします。この処理の対象を実際に連携されたリード情報に限定するため、変数を利用します。オブジェクトマッピング1で連携したSMPリードIDを変数に格納同じ連携ジョブの中にオブジェクトマッピングをもうひとつ追加し、変数に格納されたリードIDをSMP_IDにもつSFDCリードを抽出、SFDCのリードIDをSMPリードの「SFDC_LEAD_ID」に反映するまず、1.の手順のため、上で作成したオブジェクトマッピングに変数定義を設定します。オブジェクトマッピングの詳細を開き、[新規変数定義]をクリックし、以下の内容を入力して[保存]をクリックします。変数定義ID変数名変数内容var-tutorial1-1-visitoridvar1Visitor.Id■変数をSFDCからのデータ抽出条件に利用する次に、上で設定した連携ジョブの中で、オブジェクトマッピングをもうひとつ追加します。以下の内容を入力し、保存をクリックします。項目入力内容オブジェクトマッピング名リード新規:SFDCからのリードID戻しオブジェクトマッピングIDobj-tutorial1-2実行順序20連携方向SFDC→SMPSMP連携オブジェクト名リードNULLでの上書きNULL項目は上書きしないSFDCオブジェクトLeadSFDC取得SOQLSELECTId,SMP_ID__cFROMLeadWHERESMP_ID__c=:var1ANDSMP_ID__c!=''ANDLastModifiedDate:LastRunDateTimeデータ取得基準更新日SMP更新キーVisitor.IdSMPAPIレスポンスで格納する要素IdSMP更新方法PUTSMPAPIレスポンスで格納するSFDC項目SMP_ID__c「SFDC取得SOQL」に、先に設定した変数定義を使用しています。SOQLのWHERE句に「SMP_ID__c=:var1」と記述することで、var1に格納されたSMPリードIDをSMP_ID__cに持つSFDCリードを抽出対象に指定できます。さらに、上ではもうひとつの変数を使った条件「LastModifiedDate:LastRunDateTime」を指定しています。「:LastRunDateTime」は、連携ジョブの項目「前回実行日時」の値を保持するシステム変数で、変数設定をしなくても利用可能です。これにより、最終更新日時(LastModifiedDate)が前回の連携以降の日時であるデータを連携対象としています。上のように、SOQLを記述してSFDC取得データを定義した場合は、自動的に前回実行からの差分取得とならないので、更新期間によって連携対象を絞り込む場合はその条件をSOQLに記述する必要があります。その他、SOQLを記述する場合の注意点について、機能リファレンスの「SFDC取得SOQLについて」ページの内容もご参照ください。また、上記オブジェクトマッピングに対して、項目マッピングを以下のとおり追加します。項目IDSMP項目または連携先SFDC項目SFDC項目SMP項目の属性item-t1-2-smpidVisitor.IdSMP_ID__c--なし--item-t1-2-idVisitor.Attribute1Id--なし--これで、この連携ジョブを実行すると、SMPから新規にSFDCリードが連携されるとともに、SMPにはSFDCのリードIDが反映されるようになります。設定手順4:連携設定その3(残りの連携ジョブ設定)続けて、残り3つの連携ジョブ(連携ジョブ2~4)も同様の手順で追加します。ジョブ名、連携ジョブID、実行順序のみ、以下のとおり変更します。ジョブ名連携ジョブID実行順序連携ジョブ1新規SMPリード→SFDCリードjob-tutorial110連携ジョブ2新規SFDCリード→SMPリードjob-tutorial220連携ジョブ3SFDCリードの更新→SMPリードjob-tutorial330連携ジョブ4先に作成した連携ジョブ(上の表の連携ジョブ1)の詳細から、コピーして作成すると簡単です。連携ジョブ2:未連携のSFDCリードをSMPに連携する連携ジョブ2には、以下の内容でオブジェクトマッピングを作成します。項目入力内容オブジェクトマッピング名リード新規:SFDC→SMPリードオブジェクトマッピングIDobj-tutorial2-1実行順序10連携方向SFDC→SMPSMP連携オブジェクト名リードNULLでの上書きNULL項目は上書きしないSFDCオブジェクトLeadSFDC取得SOQLSELECTId,SMP_ID__c,Email,FirstName,LastName,CompanyFROMLeadWHEREIsConverted=FALSEANDSMP_ID__c=nullANDLastModifiedDate:LastRunDateTimeデータ取得基準更新日SMP更新キーVisitor.IdSMPAPIレスポンスで格納する要素IdSMP更新方法PUT・POSTSMPAPIレスポンスで格納するSFDC項目SMP_ID__cSFDC取得SOQLに「IsConverted=FALSE」とすることで、取引先責任者に昇格していないリードに対象を限定しています。また、「SMP_ID__c=null」により、まだ連携していないリードを対象としています。上記オブジェクトマッピングに対して、項目マッピングを以下のとおり追加します。項目IDSMP項目または連携先SFDC項目SFDC項目SMP項目の属性item-t2-1-smpidVisitor.IdSMP_ID__c--なし--item-t2-1-idVisitor.Attribute1Id--なし--item-t2-1-companyVisitor.CompanyNameCompany--なし--item-t2-1-lastnameVisitor.Name1LastName--なし--item-t2-1-firstnameVisitor.Name2FirstName--なし--item-t2-1-emailVisitor.EmailEmail--なし--これ以外にも、SFDCからSMPへ反映したい任意の項目をマッピングに追加してみましょう。その際、対象の項目をSFDC取得SOQLのSELECT句にも記述するよう注意します。連携ジョブ3:SFDCリードの更新をSMPに反映する連携ジョブ3には、以下の内容でオブジェクトマッピングを作成します。項目入力内容オブジェクトマッピング名リード更新:SFDC→SMPリードオブジェクトマッピングIDobj-tutorial3-1実行順序10連携方向SFDC→SMPSMP連携オブジェクト名リードNULLでの上書きNULL項目は上書きしないSFDCオブジェクトLeadSFDC取得SOQLSELECTId,FirstName,LastName,Company,Email,SMP_ID__cFROMLeadWHERELastModifiedById!='005280000018AFK'ANDIsConverted=FALSEANDSMP_ID__c!=nullANDLastModifiedDate:LastRunDateTimeデータ取得基準更新日SMP更新キーVisitor.IdSMPAPIレスポンスで格納する要素IdSMP更新方法PUT・POSTSMPAPIレスポンスで格納するSFDC項目SMP_ID__cここでのポイントは、SFDC取得SOQLのWHERE句にLastModifiedByIdの内容を指定している箇所です。(「LastModifiedById!='005280000018AFK'」)ここで、'005280000018AFK'の部分は実際に連携設定を操作しているシステム管理者のユーザIDに置き換えて記述します。ユーザIDは、[設定]→[ユーザの管理]から、対象ユーザの詳細を表示したときのURL(たとえば、「」)から、確認できます。項目マッピングは、連携ジョブ2で指定した内容と同様の内容を指定してみましょう。連携ジョブ4:SMPリードの更新をSFDCリードに反映する最後に、連携ジョブ4にオブジェクトマッピング等を設定します。以下の内容を入力し、保存をクリックします。項目入力内容オブジェクトマッピング名リード更新SMP→SFDCオブジェクトマッピングIDobj-tutorial4-1実行順序10連携方向SMP→SFDCSMP連携オブジェクト名リードNULLでの上書きNULL項目は上書きしないSFDCオブジェクトLeadSFDC更新キーSMP_ID__cSFDCAPIレスポンスで格納する要素SMP_ID__c上で設定したオブジェクトマッピングに項目マッピングを追加します。項目IDSMP項目または連携先SFDC項目SFDC項目SMP項目の属性item-t4-1-idVisitor.IdSMP_ID__c--なし--item-t4-1-emailVisitor.EmailEmail--なし--item-t4-1-name1Visitor.Name1LastName--なし--APIパラメータも設定しましょう。APIパラメータIDAPIパラメータキー検索オペレータAPIパラメータ内容前回実行日・条件日時を指定apiparam-t4-1-1Visitor.Attribute1ne(空白)(チェックしない)apiparam-t4-1-2Visitor.DateUpdatege(空白)☑SFDC_LEAD_ID(Attribute1)が空白ではない、つまり、既にSFDCリードと対応しているリードを抽出対象とします。また、更新日時(DateUpdate)が前回実行日時以降のものとすることで、前回からの差分レコードを更新対象とします。ひととおり設定が済んだら、あらためて動作確認してみましょう。SMP・SFDC双方からリードを登録・更新して、[SMP接続設定一覧]から、[連携ジョブバッチ実行]ボタンで連携ジョブを手動実行します。エラーが発生した場合は、「9-2.連携実行時のトラブルシュート」も参照しつつ解決を試みてください。リードに結びつく履歴データの連携の例キャンペーン来場履歴の連携例サンプルケース1でリード情報が連携済みであるという前提で、キャンペーン来場履歴を連携してみましょう。ここでは以下のことを説明します。SFDCにカスタムオブジェクトを作成し、SMP履歴データを保存する方法SFDC上でのオブジェクト間の参照関係、つまり、リードと来場履歴の間の結びつきを反映する方法(連携方向SFDC→SFDCの使い方)キャンペーン来場履歴を例に説明しますが、同様の方式で、その他の各種履歴系(メール履歴、トラッキング履歴等)のSMPオブジェクトをSFDCへ連携することが可能です。設定手順1:カスタムオブジェクトを作成新規カスタムオブジェクトの作成SMPからのキャンペーン来場履歴を入れる箱となるカスタムオブジェクトを作成します。[設定]→[作成]の下にある、[オブジェクト]から[新規カスタムオブジェクト]ボタンをクリックして、カスタムオブジェクトを作成します。以下の内容を入力し、オブジェクト作成します。表示ラベル:来場履歴オブジェクト名:TutorialSeminarAttendanceレコード名:来場履歴名データ型:テキストまた、作成したカスタムオブジェクトのレコードをタブから表示できるようにする場合は、[設定]→[作成]の下にある[タブ]からカスタムタブを新規に作成し、上で作成したカスタムオブジェクトを指定してください。カスタム項目の作成オブジェクトが作成されたら、その詳細を表示し、カスタム項目に項目を追加します。「カスタム項目&リレーション」欄にある[新規]ボタンをクリックし、項目を追加していきます。まず、「テキスト」型の項目を4点、以下の内容で作成します。項目の表示ラベル項目名文字数外部ID:「外部システムの一意のレコード識別子として設定する」SMP_IDSMP_ID10チェックするSMPキャンペーンIDSeminarId10チェックするSMPリードIDVisitorId10チェックするSMPキャンペーンタイトルSeminarTitle120(なし)続いて、「参照関係」型の項目を作成し、SFDC上のリードと来場履歴を結びつけられるようにします。カスタム項目の新規作成に進み、データ型で「参照関係」を選択し、次に進みます。続いて、関連先で、「リード」を選択し、次に進みます。項目の表示ラベル等は、以下の表をご参照ください。関連先項目の表示ラベル項目名子リレーション名リードリードLeadTutorialSeminarAttendanceLeadさらに、いつリードが来場したのかわかるように、来場日時を保存する「日付/時間」型の項目を作成します。項目の表示ラベル項目名SMPキャンペーン来場日時SeminarAttendanceDate設定手順2:キャンペーン来場履歴の連携設定連携ジョブの作成キャンペーン来場履歴を連携させる処理を実行する、連携ジョブを新しく作成します。サンプルケース1での手順にならい、タイトルをたとえば「チュートリアル2:来場履歴の連携」として新規連携ジョブを登録します。この連携ジョブの下に、以下の2つのオブジェクトマッピングを作成します。連携内容連携方向説明キャンペーン来場履歴SMP→SFDCSMPのキャンペーン来場履歴レコードを、新しく作成したカスタムオブジェクトに連携しますLeadIdとの参照関係を設定SFDC→SFDCカスタムオブジェクトに入った来場履歴に、SFDCのリードIDとの参照関係を反映します一つ目が、来場履歴のレコードをカスタムオブジェクトに移送するためのマッピングで、ふたつ目のマッピングでそれらのレコードに対して、SFDC上のリードとの参照関係を更新します。これにより、SFDCのリード詳細から、カスタムオブジェクトのキャンペーン来場履歴を参照することが可能となります。オブジェクトマッピング1:「キャンペーン来場履歴」の設定上で作成した連携ジョブの詳細から、新規オブジェクトマッピングを作成します。最終的には以下の図のような内容となるように、設定を追加します。一つ目のオブジェクトマッピングには、以下の内容を入力し、保存をクリックします。項目入力内容オブジェクトマッピング名キャンペーン来場履歴SMP→SFDCオブジェクトマッピングIDobj-tutorial5-1実行順序10連携方向SMP→SFDCSMP連携オブジェクト名キャンペーン来場NULLでの上書きNULL項目は上書きしないSFDCオブジェクトTutorialSeminarAttendance__cSFDC更新キーSMP_ID__cSFDCAPIレスポンスで格納する要素Id項目マッピングを以下のように設定します。SFDC項目に入力する内容は、カスタムオブジェクトに設定したカスタム項目の項目名(API参照名)にあたります。また、必須となる項目マッピングについては、「7.SMP連携オブジェクトリファレンス」のキャンペーン来場履歴の項もご参照ください。項目IDSMP項目または連携先SFDC項目SFDC項目SMP項目の属性item-tut2-1-idVisitorAttendanceSeminar.IdSMP_ID__c--なし--item-tut2-1-seminaridVisitorAttendanceSeminar.SeminarSeminarId__cSMP項目が選択リストitem-tut2-1-visitoridVisitorAttendanceSeminar.VisitorIdVisitorId__c--なし--item-tut2-1-seminarid2Seminar.IdSeminarId__c--なし--item-tut2-1-visitorid2Visitor.IdVisitorId__c--なし--item-tut2-1-seminartitleSeminar.TitleSeminarTitle__c--なし--item-tut2-1-seminarattendancedateVisitorAttendanceSeminar.AttendanceDateSeminarAttendanceDate__c--なし--また、変数定義を以下のように設定します。来場履歴を連携したリードのSMP上のIDを格納し、続くオブジェクトマッピングで連携対象を限定するために利用します。変数定義ID変数名変数内容var-tut2-1-visitoridvar1VisitorAttendanceSeminar.VisitorIdさらに、APIパラメータを以下のように設定します。来場日時が連携ジョブの前回実行日時以降の来場履歴を差分取得します。APIパラメータIDAPIパラメータキー検索オペレータAPIパラメータ内容前回実行日時・条件日時を指定apiparam-tut2-1-attendancedateVisitorAttendanceSeminar.AttendanceDategeチェックするオブジェクトマッピング2:「LeadIdとの参照関係を設定」の設定二つ目のオブジェクトマッピングには、以下の内容を入力し、保存をクリックします。項目入力内容オブジェクトマッピング名キャンペーン来場履歴LeadId参照関係の更新オブジェクトマッピングIDobj-tutorial5-2実行順序20連携方向SFDC→SFDCSMP連携オブジェクト名(なし)NULLでの上書きNULL項目は上書きしないSFDCオブジェクトLeadSFDC取得SOQLSELECTId,SMP_ID__cFROMLeadWHERESMP_ID__c=:var1ANDSMP_ID__c!=''ANDIsConverted=FALSEデータ取得基準更新日連携元SFDCオブジェクトLead連携元更新キーSMP_ID__c連携先SFDCオブジェクトTutorialSeminarAttendance__c連携先更新キーVisitorId__c更新方法UPDATESFDC取得SOQLでは、リードオブジェクトに対して、先のマッピングで連携対象となったSMPリードIDをSMP_IDに持つレコードを限定取得しています(「SMP_ID__c=:var1」)。更新キーについても、SMPリードIDをキーとしています。連携先となる来場履歴に、同じSMPリードIDを持つレコードが複数あった場合も、それらすべてに更新がかかります。来場履歴としてカスタムオブジェクトに登録済みのレコードへの更新のみ実施したいので、更新方法を「UPDATE」としています。また、項目マッピングを以下のように設定します。リードオブジェクトの「Id」を、来場履歴の参照関係「Lead__c」に反映するマッピングになっています。項目IDSMP項目または連携先SFDC項目SFDC項目SMP項目の属性item-tut2-2-leadidLead__cId--なし--動作確認(連携ジョブの手動実行)ここまでの手順で、SMPに新規登録されたキャンペーン来場履歴がSFDCのカスタムオブジェクトに連携された上で、リードから参照可能となっているはずです。実際に、SMPにリードおよび来場履歴を登録し、連携ジョブを手動実行してみましょう。サンプルケース1で設定したリード連携のうち、SMP→SFDCの連携ジョブも有効となっていることが前提です。来場登録の方法については、SMPのユーザーマニュアルをご参照ください。エラーが発生した場合は、「連携実行時のトラブルシュート」ページも参照しつつ解決を試みてください。正しく連携されると、以下のように来場履歴のカスタムオブジェクトにデータが登録されます。SMPの各リードのキャンペーンへの来場日時をSFDC上で確認できるようになっています。また、リード名がリンク表示になっており、リードへの参照関係が登録できていることも確認できます。項目連携のTipsフィルターやテーブル変換の機能を利用すると、たとえば姓名など複数の項目を結合して連携したり、任意の文字列を追加・置換などして連携したりすることができます。SFDCの日時項目をSMPに連携する場合など、フィルターが必ず必要なケースもあります。利用可能なフィルターの種類や具体的な設定例については、機能リファレンスの章の「フィルター」ページや、「フィルターを利用した項目連携のTips」ページをご参照ください。https://smpdoc.shanon.co.jp/ja/cooperation/apex2/chapter004/
-
セットアップ手順セットアップの準備セットアップの実施手順バージョンアップ手順アンインストール手順セットアップの準備セットアップ実行手順の概略SMPforSalesforceを利用するには、Salesforceへのアプリケーションのインストールの他に、SMPのAPIキー情報の登録など、いくつかの設定が必要です。SMPforSalesforceのインストールURLを取得し、対象SFDC組織にインストールしますSMPのAPIキーを取得し、SMPforSalesforceのSMP接続設定にてAPIキー情報を設定しますSFDCのリモートサイトの設定に、SMPのURLを追加します連携ログ参照のためのレポートIDを設定します連携停止検知のために必要な設定を追加します必要な要件は、次のとおりです。必要なものSMPforSalesforceのセットアップには環境や情報が必要となります。次をご確認ください。SFDC組織データ連携対象となるSFDC組織、すなわち、SMPforSalesforceをインストールするSFDC組織が必要です。SMPforSalesforceはSFDCの各エディションにインストール可能です。SMPforSalesforceを設定するため、インストールしたアプリケーションを利用する、あるいは特定のプロファイルで利用可能とするための設定が可能な権限を持つ管理者アカウントが必要です。事前の検証などを行う場合は、対象組織のSandboxやテスト組織を予め準備するとよいでしょう。SFDC組織のユーザSFDC組織のシステム管理者、または、同等の権限を持つユーザが必要です。注意オブジェクトマッピング機能にて、SOQLを記述する機能を実行するためには、プロファイルの権限で「すべてのデータを参照」にチェックがついているユーザが必要です。これは、任意のオブジェクトへの参照が可能となるため、相応の権限を持つユーザが設定可能であることを保証するための制限です。アプリケーションのインストールURLSMPforSalesforceをインストールするためのURLです。最新バージョンをインストールするための具体的なURLは担当営業までお問い合わせ下さい。インストールURLはたとえば、以下のような形式のものです(実際のインストールURLとは異なります)。なお、サンドボックスをインストール先とする場合は、ドメイン名がtest.salesforce.comとなります。ドメインデータ連携対象となるSMPドメインが必要です。また、連携内容を確認するために、SMP管理者アカウントを準備する必要があります。こちらも事前検証などを行う場合は、予めサンドボックスドメインの作成をお勧めします。対象SMPドメインのAPIキーデータ連携対象となるSMPドメインに対して発行された、有効なAPIキー、シークレット、パスワードの情報が必要です。サンドボックスを利用する場合は、本番ドメイン用のものとは別に、サンドボックスドメイン用のAPIキー情報の発行が必要です。APIキーは、SMPforSalesforce専用に発行されたものをご利用ください。また、SMPforSalesforceのために発行されたAPIキーは他の用途にはご利用いただけませんので、予めご了承ください。APIキーの情報や発行等については、弊社担当営業へお問い合わせください。セットアップの実施手順アプリケーションのインストールブラウザから、SMPforSalesforceのインストールURLにアクセスしますSFDCにログインしていない場合、アプリケーションをインストールするSFDC組織の管理者アカウントでログインしますインストール対象ユーザーを選択して[インストール]をクリックしますインストール対象には通常、[管理者のみのインストール]を選択しますここではSMPforSalesforceを操作して連携設定や連携ログの参照を行うユーザーを指定します対象Salesforce組織で権限管理について特別の制約がある場合は、組織のポリシーに従ってインストール対象ユーザーまたはプロファイルを選択してください。不明点がある場合は、組織のSalesforceを管轄している担当者にお問い合わせくださいインストール処理が進むのでしばらく待ちますインストールが完了すると、完了画面が表示され、インストール実行した管理者のメールアドレス宛に完了を通知するメールが送信されますインストールに時間がかかる場合、完了通知メールの到着を待ってインストールされたことを確認してくださいインストール済みパッケージ一覧にSMPforSalesforceが表示されますインストール直後は状況が「トライアル」となる場合がありますが、利用開始の手続きが正しく処理されると、状況が「有効」となり、利用期限も無期限となりますインストール完了後、画面右上のForce.comアプリケーションメニューにてSMPforSalesforceを選択すると、各メニューが表示されます(SalesforceClassicの画面の場合)LightningExperienceの場合、アプリケーションランチャーから同様にSMPforSalesforceを選択しますSMP接続設定の登録SMPにAPI接続するため、対象SMPのURL、APIキー、APIシークレット、パスワードを設定します。画面右上のForce.comアプリケーションメニューで「SMPforSalesforce」が選択されていない場合は選択します[SMP接続設定一覧]タブをクリックし、[新規作成]をクリックします次の項目を入力し、[保存]をクリックします接続名対象となるSMPのURL(例:キーAPIシークレットAPIパスワード有効フラグ:この設定を有効にする場合は、チェックします説明(オプション)注意設定したAPIキー、APIシークレット、APIパスワードは暗号化して保存されます。一度保存した内容は暗号化された文字列としてしか表示されず、暗号化前の具体的な値を確認することはできません。暗号化された文字列を編集すると、APIキー情報が変更され、SMPにAPI接続できなくなります。暗号化された文字列は変更を一切加えずにそのまま保存するか、暗号化する前の文字列を入力してください。SMP接続設定の有効・無効の切り替え一度保存した設定の有効・無効を切り替える場合は、次の手順を実施します。[SMP接続設定一覧]タブをクリックします対象の設定の[有効]欄のチェックをつけて有効にします無効にする場合はチェックを外しますSMP接続設定の削除保存した設定を削除する場合は、次の手順を実施します。[SMP続設定]タブをクリックし、対象の設定の[編集]リンクをクリックします内容を確認し、削除する場合は[削除]をクリックして設定を削除しますリモートサイトの設定SFDCからSMPへの接続を許可するため、リモートサイトの設定にSMPのURLを追加します。[設定]から左上のクイック検索で「リモートサイトの設定」を検索し、サイドメニューから[リモートサイトの設定]をクリックします[新規リモートサイト]をクリックします次の項目を入力し、[保存]をクリックしますリモートサイト名:任意の名前を入力しますリモートサイトのURL:対象のSMPのURL(例:ログ保存期間の設定連携処理を実行すると処理結果が「SMP_ログ」オブジェクトに連携ログとして保存されます。連携ログのデータは、ログ保存期間に設定した期間を経過すると削除されます。デフォルトは5日になっており、連携処理に問題があった場合に備えてなるべく長い期間残しておいたほうが無難ですが、データ量が多いほどデータ容量を消費するので、使用可能な容量の程度に応じて日数を設定します。(最大999日)[SMP接続設定一覧]タブをクリックします「ログ保存期間:」の欄に日数を入力し、[更新]ボタンをクリックします注意「更新」ボタンをクリックしないとログ保存期間の設定が反映されないのでご注意ください連携ログのデータ量は連携処理の内容と実際に連携するデータ量によって異なります。実際に連携処理の結果保存されるデータ量や消費されるデータ容量をみて、日数を調整してください。連携対象データがない場合でも、1連携ジョブあたり最低1~2KB消費します。データ容量の消費状況は、設定から「組織のディスク使用量」で確認できます。[設定]から左上のクイック検索で、「組織のディスク使用量」で検索し、サイドメニューから[組織のディスク使用量]をクリックします「SMP_ログ」の消費データ量や全体に占める割合を確認します連携ログレポートのレポートID設定連携ログの内容は、Salesforceのレポート機能を利用して表示します。連携ジョブからログレポートを参照するためにインストール組織ごとの実際のIDを設定します。レポートIDを確認します「レポート」タブを開いて、SMPforSalesforceフォルダから[SMPログレポート]を開きます開いた画面のURLより、レポートIDを確認しますレポートIDを設定します[設定]→左上のクイック検索より「カスタム設定」で検索、サイドメニューからカスタム設定へ遷移しますカスタム設定「SMPログ設定」の[Manage]をクリックします[新規]ボタンをクリックします「SMPログレポートID」に前段で確認したレポートIDを入力して保存します連携ジョブの停止検知機能のための設定連携ジョブの停止検知機能について定期実行するように設定した連携ジョブは可能な限り動作し続けるように実装されていますが、何らかの理由(例えば、Salesforceのインフラ不具合等)により定期実行が停止してしまう可能性があります。SMPforSalesforceでは、連携ジョブを2つの機能により監視することで、停止した可能性を検知します。連携ジョブ監視イベント(Apexジョブ方式)連携ジョブそのものと同じように、監視処理をジョブとして実行実行中にならないまま「次回実行日時」を一定時間経過してしまっているジョブを検知して、設定したメールアドレス(複数可)宛に通知指定の曜日・時間のバッチ実行による定期チェック補足詳細設定方法は「連携ジョブ監視機能のための設定(Apexジョブ方式編)」をご参照ください。連携ジョブ監視ルール(ワークフロー方式)Apexジョブのキューが詰まってしまった場合など、Apexジョブ方式も動作不可能なケースのために別の仕組みであるワークフローを利用「次回実行日時」を一定時間経過してしまっているジョブを検知して、対象連携ジョブの「エラー通知先」に通知「次回実行日時」からの相対時間で1回のみチェックこれらの監視機能を有効にするためにいくつか設定が必要です。補足詳細設定方法は「連携ジョブ監視機能のための設定(ワークフロー方式編)」をご参照ください。連携ジョブ監視機能のための設定(Apexジョブ方式編)Apexジョブによる検知のために必要な設定を説明します。Apexジョブ方式のために必要な設定カスタム設定の追加通知先:停止の可能性を検知した場合に通知するメールアドレスエラーメール送信先ID:監視イベント自体が異常終了した場合の通知先となるユーザーのID条件期間(時間):何時間経過した場合に停止していると判断するかApexクラスをスケジュールApexクラス[RenkeiJobKanshiBatchScheduler]を任意の時刻に起動するように設定Apexジョブ方式の設定エラー時通知先ユーザのIDを確認監視イベント自体が予期しないエラーで失敗した場合の通知先となるユーザを決定し、そのユーザIDを確認します[ユーザの管理][ユーザ]から対象ユーザの詳細を開き、URLに表示される16桁のIDを確認カスタム設定「連携ジョブ監視設定」「SMPforSalesforce連携ジョブ監視設定」の[Manage]をクリックします[編集]をクリックします「デフォルトの組織レベルの値」を変更します「エラーメール送信先ID」に前段で確認したエラーメール送信先となるユーザのIDを入力「条件期間(時間)」に、停止判断の基準となる時間を入力通常の連携処理にかかる想定時間よりも長い時間を設定します連携ジョブの「次回実行日時」が、ここで設定した時間以上経過している場合、通知しますカスタム設定「連携ジョブ監視_メール送信先」「SMPforSalesforce連携ジョブ監視設定_メール送信先」の[Manage]をクリックします[新規]をクリックします設定を追加しますNameに任意の名前を入力します送信先に、停止している可能性のあるジョブを検知した場合に通知するメールアドレスを設定します複数の送信先に送りたい場合は、さらに設定を追加しますApexをスケジュール[設定][開発][Apexクラス]から、「Apexをスケジュール」へ任意のジョブ名を入力しますApexクラスにRenkeiJobKanshiBatchSchedulerを指定します監視チェックを実行したい曜日、期間、希望開始時刻を指定しますApexスケジュールを複数登録することで1日複数回チェックすることも可能Apexジョブ方式の設定の確認設定したApexジョブスケジュールは、「スケジュール済みジョブ」にて確認できます任意の連携ジョブを編集して、「次回実行日時」が過去でかつ「有効」の連携ジョブを作成すると、指定時刻にアラートが送信されます一度登録したスケジュールは編集できないので、内容を変更する場合は削除して新規登録しますなお、「SMP_SFDC_API_JOB」は連携ジョブ自体の定期実行スケジュールなので削除しないでください連携ジョブ監視機能のための設定(ワークフロー方式編)続いて、ワークフロー方式の設定方法を説明しますワークフロー方式による検知のための設定連携ジョブを対象オブジェクトとしたワークフロールールを新規登録対象のオブジェクト(連携ジョブ)を指定ルール名や条件等の設定タイムトリガを追加し、アクションに「連携ジョブ監視メール」を選択登録したワークフローを有効化ワークフローの設定ワークフローの新規登録[設定][作成][ワークフローと承認申請][ワークフロールール]から新規ルールを作成しますワークフロールールを適用するオブジェクトとして「連携ジョブ」を選択して次へ進みますワークフロールールを設定しますルール名は「連携ジョブ死活監視ルール」とし、説明の内容は任意で入力してください評価条件に「作成されたとき、およびその後基準を満たすように編集されたとき」を選択します「次の場合にこのルールを実行」で「数式の評価がtrueになる」を選択し、以下の数式を入力します。(SMPCOOP__C_Job_Flag__c=False||SMPCOOP__C_Job_Flag__c=True)&&SMPCOOP__Enabled__c=Trueワークフローにタイムトリガを追加します「次回実行日時」よりどれだけ時間が経過したら異常とみなすかによって、時間を設定します。図の例では、12時間を経過した場合にアラートを送信するようにしていますタイムトリガにアクションを設定する追加したタイムトリガに、ワークフローアクションを設定します。「既存アクションの選択」を選択しますアクション種別の選択で検索項目を「メールアラート」として、「メールアラート:連携ジョブ監視メール」を選択します。ワークフロー作成の完了「完了」をクリックしてワークフロー作成を終了します。作成したワークフローを「有効化」しますデフォルトのワークフローユーザが未設定の場合「デフォルトのワークフローユーザ」が設定されていない場合、有効化のタイミングでその設定を促される可能性があります[設定][作成][ワークフローと承認申請][プロセスの自動化設定]から、デフォルトユーザの設定状況を確認可能ですワークフロー方式の設定の確認実際に連携ジョブが開始し、実行中フラグが立つと、「時間ベースのワークフロー」から予定されたメール送信アクションを確認することができます正常にジョブ終了して実行中フラグが外れた場合、キューからは削除されます設定した時間を経過した後もこのキューが残っている場合、設定した宛先にメールが送信されます動作確認のために、ダミーの連携ジョブをひとつ登録して、手動で実行中フラグを立ててみるとよいでしょうバージョンアップ手順正規の手続きでインストールされたSMPforSalesforceのアプリケーションは原則、バージョンアップに伴い最新版に強制アップデートされます。なんらかの理由でアップデートされなかったアプリケーションについては、以下の手順で更新することができます。バージョンアップ手順SMPforSalesforceの新しいバージョンのインストールURLにアクセスすることで、アプリケーションをアップデートすることができます。バージョンアップ対象のSFDCにシステム管理者としてログインします。更新前に連携ジョブの一覧を表示し、既存のジョブが実行中でないこと(実行中フラグが立っていないこと)を確認します。既存の連携ジョブ設定の「有効」フラグをすべて一時的にOFFにします。新しいバージョンのインストールURLを開きます。インストール時と同様、ウィザードに従って新しいバージョンのアプリケーションをインストールします実行する連携ジョブについて、再度「有効」フラグを立てます注意・バージョンアップによって新しく追加された設定項目や選択肢などは、ページレイアウトへ追加したり、オブジェクトごとの設定で選択肢として追加する必要があります。「補足事項のバージョンごとの留意事項」を参照の上、必要な追加作業を実施してください。・ベータ版などをインストールしている場合は、アプリケーションをアップデートできません。一度アンインストールして再度、インストールする必要があります。この場合、設定データやアプリに追加した項目などは再登録する必要があります。アンインストール手順SMPforSalesforceの利用を停止する場合は、弊社担当営業までご連絡ください。停止手続き後、アプリケーションを以下の手順でアンインストールしてください。アンインストール手順インストールしたアプリケーションを削除します[設定][インストール済みパッケージ]をクリックします「SMPforSalesforce」のアクション列に表示されている[アンインストール]リンクをクリックしますアンインストールされるコンポネント(Apexクラス、タブ、カスタムオブジェクト等)一覧が表示されるので内容を確認し、データのコピーを保存するかどうかを選択し、[アンインストール]ボタンをクリックしてアンインストールを実行しますリモートサイトの設定に追加したSMPの設定を削除します[設定][リモートサイトの設定]をクリックします連携対象のSMPのURLの設定を削除します注意ベータ版などをインストールしている場合は、アプリケーションをアップデートできません。一度アンインストールして再度、インストールする必要があります。この場合、設定データやアプリに追加した項目などは再登録する必要があります。https://smpdoc.shanon.co.jp/ja/cooperation/apex2/chapter003/
-
SMPforSalesforceの概要SFDCを利用するSMPユーザに対して、両システム間のデータ連携機能を提供します。例えば、SMPで登録されたリード情報をSFDCのLeadオブジェクトに反映(同期)したり、逆にSFDCのLead情報をSMPのリードに登録したりといった、相互のデータ連携が基本的にノンプログラミングで設定可能です。SMPにおいてはリードの他に、申込や活動履歴など主要な履歴情報が、SFDCにおいてはLead、Campaign等の標準オブジェクトのほか、任意のカスタムオブジェクトの取得・更新が可能です。SMPforSalesforceの特徴仕組みシステム要件機能概要サポート対象オブジェクトSMPforSalesforceの特徴主な特徴は、次のとおりです。相互連携(SMPからSFDCへ、あるいはSFDCからSMPへ)が可能SFDCの画面から、ノンプログラミングで設定可能バッチ処理で一定時間毎に連携を自動実行任意のタイミングでの手動実行も可能仕組み全体像SMPforSalesforceは、SFDCのForce.comプラットフォームで動作するアプリケーションとして実装しています。個別のSFDC組織に対して、パッケージをインストールすることで利用可能となります。SFDC上のデータに対してはApexコードを通じてSFDC内部経由でアクセスする一方、SMPに対してはSFDC環境からのAPIコールによってデータの取得・変更を行います。導入方法SMPforSalesforceは、インストールURLにアクセスすることで、顧客SFDC組織へのインストールが可能です。インストールするためには、Force.comアプリケーションインストール権限を持ったシステム管理者のアカウントが必要です。データ連携のための各種設定はインストール後、対象のSFDC組織へログインして行います。システム要件SMPforSalesforceのご利用にあたっては、最低限以下の条件を満たしている必要があります。導入対象のSFDC組織がEnterprise以上のエディションであること連携設定のために、導入対象のSFDC組織に連携設定と連携対象データに対する操作権限を持つ、標準ライセンスユーザーを用意できること実際の連携処理による更新処理の操作ユーザーとなるので、初期設定時だけではなく、連携処理をご利用になる期間を通じて有効なユーザーが必要です機能概要SMPforSalesforceに含まれる機能について、簡単に紹介します。SMP接続のための設定機能SMP接続設定連携対象のSMPへ接続するためのURLとAPIキー情報を設定します。データ連携を動作させるために1SMPドメインに対して有効な1組のAPI情報を設定する必要があります。複数の設定を保持することが可能ですが、同時に利用可能な設定はひとつのみです。なお、APIキー情報は暗号化して保存されます。表示上は暗号化された文字列が表示されるため、設定後にキー情報を画面から確認することはできません。設定の編集(再設定)は可能です。データ取得元と連携先の設定機能連携ジョブデータ連携を実現するためには、まず連携ジョブを設定します。これがバッチ実行の基本単位となります。バッチ実行の繰り返しタイミング(e.g.1時間ごと、3時間ごと、etc)を設定することで、連携処理の実行頻度を制御します。連携ジョブは複数設定することができます。その場合、設定された実行順序に従って、ひとつずつ順番に実行されます。スケジュールされたジョブは、SFDCのApexジョブとして実行されます。オブジェクトマッピング連携ジョブに対して、ひとつ以上のオブジェクトマッピングを設定します。ここで、SMP・SFDC双方の対象オブジェクト(リードやキャンペーンなど)レベルの連携方法を定義します。オブジェクトマッピングは、連携方向に応じて[SMP→SFDC]、[SFDC→SMP]、[SFDC→SFDC]のいずれかのタイプに分類されます。連携ジョブ下のオブジェクトマッピングは、実行順序に従ってひとつずつ順番に実行されます。項目マッピングオブジェクトマッピングに対してさらに、ひとつ以上の項目マッピングを設定します。ここで項目レベルのマッピング(たとえばリードで言えば名前や会社名などの項目)を設定します。データ取得制御のための設定機能APIパラメータSMPに対するデータ取得・更新はAPI経由で行うため、APIリクエストに付加する任意のパラメータを設定します。APIパラメータはオブジェクトマッピング単位で設定します。変数定義あるオブジェクトマッピング設定で取得したデータ項目は、配列型の変数として格納することで後続のオブジェクトマッピングで再利用することができます。データ変換のための設定機能フィルター連携するデータには定義済みのフィルターをかけることができま。例えば、アルファベットの大文字を小文字に変換したり、特定の文字列を追加したり、正規表現による置換を適用したりすることが可能です。テーブル変換連携するデータを予め定めたパターンに沿って置換する場合は、テーブル変換を利用することもできます。例えば、関東の県名を「関東」という文字列に変換したい場合、東京都→関東、神奈川県→関東、千葉県→関東、、、といった対応表を作成しておくことで、都道府県の入力をエリア名に変換して格納する、といったことが可能です。サポート対象オブジェクトSMPからデータ取得するための連携オブジェクトSMPのオブジェクトは、ひとつ以上のSMPAPIメソッドを利用してSMPから情報を取得します。例えば、「メール履歴」であればメール情報取得API(visitor.getMail)を主軸として、同時にリード情報取得API(visitor.get)を利用し、メール履歴にリード情報を付加したデータを取得します。オブジェクトごとの詳細については、「SMP連携オブジェクトリファレンス」ページをご参照ください。連携オブジェクト名参照するAPIメソッド(*=主軸となるメソッド)リードvisitor.get*キャンペーンseminar.get*サブキャンペーンseminar.getSession*キャンペーン申込visitor.getApplicationSeminar*visitor.getApplicationvisitor.getseminar.getFlowseminar.getサブキャンペーン申込visitor.getApplicationSession*visitor.getApplicationvisitor.getseminar.getFlowseminar.getseminar.getSessionキャンペーン申込アンケートvisitor.getApplicationSeminar*visitor.getApplicationvisitor.getseminar.getFlowseminar.getvisitor.getEnqueteenquetehistory.getサブキャンペーン申込アンケートvisitor.getApplicationSession*visitor.getApplicationvisitor.getseminar.getFlowseminar.getseminar.getSessionvisitor.getEnqueteenquetehistory.getキャンペーン来場visitor.getAttendanceSeminar*seminar.getvisitor.getサブキャンペーン来場visitor.getAttendanceSession*seminar.getSessionseminar.getvisitor.getメール履歴visitor.getMail*visitor.getクリックカウント履歴visitor.getClickcount*clickcounturl.getvisitor.getアンケート履歴visitor.getEnquete*enquetehistory.getvisitor.get活動履歴visitor.getActivity*visitor.get資料ダウンロード履歴visitor.getDocumentdownload*document.getvisitor.getWebトラッキング履歴visitor.getTrackingaccesslog*visitor.getWebトラッキングセッション履歴visitor.getTrackingsession*visitor.get割引履歴visitor.getDiscounthistory*seminar.getDiscountvisitor.getApplicationvisitor.get補足SMPから取得するデータの絞り込みにはAPIパラメータによる検索条件を指定します。APIパラメータは主軸となるAPIメソッドに対する条件指定となります。SMPへデータ登録・更新するための連携オブジェクトSFDCからSMPへの登録・更新・削除(キャンセル)を実行するSMP連携オブジェクト名と、利用するAPIメソッドの対応は以下のとおりです。(APIメソッド名の記載されていない処理は実行できません)連携オブジェクト名登録更新削除(キャンセル)リードvisitor.postvisitor.put-キャンペーンseminar.postseminar.put-サブキャンペーンseminar.postSessionseminar.putSession-キャンペーン申込application.post--キャンペーン申込キャンセル--application.deleteサブキャンペーン申込application.post--キャンペーン申込アンケートapplication.post--サブキャンペーン申込アンケートapplication.post--キャンペーン来場visitor.postAttendanceSeminar--サブキャンペーン来場visitor.postAttendanceSession--メール履歴―――クリックカウント履歴―――アンケート履歴―――活動履歴visitor.postActivityvisitor.putActivity-資料ダウンロード履歴―――Webトラッキング履歴―――Webトラッキングセッション履歴―――割引履歴―――SFDCからデータ取得・更新するためのオブジェクトSFDCのオブジェクトには、任意の標準オブジェクトおよびカスタムオブジェクトを指定可能です。また、SOQLを記述することで、任意の条件で取得データを絞り込むことができます。詳細は、「SMP連携オブジェクトリファレンス」ページをご参照ください。https://smpdoc.shanon.co.jp/ja/cooperation/apex2/chapter002/
-
はじめに本ドキュメントについて用語集本ドキュメントについてSMPforSalesforceは、SHANONMARKETINGPLATFORM(以降、SMP)と、セールスフォース・ドットコム(以降、SFDC)の間のデータ連携を実現するためのプロダクトです。本ドキュメントでは、SMPforSalesforceの機能仕様や利用方法、制限事項について説明します。なお、SMPforSalesforceの利用にあたっては、SFDCおよびSMPに関するAPIやオブジェクトに関する知識が必要となります。SFDCおよびSMPの操作や機能、API等の仕様については、それぞれのマニュアルやドキュメントをご参照ください。SMPのAPI詳細について:マーケティングプラットフォームAPI開発者ガイドSFDCのオブジェクトについて:SalesforceおよびForce.comのオブジェクトリファレンスSalesforceObjectQueryLanguage(SOQL)について:Force.comSOQLおよびSOSLリファレンス用語集SMPforSalesforceに関連するいくつかの用語についての説明を記載します。SMPに関する用語や機能についてSMPのユーザーマニュアルやサポートサイトをご参照ください。SMPカスタマーサポートサイトURL:に関する用語についてSFDCに関する用語についての詳細は、次のSFDCのサイト上のドキュメントをご参照ください。用語解説:用語集:用語説明AppExchangeForce.comプラットフォーム上で開発されたアプリケーションやサービスを参照、共有するためのサービスです。Force.comISVや企業内のIT部門がビジネスアプリケーションを開発し、運用するための統合されたツールとアプリケーションサービスのセットを提供するクラウド型プラットフォームです。オブジェクトSMPまたはForce.comのデータを格納する入れ物です。データベースでいうテーブルに相当し、テーブルの列にあたる項目を持ちます。たとえば、「リード」オブジェクトには「姓」「名」「会社名」といった項目が保持します。標準オブジェクトデフォルトでSalesforceに付属するオブジェクトです。たとえばリード、取引先、取引先責任者、商談など、標準タブにデータを格納するために使用します。カスタムオブジェクト組織に固有の情報を格納するために作成する新しいオブジェクトです。SOQLSalesforceObjectQueryLanguageの略で、Salesforceオブジェクトのデータ操作を行うためのSQLによく似た文法の独自言語です。ApexコードForce.comプラットフォーム上で実行する、強い型付けのプログラミング言語です。アプリケーションにビジネスロジックを追加したり、データベーストリガを記述したり、ユーザインターフェース層のコントローラを作成したりできます。https://smpdoc.shanon.co.jp/ja/cooperation/apex2/chapter001/
-
定期実行するように設定した連携ジョブは可能な限り動作し続けるように実装されていますが、何らかの理由(例えば、Salesforce のインフラ不具合等)により定期実行が停止してしまう可能性があります。
この場合、SMP for Salesforce では、連携ジョブ管理イベントとして「連携ジョブ監視イベント (Apexジョブ方式)」と「連携ジョブ監視ルール (ワークフロー方式)」の2種類があり、それぞれで監視することで、停止した原因を検知し通知します。こちらのFAQでは、「連携ジョブ監視イベント (Apexジョブ方式)」と「連携ジョブ監視ルール (ワークフロー方式)」の違いについて説明していきます。
運用に合わせて設定してください。連携ジョブ監視イベント (Apexジョブ方式)
連携ジョブと同様にAPEXというジョブの実行状態を監視する機能です。
APEXとは、SFDCが持つ処理プログラムのことで、SMP for SalesforceでもSMPと連携するためのジョブがこれに該当し、作成されるジョブはAPEXコードと呼ばれます。上記を踏まえて、APEXジョブ方式による連携ジョブ監視とは、他の連携ジョブと同様に一定期間(スケジュール)で連携ジョブの動作状況をAPEXジョブ上で監視する仕組みです。
図1:連携ジョブ監視イベント(Apexジョブ方式)
連携ジョブ監視ルール (ワークフロー方式)
連携ジョブの実行データから状態を監視する機能です。
APEXジョブでは、スケジュールされたタイミングで連携ジョブや監視ジョブのプログラム処理が動作しますが、何らかの要因によりプログラム自体が動作しないと監視自体が停止してしまうことになります。
これを補うためにSalesforce上のAPEXジョブに含まれるデータを確認する監視するワークフロー方式が存在します。
補足
SMP for SalesforceではSalesforce上のワークフロールール機能を応用して連携ジョブの「次回実行日時」の値変動を監視することで実行動作状況を判定してエラー通知を行うことが可能となっています。図2:連携ジョブ監視ルール (ワークフロー方式)
関連マニュアル
それぞれの設定手順については以下マニュアルに記載があります。