Import propojených záznamů do Microsoft CRM 4 

Posted by Jiří Cabal Tuesday, August 12, 2008 1:34:22 PM

Článek popisuje krok po kroku import Obchodních vztahů a Kontaktů, které se původně nacházejí v jedné tabulce v Excelu. Postup je snadno obměnitelný na jiné entity.

Nejčastěji se s tímto problémem můžeme setkat při novém nasazení CRM. Pokud se firma rozhodne, že začne používat Microsoft Dynamics CRM, tak pravděpodobně již před tím musela shromažďovat některé informace např. o zákaznících a dodavatelích jinde, nejčastěji v excelovské tabulce. Takovýto základní adresář může mít podobu tabulky, kde bude uveden např. název firmy, její adresa, fakturační údaje, telefon, jméno kontaktní osoby, její email a mobilní telefon.

Před námi nyní bude stát úkol importovat data z původní tabulky do Microsoft CRM. Již po zběžné prohlídce Microsoft CRM zjistíme, že naší původní tabulce budou odpovídat dvě tabulky (entity, typy záznamů) v Microsoft CRM, konkrétně Obchodní vztahy a Kontakty. Na první pohled to může vypadat nepřehledně, nicméně vše má svoji logiku a význam. Obchodní vztah představuje nejčastěji firmu, která s námi jakkoliv spolupracuje, a Kontakt představuje jednu osobu z dané firmy. Tento systém uspořádání nám umožňuje evidovat u jedné firmy větší množství osob (Kontaktů), se kterými komunikujeme a spolupracujeme. Dále také není problém mít v evidenci Obchodní vztah bez konkrétního Kontaktu anebo Kontakt, který nebude spadat pod žádný Obchodní vztah.

