Author Archive

SharePoint TeamTime 1.3: Unlocking the Toolbox

Date:February 8th, 2012 Author: Tags: , , , ,
Category: SharePoint TeamTime Comments:0 ;


SharePoint TeamTime (our time tracking software for SharePoint) has been upgraded with shiny new extensibility features, to make integrating it into your organisation even more seamless:

  • Get raw timesheet data
  • Import and export Projects and Tasks
  • View Approval logs
  • Attach workflows

All you have to do to install or upgrade is download and run the new installer, which will automatically upgrade any existing sites:

SharePoint TeamTime Download

What’s in the upgrade

Access to the lists used in the internal workings of TeamTime. Below is a short description of each list. More information is available on the Extensibility Manual Page

Timesheets List

This list is a read-only copy of the main Timesheet list, which allows you direct access to the data your users record. Once a timesheet is approved, its entries will be copied across to this list.

This allows you to generate your own custom reporting and to integrate TeamTime’s data into external applications.

Project and Task lists

You can now view and edit the Project and Task lists directly. Using the Datasheet view on these lists will allow you to bulk import your existing Projects and Tasks, and to quickly edit or extract data.

These lists can also be used with third party list synchronisation software, to keep TeamTime’s data in line with your data in lists elsewhere. Or alternatively workflows can be attached to these lists, and used to push changes elsewhere.

Approvals list

Now you can see who’s approving what and when; especially useful when self-approval is enabled.

You could also attach a workflow to this list to perform actions on approval: For example, letting users know when their timesheets have been approved.

Free HTML Calculated Column for SharePoint

Date:January 11th, 2012 Author: Tags: , , , ,
Category: Calculated Columns, Highlighter, SharePoint HTML Calculated Column Comments:0 ;

logo-wordy

A free calculated column for SharePoint 2007 and 2010 that allows you to display HTML: SharePoint HTML Calculated Column

html-formula2

Why did you make this?

I spent a long time working on SharePoint Highlighter, and then later unsuccessfully trying to make a [Today] Calculated Column. During both these projects we kept coming back to this glaring hole in SharePoint: You can’t use HTML in a calculated column.

After unsuccessfully looking for open source projects (or even commercial alternatives) for some time, the only solution I could find was Christophe’s JavaScript workaround using a normal calculated column and a Content Editor Web Part. A nice solution, but unfortunately not without its drawbacks.

So when it came to deciding what I wanted to do in my 10% time, the answer was clear.

Having listened to me rant, rave, swear, and finally give up and denounce all Custom Field Type development (at least once a week during Highlighter, and several times during the [Today] incident), Ryan’s reaction to my choice of project was a typically understated “I’m… surprised?”.

So during the TeamTime project I spent my Friday afternoons creating the first of hopefully many pet projects from us at Pentalogic: SharePoint HTML Calculated Column

htmlccss

How is this different to Christophe’s solution?

Using the SharePoint HTML Calculated Column avoids the need to add Content Editor Web Parts (containing JavaScript) to every page you want the HTML to be displayed on.

Adding the CEWPs can be a bit of a chore in some cases, and are vulnerable to being accidentally broken by end users editing the pages. They can also be lost on 2007 to 2010 upgrades.

However, HTMLCC requires that a System Administrator install it on the SharePoint server; which in many organisations is a real pain in the ears. Whereas Christophe’s solution can be implemented by most power users.

Isn’t this the same as Highlighter?

SharePoint Highlighter offers quite a lot more than this solution on it’s own. I won’t go into enormous detail, but here’s a sample of what Highlighter offers over the HTML Calculated Column:

  • Row highlighting
  • Countdowns
  • Conditional formatting
  • Built-in icon library

Most notably, all of this is offered through a polished and intuitive interface.

Finally

So, you get to plug the hole in SharePoint that’s bothered so many people over so much time, and we get to plug SharePoint Highlighter whenever we mention it. Everybody’s happy. Smile

SharePoint TeamTime is out now!

Date:December 12th, 2011 Author: Tags: , , , ,
Category: SharePoint TeamTime, SharePoint Timesheets Comments:0 ;

teamtime-big-noshadow

Track and analyze your team’s time with our newest product: SharePoint TeamTime! A ready-to-use timesheet site template for SharePoint 2007 and 2010.

