Showing posts with label SharePoint. Show all posts
Showing posts with label SharePoint. Show all posts

Tuesday, June 8, 2010

Install Microsoft Dynamics AX Enterprise Portal Server

Last week, I finally decided to look at the installation of the Enterprise Portal (based on Windows SharePoint Services 3.0) for Dynamics AX 4.0. I therefore started to investigate about its installation and configuration. Microsoft provides a very complete document about it: Install and Configure a Microsoft Dynamics AX Enterprise Portal Server.

The instructions are quite detailed and can be followed as is. However there is no guarantee that everything will happen by the book. This is why before configuring and deploying the Enterprise Portal itself, I decided to check if all previous settings change did not prevent WSS to run. I checked the WSS Central Administration and it was full of "SharePoint encountered an unknown error." preventing me to view any page.

I decided to run the SharePoint Configuration Manager but it did not solve the issue. A quick look at the Event Viewer revealed hordes of different nasty errors under both the Application tab and the System tab: error 10016, 5214, 18056, 3351, 2424, 6611, 2426, 110, and 8214.

The solution was to concentrate on the errors from the System tab by order of appearance starting with the first one (Error 10016). As you can see, the error consisted of a service account requiring additional security permission on a Component Service administrative tool. Ultimately the solution was to add the Network Service account as user authorized to start that Component Service component service. The additional trick here was to identify the right Component Service as error 10016 message only referred to the CLSID of the Component Service and not to its full and clear name. Happily Google quickly provided the right component service name: IIS_WAMREG. The operation had to be repeated as well for the Business Connector account (as described in the installation document).

Once both accounts' permissions were set up, all errors stopped occurring and WSS was running correctly. It was then time to start with the configuration and deployment of the Enterprise Portal itself. I launched the Dynamics AX client and went to the Enterprise Portal setup in the Administration panel.

The Enterprise Configuration wizard is pretty straightforward and I have no particular comment about it. Upon completion, it proposes to launch the "Manage deployments" wizard. That wizard is slightly different than what is described in the documentation but it serves the same purpose.

However when running it, we had a small error upon completion. That error was unhelpfully logged as event ID 1000 in the Event viewer. On top of that, the EP custom site template was not deployed in SharePoint and this alone completely prevented the creation of the EP site.

The solution came from the following article from Customer Source (Article ID 940365).

Before finding the solution I tried a few time to remove and redeploy the Enterprise Portal. During these try-and-fail tentatives, I discovered that:
  1. Clicking on the Remove button (see below screenshot) while any site was selected would immediately and automatically crash the AX client.
  2. To remove the Enterprise Portal, you need to first double click on all ticked boxes then click the remove button.



After applying the fix from Customer Source, I still had the AX error, still the crash-upon-remove behaviour but the EP custom templates were correctly deployed. I could finally create successfully my first Enterprise Portal site.

After its creation, the first step is to link the EP site to a company from Dynamics AX. And of course the first tentative failed miserably. This time the solution came from article ID 931939, still from Customer Source. Once the solution got applied, I could link a Dynamics AX company to the EP site and start checking all its nice features.

Friday, January 15, 2010

HRESULT: 0×80040E14 error when adding items to SharePoint

When attempting to create a new folder in our SharePoint, I faced the following error message: Exception from HRESULT: 0x80040E14 with an impressive stack filling in my entire screen.

Googling this error message will send you to the Microsoft KB 841216 as first result. However the 3rd result will display an alternative solution from Alex Pearce's SharePoint blog. Alex suggest that your the reason can be in fact totally trivial and due to:

  1. Your SQL server data drive being full, or
  2. Your data or log file reached there full allocated size, or
  3. Your database size is full and not set to increase.
In my case, the log file was full and I simply needed to shrink it. Kind of stupid, no ?

Saturday, January 9, 2010

Deploying Microsoft Dynamics Sure Step Project SharePoint Site

Because we run several Dynamics AX projects in parallel, with many more to come, we decided to start using more and more the Microsoft methodology: Sure Step. The 2010 version of the Microsoft Dynamics Sure Step client allows you to create a local project repository or instead a SharePoint site on your SharePoint portal.

The portal deployment wizard is quite straightforward and if you are the primary administrator of your SharePoint site collection then there should not be any problem.

Except we ran into a rather strange issue. While the Sure Step wizard showed we have the right permissions to create a site, we ran immediately into an error which caused the SharePoint site creation to fail and simply stated that it could not be created.

After checking the Events and logs on the SharePoint site, the Events and firewall settings on the local computers (we tried from several computers), and even the network firewalls settings, we were still stuck with no clue. That error message remained cryptic and sadly, googling it did not bring any help as all words are far too generic.

