Scripts schrijven voor samengestelde kenmerken

 

Gepubliceerd: januari 2017

Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Sommige velden die aan een formulier worden toegevoegd kunnen meerdere gegevensitems vertegenwoordigen. Deze samengestelde kenmerken gedragen zich anders dan andere kenmerken bij weergave in de webtoepassing en u moet scripts op andere wijze schrijven om deze correct te kunnen gebruiken.

In dit onderwerp

Samengestelde kenmerken

Samengestelde kenmerken in de webtoepassing

Samengestelde kenmerken in Dynamics 365 voor tablets

De verschillen beperken

Samengestelde kenmerken

In de volgende tabel vindt u de samenstelde kenmerken:

Entiteit

Weergavenaam

Logische naam

Contact

Volledige naam

fullname

Adres 1

address1_composite

Adres 2

address2_composite

Lead

Volledige naam

fullname

Adres 1

address1_composite

Adres 2

address2_composite

User

Volledige naam

fullname

Adres

address1_composite

Ander adres

address2_composite

Account

Adres 1

address1_composite

Adres 2

address2_composite

Quote

Factuuradres

billto_composite

Verzendadres

shipto_composite

Order

Factuuradres

billto_composite

Verzendadres

shipto_composite

Invoice

Factuuradres

billto_composite

Verzendadres

shipto_composite

Samengestelde kenmerken in de webtoepassing

Als velden voor samengestelde kenmerken aan een hoofdformulier worden toegevoegd, wordt in de webtoepassing alleen het samengestelde kenmerk weergegeven. Wanneer iemand het veld bewerkt, wordt een flyout weergegeven met de afzonderlijke kenmerken van het samengestelde kenmerk. Hoewel niet expliciet toegevoegd aan het formulier in de formuliereneditor, is elk van de kenmerken die deel uitmaken van het kenmerk beschikbaar in het formulier. Hoewel u de waarde van de samengestelde waarde kunt lezen met getValue, kunt u setValue niet gebruiken om de waarde van het samengestelde kenmerk rechtstreeks te wijzigen. U moet een of meer van de kenmerken instellen waarnaar wordt verwezen door het samengestelde kenmerk.

U kunt op naam toegang krijgen tot de afzonderlijke constituerende besturingselementen die in de flyout worden weergegeven. Deze besturingselement gebruiken de volgende naamgevingsconventie: <composite control name>_compositionLinkControl_<constituent attribute name>. Als u alleen toegang wilt verkrijgen tot het besturingselement address_line1 in het besturingselement address1_composite gebruikt u: Xrm.Page.getControl("address1_composite_compositionLinkControl_address1_line1").

Samengestelde kenmerken in Dynamics 365 voor tablets

Microsoft Dynamics 365 voor tablets maakt gebruik van dezelfde formulierdefinities als worden gebruikt voor de entiteiten die samengestelde kenmerken hebben. Alleen worden deze anders geïnterpreteerd. Als een samengesteld kenmerk wordt gevonden in de formulierdefinitie, worden alle kenmerken weergegeven die deel uitmaken van het samengestelde kenmerk in deze sectie van het formulier. Een flyout is niet nodig omdat alle velden zichtbaar zijn. U kunt scripts schrijven voor het formulier om toegang te krijgen tot alle individuele kenmerken op dezelfde wijze als deze afzonderlijk aan het formulier zijn toegevoegd.

Het werkelijke samengestelde besturingselement is echter niet aanwezig op de pagina Dynamics 365 voor tablets.

De verschillen beperken

Als u toegang wilt tot het veld fullname voor de entiteiten Contact, Lead of User, is het gebruik van de methode **Xrm.Page.data.entity.**fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getPrimaryAttributeValue een gemakkelijke manier om de waarde voor dit kenmerk op te halen zonder er direct naar te verwijzen. Deze methode werkt voor zowel de webtoepassing als voor Dynamics 365 voor tablets.

Als u code hebt die de waarde van een van samengestelde kenmerken voor het adres moeten lezen, om met beide clients te kunnen werken, moet u de code scheiden via Xrm.Page.context.client.getClient zoals aangegeven in de volgende functies waarmee het opgemaakte adres wordt weergegeven via **Xrm.Utility.**72a66f93-92df-42b9-a8fd-b6125c7fe83b#BKMK_alertDialog in de webtoepassing of de Dynamics 365 voor tablets-versie van hetzelfde formulier.

function showAddressDialog() {
 var address1_compositeValue;
 if (Xrm.Page.context.client.getClient() != "Mobile") {
  address1_compositeValue = Xrm.Page.getAttribute("address1_composite").getValue();
 }
 else {
  var address1_line1 = Xrm.Page.getAttribute("address1_line1").getValue();
  var address1_line2 = Xrm.Page.getAttribute("address1_line2").getValue();
  var address1_line3 = Xrm.Page.getAttribute("address1_line3").getValue();
  var address1_city = Xrm.Page.getAttribute("address1_city").getValue();
  var address1_stateorprovince = Xrm.Page.getAttribute("address1_stateorprovince").getValue();
  var address1_postalcode = Xrm.Page.getAttribute("address1_postalcode").getValue();
  var address1_country = Xrm.Page.getAttribute("address1_country").getValue();

  // Achieve equivalent formatting
  //address1_line1
  //address1_line2
  //address1_line3
  //address1_city, address1_stateorprovince address1_postalcode
  //address1_country

  var addressText = "";
  if (address1_line1 != null) {
   addressText += address1_line1 + "\n";
  }
  if (address1_line2 != null) {
   addressText += address1_line2 + "\n";
  }
  if (address1_line3 != null) {
   addressText += address1_line3 + "\n";
  }
  if (address1_city != null) {
   addressText += address1_city + ", ";
  }
  if (address1_stateorprovince != null) {
   addressText += address1_stateorprovince + " ";
  }
  if (address1_postalcode != null) {
   addressText += address1_postalcode + "\n";
  }
  addressText += address1_country;

  address1_compositeValue = addressText;
 }
 Xrm.Utility.alertDialog(address1_compositeValue);
}

Zie ook

Code schrijven voor Microsoft Dynamics 365-formulieren
Formulier- en veldgebeurtenissen gebruiken
Het objectmodel Xrm.Page gebruiken
Scripts schrijven en fouten opsporen voor Dynamics 365 voor telefoons en tablets
Uitvoeringscontext en de formuliergebeurtenispipeline gebruiken
IFRAME en webresourcebesturingselementen op een formulier gebruiken
Beknopte naslag voor het opstellen van formulierscripts
Programmeerreferentie op de client
Xrm.Page.data.entity attribute (clientreferentie)

Microsoft Dynamics 365

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht