ALL RPC data service calls, including RemoteObject are *asynchronous*. And such calls are non-blocking. You must invoke your check call, then, in its result handler, do the conditional logic to invoke the insert.
Tracy Spratt, Lariat Services, development services available _____ From: [email protected] [mailto:[email protected]] On Behalf Of secrit.service Sent: Friday, March 20, 2009 2:19 PM To: [email protected] Subject: [flexcoders] AMFPHP Question Hi all, I have following issue, which I don't understand. I created a button which will add a record to the database. But before doing so I need to check if a similar record already exists. This is how I thought it could be solved: <mx:RemoteObject id="myRemoteObject"> <mx: method name ="existRecord" result ="recordExistResultHandler(event)"/> <mx:RemoteObject/> if (myRemoteObject.existRecord.send(myRecord)) { Alert.show ("Record already exists") } else { // Insert record into the database myRemoteObject.insertRecord.send(myRecord) } private function recordExistResultHandler (evt:ResultEvent) : Boolean { Alert.show ("Result getting back from webserver is " + evt.result.toString()); return evt.result; } The function existRecord on the webserver checks if a similar record already exists and sends a Boolean back. This works fine. To my opinion this should work as follows (supposing record is already in the database) : - Before executing my if-statement, it will check the condition (check if record already exists) - it send a request existSpell to the webserver which will query the database - num_rows is greater dan zero (meaning record already exists), the webserver will return TRUE to the resultHandler of flex-application - resultHandler is executed --> an Alert-windows appears telling "Result getting back .......is TRUE " and the value is returned to the if-statement. - Because condition is true --> an Alert-window appears telling "Record already exists" BUT ... THIS IS NOT HOW IT WORKS ????? As a matter of fact the if-statement is executed first (Alert 'Record already exists') and afterwards I get the Alert telling the result of the webserver??? It's the opposite world. Am I missing something?? Thanks

