Microsoft Dynamics CRM 2011 | Adressauswahl weiterer Adressen

Address_select_CustomerAddress

In vielen meiner Projekte werde ich immer wieder auf den Adressauswahldialog angesprochen.

Mit CRM 2011 hat sich hier der zu verwendende Quellcode leicht geändert, so dass ich in dem heutigen Artikel gern noch einmal auf die Quellcode Passagen eingehen möchte.

var parentCustomerField = Xrm.Page.getAttribute(„new_account“);
    if (parentCustomerField && parentCustomerField.getValue()) {
        var parentCustomer = parentCustomerField.getValue()[0];
         var url = ‚/‘ + Xrm.Page.context.getOrgUniqueName() +
            ‚/_controls/lookup/lookupsingle.aspx?class=BrowseCustomerAddress&objecttypes=1071&browse=1&bindingcolumns=line1%2cpostalcode&parentType=‘
            + parentCustomer.type + ‚&parentId=‘
            + parentCustomer.id + ‚&ShowNewButton=1&ShowPropButton=1&DefaultType=1071‘;
       
        var selectedAddress = window.showModalDialog(url, null, ‚dialogWidth:600px;dialogHeight:400px;resizable:yes‘);
      

Mit obigem Code lässt sich beispielsweise eine Funktion im onLoad einer Form hinterlegen. Diese Funktion wird über eine Schaltfläche gestartet und öffnet dann das Dialogfenster zur Auswahl der zu einem Kontakt oder einer Firma hinterlegten Adresse.

Dazu muss ein Feld “new_account” auf der Form existieren, in dem auf eine Firma verwiesen wird.

Dies ist noch nicht wirklich spannend. Viel interessanter wird es schon bei der Fragestellung, wie kommt man an die Auswahl heran und kann diese für weitere Funktionen verwenden.

Idealerweise würden wir gern die ID ermitteln wollen, um damit die Adressinformationen nachladen und in unsere Form übernehmen zu können.

if (selectedAddress != null) {
            var addressFields = JSON.parse(selectedAddress)
            var sLookupValue = addressFields.items[0].id;
        }

Hier hat sich die Logik der Lookups / Dialoge verändert und uns steht neuerdings ein JSON Objekt zur Verfügung. Wenn wir dieses also parsen, können wir mit .id einfach an unseren selektierten Datensatz gelangen.

Dies ist im Gegensatz zu früher viel einfacher, da wir nicht nur an die ID, sondern auch an alle anderen übergebenen Objekte herankommen.

In meinem Beispiel habe ich in sLookupValue nunmehr die ID und kann mit dieser weitere Abfragen im System starten.

 

}
else {
    alert(‚No customer selected‘);
}

Natürlich gehört der Quellcode noch vernünftig abgeschlossen, für all diejenigen von Euch, die dieses Script übernehmen oder testen wollen.

 

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