Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
K zavedení virtuálních tabulek (označovaných také jako virtuální entity) v Microsoft Dataverse jsou přidruženy dvě široké kategorie změn systému definic tabulek:
- Přidání nového sestavení, oborů názvů, tříd a dalších typů pro podporu vývoje vlastních zprostředkovatelů dat virtuálních tabulek
- Změny základní platformy, včetně několika dalších vlastností pro podporu mapování externího zdroje dat a změny chování existujících vlastností tabulky a sloupců, které odrážejí omezení počáteční implementace této funkce
Sestavení sady Dynamics 365 Data SDK
Sestavení Dynamics 365 Data SDK obsahuje typy, Microsoft.Xrm.Sdk.Data.dllkteré vám pomůžou při vytváření vlastních zprostředkovatelů dat virtuálních tabulek. Skládá se z následujících jmenných prostor:
| Obor názvů | Description |
|---|---|
| Microsoft.Xrm.Sdk.Data | Základní obor názvů, který obsahuje několik běžných typů, jako je výčet AllowedQueryOptions |
| Microsoft.Xrm.Sdk.Data.CodeGen | Obsahuje třídy a rozhraní, která podporují dynamické reflexe, porovnávání typů a generování kódu. Používá se hlavně interní modul poskytovatele. |
| Microsoft.Xrm.Sdk.Data.Converters | Sada tříd pro převod standardních typů XRM na odpovídající základní typy .NET |
| Microsoft.Xrm.Sdk.Data.Exceptions | Sada tříd výjimek, které představují chyby, ke kterým může dojít během řešení hodnoty modulu runtime. Všechny jsou odvozeny od Microsoft.Xrm.Sdk.SdkExceptionBase. |
| Microsoft.Xrm.Sdk.Data.Expressions | Třídy, které vám pomůžou s implementací podporovaných transformací dotazů, jako je FILTER, JOIN a ORDER. |
| Microsoft.Xrm.Sdk.Data.Mappings | Třídy a rozhraní, která vytvářejí mapování z typů definic virtuální tabulky na externí typy. |
| Microsoft.Xrm.Sdk.Data.Visitors | Třídy, které implementují vzor návštěvníka k provádění konkrétních operací s parametrem QueryExpression předaným poskytovateli dat během požadavků RetrieveMultiple. Poskytuje specifickou podporu pro obecné dotazy i zpracování založené na LINQ. Tyto třídy jsou odvozeny z Microsoft.Xrm.Sdk.Query.QueryExpressionVisitorBase. |
Tyto obory názvů jsou součástí sestavení zahrnutého v tomto balíčku NuGet: Microsoft.CrmSdk.Data.
Změny základní platformy
Následující změny standardních referenčních typů Dataverse podporují virtuální tabulky.
Nové tabulky
Dataverse zveřejňuje zprostředkovatele a zdroje dat virtuální tabulky jako následující tabulky: EntityDataProvider a EntityDataSource.
Nové vlastnosti definice tabulky
Do EntityMetadata třídy byly přidány čtyři nové vlastnosti:
| Vlastnost | Description |
|---|---|
| DataProviderId | GUID, který identifikuje přidruženého poskytovatele dat virtuální tabulky |
| DataSourceId | GUID, který identifikuje zdroj dat přidružené virtuální tabulky |
| ExternalName | Název tohoto typu v externím zdroji dat |
| ExternalCollectionName | Název množného čísla pro tento typ, používaný v uživatelském rozhraní a pro podporu přístupu k OData |
Do AttributeMetadata třídy byly přidány dvě nové vlastnosti:
| Vlastnost | Description |
|---|---|
| ExternalName | Název typu v externím zdroji dat |
| IsDataSourceSecret | Určuje, jestli pole obsahuje citlivé informace. |
Vlastnost ExternalName byla přidána také do tříd OptionMetadata a OptionSetMetadata tříd. Tyto externí názvy pomáhají mapování externího zdroje dat zadáním názvu přidruženého typu v externím zdroji dat. Tyto vlastnosti se používají pouze pro virtuální tabulky. Pro předdefinované nebo standardní vlastní typy entit musí být tyto externí názvy null.
Vytvoření virtuální tabulky
Přístup k programovému vytvoření typu virtuální tabulky se mírně liší od vytvoření standardního vlastního typu entity v tom, že:
- Pokud znáte přidruženého zprostředkovatele dat (a volitelně i zdroj dat) při vytváření, zadejte tyto hodnoty.
- Pokud neznáte zprostředkovatele dat pro tento typ, nastavte DataProviderId na
7015A531-CC0D-4537-B5F2-C882A1EB65ADhodnotu a nastavte DataSourceId hodnotunull. Před použitím instancí tohoto typu za běhu přiřaďte tyto vlastnosti příslušné hodnoty.
Při registraci modulu plug-in vytvoříte dvě nové tabulky , EntityDataProvider a volitelně EntityDataSource. Jejich příslušná ID entitydataproviderid a entitydatasourceidpředstavují tyto požadované identifikátory GUID. (Jinak vývojáři potřebují přístup k těmto vlastním typům jen zřídka.) Vlastnost entitydataproviderid, kterou obsahuje zdroj dat, se musí shodovat s odpovídajícím typem DataProvider, jinak je vyvolána výjimka modulu runtime.
Výstraha
Standardní (nevirtuální) tabulky musí mít hodnoty jejich přidružené DataProviderId a DataSourceId nastavené na výchozí hodnoty (null), jinak se vyvolá výjimka za běhu. Po vytvoření nemůžete převést z nevirtuálního typu na virtuální typ nebo obráceně.
Změny chování vlastností definice tabulky
Následující tabulka podrobně popisuje, jak se mění chování standardních vlastností EntityMetadata , když je použijete u virtuálních tabulek. Některé vlastnosti nejsou platné pro virtuální tabulky, zatímco jiné jsou omezené v oboru nebo hodnotě.
| Vlastnost metadat | Aplikuje? | Poznámky |
|---|---|---|
| ActivityTypeMask | neplatný | Vždy 0 |
| Atributy | platný | |
| AutoCreateAccessTeams | neplatný | Vždy false |
| AutoRouteToOwnerQueue | neplatný | Vždy nepravda, fronty se nepodporují. |
| CanBeInManyToMany | platný | |
| Může být primární entitou ve vztahu | platný | |
| MůžeBýtPříbuznýEntitaVeVztahu | platný | |
| CanChangeHierarchicalRelationship | neplatný | Vždy nepravda, hierarchické vztahy nejsou podporovány. |
| CanChangeTrackingBeEnabled | neplatný | Hodnoty vždy nepravdivé, sledování změn a auditování nejsou podporovány. |
| MůžeVytvářetAtributy | platný | |
| MůžeVytvářetGrafy | neplatný | Vždy false |
| CanCreateForms | platný | |
| CanCreateViews | platný | |
| CanEnableSyncToExternalSearchIndex | neplatný | Vždy false |
| LzeMěnitDalšíNastavení | platný | |
| CanTriggerWorkflow | neplatný | Vždy nepravda, pracovní postupy se nedají aktivovat. |
| ChangeTrackingEnabled | neplatný | Vždy false |
| CollectionSchemaName | platný | |
| DaysSinceRecordLastModified | neplatný | Vždy null nebo 0 |
| Description | platný | |
| DisplayCollectionName | platný | |
| ZobrazovanéJméno | platný | |
| EnforceStateTransitions | neplatný | StateCode a Status nejsou podporované. |
| EntityColor | platný | |
| EntityHelpUrl | platný | |
| EntityHelpUrlEnabled | platný | |
| EntitySetName | platný | |
| ExtensionData | neplatný | Zastaralá vlastnost |
| HasChanged | platný | |
| IconLargeName | platný | |
| IconMediumName | platný | |
| IconSmallName | platný | |
| IntroducedVersion | platný | |
| IsActivity | neplatný | Vždy nepravda, aktivity se nepodporují. |
| IsActivityParty | neplatný | Vždy false |
| IsAIRUpdated | neplatný | Zastaralé |
| IsAuditEnabled | neplatný | Vždy je nepravdivé, auditování není podporováno. |
| IsAvailableOffline | neplatný | Vždy nepravda, offline použití není podporováno. |
| IsBusinessProcessEnabled | neplatný | Vždy je to nepravdivé, obchodní procesy nejsou podporovány. |
| IsChildEntity | neplatný | Vždy je nepravdivé, všechny virtuální tabulky jsou vlastněné organizací. |
| IsConnectionsEnabled | platný | |
| IsCustomEntity | platný | |
| Je přizpůsobitelný | platný | |
| IsDocumentManagementEnabled | platný | |
| IsDocumentRecommendationsEnabled | neplatný | Vždy nepravda, tato nová funkce se nepodporuje. |
| IsDuplicateDetectionEnabled | neplatný | Vždy false, ale duplicitní detekce se dá provést ve zdroji dat. |
| IsEnabledForCharts | omezená | Pouze pro podporované klauzule Fetch. |
| IsEnabledForTrace | platný | |
| IsImportable | platný | |
| IsInteractionCentricEnabled | platný | |
| IsIntersect | platný | |
| IsKnowledgeManagementEnabled | neplatný | Integrace správy znalostí není nikdy podporována. |
| IsMailMergeEnabled | platný | |
| IsManaged | platný | |
| IsMappable | platný | |
| IsOfflineInMobileClient | neplatný | Hodnoty virtuální tabulky jsou vždy nepravdivé a nejsou uložené v mezipaměti pro použití offline. |
| IsOneNoteIntegrationEnabled | platný | |
| IsOptimisticConcurrencyEnabled | neplatný | Vždy false, souběžnost musí být implementována ve zdroji dat. |
| IsPrivate | platný | |
| IsQuickCreateEnabled | platný | |
| IsReadOnlyInMobileClient | platný | |
| IsRenameable | platný | |
| IsSLAEnabled | neplatný | Vždy false |
| IsStateModelAware | neplatný | |
| IsValidForAdvancedFind | platný | |
| IsValidForQueue | platný | |
| IsVisibleInMobile | platný | |
| IsVisibleInMobileClient | platný | |
| Klíče | neplatný | Alternativní klíče se nepodporují. |
| LogicalCollectionName | platný | |
| Logický název | platný | |
| ManyToManyRelationships | platný | |
| ManyToOneRelationships | platný | Není podporováno mezi dvěma virtuálními tabulkami. |
| MetadataId | platný | |
| MobileOfflineFilters | neplatný | Vždy nepravda, offline použití není podporováno. |
| ObjectTypeCode | platný | |
| OneToManyRelationships | platný | |
| OwnershipType | neplatný | Vždy OrganizationOwned |
| PrimaryIdAttribute | platný | |
| PrimaryImageAttribute | platný | |
| PrimaryNameAttribute | platný | |
| Oprávnění | neplatný | |
| RecurrenceBaseEntityLogicalName | neplatný | |
| ReportViewName | neplatný | |
| SchemaName | platný | |
| SyncToExternalSearchIndex | neplatný |
Změny chování vlastnosti definice sloupce
Následující tabulka vysvětluje, jak se chování standardních vlastností AttributeMetadata mění, když je použijete na virtuální tabulky. Některé vlastnosti nejsou platné pro virtuální tabulky, zatímco jiné mají omezený rozsah nebo hodnotu.
| Vlastnost metadat | Aplikuje? | Poznámky |
|---|---|---|
| ColumnNumber | neplatný | |
| DeprecatedVersion | platný | |
| Description | platný | |
| ZobrazovanéJméno | platný | |
| Logický název entity | platný | |
| ExtensionData | neplatný | |
| HasChanged | platný | |
| InheritsFrom | platný | |
| IntroducedVersion | platný | |
| IsAuditEnabled | neplatný | Vždy je nepravdivé, auditování není podporováno. |
| IsCustomAttribute | platný | |
| Je přizpůsobitelný | platný | |
| IsFilterable | platný | |
| IsGlobalFilterEnabled | platný | |
| IsLogical | platný | |
| IsManaged | platný | |
| IsPrimaryId | platný | |
| IsPrimaryName | platný | |
| IsRenameable | platný | |
| JeVyhledatelné | platný | |
| IsSecured | neplatný | Vždy je nastaveno na false, zabezpečení na úrovni pole není podporováno. |
| IsSortableEnabled | platný | |
| IsValidForAdvancedFind | platný | |
| IsValidForCreate | platný | |
| IsValidForRead | platný | |
| IsValidForUpdate | platný | |
| LinkedAttributeId | platný | |
| Logický název | platný | |
| MetadataId | platný | |
| Požadovaná úroveň | platný | |
| SchemaName | platný | |
| Typ zdroje | neplatný | Vždy 0, počítané nebo souhrnné hodnoty se nepodporují. |
Viz také
Začínáme s virtuálními entitami
Vlastní poskytovatelé dat pro virtuální tabulky
Ukázka: Plug-in obecného zprostředkovatele dat virtuální tabulky