Tuesday, December 27, 2011

Hyper V VM failed to set/change partition property error

Tried setting up a virtualized web farm in machine which is running Intel i5 with Windows Server 2008 R2 standard RTM. Hyper V manager refused to start a virtual machine in a brand new host machine. It has got enough of memory and CPU cores to start the virtual machine.

It keep on showing VM could not initialize < VM Guid > and "failed to set/change partition property" in event viewer.

After an hour of googling found a KB 2517374 article with reference about Intel AVX technology in Sandy bridge processors and some interesting stuff from Jeff Woolsey's Chicken and egg case.

The base funda is Intel's sandy bridge processors were released after the release of Windows Server 2008 R2 RTM, so it doesn't contain the bits to leverage new bells and whistles. As there is a slight change in processor architecture itself, it refuses to start the virtual machines.

Either upgrade to Service pack 1 to make use of Intel AVX in host and guest or install the above mentined hotfix to disable the AVX for the guest OS's

Upgrade to service pack 1 and enjoy the power of AVX(high performance floating point calculations) in both of your guest and host.

Friday, December 23, 2011

SharePoint List items bulk delete

Recently while working on a production case, we needed to delete around 2000 list items in a single shot. My idea was to use the data sheet view ActiveX control to do the bulk delete. But in production case where the server runs on 64 bit and clients run on 32 bit, there was problem invoking the ActiveX control and shared  the following snippet to do a batch delete.

