Tuesday, April 26, 2011

Speaking at SharePoint Saturday Tampa

I will be having a session at the SharePoint Saturday Tampa on 6/11. This will be the 3rd SharePoint Saturday event held in the Tampa, FL. The event will be held at K-Force HQ in 1001 E. Palm Ave. I will explore the value of SharePoint content management for business, explain the SharePoint ECM features and explore the main benefits and how business can estimate its value.
I am looking forward for the event and meeting many of the SharePoint Florida speakers as well.


Friday, January 21, 2011

Speaking at SharePoint Saturday EMEA

Live Online SharePoint Saturday EMEA is back on January 22nd, 2011. This is the second annual SPSEMEA and promises to be a huge event with over 30 sessions, 4 simultaneous Live Meeting Channels and a public text chatroom open to participants and speakers.


Registration for SPSEMEA begins on January 11 and is free to the global SharePoint Community. There are over 30 SharePoint Evangelists, including 10 SharePoint MVPs, from around the world providing content you would normally only see at a paid SharePoint Conference. Tracks are set for SharePoint End Users and Business Managers on topics for "How We Did It: Real World Case Studies", "No Code/Assembly Solutions", "SharePoint Interface Branding", and "SharePoint for Business". The sessions will be recorded and made available two weeks after the event.

We hope you'll join us for Live Online SharePoint Saturday EMEA. Please register in advance to guarantee free access to some of the best presentations available, all aimed at SharePoint End Users.

Tuesday, December 7, 2010

Speaking Events for December and January- Enjoyed South Florida and looking forward to January SharePoint EMEA.


On Saturday, December 4, 2010 I was down in Ft. Lauderdale , Florida to speak at the SharePoint Saturday South Florida. I covered the business value of integrating SharePoint and InfoPath. The event was hosted at Nova University and it was very well-organized thanks to Chuck and Michael. It was really a pleasure meeting everyone at the event and had great conversations at the speaker dinner. It was also great to meet many in of the speakers during the sessions but unfortunately I did not stay for the SharePint afterwards because I had to catch my flight. I am planning to speak at SharePoint Saturday EMEA on January 22ed and it will be interesting to present online that day.

Tuesday, October 19, 2010

Other methods to get the Content Type ID