We then decided to use fiddler to at least check if the problem was on the local computer or on the server by checking where it will stop. That helped a lot. Through Fiddler, we spotted a returned error message stating that the Sure Step Project Site.stp template could not be found. So we manually uploaded it in the Site Template Gallery and restarted the Sure Step Project Wizard. This time, the Sure Step Project site was perfectly deployed and the result can be seen below, using a Dynamics AX 4.0 project as example.

Monday, August 31, 2009

Upgrading MS BI to SQL 2008: Do not underestimate the Power of the Dark Side

For our BI setup running under Microsoft BI 2005, we have an environment that comes straights from scholar manual. We have a development environment (DEV), composed of 4 servers: two are SQL 2005 database servers (staging database and a data warehouse ), one server is a SharePoint 2007 server hosting also the SharePoint database (SQL 2005) and a Visual Studio server. Similarly, we have a testing environment (TEST) composed of 3 servers: a staging database, a data warehouse, and a SharePoint server hosting the SharePoint database as well. Both the DEV and the TEST environments are virtualized. Then we have our production environment (PROD) composed of 4 physical servers: a staging server, a data warehouse, a SharePoint server, and a SharePoint database server. The only difference being that in production, we have separated the SharePoint front layer from the database layer for performance reasons.

Developers develop in the DEV environment and technical approvals are done there. Testers test in the TEST environment, which is also used for the functional approvals. Production data run in the production environment. So far so good and nothing new. I just described an out-of-the-manual architectural setup. All databases are up-to-date SQL 2005 and the SharePoint version is 2007.

We had planned to upgrade this environment to Microsoft SQL 2008 and thought it was quite well planned. We had waited for SQL 2008 SP1 to be released. We had waited for our sub-contractor to accumulate some upgrade experience and finally decided to migrate progressively. During last July, we migrated our DEV environment. Everything went smoothly. Some of us then went on vacations. The migration of our TEST environment was planned for mid-August and took place as expected. All functional tests we had prepared were passed without any problem. As this point, and as all lights were green, I decided to authorize the migration of the PROD environment.

And guess what ? Everything went fine with only one unexplained manual reboot. We later even noticed a small but noticeable performance gain with SQL 2008.

On the next days, I got an alarming phone call from the IT operations department. They reported that since the SQL upgrade all production servers kept rebooting every 2 to 12 hours without apparent reasons.

We then immediately started our investigations but quickly discovered that there was no logged Windows event or error message. A closeup monitoring of SQL did not give us any clue. A couple of days were necessary to find out that the reboots were caused by the monitoring systems because the servers were freezing for more than 10 minutes. Still, we had no idea why they were freezing. It only happened on the physical PROD servers, not on the virtual DEV or TEST servers.

The main difference between virtual and physical machines concerns the underlying drivers. After a couple of days, we upgraded several drivers on one of the blade servers: HBA StorPot card, Ilo2 card firmware, blade power management control and various other minor drivers. It worked and fixed the problem.

Conclusion of the story ? You cannot foresee everything and even if you work by the book, shit may happen. The good news is that we only lost 3 days with a very limited impact on end-users.

Wednesday, August 5, 2009

Picturing SharePoint Lists

For one of my recent SharePoint projects, I have been asked to create lists where an image could be included to illustrate the content of each list entry. As each entry will have a picture attached to it, the picture upload process had to be quite straightforward and user-friendly.

I had first pointed my thoughts toward a picture library but soon discovered that it did not correspond totally to my needs. After some more googling, I found the Enhanced picture custome type on CodePlex. Here then comes the necessary complete instructions to install and parametize this nice add-on.

1/ As prerequisite, you need to install ASP.NET AJAX on your SharePoint (MOSS 2007 or WSS 3.0). This operation is made extremely easy thanks to the detailed instructions on Mike Ammerlaan's blog post regarding Installing ASP.NET AJAX on SharePoint. Ultimately, it all comes down to downloading an EXE file, running it, then copying/pasting XML from the blog post into the web.config file of your SharePoint and finishing with an iisreset command.

2/ Once AJAX has been installed, download the Enhanced picture custome type WSP file and install it using the following commands:
stsadm -o addsolution -filename .wsp
stsadm -o deploysolution -name .wsp -allowgacdeployment -url http://sitename -immediate -force

(The -force attribute is necessary if some elements are already installed on your SharePoint.)

3/ Go to your site settings and then under site collection features, activate the ImageEnhancer feature.

4/ Go to your custom list, and add another field of the newly available type Enhanced Image.

