September 2007 - Posts

Doing Records Management in SharePoint 2007 Part 1 (Intro)

This is a three part post that will show how to deploy and configure Records Management Solutions in SharePoint 2007.

Records Management can be tricky business. Most businesses and corporates do it (manually) but they don't call it that way and it takes a while for them to make a connection when you try to explain what Records Management as part of their elaborative Enterprise Content Management suite actually is, and even if they make a connection, the mere notion of making this process electronic makes them only mildly enthusiastic, and they struggle to see direct business benefit of having this process electronic.

Yet in the same breath they can't believe their eyes and they get extremely ecstatic when they see that they can search and retrieve their file electronically after having it shipped to Metrofile (local service provider for physical file archiving) and at the same time worry about the archived documents, their disposal schedules. They'll end up paying a fortune not realising they can do it all themselves, using their Records Management solution, far more efficiently.

Luckily there's a serious player in this game, namely South African Government (National, Provincial and Local). They take Records Management so seriously that according to their policies every piece of paper that comes into the organisation (including the bubble gum wrapper) belongs in Records Management, collected in respective Registries and archived accordingly.

Records Management plays an important role internally (correspondence, policies, procedures etc.) and externally (with clients), for example, when you submit your Medical Certificate as part of the Disability Grant Application with South African Social Security Agency (SASSA), that Medical Certificate is only valid for 6 months, after that period the document is not valid hence why it gets disposed (destroyed).