What’s so great about TeamTime you ask? Well let me tell you:

Log your time your way

Want to log your time as you work? Then simply punch in on your personal dashboard to begin the timer:

TeamTime Punchcard

Want to write up your timesheets when it’s convenient for you? Your dashboard has this covered too:

TeamTime Timesheet

Make those numbers work for youTeamTime Analysis

Logging the time is all well and good, but what we really want is to see what all that data adds up to. Don’t waste time working for the numbers; make the numbers work for you.

Using the Analysis page you can drill down to the data you want, and view read-made summaries and graphs.

If you still want more from your numbers, pick the data you want from the Reporting page and export it straight to Excel.

Need more?

  • Per-server licensing: No wasting time trying to license and set up every user; buy it once and forget licensing ever happened.
  • Take the tour: Watch our TeamTime Demo; see if you can count how many times the word ‘time’ is used. It’s a lot, trust me.
  • Free 30 day trial: Download and try it out!

SharePoint Highlighter v1.5: If wishes were trees

Date:November 22nd, 2011 Author: Tags: , , ,
Category: Highlighter Comments:0 ;

Since SharePoint Highlighter’s release in May we’ve had some great suggestions and requests for features and improvements; one of the more surprising was the request for performance enhancements for those with 20 or more Highlighter columns in a view (and really big screens, no doubt).

Although we’ve added odds and ends during other projects, the Highlighter wishlist has steadily grown; fed by the suggestions from its growing user base and our own drive for continuous improvement.

So while TeamTime was being tested and prepared for beta, we stroked our collective beards (it is Movember after all) and decided to clear it down. Here are some highlights:

  • Row highlighting columns hide themselves
  • Highlighter displays on View Item form
  • Lookup columns now supported

Hidden Row Highlighting Columns

If you have a Highlighter column which displays Row Highlighting you’ll no doubt have noticed that the empty Highlighter column has to be visible on the page on order for the highlighting to work:

v1_5_rh_a

In Highlighter v1.5 the column will automatically hide itself from the page if it is only used for Row Highlighting:

v1_5_rh_b

View Item Form Display

Previously Highlighter columns would not display on the View Item form (or customized versions of it):

v1_5_df_a

Highlighter columns will now display on this form, with the exception of those used only for row highlighting (which will be hidden entirely):

v1_5_df_b

Lookup Columns

You can now use Lookups as source columns, which act in much the same way as Choice columns:

v1_5_lu

Upgrading

Please see the manual for instructions on downloading and upgrading to the latest version of SharePoint Highlighter.

What’s on your wishlist?

The more suggestions we have the better we can make our products. Every feature request is reviewed and added to the product’s wishlist. Once a wishlist hits a certain size, the most popular (and/or the best ideas) are rounded up and herded into the next version.

Contact us at support@pentalogic.net and tell us what’s on your wishlist!

SharePoint TeamTime: It’s Time for Beta!

Date:November 16th, 2011 Author: Tags: , , , , , , ,
Category: SharePoint TeamTime, SharePoint Timesheets Comments:1 ;

teamtime-big-noshadowWe have started beta testing our newest product SharePoint TeamTime and we expect it to be finished in the next couple of weeks!

Sign me up! Wait… what is it again?

TeamTime is a time tracking site template for SharePoint. Users track their time by entering it into a timesheet (a.k.a. timecard) or by punching in and out of tasks.

You can then get an overview of everyone’s time logged using our custom reporting tool and embedded versions of PivotPoint and FilterPoint that come preconfigured in the site.

Tell me more!

They say a picture is worth a thousand words, so here’s a glimpse of what’s inside:

‘My Dashboard’

tt_mydashboard

‘Analysis by Week’

tt_analysis

To look in more detail at how it works (or just to see more pictures), you can have a glance at our manual: SharePoint TeamTime manual.

If you want to be notified when its released then signup here.

Whats a Beta test and can I help?

Its the final stage in testing a software product before its released into the real world. All the major bugs should have been squashed but there may be some minor problems left. The idea is to get broad feedback from ‘real’ users that will help pick up problems, omissions or things that are just a little confusing that you wouldn’t find otherwise.

Beta testing isn’t for everyone – these are the things you should bear in mind :-

  • You need to be reasonably proficient with SharePoint.
  • You will need an in-house deployment of SharePoint 2010 or 2007 – its not suitable for BPOS/Office 365
  • You should have a “non-production” environment to test in.
  • You will need to have some time free to give it a good test and provide feedback.

If you would like to help us Beta test this then please e-mail us: support@pentalogic.net

SharePoint Timesheets – What are your options? Part 3: Free Solutions

Date:November 10th, 2011 Author: Tags: , , , ,
Category: General, SharePoint TeamTime, SharePoint Timesheets Comments:0 ;

Following on from Clare’s previous two posts on Native SharePoint Timesheets and Plug-in one, I’ll be running you through the options for creating SharePoint Timesheets for free.

During the early development of SharePoint TeamTime we looked at our potential competition, including the free alternatives. Of those we found, the following three were the most notable:

  • Fab 40 – Timecard Management: One of the famous Fab 40 templates (2007 only)
  • Built-in Timecard List: A little known built-in Timecard list (2010 only)
  • Open Source Project: Paul Beck has kindly published an open source solution (2010 only)

Fab 40 – Timecard Management

The Timecard Management template was produced by Microsoft as a demonstration of the capabilities of WSS 3. In Microsoft’s own words:

The Timecard Management application template helps teams track hours spent working on various projects. The site enables team members to ‘punch in’ on a particular project and ‘punch out’ when they cease work. The system automatically generates the time worked by project, and can show managers who is working on a particular project…

This was one of the favorites out of all the templates we tried. In fact, the punching in and out functionality was a feature we emulated into TeamTime. I’d like to think of TeamTime as a spiritual successor to this template.

Built-in Timecard List

SharePoint 2010 has a built-in Timecard list, that is hidden from normal view for some reason. Although this is by no means a complete solution, it’s freely available to anyone able (or willing) to activate the feature and create it though SharePoint Designer 2010.

Laura Rogers has a very helpful walk-through for creating one of these lists: Out of the Box Timecard and Holiday Lists. Here is a description from her blog:

In SharePoint 2010, there’s a little-known built in feature.  There are list templates that can be used for time card tracking, with a holiday calendar that ties into the time card.

Open Source Project

Paul Beck has published a four part blog series on creating a Timesheet solution from scratch, entitled Timesheet solution for SharePoint 2010. He then went a step further and published his code to CodePlex for anyone to use. In his own words:

A common requirement on Intranets is to have a timesheet template on SharePoint.  There are solution for company timesheets.  I wanted to build a timesheet application that was scalable, reportable and friendly for SharePoint.

If you want to skip the source code, his third article in the series (Part 3 – Installation) has a link to the pre-built package.

This solution is slightly different from the others, as it stores its data in a separate SQL Server database; which may not be an option for everyone.

Lastly

I hope you’ve found our  SharePoint Timesheet series useful. If you know of any better alternatives, please let us know. We’re not afraid of a bit of competition. Winking smile

SharePoint Questions: MSDN versus Stack Exchange

Date:October 17th, 2011 Author: Tags: , , , ,
Category: Community, General Comments:7 ;

SharePoint is an enormous heaving behemoth of machinery; full of spinning cogs, churning engines, and peculiar dials. We’ve all worked with parts of it, but not even those that created it understand all of its inner workings.

So where do we go when the wheel that goes ‘whir’ is going ‘squeakity’? Or when we’re having trouble bolting on some shiny new levers? What we need is an expert in that area.

Two likely candidates for finding yourself an expert are:

  • The MSDN SharePoint forums (MSDN): A SharePoint specific branch of the MSDN forums; a staple of the Microsoft Support offering for the past 7 years
  • SharePoint Stack Exchange (SPSE): A community-created sister site to Stack Overflow, whose rebirth into the new Stack Exchange engine (which I’ve blogged about previously) culminated in a re-launch on its 2 year anniversary last month

All about Questions and Answers

So where does everyone else go to post their questions? A quick glance at the number of questions on each in the last 24 hours* is quite revealing:

MSDNvSPSE questions

The MSDN forums have had over 10 times the amount of questions in the same times period, across its various forums. SPSE is clearly the underdog in terms of its volume of questions, and certainly in terms of traffic.

This is largely unsurprising, as most people will automatically go to Microsoft with their questions, and the MSDN forums are a long-standing staple of the Microsoft support process.

