Friday, June 21, 2013

Displaying a Raiser's Edge Gift List in a SharePoint page with an ASP.NET Web Part

In an earlier post I wrote about some of the possible ways Raiser's Edge data could be reported or displayed using SharePoint, allowing other people in your organization to access these reports, dashboards, and lists without having to log into The Raiser's Edge.  Today we are going to focus on one of those ways:  using the available ASP.NET web controls or web parts in SharePoint Designer.

In this post I am going to focus on creating a simple recent gift list displayed on a SharePoint web page.  As mentioned in the previous post, there are many ways to go about this.  For those developers that know how to use the ASP.NET web parts, a quick and easy way to accomplish this is to drop one of the available web parts onto a Web Part Page, connect the web part to the Raiser's Edge database, write the SQL statement, and format the web part - pretty simple!!
The first step is creating a new web part page.  We need a place that we want to display the gifts and the natural location is to create a Web Part Page in a library that is on the site.  You may want to create your own library for pages, or use the built-in Site Pages library.  It is really up to you.  In addition a Wiki Page may present problems, thus we recommend that you create a Web Part Page.  When creating the page we selected a layout that was one column as we are only going to have one web part on the page and we want as much real estate hortizontally as possible to add as many columns as we might want.

After creating the page, I open up the site with SharePoint Designer, check out the web part page, and open the page in design mode.  When in this mode you can add SharePoint web parts as well as other web parts.  As mentioned above, we are going to use an ASP.NET web part (some of these are pictured at the left).  We are going to choose the GridView for its tabular or grid format, simple rendering of the data in a list format, and easy styling the control to make it a bit more professional.
After placing the GridView web part on the page, we need to tell the web part how to connect to The Raiser's Edge database.  To do this we create a new data connection.  When setting up this connection, you will be presented a similar dialog form to many of the sql tools and utilities in the marketplace.  Because The Raiser's Edge is a SQL Server database, we select this option then enter the appropriate details to connect to the database.  I recommend that you have your administrator create a new SQL Login and provide it the appropriate privileges (read-only to protect the integrity of the data).  Note, this SQL Login is not the same as the "new user" created in The Raiser's Edge application, but a SQL Login created via the SQL Server Management Studio.   We entered the SQL Server instance where the RE database resides, the SQL Login user name and password, along with the Raiser's Edge database.  I recommend that you also click the "Test Connetion" button to ensure that the connection details you have entered work!

 
Now that we have the connection details defined, we need to write the SQL to pull our gifts.  As many of you may know, writing a SQL statement to pull information from The Raiser's Edge may not be a simple SQL.  I tried to display enough information to keep it interesting but not go too overboard.  I also chose to pull just cash gifts as well (see the WHERE G.TYPE IN (1,2,3,31) at the left).  We could write a function to be included in the SQL to show the gift type and allow all gift types to be displayed, but this shows how we can really get at specific information in our reports.

After writing the SQL we then have a Grid View that displays a rough outline of how the grid is going to look.  I chose an out of the box "Professional" style which applied the formatting to the headers, columns and rows.  You could really spend a lot of time customizing the look and feel of the GridView and the individual elements, but for our exercise I thought keeping it simple was the best approach.

Now that we have the SQL written, a connection to the database configured, and the web part styled, it is just a matter of checking in the web part page and opening the SharePoint site to see how it looks and making any edits we might need to.  Below is the outcome of our little project: a web part page that displays recent gifts sorted by the gift date, with the most recent at the top.  Someone that wants to see this information doesn't have to log into The Raiser's Edge or ask someone for the "report", they can just go to the web page to see the information.  Obviously you can extend this type of functionality to dashboards, other reports, adding filtering and search criteria to make it truly dynamic and powerful, even create a mini RE application (having one page that shows constituent information about a specific constituent, another for a campaign, etc. and connecting via links embedded on the pages - now that would be fun).  And the best of all is someone doesn't have to log into The Raiser's Edge to get this information; they can get it on-demand, and it looks professional.



If you would like to explore this type of functionality or run an idea by us, please go to our website to see what else we can do for you or send us a contact us request.  I would even love to hear what other ideas you would like for me to explore on this blog that you think could be powerful, especially if it pertains to The Raiser's Edge or SharePoint.   Also, I want to say thanks for checking out my blog.  If you have any feedback, don't hesitate to reach out to me via this blog or the website referenced above.

Thursday, June 20, 2013

Some Interesting Possibilities Displaying Raiser's Edge Reports and Dashboards in SharePoint

So you have invested in Microsoft SharePoint and you are trying to figure out how you can get the most bang for your buck.  Your organization also has purchased and implemented The Raiser's Edge.  You may be feeling that the reports in The Raiser's Edge are lacking, or that you don't have enough licenses to allow everyone in your organization to connect to The Raiser's Edge at the same time.  Perhaps you don't want to have to train all your end-users, especially those that only need reports anyway, on how to use The Raiser's Edge.

Well, you can leverage the SharePoint platform to display information from The Raiser's Edge via web pages.  It could be dashboards and other reports, lists of data, or even detailed information about your constituents, events, or other records in RE.  Imagine if you have users that need only read-only access: being able to have a web page in SharePoint where the user can enter filter or search criteria and view those constituents that meet the criteria along with details about those constituents, all without having to log into The Raiser's Edge.

Below are some of the ways that SharePoint can be leveraged to display this RE information, or any other information from any SQL database or other data sources:

ASP.NET Web Parts
Many ASP.NET web parts, such as the Grid View and Data List, available with SharePoint Designer, allow us to query and display data from different data sources in many types of formats, typically in a table or form layout. They can work with any data source that’s available in SharePoint Designer, like SQL Server, XML files, and more.  And with The Raiser's Edge being SQL-Server based, these web parts can be used to display this data. Another advantage is that it is easy to customize and considered "out-of-the-box"  and a "no-code" solution.  Check out this blog post where I use an ASP.NET to show a recent gift list from The Raiser's Edge.

Business Connectivity Services
The Business Connectivity Services allows SharePoint to connect to other systems, such as The Raiser's Edge, you already have, and work with them in various ways. A developer can configure the data connections to connect to The Raiser's Edge and import data into external content types, which can then be viewed in a SharePoint list.  What is great is this capability is native to SharePoint 2010 and 2013, however it can be a bit awkward at times, depending on what you might want to do.  In addition, it is meant to allow for data interaction (adding, editing, etc.) and not only for the consumption of data.  With The Raiser's Edge being a complex relational database model, it is advised that this feature not be utilized to update Raiser's Edge data, but to only view data.  Our first entry to show how BCS might be used is posted at the following link.

Excel Services
Excel Services provides the capability to display a named item from a Microsoft Excel workbook, such as a named range or chart, as a web part in a SharePoint web page.  This allows end users to build reports in Microsoft Excel and with developer assistance, display these for others to view as components in a web page.  A developer could even automate the creation of the Excel reports, the publication of the Excel workbook to SharePoint, and WHAM, all the reports are automagically updated.

SQL Server Reporting Services
SQL Server Reporting Services provides a full range of ready-to-use tools and services to help you create, deploy, and manage reports for your organization, as well as programming features that enable you to extend and customize your reporting functionality.  With Reporting Services, you can create interactive, tabular, graphical, or free-form reports from relational, multidimensional, or XML-based data sources. Reports can include rich data visualization, including charts, maps, and sparklines. You can publish reports, schedule report processing, or access reports on-demand. You can select from a variety of viewing formats, export reports to other applications such as Microsoft Excel, and subscribe to published reports. The reports that you create can be viewed over a Web-based connection or as part of a Microsoft Windows application or SharePoint site. You can also create data alerts on reports published to a SharePoint site and receive email messages when report data changes.

Visual Studio Custom Web Part
Visual Studio can be a powerful medium for creating components that can hook into SharePoint or The Raiser's Edge.  A custom web part that gives the developer more control over the visual presentation can be created with this development platform.  For example, a developer could create a visual web part that displays a chart based on some data from The Raiser's Edge.  This chart could be created by hooking into Google Charts to render the visual presentation of the chart.  I hope to create an example of this to show the power.  Parameters and Properties could be added to the web part to give further implemention options.  For examnple, one web part could allow the person deploying the web part on one page to display a pie chart for each Campaign, but on another the same web part could display the chart per Fund.  All in all, this is the most customizable option to creating that perfect set of web parts.

There are more options but these are a few of the highlights of possible ways to deploy Raiser's Edge reports and dashboards to SharePoint.  I hope to post an example for each of these in the coming months to give you detailed examples.  This type of reporting can be used for many other databases as well.  Contact us via email or go to our website to let us know how we can help you improve the way you work with The Raiser's Edge or Sharepoint.

Monday, June 17, 2013

The Raiser's Edge Financial Dashboard Part V - How to Extend It Further

OK, so we have picked apart the Tucamino Solutions Raiser's Edge Financial Dashboard application a bit.  Great, so what.  Well, you may download it and give it a try and say to yourself "This is the best reporting application ever for The Raiser's Edge!!!".  OK, probably not, but you may say "you know what, this is actually pretty cool and it shows great information, but I wish it could _____________".  Thats OK.  No application, report, or dashboard is perfect. 

