Monday, November 29, 2010
Meta Data List can be seen as follows in ms crm 4.0
http://ServerName/Port/Organization/sdk/list.aspx
Tuesday, November 2, 2010
Guide to Dynamics CRM 4.0 Editions and Licensing
The purpose of this guide is to help you find the Dynamics CRM server and licenses appropriate to your organization's needs.
Microsoft Dynamics CRM 4.0 is available in three editions, each appropriate for different sizes and types of organizations. Additionally, several different licensing configurations are available, depending on the number and kind of users who will access the CRM database, as well as the type of access necessary.
Server Editions
Three separate versions of the Dynamics CRM 4.0 server are available through TechSoup Stock: Workgroup Server, Professional Server, and Enterprise Server.
Dynamics CRM 4.0 Workgroup Server: Dynamics CRM 4.0 Workgroup Server offers the same features as Professional Server, but does not operate under the Server/CAL licensing model. CRM 4.0 Workgroup Server includes licenses for a maximum of five users to access the server from any number of computers or other devices. There are no licenses available for additional users, devices, or external users.
Dynamics CRM 4.0 Professional Server: Dynamics CRM 4.0 Professional Server operates under a Server/CAL licensing model, similar to many other Microsoft server products. Client access licenses may be acquired on a per-user or per-device model, depending on the needs of the organization. See Client Access Licenses below.
Dynamics CRM 4.0 Enterprise Server: Dynamics CRM 4.0 Enterprise Server offers the same features and licensing model as Dynamics CRM 4.0 Professional Server, with the additional benefit of a multi-tenant architecture. In other words, the Enterprise Server allows organizations to maintain multiple, distinct CRM databases on one server with only one server license.
Client Access Licenses
Dynamics CRM 4.0 Professional and Enterprise require a client access license (CAL) for each user or device accessing the server. There are three different types of CALs available on either a per-user or per-device model.
Limited CAL: The limited CAL allows a user or device read-only access to the CRM server. In other words, users with a limited CAL may access CRM information but may not make any edits or updates to it.
Full Use Additive CAL: When used in conjunction with a limited CAL, a full use additive CAL allows a user or device write access to the CRM server, thus allowing the user or device full read-write access to the server. The full use additive CAL may be used only in conjunction with a limited CAL.
CAL: The CAL provides a user or device full read-write access to the CRM server. The CAL is functionally equivalent to a combined limited and full use additive CAL.
As with many other Microsoft server technologies, the CALs listed above are each available on a per-user or per-device basis. A user CAL authorizes one user to access the CRM server from any computer or other device (for example, when an employee accesses the server from a computer at work and another at home). A device CAL authorizes one computer or other device to access the CRM server, regardless of the number of users (for example, on a shared workstation).
External Connector Licenses
An external connector (EC) license allows any number of external users to access a single installation of Dynamics CRM 4.0 Professional or Enterprise. External users may not use the Dynamics CRM applications directly.
Generally, an external user is defined as anyone who is not an employee of the organization. For example, external users can include clients, suppliers, and alumni of the organization. External users do not include independent contractors, agents, service providers, or other persons providing services to or on behalf of the organization holding the license. As an alternative to an EC license, some organizations may choose to license each external user with a separate CAL or CALs.
EC licenses may not be used as a means of reselling or repackaging Dynamics CRM as a hosted service.
Limited External Connector: The limited EC license allows external users read-only access to the CRM server. In other words, external users may access CRM information but may not make any edits or updates to it.
Full Use Additive External Connector: When used in conjunction with a limited EC license, a full use additive EC license allows external users write access to the CRM server, thus allowing full read-write access to the server. The full use additive EC license may be used only in conjunction with a limited EC license.
External Connector: The EC license provides external users full read-write access to the CRM server. The EC license is functionally equivalent to a combined limited and full use additive EC license.
Microsoft Dynamics CRM 4.0 is available in three editions, each appropriate for different sizes and types of organizations. Additionally, several different licensing configurations are available, depending on the number and kind of users who will access the CRM database, as well as the type of access necessary.
Server Editions
Three separate versions of the Dynamics CRM 4.0 server are available through TechSoup Stock: Workgroup Server, Professional Server, and Enterprise Server.
Dynamics CRM 4.0 Workgroup Server: Dynamics CRM 4.0 Workgroup Server offers the same features as Professional Server, but does not operate under the Server/CAL licensing model. CRM 4.0 Workgroup Server includes licenses for a maximum of five users to access the server from any number of computers or other devices. There are no licenses available for additional users, devices, or external users.
Dynamics CRM 4.0 Professional Server: Dynamics CRM 4.0 Professional Server operates under a Server/CAL licensing model, similar to many other Microsoft server products. Client access licenses may be acquired on a per-user or per-device model, depending on the needs of the organization. See Client Access Licenses below.
Dynamics CRM 4.0 Enterprise Server: Dynamics CRM 4.0 Enterprise Server offers the same features and licensing model as Dynamics CRM 4.0 Professional Server, with the additional benefit of a multi-tenant architecture. In other words, the Enterprise Server allows organizations to maintain multiple, distinct CRM databases on one server with only one server license.
Client Access Licenses
Dynamics CRM 4.0 Professional and Enterprise require a client access license (CAL) for each user or device accessing the server. There are three different types of CALs available on either a per-user or per-device model.
Limited CAL: The limited CAL allows a user or device read-only access to the CRM server. In other words, users with a limited CAL may access CRM information but may not make any edits or updates to it.
Full Use Additive CAL: When used in conjunction with a limited CAL, a full use additive CAL allows a user or device write access to the CRM server, thus allowing the user or device full read-write access to the server. The full use additive CAL may be used only in conjunction with a limited CAL.
CAL: The CAL provides a user or device full read-write access to the CRM server. The CAL is functionally equivalent to a combined limited and full use additive CAL.
As with many other Microsoft server technologies, the CALs listed above are each available on a per-user or per-device basis. A user CAL authorizes one user to access the CRM server from any computer or other device (for example, when an employee accesses the server from a computer at work and another at home). A device CAL authorizes one computer or other device to access the CRM server, regardless of the number of users (for example, on a shared workstation).
External Connector Licenses
An external connector (EC) license allows any number of external users to access a single installation of Dynamics CRM 4.0 Professional or Enterprise. External users may not use the Dynamics CRM applications directly.
Generally, an external user is defined as anyone who is not an employee of the organization. For example, external users can include clients, suppliers, and alumni of the organization. External users do not include independent contractors, agents, service providers, or other persons providing services to or on behalf of the organization holding the license. As an alternative to an EC license, some organizations may choose to license each external user with a separate CAL or CALs.
EC licenses may not be used as a means of reselling or repackaging Dynamics CRM as a hosted service.
Limited External Connector: The limited EC license allows external users read-only access to the CRM server. In other words, external users may access CRM information but may not make any edits or updates to it.
Full Use Additive External Connector: When used in conjunction with a limited EC license, a full use additive EC license allows external users write access to the CRM server, thus allowing full read-write access to the server. The full use additive EC license may be used only in conjunction with a limited EC license.
External Connector: The EC license provides external users full read-write access to the CRM server. The EC license is functionally equivalent to a combined limited and full use additive EC license.
Labels:
and Licensing,
CRM 4.0,
Editions,
Guide,
to Dynamics
Wednesday, October 27, 2010
Disabling Notes for deactivated records MS CRM
In the OnLoad event:
Code Snippet
/* [s] Disables the creation of new Notes, and editing of existing notes. Attachments can still be opened. */
//If the 'Close' button is showing, means that form Status = Resolved or Cancelled
var btnClose = document.getElementById("_MBwindowclose");
if (btnClose != null)
{
//Need to attachEvent, because IFRAME elements load asynchronously, and elements like 'newNoteButton' are not accessible on form load
var iframe = document.getElementById("notescontrol");
iframe.attachEvent('onreadystatechange', DisableNotes);
}
/* [e] */
The function DisableNotes:
Code Snippet
function DisableNotes()
{
//Hide 'Create a New Note' link
window.frames[0].document.getElementById('newNoteButton').style.visibility="Hidden";
var NotesTable = window.frames[0].document.getElementById('NotesTable');
//Disable the entire table
NotesTable.disabled = true;
var TextArea = NotesTable.getElementsByTagName('TEXTAREA');
//It's still necessary to individually disable the Textareas where users edit the existing notes.
for (i=0;i<TextArea.length;i++)
{
TextArea[i].disabled = true;
}
return;
}
Code Snippet
/* [s] Disables the creation of new Notes, and editing of existing notes. Attachments can still be opened. */
//If the 'Close' button is showing, means that form Status = Resolved or Cancelled
var btnClose = document.getElementById("_MBwindowclose");
if (btnClose != null)
{
//Need to attachEvent, because IFRAME elements load asynchronously, and elements like 'newNoteButton' are not accessible on form load
var iframe = document.getElementById("notescontrol");
iframe.attachEvent('onreadystatechange', DisableNotes);
}
/* [e] */
The function DisableNotes:
Code Snippet
function DisableNotes()
{
//Hide 'Create a New Note' link
window.frames[0].document.getElementById('newNoteButton').style.visibility="Hidden";
var NotesTable = window.frames[0].document.getElementById('NotesTable');
//Disable the entire table
NotesTable.disabled = true;
var TextArea = NotesTable.getElementsByTagName('TEXTAREA');
//It's still necessary to individually disable the Textareas where users edit the existing notes.
for (i=0;i<TextArea.length;i++)
{
TextArea[i].disabled = true;
}
return;
}
Labels:
Disabling,
for deactivated,
ms crm,
Notes,
records
Wednesday, October 20, 2010
Displaying the Number of Notes on the Notes Tab
The Microsoft CRM default form layout displays the Notes section on a separate tab. I often hear complaints from users that they don't know if any notes have been added without first clicking that tab. Many people don't realize that just as with any other section, you can move the Notes section to another tab, just as you would any other section. So one approach that many of our users have liked is to place the Notes section on the first tab as shown below.
The script I used is shown below and should be added to the entity's form onLoad function. Since this approach is entirely script based, it should also work on CRM Online. The tab where the Notes section exists must be called Notes for the script to work.
var totalNotes = getTotalNotes(crmForm.ObjectId);
setNoteTabName(totalNotes);
function setNoteTabName(count) {
/* update note tab */
if (crmForm.FormType != 1) {
var cells = document.getElementsByTagName("A");
for (var i = 0; i < cells.length; i++) {
if (cells[i].innerText == "Notes") {
if (count > 0) {
cells[i].innerText = "Notes (" + count + ")";
document.all.crmTabBar.style.width = "auto";
}
break;
}
}
}
}
// Helper method to return the total notes associated with an object
function getTotalNotes(objectId) {
// Define SOAP message
var xml =
[
"<?xml version='1.0' encoding='utf-8'?>",
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" ",
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ",
"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">",
GenerateAuthenticationHeader(),
"<soap:Body>",
"<RetrieveMultiple xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>",
"<query xmlns:q1='http://schemas.microsoft.com/crm/2006/Query' ",
"xsi:type='q1:QueryExpression'>",
"<q1:EntityName>annotation</q1:EntityName>",
"<q1:ColumnSet xsi:type=\"q1:ColumnSet\"><q1:Attributes><q1:Attribute>createdon</q1:Attribute></q1:Attributes></q1:ColumnSet>",
"<q1:Distinct>false</q1:Distinct><q1:Criteria><q1:FilterOperator>And</q1:FilterOperator>",
"<q1:Conditions><q1:Condition><q1:AttributeName>objectid</q1:AttributeName><q1:Operator>Equal</q1:Operator>",
"<q1:Values><q1:Value xsi:type=\"xsd:string\">",
objectId,
"</q1:Value></q1:Values></q1:Condition></q1:Conditions></q1:Criteria>",
"</query>",
"</RetrieveMultiple>",
"</soap:Body>",
"</soap:Envelope>"
].join("");
var resultXml = executeSoapRequest("RetrieveMultiple", xml);
return getMultipleNodeCount(resultXml, "q1:createdon");
}
// Helper method to execute a SOAP request
function executeSoapRequest(action, xml) {
var actionUrl = "http://schemas.microsoft.com/crm/2007/WebServices/";
actionUrl += action;
var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xmlHttpRequest.setRequestHeader("SOAPAction", actionUrl);
xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
xmlHttpRequest.send(xml);
var resultXml = xmlHttpRequest.responseXML;
return resultXml;
}
// Helper method to return total # of nodes from XML
function getMultipleNodeCount(tree, el) {
var e = null;
e = tree.getElementsByTagName(el);
return e.length;
}
Naturally, all of the caveats apply...this code is presented as is and may not upgrade with future releases of Microsoft CRM.

