What do you need to consider when making workflows and workflow driven apps in SharePoint?

The vast majority of organizations that use SharePoint see a need for these types of workflow driven apps. Apps that make it easy for end users to streamline their work, or take action against tasks when and where action is needed, and to manage it all from one place.

But SharePoint out of the box has a few major hurdles to getting there:

  • Integration is a challenge, and not just integration within SharePoint across SharePoint sites and environments, but also integration with other data sources – think about how these workflows have to pull data from other line-of-business systems within the organization or even data sources on the web.
  • A major issue is the time and cost that it takes to build and maintain these applications – most of which require custom development, and the resources and skills that that requires.
  • And even in getting these things right, end user adoption can still be a challenge – a big piece of this is due to the difficulty of creating great user interfaces that deliver a good user experience and make your users WANT to use your applications.

According to a SharePoint Adoption Survey by MPS Partners, 73% of surveyed SharePoint organizations say that there see a clear need for workflow driven apps. But more than half of them see integration as being a challenge that’s holding them back from these apps. Nearly a third responded that the time and effort to build these applications was a challenge, and over 20 percent cited the end user interface as being a hurdle to building these applications and workflows.

To learn more, click here to view our recent webinar where we explain how K2 can solve your workflow issues for good!

Why are Security Definitions Important in SharePoint?

by Brett Gillin

We recently had a webinar on the top 10 security mistakes companies make in their SharePoint implementations (which you can view here if you’re so inclined). One of the topics that generated the most discussion was regarding the importance of security definitions. Why is it important to have and stick with security definitions in your SharePoint environment? Well, let’s take this story as a perfect example:

This is the story of a multi-million dollar company who has about a dozen users with complete “Administrator” access to SharePoint, meaning each of these users could change literally any aspect of SharePoint whenever they pleased. When one of these employees is fired (for excessive time off) the other administrators made a glaring mistake. They didn’t deactivate the recently fired user’s account!

This allowed the user to go home, log in to the SharePoint site with their still-valid credentials, and delete thousands of documents and empty the recycle bin before someone caught wind. The kicker in this story is that the guy who went in and deleted all these documents was a sales representative for the company, not a technical resource for SharePoint. This employee should have never had this level of access to the SharePoint environment in the first place.

Luckily, the company in this story was regularly backing up their information, and was able to restore most of the deleted documents, but this is just one example of why your company needs to make sure that users only have the access that they need to your SharePoint environment. This is exactly the type of mistake that can be avoided if your company uses proper security definitions for your SharePoint environment.

So if you don’t already have a detailed security definition in place at your organization, what are you waiting for? Contact AAJ Technologies today to get the help you need!

Reverse Proxy for Websites

Since Microsoft has retired Threat Management Gateway 2010 (TMG), companies are left wondering what to use for publishing Exchange, Lync, SharePoint and other websites.

Of course Microsoft Forefront Unified Access Gateway 2010 is an option, but if all you want is a secure way to publish websites, UAG is quite expensive. Fortunately, Internet Information Services (IIS) has an extension called Application Request Routing (ARR) which can provide basic reverse-proxy for publishing websites.

To read more click here

Adjust the column width of a Project Tasks View of a Project Site in SharePoint 2010

Problem

There is no way to fix a Project Tasks View column width permanently in SharePoint. A column width can be changed from heading by using the Configure Columns option but after navigation to other site/library width goes back to its default value. For example if someone wants to show the Resource Name column width 200 pixels instead of default 100 pixels,  then he will need to change column width again and again from the column configuration. Changed width configuration doesn’t persist forever.

Solution

The above mentioned problem can be solved by using JavaScript. Below are steps needed to add script on a page that will adjust required column(s) width.

  1. Open browser and go to Project Site with Project Tasks view
  2. From Site Actions click Edit Page
  3. On page click Add a Web Part

4. Under Categories, select Media and Content;under Web Parts select Content Editor and click the Add button

5. Select newly added web part and click Edit HTML Source under HTML from top menu

6. In the HTML Source editor,add following code and click OK button

<script type=”text/javascript”>

ExecuteOrDelayUntilScriptLoaded(function(){

var oldGanttControl = SP.GanttControl;

SP.GanttControl = function() {

  • oldGanttControl.call(this);

var oldInit = this.Init;

this.Init = function(jsGridControl, jsRawGridData, params){

  • oldInit.call(this, jsGridControl, jsRawGridData, params);

DoCustomizations(jsGridControl); }; };},”SPGantt.js”);