What we have provided is a foundation for an application that can be used out of the box and provide great information.  However, it is also designed in a way that it can be extended very easily.  What do you mean by "extending" it further?  Well, that simply means that we have a core platform or baseline to add new functionality.  Here are some ways to add new functionality:

1.  Change the actual dashboard components.  Perhaps you want to look at Raiser's Edge gift trends over 5 years, or want to show a chart based on a Constituent's or Gift's constituent code. 
2.  Add new drill-down reports.  You may need additional detailed reports that we can add for you to drill-down into more detailed. Perhaps it deals with Pledges or Recurring Gifts, or even Proposals and Actions.
3.  Add filtering and other configuration options.  As mentioned in the posts, this dashboard component only focuses on cash gifts (cash, pay-cash, etc.), but perhaps you want stocks and gift-in-kind included.  In addition, maybe you want each user that uses the application to be able to filter based on other data (constituency, solicitors, etc.).
4.  Create a whole new application.  You may have a need for something completely different but want it in a similar format, displaying completely different information, or anything else you might think of.  Because we have a starting point, and we know The Raiser's Edge, we can quickly develop applications that you can use, minimizing the total cost to you because we have a head-start.

We offer discounts on customizing this application as we want to not only provide specific updates and new functionality for paying customers, but where we see the opportunity, we will include that new functionality in our FREE product for others to use.  We can't keep adding this functionality without your help.  We want to keep this product free for all.  So it is a win for the entire non-profit community when you use us for your Raiser's Edge customizations and other technology-related efforts.

Go check out our website to see what else we can do for you and even see what other products we might have.  At the very least go to our site and request your FREE download of our Raiser's Edge Financial Dashboard product and give it a spin and provide us some feedback.

Check out the other articles, coming soon, in our series:
The Raiser's Edge Financial Dashboard Part I - The Overview
The Raiser's Edge Financial Dashboard Part II - The Big Picture
The Raiser's Edge Financial Dashboard Part III - Drill-Down Analysis
The Raiser's Edge Financial Dashboard Part IV - True Integration with The Raiser's Edge

Tuesday, June 11, 2013

The Raiser's Edge Financial Dashboard Part IV - True Integration with The Raiser's Edge

Welcome back.  We are in our fourth blog post in the series on the Raiser's Edge Financial Dashboard.  We have looked at some of the specifics of the dashboard application, form the high-level home page, or "Big Picture" to the drill-down capabilities to get more information.  We touched on briefly in our last post about the capabilities to truly integrate with The Raiser's Edge.   Integration can mean many different things to different people.  What I mean by "true integration" with The Raiser's Edge is hooking into the Raiser's Edge API, commonly called the RE:API.

The Raiser's Edge Financial Dashboard is designed in a way that the user can connect via the RE:API, and get access to the built-in Raiser's Edge forms, etc. or the user can connect directly to the SQL Server database.  In order to take advantage of the integration as described in this post, the option to use the RE:API must be selected (as seen at the right).  A benefit to not selecting this option, and using the "Connect directly to the SQL Server database" option, is that a Raiser's Edge concurrent license is not used and thus other users can access The Raiser's via the RE application while other people are accessing and using the Raiser's Edge Financial Dashboard application.  A quick  disclaimer: those organizations hosted by Blackbaud will likely not be able to take advantage of this type of Raiser's Edge customization due to constraints with using Blackbaud hosting.  This will affect nearly all customized products that integrate with The Raiser's Edge as well.   

When the Raiser's Edge API option is selected, and the user clicks on the Raiser's Edge Financial Dashboard to launch the application, immediately the user begins to see how integration with the RE:API takes place.  They are presented with the standard login screens provided by the out-of-the-box RE application.  First there is the option to select the database to connect to and second is the username and password login form for that database selected, as seen at the left.  A user may only open the dashboard application and view the dashboards and reports when they have successfully authenticated with that database, all via the RE:API.

After successful login to The Raiser's Edge, the main dashboard page, as described in a previous posts comes up.  On the main dashboard page additionally functionality such as the drill-down capability to other reports and dashboards, as well as access to Raiser's Edge information shown in Raiser's Edge forms is available from the right-click menu on the dashboard components.  At the right is an example:  The FY Campaign Year-To-Date component allows a user to hover over a section of the chart for a specific campaign and then select to open the campaign with the out-of-the-box Raiser's Edge Campaign form.

