Recalculate and SubmitCrmForm JavaScript function in CRM


Hi,

I was trying to figure out what the recalcuate button does in case of Order and Quote form. Got to know that it calculates the total based on the Products added to that record. Behind the scene this is the html code for the recalculate button

<li tabIndex=”-1″ title=”Recalculate” id=”_MBcrmFormSubmitCrmForm1truetruefalse”
onclick=”window.execScript(action)”
action=”crmForm.SubmitCrmForm(1, true, true, false);”>

So basically it calls SubmitCrmForm function.

SubmitCrmForm triggers the save event even if there are no modifications made on the form.

SubmitCRMForm( Mode, Validate, ForceSubmit, closeWindow)        // we could use this function but it is unsupported

Different Mode could be -1,2,7,58,59

or alternatively we could use the below function

Save
Code: 1
Function: crmForm.Save();

SaveAndClose
Code: 2
Function: crmForm.SaveAndClose();

Send
Code: 7
Function: send();

SaveAsCompleted
Code: 58
Function: SaveAsCompleted();

SaveAndNew
Code: 59
Function: crmForm.SubmitCrmForm(59, true, true, false);

Bye…

Managing JavaScript Code in CRM


Hi,

Most of the time while writing JavaScript in CRM, we end up writing duplicate code i.e.

For e.g. if there are two fields say field1 and field2  and on selection of a particular value in field1,  we would like to make field2 mandatory.

Here we would first write the code for that in the onSave event of the field1.

Than again we would have to put the same code in the onload event also to reflect the same condition.

After some time it becomes really difficult to maintain it!

However there is a solution to that, just browsing through stunnware site, got this particular article on reusing Javascript.

Please go through that !!

Reusing code in OnLoad and OnChange event handlers

Just thought of sharing it ….


Cancelling OnSave event CRM JavaScript.


Hi,

To cancel save event we need to use this line of code

event.returnValue=false;

followed by

return false;

To know more about it

http://msdn.microsoft.com/en-us/library/cc150868.aspx

To understand difference between event.returnValue=false and return false, check out this informative article

http://webdevelopersjournal.com/articles/jsevents2/jsevents2.html

Bye..

CrmSecurityException: Could not find GUID for server — servername


Hi,

I was getting the following error “Invalid domain name. Domain name is either invalid or unreachable” while trying to register a plugin.

Found this kb article

http://support.microsoft.com/kb/948593/EN-US/

So installed update rollup 4.0

http://www.microsoft.com/downloads/details.aspx?FamilyID=0ddf8e83-5d9c-4fe7-9ae6-f2713a024071&displaylang=en

After that on trying to open CRM started getting the could not find GUID error.

Not very sure, but it has something to do with ActiveDirectory i guess.

Anyways uninstalled the Rollup 4 and to my surprise everything started working normally, even i was able to register plugin without any issues!!

Just thought of sharing the same !!

Failed move data for entity during action , countRows error while going offline CRM 4.0


Hi,

Found out two good article to solve the above problem

http://blog.customereffective.com/blog/2009/03/troubleshooting-offline-synchronization-with-microsoft-dynamics-crm-40-for-outlook.html

http://support.microsoft.com/kb/916165

Bye..

Configuration file for CRM 3.0 Callouts


Hi,

In callouts in CRM 3.0, for providing configuration information we used to create our own config file.

The naming convention that we used to follow was

AssemblyName.dll.Config

And we used to deploy it at the same location as callout i.e. server/bin/assembly

The structure of the config file used to be

<?xml version=”1.0″ encoding=”utf-8″ ?>
<config>
<crmurl>http://servername:5555/mscrmservices/2006/crmservice.asmx</crmurl&gt;
<loglocation>C:\CrmLog\PluginLog.txt</loglocation>
</config>

To read the config values in the callout we used to have this following code

string assemblyLocation=System.Reflection.Assembly.GetExecutingAssembly().Location;
string crmUrl=GetConfigValue(assemblyLocation,”crmurl”);

The GetConfigValue function

private static string GetConfigValue(string AssemblyName,string KeyValue)
{
string Filename=AssemblyName+”.config”;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Filename);
XmlNode crmNode = xmlDoc.SelectSingleNode(“//”+KeyValue);
string tagValue=crmNode.InnerText.ToString();
return tagValue;

}

Actually I was working with callouts after so many months, so thought i should save the above information for future reference!!

Bye…