Delen via


Berekende en samengetelde kenmerken

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics CRM 2015

Berekende en samengetelde kenmerken zorgen ervoor dat de gebruiker geen handmatige berekeningen hoeft uit te voeren en zich kan richten op het eigenlijke werk. Systeembeheerders kunnen nu gemakkelijk een veld definiëren dat de waarde van veelvoorkomende berekeningen bevat zonder te hoeven werken met een ontwikkelaar. Ontwikkelaars kunnen ook gebruikmaken van de platformmogelijkheden om deze berekeningen uit te voeren in plaats van dat in hun eigen code te doen.

Video: Samengetelde en berekende velden in Microsoft Dynamics CRM 2015

In dit onderwerp

Algemene elementen en kenmerken

Berekende kenmerken

Samengetelde kenmerken

SourceTypeMasks-opsomming

Algemene elementen en kenmerken

Berekende en de samengetelde kenmerken delen bepaalde algemene elementen en kenmerken, bijvoorbeeld:

  • Ze zijn alleen-lezen.

  • Ze zijn niet specifiek voor de gebruiker. De berekening wordt uitgevoerd met een systeemgebruikersaccount, zodat de waarden mogelijk zijn gebaseerd op records waarvoor de gebruiker anders geen weergavebevoegdheden heeft, bijvoorbeeld kenmerken waarvoor beveiliging op veldniveau is ingeschakeld.

Alle kenmerken die eigenschappen overnemen van AttributeMetadata hebben een eigenschap SourceType die de waarden bevat die in de volgende tabel worden weergegeven.

Waarde

Beschrijving

null

Geen geldig type kenmerk om een berekend of samengeteld kenmerk te zijn.

0

Eenvoudig kenmerk. Het kenmerk is niet gedefinieerd als berekend of samengeteld kenmerk.

1

Berekend kenmerk

2

Samengeteld kenmerk

Berekende en samengetelde kenmerken zijn gebaseerd op bestaand kenmerktypen die eigenschappen overnemen van AttributeMetadata. De volgende typen kenmerken hebben nieuwe eigenschappen:

Elk van deze typen kenmerken heeft de volgende eigenschappen ter ondersteuning van berekeningen en samentellingen.

Eigenschap

Definitie

FormulaDefinition

Bevat de XAML-definitie van de formule die wordt gebruikt voor het uitvoeren van de berekening of de samentelling. De enige ondersteunde manier om deze waarde te wijzigen is met behulp van de toepassingsformule-editor.

Voor informatie over het configureren van de formules voor deze kenmerken raadpleegt u de volgende onderwerpen in de aanpassingshandleiding: Samengetelde velden definiëren en Berekende velden definiëren.

SourceTypeMask

De bitmaskerwaarde van deze alleen-lezen eigenschap beschrijft welke typen bronnen die in de formule van berekende kenmerk worden gebruikt of als de formule van een berekend of samengeteld kenmerk niet geldig is.

  • 0: Ongedefinieerd. De standaardwaarde voor eenvoudige en samengetelde kenmerken.

  • 1: Vereenvoudigd. Het berekende kenmerk verwijst naar een kenmerk in dezelfde record.

  • 2: Gerelateerd. Het berekende kenmerk verwijst naar een kenmerk in een gerelateerde record.

  • 4: Logical. Het berekende kenmerk verwijst naar een kenmerk in dezelfde record die in werkelijkheid is opgeslagen in een andere databasetabel.Meer informatie:Logische kenmerken

  • 8: Calculated. Het berekende kenmerk verwijst naar een ander berekend kenmerk.

  • 16: Rollup. Het berekende kenmerk verwijst naar een samengeteld kenmerk.

  • 32: Invalid. Het berekende of samengetelde veld is ongeldig.

    Doorgaans is dit het geval als een veld naar een kenmerk verwijst dat niet meer bestaat.

Notitie

Een of meer van deze voorwaarden kunnen waar zijn voor elk berekend of samengeteld veld. Omdat dit een bitmaskerwaarde is, vindt u het wellicht handig om de SourceTypeMasks-opsomming te gebruiken bij het uitvoeren van bitsgewijze bewerkingen.

Berekende kenmerken

Berekende kenmerken worden berekend in realtime wanneer ze worden opgehaald. Berekende kenmerken kunnen uit verschillende gegevenstypen bestaan. Zo kan bijvoorbeeld een berekend kenmerk Geheel getal verwijzen naar waarden van de kenmerken Decimaal of Valuta.Meer informatie:TechNet: Berekende velden definiëren.

