Announcement

As of April 17, 2018, this site is now in read-only mode. To start new Blackbaud Developer’s discussions, you will find Developer Discussions in the Blackbaud CRM Community.

To post or respond to Blackbaud Community discussions, you will have to login using a www.blackbaud.com login. Learn how to login here. If you have questions or need assistance, please email community@blackbaud.com.

1.7k questions

3.2k answers

401 users

Categories

1.7k questions

3.2k answers

401 users

I need to add a table spec and populate this table right after it is created during the catalog load. Is there a standard way?

asked by allaterentieva (560 points)

4 Answers

 
Best answer

You could potentially create a configuration data spec that loads data into your custom table. You'd still need to actually import the config spec, but that can be automated as part of a build/deploy process.

As others mentioned, if you're using a build/deploy process you could also roll the SQL statement execution in with the customization load. MSBuild is a particularly attractive option since there are MSBuild tasks included with the BB CRM that can make config load, customization load, and SQL execution easier.

If you went this route, the MSBuild tasks are located in the "bbappfx/MSBuild/Tasks/Blackbaud.AppFx.Platform.BuildTasks.dll" assembly. A few we've found useful are "ExecuteSQL", "ImportConfigurationData", and "LoadCatalogItem".

answered by matthall (642 points)
selected by allaterentieva

I don't think there's a standard way of doing this for customizations. You could take the approach of adding data through some setup feature.

In addition to your table spec, include a data form or a record operation. Instruct system administrators who are loading your features to complete the deployment by invoking this configuration operation. You can add the data via your record operation stored procedure; if you use an edit data form you can provide them with some options or a more detailed explanation before adding the data.

If there is another form that won't work without this configuration step, you could have it check during its preload to see if the configuration has been completed. If checking the table is complicated, your configuration form could set a boolean field to indicate it has run. You could put that field in a table used to store your feature's configuration, with a single row to record that value.

Another option would be to build on top of the configuration data platform feature. You could export the initial data to an XML file and include that with your features. After loading your specs, the user could go to Administration > Configuration data > Configuration import to load your configuration XML file. This gets data into the table without special setup features.

answered by tommyvernieri (393 points)

If you use a build tool you could make it a part of that process. We have discussed enabling before and after load spec tasks where arbitrary SQL can be executed during deployment, but we currently don't have plans to implement it right now. Would this meet your current need?

answered by jaynathan (178 points)

I am assuming that you want to do this during the build and not during load spec?

answered by chriswhisenhunt (3.9k points)
I have a table spec in the catalog and I need to make sure that after they load the catalog into the system this table is created and has certain entries in it.
After they load the catalog as in through the catalog browser or through a build process?
...