What’s more surprising, is the percentage of questions that are actually answered**:

MSDNvSPSE Answered That’s a 64% answer rate on MSDN and a notably higher rate of 91% on SPSE. So why is there such a big difference? This boils down to two factors:

  • The quality of the questions
  • The quality of the answers

Question quality

Part of the difference in answer rate (and question quantity) is the different motivations behind the sites. MSDN’s goal is to help an individual person with their problem, whereas SPSE is built on Stack Exchange’s ethos of building a definitive FAQ on the subject; making it more likely you’ll find an answer to your question without even asking it.

When it comes to asking a question there’s unfortunately very few ways to improve how someone goes about it (short of Internet-based mind control rays). So the question quality is largely determined by how it is handled after it has been posted. This brings us to Moderation:

MSDNvSPSE modsThe mysterious fade effect isn’t entirely because I just found the ‘Gradient fill’ button; the MSDN SharePoint forums are moderated by the mysterious and unquantifiable force of Microsoft Support, and an unknown number of community moderators with their own pockets of influence.

In contrast, SPSE is moderated by three recognised members of the community. Much like MSDN’s Forum Issues forum, SPSE has Meta for contacting them, but it also has a chat room that can be used for asking questions about questions.

The final and most important effect on question quality is us (the community). Here are the ways we get involved in this process:

MSDN SPSE
Editing Moderators only Anyone can suggest an edit
High reputation users can approve suggestions
Reporting Anyone can Report Abuse As MSDN, with additional dedicated Review reports and achievements
High reputation users can close questions

This additional community contribution on SPSE has a noticeable effect on the quality of questions. Unfortunately this can lead to a much higher maintenance role for Moderators, which may not translate well to MSDN’s moderation processes.

Answer quality

The biggest factor in answer quality is of course the answerer: The quantity of experts on a site that may know about the problematic area, and the amount of everyday people who may have suffered the same problems in the past.

In terms of quantity, both sites have roughly the same number of responses (~3.5 per question***). Approximately 1.6 of these being proposed answers on SPSE; unfortunately the MSDN proposed answer rate isn’t available (except through checking each one of the 163K questions manually).

An important step is luring and identifying the experts, while also rewarding the everyday contributor:

  MSDN SPSE
Points Recognition points Reputation
Awards Achievements Badges
Incentives MVP and MCC programs Increased site privileges

Although very similar in other respects, the two sites use very different incentive methods. The prestigious MVP award and more commonplace MCC award are highly sought-after by experts (especially aspiring ones), and draw many people to the MSDN forums in search of widely-acknowledged recognition.

The incentives on SPSE take a slightly more understated route: As your reputation increases you become more trusted by the community, and hence the site. This increase in trust gives high-reputation users comparable abilities to moderators, purposefully blurring the boundaries.

Another important step is to make it easy for experts to find questions about their area of expertise. MSDN has 21 forums, each dedicated to a category of SharePoint. Between these forums there is fair bit of overlap, and moving misplaced posts is a continuous battle.

In SPSE the questions are all bundled together on a single page. While this would seem chaotic, the tag system thankfully mitigates most confusion, while allowing more flexibility. However, tags are even more open to misunderstanding and misuse than MSDN’s separate forums, leading to the addition of the ability for medium-reputation users to retag questions.

Which site is best?

As a person with a question, the above pie charts would seem to make it clear that SPSE is the best choice. However, it’s worth mentioning that the comparison is not as straightforward as it seems. Both sites have slightly different means of showing questions as answered, and SPSE has a built-in reputation incentive for marking your question as answered (possibly skewing the results).

As an expert, MSDN is like seeking your fortune in the Big City; you might see your name up in lights, maybe just make an honest living, or you might quietly disappear into anonymity. SPSE is more like staying in your home town; the rewards aren’t as dazzling, but they are more certain and (depending on your community-mindedness) possibly more satisfying.

So what’s the conclusion? Post on both of course! There’s no law against cross-posting questions on both sites, and experts are welcome wherever they go. In time you may find you prefer one or the other (which is likely to be a personal choice) but at least now you know what to expect from each.

 

*SPSE numbers from Area51 (only overall total available), MSDN posts were manually counted for the 24 hour period prior to 11:00 13/10/11.