After selecting to open the campaign from the right-click menu on the Campaign dashboard component, the out-of-the-box Raiser's Edge campaign form opens.  As seen at the left, this is the campaign form that a user sees when a campaign is opened from the Raiser's Edge application.  How cool is that?  Well, I think it is pretty powerful considering the user is not in The Raiser's Edge, but in another application.  The user can navigate this form just as they would normally, accessing other reports and links from this campaign record.


The tight integration to The Raiser's Edge does not stop at the main dashboard page.  When a user drills down into the dashboard application, eventually a user may look at a list of gifts.  This list contains some of the details for the gifts such as Gift Amount, Gift Date, Campaign(s), etc.  When one considers this specific set of information, opportunties arise for further integration with The Raiser's Edge.   As seen at the right, when the user right-clicks on a gift they may then open the gift or the constituent which gave the gift.  You could even have campaigns available, solicitors, or other links to detailed information in The Raiser's Edge.

When the user clicks on the "Open constituent <Constituent Name>" link, more magic happens.  The user is presented with the constituent form used in The Raiser's Edge application.  For those users of The Raiser's Edge, they know that the constituent form contains a wealth of information (much more than what is aggregated and summarized in the Financial Dashboard).  And when one considers that this type of functionality can be included in an application that resides outside of The Raiser's Edge, well, I would hope they would say "That is pretty cool stuff".  Now think about the possibilities of connecting The Raiser's Edge data to other data sources but providing this powerful linking capability.  The possibilities are endless.

If you want to get more information about the Tucamino Solution's Raiser's Edge Financial Dashboard application, go to the product page on our website.  You can find more products listed on our website as well..  You can request a download of the product, and many more, from our website.

Check out the other posts in our series at:
The Raiser's Edge Financial Dashboard Part I - The Overview
The Raiser's Edge Financial Dashboard Part II - The Big Picture
The Raiser's Edge Financial Dashboard Part III - Drill-Down Analysis
The Raiser's Edge Financial Dashboard Part IV - True Integration with The Raiser's Edge
The Raiser's Edge Financial Dashboard Part V - How to Extend It Further



Wednesday, June 5, 2013

The Raiser's Edge Financial Dashboard Part III - Drill-Down Analysis

In our last post about the "Big Picture" on the Raiser's Edge Financial Dashboard we looked at the details on the main dashboard.  However, the dashboard and reporting application also has more than the one dashboard.  In this episode we will look at the drill-down capabilites of the application.

After the Tucamino Solutions Raiser's Edge Financial Dashboard opens, displaying the Main Dashboard with the charts, graphs, and data tables, the user can drill-down to get at more detail with most of the dashboard components. 

At the right is the first example.  When reviewing the 12 Month Period Comparison, the end-user may want to get more detail for a specific period.  When the user right-clicks with their mouse on a specific cell or header in the grid, they are presented with a menu of options.  As shown at the right, the end-user can view a list of gifts for the specific time period or a summary dashboard for that time period.

The Gift List, shown at the left, is an example of a drill-down report available in the Raiser's Edge Financial Dashboard. It provides a list of gifts for the end-user to view.  Most dashboard components with the dashboard application allow drill-down to a list of gifts.  This can be for a specific campaign, fund, time period, or other specific filters.  This drill-down report also provides summary statistics at the bottom of the report.  These gifts can be sorted by clicking on the column headers.


Once on the gift list report, there is further drill-down capabilities into data for the Raiser's Edge dashboard.  When the user right-clicks on a gift row, a menu is presented that allows the user to go to the gift or the constituent the gift is recorded under.  What is cool about this is that these menu options will open the forms from The Raiser's Edge, giving the end-user access to built-in Raiser's Edge functionality.  These forms will only be accessible when the user selects to sign-in to The Raiser's Edge via the RE:API module.  When SQL Server authentication is chosen, these menu options are not available. There is a benefit to each authentication method, such as not using an expensive RE concurrent license when chosing the SQL Server authentication.

As seen at the left, drill-down capabilities are available on the charts and graphs in the dashboard as well. For example, the user can drill down into a campaign and see the campaign details in the default Raiser's Edge campaign form via the RE:API integration.  In addition, further dashboards and reports are available via the other menu options, including the previously discussed gift list option.  If you like what the dashboard presents but want further drill-down capabilities, we can customize that and add these additional drill-down features.
One of the options for the drill-down capabilities for campaigns is to see an Active Campaign Summary dashboard.  This report and dashboard shows various summary statistics including how much has been raised, what % that is of the total goal, how much is expected due (pledge installments recorded in RE), and how much of the goal is forecasted, or committed (when adding total raised plus total expected from pledge installments).
In addition, there is a visual breakdown of how much has been raised per month over the last 12 months to see which ones may be trending in a positive or negative direction.

