Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Kategorie: Leistung, Nutzung
Wirkungspotential: Hoch
Symptome
Das Abrufen unveröffentlichter Metadaten kann folgende Ursachen haben:
- Langsamere Leistung
- Benutzerverwirrung
Anweisungen
Es ist ungewöhnlich, unveröffentlichte Anpassungen abzurufen, und Sie müssen diese Anpassungen selten abrufen.
Möglicherweise müssen Sie unveröffentlichte Anpassungen abrufen, wenn Sie eine Anwendung erstellen möchten, um anpassbare Metadaten zu bearbeiten. Wenn Sie beispielsweise einen benutzerdefinierten Metadaten-Editor erstellen, müssen Sie alle nicht veröffentlichten Definitionen dieser Elemente abrufen. Wenn ein Entwickler einige Änderungen definiert, sie aber nicht veröffentlicht, muss Ihre Anwendung sie abrufen können, um sicherzustellen, dass der Entwickler die neuesten entwickelten Anpassungen abruft. Andernfalls kann es zum Verlust von unveröffentlichten Anpassungen kommen.
Wenn Sie jedoch keinen Editor erstellen oder keine explizite Notwendigkeit zum Abrufen unveröffentlichter Definitionen haben, rufen Sie nur definitionen ab, die veröffentlicht werden. Die folgenden Beispiele zeigen, wie Sie veröffentlichte Anpassungen abrufen können:
Standardverhalten
Standardmäßig werden beim Abrufen von Metadaten nur die veröffentlichten Anpassungen angezeigt.
public RetrieveAllEntitiesAttributesResponse GetAllEntitiesImplicit(IOrganizationService service)
{
var request = new RetrieveAllEntitiesRequest();
request.EntityFilters = EntityFilters.Attributes;
return service.Execute(request) as RetrieveAllEntitiesAttributesResponse;
}
Genaue Kontrolle des Verhaltens
Legen Sie die RetrieveAsIfPublished Eigenschaft explizit fest, um nur veröffentlichte Anpassungen abzurufen.
public RetrieveAllEntitiesAttributesResponse GetAllEntitiesExplicit(IOrganizationService service)
{
var request = new RetrieveAllEntitiesRequest()
{
RetrieveAsIfPublished = false
EntityFilters = EntityFilters.Attributes
};
return service.Execute(request) as RetrieveAllEntitiesAttributesResponse;
}
Problematische Muster
Die folgenden Vorgänge können unveröffentlichte Metadaten über den RetrieveAsIfPublished Parameter abrufen:
- RetrieveAllEntitiesRequest
- RetrieveAllOptionSetsRequest
- RetrieveAttributeRequest
- RetrieveEntityRequest
- RetrieveOptionSetRequest
- RetrieveRelationshipRequest
- RetrieveEntityKeyRequest
Die folgenden Beispiele zeigen, wie unveröffentlichte Anpassungen abgerufen werden:
Warnung
Vermeiden Sie diese Szenarien.
public RetrieveEntityKeyResponse GetEntityKey(IOrganizationService service, string entityName, string keyName)
{
var request = new RetrieveEntityKeyRequest()
{
EntityLogicalName = entityName,
LogicalName = keyName,
RetrieveAsIfPublished = true
};
return service.Execute(request) as RetrieveEntityKeyResponse;
}
public RetrieveRelationshipResponse GetRelationship(IOrganizationService service, Guid id)
{
var request = new RetrieveRelationshipRequest()
{
MetadataId = id,
RetrieveAsIfPublished = true
};
return service.Execute(request) as RetrieveRelationshipResponse;
}
public RetrieveEntityAttributesResponse GetEntity(IOrganizationService service, Guid id)
{
var request = new RetrieveEntityRequest()
{
MetadataId = id,
RetrieveAsIfPublished = true,
EntityFilters = EntityFilters.Attributes
};
return service.Execute(request) as RetrieveEntityAttributesResponse;
}
Web-API-Funktionen
Diese Anleitung gilt auch für die folgenden Web-API-Funktionen:
Weitere Informationen
Der Dynamics 365-Dienst ermöglicht das Abrufen bestimmter Metadaten, die veröffentlicht oder nicht veröffentlicht werden. Seit Dynamics CRM 2011 gibt der Metadatencache der Anwendung standardmäßig veröffentlichte Metadaten zurück, es sei denn, Sie legen die Eigenschaft RetrieveAsIfPublished explizit auf true fest.
Durch das Abrufen unveröffentlichter Metadaten wird der Verarbeitung der Anforderung mehr Aufwand hinzugefügt, sodass sie langsamer ausgeführt wird. Es kann auch Metadaten zurückgeben, die der Anforderer nicht erwartet. Das Abrufen unveröffentlichter Optionsetmetadaten kann z. B. einen Bezeichnungswert zurückgeben, der nicht auf der Benutzeroberfläche sichtbar ist, was zu Verwirrung für den Endbenutzer führt.
Siehe auch
RetrieveEntityRequest.RetrieveAsIfPublished-Eigenschaft
Arbeiten Sie mit Metadaten mithilfe des SDK für .NET
Verwenden der Web-API mit Metadaten
Anpassungen veröffentlichen