表單

AEM 提供表單服務,可將提交的資料擷取到 Microsoft Excel 或 Google Sheet 文件中。

透過您網站上的表單提交的資料會直接流入試算表,讓業務使用者輕鬆存取。 這類資料也可以與更複雜的自動化工作流程互動,因為Google Sheets以及Microsoft Excel和Sharepoint都可讓您存取生氣勃勃的生態系統和強大的API。

準備資料擷取工作表

  1. 在專案目錄下的任何位置建立Excel活頁簿或Google工作表。 本檔案在OneDrive中使用名為 email-form.xlsx 位在AEM專案的根目錄中。

  2. 確定AEM使用者(例如 helix@adobe.com)中,為您的專案設定的 編輯許可權 在工作表上。

  3. 開啟建立的活頁簿,並將預設工作表重新命名為 incoming.


    注意: AEM若 incoming 工作表不存在。

  4. 在 Sidekick 中預覽工作表。
    注意: 即使之前已預覽過工作表,也必須在建立工作表之後再次預覽 incoming 第一次使用工作表。

  5. 設定含有符合所擷取資料之標題的工作表。 您可以手動執行此作業,或將POST要求傳送至AEM管理服務中的表單路由。 Admin Service會檢視POST內文中的資料,並建立所需的必要標題/表格和工作表,以便擷取資料並充分利用Forms Service。
    如需設定工作表之POST要求格式的詳細資訊,請參閱 管理API 檔案以及下列範例:

    要求:

    code language-none
    POST /form/{owner}/{repo}/{ref}/en/email-form.json HTTP/1.1
    {"data":{"firstName":"test"}}
    

    回應:

    code language-none
    HTTP/1.1 200 OK
    {"rowCount":2,"columns":["firstName"]}
    

    您可以使用curl或Postman之類的工具,提出此POST請求。 例如:

    code language-none
    curl -s -i -X POST 'https://admin.hlx.page/form/{owner}/{repo}/{ref}/en/email-form.json' \
    --header 'Content-Type: application/json' \
    --data '{"data":{"firstName":"test"}}'
    

    透過上述POST要求,我們提供範例資料,即表單欄位和範例值,管理員服務將使用這些範例資料設定表單。
    建議您使用Admin服務設定工作表,但若要手動建立標題,請參閱檔案 手動設定Forms工作表.

  6. 傳送 POST 向admin service提出要求,您將會看到活頁簿的下列變更。

    1. 名為的工作表 helix-default 「 」已建立。 此工作表中的資料是當 GET 對工作表提出要求。 這裡適合使用試算表公式來摘要資料 incoming 其他地方的消耗表。

      注意:helix-default 工作表不應包含任何個人識別資訊,或您不適宜公開存取的其他資料。

    2. 名為的工作表 slack 「 」已建立。 您可以在此處設定資料內嵌至試算表時,Slack管道的自動通知。 目前AEM僅支援通知AEM工程部門的Slack組織以及Adobe的企業支援組織。

      1. 若要設定Slack通知,請輸入 teamId 的Slack工作區和 channel 名稱或ID。 您也可以詢問Slack機器人(使用 debug 命令) teamIdchannel ID。 使用 channel 偏好使用ID而非名稱,因為它可在頻道重新命名中存活下來。

        注意: 舊版表單沒有 teamId 欄。 此 teamId 包含在 channel 欄,以 #/.
      2. 輸入任何 標題 您希望和,位於 欄位 輸入您要在Slack通知中檢視的欄位名稱。 每個標題應以逗號分隔(例如: name, email)。

傳送資料至您的工作表

工作表現在已準備好進行資料擷取,您可以傳送 POST 直接對工作表的要求於 hlx.pagehlx.live 或您的生產網域。

POST https://ref–repo–owner.hlx.(page|live)/email-form
POST https://my-domain.com/email-form

注意: URL不應包含 .json 副檔名。 工作表必須發佈 POST 要處理的作業 .live 或在生產網域上。

有幾種不同的方式可以格式化中的表單資料 POST 內文。

  • 以名稱/值配對的陣列形式
    https://gist.github.com/dylandepass/9ba6b83700dfce1fa90a47bde62c2e9
  • 作為物件,具有索引鍵/值配對
    <script src=“https://gist.github.com/dylandepass/2b5f694723dfdb3d304fcafc613d6595.js”></script>
  • 作為 x-www-form-urlencoded 內文(content-type 標題必須設為 application/x-www-form-urlencoded)
    <script src=“https://gist.github.com/dylandepass/b72b2e30313bc80beb02e12b1d7201ff.js”></script>

完成了! 表單服務每分鐘都會執行,因此您可以快速看到資料已擷取到工作表中。

作者建立的Forms

在許多情況下,最好由作者建立表格,並決定應將哪些表格欄位呈現給網站的訪客。 通常會使用 helix-default 用於提交表單的同一個試算表工作表,作為作者定義表單的位置。

通常,表單區塊會參照試算表並轉譯表單及處理使用者提交流程。

此類a的簡單範例 form 可以找到區塊 此處 最適化Forms區塊現已推出 此處.

若您需要具備如下功能的表單:reCAPTCHA、協助工具、檔案上傳、欄位驗證、e-signing、效能監控、試算表式規則、記錄檔案(DoR)等,請使用 🔗 最適化Forms區塊. 它支援廣泛的表單,從收集基本資訊的簡單表單(如聯絡表單或服務要求)到具有多個區段、規則及與Adobe Sign、Adobe Workfront和外部系統整合的複雜表單。 您甚至可以使用它來將資料傳送至試算表,或與外部系統連線以用於企業級表單。 如需詳細資訊,請檢視 🔗 AEM FormsEdge Delivery Services檔案.

請參閱以下範例以瞭解表單定義的試算表。

支援的表單欄位可擴充,而且 form 您應視為可為您提供起始點的範例。

例如,已將完整功能的表單新增至此頁面,僅需在Google檔案中新增下列區塊,即可使用先前列出的程式碼基底:

歡迎您試用,看看表單資料流入何處 傳入工作表. 從表單服務到試算表可能需要一分鐘的時間。

recommendation-more-help
10a6ce9d-c5c5-48d9-8ce1-9797d2f0f3ec