So, if you run into similar problems, try moving the html-file to a directory on the same server (from an IE standpoint).
I have been on the look for this feature for some time. I’ve heard it’s there but never found it. Now my colleague Sebastian Tegel found it. Have a look if you’re interested!
Developing CRM solutions that are environment independent is not trivial. By just adding a webservice you are making your code dependant on the CRM customization of that system. If you move the solution/dll:s to another system you will be running a risk of your code not working. This is especially problematic for ISVs since they never know what system their product will be installed on. However, there is a good way to handle it. The best way is to first use a plain out-of-the-box CRM system and use the program
C:Program FilesMicrosoft Visual Studio .NET 2003SDKv1.1Binwsdl /out:c:tempmyCRMProxyClass.cs http://localhost:5555/mscrmservices/2006/crmservice.asmx?wsdl
This will create a file called myCRMProxyClass.cs is c:temp.
Add this to your project. This is in essence the same this as adding a web reference and adding “using CRMSDK” or whatever you named it. Hence you can access all the CRM webservice classes.
Then create the service-instance and set the url by using the registry-key added during the installation of Microsoft CRM. Have a look here if you want to know how. http://ronaldlemmen.blogspot.com/2007/08/creating-environment-independent.html
If you have other environment specific data, it should be placed in the web.config / appsettings (if using a normal web-site/virtual directory) or you can use the AssemblySettings.dll (has to be downloaded, not from Microsoft) to create a assembly specific config-file, alternatively, add you own keys to the registry.
I hope I have given you a few hints on how this is done. Happy coding!
Workflows are a great tool. They are quite simple to create, even non-programmers can actually create them and they are flexible. However, there are some problems with workflows in CRM 3 (how workflows are handled in Titan/CRM 4 will be interesting to see) for instance, a workflow cannot be activated when an entity is updated, only when it is created, when it changes status, when it changes owner and of course, manually.
A bit of caution is however advised. I would actually prefer to have the workflow being activated by a PostUpdate-callout instead, to make sure that it is only run once. Activating a workflow on the on-change event can be a bit hazardous since it is very possible that the event is triggered several times on the same form before it has been saved.
Never the less, it is a good posting and can probably give you an idea or two about how to programmatically activate CRM workflows. If I wasn’t block from using my own virtual directory or website with my own aspx-files, I would also prefer to trigger the workflow from an aspx-page and call the aspx-page using AJAX. Have a look at the class ExecuteWFProcessRequest in the CRMSDK as it enables you to execute a workflow using the web service.
SQL Reporting Services is a great tool. It allows you to create flexible and exportable (to pdf etc) reports. However, things sometimes get a bit complicated and a normal problem that you face is the problem of columns containing null-values that you want to use for calculations. For this there is a nice function called COALESCE which replaces null with the value directed.
SELECT firstname, lastname, age FROM contacts;
Might return the list:
firstname lastname age
John Smith 5
Peter Jacks null
If you want to use the age-column to do some calculations or you just don’t want it to be null, just change your SELECT-statement to:
SELECT firstname, lastname, COALESCE(age, 0) As NewAge, COALESCE(age, 0) * 2 As DoubleAge FROM contacts;
This will give you the result:
firstname lastname NewAge DoubleAge
John Smith 5 10
Peter Jacks 0 0
A useful and simple functions, to get you out of some nasty trouble when doing for instance LEFT OUTER JOIN, RIGHT OUTER JOIN or FULL OUTER JOIN when the risk of returning null is great.