Reza Alirezaei is a SharePoint 2010 MCPD, MCITP & MCTS!

July 30th, 2010 10 comments

I took all 4 beta versions of SharePoint 2010 exams in three days in May 2010. My transcript  finally showed up, and it shows that I have successfully passed all four exams. So, I am officially a SharePoint 2010 MCITP, MCPD and MCTS (in both Application Development and Configuration).

mcp.pngmcpd.pngmcitp.pngmcts.png

Categories: General, SharePoint 2010 Tags:

Exclusion Filters in User Profile Synchronization

July 25th, 2010 5 comments

Assuming that you have already setup a profile synchronization connection, let’s say you need to configure the service to exclude users whose accounts have been disabled in Active Directory. Or, the groups which contain the word “RAS” in them.

How would you do this? The answer is exclusion filter.  A feature that enables you to exclude users (or group) during the synchronization process.

First you need to get there:

1) Browse to Central Administration Site > Manage Service Applications > User Profile Service Application.
2) On the Manage Profile Service: User Profile Service Application  page, click the  Configure Synchronization Connections. This will take you to a page where all the synchronization connections are already setup.


3) Select the connection you want to filter, and then from the ECB menu, click Edit Connection Filter.

The Edit Connection Filters page is where you can select a user or group property for which you want to apply a synchronization filter and configure it. The page is divided into two sections: Exclusion Filter for Users and Exclusion Filter for Groups. Titles are pretty self-explanatory!

4) In the users section, click the Attribute list drop down and select userAccountControl flag.

Adsiedit.msc displays the value of this flag in decimal for a disabled account (John Doe):

5) Select Bit on equals as the operator,and then type 2 for the filter value. Don’t forget to click Add to add the filter condition to list of existing conditions.

* Choose All apply (AND) when you need all of the conditions to be true for the exclusion filter to kick in.
* Choose Apply any (OR) when you need only one of the conditions to be true for the exclusion filter to kick in.

6) In the groups section, click the Attribute list drop down and select DisplayName.
7) Select Contains as the operator,and then type RAS for the filter value. Again, don’t forget to click Add to add the filter condition to list of existing conditions.

Your page should look like this:

.8) Click Ok where your done.
9) Start a full synchronization.

Once the synchronization is completed, the John Doe guy and all the groups containing the word “RAS” shouldn’t be imported to SharePoint.

Categories: SharePoint 2010 Tags:

A Renewed MVP Again!

July 19th, 2010 4 comments

Gotta love Canada Day that’s the anniversary date for my MVP award!

It’s a late kind of announcement, but just a quick note that I was awarded MVP status again.  This makes it my fourth year as a SharePoint MVP and I’m looking forward to another exciting year of helping the SharePoint developer community through my presentations, upcoming new book (will be announced later), articles and blog posts.

Plain End User Story: Creating a SharePoint Meeting Workspace in Outlook

July 19th, 2010 No comments

This seems to be a pretty straightforward thing, but I’ve been hearing this one question a lot recently:

How can I create a SharePoint meeting workspace in Outlook 2010?

Typically, you create the meeting workspace in SharePoint first, and then link to it in outlook or you can create the meeting request and the workspace both at the same time in outlook. In Outlook 2007, the button to create a meeting workspace was right there on the ribbon. However, in outlook 2010 it was decided to hide it for whatever reasons. To add the button back to the Quick Access Toolbar (QAT) and create a SharePoint meeting workspace, you need to take the following steps:

Create a new Meeting in Outlook:


Click on the Customize Quick Access Toolbar and from the popular Commands, select the Meeting Workspace. Next, Click on the “Add >>” button.

072010-0308-plainsharep2.png 

Fill out the required information for your meeting request: 

072010-0308-plainsharep3.png

Now, click on the meeting workspace button you just added to the QAT:

072010-0308-plainsharep4.png 

This will open a new pop up window where you should type in the URL of your SharePoint Site (SP2010 or 2007 both works just fine in Outlook 2010): 

