Microsoft Dynamics CRM 2015 | Türchen #3

Ball_Yellow_3

Hinter Tür Nummer 3 finden wir heute:

Tipps zu zusammengefassten Feldern (composite attributes) bei Script- Programmierungen in euren Anwendungen/Prozessen.

In Microsoft Dynamics CRM 2013 wurden die so genannten composite attributes eingeführt. Als Beispiel seien hier die Adressfelder genannt, die nunmehr kompakt auf der Form dargestellt werden. Ein Klick auf das Adressfeld bewirkt ein so genanntes Flyout der beteiligten einzelnen Adressfelder und es lassen sich z.B. Straße, PLZ und Ort einzeln eingeben.

Kommt es bei diesen Feldern zur Nutzung von Scripten (z.B. für Geocodierung), so gilt es den Unterschied bei der Interpretation/Verarbeitung dieser Felder in den verschiedenen Clients zu berücksichtigen. Denn die CRM for Tablet – Anwendung interpretiert die Komposit-Felder und damit dahinter liegende Scripte anders. Benötigt man z.B. die einzelnen Werte der Felder, um darauf mit Aktionen zu reagieren, so gilt es zunächst mit

Xrm.Page.context.client.getClient()

den verwendeten Client zu ermitteln und anschließend darauf entsprechend zu reagieren. Nachfolgendes Beispiel zeigt die unterschiedliche Interpretation und Ausgabe der Werte.

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);
}

Dieses Beispiel verwendet eine weitere Methode mit

Xrm.Utility.alertDialog()

HIermit solltet Ihr etwaige Verwendungen von alert() – Befehlen in eurem Code ersetzen und damit auch die Anzeige von alert()-Dialogen in allen Clients unterstützen.

Technorati Tags:

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s