[Talend]tSalesforce GetServerTimestampを利用してSalesforceの現在時刻を取得する

はじめに

こんにちは。DI部の大高です。

今回はTalendのコンポーネント「tSalesforceGetServerTimestamp」によるSalesforceサーバーの現在時刻の取得を紹介したいと思います。

前提条件

Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.1.1」、Salesforceのバージョンは「Winter '19」で検証しています。

なお、Salesforceのアカウントが無い場合には、以下から開発者環境を無料で新規作成することができます。

Salesforce Developers

また、Salesforceについての細かい説明については記述しません。

tSalesforceGetServerTimestampについて

「tSalesforceGetServerTimestamp」を利用すると、Salesforceのサーバー上における現在時刻をタイムスタンプ形式で取得することができます。

「tSalesforceGetServerTimestamp」コンポーネントのTalend Helpページはこちらです。

tSalesforceGetServerTimestamp

では、具体的に以下で解説していきます。

ジョブの説明

「tSalesforceConnection」でBasic接続を行ったあとに、「tSalesforceGetServerTimestamp」で現在時刻をタイムスタンプ形式で取得し、「tLogRow」で標準出力に表示しています。

なお「tSalesforceConnection」については、以前こちらの記事でご紹介したものをそのまま利用していますので、今回はこちらのコンポーネントについては特に記載しません。

[Talend]tSalesforceConnectionを利用してSalesforceに接続する(Basic接続) | DevelopersIO

「tSalesforceGetServerTimestamp」コンポーネントの設定

「tSalesforceGetServerTimestamp」コンポーネントは、以下のように設定しました。

接続コンポーネント

接続コンポーネントはジョブ内で定義した「tSalesforceConnection」コンポーネントをプルダウンから指定するか、「Use this Component」で「tSalesforceConnection」コンポーネントと同様に指定することができます。

今回は「tSalesforceConnection」コンポーネントを利用しているのでプルダウンから選択しています。

スキーマ定義

スキーマ定義は固定スキーマとなっているので変更できません。以下の通り「ServerTimeStamp」というカラム名で「Date」型の値がタイムスタンプ形式"yyyy-MM-dd'T'HH:mm:ss'.000Z'"で取得できるように設定されています。ということは、取得できるのは秒単位までということですね。

「tLogRow」コンポーネントの設定

「tLogRow」コンポーネントはデフォルトのままで、特に設定していないので割愛します。

実行結果

設定は以上です。実際にこのジョブを実行すると以下のように出力されます。

[statistics] connecting to socket on port 3596
[statistics] connected
2018-12-20T10:19:33.000Z
[statistics] disconnected

Salesforceサーバの現在時刻がタイムスタンプ形式で取得できました!

気になる点としては、末尾にZが付くのでタイムゾーンはUTCという意味になるかと思いますが、実際はJSTの時刻になっています。これはJavaの実行環境タイムゾーンがJSTであるためと考えられるので、正確に利用するためには別途2018-12-20T10:19:33+09:00のようなISO 8601形式にしたほうが良いかと思われます。

まとめ

以上、「tSalesforceGetServerTimestamp」コンポーネントの紹介でした。

使いどころが難しそうなのですが、処理の開始・終了時刻などをSalesforceのサーバ時間で記録しておきたい場合などに利用できるのではないでしょうか。

それでは。