Scrivere script per gli attributi compositi
Data di pubblicazione: gennaio 2017
Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Alcuni campi aggiunti a un modulo possono rappresentare più elementi di dati. Tali attributi composti si comportano in modo diverso da altri attributi quando vengono visualizzati nell'applicazione Web ed è necessario scrivere script in modo diverso per utilizzarli correttamente.
In questo argomento
Attributi composti
Attributi composti nell'applicazione Web
Attributi composti in Dynamics 365 per tablet
Ridurre le differenze
Attributi composti
Nella tabella seguente sono elencati gli attributi composti:
Entità |
Nome visualizzato |
Nome logico |
---|---|---|
Contact
|
Nome completo |
fullname |
Indirizzo 1 |
address1_composite |
|
Indirizzo 2 |
address2_composite |
|
Lead
|
Nome completo |
fullname |
Indirizzo 1 |
address1_composite |
|
Indirizzo 2 |
address2_composite |
|
User
|
Nome completo |
fullname |
Indirizzo |
address1_composite |
|
Altro indirizzo |
address2_composite |
|
Account
|
Indirizzo 1 |
address1_composite |
Indirizzo 2 |
address2_composite |
|
Quote
|
Indirizzo di fatturazione |
billto_composite |
Indirizzo di spedizione |
shipto_composite |
|
Order
|
Indirizzo di fatturazione |
billto_composite |
Indirizzo di spedizione |
shipto_composite |
|
Invoice
|
Indirizzo di fatturazione |
billto_composite |
Indirizzo di spedizione |
shipto_composite |
Attributi composti nell'applicazione Web
Se i campi degli attributi composti vengono aggiunti a un modulo principale, l'applicazione Web mostrerà solo l'attributo composto. Quando qualcuno modifica il campo, appare un riquadro a comparsa che mostra i singoli attributi che costituiscono l'attributo composto. Sebbene non aggiunto in modo esplicito al modulo nell'editor di moduli, ognuno degli attributi che fanno parte dell'attributo è disponibile nel modulo. Sebbene sia possibile leggere il valore del valore composto tramite getValue, non è possibile utilizzare setValue per modificare direttamente il valore dell'attributo composto; è necessario impostare uno o più attributi a cui viene fatto riferimento dall'attributo composto.
È possibile accedere ai singoli controlli costituenti visualizzati nel riquadro a comparsa in base al nome. Questi controlli utilizzano la seguente convenzione di denominazione: <composite control name>_compositionLinkControl_<constituent attribute name>. Per accedere solo al controllo address_line1 nel controllo address1_composite è possibile utilizzare: Xrm.Page.getControl("address1_composite_compositionLinkControl_address1_line1").
Attributi composti in Dynamics 365 per tablet
Microsoft Dynamics 365 per tablet utilizza le stesse definizioni del modulo utilizzate per le entità con attributi composti, ma le interpreta in modo diverso. Se un attributo composto è disponibile nella definizione del modulo, visualizzerà tutti gli attributi che fanno parte dell'attributo composto in quella sezione del modulo. Non è necessario un riquadro a comparsa poiché tutti i campi sono visibili. È possibile scrivere script per il modulo accedendo a ognuno dei singoli attributi come se fossero stati aggiunti singolarmente al modulo.
Tuttavia, l'effettivo controllo composto non sarà presente nella pagina Dynamics 365 per tablet.
Ridurre le differenze
Se si desidera accedere al campo fullname per le entità Contact, Lead o User, è possibile recuperare facilmente il valore per questo attributo senza farvi riferimento direttamente mediante il metodo **Xrm.Page.data.entity.**fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_getPrimaryAttributeValue. Questo metodo funziona sia per l'applicazione Web che per Dynamics 365 per tablet.
Se si ha un codice che deve leggere il valore di uno degli attributi composti di indirizzo, per lavorare con entrambi i client, sarà necessario separare il codice utilizzando Xrm.Page.context.client.getClient come illustrato nella funzione seguente che visualizzerà l'indirizzo formattato utilizzando **Xrm.Utility.**72a66f93-92df-42b9-a8fd-b6125c7fe83b#BKMK_alertDialog nell'applicazione Web principale o nella versione Dynamics 365 per tablet dello stesso modulo.
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);
}
Vedere anche
Creare il codice per moduli di Microsoft Dynamics 365
Utilizzare gli eventi di modulo e di campo
Utilizzare il modello a oggetti Xrm.Page
Scrivere ed eseguire il debug di script per Dynamics 365 per telefoni e tablet
Utilizzare il contesto di esecuzione e la pipeline per gli eventi dei moduli
Utilizzare controlli IFRAME e di risorsa Web in un modulo
Riferimento rapido dello scripting dei moduli
Riferimento programmazione sul lato client
Attributo Xrm.Page.data.entity (riferimento lato client)
Microsoft Dynamics 365
© 2017 Microsoft. Tutti i diritti sono riservati. Copyright