Mixing a little Flex with my Mach-II

ColdFusion, MachII, Web Development, Flex

One of my latest projects was to create a little contact manager / sales tool to integrate with an existing system (written in Mach-II).  Requirements dictated that I needed to have access to my already logged in user (must be aware of client session). "Down the road" requirements, are that we'd like to make an AIR port of this new feature as a standalone application. As a big fan of Flex, I thought it would be a great opportunity to test the efficacy of writing this new feature as a drop in Flex mini-application. 

Since security is handled by the existing application,  we needed to make sure the functionality of this app respected the existing security guidelines.  The best way I could think of was also the easiest...just start calling events and see what happens.

Lucky for me, it all just worked.  So here are a few examples that might help get you started if you are working on the same sort of project.

 

On creationComplete I call a method named "init()" to get that user's set of contact data:

private var myLoader:URLLoader;

public function init():void
{
	var myReq:URLRequest = new URLRequest('/index.cfm/event/GetContactData);
	myLoader = new URLLoader()
	myLoader.addEventListener(Event.COMPLETE, dataComplete);
	myLoader.load(myReq);
}

Important:  Notice the event listener I added to call the dataComplete method once the request was completed. 

 

Once we have that initial set of data, all that is left is to start POSTing the create/edit/deletes the user is making to his contacts.

Here is an example of doing an HTTP POST request and passing my Contact object to a Mach-II event:

private function saveContact(Contact:ContactVO):void {
	var myHTTPService:HTTPService = new HTTPService;
	myHTTPService.method= "POST";
	myHTTPService.url = '/index.cfm/event/SaveContact';
	myHTTPService.addEventListener(ResultEvent.RESULT,function():void{init()});
	myHTTPService.send(Contact);
	Alert.show('Contact has been saved.');
}

Note:  Check out how we send the Contact object without doing anything tricky?  All of the properties of my ContactVO are available as event Args in my Mach-II listener. 

 

Here is another example of doing an HTTP POST request, but passing individual variables:

private function submitNote(htmlText:String,plainText:String,Contact:ContactVO):void
{
	var myHTTPService:HTTPService = new HTTPService;
	var obj:Object = new Object();
	myHTTPService.method= "POST";
	myHTTPService.url = '/index.cfm/event/saveNote';
	obj['notetext'] = htmlText;
	obj['notepreview'] = plainText;
	obj['contactid'] = Contact.ContactId;
	myHTTPService.addEventListener(ResultEvent.RESULT,function():void{init()});
	myHTTPService.send(obj);
}

Note:  Notice how we create an object and define the properties we want to send, and then pass that new object in the POST.

Salamander said:
 
Tough website and post. Just keep going like this, guys. Regards, http://www.picktorrent.com
 
posted 1 days ago
Add Comment Reply to: this comment OR this thread
 

Search

Fuelly