private static void deleteAllListItems(SPSite site, SPList list)
{
StringBuilder sbDelete = new StringBuilder();
sbDelete.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Batch>");
string command = "<Method><SetList Scope=\"Request\">" + list.ID + "</SetList><SetVar Name=\"ID\">{0}</SetVar><SetVar     Name=\"Cmd\">Delete</SetVar></Method>";
foreach (SPListItem item in list.Items)
{
Console.WriteLine(item.Title);
sbDelete.Append(string.Format(command, item.ID.ToString()));
}
sbDelete.Append("
");
Console.WriteLine("now deleting");
site.RootWeb.ProcessBatchData(sbDelete.ToString());
}

This snippet deletes that huge list much faster than traditional object model way.

Monday, September 5, 2011

Setup a Dell Blue tooth mouse on Ubuntu 11.04

When the UI way is not working, it's time to go back to your terminals.

Get the python scripts related to blue tooth device, open your terminal window and enter

sudo apt-get install bluez python-gobject python-dbus

Check your hciX location

hcitool dev

Attach your blue tooth device to Ubuntu

sudo bluez-simple-agent hci0 xx:xx:xx:xx:xx:xx

xx:xx:xx:xx:xx:xx is your Blue tooth device address and it varies for device to device. Flip your mouse and look at the bottom label, you'll find some thing like "BT ADD: xx:xx:xx:xx:xx:xx". Now press the blue button at bottom to flash the device to detect.


You'll be prompted for the PIN now, it is also available in the bottom label usually it is 0000. Key in the same to pair the device.

Mark the device as trusted device

sudo bluez-test-device trusted XX:XX:XX:XX:XX:XX yes

Restart the blue tooth daemon service
#sudo /etc/init.d/bluetooth restart

Verify the device is added successfully
dmesg|tail
Towards the end, you'll see something like below

Bluetooth: HIDP (Human Interface Emulation) ver 1.2

Now go to your top right toolstrip and click on the blue tooth icon, choose the device name (Dell BT Travel Mouse) and click on Connect.

There you are, after a bunch of command line (or shell ) commands finally got my blue tooth mouse connected.

Monday, August 29, 2011

Resolving FAST Document conversion Failed error

After installing and configuring Microsoft FAST Search server, uploaded a bunch of word, pdf documents and images for crawling and indexing. Fingers crossed and waited till the Full crawl is completed in Crawl history page. Logs said that the documents were crawled successfully and ready to be queried from FAST index.

I was able to search a PDF document based on its metadata but not based on its inner content. Basic instinct goes for installing a PDF iFilters but the server behaviour is same even for Microsoft Office file formats and Jie Li's blog states that FAST comes with PDF iFilters in-built.

Tried using the DocPush from FAST toolbox as an exercise of isolating SharePoint from FAST,

docpush -c sp c:\test.doc

Docpush clearly provided me the error message "WARNING Document conversion Failed (Warning code 0)". Verified the FAST crawl logs and found the same error message there for Office file formats and PDF documents.

To resolve this you need to provide "Full Control" rights for FAST service account to folders C:\FastSearch\bin and C:\FastSearch\Tmp

Refer : KB2554579

How to open Microsoft FAST QR Server FQL console ?

         Microsoft FAST search server hosts a QR Server FQL Search console which allows us to make FQL queries from this page. This web application is hosted in port 13280. So, to access this application go to your FAST search server, open up the browser and hit http://localhost:13280

          As an interesting fact this web application is not hosted within IIS 7.0/7.5, so even stopping the IIS or World Wide Web Publishing services will not have any effect on this web application. This is a CGI application  hosted in service "FAST Search for SharePoint". Some pieces of  FAST Server is not yet fully transformed to Microsoft stack.So ensure that this service is running under services.msc console.

Saturday, August 27, 2011

Host name validation failed - FAST search 2010 for SharePoint

While setting up a virtualized FAST search server in my local machine with the help of Hyper-V, post installation of FAST Search server ran the post setup configuration wizard. At one step it asked for the Server name where you want to configure, tried with many permutations and combinations but every thing ended up in a single error message box "Host name Failed" and there is not even a sample string or a help text there.

Bounced back to the documentation which spells that we should provide fully qualified domain name(FQDN) of the machine.Wizards are meant to simplify the process of configuring the servers, at-least a help text or an help button is required here.

Looks silly once the issue is resolved, still posting a screen scrap which will help another FAST explorer in dark to identify a FQDN in a server.


Friday, August 19, 2011

Designing a video Streaming Portal - Part 1

The core idea is to build a video streaming portal which leverages SharePoint assets and also ensure that the solution is not burning our pockets. This solution will be totally based  on Free software or the software which the cost was already included with operating system license and with bare minimal code.

Software involved:

Implementation

Windows Media Streaming Services
          Deploy and enable Windows Media Streaming services in a Windows Server 2008. This service is capable of streaming video files in MMS or HTTP protocol, depends upon the client which is requesting. If the request is raised from Windows Media player then the server switches to MMS protocol, for any other clients it'll be HTTP protocol. This is called as Protocol roll-over.
          Windows Media Streaming services support WMV,WMA,asx and wsx file formats.Among this asx and wsx are play list format. So convert your videos to WMV videos.If your video library is full of FLV and flash files then its worth taking a look IIS Media Services.
            Map the video folder to appropriate publishing points, this will give you a unique end point to each and every media file. If you've enabled HTTP protocol then this will create a web application in IIS default port 80. It is recommended to expose HTTP protocol along with MMS protocol because MMS is compatible only with Media player client.If you are planning to build your own streaming client then your ideal end point would be HTTP.

SharePoint Foundation 2010
           Create a custom list and add columns Title, description, endpoint and comments. If you want to capture more metadata about the media asset, pile up here. Populate the list with the list of publishing points which are exposed by Windows media streaming services. It gives a chance of automation but for the sake of simplicity we are populating it manually.
           Develop a web part which lists all entries in this list on a left pane and Windows Media player ActiveX control on right pane. Whenever the user selects a video on left pane, modify the url property of ActiveX control and start playing. Let the ActiveX control do all heavy lifting for us.

SharePoint Search Server Express 2010
             SharePoint Search server express is good enough for small organization to start with and to get a flavor of Enterprise Search experience without any additional cost. Although it comes with the limitation on items which gets crawled it is a best fit for this solution.
              Deploy SSX2010 and configure the search and managed meta data(if required).Initiate an crawl on the content and get it indexed. Create a search center and test the search results. Now edit the search results web part to include "endpoint" managed meta data in query columns list. Modify the search results XSLT to render a small thumbnail of Media player plug-in which allows the user to play the videos right there in the search results
 
 Configuration , setting up the servers, pros and cons will be part of next post...

Sunday, July 31, 2011

How to setup wireless broadband in Ubuntu 11 ?

Although a Microsoft fan boy, just wanted to taste the Linux flavor for awhile. To understand the things on Linux universe, installed Ubuntu 11 on my windows Server 2008 R2 with the help of WUBI. Now setting up the Tata Photon+ Wireless broadband on Ubuntu.

Select the Add/Edit connections from the Network menu from your top right bar


 Select the Mobile broadband tab and click on Add, Choose Huawei from the combo box

 Ubuntu comes with these many providers pre-configured for India, Can we expect this is Win 8 ?
 Apply the settings and start using the network.
No installation of drivers from a mounted disc drive, no need to install any third party software(Tata Photon software) and no more hassles. It's simple and amazing.

Love this feature from Ubuntu.

Wednesday, June 29, 2011

Microsoft Community Contributor Award

Received my Microsoft Community Contributor award for my contributions to Microsoft online technical communities this morning.



Thanks to Microsoft Community and online support team for recognizing community contributors.

Tuesday, June 7, 2011

Querying calendar list by meeting workspace Url

Calendar list doesn't support querying the list by a workspace url making it a daunting task for finding a recurrence meeting workspace URL in Calendar list. U2U CAML editor and SharePoint views are unable to break this nut.

The trick to accomplish is to pass the relative URL for the CAML segment for querying. Following code snippet helps better understanding.

//removing the Server hostname and protocol, eg:- stripping http://Foo from http://Foo/meetingsite
string hostServer = meetingWeb.Site.Protocol + "//" + meetingWeb.Site.HostName +":" + meetingWeb.Site.Port;
searchUrl = searchUrl.Replace(hostServer, string.Empty);
SPQuery qry = new SPQuery();
qry.Query = @"<Where><Eq><FieldRef Name='Workspace' />
 <Value Type='URL'>" + SPEncode.UrlEncodeAsUrl(searchUrl) + "</Value>" +"</Eq></Where>";
qry.ViewFields = @"<FieldRef Name='Title' />
              <FieldRef Name='Location' />
              <FieldRef Name='EventDate' />
              <FieldRef Name='EndDate' />
              <FieldRef Name='fAllDayEvent' />
              <FieldRef Name='fRecurrence' />";
DataTable tbl= list.GetItems(qry); 

Sunday, June 5, 2011

CrossListQueryInfo and CrossListQueryCache gotchas

CrossListQueryInfo class which comes with the Microsoft Publishing infrastructure makes use of object caching techniques to query the requested data from the cache instead from the database. Remember to use this facility only if your code runs against a MOSS server and not on a WSS server. As this makes use of  object cache stored in WFE servers, it avoids to database input/output and network latency between the WFE's and database server.

Although it uses SPSiteDataQuery internally,the very first request using CrossListQueryCache takes more time than SPSiteDataQuery. Practically it includes the time for querying, caching and returning the values. But subsequent queries fetch results in a flash and no where comparable with SPSiteDataQuery.

Interesting fact is that this CrossListQueryCache and QueryInfo will not work in a Console line tool, it badly depends on the context. If you are really trying this interesting query technique in a web part, whenever you implement any change in your webpart and trying to debug. Apart from doing the IISReset/App pool recycle, don't forget to flush the object cache

A sample CrossListQueryCache
public DataTable GetDataTableUsingCrosslistQuery(SPSite site)
{
CrossListQueryInfo clquery = new CrossListQueryInfo();
clquery.RowLimit = 100;
clquery.WebUrl = site.ServerRelativeUrl;
clquery.UseCache = true ;
clquery.Lists = "";
clquery.Webs = "";
//clquery.Query = "";
clquery.Query = "569";
clquery.ViewFields = "";
CrossListQueryCache cache = new CrossListQueryCache(clquery);
DataTable results = cache.GetSiteData(site);
return results; 
}

Tuesday, May 10, 2011

Multiple NT authentication prompts in MOSS 2007 Server

In our team, people usually build their own development machines from the scratch and recently faced this multiple authentication prompt issue while accessing central administration right after the PSConfig wizard execution.

We tried all the browser tricks
  • switching off the IE Enhanced security configuration
  • Adding the site to IE's Local intranet zone
  • Checking the IE cookie storage setting and Authentication settings
Nothing worked, still there were multiple  authentication prompts and Fiddler showing many HTTP 401 requests. Even without providing the username and password, by pressing the ESC key continuously we were able to reach the Central administration home page. But none of the Ok/Cancel button worked as expected and leaving the Central admin console useless.

Finally Manimaran,  found a  Microsoft's KB article 95271, which clearly says you guys might be trying to install IIS 6.0 on top of a Windows Server 2003 SP2.

The machine was patched with Windows Server 2003 SP2 and we installed IIS 6.0 using an RTM disc which apparently reverted some libraries to its older version especially asp.dll. Replacing only this library didn't workout and I don't want to re-install OS Service Pack 2 again.

Workaround without re-installing Win 2003 SP2:
  • Keep Win 2003 SP1 and SP2 installation media handy in a drive.
  • Extract I386 content of these service packs using an archive tool, mine is 7zip
  • Uninstall SharePoint server and delete the content databases in database.
  • Remove the machines application server role and Uninstall IIS 6.0
  • Add Application server role , Install IIS 6.0 
  • Whenever the installer prompts for files to install point to the folder where you extracted SP2
  • In case if you don't find the files in SP2 folder, drill down in SP1 folder else in RTM disc.
Thats it now start installing SharePoint now.

Wednesday, April 20, 2011

Continuous Integration and remote deployment for SharePoint

This is a short guide of setting up a Continuous integration server and integrating with different plugins to analyse the code quality. At the end of the pipeline, we'll deploy to a remote staging server. The core idea is to build the solution on top of open source stack rather than  proprietary solutions like TFS.

Setting up Continuous Integration server:

  • Although there are tons of CI tools available in the market,as CruiseControl.Net looked for great for integrating various tools we picked up CruiseControl for our implementation.
  • Install CruiseControl.Net on a designated build server
  • CC.NET supports various source control blocks CVS,Subversion,VSS,SourceGear, StarTeam etc.
  • Download a command line client for the source control repository, for Subversion download this CollabNet Subversion command line client
  • Upon successful installation, browse to the folder C:\Program Files\CruiseControl.NET and open ccnet.config file in a text editor.
  • Add the project level detail

<project name=" testProject">
<workingDirectory>C:\develop\project1WorkingDir </workingDirectory>
</project>
  • Add source control block, which contains the SVN repository end point and credentials required to access these resources.
<sourcecontrol type="svn">
<trunkUrl>svn://Foo/trunk</trunkUrl>
<Working Directory>C:\develop\project1WorkingDir </workingDirectory>
<username>ccnet </username>
<password> ccnet </password>
</sourcecontrol>
  • Now we've added a Subversion URL with required credentials to access 
  • Let's add a Trigger block to tell the integration server at what frequency it should get latest and do a build. set the frequency as 360 seconds.
<triggers>
<intervalTrigger name="Subversion" seconds="360" buildCondition="ForceBuild" />
</triggers>
  • Add a Task block for building the solution, CC.net supports various build automation engines such as MSBuild, VSDevenv,NAnt  etc. We'll configure for MSBuild.
<tasks>
<msbuild>
<executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
<WorkingDirectory>C:\develop\project1WorkingDir</workingDirectory>
<projectFile>Sampleprojects.sln</projectFile >
<executable>
</tasks>
  • Alternatively if you want to use Visual studio to build the solution, following fragment will be helpful
<devenv>      
<solutionfile>C:development\Foo.sln</solutionfile>
        <configuration>Debug</configuration>
        <buildtype>Clean</buildtype>
        <executable>C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe</executable>        <buildTimeoutSeconds>360</buildTimeoutSeconds>
      </devenv>
  •  Add an Executable Task in this section after the build task for integrating other third party analysis tools like Microsoft FxCop for static code analysis, SPDisposeCheck tool for memory leak test, Microsoft StyleCop etc.
</exec>
<exec executable="C:\Program Files\Microsoft\SharePoint Dispose Check\SPDisposeCheck.exe">      <buildArgs>C:Foo\bin</buildArgs>
</exec>
  • Above Exec snippet requires all binaries to be stored in a single folder to run SPDisposeCheck, this can be done by adding a post build command in CS Project files.
  • Integrate Unit test case execution tools and code coverage tools like MSTest and NUnit test.
Package and move to staging server
  • Add a Exec task tag for WSP Builder
<exec executable="C:\Program Files\WSPTools\WSPBuilderExtensions\WSPBuilder.exe"><baseDirectory>C:\Foo\solutions</baseDirectory>      <buildTimeoutSeconds>360</buildTimeoutSeconds></exec>
  • Add a task which executes a xcopy command to move all these wsp packages to a staging server
<exec executable="C:\WINDOWS\system32\xcopy.exe">
<buildArgs>C:\Foo\Solutions\Output.WSP\*.wsp \\md-stagingSvr\share</buildArgs></exec>
Remote deployment with Sysinternal's PSExec

  • Add  another exec task to invoke PSExec tool to do the remote deployment
  • Alternatively if you have Windows Powershell in these machines you can make use of power shell to do the remote deployment.
<exec executable="C:\SysinternalsSuite\psexec.exe">
<buildArgs>\\md-stagingSvr-u "md-stagingSvr\aravind" -p 123$ "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe" -o addsolution -filename c:\share\output.wsp</buildArgs></exec>


Saturday, March 26, 2011

Notes from Tech Ed 2011 India - 2

TFS: Continuous Global Delivery, presented by Vinay Badami and following notes were taken from the session.

  • Supports client installations- Windows Vista, Windows 7
  • Supports 64 bit architecture
  • Supports Java development within Eclipse(using Team Explorer Everywhere 2010)

Build Automation

  • Integrate early, integrate often
  • Continuous integration
  • Builds on every Check-in
  • Gated check-in - Only if build succeeds the code gets checked-in to the source code repository.
  • Rolling builds to control frequency.

Branches and visualization

  • Visualize integration across all branches
  • Track the branches and change set.

Integrates with other version control systems and bug tracking systems using TFS Integration platform

Friday, March 25, 2011

Notes from Tech Ed 2011 India - 1

"Design,Performance and capacity factors for successful intranet and internet SharePoint sites" session was presented by Sanjay Narang from MCS and following notes were taken from the session. All credit goes to Sanjay for enlightening the full house.

RPS- Request per second 
An indicator to express the number of request served by the web farm irrespective of size of the request

Points to note while tracking the load of the server

  1. All Users - Total user base of the application
  2. Active users - Total users who are currently using the application
  3. Concurrent users - Total users who are currently using the same functionality concurrently(Given the nature of HTTP's disconnected architecture this'll be very few)
(Image from Microsoft Technet)


RPS Calculation
  1. Take IIS logs from all the servers in web farm
  2. Take from a peak hour traffic of a day
  3. Use tools like Log parser to query the log files collected.(how to use Log parser ?)
  4. Avoid requests for for image,CSS,JS while calculating RPS.
  5. Avoid Http 401's also
Decision point
  1. Average RPS on a day
  2. Average RPS in  a peak hour
  3. Max RPS in a peak hour
  4. Average daily concurrent users
  5. Peak concurrent users in peak time
Dataset
The size of data stored in a system is called as Dataset, typically in SharePoint world we call it as Content Database and its size

Points consider while planning for Dataset
  1. Content Database size
  2. Temp DB Size
  3. Transaction Log size
  4. Space required for full backup
  5. Number of documents and versions in content db's
  6. Number of metadata associated to the documents
  7. Number of other list items (need to calculate the size of the list item too)
Performance and Reliability
  1. Server availability - Overall uptime of the system
  2. Server responsiveness - A Farm's time taken to serve the request
  3. System resource utilization - CPU utilization and available memory
Boundaries and limits

When you plan for the capacity planning and management, it is essential to keep a tab on the product boundaries and limits
  1. Content Database size - 200 GB
  2. Site collection size  - Max 100 GB
  3. Site Collection per Content database - 5000 Max/2000 recommended
General recommendation of Servers
  • One WFE server per 10k users
  • One SQL instance per 4 WFE servers
  • 3-5 WFE Cores per Sql Core
  • One DC per three WFE servers
  • 2-4 GB memory per CPU core
High availability - points to consider
  • Hardware/Software load balancers
  • Cluster/Mirror of Sql server
  • Service applications associated to the app
  • Search target, dedicated/distributed
Sql Server memory recommendation
  • Small - 8 GB
  • Medium - 16 GB
  • To handle up to  2TB of data - 32 GB
  • To handle data from 2TB to 5TB - 64 GB
  • To handle more than 5 TB - Go for new instance of Sql server
As there is no perfect tool (yes there is a tool called HP Sizer is available)to tell you what kind of Farm is required for your purpose, it requires a careful assessment of all these points and the requirement is necessary to arrive at a conclusion. It is always recommended to do oversizing rather than undersizing(Want to know your servers are over sized/undersized, use performance monitor counters to gather data and analyse).

I guess most of the points were taken from this Technet Article. Nevertheless for those who need full set of information please go through that link. I don't find the deck presented from Tech Ed site, will provide a link when it's available.

Tuesday, March 15, 2011

List does not exist error


While adding a new list view web part to a homepage , stuck with the following exception.
List does not exist The page you selected contains a list that does not exist. It may have been deleted by another user.
After some fiddling, found Web.Id for a LVWP is required to resolve this issue. After providing the WebId for the ListViewWebPart, web part adds to the page perfectly.

ListViewWebPart lvp = new ListViewWebPart();
lvp.ListName = Web.Lists["Tasks"].ID.ToString("B").ToUpper()  ;
lvp.ZoneID = "Center";
lvp.Title = "Tasks List";
lvp.WebId = Web.ID;  
SPFile homePage = Web.GetFile("default.aspx");
SPLimitedWebPartManager webmngr = homePage.GetLimitedWebPartManager (PersonalizationScope. Shared);
webmngr.AddWebPart(lvp, "Center", 3);
webmngr.SaveChanges(lvp);

Happy SharePointing :)

