SharePoint Server Roles for the Upcoming SharePoint Online 2016 Release

Microsoft Ignite 2015 Highlight

bill-baer-sharepoint-2016

Bill Baer, Microsoft Technical Product Manager and Certified Master presents “What’s New for IT Professionals in SharePoint Server 2016” at Microsoft Ignite 2015.


In typical SharePoint deployments, SharePoint servers typically serve a dedicated server “role”, depending on which features have been enabled.  For example, Web Front End and App servers are common dedicated roles.  But without much guidance from Microsoft, customers have implemented various implementations of such roles, with some mixed results.  As an effort to control the chaos, Microsoft developed “Specialized Server Roles”, which are defined via the SharePoint Configuration Wizard.  SharePoint server roles for 2016 include:

Server Roles

  • Specialized – provides an agnostic role a la 2010 – recommended for 3rd party service in order to accommodate that need
  • Web Front End
  • Search
  • Application
  • Distributed Cache
  • OR Single Server Farm – requires to install SQL server on the same machine.  SQL Express is no longer supported.

SharePoint Server Roles, dubbed “MinRole” as an internal name, will be monitored by Health Analyzer to detect and report any deviation from the role standards.  For example, this could happen if an admin extends SharePoint search onto a Web Front End server.  In the Central Admin Servers in Farm page, an admin can click a “Fix” link to bring the server back into the expected alignment of the server role.

Infographic: Office 365 and SharePoint Online Adoption in the Oil & Gas Industry

Microsoft Office 365 lets you invest more capital into your wells and less on IT infrastructure. Imagine a world where you don’t have to worry about upgrades or managing servers and network infrastructure.

Wondering if it’s time to move your oil and gas enterprise to the cloud?

O365-Infographic-Web-Slice_01O365-Infographic-Web-Slice_02O365-Infographic-Web-Slice_03O365-Infographic-Web-Slice_04O365-Infographic-Web-Slice_05O365-Infographic-Web-Slice_06
O365-Infographic-Web-Slice_07O365-Infographic-Web-Slice_08

Let’s face it, oil and gas is lagging other industries when it comes to embracing the cloud.
Click here to read Carol Donnelly’s latest article about the pros and cons of Microsoft Office 365 adoption for oil and gas producers, pipeline operators, and service providers.

Is Your SharePoint Farm Ready for Hackers?

If you play a part in managing or administering SharePoint at your company, the Sony hack might be more frightening to you than any scary movie they’ve released. The hackers looted Sony’s network and released sensitive employee information, confidential intellectual property, and even embarrassing emails. You don’t have any of these on your servers, do you?

Sure, your firm might not attract the ire of a rogue nation, but corporate cyber attacks are commonplace. Most malware isn’t directed at a specific target; instead, it sweeps the internet for network vulnerabilities.

Oil is near $50 per barrel, companies are belt-tightening, and the last thing you need is a messy and expensive cleanup when your SharePoint environment is compromised. Here are the tools you should employ to help protect yourself.

On-Premises 

If you control the network that contains your SharePoint farm, you first have to make sure that the network is secure through the proper use of firewalls and proxies. After that, look into:

  • Dedicated Service Accounts: By creating the correct number of accounts and restricting their access as much as possible (called principle of least privilege), you can stop a rogue account from gaining access to parts of your farm it shouldn’t be able to access.
  • SQL Transparent Data Encryption: Available with SQL Enterprise, SQL TDE encrypts SharePoint data while in storage, while backed up, and while in use in temporary databases.
  • SSL and IPSec: If messages are being sent to and from SharePoint servers to computers outside of your firewall, such as when you have a corporate extranet, SSL will ensure safe arrival of packets to your SharePoint farm, and IPSec will grant safe communication between the servers in your farm.

SharePoint Online (O365)

If you are using Office 365, Microsoft hosts your farm on their network. Microsoft has put a lot of thought and effort in security, since the success of their offerings hinges on your perception of how secure their network is, and they continue to improve. Microsoft states, as of the beginning of 2015:

Our latest encryption feature with which content in OneDrive for Business and SharePoint Online will be encrypted at rest will start rolling out to customers soon. With this, the encryption technology in Office 365 moves beyond a single encryption key per disk to deliver a unique encryption key per file.

