Rollup 2 dla Microsoft Dynamics CRM 4.0 niecałe 2 miesiące po Rollup 1

Tak, zgadza się. Pod koniec listopada, opublikowany został Rollup 1, a już 15 stycznia zespół Sustaining Engineering wydał kolejny patch. Microsoft Dynamics CRM 4.0 Rollup 2 to zbiór kilkudziesięciu poprawek dla systemu, klienta Outlook i Email Router’a. Rollup 2 zawiera wszystkie poprawki z Rollup 1 oraz inne zwiększające wydajność Dynamics CRM. Więcej informacji i możliwość ściągnięcia Rollup’u tutaj: http://www.microsoft.com/downloads/details.aspx?familyid=aa671769-61e9-45c4-919f-c88199aa4241&displaylang=en&tm

Dodanie linka do zewnętrznej strony w menu Dynamics CRM

Ostatnio gdzieś na forach po raz któryś z rzędu pojawiło się pytanie jak dodać do menu Microsoft Dynamics CRM link do zewnętrznej strony? Menu aplikacji oczywiście można dostosowywać. W tym celu wykorzystuje się plik mapy witryny, czyli SiteMap.xml. Poniżej są kroki, które pozwolą Wam dodać oczekiwany link do menu:

1. Aby móc zmenić interfejs, musimy najpierw wyeksportować plik SiteMap. W tym celu z menu „Ustawienia„, wybieramy „Dostosowywanie” i „Eksportowanie dostosowań„:

Microsoft Dynamics CRM - Eksport dostosowań

Microsoft Dynamics CRM - Eksport dostosowań

Microsoft Dynamics CRM – ekspor dostosowań

2. Z listy wybieramy „Mapa witryny” i klikamy „Eksportowanie wybranych dostosowań”:

Microsoft Dynamics CRM - SiteMap

Microsoft Dynamics CRM - SiteMap

3. Wyeksportowany plik rozpakowujemy i otwieramy XML w edytorze. Teraz w miejscu, w którym chcemy dodać link (musi być w elemencie „Group„), wstawiamy odpowiedni element typu SubArea z URL do zewnętrznej strony. W pokazywanym przypadku, wstawiam link w module „Marketing”, tuż pod linkiem „Potencjalni klienci”:

<Group Id=”MA”>
          …
          <SubArea Id=”nav_leads” Entity=”lead” DescriptionResourceId=”Lead_SubArea_Description” />
          <SubArea Id=”Custom_SubArea” Url=”http://www.crmblog.pl„>
            <Titles>
              <Title LCID=”1045″ Title=”Polski tytuł”/>
              <Title LCID=”1033″ Title=”English title”/>
            </Titles>
          </SubArea>

4. Zapisujemy plik XML i importujemy go z powrotem do systemu, za pomocą „Importowania dostosowań”, analogicznie do mechanizmu eksportu.

5. Kiedy odświeżymy aplikację, możemy zobaczyć link do strony w wybranym przez nas miejscu:

Microsoft Dynamics CRM - SiteMap link

Microsoft Dynamics CRM - SiteMap link

Co to za klasa ten Customer?

Customer to jedna z klas dotępnych w Microsoft Dynamics CRM SDK (w assembly i poprzez web service) i jednocześnie koncepcyjny typ obiektów, które możemy w niektórych przypadkach przypisywać do rekordów. O co dokładnie chodzi?

W skrócie, Customer to typ referencyjny wskazujący obiekt typu account albo contact. Dzięki zastosowaniu takiej klasy, możliwe jest np. tworzenie szans sprzedaży i wstawienie do pola „Potencjalny Klient” obiektu typu account (konto) lub contact (kontakt). Nie trzeba mieć więc dwóch różnych pól – jednego wykorzystywanego jeśli klient byłby kontaktem, a drugiego jeśli klient byłby kontem. Jeden z najbardziej popularnych przykładów wykorzystania typu Customer to właśnie pole customerid w szansie sprzedaży (opportunity). Pole to zawiera GUID konta lub kontaktu, ale nie tylko. Jak więc dowiedzieć się z jakim obiektem mamy do czynienia? Bardzo prosto – ponieważ typ Customer dziedzidzy po CrmReference, pozwala przechowywać nie tylko GUID, ale i nazwę oraz typ rekordu. Dlatego, żeby dowiedzieć się z jakim obiektem mamy do czynienia w przypadku customerid (lub wszędzie tam, gdzie jest relacja typu Customer), musimy sprawdzić wartość właściwości type:

Customer c = naszaSzansaSprzedazy.customerid;
string typObiektu = c.type;    // tutaj jest informacje o typie (account lub contact)
string guidObiektu = c.Value;    // tutaj jest GUID wskazywanego obiektu

Aby pobrać teraz dane o obiekcie wskazywanym przez customerid wystarczy, że użyjemy np. metody Retrieve, wykorzystując znaleziony typ i GUID obiektu:

_naszCRMService.Retrieve(typObiektu, guidObiektu, new AllColumns());

Należy pamiętać, że NIE ma możliwości konwertowania obiektów typu Customer  do np. konta (tak naprawdę można to osiągnąć wykorzystując wewnętrzną klasę SDK – Moniker, ale to nie tego typu konwersja). Tzn, że nie można zrobić czegoś takiego:

account acc = (account)naszaSzansaSprzedazy.customerid;    // to nie zadziala!

Ograniczenia typu Customer:

Podstawowe ograniczenie tego typu to brak możliwości tworzenia nowych relacji wiążących Customer z innymi encjami. Tylko obecne w systemie relacje (m.in. szansa sprzedaży -> Customer, sprawa -> Customer) mogą korzystać z tego typu. Dodatkowe ograniczenie to fakt, że nie można zobaczyć tego typu np. w widokach, bo nie jest to typ encji, jak account czy contact.

Paul Greenberg pod wrażeniem Dynamics CRM 4.0

Jakiś czas temu Microsoft zorganizował w USA pierwszy „Microsoft Dynamics CRM Incubation Week”, podczas którego zaproszono 5 firm z różnym doświadczeniem w Dynamics CRM na 5-dniowe warsztaty. W ich trakcie każda firma miała zapoznać się z platformą Dynamics CRM i stworzyć jakieś rozwiązanie. Mentorem był, poza przedstawicelami Microsoftu, Paul Greenberg – ekspert światowej klasy w zakresie systemów CRM ogólnie, autor książki „CRM at the speed of light” i „trochę” przeciwnik Microsoftu :) . I co ciekawe, po tych warsztatach na swoim blogu opisał swoje wrażenia. Nie mógł się nadziwić, że podczas 5 dni, kilka osób o różnym doświadczeniu zbudowało aplikacje, które „działały i były gotowe do sprzedawania”. Napisał mniej więcej tak:

„What I found amazing about this whole endeavor is that each of these companies, with widely varying missions and experience – some with no knowledge of the Microsoft Dynamics CRM platform – managed to not only do a good presentation in five days, showing at least some understanding of the Microsoft Dynamics CRM platform and at least a rudimentary business plan associated with that – but they actually built an application that functioned in five days. Yeah, man.”

Później napisał jeszcze, że sam nie spodziewał się, że Dynamics CRM to platforma, bo postrzegał ją jako zamknięty produkt. A tu proszę! :) Fajne jest to, że mimo iż Greenberg do tej pory raczej nie dawał szans Dynamics CRM jako rozszerzalnej platformie, po tygodniu jej obserwacji i dokładnego zapoznania, zmienił zdanie. Cały post Greenberg’a jest tu: http://the56group.typepad.com/pgreenblog/2008/12/microsoft-gives.html.