**SPSE numbers from Area51, MSDN answered rate based on sum of forum totals on the front page as of 11:00 13/10/11.

***SPSE numbers are from the Data Explorer (sum of comments and answers), MSDN response rate based on sum of forum totals on the front page as of 11:00 13/10/11.

Thinking Sideways About Highlighter

Date:September 15th, 2011 Author: Tags: , , , , ,
Category: Highlighter, SharePoint Ideas Comments:0 ;

You may have caught Clare’s post earlier about Highlighter’s recent performance enhancements, that were mostly due to some of the surprising ways we’ve seen it being used in the wild. To illustrate this sideways thinking (lateral and literal) we’ll take a look at exploding a humble status column into an Approval Progress Overview:

Status overview

As you can see, we now have a quick at-a-glance idea of how the projects are doing. To create this view, a Highlighter column has been added for each of the statuses. In each of these columns we’ve set it up to display icons (cell color is also a good choice), and cleared the default. Let’s take the Approved status as an example:

Icon setup

All we need to do is click the Auto-create button to create some rules, remove those for the earlier statuses, change the later ones to green icons, and this column’s status of interest to a working icon:

Rules

Just to keep people on their toes lets add a little urgency to the list with a Due Date column. So now we want to change the Approved column to a red icon if the Due Date has passed, and the status isn’t yet Approved. This is done by switching to Advanced mode and adding a single rule:

Due date rule

Here are the results of that extra change:

Overview (with due date)

If that wasn’t enough for you, here’s the weaponized version of Highlighter featuring cell colors, priority icons, and Project Manager Blood Pressure indicator:

weaponised

We’re always interested to hear what you’ve done with our products (especially Highlighter); so if you’ve done something even scarier than the above, send a screenshot to support@pentalogic.net.

How not to develop a SharePoint [Today] Calculated column

Date:August 22nd, 2011 Author: Tags: , ,
Category: Calculated Columns, Highlighter, Training Comments:4 ;

After developing SharePoint Highlighter, we seriously considered expanding on this area with a Calculated Column that would allow you to use [Today] in the formula. If you’re thinking “But you can already!” I suggest looking at Ryan’s article about the [Today] column trick.

Needless to say, this would be a very useful tool for almost any SharePoint user. After much researching and prototyping we came to an unfortunate conclusion: Although it was possible to make a Custom Field Type to do this, it was almost certainly impractical (certainly for us).

The avenues we investigated finished in three types of dead-end:

  • Brick wall: A completely impassable system limitation.
  • Overgrown with brambles: Nothing but pain for all involved.
  • Swamps: A long unpleasant slog, with an uncertain outcome.

The Brick Wall

The first thought in any developer’s mind when making a variation on a class should be “Inherit it”. It allows you to take advantage of the existing class’ methods with minimal difficulty and yet offers (almost) total control over its behaviour.

Attempting to do so will reward you with the slightly misleading error:

The type ‘Microsoft.SharePoint.SPFieldCalculated’ has no constructors defined

A brief search in the MSDN documentation for SPFieldCalculated shows that the absence of public constructors is intentional:

Windows SharePoint Services 3.0 does not support inheriting from this class.

And so this avenue ended in a brick wall. More worryingly; disallowing the inheritance of a class is usually a sign that something so heinous is happening inside that Microsoft doesn’t want it reproduced.

Brambles

Intrigued by the promise of horrifying creatures dwelling within, I had a look inside the class to see what was happening (using my own powers of code intuition, and not any kind of questionable reverse engineering method).

It seems the actual calculations take place outside of the SPFieldCalculated class, using instead a call to SPRequest. This new lane of research quickly ended in spiky brambles, as using a direct call to SPRequest would make our product (and hence anything it’s installed on) unsupported by Microsoft.

Undeterred, I took inspiration from the billing system at my old work and looked at keeping the ‘black box of calculation mystery’ class running in the background, with the new class acting as a wrapper around it.

Creating a Custom Field Type that kept a hidden field for data storage in the background was an architecture we’d experimented with when creating Highlighter, so adding a relatively minor call to update the formula with the current date and time seemed quite easy.

The thorny ending in this case was the enormous potential server load; updating the formula every time the list was viewed (to keep it up to date) caused the entire list’s worth of calculations to be refreshed. Viewing just 20 items would make up to 5000 items recalculate their values for each of our columns on the view.

