변수 값 설정 및 변경
학습 목표
이 유닛을 완료하면 다음을 수행할 수 있습니다.
- 플로 변수 값을 변경합니다.
- 변수를 사용하여 여러 소스의 데이터를 수락합니다.
- 개별 할당 요소로 여러 경로를 생성합니다.
변화의 힘
플로에 데이터를 저장할 때마다 변경 사항 필요 없이 완벽하게 진행했다고 생각하시나요? 사실 그런 경우는 매우 드뭅니다. 플로에서 레코드 데이터를 검색하여 추가, 삭제 또는 다른 방식으로 변경한 다음 원래의 레코드로 다시 전송하는 경우가 많습니다.
Pyroclastic의 마케팅 및 지원 팀은 커뮤니케이션에 배송 주소를 사용해 보려고 합니다. 많은 계정에 필수 청구 주소는 있지만 배송 주소는 없습니다. Flo는 사용자에게 청구 주소를 복사할 것인지 아니면 배송 주소를 수동으로 입력할 것인지 묻고, 그에 따라 배송 주소 필드를 업데이트하는 플로를 만들어 달라고 여러분에게 요청합니다.
하나의 레코드 업데이트 요소가 있는 간단한 레코드 트리거형 플로일 수도 있지만 문제가 있습니다. 우선 순위 필드의 값을 설정하여 사례 우선 순위를 업데이트했던 때를 기억하시나요? 우선 순위 필드에 값이 하나만 있었습니다.
배송 주소 시나리오에서 배송 주소는 청구 주소에서 가져올 수도 있고 사용자 입력에서 가져올 수도 있습니다. 이론적으로 레코드 업데이트 요소는 다음과 같이 표시됩니다.
이 경우 올바르게 작동하지 않습니다. 값 필드에는 단일 데이터 소스가 필요합니다. 청구 주소 또는 사용자 입력 중 하나를 사용할 수는 없으며, 반드시 둘 중 하나만 사용해야 합니다.
대신 청구 주소 또는 사용자 입력에서 배송 주소를 수락할 수 있는 중간 보관 장소(변수)가 필요합니다.
또한 사용자가 청구 주소를 복사하기로 선택했는지 아니면 주소를 수동으로 입력하기로 선택했는지 확인하고 그에 따라 조치를 취할 수 있는 방법이 필요합니다. 이를 위해 결정 요소를 사용할 수 있습니다.
그런 다음 변수를 통해 배송 주소 값을 설정하도록 레코드 업데이트 요소를 구성할 수 있습니다. 하지만 변수 값을 어떻게 설정할까요?
바로 여기에서 할당 요소가 등장합니다. 할당 요소는 사용자가 원하는 주소를 변수에 할당하여 변수 값으로 배송 주소 필드를 업데이트할 수 있게 합니다.
할당 요소
변수에 값을 할당하려면 할당 요소를 사용합니다. 배송 주소 시나리오에서는 변수 값을 변경하여 하나의 레코드에서 하나의 필드를 업데이트하지만, 할당 요소를 사용하면 훨씬 더 많은 작업을 수행할 수 있습니다.
변수를 도시락이라고 생각해 보세요. 도시락이 다양한 음식을 담을 수 있는 것처럼, 변수는 다양한 값을 저장할 수 있습니다.
변수의 값을 설정하려면 변수에 값을 할당합니다. 예를 들어 Priority equals Sev 0(우선 순위 = 심각도 0)입니다.
할당 요소에서 변수와 해당 값을 지정하여 변수 값을 설정합니다. 각 할당 문에는 변수가 업데이트되는 방식을 제어하는 연산자도 포함됩니다. 다음 예시를 고려해 보세요.
이 예에서 Equals(같음) 연산자는 변수의 현재 값을 지정된 값으로 교체합니다. 결과적으로 우선 순위 변수는 Sev 0을 값으로 저장합니다.
할당 요소로 플로 작성하기
Flo가 요청한 배송 주소 플로를 다시 살펴보면서, Flo가 계정 Lightning 페이지에 포함하고 배송 주소 필드가 채워지면 숨길 수 있는 화면 플로를 구축해 보겠습니다.
이 뱃지와 플로의 데이터 및 작업 뱃지에서 배운 내용을 활용하여 화면 플로를 만들어 보세요.
화면 플로 및 텍스트 변수 만들기
- 플로를 만들고 Screen Flow(화면 플로) 유형을 선택합니다.
- 현재 레코드의 ID를 수신할 텍스트 변수를 만듭니다.
- API Name(API 이름):
recordId
- Data Type(데이터 형식): Text(텍스트)
- Available for input(입력에 사용 가능): Checked(확인됨)
레코드 가져오기, 화면 및 결정 요소 만들기
- 레코드 가져오기 요소를 추가하여 현재 레코드의 세부 정보를 검색해서 가져오고 레코드 변수에 저장합니다.
- Label(레이블):
Get Account Data
(계정 데이터 가져오기) - Object(개체): Account(계정)
- 필터 조건 요구 사항:
- Field(필드): Id
- Operator(연산자): Equals(등호)
- Value(값): recordId
- Field(필드): Id
- How Many Records to Store(저장할 레코드 개수): Only the first record(첫 번째 레코드만)
- How to Store Record Data(레코드 데이터 저장 방법): Automatically store all fields(모든 필드 자동 저장)
- 사용자에게 청구 주소를 복사하거나 배송 주소를 입력하라는 메시지를 표시하는 화면 요소를 추가합니다.
- 캔버스에서 계정 데이터 가져오기 요소 다음에 있는
항목을 클릭합니다.
-
Screen(화면)을 선택합니다.
- Label(레이블)에는
Enter Address
(주소 입력)를 입력합니다.
- Components(구성 요소) 패널에서 확인란을 화면 캔버스로 끌어옵니다.
- Label(레이블)에
Use the billing address for the shipping address
(배송 주소에 청구 주소 사용)를 입력합니다.
- API Name(API 이름)에서 기본 이름을
Use_the_billing_address
로 줄입니다.
- 주소 구성 요소를 확인란 아래의 화면 캔버스로 끌어다 놓습니다.
- API Name(API 이름)에
ScreenShipping
을 입력합니다.
- Label(레이블)에
Shipping Address
(배송 주소)를 입력합니다.
화면 캔버스가 다음과 같이 표시됩니다.
-
Done(완료)을 클릭합니다.
- 결정 요소를 추가하여 사용자의 선택에 따라 다양한 경로를 만들 수 있습니다.
- Label(레이블):
Use Billing Address?
(청구 주소를 사용하시겠습니까?) - Outcome 1 Label((결과 1 레이블):
Selected
(선택됨) - 결과 1 조건 요구 사항:
- Resource(리소스): Enter Address(주소 입력) > Use the Billing Address…(청구 주소 사용)
- Operator(연산자): Equals(등호)
- Value(값): True(참)
- Resource(리소스): Enter Address(주소 입력) > Use the Billing Address…(청구 주소 사용)
- Default Outcome Label(기본 결과 레이블):
Not Selected
(선택되지 않음) -
항목을 클릭하여 사이드 패널을 닫습니다.
- 플로를 저장합니다. Flow Label(플로 레이블)에
Set Shipping Address
(배송 주소 설정)를 입력합니다.
플로가 다음과 같이 표시됩니다.
이제 사용자가 청구 주소를 복사하거나 수동으로 입력할 수 있는 화면 플로가 생겼습니다. 사용자가 어떤 소스를 선택하든, 배송 주소를 계정 데이터 가져오기 레코드 변수에 복사해야 합니다.
- 사용자가 청구 주소를 사용하기로 선택한 경우, 플로는 레코드 변수의 청구 주소 필드에 있는 값을 해당 배송 주소 필드에 할당합니다.
- 사용자가 수동으로 배송 주소를 입력하기로 선택한 경우, 플로는 주소 입력 화면에 입력한 값을 레코드 변수의 배송 주소 필드에 할당합니다.
다음으로 계정 데이터 가져오기 요소의 레코드 변수(계정 데이터 가져오기의 계정)의 데이터를 업데이트합니다. 해당 레코드 변수의 필드 값을 설정하기 위해 두 개의 할당 요소를 생성해야 합니다. 하나는 청구 주소 복사('선택됨' 경로에 있음)를 위한 것이고, 다른 하나는 주소 입력 화면 요소의 데이터 복사('선택되지 않음' 경로에 있음)를 위한 것입니다.
선택됨 경로에 할당 요소 추가하기
- 선택됨 경로에서
항목을 클릭합니다.
- 로직 섹션으로 스크롤하여 Assignment(할당)를 선택합니다.
- Label(레이블)에
Copy Billing Address
(청구 주소 복사)를 입력합니다.
- Variable(변수)의 경우 Account from Get Account Data(계정 데이터 가져오기의 계정)를 선택한 다음 Shipping City(배송지 시/군/구)를 선택합니다.
- Value(값)의 경우 Account from Get Account Data(계정 데이터 가져오기의 계정)를 선택한 다음 Billing City(청구지 시/군/구)를 선택합니다.
-
+Add Assignment(+할당 추가)를 4번 클릭하여 총 5개의 행을 생성합니다.
각 주소 필드를 개별적으로 설정해야 하므로 5개의 주소 필드마다 할당 행이 하나씩 필요합니다.
- 추가된 할당 행에서 다음 값을 선택합니다.
-
Account from Get Account Data(계정 데이터 가져오기의 계정)> Shipping Country(배송 국가) = Account from Get Account Data(계정 데이터 가져오기의 계정)> Billing Country(청구 국가)
-
Account from Get Account Data(계정 데이터 가져오기의 계정)> Shipping Zip/Postal Code(배송지 우편 번호) = Account from Get Account Data(계정 데이터 가져오기의 계정)> Billing Zip/Postal Code(청구지 우편 번호)
-
Account from Get Account Data(계정 데이터 가져오기의 계정) > Shipping State/Province(배송지 시/도) = Account from Get Account Data(계정 데이터 가져오기의 계정)> Billing State/Province(청구지 시/도)
-
Account from Get Account Data(계정 데이터 가져오기의 계정) > Shipping Street(배송지 상세주소) = Account from Get Account Data(계정 데이터 가져오기의 계정) > Billing Street(청구지 상세주소)
-
항목을 클릭하여 사이드 패널을 닫습니다.
- 플로를 저장합니다.
'선택되지 않음' 경로에 할당 요소 추가
- '할당되지 않음' 경로에서
항목을 클릭합니다.
- 로직 섹션으로 스크롤하여 Assignment(할당)를 선택합니다.
- Label(레이블)에서
Set Address from Screen
(화면에서 주소 설정)을 입력합니다.
- 5개의 행이 생기도록 +Add Assignment(할당 추가)를 4번 클릭합니다.
- 할당 행에서 다음 값을 선택합니다.
-
Account from Get Account Data(계정 데이터 가져오기의 계정)> Shipping City(배송지 시/군/구) = Enter Address(주소 입력) > ScreenShipping > City Value(시/군/구 값)
-
Account from Get Account Data(계정 데이터 가져오기의 계정)> Shipping Country(배송지 국가) = Enter Address(주소 입력) > ScreenShipping > Country Value(국가 값)
-
Account from Get Account Data(계정 데이터 가져오기의 계정)> Shipping Zip/Postal Code(배송지 우편 번호) = Enter Address(주소 입력) > ScreenShipping > Postal Code Value(우편 번호 값)
-
Account from Get Account Data(계정 데이터 가져오기의 계정) > Shipping State/Province(배송지 시/도) = Enter Address(주소 입력) > ScreenShipping > State or Province Value(시 또는 도 값)
-
Account from Get Account Data(계정 데이터 가져오기의 계정) > Shipping Street(배송지 상세주소) = Enter Address(주소 입력) > ScreenShipping > Street Value(상세주소 값)
-
항목을 클릭하여 사이드 패널을 닫습니다.
- 플로를 저장합니다.
이제 플로가 레코드 변수의 배송 주소 필드에 값을 할당합니다. 하지만 여전히 해당 배송 주소를 계정 레코드에 다시 가져와야 합니다. 할당 요소는 실제로 새 값을 레코드에 저장하지 않습니다. 이를 위해서는 레코드 업데이트 요소가 필요합니다. '선택됨' 경로와 '선택되지 않음' 경로가 다시 하나의 경로로 병합된 후에 레코드 업데이트 요소를 생성합니다.
계정 레코드 업데이트
- 플로 캔버스에 있는 두 개의 할당 요소 뒤에 레코드 업데이트 요소를 추가합니다.
- Label(레이블)에서
Update Account
(계정 업데이트)를 입력합니다.
- 업데이트할 레코드를 찾고 값을 설정하는 방법에 대해서는 Use the IDs and all field values from a record or record collection(레코드 또는 레코드 컬렉션의 ID 또는 모든 필드 값 사용)을 유지합니다.
레코드 업데이트 요소에서 이 설정은 레코드 변수에서 레코드를 업데이트합니다. 이 요소는 레코드 변수의 ID 필드를 사용하여 업데이트할 레코드를 결정하고, 해당 레코드의 필드를 변수의 필드와 일치하도록 업데이트합니다.
- 레코드 또는 레코드 컬렉션의 경우 Account from Get Account Data(계정 데이터 가져오기의 계정)를 선택합니다.
- 플로를 저장합니다.
이걸로 끝입니다. 5가지 유형의 요소를 사용하는 플로를 구축했습니다.
-
Get Records(레코드 가져오기) 요소(계정 데이터 가져오기)는 현재 계정 레코드의 필드 값을 가져옵니다.
-
Screen(화면) 요소(주소 입력)는 사용자에게 배송 주소를 입력하거나 청구 주소를 복사하라는 메시지를 표시합니다.
-
Decision(결정) 요소(청구 주소를 사용하시겠습니까?)는 사용자가 선택한 사항을 결정하고 각 가능성에 따른 경로를 생성합니다.
- 두 개의 Assignment(할당) 요소는 청구 주소를 배송 주소로 복사하거나(청구 주소 복사) 수동으로 입력한 정보를 배송 주소로 복사하여(화면에서 주소 설정) 계정 데이터 가져오기 레코드 변수에 있는 배송 주소 필드를 변경합니다.
- 마지막으로 Update Records(레코드 업데이트) 요소(계정 업데이트)는 레코드 변수의 변경된 값을 현재 계정 레코드에 다시 커밋합니다.
할당 요소로 또 어떤 작업을 할 수 있는지 궁금하실 것입니다. 계속 읽어 보세요.
리소스