Friday, December 21, 2007
MSCRM 4.0 Upgrade Successful
Hopefully your upgrade is going just as well or is already completed.
Happy Holiday's!
David Fronk
Dynamic Methods Inc.
Thursday, December 20, 2007
MSCRM 4.0 is now available for download!
http://www.microsoft.com/downloads/results.aspx?DisplayLang=en&nr=20&freetext=CRM&sortCriteria=date
The server bits are up along with a 90 day trail key (both 32 bit and 64 bit), the client bits, email router, documentation, and lots more.
Check it out if you're interested and get lined up for you upgrade to the latest version of MSCRM 4.0!
David Fronk
Dynamic Methods Inc.
Sunday, December 16, 2007
MSCRM 4.0 has SHIPPED
I hope you're as excited as I am!
David Fronk
Dynamic Methods Inc.
Friday, December 14, 2007
Unsupported Scripts that appear to upgrade
Now, let me clarify one thing about unsupported customizations. To me there are 3 types of Customizations:
1. Supported
2. Unsupported "okay" - this is where scripts may not work upon upgrade but no files are changed but nothing from Microsoft is modified or broken. Microsoft support will just turn off your scripts if they give you support and they think that your scripts could be part of the problem reported.
3. Unsupported "bad" - this is where files from Microsoft get modified (ASPX, JS, etc) and everything you do will be overwritten on the next upgrade or repair. Microsoft will not support your implementation if you ever require their support.
The customizations that I am talking about in this post all fall under the #2 category. I refuse to enter into the realm of #3 because I don't want to have to deal with the headaches.
Here is a list of some scripts that I have written or found posted in groups that still work from MSCRM 3.0 to 4.0:
1. Hide a tab
2. Embed a grid in an IFRAME
3. Change the color/font of a text field
4. Hide NavBar Items
5. Hide a field or label
6. Set Field Requirement Level
7. Copy the name of a lookup (the Text version)
8. Change the value of a lookup field
9. Force the type of customer (this is for when people click on the lookup glass so that it only shows the entity type you want it to show, unfortunately it only works if you click on the lookup glass).
Some scripts that need some modification in order to work in MSCRM 4.0:
1. Changing the background color of the entire form
2. Getting the logged in user's name
3. Field Level Security
Hope this brings hope to someone else out there, and prep's anyone who has some "unsupported" scripts out there for the upgrade. It sure made me feel a lot better about upgrading my clients, seeing as the majority of the scripts were upgradeable.
David Fronk
Dynamic Methods Inc.
Tuesday, November 27, 2007
Hide Tabs Script compatible in MSCRM 4.0
One of the more frequent requests that I get and end up in implementing is that of hiding a tab on a form. Below is some code that I have used in MSCRM 3.0 on the Account form to hide the Notes tab from a default set up, but technically, the 4th tab on the form.
Here's the code that I have tested in the beta system I have and my code still worked:
var oType = crmForm.all.address1_addresstypecode;
switch (oType.SelectedText)
{
case "Other":
crmForm.all.tab3Tab.style.visibility = "hidden";
crmForm.all.tab3Tab.style.position = "absolute";
break
default:
crmForm.all.tab3Tab.style.visibility = "visible";
crmForm.all.tab3Tab.style.position = "relative";
break;
}
Now, whenever the option of "Other" is selected from the Address Type field, the Notes tab will disappear.
I'll be testing more scripts to see how much scripting changes I'll be having to make when I upgrade clients to MSCRM 4.0.
David Fronk
Dynamic Methods Inc.
Enabling the Form Assistant from the GUI
Tuesday, November 13, 2007
Phone Calls and Outlook in CRM 4.0
Well, that's all changed now. The CRM developers finally decided to forget about waiting for Outlook to comply with CRM and decided to just push things into Outlook activities.
Let me state this in big bold letters so that no one misses it:
PHONE CALLS WILL SYNC TO OUTLOOK TASKS IN CRM 4.0.
Everybody got that? I know that I have a number of clients who I talked into using a highly customized Task to accomodate Tasks and Phone Calls so that users would get reminder pop-ups from Outlook about when they needed to make a phone call. This new feature now removes that need and just makes so much more sense. Simple and yet it will make a huge difference to end users (who use activities).
Great things coming in the new version!
David Fronk
Dynamic Methods Inc.
Thursday, November 08, 2007
Duplicate Detection
I have seen some posts that show how the duplicate detection works from an end user point of view and some that have described at high level what it does. My hope is to step you through setting up a duplicate detection rule and showing off the capabilities that Microsoft has put into this.
First off, there is now a new section under Settings called "Data Management." This section allows you to access:
1. Duplicate Detection Settings
a. Specifies when duplicate detection should occur
2. Duplicate Detection Rules
a. Management of the actual rules that check for duplicates in the system
3. Bulk Record Deletion
a. Keep track of large deletions from the system
4. Data Maps
a. Create and Manage Data Maps for Imports
The Duplicate Detection Settings looks like this:
This is great because you can choose whether or not you want to do duplicate checks only on a scheduled basis (to improve user performance), when users create or save records, when users come online, and/or during imports.
Once you have that set, the next step is to actually set up the rule for which you check for duplicates. When you create a new duplicate detection rule you will see the following window (without everything being filled in):
A few things to note here:
1. You can check for duplicates on the same entity OR different entities. So, if you have a fear of somone importing a bunch of names into leads that could exist in contacts or accounts, the system can be set up to check that for you.
2. You have the choice of making the rule "Case-sensitive" or not:
3. Notice that the criteria area is set up in a very similar fashion to Advanced Find. Allowing you to have as many rules as you want (to a limit of a matchcode length of 1000...I'll talk about that more later).
As you build out your criteria lines you have the options to check for:
1. Exact Match
2. Same First Characters
3. Same Last Characters
Below is a set of criteria that I set up to check against the email addresses checking for the first 10 characters on EmailAddress2 and the last 20 characters on EmailAddress3.
Note that there is a "Matchcode Length" maximum of 1000. What this means is that you can check up to 1000 characters, or data items in your duplicate check criteria. Let me give you some examples.
1. Nvarchar (textbox) with a maximum value of 100 are worth a matchcode length of 100. Meaning you could only check up to 10 textboxes that had a maximum length of 100. Even if the entire field is not used on a record it will still count as the maximum number allowed in the textbox.
2. Boolean (bit) take up 2 matchcode length values. 1 for true and 1 for false.
3. Picklist (dropdown) take up 255 matchcode length values.
From this you can see that you will have to mix and match a bit to get your rule just right but still make it under the 1000 matchcode limit. I'm sure it won't be a problem for most people but there will always be those who will hit this limit every time they create a duplicate detection rule.
The main reason that Microsoft has limited the amount of things you can check against is to make the rules manageable. The more complex the check the longer the check will take to run. Thus slowing down the user experience and making your scheduled checks take much longer.
Also, keep in mind that if you make multiple rules on the same entity you will be causing slowness to the system as well. I believe I was told that 4 or 5 rules per entity should be just fine but after that you will start to see a dip in performance. So, just be aware of that. I haven't tested this on a production server yet so I can't say one way or the other.
Once you have your rule set up you then publish the rule and it is applied to whatever your Duplicate Detection Settings are set to.
If you want to see a click through, Phillip Richardson has put up a screencast to show you what the actual check looks like. Here's the link: http://www.philiprichardson.org/blog/post/Titan-Duplicate-Detection.aspx
Great things coming. I'm real excited for CRM 4.0
David Fronk
Dynamic Methods Inc.
Friday, November 02, 2007
MS Readiness CRM 4.0
Here are some of the highlights that I don't think you may have seen.
1. Tracked Emails will not require the Tracking Token. You can use if you want but you now have the option.
2. Through the use of Windows Communications Server you can link IM to CRM. We were told that internal IM would definitely be available but being able to IM your Contacts (using their email addresses) may not be possible. The rep's weren't 100% sure.
3. Reporting will now work while not on the domain and you can do reporting while offline using the Outlook client.
4. Pages have been reduced in size by 66% to make loads and requests faster. Also, the queries to Active Directory (AD) have been significantly reduced. MS actually admitted (finally) that they were causing a lot of chatter between CRM and AD, something they wouldn't do before CRM 4.0 was being released.
5. Security Roles are now exportable. This is great for consultants who have to recreate the same role over and over again from one client to another (it's a lot of clicking). There are actually a lot more exportable items now. Workflow for instance is exportable, which was possible in 3.0 but not from the web or Outlook interfaces. So, that has changed as well.
6. Subjects can now be linked to any entity.
7. Metadata is no longer just read-only. You can write to it and delete from it now programmatically. Great news for all the hardcore developers out there.
8. Supported Configurations
a. Anything that ends in "2000" or earlier is no longer supported (Office, Server, SQL, etc)
b. XP and Vista
c. Internet explorer 6/7
d. Office 2003 and 2007
e. Visual Studio with .NET Framework 3.0
f. Visual Studio 2005 Visual Studio 2008
g. SQL 2005 and SQL Katmai (SQL 2008)
h. Exchange 2003 and 2007
9. Improvements have been made to have CRM Server Roles to farm out functions for the CRM Server. Web App, Platform, SQL Mirroring and/or Farming, etc. Also, a lot of actions, including workflows and custom code will run asynchronously instead of synchronously. By doing this, the user experience should be faster because nearly everything gets pushed to the server to be run in the background.
10. If you have the Outlook client installed and you send an email from CRM it will appear in your Sent Items folder of Outlook. If you don't have the Outlook client installed and you send an email from CRM then it will not be placed in your Outlook Sent Items.
11. A lot of objects have been added to the CRM database, like Workflows or Security Roles, so that they are their own entity and can have reports built off of them, better security, and more flexibility. Workflow will now be much easier to manage and report on with this change. Workflow Monitor was functional but was really lacking. I don't know of any out of the box reports that are coming for Workflow, so you may have to build your own but still, that's better than what we had before.
That about does it in terms of things that were discussed that I haven't seen posted already on other blogs. Hope this helps you in seeing the growth of MSCRM and it's potential for you and your company.
David Fronk
Dynamic Methods Inc.
Typing in a LOOKUP Field 2 (additional functionality)
One of the things that I actually posted on (Typing in a LOOKUP Field) and I had to show you what I found out. In the post I show how you can type in the lookup field and it will automatically find the record with the name that you type, assuming that the record exists, is not duplicated in the database, and you spell it right. What I found out though, is if you type part of the name and your text goes red (meaning either nothing was found or duplicates were found) you can then click on the icon next to the name and it will show you suggested records for what you typed.
Here's a picture of what I mean:
I only typed the letter "d" and when I clicked on the ! icon it shows me all the possible records that could match what I'm looking for. Also note that it is searching in both Contacts and Accounts.
A really nice feature that I didn't know about until yesterday that I thought you all might like to see.
David Fronk
Dynamic Methods Inc.
Friday, October 26, 2007
New Report Wizard
- Search
- Assign
- New
So, let's get into the wizard. Click "New" and you will see:
Give your report a name and choose the entity you want to run the report from. You also can choose to have the report available from 1 related object type.
After you click "Next" you will see the filter that you want to apply to the report but using Advanced Find capabilities. Note that you can utilized existing views (both system or your own saved views).
Next you choose the layout of the report. How you want the data grouped (by customer, date, etc) and pick the columns that you want to display.
The below shot is of a saved column that shows the capability to include subtotals (a summary for a column) in the report. The record type when you add a new column will allow you to select related entities and then the columns from that related entity. Then set the pixel width for each column as you see fit (default is 100 pixels).
Next you can choose the type of report to show. Table only, chart and table or a chart with a drill into the table.
Now choose the chart type (if you chose to show a chart in your report):
Set the axis for the chart to run off of and then complete summary and finish page.
Now run the report and you'll see:
Click on an item in the report for the drill down to see:
And that is the new report building in CRM 4.0. Really great functionality for end users to get the most out of their data.
Have I mentioned that I'm excited for CRM 4.0?
David Fronk
Dynamic Methods Inc.
Friday, October 19, 2007
Searching Attachments
So, I thought I'd put Advanced Find to the test and I have to say that it did not disappoint. From Advanced Find if you search against Notes (or from whatever entity you want and then search through the related Notes) you can search the following:
File Name - searches the file name of the attachment
File Size - checks the size of the attachment (great for less than/greater than to clean up your DB)
IsDocument - this mostly tells the system whether or not there is an attachment on the Note
Pretty cool. Too bad you can't search in the document but that's a bit out there. And I guess that's what SharePoint is for. Who knows, maybe we'll see this capability show up in later versions (and no this is not included in v4.0, sorry).
David Fronk
Dynamic Methods Inc.
Multiple Lookups to One Entity on the Same Form
This has all changed in MSCRM v4.0. You can create relationships between system entities, custom entities and between system and custom entities. And the greatest part is you can do it as many times as you want. This means you can have as many lookup links to Contact from the Account as you want, or even to Users.
This will create a link for you between the two entities and the best part is that it will reuse the same database. I know that I have helped a number of people copy the user or contact databases with a custom entity in MSCRM v3.0 in order to get around this issue. The solution worked but there were places where things could break and then the two databases could potentially be out of sync. With this new method that Microsoft has provided with out of the box functionality it makes a solution easy and clean.
Now, I have mentioned that you can link multiple User records to the same entity/form. While this is cool please be aware that security is still only run off of the Owner field. Meaning that just because your username is in the "Account Manager" field (a lookup that links to the User entity) that doesn't mean you get to see it. All it is, is a link, that's it. Nothing more.
Having the field on the form is much better than what users of previous versions have had so this is still a very cool improvement in my opinion. Plus with views, Advanced Find, and search capabilities you should be able to get around most of the visiability issues you run into. One other option that you have to help would be to use the new workflow to run some business logic whenever you change a lookup field. Or you could right a plug-in to automatically share the record with the secondary user field(s) so that you can work your way around security. Philip Richardson shows a great use of workflow on a lookup field through his screencast at: http://www.philiprichardson.org/screencasts/titan/BasicWorkflowCTP3/BasicWorkflowCTP3.html. Check it out for some more info on MSCRM v4.0.
I'm so excited for v4.0!
David Fronk
Dynamic Methods Inc.
Wednesday, October 10, 2007
Advanced Find Shows Related Columns
Just to show you, from Advanced Find, I choose "Edit Columns" and then "Add Columns". I can now click on the entity as a drop down and it will bring up all of the related entities and what field the relationship is through:
I choose "Primary Contact (Contact)" and then check the "Email" column, run my query and I get:
There it is. I'm really excited about this because this need was probably one of the largest requests that I got that turned into an SRS report. SRS reports are great, don't get me wrong, they just can't be maintained or written by typical users and the actions you could take from that report were limited in comparison to what you could do from the CRM grid.
Last thing, since you can do this in Advanced Find logically it would make sense that you could do this in the main System Views for any given entity. Well, that's just what you get. Your System Views that you create for your company can have these types of columns as well.
Did I mention that I'm excited for MSCRM 4.0?
David Fronk
Dynamic Methods Inc.
Mail Merge from Web Client
In the Settings area there is now a template section that has the three old templates from before (Articles, Contracts, and Emails) but now there is a Mail Merge Template option.
You can create a new Mail Merge template and fill out the following form:
Please note the Associated Entity list. It consists of:
Account
Contact
Lead
Quote
Nothing more as of yet. Maybe future versions, maybe not.
Also, take note of the File Attachment, this is for the Word Document Template that will be utilized to render the template for use. You upload your Word Documents as XML files for your template, attach it and then save the mail merge template form. Once the form is saved you can then choose which data fields to include in the Mail Merge.
When you click on the "Data Fields" button you can select what fields you want to include in the Mail Merge. Here's what the screen looks like:
If you look closely you'll see a couple of new capabilities here in this screen. First notice that the first attribute that is available to be selected is "AAA Test" with a schema name of "new_aaatest". Yep, custom fields. You've now seen it with your own eyes. Secondly, take note of the Record Type. Did you see that it's a picklist? Yep, you guessed it, you can pull any field from any related entity. Now I will put a bit of a caveat on my "any field from any related entity" statement. You can pull data from any related entity that is related through a Lookup field (the fields with the magnifying glass). So, from an Account I can pull the Primary Contact's data. There is only one record to pull from so it's clean and simple. However, I cannot pull a field from all related Contacts to a given Account. Having multiple values for one field in a Mail Merge just wouldn't make sense. Also, just so you can see it with your own eyes, here's a screenshot:
It's actually pretty nice in that it shows the field that is linking the two tables so you know what relationship you are pulling from.
From here on out it's Mail Merge as usual. From a list of Accounts you could then click on the Mail Merge button, choose the template you saved and run the merge.
Needless to say I am very excited about this new functionality and I hope you are too.
I'm so excited for MSCRM 4.0!
David Fronk
Dynamic Methods Inc.
Tuesday, October 02, 2007
Typing in a LOOKUP Field
Here I type in "David Fronk" and notice that it is not "hotlinked" yet until I click out of the field.
As soon as I click away, or tab out of the field CRM checks the Contact database to see if what I typed matches any existing contact record. If it finds one, and only one, record then you get the nice blue "hotlinked" name with the contact record.
If however you type in someone that does not exist in the linked database, or if there are duplicates, the system will not know which record to link to and you will get a red X and red hotlink telling you that this is incorrect.
You will then have to check your spelling or pick one of the multiple records that exist in the database so that CRM knows which record to link to.
This works on all lookup fields you come across. Including Product, Unit of Measure, Primary Contact, Parent Customer, etc.
Very nice and easy functionality that will reduce clicks and help people choose which way to fill out the form and hopefully fill out the form faster. Oh, and in case you're wondering about the speed of that check on the field, it's actually really fast. I haven't tested it on a system that has over a million contact records but for the small amount of data I have in the system it flew.
David Fronk
Dynamic Methods Inc.
Titan News
Some very cool things to see in the new version and hopefully I can help you see the new value that has been added.
David Fronk
Dynamic Methods Inc.
Friday, September 28, 2007
Determine space available for custom attributes
Here's the script:
--Run this on the metabase
--space remaining in table
select e.Name, Byte_Remaining = 8060-(sum(a.length))
from entity e join Attribute a on e.entityid = a.entityid
where a.iscustomfield = 1
and a.islogical = 0
group by e.Name
--script to see current size of tables, can't go over 8060
select e.Name, Physical_size = sum(a.length)
from entity e join Attribute a on e.entityid = a.entityid
where a.iscustomfield = 1
and a.islogical = 0
group by e.Name
You don't run out of space very often but if you're afraid of running out then this script may help you out. For my client that cannot add any more "bit" attributes, this script showed that they still had 7000+ bytes available on the table. So, apparently there may be some limit as to the number of attribute types. I haven't found a solution for that piece yet but hopefully I will soon. If anyone has seen this and has figured out a way around the problem I would love to hear it.
I hope this script helps someone out (whether you've read the MSCRM Customizations book or not).
David Fronk
Dynamic Methods Inc.
Friday, September 21, 2007
System Customizer Role
At first you notice no difference. Records still stay in tact, can be viewed, updated, deleted, etc with no problem. However if you try to create a custom entity and the "System Customizer" role is gone (this also goes for the "System Administrator" role but Microsoft has locked down the deletion of that role) then CRM will throw an error at you telling you to contact your system administrator. A great error message that gets you no closer to figuring out your problem.
After a bit of searching I found the following:
Microsoft KB article 934690:
When a custom entity is created, Microsoft Dynamics CRM automatically grants the System Customizer role access to the new entity. If you delete or edit the System Customizer role, you receive the error message that is mentioned in the "Symptoms" section.
Microsoft has a hotfix for this issue (because apparently I wasn't the only curious one out there) but you have to contact MS Support in order to obtain the hotfix. From my other searchings, your other option is to back up CRM, uninstall CRM, install CRM fresh and then migrate all of your data from the back up into the new system. If you restore your DB's then you will once again be missing the "System Customizer" role so that will get you nowhere.
Oh, and in case you're wondering, you can't just recreate a "System Customizer" role manually. I tried to copy the "System Administrator" role, name it "System Customizer" and then tried to create a custom entity. I got the same error as I had received before. Whatever script Microsoft has running in the background looks for the GUID of the "System Customizer" role instead of the name. So, while I thought I had a nice quick fix it tuned out to not do anything at all.
So, this is my warning to all of you, DON'T DELETE ANY OF THE OUT-OF-THE-BOX ROLES. I don't know of any other issues with any of the other roles yet but that doesn't mean that there aren't any other similar issues like this. It doesn't cost anything to just leave the system roles there and let them be but it will cost you a bit of grief to get them back and get your system back up to full running capabilities.
Hope this helps someone and kills your curiosity on this subject.
David Fronk
Dynamic Methods Inc.
Friday, September 14, 2007
Set Regarding Lookup Default Entity
On the OnLoad event of the activity (theoretically this should work for whatever lookup you want, i.e. the Customer field on Case and Opportunity) place the following script:
if (crmForm.all.regardingobjectid != null) {
crmForm.all.regardingobjectid.setAttribute("defaulttype", "2");
}
This code will set the default entity to be Contact. If you want a custom object they start at 10000. So, just fine the ObjectTypeCode of the entity you want (that can have activities associated to them) and place them in the quotes as the second parameter of the setAttribute method and you're set.
Please note that this only effects the window that gets opened when you click on the magnifying glass of the Regarding field. However it does not effect the Form Assistant. So, this doesn't do it all, but it does help in some regard.
Also, please note that this customization is not supported by the SDK and may be subject to change in the next version. But while this is a "lighter" unsupported customization it's the kind of customization that I like. No files get modified, upgrade path does not get hindered, you just have to check it after the upgrade to make sure it works. If it doesn't, you have to find the new method or call that is used to do what we just did.
Short, simple and sweet. Happy coding!
David Fronk
Dynamic Methods Inc.
Friday, September 07, 2007
Moving SMTP from Exchange to local CRM SMTP Server
CRM has already been installed and pointed to an Exchanged server. The client requested that SMTP be set up on CRM and used for sending outbound emails. No inbound functionality is required by the client. What is the best way to get CRM outbound emails to be sent directly from the CRM SMTP server?
Solution:
First, make sure SMTP is installed on the CRM server. If not, you will need to add it under Add/Remove Programs, Windows Components, Application Server, Details, IIS, Details, select SMTP Service and install. It will ask for the Server 2003 install disk.
If after installation of the SMTP service you can not see the 'Default SMTP Virtaul Server' in IIS, you will need to follow the directions below from microsoft:
Method 1: Click the 'Start' button, then 'Run…' and type:
regsvr32 %systemroot%\system32\inetsrv\smtpsnap.dll
Alternatively, %systemroot% can be replaced with the drive Windows Server 2003 is installed on
Method 2: Uninstalling and re-installing IIS including the SMTP service has also proven to fix the problem, it is, however, recommended to try method 1 first.
Once you have SMTP fully installed and configured (per the steps above) you will now need to remove 4 keys from the MSCRM reg hive. Type regedit from cmd line. Browse to the HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSCRM folder. Highlight the folder and right click. Then select Export - give it a name and save. This is a back up of the MSCRM reg folder in case you mess up.
After backing up the folder, proceed to remove 4 keys:
1. SMTPAuthenticate REG_DWORD Value=0
2. SMTPServer REG_SZ Value=ExchangeServerName
3. SMTPServerPort REG_DWORD Value=19
4. SMTPUseSSL REG_DWORD Value=0
Perform an iisreset and test email functionality directly from CRM.
If you did not set everything up correctly you will most likely see an error to the effect of:
'Failed to Initialze Token'
If that be the case, go back through the steps and double check that they were all input correctly. But the above steps should get it going for you.
My thanks to my CRM team for providing me with another great article.
David Fronk
Dynamic Methods Inc.
Saturday, September 01, 2007
How to Really Increase the Max File Size in MSCRM (v3.0)
Step 1:
In the Web.config file, override the value of maxRequestLength for the application. For example, the following entry in Web.config allows files that are less than or equal to 8 megabytes (MB) to be uploaded:
<httpRuntime maxRequestLength="8192" />
Real Example: <httpRuntime executionTimeout="3000" maxRequestLength="51000"/>
Comments: I increase the Timeout from 300 to 3000 to allow more time on the upload. The file size is set to max at 51 MB.
Step 2:
(**Be careful when making changes to the Registry, it's always safer to back up the Registry, or at least the hive you're changing, just in case something breaks.**)
Change the following registry key to reflect the maximum number of bytes in decimal:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\maxuploadfilesize
Real Example: Make sure you set the Decimal value to the number of bytes. So 50 MB converts to 52428800 bytes, or I put 53000000.
Step 3:
Reset Internet Information Services (IIS). To do this, click Start, click Run, type iisreset, and then click OK.
Real Example: CMD --> IISRESET
Hope this comes in handy.
David Fronk
Dynamic Methods
Tuesday, July 31, 2007
Pulling the Logged in User via JavaScript
I have since found a post that gave me exactly what I was looking for. JavaScript that reads in the logged in user and puts the name of the logged in user into a text field automatically. So, whenever a specific field gets updated the user who changed it will get his/her name printed out so that all can see that the field was changed/approved by that user. Couple that with some additional JavaScript field level security and you've got a pretty good signature system. (Note that the field level security is NOT supported by Microsoft).
The cool part about finding the logged on user though is that it is supported JavaScript and uses the RetrieveMultiple CRM call to pull back the information desired. I take absolutely no credit for this code. I didn't have to really even change anything other than the output of the name so that it went into a field instead of an alert window. All credit goes to Michael Höhne, Microsoft Dynamics CRM MVP at Stunware. Here is the link to his post:
http://www.stunnware.com/crm2/topic.aspx?id=JSWebService
xmlHttpRequest.Open("POST", "/mscrmservices/2006/CrmService.asmx", false);
var doc = xmlHttpRequest.responseXML; var user = doc.selectSingleNode("//BusinessEntity");
Monday, July 30, 2007
EmailTo via JScript
I finally decided to spend some time on figuring out some way around the "copy/paste" method that I have told so many users previously to do to work around this issue. And while I did not solve the onClick problem I did at least find a way to get an email page to come up with the email from the email field filled in. A huge win over the "copy/paste" method.
I found a way through JScript in the ISV.config to get everything I needed. I knew that I could use the "mailto:" call from the HREF HTML tags but I wasn't sure on how to reference it. So, after a little research I found a pretty cool way to get around this problem. So, I cannot by any means take full credit for figuring this out, I can only claim credit for finding the pieces necessary and putting them together to get what I needed done (as I'm sure most of us do through the wonderful knowledge share called the Internet). So, thanks to anyone any everyone who has posted about this, I probably saw your posts and they have contributed to this:
<button title="Email" tooltip="Send Email" icon="/_imgs/ico/16_send.gif" javascript="window.navigate('mailto:'+crmForm.all.new_email.DataValue)" passparams="0" winparams="" winmode="0">
The key is the JavaScript attribute and the window.navigate call. Once the window.navigate reference was made it was also very great to see I could call any field value on the form to my JavaScript stored in the ISV.config. That ability alone opens up a lot of doors to new possibilities. It makes sense that all of the supported hooks that we as developers are given are JavaScript that we could use the exact same calls from a different source, it just wasn't something I had tried until now. Once I had those points down it was a piece of cake.
So, now I have a button along the toolbar that will open up your default email client to whatever email address you specify. I'm sure there are some much more complex scripts that can come from this (like a primary email selection box that then pics the corresponding email address to send the email to).
Happy coding,
David Fronk
Dynamic Methods Inc.
Tuesday, June 26, 2007
Changing the Port Number of your CRM Website
The first thing that I did was go into the IIS Management Console and manually change the port number there. I found out that was only half the problem. From here, once this change is made one could run a repair and that should make all of the necessary changes to the CRM web site for you from there. However, if you have installed Rollup1, or any other patches for that matter, you would then have to reinstall everyone of those patches. Not the most effective use of time in my opinion.
So, after poking around a bit I found that the other piece that I needed to update was the URL registry key titled "ServerURL" under the "HKey_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM" hive. You simply need only to add the colon ":" and the port number and you're set. So, your URL would go from "http://
David Fronk
Dynamic Methods Inc.
Friday, February 09, 2007
MSCRM Integration with Docupace
My most recent request has been to integrate MSCRM with Docupace. For those of you who haven't seen or heard of Docupace, Docupace is a service provider of 'on demand' business process automation solutions for small to mid-sized businesses, departments, branches of large enterprises and outsourcers - across all industries. With a wide range of imaging and document management solutions, Docupace delivers rich, enterprise-class functionality that is easy to deploy, use and manage. (http://www.docupace.com/overview.html)
This happens to be one of the simpler integrations because no data is traded between the two systems. Just a search through Docupace with CRM provided data.
With a simple click of a button:
The user logs into Docupace and a Docupace window opens that goes directly to the client's page.
This allows users to jump straight into Docupace and get to specific client documents. Also, if Docupace credentials get passed from CRM to Docupace, users can be limited in what documents they can see within Docupace, through CRM privileges. If a user can only see his/her contacts he/she will only be able to launch Docupace windows from his/her contacts.
Great functionality, usability and ease of integration between the two systems make this a great addition for client's tools to use in the market.
Happy Coding!
David Fronk
Dynamic Methods Inc.