Swamps

The final and most desperate option was to do it ourselves: Completely rewrite all or a subset of the calculated column functions, and handle the associated function nesting.

I’m DIM: Doin’ It M’self.

Following this path would mean wading through the boggy and unpleasant process of exactly reproducing Microsoft’s function calls; avoiding the murky bottomless pools of performance issues. All the while hoping we wouldn’t run into any of the hungry and sharp-toothed show stoppers along the way.

As you may have guessed, we didn’t venture down this path.

Why are you telling me all this?

Because although these paths aren’t available to us as an ISV, it doesn’t mean they aren’t options to you (except the brick wall, of course).

Brambles: Using SPRequest is unsupported, but if this doesn’t deter you then this is still very much an option. Similarly, if you have an abundance of processing power (or really need a space heater in your server room) performing complete column recalculations on every view shouldn’t bother you.

Swamps: If you have very specific requirements you could get away with only recoding a few functions, which would greatly reduce the chances of you disappearing forever. Alternatively, if you have a large herd of idle developers you could set about recreating the whole set. However, I doubt this is a serious option for anyone except the head of the Microsoft Silverlight team.

How to create a Countdown in a SharePoint list

Date:May 17th, 2011 Author: Tags: , , , , ,
Category: Highlighter, SharePoint Development, SharePoint Free Tools, Training Comments:0 ;

countdown

If you’ve got a list containing important dates (such as the above example), it’s very useful to be able to easily see how long is left before that date, or how long since it has passed. Unfortunately basing a calculated column on the current date isn’t supported by SharePoint natively, as discussed in my previous article: How to use [Today] in a SharePoint list

So how can we work around this shortcoming without having to wave signs and shout outside Microsoft’s offices? The are a few options available to us:

  • JavaScript: Use a Content Editor Web Part.
  • Designer: Create a custom view in SharePoint Designer.
  • Code: Make your own custom field type from scratch.
  • SharePoint Highlighter: Buy our custom field type.

JavaScript document_into83

Since SharePoint is so uncooperative about using the current date on the server side (i.e. with a calculated column), we can wait until the information gets to our browser and fix it there with JavaScript.

We can get JavaScript onto a page using a Content Editor Web Part, which is added just like any other web part. Christophe at Path to SharePoint has put together a script that displays the date difference on hover, that can be modified slightly to display just the countdown: Countdowns – A second method

Adding a CEWP to each page your list is displayed on can become quite arduous if it’s displayed in a lot of places. In addition to this, information in a CEWP is quite vulnerable to accidental edits, as they are accessible to any user that can edit page content.

Designer designer3013

SharePoint Designer is a free and powerful tool from Microsoft for customizing SharePoint. Unfortunately, because it can do so much, its use is often frowned upon by site administrators (and sometimes even banned).

If you’re lucky enough to be allowed to use it, then (in an unusual twist) Christophe may once again be the person to look to. In a break from his many and various JavaScript solutions he’s put together a Designer solution for this problem too: A countdown for tasks lists

As with the JavaScript solution above, the Designer changes will have to be made on each view web part you want to see the countdown on, but fortunately the changes can only be overridden by someone else using Designer, or an administrator.

Code studio63

If you already have the backbone of a custom field type coded, then adding the XSLT to display this in 2010 should be reasonably straightforward. Alternatively this can be done within the custom field type class.

If you’re using 2007, then CAML rendering unfortunately fails you here, and it’s necessary to use a JavaScript workaround in one form or another.

Creating a custom field type from scratch for this sole purpose is probably going to be remarkably costly (in terms of time). Actually making the foundations of a custom field type is a bit of an investment, but thankfully Microsoft has put together a walkthrough to at least help you get started.

The benefit of using this method is that columns created from a field type are displayed on every page without having to add any additional code to the page itself.

SharePoint Highlighter currency_dollar43

Of course, it is possible to get all the benefits of a custom field type with much less pain: Buy a commercial solution.

If you have a glance at out handy product comparison, you can see the wealth of products we managed to find that offer this functionality. So far that grand total is… One: SharePoint Highlighter.

So if you’re looking for a commercial solution it looks like we’re the only option. If you know otherwise then please do tell us; but for the time being we’ll cheerfully carry on being the front-runner in this one horse race.