|
Guides (SDK /API) | Technical Reference | BBDN | How-to Documentation |
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.
If the user is logged in
form will be populated with that login’s user information
fields will be read-only
If the user is not logged in
form will not be populated
fields will be writeable
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:
Write to a custom content table created with Infinity SDK
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
Ensure Post Dates are Configured
Create a Custom Pledge Form (Design)
Create a Custom Pledge Form Editor (Design)
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 Field Validation for Amount