Records Management for South African government is governed by National Archives (http://www.national.archives.gov.za/) or more accurately:

National Archives and Records Service (NARS)

National Archives prescribes how Electronic Records Management should be done (http://www.national.archives.gov.za/rms/best_practice.htm#managing_electr_recs):

"The National Archives and Records Service, in terms of its statutory mandate, requires governmental bodies to put the necessary infrastructure, policies, strategies, procedures and systems in place to ensure that records in all formats are managed in an integrated manner. The National Archives and Records Service endorses the SANS (ISO) 15489 Records Management Standard, the SANS (ISO) 23081 Metadata standard and the SANS (ISO) 15801 Trustworthiness and Reliability of records stored electronically as a benchmarking tools for sound records management. The National Archives and Records Service currently also endorses the US DoD 5015.2 Design Criteria Standard for Electronic Records Management Applications and the UK Public Records Offices' Functional Requirements for Electronic Records Management Systems. A product certified against one or both off these standards does possess the records management functionality required by the National Archives and Records Service.

The National Archives and Records Service requires governmental bodies to implement and maintain Integrated Document and Records Management Systems that provide as a minimum the following records management functionality:

  • managing a functional subject file plan according to which records are filed;
  • managing e-mail as records;
  • managing web-sites as records;
  • maintaining the relationships between records and files, and between file series and the file plan;
  • identifying records that are due for disposal and managing the disposal process;
  • associating the contextual and structural data within a document;
  • constructing and managing audit trails;
  • managing record version control;
  • managing the integrity and reliability of records once they have been declared as such; and
  • managing records in all formats in an integrated manner.

Not many governmental bodies have the capacity to implement fully automated Integrated Document and Records Management Systems. This does not however mean that they should not manage their electronic records. If these records are created to aid in decision-making and to perform transactions that support the governmental bodies' activities, governmental bodies are responsible for the proper management of those records. If records generated in such an environment are not managed properly it can lead to the possible illegal destruction of records. To enhance their accountability, bodies should ensure that, even without the benefit of an Integrated Document and Records Management System, they exercise effective records management.

Detailed information regarding the management of electronic records is contained in the National Archives and Records Service's two publications Records Management Policy Manual and Managing electronic records in governmental bodies: Policy, principles and requirements and Managing electronic records in governmental bodies: Metadata requirements. Both publications are available on the National Archives and Records Service's website or can, alternatively, be requested in hard copy from the Records Management Division of the National Archives and Records Service."

Ok so what you can see so far is the mention of the standards required and remember that SharePoint 2007 is DoD 5015.2 certified (http://www.microsoft.com/presspass/press/2007/may07/05-29SharePointDoDPR.mspx?rss_fdn=Press%20Releases) making it now "kosher" for the Government use for official electronic Records Management. More importantly you can see the mention of a File Plan.

Remember it's actually not "kosher" yet, until later this year (meaning very soon), when Microsoft will release a free add-on pack that extends MOSS 2007's records management capabilities in appropriate ways so that customers and partners can deploy DoD 5015.2 compliant solutions in production environments. (http://blogs.msdn.com/sharepoint/archive/2007/05/30/dod-5015-2-certification-for-moss-2007-we-ve-passed-the-test.aspx)

Definition of a File Plan is: A pre-determined classification plan by which records are filed and/or electronically indexed to facilitate efficient retrieval and disposal of records.

File Plan is actually a complete taxonomy structure containing places for every record in the organisation (bunch of headers, classes, case files).

In SharePoint 2007 File Plan is used more as Document Library, managed by a Records Manager with records that are, once declared, sent to the Records Repository. This is one very important difference with SharePoint 2007 Records Managemnt solution (as opposed to some other competitive Records Management solutions). It actually takes records completely away from the public domain, WOW, finally someone got this right the first time, suggesting a loosely coupled Records Management solution. It's as if Microsoft listened to all my clients in the past. Other leading Records Management solutions should seriously consider copying this from Microsoft.

File Plan will look something like this:

In my subsequent posts I will show you, step by step, how to set up a Records Repository using (South African) government type Records Management structure, and more importantly, use it.

I will also update this tutorial (based on MS virtual labs) once the add-on pack comes out.

One more thing, series numbers are not supposed to be in the 1-1-2-3 type format, but rather in 1/1/2/3 format but SharePoint doesn't support "/" character(among others) as folder names.

This is a serious error from Microsoft's side when it comes to Records Management solutions and if they want to acquire, potentally huge client base (ie SA Government) they should fix this immediately.

Excellent talk on OBA from Channel 9 - ARCast.TV - Office Business Applications at Epicor

Eben sent me a link to these webcasts early last week and only recently I found time to take a look at them. If selling or architecting, creating and implementing OBAs is you cup of tea, then you must check this out:

ARCast.TV - Office Business Applications at Epicor (Part 1)
ARCast.TV - Office Business Applications @ Epicor (Part 2)
ARCast.TV - Office Business Apps @ Epicor (Part 3)
Posted by Zlatan | with no comments
Filed under:

Main Competition to SharePoint Server 2007 - ECM Market Leaders

After one of my previous posts (SharePoint 2007 Workflow (WWF) VS OpenText Livelink Workflow), few people came back to me, asking me: What is Livelink? What is Livelink Workflow?

Livelink (http://www.opentext.com/) is one of the leading Enterprise Content Management offerings from OpenText.  It’s permanently featuring in the fourth Gartner Quadrant (http://www.gartner.com/) together with its two main competitors (also giants in the ECM industry) Documentum (http://www.documentum.com/ owned by EMC²) and Filenet (http://www.filenet.com/ now purchased and owned by IBM).  These 3 giants are closely followed by Stellent (http://www.oracle.com/stellent/index.html now purchased and owned by Oracle) and Hummingbird (http://connectivity.hummingbird.com/home/connectivity.html now purchased and owned by OpenText).

   

Please bear in mind that OpenText is also Microsoft Gold Partner.

My suggestion to you is to first learn about Gartner and their quadrants (we even have annual Gartner conferences here in South Africa which now mustn’t be ignored by greater Microsoft community), and then closely examine offerings from respective suppliers above and see how SharePoint 2007 positions itself against all of them. I strongly suggest this as these are already well established strong Market leaders (that Microsoft never even touched until SharePoint 2007), with years of experience in this market and well refined product base. This is even more important for sales people that are trying to position SharePoint 2007 against these products to various clients, as lack of information about these products might lead to embarrassment (not that those sales people are not used to it). SharePoint is right now the biggest challenger to the throne of Enterprise Content Management Empire, and Microsoft here really needs to take the competition even more seriously then before.

In order to learn more about Livelink’s Business Process Management (wrt my pervious post) offering here is the write-up:

With Open Text business process management products, you can create, deploy, modify and manage business process of any complexity. The ease with which this can be accomplished empowers business process owners to build and manage workflows with little or no dependence on valuable IT resources.

Open Text's Business Process Management products are:

·         Livelink ECM - Advanced Workflow extends systems based on Livelink ECM - Enterprise Server with enhanced process management capabilities, including comprehensive e-forms management and design, electronic signatures, XML enhancements to standard workflow, and a powerful Web-based reporting tool.

·         Livelink ECM - BPM Server supports the automation of high-volume, transactional business processes. Highly flexible and scalable, it provides event-based processing, integration with ERP and legacy applications, and graphical process design and modeling tools.

·         Livelink ECM - eDOCS Workflow delivers a flexible, easy-to-use solution for defining and managing workflows throughout all stages of the content lifecycle, while empowering business owners and content managers.

Which SharePoint technology is right for you?

Many times questions like these came out of many discussions: Does SharePoint 2007 Standard support that? What is in WSS 3.0? Why should I go for SharePoint 2007 Enterprise Edition?

 Simple, yet detailed, answers to all of those questions you can find here:

http://office.microsoft.com/en-us/sharepointtechnology/FX101758691033.aspx

You can also download it all in a handy Excel document here:

http://office.microsoft.com/en-us/sharepointserver/ha101978031033.aspx

 

SharePoint 2007 Workflow (WWF) VS OpenText Livelink Workflow

 

 

SharePoint 2007 Workflow (Visual Studio 2008)

Livelink  Workflow (Livelink Server 9.7)

Workflow Platform Type

Framework

Engine

Electronic Forms Support

Yes (InfoPath)

Yes (LL Forms Module)

Interoperability with Desktop Applications

Yes (Microsoft Office Suite Only)

No

Interoperability with Email

Yes

Yes

Integration with Line of Business Applications

Yes

No (Actually maybe with some insanely complicated level of integration)

Electronic Signatures

Yes (WRMS, a bit complicated)

Yes (eSign)

Supports Attachments

Yes

Yes

Expression builder (WF Logic)

Yes

Yes

Dynamically assigning WF steps to Users

With customisation

Yes

Easy MIS

Needs to be built

Yes (OOB)

Logging

Needs to be created in WF

Yes (OOB)

Interoperability with custom services and web services

Yes

No

Development Required

Yes

No (except for customisation)

Development Language

.NET

OScript

 

First of all, it was only since Visual Studio 2008 came out that I decided to start comparing elements of SharePoint 2007 such as Workflow and Business Process Management to other leading Enterprise Content Management systems. Before that exercise would be pointless.

Livelink in this game comes as a seasoned veteran and SharePoint 2007 and WWF are playing the catch-up game here, so I'll focus more on how much WWF caught up so far.

Windows Workflow Foundation's (in SharePoint context) biggest weakness is in fact that it's a framework that requires skilled developers to design workflows where other workflow solution are in a form of an engine, with very easy, user friendly design studio that can easily be mastered by less skilled people (basically non-developers).

That, being a weakness, in fact is also the biggest strength of WWF, as in my personal career, the percentage of clients that were happy with OOB (out of the box) workflow (such as Livelink) functionality is less than 30%.

On the other side customisation in WWF now is almost flawless, it provides variety of highly functional Workflow steps that make use of the latest technology available for .NET, and is provided in known strongly supported languages (such as C#). Whereas in Livelink for example, the whole solution is written in a proprietary language called OScript (written especially for Livelink) which is object orientated (mostly similar to C, has elements like assocs and stuff) with a very good object model but also very outdated making the customisation less then easy (in today's terms), and since it is proprietary the skills are very scarce (there's only very few of us in the country that are good with it) making it not very profitable for the clients and service providers.

Also, to add a custom step to Livelink workflow requires creating whole module, installing it and in some cases having to even re-do the existing workflow (if it existed before), they don't have the code activity type steps (although other WF engines like K2.NET and FYI have it).

Windows Workflow Foundation for MOSS2007 also wins "BIG TIME" with InfoPath 2007 and Forms server with SharePoint 2007 against Livelink Forms. Being able to add various controls from the InfoPath UI to your SharePoint 2007 Electronic forms is a good start, and then controls such as: Repeating Sections, Repeating Tables, Optional Sections, leave Livelink Forms far behind.

Livelink still leads with the tight integration of workflow with rest of the Livelink suite, consisting of much more refined products to better provide various Enterprise Content Management Solutions.

All in all the race has become tight and I see MS SharePoint 2007 Workflow solution leading in near future if the OpenText Livelink crowd doesn't realise how important it is to keep your solution on the latest Development Platform.

The talk has been for some time that version 10 of Livelink will be completely re-written in Java, we're yet to see if that will increase the stakes in the game (if it comes any time soon).

SharePoint 2007 Workflow (Business Process Management) Solutions are solid enough to play with the big boys now, even without the help from the mighty (yet expensive) BizTalk server.

 

Who stole from whom?!

Or maybe they just happen to have the same person do their respective logos.

Posted by Zlatan | with no comments
Filed under:

Iterate through items in a MOSS 2007 list when using Windows Workflow Foundation

Brad from Shoprite asked me on my forum  (http://zlatandzinic.com/forums/) about this, so as usual I try to make my answers available to a larger pubic so here it goes:

Here's an example of the code to use (mostly for event handlers):

using(SPSite mySite = new SPSite(http://yourspserver/))
{
   using(SPWeb myWeb = mySite.OpenWeb())
   {
      SPList yourList = myWeb.Lists["NameOfYourList"]; //you can also use the List ID if you don't want to specify the list by name
      foreach (SPListItem item in yourList.Items)
      {
         string itemValue = item["Some Field Name"].ToString(); //now this obviously depends on the list field type
      }
   }
}

In workflow you would use like this, let's say if you create a code activity step:

public sealed partial class YourWorkflow: SequentialWorkflowActivity
    {
 public SPWorkflowActivationProperties workflowProperties = new SPWorkflowActivationProperties(); //you use the publicly declared workflow activation property

    private void codeActivity1_ExecuteCode(object sender, EventArgs e) //your code activity workflow method
        {

 SPList yourList = workflowProperties.List; //alternatively you can use workflowProperties.Web.Lists["NameOfYourList"];
 foreach (SPListItem item in yourList.Items)
     {
  string itemValue = item["Some Field Name"].ToString(); //now this obviously depends on the list field type
     }

 }

}

Compare the differences between building MOSS 2007 Workflows in Visual Studio 2005 Vs Visual Studio 2008

Old (VS 2005) way was:

  1. Create workflow in Visual Studio 2005
  2. Author the feature definition file
    1. Add GUID
    2. Add title
    3. Add description
    4. Add manifest location
  3. Author workflow template definition file
    1. Add GUID
    2. Add name
    3. Add description
  4. Compile the workflow files into a .NET assembly
  5. Sign the assembly
    1. Add key file
  6. Design the actual workflow, add code etc. (This is the "real" developer task)
  7. Install assembly into the Global Assembly Cache
  8. Extract public key token
  9. Add key token to workflow template definition file
  10. Deploy feature definition file to SharePoint file system
  11. Deploy workflow definition file to SharePoint file system
  12. Reset Internet Information Services
  13. Press F5
  14. Attach to WPW3.exe process
  15. Associate workflow with document library

New (Orcas/VS2008) way is:

  1. Create workflow in Visual Studio Tools for Office "Orcas"
  2. Design the actual workflow, add code etc. (This is the "real" developer task)
  3. Press F5

If you check my previous post : How to Create a SharePoint 2007 Workflow using Visual Studio 2008 Beta (Example) you can see what I mean about developing workflows on Orcas/VS2008.

In order to se what you're gaining with Visual Studio you can compare it the instructions I gave you in one of my previous posts on how to create workflow for SharePoint 2007 using Visual Studio 2005: For those of you that are getting started with Windows Workflow Foundation

Or those of you that attended my presentation: Developing SharePoint Solutions and Office Business Applications (OBA) Using .Net

You can also check Sahil Malik's example for SharePoint 2007 using Visual Studio 2005:

SharePoint 2007 Workflows - Writing an Ultra Basic WF 

Table of Contents for on SharePoint 2007 WF Authoring using VS2005.

1. Setting up your environment for writing VS2005 workflows.

2. Writing an ultra basic workflow, deploying it, and slicing dicing how it worked.

3. Making that workflow more complex, adding if/else, and a bunch of activities that sort of make it more interesting.

4. Adding user interaction to that workflow using Infopath forms.

How to Create a SharePoint 2007 Workflow using Visual Studio 2008 Beta (Example)

A lot of people have complained that access to the Virtual Labs that I mentioned earlier in my blog is very slow and unstable. So this tutorial that I’m about to give you is based on the case in Microsoft Virtual Labs. I’ve also had a lot of requests of posting example code for creating workflows in VS2008 Beta (last one from Stephen Korow). You’re about the witness an evolution in building workflows for Microsoft, no need for command line deployment, specific configuration of workflow features, and dealing with workflow and feature xml files.

What I’m about to show you I did and tested in the following environment:

·         Microsoft Windows server 2003 R2 Enterprise Edition

·         Microsoft Office SharePoint Server 2007 Enterprise Edition

·         MS SQL 2005 Enterprise Edition

·         Visual Studio 2008 Team Suite Beta 2

·         Code was done in C# only

(Note: Not that you need this exact environment. Link to the source code and word template can be found at the end of this article)

1.       In your SharePoint 2007 create a Document Library (unless you already have one) which is easily achieved by choosing “Create” from the “Site Actions” menu (located in the top right corner) and then choosing” Document Library”, give it a name and click “Create”.

Now you need to create a mock contract template in Word 2007 for your Document Library

2.       When in your Document Library, click the Settings dropdown and select Document Library Settings.

 

3.       On the Customize Documents page, locate the Columns section.

 

4.       Create a Buyer custom column:

o   Click Create Column.

o   Type in the column name: “Buyer”.

o   Select the type Single line of text.

o   For the “Require that this column contains information setting” click Yes.

o   Click Ok to add the new column.

 

5.       Add two more columns: a “Seller” column that is type Single line of text and a “Purchase Price” column that is type Currency. Both columns should be required.

 

 

6.       Return to the document library home page

 

7.       On the New dropdown in the document library, click Document.

 

8.       A new document appears in Word. Observe that there are text boxes for the custom columns from the document library:

 

 

9.       On the Office menu click Save As. Save the document as %PATH OF YOUR CHOICE%\Contract.docx. If you are prompted to confirm saving to the new Word 2007 file format, click “Ok”.

 

10.   Insert content controls for each of the server properties:

o   Place the selection in the document where you want the content control to be placed.

o   Select the Insert tab on the ribbon.

o   Click Quick Parts, then click Document Property, and then click Buyer.

o   Repeat these steps to add content controls in the document for the Seller and the Purchase Price properties.

o   For now, leave the content controls empty – do not add text to them.

 

 

11.   On the Office menu, click Exit Word. When prompted to save changes to the document, click “Yes”.

 

12.   Return to the document library in Internet Explorer, click Settings and then select Document Library Settings.

 

13.   On the “Customize Documents” page, locate the “Content Types” section and click the Document link.

 

14.   NB. If you can’t locate the “Content Types” section, in the “General Settings” section locate “Advanced Settings” in there switch the radio button under “Allow management of content types” to “Yes”, now when you come back to the “Customize Documents” page you should be able to locate the “Content Types” section.

 

15.   On the “List Content Type: Document page”, click the “Advanced Settings” link.

 

16.   Select the Upload a new document template radio button and then click Browse. Browse to select %PATH OF YOUR CHOICE%\Contract.docx and then click Ok.

 

 

17.   In Internet Explorer, return to the document library.

 

18.   Upload a new document:

o   In the document library, click the “New” dropdown and then click “Document”. Word starts and loads a new document based on the contract template you created.

o   Fill in the values for Title, Buyer, Seller and Purchase Price. You can fill in the values on the document properties bar (just below the ribbon) or you can fill in the content controls: the end result will be the same.

o   Once all required fields have been filled in, on the Office menu, click Save.

o   Save the document with a filename of your choice to the document library. If you receive a message that the document must be checked in for it to be visible to others, click OK.

o   On the Office menu, click Close. When prompted to check in the document, click “Yes”.

o   In the Check In dialog, click Ok to accept the version defaults. Exit Word.

o   Your new document appears in the document library. Notice that the Buyer, Seller and Purchase Price columns reflect the values you entered in the Word document.

 

 

19.   You may upload additional documents if you wish.

 

20.   Close Internet Explorer.

 Now comes the fun part, creating the workflow itself

21.    Start Visual Studio.

 

22.    On the File menu, click New and then click Project. The New Project dialog appears.

 

23.   In the list of Project Types, expand Visual C#. Expand Office and then select 2007.

 

24.   Select the SharePoint Sequential Workflow project type.

 

25.   Name the project ContractWorkflow, specify the default location and click “OK”.

 

 

26.   The New SharePoint Workflow wizard appears. Change the workflow name to Purchase Contract, use your local site where you created your Document Library (eg http://localhost/yoursite) for debugging and click “Next”.

 

 

27.   Click Next to accept the default lists for debugging.

 

28.   h. Click Finish to accept the default conditions for how a workflow is started (the default selections are Manually by users and When an item is created).

 

29.   The new workflow appears in the designer.

 

 Add a CreateTask Activity to the Workflow 

30.   If the toolbox is not displayed, then on the View menu, click Toolbox.

 

31.   From the SharePoint Workflow tab on the control toolbox, drag a CreateTask activity and drop it onto the workflow designer between onWorkflowActivated1 and the end of the workflow ( ). The new activity is named createTask1 by default.

 

 

Note: If you can't find the Create Task Activity on the toolbox (which is more than likely with VS2008 Beta 2) you need to add it manually by right clicking on the toolbar (whichever section, "General" for example)  and select "Choose Items" from the menu.

The following menu selection box will show:

 

    

 

Tick CreateTask option and OnTaskChanged while you're at it, you'll need it later.

32.   Configure the TaskID property of createTask1:

o   In the Properties window, click the ellipsis for the value of the TaskID property. The Bind ‘TaskID’ to an activity’s property dialog appears.

o   Type the new member name myTaskId, ensure that the Create property radio button is selected and click OK.

 

 

33.   Configure the TaskProperties property of createTask1:

o   In the Properties window, click the ellipsis for the value of the TaskProperties property. The Bind “TaskProperties” to an activity’s property dialog appears.

o   Type the new member name “myTaskProperties”, ensure that the Create property radio button is selected and click OK.

 

34.   In the properties window, select the MethodInvoking handler. Type MyTaskCreation and press the Enter key. The code window appears.

 

35.   </