【備忘録】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 CDで対応しているフォーマットに変換する
SVF CDでは時刻データを取り扱うためには、「HHMMSS」のフォーマットに変換する必要があります。
また、「HH:MM:SS」を「HHMMSS」に変換するために「CTOD」関数を利用することができます。
あとは、邪魔なタイムゾーンを削除すれば良いので、「REPLACE」関数を用いてタイムゾーン部分を空文字に変換します。
設定する数式は以下になります。
CTOD(REPLACE(CreateTime),".000Z")
テキストに変換して出力する
元の値の「09:30:00.000Z」を、SVF CDで扱える「093000」に変換ができたので、次にこれを「09時30分」としていきます。
やるべきことは、次の3ステップになります。
時間・分を取り出すこと
2桁で表示することと
テキスト出力すること
時間・分を取り出すためには、「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で数式を利用することにしました。
この記事が気に入ったらサポートをしてみませんか?