5/ On your site, create a picture library. It will be used to store the pictures but you do not need to manage it or create any specific fields for it.

6/ Go back to your list and under the general settings, click on Enhanced Image Picture Library. Select the picture library you created before and click ok.

7/ That's it, you're ready to upload picture inside your custom list with maximal effects and minimal efforts.

Tuesday, June 23, 2009

How to include SharePoint Document Version in your File ?

Since I started using SharePoint (MOSS & WSS), I wondered how I could include the version number provider by a SharePoint document library into the document itself, to ensure some cohesion help people to easily identify the latest version, particularly in the case of printed documents.

I discovered the following easy tip, which works for SharePoint 2007 and Office 2007.

  • In your documents list, go to Settings then Information management policy settings.

  • Under Specify a policy, select Define a policy and click OK.

  • In the labels section, enable labels and in the format field, enter something like: Version: {Version}.

  • Click ok.

Now go back to any of the documents of that library. Open it and edit it then go to insert, quick parts, document property and select Labels. Save your document, close it, then reopen it (in read only) and voilĂ , the SharePoint version will be included. For example, it will look like: Version: 1.4.

Note that it only works for Office 2007 documents (docx format for example) and MOSS.

Wednesday, April 29, 2009

Windows SharePoint Services 3.0 Service Pack 2

Today I installed the Windows SharePoint Services 3.0 Service Pack 2 (SP2) on my department Intranet prototype. It is configured as a Farm with a SQL 2005 database but everything is hosted on the same virtual Windows 2003 R2 server. Installation instructions for this WSS 3.0 Service Pack 2 (SP2)and documentation are quite smooth and clear.

In short, it all comes to downloading the file, then double-clicking on the exe to run it and then the usual Start, "click", Accept, "click", Next, "click", Next ... wait (Upgrading SharePoint Products and technologies through the Configuration Wizard) ..., Finish, "click", then open your Intranet, wait again, and see the result.

It worked. Simple and efficient.

Friday, March 27, 2009

Exporting Files from SharePoint Content Database

Murphy's Law can apply anywhere anytime and my recent re-installation of SharePoint is certainly no exception to the rules.

Soon after I finished recreating our SharePoint intranet, I stared sharing it with my immediate colleagues. While I was not really expecting some "Oh!" and "Aaah!" cheerful comments, I was still hoping for some kind of "Cool, it's back, thanks for the tool.".

But no, even that was expecting too much. The very first comment I received was an assassin comment like: "And I suppose you managed to retrieve all files stored in the previous SharePoint database ?". That comment triggered a machine-gun like stare from me to my colleague. No, I did not manage so far to retrieve these files and yes I had tried already. SQL Management Studio did not really help me by the way.

I had been cornered and really had to find a solution this time. So I returned to the web, googling frantically, trying various unsuccessful solutions until finally my patience and stubbornness got rewarded. I found found a great article from Keith Richie describing how to export the site content from a SharePoint Database for recovery purpose.

His article include a small source code and instruction to compile and run the program. It worked almost like a charm from the first run. Yet, as some of the recovered files were quite large, I had to boost the buffer size (as I worked locally this was not a problem) and even tweak the SQL query to work on a per directory basis to limit the execution run time. Happily this time SQL Server Management Studio was of great help to test and fine-tune the queries. Within 30 minutes from the moment I read Keith's post I had recovered all files I needed.

Today all files are imported in the new SharePoint and I preciously kept the program source and instruction ... just in case one day I need to recover files from another SharePoint database.

Wednesday, March 25, 2009

The Revenge of SharePoint

Remember my SharePoint article from 2 months ago ? Well, believe it or not, but I have crashed my SharePoint site beyond my repair skills capabilities. It happened after a domain migration and was due to some dark account permission problem on the SQL 2005 database.

After having wasted a few hours on the problem, I decided to re-install it from scratch on a new and better set up virtual machine. After all, it was only a prototype without too much production data in it.

The first thing I did was using my previous SharePoint installation article as guideline and i will say it was definitively worth writing it and I got my payback for it. While I was at it, I also wanted to bring in a couple of improvement to my initial setup.

As SQL Server 2005 was installed on the C:\ drive, I needed to move the SharePoint databases to the D:\ drive which was designed to contain the data. I proceeded as follow after having installed Sharepoint Services:

In order to move a Microsoft SQL Server 2005 SharePoint database, I needed to:
- Stop the IIS SharePoint site.
- Stop all Windows SharePoint Services: Administration, Timer & Tracing.
- Backup the SharePoint content and configuration database.
- Detach these databases using SQL Server Management Studio.
- Move the database files (.ldf & .mdf) to the new location.
- Attach these files back to SQL Server 2005 still using the SQL Server Management Studio.
- Restart the SQL server.
- Restart all SharePoint services.
- Restart the iis SharePoint site.
And it worked like a charm.