072010-0308-plainsharep5.png

Click Ok (You may be asked to enter your credentials and authenticate to the site you are trying to create the workspace). At this point you should see the site and a bunch of other options available to you. Click Ok again.


This will take you to the confirmation pane where you need to click on the Create button to create the meeting workspace in SharePoint.



Once the workspace is created, a link will be included within the body of the meeting request. When you send the meeting request, the attendees can click on the link to browse to the meeting workspace.

072010-0308-plainsharep9.png

Obviously, you should have already given the attendees the required permission to access the workspace in SharePoint. Don’t worry, Outlook is smart and enough SharePoint aware to forewarn you about that by showing a nice little notification to you.


Below is the meeting workspace I created in my BPOS SharePoint site in Outlook 2010:

072010-0308-plainsharep11.png 

Sure enough, when you create a SharePoint 2010 meeting workspace, you will get many more template options for your meeting workspaces, as shown in Figure below:


And here is a Social Meeting Workspace I created in one of my SharePoint 2010 sites:

072010-0308-plainsharep13.png

One thing is worth mentioning here though! Once you create one meeting workspace in your Outlook, you can link to that workspace for future meeting requests if needed:


Happy Organizing!

Categories: MOSS 2007, SharePoint 2010 Tags:

SharePoint 2010: Creating Custom List Definitions that Use InfoPath Forms

June 14th, 2010 10 comments

The general requirement is a “round-trip” of the form you want to add or replace. Before adding or replacing forms in a WSP, they need to be published. Once the form is in a WSP, it can be imported into any Visual Studio project (i.e. a project that defines a custom List definition) and reused. When you publish the form, URLs in the XSF file can be relativized, and other content can be added/removed from XSN components as required by the publish process. We’re proposing the following, for example, when replacing a WSP form:

1. Open the WSP in Visual Studio
2. Locate the XSN in the WSP (there is a standard structure for both list and form library forms).
3. Download a copy of the XSN from SharePoint server using SPD, or make a copy of the XSN that is currently in the WSP.
4. Make the required modifications to the XSN in the InfoPath Designer application
5. Publish the form back to SharePoint
6. Download the XSN from SharePoint using SPD.
7. Replace the XSN in the WSP
8. Repackage/deploy the WSP

That’s the general “life-cycle” and practice. The process below is touching on deploying a SharePoint list form:

If you’ve already upsized a list, before importing the Site WSP into Visual Studio, the XSN will exist in the WSP and can be modified. There is also a process for adding a form to a list definition in a WSP which involves several manual steps. At a high level, the latter involves:

1. Add the XmlDocument to the Schema.xml (under List instances)
2. Under the Modules node, add a new Module (Item_):

  • Name: Lists<name>Item_
  • Modify the Elements.xml file.
  • Remove the “Sample.txt” file added by VS.
  • Add Folders under the created module and add the XSN template so that the path matches the one described in the Elements.xml file

3. Add the Item_pages Module:

  • Name: Lists<name>Item_pages
  • Get the List ID (On the SharePoint server, the link to Add a new list item contains the List ID, it can be copied from there.) <- this step might not be necessary, the deployment process  doesn’t match the list by ID but by name, any GUID would do as long as it’s unique.
  • Ensure the sharePointListID attribute (under the sharepointListAdapterRW node) on the manifest.xsf file matches the GUID “id” value for the Elements.xml file created in this step.
  • Add the property bag to the _pages node.
  • Requires: vti_eTag: maps to the uniqueID for the folder “Lists\<name>\item”.  –> More specifically: PropertyBag refers to the properties of the “item” folder.

4. Add a property bag per item to the modules, one for each:

  • Template.xsn
  • Displayifs.aspx
  • EditIfs.aspx
  • NewIfs.aspx

On the “Features” node add the Modules created before (step 2 & 3: Lists<name>Item_   & Lists<name>Item_pages)

That’s it!

Categories: SharePoint 2010 Tags: