Blog Archives

Restore an accidentally deleted image in BBIS

By: Chris Whisenhunt

Posted on: February 9, 2017

Ever had an image accidentally deleted in BBIS? Read on to find out how to restore it! Images in BBIS are handled via an image handler and are stored in the database. Before restoring the database give this a try. declare @IMAGEID int = 3558; declare @IMAGEKEY nvarchar(50) = 'Image_' + cast(@IMAGEID as nvarchar(10)) + '_0', @CURRENTDATE datetime = getdate(); update SITEIMAGES set DELETED = 0, INTRASHBIN = 0 where ID = @IMAGEID; exec spAddUpdate_CacheItem @IMAGEKEY, @CURRENTDATE, 0; :) Happy coding! * this has only been tested in BBIS (CRM 4)... Read More

Creating a BBIS part so that the ADF doesn’t need hard coded values (GUIDs and URLs)

By: Chris Whisenhunt

Posted on: December 12, 2016

We got our ADF developed by Blackbaud and had issues with the need to hard code GUIDs and URLs. The hard coded values looked something similar to this. var BBI = BBI || {     // update these values when updating changelog     Config: {         version: 1.5,         updated: '01/15/2016',         isEditView: !!window.location.href.match('pagedesign'),         responsive: true     },     Defaults: {         rootpath: BLACKBAUD.api.pageInformation.rootPath,         pageId: BLACKBAUD.api.pageInformation.pageId,         designationQueryId: 'DADA4C7E-DFA7-4E83-A440-988DBAE3F16A',         MerchantAcc... Read More

Download a file to the user’s browser via CRM

By: Chris Whisenhunt

Posted on: December 1, 2016

To download a custom file in CRM using VB you need to create a class that inherits Blackbaud.AppFx.Server.AppCatalog.AppCustomFileDownloadProcess like so. Imports Blackbaud.AppFx.Server Imports System.IO Public Class TestFileDownloadHandler     Inherits AppCatalog.AppCustomFileDownLoadProcessor     Public Overrides Function CheckSecurity() As SecurityCheckResult         Return SecurityCheckResult.SecurityCheckPassed     End Function     Public Overrides Sub ValidateArgs()         If String.IsNullOrEmpty(Me.RequestArgs.Parameters("Text")) Then             Throw New Exception("Text parameter not... Read More

Custom name formats

By: Chris Whisenhunt

Posted on: November 8, 2016

I recently had to create custom name formats and while it isn't a very hard thing, it can be quite confusing. Thankfully we have a name format function in the SDK that can be utilized for this. Below is the sample code of one that I had to create, (excluding the spec xml). create function dbo.USR_UFN_NAMEFORMAT_INDIVIDUALINFORMALSALUTATION ( @CONSTITUENTID uniqueidentifier, @LASTNAME nvarchar(100), @FIRSTNAME nvarchar(50), @MIDDLENAME nvarchar(50), @TITLE nvarchar(100), @SUFFIX nvarchar(100), @SPOUSELASTNAME nvarchar(100), @SPOUSEFIRSTNAME nvarchar(50), @SPOUSEMIDDLENAME nvarchar(50), @SPOUSET... Read More

Cleaning up a database for local use

By: Chris Whisenhunt

Posted on: October 17, 2016

The below is a script that I've built that helps with cleaning up sensitive information and frees up space. This script should never be ran on a production database as it shrinks it at the end. Read the comments in it and then look through the script before blindly running it. Let me know if I missed something! Happy coding :) --set the parameters below and then search this file for '--MODIFY' --that will dictate other areas that need to be changed for your specific environment --MODIFY declare @CRMPATH nvarchar(100) = 'https://localhost/bbappfx_staging/', @PREVIOUSBBISPATH nvarchar(100) = 'ht... Read More

Moving attributes between environments

By: Chris Whisenhunt

Posted on: August 18, 2016

There are many times when I need to move attributes from one environment to another. Below is what I use, it prints out one big script that you can copy and paste and run. set nocount on; declare @SQL nvarchar(max) = N''; declare @ATTRIBUTES table(ID uniqueidentifier primary key, NAME nvarchar(100), ATTRIBUTERECORDTYPEID uniqueidentifier, DATATYPECODE tinyint, CODETABLECATALOGID uniqueidentifier, ONLYALLOWONEPERRECORD bit, CONSTITUENTSEARCHLISTCATALOGID uniqueidentifier, PROCESSED bit default 0); insert into @ATTRIBUTES(ID, NAME, ATTRIBUTERECORDTYPEID, DATATYPECODE, CODETABLECATALOGID, ONLYALL... Read More

Moving values in code tables

By: Chris Whisenhunt

Posted on: August 17, 2016

There are many times when I need to move data in code tables from one database server to another. Instead of going through the motions of creating a query and an export it's much easier to move the data using scripts. Below is what I use, it prints out one big script that you can copy and paste and run. set nocount on; declare @CODETABLENAME nvarchar(100) = '', @INCLUDEINACTIVE bit = 1; declare @SQL nvarchar(max) = N'', @CODETABLEADDPROC nvarchar(200) = 'USP_' + @CODETABLENAME + '_CREATEENTRY'; if object_id('tempdb..#CODETABLEVALUES') is not null begin drop table #CODETABLEVALUES end create ta... Read More

Presentation Materials Now Available for 2016 Developers Conference

By: John Lyons

Posted on: August 9, 2016

Presentation slides, examples, and code samples from the 2016 Blackbaud CRM Developers Conference are now available in the Blackbaud-CRM-Conferences repo. This repo provides access to presentation materials from Blackbaud CRM developers conferences. The developers conferences bring together SDK users to share best practices, exchange ideas, build relationships, and learn from the experts at Blackbaud. This year's conference covered a wide variety of subjects, including: SQL optimization essentials for writing queries for SQL Server. How to automate user acceptance testing with the UAT Kit. The... Read More

Database Changes for Blackbaud CRM 4.0 Service Pack 9

By: John Lyons

Posted on: August 4, 2016

The Blackbaud Infinity Technical Reference now reflects database changes made for Blackbaud CRM 4.0 Service Pack 9. The updated schema documentation provides a comprehensive list of changes between Blackbaud CRM 4.0 and Service Pack 9 for both the transactional database and the Blackbaud Data Warehouse database.... Read More

Calling web services from JavaScript in BBIS

By: Chris Whisenhunt

Posted on: June 3, 2016

Create your web service (asmx) and put it in the NetCommunity\WebServices folder. MyCustomWebService.asmx Imports System.Web.Services Imports System.ComponentModel Imports System.Web.Script.Services <System.Web.Script.Services.ScriptService()> <System.Web.Services.WebService(Namespace:="")> <System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> <ToolboxItem(False)> Public Class MyCustomWebService     Inherits System.Web.Services.WebService     <WebMethod()>     Public Function GetText(ByVal name As String)... Read More

Privacy Policy | Sitemap | © 2011 Blackbaud, Inc. All Rights Reserved

Digital Ocean