Při našem importu, prováděném ve více krocích, bude dvakrát proveden standardní import dat do Microsoft CRM, který zde také popíši. Navíc bude postup rozšířen o návod, jak zachovat propojení Obchodního vztahu a Kontaktu.

  1. Máme k dispozici tabulku v Excelu obsahující vždy na jednom řádku informace o Obchodním vztahu a jemu přidruženém Kontaktu. Tento soubor doporučuji zálohovat nebo pracovat s jeho kopií, obzvláště nejste-li si zcela jisti v pokročilém ovládání Excelu.
  2. V tabulce vybereme sloupce, které se týkají Obchodního vztahu (název, adresa, fakturační údaje, webové stránky, společný telefon a email a další) a zkopírujeme je do nového sešitu. Nyní bychom se měli ujistit, že všechny sloupce mají vyplněné záhlaví. Také bychom měli odstranit případné Entery v buňkách. A s ohledem k dalšímu postupu by bylo vhodné ze záhlaví vymazat případné (interpunkční) čárky.
  3. Tento nový sešit (resp. pouze list) uložíme jako soubor s příponou CSV (např. accounts.csv), přičemž bude nutné dvakrát potvrdit, že ho skutečně chceme uložit v tomto formátu.
  4. Nyní budeme potřebovat provést několik operací s nově vzniklým souborem accounts.csv. Soubory .csv jsou textové soubory, které však reprezentují tabulku. K operacím s těmito soubory je, dle mého názoru, nejlepší volně dostupný PSPad (http://www.pspad.com/cz/download.php).
  5. Nejprve bude potřeba uložit soubor ve znakové sadě UTF-16LE tak, aby CRM přečetlo správně všechna písmena včetně háčků a čárek. Excel standardně vytváří soubory ve znakové sadě Windows CP1250. V PSPadu provedeme změnu tak, že v menu Formát klikneme na UTF-16LE. Následně stačí soubor pouze uložit.
  6. Pro budoucí potřebu si vytvoříme kopii našeho souboru, kterou nazveme např. accounts-hlavicky.csv. V tomto souboru vymažeme všechny řádky mimo prvního, který obsahuje záhlaví sloupců. Tento soubor využijeme za chvíli při importu k mapování sloupců (určení, který sloupec ze souboru má být přiřazen kterému poli u Obchodního vztahu). Nicméně Microsoft CRM u tohoto souboru vyžaduje, aby sloupce (buňky) byly odděleny čárkami. Proto v souboru provedeme nahrazení středníků za čárky (v PSPadu Ctrl+H). Soubor uložíme (automaticky by měl být již také ve znakové sadě UTF-16LE).
  7. Nyní se již podíváme do CRM, kde na Pracovní ploše v Úkolech vybereme Importy. Po načtení zvolíme Nový. Jako Datový soubor vybereme soubor accounts.csv, oddělovač dat ponecháme (“) a oddělovač polí nastavíme na středník (;). Klikneme na Další. Typ záznámu zvolíme Obchodní vztah. Dále nás čeká mapování dat – klikneme na tlačítko vedle políčka, v otevřeném okně zvolíme Nový. Nyní vytvoříme novou Mapu dat. Nejprve vyplníme její název – za vhodné považuji použít název entity (Obchodní vztah) a datum a čas či pořadové označení (zejména zpočátku v době pokusů). Typ Záznamu nastavíme na Obchodní vztah. Poté vlevo vybereme atributy, klikneme na tlačítko Načíst ukázková data, kde vybereme soubor accounts-hlavicky.csv. Nyní vždy v obou tabulkách vybereme myší sobě si odpovídající řádky a klikneme na Mapovat. Povinně mapovaná musí být v tomto případě pouze položka Název obchodního vztahu. Nahoře klikneme na Uložit a zavřít, v dalším okně vybereme nově vytvořenou položku a klikneme na OK. (Datová mapa, kterou jsme vytvořili, bude připravena i pro další použití.)
    Importy v Microsoft CRM
  8. Nyní nám budou nahlášeny případné problémy se spárováním. Pokud je vše v pořádku, klikneme na Další. Výběr zda importovat duplicitní záznamy bych, zvláště v tomto případě, ponechal na „ne“. Klepneme na Další a následně na Importovat. Import dat probíhá asynchronně, nezačne tedy okamžitě a může chvíli trvat. Jeho průběh můžeme sledovat obnovováním okna s Importy. A následně poklikáním na import zjistit případné chyby při samotném importu.
    dialog po uspesnem sparovani
  9. Pokud vše proběhlo podle našich představ, čeká nás nyní podobný postup s údaji z tabulky vztahujícími se ke Kontaktu, ale musíme také zajistit, aby byl každý Kontakt zařazen ke svému Obchodnímu vztahu. Obchodní vztah je jednoznačně určen svým GUID, nikoliv názvem. Takže musíme zjistit, jaká GUID byla přiřazena našim nově vloženým Obchodním vztahům a správně je přiřadit ke Kontaktům.
  10. Získání GUID: Microsoft CRM poskytuje několik možností exportu. Export do statického listu však neumožňuje exportovat záznamy včetně jejich GUID a práce s dynamický sešity je poměrně složitá (je možné, že se jí budeme zabývat v některém s dalších příspěvku do blogu). Rozhodli jsme se proto použít externí nástroj MSCRMImport, který lze získat zdarma na http://www.codeplex.com/MSCRMimport/Release/ProjectReleases.aspx. (V našem nasazení Microsoft CRM bylo nutné stáhnout verzi „For_VPC“.) Program rozbalíme a spustíme ze složky Release. Vyplníme přihlašovací údaje (pokud je neznáme, získáme je u správce CRM). Po spuštění programu vybereme z Entities Obchodní vztah a z Views Aktivní obchodní vztahy. (Pokud bychom měli obchodních vztahů hodně a nově přidaných by byla jen malá část z nich, je vhodné nad nově importovanými záznamy vytvořit dočasně zobrazení a vyexportovat pouze tyto nové záznamy.) Klikneme na Export Records to CSV.
  11. Nový soubor se nám otevře v Excelu, odstraníme zde všechny sloupce mimo Účet (kde je GUID) a Název obchodního vztahu. Přehodíme sloupce tak, aby byl první sloupec Název obchodního vztahu a zkontrolujeme, zda-li jsou v něm data setříděna vzestupně (tj. podle abecedy).
  12. V souboru vytvoříme nový list, kam zkopírujeme nás původní adresář firem. Na tomto listě z tabulky odstraníme sloupce týkající se Obchodního vztahu mimo názvu firmy (Obchodního vztahu) a sloupce uspořádáme tak, aby byl první sloupec volný (nadepíšeme GUID) a v druhém byly názvy firem.
  13. Nyní doplníme do tabulky s kontakty odpovídající GUID. K tomu nám poslouží funkce VLOOKUP (v české verzi SVYHLEDAT), která bude mít v první buňce tvar =VLOOKUP(B2;accouts2_exported!A2:B80;2). První argument je vyhledávaná hodnota, druhý argument je celá tabulka na prvním listu (bez záhlaví), třetí argument představuje pořadí sloupce, ze kterého se má vkládat hodnota. Dále si musíme uvědomit, že Kontakt může mít jako nadřazený záznam nejen Obchodní vztah, ale také jiný kontakt. Abychom specifikovali, že kontakt přiřazujeme k obchodnímu vztahu, potřebujeme, aby hodnota v buňce vypadala ve finální podobě například takto: account,{c0716f5e-ee62-dd11-ab9c-0003ff83f523}. Takže vzorec v buňce upravíme na: ="account,{"&(VLOOKUP(B2;accouts2_exported!A2:B80;2))&"}". Pokud se povedlo a funkce vrátila GUID, můžeme ji roztáhnout do všech ostatních buněk třeba poklepáním na její pravý dolní roh.
  14. Nyní nás čeká import kontaktů. Postup bude obdobný jako v krocích 2-8 s hlavními rozdíly v tom, že při mapování dat bude povinné pole Příjmení. Dále musíme pole GUID z našeho souboru namapovat na pole Nadřazený zákazník, aby se Kontakty propojili s Obchodními vztahy. Sloupec Název firmy necháme nemapovaný.
    mapování sloupců
  15. Pokud proběhl import v pořádku, nezbývá nám než prověřit i správné spárování Kontaktů s Obchodními vztahy.

 

Poznámky

Tento postup se může zdát poměrně komplikovaný. Netvrdím, že se jedná o nejsnadnější či nejsprávnější postup či dokonce jediný možný postup. Nicméně vznikl na základě praxe, je funkční a bere v potaz nejčastější možné problémy. Některé pasáže také mohou příliš podrobně popisovat základní práci nejen se CRM, ale věřím, že to umožní praktikovat postup i začátečníkům bez nutnosti dohledávat další zdroje.

V postupu mohou být uplatněny některé nuance dle konkrétní situace. Může to být zejména:

  • Použití jiné znakové sady, ačkoliv v praxi při používání českých znaků se mi nejlépe osvědčila UTF-16LE.
  • Používání různých oddělovačů i další práce s CSV soubory.
  • K exportu dat lze použít zmiňované dynamické sešity, popř. jiné externí nástroje.
  • Import dat lze provést taktéž pomocí externích nástrojů, například nástrojem, který jsme v tomto článku používali k exportu.
  • Používání a vytváření datových map se lze vyhnout tak, že sloupce pojmenujeme přesně podle toho, jak se jmenují v CRM. CRM si je pak namapuje samo. (Při využití této možnosti stačilo, z ne zcela zřetelných důvodů, mít GUID v souboru s kontakty pouze ve tvaru c0716f5e-ee62-dd11-ab9c-0003ff83f523).

 

Zdroje dalších informaci:

http://blogs.msdn.com/crm/archive/2008/01/25/data-manipulation-tool.aspx
http://office.microsoft.com/cs-cz/excel/HP052093351029.aspx
http://blogs.msdn.com/crm/archive/2007/12/17/microsoft-dynamics-crm-data-import.aspx
http://forums.microsoft.com/Dynamics/ShowPost.aspx?PostID=2966322&SiteID=27
http://en.wikipedia.org/wiki/UTF-16
http://www.codeplex.com/MSCRMimport
http://www.codeplex.com/mscrmbulkdataexport

 

ORTEX spol s.r.o.
1 + 1 =