
1. Chararray(String)
用途:BAG型やMAP型および数値型などから文字列型への変換に使用する 式エディタでの使用例: (chararray) field名 例外ケース:変数画面でHexstring(16進文字列)を文字列型に変換するには? XplentyではSalesforceのオブジェクトにあるID列(AccountIdやOwnerId)でも使用される「0052x0000034oJqAAI」のような値を文字列として変数画面で使用した場合、Hexstring(16進文字列)として自動的に扱われます。こうした場合、Chararray関数を使用して文字列型へ変換しようとするとエラーとなってしまいます。 そこでHexstring(16進文字列)の値を文字列型で定義し、パイプラインの条件やSelectコンポーネントで使用したい場合、バックスラッシュ「‘[Hexstring文字列]‘」のように定義することで、文字列に変換が可能です。 例)文字列「0052x0000034oJqAAI」を変数で文字列型として定義する場合
2. Int型
文字列型の数値データを数値型に変換 式エディタでの使用例: (int) field名3. Long型
文字列型の数値データを数値型に変換 式エディタでの使用例: (long) field名4. Float型
文字列型の数値データを数値型に変換 式エディタでの使用例: (float) field名5. Double型
文字列型の数値データを数値型に変換 式エディタでの使用例: (double) field名6. 数値へ変換、数値に変換出来なかった場合はデフォルト値をセット
ParseIntOrDefault(field名,数値に変換出来なかった場合のデフォルト数値(Int型)) ParseLongOrDefault(field名,数値に変換出来なかった場合のデフォルト数値(Long型)) ParseFloatOrDefault(field名,数値に変換出来なかった場合のデフォルト数値(Float型)) ParseDoubleOrDefault(field名,数値に変換出来なかった場合のデフォルト数値(Double型)) 式エディタでの使用例: ParseIntOrDefault(‘ああああ’,1) 1(Int型)を返す >文字列が数値に変換できなかったため ParseIntOrDefault(‘300’,1) 300(Int型)を返す シンプルな型変換21. Map型
JSONなどのキーバリュー形式のデータを格納したデータ形式です。 以下のようなデータを取り込む際に使用されます area : { id : “130” , name : “東京” } 式エディタでの使用例: TOMAP(‘id’,‘130’,‘name’,‘東京’) 結果: {name=東京, id=130} MAP型からデータを取得するには? Field1#‘キー名称’と指定すれば、キーに対応する値が取得できます。 式エディタでの使用例: TOMAP(‘id’,‘130’,‘name’,‘東京’)#‘id’ 結果: 1302. Tuple型
複数フィールドが配列になっている形式のデータ型です。 式エディタでの使用例: TOTUPLE(‘001,TV,Electronics’) 結果: (001,TV,Electronics)3. Bag型
式エディタでの使用例: TOBAG(‘001’,‘TV’,‘Electronics’) 結果: {(001),(TV),(Electronics)} その他の型変換1. BagToString
Bag型からString型に変換 式エディタの使用例:*この例では、文字列をBag型に便宜的に変換するためにJsonStringToBagを使用 BagToString(JsonStringToBag(‘[1,2,3]’),’;’) 結果:String型 1;2;32. BagToTuple
Bag型からTuple型に変換 式エディタの使用例: BagToTuple(JsonStringToBag(‘[1,2,3]’)) 結果:Tuple型 (1,2,3) Tuple型の配列の一部の値を取得するには? 式エディタの使用例: BagToTuple(JsonStringToBag(‘[1,2,3]’)).$0 結果: 13. MapToBug
Map型からBug型に変換 式エディタの使用例: MapToBag(TOMAP(‘a’,1,‘b’,2,‘c’,3)) 結果:Bag型 {([value#1,key#a]),([value#2,key#b]),([value#3,key#c])} 参考:Xplentyで扱えるデータ型について 使用できる型はこちら *2020年8月16日現在、XplentyではDate型がありません。
1. BAG型のフィールド
Flatten関数を使用する。 式)Flatten(BAG型のフィールド)
バッグ型のフィールドがもつデータ数にもとづきレコードが分かれます。
例えば以下のようなデータをもつBAG型のフィールドの場合、1レコードが2つのレコードに分かれます。
{ [{"id":"001","price":"200"}], [{"id":"002","price":"500"}] }
結果:
{“id”:“001”,“price”:“200”}
{“id”:“002”,“price”:“500”}
2. BAG形式の文字列を持つフィールドの処理
すでに処理対象のフィールドのデータ型がBAG型の場合はこの処理は不要ですが、String型の場合には以下の処理が必要となります。 フィールド「test」の値:[{"id":"001","price":"200"}]
String型のJSON文字列をBAG型へ変換
「test2」フィールド:
式)JsonStringToBag(test)
結果値:{({"id":"001","price":"200"})}
これでフィールドをFlatten関数で処理することで、以下の様なJSON文字列になります。
「test3」フィールド:
式)Flatten(test2)
{"id":"001","price":"200"}
あとはJsonStringToMap関数を使って、testフィールドの値の各キーを取得できます。
JsonStringToMap(test3)#‘id’ —> 001
JsonStringToMap(test3)#‘price’ —> 200