Xplenty에서는 표현식 편집기 를 사용하여 데이터 형식을 변환할 수 있습니다. 그러나 변환 방법은 변환할 데이터 형식에 따라 다르므로 다음을 참고하여 활용하십시오.
간단한 형 변환 1
1. Chararray(String)
용도:BAG형이나 MAP형 및 수치형 등에서 문자열형으로의 변환에 사용한다.
표현식 편집기의 사용 예 : (chararray) field 이름
예외 사례: 변수 화면에서 Hexstring(16진수 문자열)을 문자열 형식으로 변환하는 방법?
Xplenty에서는 Salesforce 객체에 있는 ID 열(AccountId 및 OwnerId)에서도 사용되는 '0052x0000034oJqAAI'와 같은 값을 문자열로 변수 화면에서 사용하면 Hexstring(16진 수치)으로 자동 처리됩니다.
이러한 경우 Chararray 함수를 사용하여 문자열 형식으로 변환하려하면 오류가 발생하기에 Hexstring(16진 수치)의 값을 문자열형으로 정의하고, 파이프라인의 조건이나 Select 컴포넌트에서 사용하고 싶은 경우는 백슬래시 「\'[Hexstring 문자열]\'」와 같이 정의하는 것으로 문자열로 변환이 가능합니다.
예) 문자열 "0052x0000034oJqAAI"를 문자열 형식의 변수로 정의하는 경우
'\'0052x0000034oJqAAI\''
2. Int형
문자열 형식의 숫자 데이터를 숫자 형식으로 변환
표현식 편집기의 사용 예 : (int) field 이름
3. Long타입
문자열 형식의 숫자 데이터를 숫자 형식으로 변환
표현식 편집기의 사용 예 : (long) field 이름
4. Float 타입
문자열 형식의 숫자 데이터를 숫자 형식으로 변환
표현식 편집기의 사용 예 : (float) field 이름
5. Double 형
문자열 형식의 숫자 데이터를 숫자 형식으로 변환
표현식 편집기의 사용 예 : (double) field 이름
6. 수치로 변환, 수치로 변환 불가의 경우는 기본값을 반환
ParseIntOrDefault(field_name, 수치로 변환 불가의 경우는 기본값 - Int 형)
ParseLongOrDefault(field_name, 수치로 변환 불가의 경우는 기본값 - Long 형)
ParseFloatOrDefault(field_name, 수치로 변환 불가의 경우는 기본값 -Float형)
ParseDoubleOrDefault(field_name, 수치로 변환 불가의 경우는 기본값 - Double형)
표현식 편집기의 사용 예 :
ParseIntOrDefault('아아아아',1) ==> 1(Int형) 반환 * 숫자로 변환 불가능한 문자열이기 때문
ParseIntOrDefault('300',1) ==> 300(Int 형) 반환 * 숫자로 변환 가능한 문자열이기 때문
간단한 형 변환 2
1. Map형
JSON 등의 Key-Value형태의 데이터를 가진 데이터 형식입니다.다음과 같은 데이터를 읽어들일때 사용됩니다.
area : { id : "130", name : "도쿄" }
표현식 편집기의 사용 예 :
TOMAP('id','130','name','도쿄') ==> {name=도쿄, id=130} 을 반환
MAP형으로부터 데이터를 취득하는 방법?
Field1#'키명칭'이라고 지정하면, 키에 대응하는 값을 취득할 수 있습니다.
표현식 편집기의 사용 예:
TOMAP('id','130','name','도쿄')#'id' ==> 130 을 반환
2. Tuple형
여러개의 필드가 배열 형식으로 된 데이터형입니다.
표현식 편집기의 사용 예:
TOTUPLE('001,TV,Electronics') ==> (001,TV,Electronics) 을 반환
3. Bag형
표현식 편집기의 사용 예:
TOBAG ('001','TV','Electronics') ==> {(001),(TV),(전자)} 을 반환
그외의 형 변환
1. BagToString
Bag에서 String으로 변환
표현식 편집기 사용 예 :
BagToString(JsonStringToBag('[1,2,3]'),';') ==> '1;2;3' String형으로 반환
# 이 예제에서는 문자열을 Bag 형식으로 편의적으로 변환하기 위해 JsonStringToBag을 사용
2. BagToTuple
Bag에서 Tuple로 변환
표현식 편집기 사용 예:
BagToTuple(JsonStringToBag('[1,2,3]')) ==> (1,2,3) 튜플형으로 반환
Tuple형의 일부 배열의 값을 얻는 방법?
표현식 편집기 사용 예제:
BagToTuple(JsonStringToBag('[1,2,3]')).$0 ==> 1 첫번째 값을 반환
3. MapToBag
Map에서 Bag로 변환
표현식 편집기 사용 예 :
MapToBag(TOMAP('a',1,'b',2,'c',3)) ==> {([value#1,key#a]),([value#2,key#b]),([value#3,key#c])} Bag형을 반환
참고:Xplenty로 취급할 수 있는 데이터형에 대해서
사용 가능한 형은 공식 페이지를 참고하세요.
# 2020년 8월 16일 현재, Xplenty에서는 Date형은 없습니다.
보다 실용적인 데이터 처리
1. BAG형의 필드
Flatten 함수를 사용합니다. Bag형의 필드가 가지는 데이터 수에 근거해 레코드가 나뉘어집니다.
예를 들어 다음과 같은 데이터를 가진 BAG 유형 필드의 경우 한 레코드가 두 개의 레코드로 나뉩니다.
bagData = {
[{"id":"001","price":"200"}],
[{"id":"002","price":"500"}]
}
# Bag형의 데이터를 레코드로 나누기
Flatten(bagData)
# 결과
{"id":"001","price":"200"} ==> Rec#1
{"id":"002","price":"500"} ==> Rec#2
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