Tuesday, October 16, 2007

CRM 4.0 Plug-In

I posted a blog article about CRM 4.0 Plug-In on our company blog, hope to give CRM developers some ideas on what CRM plug-in is, etc...

click the link below to view the article.

http://crowechizek.typepad.com/crm/2007/10/microsoft-dyn-2.html

Tuesday, October 09, 2007

CRM 4.0 VPC

CRM 4.0 is available for partners to download, you can download the image from the link below:

https://mbs.microsoft.com/partnersource/products/mscrm/

The CRM application expire 11/20/2007 and the VPC image itself expire 11/30/2008.

Monday, October 01, 2007

CRM Titan - Data Import/Migration Tool

The new CRM Titan data import tool has been improved from the previous version and it's also easier to import data into CRM. The data migration tool contains the following new features:

  • Ability to import most record types, including custom types, not just the four types (accounts, contacts, leads and campaign responses) that may be imported before.
  • Automatic mapping of imported records. (e.g. if you have a pick list contain Value A, B, C and D. It will automatically does the lookup and the mapping of the pick list value, if it can't find the value, it will automatically add the value to the pick list field)
  • Ability to re-use data maps. (If you have a import process that imports data in a file that contains the the same file format (same columns and data type), you don't have to recreate the mappings every time when doing the import. You can create the mapping once and reuse it the next time when you import the file with the same data format)
  • Email notification when import jobs are done. During the import process, there's an option that you can set to have CRM notify you that the import jobs are done.
  • Duplicate detection enhancement. Works with the dup check system in CRM. If a duplicate is detected, it will not import the record.
  • Improve error handling. If a import job failed, you will able to see why the job fails.

ScreenHunter_02 Oct. 01 16.55

ScreenHunter_05 Oct. 01 17.10

The migration tool for Titan  can do more than the Data import tool of course. You can :

  • Related records from multiple record types
  • Create custom entities and attributes automatically during the data migration process.
  • Migrate Notes and attached files (I have not try this myself, still need to verify)
  • Records can assign to multiple Microsoft CRM 4.0 users.

CRM Data Migration tool is a separate install and it didn't install by the default CRM installation. Both Data Migration and Import tool will first go through creating/updating the metadata first, then import the data to CRM.

ScreenHunter_03 Oct. 01 17.05

ScreenHunter_04 Oct. 01 17.09

There's a lot more you can do with the data import and migration tool now, I am still digging the tool to see what it can do. :)

CRM Titan - Cross Entity View

When you trying to create a view or do an advance find in CRM, you are restricted in CRM version 3.0 to only display the fields of the entity you are currently working with. The ability to show related entity data, although often requested, was not possible. With Titan (CRM 4.0), you can now display the fields from the primary entity and related entities. For example, you may want to return opportunity records with columns related to the estimated opportunity amounts and close dates but also see the account name and state in the view (or resulting Excel export), with Titan, this is now possible.

I will provide a more detailed example later this week, but for the moment I wanted to show off a new feature in the next CRM release that I think will make many users (and implementers) very happy. Take a look at the screen shot for a quick preview (click on image thumbnail to get a full size image).

ScreenHunter_01 Oct. 01 16.31

Thursday, March 22, 2007

Secondary Lookup

From the CRM blogs, many people asked how to add a secondary lookup to the Account and Contact form? Due to CRM 3.0's limitation, we are not able to create another relationship between account to contact or contact to account.

To add another lookup, we need to use JavaScript to inject some codes to the CRM form. The way that I am showing here will not create a relationship between the entities. Instead, it will store the Name and the GUID with the record. I used JavaScript to add a lookup fied to the form.  In this sample, I will add a secondary contact lookup to an Account.

Pro: You will able to create the lookup field and also able to use the CRM lookup box. You can create as many as you wanted. :=)

Con: If the Name changed for the contact, it will not update the name that store in the account entity. If you want to upda the name, you need to write a postcallout to update the name in the account record.

Here are the steps to create a secondary lookup:

Step 1: Create two custom attributes in the Account Entity.

Display Name: Secondary Contact
Schema Name: new_secondarycontactname
Type: String
Description: Stores the Contact name

Display Name: Secondary Contact Value
Schema Name: new_secondarycontactvalue
Type: String
Description: Stores the GUID for the Contact

 

Step 2: Add two newly created attributes to the account form.

Take out the label for "Secondary Contact Value" field. We will use JavaScript to hide the "Secondary Contact Value" field later.

 

Step 3: Insert the following code to the Account form onLoad event.

The code below will replace the Secondary Contact text field with a Lookup box.

--------------------------------------------------------------------------------

crmForm.all.new_secondarycontactvalue.style.visibility="hidden";


customSecondaryLookup("new_secondarycontactname");
  }
  catch(e)
  {
    alert(e.description);
  }
 }
}
 
