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 email@example.com.
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?
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".
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.
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?
I am assuming that you want to do this during the build and not during load spec?