建立互動式通訊的表單資料模型
本教學課程是建立第一個互動式通訊系列中的步驟。 建議您依序依序依序執行系列,以了解、執行和示範完整的教學課程使用案例。
AEM Forms資料整合模組可讓您從不同的後端資料來源建立表單資料模型,例如AEM使用者設定檔、RESTful Web服務、SOAP型Web服務、OData服務以及關係資料庫。 您可以在表單資料模型中配置資料模型對象和服務,並將其與最適化表單關聯。 適用性表單欄位會系結至資料模型物件屬性。 這些服務可讓您預填最適化表單,並將提交的表單資料寫回資料模型物件。
如需表單資料整合與表單資料模型的詳細資訊,請參閱AEM Forms資料整合。
本教學課程會逐步引導您完成準備、建立、設定表單資料模型,以及將其與互動式通訊建立關聯的步驟。 在本教學課程結束時,您將能夠:
表單資料模型看起來類似下列:
A. 設定的資 料來源B. 資料來源結 構C. 可用服務 D. 資料模型物件 E. 設定的服務
開始之前,請確定您有下列項目:
資料庫是建立互動式通信的必要條件。 本教學課程使用資料庫來顯示「表單資料模型」和「互動式通訊」的持續性功能。 設定包含客戶、帳單和呼叫表的資料庫。
下圖說明客戶表格的範例資料:
使用以下DDL語句在資料庫中建立customer表。
CREATE TABLE `customer` (
`mobilenum` int(11) NOT NULL,
`name` varchar(45) NOT NULL,
`address` varchar(45) NOT NULL,
`alternatemobilenumber` int(11) DEFAULT NULL,
`relationshipnumber` int(11) DEFAULT NULL,
`customerplan` varchar(45) DEFAULT NULL,
PRIMARY KEY (`mobilenum`),
UNIQUE KEY `mobilenum_UNIQUE` (`mobilenum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
使用以下DDL語句在資料庫中建立bills表。
CREATE TABLE `bills` (
`billplan` varchar(45) NOT NULL,
`latepayment` decimal(4,2) NOT NULL,
`monthlycharges` decimal(4,2) NOT NULL,
`billdate` date NOT NULL,
`billperiod` varchar(45) NOT NULL,
`prevbal` decimal(4,2) NOT NULL,
`callcharges` decimal(4,2) NOT NULL,
`confcallcharges` decimal(4,2) NOT NULL,
`smscharges` decimal(4,2) NOT NULL,
`internetcharges` decimal(4,2) NOT NULL,
`roamingnational` decimal(4,2) NOT NULL,
`roamingintnl` decimal(4,2) NOT NULL,
`vas` decimal(4,2) NOT NULL,
`discounts` decimal(4,2) NOT NULL,
`tax` decimal(4,2) NOT NULL,
PRIMARY KEY (`billplan`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
使用以下DDL語句在資料庫中建立調用表。
CREATE TABLE `calls` (
`mobilenum` int(11) DEFAULT NULL,
`calldate` date DEFAULT NULL,
`calltime` varchar(45) DEFAULT NULL,
`callnumber` int(11) DEFAULT NULL,
`callduration` varchar(45) DEFAULT NULL,
`callcharges` decimal(4,2) DEFAULT NULL,
`calltype` varchar(45) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
calls表包括呼叫日期、呼叫時間、呼叫號碼、呼叫持續時間和呼叫費用等呼叫詳細資訊。 customer表格使用行動號碼(mobilenum)欄位連結至呼叫表格。 對於customer表格中列出的每個行動號碼,呼叫表格中有多個記錄。 例如,您可以參考呼叫表格,擷取1457892541行動號碼的呼叫詳細資料。
bills表包括帳單詳細資訊,如帳單日期、帳單期間、每月費用和呼叫費用。 customer表使用「清單計畫」欄位連結到bills表。 customer表中有與每個客戶關聯的計畫。 bills表包含所有現有計畫的定價詳細資訊。 例如,您可以從customer表中檢索Sarah的計畫詳細資訊,並使用這些詳細資訊從bills表中檢索定價詳細資訊。
您可以配置不同類型的資料來源以建立表單資料模型。 在本教程中,您將配置已配置並填入示例資料的MySQL資料庫。 如需其他支援資料來源的相關資訊及如何設定,請參閱AEM Forms資料整合。
執行以下操作來配置MySQL資料庫:
將MySQL資料庫的JDBC驅動程式作為OSGi包安裝:
將MySQL資料庫配置為資料源:
前往AEM Web主控台,網址為http://localhost:4502/system/console/configMgr。
找出Apache Sling Connection Pooled DataSource設定。 點選以在編輯模式中開啟設定。
在設定對話方塊中,指定下列詳細資料:
jdbc:mysql://[server]:3306/teleca?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
保留其他屬性,其預設值為values,然後點選Save。
系統會建立類似下列的設定。
AEM Forms提供從設定的資料來源建立表單資料模式l的直覺式使用者介面。 您可以在表單資料模型中使用多個資料來源。 對於本教程中的使用案例,您將使用MySQL作為資料源。
執行下列操作以建立表單資料模型:
在AEM製作例項中,導覽至Forms > 資料整合。
點選「建立 > 表單資料模型」。
在建立表單資料模型精靈中,為表單資料模型指定名稱。 例如, FDM_Create_First_IC。 點選Next。
選擇資料源螢幕列出所有配置的資料源。 選擇MySQL資料源並點選Create。
按一下Done。 建立FDM_Create_First_IC表單資料模型。
配置表單資料模型包括:
在AEM製作例項上,導覽至Forms > 資料整合。 預設URL為http://localhost:4502/aem/forms.html/content/dam/formsanddocuments-fdm。
此處列出了您先前建立的FDM_Create_First_IC表單資料模型。 選取它,然後點選Edit。
所選資料源MySQL顯示在資料源窗格中。
展開MySQL資料源樹。 從teleca架構中選擇以下資料模型對象和服務:
資料模型物件:
服務:
點選「新增選取的 」,將選取的資料模型物件和服務新增至表單資料模型。
清單、調用和客戶資料模型對象顯示在Model頁簽的右窗格中。 get和更新服務顯示在Services頁簽中。
計算屬性是根據規則或表達式計算其值的屬性。 使用規則,可以將計算屬性的值設定為文本字串、數字、數學表達式的結果或窗體資料模型中其他屬性的值。
根據使用案例,使用以下數學表達式在bills資料模型對象中建立usagecharges子計算屬性:
使用費=呼叫費+電話會議費+簡訊費+移動網際網路費+漫遊國家+漫遊國際+ VAS(所有這些屬性均存在於清單資料模型對象中)
有關usagecharges子計算屬性的詳細資訊,請參閱規劃互動式通信。
執行以下步驟為清單資料模型對象建立計算子屬性:
選中bills資料模型對象頂部的複選框以選擇它,然後點選建立子屬性。
在建立子屬性窗格中:
點選編輯規則以開啟規則編輯器。
點選建立。 將開啟「設定值」規則窗口。
從「選擇選項」下拉清單中,選擇數學表達式。
在數學表達式中,分別選擇callcharges和confcallcharges作為第一和第二對象。 選擇plus作為運算子。 在數學運算式中點選,然後點選Extend Expression以將smscharges、internetcharges、roamingnational、roamingintnl和vas物件新增至運算式。
下圖描述規則編輯器中的數學表達式:
點選Done。 規則會在規則編輯器中建立。
點選關閉以關閉「規則編輯器」視窗。
定義資料模型對象後,可以在它們之間建立關聯。 關聯可以是一對一或一對多。 例如,可以有多個與員工相關聯的家屬。 它稱為一對多關聯,在連接相關資料模型對象的線上以1:n表示。 但是,如果關聯為指定的員工ID返回唯一的員工名稱,則稱為一對一關聯。
將資料源中的關聯資料模型對象添加到表單資料模型時,它們的關聯將被保留並顯示為通過箭頭線連接。
根據使用案例,在資料模型物件之間建立下列關聯:
關聯 | 資料模型物件 |
---|---|
1:n | customer:calls(可以在每月帳單中與客戶關聯多個呼叫) |
1:1 | 客戶:帳單(某個特定月的一個帳單與客戶關聯) |
執行以下步驟以建立資料模型對象之間的關聯:
選取customer資料模型物件頂端的核取方塊以選取該物件,然後點選新增關聯。 將開啟添加關聯屬性窗格。
在添加關聯窗格中:
在添加參數對話框中:
從Name下拉清單中選擇mobilenum。 行動編號屬性是客戶和呼叫資料模型物件中可用的通用屬性。 因此,它可用來建立客戶與呼叫資料模型物件之間的關聯。
對於客戶資料模型物件中可用的每個行動電話號碼,呼叫表格中有多個可用的呼叫記錄。
指定引數的選用標題和說明。
從綁定到下拉清單中選擇customer。
從綁定值下拉清單中選擇mobilenum。
點選新增。
mobilenum屬性顯示在Arguments區段中。
點選Done以建立客戶與呼叫資料模型物件之間的1:n關聯。
在建立客戶和調用資料模型對象之間的關聯後,在客戶和清單資料模型對象之間建立1:1的關聯。
選取customer資料模型物件頂端的核取方塊以選取該物件,然後點選新增關聯。 將開啟添加關聯屬性窗格。
在添加關聯窗格中:
指定關聯的標題。 此為選用欄位。
從Type下拉清單中選擇One to One。
從模型對象下拉清單中選擇清單。
從Service下拉清單中選擇get。 billplan屬性是清單表的主鍵,在Arguments部分中已可用。
清單和客戶資料模型對象分別使用開單計畫(清單)和客戶計畫(客戶)屬性進行連結。 在這些屬性之間建立綁定,以檢索MySQL資料庫中任何可用客戶的計畫詳細資訊。
從綁定到下拉清單中選擇customer。
從綁定值下拉清單中選擇customerplan。
點選Done在計費計畫和客戶計畫屬性之間建立綁定。
下圖描述了資料模型對象與用於建立它們之間關聯的屬性之間的關聯:
在建立客戶與其他資料模型對象之間的關聯後,編輯客戶屬性以定義基於其從資料模型對象中檢索資料的屬性。 根據使用案例,行動電話號碼會作為屬性,用於從客戶資料模型物件擷取資料。
選取customer資料模型物件頂端的核取方塊以選取該物件,然後點選編輯屬性。 將開啟編輯屬性窗格。
將customer指定為頂級模型對象。
從讀取服務下拉清單中選擇get。
在引數部分:
從Write服務下拉清單中選擇update。
在引數部分:
點選Done以儲存屬性。
選取calls資料模型物件頂端的核取方塊以選取該物件,然後點選Edit Properties。 將開啟編輯屬性窗格。
為調用資料模型對象禁用頂級模型對象。
點選Done。
重複步驟8 - 10以配置bills資料模型對象的屬性。
前往服務標籤。
選取get服務,然後點選編輯屬性。 將開啟編輯屬性窗格。
在編輯屬性窗格中:
選擇update服務,然後點選Edit Properties。 將開啟編輯屬性窗格。
在編輯屬性窗格中:
您可以測試資料模型物件和服務,以驗證表單資料模型是否已正確設定。
執行下列操作以運行測試:
前往Model標籤,選取customer資料模型物件,然後點選Test Model Object。
在測試表單資料模型窗口中,從選擇模型/服務下拉清單中選擇讀取模型對象。
在Input部分中,為mobilenum屬性指定值,該屬性存在於配置的MySQL資料庫中,然後點選Test。
與指定的mobilenum屬性相關聯的客戶詳細資訊會擷取並顯示在「輸出」區段中,如下所示。 關閉對話框。
前往服務標籤。
選擇get服務,然後點選測試服務。
在Input部分中,為mobilenum屬性指定值,該屬性存在於配置的MySQL資料庫中,然後點選Test。
與指定的mobilenum屬性相關聯的客戶詳細資訊會擷取並顯示在「輸出」區段中,如下所示。 關閉對話框。
表單資料模型編輯器可讓您為表單資料模型中的所有資料模型物件屬性產生範例資料,包括計算屬性。 這是一組符合為每個屬性設定的資料類型的隨機值。 您也可以編輯和儲存資料,即使重新產生範例資料,資料也會保留。
執行下列操作以生成、編輯和保存示例資料:
在表單資料模型頁面上,點選編輯範例資料。 它會在「編輯範例資料」視窗中產生並顯示範例資料。
在「編輯示例資料」窗口中,根據需要編輯資料,然後點選「保存」。 關窗。