Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Istnieją dwie szerokie kategorie zmian w systemie definicji tabel, które są skojarzone z wprowadzeniem tabel wirtualnych (nazywanych również jednostkami wirtualnymi) w usłudze Microsoft Dataverse:
- Dodawanie nowego zestawu, przestrzeni nazw, klas i innych typów do obsługi tworzenia niestandardowych dostawców danych tabel wirtualnych
- Zmiany platformy podstawowej, w tym kilka dodatkowych właściwości do obsługi mapowania zewnętrznego źródła danych oraz modyfikacje zachowań istniejących właściwości tabeli i kolumn, które odzwierciedlają ograniczenia początkowej implementacji tej funkcji
Zestaw SDK danych usługi Dynamics 365
Zestaw Sdk danych usługi Dynamics 365 zawiera Microsoft.Xrm.Sdk.Data.dlltypy ułatwiające tworzenie niestandardowych dostawców danych tabel wirtualnych. Składa się z następujących przestrzeni nazw:
| Namespace | Description |
|---|---|
| Microsoft.Xrm.Sdk.Data | Podstawowa przestrzeń nazw zawierająca kilka typowych typów, takich jak wyliczenie AllowedQueryOptions |
| Microsoft.Xrm.Sdk.Data.CodeGen | Zawiera klasy i interfejsy, które obsługują dynamiczne odbicie, dopasowywanie typów i generowanie kodu. Głównie używane przez wewnętrzny aparat dostawcy. |
| Microsoft.Xrm.Sdk.Data.Converters | Zestaw klas do konwertowania standardowych typów XRM na odpowiadające im typy podstawowe platformy.NET |
| Microsoft.Xrm.Sdk.Data.Exceptions | Zestaw klas wyjątków reprezentujących błędy, które mogą wystąpić podczas rozpoznawania wartości środowiska uruchomieniowego. Wszystkie pochodzą z bazy danych Microsoft.Xrm.Sdk.SdkExceptionBase. |
| Microsoft.Xrm.Sdk.Data.Expressions | Klasy ułatwiające implementowanie obsługiwanych przekształceń zapytań, takich jak FILTER, JOIN i ORDER. |
| Microsoft.Xrm.Sdk.Data.Mappings | Klasy i interfejsy, które tworzą mapowanie z typów definicji tabeli wirtualnej do typów zewnętrznych. |
| Microsoft.Xrm.Sdk.Data.Visitors | Klasy implementujące wzorzec odwiedzających do wykonywania określonych operacji na parametrze QueryExpression przekazywanym do dostawcy danych podczas żądań RetrieveMultiple. Zapewnia konkretną obsługę zarówno ogólnego przetwarzania zapytań, jak i przetwarzania opartego na LINQ. Te klasy pochodzą z bazy danych Microsoft.Xrm.Sdk.Query.QueryExpressionVisitorBase. |
Ten zestaw jest dystrybuowany jako pakiet NuGet: Microsoft.CrmSdk.Data
Zmiany platformy podstawowej
Wprowadzono następujące zmiany standardowych typów odwołań usługi Dataverse w celu obsługi tabel wirtualnych.
Nowe tabele
Usługa Dataverse uwidacznia dostawców i źródeł danych tabeli wirtualnej jako następujące tabele: EntityDataProvider i EntityDataSource.
Nowe właściwości definicji tabeli
Do klasy dodano EntityMetadata cztery nowe właściwości:
| Majątek | Description |
|---|---|
| DataProviderId | Identyfikator GUID identyfikujący skojarzonego dostawcę danych tabeli wirtualnej |
| DataSourceId | Identyfikator GUID identyfikujący skojarzone źródło danych tabeli wirtualnej |
| ExternalName | Nazwa tego typu w zewnętrznym źródle danych |
| ExternalCollectionName | Nazwa w liczbie mnogiej dla tego typu, używana w interfejsie użytkownika i do obsługi dostępu OData |
Do klasy dodano AttributeMetadata dwie nowe właściwości:
| Majątek | Description |
|---|---|
| ExternalName | Nazwa typu w zewnętrznym źródle danych |
| IsDataSourceSecret | Wskazuje, czy pole zawiera informacje poufne |
Właściwość ExternalName została również dodana do OptionMetadata klas i OptionSetMetadata . Te nazwy zewnętrzne pomagają w mapowaniu zewnętrznego źródła danych, określając nazwę skojarzonego typu w zewnętrznym źródle danych. Te właściwości są używane tylko dla tabel wirtualnych; dla wbudowanego lub standardowego typu encji niestandardowej te nazwy zewnętrzne muszą mieć wartość null.
tworzenie tabeli wirtualnej
Podejście programowe do tworzenia typu tabeli wirtualnej różni się nieco od standardowego tworzenia niestandardowego typu encji, w tym:
- Jeśli skojarzony dostawca danych (i opcjonalnie źródło danych) jest znany w czasie tworzenia, zostaną one określone.
- Jeśli dostawca danych dla tego typu nie jest znany, jest co najmniej DataProviderId ustawiony na wartość
7015A531-CC0D-4537-B5F2-C882A1EB65AD, a DataSourceId jest ustawione na wartośćnull. Zanim wystąpienia tego typu będą używane w czasie wykonywania, te właściwości muszą mieć przypisane odpowiednie wartości.
Dwie nowe tabele EntityDataProvider i opcjonalnie EntityDataSourcezostaną utworzone podczas rejestrowania wtyczki, a ich identyfikatory entitydataproviderid i entitydatasourceid, reprezentują te wymagane identyfikatory GUID. (W przeciwnym razie deweloperzy rzadko muszą uzyskiwać bezpośredni dostęp do tych typów niestandardowych). Należy pamiętać, że źródło danych zawiera właściwość entitydataproviderid , która musi być zgodna z odpowiednim typem elementu DataProvider lub zostanie zgłoszony wyjątek środowiska uruchomieniowego.
Ostrzeżenie
Standardowe tabele (inne niż wirtualne) muszą mieć przypisane wartości DataProviderId i DataSourceId jako wartości domyślne (null), w przeciwnym razie zostanie zgłoszony wyjątek w czasie wykonywania. Po utworzeniu nie można przekonwertować typu innego niż wirtualny na typ wirtualny lub odwrotnie.
Zmiany zachowania właściwości definicji tabeli
W poniższej tabeli przedstawiono sposób modyfikowania zachowania standardowych właściwości EntityMetadata w przypadku zastosowania do tabel wirtualnych. Niektóre właściwości nie są prawidłowe dla tabel wirtualnych, natomiast inne są ograniczone w zakresie lub wartości.
| Właściwość metadanych | Czy dotyczy? | Notatki |
|---|---|---|
| ActivityTypeMask | nieprawidłowe | Zawsze 0 |
| Attributes | prawidłowy | |
| AutoCreateAccessTeams | nieprawidłowe | Zawsze FALSE |
| AutoRouteToOwnerQueue | nieprawidłowe | Zawsze fałszywe, kolejki nie są obsługiwane. |
| CanBeInManyToMany | prawidłowy | |
| Może być głównym podmiotem w relacji | prawidłowy | |
| MożeByćPowiązanąJednostkąWRelacji | prawidłowy | |
| CanChangeHierarchicalRelationship | nieprawidłowe | Zawsze fałszywe, relacje hierarchiczne nie są obsługiwane. |
| CanChangeTrackingBeEnabled | nieprawidłowe | Zawsze fałszywe, wartości śledzenia zmian i inspekcji nie są obsługiwane. |
| MożnaTworzyćAtrybuty | prawidłowy | |
| CanCreateCharts | nieprawidłowe | Zawsze FALSE |
| CanCreateForms | prawidłowy | |
| CanCreateViews | prawidłowy | |
| CanEnableSyncToExternalSearchIndex | nieprawidłowe | Zawsze FALSE |
| MożeZmieniaćDodatkoweUstawienia | prawidłowy | |
| CanTriggerWorkflow | nieprawidłowe | Zawsze fałszywe, nie można wyzwalać przepływów pracy. |
| ChangeTrackingEnabled | nieprawidłowe | Zawsze FALSE |
| CollectionSchemaName | prawidłowy | |
| DaysSinceRecordLastModified | nieprawidłowe | Zawsze ma wartość null lub 0 |
| Description | prawidłowy | |
| DisplayCollectionName | prawidłowy | |
| DisplayName | prawidłowy | |
| EnforceStateTransitions | nieprawidłowe | StateCode i Status nie są obsługiwane. |
| EntityColor | prawidłowy | |
| EntityHelpUrl | prawidłowy | |
| EntityHelpUrlEnabled | prawidłowy | |
| EntitySetName | prawidłowy | |
| ExtensionData | nieprawidłowe | Przestarzała właściwość |
| HasChanged | prawidłowy | |
| IconLargeName | prawidłowy | |
| IconMediumName | prawidłowy | |
| IconSmallName | prawidłowy | |
| IntroducedVersion | prawidłowy | |
| IsActivity | nieprawidłowe | Zawsze fałszywe, akcje nie są obsługiwane. |
| IsActivityParty | nieprawidłowe | Zawsze FALSE |
| IsAIRUpdated | nieprawidłowe | Deprecated |
| IsAuditEnabled | nieprawidłowe | Zawsze fałszywe, inspekcja nie jest obsługiwana. |
| IsAvailableOffline | nieprawidłowe | Zawsze fałszywe, użycie w trybie offline nie jest obsługiwane. |
| IsBusinessProcessEnabled | nieprawidłowe | Zawsze fałszywe, procesy biznesowe nie są obsługiwane. |
| IsChildEntity | nieprawidłowe | Zawsze nieprawda, wszystkie tabele wirtualne należą do organizacji. |
| IsConnectionsEnabled | prawidłowy | |
| IsCustomEntity | prawidłowy | |
| IsCustomizable | prawidłowy | |
| IsDocumentManagementEnabled | prawidłowy | |
| IsDocumentRecommendationsEnabled | nieprawidłowe | Zawsze fałszywe, ta nowa funkcja nie jest obsługiwana. |
| IsDuplicateDetectionEnabled | nieprawidłowe | Zawsze fałszywe, ale wykrywanie duplikatów można wykonać w źródle danych. |
| IsEnabledForCharts | ograniczone | Tylko w przypadku obsługiwanych klauzul pobierania. |
| IsEnabledForTrace | prawidłowy | |
| IsImportable | prawidłowy | |
| IsInteractionCentricEnabled | prawidłowy | |
| IsIntersect | prawidłowy | |
| IsKnowledgeManagementEnabled | nieprawidłowe | Zawsze fałszywe, integracja z zarządzaniem wiedzą nie jest obsługiwana. |
| IsMailMergeEnabled | prawidłowy | |
| IsManaged | prawidłowy | |
| IsMappable | prawidłowy | |
| IsOfflineInMobileClient | nieprawidłowe | Zawsze fałszywe, wartości tabel wirtualnych nie są buforowane do użytku w trybie offline. |
| IsOneNoteIntegrationEnabled | prawidłowy | |
| IsOptimisticConcurrencyEnabled | nieprawidłowe | Zawsze fałszywe, współbieżność musi być zaimplementowana w źródle danych. |
| IsPrivate | prawidłowy | |
| IsQuickCreateEnabled | prawidłowy | |
| IsReadOnlyInMobileClient | prawidłowy | |
| CzyMożnaZmienićNazwę | prawidłowy | |
| IsSLAEnabled | nieprawidłowe | Zawsze FALSE |
| IsStateModelAware | nieprawidłowe | |
| IsValidForAdvancedFind | prawidłowy | |
| IsValidForQueue | prawidłowy | |
| IsVisibleInMobile | prawidłowy | |
| IsVisibleInMobileClient | prawidłowy | |
| Keys | nieprawidłowe | Klucze alternatywne nie są obsługiwane |
| LogicalCollectionName | prawidłowy | |
| LogicalName | prawidłowy | |
| ManyToManyRelationships | prawidłowy | |
| ManyToOneRelationships | prawidłowy | Nieobsługiwane między dwiema tabelami wirtualnymi. |
| MetadataId | prawidłowy | |
| MobileOfflineFilters | nieprawidłowe | Zawsze fałszywe, użycie w trybie offline nie jest obsługiwane. |
| ObjectTypeCode | prawidłowy | |
| OneToManyRelationships | prawidłowy | |
| OwnershipType | nieprawidłowe | Zawsze OrganizationOwned |
| PrimaryIdAttribute | prawidłowy | |
| PrimaryImageAttribute | prawidłowy | |
| PrimaryNameAttribute | prawidłowy | |
| Privileges | nieprawidłowe | |
| RecurrenceBaseEntityLogicalName | nieprawidłowe | |
| ReportViewName | nieprawidłowe | |
| SchemaName | prawidłowy | |
| SyncToExternalSearchIndex | nieprawidłowe |
Zmiany zachowania właściwości definicji kolumny
W poniższej tabeli wyjaśniono, jak zachowanie standardowych właściwości AttributeMetadata jest modyfikowane podczas stosowania do tabel wirtualnych. Niektóre właściwości nie są prawidłowe dla tabel wirtualnych, natomiast inne są ograniczone w zakresie lub wartości.
| Właściwość metadanych | Czy dotyczy? | Notatki |
|---|---|---|
| ColumnNumber | nieprawidłowe | |
| DeprecatedVersion | prawidłowy | |
| Description | prawidłowy | |
| DisplayName | prawidłowy | |
| EntityLogicalName | prawidłowy | |
| ExtensionData | nieprawidłowe | |
| HasChanged | prawidłowy | |
| InheritsFrom | prawidłowy | |
| IntroducedVersion | prawidłowy | |
| IsAuditEnabled | nieprawidłowe | Zawsze fałszywe, inspekcja nie jest obsługiwana. |
| IsCustomAttribute | prawidłowy | |
| IsCustomizable | prawidłowy | |
| IsFilterable | prawidłowy | |
| IsGlobalFilterEnabled | prawidłowy | |
| IsLogical | prawidłowy | |
| IsManaged | prawidłowy | |
| IsPrimaryId | prawidłowy | |
| IsPrimaryName | prawidłowy | |
| CzyMożnaZmienićNazwę | prawidłowy | |
| IsSearchable | prawidłowy | |
| IsSecured | nieprawidłowe | Zawsze wartość false, zabezpieczenia na poziomie pola nie są obsługiwane. |
| IsSortableEnabled | prawidłowy | |
| IsValidForAdvancedFind | prawidłowy | |
| IsValidForCreate | prawidłowy | |
| IsValidForRead | prawidłowy | |
| IsValidForUpdate | prawidłowy | |
| LinkedAttributeId | prawidłowy | |
| LogicalName | prawidłowy | |
| MetadataId | prawidłowy | |
| RequiredLevel | prawidłowy | |
| SchemaName | prawidłowy | |
| SourceType | nieprawidłowe | Zawsze 0, obliczane lub zbiorcze wartości nie są obsługiwane. |
Zobacz także
Rozpocznij pracę z jednostkami wirtualnymi
Niestandardowi dostawcy danych tabel wirtualnych
Przykład: wtyczka ogólnego dostawcy danych dla wirtualnej tabeli