整合外部API與核心元件Forms中的視覺化規則編輯器
最適化表單中的視覺化規則編輯器支援 叫用服務 功能,可讓您透過針對執行個體設定的表單資料模型(FDM)連線到外部API。 您可以將表單欄位直接對應至服務的輸入引數,並使用事件裝載選項來對應輸出引數。 視覺規則編輯器也可讓您根據服務的回應,定義成功和失敗處理常式的規則:成功處理常式處理成功的API呼叫,而失敗處理常式處理錯誤。
這可讓您輕鬆地從表單傳送API請求、處理API回應,並在表單中動態顯示或使用傳回的資料。 它可確保最適化表單與外部系統或資料來源之間的無縫整合。
在表單的規則編輯器中使用「叫用服務」的優勢
在自適應表單的規則編輯器中使用「叫用服務」作業的優點如下:
-
簡化的API整合:視覺規則編輯器簡化了將外部服務或API整合至最適化Forms的程式。 透過啟動服務,您可以輕鬆地將表單連線到各種資料來源和服務,而不需要複雜的程式碼,讓表單整合更有效率。
-
動態回應處理:您可以根據 叫用服務 的輸出回應來管理成功和錯誤回應,讓表單能夠動態回應不同的情境。 它可確保表單適當地處理各種條件,提高彈性和控制能力。
-
增強的使用者互動:在規則編輯器中使用 Invoke Service 可啟用表單中的即時驗證,提供更佳的使用者體驗。 此外,還可確保資料在伺服器端通過精確驗證,減少錯誤並提升表單可靠性。
啟動服務處理常式以取得成功和失敗回應
視覺化規則編輯器可讓您根據輸出回應,為 Invoke Service 作業建立成功和失敗處理常式的規則。 下圖描繪了最適化表單的視覺化規則編輯器中的叫用服務:
新增成功處理常式和失敗處理常式
若要新增成功或失敗處理常式,請分別按一下 新增成功處理常式 或新增失敗處理常式。
當您按一下 新增成功處理常式 時,會出現 叫用服務成功處理常式 規則編輯器,可讓您指定規則或邏輯,在作業成功時管理 叫用服務 輸出回應。 即使不定義條件,您也可以指定規則;不過,您可以按一下 新增條件 選項,為成功處理常式新增條件。
您可以新增多個規則來處理 啟動服務 作業的成功回應:
同樣地,您可以新增規則,以便在作業失敗時處理 叫用服務 輸出回應。 下圖顯示 啟動服務失敗處理常式 規則編輯器:
您也可以新增多個規則來處理來自 叫用服務 作業的不成功回應。
伺服器 上的 啟用錯誤驗證功能允許作者在設計要在伺服器上執行的Adaptive Form時新增驗證。
在規則編輯器中使用叫用服務的先決條件
在規則編輯器中使用 叫用服務 之前,您必須滿足下列必要條件:
透過不同的使用案例探索啟動服務
視覺規則編輯器的 Invoke Service 可讓您執行數個有用的作業。 您可以使用它來填入下拉式清單選項、設定可重複或簡單的面板,以及驗證表單欄位,全都依據 叫用服務 的輸出回應。 因此,可增強表單的彈性和互動性。
下表說明幾個可使用 叫用服務 的情況:
建立根據Get Information文字方塊中輸入之輸入擷取值的Pet ID表單。 底下熒幕擷圖顯示以下使用案例中所使用的表單:
表單欄位
新增下列欄位至表單:
-
輸入Pet ID: Textbox
-
選取像片URL:下拉式清單
-
標籤:面板
- 名稱:文字方塊
- ID:文字方塊
-
類別:面板
- 名稱:文字方塊
-
提交:提交按鈕
設定面板
將面板設定為具有下列限制的重複面板:
- 最小值: 1
- 最大值: 4
您可以調整重複式面板的值,以符合您的需求。
資料來源
在此範例中,Swagger Petstore API是用來設定資料來源。 已針對getPetById服務設定表單資料模型,該服務會根據輸入的ID擷取pet詳細資料。
讓我們使用Swagger Petstore API中的addPet服務發佈下列JSON:
{
"id": 101,
"category": {
"id": 1,
"name": "Labrador"
},
"name": "Lisa",
"photoUrls": [
"https://example.com/photos/lisa1.jpg",
"https://example.com/photos/lisa2.jpg"
],
"tags": [
{
"id": 1,
"name": "vaccinated"
},
{
"id": 2,
"name": "friendly"
},
{
"id": 3,
"name": "house-trained"
}
],
"status": "available"
}
規則和邏輯是使用 文字方塊上的規則編輯器中的 叫用服務Pet ID動作實作,以示範提及的使用案例。
現在,讓我們詳細探討每個使用案例的實作。
使用案例1:使用叫用服務的輸出填入下拉式清單值
此使用案例示範如何根據Invoke Service的輸出動態填入下拉式選項。
實施
若要達成此目的,請在Pet ID文字方塊上建立規則以叫用getPetById服務。 在規則中,將enum新增成功處理常式photo-url中photoUrls下拉式清單的屬性設定為。
輸出
在101文字方塊中輸入Pet ID,以根據輸入的值動態填入下拉式清單選項。
使用案例2:使用叫用服務的輸出設定可重複面板
此使用案例示範如何根據 叫用服務 的輸出動態填入可重複面板。
考量事項
- 確定可重複面板的名稱符合您要為其設定面板的 Invoke Service 的引數。
- 面板會針對對應的 Invoke Service 欄位傳回的值數重複執行。
實施
在Pet ID文字方塊上建立規則以叫用getPetById服務。 在 新增成功處理常式 中,新增另一個成功處理常式回應。 在規則中將tags面板的值設定為tags。
輸出
在101文字方塊中輸入Pet ID,以根據輸入值動態填入可重複面板。
使用案例3:使用叫用服務的輸出設定面板
此使用案例示範如何根據 啟動服務 的輸出動態設定面板的值。
考量事項
- 確定面板的名稱符合您要設定面板的 啟動服務 的引數。
- 面板會針對對應的「啟動服務」欄位傳回的值數重複執行。
實施
在Pet ID文字方塊上建立規則以叫用getPetById服務。 在 新增成功處理常式 中,新增另一個成功處理常式回應。 在規則中將categoryname文字方塊的值設定為category.name。
輸出
在101文字方塊中輸入Pet ID,以根據輸入值動態填入面板。
使用案例4:使用叫用服務的輸出引數來驗證其他欄位
此使用案例示範如何使用 叫用服務 的輸出來動態驗證其他表單欄位。
實施
在Pet ID文字方塊上建立規則以叫用getPetById服務。 在 新增失敗處理常式 中,新增失敗處理常式回應。 如果輸入的 不正確,請隱藏 提交Pet ID按鈕。
輸出
在102文字方塊中輸入Pet ID,並隱藏 提交 按鈕。
使用案例5:在導覽至叫用服務動作中使用事件裝載
此使用案例示範如何在 提交 按鈕上設定規則,該按鈕會呼叫叫用服務,然後使用 瀏覽至 動作將使用者重新導向至其他頁面。
實施
在 提交 按鈕上建立規則以叫用redirect-api API服務。 此服務負責將使用者重新導向至 聯絡我們 表單。
您可以使用下列提供的JSON資料,將API當作redirect-api API服務直接整合到規則編輯器中:
{
"id": "1",
"path": "/content/dam/formsanddocuments/contact-detail/jcr:content?wcmmode=disabled"
}
在 新增成功處理常式 中,設定 瀏覽至 動作,以使用 引數將使用者重新導向至 聯絡我們Event Payload頁面。 在這裡,使用者可以提交他們的聯絡詳細資訊。
或者,設定失敗處理常式,在服務呼叫失敗時顯示錯誤訊息。
輸出
按一下 Submit 按鈕時,就會叫用redirect-api API服務。 成功後,會將使用者重新導向至 聯絡我們 頁面。
常見問題
問:如果我使用Invoke Service建立規則,然後升級至核心元件的最新版本,會發生什麼事?
A:當您升級至最新版本的核心元件時,叫用服務規則會自動更新至最新的使用者介面,因為它可回溯相容。
問:我可以新增多個規則來處理Invoke Service作業的成功或失敗回應嗎?
A:是,您可以新增多個規則來處理 啟動服務 作業的成功或失敗回應。