This post begins to highlight the power of a dashboard application.  Drill-down reports and dashboards can be created to give more detail and potentially give more information targeted at a specific role or individual to allow them to be more productive in their responsibilities.  In addition, we get an introduction to the integration possibilities with the RE:API and the custom dashboard application by being able to bring up campaigns, funds, constituents, and gifts in the out-of-the-box Raiser's Edge application-based forms.

If you want to get more information about the Tucamino Solution's Raiser's Edge Financial Dashboard application, go to the product page on our website.  You can find more products listed on our website as well..  You can request a download of the product, and many more, from our website.

Check out the other posts in our series at:
The Raiser's Edge Financial Dashboard Part I - The Overview
The Raiser's Edge Financial Dashboard Part II - The Big Picture
The Raiser's Edge Financial Dashboard Part III - Drill-Down Analysis
The Raiser's Edge Financial Dashboard Part IV - True Integration with The Raiser's Edge
The Raiser's Edge Financial Dashboard Part V - How to Extend It Further

Sunday, June 2, 2013

A Case Study: Excel report generation combining data from multiple Excel workbooks

I was approached recently by a client to see if there was any opportunity to help them streamline how they generate reports for some of their clients.  They had a situation where they had numerous excel spreadsheets that needed information consolidated down into one spreadsheet and vlookups just couldn't cut it.  These numerous spreadsheet reports were similar but they were cumbersome to create as it required lots of manual copy and paste, transforming of data, looking in other spreadsheets, searching for codes, copying information and pasting in the other spreadsheet.  All told, they had a frustrating process that took too many hours or days to create these worksheets and often times there were errors due to humans doing the work. 

This screamed out to me that this is the perfect opportunity to improve how they work.  Why?  Well, at its core was a repetitive process that took way too long to do manually.  As long as there was a consistent process and logic that could be written in code and the client agreed to adhere to a few rules and consistencies in the spreadsheet, this would be a huge time-saver for them.

So what I did was create a macro in the primary Excel workbook that did the following:
1.  Create a new worksheet to the create the report
2.  Reads a specific worksheet they do their daily work from and grabs some key pieces of data to insert into the worksheet created in step 1.
3.  Prompts the user to select the other workbook to reference to pull data into the worksheet created in step 1 (think of this as "lookup tables" to fill in additional information based on a code).
4.  Reads the workbook selected in step 3 to fill in additional data into the worksheet created in step 1.
5.  Format the worksheet created in Step 1.

There was obviously some more detail within each of these steps, especially steps 2 and 4.  However, the key was there was repeatable logic that could be created within these steps.  For example, while putting together step 2, in one instance we had to check to see whether or not a code already existed, and if it did, don't write it again. 

The client needed to agree to a few conditions in order for this to work:
1.  The source worksheets they update continually need to have the header rows be the same all the time and some columns need to have the same text in the header cell and possibly be in the same location each time.
That is it - not much to give up really.  In fact it ensures they do things consistently across their group.
2.  The source worksheets data needed to adhere to standards.  As long as the expected data was in the worksheet and the logic to read the data was repeatable, then all systems were go.

Some may think they can just record a macro, going through the process of doing it once manually, without the need to have someone with skills to write VBA code.  However, there are a few fatal flaws in this line of thinking:
1.  The source data may have any number of columns and also any number of rows of data.  Recording the macro does not take this into account and will result, at some point, into data being left out.
2.  When referring to another spreadsheet to pull data in, you must refer to the same workbook every time with recording a macro.  By using code, a custom form can be created that allows the user to select the workbook they want to reference to pull data in, allowing for greater flexibility.

At the end of the day they got a tool that:
1.  Was a huge time saver, freeing them up to do other things.
2.  Created numerous reports within seconds
3.  Was setup in such a way that previous reports would not be overwritten, creating a history if needed.
4.  Allowed users to have multiple copies of the workbooks, and even the workbook they needed to reference to pull data in, to account for different workstreams, different customers, and allow for historical archiving of workbooks.

If you have a similar problem with Microsoft Excel, contact us at Tucamino Solutions to see how we might be able to help you.  This type of solution also works well with querying data from a database, or even multiple databases, to pull data into Excel and format in a consistent manner.  You will be surprised how affordable these solutions can be and how you can get great ROI on this as it frees up your time to do other stuff than formatting and pulling data together in Excel.