Egzamin MB2-634 – Extending Microsoft Dynamics CRM 4.0

Zgodnie z tradycją, po zdaniu egzaminu powinienem podzielić się wrażeniami z niego :) . Niniejszym to czynię.

Egzamin „MB2-634 – Extending Microsoft Dynamics CRM 4.0″ został opublikowany dość niedawno, bo 16 października 2008. Według Microsoft’u ciągle jeszcze jest „in development”. Spodziewacie się pewnie kolejnej recenzji podobnej do opisu egzaminu „MB2-632 – Microsoft Dynamics CRM 4.0 Applications” znajdującej się tutaj. Na szczęście o MB2-634 można napisać trochę dobrego…

Przede wszystkim egzamin rzeczywiście porusza „życiowe” kwestie związane z wszelkiego rodzaju rozszerzaniem Dynamics CRM 4.0 – jest kilka pytań o web services, są pytania o plug-in’y, custom workflow activities, są pytania o JScript i client side development. Ogólnie egzamin zdaje się sprawdzać bardziej doświadczenie niż pamięć. I to jest ok. Zastanawia mnie jednak facscynacja autorów pytań „wielo-organizacyjnością” (multi-tenancy) CRM’a. Sporo pytań odnosi się wprost do kwestii programowania w środowisku wielu organizacji – od tego jak propagują się dostosowania po to jak korzystać z usług sieciowych w takim środowisku. Nie wiem czy to jest wiedza niezbędna, ale niech będzie.

Oczywiście, jak w każdym egzaminie, nie obyło się bez 3-5 pytań „z kosmosu”. I tych z rodzaju „wybierz 2 odpowiedzi” a odpowiedzi było 3 albo 4. I takich gdzie komuś zabrakło umiejętności pisania po angielsku. Ale 3-5 pytań to nie 35, jak w „CRM 4.0 Applications” :) . No i egzamin jest ciągle „in development”, więc można to wybaczyć.

Ogólnie egzamin do łatwych nie należy i nie polecam podchodzenia do niego bez doświadczenia w oprogramowywaniu Dynamics CRM 4.0.

List Web part Dynamics CRM 4.0 dla WSS i MOSS

Wreszcie jest!!! Zespół projektowy poinformował wczoraj o wypuszczeniu długo oczekiwanego znanego z CRM 3.0 komponentu w wersji dla Dynamics CRM 4.0. Mianowicie – List Web Part for Microsoft Dynamics CRM 4.0. Jest to web part umożliwiający w Windows SharePoint Services albo w MOSS 2007 oglądanie danych z systemu CRM. Jest w pełni konfigurowalny, można wybrać organizację, z której dane ma pokazywać i będzie obsługiwał wszystkie języki, w których dostępny jest Dynamics CRM 4.0. Jest do ściągnięcia tutaj: http://www.microsoft.com/downloads/details.aspx?FamilyID=3b6eb884-ec15-4288-a2a3-d0b47e057458&DisplayLang=en. I wygląda tak:

List Webpart for Dynamics CRM 4.0

Impersonacja plug-in’ów w Dynamics CRM

Konieczność impersonacji (użycia poświadczeń innego uprawnionego użytkownika) w kodzie plug-in’ów jest dość powszechna. Często bowiem zdarza się, że kod uruchamiany wewnątrz plug-in’u powinien być uruchamiany za pomocą konkretnego konta (np. dlatego, że konto to ma dostęp do zewnętrznego systemu).

Sytuacja domyślna:

Należałoby zacząć od kontekstu w jakim uruchamiane są plug-in’y. Otóż, plug-in’y zawsze domyślnie uruchamiają się w kontekście konta, na którym działa pula aplikacji serwera CRM. To znaczy, że w większości wypadków kod będzie działał wykorzystując konto „NETWORK SERVICE”, które w Dynamics CRM reprezentowane jest jako użytkownik „SYSTEM”.

Impersonacja innego użytkownika:

Aby użyć poświadczeń innego użytkownika, możemy zmienić konto, na którym zadziałają plug-in’y. Możemy to zrobić podczas rejestracji plug-in’u. Operacja polega na wybraniu w narzędziu do rejestracji plug-in’ów konta, które ma być użyte do wykonania kodu albo ustawienie tego konta jako wartości pola impersonatinguserid:

Impersonacja w plug-in'ie

Aby użyć wybranego podczas rejestracji konta w plug-in’ie musimy utworzyć proxy usługi sieciowej, wykorzystując metodę obiektu context:

 ICrmService naszWebService = (ICrmService)context.CreateCrmService(true);

Jeśli zostawimy puste pole impersonatinguserid i wywołamy powyższą metodę, użyjemy poświadczeń aktualnie zalogowanego użytkownika, a więc tego, którego działanie wywołało plug-in. Jeśli w czasie działania (runtime plug-in impersonation) chcielibyśmy zmienić poświadczenia z wybranego podczas rejestracji konta na użytkownika, który uruchomił plug-in, możemy utworzyć web service z następującym parametrem:

ICrmService naszWebService = (ICrmService)context.CreateCrmService(context.InitiatingUserId);

Rollup 1 dla Dynamics CRM 4.0 już jest!

I to już od ponad dwóch tygodni. Piszę dopiero teraz z dwóch przyczyn – wreszcie mam trochę czasu i wreszcie udało mi się sprawdzić czy system w ogóle działa po zainstalowaniu Rollup’a. I okazuje się, że działa :) .

Rollup 1 dla Dynamics CRM 4.0 to taki „service pack” dla CRM’a – zawiera kilkadziesiąt poprawek. Część z nich była już wcześniej dostępna w postaci odpowiednich KB, a część jest zupełnie nowa. Tak czy inaczej, warto Rollup’a zainstalować. Naprawia bowiem kilka często pojawiających się błędów, od błędów JScriptu nagle pojawiających się w Outlook’u, przez brak przypisania spraw w niektórych przypadkach do konretnych użytkowników aż po zawieszanie się klienta dla Outlook. Może Wam pomóc! Mi pomógł…

Pamiętajcie, że Rollup jest dostępny osobno dla serwera Dynamics CRM, dla klienta Dynamics CRM dla Outlook i dla Email Router’a!

Rollup 1 jest do ściągnięcia stąd: http://www.microsoft.com/downloads/details.aspx?FamilyID=57c6267b-3b13-49dd-bfed-3cc83633aea7&displaylang=en, a opis wszystkich zawartych poprawek jest tu: http://support.microsoft.com/Kb/952858