Still, you may be uncomfortable with a third-party holding your data and your encryption keys on shared hardware. You might reasonably conclude that the O365 servers represent a ripe target for unscrupulous individual trawling the web. In the words of famed criminal Willie Sutton when asked why he robs banks, “That’s where the money is.”

If so, you should consider software that makes your data more secure in the cloud by encrypting it before it goes to Microsoft and keeping a copy of the key locally. Other options withhold portions of your data from ever making it to the cloud, while others make monitoring and enforcing your security and governance policies easier and more transparent.

Either On-Prem or Online

Whether you host your own farm or use Office365, you’re going to want to look at these strategies for more secure data:

  • Role Based Access Control: You should have a thoughtful strategy for assigning roles to users and permissions to those roles. If your AD is a mess, the mail clerk who left the company six months ago might have access to your personnel file.
  • AD/Azure RMS: Different names depending on whether you host your farm or whether Microsoft does, but RMS (Rights Management Services) is the tool you use to make sure that someone doesn’t download that sensitive document and email it to the Everyone@YourCompany.com distribution group.

If trying to implement some of these tools on top of your regular workload is less funny than The Interview, give us a call. We’ve helped countless upstream, midstream, downstream, and services companies buy, build, and integrate software.

 

SharePoint Trends for 2014

SharePoint is an application platform that allows you to take control of the content and documents that you put on the Internet. Though the capabilities are present in SharePoint for use with external websites (like the kinds that your customers use to find out more information about your business), most companies have been using SharePoint for internal intranets.

SharePoint is great for tasks like collaboration on projects, document sharing and more. There are several trends with regards to SharePoint that you should definitely be paying attention to in 2014.

When you understand just what SharePoint is capable of doing, you’ll be able to fully understand just how much it will make your life (and the lives of all your colleagues) easier. SharePoint Consulting will help take you to the next level.

The SharePoint Mobile Experience

One of the major SharePoint trends in 2014 has to do with making sure that your content works well not only in all browsers that are available but on all types of devices, too. This can be overwhelming for a number of different reasons.

In years past, there was one major browser that everyone had to concern themselves with: Microsoft’s Internet Explorer. The web browser market has fractured in recent years with the appearance of serious competitors like Mozilla Firefox, Google Chrome and Apple’s own Safari. To make matters more complicated, more users are now accessing online content on the go using devices like smart phones and tablets.

When focusing on branding and SharePoint in general, you need to make sure that your site functions equally well across the entire spectrum. If your site looks great on a desktop but runs poorly on an iPhone, you run the risk of alienating all potential users who fall into the latter category.

SharePoint & E-Discovery

One of the major SharePoint trends to watch out for in 2014 has to do with e-discovery. E-discovery is a term used to describe how an organization uses SharePoint to retain electronic records for their business. E-discovery is a feature that Microsoft’s SharePoint was notoriously bad at for many years.

With the release of the 2013 suite, however, a greater emphasis has been placed on making e-discovery easier and a more fluid experience than ever before. This is a trend that is expected to continue well into 2014 and beyond as it allows users to make their content global in a meaningfully arranged way that is easy to access.

HTML5

Another major trend with regards to SharePoint to watch out for in 2014 has to do with HTML5. HTML5 is the successor to traditional HTML and is a programming language that is designed to improve compatibility between the Internet and all types of devices. Instead of relying on Adobe’s Flash technology for streaming video content, for example, which is something that users of Apple’s products won’t be able to access, web developers can now give access to the same content using HTML5 and allow all users to enjoy it in an equal way.

HTML5 is integrated into the newest versions of SharePoint in a number of different ways. One of the biggest impacts of this change is that it gives users the ability to view content from Microsoft Office utilities like PowerPoint, Access, Word and Excel on their mobile phones – even if those phones don’t have the original Office applications installed.

Another major trend that is associated with HTML5 integration gives users the ability to set a different mobile view for different types of devices with regards to web content. You can have the same page display differently on an iPhone than it does on a Samsung Galaxy, for example. Both views can be fully customized to bring out the best in those respective devices.

Wondering how some of these tools can help your team? Sign up for our SharePoint Assessment today…

InfoPath Retirement: The Doctor is In

