Guides (SDK /API)Technical ReferenceBBDNHow-to Documentation

You are here: Custom Parts Example: Pledge Form with Class Year

Custom Parts Example: Pledge Form

Code sample project: Custom Pledge Form

This example includes step-by-step instructions to create a custom part that meets these design requirements and learning objectives:

Design requirements: Create a custom pledge form for Blackbaud Internet Solutions

Any required field for a pledge transaction that is not on this form will be defaulted or calculated in some way.

Name information for the user will appear at the top of the form.

Email address will be populated with constituent or login information when possible. But it will be writeable and include simple email address format validation. For linked users, when the email address is changed, a new email addressed will be added to the constituent record in Blackbaud CRM.

Amount will handle US currency values.

When the user hits the Pledge button, something will be sent to Infinity via a web API. This will be either custom content created with the Infinity SDK or a new pledge transaction. This demonstrates using an the web API for an Add Data Form to write to an Infinity record, one out-of-the box and one created with the SDK.

The behavior of the Pledge button will be configurable by a Blackbaud Internet Solutions administrator. Here are the two options:

  1. Write to a custom content table created with Infinity SDK

  2. For non-linked logins, write to a custom content table and for linked logins create pledge transaction in Infinity for that constituent

Objective: Configure Infinity application (selected items)

Perform steps to configure an Infinity application to support a custom pledge form for Blackbaud Internet Solutions:

Objective: Create parts projects

Perform steps to create a custom parts project: Create a Custom Parts Project

Objective: Add custom parts to parts projects

Perform steps to add custom parts to parts projects: Add a Custom Part to a Parts Project

Objective: Create a custom form (UI design)

Create a custom pledge form with almost minimal information: Create a Custom Pledge Form (Design)

Objective: Create a custom form (form behavior)

Change the field behavior for name fields and track configuration options:

Objective: Add Infinity record customizations for Blackbaud Internet Solutions parts

Create a Infinity customizations to store, add, and delete custom pledge records

Objective: Add a configuration setting to a custom form (UI design)

Create a configuration form for the custom pledge form that enables a supervisor to select the logic to use when writing to pledge records: Create a Custom Pledge Form Editor (Design)

Objective: Prepare to use Infinity API assemblies in a Blackbaud Internet Solutions custom part

Find an applicable Infinity feature to access with a custom part and find the DLL for its API.

Objective: Create a custom form (write logic implementation)

Create logic for a custom pledge form to write to different types of pledge records (Revenue or Custom) depending on configuration settings on the custom part form:

Infinity Configuration for Custom Pledge

Add a Designation to Infinity

Ensure Post Dates are Configured

Create a Custom Pledge Form (Design)

Create a Custom Pledge Form Editor (Design)

Populate the Name Fields

Track the Record Option

Add Infinity Web API References

Infinity Customization for Custom Pledge

Add an Infinity Catalog Project to your Solution

Create a Table for the Custom Pledge Record

Create an Add Form for the Custom Pledge Record

Create a Delete Record Operation for the Custom Pledge Record

Generate Strongly Typed Classes

Quickly Add Existing Folders to Your Project

Code the Add the Pledge Logic (Custom Pledge Records)

Find an Infinity Add Form for a Pledge

Find the API DLL for the Pledge Add Form

Code the Add the Pledge Logic (Revenue Records)

Add Required Field Validation

Add Field Validation for Amount

Add Field Validatation for Email

Add Update Logic for Email

Find an Infinity Search for a Constituent