![]() |
Audio Streaming Information | |
|
Powered by SaNiTaRaC.CoM - DERATIZACIJA DEZINSEKCIJA DEZINFEKCIJA
|
Microsoft CRM: Data Conversion - Import from Act!
Best Software Act! is very popular CRM for small and mid-size organization. This system attracts business owner by its low price, plus system is very easy to use. However if your business is growing you should reach the moment to implement more advanced CRM solution. Natural question is - how do we convert the data from Act! to new CRM solution and the mapping of your objects for conversion. You would probably like to avoid operator data entry with potential numerous errors and mistypes. Assuming that you are IT specialist, we'll give you technical side of Act to MS CRM data migration: ? First you need to download Act! SDK from Best Software website ? Install Act! SDK on the computer, where you plan to do programming ? We'll use asynchronous data export/import model, this means that we'll design the system, containing two parts: export into XML and this XML file import into the CRM ? Lets code Act! data export application, we'll use C# to address Act Framework classes, we'll need these libraries: using Act.Framework; ? To connect to Act! database: ActFramework framework = new ActFramework(); framework.LogOn("Act Username", "password", "SERVER", "Database"); ? Now we need Act field names to map them with the fields in the MS CRM: private void ShowContactsFieldsDescriptions(ActFramework framework) { ContactFieldDescriptor[] cFields = framework.Contacts.GetContactFieldDescriptors(); ContactFieldDescriptor cField; for(int x = 0; x < cFields.Length; x++) { cField = cFields[x]; Console.WriteLine("Table Name: {0}", cField.TableName); Console.WriteLine("Column Name: {0}", cField.ColumnName); Console.WriteLine("Display Name: {0}", cField.DisplayName); Console.WriteLine("ACT Field Type: {0}", cField.ACTFieldType); Console.WriteLine(""); } } ? Let's get contact list and create the file for import instructions to MS CRM: ContactList cList = framework.Contacts.GetContacts(null); FileInfo t = new FileInfo("Contacts.xml"); StreamWriter stw = t.CreateText(); ? Now we form export data: for (int i = 0; i < cList.Count; i++) { string strContactXml = ""; ContactFieldDescriptor cField; Object oValue; // First Name cField = framework.Contacts.GetContactFieldDescriptor("TBL_CONTACT.FIRSTNAME"); oValue = cField.GetValue(cList[i]); if (oValue != null && !(oValue.ToString().Trim().Equals(""))) strContactXml += "[CDATA[" + oValue.ToString() + "]]"; // Last Name cField = framework.Contacts.GetContactFieldDescriptor("TBL_CONTACT.LASTNAME"); oValue = cField.GetValue(cList[i]); if (oValue != null && !(oValue.ToString().Trim().Equals(""))) strContactXml += "[CDATA[" + oValue.ToString() + "]]"; else strContactXml += "" + "N/A" + ""; // Salutation cField = framework.Contacts.GetContactFieldDescriptor("TBL_CONTACT.SALUTATION"); oValue = cField.GetValue(cList[i]); if (oValue != null && !(oValue.ToString().Trim().Equals(""))) strContactXml += "[CDATA[" + oValue.ToString() + "]]"; // Job Title cField = framework.Contacts.GetContactFieldDescriptor("TBL_CONTACT.JOBTITLE"); oValue = cField.GetValue(cList[i]); if (oValue != null && !(oValue.ToString().Trim().Equals(""))) strContactXml += "[CDATA[" + Regex.Replace(oValue.ToString(), "
", " ? This is only portion of the data, that could be transferred into CRM, the whole list of fields is too long for small article, but your could design the whole list of desired fields. Please, pay special attention to replace ? Next is import application creation. We will not describe here connection to MS CRM details - please read Microsoft CRM SDK if you need this examples. We'll concentrate on the nature of the import. The XML export file should look like this: [CDATA[John]][CDATA[Smith]][CDATA[John]][CDATA[1234 W. Big River]][CDATA[Chicago]][CDATA[IL]][CDATA[123456]][CDATA[Toy Corporation]]{4F1849C3-9184-48B5-BB09-078ED7AB2DAD} ? Reading, parsing and MS CRM object creation look is relatively simple: Microsoft.Crm.Platform.Proxy.BizUser bizUser = new Microsoft.Crm.Platform.Proxy.BizUser(); ICredentials credentials = new NetworkCredential(crmUsername, crmPassword, crmDomain); bizUser.Url = crmDir + "BizUser.srf"; bizUser.Credentials = credentials; Microsoft.Crm.Platform.Proxy.CUserAuth userAuth = bizUser.WhoAmI(); // CRMContact proxy object Microsoft.Crm.Platform.Proxy.CRMContact contact = new Microsoft.Crm.Platform.Proxy.CRMContact (); contact.Credentials = credentials; contact.Url = crmDir + "CRMContact.srf"; CorrectXML("Contacts.xml", userAuth.UserId); StreamReader reader = File.OpenText("Contacts.xml"); string input = null; while ((input = reader.ReadLine()) != null) { string strContactId = contact.Create(userAuth, input); Console.WriteLine("Contact {0} is created", strContactId); log.Debug("Contact " + strContactId + " is created"); } ? Just consider in more details CorrectXML function - it places OwnerId into XML contact tree: private void CorrectXML(string fileName, string userId) { File.Move(fileName, fileName + ".old"); StreamReader reader = File.OpenText(fileName + ".old"); FileInfo t = new FileInfo(fileName); StreamWriter writer = t.CreateText(); string input = null; while ((input = reader.ReadLine()) != null) { input = Regex.Replace(input, "{_REPLACE_ME_}", userId); writer.WriteLine(input); } reader.Close(); writer.Close(); File.Delete(fileName + ".old"); } ? Finally, we are launching export, import, opening MS CRM and looking at the contact list, transferred from Act! ? Separate task would be Sales data from Act!, Notes etc. - we plan to describe them in the future articles Good luck with integration! If you want us to do the job - give us a call 1-630-961-5918 or 1-866-528-0577! help@albaspectrum.com Andrew Karasev is Lead Software Developer in Alba Spectrum Technologies - USA nationwide Great Plains, Microsoft CRM customization company, serving clients in Chicago, Houston, Atlanta, Phoenix, New York, Los Angeles, San Francisco, San Diego, Miami, Denver, UK, Australia, Canada, Europe and having locations in multiple states and internationally ( http://www.albaspectrum.com )
MORE RESOURCES: » » » » |
RELATED ARTICLES
Will Adobe Manage to Replace Industry Work Horse Quark Express by Giving Adobe InDesign for Free? And kill the best layout software in the process of gaining market share?***Heard about the Quark "killer"?Adobe InDesign CS2. Will it really "kill" Quark? Adobe has been saying "it will" for the last six years or so, but it hasn't happened. Microsoft CRM Lotus Notes Domino Connector FAQ Microsoft Business Solutions CRM and IBM Lotus Notes Domino, being two groupware products from competing software development leaders, however could coexist within one organization computer network and even work together in collaboration. There maybe multiple reason why corporation would use both products: licensing, commitment to IBM Lotus Notes as legacy product, risk balancing - staking on both Microsoft and Java/EJB/J2EE platforms, deploying Lotus advanced workflow to automate document management, etc. Builders Beware Which Type of Shop Can Rely On A Home Built System?Not all shops are at a disadvantage when it comes to building their own system. To determine which avenue a shop should take, owners must know what type of shops benefit from a self built solution and what type is better off purchasing one. The True Meaning of Freeware The vast majority of us will have, at some point, had freeware games or applications installed on our systems. If you've played an online Java or Flash based game, you've used freeware. Microsoft Great Plains Implementation in Russia - Overview for Consultant Microsoft Business Solutions Great Plains is very popular ERP platform in the USA, Canada (including French speaking Quebec/Montreal), U.K. Microsoft Great Plains Integration Manager: Using Continuum - Overview for Developer Microsoft Business Solutions Great Plains has I'd say end user integration tool - Great Plains Integration manager. Integration Manager itself uses OLE functionality to validate text or ODBC integration files data through Great Plains forms behind the scenes. Is Your Family Protected? When you think about Security, what do you think of? We all have one device or another to assist in keeping us safe. We have pad locks and security systems to safe guard our home, alarm systems to protect the equipment in our cars, parental controls on our cable TV and satellite accesses. Enterprise Resource Planning Overview ERP (Enterprise Resource Planning) Overview covers What is ERP, Brief history of ERP, Why is it necessary, Market Leaders and the future of ERP.What is ERP?Enterprise Resource Planning or ERP is an industry term for integrated, multi-module application software packages that are designed to serve and support multiple business functions. Internet Security Threats: Who Can Read Your Email? Before being able to choose a secure Internet communication system, you need to understand the threats to your security.Since the beginning of the Internet there has been a naive assumption on the part of most email users that the only people who are reading their email are the people they are sending it to. Pros and Cons of Using FREE Software in Your Business Itâ??s easy to understand why you might be drawn to the allure of free software. After all, it is free and free is always a good price to pay. Linux - Keyboard Or Mouse Just stress testing one of the latest Linux distributions. Been testing it for about two months. How Do I Get Rid Of That Darn Spyware? Ad-Aware and Spybot are probably the two most well known antispyware solutions. However, they frequently fail to catch the more crafty spyware. Adware, What Is It? Adware is a type of Spyware program that displays some kind of banner advertising as you're surfing the Internet. Most of the time, you will pick these programs up if you download other programs such as freeware, shareware, and file-sharing programs. Data Quality Best Practices for Salesforce.com Executive SummaryAn effective plan for entering, cleaning and updating the data for your salesforce.com (SFDC) system is critical for achieving success with SFDC. Increase Office Efficiency With One Simple Tool When you need a phone number, you do a quick search on the Internet and in a few seconds, you've got the information you need. And you probably receive a lot of contact information right inside the emails you receive every day. Free PDF Publishing Software In a previous article, I wrote about OpenOffice which an excellent suite of Free Office software which is in the Public Domain.What I did not know is that the Writer (word processing) program creates PDF files too. About Microsoft Sysprep (System Preparation) Utility (Windows 2000) The Microsoft system preparation utility for Windows 2000 is a very handy tool for network support shops that deploy PC images as a means of reformatting PC's with problems. Sysprep basically strips out all the hardware information and unique information from that specific PC, which allows you to deploy the image created from that PC on to many other PC's with different hardware configurations. Software: What Suits Me? Almost all new and major brand of PCs come with bundled software packages that can handle both business and personal needs.However, if you purchase a stripped down model, you might have to spend considerable time and money to add appropriate software packages you vitally need. Computer Phones - Facts and Fallacies The stakes are high when considering security, privacy, and savings, and the old adage, "look before you leap" might be a more judicial approach when searching for a computer phone provider, aka VoIP (voice over internet protocol).FACTS? PC phones (VoIP) can save individuals and businesses up to 80% on current phone bills, regardless of whether calls are made from PC to landlines or mobile phones. Can Group Collaboration Software Meet Business Needs? According to a survey conducted by InfoTrends/CAP Ventures entitled "Content-Centric Collaboration," 51 percent of businesspeople utilizing technology such as Microsoft Office and e-mail collaborate almost daily as a part of their business operations and need group collaboration software to support electronic collaboration.The report indicated that the need would continue to grow over the next year. |