SharePoint Consulting Prescribes Solutions to Fit Your Business

SharePoint consulting is often not unlike being a doctor. When a patient visits their doctor, she doesn’t assume that penicillin is the fix for everyone who walks in the door. Instead, a cure is recommended based on specific symptoms.

The same goes for our customers. When we first engage with a new company, the SharePoint team spends some time understanding how the business process is lacking. We’ll also ask questions about specific business goals, long term plans, the number of users, and more.

Only after these first steps are complete can we help our customers make an informed decisions. It may be that SharePoint isn’t the right platform at all. Or perhaps we’ll prescribe a customized SharePoint implementation that leverages the power of third-party tool to provide the required functionality.

SharePoint and InfoPath

SharePoint Consulting: InfoPath RetirementIt is from this unique perspective that the Entrance SharePoint consulting team has approached the news that InfoPath 2013 and InfoPath Forms Services for SharePoint Server 2013 will be the last versions.

For those of you who aren’t familiar, InfoPath has been widely used as a forms solution for organizations small and large since Office 2007. Whether those forms were formal documents for gathering data or informal methods of collecting information, InfoPath was a relatively easy to use application for business users as well as IT professionals. InfoPath’s integration with SharePoint helped to drive its adoption and to increase its functionality.

This may be seen as a loss for some organizations that have taken the time to implement InfoPath. However, the solution will be supported until 2023. For the immediate future, Entrance supports Microsoft’s recommendation to continue using InfoPath.

Other Options for SharePoint Forms

For those businesses that are implementing forms for the first time, reports so far say that Microsoft is “investing in new forms technology across SharePoint, Access, and Word.” There are also a number of mature third party SharePoint solutions that are worth considering.

More importantly, the focus should never be on the specific tool. Instead, companies should make solving business problems the main goal. IT, business leaders, and consultants alike should take a cue from any good doctor and assess why the organization is “sick” before ever thinking about specific products.

At the SharePoint Conference in March, Microsoft will offer a sneak preview of the new forms technology. Entrance will have several members of the SharePoint consulting team on-hand at the conference to learn about and to bring home information about the future forms technology.

When your organization is ready to explore the options beyond SharePoint, you may want to consider signing up for a SharePoint audit!

For more on diagnosing problems and choosing solutions that fit your company, try this post on software selection.

SharePoint Consulting: Solutions to Common BCS Errors

Solving BCS Errors with SharePoint Consulting

My recent SharePoint consulting work has involved working through a few BCS errors. Programmatically accessing BCS External Lists in SharePoint is a bit like working in a parallel universe.  Most list access rules will continue to apply, however there are some very special caveats that one must remember.

For the reader’s findability convenience, I am organizing this guide in terms of the errors that the user will most likely encounter.

Reading and querying an External List

“The given key was not present in the dictionary”

This error may appear if any one of the CAML query conditions have not been met:

  • Viewfields were not specified
  • Viewfields and Query were specified via the ViewFields property (as opposed to using the ViewXML and Query properties)
  • The Method name was not included.  In most cases this should be either ‘Read List’ or ‘ReadList’.

Here is an example of a correctly laid out CAML query for BCS.

SPQuery query = new SPQuery();

query.ViewXml = @”

<View>

<Method Name=’Read List’/>

<Query>

<Where>

<Eq>

<FieldRef Name=’SUBMISSION_ID’/>

<Value Type=’Text’>FilterValHere</Value>

</Eq>

</Where>

</Query>

<ViewFields>

<FieldRef Name=’SUBMISSION_ID’/>

<FieldRef Name=’PACKAGE_ID’/>

</ViewFields></View>”;

“The Finder ‘ReadList’ cannot be found in ViewGroup associated with SpecificFinder (Read Item) operation ‘ReadItem’ in EntityNamespace”

This sort of error can appear if an incorrect Method name was supplied above.  Pay attention to caps and spaces.  In my own case, I had to pull open SharePoint Designer and check the exact name of the Read List operation, and I found that there was a space in the method name.

The shim execution failed unexpectedly – Proxy creation failed. Default context not found..

This error will appear if you did not declare the SPServiceContextScope.  You can perform this operation as shown below.  Note that the scope must be declared BEFORE the SPWeb is instantiated.