Following the last post where I discussed the different methods of getting the GUID for list and ID of content types, there are other ways to get the content type ID.
If you have SharePoint Designer, you can navigate to the content type section, and then select any content type. The content type page will contain the Hex format of the ID for that content type. Unfortunately, using this method will not provide the GUID for the fields used in this content type.
Another way to get the ID for a content type, is to navigate to the features folder on the server
(drive://Program Files /Common Files/Microsoft Shared/Web Server Extensions/ 14/Templates/Features/ (select the list or content type folder)
When you open the schema.xml file you will be able to get the GUID for the content type as well as every field used in this content type.
For example this is the GUID for the event content type
As you have seen above, there are two formats to define the ID of a content type, the Hex code and the GUID.
 















To define a new content type, you must inherit form an existing content type which enables you to inherit all columns, workflows any information policy attached to the parent content type. The new Hex ID for the new content type will be composed of the Parent Content Type ID + 2 Digit Hex Value. If you are using the Guide format, as recommended by Microsoft as best practice, the GUID will be composed of the Parent Content Type ID + 00 + GUID (without any special characters) for example, a content type that inherits from the event content type will have GUID
01x0102DE7CA8F1-A8B0-490F-913D-F0F60638A18F
Where the 01x102 is the event ID (the parent) then a GUID {DE7CA8F1-A8B0-490F-913D-F0F60638A18F} with the {} removed.

Getting the GUID or internal field names of items in SharePoint

Many times during developing a SharePoint solution, we need to get the GUID of a list item, content type or a field but SharePoint does not display these GUIDs in an obvious way. In this post, I will discuss two ways that you can use to get the GUID of these items to be used during development.
One way to get the GUID is simply to navigate to the list settings page, copy the url, it will look like this:
http://YourServerName.com/_layouts/listedit.aspx?List=%7BEEF4F8B7%2D27D4%2D4A81%2D9E51%2D6A588EEF8D94%7D

The string after the List= is the encoded GUID i.e.
%7BEEF4F8B7%2D27D4%2D4A81%2D9E51%2D6A588EEF8D94%7D is the encoded GUID. Now you need to decode the GUID using one of these online tools (There are many resources online for encoding and decoding URLs that can do the same trick as well)

http://urldecoderonline.com/ (The is the best tool because you can copy the entire URL and it will break the URL to its complements which provides you with the list item very easily)
the decoded URL will look like this:
http://YourServerName.com/_layouts/listedit.aspx?List={EEF4F8B7-27D4-4A81-9E51-6A588EEF8D94}
so the list GUID is {EEF4F8B7-27D4-4A81-9E51-6A588EEF8D94}
To get the ID of a content type, navigate to the content type in the site content type gallery copy the string after the ctype of the URL and decode it, again, using one of the above tools. For example,
http://YourServerName/_layouts/ManageContentType.aspx?ctype=0x0107&Source=http%3A%2F%2FYOURSERVERNAME%5Flayouts%2Fmngctype%2Easpx
Encoded Content Type ID  0x0107
Decoded   Content Type ID  258
You can also apply the same technique to get the internal names of fields by using the string after the Field=
http://YourServerName.com/_layouts/fldedit.aspx?field=WorkPhone&Source=%2F%5Flayouts%2Fmngfield%2Easpx%3FFilter%3DAll%2520Groups


Tuesday, October 5, 2010

Using InfoPath and SharePoint Workflow: Create a task link to open the form in the browser.


One of the options that developers have while working with SharePoint is to use InfoPath forms and custom workflows. Another advantage is the ability to use InfoPath to integrate with SharePoint to provide a riche web forms that can be configured to enhance the user’s experience by setting default values and using filtering and views. The challenge in this scenario is not in the ability of handling the forms on the server (which is managed by the SharePoint when using web enabled forms) but with how the user who does not have InfoPath client installed interacts with the task e-mails sent for the workflow tasks. For example, look at the first link in the e-mail and you will quickly notice that it has an .xml extension.

If a user clicks on the link, the form will be downloaded and if the user does not have InfoPath installed on the machine, then the user will not be able to review the document.

In the following text, I will provide a very simple solution to this problem so that the user is presented with a link that opens the form on the server directly.

Here are the general steps involved:

1- We will create a custom task list to separate any tasks created by the work flow from other site tasks.
2- Go to the custom task list you created in step 1 and disable the custom task sending the e-mail
List settings --> Advanced settings then under E-Mail Notification

3- Select No for send e-mail when ownership is assigned?
 

4- Create a workflow that sends the e-mail notification for the form.
Below is a sample workflow I created for this demo:
The first action in the workflow is to create a variable to the URL of the form. To do this, select set workflow variable from the Actions menu.

5- On the variable name, select create a new variable and give it a name, in this case I named the variable FormURL.
6- In the value part of the action, click the Formula button and set the values of the look up as shown below:
Data Source: Form Library (the name of your form library)
Field from source: Encoded Absolute URL

In the “Find List Item” Section of the look up, select:
For the field: ID
Value: click the Formula button, and then set the values to:
Data Source: current item.
Form From Source: Workflow Item ID.

What we have done in this look up is to get the absolute URL for the item in the form library by whose ID matches the custom task list that has the matching Item ID.
The lookup should look like the figure below:

To explain this, when a task is created in a task list, the workflow adds 3 fields to the task
Workflow Item ID (the ID of the item that the workflow was initiated from- in this case the form item)
Workflow List ID (the ID of the List where you can find the item that the workflow was initiated from
-in this case the form library)
Workflow name: The name of the workflow that created the task in the task list

7- Once you have set up the variable as shown in the figure, you have the URL of the specific item you need.
8- Next, add send e-mail action (do not configure it now, we will configure it later)
9- Now open a form from your form library and copy the URL from the browser address
The URL will look like this:

10-Now remove the section in red (between location=) and (source) and add
Name of document to create a hyperlink using the document name.
11- And add [Document URL look up] instead. The code should look like the lines below:

12- Now, go to the send e-mail action that you created before and select it (do not double click to open it)
13- Once it is selected, go to the ribbon and select advanced properties

14-Select the body by clicking the button as shown below

15-Paste the code from the note pad
16-Replace the [Document URL look up] by selecting the text then click the ADD or Change Lookup button.
17-In the Lookup, select Workflow variables and parameters as the data source and the FromURL variable you created earlier.
18-Now the final step here is to replace the Name of document with a look up to the document name as follows:

Data Source: Form Library (the name of your form library)
Field from source: Name
In the “Find List Item” Section of the look up, select:
For the field: ID
Value: click the Formula button, and then set the values to:
Data Source: current item.
Form From Source: Workflow Item ID.

As you noticed, the setup is the same as the first look up but this time we selected the Name from the Form Library.

19-Now, set up your workflow to start automatically when Item is created.

You can customize your e-mail further and add company logo or any other html formatting that you need.





Tuesday, September 21, 2010

• Create a development SharePoint 2010 Environment on Windows 7 Part 2:

• Creating a development environment for SharePoint 2010 is much easier now with two options, you can deploy SharePoint foundation on Windows 7 or deploy your environment on a virtual machine. In any case, these steps will guide you through the process:

• First you will need a x64 laptop or (desktop) with at least 2 GB RAM (I suggest 4 considering that you will be running Visual Studio as well)

• The process is not that complicated but it must be done in the exact sequence otherwise you will get errors in different steps during the installation.
• Here are the steps in order:
• Follow the steps in my previous post here
• You will need to download the SharePoint.exe file for Microsoft SharePoint Foundation (WSS 4) from here
• We will need to change a line in the install configuration file so we start by extracting the SharePoint.exe file using the command prompt as follows:
• Go to the search box in windows and type command prompt
• Right-mouse the command prompt link and click the Run as an administrator


• In order to extract the installation files to C:\SharePoint FoundationExtract – You can name the extract folder anything you like but I used this name as an example. Type the following command in the command prompt window:

SharePointFoundation.exe /extract:c:\SharePointextract
Now all the installation files are extracted in the C:\SharePoint extract folder on your hard desk


CAUTION: do not use winzip or winrar (or any other software extraction tool because they usually break the folder structure and this may cause errors while installation. Trust me, I puzzled me initially and I lost some time getting an error stating that I do not have the right language on my system.
until I figured out that the installation file can’t find language setting for the WSS
• Find the config.xml file at:
\SharePointextract\files\setup
based on the command line I used, I should find the file in:
     c:\SharePointextract\files\setup\config.xml
• We need to edit the configuration file to allow for client install because out of the box, SharePoint can only install on windows Server OS.
Add the following line at the end of the file before the tag:
 • Save the file as config.xml in the same location.
Caution: Make sure the capitalization is correct
• The modified file should look like this:

• Follow the following link to install and configure IIS on windows 7 here.

1-Install the following additional prerequisites:
Microsoft FilterPack 2.0. At a command prompt, type the following:
c:\ SharePointextract \PrerequisiteInstallerFiles\sync\Synchronization.msi
(where c:\ SharePoint extract is the location where you extracted your SharePoint.exe)
2- Download and install the Microsoft Sync Framework 2.0 Redistributable Package here
Make sure that you select the right set of files that corresponds to your machine.
3- Download and install the Windows Identity Foundation
4- Install the SharePoint Foundation by running the command:
c:\ SharePointextract \setup.exe
(Again, where c:\ SharePoint extract is the location where you extracted your SharePoint.exe)

I will detail the installation process in the next blog.

Create a development SharePoint 2010 Environment Part 1: Installing software requirements for SharePoint foundation on Windows 7:

When you try to install SharePoint foundation on Windows 7, the installer will check for the prerequisites and will not install unless these features re installed. That will not be a problem when you are installing on a Windows 2008 server because you will have the option to run the prerequisite installer. But running the install pre-requisite option (Prerequisite.exe) on windows 7 will not run. Also, you must install SQL server before installing SharePoint Server but if you are installing the SharePoint Foundation, you do not need to worry about the SQL Server as the SharePoint Foundation installation will install configures SQL Express 2008 during the installation process. To prepare you windows 7 machine for SharePoint Foundation installation, I recommend following these steps:

Configure IIS by following these steps:


1- Go to control panel then select Turn Windows features on or off under the Programs and Features group.




2- Go to the Internet Information Services section of the Windows Features dialog box
3- Expand the Web Management Tools, then expand the II6 Management Compatibility section. Make sure you have the same configuration as the figure below:
4-Now expand the World Wide Services section and the Common HTTP Features sections: Configure these sections as figure below:






5- Expand the Health and Diagnostics section, the Performance Features and the Security Features then make these sections as figure below:



6-Click ok, Windows will install the features as shown below:


Then you will need to restart for the new configuration to take effect.
At this point your machine is ready to install SharePoint Foundation as I will explain in my next blog.


Thursday, July 22, 2010

Retrieve the passphrase in SharePoint 2010

Adding another server to a SharePoint farm is an easy task if you have the Passphrase that were used to create the farm initially. This “Passphrase” is needed to be able to add a new server to the farm. I have not seen any way to retrieve the passphrase if you forget it, this is where PowerShell can help you rest the Passphrase.


Just make sure that:
1. The account that you are using has the right privileges Securityadmin server role access on the SQL instance and the db_owner role in a database.
2. Administrative permission on the local computer.
• From your Start menu select “SharePoint 2010 Management Shell” or Start, “Microsoft SharePoint 2010 Products”, “SharePoint 2010 Management Shell” then click run as administrator to cover the second requirement above.
• Type the following command:
$passphrase = ConvertTo-SecureString -asPlainText -Force

This line will prompt you for a password and then stores the secure version of your password in the $passphrase variable.


Type the string that you want to use as your passphrase; I used “changePassPhrase” as an example as shown above.
Now type the following command:

Set-SPPassPhrase -PassPhrase $passphrase -Confirm

Then you need to confirm the passphrase and then ask you if you are sure that you want to change the passphrase to the password you typed.


After that, you can join your new server to the farm using the passphrase that you just updated.

Friday, April 16, 2010

SharePoint 2010 RTM Released.

The SharePoint team just announced the release of the release-to-manufacturing (RTM) for Office 2010, SharePoint 2010, Visio 2010 and Project 2010.


On April 27, the volume License customers with active Software Assurance (SA) on these products will be to download the product. The public release t will be on May 12th .