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