Ζητήματα API για εικονικούς πίνακες

Δύο γενικές κατηγορίες αλλαγών στο σύστημα ορισμών πινάκων συσχετίζονται με την εισαγωγή εικονικών πινάκων (γνωστών επίσης ως εικονικών οντοτήτων) στο Microsoft Dataverse:

  • Προσθήκη νέας συγκρότησης, χώρων ονομάτων, κλάσεων και άλλων τύπων για την υποστήριξη της ανάπτυξης προσαρμοσμένων υπηρεσιών παροχής δεδομένων εικονικών πινάκων
  • Αλλαγές στην κύρια πλατφόρμα, συμπεριλαμβανομένων ορισμένων άλλων ιδιοτήτων για την υποστήριξη αντιστοίχισης εξωτερικής προέλευσης δεδομένων και τροποποίηση συμπεριφορών υπαρχουσών ιδιοτήτων πίνακα και στήλης, οι οποίες αντικατοπτρίζουν τους περιορισμούς της αρχικής υλοποίησης αυτής της δυνατότητας

Συγκρότηση SDK δεδομένων Dynamics 365

Η συγκρότηση Dynamics 365 Data SDK, Microsoft.Xrm.Sdk.Data.dll, περιέχει τύπους που βοηθούν στη δημιουργία προσαρμοσμένων υπηρεσιών παροχής δεδομένων εικονικών πινάκων. Περιλαμβάνει τους ακόλουθους χώρους ονομάτων:

Namespace Περιγραφή
Microsoft.Xrm.Sdk.Data Βασικός χώρος ονομάτων που περιέχει μερικούς συνήθεις τύπους, όπως η απαρίθμηση AllowedQueryOptions
Microsoft.Xrm.Sdk.Data.CodeGen Περιέχει και διασυνδέσεις που υποστηρίζουν δυναμική αντανάκλαση, αντιστοίχιση τύπων και δημιουργία κώδικα. Χρησιμοποιείται κυρίως από την εσωτερική μηχανή παροχής.
Microsoft.Xrm.Sdk.Data.Converters Ένα σύνολο κλάσεων για τη μετατροπή τυπικών τύπων XRM στους αντίστοιχους βασικούς τύπους .NET
Microsoft.Xrm.Sdk.Data.Exceptions Ένα σύνολο κλάσεων εξαιρέσεων που αντιπροσωπεύουν σφάλματα που μπορεί να προκύψουν κατά τη διάρκεια της επίλυσης τιμών χρόνου εκτέλεσης. Όλα προέρχονται από το Microsoft.Xrm.Sdk.SdkExceptionBase.
Microsoft.Xrm.Sdk.Data.Expressions Κλάσεις που βοηθούν στην υλοποίηση των υποστηριζόμενων μετασχηματισμών ερωτημάτων, όπως FILTER, JOIN και ORDER.
Microsoft.Xrm.Sdk.Data.Mappings και διασυνδέσεις που δημιουργούν την αντιστοίχιση από τύπους ορισμού εικονικού πίνακα σε εξωτερικούς τύπους.
Microsoft.Xrm.Sdk.Data.Visitors που υλοποιούν το μοτίβο επισκέπτη για την εκτέλεση συγκεκριμένων λειτουργιών στην παράμετρο QueryExpression που μεταβιβάζονται στην υπηρεσία παροχής δεδομένων κατά τη διάρκεια αιτήσεων RetrieveMultiple . Παρέχει συγκεκριμένη υποστήριξη για γενικό ερώτημα και επεξεργασία βάσει LINQ. Αυτές οι προέρχονται από τη Microsoft.Xrm.Sdk.Query.QueryExpressionVisitorBase.

Αυτοί οι χώροι ονομάτων βρίσκονται στη συγκρότηση που περιλαμβάνεται σε αυτό το πακέτο NuGet: Microsoft.CrmSdk.Data.

Αλλαγές στην κύρια πλατφόρμα

Οι ακόλουθες αλλαγές στους τυπικούς τύπους αναφοράς Dataverse υποστηρίζουν εικονικούς πίνακες.

Νέοι πίνακες

Το Dataverse εμφανίζει υπηρεσίες παροχής δεδομένων και προελεύσεις εικονικών πινάκων ως τους ακόλουθους πίνακες: EntityDataProvider και EntityDataSource.

Νέες ιδιότητες ορισμού πίνακα

Προστέθηκαν τέσσερις νέες ιδιότητες στην EntityMetadata κλάση:

Property Περιγραφή
DataProviderId GUID που αναγνωρίζει τη συσχετισμένη υπηρεσία παροχής δεδομένων εικονικού πίνακα
DataSourceId GUID που αναγνωρίζει τη συσχετισμένη προέλευση δεδομένων εικονικού πίνακα
ExternalName Το όνομα για αυτόν τον τύπο στην εξωτερική προέλευση δεδομένων
ExternalCollectionName Όνομα σε πληθυντικό για αυτόν τον τύπο, που χρησιμοποιείται στο περιβάλλον εργασίας χρήστη και για την υποστήριξη της πρόσβασης OData

Προστέθηκαν δύο νέες ιδιότητες στην AttributeMetadata κλάση:

Property Περιγραφή
ExternalName Το όνομα του τύπου στην εξωτερική προέλευση δεδομένων
IsDataSourceSecret Υποδεικνύει εάν το πεδίο περιέχει ευαίσθητες πληροφορίες

Η ExternalName ιδιότητα προστέθηκε επίσης στις OptionMetadata και OptionSetMetadata . Αυτά τα εξωτερικά ονόματα βοηθούν στην αντιστοίχιση εξωτερικής προέλευσης δεδομένων, καθορίζοντας το όνομα του συσχετισμένου τύπου στην εξωτερική προέλευση δεδομένων. Αυτές οι ιδιότητες χρησιμοποιούνται μόνο για εικονικούς πίνακες. Για έναν ενσωματωμένο ή τυπικό τύπο προσαρμοσμένης οντότητας, αυτά τα εξωτερικά ονόματα πρέπει να είναι null.

Δημιουργία εικονικού πίνακα

Η προσέγγιση για τη δημιουργία μέσω προγραμματισμού ενός τύπου εικονικού πίνακα διαφέρει ελαφρώς από τη δημιουργία ενός τυπικού τύπου προσαρμοσμένης οντότητας ως προς αυτό:

  • Εάν γνωρίζετε τη σχετική υπηρεσία παροχής δεδομένων (και προαιρετικά την προέλευση δεδομένων) κατά τον χρόνο δημιουργίας, καθορίστε αυτές τις τιμές.
  • Εάν δεν γνωρίζετε την υπηρεσία παροχής δεδομένων για αυτόν τον τύπο, ορίστε DataProviderId σε 7015A531-CC0D-4537-B5F2-C882A1EB65AD και ορίστε DataSourceId σε null. Πριν χρησιμοποιήσετε παρουσίες αυτού του τύπου κατά τον χρόνο εκτέλεσης, εκχωρήστε σε αυτές τις ιδιότητες κατάλληλες τιμές.

Όταν καταχωρείτε μια προσθήκη, δημιουργείτε δύο νέους πίνακες, EntityDataProvider και προαιρετικά EntityDataSource. Τα αντίστοιχα αναγνωριστικά τους, entitydataproviderid και entitydatasourceid, αντιπροσωπεύουν αυτά τα απαιτούμενα GUID. (Διαφορετικά, οι προγραμματιστές σπάνια χρειάζεται να έχουν απευθείας πρόσβαση σε αυτούς τους προσαρμοσμένους τύπους.) Σημειώστε ότι η Προέλευση δεδομένων περιέχει την ιδιότητα entitydataproviderid που πρέπει να συμφωνεί με τον αντίστοιχο τύπο DataProvider ή δημιουργείται μια εξαίρεση χρόνου εκτέλεσης.

Προειδοποίηση

Οι τυπικοί (μη εταιρικοί) πίνακες πρέπει να έχουν τις τιμές των συσχετισμένων DataProviderId τους και DataSourceId να έχουν οριστεί στις προεπιλεγμένες τιμές τους (null), διαφορετικά δημιουργείται μια εξαίρεση χρόνου εκτέλεσης. Αφού δημιουργηθεί, δεν μπορείτε να μετατρέψετε από μη εικονικό τύπο σε εικονικό τύπο ή το αντίστροφο.

Αλλαγές συμπεριφοράς ιδιότητας ορισμού πίνακα

Ο παρακάτω πίνακας περιγράφει τον τρόπο με τον οποίο αλλάζει η συμπεριφορά των τυπικών ιδιοτήτων EntityMetadata όταν τις εφαρμόζετε σε εικονικούς πίνακες. Ορισμένες ιδιότητες δεν είναι έγκυρες για εικονικούς πίνακες, ενώ άλλες είναι περιορισμένης εμβέλειας ή τιμής.