I decided to add some better web parts to the portal and as such downloaded and installed What's New, Chart, AutoComplete, and Copy Paste web parts from the SmartTools suite on CodePlex. The What's New web part is probably the best of them. All these parts are ridiculously easy to install and deploy.

I also wanted to change my security strategy and to really use two Web Applications: one for the Central Administration on some exotoc port and the SharePoint content sites on port 80. As I had already recreated my content sites under the Central Administration, I needed to move them all to a different application in order to better manage their security. Therefore I had to first move the Central Administration from port 80 to another port (see my article for instructions), then create a new web application on port 80, export all created sites and re-import them into the newly created Web Application on port 80. The export/import operation was made simple thanks to the stsadm command line tool. Afterwards I simply had to uninstall and re-install the CodePlex SmartTools to have them active under the new Web Application.

And that's it, my SharePoint site is now back and ready to be used.

Saturday, January 17, 2009

Google is the Heir of Sun Tzu

A few days ago I posted a pretty long article about my experience with setting up a SharePoint intranet. Less than twenty-four hours later, I received a LinkedIn invitation from someone working for the same company as I do but located at the other side of the world. That person kindly introduced himself to me, wrote a couple of nice words about my SharePoint article, and asked to be connected to each other. My first reflex was to immediately accept his network invitation - after all we are colleagues - and to thank him for his kind word.

I then started wondering how he had found my SharePoint blog article. My article was not the first one to be written about SharePoint. It is surely not the most detailed or the most complete article about that topic. Additionally my blog is not (yet ?) one of the most read and famous blogs of the world wide web. So how could he find me through that article so quickly ? Not even a day had passed since I had posted it on BlogSpot.

I then remembered that a few hours before getting the LinkedIn invitation, I had received my usual Google Alert digest. For those ignorant of Google Alerts mechanism, Google Alerts are email updates of the latest relevant Google results (web, news, etc.) based on your choice of query or topic. In other words, you enter a keyword or two and Google will bring you the search results right into your mail and when something new it added on the Internet concerning that keyword then a it will appear in your next Google Alert. And on that day, my Google Alert digest tuned for my company name contained my SharePoint article. Needless to say that from there it became as clear as 1 + 1 = 2. All people using Google Alerts with the same keyword had received the link to my blog. This was the right explanation. It could not be otherwise and a few hours later I even received the written confirmation. It was a good guess.

So what is the true meaning of this story ?
Google knows it all. It knows everything available online about you, about your company, about your competitors. It knows what has changed or what is new, and it knows it before you do. As such, Google sets itself in straight line with Sun Tzu so famous principle:
Know thy self, know thy enemy. A thousand battles, a thousand victories.

Wednesday, January 14, 2009

Installing SharePoint Services 3.0 in a Snap

Whenever you have to implement an Intranet project, there is always a time when someone asks something like "Could you come with a very cheap solution for an small Intranet proof-of-concept in the coming days ?"

So last week I decided to create a small Intranet prototype with limited features for a limited audience and using Windows SharePoint Services 3.0. Why WSS ? Simply because we started implementing SharePoint Server 2007 (MOSS 2007) for another project and as such I tried to remain coherent in my implementation choices.

I started with a virtual machine running Windows Server 2003 R2 and checked it was fully patched before going further. I then installed the .Net Framework 3.0 on it.

The second step was to enable the Internet Information Services (IIS) role on that server. Once enabled I needed to check if ASP.NET 2.0 was indeed used by IIS. For that, go to IIS manager -> Websites -> Properties and check that ASP.NET 2.0 is used. If an older version is used then under command prompt type:

%windir%\Microsoft.NET\Framework\[version]\aspnet_regiis.exe" -i

then

regsvr32 %windir%\Microsoft.NET\Framework\[version]\aspnet_isapi.dll

Don not forget to replace [version] by your ASP.NET version. In my cas, it was v2.0.50727.

The next step is about installing Windows SharePoint Services and I strongly advice to read beforehand this Microsoft document about how to create the right accounts. Even if you think that Microsoft recommendations are way too complex, the minimum is to use a different account to install WSS and SQL. Use an administrator or generic installer account but do not use your own domain account to perform the installation on the server.

Once you have created the (right) accounts (including your installer account), you can download WSS. Simply follow the instruction and use the same installer account to configure your database.

Once done, under command prompt, type stsadm. If that command is unknown then add this file to the PATH environment variable: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN.

