Mission Research CTO Bloghttp://daveweaver.net/(none)en-usTue, 30 Jan 2007 23:11:35 GMTConnectServer Sites 1.8.5223.2david.weaver@missionresearch.comdavid.weaver@missionresearch.comhttp://daveweaver.net/mission,trackback,GiftWorksReportsSDKBETAPartIListReportshttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/mission,permalink,GiftWorksReportsSDKBETAPartIListReportshttp://daveweaver.net/mission,commentview,GiftWorksReportsSDKBETAPartIListReportshttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=7a6a607f-32b1-4144-8abe-37e12522ac08675

I know I've been promising an SDK for some time now, but we've finally had some movement on that front. Some of you may have received an email announcing the first release. We've started a new web site to host all-things-SDK. Check out DevHero.com for everything you need to know to get started.

We plan to release the SDK in small pieces as beta downloads. We want to crawl before we run and we want your feedback all along the way. At some point, when the small pieces become mature and stable enough, we will add them to the release version of the grand SDK.  The first download is some code and examples to create your own reports inside of GiftWorks. A recent survey of our customers indicated that reporting was a big part of what you'd like to customize. This should get you started. Please let us know what you think via the DevHero forums. Thanks.

GiftWorks Reports SDK BETA Part I: List Reportshttp://daveweaver.net/mission,permalink,GiftWorksReportsSDKBETAPartIListReportshttp://daveweaver.net/mission,permalink,GiftWorksReportsSDKBETAPartIListReportsTue, 30 Jan 2007 23:11:35 GMT<p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/GiftWorksReportsSDKBETAPartIListReports_FFD2/reportshot%5B1%5D%5B2%5D.jpg" atomicselection="true"><img style="border-right: 0px; border-top: 0px; margin: 0px 20px 20px 0px; border-left: 0px; border-bottom: 0px" height="214" src="http://daveweaver.net/media/blog/WindowsLiveWriter/GiftWorksReportsSDKBETAPartIListReports_FFD2/reportshot%5B1%5D_thumb.jpg" width="240" align="left" border="0"></a> I know I've been <a title="Follow-up On Our First GiftWorks Example" href="http://daveweaver.net/mission,permalink,FollowupOnOurFirstGiftWorksExample?q=SDK">promising an SDK for some time now</a>, but we've finally had some movement on that front. Some of you may have received an email announcing the first release. We've started a new web site to host all-things-SDK. Check out <a title="DevHero.com" href="http://www.devhero.com" target="_blank">DevHero.com</a> for everything you need to know to get started. </p> <p>We plan to release the SDK in small pieces as beta downloads. We want to crawl before we run and we want your feedback all along the way. At some point, when the small pieces&nbsp;become mature and stable enough, we will add them to the&nbsp;release version of the grand SDK.&nbsp;&nbsp;The first download is some code and examples to create your own reports inside of GiftWorks. A recent survey of our customers indicated that reporting was a big part of what you'd like to customize. This should get you started. Please let us know&nbsp;what you think via the <a title="DevHero forums" href="http://devhero.com/forums/default.aspx" target="_blank">DevHero forums</a>. Thanks. </p>http://daveweaver.net/mission,commentview,GiftWorksReportsSDKBETAPartIListReportsaddins;giftworks;graphite
http://daveweaver.net/mission,trackback,WhatIsGiftWorksMadeOfhttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/mission,permalink,WhatIsGiftWorksMadeOfhttp://daveweaver.net/mission,commentview,WhatIsGiftWorksMadeOfhttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=8e303266-e8f3-4028-bc51-fe2010a3893d

We've had some questions recently about what technologies are used to build GiftWorks. Good question, let me explain. This might get a little technical but it's worth a shot. If you want more specifics or a better explanation, please leave me a comment and I will try to clear it up.

graphite

As mentioned in previous articles, GiftWorks is built on a proprietary application framework nick-named GRAPHITE. GRAPHITE allows us to rapidly build software to target specific uses. GRAPHITE knows nothing about non-profits or fundraising. It does know how to behave like a modern Windows program though. The entire user interface (UI) is drawn using HTML (like the webpage you are looking at now). It provides windows, dialogs, internet updates, context-sensitive help, scripting and a lot more of the features expected in todays software. It also provides a lot of the UI elements used like listboxes, button and menus.

The core of GRAPHITE is written in C++. GRAPHITE hosts Internet Explorer to render the UI. Some of the UI elements are written using a combination of ATL (Active Template Library) and MFC (Microsoft Foundation Classes). The entire framework is built around Microsoft's COM (Component Object Model) which allows programs like GiftWorks to be built using various programming languages and technologies. It also enables developers to easily add functionality to GiftWorks that is specific to their uses. This blog will talk more specifically about addins in the future.

giftworks

The GiftWorks "code" is what makes GRAPHITE useful for non-profits. It provides the SmartLists, the donor and donation management and the reporting. That stuff is written Visual Basic and the user interface is written using DHTML (Dynamic HTML). Some of you may have already dug into the GiftWorks directories and saw a bunch of *.htm files in there. Each of those .htm files is a different screen in GiftWorks (play at your own risk).

There are some other third-party technologies used within GiftWorks to do reporting, name parsing, word-processing and displaying lists.

data

Currently GiftWorks uses a file-based database technology called JET. It is the same database technology used by some Microsoft products including Microsoft Access. In the near future, GiftWorks will also work with a client-server database (possibly Microsoft SQL Server) to allow better scalability for bigger organizations.

.net

We have refrained from using any Microsoft .NET technologies in GiftWorks. It is a great technology and we will be using it for some of the online services we will be providing for GiftWorks customers. We started GiftWorks prior to .NET being mainstream (is it mainstream yet?), and don't particularly like the thought of shipping the .NET Framework with our downloads.

questions

Like I said, this post is probably a little technical for our current customers, but maybe I touched on something that gets you engaged. Please send your questions and let me know what you would like me to write about in future posts.

What Is GiftWorks Made Of?http://daveweaver.net/mission,permalink,WhatIsGiftWorksMadeOfhttp://daveweaver.net/mission,permalink,WhatIsGiftWorksMadeOfWed, 21 Dec 2005 18:38:31 GMT<p>We've had some questions recently about what technologies are used to build GiftWorks. Good question, let me explain. This might&nbsp;get a little technical but it's worth a shot. If you want more specifics or a better explanation, please leave me a comment and I will try to clear it up. </p> <p><strong>graphite</strong> </p> <p>As mentioned in previous articles, GiftWorks is built on a proprietary application framework nick-named GRAPHITE. GRAPHITE allows us to rapidly build software to target specific uses. GRAPHITE knows nothing about non-profits or fundraising. It does know how to behave like a modern Windows program though. The entire user interface (UI) is&nbsp;drawn using HTML (like the webpage you are looking at now). It provides windows, dialogs, internet updates, context-sensitive help, scripting&nbsp;and a lot more of the features&nbsp;expected in&nbsp;todays software. It also provides a lot of the UI elements used like listboxes, button and menus. </p> <p>The core of GRAPHITE is written in C++. GRAPHITE hosts Internet Explorer to render the UI. Some of the UI elements are written using a combination of ATL (Active Template Library)&nbsp;and MFC (Microsoft Foundation Classes). The entire framework is built around Microsoft's COM (Component Object Model) which allows&nbsp;programs like GiftWorks to be built using various programming languages and technologies. It also enables developers to easily add functionality to GiftWorks that is specific to their uses. This blog will talk more specifically about addins in the future. </p> <p><strong>giftworks</strong> </p> <p>The GiftWorks "code" is what makes GRAPHITE useful for non-profits. It provides the SmartLists, the donor and donation management and the reporting. That stuff is written Visual Basic and the user interface is written using DHTML (Dynamic HTML). Some of you may have already dug into the GiftWorks directories and saw a bunch of *.htm files in there. Each of those .htm files is a different screen in GiftWorks (play at your own risk). </p> <p>There are some other third-party technologies used within GiftWorks to do reporting, name parsing, word-processing&nbsp;and displaying lists. </p> <p><strong>data</strong> </p> <p>Currently GiftWorks uses a file-based database technology called JET. It is the same database technology used by some Microsoft products including Microsoft Access. In the near future, GiftWorks will also work with a client-server database (possibly Microsoft SQL Server) to allow better scalability for bigger organizations. </p> <p><strong>.net</strong> </p> <p>We have refrained from using any Microsoft .NET technologies in GiftWorks. It is a great technology and we will be using it for some of the online services we will be providing for GiftWorks customers. We started GiftWorks prior to .NET being mainstream (is it mainstream yet?), and don't particularly like the thought of shipping the .NET Framework with our downloads. </p> <p><strong>questions</strong> </p> <p>Like I said, this&nbsp;post is probably a little technical for our current customers, but maybe I touched on something that gets you engaged. Please send your questions and let me know what you would like me to write about in future posts. </p>http://daveweaver.net/mission,commentview,WhatIsGiftWorksMadeOfgiftworks;graphite
http://daveweaver.net/mission,trackback,FollowupOnOurFirstGiftWorksExamplehttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/mission,permalink,FollowupOnOurFirstGiftWorksExamplehttp://daveweaver.net/mission,commentview,FollowupOnOurFirstGiftWorksExamplehttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=714c0765-e2d9-45db-9dbe-a2cbe61f68ab

gwicon.JPGI've gotten some questions about how the example in the post 'Deeper Into GiftWorks and GRAPHITE Part 1' applies to our customers.

for testing only

Let me first say that the examples posted in this blog should not be used in a real environment. They are intended to give customers some insight into the power of the Mission Research software platform. We would also like feedback from our customers so we know what you want and what direction we need to be headed in.

please backup

In all circumstances, please make a backup of your database and store it in a safe place. Mission Research cannot support any problems that arise from using my examples in this blog.

sdk

In the near future, Mission Research will release a software development kit (SDK) that documents the full functionality and provides many examples. What can I do with an SDK? With the SDK, customers can integrate their own systems around GiftWorks and the data it stores. Programs can be created to clean the donor data, extract the donor data for use in other programs or even insert data from other programs. It will also give customers the ability to add their own screens and customize the existing screens within GiftWorks as well as adjust the menus on the left side.

is that it?

Of course not. I'm sure you can think of many more uses for your organization once you fully understand the power of GiftWorks' extensibility. As I reveal more examples, please leave comments on what you're thinking and what kind of things you would like to do. I will try to respond with examples based on your suggestions.

Technorati:

Follow-up On Our First GiftWorks Examplehttp://daveweaver.net/mission,permalink,FollowupOnOurFirstGiftWorksExamplehttp://daveweaver.net/mission,permalink,FollowupOnOurFirstGiftWorksExampleFri, 25 Nov 2005 16:39:12 GMT<p><img height=34 alt=gwicon.JPG hspace=20 src="http://daveweaver.net/media/blog/gwicon.JPG" width=34 align=right border=0>I've gotten some questions about how the example in the post '<a class=TitleLinkStyle href="http://daveweaver.net/mission/PermaLink,guid,e34ce8b8-3ffb-4beb-b1c6-59a1c9f4e628.aspx"><font color=#005bba>Deeper Into GiftWorks and GRAPHITE Part 1</font></a>'&nbsp;applies to our customers. </p> <p><strong>for testing only</strong> </p> <p>Let me first say that the examples posted in this blog should not be used in a real environment. They are intended to give customers&nbsp;some insight&nbsp;into the power of&nbsp;the Mission Research software platform.&nbsp;We would also like feedback from our customers so we know what you want and what direction we need to be headed in. </p> <p><strong>please backup</strong> </p> <p>In all circumstances, please make a backup of your database and store it in a safe place. Mission Research cannot support any problems that arise from using my examples in this blog. </p> <p><strong>sdk</strong> </p> <p>In the near future, Mission Research will release a <a href="http://en.wikipedia.org/wiki/SDK">software development kit (SDK)</a> that documents the full functionality and provides many examples. <em>What can I do with an SDK?</em> With the <a href="http://en.wikipedia.org/wiki/SDK">SDK</a>, customers can integrate their own systems around GiftWorks and the data it stores. Programs can be created to clean the donor data, extract the donor data for use in other programs or even insert data from other programs. It will also give customers the ability to add their own screens and customize the existing screens within GiftWorks as well as adjust the menus on the left side. </p> <p><strong>is that it?</strong> </p> <p>Of course not. I'm sure you can think of many more uses for your organization once you fully understand the power of GiftWorks' extensibility. As I reveal more examples, <strong>please leave comments</strong> on what you're thinking and what kind of things you would like to do. I will try to respond with examples based on your suggestions. </p> <p>Technorati: <a href="http://technorati.com/tag/giftworks" rel=tag>giftworks</a> </p>http://daveweaver.net/mission,commentview,FollowupOnOurFirstGiftWorksExamplegiftworks;graphite
http://daveweaver.net/mission,trackback,DeeperIntoGiftWorksAndGRAPHITEPart1http://daveweaver.net/pingback.aspxhttp://daveweaver.net/mission,permalink,DeeperIntoGiftWorksAndGRAPHITEPart1http://daveweaver.net/mission,commentview,DeeperIntoGiftWorksAndGRAPHITEPart1http://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=e34ce8b8-3ffb-4beb-b1c6-59a1c9f4e6282

intro

What's really cool about GiftWorks is the ability to use Windows scripting to automate and add onto the application. GiftWorks is built on top of an application framework that enables this functionality very easily.This blog entry will be the first in a series that highlights the automation capabilities of GiftWorks and the underlying framework.

creating a donor

