Delen via


Scripts schrijven voor samengestelde kenmerken

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics CRM 2015

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 CRM 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 CRM voor tablets

Microsoft Dynamics CRM 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 CRM 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.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 CRM 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.alertDialog in de webtoepassing of de CRM 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 CRM 2015-formulieren
Formulier- en veldgebeurtenissen gebruiken
Het objectmodel Xrm.Page gebruiken
Scripts voor CRM voor tablets schrijven en er fouten in opsporen
Uitvoeringscontext en de formuliergebeurtenispipeline gebruiken
Een IFRAME en webresourcebesturingselementen op een formulier gebruiken
Beknopte naslag voor het opstellen van formulierscripts
Programmeerreferentie op de client
Xrm.Page.data.entity attribute (clientreferentie)

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht