IT Best Practices Series SharePoint Integration Companies are increasingly using Microsoft SharePoint as a powerful development platform for specific business functions and as a collaboration tool. For example, intranet portals are often built on SharePoint, custom applications use SharePoint as a platform and SharePoint lists fill a niche that in the past required custom applications. Of course, there may be hundreds of other applications in an organization that do not use SharePoint. These applications and tools may work well by themselves, but redundancies in processes and information between them create significant inefficiencies across the entire organization. To improve cost efficiency and gain competitiveness, IT departments and executives are realizing they need a unifying toolset to unite their processes and information. A significant benefit of SharePoint as a unifying toolset is that it has built-in features to support integration. Companies can quickly perform the highest-priority integrations to rapidly deliver value to the organization. While there are many ways to implement SharePoint integration, presented below are three common implementation examples to demonstrate the benefits that organizations can achieve. Many companies track vacation and other time-off requests manually, yet stand to gain significant resource savings when these processes are automated and tracked online. In a few minutes with SharePoint out of the box, a company of 300 employees was able to implement a SharePoint list for employees to enter vacation requests. Alerts for these requests were sent automatically to managers and HR. This simple improvement helped the company realize there would be valuable integration benefits in automating additional processes. The vacation requests were then linked into the company s time reporting system, resulting in approved vacations aligning with vacations reported through time entry. Additionally, the payroll team sent vacation information to a third-party payroll system to properly decrement time off and pay. The result was a streamlined process replacing manual touch-points from employees, managers and HR. In certain industries, requests for company information by a government agency are common. SharePoint can be used to automate tracking and responding to such requests. In a large telecommunications company, government agency requests are entered into a SharePoint extranet site. The requested data is then securely integrated to a separate site on an internal SharePoint farm. The internal SharePoint site integrates with a legacy system to retrieve a tracking number from the legacy application s SQL database. Among other functions, the legacy application keeps a history of all requests and is the source of the master tracking number. There are now two integrations with SharePoint, one to an extranet and one to a legacy database.
In a third integration for the same company, a document image capture system receives lengthy faxes or electronic documents related to the government agency request. The SharePoint system integrates with the document capture tool and creates and manages links to all documents related to each request. Finally, the SharePoint system provides new value by routing the request to the appropriate personnel in the organization who need to take action and respond. A less complicated but common integration is the use of SharePoint to capture internal business requests. An IT help desk may receive such a request in the form of a trouble ticket. Many trouble tickets contain requests for business services that would be more efficiently handled if directly routed into a SharePoint list. Through integration with SharePoint, an operator of help desk systems such as Remedy can simply push a button and automate the feeding of key information directly to the SharePoint list. SharePoint integration possibilities are extensive. Following are additional opportunities to consider. Customer support systems (such as BMC Remedy ) Customer and supplier management systems (e.g., Salesforce.com or SAP ) Microsoft Business Connectivity Services (BCS) to access systems of record (e.g., SAP, Oracle, SQL Server and others) Documentation and collaboration in real time (e.g., Lotus Notes, Microsoft Office and others) Extranets with your intranet REST services Content inclusion from existing line of business applications into search results Integration can include creating new functionality on the SharePoint platform as well as integrating SharePoint with existing non-sharepoint systems. SharePoint s many ready-to-use functional building blocks make both forms of integration cost-effective. Equipped with the right information and resources, companies can successfully implement SharePoint integration customized to their unique business requirements. Such integration should further automate the business, mature a work process, or create new value. It is important to consider six critical success factors when evaluating SharePoint integration possibilities. 1. Understand the Big Picture Take the following steps to initiate the integration evaluation process. a) Define what you plan to accomplish through integration and why. Page 2
b) Create a business statement with a value justification focused on the integration between SharePoint and the other system. c) Consider how you would logically interact with the system. Are you going to get data into SharePoint (use SharePoint as the presentation layer) or out of SharePoint (the other system will consume SharePoint data)? d) Don t assume that if SharePoint can access the data on the back end, you don t need to involve the users of the other applications. Without involving all the right people, key information will be overlooked. Often the existing business process is not well understood outside the context of the system, or even from one individual user s perspective. Therefore, it s imperative to involve multiple users and owners of the other tool. e) Make sure the project includes a budget and sufficient resources for changes to the application that you are integrating with SharePoint. It is almost inevitable that when exploring the application, you will find that your work could be simplified by making a change to the application rather than working within constraints that were never meant to include the new integration. 2. Understand the Details Integration is rarely as simple as presenting data from one system within another system. There must be value added in the form of new business logic/rules. In the time-entry system example shared earlier in this paper, what the manager really wanted to know was: How much time off has the person taken in this accounting period? How much vacation time does he or she have left? What projects or duties is the individual assigned to during the time of the request? Answering these questions efficiently required integrating data from multiple systems (project tracking, payroll with vacation accrual information, time tracking with vacations already taken, etc.) to perform the dependent calculations. A thorough analysis and understanding of the details of the systems to be integrated is necessary before a technical team can select the optimal technologies to support the integration as well as determine how much custom code will be needed. When analyzing the candidate systems for integration, be prepared to document their characteristics in great detail. For example, the technical team will need to identify and document system differences for the following: a) Data structures b) Business rules c) Security protocols Also be prepared to define the necessary business transactions and data flows between these systems in detail. Learn how the data is housed in each system and to what degree it should map from one system to the other. You will likely want to use the business logic of one of the systems rather than writing directly to the database. This means you will need a detailed understanding of the selected system to determine the integration points into the system. Page 3
3. Choose the Right Systems to Integrate Ideally, a clear road map will be produced that presents the business priorities for various software enhancements in the organization, identifies a team responsible for establishing the integration criteria and evaluates which applications should be integrated. Criteria may include the following: a) The future of the system to be integrated with will it be around for the company s strategic future? b) The complexity of the integration it is probably not appropriate to pick the most complex system as your first integration project. c) The need to integrate vs. replace how hard would it be to replace the system with a SharePoint application rather than integrate with it? d) Available knowledge are business and technical personnel available who understand the system? 4. Mitigate Data Exchange Failures When two or more disparate systems are exchanging data, on occasion the data updates will fail. Because the systems are separate, it is unlikely that end users will receive a transaction failure alert across their integration points. For example, suppose an update transaction sent by SharePoint to another system fails. Will the SharePoint user be informed of the failure and, if so, provided with enough information to either account for or correct the failure? Plan where you need error handling and logging to deal with such scenarios. Even one or two missed transactions can cause a loss of user confidence in the system, slowing or preventing adoption of the newly integrated application. 5. Address Security Issues It is not unusual for the security models to differ between SharePoint and a system being integrated with it. Even if their security models are compatible, such as if both use Windows authentication, you may not want the integrated system referencing an end user s credentials for that security model. You can consider the use of a special security account created for the integration, or pass through the current user s authentication. The latter method is the more complex option, as the system being integrated must contain accounts for all needed SharePoint users and verify that they have appropriate access for the functionality being called. In either case, it is highly desirable to expose only one set of credentials (i.e., SSO) to users, with this set supporting their access to any functionality they require and are authorized to use. Be conscious of end users and their needs in your organization. End users who cannot get what they need from IT and who have the technical savvy may use SharePoint BCS to connect to an external data store using a personal account, which then becomes embedded into the system. A related risk is that an application may stop working unexpectedly when the end user has a security account change. To avoid security holes, IT must provide processes and procedures to help automate the creation and tracking of system accounts. Page 4
6. Select the Best Technical Integration Options One of the significant benefits of the SharePoint platform is that there are multiple technical options for integrating it with other systems or other SharePoint platforms. This benefit enables easy creation of unique solutions for different business requirements. However, technical teams must take care to choose the best fit solutions for the specific requirements. Therefore, it is important to understand the desired outcome of the integration up front, as well as the pros and cons of the technical options under consideration. Doing this will ensure that the best options are selected and a successful integration will be implemented efficiently. Technical Options Explored in Greater Detail With earlier versions of SharePoint, integration was often accomplished in only one way. Developers would write a custom web part using.net TM code to call a function or an API to retrieve or update data within an application. SharePoint 2010 offers more options, making integration more building block oriented. The integration team can pick an option whereby much of the work is already done for them, allowing more functionality to be created in much less time. An experienced SharePoint technical resource will understand the business requirements for the integration and evaluate a number of technical options, weighing the pros and cons of each. The integration option selected should be the one supporting the most pre-built functionality needed to solve the requirements. Many technical options can be evaluated depending on the specific integration and business requirements. Some of these options are as follows. Microsoft Business Connectivity Services (BCS). BCS can leverage SharePoint Designer to create external content types, then expose these in the SharePoint user interface through external lists or external data columns. As an advanced variation, the external content type can connect to a Windows Communication Foundation (WCF) service. The WCF service is not a database table of information; rather, it s a way of providing data that has been processed according to the business rules in the service..net code with the SharePoint Object Model. This option is used to interact with web services and APIs of other applications. The code can be triggered by the following: A custom web part. A custom user interface can be provided to have almost any interaction with another system, similar to the freedom of any ASP.NET web page. An event receiver that fires in SharePoint when a list item is saved or deleted. You can use it to call a function or web service in an external system when the user enters data in SharePoint. A custom-coded step added to a SharePoint workflow. User interaction with an InfoPath form set up to call custom code through Visual Studio tools for applications. Page 5
SharePoint PerformancePoint and SQL Reporting Services. This option allows for the consumption of information in SQL or other databases that is preprocessed for display in SharePoint. BizTalk. BizTalk is useful for integration scenarios with high transactional volumes. SharePoint is an excellent front end if you use the BizTalk Windows Communication Foundation Line of Business (WCF LOB) adapter provided by Microsoft for integrating with a number of specific technologies (for example, WCF LOB for SAP). If the corporate SharePoint sites are hosted online, such as in Office 365, all of the technical integration options described above may not be available. Your specific hosting situation will determine how many limitations, if any, there may be. Hosted SharePoint Integration Many companies today are interested in evaluating the use of hosted solutions, such as Microsoft s Office 365 or SharePoint on Microsoft s Windows Azure platform, to provide SharePoint to their organization. It is possible to connect an external list with your Office 365 SharePoint site to provide a display of information or write to external data. If you want to go beyond that level of complexity, you may have to carefully re-architect your solution. In some cases there won t be a good way to provide functionality in Office 365. Recall our vacation example earlier in this paper, in which an approved vacation request needed to be written to the time entry system. The original design was to use a workflow to write data to an external system once the data were entered in SharePoint and their status was approved. To get it working on Office 365, however, the custom-coded workflow step wasn t allowed. The design had to be modified to use a sandbox solution for deployment to SharePoint in Office 365. The sandboxed solution put an event receiver on all custom lists, and the event receiver code filtered for the correct kind of data and then called a web service exposed by the Time Entry system. Hosting SharePoint on Windows Azure provides more functionality than is available in Office 365, but doing so still does not allow the complete flexibility of hosting your own site internally. Other hosting providers do provide more comprehensive support for SharePoint features. They should be evaluated to determine if they provide a better solution for your business requirements. Page 6
Summary Most organizations would benefit from taking steps to move to the next level of business maturity by better linking data and functionality. Organizations can take the first step toward increasing efficiencies and competitiveness by compiling a list of systems they use. In doing this, beneficial integration ideas will begin to materialize. Management can then prioritize which integrations should be done, and SharePoint specialists can determine the best ways to support these integrations. Existing applications represent an investment; your SharePoint infrastructure is also an investment. SharePoint integration with your existing applications will more fully leverage both investments. About SmarTek21 SmarTek21 is a global IT services company that helps enterprises solve development, implementation and business problems. SmarTek21 provides full enterprise architecture consulting, software development, managed services and product realization support. More information is available at www.smartek21.com. Page 7