function DoCustomizations(grid)

{

grid.SetSplitterPosition(650);

grid.SetGanttZoomLevel(grid.GetGanttZoomLevel()-1);

var tabl = document.getElementById(‘ctl00_m_g_98b1d4ed_6602_42da_b393_b4e2781c58cd_ListViewWebPartJSGrid_leftpane_mainTable’);

var row = tabl.rows(0);

AdjustWidth(row, 1, “150px”, “149px”, “140px”);

}

function AdjustWidth(row, cellNumber, cellWidth, divWidth, innerDivWidth)

{

row.cells(cellNumber).style.width=cellWidth;

var divs = row.cells(cellNumber).getElementsByTagName(‘div’);

divs(0).style.width=divWidth;

divs(1).style.width=divWidth;

var innerDivs = divs(1).getElementsByTagName(‘div’);

innerDivs(1).style.width=innerDivWidth;

}

</script>

7. In above code function  AdjustWidth(ROW, COLUMN_NUMBER, NEW_COLUMN_WIDTH, NEW_CELL_WIDTH, NEW_DIV_WIDTH);  is calling other function to adjust width of column according to the passing column number as parameter. Other parameters are adjusting cell width and div width contains this cell

Hope this post will give you an idea on how we can hook up the Gantt Control in startup and adjust the column width.

SharePoint Performance Optimization Best Practices

by Mohsin Naeem

SharePoint uses page ghosting technique to allow a server farm to scale out to tens of thousands of pages across all the sites within a farm. Page ghosting is valuable because it eliminates the need to transfer the contents of a page definition file from the SQL Server content database to the front-end web server. Page ghosting also makes it possible to process the default page instance for thousands of different sites by using a single page template that is compiled into an assembly DLL and loaded into memory in the IIS worker process just once per web application. This optimization technique is a key factor in the scalability of SharePoint in high-traffic environments running thousands or tens of thousands of sites.

Click here to continue reading

SAP SharePoint Integration as a Pharmaceuticals Industry Solution

by Qasim Mehmood

I had an experience with a large enterprise solution for a huge pharmaceutical company. This particular company was facing major difficulties in managing administrative and training requirements and cost for SAP. Especially due to the recession, that time cost was becoming a huge factor in their overall operations!

New employees are joining the organization and old employees have marriages and other life changing events and when they need to use SAP bases HR system, it’s really complex, less intuitive and the company needs to train their users regularly which costs a lot. This is even more critical when your organization have couple of hundred thousands of employees.

Proposed Solution

I worked with them to design a generic solution which integrates SAP with SharePoint. This solution uses Infopath forms which guide users via a wizard approach to help fill out the form. We also designed a self-service application for SAP software. This application is basically an enterprise human resource software application that combines Microsoft Office SharePoint with the integration and control of SAP software. The solution simplifies the use of line-of-business systems while preserving data integrity and compliance with corporate policies.

Cost Saving

By going with this approach, the client reduced training cost and maintenance, costing less than a SAP solution!

Read more about SharePoint here!

SharePoint 2010 as a Mission Critical System

by Qasim Mehmood

I was involved in an interesting problem in major public utility sector in US (electricity and gas). They faced huge accessibility and serviceability issues during Hurricane Irene (earthquake and flood) in mid-2011.

This client (an electricity company) is using SharePoint 2010 as the internet portal to the general public and users can come and see different services like bills, outage information, news etc.

This client faced unanticipated traffic during Hurricane Irene. Their site was unable to scale the magnitude of traffic effectively, creating substantial problems for the end users and business. Around 20 percent of registered and 80 percent of the anonymous users visited the site, and the number of users keeps on increasing. Mobile users significantly increased during the current year as well, so that is also a big factor.

This client now wishes to substantially increase their target peak traffic volume for the site to avoid such incidents in the future. Their infrastructure is scaled for 100K parallel users and daily 0.5 million users. During the Hurricane and Irene 4+ millions users visited the site every day with 200K parallel users and due to unanticipated traffic all infrastructure and servers were down or not responding well.

Different companies proposed different solutions like adding 50 to 100 more front end servers which will increase infrastructure like administration and resources. This solution cost was proposed in the millions and the client doesn’t want to put that much money for situations that may occur only once in 5 years, making the huge infrastructure useless in the case of no disaster or emergency.

What solution would you propose for this?

Proposed Solution

AAJ specializes in solution design and proposed this dynamic solution which fits according to their need. It will cost them a very minimal amount and it gives them an opportunity to redesign whole organization application strategy for end-users according to new mobile, iPhone and tablet usage trends.