Wednesday, March 9, 2011

Free alternatives for Redgate Reflector

Recently my Reflector time bombed and refused to open. As a SharePoint developer, this is one of the crucial tool in my toolbox to peep in to SharePoint binaries. Finally it seems like Redgate  betrayed .NET community for not keeping this little tool free and alive.
In search of an alternative for this great tool by Lutz Roeder, found some interesting projects.

ILSpy - a promising open source alternative.developed by SharpDevelop team.
Monoflector- uses Cecil,MEF
Resharper 6 Decompiler - Resharper is planning to provide a free stand alone decompiler,
Kaliro Explorer - bunch of other tools like Moss explorer, calendar sync are also available along with this
DotNet IL Editor - It can disassemble and debug the assemblies

Still wondering why this functionality is not integrated in VS 2010 ?

Tuesday, February 8, 2011

Adobe integrates Acrobat Reader X with SharePoint

Adobe's X series PDF editor and reader Acrobat X and Reader X now tightly integrates with SharePoint. We need to provide the OpenControl key in the DocIcon.xml and clients should use Acrobat X or Reader X to leverage.

Now it provides additional options like Edit Document, Check-in,Check out,Discard check out for PDF documents.

If I say Edit Document, PDF automatically opens the document in Reader X and also asks whether I want to check out