Ιδιότητα μετα-δεδομένων Ισχύει? Σημειώσεις
ActivityTypeMask άκυρος Πάντα 0
Χαρακτηριστικά βάσιμος
AutoCreateAccessTeams άκυρος Πάντα ψευδές
AutoRouteToOwnerQueue άκυρος Πάντα false, οι ουρές δεν υποστηρίζονται.
CanBeInManyToMany βάσιμος
CanBePrimaryEntityInRelationship βάσιμος
CanBeRelatedEntityInRelationship βάσιμος
ΔυνατότηταΑλλαγήςΙεραρχικήςΣχέσης άκυρος Πάντα ψευδείς, οι ιεραρχικές σχέσεις δεν υποστηρίζονται.
Μπορεί να ενεργοποιηθεί η παρακολούθηση αλλαγών; άκυρος Δεν υποστηρίζονται πάντα τιμές false, παρακολούθηση αλλαγών και ελέγχου.
CanCreateAttributes βάσιμος
CanCreateCharts άκυρος Πάντα ψευδές
CanCreateForms βάσιμος
CanCreateViews βάσιμος
ΔυνατότηταΕνεργοποίησηςΣυγχρονισμούΜεΕξωτερικόΔείκτηΑναζήτησης άκυρος Πάντα ψευδές
CanModifyAdditionalSettings βάσιμος
ΜπορείΝαΕνεργοποιήσειΡοήΕργασίας άκυρος Πάντα false, οι ροές εργασιών δεν μπορούν να ενεργοποιηθούν.
ChangeTrackingEnabled άκυρος Πάντα ψευδές
CollectionSchemaName βάσιμος
ΗμέρεςΑπόΤηνΤελευταίαΤροποποίησηΤηςΕγγραφής άκυρος Πάντα null ή 0
Περιγραφή βάσιμος
Ονομασία Συλλογής Εμφάνισης βάσιμος
Εμφανιζόμενο όνομα βάσιμος
EnforceStateTransitions άκυρος Δεν υποστηρίζονται το StateCode και το Status.
EntityColor βάσιμος
EntityHelpUrl βάσιμος
EntityHelpUrlEnabled βάσιμος
EntitySetName βάσιμος
ExtensionData άκυρος Αποδοκιμασμένη ιδιότητα
ΈχειΑλλαγεί βάσιμος
IconLargeName βάσιμος
IconMediumName βάσιμος
IconSmallName βάσιμος
Εισήχθη Έκδοση βάσιμος
IsActivity άκυρος Πάντα ψευδές, οι δραστηριότητες δεν υποστηρίζονται.
IsActivityParty άκυρος Πάντα ψευδές
IsAIRUpdated άκυρος Απαρχαιούμενος
IsAuditEnabled άκυρος Πάντα ψευδές, ο έλεγχος δεν υποστηρίζεται.
ΕίναιΔιαθέσιμοΧωρίςΣύνδεση άκυρος Πάντα false, η χρήση χωρίς σύνδεση δεν υποστηρίζεται.
IsBusinessProcessEnabled άκυρος Πάντα ψευδές, οι επιχειρηματικές διαδικασίες δεν υποστηρίζονται.
IsChildEntity άκυρος Πάντα ψευδές, όλοι οι εικονικοί πίνακες ανήκουν οργανωτικά.
IsConnectionsEnabled βάσιμος
IsCustomEntity βάσιμος
Προσαρμόσιμο βάσιμος
ΕίναιΕνεργοποιημένηΗΔιαχείρισηΕγγράφων βάσιμος
ΕίναιΟιΣυστάσειςΕγγράφωνΕνεργοποιημένες άκυρος Πάντα λάθος, αυτή η νέα δυνατότητα δεν υποστηρίζεται.
IsDuplicateDetectionEnabled άκυρος Πάντα ψευδές, αλλά ο εντοπισμός διπλοτύπων μπορεί να εκτελεστεί στην προέλευση δεδομένων.
IsEnabledForCharts περιορισμένος Μόνο για υποστηριζόμενους όρους Fetch.
ΕίναιΕνεργοποιημένοΓιαΚαταγραφή βάσιμος
IsImportable βάσιμος
IsInteractionCentricEnabled βάσιμος
IsIntersect βάσιμος
IsKnowledgeManagementEnabled άκυρος Πάντα ψευδής, η ενοποίηση διαχείρισης γνώσης δεν υποστηρίζεται.
IsMailMergeEnabled (Ενεργοποιημένη Συγχώνευση Αλληλογραφίας) βάσιμος
IsManaged βάσιμος
IsMappable βάσιμος
IsOfflineInMobileClient άκυρος Πάντα false, οι τιμές εικονικού πίνακα δεν αποθηκεύονται στο cache για χρήση εκτός σύνδεσης.
IsOneNoteIntegrationEnabled βάσιμος
IsOptimisticConcurrencyEnabled άκυρος Πάντα λανθασμένο, η παραλληλία πρέπει να υλοποιείται στην προέλευση δεδομένων.
IsPrivate βάσιμος
IsQuickCreateEnabled βάσιμος
IsReadOnlyInMobileClient βάσιμος
IsRenameable βάσιμος
IsSLAEnabled άκυρος Πάντα ψευδές
IsStateModelAware άκυρος
ΕίναιΈγκυροΓιαΠροχωρημένηΑναζήτηση βάσιμος
IsValidForQueue βάσιμος
IsVisibleInMobile βάσιμος
IsVisibleInMobileClient βάσιμος
Κλειδιά άκυρος Δεν υποστηρίζονται εναλλακτικά κλειδιά
ΛογικόΌνομαΣυλλογής βάσιμος
ΛογικόΌνομα βάσιμος
ManyToManyRelationships βάσιμος
ManyToOneRelationships βάσιμος Δεν υποστηρίζεται μεταξύ δύο εικονικών πινάκων.
MetadataId βάσιμος
MobileOfflineFilters άκυρος Πάντα false, η χρήση χωρίς σύνδεση δεν υποστηρίζεται.
ObjectTypeCode βάσιμος
OneToManyRelationships βάσιμος
ΙδιοκτησίαΤύπος άκυρος Πάντα OrganizationOwned
PrimaryIdAttribute βάσιμος
Κύρια Ιδιότητα Εικόνας βάσιμος
PrimaryNameAttribute βάσιμος
Προνόμια άκυρος
RecurrenceBaseEntityLogicalName άκυρος
ReportViewName άκυρος
SchemaName βάσιμος
SyncToExternalSearchIndex άκυρος