The proposed solution has major 4 areas which need to be addressed:

1.      Mobile and Tablet Strategy

Understand mobile user’s patterns and develop iPhone and tablet applications so users don’t need to visit the website and the application can serve their needs on their phones or tablets.

Dedicated applications for tablet/iPhone devices to ensure that around 50 percent of the web users that prefer to visit websites through their handheld have the access to the services they want. However, this doesn’t choke off the resources resulting in any access problem for other users.

2.      Disaster Response Application Engine

In emergency and disaster situations, the disaster response application engine will take proactive actions like:

  • Sending newsletters to registered users.
  • SMS alerts for flood, earthquake, outages and other emergency situations.

3.      Users Management

There is a need to have a separate service mechanism for registered and anonymous users. 20% registered users and 80% anonymous users are visiting the site.

4.     
On Demand Cloud Solution

With the current dedicated servers, there will be backup on-demand & proprietary on demand cloud servers always ready to serve as the dedicated servers whenever required.

The on-demand cloud server solution will be scheduled and deployed in minutes to work only ‘when required’ and they will go down automatically ‘when not needed anymore’. Scaling your cloud servers is much simpler than ever; you can add RAM, Disk Space and Bandwidth, instantly.

To maintain the current state, the cloud server will be updated every 3 months which will ensure that when their service is required the data available on them is recent.

Solution Architecture Diagram

Cost Saving

All these solution areas involved minimal investment and strategy redesign in comparison to adding 50 to 100 servers in infrastructure. Cloud servers are used when they are required and you only pay for the time you have used them. This flexibility allows your system (website) to create and destroy servers as needed, and only pay for the time you need.

In this model you will just have to pay for the cost of service and not the hardware which may or may not be required.

Read more about SharePoint here!

A Marketing Professional’s View of SharePoint 2010 Part IV

or
How I Fumbled Through My First Two Weeks on the Job

by Brett Gillin

Part IV (Read Part 1, Part 2, and Part 3)

My despair reached new heights at around 9:30 the next morning. I checked on the home page and saw those dirty commas were back, the content had reverted to the old text again. I flew into a panic, immediately messaged the tech team again and, in my most passive aggressive way, asked why my beautiful changes were gone. A few seconds later they asked if I’d been checking in to the pages.

Wha? Checking in? Why would I need to check in to the pages? Isn’t saving and publishing enough?

Nope. It was explained to me that when multiple people are working on the same page, only the most recent changes will be reflected in the final, published version. So if I went and prettied up all the content, but then one of our graphics team members changed a picture, then the content reverted to the unedited version. So checking in ensured that only one person could be making changes to the page at a time, and that the edit, save, publish process would FINALLY go off without a hitch.

Thankfully, this time after checking in, I was able to quickly make all the edits, as they’d been either saved in the system or in the Word documents I’d been meticulously keeping since the first mishap. Fast forward a day or so and the content on the website was completed… Or at least completed to “Phase I” standards, as I knew once I had a better handle on the business processes and products that I’d want to add and edit the content. I thought my website editing was done and I’d be able to start working on the next project. Then I got an email from our Graphics lead saying: “Why is the spacing so messed up on some pages? There are extra spaces between paragraphs and between heading and copy on about 13 pages.”

It was right about then that I wondered what life would be like if I destroyed every computer on earth. This apocalyptic fantasy helped me sleep that night, but the next morning it was back to reality and trying to figure out this weird spacing issue.

On the next blog: In space(s) no one can hear you scream.

Read more about SharePoint here!

A Marketing Professional’s View of SharePoint 2010 Part II

or
How I Fumbled Through My First Two Weeks on the Job

By Brett Gillin

In case you missed it, Click here to read part one of this epic saga.

Part II

It was approximately my third day on the job when it was high-time for me to get to work on the website redesign. In preparation for this, I was given a 10 minute overview on SharePoint 2010, which mostly consisted of me figuring out how to actually log in and where to find the ribbon. I suppose it was a combination of my bravado and my fear of asking questions that would shoot “Why is this guy here?” looks throughout the office that lead me to wing-it after a very brief introduction to SharePoint 2010. Besides, I’d used Dreamweaver a thousand times, and how different could it be?

Answer: Very Different. Within minutes, I’d found that not only was SharePoint 2010 WAY more feature-laden than Dreamweaver, but I’d discovered that there was a back-end system to tie in a multitude of databases, programs, doodads, and dingle-hoppers that I didn’t even want to think about, much less configure. This did lead me to my mantra over the next few weeks “If it looks too complicated, than it is, so leave it alone.”

