June 2007 - Posts

For those of you that are getting started with Windows Workflow Foundation

Lately I've been getting a lot of requests to explain building SharePoint Workflows with Visual Studio 2005 with WWF extensions. If I go back in time and look back into my initial research, I remember which document was more useful than the rest.

This is actually a manual from the Hot Lab held at last year's Tech Ed (2006) in US which demonstrates using Microsoft® Office SharePoint® Designer 2007 as well as Visual Studio 2005 with WWF extensions to design a SharePoint Workflow.

I've been distributing this manual among other material and the feedback that I got was that this manual is the most useful resource out of it all.

You need the following to embark on this journey:

You can download the document here.

Please note that this was based on BETA versions of the software and there are few changes (it's slightly better), but it's no show stopper, still if you really get stuck somewhere, please don't hesitate to contact me, and I'll help you with it.

Posted by Zlatan | 5 comment(s)
Filed under: ,

Sharepoint Workflow (WWF) and Active Directory (Update)

Although it's a bit too late now with respect to my work done when posted my previous blog, Microsoft ECM team already provided us with a nice parser (mine is very similar to this one) and much more. It comes with the 2007 Office System Developer Resources\ECM Starter Kit.

The following actions can help you achieve some nice SD user manipulation:

FindManager

FindManager looks up a given user's manager in active directory and returns the manager in a parameter.

Handlers and properties:

In parameters:

AccountName: string that specifies the account name of the person whose manager you are trying to look up (e.g. DOMAIN\alias)

Out parameters:

ManagerAccountName: string that specifies the account name of the input user's manager (johnd)

ManagerEmailAddress: string that specifies the email address of the input user's manager (john.doe@company.com)

ManagerDisplayName: string that specifies the display name of the input user's manager (e.g. John Doe)

I seriously advise using these activities in your workflows to execute various custom actions that you will most likely need to use (Add the dll as a reference to any workflow project).

I'm personally using it for many things (slightly modified)

It comes with the:

Workflow task, compound activities, promoting event handlers and properties with activities, such as: CreateTask, DeleteTask, CompleteTask, OnTaskChanged, OnTaskDeleted, ConditionedActivityGroup, LogToHistoryList

And also some very handy Records Management workflow activity features.

You can get all this when you download and install SharePoint Server 2007 SDK: Software Development Kit and Enterprise Content Management Starter Kit.

If you need any help, please don't hesitate to contact me.

Posted by Zlatan | with no comments
Filed under: ,

Sharepoint Workflow (WWF) and Active Directory

I’m currently designing a Sharepoint Workflow using VS2005 with WWF extensions for the client and part of the requirement is to, once you assign a task to a group in Active Directory, be able to assign separate tasks for each user that belongs to that AD group and subgroups. Now, there doesn’t seem to be a way to do that using provided workflow steps so you have to use the AD API to resolve the users and loop the Create Task step until all the users get their separate task (if you know a better way please tell me, as it doesn’t make sense that MS Developers haven’t catered for it, although I even got confirmation from some Microsoft resources that this is a way to go).

It’s been a while since I had to look at the AD API and the web resources, although not scarce, are not that accurate.

The most useful resource link is Quick List for C# Code Examples.

Be careful if you want to get the actual users, you need to know all the attribute names and the resources online don’t seem to list those accurately.

For example “Name” only returns the actual full name of the person and not the user name, “UserName” returns buggerall, “userPrincipalName” returns the full e-mail address and finally “SAMAccountName” actually returns user name (found this by trial and error, as I couldn’t find any explanation for the attributes).

Below is the code sample in C# you can use to get the user names:

 

DirectoryEntry group = new DirectoryEntry("LDAP://CN=clicksstores,OU=groups,OU=ncsa,DC=newclicks,DC=com");

object members = group.Invoke("Members", null);

foreach (object member in (IEnumerable)members)

{

    DirectoryEntry x = new DirectoryEntry(member);

    Console.WriteLine(x.Properties["SAMAccountName"].Value);

}

Posted by Zlatan | 1 comment(s)
Filed under: ,

How Anoto can put your .NET, Sharepoint 2007 and OBA solutions on steroids

This is yet another composite application that can complement your Sharepoint 2007 system solution.

First time when I heard about this concept I was fairly skeptical and I didn't fully understand just how powerful this solution actually is. I was still working for my previous company and at the time the need came about for an Ambulance System for a certain provincial Department of Health. As the basic need for this was an Enterprise Content Management system (Workflow, Notifications, Forms, Reporting together with Integration to certain systems) and Sharepoint 2003 was still in its Beta stages and no sign of anything like Sharepoint 2007 from Microsoft, logical choice for me was to use Opentext Livelink as the ECM solution (it always seemed as the best choice between that, Meridio and FYI).

Suggestion came to use Anoto from one of our partners that were also service providers for Anoto. After having a chance to use experience its power I was completely taken by the concept realizing that it's one of the most revolutionary ideas in Business Process Management and it's an instant win for any ECM solution.

Let me tell you first more about the solution:

The client required a system that will allow an Ambulance Medic (excuse my StarCraft lingo) to capture the details of the casualty at the scene of the accident, be able to remotely send it to the system that can than store the required information, decide which hospital and doctor to use, subject to patient condition, location of the accident, bed and doctor/surgeon availability which will then notify the relevant personnel at that hospital about all the relevant details (condition, allergies, etc) in order prep them  for the incoming patient.

To tell you more about Anoto (also as explained by Anoto), Anoto functionality is regarded as the standard for digital pen and paper. It comprises three main parts, the paper, the pen and the service infrastructure.

Various types of paper are printed with a unique background pattern that forms part of a huge "map". Computer analysis of the pattern allows the position of a digital pen on the pattern to be pinpointed with great accuracy.

All handwritten information is recorded by the pen and stored as an exact digital copy before being sent to the receiving device. Additional information such as the time, date and unique identity of the pen is also stored.

The pen itself is a revolution and it includes state-of-the-art image processing technology. It is equipped with a traditional ink cartridge, a digital camera, a processor/memory and a Bluetooth transceiver. The pen can store up to 40 pages of written information and send any selected page via a USB connection or Bluetooth/GPRS phone over an operator's network. Several vendors offer digital pens enabling Anoto functionality, including Logitech, Nokia, Sony Ericsson, and Hitachi Maxell.

Anoto also utilizes OCR/ICR technology to read the written information on the form and put it into the structured XML format and send it to the receiving system along with the digital copy of the form (image). In my case the XML bit allowed the integration between Anoto and Livelink's forms/workflow functionality.

Best thing about this solutions is the fact that it almost eliminates any need for Change Management and making you figure out how all the potential users will adapt to the technology, because at the end of the day, you're using just simply pen and paper, something that we allll know how to use!!

With this functionality my System Architecture could take shape and be used to its full potential.

Microsoft saw the opportunity to use this technology long time ago but then it was all about making it work with its new .NET and Windows XP (see Microsoft and Anoto Announce Strategic Alliance To Offer Pen-Based Communications Using the Microsoft .NET Platform).

From the article you can see that Anoto already made the whole technology available for the .NET platform.

Although the system was documented and the proof of concept of this awesome solution was completed, sadly the prices of Nokia digital pens and subscription to use Anoto software was well above certain Department's bracket so the system never got to be used.

Microsoft Surface

I'm not sure if someone already blogged about this but you have got to check out Microsoft Surface: http://www.microsoft.com/surface/

I got the link from my friend and colleague Schalk.

We've all seen Tom Cruise using this in Minority Report, but now it seems that it became reality.

I can see this integrating with Sharepoint and using it to manage content already!! 

Weird thing is that Microsoft didn't use Microsoft Silverlight too create the site, but opted for Flash instead?! Maybe it's still way too Beta?!

 

Posted by Zlatan | with no comments

www.zlatandzinic.com

I've recently registered and released:

http://www.zlatandzinic.com/

This site will serve more as my personal site, and its main purpose is to contribute further to the Microsoft community focusing mainly on Sharepoint solutions (Enterprise Content Management, Document management, Workflow, Records Management and OBA).

It will contain bunch of useful links, news and material and it will start off with the following forums where I can try and help Microsoft Sharepoint community to the best of my abilities:

  • Questions about ECM
  • Questions on Sharepoint 2007
  • Questions on Business Intelligence and PerformancePoint 2007
  • Questions on Office Business Applications (OBAs) and Sharepoint 2007 Deployment Architecture

I also encourage others in the community to contribute to the same forums, by sharing knowledge and answering questions.

Although dotnet.org.za will still stay as my primary blog site, and blog entries will be cross-posted to http://www.zlatandzinic.com/ from dotnet.org.za.

Posted by Zlatan | with no comments

Getting down with Microsoft Office Business Applications (OBAs)

Some of you might remember when Microsoft unveiled Microsoft Office Business Applications strategy at the TechEd US last year. Some of the more fortunate of us even had an opportunity to be there in person (not me).

Basically the concept came after Microsoft decided to go into the whole Enterprise Content Management industry and compete with OpenText, EMC, and Filenet with it's very powerful, yours and my favourite, MS Sharepoint Server 2007. They made offering twice as competitive and twice as powerful by also offering a full Business Intelligence solution accessible on the same platform, courtesy of acquiring Proclarity and developing Business Scorecard Manager 2005 (with web parts that connect to BSM and Proclarity's Analytics web client). They also made the old habits of using Excel much easier for distribution and more powerful by introducing Excel Services.

