August 2, 2009

Displaying Validation Messages with Flex and

I created a small Flex application that outlines how you can return messages (required fields, validation errors, etc) from The code is fairly basic and checks the return object's success flag and display error message depending on the value of the flag.

You can run this demo on my Developer Site.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx=""
    backgroundGradientAlphas="[1.0, 1.0]"
    backgroundGradientColors="[#F3F3EC, #F3F3EC]"
    height="300" width="500">

        import com.salesforce.*;
        import com.salesforce.objects.*;
        import com.salesforce.results.*;
        import mx.controls.Alert;

        [Bindable] public var sfdc:Connection = new Connection();

        private function login():void {

            var lr:LoginRequest = new LoginRequest();
            sfdc.protocol = "http";
            sfdc.serverUrl = "";
            lr.username = "YOUR_USERNAME";
            lr.password = "YOUR_PASSWORD_AND_TOKEN";
            lr.callback = new AsyncResponder(loginSuccess, loginFault);


		private function submitForm():void {

			var aSo:Array = new Array();
			var so:SObject = new SObject("Contact");
			so.FirstName = firstName.text;
			so.LastName = lastName.text;
			so.Email = email.text;


				new AsyncResponder(
					function (obj:Object):void {
						if (obj[0].success == true) {"Created record: "+obj[0].id);
						} else {[0].errors[0].message)
					}, sfdcFailure


		private function loginSuccess(result:Object):void {
			contactForm.enabled = true;

        private function sfdcFailure(fault:Object):void {

        private function loginFault(fault:Object):void
  "Could not log into SFDC: "+fault.fault.faultString,"Login Error");

	<mx:Text text="To create a new Contact, Last Name is required by while Email is required via a custom validation rule. &#xd;&#xd;Submit the form with different combinations to view the resulting messages returned from;" width="449"/>
	<mx:Form id="contactForm" width="100%" height="100%" enabled="false">
		<mx:FormItem label="First Name">
			<mx:TextInput id="firstName"/>
		<mx:FormItem label="Last Name">
			<mx:TextInput id="lastName"/>
		<mx:FormItem label="Email">
			<mx:TextInput id="email"/>
			<mx:Button label="Submit" click="submitForm()"/>