資料整合提供表單資料模型編輯器,可設定及使用表單資料模型。
表單資料模型編輯器提供直覺式使用者介面和工具,可用於編輯和設定表單資料模型。 使用編輯器,可以在表單資料模型中,從關聯的資料源添加和配置資料模型對象、屬性和服務。 此外,它還允許您建立資料模型對象和屬性,而不使用資料源,並以後將它們與相應的資料模型對象和屬性綁定。 您也可以為資料模型物件屬性產生和編輯範例資料,以便在預覽時預填最適化表單和互動式通訊。 您可以測試在表單資料模型中設定的資料模型物件和服務,以確保其與資料來源正確整合。
如果您是初次使用Forms資料整合,且尚未設定資料來源或建立表單資料模型,請參閱下列主題:
請閱讀,了解使用表單資料模型編輯器可執行的各種任務和設定的詳細資訊。
您必須同時是fdm-author和forms-user群組的成員,才能建立及使用表單資料模型。 請連絡您的AEM管理員以成為群組的成員。
如果您使用資料源建立了表單資料模型,則可以使用表單資料模型編輯器來添加資料模型對象和服務、配置其屬性、在資料模型對象之間建立關聯,以及測試表單資料模型和服務。
您可以在表單資料模型中,從可用的資料來源新增資料模型物件和服務。 新增的資料模型物件顯示在「模型」標籤中時,新增的服務會顯示在「服務」標籤中。
要添加資料模型對象和服務,請執行以下操作:
登入AEM製作例項,導覽至Forms >資料整合,然後開啟您要新增資料模型物件的表單資料模型。
在「資料來源」窗格中,展開資料來源以檢視可用的資料模型物件和服務。
選擇要添加到表單資料模型的資料模型對象和服務,然後點選添加選定項。
「模型」(Model)頁簽顯示所有資料模型對象及其屬性的圖形表示,這些對象及其屬性添加到表單資料模型中。 每個資料模型物件由表單資料模型中的方塊表示。
您可以按住並拖曳資料模型物件方塊四周,以在內容區域中組織這些物件。 在表單資料模型中新增的所有資料模型物件在「資料來源」窗格中會呈現灰色。
「服務」索引標籤會列出新增的服務。
除了資料模型對象和服務之外,OData服務元資料文檔還包括定義兩個資料模型對象之間關聯的導航屬性。 有關詳細資訊,請參閱使用OData服務的導航屬性。
點選儲存以儲存表單模型物件。
您可以使用最適化表單規則,叫用表單資料模型的「服務」索引標籤中設定的服務。 規則編輯器的「調用服務」操作中提供了已配置的服務。有關在適用性表單規則中使用這些服務的詳細資訊,請參閱規則編輯器中的調用服務和設定規則的值。
雖然可以從配置的資料源添加資料模型對象,但也可以建立沒有資料源的資料模型對象或實體。 如果您尚未在表單資料模型中設定資料來源,則此功能特別實用。
要建立不使用資料源的資料模型對象,請執行以下操作:
登入AEM製作例項,導覽至Forms >資料整合,然後開啟您要在其中建立資料模型物件或實體的表單資料模型。
點選建立實體。
在「建立資料模型」對話框中,指定資料模型對象的名稱,然後點選Add。 資料模型物件會新增至表單資料模型。 請注意,新新增的資料模型物件未系結至資料來源,且沒有任何屬性,如下圖所示。
接下來,可以在未綁定的資料模型對象中添加子屬性。
表單資料模型編輯器可讓您在資料模型物件中建立子屬性。 建立時的屬性不會綁定到資料源中的任何屬性。 您稍後可以將子屬性與包含資料模型物件中的其他屬性捆綁。
要建立子屬性,請執行以下操作:
在表單資料模型中,選取資料模型物件,然後點選建立子屬性。
在建立子屬性對話框中,分別在名稱和類型欄位中指定屬性的名稱和資料類型。 您可以選擇指定屬性的標題和說明。
如果屬性是計算屬性,則啟用計算。 根據規則或運算式來評估計算屬性的值。 如需詳細資訊,請參閱編輯屬性。
如果資料模型對象綁定到資料源,則添加的子屬性將自動綁定到具有相同名稱和資料類型的父資料模型對象的屬性。
要使用資料模型對象屬性手動綁定子屬性,請點選Bind Reference欄位旁的瀏覽表徵圖。 選擇對象對話框列出父資料模型對象的所有屬性。 選取要系結的屬性,並點選勾號圖示。 請注意,您只能選取與子屬性資料類型相同的屬性。
點選Done以儲存子屬性,並點選Save以儲存表單資料模型。 子屬性現在已新增至資料模型物件。
建立資料模型物件和屬性後,您可以繼續根據表單資料模型建立最適化表單和互動式通訊。 稍後,當您有可用的資料來源並加以設定時,您就可以將表單資料模型與資料來源系結。 系結會自動在相關的最適化表單和互動式通訊中更新。 如需使用表單資料模型建立最適化表單和互動式通訊的詳細資訊,請參閱使用表單資料模型。
當您要與表單資料模型整合的資料來源可用時,可以將其新增至表單資料模型,如更新資料來源所述。 然後,執行以下操作來綁定未綁定的資料模型對象和屬性:
在表單資料模型中,選擇要與資料源綁定的未綁定資料源。
點選編輯屬性。
在編輯屬性窗格中,點選綁定欄位旁的瀏覽表徵圖。 它會開啟選取物件對話方塊,列出在表單資料模型中新增的資料來源。
展開資料來源樹狀結構,並選取要以系結的資料模型物件,然後點選勾號圖示。
點選Done以儲存屬性,然後點選Save以儲存表單資料模型。 資料模型物件現在與資料來源系結。 請注意,資料模型物件不再標示為「未系結」。
要讀取和寫入資料模型對象的資料,請執行以下操作來配置讀取和寫入服務:
選取資料模型物件頂端的核取方塊以加以選取,然後點選編輯屬性。
編輯屬性以配置資料模型對象的讀寫服務
將開啟「編輯屬性」對話框。
編輯屬性對話方塊
除了資料模型對象和服務之外,OData服務元資料文檔還包括定義兩個資料模型對象之間關聯的導航屬性。 將OData服務資料源添加到表單資料模型時,表單資料模型中有一個服務可用於資料模型對象中的所有導航屬性。 您可以使用此服務讀取相應資料模型對象的導航屬性。
有關使用服務的詳細資訊,請參閱使用OData服務的導航屬性。
切換頂級對象以指定資料模型對象是否為頂級模型對象。
在表單資料模型中配置的資料模型對象可用於基於表單資料模型的適用性表單的「內容」瀏覽器的「資料模型對象」頁簽中。 在兩個資料模型對象之間添加關聯時,要關聯的資料模型對象在「資料模型對象」(Data Model Objects)頁簽中要關聯的資料模型對象下嵌套。 如果嵌套資料模型是頂層對象,它也將單獨顯示在「資料模型對象」頁簽中。 因此,您會看到其中兩個項目,一個在巢狀階層內,另一個在巢狀階層外,這可能會混淆表單作者。 要使關聯的資料模型對象僅顯示在嵌套層次結構中,請禁用「頂級對象」屬性。
為所選資料模型對象選擇讀和寫服務。 服務的引數隨即顯示。
為員工資料源配置的讀寫服務
點選以取得讀取服務引數,將引數系結至使用者設定檔屬性、請求屬性或常值,並指定系結值。 它將服務參數綁定到指定的綁定屬性或常值,該值作為參數傳遞給服務,以從資料源獲取與指定值關聯的詳細資訊。
在此示例中, id
參數將採用用戶配置檔案的empid
屬性的值,並將其作為參數傳遞給讀取服務。 它將從指定empid
的employee
資料模型對象中讀取並返回關聯屬性的值。 因此,如果您在表單的empid
欄位中指定00250,則讀取服務將讀取具有00250僱員id的僱員的詳細資訊。
此外,您可以將引數設為強制或選用。
將id引數系結至AEM使用者設定檔的empid屬性
點選Done以儲存引數,點選Done以儲存屬性,然後點選Save以儲存表單資料模型。
通常,資料源中的資料模型對象之間會建立關聯。 關聯可以是一對一或一對多。 例如,可以有多個與員工相關聯的家屬。 它稱為一對多關聯,由1:n
在連接相關資料模型對象的線上描述。 但是,如果關聯為指定的員工ID返回唯一的員工名稱,則稱為一對一關聯。
將資料源中的關聯資料模型對象添加到表單資料模型時,它們的關聯將被保留並顯示為通過箭頭線連接。 您可以在表單資料模型中,跨不同資料來源新增資料模型物件之間的關聯。
JDBC資料源中的預定義關聯不會保留在表單資料模型中。 您必須手動建立。
添加關聯:
選取資料模型物件頂端的核取方塊以加以選取,然後點選新增關聯。 將開啟「添加關聯」對話框。
除了資料模型對象和服務之外,OData服務元資料文檔還包括定義兩個資料模型對象之間關聯的導航屬性。 在表單資料模型中新增關聯時,可以使用這些導覽屬性。 有關詳細資訊,請參閱使用OData服務的導航屬性。
將開啟「添加關聯」對話框。
添加關聯對話框
在「添加關聯」窗格中:
在以下示例中,Dependents資料模型對象的讀取服務的預設參數為dependentid
。
Dependents讀取服務的預設參數為dependited
但引數必須是關聯資料模型對象之間的公用屬性,在此示例中為Employeeid
。 因此,Employeeid
參數必須綁定到Employee資料模型對象的id
屬性,才能從Dependents資料模型對象中獲取關聯的依存項詳細資訊。
更新引數和系結
點選Done以儲存引數。
點選Done以儲存關聯,然後點選Save以儲存表單資料模型。
重複步驟,視需要建立更多關聯。
添加的關聯將顯示在資料模型對象框中,具有指定的標題和一條連接關聯資料模型對象的線。
您可以選取相關的核取方塊,然後點選「編輯關聯」以編輯關聯。
您可以編輯資料模型對象的屬性、其屬性以及在表單資料模型中添加的服務。
要編輯屬性:
選取表單資料模型中資料模型物件、屬性或服務旁的核取方塊。
點選編輯屬性。 將開啟所選模型對象、屬性或服務的編輯屬性窗格。
獲取服務的編輯屬性對話框
點選Done以儲存屬性,然後點選Save以儲存表單資料模型。
計算屬性是根據規則或表達式計算其值的屬性。 使用規則,可以將計算屬性的值設定為文本字串、數字、數學表達式的結果或窗體資料模型中其他屬性的值。
例如,可以建立計算屬性FullName,其值是現有FirstName和LastName屬性串連的結果。 若要這麼做:
建立資料類型為String的名稱為FullName
的新屬性。
啟用Computed並點選Done以建立屬性。
將建立FullName計算屬性。 請注意屬性旁的圖示,以描繪計算屬性。
選擇FullName屬性,然後點選Edit Rule。 規則編輯器視窗隨即開啟。
在規則編輯器視窗中,點選建立。 將開啟「設定值」規則窗口。
從「選擇選項」下拉清單中,選擇數學表達式。 其他可用選項為表單資料模型物件和字串。
在數學表達式中,分別在第一和第二對象中選擇FirstName和LastName。 選擇plus作為運算子。
點選Done,然後點選Close以關閉規則編輯器視窗。 規則看起來類似下列。
在表單資料模型上,點選儲存。 已配置計算屬性。
在OData服務中,導航屬性用於定義兩個資料模型對象之間的關聯。 這些屬性是在實體類型或複雜類型上定義的。 例如,在從示例TripPin OData示例服務的元資料檔案的以下提取中,人員實體包含三個導航屬性:朋友、BestFriend和Trips。
有關導航屬性的詳細資訊,請參閱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引數的預設值欄位中可用的值取決於Return陣列的狀態? 切換按鈕。啟用後,將顯示「集合」類型的導航屬性。
在此示例中,您還可以選擇輸出模型對象作為Person,選擇導航屬性參數作為Friends或BestFriend(取決於Return陣列? 啟用或停用)。
同樣地,在表單資料模型中新增關聯時,您可以選擇GET LINK
服務並配置其導覽屬性。 但是,要能夠選擇導航屬性,請確保將綁定到欄位設定為常值。
表單資料模型編輯器可讓您為表單資料模型中的所有資料模型物件屬性產生範例資料,包括計算屬性。 這是一組符合為每個屬性設定的資料類型的隨機值。 您也可以編輯和儲存資料,即使重新產生範例資料,資料也會保留。
執行下列操作以生成和編輯示例資料:
開啟表單資料模型,然後點選編輯範例資料。 它會在「編輯範例資料」視窗中產生並顯示範例資料。
在「編輯示例資料」窗口中,根據需要編輯資料,然後點選「保存」。
接下來,您可以使用範例資料,根據表單資料模型預先填寫及測試互動式通訊。 如需詳細資訊,請參閱使用表單資料模型。
您的表單資料模型已設定,但在使用前,您可能想要測試已設定的資料模型物件和服務是否如預期般運作。 要測試資料模型對象和服務,請執行以下操作:
在表單資料模型中選擇資料模型對象或服務,並分別點選測試模型對象或測試服務。
將開啟「測試表單資料模型」窗口。
在「測試表單資料模型」窗口中,從「輸入」窗格中選擇要測試的資料模型對象或服務。
在測試程式碼中指定引數值,然後點選Test。 成功的測試會在「輸出」窗格中返回輸出。
同樣地,您可以測試表單資料模型中的其他資料模型物件和服務。
您有可運作的表單資料模型,現在已可在最適化表單和互動式通訊工作流程中使用。 如需詳細資訊,請參閱使用表單資料模型。