We'll use a simple script as an example. Below is the dialog steps for adding a new donor in GiftWorks...

That's how customers do it thru the UI. Below is the code to add a donor using VBScript. Please note that error checking has been ommited from this example to make it readable.

Const typeIndividual = 0

' Get an App reference to GiftWorks
Set App =CreateObject("MissionResearch.GiftWorks")

' Make sure the user is signed in so a db is selected
If
App.Security.SignedIn Then

    ' Create the donor using the Donor module
    Dim Donor, DonorId
    Set Donor = App.Modules.Donor.DonorManage.GetNewDonor(typeIndividual)
    With Donor
        .Fname ="Ben"
        .Lname ="Franklin"
        .Gender ="Male"
        .AddresseeFormal ="Mr. Ben Franklin"
        .AddresseeInformal ="Ben Franklin"
        .SalutationFormal ="Mr Franklin"
        .SalutationInformal ="Ben"
    EndWith

    ' add a primary address
    Dim Address
    Set Address = App.Modules.Donor.ContactManage.GetNewContact("address")
    Address.Primary =True
    Address.Order = 1
    Address.DisplayName ="Home Address"
    Address.Street1 ="71 East Liberty Street"
    Address.Street2 =""
    Address.City ="Philadelphia"
    Address.State = 3
    Address.Zip ="19760"
    Donor.Addresses.Add Address

    ' Insert the donor
    DonorId = App.Modules.Donor.DonorManage.InsertIndividual(Donor)
    App.Shell.MsgBox"Donor was Added", "Success"

    ' Show the new donor in GiftWorks
    App.Shell.Navigate "graphite://donor/details-individual?id=" & Donorid
Else
    App.Shell.MsgBox"You must be signed in before calling this script"
EndIf

code breakdown

The first thing you do is get a reference to the GiftWorks Application object. You will use that reference to access everything within the program. The CreateObject call will actually start GiftWorks if it is not running, though this example script assumes GiftWorks has already been started and a user has signed in.

Once you have an App reference and have checked that the user is signed in, you use the Donor module to get a reference to a new Individual donor object. With that object you can set some properties and add an address contact. Once all the properties have been set, you need to insert the individual. Until you call the InsertIndividual() method, the donor doesn't exist in the database.

After the donor has been inserted, you can direct GiftWorks' UI to the actual details of the donor. And that's it.

up next

In the next segment I will show you what part of the code above is GiftWorks and what part of the code is provided by the framework. Feel free to leave comments.

