Microsoft Dynamics CRM - szybki przewodnik
Customer Relationship Management (CRM) to system do zarządzania interakcjami firmy z obecnymi i przyszłymi klientami. Często wiąże się to z wykorzystaniem technologii do organizowania, automatyzacji i synchronizacji sprzedaży, marketingu, obsługi klienta i pomocy technicznej. CRM może pomóc obniżyć koszty i zwiększyć rentowność poprzez organizowanie i automatyzację procesów biznesowych, które sprzyjają satysfakcji i lojalności klientów.
Microsoft Dynamics CRM
Microsoft Dynamics CRM to pakiet oprogramowania do zarządzania relacjami z klientami opracowany przez firmę Microsoft, który ma na celu poprawę relacji z klientami w dowolnej organizacji. Po wyjęciu z pudełka produkt koncentruje się głównie na sektorach sprzedaży, marketingu i obsługi klienta, chociaż Microsoft sprzedaje Dynamics CRM jako platformę XRM i zachęca partnerów do korzystania z jego zastrzeżonej struktury (opartej na .NET) w celu jej dostosowania. W ostatnich latach rozwinęła się również jako platforma analityczna oparta na CRM.
Rozwiązanie CRM może być używane do zwiększania produktywności sprzedaży i efektywności marketingu w organizacji, obsługi całego łańcucha obsługi klienta oraz zapewniania spostrzeżeń społecznościowych, analizy biznesowej i wielu innych gotowych do użycia funkcji i funkcji. Jako produkt Microsoft Dynamics CRM oferuje również pełne wsparcie mobilne do używania aplikacji CRM na telefonach komórkowych i tabletach.
W chwili pisania tego samouczka najnowszą wersją CRM jest CRM 2016. Jednak w tym samouczku będziemy używać wersji CRM 2015 Online, ponieważ jest to najnowsza stabilna wersja, a także często używana w wielu organizacjach. Niemniej jednak, nawet jeśli używasz innych wersji CRM, wszystkie koncepcje zawarte w samouczku nadal będą aktualne.
Oferty produktów
Microsoft Dynamics CRM jest oferowany w dwóch kategoriach -
CRM Online
CRM Online to oparta na chmurze oferta Microsoft Dynamics CRM, w której wszystkie procesy zaplecza (takie jak serwery aplikacji, konfiguracje, wdrożenia, bazy danych, licencje itp.) Są zarządzane na serwerach Microsoft. CRM Online to oferta oparta na subskrypcji, preferowana dla organizacji, które mogą nie chcieć zarządzać wszystkimi aspektami technicznymi związanymi z wdrożeniem CRM. Możesz rozpocząć konfigurację systemu w ciągu kilku dni (nie tygodni, miesięcy czy lat) i uzyskać do niego dostęp przez przeglądarkę internetową.
CRM On-Premise
Lokalny CRM to bardziej dostosowana i niezawodna oferta Microsoft Dynamics CRM, w której aplikacja CRM i bazy danych zostaną wdrożone na serwerach. Ta oferta umożliwia kontrolę wszystkich baz danych, dostosowań, wdrożeń, kopii zapasowych, licencjonowania oraz innych konfiguracji sieci i sprzętu. Ogólnie rzecz biorąc, organizacje, które chcą skorzystać z niestandardowego rozwiązania CRM, preferują wdrażanie lokalne, ponieważ oferuje ono lepsze możliwości integracji i dostosowywania.
Z funkcjonalnego punktu widzenia obie oferty oferują podobne funkcje; jednakże różnią się one znacznie pod względem realizacji. Różnice podsumowano w poniższej tabeli.
CRM Online | CRM On-Premise |
---|---|
Jest to rozwiązanie chmurowe dostarczane przez firmę Microsoft, w którym wszystkie serwery i bazy danych są zarządzane przez firmę Microsoft. | Jest to rozwiązanie lokalne dostarczane przez Microsoft, w którym serwery i bazy danych są zarządzane przez klienta. |
Możesz rozpocząć korzystanie z oferty online w ciągu kilku dni. Płacisz za użytkowników i wykorzystaną przestrzeń w ruchu. | Skonfigurowanie oferty lokalnej wymaga umiejętności technicznych, a także wystarczającej ilości czasu na skonfigurowanie instancji CRM i uruchomienie jej. |
Obsługuje stosunkowo mniej dostosowań i rozszerzeń. | Obsługuje stosunkowo więcej dostosowań i rozszerzeń. |
CRM Online nie daje możliwości ręcznego tworzenia kopii zapasowych i przywracania danych, ponieważ baza danych jest hostowana na serwerach Microsoft. Jednak firma Microsoft codziennie wykonuje kopie zapasowe bazy danych. | CRM on-premise daje pełną możliwość zarządzania bazą danych. |
CRM Online ma różne plany oparte na limitach przechowywania danych, takich jak 5 GB, 20 GB itp. | Lokalny CRM nie ma żadnych ograniczeń rozmiaru pamięci, ponieważ dane znajdują się na Twoich własnych serwerach. |
CRM Online zapewnia wbudowane funkcje, takie jak wgląd, słuchanie społecznościowe, analizy itp. | Lokalny CRM wiąże się z dodatkowymi kosztami tych funkcji. |
CRM Online obsługuje automatyczne aktualizacje do przyszłych wersji. | Lokalne aktualizacje CRM muszą zostać zainstalowane przez administratora. |
Dostęp do CRM
Dostęp do programu Microsoft Dynamics CRM można uzyskać za pomocą dowolnej z następujących opcji -
- Browser
- Telefony i tablety
- Outlook
Konkurenci produktów
Microsoft Dynamics CRM to niewątpliwie jeden z topowych produktów w przestrzeni CRM. Jednak poniżej znajdują się inne produkty, które konkurują z Microsoft Dynamics CRM.
- Salesforce.com
- Oracle
- SAP
- Sage CRM
- Sugar CRM
- NetSuite
Wersje produktu
Microsoft Dynamics CRM rozrósł się na przestrzeni lat, począwszy od wersji 1.0 w 2003 roku. Najnowsza wersja (w chwili pisania tego artykułu) to 2015. Poniżej znajduje się chronologiczna lista wydań -
- Microsoft CRM 1.0
- Microsoft CRM 1.2
- Microsoft Dynamics CRM 3.0
- Microsoft Dynamics CRM 4.0
- Microsoft Dynamics CRM 2011
- Microsoft Dynamics CRM 2013
- Microsoft Dynamics CRM 2015
- Microsoft Dynamics CRM 2016
Zacznijmy od skonfigurowania naszego środowiska CRM. Będziemy korzystać z wersji online CRM 2015, ponieważ wersja online zapewnia miesięczny bezpłatny okres próbny. W ten sposób nie będziesz musiał kupować żadnej licencji, aby nauczyć się CRM.
Note- Ponieważ Microsoft Dynamics CRM jest rozwijającym się produktem, możliwe jest, że zanim się tego nauczysz, będziesz mieć nowszą wersję produktu. W takim przypadku aplikacja może nie wyglądać dokładnie tak, jak widać na zrzutach ekranu tego samouczka. Jednak podstawowe koncepcje produktu pozostają takie same. Wygląd i nawigacja produktu mogą ulec zmianie, jednak w większości przypadków będzie można łatwo nawigować i lokalizować wymagane opcje.
Konfigurowanie konta Microsoft Dynamics CRM Online
Step 1 - Przejdź do następującego adresu URL -
https://www.microsoft.com/en-us/dynamics365/home
Jeśli w przyszłości nie zobaczysz opcji Wersja próbna za pośrednictwem tego łącza, po prostu spróbuj wyszukać w Google „Microsoft Dynamics CRM Bezpłatna wersja próbna”.
Step 2- Kliknij przycisk Wypróbuj bezpłatnie. Rozpocznie się 3-etapowy proces rejestracji, jak pokazano na poniższym zrzucie ekranu. W kroku 1 rejestracji 3-etapowej wypełnij obowiązkowe dane, takie jak imię i nazwisko, adres e-mail i język.
Step 3- Kliknij przycisk Wypróbuj bezpłatnie. Rozpocznie się 3-etapowy proces rejestracji, jak pokazano na poniższym zrzucie ekranu. W kroku 1 rejestracji 3-etapowej wypełnij obowiązkowe dane, takie jak imię i nazwisko, adres e-mail i język.
Step 4- W 3. kroku rejestracji 3-etapowej firma Microsoft potwierdzi podany numer telefonu komórkowego. W tym celu możesz podać swój numer telefonu komórkowego i kliknąć opcję Wyślij do mnie SMS-a. Następnie wyśle hasło jednorazowe do telefonu komórkowego, za pomocą którego będziesz mógł kontynuować konfigurację.
Step 5- Zostanie utworzony identyfikator użytkownika Office 365. Możesz zapisać te informacje o identyfikatorze użytkownika do późniejszego dostępu.
Po skonfigurowaniu konta otworzy się teraz pulpit nawigacyjny CRM, który będzie wyglądał mniej więcej tak.
Aby jeszcze raz podkreślić, powyższe zrzuty ekranu mogą ulec zmianie w przyszłej wersji, jednak konfiguracja środowiska będzie dość prostym procesem.
Pobieranie CRM SDK
Zestaw Software Development Kit (SDK) programu Microsoft Dynamics CRM zawiera ważne przykłady kodu, w tym kod po stronie serwera, kod po stronie klienta, rozszerzenia, wtyczki, usługi internetowe, przepływy pracy, model zabezpieczeń itp. Zasadniczo SDK zawiera wszystkie potrzebne zasoby programistyczne. aby zacząć korzystać z CRM. Niezależnie od tego, czy planujesz skonfigurować nowy projekt wtyczki, czy skonfigurować projekt usług internetowych dla CRM, SDK zapewnia podstawową architekturę i przykłady, od prostego do zaawansowanego, aby pomóc Ci rozpocząć. Przyjrzymy się teraz krokom pobierania i instalowania zestawu SDK.
Step 1- Każda wersja programu Microsoft Dynamics CRM ma własną wersję SDK. Najlepszym sposobem uzyskania prawidłowej wersji SDK byłoby wyszukanie w Google odpowiedniej wersji CRM. Na przykład, jeśli wersja CRM to 2015, spróbuj wyszukać „Microsoft Dynamics CRM 2015 SDK”.
Step 2- Po pobraniu uruchom instalację exe. Kliknij Kontynuuj.
Step 3- Poprosi Cię o wybranie lokalizacji, w której ma zostać wyodrębniony SDK. Wybierz odpowiednią lokalizację, w której chcesz zachować referencyjny zestaw SDK.
Step 4- Otwórz folder, do którego rozpakowałeś. Z tego miejsca możesz uzyskać dostęp do całej zawartości SDK.
Wniosek
W tym rozdziale skonfigurowaliśmy nasze środowisko, tworząc konto CRM Online. Następnie pobraliśmy CRM SDK, który będzie używany w kolejnych rozdziałach tego samouczka. Pamiętaj, aby zanotować poświadczenia, z którymi skonfigurowałeś konto, ponieważ będziesz ich potrzebować przy następnym logowaniu.
Cały system Microsoft Dynamics CRM jest zaprojektowany wokół następujących modułów funkcjonalnych.
- Sales
- Marketing
- Zarządzanie usługami
Te moduły funkcjonalne są często nazywane jako Work Areas.
Zrozumienie modułów funkcjonalnych CRM
Cała aplikacja CRM jest podzielona funkcjonalnie dla różnych typów użytkowników i zespołów. Stąd, jeśli organizacja korzysta z CRM do zarządzania swoimi procesami, użytkownicy z zespołu sprzedaży korzystaliby z funkcji wchodzących w skład modułu sprzedaży, a użytkownicy z zespołu marketingu - z funkcji wchodzących w skład modułu Marketing.
Wszystkie te trzy moduły funkcjonalne łączą się, aby kierować całym cyklem życia pozyskiwania nowego klienta (Marketing), sprzedawania mu usług (Sprzedaż) i utrzymywania istniejących klientów (Zarządzanie usługami).
Aby lepiej zrozumieć ten przepływ, rozważ bank, który sprzedaje swoim klientom karty kredytowe. Typowy cykl życia sprzedaży karty kredytowej klientowi byłby następujący. Na każdym etapie tego cyklu życia zobaczysz, jak spełniają swoją rolę moduły sprzedaży, marketingu i usług.
Sales & Marketing- Kierownik biura call center banku otrzymuje dane potencjalnych klientów; często nazywany potencjalnymi klientami w CRM. Te leady są rejestrowane w systemie CRM poprzez kampanie marketingowe, napędy sprzedażowe, polecenia itp.
Sales- Kierownik centrum obsługi telefonicznej komunikuje się z tymi potencjalnymi klientami poprzez rozmowy telefoniczne / e-maile / itp. Jeśli klient jest zainteresowany ofertą karty kredytowej, rekord potencjalnego klienta zostanie przekształcony w rekord szansy sprzedaży (pozyskany potencjalny klient).
Service- Gdy klient stanie się częścią systemu, firma będzie mu pomagać w płatnościach, rozliczeniach, zwrotach pieniędzy itp. Gdy klient będzie miał jakiekolwiek pytania lub wątpliwości, zadzwoni do call center i zgłosi incydenty. Dyrektor wykonawczy podejmie dalsze kroki w celu rozwiązania sprawy w celu zapewnienia klientowi wysokiej jakości usług. Te zadania wchodzą w zakres zarządzania usługami CRM.
Poruszanie się po obszarach roboczych CRM
Step 1 - Otwórz stronę główną CRM.
Step 2 - Domyślnie zobaczysz wybrany obszar roboczy Sprzedaż.
Step 3- Aby zmienić obszar roboczy, kliknij opcję Pokaż obszary robocze. Zobaczysz opcje wyboru sprzedaży, usług i marketingu.
Step 4- Kliknij Sprzedaż. Spowoduje to wyświetlenie wszystkich podmiotów należących do kategorii Sprzedaż, takich jak Konta, Kontakty, Potencjalni klienci, Szanse, Konkurenci itp. Każdy z tych podmiotów jest podzielony na kategorie według ich procesów biznesowych, takich jak Moja praca, Klienci, Sprzedaż, Zabezpieczenia itp.
Step 5 - Podobnie, jeśli klikniesz obszar roboczy Marketing, zobaczysz wszystkie jednostki związane z funkcjami biznesowymi Marketing.
Moduł sprzedaży
Moduł Sprzedaż w CRM jest przeznaczony do kierowania całym cyklem sprzedaży nowego klienta. Moduł sprzedaży składa się z następujących podmodułów -
Leads- Reprezentuje osobę lub organizację, która może być potencjalnym klientem firmy w przyszłości. To pierwszy krok w kierunku pozyskania potencjalnego klienta do systemu.
Opportunities- Reprezentuje potencjalną sprzedaż klientowi. Gdy potencjalny klient wykaże zainteresowanie ofertą, zostanie przekształcony w możliwość. Szansa zostanie wygrana lub przegrana.
Accounts- Reprezentuje firmę, z którą organizacja ma relacje. Gdy okazja wygrywa, zostaje zamieniona na konto lub kontakty.
Contacts- Reprezentuje osobę lub dowolną osobę, z którą organizacja utrzymuje relacje. Przeważnie te osoby kontaktowe są klientami organizacji (np. Wszyscy klienci banku z kartami kredytowymi). Gdy okazja wygrywa, zostaje zamieniona na konto lub kontakty.
Competitors - Zarządza wszystkimi rynkowymi konkurentami organizacji.
Products - Zarządza wszystkimi produktami oferowanymi przez organizację swoim klientom (na przykład wszystkie plany kart kredytowych).
Quotes - Formalna oferta na produkty lub usługi proponowane po określonych cenach wysłana do potencjalnego klienta (przykład, roczna wycena określonego planu karty kredytowej wysłana do klienta).
Orders - Wycena, która zostanie zaakceptowana przez klienta, zamienia się w zamówienie (na przykład spośród wszystkich planów oferowanych przez organizację możesz wybrać 6-miesięczną subskrypcję).
Invoices - Zafakturowane zamówienie generuje fakturę.
Moduł marketingowy
Moduł Marketing CRM jest przeznaczony do kierowania całym procesem marketingowym organizacji dla jej obecnych i potencjalnych klientów. Moduł Marketing składa się z następujących podmodułów -
Marketing Lists- Zapewnia sposób grupowania kontaktów, kont i potencjalnych klientów oraz interakcji z nimi poprzez wysyłanie promocyjnych wiadomości e-mail, szczegółów wydarzeń, biuletynów i innych aktualizacji dotyczących docelowych klientów. Możesz zdefiniować kryteria tworzenia list marketingowych (na przykład kontakty w wieku od 25 do 35 lat).
Campaigns - Kampanie mają na celu mierzenie skuteczności i osiągnięcie określonego rezultatu, takiego jak wprowadzenie nowego produktu lub zwiększenie udziału w rynku i mogą obejmować różne kanały komunikacji, takie jak e-mail, reklamy prasowe, reklamy na YouTube itp.
Quick Campaigns - Szybka kampania jest podobna do kampanii, ale może dotyczyć tylko jednego rodzaju aktywności.
Wszystkie powyższe moduły Marketingowe działają w ścisłej koordynacji z modułem Sprzedaż.
Moduł zarządzania usługami
Moduł zarządzania usługami CRM jest przeznaczony do koncentrowania się, zarządzania i śledzenia operacji obsługi klienta w organizacji, takich jak wspieranie usług opartych na incydentach, wspieranie klientów przy użyciu harmonogramowania usług itp.
Moduł zarządzania usługami obejmuje następujące podmoduły -
Cases (Incidents)- Obsługuje wszelkie żądania klientów, problemy lub skargi, które mają być śledzone za pośrednictwem incydentów / przypadków. Sprawa przechodzi przez różne etapy procesu rozwiązywania problemu, a następnie zostaje rozwiązana i zamknięta.
Knowledge Base - Utrzymuje główne repozytorium dla wszystkich typowych pytań i odpowiedzi, które klient często zadaje.
Contracts - Umowy działają ze sprawami wskazującymi wszystkie aktywne umowy, które ma klient.
Resources/Resource Groups- Reprezentuje ludzi, narzędzia, pomieszczenia lub elementy wyposażenia używane do świadczenia usługi. Te zasoby można wykorzystać do rozwiązania konkretnego problemu klienta.
Services - Reprezentuje wszystkie usługi, które organizacja oferuje klientom.
Service Calendar - Służy do planowania harmonogramów pracy i harmonogramów użytkowników pracujących w organizacji.
Zarządzanie aktywnością
Wszystkie opisane powyżej moduły wykorzystują moduł zarządzania aktywnością CRM. Działanie reprezentuje dowolny rodzaj interakcji z klientem, na przykład rozmowę telefoniczną, e-mail, list itp. Te działania mogą być powiązane z dowolnymi podmiotami wyjaśnionymi wcześniej, takimi jak Konto, Kontakt, Potencjalny klient, Sprawa itp. Domyślnie CRM zapewnia następujące rodzaje działań od razu po wyjęciu z pudełka -
- Połączenie telefoniczne
- Task
- Appointment
- Spotkanie cykliczne
- Letter
- Fax
- Odpowiedź kampanii
- Działania w ramach kampanii
- Działalność usługowa
- Działania niestandardowe
Wniosek
W tym rozdziale poznaliśmy trzy główne moduły CRM - sprzedaż, marketing i zarządzanie usługami. Zrozumieliśmy, jak obszary pracy są zorganizowane w CRM i jak działa cały cykl życia organizacji CRM. Przyjrzeliśmy się także modułowi zarządzania aktywnością w CRM, który pozwala na tworzenie telefonicznych, e-mailowych, faksowych i innych rodzajów działań interakcji z klientami.
Teraz, gdy mamy już funkcjonalny przegląd wszystkich modułów CRM, poznajmy i zrozummy encje i formularze w CRM.
Co to jest jednostka?
Encja służy do modelowania danych biznesowych i zarządzania nimi w CRM. Kontakty, sprawy, konta, leady, szanse, działania itp. To wszystkie podmioty, które przechowują dane. Koncepcyjnie jednostka CRM jest odpowiednikiem tabeli bazy danych. Na przykład encja Kontakty zawierałaby rekordy Kontakt, encja Sprawy przechowywałaby rekordy Spraw i tak dalej.
Możesz mieć zarówno encje gotowe do użycia (które są domyślnie dostępne w CRM), jak i encje niestandardowe (które możesz tworzyć z dostosowaniem). Załóżmy na przykład, że przechowujesz dane książek, które przeczytali Twoi klienci. W tym celu będziesz przechowywać dane klientów za pomocą encji Kontakty gotowe do użycia, ale gdzie chcesz przechowywać dane książek? Nie masz żadnego podmiotu, który może przechowywać dane dotyczące książek. W takich scenariuszach utworzysz nową encję niestandardową o nazwie Książki i powiążesz ją z istniejącą encją Kontakty.
W tym samouczku weźmy przykład przechowywania pracodawców i pracowników w CRM. Biorąc pod uwagę ten przykład, po wyjęciu z pudełka, CRM zapewniaContactpodmiot, w którym idealnie możesz przechowywać wszystkich swoich pracowników. Zapewnia równieżAccountpodmiot, w którym możesz przechowywać wszystkich swoich pracodawców. Ale ze względu na jednostki uczące się utworzymy nową niestandardową encję o nazwieEmployer (i nie używaj istniejącej encji Konto).
Tworzenie nowej jednostki
Step 1 - Kliknij górny przycisk wstążki, a następnie Settingsopcja. KliknijCustomizations opcja z sekcji Dostosowywanie (patrz poniższy zrzut ekranu).
Step 2 - Teraz kliknij opcję Dostosuj opcję System.
Otworzy się okno Domyślne rozwiązanie. Dowiesz się więcej o rozwiązaniach CRM w kolejnych rozdziałach, ale na razie będziesz korzystać z domyślnego rozwiązania CRM.
Step 3 - Rozwiń opcję Encje z lewego panelu.
Step 4 - Teraz kliknij Nowy → Jednostka.
Step 5- W formularzu podmiotu wprowadź nazwę wyświetlaną jako pracodawca i liczbę mnogą jako pracodawcy. W sekcji „Obszary, w których jest wyświetlana ta jednostka”, zaznacz opcję Sprzedaż, usługi i marketing. Zaznaczenie tych opcji spowoduje wyświetlenie nowo utworzonej jednostki na kartach Sprzedaż, Serwis i Marketing w CRM.
Step 6- Kliknij ikonę Zapisz i zamknij. Spowoduje to utworzenie nowej jednostki w bazie danych CRM za kulisami.
Step 7 - W oknie nadrzędnym Domyślne rozwiązanie zobaczysz nowo utworzony podmiot Pracodawca.
Step 8- Kliknij opcję Publikuj wszystkie dostosowania na górnym pasku wstążki. Spowoduje to opublikowanie (czyli zatwierdzenie) wszystkich zmian, które zrobiliśmy do tej pory. Możesz zamknąć to okno, klikając Zapisz i zamknij.
Tworzenie rekordów
CRM polega na zarządzaniu cennymi danymi w Twoim systemie. W tej sekcji dowiemy się, jak tworzyć, otwierać, czytać i usuwać rekordy w CRM. Będziemy kontynuować z podmiotem pracodawcą, który stworzyliśmy w poprzednim rozdziale.
Step 1 - Przejdź do siatki rekordów podmiotów pracodawcy za pomocą opcji Pokaż obszary pracy → Sprzedaż → Rozszerzenia → Pracodawcy.
Step 2 - Kliknij ikonę Nowy.
Spowoduje to otwarcie domyślnego formularza nowego pracodawcy. Jak widać, w tym domyślnym formularzu istnieje tylko jedno edytowalne pole Nazwa. Wprowadź Pracodawcę 1 w polu Nazwa. Kliknij Zapisz i zamknij.
Step 3 - W Active Employers możesz zobaczyć nowo utworzony rekord pracodawcy.
Dostęp do rekordów
Aby uzyskać dostęp do już utworzonych rekordów w CRM, przejdź do strony tej encji. W naszym przypadku przejdź do Pokaż obszary pracy → Sprzedaż → Rozszerzenia → Pracodawcy. Zobaczysz listę rekordów znajdujących się tam w siatce. Kliknij dowolny rekord pracodawcy, aby uzyskać do niego dostęp.
Aktualizacja rekordów
Po otwarciu rekordu możesz po prostu edytować wszelkie szczegóły w formularzu. Domyślnie CRM 2015 jest wyposażony w opcję automatycznego zapisywania, która zapisuje wszelkie zmiany wprowadzone w formularzu 30 sekund po zmianie. Alternatywnie możesz kliknąć Ctrl + S.
Jeśli chcesz wyłączyć funkcję automatycznego zapisywania, przejdź do Ustawienia → Administracja → Ustawienia systemu → Włącz automatyczne zapisywanie dla wszystkich formularzy i wybierz Nie.
Usuwanie rekordów
Step 1 - Wybierz jeden lub wiele rekordów, które chcesz usunąć, i kliknij Delete przycisk.
Step 2 - Potwierdź usunięcie wpisów, klikając Delete.
Wniosek
Jak widać na powyższym przykładzie, domyślny formularz pracodawcy miał tylko jedno pole. Jednak w rzeczywistych scenariuszach w formularzu będzie wiele niestandardowych pól. Na przykład, jeśli spojrzysz na przykładowy rekord Kontakt (który jest gotową jednostką CRM), będzie on zawierał wiele pól do przechowywania informacji kontaktowych, takich jak imię i nazwisko, adres e-mail, telefon, adres, sprawy itp.
W następnych rozdziałach dowiesz się, jak edytować ten domyślny formularz i dodawać do niego różne typy pól.
Zanim dowiesz się, jak dodawać pola niestandardowe do formularzy CRM, przyjrzyjmy się, jakie typy pól danych są obsługiwane przez CRM.
Typy pól
Po wyjęciu z pudełka CRM zapewnia 11 typów pól danych, które można umieszczać w formularzach -
- Pojedynczy wiersz tekstu
- Zestaw opcji (lista rozwijana)
- Dwie opcje (przycisk radiowy)
- Image
- Cały numer
- Liczba zmiennoprzecinkowa
- Liczba dziesiętna
- Currency
- Wiele wierszy tekstu
- Data i godzina
- Lookup
Poniższa tabela zawiera listę wszystkich z krótkim opisem.
Sr.No | Typ i opis pola |
---|---|
1 | Single Line of Text W tym polu można przechowywać do 4000 znaków tekstu. Możesz również określić jeden z następujących formatów: E-mail, Tekst, Obszar tekstowy, URL, Symbol paska i Telefon. Możesz ustawić maksymalną długość i tryb IME dla każdego z nich. |
2 | Option Set (Dropdown) To pole przechowuje zestaw opcji, z których każda ma wartość liczbową i etykietę. Innymi słowy, jest to rozwijane pole w CRM. Można również zdefiniować globalne zestawy opcji, których można używać w wielu formularzach. |
3 | Two Options (Radio Button) To pole zawiera dwie opcje do wyboru przez użytkownika (0 lub 1). Innymi słowy, jest to pole przycisku opcji. |
4 | Image Gdy jednostka ma pole obrazu, można ją skonfigurować do wyświetlania obrazu dla rekordu w aplikacji. |
5 | Whole Number W tym polu są przechowywane wartości całkowite z przedziału od -2 147 483 648 do 2 147 483 647. Obsługuje formaty określające, takie jak Brak, Czas trwania, Strefa czasowa i Język. Możesz także ustawić wartości minimalne i maksymalne. |
6 | Floating Point Number To pole przechowuje liczby zmiennoprzecinkowe do 5 miejsc po przecinku z dokładnością od 0,00 do 1 000 000 000,00. Możesz także ustawić wartości minimalne i maksymalne. |
7 | Decimal Number W tym polu można przechowywać do 10 miejsc po przecinku z wartościami w zakresie od -100 000 000 000,00 do 100 000 000 000,00. |
8 | Currency To pole jest używane do przechowywania wszelkich wartości walut z zakresu od 922337203685477,0000 do 922337203685477,0000. Możesz również określić dokładność jako ułamkową wycenę, dokładność waluty lub dowolną wartość z zakresu od 0 do 4. |
9 | Multiple Lines of Text To jest przewijane pole tekstowe. Możesz ustawić maksymalną liczbę znaków w tym polu. |
10 | Date and Time To pole służy do przechowywania danych związanych z datą w CRM w dwóch obsługiwanych formatach: Tylko data oraz Data i godzina. Można również określić zachowanie jako Lokalny użytkownik, Tylko data i Niezależne od strefy czasowej. |
11 | Lookup Możesz utworzyć pole odnośnika, używając relacji encji, która została już utworzona, ale nie jest jeszcze używana z innym polem odnośnika. Jeśli utworzysz pole odnośnika w formularzu encji, relacja jest generowana automatycznie. Pole odnośnika jest tworzone jako pole relacji. |
W ostatnich dwóch rozdziałach omówiono tworzenie nowych encji, tworzenie nowych rekordów i typów pól dostępnych w CRM. W tym rozdziale nauczysz się dodawać nowe pola do formularzy CRM.
Spośród 11 typów pól danych zbadanych w poprzednim rozdziale, będziesz używać trzech typów pól w swoim pracodawcy - Zestaw opcji (Lista rozwijana), Wiele wierszy tekstu i Data i godzina. Pole Zestaw opcji służyłoby do przechowywania typu pracodawcy, wiele wierszy tekstu do przechowywania krótkiego opisu pracodawcy, a pole Data i godzina do przechowywania daty założenia firmy.Note: Masz już pole Nazwa w swoim formularzu, które było typu Pojedynczy wiersz tekstu.
Dodawanie pól do formularza
Step 1 - Kliknij górny przycisk wstążki, a następnie Settingsopcja. KliknijCustomizations opcja z sekcji Dostosowywanie (patrz zrzut ekranu poniżej).
Step 2 - Teraz kliknij opcję Dostosuj system.
Otworzy się okno DefaultSolution. Dowiesz się więcej o rozwiązaniach CRM w kolejnych rozdziałach, ale na razie będziesz korzystać z domyślnego rozwiązania CRM.
Step 3 - Rozwiń opcję Encje z lewego panelu.
Step 4- Z rozwiniętych podmiotów wybierz Pracodawcę. Otworzy się szczegóły jednostki w prawym oknie. Rozwiń opcję Pracodawca z lewego panelu, a zobaczysz formularze, widoki, wykresy, pola i kilka innych opcji.
Step 5- Kliknij Pola. Otworzy się siatka pokazująca wszystkie pola, które pojawiły się domyślnie podczas tworzenia tej encji.
Step 6- Kliknij przycisk Nowy. W nowym oknie, które zostanie otwarte, wprowadź następujące dane -
Display Name - Typ pracodawcy
Name- To pole zostanie wypełnione automatycznie na podstawie wybranej nazwy wyświetlanej. Jeśli jednak chcesz to zmienić, możesz to zrobić.
Data Type- Zestaw opcji. Gdy tylko wybierzesz typ danych jako zestaw opcji, pojawi się panel opcji. Kliknięcie ikony plus (+) powoduje utworzenie nowego elementu zestawu opcji z domyślną etykietą jako pozycją i wartością domyślną 100 000 000. Możesz zmienić etykietę tej pozycji, aby dodać cztery opcje reprezentujące typy pracodawców: prywatny, rządowy, międzynarodowy i publiczny.
Step 7- Kliknij Zapisz i zamknij na górnej wstążce. Pomyślnie utworzyłeś pole Typ pracodawcy.
Step 8 - Podobnie jak w przypadku dodania pola Typ pracodawcy, dodaj trzy inne pola, jak opisano i pokazano na poniższych zrzutach ekranu -
Number of Employees - To będzie pole liczby całkowitej.
Founded On - To będzie pole Data i godzina.
Employer Description - To będzie pole zawierające wiele wierszy tekstu.
Step 9- Teraz dodaj te nowe pola do formularza pracodawcy. W tym celu kliknij Formularze w lewym panelu nawigacyjnym w sekcji Pracodawca. Spowoduje to wyświetlenie dwóch formularzy z informacjami o imieniu. Domyślnie CRM tworzy dwa formularze - Główny i Mobile-Express. Kliknij formularz główny.
Step 10 - Możesz zobaczyć nowo dodane pola w panelu Field Explorer po prawej stronie.
Step 11 - Przeciągnij i upuść te pola na karcie Ogólne.
Step 12 - Kliknij Zapisz, a następnie kliknij Publikuj.
Step 13- Możesz teraz tworzyć rekordy pracodawcy z polami aktualizacji. Przejdź do CRM Strona główna → Sprzedaż → Pracodawcy → Nowy. Nowy formularz, który otworzy się tym razem, będzie zawierał wszystkie nowe pola dodane w tym rozdziale. Możesz podać szczegóły i kliknąć Zapisz i zamknij.
Wniosek
W tym rozdziale dowiedzieliśmy się, jak pracować z formularzami CRM i jak je dostosowywać, umieszczając w nich różne typy pól. Nauczyliśmy się także dodawać dowolną liczbę pól do dowolnego formularza i układać je za pomocą różnych zakładek i sekcji zgodnie z wymaganiami biznesowymi.
Microsoft Dynamics CRM to olbrzymi produkt, który przez lata znacznie się rozwinął. Produkt posiada wiele nieszablonowych funkcjonalności, które są wbudowane w system. Nie musisz pisać żadnego kodu, aby korzystać z tych funkcji. Jedną z ważnych funkcji dostępnych po wyjęciu z pudełka jest możliwość wyszukiwania w CRM, ponieważ obsługuje on zaawansowane funkcje zapytań i filtrowania.
Szybkie wyszukiwanie
Domyślnie widok siatki każdej jednostki w CRM obsługuje funkcję szybkiego wyszukiwania za pomocą paska wyszukiwania w prawym górnym rogu. Poniżej znajduje się zrzut ekranu przedstawiający szybkie wyszukiwanie podmiotu Kontakt.
Możesz spróbować wprowadzić ciąg wyszukiwania, taki jak „Robert”, a zwróci on wszystkie pasujące rekordy.
Możesz poprzedzić słowo kluczowe wyszukiwania znakiem * (gwiazdką), aby przeprowadzić wyszukiwanie za pomocą symboli wieloznacznych.
Note - W przypadku korzystania z wersji klienta sieci Web programu Microsoft Dynamics CRM funkcja Szybkie wyszukiwanie zawsze przeszukuje wszystkie aktywne rekordy niezależnie od wybranego widoku.
Możesz dostosować Szybkie wyszukiwanie (jak dostosowywanie dowolnego innego widoku), aby zmodyfikować kryteria filtrowania, skonfigurować sortowanie, dodać kolumny widoku, dodać kolumny wyszukiwania i zmienić inne właściwości.
zaawansowane wyszukiwanie
Wyszukiwanie zaawansowane umożliwia wyszukiwanie rekordów dowolnej jednostki w CRM. Jest to jedna z najsilniejszych i jedną z najbardziej użytecznych funkcji, która jest dostępna po wyjęciu z pudełka z CRM. Ikona Wyszukiwanie zaawansowane jest wyświetlana na górnym pasku wstążki programu Microsoft Dynamics CRM niezależnie od tego, na którym ekranie się znajdujesz.
Kliknij ikonę Szukanie zaawansowane, aby otworzyć okno Szukanie zaawansowane. W tym oknie możesz wybrać encję, dla której chcesz przeszukać rekordy, zastosować kryteria filtrowania i grupowania oraz zapisać widoki wyszukiwania zaawansowanego jako widoki osobiste.
Weźmy przykład. Załóżmy, że chcesz wyszukać wszystkie kontakty z imieniem i nazwiskiem zawierające Robert i osoby rozwiedzione. Do tego -
Step 1- Wybierz Kontakty z listy rozwijanej Szukaj. To menu będzie zawierało wszystkie elementy obecne w systemie.
Step 2- Wprowadź kryteria wyszukiwania, jak pokazano na poniższym zrzucie ekranu. Możesz dodać dowolną liczbę parametrów zapytania wyszukiwania. Możesz nawet pogrupować takie kryteria za pomocą parametrów grupowych. Na przykład, jeśli chcesz przeszukać wszystkie kontakty, których imię brzmi Robert lub Marek, możesz dodać dwa kryteria wyszukiwania i zgrupować je za pomocą opcji GroupOR.
Step 3- Kliknij przycisk Wyniki. Pokaże pasujące rekordy w nowej karcie.
Step 4- Możesz także edytować kolumny, które chcesz zobaczyć w wynikach wyszukiwania, klikając Edytuj kolumny. Na przykład nasza obecna siatka zawiera tylko dwie kolumny - Imię i nazwisko oraz Telefon służbowy. Jeśli jednak chcesz, aby do tej siatki dodano dodatkową kolumnę identyfikatora adresu e-mail, możesz to zrobić za pomocą tej opcji.
Zapisywanie widoku niestandardowego
Na tym etapie, jeśli chcesz zapisać te kryteria wyszukiwania wraz z filtrami i edytowanymi kolumnami, możesz to zrobić, klikając przycisk Zapisz. Po zapisaniu możesz użyć tego zapisanego widoku, gdy jesteś na tej stronie encji.
Na przykład weźmy pod uwagę, że jako dyrektor ds. Obsługi klienta obsługujesz dwa typy klientów: normalny i premium. W związku z tym możesz utworzyć zaawansowany filtr z tymi odpowiednimi kategoriami i zapisać je jako Normalne kontakty przypisane do mnie i Kontakty premium przypisane do mnie. Następnie możesz szybko uzyskać dostęp do tych widoków bezpośrednio ze strony podmiotu Kontakt, bez przeprowadzania szybkiego wyszukiwania lub wyszukiwania zaawansowanego za każdym razem, gdy używasz systemu.
Zasoby sieciowe w CRM to wirtualne pliki internetowe, które są przechowywane w bazie danych CRM i wykorzystywane do implementacji funkcjonalności stron internetowych w CRM. Te pliki mogą mieć format HTML, JScript, Silverlight lub inne obsługiwane typy.
CRM jako produkt zawiera rozbudowany zestaw cech i funkcjonalności. Jednak w większości przypadków konieczne byłoby rozszerzenie tych istniejących funkcji, aby spełnić niestandardowe wymagania. Rozszerzanie tych funkcjonalności zazwyczaj odbywa się na dwa sposoby -
Extending on Client Side - Korzystanie z zasobów sieci Web i skryptów formularzy.
Extending on Server Side - Wtyczki, przepływy pracy i usługi internetowe (dowiemy się tej części w kolejnych rozdziałach).
Zastosowania zasobów internetowych
Jak wspomniano powyżej, rozszerzanie CRM po stronie klienta to obszar, w którym zasoby sieciowe są widoczne. Aby dobrze to zrozumieć, rozważ następujące przypadki użycia -
Masz formularz CRM zawierający określone pola. CRM zapewnia gotowe funkcje do podstawowych walidacji, takich jak pola obowiązkowe, długości pól itp. Jednak co zrobić, jeśli chcesz mieć bardziej złożoną walidację, taką jak sprawdzenie, czy wprowadzony numer telefonu ma prawidłowy format, lub sprawdzenie, czy wprowadzony adres faktycznie istnieje, lub czy wprowadzony numer PESEL jest poprawny?
CRM zapewnia gotowe do użycia dostosowania interfejsu użytkownika, takie jak tworzenie sekcji i zakładek w formularzu, zmiana układu pól itp. Jednak co zrobić, jeśli klient chce zbudować niestandardową stronę, która pokazuje wszystkie informacje o kliencie pochodzące z innych System ERP?
CRM jest wyposażony w standardowy pasek wstążki, który zawiera wszystkie przyciski i opcje. A co jeśli chcesz dodać własny przycisk wstążki?
Weź pod uwagę, że masz już zainstalowany system ERP. A jeśli chciałbyś otworzyć niektóre ekrany CRM z tego systemu ERP?
Zawsze możesz wywołać dowolne zewnętrzne usługi internetowe w kodzie wtyczki po stronie serwera. A co, jeśli chcesz dzwonić do zewnętrznych usług internetowych, będąc nadal po stronie klienta?
Odpowiedzią na te wszystkie „co, jeśli” są zasoby internetowe. Dostęp do każdego zasobu internetowego można uzyskać za pośrednictwem unikalnego adresu URL. Możesz przesłać plik zasobów sieci Web lub w przypadku zasobów opartych na kodzie (takich jak HTML, Jscript itp.), Możesz je nawet edytować bezpośrednio w CRM. Ponieważ zasoby sieciowe są przechowywane w CRM, można je łatwo migrować z jednego środowiska do drugiego razem z dowolnymi dostosowaniami CRM.
Rodzaje zasobów internetowych
Typ zasobu internetowego | Przykładowa aplikacja w CRM |
---|---|
Strona internetowa (HTML) | Możesz utworzyć dowolną niestandardową stronę HTML, taką jak mapy, niestandardową stronę aplikacji itp. I umieścić ją w formularzu CRM. |
Arkusz stylów (CSS) | Wszelkie pliki CSS, które będą używane razem z plikami HTML. |
Skrypt (JScript) | Dowolna logika po stronie klienta, taka jak walidacje, manipulowanie wartościami pól itp. |
Dane (XML) | Może służyć do przechowywania dowolnych ustawień statycznych lub danych konfiguracyjnych. |
Obraz (PNG, JPG, GIF, ICO) | Wszelkie obrazy użyte w aplikacji na przyciskach wstążki, ikonach, formularzach itp. |
Silverlight (XAP) | Dowolna niestandardowa aplikacja Silverlight osadzona w CRM. |
Arkusz stylów (XSL) | Służy do przekształcania danych XML. |
Spośród wszystkich tych typów zasobów internetowych w kolejnych rozdziałach będziemy badać najważniejsze typy zasobów sieciowych - HTML Web Resources i JScript Web Resources.
Dostęp do zasobów sieci Web dla dowolnej jednostki
Wszystkie zasoby sieciowe przechowywane w bazie danych są dostępne w CRM. Oto kroki, które należy wykonać -
Step 1 - Przejdź do Ustawienia → Dostosowania → Dostosuj system.
Step 2 - W lewym panelu nawigacyjnym wybierz Web Resources. Obecnie nie będziesz mógł zobaczyć żadnych zasobów sieciowych, ponieważ jeszcze niczego nie utworzyliśmy.
W następnych rozdziałach przyjrzymy się, jak tworzyć zasoby sieciowe.
Zasoby sieciowe w języku JScript to prawdopodobnie najważniejszy typ zasobów internetowych, z których będziesz korzystać w programie Microsoft Dynamics CRM.
Zastosowania JavaScript w CRM
Programowanie zdarzeń formularzy
Programowanie zdarzeń formularzy służy do obsługi zachowań po stronie klienta, takich jak to, co dzieje się, gdy użytkownik otwiera formularz, zmienia niektóre dane, przechodzi przez karty itp. Aby osiągnąć takie interakcje po stronie klienta, będziesz pisać kod JavaScript i dodawać go jako Zasób sieci Web JScript w CRM. Jednak kod JavaScript, który napiszesz, musi używać modelu Xrm.Page Dynamic CRM, a nie standardowego DOM JavaScript. Korzystanie z modelu Xrm.Page to sposób kodowania firmy Microsoft, który zapewnia, że każdy kod napisany przy użyciu tego modelu będzie zgodny z przyszłymi wersjami CRM.
Zasoby internetowe
Oprócz tego, że jest używany w programowaniu zdarzeń formularzy, JavaScript jest używany w innych aplikacjach CRM, takich jak -
Otwórz formularze, widoki i okna dialogowe z unikalnym adresem URL.
Używanie punktów końcowych OData i SOAP do interakcji z usługami internetowymi.
Odwoływanie się do kodu JavaScript w innych zasobach sieci Web (takich jak zasoby sieci Web HTML).
W takich przypadkach należy napisać kod JavaScript (przy użyciu modelu Xrm.Page) i dodać go jako zasób sieciowy JScript w systemie CRM, do którego można następnie odwoływać się w dowolnym miejscu za pomocą unikalnego identyfikatora URI.
Dostosowania wstążki
Wreszcie jednym z innych typowych zastosowań JavaScript jest obsługa dostosowań wstążki, takich jak -
- Wyświetl / ukryj przyciski wstążki w oparciu o pewną logikę
- Włącz / wyłącz przyciski wstążki w oparciu o pewną logikę
- Obsługuj, co się dzieje po kliknięciu określonego przycisku wstążki
Aby obsłużyć takie scenariusze, napiszesz logikę JavaScript (używając modelu Xrm.Page), a następnie dodasz ją jako zasób sieci Web JScript. Do tego zasobu sieci Web można następnie odwoływać się w kodzie XML przycisku wstążki i możemy określić, w której metodzie należy wywołać plik JScript, aby sprawdzić, czy przycisk wstążki powinien być wyświetlany / ukryty, włączony / wyłączony lub obsługiwać zdarzenia kliknięcia.
Model obiektu Xrm.Page
Poniżej znajduje się hierarchia obiektu Xrm.Page przedstawiająca dostępne przestrzenie nazw, obiekty i ich kolekcje. Będziesz używać tych właściwości podczas pisania kodu JScript.
Przestrzenie nazw
Sr.No | Obiekt i opis |
---|---|
1 | Context Zapewnia metody pobierania informacji specyficznych dla kontekstu, takich jak szczegóły organizacji, szczegóły zalogowanego użytkownika lub parametry, które zostały przesłane do formularza w ciągu zapytania. |
2 | Data Zapewnia dostęp do danych encji i metod zarządzania danymi w formularzu, a także w kontroli przepływu procesów biznesowych. |
3 | UI Zawiera metody pobierania informacji o interfejsie użytkownika, a także kolekcje dotyczące kilku podskładników formularza. |
Obiekty
Sr.No | Obiekt i opis |
---|---|
1 | Entity Zapewnia metodę -
|
2 | Process Metody pobierania właściwości przepływu procesów biznesowych. |
3 | Navigation Zapewnia dostęp do elementów nawigacji przy użyciu kolekcji elementów. |
4 | FormSelector Używa kolekcji Items, aby uzyskać dostęp do formularzy dostępnych dla użytkownika. Używa również metody nawigacji do zamykania i otwierania formularzy. |
5 | Stages Każdy proces ma zbiór etapów, do których można uzyskać dostęp za pomocą metody process getStages. |
6 | Steps Każdy etap składa się z różnych kroków, do których można uzyskać dostęp za pomocą metody stage getSteps. |
Kolekcje
Sr.No | Kolekcje i opis |
---|---|
1 | Attributes Zapewnia dostęp do atrybutów encji dostępnych w formularzu. |
2 | Controls ui.controls - Zapewnia dostęp do każdej kontrolki obecnej w formularzu. attribute.controls - Zapewnia dostęp do wszystkich kontrolek w atrybucie. section.controls - Zapewnia dostęp do wszystkich elementów sterujących w sekcji. |
3 | Items Zapewnia dostęp do wszystkich elementów nawigacji w formularzu. |
4 | Tabs Zapewnia dostęp do wszystkich zakładek w formularzu. |
5 | Sections Zapewnia dostęp do wszystkich sekcji formularza. |
Obsługiwane zdarzenia w programowaniu formularzy
Programowanie formularzy przy użyciu modelu Xrm.Page umożliwia obsługę następujących zdarzeń formularza -
- onLoad
- onSave
- onChange
- TabStateChange
- OnReadyStateComplete
- PreSearch
- Zdarzenia kontroli przepływu procesów biznesowych
Przykład programowania formularza
W tym przykładzie umieścimy kilka walidacji w formularzu kontaktowym w oparciu o PreferredMethodofCommunication, którą wybiera użytkownik. Stąd, jeśli użytkownik wybierze swoją preferowaną metodę jako E-mail, wówczas pole E-mail powinno stać się obowiązkowe i podobnie w przypadku innych pól Telefon i Faks.
Step 1 - Utwórz plik JavaScript o nazwie contacts.js i skopiuj poniższy kod.
function validatePreferredMethodOfCommunication() {
//get the value of Preffered Method of Communication code
var prefferedContactMethodCode =
Xrm.Page.getAttribute('preferredcontactmetho dcode').getValue();
//if Preferred Method = Any, make all fields as non-mandatory
//else if Preferred Method = Phone, make Mobile Phone field mandatory
//and all other fields as non-mandatory
//else if Preferred Method = Fax, make Fax field mandatory
//and all other fields as non-mandatory
if(prefferedContactMethodCode == 1) {
clearAllMandatoryFields();
}
if(prefferedContactMethodCode == 2) {
clearAllMandatoryFields();
Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('required');
} else if(prefferedContactMethodCode == 3) {
clearAllMandatoryFields();
Xrm.Page.getAttribute('mobilephone').setRequiredLevel('required');
} else if(prefferedContactMethodCode == 4) {
clearAllMandatoryFields();
Xrm.Page.getAttribute('fax').setRequiredLevel('required');
}
}
function clearAllMandatoryFields() {
//clear all mandatory fields
Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('none');
Xrm.Page.getAttribute('mobilephone').setRequiredLevel('none');
Xrm.Page.getAttribute('fax').setRequiredLevel('none');
}
Step 2 - Otwórz formularz podmiotu kontaktowego, przechodząc do opcji Ustawienia → Dostosowania → Dostosuj system → Podmiot kontaktowy → Formularze → Formularz główny.
Step 3 - Kliknij opcję Właściwości formularza.
Step 4 - W oknie Właściwości formularza kliknij Dodaj.
Step 5 - W następnym oknie Wyszukaj rekord zasobu sieci Web kliknij opcję Nowy, ponieważ tworzymy nowy zasób sieciowy.
Step 6 - W oknie New Web Resource wprowadź następujące dane -
Name - new_contacts.js
Display Name - contacts.js
Type - JScript
Upload File - Prześlij plik JavaScript utworzony na komputerze lokalnym.
Step 7- Kliknij Zapisz, a następnie Opublikuj. Po tym zamknij okno i wrócisz do okna Wyszukaj rekord zasobów sieci Web.
Step 8- Tutaj możesz teraz zobaczyć zasób sieciowy new_contacts.js. Wybierz go i kliknij Dodaj. Teraz pomyślnie dodałeś nowy zasób sieciowy i zarejestrowałeś go w formularzu.
Step 9- Teraz dodamy obsługę zdarzeń przy zmianie pola Preferowana metoda komunikacji. Ten program obsługi zdarzeń wywoła właśnie napisaną przez nas funkcję JavaScript. Wybierz następujące opcje z sekcji Obsługa zdarzeń.
Control - Preferowana metoda komunikacji
Event - OnChange
Następnie kliknij Add przycisk, jak pokazano na poniższym zrzucie ekranu.
Step 10 - W następnym oknie Właściwości obsługi określimy metodę, która ma zostać wywołana, gdy wystąpi zdarzenie change.
Wybierz Biblioteka jako new_contacts.js i Funkcję jako validatePreferredMethodOfCommunication. Kliknij OK.
Step 11- Będziesz mógł teraz zobaczyć bibliotekę formularzy (zasób sieciowy) i zarejestrowane w niej zdarzenia. Kliknij OK.
Step 12 - Kliknij Zapisz, a następnie Opublikuj.
Step 13- Teraz otwórz dowolny formularz kontaktowy i ustaw preferowaną metodę komunikacji jako telefon. Spowoduje to, że pole Telefon komórkowy będzie obowiązkowe. Jeśli teraz spróbujesz zapisać ten kontakt bez wprowadzania numeru telefonu komórkowego, wyświetli się komunikat o błędzie „Musisz podać wartość dla telefonu komórkowego”.
Wniosek
W tym rozdziale rozpoczęliśmy od zrozumienia trzech ważnych zastosowań JavaScript w CRM. Później zbadaliśmy model Xrm.Page i użyliśmy go do nauki programowania formularzy wraz z przykładem.
W tym rozdziale poznamy różne zasoby internetowe w Microsoft Dynamics CRM.
Zastosowania zasobów internetowych HTML
Zasób sieci Web HTML w CRM może zawierać dowolną zawartość HTML, którą można renderować w przeglądarce. Rozważ następujące scenariusze, w których chcesz używać zasobów sieci Web HTML -
Masz statyczną stronę HTML, którą chcesz wyświetlić na ekranie CRM.
Masz niestandardową stronę HTML, która oczekuje pewnych parametrów wejściowych i jest renderowana na podstawie tych parametrów wejściowych. Na przykład rozważ, że pobierasz informacje z zewnętrznego interfejsu API lub usługi sieciowej i chcesz wyświetlić je w CRM.
Chcesz wyświetlić informacje o innym wyglądzie i działaniu niż standardowy interfejs CRM.
Masz niestandardową stronę ASPX (poza aplikacją CRM), która jest renderowana na podstawie parametrów wejściowych. Ponieważ CRM nie pozwala na posiadanie zasobów sieci Web ASPX, możesz utworzyć zasób HTML sieci Web i wywołać zewnętrzną stronę ASPX z tej strony HTML.
Przykład zasobu internetowego HTML
Stworzymy bardzo prosty zasób sieciowy HTML, który będzie wyświetlał niestandardowy tekst „Witamy w TutorialsPoint”. Zauważ, że jest to bardzo prosty przykład zasobu HTML sieci Web. W praktyce zasoby sieciowe HTML byłyby bardziej złożone.
Step 1 - Utwórz plik HTML o nazwie sampleHTMLWebResource.html i skopiuj poniższy kod.
<!DOCTYPE html>
<htmllang = "en"xmlns = "http://www.w3.org/1999/xhtml">
<head>
<metacharset = "utf-8"/>
<title>Welcome to Tutorials Point</title>
</head>
<body>
<h1>Welcome to Tutorials Point. This is an example of HTML Web Resource.</h1>
</body>
</html>
Step 2- Najpierw utworzymy nowy zasób sieciowy, a następnie odniesiemy się do niego w formularzu kontaktowym. Otwórz DefaultSolution i przejdź do zakładki WebResources z lewego panelu. Kliknij Nowy.
Step 3- Otworzy się okno New Web Resource. Wprowadź szczegóły, jak pokazano na poniższym zrzucie ekranu i przeglądaj plik HTML, który utworzyliśmy w kroku 1. Kliknij Zapisz i opublikuj. Zamknij okno.
Step 4 - Zobaczysz nowy zasób sieciowy dodany do siatki Zasoby sieci Web.
Step 5- Teraz otwórz formularz kontaktowy poprzez Ustawienia → Dostosowania → Dostosuj system → Kontakt → Formularz główny. Wybierz sekcję Informacje kontaktowe i przejdź do karty Wstawianie z górnego paska wstążki. Kliknij opcję Zasoby sieciowe.
Step 6- Otworzy się okno dodawania zasobów sieciowych. Kliknij opcję Wyszukiwanie zasobów sieci Web w tym oknie, co spowoduje otwarcie okna Rekord wyszukiwania zasobów sieci Web. Przeszukaj właśnie utworzony zasób sieciowy (new_sampleHTMLWebResource), wybierz go z siatki i kliknij Dodaj.
Step 7- Wracając do Add Web Resource, wprowadź nazwę i etykietę, jak pokazano na poniższym zrzucie ekranu, i kliknij OK. Zamknij okno.
Zobaczysz HTML Web Resource dodany poniżej pola Adres.
Step 8 - Aby to przetestować, otwórz dowolny rekord kontaktu, a zobaczysz tam wyświetloną zawartość HTML Web Resource.
Ograniczenia zasobów internetowych HTML
Nie ma obsługiwanego sposobu używania kodu po stronie serwera w zasobach sieci Web HTML.
Zasoby sieciowe HTML mogą akceptować tylko ograniczoną liczbę parametrów. Aby przekazać więcej niż jedną wartość parametru danych, musisz zakodować parametry, w tym logikę dekodowania na drugim końcu.
Przepływy pracy w CRM pozwalają zautomatyzować proste i złożone procesy biznesowe w CRM. Możesz tworzyć przepływy pracy za pomocą gotowych funkcji CRM lub pisać niestandardowe przepływy pracy z kodem .NET do wdrażania złożonych przepływów pracy. Procesy przepływu pracy działają w tle lub w czasie rzeczywistym i opcjonalnie mogą wymagać udziału użytkownika.
Przepływy pracy mogą być uruchamiane na podstawie określonych warunków lub nawet mogą być uruchamiane ręcznie przez użytkowników. Wewnętrznie przepływy pracy CRM są implementowane przy użyciu Windows Workflow Foundation. W tym rozdziale nauczymy się konfigurowania przepływów pracy.
Konfiguracja przepływu pracy składa się z następujących głównych części (w kolejności) -
- Skonfiguruj jednostkę, na której będzie uruchamiany przepływ pracy
- Skonfiguruj, czy przepływ pracy będzie działał synchronicznie, czy asynchronicznie
- Skonfiguruj komunikat (zdarzenie), na którym będzie uruchamiany przepływ pracy
- Skonfiguruj zakres, w którym będzie uruchamiany przepływ pracy
- Skonfiguruj etapy i kroki (akcje) przepływu pracy
Synchroniczny / asynchroniczny przepływ pracy
Podczas tworzenia przepływu pracy zobaczysz opcję Uruchom ten przepływ pracy w tle (zalecane), która określa, czy przepływ pracy będzie działał w czasie rzeczywistym (synchronicznie), czy w tle (asynchronicznie).
Zasadniczo zalecanym podejściem jest uruchamianie przepływów pracy w tle, ponieważ wykorzystują one zasoby systemowe, gdy są dostępne. Jednak zawsze możesz przełączyć się z przepływu pracy w czasie rzeczywistym na przepływ pracy w tle i odwrotnie.
Komunikaty dotyczące przepływu pracy
Przepływy pracy można rejestrować dla określonych zdarzeń w następujący sposób -
- Kiedy tworzony jest rekord
- Kiedy zmienia się stan rekordu
- Kiedy przypisano rekord
- Kiedy zmienia się wartość pola rekordu
- Kiedy rekord jest usuwany
Zakres przepływu pracy
Przepływy pracy pozwalają ustawić zakres, w którym przepływ pracy będzie działał. Poniżej przedstawiono obsługiwane zakresy przepływu pracy -
User | Przepływ pracy będzie działał tylko na rekordach należących do tego samego użytkownika co użytkownik przepływu pracy. |
Business Unit | Przepływ pracy będzie działać na rekordach należących do użytkowników jednostki biznesowej tak samo, jak użytkownik przepływu pracy. |
Parent Child Business Units | Przepływ pracy będzie działał na rekordach należących do użytkowników jednostki biznesowej, tak samo jak użytkownik przepływu pracy, a także wszystkie podrzędne jednostki biznesowe. |
Organization | Przepływ pracy będzie działać na rekordach należących do dowolnego użytkownika w CRM. |
Kroki przepływu pracy
Przepływy pracy w CRM to kombinacja serii kroków, po których będzie przebiegał przepływ pracy. Możesz nawet podzielić te kroki na logiczne etapy. Poniższe kroki są obsługiwane przez przepływy pracy CRM -
Conditional Steps |
|
||||||||||||||
Wait Steps |
|
||||||||||||||
Action Steps |
|
Przykład przepływu pracy
W tym przykładzie utworzymy prosty przepływ pracy, który działa w tle, aby przypisać nowo utworzony rekord kontaktu do określonego użytkownika, a następnie wyślemy powitalną wiadomość e-mail do klienta.
Step 1 - Przejdź do Ustawienia → Procesy.
Step 2 - Kliknij Nowy.
Step 3 - W oknie CreateProcess wprowadź następujące dane -
Process Name - Nowy przepływ pracy klienta (może to być dowolna nazwa)
Category - Przepływ pracy
Entity - Kontakt (będzie to podmiot, na którym tworzysz workflow. W naszym przypadku jest to Kontakt)
Run this workflow in the background (recommended)- Zaznacz tę opcję, ponieważ tworzymy asynchroniczny przepływ pracy w tle. Na koniec kliknij OK.
Step 4 - W oknie Nowy proces wprowadź następujące dane -
Activate As - Proces
Scope - Użytkownik
Start when - Utworzono rekord
Kliknij Add Step → Przypisz nagranie.
Step 5- Zobaczysz nowy krok dodany do przepływu pracy. W tym kroku określimy użytkownika, do którego mają zostać przypisane wszystkie utworzone kontakty. Wprowadź nazwę kroku jakoAssign Record to Team. Opcja Przypisz zostanie domyślnie ustawiona jako podmiot, na którym tworzymy workflow (w naszym przypadku Kontakt). Kliknij ikonę Wyszukaj.
Step 6- W oknie wyszukiwania wybierz dowolnego żądanego użytkownika. Możesz nawet wybrać konkretny zespół, do którego chcesz przypisać rekordy. Kliknij Dodaj.
Step 7- Dodaj kolejny krok, klikając Dodaj krok → Wyślij e-mail. W tym kroku skonfigurujemy wysyłanie wiadomości e-mail do klienta.
Step 8- Zostanie dodany nowy krok. Wpisz jego nazwę jako Wyślij e-mail do klienta. Kliknij Ustaw właściwości.
Step 9 - W następnym oknie konfigurowania poczty wykonaj następujące czynności:
From- Kliknij pole Od. W prawym panelu wybierz OwningUser and User. Kliknij Dodaj → OK.
To- Kliknij pole. W prawym panelu wybierz Kontakt i Kontakt. Kliknij Dodaj → OK.
Subject - Wprowadź odpowiedni temat.
Body - Wprowadź odpowiednią zawartość ciała.
Step 10 - Kliknij Zapisz, a następnie Aktywuj.
Step 11 - W wyświetlonym oknie dialogowym Potwierdzenie aktywacji procesu kliknij opcję Aktywuj.
Step 12- Przejdź do zakładki Kontakty i utwórz nowy kontakt. Gdy tylko utworzysz nowy kontakt, zapisując rekord, zobaczysz pole Właściciel ustawione na użytkownika, którego skonfigurowałeś w przepływie pracy. Ponadto, jeśli klikniesz kartę Działania, zobaczysz działanie e-mail tworzone dla tego kontaktu. Potwierdza to, że przepływ pracy został pomyślnie uruchomiony.
Przepływ pracy a wtyczka
Przepływy pracy i wtyczki mogą służyć do rozszerzania i automatyzacji funkcji CRM. W wielu scenariuszach oba podejścia mogą być stosowane zamiennie zamiast siebie. Na przykład, jeśli masz prosty wymóg wysłania wiadomości e-mail do klientów, możesz to zrobić za pomocą wtyczki lub przepływu pracy.
Jak więc wybrać między tworzeniem przepływu pracy a tworzeniem wtyczki? Poniższa lista próbuje wyjaśnić to samo -
Chociaż wtyczki i przepływy pracy mogą być używane zarówno do uruchamiania logiki synchronicznej, jak i asynchronicznej, wtyczki są ogólnie preferowane w przypadku logiki synchronicznej, podczas gdy przepływy pracy w logice asynchronicznej.
Ogólnie rzecz biorąc, w celu wdrożenia złożonej logiki biznesowej wtyczki są preferowane zamiast przepływów pracy. Przepływy pracy są preferowane, gdy chcesz osiągnąć stosunkowo łatwiejsze funkcjonalności (takie jak wysyłanie e-maili, przypisywanie użytkowników itp.)
Wtyczki muszą być programowane za pomocą kodowania, podczas gdy przepływy pracy mogą być konfigurowane bezpośrednio przez użytkowników biznesowych bez żadnej wiedzy o przepływach pracy.
Przepływy pracy mogą być uruchamiane na żądanie. Dlatego też, jeśli istnieją wymagania, w których użytkownik chce ręcznie uruchomić jakąś logikę, przepływ pracy byłby lepszym wyborem.
Od wpływu na wydajność, wtyczki synchroniczne zapewniają lepszą wydajność (i przepustowość) w porównaniu z przepływami pracy w czasie rzeczywistym w scenariuszach, w których częstotliwość żądań jest wyższa.
Wniosek
W tym rozdziale poznaliśmy jedną z bardzo ważnych funkcjonalności CRM - przepływy pracy. Najpierw zrozumieliśmy przepływ pracy synchronizacji / asynchronizacji, komunikaty, zakres, kroki, a na koniec przyjrzeliśmy się rzeczywistemu przykładowi tworzenia i uruchamiania przepływu pracy. Wreszcie zauważyliśmy różnice między przepływem pracy a wtyczką.
Wtyczka to niestandardowa logika biznesowa, która integruje się z Microsoft Dynamics CRM w celu modyfikowania lub rozszerzania standardowego zachowania platformy. Wtyczki działają jako programy obsługi zdarzeń i są rejestrowane w celu wykonania określonego zdarzenia w CRM. Wtyczki są napisane w języku C # lub VB i mogą działać w trybie synchronicznym lub asynchronicznym.
Niektóre scenariusze, w których napisałbyś wtyczkę, to:
Chcesz wykonać jakąś logikę biznesową, taką jak aktualizowanie niektórych pól rekordu lub aktualizowanie powiązanych rekordów itp. Podczas tworzenia lub aktualizowania rekordu CRM.
Chcesz zadzwonić do zewnętrznej usługi internetowej w przypadku pewnych zdarzeń, takich jak zapisywanie lub aktualizowanie rekordu.
Chcesz dynamicznie obliczać wartości pól po otwarciu dowolnego rekordu.
Chcesz zautomatyzować procesy, takie jak wysyłanie e-maili do klientów na temat określonych zdarzeń w CRM.
Struktura zdarzeń
Struktura przetwarzania zdarzeń w CRM przetwarza synchroniczne i asynchroniczne żądania wtyczek, przekazując je do potoku wykonywania zdarzeń. Za każdym razem, gdy zdarzenie wyzwala logikę wtyczki, wiadomość jest wysyłana do usługi sieciowej organizacji CRM, gdzie może zostać odczytana lub zmodyfikowana przez inne wtyczki lub dowolne podstawowe operacje platformy.
Etapy potoku wtyczek
Cały potok wtyczek jest podzielony na wiele etapów, na których można zarejestrować własną logikę biznesową. Określony etap potoku wskazuje, na którym etapie cyklu wykonywania wtyczki działa kod wtyczki. Spośród wszystkich określonych etapów potoku w poniższej tabeli, możesz zarejestrować własne wtyczki tylko na zdarzeniach przed i po. Nie możesz zarejestrować wtyczek w głównych operacjach platformy.
Zdarzenie | Pseudonim artystyczny | Opis |
---|---|---|
Przed wydarzeniem | Wstępna walidacja | Etap w potoku dla wtyczek, które mają zostać wykonane przed głównym działaniem systemu. Wtyczki zarejestrowane na tym etapie mogą być wykonywane poza transakcją bazy danych. |
Przed wydarzeniem | Operacja wstępna | Etap w potoku dla wtyczek, które mają zostać wykonane przed głównym działaniem systemu. Wtyczki zarejestrowane na tym etapie są wykonywane w ramach transakcji bazy danych. |
Podstawowe działanie platformy | MainOperation | Transakcja, główna operacja systemu, taka jak tworzenie, aktualizowanie, usuwanie itd. Na tym etapie nie można zarejestrować żadnych niestandardowych wtyczek. Tylko do użytku wewnętrznego. |
Ogłosić wydarzenie | Po operacji | Etap w potoku dla wtyczek, które mają zostać wykonane po operacji głównej. Wtyczki zarejestrowane na tym etapie są wykonywane w ramach transakcji bazy danych. |
Za każdym razem, gdy aplikacja CRM wywoła zdarzenie (takie jak zapisanie lub aktualizacja rekordu), ma miejsce następująca sekwencja działań -
Zdarzenie wyzwala wywołanie usługi sieci Web, a wykonanie przechodzi przez etapy potoku zdarzenia (przed zdarzeniem, podstawowe operacje platformy, po zdarzeniu).
Informacje są pakowane wewnętrznie w postaci wiadomości OrganizationRequest i ostatecznie wysyłane do wewnętrznych metod usługi sieciowej CRM i podstawowych operacji platformy.
Komunikat OrganizationRequest jest najpierw odbierany przez wtyczki przed zdarzeniem, które mogą modyfikować informacje przed przekazaniem ich do podstawowych operacji platformy. Po wykonaniu podstawowych operacji platformy wiadomość jest pakowana jako OrganizationResponse i przekazywana do wtyczek po operacji. Wtyczki pooperacyjne mogą opcjonalnie modyfikować te informacje przed przekazaniem ich do wtyczki asynchronicznej.
Wtyczki otrzymują te informacje w postaci obiektu kontekstu, który jest przekazywany do metody Execute, po czym następuje dalsze przetwarzanie.
Po zakończeniu przetwarzania wszystkich wtyczek wykonanie jest przekazywane z powrotem do aplikacji, która wyzwoliła zdarzenie.
Wiadomości wtyczek
Komunikaty to zdarzenia, w których rejestrowana jest wtyczka (lub logika biznesowa). Na przykład możesz zarejestrować wtyczkę na stronie Utwórz wiadomość dla podmiotu kontaktowego. Spowoduje to uruchomienie logiki biznesowej za każdym razem, gdy tworzony jest nowy rekord Kontakt.
W przypadku encji niestandardowych poniżej przedstawiono obsługiwane komunikaty w zależności od tego, czy encja należy do użytkownika, czy do organizacji.
Nazwa wiadomości | Typ własności |
---|---|
Przydzielać | Tylko podmioty będące własnością użytkowników |
Stwórz | Podmioty należące do użytkowników i organizacji |
Usunąć | Podmioty należące do użytkowników i organizacji |
Dostęp uznany | Tylko podmioty będące własnością użytkowników |
ModifyAccess | Tylko podmioty będące własnością użytkowników |
Odzyskać | Podmioty należące do użytkowników i organizacji |
RetrieveMultiple | Podmioty należące do użytkowników i organizacji |
RetrievePrincipalAccess | Tylko podmioty będące własnością użytkowników |
RetrieveSharedPrincipalsAndAccess | Tylko podmioty będące własnością użytkowników |
RevokeAccess | Tylko podmioty będące własnością użytkowników |
SetState | Podmioty należące do użytkowników i organizacji |
SetStateDynamicEntity | Podmioty należące do użytkowników i organizacji |
Aktualizacja | Podmioty należące do użytkowników i organizacji |
W przypadku domyślnych encji gotowych do użycia istnieje ponad 100 obsługiwanych komunikatów. Niektóre z tych komunikatów mają zastosowanie do wszystkich podmiotów, podczas gdy inne są specyficzne dla określonych podmiotów. Pełną listę obsługiwanych wiadomości można znaleźć w pliku Excel w pakiecie SDK:SDK\Message-entity support for plug-ins.xlsx
Writing Plugin
W tej sekcji nauczymy się podstaw pisania wtyczki. Będziemy tworzyć przykładową wtyczkę, która tworzy czynność Zadania, aby kontynuować kontakt z klientem za każdym razem, gdy do systemu zostanie dodany nowy klient, tj. Za każdym razem, gdy w CRM zostanie utworzony nowy rekord kontaktu.
Przede wszystkim musisz dołączyć odniesienia do Microsoft.Xrm.Sdkprzestrzeń nazw. CRM SDK zawiera wszystkie wymagane zestawy SDK. Zakładając, że już pobrałeś i zainstalowałeś SDK w rozdziale 2, otwórz Visual Studio. Utwórz nowy projekt typu Class Library. Możesz nazwać projekt jako SamplePlugins i kliknąć OK.
Dodaj odniesienie do Microsoft.Xrm.Sdkmontaż do twojego projektu. Zespół jest obecny wSDK/Bin.
Teraz utwórz klasę o nazwie PostCreateContact.cs i rozszerz klasę z IPlugin. Do tej pory Twój kod będzie wyglądał mniej więcej tak.
Będziesz także musiał dodać odniesienie do System.Runtime.Serialization. Po dodaniu wymaganych odwołań skopiuj następujący kod w plikuPostCreateContact klasa.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xrm.Sdk;
namespace SamplePlugins {
public class PostCreateContact:IPlugin {
/// A plug-in that creates a follow-up task activity when a new account is created.
/// Register this plug-in on the Create message, account entity,
/// and asynchronous mode.
public void Execute(IServiceProviderserviceProvider) {
// Obtain the execution context from the service provider.
IPluginExecutionContext context =(IPluginExecutionContext)
serviceProvider.GetService(typeof(IPluginExecutionContext));
// The InputParameters collection contains all the data
passed in the message request.
if(context.InputParameters.Contains("Target")&&
context.InputParameters["Target"]isEntity) {
// Obtain the target entity from the input parameters.
Entity entity = (Entity)context.InputParameters["Target"];
try {
// Create a task activity to follow up with the account customer in 7 days
Entity followup = new Entity("task");
followup["subject"] = "Send e-mail to the new customer.";
followup["description"] =
"Follow up with the customer. Check if there are any new issues
that need resolution.";
followup["scheduledstart"] = DateTime.Now;
followup["scheduledend"] = DateTime.Now.AddDays(2);
followup["category"] = context.PrimaryEntityName;
// Refer to the contact in the task activity.
if(context.OutputParameters.Contains("id")) {
Guid regardingobjectid = new Guid(context.OutputParameter
s["id"].ToString());
string regardingobjectidType = "contact";
followup["regardingobjectid"] =
new EntityReference(rega rdingobjectidType,regardingobjectid);
}
// Obtain the organization service reference.
IOrganizationServiceFactory serviceFactory =
(IOrganizationSer viceFactory)serviceProvider.GetService
(typeof(IOrganizationServiceFactory));
IOrganizationService service =
serviceFactory.CreateOrganizationService(context.UserId);
// Create the followup activity
service.Create(followup);
} catch(Exception ex) {
throw new InvalidPluginExecutionException(ex.Message);
}
}
}
}
}
Poniżej znajduje się wyjaśnienie krok po kroku, co robi ten kod -
Step 1- Implementuje metodę Execute, przyjmując obiekt IServiceProvider jako parametr. Dostawca usług zawiera odniesienia do wielu przydatnych obiektów, których będziesz używać w ramach wtyczki.
Step 2 - Uzyskuje obiekt IPluginExecutionContext przy użyciu metody GetService z IServiceProvider.
Step 3- Pobiera obiekt jednostki docelowej z kolekcji InputParameters obiektu kontekstu. Ten obiekt klasy Entity odnosi się do rekordu podmiotu Contact, w którym została zarejestrowana nasza wtyczka.
Step 4- Następnie tworzy obiekt jednostki Zadanie i ustawia odpowiedni temat, opis, daty, kategorię i adres obiektu. Dotyczący obiektu identyfikator wskazuje, dla którego rekordu kontaktu tworzony jest ten rekord czynności. Możesz zobaczyć, że kod pobiera identyfikator nadrzędnego rekordu kontaktu przy użyciu funkcji context.OutputParameters i kojarzy go z utworzonym rekordem jednostki zadania.
Step 5 - Tworzy obiekt IOrganizationServiceFactory przy użyciu obiektu IServiceProvider.
Step 6 - Tworzy obiekt IOrganizationService przy użyciu obiektu IOrganizationServiceFactory.
Step 7- Wreszcie, używając metody Create tego obiektu usługi. Tworzy dalsze działania, które są zapisywane w CRM.
Podpisywanie zestawu wtyczek
Ta sekcja ma zastosowanie tylko wtedy, gdy rejestrujesz zespół wtyczki po raz pierwszy. Aby móc wdrożyć wtyczkę, musisz zalogować się do zestawu za pomocą klucza. Kliknij rozwiązanie prawym przyciskiem myszy i kliknij opcję Właściwości.
Wybierz kartę Podpisywanie z opcji po lewej stronie i zaznacz opcję „Podpisz zespół”. Następnie wybierz opcję Nowy z opcji Wybierz plik klucza o silnej nazwie.
Wprowadź nazwę pliku klucza jako przykładowe wtyczki (może to być dowolna inna nazwa). Usuń zaznaczenie opcji Chroń mój plik kluczy hasłem i kliknij OK. Kliknij Zapisz.
Na koniec zbuduj rozwiązanie. Kliknij prawym przyciskiem myszy → Buduj. Zbudowanie rozwiązania spowoduje wygenerowanie biblioteki DLL, której użyjemy w następnym rozdziale do rejestracji tej wtyczki.
Obsługa wyjątków we wtyczce
Najczęściej Twoja logika wtyczki będzie musiała obsługiwać wyjątki w czasie wykonywania. W przypadku wtyczek synchronicznych możesz zwrócić plikInvalidPluginExecutionExceptionwyjątek, który spowoduje wyświetlenie okna dialogowego błędu dla użytkownika. Okno dialogowe błędu będzie zawierało niestandardowy komunikat o błędzie, który zostanie przekazany do obiektu Message obiektu wyjątku.
Jeśli spojrzysz na nasz kod, w naszym bloku catch rzucamy wyjątek InvalidPluginExecutionException.
throw new InvalidPluginExecutionException(ex.Message);
Wniosek
Wtyczki są zdecydowanie kluczowe dla każdej niestandardowej implementacji CRM. W tym rozdziale skupiliśmy się na zrozumieniu modelu struktury zdarzeń, etapach potoku, komunikatach i napisaniu przykładowej wtyczki. W następnym rozdziale zarejestrujemy tę wtyczkę w CRM i zobaczymy, jak działa od końca do końca.
W ostatnim rozdziale stworzyliśmy przykładową wtyczkę do tworzenia następczych czynności Zadania, gdy tworzony jest rekord Kontakt. W tym rozdziale zobaczymy, jak zarejestrować tę wtyczkę w CRM za pomocą narzędzia do rejestracji wtyczek. Narzędzie można znaleźć w tej lokalizacji: SDK / Tools / PluginRegistration / PluginRegistration.exe.
Dla wygody proces rejestracji wtyczki podzielono na trzy sekcje -
- Łączenie się z serwerem
- Rejestracja zgromadzenia
- Rejestracja wtyczki
Łączenie się z serwerem
Step 1 - Uruchom PluginRegistration.exez podanej wcześniej lokalizacji. Kliknij przycisk Utwórz nowe połączenie.
Step 2- W oknie logowania wybierz Office 365, ponieważ używamy wersji online CRM. Wprowadź swoje poświadczenia i kliknij Zaloguj się.
Step 3 - Narzędzie otworzy się i będzie wyglądać jak na poniższym zrzucie ekranu.
Rejestracja zgromadzenia
Step 1 - Idź do Zarejestruj się → Zarejestruj nowy zespół.
Step 2- Otworzy się okno Zarejestruj nowy zespół. Kliknij ikonę Nawiguj i znajdź wtyczkę DLL, którą utworzyłeś w poprzednim rozdziale.
Step 3- Po przejściu do biblioteki DLL kliknij opcję Załaduj zestaw. Spowoduje to wypełnienie zestawu SamplePlugins i wszystkich jego klas wtyczek. Możesz zobaczyćPostCreateContactklasa wtyczki wyróżniona poniżej. Gdyby twój zestaw wtyczek miał 3 klasy wtyczek, pokazałby trzy wymienione tam wtyczki.
Step 4- Wybierz tryb izolacji jako piaskownicę, lokalizację jako bazę danych i kliknij Zarejestruj wybrane wtyczki. Jeśli rejestracja się powiedzie, wyświetli się komunikat o powodzeniu.
Rejestracja wtyczki
Teraz będziemy rejestrować konkretne kroki, na których będą wywoływane poszczególne wtyczki.
Step 1 - Wybierz wtyczkę PostCreateContact.
Step 2 - Kliknij Zarejestruj → Zarejestruj nowy krok.
Step 3 - Będziemy rejestrować tę wtyczkę podczas tworzenia podmiotu Kontakt, na etapie pooperacyjnym oraz w trybie synchronicznym.
Message - Utwórz
Primary Entity - Kontakt
Event Pipeline Stage of Execution - Po operacji
Execution Mode - Synchroniczne
Pozostałe opcje zachowaj domyślnie i kliknij Zarejestruj nowy krok.
Możesz zobaczyć nowy krok dodany do wtyczki.
Teraz przejdziemy do CRM i przetestujemy, czy nasza wtyczka działa poprawnie. Zwróć uwagę, że te kroki testowe są specyficzne dla naszej przykładowej wtyczki.
Testowanie wtyczki
Przejdź do zakładki Kontakty i utwórz nowy rekord. Po zapisaniu rekordu możesz zobaczyć nowe działanie utworzone i powiązane z tym rekordem.
Możesz kliknąć działanie, aby zobaczyć szczegóły, które ustawiliśmy w kodzie.
Potwierdza to, że nasza wtyczka została pomyślnie uruchomiona. Podobnie możesz rozszerzyć swoje wtyczki, aby uzyskać bardzo złożone funkcje.
Microsoft Dynamics CRM zapewnia dwie ważne usługi internetowe, które są używane do uzyskiwania dostępu do CRM z zewnętrznej aplikacji i wywołują metody internetowe w celu wykonywania typowych operacji na danych biznesowych, takich jak tworzenie, usuwanie, aktualizowanie i znajdowanie w CRM.
Rozważ następujące scenariusze -
Masz zewnętrzną aplikację .NET, która musi komunikować się z CRM. Na przykład możesz chcieć wstawić rekord Kontakt w CRM, gdy nowy klient jest zarejestrowany w Twojej zewnętrznej aplikacji.
A może chcesz przeszukać rekordy w CRM i wyświetlić wyniki wyszukiwania w zewnętrznej aplikacji.
W takich scenariuszach można używać usług internetowych udostępnionych przez CRM, aby korzystać z nich w aplikacji i wykonywać operacje tworzenia, usuwania, aktualizowania i znajdowania w CRM.
Usługa sieciowa IDiscoveryService
Ta usługa sieci Web zwraca listę organizacji, do których należy określony użytkownik, oraz punkt końcowy adresu URL dla każdej organizacji.
Usługa sieci Web IOrganizationService
Ta usługa internetowa jest podstawową usługą sieciową używaną do uzyskiwania dostępu do danych i metadanych w CRM. IOrganizationService używa dwóch ważnych zestawów -Microsoft.Xrm.Sdk.dll i Microsoft.Crm.Sdk.Proxy.dll. Te zestawy można znaleźć w pakiecie CRM SDK wewnątrzBin teczka.
Microsoft.Xrm.Sdk.dll
Ten zestaw definiuje podstawowe metody i typy xRM, w tym klasy proxy, aby uprościć połączenie z Microsoft Dynamics CRM, metody uwierzytelniania i kontrakty serwisowe.
Microsoft.Crm.Sdk.Proxy.dll
Ten zestaw definiuje żądania i odpowiedzi dla komunikatów innych niż podstawowe, a także wyliczenia wymagane do pracy z danymi organizacji. Poniżej przedstawiono przestrzenie nazw obsługiwane przez te dwa zestawy.
Każdy z tych zestawów obsługuje określone komunikaty, które będą używane do pracy z danymi przechowywanymi w dowolnej encji. Pełną listę obsługiwanych przez nie wiadomości można znaleźć pod następującymi linkami -
Supported xRM Messages - https://msdn.microsoft.com/en-us/library/gg334698.aspx
Supported CRM Messages - https://msdn.microsoft.com/en-us/library/gg309482.aspx
Metody usługi sieci Web IOrganizationService
Plik IOrganizationService udostępnia osiem metod, które umożliwiają wykonywanie wszystkich typowych operacji w systemie i niestandardowych encjach, a także metadanych organizacji.
Sr.No | Metoda i opis |
---|---|
1 | IOrganizationService.Create Tworzy rekord. |
2 | IOrganizationService.Update Aktualizuje istniejący rekord. |
3 | IOrganizationService. Retrieve Pobiera rekord. |
4 | IOrganizationService. RetrieveMultiple Pobiera kolekcję rekordów. |
5 | IOrganizationService. Delete Usuwa rekord. |
6 | IOrganizationService. Associate Tworzy łącze między rekordami. |
7 | IOrganizationService.Disassociate Usuwa łącze między rekordami. |
8 | IOrganizationService.Execute Używany do zwykłego przetwarzania rekordów, a także do specjalistycznego przetwarzania, takiego jak rozwiązywanie przypadków, wykrywanie duplikatów itp. |
Przykład usługi internetowej
Aby zrozumieć, jak usługi internetowe działają w CRM, przyjrzymy się przykładowi dostarczonemu przez CRM SDK. W tym przykładzie utworzymy nowy rekord konta, zaktualizujemy go, a następnie ostatecznie usuniemy za pomocą CRMIOrganizationService Serwis internetowy.
Step 1- Otwórz folder, do którego rozpakowałeś CRM SDK. Teraz otwórz rozwiązanie QuickStartCS.sln, przechodząc do następującej lokalizacji: SDK \ SampleCode \ CS \ QuickStart
Step 2 - Będziemy badać QuickStart z Simplified Connectionprojekt. otwartyapp.configw tym projekcie. DomyślnieconnectionStrings sekcja w tym pliku zostanie skomentowana.
Na tej podstawie usuń komentarz z pierwszego klucza parametrów połączenia i edytuj następujące trzy szczegóły -
Url- Określ adres URL swojej instancji CRM. W naszym przypadku, ponieważ używamy wersji online CRM, będziesz musiał wspomnieć o tym adresie URL.
Username - Twoja nazwa użytkownika CRM Online.
Password - Twoje hasło CRM Online.
Step 3 - Otwórz SimplifiedConnection.cs plik w tym projekcie i Runmethod w nim.
public void Run(StringconnectionString, boolpromptforDelete) {
try {
// Establish a connection to the organization web service using CrmConnection.
Microsoft.Xrm.Client.CrmConnection connection =
CrmConnection.Parse(connectionString);
// Obtain an organization service proxy.
// The using statement assures that the service proxy will be properly disposed.
using(_orgService = new OrganizationService(connection)) {
//Create any entity records this sample requires.
CreateRequiredRecords();
// Obtain information about the logged on user from the web service.
Guid userid = ((WhoAmIResponse)_orgService.Execute(new WhoAmIRequest())).UserId;
SystemUser systemUser = (SystemUser)_orgService.Retrieve("systemuser",userid,
new ColumnSet(newstring[]{"firstname","lastname"}));
Console.WriteLine("Logged on user is {0} {1}.",
systemUser.FirstName,systemUser.LastName);
// Retrieve the version of Microsoft Dynamics CRM.
RetrieveVersionRequest versionRequest = new RetrieveVersionRequest();
RetrieveVersionResponse versionResponse =
(RetrieveVersionResponse)_orgService.Execute(versionRequest);
Console.WriteLine("Microsoft Dynamics CRM version {0}.",
versionResponse.Version);
// Instantiate an account object. Note the use of option set
enumerations defined in OptionSets.cs.
// Refer to the Entity Metadata topic in the SDK documentation to
determine which attributes must
// be set for each entity.
Account account = new Account{Name = "Fourth Coffee"};
account.AccountCategoryCode = new OptionSetValue(
(int)AccountAccountCateg oryCode.PreferredCustomer);
account.CustomerTypeCode = new OptionSetValue(
(int)AccountCustomerTypeCod e.Investor);
// Create an account record named Fourth Coffee.
_accountId = _orgService.Create(account);
Console.Write("{0} {1} created, ",account.LogicalName,account.Name);
// Retrieve the several attributes from the new account.
ColumnSet cols = new ColumnSet(
new String[]{"name","address1_postalcode","lastusedincampaign"});
Account retrievedAccount =
(Account)_orgService.Retrieve("account", _accountId, cols);
Console.Write("retrieved, ");
// Update the postal code attribute.
retrievedAccount.Address1_PostalCode = "98052";
// The address 2 postal code was set accidentally, so set it to null.
retrievedAccount.Address2_PostalCode = null;
// Shows use of a Money value.
retrievedAccount.Revenue = new Money(5000000);
// Shows use of a Boolean value.
retrievedAccount.CreditOnHold = false;
// Update the account record.
_orgService.Update(retrievedAccount);
Console.WriteLine("and updated.");
// Delete any entity records this sample created.
DeleteRequiredRecords(promptforDelete);
}
}
// Catch any service fault exceptions that Microsoft Dynamics CRM throws.
catch(FaultException<microsoft.xrm.sdk.organizationservicefault>) {
// You can handle an exception here or pass it back to the calling method.
throw;
}
}
Step 4- Ta metoda w zasadzie demonstruje wszystkie operacje CRUD przy użyciu usług internetowych CRM. Kod najpierw tworzy instancję organizacji, następnie tworzy rekord konta, aktualizuje utworzony rekord, a następnie usuwa go. Przyjrzyjmy się ważnym składnikom tego kodu. Aby zobaczyć zmiany w CRM w ruchu, gdy ten kod jest uruchomiony, możesz debugować ten kod krok po kroku (jak omówimy poniżej) i jednocześnie zobaczyć zmiany w CRM.
Step 4.1 - Ustanawia połączenie z organizacją przy użyciu parametrów połączenia, które zmodyfikowaliśmy w Step 2.
Microsoft.Xrm.Client.CrmConnection connection = CrmConnection.Parse(connectionString);
Step 4.2 - Uzyskuje instancję proxy usługi sieciowej organizacji CRM.
_orgService = new OrganizationService(connection)
Step 4.3 - Tworzy nowy obiekt podmiotu Account i ustawia jego nazwę, AccountCategoryCode i CustomerTypeCode.
Account account = new Account{Name = "Fifth Coffee"};
account.AccountCategoryCode = new OptionSetValue(
(int)AccountAccountCategoryCode.P referredCustomer);
account.CustomerTypeCode = new OptionSetValue(
(int)AccountCustomerTypeCode.Investor);
Step 4.4 - Tworzy nowy rekord przy użyciu metody tworzenia usługi organizacji.
_accountId = _orgService.Create(account);
Jeśli przejdziesz do CRM, zobaczysz nowo utworzony rekord konta.
Step 4.5 - Po utworzeniu konta usługa pobiera rekord z CRM przy użyciu metody pobierania usługi internetowej.
ColumnSet cols = new ColumnSet(new String[]{
"name","address1_postalcode","lastusedincampaign"});
Account retrievedAccount =
(Account)_orgService.Retrieve("account", _accountId, cols);
Step 4.6 - Po odzyskaniu rekordu możesz ustawić zaktualizowaną wartość rekordu.
retrievedAccount.Address1_PostalCode = "98052";
retrievedAccount.Address2_PostalCode = null;
retrievedAccount.Revenue = new Money(5000000);
retrievedAccount.CreditOnHold = false;
Step 4.7 - Po ustawieniu zaktualizowanej wartości rekordu, zaktualizuj rekord z powrotem do bazy danych CRM przy użyciu metody Aktualizuj usługę sieciową.
_orgService.Update(retrievedAccount);
Jeśli otworzysz rekord w CRM, zobaczysz tam zaktualizowane wartości.
Step 4.8 - Na koniec usuń rekord za pomocą metody usługi sieciowej Usuń.
_orgService.Delete(Account.EntityLogicalName, _accountId);
Jeśli teraz odświeżysz ten sam rekord w CRM, zobaczysz, że rekord nie jest już dostępny, ponieważ został już usunięty.
Wniosek
W tym rozdziale zajęliśmy się dwiema ważnymi usługami sieciowymi dostarczanymi przez CRM oraz przykładem roboczym tego, jak te usługi internetowe mogą być używane z zewnętrznej aplikacji do wykonywania różnych operacji CRUD.
Rozwiązania zapewniają strukturę do pakowania, instalowania i odinstalowywania komponentów, aby dopasować funkcje biznesowe. Rozwiązania pozwalają konfiguratorom i programistom tworzyć, pakować i utrzymywać jednostki oprogramowania, które rozszerzają CRM. Wszelkie dostosowania, rozszerzenia lub konfiguracje wykonywane w CRM są pakowane, zarządzane i dystrybuowane za pomocą rozwiązań. Rozwiązania można wyeksportować jako plik zip z organizacji źródłowej, który następnie można zaimportować do organizacji docelowej.
Aby to zrozumieć, rozważ następujące przykładowe scenariusze -
Ty, jako programista lub konfigurator, rozszerzyłeś lub dostosowałeś CRM w środowisku programistycznym. Teraz chcesz spakować swoje zmiany i przenieść je do następnego środowiska. W tym celu można tworzyć indywidualne rozwiązania i publikować je w wyższych środowiskach.
Ty, jako zewnętrzny dostawca CRM, stworzyłeś moduł CRM, który umożliwia zarządzanie danymi w jednostkach Microsoft Dynamics CRM przy użyciu zewnętrznych interfejsów API usług internetowych. Teraz chcesz sprzedać ten moduł innym klientom. Korzystając z rozwiązań, możesz spakować ten moduł i dystrybuować je do innych klientów, którzy będą mogli zainstalować to rozwiązanie i korzystać z funkcjonalności dostarczonych przez Twój moduł.
Rodzaje rozwiązań
Domyślne rozwiązanie systemowe
Rozwiązanie systemowe zawiera gotowe składniki rozwiązania zdefiniowane w programie Microsoft Dynamics CRM bez żadnych dostosowań. Wiele składników rozwiązania systemowego można dostosować i można ich używać w rozwiązaniach zarządzanych lub niezarządzanych dostosowaniach.
W trakcie tego samouczka nie tworzyliśmy żadnego rozwiązania i dostosowywaliśmy domyślne rozwiązanie systemowe. Jeśli pamiętasz, udaliśmy się do Ustawienia → Dostosowania → Dostosuj system. Ta opcja bezpośrednio dostosowuje domyślne rozwiązanie.
Zarządzane rozwiązanie
Rozwiązanie zarządzane to rozwiązanie, które jest gotowe i przeznaczone do dystrybucji oraz instalacji. Zarządzane rozwiązania można instalować nad rozwiązaniem systemowym lub innymi rozwiązaniami zarządzanymi.
Important Points -
Jeśli wyeksportujesz rozwiązanie zarządzane z jednej organizacji i zaimportujesz je do innej, nie możesz edytować rozwiązania w nowej organizacji.
Zarządzane rozwiązanie nie odwołuje się bezpośrednio do rozwiązania systemowego.
Odinstalowanie rozwiązania zarządzanego powoduje odinstalowanie wszystkich dostosowań skojarzonych z rozwiązaniem.
Domyślnie zarządzanego rozwiązania nie można dostosowywać w organizacji docelowej. Jednak za pomocą koncepcji właściwości zarządzanych można zdefiniować, czy składnik rozwiązania będzie można dostosowywać, a jeśli tak, to które konkretne części składnika będzie można dostosowywać po wyeksportowaniu rozwiązania jako rozwiązania zarządzanego.
Rozwiązanie niezarządzane
Rozwiązanie niezarządzane to rozwiązanie, które jest wciąż w fazie rozwoju i nie jest przeznaczone do dystrybucji. Rozwiązanie niezarządzane zawiera wszystkie niezarządzane dostosowania składników CRM, w tym wszelkie dodane, zmodyfikowane, usunięte lub usunięte składniki. Domyślnie każde nowe rozwiązanie jest rozwiązaniem niezarządzanym. Można jednak wyeksportować rozwiązanie niezarządzane jako rozwiązanie zarządzane lub niezarządzane.
Important Points -
Jeśli eksportujesz niezarządzane rozwiązanie z jednej organizacji i importujesz je do innej, możesz edytować rozwiązanie w nowej organizacji.
Rozwiązanie niezarządzane bezpośrednio odwołuje się do rozwiązania systemowego. W związku z tym zmiany wprowadzone w jednym niezarządzanym rozwiązaniu zostaną zastosowane do wszystkich niezarządzanych rozwiązań, które odwołują się do tych samych komponentów, w tym rozwiązania systemowego.
Jeśli usuniesz składnik rozwiązania z niezarządzanego rozwiązania, zostanie on trwale usunięty z systemu i nie będzie już dostępny. Jeśli chcesz po prostu usunąć składnik z określonego niezarządzanego rozwiązania, użyj opcji usuń zamiast usuwania.
Odinstalowanie niezarządzanego rozwiązania nie usuwa skojarzonych dostosowań. Po prostu usuwa rozwiązanie z systemu, ale wprowadzone zmiany nadal tam będą.
Składniki rozwiązania
Za pomocą rozwiązania można spakować następujące składniki, które można dostosować przy użyciu rozwiązań domyślnych, niezarządzanych lub zarządzanych.
Typ komponentu | Składnik |
---|---|
Schemat | Podmioty |
Atrybuty | |
Relacje | |
Globalne zestawy opcji | |
Interfejs użytkownika | Wstążka aplikacji |
Mapa witryny | |
Formularze | |
Wstążki jednostki | |
Zasoby internetowe | |
Analityka | Pulpity nawigacyjne |
Raporty | |
Wizualizacje | |
Proces / kod | Procesy |
Dialogi | |
Przepływy pracy | |
Wtyczki | |
Zespoły | |
Kroki przetwarzania | |
Szablony | Korespondencja seryjna |
Kontrakt | |
Artykuł | |
Bezpieczeństwo | Role bezpieczeństwa |
Profile zabezpieczeń na poziomie pola |
Tworzenie rozwiązania
Step 1- Przejdź do Ustawienia → Rozwiązania. Kliknij Nowy.
Step 2 - W wyświetlonym oknie wprowadź poniższe informacje i kliknij przycisk Zapisz i zamknij.
Display Name - Przykładowe rozwiązanie (może to być dowolna nazwa).
Name- Zostanie ustawiony automatycznie na podstawie nazwy wyświetlanej. Możesz to jednak zmienić.
Publisher- Wydawca domyślny. Wydawca rozwiązania udostępnia wspólny prefiks dostosowywania i prefiks wartości opcji. Zdefiniowanie wydawcy rozwiązania kontroluje sposób aktualizacji zarządzanych rozwiązań po ich dystrybucji. Jednak w tym przykładzie iw większości przypadków ogólnych możesz ustawić to jako domyślnego wydawcę.
Version- Określ wersję w następującym formacie: major.minor.build.revision. Na przykład: 1.0.0.0.
Domyślnie każde rozwiązanie jest dodawane jako rozwiązanie niezarządzane. Po dodaniu rozwiązania można dodawać składniki rozwiązania, tworząc je w kontekście tego rozwiązania lub dodając istniejące składniki z innych rozwiązań. Na przykład możesz tworzyć nowe encje, formularze itp. W kontekście tego nowego rozwiązania.
Eksportowanie rozwiązania
Po wprowadzeniu wszystkich zmian, które chcesz spakować jako rozwiązanie zarządzane lub niezarządzane, możesz wyeksportować swoje rozwiązanie w następujący sposób.
Step 1- Otwórz organizację źródłową i przejdź do Ustawienia → Rozwiązania. Wybierz rozwiązanie, które chcesz wyeksportować, i kliknij przycisk Eksportuj.
Step 2 - W oknie Publikuj dostosowania kliknij opcję Publikuj wszystkie dostosowania, a następnie kliknij przycisk Dalej.
Step 3- W kolejnym oknie można opcjonalnie wybrać dowolne ustawienie systemowe, takie jak automatyczne numerowanie, ustawienia kalendarza itp., Które mają być wyeksportowane wraz z rozwiązaniem. Na razie możesz uniknąć wybierania jakiejkolwiek opcji i kliknąć Dalej.
Step 4- W oknie Typ pakietu możesz wybrać, czy chcesz wyeksportować pakiet jako rozwiązanie zarządzane czy niezarządzane. W tym przykładzie wyeksportujmy go jako niezarządzany. Po zakończeniu kliknij Dalej.
Step 5- W następnym oknie możesz zobaczyć źródłową wersję CRM, której używasz i możesz wybrać wersję docelową. Kliknij Eksportuj.
Step 6- Po kliknięciu Eksportuj rozwiązanie zostanie wyeksportowane jako plik zip. Zapisz ten plik zip w wybranym miejscu w systemie.
Importowanie rozwiązania
Teraz zaimportujemy plik ZIP rozwiązania, który wyeksportowaliśmy w poprzedniej sekcji, do nowej organizacji docelowej.
Step 1- Otwórz organizację docelową i przejdź do Ustawienia → Rozwiązania. Kliknij Importuj.
Step 2 - Przeglądaj plik zip pobrany w kroku eksportowania i kliknij Next.
Step 3- W następnym oknie można w razie potrzeby wyświetlić szczegóły pakietu rozwiązania. Kliknięcie Importuj rozpocznie proces importowania rozwiązania.
Step 4- Po zakończeniu procesu importowania zostanie wyświetlony stan sukcesu lub niepowodzenia. Jeśli proces się powiedzie, kliknij opcję Publikuj wszystkie dostosowania. W przypadku niepowodzenia importowania rozwiązania wyświetli szczegółowy dziennik błędów, w którym krok procesu importowania się nie powiódł.
Step 5- Skończyliśmy. Rozwiązanie zostanie pomyślnie zaimportowane do organizacji docelowej. Kliknij Zamknij.
Rozwiązanie konfliktu
Ponieważ możesz mieć wielu programistów pracujących nad dostosowywaniem i rozszerzaniem CRM, będziesz mieć wiele zarządzanych i niezarządzanych rozwiązań. Eksportowanie i importowanie tych rozwiązań może czasami skutkować scenariuszami konfliktu. Na przykład załóżmy, że „Rozwiązanie A” zawiera pole w formularzu, podczas gdy „Rozwiązanie B” usunęło pole, a „Rozwiązanie C” zmieniło nazwę pola. Jaka byłaby ostateczna zmiana w tym scenariuszu? W takich sprzecznych scenariuszach CRM stosuje dwa podejścia.
Merge- To podejście jest stosowane w przypadku komponentów interfejsu użytkownika, takich jak pasek poleceń, wstążki i mapy witryny. Zgodnie z tym podejściem składniki rozwiązania są ponownie obliczane od dołu, a niezarządzane dostosowania organizacji są stosowane jako ostatnie.
Top Wins- To podejście jest używane we wszystkich innych scenariuszach konfliktów, z wyjątkiem składników interfejsu użytkownika. Zgodnie z tym podejściem ostatnia zmiana (zarządzana lub niezarządzana) ma priorytet i zostaje zastosowana.
Wniosek
W tym rozdziale przedstawiliśmy koncepcję rozwiązań oraz różne typy rozwiązań i ich komponenty. Następnie dowiedzieliśmy się, jak tworzyć, eksportować i importować rozwiązanie. Na koniec zbadaliśmy dwie strategie rozwiązywania konfliktów, które mają miejsce, gdy mamy wiele zarządzanych i niezarządzanych rozwiązań mających wpływ na te same składniki rozwiązania.