It also provides a UI cue for the checked out document too


Once the documents are checked out in MS Office suit, the document library page automatically refreshes to show the checked out icon but here that refresh is not happening.

How to configure SharePoint for this ?
  • You need to add the following lines in DocIcon.xml 
    • You can find DocIcon.xml in C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\XML
AdobePDF.png
  • Right click and save the above Acrobat PDF icon to your machine in the name of AdobePDF.png and copy it to folder C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\IMAGES
  • Now do an IISRESET and let IIS load these new resources.
  • Repeat all the steps in all of your web front end servers
All these steps remain same for MOSS 2007, just change the \14\Template\XML to 12\Template\XML while doing modifications to DocIcon.xml and copying the AdobePDF.png file

Monday, February 7, 2011

SharePoint 2010 Approval workflow, a marvel

Way back our team built a multi stage approval workflow with serial and parallel flow options for MOSS 2007. Recently stumbled upon the SharePoint 2010 approval workflow which eventually showcases all these functionalities right out of the box. This is one of the huge improvement in SharePoint 2010

Lets see what are the configurable parameters it allows us to configure

Approvers
Accepts multiple users who are in the capacity of approving the content ,seperated by semicolons

Order:
Determines in which order the execution goes whether serial or parallel, technically in which order the tasks created to the Approvers

