「資料整合」提供表單資料模型編輯器,以設定和使用表單資料模型。
表單資料模型編輯器提供直覺式使用者介面和工具,以編輯和設定表單資料模型。 使用編輯器,您可以在表單資料模型中,從相關資料來源新增及設定資料模型物件、屬性和服務。 此外,它還可讓您建立資料模型物件和屬性,毋需使用資料來源,並在稍後以個別的資料模型物件和屬性加以系結。 您也可以針對資料模型物件屬性產生和編輯範例資料,以便在預覽時用來預先填寫最適化表單和互動式通訊。 您可以測試在表單資料模型中設定的資料模型物件和服務,以確保它與資料來源正確整合。
如果您是Forms資料整合的新手,但尚未設定資料來源或建立表單資料模型,請參閱下列主題:
請參閱,以取得有關您可以使用表單資料模型編輯器執行之各種工作和設定的詳細資訊。
您必須同時是fdm-author和forms-user群組的成員,才能建立和使用表單資料模型。 請連絡您的AEM管理員,以成為群組的成員。
如果您使用資料來源建立表單資料模型,則可使用表單資料模型編輯器來新增資料模型物件和服務、設定其屬性、建立資料模型物件之間的關聯,以及測試表單資料模型和服務。
您可以從可用資料來源以資料模型的形式新增資料模型物件和服務。 添加的資料模型對象顯示在「模型」頁籤中,添加的服務顯示在「服務」頁籤中。
要添加資料模型對象和服務:
登入AEM作者例項,導覽至「表單>資料整合」,並開啟您要新增資料模型物件的表單資料模型。
在「資料來源」窗格中,展開資料來源以檢視可用的資料模型物件和服務。
選擇要添加到表單資料模型的資料模型對象和服務,並點選添加選定項。
「模型」(Model)頁籤顯示所有資料模型對象及其添加到表單資料模型的屬性的圖形表示。 每個資料模型對象由表單資料模型中的框表示。
您可以按住並拖曳資料模型物件方塊,以在內容區域中組織它們。 在「資料來源」窗格中,表格資料模型中新增的所有資料模型物件都會變灰。
「服務」標籤列出新增的服務。
除了資料模型對象和服務外,OData服務元資料文檔還包括定義兩個資料模型對象之間的關聯的導航屬性。 有關詳細資訊,請參閱使用OData服務的導航屬性。
點選Save以儲存表單模型物件。
您可以使用自適應表單規則來調用在表單資料模型的「服務」頁籤中配置的服務。 規則編輯器的「調用服務」操作中提供了已配置的服務。有關在自適應形式規則中使用這些服務的詳細資訊,請參閱規則編輯器中的調用服務和設定規則值。
雖然您可以從已設定的資料來源新增資料模型物件,但您也可以建立沒有資料來源的資料模型物件或實體。 尤其當您未在表單資料模型中設定資料來源時,這會很有幫助。
要建立沒有資料源的資料模型對象,請執行以下操作:
登入AEM作者例項,導覽至「表單>資料整合」,並開啟您要在其中建立資料模型物件或實體的表單資料模型。
點選建立實體。
在「建立資料模型」對話框中,指定資料模型對象的名稱,然後點選添加。 資料模型對象被添加到表單資料模型中。 請注意,新添加的資料模型對象不綁定到資料源,並且沒有任何屬性,如下圖所示。
接下來,可以在未綁定的資料模型對象中添加子屬性。
表單資料模型編輯器允許您在資料模型對象中建立子屬性。 建立時的屬性不會綁定到資料源中的任何屬性。 您稍後可以在包含資料模型對象中將子屬性與另一個屬性綁定。
要建立子屬性:
在表單資料模型中,選擇資料模型對象並點選建立子屬性。
在建立子屬性對話框中,分別在名稱和類型欄位中指定屬性的名稱和資料類型。 您可以選擇指定屬性的標題和說明。
如果屬性是計算屬性,則啟用計算。 計算屬性的值會根據規則或運算式來評估。 如需詳細資訊,請參閱編輯屬性。
如果資料模型對象綁定到資料源,則添加的子屬性將自動綁定到具有相同名稱和資料類型的父資料模型對象的屬性。
要手動將子屬性與資料模型對象屬性綁定,請點選綁定引用欄位旁邊的瀏覽表徵圖。 選擇對象對話框列出父資料模型對象的所有屬性。 選取要系結的屬性並點選勾選圖示。 請注意,您只能選擇與子屬性具有相同資料類型的屬性。
點選Done以儲存子屬性,點選Save以儲存表單資料模型。 子屬性現在會新增至資料模型物件。
在建立資料模型物件和屬性後,您可以繼續根據表單資料模型建立最適化表單和互動式通訊。 之後,當您有可用的資料來源並加以設定時,您就可以將表單資料模型與資料來源系結。 系結會自動在相關的調適性表單和互動式通訊中更新。 有關使用表單資料模型建立自適應表單和互動式通信的詳細資訊,請參閱使用表單資料模型。
當您要與表單資料模型整合的資料來源可供使用時,您可以將其新增至表單資料模型,如更新資料來源所述。 然後,執行下列動作來系結未系結的資料模型物件和屬性:
在表單資料模型中,選取您要與資料來源系結的未系結資料來源。
點選編輯屬性。
在編輯屬性窗格中,點選綁定欄位旁的瀏覽圖示。 它會開啟選擇物件對話方塊,列出在表單資料模型中新增的資料來源。
展開資料來源樹狀結構,並選取要與勾選圖示系結的資料模型物件。
點選「Done」儲存屬性,然後點選「儲存」儲存表單資料模型。 資料模型物件現在會與資料來源系結。 請注意,資料模型物件不再標示為「未系結」。
要讀取和寫入資料模型對象的資料,請執行以下操作以配置讀取和寫入服務:
選中資料模型對象頂部的複選框以將其選中,然後點選編輯屬性。
編輯屬性以配置資料模型對象的讀和寫服務
「編輯屬性」(Edit Properties)對話框隨即開啟。
編輯屬性對話框
除了資料模型對象和服務外,OData服務元資料文檔還包括定義兩個資料模型對象之間的關聯的導航屬性。 將OData服務資料源添加到表單資料模型時,表單資料模型中有一個服務可用於資料模型對象中的所有導航屬性。 您可以使用此服務讀取相應資料模型對象的導航屬性。
有關使用服務的詳細資訊,請參閱使用OData服務的導航屬性。
切換頂層物件以指定資料模型物件是否為頂層模型物件。
在表單資料模型中配置的資料模型對象可用於基於表單資料模型的自適應表單的內容瀏覽器中的「資料模型對象」頁籤。 在兩個資料模型對象之間添加關聯時,與關聯的資料模型對象在「資料模型對象」(Data Model Objects)頁籤中關聯的資料模型對象下嵌套。 如果巢狀資料模型是頂層對象,它也將單獨顯示在「資料模型對象」(Data Model Objects)頁籤中。 因此,您會看到其中兩個項目,一個在巢狀階層內,另一個在巢狀階層外,這可能會混淆表單作者。 要使關聯的資料模型對象僅顯示在嵌套層次中,請禁用「頂層對象」屬性。
為所選資料模型對象選擇「讀取和寫入服務」。 服務的引數隨即出現。
為員工資料源配置的讀寫服務
點選取得讀取服務引數,將引數系結至「使用者描述檔屬性」、「請求屬性」或「常值」值,並指定系結值。 它將服務引數綁定到指定的綁定屬性或常值,該值作為參數傳遞給服務,以從資料源中獲取與指定值相關聯的詳細資訊。
在此示例中,id
參數將採用用戶配置檔案的empid
屬性的值,並將其作為參數傳遞給讀取服務。 它將從指定empid
的employee
資料模型對象讀取和返回相關屬性的值。 因此,如果您在表單的empid
欄位中指定00250,讀取服務將會讀取員工ID為00250的詳細資料。
此外,還可以使參數為強制或可選。
將id引數系結至AEM使用者設定檔的empid屬性
點選Done以儲存引數,點選Done以儲存屬性,然後點選Save以儲存表單資料模型。
通常,資料源中的資料模型對象之間會建立關聯。 關聯可以是一對一或一對多。 例如,可以有多個與員工關聯的家屬。 它稱為一對多關聯,由1:n
在連接相關資料模型對象的線上描繪。 但是,如果關聯為給定的員工ID返回唯一的員工名稱,則稱為一對一關聯。
將資料源中的關聯資料模型對象添加到表單資料模型時,它們的關聯將保留並顯示為通過箭頭線連接。 您可以在表單資料模型中,跨不同資料來源新增資料模型物件之間的關聯。
JDBC資料源中的預定義關聯不會保留在表單資料模型中。 您必須手動建立。
要添加關聯,請:
選擇資料模型對象頂部的複選框以選擇它,然後點選添加關聯。 將開啟「添加關聯」對話框。
除了資料模型對象和服務外,OData服務元資料文檔還包括定義兩個資料模型對象之間的關聯的導航屬性。 在表單資料模型中新增關聯時,可使用這些導覽屬性。 有關詳細資訊,請參閱使用OData服務的導航屬性。
將開啟「添加關聯」對話框。
「添加關聯」對話框
在「添加關聯」窗格中:
在以下示例中,Dependents資料模型對象的讀取服務的預設參數為dependentid
。
Dependents讀取服務的預設參數為dependentid
但是,參數必須是關聯資料模型對象之間的公用屬性,在此示例中為Employeeid
。 因此,Employeeid
參數必須綁定到Employee資料模型對象的id
屬性,才能從Dependents資料模型對象中獲取相關的依存對象詳細資訊。
更新的引數和系結
點選Done以儲存引數。
點選Done儲存關聯,然後點選儲存儲存表單資料模型。
重複步驟,視需要建立更多關聯。
添加的關聯會以指定的標題和連接關聯資料模型對象的一行出現在資料模型對象框中。
您可以通過選中相應的複選框來編輯關聯,然後按一下「編輯關聯」(Edit Association)]。[
您可以編輯資料模型對象的屬性、其屬性以及在表單資料模型中添加的服務。
要編輯屬性:
選中資料模型對象、屬性或表單資料模型中服務旁邊的複選框。
點選編輯屬性。 將開啟選定模型對象、屬性或服務的編輯屬性窗格。
獲取服務的編輯屬性對話框
點選Done以儲存屬性,然後點選Save以儲存表單資料模型。
計算屬性是根據規則或表達式計算其值的屬性。 使用規則,可以將計算屬性的值設定為文本字串、數字、數學表達式的結果或表單資料模型中其他屬性的值。
例如,您可以建立計算屬性FullName,其值是現有FirstName和LastName屬性串連的結果。 若要這麼做:
建立名為FullName
的新屬性,其資料類型為String。
啟用Computed並點選Done以建立屬性。
將建立FullName計算屬性。 請注意屬性旁的圖示,以描繪計算屬性。
選擇FullName屬性,然後點選編輯規則。 規則編輯器窗口隨即開啟。
在規則編輯器視窗中,點選Create。 將開啟設定值規則窗口。
從「選擇選項」下拉式清單中,選擇「數學運算式」。 其他可用選項為表單資料模型物件和字串。
在數學表達式中,分別在第一和第二對象中選擇FirstName和LastName。 選擇plus作為運算子。
點選「Done」,然後點選「Close」以關閉規則編輯器視窗。 規則看起來類似下列。
在表單資料模型上,點選儲存。 已配置計算屬性。
在OData服務中,導航屬性用於定義兩個資料模型對象之間的關聯。 這些屬性是在實體類型或複雜類型上定義的。 例如,在以下摘取範例TripPin OData範例服務的中繼資料檔案中,人員實體包含三個導覽屬性——朋友、BestFriend和旅行。
如需導覽屬性的詳細資訊,請參閱OData檔案。
<edmx:Edmx xmlns:edmx="https://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
<script/>
<edmx:DataServices>
<Schema xmlns="https://docs.oasis-open.org/odata/ns/edm" Namespace="Microsoft.OData.Service.Sample.TrippinInMemory.Models">
<EntityType Name="Person">
<Key>
<PropertyRef Name="UserName"/>
</Key>
<Property Name="UserName" Type="Edm.String" Nullable="false"/>
<Property Name="FirstName" Type="Edm.String" Nullable="false"/>
<Property Name="LastName" Type="Edm.String"/>
<Property Name="MiddleName" Type="Edm.String"/>
<Property Name="Gender" Type="Microsoft.OData.Service.Sample.TrippinInMemory.Models.PersonGender" Nullable="false"/>
<Property Name="Age" Type="Edm.Int64"/>
<Property Name="Emails" Type="Collection(Edm.String)"/>
<Property Name="AddressInfo" Type="Collection(Microsoft.OData.Service.Sample.TrippinInMemory.Models.Location)"/>
<Property Name="HomeAddress" Type="Microsoft.OData.Service.Sample.TrippinInMemory.Models.Location"/>
<Property Name="FavoriteFeature" Type="Microsoft.OData.Service.Sample.TrippinInMemory.Models.Feature" Nullable="false"/>
<Property Name="Features" Type="Collection(Microsoft.OData.Service.Sample.TrippinInMemory.Models.Feature)" Nullable="false"/>
<NavigationProperty Name="Friends" Type="Collection(Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person)"/>
<NavigationProperty Name="BestFriend" Type="Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person"/>
<NavigationProperty Name="Trips" Type="Collection(Microsoft.OData.Service.Sample.TrippinInMemory.Models.Trip)"/>
</EntityType>
當您在表單資料模型中設定OData服務時,實體容器中的所有導覽屬性都可透過表單資料模型中的服務取得。 在此TripPin OData服務範例中,使用表單資料模型中的一項GET LINK
服務,可讀取Person
實體容器中的三個導覽屬性。
以下將突出顯示表單資料模型中的GET LINK of Person /People
服務,該服務是TripPin OData服務Person
實體中三個導航屬性的組合服務。
將GET LINK
服務添加到「表單資料模型」中的「服務」頁籤後,可以編輯屬性以選擇輸出模型對象和要在服務中使用的導航屬性。 例如,以下示例中的GET LINK of Person /People
服務使用Trip作為輸出模型對象,導航屬性使用Trips。
NavigationPropertyName引數的Default Value欄位中可用的值取決於Return陣列的狀態? 切換按鈕。啟用後,會顯示系列類型的導覽屬性。
在此示例中,您還可以選擇輸出模型對象作為Person,並選擇導航屬性參數作為Friends或BestFriend(取決於Return陣列? 啟用或停用)。
同樣地,在表單資料模型中新增關聯時,您可以選擇GET LINK
服務並設定其導覽屬性。 但是,要能夠選擇導航屬性,請確保「綁定到」欄位設定為Literal。
表單資料模型編輯器允許您在表單資料模型中為所有資料模型對象屬性生成示例資料,包括計算屬性。 它是一組隨機值,符合為每個屬性設定的資料類型。 您也可以編輯和儲存資料,即使重新產生範例資料,也會保留這些資料。
執行下列動作以產生和編輯範例資料:
開啟表單資料模型,然後點選「編輯範例資料」。它會在「編輯樣本資料」窗口中生成並顯示樣本資料。
在編輯範例資料視需要編輯資料,然後點選儲存。
接下來,您可以使用範例資料,根據表單資料模型來預先填寫和測試互動式通訊。 如需詳細資訊,請參閱使用表單資料模型。
您的表單資料模型已設定,但在投入使用前,您可能想要測試已設定的資料模型物件和服務是否如預期般運作。 要測試資料模型對象和服務:
以資料模型的形式選取資料模型物件或服務,並分別點選測試模型物件或測試服務。
將開啟「測試表單資料模型」窗口。
在「測試表單資料模型」窗口中,從「輸入」窗格中選擇要測試的資料模型對象或服務。
在測試程式碼中指定引數值,然後點選Test。 成功的測試會傳回「輸出」窗格中的輸出。
同樣地,您可以測試表單資料模型中的其他資料模型物件和服務。
您有一個工作表單資料模型,現在可以在最適化表單和互動式通訊工作流程中使用。 如需詳細資訊,請參閱使用表單資料模型。