I then decided to immediately Install most of the SharePoint Fantastic 40 Applications Templates, starting with the ApplicationTemplateCore.wsp. The installation is quite simple still using command prompt:

stsadm -o addsolution -filename [path to file]\ApplicationTemplateCore.wsp

stsadm -o deploysolution -name ApplicationTemplateCore.wsp -allowgacdeployment -immediate

stsadm -o copyappbincontent


The complete installation instructions for the templates installation are available from Microsoft. In short, you only need to pull the solution file, template_name.wsp, from the extracted distribution. To add the solution file to the solution store, type the following commands:

stsadm -o addsolution -filename [file_path]\.wsp

stsadm -o deploysolution -name template_name.wsp -allowgacdeployment -immediate


To check the deployment status, browse to the WSS Central Administration site. Click the Operations tab, and then click Solution management under global configuration.
Once all solutions are marked as "Globally Deployed", run iisreset from the command line.

I then realized that IIS had a default website running on port 80 and the WSS Centra Administration site was running on some exotic port. As I did not need the default IIS site, i decided to disable it (from the IIS Manager console) and to switch the WSS site to the port 80. Happily I found an excellent article on TechNet explaining how to change the Central Administration Web site port number (Windows SharePoint Services).

At this point, I had a small SharePoint site up and running and started creating some sites in order to test the templates and get familiar with the permissions and other settings of SharePoint. I was slowly getting to where I wanted to be.

The next step involved the upgrade of the standard SharePoint search engine to Search Server 2008 Express and this TechNet article about Search Server 2008 installation was of great help.

I got a small frustration when noticing that SharePoint and Search Server did not support PDF documents. After googling a bit, I found a solution for the missing PDF icon display and even a simple way to have Search Server crawling through and indexing PDF documents. The solution involves installing Adobe Reader 8.x or 9.x on your SharePoint server. While the above article was written for Adobe Reader 8, it worked just fine with Adobe Reader 9. While testing the search server, I noticed that no Adobe PDF documents were returned in the search results but i could quickly fix it thanks to a KB article. (Microsoft KB 927675)

As I felt confident now that everything worked as expected, I even spent some time to add a company theme which is a simple operation perfectly described this article about custom site theme for SharePoint 2007. Well to be honest, I merely threw out the foundation of the theme and still have to update the CSS file.

Finally I even cared about online presence using MSN accounts. Once you fill in the SIP address of your user account personal settings with your MSN or Windows Live email address then you have a cheap way to see if some of your colleagues are online, providing your company does not block all MSN traffics. The trick here is to have a recent Windows Live messenger client on your PC (and not an old v4.x like I still had) and to add your colleagues on your contact list.

For those wishing to consult their WSS / MOSS log files through the Central Administration, there is a cool Log Viewer project on CodePlex allowing so. Simply download the WPS file and install it like any other solution using your installer account. Then do not forget to perform an iisreset to be able to see the link in your Operations tab under Logging and Reporting.

And that's it.
Within 3 to 4 days you have (at least I have now) a very cheap and decent Intranet perfectly suited for small department or projects management. By cheap I mean it only costs one Windows 2003 R2 license and a few days of work. For that price you get an Intranet platform with simple workflows, pre-defined themes and templates, some simple document management features including approvals and versioning, a decent search engine crawling Office documents and PDFs, and even a simple online presence add-on. On top of that, you got familiar with the basics of that monster which is SharePoint. Those days were quite well spent if you ask me.

Friday, September 19, 2008

CMS Watch SharePoint Report 2008

We purchased it and I just finished reading it: The excellent SharePoint Report 2008 from CMS Watch.
Is it useful ?
Definitively yes.

If you have only played partially with SharePoint like only using some WSS features or only used it for a specific and limited task or for a limited number of users then CMS Watch's report will provide you with the insight to go (or not go) further with SharePoint.

The main advantage and strong aspect of this report is the detailed analysis provided on a "per feature" basis. Eight different Business Services in SharePoint are reviewed, discussed, and analyzed: collaboration, Enterprise Content Management, Web Content Management, Portal Services, Business Intelligence Platform, Forms Processing, Enterprise Search, and Application Platform.

For each of these services, pros and cons are reviewed and discussed into much detail while providing insight as to better use (or not) SharePoint in a small or large enterprise environment.

The report also contains a nice section about evaluating customization and additional development which provides excellent hints about what should be taken into consideration.

All in all, this 195-pages long report is a kind of a must-read that can spare you days of consultancy just to arrive to the same conclusions for a higher price. Of course this report will not decide for you but it will make you understand why you decide for or against SharePoint (MOSS).