Flow of a Serial workflow


Flow of a Parallel workflow

Expand Groups
If checked and groups entered in approvers section will be expanded and tasks will be created for individual users else only a single task will be created for the whole group. Any user from the group can approve or reject

Request
A comment text which will be sent to the approver via email and approval screen also

Due Date for all Tasks
Final date on which all approvals should be completed

Duration per task
Amount of time for each task is due, works along with Duration Units

Duration Units
You can choose days,months or years in this drop down, works along with Duration per task

CC
Want to keep an additional person in approval loop, this is the place to go

End on First Rejection
Any approver rejects the document, workflow gets stopped and document rejected

End on Document Change
Some author changes the original document while the approval in progress, now the whole workflow gets terminated if the original is modified.

Enable Content Approval
Changes the content approval status of the library based on workflow approval

Microsoft Tech Ed 2011 India March 23-25

Microsoft Tech.ed in Bangalore, for more information and registration
http://www.microsoft.com/india/teched2011/

Sunday, January 16, 2011

SQL server at xxx has an unsupported version 10.0.2531.0, SharePoint PSConfig error

While I was preparing a bonsai SharePoint 2010 web farm with Sql Server 2008 Enterprise database in my Dell Studio 1555. As I did numerous standalone SharePoint 2010 deployment for development activity on Windows Server 2008/R2/Win 7 with Sql Server 2008 express + SP1, I used to have the pre-requisites handy in my hard disk to build multiple virtual hard disks.
After building and networked the domain controller and the enterprise database server, executed the SharePoint 2010 installer and ran the PSConfig wizard on designated app server image. While connecting to the database server, wizard throws an error
---------------------------
SharePoint Products Configuration Wizard
---------------------------
SQL server at windb\dbsvr2010 has an unsupported version 10.0.2531.0. Please refer to "http://go.microsoft.com/fwlink/?LinkId=165761" for information on the minimum required SQL Server versions and how to download them.
---------------------------
OK   
---------------------------
I never expected this behavior ,went back to my standalone SharePoint installation and verified the database server. It says 10.0.2531.0 and running happily.
Went back to MSDN Hardware and Software requirement, there's a different standard for Sql Server 2008 Express(standalone) and Sql Server 2008 Enterprise(Farm installation). 
If you are gonna install Sql Server Express 2008 as your data store you are good enough to go with only Sql Server SP 1 (10.0.2531.0) but if you are preparing a web farm and proceeding for Non-Express database then you should also install the Cumulative update 2(10.0.2714) or CU5 (Installing CU3 or CU4 is not recommended)
Now the PSConfig wizard is happy and configures my web farm successfully.

