#Salesforceの日付型に対しデータを更新する場合の注意点
Xplentyでは、Date型という型はないため、文字列型もしくはDateTime型で処理されます。
Xplentyで変換を行う場合、以下になります。
例えばCSVファイルをSalesforceへ連携する場合の日付型の扱いについて紹介します。
商談ID | クローズ予定日 | 商談名 |
---|---|---|
0062x000005elWKAAY | 2021/5/11 | テスト |
クローズ予定日は「2021/5/11」となっており、yyyy/M/d形式となっています。
これをSalesforceに入れる場合、XplentyではString型もしくはDateTime型のまま、Salesforceコンポーネントに連携することにより、クローズ予定日を追加もしくは更新することが可能です。
##文字列型で連携する方法
Salesforce側のDate型のフィールドにyyyy/M/d形式のまま、データを入れることはできないので、以下のyyyy-M-d形式(もしくはyyyy-MM-dd形式)に変換する必要があります。
2021/5/11 > 2021-5-11
変換式:REPLACE(*クローズ予定日のfield名*,'/','-')
結果:2021-5-11
もし上記のFiledの値がNULLの場合、NULLが返されます。
##DateTime型での連携
Salesforce側のDate型のフィールドにDateTime型に変換し、挿入することも可能です。その場合、
変換式:ToDateCustomFormats(*クローズ予定日のfield名*,'yyyy/M/d')
結果:2021-05-12T00:00:00.000Z
もし上記のFiledの値がNULLの場合、NULLが返されます。
Xplenty側ではDateTime型のデータをSalesforceに投入時に日付型「2021-05-12」に自動的に変換されるので、問題ありません。
##SalesforceのオブジェクトのIDフィールド((AccountIdやOwnerId))に使われるHexstring(16進文字列)型のフィールドを文字列型に変換するには?
Xplentyでは「0052x0000034oJqAAI」のような値を文字列として変数画面で使用した場合、Hexstring(16進文字列)として自動的に扱われます。こうした場合、Chararray関数を使用して文字列型へ変換しようとするとエラーとなってしまいます。
そこでHexstring(16進文字列)の値を文字列型で定義し、パイプラインの条件やSelectコンポーネントで使用したい場合、バックスラッシュを使い「'[Hexstring文字列]'」のように定義することで、文字列に変換が可能です。
例)文字列「0052x0000034oJqAAI」を変数で文字列型として定義する場合
'\'0052x0000034oJqAAI\''