Berechnete und Rollupattribute
Veröffentlicht: Januar 2017
Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Berechnete und Rollup-Attribute befreien den Benutzer von manuellen Berechnungen und lassen ihn sich auf die Arbeit konzentrieren. Systemadministratoren können jetzt ein Feld leicht definieren, das den Wert vieler allgemeiner Berechnungen enthält, ohne mit einem Entwickler arbeiten zu müssen. Entwickler können die Plattformfunktionen auch dazu nutzen, diese Berechnungen anzustellen, anstatt dies im eigenen Code zu tun.
Video: Rollup und berechnete Felder in Microsoft Dynamics CRM 2015
In diesem Thema
Gemeinsame Elemente und Eigenschaften
Beechnete Attribute
Rollup-Attribute
SourceTypeMasks-Enumeration
Gemeinsame Elemente und Eigenschaften
Berechnete und Rollupattribute haben einige gemeinsame Elementeund Eigenschaften, z. B.:
Sie sind schreibgeschützt.
Sie sind nicht für den Benutzer spezifsich. Die berechnung wird mit einem Systembenutzerkontos ausgeführt, sodass die Werte auf Datensätz basieren können, für die der Benutzer ansonsten nicht über Rechte zum Angezeigen verfügt, wie Attribute, für die die Sicherheit auf Feldebene aktiviert ist.
Alle Attribute, die von AttributeMetadata erben, haben eine Eigenschaft SourceType, die die Werte enthalten kann, die in der folgenden Tabelle aufgeführt sind.
Wert |
Beschreibung |
---|---|
NULL |
Kein gültiger Typ für ein zu berechnendes Attribut, oder Rollupattribut. |
0 |
Einfaches Attribut. Das Attribut ist nicht als berechnetes oder Rollupattribut definiert. |
1 |
Beechnetes Attribut |
2 |
Rollup-Attribut |
Berechnete und Rollupattribute basieren auf vorhandenen Attributtypen, die von AttributeMetadata erben. Die folgenden Typen von Attribute haben neue Eigenschaften:
Jeder dieser Typen von Attributen hat die folgenden Eigenschaften, um von Berechnungen und Rollups zu unterstützen.
Eigenschaft |
Definition |
---|---|
FormulaDefinition |
Enthält die XAML-Definition der Formel, die verwendet wird, um die Berechnung oder den Rollup ausführen. Die einzige unterstützte Möglichkeit, dies zu ändern, ist durch den Anwendungsformeleditor. Informationen zum Konfigurieren der Formeln für diese Attribute finden Sie in den folgenden Themen im Anpassungs-Handbuch: Definieren der Rollupfelder und Definieren berechneter Felder. |
SourceTypeMask |
Der Bitmaskenwert dieser schreibgeschützten Eigenschaft beschreibt die Typen von Quellen, die in der Formel des berechneten Attributs verwendet wird, wenn die Formel eines berechneten Rollupattributs ungültig ist.
Hinweis Eine oder mehrere dieser Bedingungen können für ein beliebiges berechnetes oder Rollupfeld zutreffen Da dies ein Bitmaskenwert ist, finden Sie es möglicherweise hilfreich, SourceTypeMasks-Enumeration zu verwenden, wenn Sie bitweise Vorgänge ausführen. |
Beechnete Attribute
Berechnete Attribute werden in Echtzeit berechnet , sobald sie abgerufen werden. Berechnete Attribute können mithilfe verschiedener Datentypen verfasst werden. Beispielsweise kann ein ganzzahliges berechnetes Attribut auf Werte von den Dezimalzahl- oder Währungsattributen verweisen.Weitere Informationen:TechNet: Definieren berechneter Felder.
Berechnete Attributwerte sind sind in der Plug-in-Abruf-Pipeline verfügbar. Bild des Entitätsdatensatzes aktualisieren oder erstellen enthält oder den berechneten Attributwert in Phase 40.Weitere Informationen:Ereignisausführungspipeline
Einschränkungen
Sie können die Werte in berechneten Attributen, die auf eine verknüpfte Entität, ein anderes berechnetes Attribut oder einen logischen Wert in der gleichen Entität verweisen, nicht verwenden, um die Daten zu sortieren, die durch eine Abfrage zurückgegeben werden. Obwohl der Abfrage angeben kann, dass die Ergebnisse mithilfe eines berechneten Attributes geordnet werden sollen, wird die Sortierreihenfolge ignoriert es wird kein Fehler ausgelöst. Wenn das berechnete Attribut nur auf einfache Werte im gleichen Datensatz verweist, funktioniert die Sortierung normal. Sie können die Quellen bestimmen, die in einem berechneten Feld verwendet werden, indem Sie die Eigenschaft SourceTypeMask auf den Attributmetadaten verwenden.Weitere Informationen:Logische Attribute
Nur Attribute von einer unmittelbar übergeordneten Entität können in einem berechneten Attribut verwendet werden.
Gespeicherte Abfragen, Diagramme und Visualisierungen können über maximal 10 eindeutige berechnete Attribute verfügen.
Berechnete Attribute können auf andere berechnete Attribute in ihrer Formel verweisen, sie können jedoch nicht auf sich selbst verweisen.
Berechnete Attribute haben keine Werte, wenn ein Benutzer mit Microsoft Dynamics 365 für Outlook sich im Offlinemodus befindet.
MaxValue und MinValue-Metadateneigenschaften können nicht auf berechnete Attribute festgelegt werden.
Rollup-Attribute
Da Rollupattribute in der Datenbank weiter bestehen, können sie zum Sortieren oder Filtern genauso wie regulären Attribute verwendet werden. Eine Art von Prozess oderPlug-in verwendet den letzten berechneten Wert des Attributs. Rollupattributwerte werden asynchron durch geplante Systemaufträge berechnet. Administratoren legen fest, wann ein Auftrag ausgeführt wird, oder sie halten den Auftrag an. Standardmäßig wird jedes Attribut stündlich aktualisiert.Weitere Informationen:TechNet: Definieren von Rollupfeldern.
Wenn ein Rollupattribut erstellt oder aktualisiert wird, wird ein Auftrag Massenberechnen von Rollupfeldern geplant, um in 12 Stunden ausgeführt zu werden. Die 12-stündige Verzögerung dient dazu, diesen ressourcenintensiven Vorgang zu einer Zeit auszuführen, in der die Benutzer am wenigsten betroffen sind. Wenn der Vorgang abgeschlossen ist, wird automatisch geplant, ihn in 10 Jahren in der Zukunft auszuführen. Liegt ein Problem mit der Berechnung vor, wird dieses mit dem Systemauftrag gemeldet. Suchen Sie den Systemauftrag in Einstellungen > Systemaufträge, um Felder bei Rollupfeldern zu suchen.
Tipp
Als Entwickler, der eine Lösung in einer Entwicklungsumgebung testet, sollten Sie nicht 12 Stunden warten. Sie können dies beschleunigen. In der Liste Systemaufträge verwenden Sie die Ansicht Seriensystemaufträge, um die Liste zu feltern und den Auftrag Massenberechnen von Rollupfeldern zu suchen. Wenn der Auftrag ausgewählt ist, verwenden Sie Weitere Aktionen > Später durchführen, und legen Sie die Uhrzeit eine nähere Zeit fest.
Wenn Sie die Erstellung eines neuen Auftrag Meassenberechnete Rollupfelder programmgesteuert auslösen möchten, rufen Sie das Rollupattribut für AttributeMetadata mit vRetrieveAttributeRequest ab und verwenden Sie UpdateAttributeRequest, um das Attribut zu aktualisieren, ohne Änderungen vorzunehmen.
Der Auftrag Massenberechnete Rollupfelder triit auf, sobald eine Lösung, die Rollupattribut enthält, importiert wird. Dabei wird davon ausgegangen, dass Sie eine Lösung in einer Zeit installieren, die sich auf Benutzer nicht nachteilig auswirkt.
Jedes Rollupattribut für eine Entität enthält auch zwei unterstützende Attribute für das Rollupattribut:
<attribute SchemaName>_Date: DateTime - wann der Rollup zuletzt berechnet wurde.
<attribute SchemaName>_State: Ganze Zahl - der Status der Rollupberechnung.Weitere Informationen:Rollupstatuswerte
Rollupstatuswerte
Der Status der Rollupfeldberechnung ist im entsprechenden Attribut <attribute SchemaName>_State und in der CalculateRollupFieldResponse.FieldState-Eigenschaft verfügbar. Werte, die den Status angeben, sind in der folgenden Tabelle aufgeführt.
Statuswert |
Beschreibung |
---|---|
0 |
NotCalculated: Der Attributwert muss noch berechnet werden. |
1 |
Calculated: Der Attributwert wurde anhand der letzten Aktualisierungszeit im Attribut <attribute SchemaName>_Date berechnet. |
2 |
OverflowError: Attributwertberechnung führte zu einem Überlauffehler. |
3 |
OtherError: Die Attributwertberechnung schlug aufgrund eines internen Fehlers fehl, die nächste Ausführung des Berechnungsauftrags wird dies wahrscheinlich beheben. |
4 |
RetryLimitExceeded: Die Attributwertberechnung schlug fehl, weil die maximale Anzahl von Wiederholungsversuchen, den Wert zu berechnen, wahrscheinlich aufgrund der großen Anzahl von Parallelitäts- und Sperrkonflikten, überschritten wurde. |
5 |
HierarchicalRecursionLimitReached: Die Attributwertberechnung schlug fehl, da die maximale Hierarchientiefengrenze für die Berechnung erreicht wurde. |
6 |
LoopDetected: Die Attributwertberechnung schlug fehl, da eine Schleife in der Hierarchie des Datensatzes erkannt wurde. |
Den Wert eines berechneten Rollupfeldwert sofort abrufen
Rollupattribute unterstützen eine CalculateRollupField-Nachricht, die Entwickler verwenden können, um einen Rollupattributwert bei Bedarf zu berechnen. Die Anforderung und die Antwort, zusammen mit den Mitgliedern, sind in der folgenden Tabelle aufgeführt..
Anforderung/Antwort |
Mitglieder |
---|---|
Target: EntityReference für den Datensatz. FieldName: Eine Zeichenfolge, die den logische Name des Attributs darstellt. |
|
Entity: Entity, die das Rollupattribut und die unterstützenden <attribute SchemaName>_Date und <attribute SchemaName>_State-Attribute enthält. |
Diese Nachricht ist ein synchroner Vorgang für genau das Attribut, das in der Anforderung identifiziert wird. Wenn der Wert dieses Datensatzes als Teil anderer Rollupfelder enthalten ist, nehmen die Werte dieser Felder nicht die mögliche Wert,änderung an, die durch das Inbetrachtziehen dieser Methode verursacht wurden, bis die regelmäßig geplanten asynchronen Aufträge, die diese Berechnungen ausführen, auftreten.
Einschränkungen
Rollupattribute können nicht als Workflowereignis oder Wartebedingung verwendet werden. Diese Attribute führen nicht zu dem Ereignis, Workflows auszulösen.
das ModifiedBy- und ModifiedOn-Attribut für die Entität wird nicht aktualisiert, wenn das Rollupattribut aktualisiert wird.
Ein Maximum von 100 Rollupattributen kann innerhalb einer Organisation definiert werden. Jede Entität kann maximal 10 Rollupattribute haben.
Eine Rollupattributformel kann nicht auf ein anderes Rollupattribut verweisen.
Eine Rollupattributformel kann nicht auf komplexe berechnete Attribute verweisen. Nur berechnete Attribute, die auf einfache Attribute im gleichen Datensatz verweisen, können für Rollups verwendet werden.
Eine Rollupattributformel kann keine Datensätze in n:n-Beziehungen enthalten. Es kann nur Datensätze in 1: n-Beziehungen enthalten.
Rollupattributformeln können keine 1:n-Beziehung mit der Entität ActivityPointer oder ActivityParty verwenden.
SourceTypeMasks-Enumeration
Die Eigenschaft SourceTypeMask für die Attribute, die berechnete und Rollupfelder unterstützen, enthält einen Bitmaskenwert. Um die relevanten Informationen vo dem Wert zu extrahieren, ist es hilfreich, diese Enumeration zu besitzen, wenn Sie bitweise Vorgänge ausführen. Verwenden Sie die folgende SourceTypeMasks-Enumeration, wenn Sie den SourceTypeMask-Eigenschaftswert vergleichen.
public enum SourceTypeMasks
{
/// <summary>
/// Undefined: 0 - The default value for simple and rollup attributes.
/// </summary>
Undefined = 0,
/// <summary>
/// Simple: 1 - The calculated attribute refers to an attribute in the same record.
/// </summary>
Simple = 1,
/// <summary>
/// Related: 2 - The calculated attribute refers to an attribute in a related record.
/// </summary>
Related = 2,
/// <summary>
/// Logical: 4 - The calculated attribute refers to a logical attribute.
/// </summary>
Logical = 4,
/// <summary>
/// Calculated: 8 - The calculated attribute refers to another calculated attribute.
/// </summary>
Calculated = 8,
/// <summary>
/// Rollup: 16 - The calculated attribute refers a rollup attribute.
/// </summary>
Rollup = 16,
/// <summary>
/// Invalid: 32 - The calculated or rollup attribute is invalid.
/// Typically this would be where a field refers to an attribute that no longer exists.
/// </summary>
Invalid = 32
}
Siehe auch
Video: Rollup und berechnete Felder in Microsoft Dynamics CRM 2015
Einführung in die Entitätsattribute in Microsoft Dynamics 365
TechNet: Definieren berechneter Felder
TechNet: Definieren von Rollupfeldern
Microsoft Dynamics 365
© 2017 Microsoft. Alle Rechte vorbehalten. Copyright