見出し画像

【備忘録】SVF Cloudで、Salesforceの時刻項目を反映させる方法

おはようございます、いつきです。

支援している組織にて、SVF Cloudを利用して帳票を一括発行しています。
今回は、SVF Cloud Designer(以下SVF CD)を利用して、Salesforceの時刻項目を反映させる方法を紹介します。

例として、Salesforceの項目(作成日:CreateTime)の値「09:30:00」を、SVFで出力した際に「09時30分」に変換するということをしていきます。

STR(FORMAT(HOUR(CTOT(REPLACE(CreateTime,".000Z",""))),"99")) 
+ "時"+STR(FORMAT(MINT(CTOT(REPLACE(CreateTime,".000Z",""))),"99"))+"分)"

Salesforceの時刻項目をテキストで表示し、どのように出力されるか確認する

まず最初にSalesforceの時刻項目がどのように表示されるか確認しました。
結果として、「09:30:00.000Z」とタイムゾーンがついて出力されることがわかりました。

マニュアルには次のように記載されています。時刻だけの記載がなかったので、参考になれば幸いです。

SVF Cloud Designerで作成した帳票レイアウトに「日付/時間」型のデータを出力する場合、「yyyy-mm-ddThh:mm:ss.+hhmm」の形式で出力されます。

https://repo.svfcloud.com/manual/release/ja/restriction/screstriction/ja/893425.html

SVF CDで対応しているフォーマットに変換する

SVF CDでは時刻データを取り扱うためには、「HHMMSS」のフォーマットに変換する必要があります。
また、「HH:MM:SS」を「HHMMSS」に変換するために「CTOD」関数を利用することができます。

あとは、邪魔なタイムゾーンを削除すれば良いので、「REPLACE」関数を用いてタイムゾーン部分を空文字に変換します。

設定する数式は以下になります。

CTOD(REPLACE(CreateTime),".000Z")

テキストに変換して出力する

元の値の「09:30:00.000Z」を、SVF CDで扱える「093000」に変換ができたので、次にこれを「09時30分」としていきます。

やるべきことは、次の3ステップになります。

  1. 時間・分を取り出すこと

  2. 2桁で表示することと

  3. テキスト出力すること

時間・分を取り出すためには、「HOUR」関数と、「MINT」関数を利用することで対応が可能です。
2桁で表示するには、FORMAT関数を利用することで対応が可能です。
テキスト出力はSTR関数を利用することで対応が可能です。

時間と、分をそれぞれ出すことになるため、適用すると以下の数式になります。

STR(FORMAT(HOUR(CTOT(REPLACE(CreateTime,".000Z",""))),"99")) 
+ "時"+STR(FORMAT(MINT(CTOT(REPLACE(CreateTime,".000Z",""))),"99"))+"分)"


まとめ

SVF CDで少し複雑な数式を使用しなくても、Salesforce上で数式項目(テキスト型)を作成することもできます。どちらが良いかは悩ましいところですが、Salesforceに無駄な項目を増やしたくないので、今回はSVF CDで数式を利用することにしました。



この記事が気に入ったらサポートをしてみませんか?