> ## Documentation Index
> Fetch the complete documentation index at: https://www.integrate.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ETL: Salesforceデータ更新ヒント集

> Salesforceへのデータ更新時に発生しやすい日付型の処理方法や、Hexstring型フィールドを文字列型に変換する方法などの注意点とヒントを紹介します。

## 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\''`