using (SPSite site = new SPSite(“http://mysite”))

{

var context = SPServiceContext.GetContext(site);

using (var scope = new SPServiceContextScope(context))

{

using (SPWeb web = site.RootWeb)

{

SPList myList = _web.Lists[“myList”];

SPQuery query = new SPQuery();

….

}

}

}

Writing to External Data columns / External Content Types

Setting values to External Data type columns require additional operations in order for the item to correctly linked to External Data source.  This is evident as one tries an operation like:

SPList submissionList = _web.Lists[_submissionListTitle];

SubmissionList.Items[0][ExternalDataCol] = “New value”

This operation will not change the “additional fields” columns.  This problem can be resolved by using the following commands and methods…

private static IEntityInstance GetEntityInstance<T>(SPSite site, string nameSpace, string entityName, T entityId)

{

var svcContext = SPServiceContext.GetContext(site);

using (var scope = new SPServiceContextScope(svcContext)) {

BdcService service = SPFarm.Local.Services.GetValue<BdcService>();

IMetadataCatalog catalog = service.GetDatabaseBackedMetadataCatalog(svcContext);

IEntity entity = catalog.GetEntity(nameSpace, entityName);

ILobSystemInstance LobSysteminstance = entity.GetLobSystem().GetLobSystemInstances()[0].Value;

IEntityInstance entInstance = null;

// Get methods collection

foreach (KeyValuePair<string, IMethod> method in entity.GetMethods())

{

// Get current method’s instance

IMethodInstance methodInstance = method.Value.GetMethodInstances()[method.Key];

// Execute specific finder method.

if (methodInstance.MethodInstanceType == MethodInstanceType.SpecificFinder)

{

// Create new identity

Identity id = new Identity(entityId);

// Execute specific finder method and get the entity instance

entInstance = entity.FindSpecific(id, entity.GetLobSystem().GetLobSystemInstances()[0].Value);

}

}

return entInstance;

}

}

private static void SetSecondaryFields(SPListItem listItem, SPBusinessDataField dataField, IEntityInstance entityInstance)

{

// Convert the entity to a formatted datatable

DataTable dtBDCData = entityInstance.EntityAsFormattedDataTable;

// Set the BCS field itself (Display Value)

listItem[dataField.Id] = dtBDCData.Rows[0][dataField.BdcFieldName].ToString();

// Get the specific finder method to get the columns that returns

IMethodInstance method = entityInstance.Entity.GetMethodInstances(MethodInstanceType.SpecificFinder)[0].Value;

ITypeDescriptorCollection oDescriptors = method.GetReturnTypeDescriptor().GetChildTypeDescriptors()[0].GetChildTypeDescriptors();

// Set the column names to the correct values

foreach (ITypeDescriptor oType in oDescriptors)

{

if (oType.ContainsLocalizedDisplayName())

{

if (dtBDCData.Columns.Contains(oType.Name))

{

dtBDCData.Columns[oType.Name].ColumnName = oType.GetLocalizedDisplayName();

}

}

}

// get the secondary field display names; these should be set

string[] sSecondaryFieldsDisplayNames = dataField.GetSecondaryFieldsNames();

// loop through the fields and set each column to its value

foreach (string columnNameint in sSecondaryFieldsDisplayNames)

{

Guid gFieldID = listItem.Fields[String.Format(“{0}: {1}”, dataField.Title, columnNameint)].Id;

listItem[gFieldID] = dtBDCData.Rows[0][columnNameint].ToString();

}

}

public SPListItem SetExternalDataCol<T>(SPListItem item, SPSite site, string ExternalDataColName, string ExternalContentTypeName, T fieldId)

{

SPBusinessDataField dataField = item.Fields[ExternalDataColName] as SPBusinessDataField;

item[dataField.RelatedField] = fieldId;

SetSecondaryFields(item, dataField, GetEntityInstance(site, site.Url, ExternalContentTypeName, fieldId));

return item;

}

The methods can be executed using this example code:

using (SPSite site = new SPSite(“http://mysite”))

{

using (SPWeb web = site.RootWeb)

{

SPList list = web.Lists[“My List”];

SPListItem newItem = list.AddItem();

newItem[_properties.Column_TemplateID_List_SubmissionTasks] = templateCollection[i][“ID”];

newItem = SetExternalDataCol(newItem, site,  “External Data Column Name”, “My External Content Type”, “External Column ID”);

newItem.Update();

}

}

 For more, check out what our SharePoint consulting team is up to in our Knowledge Base.

SharePoint Consulting: Workflow Not Found

Managing New Workflow Manager Installation with SharePoint Consulting

I needed to remove a Web Front End (WFE) from a SharePoint farm for development reasons, but afterwards we noticed that workflows stopped working.  To remedy this, I decided to just re-install Workflow Manager on the main WFE.  Though this is not normally a recommended practice, we had few concerns since we are only working off a development environment.

I installed Workflow Manager on the WFE, then registered Workflow Manager using the –Force parameter to write over the previously registered Workflow Manager.

Register-SPWorkflowService –SPSite “http://mysite” -WorkflowHostUri “http://mysite:12291″ –SharePoint Consulting: Workflow ManagerAllowOAuthHttp -Force

However after installing Workflow Manager on the WFE I got the following error when starting a workflow:  “Something went wrong.  To try again, reload the page and then start the workflow.”

Workflow exception: “Something went wrong. To try again, reload the page and then start the workflow.”

This error wasn’t terribly descriptive, so I then checked the ULS logs and found these two errors:

“Microsoft.Workflow.Client.WorkflowNotFoundException: Workflow ‘e0a7dd54-cdb2-430f-bd98-16f6f9c1132c’, for scope ‘/SharePoint/default/8586cf62-a76c-464b-8ad0-2609f5c6cc01/b2301f34-5ce3-4237-b818-0942146a7541′, was not found. HTTP headers received from the server – ActivityId: 34956577-bdab-4a56-a2bf-25b2f33dc0af. NodeId: BOGBOWSDEV01. Scope: /SharePoint/default/8586cf62-a76c-464b-8ad0-2609f5c6cc01/b2301f34-5ce3-4237-b818-0942146a7541. Client ActivityId : a7c4369c-e8b8-f00e-7f24-c293dc32ac42. —> System.Net.WebException: The remote server returned an error: (404) Not Found.     at Microsoft.Workflow.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)     at Microsoft.Workflow.Client.HttpGetResponseAsyncResult`1.End(IAsyncResult result)     at Microsoft.Workflow.Client.ClientHelpers.Se…     a7c4369c-e8b8-f00e-7f24-c293dc32ac42”

“Exception occured in scope Microsoft.SharePoint.WorkflowServices.WorkflowInstanceService.StartWorkflowOnListItem. Exception=Microsoft.Workflow.Client.WorkflowNotFoundException: Workflow ‘e0a7dd54-cdb2-430f-bd98-16f6f9c1132c’, for scope ‘/SharePoint/default/8586cf62-a76c-464b-8ad0-2609f5c6cc01/b2301f34-5ce3-4237-b818-0942146a7541′, was not found. HTTP headers received from the server – ActivityId: 34956577-bdab-4a56-a2bf-25b2f33dc0af. NodeId: BOGBOWSDEV01. Scope: /SharePoint/default/8586cf62-a76c-464b-8ad0-2609f5c6cc01/b2301f34-5ce3-4237-b818-0942146a7541. Client ActivityId : a7c4369c-e8b8-f00e-7f24-c293dc32ac42. —> System.Net.WebException: The remote server returned an error: (404) Not Found.     at Microsoft.Workflow.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)     at Micro…                a7c4369c-e8b8-f00e-7f24-c293dc32ac42”

Again, these errors weren’t very descriptive.  Through a bit of trial, error, and luck, I finally realized that the previously existing workflows were only deployed to the old Workflow Manager, which was no longer in use.  Obviously the workflows would need to be redeployed for the new Workflow Manager.  I then tried redeploying the workflows, and success!  The workflows worked as expected.

SharePoint Consulting: Workflow Strategy

SharePoint Consulting and Automation

SharePoint consulting can be the time saver that your team has been looking for. Automation, what a wonderful thing!  We have become very accustomed to the most mundane tasks taking care of themselves.

Consider the washing machine, the dishwasher, cruise control, the thermostat in your house, and everyone’s favorite, automated phone menu systems!  Computing and automation goes hand-in-hand.

SharePoint workflows are the tool for your business automation needs. But be warned – with great power comes great responsibility. Due diligence to assess the automation’s workflow can save you a lot of headaches.

Forms Require Strategy

We collect information we need to do our jobs, so we create forms to make sure we have all the data we need.  What happens next?  Usually a process (we’ll call this workflow SharePoint consulting: workflowsfrom here) is followed to turn the data collected into actionable information.

Let’s use an example to bring the abstract into the concrete.  When you buy a product over the internet at your favorite website, you fill out a form to collect the information about the sale, such as what the product is, where the package should be shipped, and billing information.

When you click “Buy”, this information is then fed into one or many workflows.  The warehouse must know what product to pull from the shelves, the billing department must bill you for the sale, and the shipping department must handle the shipment.

All of these are examples of workflows that keep the business running, but what about management?  How many times has a manager asked for data from the operations personnel, encroaching on their core processes and slowing them down?

Imagine an infantryman in the heat of battle being asked by a commanding officer how many bullets he has fired.  Nothing could be more frustrating.

A workflow developed for SharePoint could also provide business intelligence data collection silently while the business marches forward.  Not only have you saved your employees the frustration of stopping work to tell you what has been accomplished.

Now, you have real-world information on how your business is operating.  Any manager can tell you that this knowledge is critical to business intelligence and decision making.

The possibilities within the SharePoint Workflow framework are nearly endless.  If the functionality you require is not available out-of-the-box, it can be custom built or purchased as an add-on to suit your business automation needs.

For more on SharePoint consulting and workflows, read this post!

SharePoint 2013 and Large Lookup Lists

SharePoint 2013 and an Unexpected Cost of Large Lookup Lists

SharePoint 2013 can handle very large lists (given a very restrictive set of requirements). There is however one error that slipped through the cracks from the Microsoft SharePoint development team. When the total number of items in a list exceed 20,000 items (mileage may vary); you may lose the ability to use the list as a Lookup Column while maintaining the ability to edit the list item via the default edit form.

Under the hood

SharePoint 2013: Large ListsA lookup component has two pieces: SharePoint ID and the display column (selected when created the column).

When the sum of this data across the entire list exceeds ~2 MB; users can no longer edit the list items via edit form.

Solution coming in future updates.

SharePoint Consulting: Gamification and ROI

The Return on Investment for SharePoint Consulting

In our SharePoint consulting engagements, we often come across interesting problems that can be solved by some amount of customization. This was exactly the case when a change manager from one Upstream client came to Entrance with concerns over educating employees on a new system transition.

Pipeline controllers at this company needed to understand the changes and how they affected their jobs. After some consideration of the business problem, Entrance recommended that our client try SharePoint gamification.

We shared some of the steps we went through for this SharePoint consulting engagement when we first started the project a few months ago. Now that the gamification customizations are live on the customer’s SharePoint site, it has been exciting to see how they are using it and what employees think.

Incentivizing SharePoint Participation

SharePoint Consulting: GamificationA common problem in the SharePoint consulting world is when sites are developed and implemented, but afterwards stakeholders have no idea who is using it or if it is serving the purpose for which it was developed. As a result, calculating ROI or any sort of value for the project is not possible.

In the case of this implementation, the site was launched with incentives (like gift cards and t-shirts) for people to participate and build up points. The addition of fun and competition immediately encouraged employees to use the site and become engaged.

Similar to a computer game, each user starts out at a basic level and moves up as they score points. Each level is named after something relevant to the oil and gas industry.

There is also a leaderboard where employees can see monthly and lifetime high scores. This helps the change management team to check in on who has been staying up-to-date on system migration changes, and who has not.

Another major benefit of our SharePoint consulting work is that the gaming system has been set up so it can be managed internally. After the customization was complete, Entrance trained the team on how to administer it, thus empowering the team to use the system as necessary.

Since the launch of gaming system, reports back from the client are all positive. Employees report that they love playing, and the client is thrilled that so many people are engaging with the content they need.

For more on how the oil and gas industry can use SharePoint to improve collaboration and engagement, check out this post…