Simon Fell > Its just code > OSX
There's a big update to zkSforce available, it now supports the entire v29 Partner API, all the new calls, soap headers etc. Also there are aysnc/blocks versions available of all the API calls, so you can safely make soap calls on a background thread and not block the UI.
The update is mostly driven from a new tool I wrote which generates code from the WSDL, so as new WSDLs get released keeping zkSforce unto date will be easier. (note you don't need to use this tool, just add zkSforce to your project as usual and off you go). This move to generated code means there are a number of minor changes from previous versions that you might need to address if you update to the latest version, check the read me for all the details.
If you try it out, let me know how you get on.
SF3 was one of the first OSX/Salesforce tools I wrote, made possible by an API in OSX called Sync Services. With the release of OSX 10.8 (aka Mountain Lion) Apple officially deprecated the Sync Services API (and its future was in doubt for a quite a while prior to that). With this news the future for SF3 is that it doesn't have any future, there is no new API that replaces the functionality of Sync Services. There are APIs to talk to both Address Book and iCal, but without the sync engine piece an app that wanted to sync data between those apps and a 3rd party is going to have to build the entire sync/match/change log functionality itself, a big job. Its possible that exposing the salesforce data using CalDav and CardDav might make it usable from OSX, but I haven't had time to investigate that in any detail.
ZKSforce is the Cocoa library i wrote to make it easier to access the Salesforce.com API from Cocoa / Objective-C. I just posted a new version that uses the Salesforce.com v19 API, and has switched out its use of NSXML & NSCalendarDate with libxml & NSDate and so is now compatible with both OSX and iPhone based projects. (iPhone OS 3.2 and up should be good).
The Applescript Connector for Salesforce.com allows you to write applescript that can interact with the salesforce.com API, login, create, update & delete data, run queries, retrieve your scherma's metadata all from Applescript. Now you can more easily integrate Salesforce.com with your OSX desktop and applications.
I updated the Quicksilver plugin for Salesforce.com to support Chatter, you can easily post status updates, URLs & Files to Chatter now from Quicksilver.
There's a minor revision to Trapdoor that adds Google Chrome to the list of available browsers.
SoqlX was updated to support the Salesforce.com v18 API, so that you can do aggregate queries etc, it also now tries much harder to preserve the field ordering in the table from the query.
I released an updated SoqlX a couple of weeks back, it has a number of tweaks, exposing relationship names to make building SOQL-R queries easier, and the filtering object/field list I discussed earlier. And I just posted an updated version of SFFS, the file extension information is now bundled into the filenames for those files that don't have it in the name directly (depending on how your documents got into salesforce to start with, they might have the extension separate to the name). Follow me on twitter to find out these things as they happen.
|Following on from the filtered object/field list discussion, seems like showing all the fields and highlighting the matching ones seems like the best bet (but filtering the list of objects based on the object name, or the object having a field matching the filter), expect to find this in the next release of SoqlX.|
|I've been thinking about adding a filter widget to the object/field list in SoqlX, right now i have so that the object list is filtered based on whether the object name or any of its fields match the filter criteria, but the actual list of fields for the object remains intact. (as shown on the left). Is that what you would find most useful? should it also filter the field list itself ? something else? (I also thought about leaving it with the full list of fields, but having it highlight the fields that match the filter). Ping me on twitter and let me know what you think.|
Everything you wanted to know about SoqlX but were afraid to ask.
Remember that SoqlX uses the API to connect to Salesforce, and so depending on how your admin configured it, you may need to use your api security token in addition to your password to login (just add the token to your password, so if your password is beerisnice and your security token is abv123, enter beerisniceabv123 as the password). getting a LOGIN_MUST_USE_SECURITY_TOKEN error means you most likely forgot to include your security token (search for security token in the salesforce.com online help for more info)
Let SoqlX store your login credentials on the keychain, you'll be much happier, next time you run soqlX it'll remember your username & password (and if you have multiple salesforce.com logins, tryout trapdoor)
To execute a SOQL query, type the SOQL query into the box at the top, click Query (or Query All), the results will appear in the table, or for count queries, in the bottom left hand corner.
SOQL-R is supported, so you can do both queries that access foreign key relationships (like accessing account from a contact), and also aggregate child queries (like select accounts, and the contacts for each account). Double click the magnifying glass to expand the 2nd query table at the bottom, showing the child rows for that particular parent row.
If you queried the Id column, then you can edit data inline, just double click the cell and type in your new value, when the cell looses focus, the reecord in salesforce will be updated. You can also check the deleted checkbox and hit the delete button to delete row(s). click the Delete column header to quickly toggle the checkbox on all rows.
|Using the Window menu, you can open launch the salesforce.com web application, for the user you're currently logged in as. You can also open the recent queries window, which'll show you the last 10 queries you've executed, double click a query to copy it to the SOQL query textbox. Watch the recent queries list animate the changes as you run new queries!.|
Use File -> Save Query Results to save the results of your current query as a CSV file.
Hit the schema button at the bottom right to switch to a graphical view of your schema, showing how objects are related.
Use the +/- widget inside each object to control the set of fields that appear (id + name field, all standard fields, all fields). Double click an object (or select from the list view) to make that the primary object of the view.
Right click on any object in the listview and pick 'generate schema report' to generate the schema report for that object, this contains the graphical schema view, along with a table detailing all the fields for the object, you can print or export to PDF the schema report.
Got questions, or suggestions for new features, catch me on twitter.
bah, forget 11, this baby goes all the way to 20!
But seriously, memory is dirt cheap right now, why short change yourself
I just posted the final Maildrop 2.0 build. You can download it from the project download page, or if you're already running Maildrop, just restart it, or pick check for updates to have it autoupdate.
Major new features include support for email attachments, the new buttonbar UI to replace the scripts menu, and the configurable search column for the 'What' search.
Maildrop 2.0 runs on Tiger and Leopard, I have some ideas for the next version, which may mean its Leopard only, why are you still on Tiger anyway?
Thanks to everyone who tried out the beta builds and provided feedback.
I did further battle with the AppleScript ninja's and won, the new beta version of Maildrop includes support for attachments, for create case, all the attachments on the email are automatically added to the case (there's a pref to turn this off). For add Email, the attachments are listed with size and name, and you can choose which to upload, and which record they should be associated with. Download beta 4 and give it whirl. Feedback welcome.
I've been working on a 2.0 version of Maildrop, one of the pain points of the current version, especially for users new to Mac is the use of the scripts menu to trigger the maildrop actions. rather than interacting with the Maildrop application directly, so I've been working on an alternative approach. I came up with this, its a small button bar window that will hover above Mail or Entourage.
In order for it to not get in the way, when neither Mail or Entourage are the active app it will go to the back of the window list (like a panel window, except its in a different application). In addition the button bar shows which set mail client is active for maildrop, and will automatically switch between Mail and Entourage based on the active app (for people unluckly enough to have to use both).
There's also some additions to the Add Email dialog, now there's an additional column in the "related to what" results, this by default will show the case subject field for case records, you can edit this mapping, and add a additional field for each object type by right clicking on the search results table and selecting configure search columns
The config sheet for this will appear, for each object type, you can select a field from the drop down list.
There are a number of other fixes and tweaks (closing the add email dialog with the window chrome doesn't leave the app in the modal state anymore), login errors are shown better, etc. One feature I'd like to get in before the final 2.0 release is to support attachments.
Finally, a few tips for Maildrop, these apply to the current 1.5 release as well,
- on either of the search boxes pressing enter will perform the search, no need to switch to the mouse to click the search button.
- the "related to who" search is done automatically when the add email dialog opens, that's why the "related to what" search field has the first focus.
- If you create a new lead or contact in the related to who section, it should be automatically selected for you.
- If the "Type" field on Task is available to the user, Maildrop will automatically populate it with the value Email (check the fields FLS settings for this)
Download the current Maildrop 2.0 beta and give it a whirl.