Waarden van berekende kenmerken zijn beschikbaar in de pipeline voor het ophalen van plug-ins. Nabeeld bij bijwerken of maken van entiteitsrecord bevat de berekend kenmerkwaarde in fase 40.Meer informatie:Pipeline voor gebeurtenisuitvoering

Beperkingen

U kunt geen waarden in berekende kenmerken gebruiken die verwijzen naar een gerelateerde entiteit, een ander berekend kenmerk of een logische waarde in dezelfde entiteit om gegevens te sorteren die door een query zijn geretourneerd. Hoewel uw query kan opgeven dat de resultaten moeten worden geordend via een berekend kenmerk, wordt de sorteerrichting genegeerd en wordt er geen foutbericht weergegeven. Als het berekende kenmerk alleen verwijst naar eenvoudige waarden in dezelfde record, werkt het sorteren zoals normaal. U kunt de bronnen definiëren die in een berekend veld worden gebruikt met de eigenschap SourceTypeMask in de kenmerkmetagegevens.Meer informatie:Logische kenmerken

Alleen kenmerken van een direct bovenliggende entiteit kunnen worden gebruikt in een berekend kenmerk.

Opgeslagen query's, diagrammen en visualisaties kunnen maximaal 10 unieke berekende kenmerken bevatten.

Berekende kenmerken kunnen verwijzen naar andere berekende kenmerken in hun formule, maar zij kunnen niet naar zichzelf verwijzen.

Berekende kenmerken hebben geen waarden wanneer een gebruiker met Microsoft Dynamics CRM voor Outlook offline is.

Metagegevenseigenschappen van MaxValue en MinValue kunnen niet worden ingesteld voor berekende kenmerken

Samengetelde kenmerken

Aangezien samengetelde kenmerken blijven bestaan in de database, kunnen zij worden gebruikt voor filtering of sorteren net als normale kenmerken. Elk type proces of plug-in maakt gebruik van de meest recentelijk berekende waarde van het kenmerk. Waarden van samengetelde kenmerken worden asynchroon berekend door geplande systeemtaken. Beheerders stellen in wanneer een taak wordt uitgevoerd of onderbroken. Standaard wordt elk kenmerk ieder uur bijgewerkt.Meer informatie:TechNet: Samengetelde velden definiëren.

Wanneer een samengeteld kenmerk wordt gemaakt of bijgewerkt, wordt een taak Samengeteld veld massaal berekenen gepland om over 12 uur te worden uitgevoerd. De vertraging van 12 uur is bedoeld om deze bronintensieve bewerking uit te voeren op een tijdstip waarop gebruikers er het minste last van hebben. Nadat de taak is voltooid, wordt deze gepland om 10 jaar in de toekomst opnieuw te worden uitgevoerd. Als er een probleem is met de berekening, wordt dit gerapporteerd via de systeemtaak. Zoek de systeemtaak in Instellingen > Systeemtaken om eventuele fouten met samengetelde velden te zoeken.

Tip

Als ontwikkelaar die een oplossing test in een ontwikkelingsomgeving wilt u wellicht geen 12 uur wachten. U kunt het sneller doen voorlopen. Gebruik in de lijst Systeemtaken de weergave Terugkerende systeemtaken om de lijst te filteren en de taak Samengeteld veld massaal berekenen te zoeken. Gebruik, terwijl u de taak hebt geselecteerd, de optie Meer acties > Uitstellen en stel de tijd in een waarde die eerder plaatsvindt.

Als u een nieuwe taak Samengeteld veld massaal berekenen programmatisch wilt maken, haalt u de AttributeMetadata op voor het samengeteld kenmerk met RetrieveAttributeRequest en gebruikt u UpdateAttributeRequest om het kenmerk bij te werken zonder daadwerkelijke wijzigingen aan te brengen.

De taak Samengetelde velden massaal berekenen wordt onmiddellijk uitgevoerd als een oplossing die een samengeteld kenmerk bevat wordt geïmporteerd. Hierbij wordt ervan uitgegaan dat u een oplossing installeert op een tijdstip dat gebruikers er geen last van hebben.

Elk samengeteld kenmerk voor een entiteit bevat tevens twee ondersteunende kenmerken voor het samengeteld kenmerk:

  • <attribute SchemaName>_Date: DateTime – wanneer de samentelling voor het laatst is berekend.

  • <attribute SchemaName>_State: Integer – De status van de samengetelde berekening.Meer informatie:Waarden van de samentelstatus

Waarden van de samentelstatus

