Dennis, Forgive my stupidity, but in the above explanation, you mentioned
Ideally the code that actually does the <cfmail> will be in a service CFC retrieved from ColdSpring, e.g. getModelGlue().getBean( "EmailService"). I understand how to setup the bean in Coldspring, and assume I know how to create the .cfc that needs to send out the emails, but how do I call those components from my controller. I guess the crux of it is that I havent done any OOP, and dont understand exactly what is going on by actually creating the bean (it's purpose and utilization). I've done a lot of searching, but havent found anything that really points to how to utilize the CFC service. Do you have any links to Model Glue tutotials that reference using Beans. Any further help is greatly appreciated. Thanks in Advance, Cliff On Tue, Aug 24, 2010 at 9:03 PM, Dennis Clark <[email protected]> wrote: > Hi Clifford, > > There are many different ways to go about this, with many variations. I > will give just one approach. > > If you need to tell whether a save was an update or a create, I suggest > modifying the saveHonors() method to return a value that indicates this. > For example: > > <cffunction name="saveHonors" access="public" returntype="boolean" > output="false" hint="Return true if create, false if update"> > > <cfargument name="Honors" type="any" required="true"/> > > <cfif val( Honors.getID() ) GT 0 ><!--- Update ---> > <cfset getHonorsDAO().update( arguments.Honors ) /> > <cfreturn false /> > <cfelse><!--- Insert ---> > <cfset getHonorsDAO().create( arguments.Honors ) /> > <cfreturn true /> > </cfif> > </cffunction> > > Next, modify your HonorsFormSubmitted method to record the save status and > the saved HonorsBean into the event context: > > <cfset var HonorsCreated = "" /> > <cfif isValid > > <cfset HonorsCreated = HonorsService.saveHonors( > HonorsBean ) /> > <cfset > arguments.event.setValue("HonorsCreated", HonorsCreated ) /> > <cfset > arguments.event.setValue("HonorsBean", HonorsBean ) /> > > <cfset arguments.event.addResult("Success") /> > <cfelse> > <cfset arguments.event.setValue("ErrorStruct", > ErrorStruct) /> > <cfset arguments.event.addResult("Failure") /> > </cfif> > > Now, define a controller method called "emailSavedHonors" that uses > arguments.event.getValue("HonorsBean") > and arguments.event.getValue("HonorsCreated") to generate an email. Ideally > the code that actually does the <cfmail> will be in a service CFC retrieved > from ColdSpring, e.g. getModelGlue().getBean( "EmailService"). Remember to > define an <message-listener> for the controller method. > > Next, define a private event handler to broadcast the new message: > > <event-handler name="EmailSavedHonors" access="private"> > <broadcasts> > <message name= "emailSavedHonors" /> > </broadcasts> > </event-handler> > > Finally, add a result to your existing event handlers to queue this new > event on success: > > <event-handler name="SubmitHighSchoolFormData" type="templatedPage"> > <broadcasts> > <message name= "HonorsFormSubmitted" /> > </broadcasts> > <results> > <result name="success" do="E > mailSavedHonors" /> > > <result name="success" > do="HighSchoolApplicationResponse" /> > <result name="failure" do="highschool" /> > </results> > </event-handler> > > With all that in place, your HonorsFormSubmitted controller method should > put all the data needed for emailing into the event context, and the event > handler should queue one event to send the email and another event to return > a response to the client. > > We'll be here if you have any further questions. Good luck! > > -- Dennis > > On Tue, Aug 24, 2010 at 5:36 PM, Clifford Moon <[email protected]>wrote: > >> Greetings, >> >> I'm working on our first ModelGlue app, and have modeled it pretty >> much identical to the tutorial that Dan has on the NoDans.com >> website. I'm saving a form using the controller.cfc, and utilizing >> Service/Gateway/DAO breakdown as was setup in the tutorial. Here is a >> snippet of the controller.cfc code where I'm actually saving the form. >> <cffunction name="HonorsFormSubmitted" access="public" >> returnType="void" output="false" hint="???"> >> <cfargument name="event" type="any"> >> <cfset var HonorsBean = >> getModelGlue().getBean("HonorsBean") / >> > >> <cfset var HonorsService = >> getModelGlue().getBean( "HonorsService") /> >> <cfset var HonorsList = HonorsService.getHonorsListActive() /> >> <cfset var ErrorStruct = structNew() /> >> <cfset var isValid = false /> >> >> <cfset arguments.event.makeEventBean( HonorsBean ) /> >> <cfset isValid = HonorsBean.validate (ErrorStruct) /> >> >> <cfif isValid > >> <cfset HonorsService.saveHonors( HonorsBean ) /> >> <cfset arguments.event.addResult("Success") /> >> <cfelse> >> <cfset arguments.event.setValue("ErrorStruct", >> ErrorStruct) /> >> <cfset arguments.event.addResult("Failure") /> >> </cfif> >> >> </cffunction> >> >> My Issue is that after I save this form, I need to email several >> individuals various files/data that they will need. If the data >> validates and then saves, I'm confused how to get the ID of the record >> that was just saved, and where I need to place the call to the EMAIL >> function. We are using an Oracle Database for this application. >> Should the call to EMAIL be in the isValid CFIF above, and if so, how >> do I pass something back from the DAO file that can tell me that it >> was CREATED and not UPDATED. >> >> Hope I haven't confused anyone, and thanks in Advance for any help. >> I'm still floundering with the ModelGlue concepts, but reading the >> tutorials and newsgroups have given us lots of help. >> >> I'm including the BEAN, DAO, GW,MODELGLUE.XML and SERVICE Files in >> case they are needed.. >> >> -- > Model-Glue Sites: > Home Page: http://www.model-glue.com > Documentation: http://docs.model-glue.com > Bug Tracker: http://bugs.model-glue.com > Blog: http://www.model-glue.com/blog > > You received this message because you are subscribed to the Google > Groups "model-glue" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected]<model-glue%[email protected]> > For more options, visit this group at > http://groups.google.com/group/model-glue?hl=en > -- Model-Glue Sites: Home Page: http://www.model-glue.com Documentation: http://docs.model-glue.com Bug Tracker: http://bugs.model-glue.com Blog: http://www.model-glue.com/blog You received this message because you are subscribed to the Google Groups "model-glue" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/model-glue?hl=en
