Both in SharePoint development and CRM development, IISReset is needed sometimes to release fileholds. For instance, when developing callouts in MS CRM, the callout.config file will be blocked (by w3wp-crmapppool) as soon as a callout has been run.
The biggest problem with IISReset (or shuting the IIS down, compiling, restarting it) is that the entire application will be "just-in-time-compiled" each time, taking huge amounts of time especially when developing on virtual pc:s with only 1 GB (or less) of memory.
The workaround for this is to recycle the application pool for the IIS-website instead of restarting the entire IIS.
The easiest way of doing this is to right-click on the applicationpool and the choose "recycle".
This can be scripted (as described on Patrick Tissegheims blog) by using the script:
cscript c:\windows\system32\iisapp.vbs /a "SharePointDefaultAppPool" /r
Or as Patrick also mentions, there is a good tool for doing this, that can be found here:
http://www.harbar.net/articles/APM.aspx
So, that might easy your troubles, and save you some time.
If you are compiling on the server, my suggestion is to add the script to the pre build events in the project.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
"Always start with where the error is, then what the error is" I am MVP, founder and CTO at CRM-Konsulterna AB a company specializing in only Microsoft Dynamics CRM.
Wednesday, May 30, 2007
Tuesday, May 29, 2007
Untrack email in Outlook (V3C)
It is easy to track emails in Outlook which adds them to CRM. However, if an email linked to the wrong object, it is not as easy to "untrack" an email. Sonoma Partner blog describes how to do it, have a look: http://blog.sonomapartners.com/2007/05/remove_crm_link.html
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
How to mass import lots of mails
This blog posting shows how to add lots of emails to CRM that do not have a tracking token.
One issue with this solution is that many emails should still be added to specific accounts, orders, incidents etc. There is no simple solution but I would use the advanced search and bulk edit function to set the "regarding" field of all emails.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
One issue with this solution is that many emails should still be added to specific accounts, orders, incidents etc. There is no simple solution but I would use the advanced search and bulk edit function to set the "regarding" field of all emails.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Monday, May 28, 2007
Net stop / Net start
Developing lots of workflow dll:s? Add the following text to the prebuild events (if you are developing on the server):
net stop "Microsoft CRM Workflow Service"
and then
net start "Microsoft CRM Workflow Service"
which will save you the time of turning the Workflow-service off and on manually with each compilation.
If it is a live server, make sure you understand the complications!
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
net stop "Microsoft CRM Workflow Service"
and then
net start "Microsoft CRM Workflow Service"
which will save you the time of turning the Workflow-service off and on manually with each compilation.
If it is a live server, make sure you understand the complications!
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Creating CRM-emails in C# code
I have in a previuos post described how to programmatically download a SQL RS report, create a CRM email and attach the report as a pdf to it and send it. This is quite many steps and sometimes it will just be good enough to send mails, for instance when developing addons for workflows.
email em = new email();
activityparty fromparty = new activityparty();
fromparty.partyid = new Lookup();
fromparty.partyid.type = EntityName.systemuser.ToString(); //Change to some other entity if needed.
fromparty.partyid.Value = FROM-SYSTEMUSER-GUID;
em.from = new activityparty[] { fromparty };
activityparty toparty = new activityparty();
toparty.partyid = new Lookup();
toparty.partyid.type = EntityName.contact.ToString(); //Change to some other entity if needed
toparty.partyid.Value = TO-CONTACT-GUID;
em.to = new activityparty[] { toparty };
em.subject = SUBJECT-STRING;
em.sender = "crm@example.com";
em.regardingobjectid = new Lookup();
em.regardingobjectid.type = EntityName.REGARDING ENTITY TYPE.ToString();
em.regardingobjectid.Value = REGARDING OBJECT GUID;
em.description = BODY-STRING;
em.ownerid = new Owner();
em.ownerid.type = EntityName.systemuser.ToString();
em.ownerid.Value = OWNER-SYSTEMUSER-GUID;
Guid createdEmailGuid = service.Create(em);
SendEmailRequest req = new SendEmailRequest();
req.EmailId = createdEmailGuid;
req.TrackingToken = "";
req.IssueSend = true;
// Send the email message.
SendEmailResponse res = (SendEmailResponse)service.Execute(req);
I find this code very helpfull. It can probably be generalized by using BusinessEntity object and so forth but I am usually quite satisfied with this.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
email em = new email();
activityparty fromparty = new activityparty();
fromparty.partyid = new Lookup();
fromparty.partyid.type = EntityName.systemuser.ToString(); //Change to some other entity if needed.
fromparty.partyid.Value = FROM-SYSTEMUSER-GUID;
em.from = new activityparty[] { fromparty };
activityparty toparty = new activityparty();
toparty.partyid = new Lookup();
toparty.partyid.type = EntityName.contact.ToString(); //Change to some other entity if needed
toparty.partyid.Value = TO-CONTACT-GUID;
em.to = new activityparty[] { toparty };
em.subject = SUBJECT-STRING;
em.sender = "crm@example.com";
em.regardingobjectid = new Lookup();
em.regardingobjectid.type = EntityName.REGARDING ENTITY TYPE
em.regardingobjectid.Value = REGARDING OBJECT GUID
em.description = BODY-STRING;
em.ownerid = new Owner();
em.ownerid.type = EntityName.systemuser.ToString();
em.ownerid.Value = OWNER-SYSTEMUSER-GUID;
Guid createdEmailGuid = service.Create(em);
SendEmailRequest req = new SendEmailRequest();
req.EmailId = createdEmailGuid;
req.TrackingToken = "";
req.IssueSend = true;
// Send the email message.
SendEmailResponse res = (SendEmailResponse)service.Execute(req);
I find this code very helpfull. It can probably be generalized by using BusinessEntity object and so forth but I am usually quite satisfied with this.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Thursday, May 24, 2007
Getting lots of copies of your mails
The new feature of email enabled document libraries in SharePoint 3 is great, but I recently experienced problems with getting a new copy of the mail every five/ten minutes. After a bit of error searching, I found that it was due to the fact that SharePoint didn't have delete access rights to the "drop" folder in the c:\inetpub\mailroot directory, hence after sharepoint has read the mail, it can't delete it. The next time sharepoint polls the directory, it will find the same mail and add it again, and again, and again... so just make sure the access rights are right.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Tuesday, May 22, 2007
Blogging and being a consultant
Some of you who read this blog are probably consultants and find it strange (or stupid) that I should share my knowledge with you and others on this blog and in the forums that I attend (mostly the swedish forum www.itproffs.se). Some other find it strange that I wont give answers to certain questions, so I thought I might clear things up a bit by describing my thoughts on what to blog on and what not.
In general, I will blog on topics that are non-customer specific, meaning that I will discuss common problems, design patterns, installation issues, tips and tricks. I might also discuss a specific solution in the aspect that it might be of interest for other implementors as inspiration. However, specific customer problems that are very unlikely to happen in other environments, customer specific analysis and designs are what I do for a living. I will not blog on these topics, in more than a general sense.
So, I will be more than happy to share my thoughts on common issues and if you want my opinion on any of those, please comment my blog or send me an email at gustaf (a) humandata.se.
I apply the same rules for postings in forums meaning that I will not answer questions like:
"We are a company that has 50 emplyees with 10 inside sales and 4 outside sales. How should we configure CRM?". This question can only be answered by doing a deeper analysis of how the companys sales processes (and other processes) work, and the answer is a CRM design. The same question but focused on which license or what hardware would be needed, is more of a general question and this I could discuss.
Of course there will always be gray areas and I will leave this to my judgement and I hope you will respect this.
As for commenting, your chances are a lot greater if your comments are not anonymous. I also like to quote my grandfather who used to say: "It is better to drive a strong point than strong language (freely translated from Swedish)" meaning that harsh language will get you nowhere.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
In general, I will blog on topics that are non-customer specific, meaning that I will discuss common problems, design patterns, installation issues, tips and tricks. I might also discuss a specific solution in the aspect that it might be of interest for other implementors as inspiration. However, specific customer problems that are very unlikely to happen in other environments, customer specific analysis and designs are what I do for a living. I will not blog on these topics, in more than a general sense.
So, I will be more than happy to share my thoughts on common issues and if you want my opinion on any of those, please comment my blog or send me an email at gustaf (a) humandata.se.
I apply the same rules for postings in forums meaning that I will not answer questions like:
"We are a company that has 50 emplyees with 10 inside sales and 4 outside sales. How should we configure CRM?". This question can only be answered by doing a deeper analysis of how the companys sales processes (and other processes) work, and the answer is a CRM design. The same question but focused on which license or what hardware would be needed, is more of a general question and this I could discuss.
Of course there will always be gray areas and I will leave this to my judgement and I hope you will respect this.
As for commenting, your chances are a lot greater if your comments are not anonymous. I also like to quote my grandfather who used to say: "It is better to drive a strong point than strong language (freely translated from Swedish)" meaning that harsh language will get you nowhere.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Monday, May 21, 2007
Where to place your custom aspx files
Today I held another crash-course in Extending MS CRM 3 with .NET. It is a very comressed version of the MOC (Microsoft Official Curriculum) course with the same name. The attendées were 4 very sharp CRM professionals from Cybernetics and Releye. If you are interested in attending this course please contact Informator at www.informator.se.
We were discussing the problems with kerberos double-hopp trust delegation when using a SQL RS on a different server than the CRM server. It dawned on my however that a similar problem might acctually arise if you choose to host your custom aspx-files on a separate server from the CRM-server. I am no expert at this kerberos stuff but would find it quite possible that you might get this problem. I havn't tested this, so treat it as a hunch. If anyone has confirmation or the opposite, please comment this posting.
In short, to avoid potential problems, make sure your website for you custom websites are hosted on the same server as CRM. (please note that it is not supported to use the same website as CRM).
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
We were discussing the problems with kerberos double-hopp trust delegation when using a SQL RS on a different server than the CRM server. It dawned on my however that a similar problem might acctually arise if you choose to host your custom aspx-files on a separate server from the CRM-server. I am no expert at this kerberos stuff but would find it quite possible that you might get this problem. I havn't tested this, so treat it as a hunch. If anyone has confirmation or the opposite, please comment this posting.
In short, to avoid potential problems, make sure your website for you custom websites are hosted on the same server as CRM. (please note that it is not supported to use the same website as CRM).
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Monday, May 14, 2007
Excel Services as report system for CRM
Today I held a presentation at this years SharePoint and Exchange Forum in Nynäshamn, close to Stockholm, here in Sweden. Lots of very interesting experts here like Patrick Tisseghem, Michael Noel and Nick Swan, not forgetting my boss, Göran Husman and other great speakers from Microsoft and other companies.
The presentation I held was BDM-focused and concerned the power of simple mesh-up integration between SharePoint and MS CRM 3. The main point being that SharePoint has a lot of great features that can be used by other applications.
One of the most powerful ones is excel services that can very powerfully be used as a reports tool for MS CRM. The main advantages being the ease of use for the end users and report owners since they easily can modify their own reports with Excel.
It is almost too simple to write a blog about it, since it is very straight forward, but I will see if I can get something together anyway.
By the way, I am expecting to be a father around the 1:st of june (my first child!) and I migth be a bit absent for a week or two after this event, but I will be back.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
The presentation I held was BDM-focused and concerned the power of simple mesh-up integration between SharePoint and MS CRM 3. The main point being that SharePoint has a lot of great features that can be used by other applications.
One of the most powerful ones is excel services that can very powerfully be used as a reports tool for MS CRM. The main advantages being the ease of use for the end users and report owners since they easily can modify their own reports with Excel.
It is almost too simple to write a blog about it, since it is very straight forward, but I will see if I can get something together anyway.
By the way, I am expecting to be a father around the 1:st of june (my first child!) and I migth be a bit absent for a week or two after this event, but I will be back.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Updated CRM List WebPart
The CRM Team blog has announced that MS now have released the next version of CRM List WebPart.
I have tried it on a system with English CRM and SharePoint and it works great!
However, I tried the previous version on a Swedish version of CRM and SharePoint and that did not work as well, especially the installation. I was able to install it manually after quite a lot of work. If this version has the same problems I cannot say.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
I have tried it on a system with English CRM and SharePoint and it works great!
However, I tried the previous version on a Swedish version of CRM and SharePoint and that did not work as well, especially the installation. I was able to install it manually after quite a lot of work. If this version has the same problems I cannot say.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Thursday, April 26, 2007
Service account for central Admin in SharePoint
As most of you probably know, SharePoint should be installed with two service accounts. One, lets call it spserviceaccount, should be the account that runs all SharePoint web applications, all mysites etc and the otherone, lets call it spappserviceaccount, should only run the central admin app-pool.
So why, well, imagine if you hade the same account even for central admin, what could happen? If, someone bad, was to hack the SharePoint so that it could start running bad programs, they would also be able to create new sites, delete sitecollections and more. Not very nice, hence we use a special app account central admin to make sure that we are just a bit safer.
How do we do set it?
Best way is to actually run the installation wizard as spappserviceaccount and make sure you set the right user in every step of the installation.
Already up and running and want to change it?
Well, I havn't tried this, but it is supposed to be doable using stsadm, please check this kb-article: http://support.microsoft.com/kb/934838
It should be something like:
stsadm –o updatefarmcredentials –userlogin DomainName\UserName -password NewPassword
But please check the article.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
So why, well, imagine if you hade the same account even for central admin, what could happen? If, someone bad, was to hack the SharePoint so that it could start running bad programs, they would also be able to create new sites, delete sitecollections and more. Not very nice, hence we use a special app account central admin to make sure that we are just a bit safer.
How do we do set it?
Best way is to actually run the installation wizard as spappserviceaccount and make sure you set the right user in every step of the installation.
Already up and running and want to change it?
Well, I havn't tried this, but it is supposed to be doable using stsadm, please check this kb-article: http://support.microsoft.com/kb/934838
It should be something like:
stsadm –o updatefarmcredentials –userlogin DomainName\UserName -password NewPassword
But please check the article.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Callouts not triggering
It's one of those days, lots of bloggin' :)
Callouts are great, there are a few drawbacks but in general, they're great. However, you might experience that they aren't triggering as they should. Well, first thing to check is that callout.config is correct. Does it work on some other system? I have noticed that there are some problems with wich version is set in the top part.
However, there might still be problems with callouts not triggering properly, this might be due to a reinstallation of CRM which actually shuts off callouts, and doesn't put them back on again. (shame on you installation developers!).
Have a look at the blog bellow for more info on how to put them back on again.
http://blog.sonomapartners.com/2007/03/is_your_microso.html
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Callouts are great, there are a few drawbacks but in general, they're great. However, you might experience that they aren't triggering as they should. Well, first thing to check is that callout.config is correct. Does it work on some other system? I have noticed that there are some problems with wich version is set in the top part.
However, there might still be problems with callouts not triggering properly, this might be due to a reinstallation of CRM which actually shuts off callouts, and doesn't put them back on again. (shame on you installation developers!).
Have a look at the blog bellow for more info on how to put them back on again.
http://blog.sonomapartners.com/2007/03/is_your_microso.html
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Rumors of the Dynamics NAV - CRM integrator
I'll make another posting while I at it...
I had a meeting with Hillevi Anderkrans at Swedens top MS CRM company, Cybernetics (www.cybernetics.se) and she told me that there were rumors that the long awaited Microsoft supported Nav-CRM Integration probably wont be released for CRM 3 at all but only for Titan.
This isn't great news since there isn't really a satisfactory integration engine for Nav-CRM and the Microsoft based integrator has been long awaited.
I have personally (as mentioned in previous posts) worked with Celenia/Tectura and found it to be far from satisfactory, especially out-of-the-box. It needs a lot of work to be ok. Perhaps Celenia will put in a good effort into it, to make it as good as it's supposed to be.
I have argued previously, that the Microsoft Integrator might acctually be the Celenia Integrator that they (MS) have bought. This news however, makes this hypothesis a bit more improbable, and I would at the moment put my money on the Integrator being a soley Microsoft developed product.
If you here anything related to this, please let me know!
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
I had a meeting with Hillevi Anderkrans at Swedens top MS CRM company, Cybernetics (www.cybernetics.se) and she told me that there were rumors that the long awaited Microsoft supported Nav-CRM Integration probably wont be released for CRM 3 at all but only for Titan.
This isn't great news since there isn't really a satisfactory integration engine for Nav-CRM and the Microsoft based integrator has been long awaited.
I have personally (as mentioned in previous posts) worked with Celenia/Tectura and found it to be far from satisfactory, especially out-of-the-box. It needs a lot of work to be ok. Perhaps Celenia will put in a good effort into it, to make it as good as it's supposed to be.
I have argued previously, that the Microsoft Integrator might acctually be the Celenia Integrator that they (MS) have bought. This news however, makes this hypothesis a bit more improbable, and I would at the moment put my money on the Integrator being a soley Microsoft developed product.
If you here anything related to this, please let me know!
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
CRM Mobile Express - How To
I've not been so busy here lately, mostly due to the fact that I have been working with a course I have designed and am the main teacher/coach for. It is an interesting course for a specific customer where the goal is to make the attendées into Information Worker Architects.
The guys attending are all highly skilled system developers and/or system architects and I want them to feel they are getting their moneys worth.
Well, I saw an interesting blog entry on how to set up CRM to get CRM Mobile Express to work (it is in essence only simplified lists and forms). I havn't had the opportunity to test it myself yet, and I must say I have my doubts about how to maintain a high security level for the solution, but there might be acceptable ways of handling it, so please have a look if you are interested:
http://www.sbs-rocks.com/CRM/MobileExpress.htm
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
The guys attending are all highly skilled system developers and/or system architects and I want them to feel they are getting their moneys worth.
Well, I saw an interesting blog entry on how to set up CRM to get CRM Mobile Express to work (it is in essence only simplified lists and forms). I havn't had the opportunity to test it myself yet, and I must say I have my doubts about how to maintain a high security level for the solution, but there might be acceptable ways of handling it, so please have a look if you are interested:
http://www.sbs-rocks.com/CRM/MobileExpress.htm
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Tuesday, April 17, 2007
Messing up SQL RS
SQL Reporting services is great, but it is actually quite common to mess up the installation due to the steps taken in installation. Always make sure you do not install either sharepoint or CRM on the same website as CRM. (It is possible to get it to work but not recommended).
What can happen is the following:
1. Installing SQL 2005, in the process installing SQL RS on port 80 = http://localhost/reports and http://localhost/reportmanager.
2. Installing either CRM or a SharePoint site on port 80 of the same computer.
= SQL Reporting Services doesn't work anymore...
So, what to do.
First, if you want your CRM or SharePoint site to be located on port 80, don't install SQL RS on port 80. Create some other webapplication using host headers or TCP-ports and install SQL RS to that website instead. Then install CRM or SharePoint to port 80. No conflict = no problems.
If you happen to mess it up anyway, or is asked to fix a messed up installation, you can do magic with the tool RSConfigTool which resides in the SQL Binn-directory (usually: C:\Program Files\Microsoft SQL Server\90\Tools\Binn). Start it, and reconfigure it properly.
Have fun reporting!
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
What can happen is the following:
1. Installing SQL 2005, in the process installing SQL RS on port 80 = http://localhost/reports and http://localhost/reportmanager.
2. Installing either CRM or a SharePoint site on port 80 of the same computer.
= SQL Reporting Services doesn't work anymore...
So, what to do.
First, if you want your CRM or SharePoint site to be located on port 80, don't install SQL RS on port 80. Create some other webapplication using host headers or TCP-ports and install SQL RS to that website instead. Then install CRM or SharePoint to port 80. No conflict = no problems.
If you happen to mess it up anyway, or is asked to fix a messed up installation, you can do magic with the tool RSConfigTool which resides in the SQL Binn-directory (usually: C:\Program Files\Microsoft SQL Server\90\Tools\Binn). Start it, and reconfigure it properly.
Have fun reporting!
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Use url-parameters in javascripts in CRM
I had a look at Jonas Deibe's blog today (Jonas is the foremost CRM expert at Microsoft Sweden) and found an interesting tip I thought I'd tell you about.
He explains how to catch a url-parameter in the Javascript code, something I'd find very useful, especially if creating an integration with for instance SharePoint, since I can use this to control what is shown and what is not.
For instance, if you have a sharepoint integration with CRM where there is an IFRAME on the accounts showing the customer site in SharePoint, and the customer site shows the CRM account in an IFRAME also. It might be advisable to not show the IFRAME showing the sharepoint site, if it is shown in Sharepoint (=loop). Then you could use this technique to handle this.
It could also be used for shooting data into a CRM form from some other system. The URL-parameter could then be written to a specific field, it could even be saved and closed using the javascript command for that, in essence creating a very simple integration of data. Not very beautiful but still might be useful, since it is easy to create and very unobstrusive. Might be interesting if a program can't consume webservices for instance.
There are certainly a million other uses for this, so enjoy!
http://blogs.msdn.com/jonasd/archive/2007/04/16/render-hidden-values-in-tester-mode-by-using-querystring-parameters.aspx
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
He explains how to catch a url-parameter in the Javascript code, something I'd find very useful, especially if creating an integration with for instance SharePoint, since I can use this to control what is shown and what is not.
For instance, if you have a sharepoint integration with CRM where there is an IFRAME on the accounts showing the customer site in SharePoint, and the customer site shows the CRM account in an IFRAME also. It might be advisable to not show the IFRAME showing the sharepoint site, if it is shown in Sharepoint (=loop). Then you could use this technique to handle this.
It could also be used for shooting data into a CRM form from some other system. The URL-parameter could then be written to a specific field, it could even be saved and closed using the javascript command for that, in essence creating a very simple integration of data. Not very beautiful but still might be useful, since it is easy to create and very unobstrusive. Might be interesting if a program can't consume webservices for instance.
There are certainly a million other uses for this, so enjoy!
http://blogs.msdn.com/jonasd/archive/2007/04/16/render-hidden-values-in-tester-mode-by-using-querystring-parameters.aspx
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Monday, April 16, 2007
Alternate Access Mapping in SharePoint
Alternate Access mapping is a new technique used in SharePoint 3 for handling url:s when you access sharepoint from different environments, for instance, maybe you both want to be able to access your sharepoint internaly using http://sharepoint and externally using https://sharepoint.humandata.se, well, by using a good firewall the redirection is possible but the problem arises when you want searching and other url:s to work properly.
To be able to handle this properly, a function called Alternate Access Mapping is used. The SharePoint Technology Team blog discusses it further and describes how to set it up.
http://blogs.msdn.com/sharepoint/archive/2007/03/06/what-every-sharepoint-administrator-needs-to-know-about-alternate-access-mappings-part-1.aspx
http://blogs.msdn.com/sharepoint/archive/2007/03/19/what-every-sharepoint-administrator-needs-to-know-about-alternate-access-mappings-part-2-of-3.aspx
Since this is quite a normal setup, and there are certain aspects of this that are a bit complicated, like only having to log on once, we at Humandata are working on a best-practice for how to set this up properly that is based on the Microsoft best-practice. When we're done, I'll let you know.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
To be able to handle this properly, a function called Alternate Access Mapping is used. The SharePoint Technology Team blog discusses it further and describes how to set it up.
http://blogs.msdn.com/sharepoint/archive/2007/03/06/what-every-sharepoint-administrator-needs-to-know-about-alternate-access-mappings-part-1.aspx
http://blogs.msdn.com/sharepoint/archive/2007/03/19/what-every-sharepoint-administrator-needs-to-know-about-alternate-access-mappings-part-2-of-3.aspx
Since this is quite a normal setup, and there are certain aspects of this that are a bit complicated, like only having to log on once, we at Humandata are working on a best-practice for how to set this up properly that is based on the Microsoft best-practice. When we're done, I'll let you know.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Friday, April 13, 2007
New programming example of bulk import
As many of you might be aware, there are several ways to import data into CRM, mainly:
1. Using the standard import web-GUI. It can only import to a few entities like account, lead, campaign response.
2. Using the free Migration Framework. It is a bit tricky to get it going but it can handle all system entities and relations and custom attributes, but not custom entities. Skills of SQL is more or less mandatory.
3. third party products - My favorite being Import Studio Manager 2006 professional from the Danish company Crmextensions. It supports custom entities, custom fields and relations. It uses standard ODBC to connect to a datasource and the mapping and setup can be saved for future use. Very useful for frequent imports/syncs. There are also other products, like Scribe. I havn't had the need to test them since Import Studio Manager 2006 has had all the features I needed.
4. Developing your own import program to do the gritty stuff. Without comparisson the most flexible solution but also the most timeconsuming and demanding, since it requires good skills of a .NET language like VB, C# or J#.
What Microsoft has just released is a sample of how to create you own bulk import program (using alt 4), which simplifies this a bit. Please have a look at it:
http://msdn2.microsoft.com/en-us/library/bb291036.aspx
I havn't tried it, but I would still suggest using third party products instead.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
1. Using the standard import web-GUI. It can only import to a few entities like account, lead, campaign response.
2. Using the free Migration Framework. It is a bit tricky to get it going but it can handle all system entities and relations and custom attributes, but not custom entities. Skills of SQL is more or less mandatory.
3. third party products - My favorite being Import Studio Manager 2006 professional from the Danish company Crmextensions. It supports custom entities, custom fields and relations. It uses standard ODBC to connect to a datasource and the mapping and setup can be saved for future use. Very useful for frequent imports/syncs. There are also other products, like Scribe. I havn't had the need to test them since Import Studio Manager 2006 has had all the features I needed.
4. Developing your own import program to do the gritty stuff. Without comparisson the most flexible solution but also the most timeconsuming and demanding, since it requires good skills of a .NET language like VB, C# or J#.
What Microsoft has just released is a sample of how to create you own bulk import program (using alt 4), which simplifies this a bit. Please have a look at it:
http://msdn2.microsoft.com/en-us/library/bb291036.aspx
I havn't tried it, but I would still suggest using third party products instead.
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Thursday, April 05, 2007
Nice movie showing some of CRM Live
I was reading around the CRM blogs a bit and looked in on Jonas Deibe who had a posting linking to a nice move about CRM Live. Here is the link to that movie: http://channel9.msdn.com/Showpost.aspx?postid=297916
Some of the marketing guys in Redmond (technical people) are talkning and showing some of the CRM Live functionality. To make a long story short, some of the more interesting things they talked about and that could be seen in the movie are:
- Ability to "Download web service description files" into CRM. It is done from the menu where you can select import/export customizations, so I am a bit curious of what it actually means and to what degree they have created automation for web service integration.
- According to them, Windows Workflow Foundation is the workflow engine for the new version (Titan) of CRM.
- I am still a bit confused if CRM Live, that will be launched in the second half of 2007, is the CRM Titan or if it is a Suped-up version of CRM 3 and that Titan will be something more. I will get back on this. I think that it might acctually be Titan, but I am not sure, and I have not read anything definitive on the question (as far as I remember anyway)
- The Titan version will have three deployment scenarios; normal, Service Provider Edition and Live.
- According to the movie, a customization created for one deployment will work for all deployment scenarios. This is probably true for customizations created using the GUI but my experience of working with CRM 3 SPE tells me there might be differences concerning dll-versions of for instance callout-base. Hence, you might have to have different compilations of your ISV solution for each deployment. We will see later how this develops.
- It is also a bit unclear on how callout and workflow dll:s should be deployed to the Live system it the callout and workflow dll-extending functionality will still be supported in Titan. I would imagine that Microsoft Live IT-people, might be a bit restrictive to letting people run their own dll:s on their servers.
- Concerning security, the normal version of CRM will still use NTLM, the SPE edition will use Forms based authenticatio (cookie) and Live will use "Live ID" which is the new name for Microsoft Passport, I believe. When consuming web services from CRM today, there is a difference between the two versions (normal and SPE) in how you authenticate yourself to the service. Since the three are based on different security architectures, I would imagine that you would have to write three different securtiy handlers to make your ISV-solution transparent to the deployment version.
- The long awaited offline API will be released making customizations of the offline experience possible in more manners than changing the GUI and creating non-AJAX javascripts. This is great news! :)
- In the movie they are talking about the possibility to download a trial version and a VPC. I acctually think this is CRM 3 not the Titan version they are talking about. Please correct me if I am wrong.
- In general, CRM Live looks quite a lot like CRM 3 but I am curious to how the deployment of callout and workflow dll:s will be handled.
Please let me know if you have an more info, I will always write who has given me the info (if you want to of course).
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Some of the marketing guys in Redmond (technical people) are talkning and showing some of the CRM Live functionality. To make a long story short, some of the more interesting things they talked about and that could be seen in the movie are:
- Ability to "Download web service description files" into CRM. It is done from the menu where you can select import/export customizations, so I am a bit curious of what it actually means and to what degree they have created automation for web service integration.
- According to them, Windows Workflow Foundation is the workflow engine for the new version (Titan) of CRM.
- I am still a bit confused if CRM Live, that will be launched in the second half of 2007, is the CRM Titan or if it is a Suped-up version of CRM 3 and that Titan will be something more. I will get back on this. I think that it might acctually be Titan, but I am not sure, and I have not read anything definitive on the question (as far as I remember anyway)
- The Titan version will have three deployment scenarios; normal, Service Provider Edition and Live.
- According to the movie, a customization created for one deployment will work for all deployment scenarios. This is probably true for customizations created using the GUI but my experience of working with CRM 3 SPE tells me there might be differences concerning dll-versions of for instance callout-base. Hence, you might have to have different compilations of your ISV solution for each deployment. We will see later how this develops.
- It is also a bit unclear on how callout and workflow dll:s should be deployed to the Live system it the callout and workflow dll-extending functionality will still be supported in Titan. I would imagine that Microsoft Live IT-people, might be a bit restrictive to letting people run their own dll:s on their servers.
- Concerning security, the normal version of CRM will still use NTLM, the SPE edition will use Forms based authenticatio (cookie) and Live will use "Live ID" which is the new name for Microsoft Passport, I believe. When consuming web services from CRM today, there is a difference between the two versions (normal and SPE) in how you authenticate yourself to the service. Since the three are based on different security architectures, I would imagine that you would have to write three different securtiy handlers to make your ISV-solution transparent to the deployment version.
- The long awaited offline API will be released making customizations of the offline experience possible in more manners than changing the GUI and creating non-AJAX javascripts. This is great news! :)
- In the movie they are talking about the possibility to download a trial version and a VPC. I acctually think this is CRM 3 not the Titan version they are talking about. Please correct me if I am wrong.
- In general, CRM Live looks quite a lot like CRM 3 but I am curious to how the deployment of callout and workflow dll:s will be handled.
Please let me know if you have an more info, I will always write who has given me the info (if you want to of course).
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Wednesday, April 04, 2007
Ease the trouble of developing callouts
Developing callouts is tiresome, you have to do stop the IIS before each compilation, start it up right after and then CRM has to be just-in-time compiled by IIS, each time. As most of you who have done callout development, this is a nag and takes a lot of time. Stunware has released one way of handling this, which is good when doing large scale callouts, but for smaller callout development it has a bit of a overhead.
Microsoft Swedens CRM expert, Jonas Deibe, has written a posting on his blog concerning how to recycle the application pools instead of resetting the IIS, which means that CRM doesn't have to be compiled just-in-time each time, saving you lots of hair, and time.
So, have a look at his posting: http://blogs.msdn.com/jonasd/archive/2007/03/28/use-build-events-to-recycle-application-pool-instead-of-iisreset.aspx
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Microsoft Swedens CRM expert, Jonas Deibe, has written a posting on his blog concerning how to recycle the application pools instead of resetting the IIS, which means that CRM doesn't have to be compiled just-in-time each time, saving you lots of hair, and time.
So, have a look at his posting: http://blogs.msdn.com/jonasd/archive/2007/03/28/use-build-events-to-recycle-application-pool-instead-of-iisreset.aspx
Gustaf Westerlund
CRM and SharePoint Consultant
Humandata AB
www.humandata.se
Subscribe to:
Posts (Atom)