For Offline Adobe Air with Salesforce ... Switch to Stratus

I'm currently working on a POC for a potential customer using Adobe Air to manage offline cases. I spent a couple of daysdesigningthe UI and hooking up the Force.com Toolkit for Adobe AIR and Flex to Salesforce and then ran into a show-stopper.

The toolkit works fairly well as advertised and detects when the application is connected to Salesforce. When connected, the application loads and fetches cases from Salesforce and displays them in a datagrid. It also caches them in the local SQLite database for disconnected usage. When the application cannot connect to Salesforce, it pulls the cases from the local cache and displays them. To the user there is not much of anoticeabledifference.

The problem is when you try to create a new case. If connected, it simply shoves the data into Salesforce to create the new case. No problem. If offline, the toolkit is supposed to serialize the new case, save it in the local SQLite database and then auto-magically create it in Salesforce when reconnected.Unfortunately a couple of people have reported the same bug that I ran into when trying to serialize the record:

ArgumentError: Error #2004: One of the parameters is invalid. at flash.utils::ByteArray/writeObject()

After a day or so of beating my head against Google and Bing, I dropped a line to James Ward at Adobe who promptly and courteouslyreplied. His recommendation for offline access to Salesforce was to drop the Force.com Toolkit for Adobe AIR and Flex and start using the newFlash Builder for Force.com (Stratus). The new Flash Builder for Force.com is officially supported by Salesforce.com while the older toolkit is …. not so much. Since the new Flash Builder and Status toolkit are beta, I installed them in a stand-alone version of Eclipse. The process was fairly routine and I was up and developing in about an hour (they are large downloads).