As Microsoft explains in their press release:

"Office Business Applications focus on the complete processes that actual information workers follow. Most people conduct their jobs outside of structured, line-of-business processes because their work is often collaborative in nature, they need information from multiple sources, and they often work offline (in meetings, traveling or otherwise away from their desks). For example, salespeople want to access customer information, manage their sales calls in their Microsoft Office Outlook calendar, access product experts inside their company, and make proposals without "reinventing the wheel." These more fluid processes help them get their jobs done, but typically are not part of traditional customer relationship management (CRM) systems."

Very important part of the OBA architecture (as seen below) is the Application Tier which follows SOA (Software Orientated Architecture) principles which involves basically building web or other services that can be used to integrate with Line of Business Applications (also SCM, ERP and Legacy systems). This sits between the Collaboration layer (WWF, SharePoint, Business Data Catalogue, Forms Library, KPIs and Metrics, Excel Services) and a Data Layer (Data Stores, Data Warehouses, Analysis Services).

It employs an important concept of providing single service interface for common functionality between various systems, eliminating repeated capturing of the same data.

The image above explains how OBAs have been conceptualized in the following 4 tiers with respective tools, namely (also quoting Microsoft):

Presentation Tier

  • Assets to present business information to information workers
  • Platform capabilities required: rich user experience to enable insight in the context of business interactions

Collaboration Tier

  • Assets to manage ‘rhythm of the business'
  • Platform capabilities required: support for management of collaborative work streams in a document-centric manner

Application Tier

  • Assets to manage business transactions
  • Platform capabilities required: ensure consistency and durability of transactions as they occur

Data Tier

  • Assets to manage data
  • Platform capabilities employed: integration, reporting and analysis of data, identity management

 

Please also look at the Microsoft OBA Team blog here.

Wiki definition of OBA.

As Patrick Tisseghem would say in his blog:

"May the OBA be with you!"