Deeper Into GiftWorks and GRAPHITE Part 1http://daveweaver.net/mission,permalink,DeeperIntoGiftWorksAndGRAPHITEPart1http://daveweaver.net/mission,permalink,DeeperIntoGiftWorksAndGRAPHITEPart1Wed, 23 Nov 2005 10:03:56 GMT<p><strong>intro</strong> </p> <p>What's really cool about GiftWorks is the ability to use Windows scripting to automate and add onto the application. GiftWorks is built on top of an application framework that enables this functionality very easily.This blog entry will be the first in a series that highlights the automation capabilities of GiftWorks and the underlying framework. </p> <p><strong>creating a donor</strong> </p> <p>We'll use a simple script as an example. Below is the dialog steps for adding a new donor&nbsp;in GiftWorks... </p> <p><a href="http://www.flickr.com/photos/87416559@N00/66137435/"><img alt="" hspace=0 src="http://static.flickr.com/32/66137435_39377cff61_m.jpg" align=baseline border=0></a> </p> <p>That's how customers do it thru the UI. Below is the code to add a donor using VBScript. Please note that error checking&nbsp;has been&nbsp;ommited from this example to make it readable. </p> <p><span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Const</span> typeIndividual <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> 0<br> <br><span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' Get an App reference to GiftWorks</span> <br><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Set</span> App <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">CreateObject</span>(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"MissionResearch.GiftWorks"</span>)<br><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"> <br><span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' Make sure the user is signed in so a db is selected<br></span>If</span> App.Security.SignedIn <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Then</span> <br> <br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' Create the donor using the Donor module</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Dim</span> Donor, DonorId<br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Set</span> Donor <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> App.Modules.Donor.DonorManage.GetNewDonor(typeIndividual)<br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">With</span> Donor<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Fname <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Ben"</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Lname <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Franklin"</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Gender <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Male"</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.AddresseeFormal <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Mr. Ben Franklin"</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.AddresseeInformal <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Ben Franklin"</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SalutationFormal <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Mr Franklin"</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SalutationInformal <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Ben"</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">End</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">With</span> <br> <br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' add a primary address</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Dim</span> Address<br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Set</span> Address <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> App.Modules.Donor.ContactManage.GetNewContact(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"address"</span>)<br>&nbsp;&nbsp;&nbsp;&nbsp;Address.Primary <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">True</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;Address.Order <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> 1<br>&nbsp;&nbsp;&nbsp;&nbsp;Address.DisplayName <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Home Address"</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;Address.Street1 <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"71 East Liberty Street"</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;Address.Street2 <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">""</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;Address.City <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Philadelphia"</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;Address.State <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> 3<br>&nbsp;&nbsp;&nbsp;&nbsp;Address.Zip <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"19760"</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;Donor.Addresses.<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Add</span> Address<br> <br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'&nbsp;Insert the donor<br></span>&nbsp;&nbsp;&nbsp; DonorId <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> App.Modules.Donor.DonorManage.InsertIndividual(Donor)<br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#000000>App.<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Shell</span>.<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">MsgBox</span></font> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Donor was Added"</span>, <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Success"<br></span> <br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'&nbsp;Show the new donor in&nbsp;GiftWorks<br></span>&nbsp;&nbsp;&nbsp; App.<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Shell</span>.Navigate <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"graphite://donor/details-individual?id="</span> &amp; Donorid<br><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Else</span> <br>&nbsp;&nbsp;&nbsp;&nbsp;App.<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Shell</span>.<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">MsgBox</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"You must be signed in before calling this script"</span> <br><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">End</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">If</span> <br></span> </p> <p><strong>code breakdown</strong> </p> <p>The first thing you do is get a reference to the GiftWorks Application object. You will use that reference to access everything within the program. The CreateObject call will actually start GiftWorks if it is not running, though this example script assumes GiftWorks has already been started and a user has signed in. </p> <p>Once you have an App reference and have checked that the user is signed in, you use the Donor module to get a reference to a new Individual donor object. With that object you can set some properties and add an address contact. Once all the properties have been set, you need to insert the individual. Until you call the InsertIndividual() method, the donor doesn't exist in the database. </p> <p>After the donor has been inserted, you can direct GiftWorks' UI to the actual details of the donor. And that's it. </p> <p><strong>up next</strong> </p> <p>In the next segment I will show you what part of the code above is GiftWorks and what part of the code is&nbsp;provided by&nbsp;the framework. Feel free to leave comments.<font face="Courier New" color=#008000> <br> </p>>http://daveweaver.net/mission,commentview,DeeperIntoGiftWorksAndGRAPHITEPart1giftworks;graphite
http://daveweaver.net/mission,trackback,GiftWorks2006http://daveweaver.net/pingback.aspxhttp://daveweaver.net/mission,permalink,GiftWorks2006http://daveweaver.net/mission,commentview,GiftWorks2006http://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=bf641c01-14bd-4fd7-b966-53e75e51a39a

GiftWorks is a popular, affordable, easy-to-use fundraising software package from Mission Research. Our team has spent the last few years building it and it has been available to the public for over a year now.

   

From a tech perspective, the interesting thing about GiftWorks is that it is built on top of a very functional application framework called GRAPHITE. I will be dedicating a lot of my blog entries to detailing GiftWorks and GRAPHITE.

GiftWorks 2006http://daveweaver.net/mission,permalink,GiftWorks2006http://daveweaver.net/mission,permalink,GiftWorks2006Tue, 22 Nov 2005 15:23:02 GMT<p><a href="http://www.missionresearch.com/giftworks_main.html">GiftWorks</a>&nbsp;is a popular, affordable, easy-to-use fundraising software package&nbsp;from Mission Research. Our team has spent the last few years building it and it has been available to the public for over a year now. </p> <p><a href="http://www.flickr.com/photos/87416559@N00/tags/giftworks/"><img alt="" hspace=0 src="http://static.flickr.com/31/65863894_9d3670d0b7_t.jpg" align=baseline border=0>&nbsp;<img alt="" hspace=0 src="http://static.flickr.com/35/65863896_971445b652_t.jpg" align=baseline border=0>&nbsp;<img alt="" hspace=0 src="http://static.flickr.com/31/65863897_573cf80d24_t.jpg" align=baseline border=0>&nbsp;<img alt="" hspace=0 src="http://static.flickr.com/26/65863899_8b12befbdd_t.jpg" align=baseline border=0></a> </p> <p>From a tech perspective, the interesting thing about GiftWorks is that it is built on top of a very functional application framework called GRAPHITE. I will be dedicating a lot of my blog entries to detailing GiftWorks and GRAPHITE. </p>http://daveweaver.net/mission,commentview,GiftWorks2006giftworks;graphite