De status van een berekening van een samengeteld veld is beschikbaar in het overeenkomstige kenmerk <attribute SchemaName>_State en in de eigenschap CalculateRollupFieldResponse.FieldState. Waarden die de status aangeven worden weergegeven in de volgende tabel.

Waarde van status

Beschrijving

0

NotCalculated: Kenmerkwaarde moet nog worden berekend.

1

Calculated: Kenmerkwaarde is berekend op basis van de laatste updatetijd in het kenmerk <attribute SchemaName>_Date.

2

OverflowError: Berekening van kenmerkwaarde resulteert in overloopfout.

3

OtherError: Berekening van kenmerkwaarde is mislukt vanwege een interne fout, bij de volgende uitvoering van de berekeningstaak wordt het probleem mogelijk opgelost.

4

RetryLimitExceeded: Berekening van kenmerkwaarde is mislukt omdat het maximumaantal pogingen om de waarde te berekenen is overschreden waarschijnlijk vanwege een groot aantal gelijktijdigheids- en vergrendelingsconflicten.

5

HierarchicalRecursionLimitReached: Berekening van kenmerkwaarde is mislukt omdat de maximumlimiet van de hiërarchiediepte voor berekening is bereikt.

6

LoopDetected: Berekening van kenmerkwaarde is mislukt omdat een recursieve lus in de hiërarchie van de record werd gedetecteerd.

Onmiddellijk een berekende waarde voor een samengeteld veld ophalen

Samengetelde kenmerken ondersteunen een CalculateRollupField-bericht dat ontwikkelaars kunnen gebruiken om op aanvraag de waarde van het samengeteld kenmerk te berekenen. De aanvraag en respons, samen met de leden, worden in de volgende tabel weergegeven.

Aanvraag/respons

Leden

CalculateRollupFieldRequest

Target: EntityReference voor de record.

FieldName: Tekenreeks die de logische naam van het kenmerk aangeeft.

CalculateRollupFieldResponse

Entity: Entity die het samengeteld kenmerk en de ondersteunende kenmerken <attribute SchemaName>_Date en kenmerken van <attribute SchemaName>_State bevat.

De bericht is een synchrone bewerking voor alleen het kenmerk dat in de aanvraag wordt geïdentificeerd. Als de waarde van die record wordt opgenomen als onderdeel van andere samengetelde velden, houden de waarden van deze velden geen rekening met de mogelijke waardewijziging die plaatsvindt door het aanroepen van deze methode totdat de regelmatig geplande asynchrone taken plaatsvinden die deze berekeningen uitvoeren.

Beperkingen

Samengetelde kenmerken kunnen niet worden gebruikt als werkstroomgebeurtenis of wachtvoorwaarde. Deze kenmerken resulteren niet in de gebeurtenis voor het activeren van werkstromen.

De kenmerken ModifiedBy en ModifiedOn voor de entiteit worden niet bijgewerkt als het samengeteld kenmerk wordt bijgewerkt.

Maximaal 100 samengetelde kenmerken kunnen binnen een organisatie worden gedefinieerd. Elke entiteit kan niet meer zijn dan 10 samengetelde kenmerken hebben.

Een formule voor een samengeteld kenmerk kan niet verwijzen naar een samengeteld kenmerk.

De formule voor een samengeteld kenmerk kan niet verwijzen naar complexe berekende kenmerken. Alleen berekende kenmerken die verwijzen naar eenvoudige kenmerken in dezelfde record kunnen met samengetelde kenmerken worden gebruikt.

De formule van een samengeteld kenmerk kan geen records in veel-op-veel-relaties (N:N) bevatten. Deze kan alleen records met een-op-veel relaties (1: N) bevatten.

Formules van samengetelde kenmerken kunnen geen een-op-veel (1:N) relaties gebruiken met de entiteit ActivityPointer of ActivityParty.

SourceTypeMasks-opsomming

De eigenschap SourceTypeMask voor die kenmerken die berekende en samengetelde velden ondersteunen bevat een bitmaskerwaarde. Als u de relevante informatie wilt extraheren uit de waarde, helpt het om een opsomming te hebben bij het uitvoeren van bitsgewijze bewerkingen. Gebruik de volgende SourceTypeMasks-opsomming bij het vergelijken van de waarde van de eigenschap SourceTypeMask.

 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
}

Zie ook

Video: Samengetelde en berekende velden in Microsoft Dynamics CRM 2015
Inleiding in entiteitskenmerken in Microsoft Dynamics CRM 2015
TechNet: Berekende velden definiëren
TechNet: Samengetelde velden definiëren

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht