版本 | 文章連結 |
---|---|
AEM 6.5 | 按一下這裡 |
AEM as a Cloud Service | 本文章 |
套用至:✔️立最適化表單基礎元件。 ❌ 最適化表單核心元件. Adobe 建議使用核心元件將最適化表單新增到 AEM Sites 頁面或建立獨立的最適化表單。
當使用者按一下 提交 最適化表單上的按鈕。 Formsas a Cloud Service提供下列立即可用的提交動作。
您也可以 擴充預設提交動作 以建立您自己的提交動作。
您可在以下位置設定提交動作: 提交 側邊欄中的最適化表單容器屬性的區段。
使用「提交到 REST 端點」動作會將提交的資料發佈到 REST URL。該 URL 可以是內部伺服器 (呈現表單的伺服器) 或外部伺服器。
若要將資料發佈到內部伺服器,請提供資源的路徑。資料會發佈到資源的路徑。例如 /content/restEndPoint。對於此類發佈要求,會使用提交要求的驗證資訊。
若要將資料發佈到外部伺服器,請提供 URL。URL 的格式是:https://host:port/path_to_rest_end_point
。請確保設定以匿名方式處理 POST 要求的路徑。
在上面的範例中,在 textbox
輸入的資訊是使用 param1
參數來擷取。使用 param1
發佈所擷取之資料的語法是:
String data=request.getParameter("param1");
同樣地,用於發佈 XML 資料和附件的參數是 dataXml
和 attachments
。
例如,您會在指令碼中使用這兩個參數將資料剖析到 REST 端點。您會使用以下語法來儲存和剖析資料:
String data=request.getParameter("dataXml");
String att=request.getParameter("attachments");
在這個範例中,data
會儲存 XML 資料,而 att
會儲存附件資料。
「提交到 REST 端點」提交動作會將表單中填寫的資料做為 HTTP GET 要求的一部分,提交到已設定的確認頁面。您可以新增要求的欄位名稱。要求的格式為:
{fieldName}={request parameter name}
如下圖所示,param1
和 param2
是做為參數傳遞,其值是從 textbox 和 numericbox 欄位複製做為下一個動作。
您也可以「啟用 POST 要求」並提供用於發佈要求的 URL。若要將資料提交到託管表單的 AEM 伺服器,請使用對應至 AEM 伺服器根路徑的相對路徑。例如 /content/forms/af/SampleForm.html
。若要將資料提交到任何其他伺服器,請使用絕對路徑。
若要將欄位做為 REST URL 的參數傳遞,所有欄位都必須具有不同的元素名稱,即使這些欄位位於不同面板上也是如此。
您可以使用 傳送電子郵件 提交動作可在成功提交表單時,傳送電子郵件給一或多個收件者。 產生的電子郵件可以包含預先定義的格式表單資料。 例如,在以下範本中,客戶名稱、送貨地址、州名稱和郵遞區號會從提交的表單資料中擷取。
```
${customer_Name} 您好:
以下設定為您的預設送貨地址:
${customer_Name},
${customer_Shipping_Address},
${customer_State},
${customer_ZIPCode}
謹此,
WKND
```
您也可以在電子郵件中加入附件和記錄檔案(DoR)。 若要啟用 附加記錄檔案 選項,設定最適化表單以產生記錄檔案(DoR)。 您可以啟用從最適化表單屬性產生記錄檔案的選項。
「使用表單資料模型提交」提交動作,會將表單資料模型中指定資料模型物件的已提交最適化表單資料寫入其資料來源。設定提交動作時,您可以選擇要將其提交資料寫回其資料來源的資料模型物件。
此外,您可以使用表單資料模型和記錄文件 (DoR) 將表單附件提交到資料來源。如需有關表單資料模型的資訊,請參閱 AEM Forms 資料整合。
「叫用 AEM 工作流程」提交動作會將最適化表單與 AEM 工作流程建立關聯。提交表單後,相關聯的工作流程就會在作者執行個體上自動開始。您可以將資料檔案、附件和記錄文件儲存到工作流程的承載位置,或儲存到變數。如果工作流程標記為外部資料儲存空間,且設定為外部資料儲存空間,則只有變數選項可使用。您可以從可用於工作流程模型的變數清單中選取。如果工作流程是在後續階段標記為外部資料儲存空間,而不是在建立工作流程時標記,則請確保已經具備所需的變數設定。
提交動作會將以下內容放置於工作流程的承載位置,或放置到變數 (如果工作流程標記為外部資料儲存空間):
資料檔案:包含提交給最適化表單的資料。您可以使用「資料檔案路徑」選項來指定相對於承載的檔案名稱和檔案路徑。例如,/addresschange/data.xml
路徑會建立一個名為 addresschange
的資料夾,並將其置於相對於承載的位置。您也可以僅指定 data.xml
,僅發送提交的資料而不建立資料夾階層。如果工作流程標記為外部資料儲存空間,請使用變數選項並從工作流程模型可用的變數清單中選取變數。
附件:您可以使用「附件路徑」選項,指定用來儲存上傳到最適化表單之附件的資料夾名稱。該資料夾會建立在相對於承載的位置。如果工作流程標記為外部資料儲存空間,請使用變數選項,並從工作流程模型可用的變數清單中選取變數。
記錄文件:包含為最適化表單產生的記錄文件。您可以使用「記錄文件路徑」選項指定記錄文件檔案的名稱,以及相對於承載的檔案路徑。例如,/addresschange/DoR.pdf
路徑會在相對於承載的位置建立一個名為 addresschange
的資料夾,並將 DoR.pdf
放置在相對於承載的位置。您也可以指定 DoR.pdf
僅儲存記錄文件而不建立資料夾階層。如果工作流程標記為外部資料儲存空間,請使用變數選項,並從工作流程模型可用的變數清單中選取變數。
使用「叫用 AEM 工作流程」提交動作為 AEM DS 設定服務設定以下內容之前:
處理伺服器 URL:處理伺服器是觸發表單或 AEM 工作流程所在的伺服器。這可以與 AEM 作者執行個體或另一個伺服器的 URL 相同。
處理伺服器使用者名稱:工作流程使用者的使用者名稱
處理伺服器密碼:工作流程使用者的密碼
「提交到 SharePoint」提交動作會將最適化表單與 Microsoft® SharePoint 儲存空間建立連結。您可以將表單資料檔案、附件或記錄文件提交到連結的 Microsoft® Sharepoint 儲存空間。若要在最適化表單中使用「提交到 SharePoint」提交動作:
若要將 AEM Forms 連結到您的 Microsoft® Sharepoint 儲存空間:
前往您的 AEM Forms Author 執行個體> 工具 > Cloud Service > Microsoft® SharePoint.
一旦您選取 Microsoft® SharePoint,您就會被重新導向至 SharePoint瀏覽器.
選取一個設定容器。設定會儲存在選取的設定容器中。
按一下「建立」。此時會顯示 SharePoint 設定精靈。
指定「標題」、「用戶端 ID」、「用戶端密碼」和「OAuth URL」。如需有關如何擷取 OAuth URL 之用戶端 ID、用戶端密碼、租用戶 ID 的資訊,請參閱 Microsoft® 文件。
Client ID
和 Client Secret
。https://[author-instance]/libs/cq/sharepoint/content/configurations/wizard.html
。以作者執行個體的 URL 取代 [author-instance]
。offline_access
和 Sites.Manage.All
以提供讀取/寫入權限。https://login.microsoftonline.com/tenant-id/oauth2/v2.0/authorize
。從 Microsoft® Azure 入口網站,以應用程式的 tenant-id
取代 <tenant-id>
。用戶端密碼欄位為必填或選用,取決於您的 Azure Active Directory 應用程式設定。如果您的應用程式設定為使用用戶端密碼,就必須提供用戶端密碼。
按一下「連結」。連結成功後,就會顯示 Connection Successful
訊息。
現在,選取 SharePoint網站 > 檔案庫 > SharePoint資料夾,以儲存資料。
forms-ootb-storage-adaptive-forms-submission
出現在選取的SharePoint網站。forms-ootb-storage-adaptive-forms-submission
,如果尚未出現在 Documents
所選SharePoint網站的程式庫,方法是按一下 建立資料夾.現在,您可以使用此SharePoint Sites設定,在最適化表單中執行提交動作。
您可以在最適化表單中使用建立的SharePoint設定,以將資料或產生的記錄檔案儲存到SharePoint資料夾中。 執行以下步驟,在最適化表單中使用SharePoint儲存體設定,如下所示:
建立最適化表單。
選取「提交動作」做為「提交到 SharePoint」。
選取您要儲存資料的「儲存空間設定」。
按一下「儲存」以儲存「提交」設定。
提交表單時,資料會儲存在指定的Microsoft® Sharepoint儲存空間中。
儲存資料的資料夾結構是 /folder_name/form_name/year/month/date/submission_id/data
。
「提交到 OneDrive」提交動作會將最適化表單連結到 Microsoft® OneDrive。您可以將表單資料、檔案、附件或記錄文件提交到連結的 Microsoft® OneDrive 儲存空間。若要在最適化表單中使用「提交到 OneDrive」提交動作:
若要將 AEM Forms 連結到您的 Microsoft® OneDrive 儲存空間:
前往您的 AEM Forms 作者執行個體 >「工具」>「雲端服務」>「Microsoft® OneDrive」。
一旦您選取了「Microsoft® OneDrive」,系統就會將您重新導向到「OneDrive 瀏覽器」。
選取一個設定容器。設定會儲存在選取的設定容器中。
按一下「建立」。此時會顯示 OneDrive 設定精靈。
指定「標題」、「用戶端 ID」、「用戶端密碼」和「OAuth URL」。如需有關如何擷取 OAuth URL 之用戶端 ID、用戶端密碼、租用戶 ID 的資訊,請參閱 Microsoft® 文件。
Client ID
和 Client Secret
。https://[author-instance]/libs/cq/onedrive/content/configurations/wizard.html
。以作者執行個體的 URL 取代 [author-instance]
。offline_access
和 Files.ReadWrite.All
以提供讀取/寫入權限。https://login.microsoftonline.com/tenant-id/oauth2/v2.0/authorize
。從 Microsoft® Azure 入口網站,以應用程式的 tenant-id
取代 <tenant-id>
。用戶端密碼欄位為必填或選用,取決於您的 Azure Active Directory 應用程式設定。如果您的應用程式設定為使用用戶端密碼,就必須提供用戶端密碼。
按一下「連結」。連結成功後,就會顯示 Connection Successful
訊息。
現在,請選取「OneDrive 容器」>「[OneDrive 資料夾]」以儲存資料。
forms-ootb-storage-adaptive-forms-submission
會顯示在 OneDrive 容器中。forms-ootb-storage-adaptive-forms-submission
;如果尚未出現,請按一下「建立資料夾」。現在,您可以使用此 OneDrive 儲存空間設定,在最適化表單中使用該提交動作。
您可以在最適化表單中使用建立的 OneDrive 儲存空間設定,將資料或產生的記錄文件儲存在 OneDrive 資料夾中。執行以下步驟,即可在最適化表單中使用 OneDrive 儲存空間設定:
建立最適化表單。
選取「提交動作」做為「提交到 OneDrive」。
選取您要儲存資料的「儲存空間設定」。
按一下「儲存」以儲存「提交」設定。
您提交表單時,資料將儲存在指定的 Microsoft® OneDrive 儲存空間。
儲存資料的資料夾結構是 /folder_name/form_name/year/month/date/submission_id/data
。
「提交到 Azure Blob 儲存體」提交動作會將最適化表單連結到 Microsoft® Azure 入口網站。您可以將表單資料、檔案、附件或記錄文件提交到連結的 Azure 儲存體容器。若要使用對 Azure Blob 儲存體的提交動作:
若要將 AEM Forms 連結到 Azure 儲存體容器:
前往 AEM Forms 作者執行個體 >「工具」>「雲端服務」>「Azure 儲存體」。
一旦選取了「Azure 儲存體」,系統就會將您重新導向至「Azure 儲存體瀏覽器」。
選取一個設定容器。設定會儲存在選取的設定容器中。
按一下「建立」。此時會顯示「建立 Azure 儲存體設定」精靈。
指定「標題」、「Azure 儲存體帳戶」和「Azure 存取金鑰」。
Azure Storage Account
名稱和 Azure Access key
。按一下「儲存」。
現在,您可以使用此 Azure 儲存體容器設定,在最適化表單中使用該提交動作。
您可以在最適化表單中使用建立的 Azure 儲存體器設定,將資料或產生的記錄文件儲存在 Azure 儲存體容器中。執行以下步驟,即可在最適化表單中使用 Azure 儲存體容器設定:
建立最適化表單。
將「提交動作」選取作為「提交到 Azure Blob 儲存體」。
選取您要儲存資料的「儲存空間設定」。
按一下「儲存」以儲存「提交」設定。
提交表單時,資料會儲存在指定的 Azure 儲存體容器設定中。
儲存資料的資料夾結構是 /configuration_container/form_name/year/month/date/submission_id/data
。
若要設定值,請使用 AEM SDK 產生 OSGi 設定,並將設定部署至您的 Cloud Service 執行個體。
您可以設定最適化表單,在提交時執行Microsoft® Power Automate Cloud Flow。 設定的最適化表單會將擷取的資料、附件和記錄檔案傳送到Power Automate雲端流程進行處理。 它可幫助您建立自訂資料擷取體驗,同時利用Microsoft® Power Automate的強大功能,圍繞擷取的資料建立商業邏輯,並自動化客戶工作流程。 以下是整合最適化表單與Microsoft® Power Automate後可以執行的一些範例:
最適化Forms編輯器提供 叫用Microsoft®Power Automate流程 傳送最適化表單資料、附件和記錄檔案的提交動作會傳送到Power Automate雲端流程。 若要使用提交動作將擷取的資料傳送至Microsoft®Power Automate, 使用Microsoft® Power Automate連線您的Formsas a Cloud Service執行個體
成功設定後,請使用 叫用Microsoft®Power Automate流程 提交動作以將資料傳送至Power Automate流程。
提交動作可以使用同步或異步提交。
同步提交:傳統上,Web 表單設定為同步提交。在同步提交中,使用者提交表單時,系統會將其被重新導向至確認頁面、感謝頁面;如果提交失敗,則會重新導向至錯誤頁面。您可以選擇「使用異步提交」選項,將使用者重新導向至網頁,或在提交時顯示訊息。
異步提交:單一頁面應用程式等現代 Web 體驗越來越受歡迎,其中網頁會保持靜態,而用戶端-伺服器的互動則是在背景中執行。透過設定異步提交,您現在就可以對最適化表單提供此體驗了。
一般而言,在任何線上資料擷取系統中,開發人員都會在用戶端放置一些 JavaScript 驗證,以強制執行一些業務規則。但在現代的瀏覽器中,一般使用者可以略過那些驗證,並使用各種技巧 (例如 Web Browser DevTools Console) 手動進行提交。此類技術對於最適化表單也有效。表單開發人員可以建立各種驗證邏輯,但技術上而言,一般使用者可以略過那些驗證邏輯並提交無效的資料給伺服器。無效的資料會破壞表單作者強制執行的業務規則。
伺服器端重新驗證功能也能夠執行最適化表單作者在伺服器上設計最適化表單時提供的驗證能力。這樣可以避免對提交的資料造成任何可能的危害,以及在表單驗證方面違反業務規則。
會在伺服器上對最適化表單重新執行的所有立即可用 (OOTB) 欄位驗證包括:
使用在側邊欄「最適化表單容器」下方的「在伺服器上重新驗證」,即可對目前表單啟用或停用伺服器端驗證。
啟用伺服器端驗證
如果一般使用者略過那些驗證並提交表單,伺服器將再次執行驗證。如果伺服器端驗證失敗,就會停止提交交易。系統會再次對一般使用者呈現原始表單。擷取的資料和提交的資料會做為錯誤呈現給使用者。
伺服器端驗證會驗證表單模型。建議您建立獨立的用戶端程式庫已進行驗證,並避免與相同用戶端程式庫中其他內容混淆,例如 HTML 樣式和 DOM 操作等。
有時候,如果有複雜的驗證規則,則確切的驗證指令碼會駐留在自訂函數中,且作者會從欄位驗證運算式中呼叫這些自訂函數。若要在執行伺服器端驗證時公開和提供此自訂函數程式庫,表單作者可以在「最適化表單容器」屬性的「基礎」標籤下方,設定 AEM 用戶端程式庫的名稱,如以下所示。
支援驗證運算式中的自訂函數
作者可以根據最適化表單來設定自訂 JavaScript 程式庫。程式庫中只會保留可重複使用的函數,這些函數與 jquery 和 underscore.js 第三方程式庫有相依性。
為了 AEM 安全性和強化準則,請設定自訂錯誤頁面,例如 400.jsp、404.jsp 和 500.jsp。提交表單時,如果出現 400、404 或 500 錯誤,就會呼叫這些處理常式。在發佈節點上觸發這些錯誤代碼時,也會呼叫處理常式。您也可以為其他 HTTP 錯誤代碼建立 JSP 頁面。
您使用符合結構描述 (其資料不含 <afData>
、<afBoundData>
和 </afUnboundData>
標記) 的 XML 或 JSON 資料,預先填入表單資料模型或以結構描述為主的最適化表單的綱要時,最適化表單的未繫結欄位資料會遺失。該結構描述可以是 XML 結構描述、JSON 結構描述或表單資料模型。未繫結欄位是最適化表單欄位,但沒有 bindref
屬性。