Αλλαγές συμπεριφοράς ιδιότητας ορισμού στήλης

Ο παρακάτω πίνακας εξηγεί πώς αλλάζει η συμπεριφορά των τυπικών ιδιοτήτων AttributeMetadata όταν τις εφαρμόζετε σε εικονικούς πίνακες. Ορισμένες ιδιότητες δεν είναι έγκυρες για εικονικούς πίνακες, ενώ άλλες έχουν περιορισμένη εμβέλεια ή τιμή.

Ιδιότητα μετα-δεδομένων Ισχύει? Σημειώσεις
Αριθμός στηλών άκυρος
Εγκαταλειμμένη Έκδοση βάσιμος
Περιγραφή βάσιμος
Εμφανιζόμενο όνομα βάσιμος
EntityLogicalName (Λογική Ονομασία Οντότητας) βάσιμος
ExtensionData άκυρος
ΈχειΑλλαγεί βάσιμος
ΚληρονομείΑπό βάσιμος
Εισήχθη Έκδοση βάσιμος
IsAuditEnabled άκυρος Πάντα ψευδές, ο έλεγχος δεν υποστηρίζεται.
IsCustomAttribute βάσιμος
Είναι Παραμετροποιήσιμο βάσιμος
Φιλτράρεται βάσιμος
IsGlobalFilterEnabled βάσιμος
IsLogical βάσιμος
IsManaged βάσιμος
IsPrimaryId βάσιμος
IsPrimaryName βάσιμος
IsRenameable βάσιμος
Δυνατότητα επιλογής IsSearchable βάσιμος
ΕίναιΑσφαλές άκυρος Πάντα ψευδές, η ασφάλεια σε επίπεδο πεδίου δεν υποστηρίζεται.
IsSortableEnabled βάσιμος
ΕίναιΈγκυροΓιαΠροχωρημένηΑναζήτηση βάσιμος
IsValidForCreate βάσιμος
IsValidForRead βάσιμος
IsValidForUpdate βάσιμος
LinkedAttributeId βάσιμος
ΛογικόΌνομα βάσιμος
MetadataId βάσιμος
ΑπαιτούμενοΕπίπεδο βάσιμος
SchemaName βάσιμος
Τύπος προέλευσης άκυρος Δεν υποστηρίζονται πάντα 0, υπολογιζόμενες τιμές ή τιμές συνάθροισης.

Δείτε επίσης

Γρήγορα αποτελέσματα με εικονικές οντότητες
Προσαρμοσμένες υπηρεσίες παροχής δεδομένων εικονικού πίνακα
Δείγμα: Προσθήκη γενικής υπηρεσίας παροχής δεδομένων εικονικού πίνακα