設定 AEM Forms 的提交動作
使用搭配 Edge Delivery Services 的 AEM Forms 設定表單提交處理,將資料路由至試算表、電子郵件或後端系統。
快速決策指南
選擇您的提交方法:
先決條件
在設定提交動作前,請確保您符合以下條件:
- AEM Forms as a Cloud Service 執行個體
- Edge Delivery Services 專案已設定完成
- 使用文件製作或通用編輯器建立的表單
- 存取目標位置 (試算表、電子郵件系統或 AEM) 的必要權限
表單提交服務是 Adobe 託管的端點,非常適合簡單的資料擷取情境。
支援的目標
- 試算表:Google Sheets、Microsoft Excel (OneDrive/SharePoint)
- 電子郵件:將表單資料傳送到指定的電子郵件地址
設定步驟
-
設定目標存取權
- 對於試算表:授予
forms@adobe.com
在目標試算表上進行編輯的權限 - 對於電子郵件:驗證收件者電子郵件是否可存取
- 對於試算表:授予
-
設定表單提交
- 在製作環境中開啟表單
- 設定提交動作為「表單提交服務」
- 指定目標試算表 URL 或電子郵件地址
- 儲存並發佈表單
-
測試提交
- 透過表單提交測試資料
- 驗證出現在目標目的地的資料
- 如果提交失敗,請檢查錯誤記錄
重要注意事項
- 服務帳戶
forms@adobe.com
需要目標試算表的編輯存取權 - 提交表單後立即發送電子郵件通知
- 資料驗證在服務層級進行
將表單資料直接提交到您的 AEM as a Cloud Service 發佈執行個體進行複雜的處理。
何時使用 AEM Publish
- 提交後需使用自訂 AEM 工作流程
- 表單資料模型 (FDM) 與資料庫整合
- 第三方服務整合 (Marketo、Power Automate、Workfront Fusion)
- Azure Blob 儲存體或 SharePoint 文件資料庫
- 複雜的伺服器端驗證或處理邏輯
可用的提交動作
- 提交到 REST 端點
- 透過 AEM 郵件服務傳送電子郵件
- 使用表單資料模型提交
- 呼叫 AEM 工作流程
- 提交到 SharePoint
- 提交到 OneDrive
- 提交至 Azure Blob Storage
- 提交至 Microsoft Power Automate
- 提交至 Adobe Workfront Fusion
- 提交至 Adobe Marketo Engage
設定要求
1. 在 Edge Delivery 中更新 AEM 執行個體 URL
在 form
區塊 constant.js
檔案中的 submitBaseUrl
下方更新 AEM Cloud Service 執行個體 URL。您可以根據您的環境設定 URL:
若為 Cloud Service 執行個體
code language-js |
---|
|
若為本機開發
code language-js |
---|
|
2. OSGi 反向連結篩選器
設定反向連結篩選器,允許您的特定 Edge Delivery 網站網域:
-
建立或更新 OSGi 設定檔案:
org.apache.sling.security.impl.ReferrerFilter.cfg.json
-
以您的特定網站網域新增下列設定:
code language-json { "allow.empty": false, "allow.hosts": [ "main--abc--adobe.aem.live", "main--abc1--adobe.aem.live" ], "allow.hosts.regexp": [ "https://.*\\.aem\\.live:443", "https://.*\\.aem\\.page:443", "https://.*\\.hlx\\.page:443", "https://.*\\.hlx\\.live:443" ], "filter.methods": [ "POST", "PUT", "DELETE", "COPY", "MOVE" ], "exclude.agents.regexp": [ "" ] }
-
透過 Cloud Manager 部署設定
如需詳細的 OSGi 反向連結篩選器設定相關資訊,請參閱反向連結篩選器指南。
3. CORS (跨來源資源共用) 問題
在 AEM 中設定 CORS 設定,允許來自您特定 Edge Delivery 網站網域的請求:
開發人員 Localhost
code language-apache |
---|
|
Edge Delivery Sites - 個別新增各網站網域
code language-apache |
---|
|
舊版 Franklin 網域 (若仍在使用)
code language-apache |
---|
|
note note |
---|
NOTE |
將 main--abc--adobe.aem.live 和 main--abc1--adobe.aem.live 替換為您的實際網站網域。於同一存放庫託管的每個網站皆需要單獨的 CORS 設定項目。 |
如需詳細的 CORS 設定相關資訊,請參閱 CORS 設定指南。
若要為您的本機開發環境啟用 CORS,請參閱了解跨來源資源共用 (CORS) 文章。
4. 表單設定
- 在通用編輯器中建立表單
- 將提交動作設定為指向 AEM Forms 動作
- 指定提交端點路徑
- 發佈表單到 Edge Delivery 網站
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 | |
---|---|
問題 | 解決方案 |
表單提交失敗 | 查看控制台錯誤,驗證端點 URL,確認權限 |
嵌入的表單未顯示 | 在表單來源上設定 CORS 標頭,驗證表單 URL |
AEM 發生 403/401 錯誤 | 更新 Sling 反向連結篩選器,檢查驗證設定 |
資料未傳送到試算表 | 驗證 forms@adobe.com 具有編輯權限,檢查試算表 URL |
CORS 錯誤 | 把適當的 Access-Control-Allow-Origin 標頭加入表單來源 |
設定範例
- 在 Google Docs/Sheets 中建立表單結構
- 設定表單提交服務端點
- 將目標試算表的編輯存取權授予
forms@adobe.com
- 發佈文件到 Edge Delivery 網站
- 測試表單提交和資料流程
- 使用通用編輯器建置表單
- 將提交動作設定為「呼叫 AEM 工作流程」
- 在 AEM Publish 上設定 Dispatcher 和反向連結篩選器
- 設定內容傳遞網路路由規則
- 發佈表單並測試工作流程執行
最佳做法
- 簡單的資料擷取情境應 使用表單提交服務
- 需要複雜的處理或整合時 選擇 AEM Publish
- 在生產部署前,於中繼環境進行 全面測試
- 使用 AEM 記錄和控制台錯誤 監視提交
- 對失敗的提交動作 實施適當的錯誤處理
- 在用戶端和伺服器層級都 驗證資料
- 使用 HTTPS 進行所有表單提交和資料傳輸