So, you’ve installed NPSP and begun setting up some of the powerful out-of-the-box functionality that it provides! Features like automated soft credits, customizable roll-ups, and recurring donations, just to name a few. Most of these provide tremendous value in part to their ability to be tailored to meet your organization’s specific needs.
This is a theme seen throughout NPSP with a few exceptions, most notably, the “Manage Opportunity Allocations” page used to create or modify allocations on opportunities. Although this interface allows you to create/modify GAU Allocations in their most basic form, what if your business process necessitates populating a custom field in the Manage Allocation screen at the time of creation? After encountering this requirement a few times we decided that it was time to come up with our own solution.
The first thing that came to mind was to utilize Field Sets which, due to their declarative nature, make it easy for changes to take place down the road without needing to dig into code. We proceeded to peel out all related and dependent “Manage Allocations” page code from the NPSP package and included a fieldset on the NPSP GAU Allocation object. Any fields included in the field set will dynamically render inputs in the grid in the format you would expect based on their field type.
In this example below, you can see that we added a single custom lookup field on the Allocation; However, it is important to note our solution will support any field type.
We would all love to see this as a standard feature in the NPSP package, but until then upvote this Power Of Us idea, and/or voice your opinions on Chatter here and here (or if you’re a dev, checkout the github issue here). And, with the hope of future support in mind, we decided to create an unmanaged package for our updates that could be added/removed much easier than manually stripping out code in the future. Go check it out here** and let us know what you think!
** This package is provided as-is without warranty. Contact us to learn more.