

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用條件節點建立流程
<a name="flows-ex-condition"></a>

下圖顯示具有一個條件節點的流程，會根據滿足的條件傳回三個可能值的其中之一：

![使用條件節點搭配兩個條件的範例。](http://docs.aws.amazon.com/zh_tw/bedrock/latest/userguide/images/flows/flows-condition.png)


**在主控台中建置和測試此流程：**

1. 遵循 [在 Amazon Bedrock 中建立您的第一個流程](flows-get-started.md) 的指示來建立流程。

1. 刪除中央窗格中的**提示**節點。

1. 執行下列動作來設定條件節點：

   1. 從**流程建置器**左側窗格中，選取**節點**索引標籤。

   1. 在中央窗格中將**條件**節點拖曳到流程中。

   1. 選取**流程建置器**窗格中的**設定**索引標籤。

   1. 展開**輸入**區段。如下所示設定輸入：  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/bedrock/latest/userguide/flows-ex-condition.html)

      此組態表示條件節點預期 JSON 物件，此物件包含欄位 `retailPrice`、`marketPrice` 和 `type`。

   1. 執行下列操作以設定條件：

      1. 在**條件**區段中，選擇性地變更條件的名稱。然後在**條件**文字方塊中新增下列條件：**(retailPrice > 10) and (type == "produce")**。

      1. 您可以選擇**新增條件**來新增其他條件。選擇性地變更第二個條件的名稱。然後在**條件**文字方塊中新增下列條件：**(retailPrice < marketPrice)**。

1. 選擇**流程輸入**節點，然後選取**設定**索引標籤。選取**物件**作為**類型**。這表示流程調用預期會收到 JSON 物件。

1. 新增流程輸出節點，如此您總共會擁有三個節點。在每個流程輸出節點的**流程建置器**窗格的**設定**索引標籤中，如下所示進行設定：

   1. 將第一個流程輸出節點的輸入類型設定為 **String**，並將表達式設為 **$.data.action[0]**，以在傳入物件的 `action` 欄位中傳回陣列中的第一個值。

   1. 將第二個流程輸出節點的輸入類型設定為 **String**，並將表達式設為 **$.data.action[1]**，以在傳入物件的 `action` 欄位中傳回陣列中的第二個值。

   1. 將第三個流程輸出節點的輸入類型設定為 **String**，並將表達式設為 **$.data.action[2]**，以在傳入物件的 `action` 欄位中傳回陣列中的第三個值。

1. 將第一個條件連結到第一個流程輸出節點、將第二個條件連結到第二個流程輸出節點，並將預設條件連結到第三個流程輸出節點。

1. 執行下列動作，連結所有節點中的輸入和輸出以完成流程：

   1. 將連結從**流程輸入**節點的輸出節點拖曳至條件節點中的 **retailPrice** 輸入。

   1. 將連結從**流程輸入**節點的輸出節點拖曳至條件節點中的 **marketPrice** 輸入。

   1. 將連結從**流程輸入**節點的輸出節點拖曳至條件節點中的 **type** 輸入。

   1. 將連結從**流程輸入**節點的輸出拖曳到三個輸出節點之一中的 **document** 輸入。

1. 選擇**儲存**以儲存流程。流程現在應該準備好進行測試。

1. 輸入下列 JSON 物件來測試流程是否為右側的**測試流程**窗格。為每個輸入選擇**執行**：

   1. 下列物件會滿足第一個條件 (`retailPrice` 超過 10，而 `type` 是「生產」)，並傳回 `action` 中的第一個值 (「不購買」)：

      ```
      {
          "retailPrice": 11, 
          "marketPrice": 12, 
          "type": "produce", 
          "action": ["don't buy", "buy", "undecided"]
      }
      ```
**注意**  
即使同時滿足第一個和第二個條件，由於第一個條件列於首位，故其優先於第二個條件。

   1. 下列物件會滿足第二個條件 (`retailPrice` 小於 `marketPrice`)，並傳回 `action` 中的第二個值 (「購買」)：

      ```
      {
          "retailPrice": 11, 
          "marketPrice": 12, 
          "type": "meat", 
          "action": ["don't buy", "buy", "undecided"]
      }
      ```

   1. 下列物件不滿足第一個條件 (`retailPrice` 大於 10，但 `type` 不是「生產」)，也不滿足第二個條件 (`retailPrice` 不小於 `marketPrice`)，因此傳回 `action` 中的第三個值 (「未決定」)：

      ```
      {
          "retailPrice": 11, 
          "marketPrice": 11, 
          "type": "meat", 
          "action": ["don't buy", "buy", "undecided"]
      }
      ```