function customSecondaryLookup(displayFieldName)
{
 {
   try { 
           var fld = crmForm.elements[displayFieldName];
           var temp = fld.value;
           
           if (temp.length == 0){
              fld.insertAdjacentHTML("afterEnd","<table class='lu' cellpadding='0' cellspacing='0' width='100%' style='table-layout:fixed;'><tr><td><div class='lu'>&nbsp;</div></td><td width='25' style='text-align: right;'><img src='/_imgs/btn_off_lookup.gif' id='" + displayFieldName + "' class='lu' lookuptypes='2' lookuptypenames='contact:2' lookuptypeIcons='/_imgs/ico_16_2.gif' lookupclass='BasicCustomer' lookupbrowse='0' lookupstyle='single' defaulttype='0' req='0'></td></tr></table>");
           }
           else
           {
 
fld.insertAdjacentHTML("afterEnd","<table class='lu' cellpadding='0' cellspacing='0' width='100%' style='table-layout:fixed;'><tr><td><div class='lu'><span class='lui' onclick='openlui()' oid='" + temp + "' otype='2' otypename='contact'><img class='lui' src='/_imgs/ico_16_2.gif'>" + crmForm.all.new_secondarycontactvalue.value +"</span></div></td><td width='25' style='text-align: right;'><img src='/_imgs/btn_off_lookup.gif' id='"+ displayFieldName +"' class='lu' lookuptypes='2' lookuptypenames='contact:2' lookuptypeIcons='/_imgs/ico_16_2.gif' lookupclass='BasicCustomer' lookupbrowse='0' lookupstyle='single' defaulttype='0' req='0'></td></tr></table>");
 
           }
      fld.parentNode.removeChild(fld);
      fld = crmForm.elements[displayFieldName];
      fld.value = temp;

---------------------------------------------------------------------------------


Step 4: Insert the following code to the Account form onSave event.


The code below will stripe out the GUID for the Contact from the return lookup HTML and save it to the Secondary Lookup Value field.


---------------------------------------------------------------------------------


var S_CONTACT_NAME = crmForm.all.new_secondarycontactname.parentElement.parentElement.firstChild.innerText;
 
crmForm.all.new_secondarycontactvalue.value = S_CONTACT_NAME;

---------------------------------------------------------------------------------


Step 5: Save the Account Form.


Step 6: Publish the Account Form.


Happy Programming!

Monday, December 11, 2006

GP and CRM Integration

For those who would like to get GP and CRM integrated, I am highly recommend using Scribe. Scribe provides a template for the integration. All of the standard fields are pre-mapped, what you needed to do is to modify the template for any custom fields that you created in CRM or GP that you would like them to integrated.

In order to do the integration, you need eConnect for getting data out of GP which eConnect is provided to you for free. You also need Scribe Workbench (Tool to define the mappings), Scribe Insight (Like a job scheduler), CRM Adapter and GP Adapter. The cost of the Scribe pakage is around $4,000, which can save you a lot of time and effort comparing to other integration methods. The other benefit of using Scribe is that you can use Scribe for other data integration and migration.

Friday, October 27, 2006

Access Rights Mask

If you wonder how the number is generated for access certain records in CRM. Here's a reference for you.

Access Right Values:

Read = 1
Write = 2
Append = 4
AppendTo = 16
Create = 16
Delete = 65536
Share = 262144
Assign = 524288

So if you want to grant read and write access, then just add up the read and write value. (e.g. Read (1) + Write (2) = ReadWrite (3) )