教學課程:建立表單資料模型 tutorial-create-form-data-model
本教學課程是建立第一個最適化表單系列中的步驟。 Adobe建議您依照時間順序來瞭解、執行和示範完整的教學課程使用案例。
關於教學課程 about-the-tutorial
AEM Forms資料整合模組可讓您從不同的後端資料來源(例如AEM使用者設定檔、RESTful Web服務、SOAP型Web服務、OData服務和關聯式資料庫)建立表單資料模型。 您可以在表單資料模型中設定資料模型物件和服務,並將其與調適型表單建立關聯。 最適化表單欄位會繫結至資料模型物件屬性。 這些服務可讓您預先填寫最適化表單,並將提交的表單資料寫入回資料模型物件。
如需表單資料整合與表單資料模型的詳細資訊,請參閱AEM Forms資料整合。
本教學課程將逐步引導您準備、建立、設定表單資料模型,並將其與調適型表單建立關聯。 在本教學課程結束時,您將能夠:
表單資料模型將類似於以下內容:
A. 已設定的資料來源 B. 資料來源結構描述 C. 可用的服務 D. 資料模型物件 E. 已設定的服務
先決條件 prerequisites
開始之前,請確定您具備下列條件:
- MySQL資料庫,包含在建立第一個最適化表單的先決條件一節中所述的範例資料
- MySQL JDBC驅動程式的OSGi套件組合,如套件組合JDBC資料庫驅動程式中所述
- 如第一個教學課程中所述,建立最適化表單
步驟1:將MySQL資料庫設定為資料來源 config-database
您可以設定不同型別的資料來源,以建立表單資料模型。 在本教學課程中,您會設定您已設定並填入範例資料的MySQL資料庫。 如需其他支援的資料來源以及如何設定它們的相關資訊,請參閱AEM Forms資料整合。
執行下列操作來設定您的MySQL資料庫:
-
將資料庫的 MySQL JDBC 驅動程式作為 OSGi 捆綁包安裝:
-
MySQL從 下載
http://www.java2s.com/ref/jar/download-orgosgiservicejdbc100jar-file.html
JDBC 驅動程式 OSGi 捆綁包。 -
以管理員身分登入AEM Forms作者執行個體,並移至AEM網頁主控台組合。 預設URL為https://localhost:4502/system/console/bundles。
-
選取 安裝/更新。 出現上傳/安裝組合對話方塊。
-
選取 選擇檔案 以瀏覽並選取MySQL JDBC驅動程式OSGi套件。 選取 開始套件 和 重新整理套件,然後選取 安裝或更新。 Oracle Corporation’s確保的 MySQL JDBC 驅動程式處於活動狀態。驅動程式已安裝。
-
-
將資料庫配置為 MySQL 資料來源:
-
前往位於 https://localhost:4502/system/console/configMgr AEM 🔗Web 控制台。
-
找到 Apache Sling 連線的池數據源 設定。 選擇以在編輯模式下打開配置。
-
在設定對話方塊中,指定下列詳細資訊:
- 資料來源名稱: 您可以指定任何名稱。 例如,指定 WeRetailMySQL。
- DataSource服務屬性名稱:指定包含DataSource名稱的服務屬性名稱。 它是在將資料來源執行個體註冊為OSGi服務時指定。 例如,datasource.name。
- JDBC驅動程式類別:指定JDBC驅動程式的Java™類別名稱。 針對MySQL資料庫,請指定 com.mysql.jdbc.Driver。
- JDBC 連接 URI: 指定資料庫的連接URL。 對於 MySQL 在 連接埠 3306 和 綱要
weretail
上運行的資料庫,URL為:jdbc:mysql://'server':3306/weretail?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
note note NOTE MySQL當資料庫位於防火牆後面時,資料庫主機名不是公共 DNS。資料庫的 IP 地址必須添加到 AEM 主機计算机的 /etc/hosts 文件中。 - 使用者名稱: 資料庫的使用者名稱。 需要啟用 JDBC 驅動程式才能與資料庫建立連接。
- 密碼: 資料庫的密碼。 必須啟用JDBC驅動程式才能與資料庫建立連線。
note note NOTE AEM Forms不支援MySQL的NT驗證。 前往位於 https://localhost:4502/system/console/configMgr🔗 AEM Web 控制台並搜尋「Apache Sling 連線共用數據源」。對於“JDBC 連接 URI”屬性,將“集成安全”的值設置為 False,並使用創建的使用者名和密碼與資料庫連接 MySQL 。 -
借用測試: 啟用借 用 測試選項。
-
返回時測試: 啟用「 返回 時測試」 選項。
-
驗證查詢: 指定SQL SELECT查詢來驗證集區的連線。 查詢至少必須傳回一列。 例如,從customerdetails 選取*。
-
交易隔離:將值設定為 READ_COMMITTED。
保留其他具有預設值的屬性,並選取 儲存。
會建立類似下列的設定。
-
步驟2:建立表單資料模型 create-fdm
AEM Forms提供直覺式使用者介面,可讓您從已設定的資料來源建立表單資料模型。 您可以在表單資料模型中使用多個資料來源。 針對此使用案例,您可以使用已設定的MySQL資料來源。
執行下列操作以建立表單資料模型:
-
在AEM作者執行個體中,導覽至 Forms > 資料整合。
-
選取 建立 > 表單資料模型。
-
在[建立表單資料模型]對話方塊中,指定表單資料模型的 名稱。 例如,customer-shipping-billing-details。 選取 「下一步」。
-
選取資料來源畫面會列出所有已設定的資料來源。 選取 WeRetailMySQL 資料來源並選取 建立。
已建立 customer-shipping-billing-details 表單資料模型。
步驟3:設定表單資料模型 config-fdm
設定表單資料模型涉及:
- 新增資料模型物件與服務
- 為資料模型物件設定讀取和寫入服務
執行下列操作以設定表單資料模型:
-
在AEM作者執行個體上,導覽至 Forms > 資料整合。 預設URL為https://localhost:4502/aem/forms.html/content/dam/formsanddocuments-fdm。
-
此處列出您先前建立的 customer-shipping-billing-details 表單資料模型。 在編輯模式中開啟。
選取的資料來源 WeRetailMySQL 已在表單資料模型中設定。
-
展開WeRailMySQL資料來源樹狀結構。 從 weretail > customerdetails 結構描述選取下列資料模型物件和服務,以便您能夠建立資料模型:
-
資料模型物件:
- id
- 名稱
- shippingAddress
- 城市
- 州別
- 郵遞區號
-
服務:
- get
- 更新
選取 新增選取的 以將選取的資料模型物件和服務新增至表單資料模型。
note note NOTE JDBC資料來源的預設get、update和insert服務隨表單資料模型一起提供現成可用的功能。 -
-
設定資料模型物件的讀取和寫入服務。
-
選取 customerdetails 資料模型物件,並選取 編輯屬性。
-
從讀取服務下拉式清單中選取 get。 會自動新增 id 引數,它是customerdetails資料模型物件中的主索引鍵。 選取 並依照以下方式設定引數。
-
同樣地,選取 更新 作為寫入服務。 customerdetails 物件會自動新增為引數。 引數的設定如下。
按如下方式添加和配置 id 參數。
-
選擇 完成 以保存數據模型物件屬性。 然後,選擇 儲存 以保存表單數據模型。
get 和 update 服務已新增為資料模型物件的預設服務。
-
-
移至 服務 索引標籤並設定 get 和 更新 服務。
-
選取 get 服務並選取 編輯屬性。 將打開屬性對話框。
-
在編輯 屬性對話框中指定以下内容:
-
標題:指定服務的標題。 例如:檢索送貨位址。
-
描述:指定包含服務詳細功能的描述。 例如:
此服務會從MySQL資料庫擷取送貨地址和其他客戶詳細資料
-
輸出模型物件:選取包含客戶資料的結構描述。 例如:
customerdetail結構描述
-
傳回陣列:停用 傳回陣列 選項。
-
引數:選取名為 ID 的引數。
選取 完成。 已設定從MySQL資料庫擷取客戶詳細資訊的服務。
-
-
選取 更新 服務並選取 編輯屬性。 「屬性」對話方塊開啟。
-
在編輯屬性對話方塊中指定下列專案:
-
標題:指定服務的標題。 例如,更新送貨地址。
-
描述:指定包含服務詳細功能的描述。 例如:
此服務會更新MySQL資料庫中的送貨地址和相關欄位
-
輸入模型物件:選取包含客戶資料的結構描述。 例如:
customerdetail結構描述
-
輸出型別:選取 布林值。
-
引數:選取引數名稱 ID 和 customerdetails。
選取 完成。 已設定 更新 服務,以更新MySQL資料庫中的客戶詳細資料。
-
-
已設定表單資料模型中的資料模型物件和服務。 您現在可以測試表單資料模型。
步驟4:測試表單資料模型 test-fdm
您可以測試資料模型物件與服務,以確認表單資料模型已正確設定。
執行下列操作以執行測試:
-
移至 模型 標籤,選取 customerdetails 資料模型物件,然後選取 測試模型物件。
-
在測試模型/服務視窗中,從 選取模型/服務 下拉式清單中選取 讀取模型物件。
-
在 customerdetails 區段中,為已設定的MySQL資料庫中存在的 id 引數指定值,並選取 測試。
已擷取與指定ID關聯的客戶詳細資料,並顯示在 輸出 區段中,如下所示。
-
同樣地,您可以測試Write模型物件與服務。
在下列範例中,更新服務已成功更新資料庫中ID7102715稱的位址詳細資訊。
現在,如果您再次測試id 7107215的讀取模型服務,它會擷取並顯示更新的客戶詳細資訊,如下所示。