はじめに
Salesforce連携を行う際、レコード抽出条件として日付を指定するケースはよくあります。
例えば、
- 今日作成されたレコードを取得したい
- 昨日更新されたデータだけ取得したい
- 今月の商談のみ抽出したい
といった要件です。
SalesforceではSOQLで利用できる「日付リテラル」が提供されていますが、HULFT SquareのSalesforceコネクターでも利用できることを確認しました。
この記事では、Salesforceの日付リテラルとHULFT Squareでの利用例を紹介します。
Salesforceの日付リテラルとは
日付リテラルは、SOQLで相対的な日付条件を指定するための機能です。
例えば以下のような指定ができます。
CreatedDate = TODAY
LastModifiedDate = YESTERDAY
CloseDate = THIS_MONTH
固定の日付を指定せずに実行日時を基準にした抽出ができるため、定期バッチとの相性が非常に良いです。
主なリテラルは以下の通りです。
| リテラル | 意味 |
|---|---|
| TODAY | 今日 |
| YESTERDAY | 昨日 |
| TOMORROW | 明日 |
| THIS_WEEK | 今週 |
| LAST_WEEK | 先週 |
| THIS_MONTH | 今月 |
| LAST_MONTH | 先月 |
| THIS_YEAR | 今年 |
| LAST_YEAR | 昨年 |
| LAST_N_DAYS:30 | 過去30日 |
| NEXT_N_DAYS:7 | 今後7日 |
HULFT SquareのSalesforceコネクターで試してみる
HULFT SquareにはSalesforceコネクターとして様々なアイコンが用意されています。
今回は、その中で[レコード読み取り]アイコンを利用します。
[レコード読み取り]アイコンでは、該当のオブジェクトからレコードを取得しますが、検索条件を設定することができます。
日付リテラルを利用しなくても、HULFT Squareの機能の[スクリプト変数]を利用することで該当の日付をセットして検索処理を行うこともできますが、せっかくなので、Salesforceの日付リテラルを利用してみます。
例:昨日更新された取引先のうち、請求先郵便番号に値が入っているレコードを取得
Salesforceコネクターの取得条件として以下を設定します。
検索条件に以下を設定しています。
BillingPostalCode != ''
AND
SystemModstamp = YESTERDAY
※[BillingPostalCode]は、[請求先郵便番号]の名前
※[SystemModstamp]は、ユーザ、または、(トリガのような)自動化されたプロセスによって最後にレコードが修正された日付と時刻
このように検索条件を設定することで、簡単に該当レコードを抽出することができました。
検証してよかったポイント
今回確認したかったのは、HULFT Square側で日付リテラルが独自に制限されていないかという点でした。
結果として、Salesforceコネクターから実行するSOQLにそのまま日付リテラルを記述できたため、
- 当日データ取得
- 前日差分取得
- 月次データ取得
- 直近○日分の取得
といった連携処理をシンプルに実装できそうです。
特に差分連携を構築する際には、フロー内で日付計算を行うよりも保守しやすい構成になると感じました。
まとめ
HULFT SquareのSalesforceコネクターでは、SOQLの日付リテラルを利用してレコード抽出が可能でした。
特に定期実行する連携では、
TODAYYESTERDAYTHIS_MONTHLAST_N_DAYS:n
などを活用することで、日付計算処理やパラメータ管理を簡素化できます。
Salesforce連携フローをシンプルに保守しやすくしたい場合は、日付リテラルの活用することも選択肢の一つになりますね。
小さなポイントではありますが、差分連携や定期バッチを設計する際には覚えておくと便利な機能です。