This works, but I personally find it annoying as the the cursor will 'jump' down to the Notes section, sometimes scrolling past the info on top set of information, and you have less room to see multiple notes. Since I tend to keep the Notes section on its own separate tab, I wanted to find a way to let users know that data exists on that tab prior to clicking it. I created the following script to display the number of notes on the tab label as shown in the screen shot below.

The script I used is shown below and should be added to the entity's form onLoad function. Since this approach is entirely script based, it should also work on CRM Online. The tab where the Notes section exists must be called Notes for the script to work.
var totalNotes = getTotalNotes(crmForm.ObjectId);
setNoteTabName(totalNotes);
function setNoteTabName(count) {
/* update note tab */
if (crmForm.FormType != 1) {
var cells = document.getElementsByTagName("A");
for (var i = 0; i < cells.length; i++) {
if (cells[i].innerText == "Notes") {
if (count > 0) {
cells[i].innerText = "Notes (" + count + ")";
document.all.crmTabBar.style.width = "auto";
}
break;
}
}
}
}
// Helper method to return the total notes associated with an object
function getTotalNotes(objectId) {
// Define SOAP message
var xml =
[
"<?xml version='1.0' encoding='utf-8'?>",
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" ",
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ",
"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">",
GenerateAuthenticationHeader(),
"<soap:Body>",
"<RetrieveMultiple xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>",
"<query xmlns:q1='http://schemas.microsoft.com/crm/2006/Query' ",
"xsi:type='q1:QueryExpression'>",
"<q1:EntityName>annotation</q1:EntityName>",
"<q1:ColumnSet xsi:type=\"q1:ColumnSet\"><q1:Attributes><q1:Attribute>createdon</q1:Attribute></q1:Attributes></q1:ColumnSet>",
"<q1:Distinct>false</q1:Distinct><q1:Criteria><q1:FilterOperator>And</q1:FilterOperator>",
"<q1:Conditions><q1:Condition><q1:AttributeName>objectid</q1:AttributeName><q1:Operator>Equal</q1:Operator>",
"<q1:Values><q1:Value xsi:type=\"xsd:string\">",
objectId,
"</q1:Value></q1:Values></q1:Condition></q1:Conditions></q1:Criteria>",
"</query>",
"</RetrieveMultiple>",
"</soap:Body>",
"</soap:Envelope>"
].join("");
var resultXml = executeSoapRequest("RetrieveMultiple", xml);
return getMultipleNodeCount(resultXml, "q1:createdon");
}
// Helper method to execute a SOAP request
function executeSoapRequest(action, xml) {
var actionUrl = "http://schemas.microsoft.com/crm/2007/WebServices/";
actionUrl += action;
var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xmlHttpRequest.setRequestHeader("SOAPAction", actionUrl);
xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
xmlHttpRequest.send(xml);
var resultXml = xmlHttpRequest.responseXML;
return resultXml;
}
// Helper method to return total # of nodes from XML
function getMultipleNodeCount(tree, el) {
var e = null;
e = tree.getElementsByTagName(el);
return e.length;
}
Naturally, all of the caveats apply...this code is presented as is and may not upgrade with future releases of Microsoft CRM.
Labels:
Displaying,
of Notes,
on the Notes,
Tab,
the Number
Tuesday, October 19, 2010
File Repository for Microsoft Dynamics CRM 4.0
here is the link
http://a33ik.blogspot.com/2009/09/file-repository-for-microsoft-dynamics.html
thanks to andriy
http://a33ik.blogspot.com/2009/09/file-repository-for-microsoft-dynamics.html
thanks to andriy
Thursday, October 14, 2010
How to get users and primary email address from server database
just execute the below query
DECLARE @DB_Name varchar(100)
DECLARE @Command nvarchar(200)
DECLARE database_cursor CURSOR FOR
SELECT name
FROM master.sys.sysdatabases
OPEN database_cursor
FETCH NEXT FROM database_cursor INTO @DB_Name
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @Command = 'SELECT SF.fullname, SF.internalemailaddress FROM '+@DB_NAME+'.dbo.systemuserbase SF'
IF @DB_NAME like '%_MSCRM'
EXEC sp_executesql @Command
FETCH NEXT FROM database_cursor INTO @DB_Name
END
CLOSE database_cursor
DEALLOCATE database_cursor
Sudhanshu
DECLARE @DB_Name varchar(100)
DECLARE @Command nvarchar(200)
DECLARE database_cursor CURSOR FOR
SELECT name
FROM master.sys.sysdatabases
OPEN database_cursor
FETCH NEXT FROM database_cursor INTO @DB_Name
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @Command = 'SELECT SF.fullname, SF.internalemailaddress FROM '+@DB_NAME+'.dbo.systemuserbase SF'
IF @DB_NAME like '%_MSCRM'
EXEC sp_executesql @Command
FETCH NEXT FROM database_cursor INTO @DB_Name
END
CLOSE database_cursor
DEALLOCATE database_cursor
Sudhanshu
Labels:
address,
and primary,
email,
from server database,
How to get users
Wednesday, October 13, 2010
only showing one typename for lookup
if the lookup is matching to more than one entities and if you want to match to only one entity from a particular lookup just use the following code on onload of the form.
crmForm.all..setAttribute(”lookuptypes”, “2″);
Sudhanshu
crmForm.all.
Sudhanshu
Tuesday, October 12, 2010
Change typename in lookup ms crm
i have one challenge as follows, if you can....
on look up, onclick of it a popup window will come, there you can select a record.
there also a picklist will be there(sometimes) where you can also change. the best example is the regarding attribute on letter.
suppose on that picklist i have 3 options as a,b,c.
bydefault a is selected and on basis of some condition i want b to be selected.
its doable and as follows.
just put the following code on load of the form.
crmForm.all..defaulttype = "2"; //the number of the picklist value, starts from 1
Sudhanshu
on look up, onclick of it a popup window will come, there you can select a record.
there also a picklist will be there(sometimes) where you can also change. the best example is the regarding attribute on letter.
suppose on that picklist i have 3 options as a,b,c.
bydefault a is selected and on basis of some condition i want b to be selected.
its doable and as follows.
just put the following code on load of the form.
crmForm.all.
Sudhanshu
Sunday, October 10, 2010
Friday, October 8, 2010
Check which Update Rollup version is installed on your CRM environments
Browse to the CRM website.
Click on the “Help” button on the top right side of the window.
Click on “About Microsoft Dynamics CRM”
Get the build number displayed as follows else the image in side.
Version Build Number Released on
RTM 4.0.7333.3 12/19/2007
Update Rollup 1 4.0.7333.1113 11/24/2008
Update Rollup 2 4.0.7333.1312, 4.0.7333.1316 1/15/2009, 2/8/2009
Update Rollup 3 4.0.7333.1408 3/12/2009
Update Rollup 4 4.0.7333.1551 5/7/2009
Update Rollup 5 4.0.7333.1644, 4.0.7333.1645 7/2/2009
Update Rollup 6 4.0.7333.1750 9/27/2009
Update Rollup 7 4.0.7333.2138 10/22/2009
Update Rollup 8 4.0.7333.2542 12/17/2009
Update Rollup 9 4.0.7333.2644 2/11/2010
Update Rollup 10 4.0.7333.2741 4/8/2010
Update Rollup 11 4.0.7333.2861 6/25/2010
Update Rollup 12 4.0.7333.2935 8/2/2010
Roll up 13 also has been come, will udate that latter.
Sudhanshu
Labels:
Check,
environments,
is installed,
on your CRM,
Rollup,
version,
which Update
Subscribe to:
Posts (Atom)