A brief visit to a search engine and a few inquiries later, I’d figured out how to edit pages, post content, and save it. The three most important parts of my current task were now in my brain and only a click away, so my confidence soared. I put in about 5 hours of work making grammatical and syntax changes, adding content where I saw fit, and rewriting things that didn’t seem to jive with the rest of the site. I was on a real roll here. I saved every page, one at a time, and at the end of the day I checked through all the pages I’d touched and confirmed that my changes were still there. It had been a good day, and I was happy to have been so productive right out of the gate. I drove home with a smug sense of accomplishment that would be slapped off my face a scant 14 hours later.

On the next blog: A Publisher’s Clearinghouse

Read more about SharePoint here!

Avoiding the “Gotchas” of a SharePoint 2010 Upgrade

by Shams Zuha

I have recently completed a SharePoint 2010 upgrade project for a large technology firm. During this project, I took the time to compile a list of the roadblocks that popped up and I’d like to share them with you. I’m sure that anyone who’s worked on SharePoint 2010 for an extended period of time will have their own list, so please feel free to comment below on other issues that have popped up and I’ll do my best to answer them!

Without further delay, the following is a list of “gotchas”, recommendations and other things to consider:

  • Always execute the Pre-upgrade checker to get your SharePoint inventory.
  • Make sure that your portal is consistent and there are no issues because if you proceed with issues in the current environment then it would be like the old saying says: garbage in, garbage out.
  • Make sure that your content databases do not have too many site collections because it will impact the performance of the upgrade process. I would recommend having no more than 1000 collections per database. In our case, it took almost a day and a half to upgrade the database that had 6000 site collections. After splitting the site collections into 6 databases, we could execute the upgrade process for all six databases concurrently and it took around 5 hours. So basically it depends on your upgrade window, you might decrease the number of site collections per database to expedite the process even further.
  • Test your custom master page with your content during the analysis phase to accommodate ribbon functionality and ensure that your master page is compatible with 2010 version.
  • During capacity planning, consider the increase in content database files, both data and log files. I would recommend documenting the change in file size during your test upgrade and pad a few extra gigs to ensure smooth completion. It will be critical to the success of your final upgrade process because if you database upgrade fails, you will have to start the database upgrade from scratch.
  • I would recommend upgrading the site collections right away so any potential issues can be identified and resolved right away. If you go live with a 2007 visual interface and leave it up to the site owners to choose themselves, it will be a bigger effort to fix it later. You may apply the upgrade using the following PowerShell script for all sites in the site collection

$SiteCollection=Get-SPsite http://sitecollectionURL

foreach($SPWeb in $SiteCollection.AllWebs){$SPWeb.UIversionConfigurationEnabled=$true;$SPWeb.update();}

  • You may experience issues with some of the web parts that were upgraded initially from 2003 to 2007. I would suggest using a newer version of the web part to resolve the issue.
  • We had trouble with some of the Content Query Web Parts and the XSLT had to be adjusted a little bit.
  • There might be a case that you do not want to use a feature that was installed in your 2007 platform anymore and at the same time, you do not have the liberty to get rid of it in 2007 production. In that instance, I would suggest using the Feature Admin tool to get rid of the unwanted features. It allows you to remove a feature based on the GUID from the whole farm.
  • I would recommend reviewing Site Columns deployment features because SharePoint 2010 expects ‘Required’ attribute which was optional in 2007 and might be missing.
  • In SharePoint 2007, you had the option to enable Audience targeting on a list and then group the list results using the Audience that the logged-in user belongs to. SharePoint 2010 allows selecting the <Audience> as a group however the functionality does not work. I would suggest looking for these scenarios and identify an alternate mechanism before converting to 2010.
  • I would recommend using the Search Migration tool to migrate all search settings from 2007 environment to 2010.

http://msdn.microsoft.com/en-us/library/ff828776.aspx

  • SharePoint 2010 does not support the site & list templates created in SharePoint 2007. I would recommend the following steps:
    • Creating a new site collection with a separate database
    • Create all the sites and lists using the templates in 2007 version
    • Upgrade the database to 2010
    • Save the lists and sites as template in 2010 to be used after migration

Click Here to view a SharePoint 2010 Webinar!

Do you have any more tips or tricks you’d like to share? Comment below!

Read more about SharePoint here!