BVCMS now allows you to script additional processes with the Python programming language. This provides a way for your church to develop functionality specific to your church’s processes. Basically a script can be run on any trigger such as an online registration completion, an attendance at an event or meeting, a change in membership status, or a donation. These scripts would be optional but allow you to define actions to occur outside the standard process built-in to BVCMS. The script would be able to do things like create a task about a person and for a leader to follow-up after a specified number of days. The script would be stored in a way similar to custom confirmation emails are for an online registration. Typically you would just compose a few lines of code. An example might be the following, five line, simple to read, Python script:
member.AddTag("Step One Complete")
CreateTaskAbout(person, org.leader, 7, "Follow up")
member.AddTag("Step Two complete")
First of all, this is a complete script, no other cruft necessary. Three objects were made available to the script for ready use, the event, the org and the person. First, it checked to see if the reason for the calling the script was because of an enrollment and if so it added the person to the organization’s small group called “Step One Complete”. Second, if it was called because of an attendance, it created a task about the attendee for the leader of the organization and put a due date of 7 days with a subject of “Follow up”. And it added the person to the small group named “Step Two Complete”.
We think this scripting capability will do for BVCMS what the ability to program spreadsheets has done for Excel. The Python language was developed to be an easy to learn language. Python’s design philosophy emphasizes code readability. Much of Google and almost all of YouTube are written in Python. The original developer chose the name Python from Monty Python’s Circus fame because he wanted it to be fun to use. IronPython.NET is the current best practice choice for .NET developers to embed scripting capabilities into their applications.