Friday, January 7, 2011

Expose SharePoint 2010 Central Administration out of the job server

We tried to access the central administration of a Test server(Windows 2008 R2, IIS 7.5) from a client machine by adding proper host entries and providing the right port number and we were able to access the central administration. But soon we realized that the hyperlinks end up in a ASP.NET authorization error.

After tweaking the following authorization settings IIS 7.5 admin console, we were able to expose the links

Open inetmgr and select ASP.NET Authorization


Expand the central administration node and Select the _admin node and you can see a "Deny" rule, remove the deny rule and add a "Allow" rule



Repeat the same for _vti_adm node


Do an IISReset and good to go, 

Even after this some buttons from the Ribbon were disable for e.g;,Create application, Extend application 

Switching off the User account control solves the issue, start -> search for UAC and do the following change

Instructions provided above relaxes the security on SharePoint Server and shouldn't be applied on test,stage or production servers.

 

Tuesday, January 4, 2011

Porting Sharepoint 2007 document library STP to SharePoint 2010

Recently read a post from Tom Belgium which speaks about porting SharePoint 2007 list templates to SharePoint 2010 and it worked just by replacing the product version and and repackage with makecab utility.

I faced a scenario to port a document library STP template including some documents.SharePoint packages the documents of the document library and manifest.xml as a single package.

Following are the steps to modify the STP file.
Rename the STP File to a CAB file and have a look at the contents
Create a new folder in c: drive say c:\Templates\, drag and drop all the contents from the cab file
Edit the Product version tag in Manifest.xml and save the file
Open a command prompt, navigate to the folder where we copied contents from CAB file and take the list of files in a txt/ddf file. Store this file within C:\Templates folder

Prepare the DDF file with the list of obtained file names, don't forget to give the cabinet file name in DDF file
Download the sample DDF file here


Execute Makecab utility to generate the CAB archive, you will see a C:\templates\Package folder and within that folder the STP will be available

This is the new STP file which will work in SharePoint 2010 edition.