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;
using Act.Framework.Activities;
using Act.Framework.Companies;
using Act.Framework.ComponentModel;
using Act.Framework.Contacts;
using Act.Framework.Database;
using Act.Framework.Groups;
using Act.Framework.Histories;
using Act.Framework.Lookups;
using Act.Framework.MutableEntities;
using Act.Framework.Notes;
using Act.Framework.Opportunities;
using Act.Framework.Users;
using Act.Shared.Collections;
? 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
HTML tag ? this is required for text data transfer into CRM
? 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 )
|
|
|
Create A Flash Presentation For Free With Open Office
The intentions of this short tutorial are not to teach you how to use Open Office, but rather to show you a quick and dirty way to create presentations and tutorials that can be exported as a Macromedai Flash file.What is Open Office? It is a free, open source, c...(related: Software)
Microsoft Great Plains International Implementation ? Usa / Mexico ? Overview For Consultant
Microsoft Business Solutions Great Plains was purchased from Great Plains Software and Great Plains Software itself had strong international marketing plans and campaigns. If we look back to 1990th ? we'll see that GPS had Multilanguage support and Great Plains Dynamics / Dynamics C/S+ was localized and translated into multiple languages, including Spanish. Localization means not only the translation, but also adaptation to specific local country tax rules (Sales Tax versus Value Added Tax VAT, GST, specific payroll taxes, etc.). Let's consider typical case when we see international company with headquarters and distribution centers in the US and manufacturing and purchasing in Mexico? Multicurrency. As we expect to do the busine...(related: Software)
How To Develop Software For Your Business
Software development is a risky business.Many software developers are barely skilled at their trade, much less at business. They can't understand how your business operates - and their code isn't unreliable.It crashes constantly.It isn't professional.It hurts your business.If you want software developed for your business, what can you do?You need a software development professional - a consumate bussinessman, and you need to deal with him on your terms. How can you do that?First, you need to make sure that you find a professional who understands business - your business. He has to listen, and be cautious before giving advice. If he tries to drop a pre-packaged solution on you, drop him. Make sure he charges by the project, ...(related: Software)
Tripwire For Linux File Integrity
What is Tripwire?Tripwire is a form intrusion detection system (IDS) that helps you keep tabs on the integrity of the files on your computer. Quite simply it will help identify files or modifications made to your system in the event someone compromised your system.How does Tripwire work?Tripwire works on a pretty easy to understand concept. Basically, when you install Tripwire on your linux box you tell it to scan your system and create a database of checksums and information. Once you have a good reference point or database setup, you then scan your syst...(related: Software)
It?s Back!! Wordperfect?s Amazing Comeback
Have you noticed WordPerfect is gearing up for a comeback in a big way? And fortunately, they are succeeding. If you're like me, an ole' diehard WordPerfect 5 user, this is music to my ears. I love Microsoft Word, but I long for some of the features WordPerfect had to offer.Among the great advancements WordPerfect has made are their OfficeReady products. These are customized template packages that allow you to pull up ready-made templates and customize them for your business. You can then easily prepare your documents, spreadsheets and presentations. PowerPoint presentations have never been easier, and if you want to design a newsletter for your business, this is the way to do it. I recommend that you chec...(related: Software)
The Hidden Power Of Online Manual
Writing software manuals is boring, isn't it? We often think: "My software is easy to use. The user interface is intuitive. Why should I waste so much time for writing the document which nobody reads anyway?" Sometimes it's true ? I've never read the WinZip or Internet Explorer manuals ? everything seems clear without explanati...(related: Software)
Microsoft Great Plains Implementation ? Overview For It Director/controller
What is installation in the language of technology? Installation has server and client sides.
- Server side - Installation creates security environment (logins) on MS SQL Server or MSDE, creates system database - DYNAMICS and then company databases. All thes...(related: Software)
Great Plains Customization ? Programming Auto-apply In Accounts Receivable
Microsoft Great Plains is one of three Microsoft Business Solutions mid-market ERP products: Great Plains, Solomon, Navision. Considering that Great Plains is now very good candidate for integration with POS application, such as Microsoft Retail Management System or RMS and Client Relation Systems, such as Microsoft CRM ? there is common need in Great Plains customizations and integrations, especially on the level of MS SQL Se...(related: Software)
Microsoft Great Plains: Government & Non-profit Organization ? Workflow Implementation
Usually workflow & messaging is realized in CRM and then transactions are just logged into Accounting/ERP/MRP. In the case of Microsoft Business Solutions products: Microsoft Great Plains, Navision, Solomon, Axapta the natural CRM choice would be Microsoft CRM. However typical CRM application targets Sales automation, wh...(related: Software)
site-map - Copyright © 2008 | Contact Webmaster | All Rights Reserved. | Software