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();
Fi le.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 )
best cleaning company Lincolnshire ..Three highly respected names in Human Resources have joined forces... Read More
Case study: A secretary using Corel WordPerfect 7 is often... Read More
Microsoft Business Solutions Great Plains version 8.5, 8.0, 7.5, Great... Read More
Fundraising software lets you connect with donors in a way... Read More
If you've been using MySQL database to store your important... Read More
We would like first emphasize the change in the paradigm.... Read More
The COSMIC FP (function point) software quality metric, is no... Read More
Are you ready? SQL Server 2005, the next-generation data management... Read More
Microsoft Great Plains is main Microsoft Business Solutions product, targeted... Read More
Our hosted solution allow you to run your own search... Read More
This is the tutorial where we really get into programming.... Read More
We all already got used to computer monitoring both at... Read More
If you have been using the Internet for any amount... Read More
If someone entered your home, uninvited and installed numerous cameras... Read More
Professional services firm cuts costs and improves productivity with integrated... Read More
MicroWorld Technologies, Inc. the leading solutions provider in the area... Read More
Microsoft Business Solutions Great Plains, former Great Plains Software eEnterprise,... Read More
I have recently created my first Php program. I wanted... Read More
Costs of fleet maintenance software can vary widely. It is... Read More
Microsoft CRM has built-in conversion tool, however you should probably... Read More
Preventive Maintenance (PM) is defined as scheduled work done on... Read More
I suggest that you do not spend a lot of... Read More
Former Great Plains Software Dynamics/eEnterprise and currently Microsoft Business Solutions... Read More
In the new era of internet marketing the problem of... Read More
Microsoft Business Solutions Great Plains has I'd say end user... Read More
on demand house cleaning Lake Forest ..Now there are Three Steps To Heaven Just listen and... Read More
Combining Microsoft Business Solutions Great Plains ERP with non-Microsoft Business... Read More
NOTE: Please take time to read on - it may... Read More
Microsoft Business Solutions Great Plains version 8.5, 8.0, 7.5, Great... Read More
Ok... Where to start?Well, I guess I will start at... Read More
If you feel intimidated when someone tries to teach you... Read More
Many Webmasters have never bothered to view their website's server... Read More
Microsoft Business Solutions Great Plains is written in Great Plains... Read More
TikiWiki is open source software - it is written in... Read More
This is intermediate level SQL scripting article for DB Administrator,... Read More
If you have Microsoft Great Plains and support it for... Read More
1. With mapping software you can create a report that... Read More
Case study: A secretary using Corel WordPerfect 7 is often... Read More
Spyware and Adware infest over 90 percent of computers in... Read More
Creating a new markup language.Introduction.General Reuse Markup Langauge, or GRML,... Read More
Whether you are an experienced web programmer or a complete... Read More
I have recently created my first Php program. I wanted... Read More
Anti-virus software is used to find, remove or fix files... Read More
Need help making sense of algebra? Have algebra lectures in... Read More
Pirated software is on the increase and now accounts for... Read More
Are you one of those people that keeps track of... Read More
Microsoft CRM is now on the scene and it is... Read More
Each Industry and market niche has business specific and unique... Read More
In this article you will find some background information about... Read More
Usually workflow & messaging is realized in CRM and then... Read More
Software |