A major new release of SOQL Studio is now available. Version 2020.1 includes significant new functionality and minor bug fixes. As with all of our releases, this one continues our commitment to providing regular enhancements and fixes to SOQL Studio, many of which were customer suggestions, and staying current with Salesforce releases.
- Implemented support for the Tooling API which includes browsing the Tooling schema and running queries against Tooling objects
- Added Explain functionality for SOQL queries
- Upgraded to API v47 (Winter ‘20)
- Fixed an issue that prevented the view/edit in Salesforce menu options from being presented when right-clicking on an ID in the Results grid
By far the most significant enhancement in this release is the addition of support for the Tooling API. The addition of Tooling API support brings with it not only the ability to query tooling objects, but also the ability to run an Explain on your SOQL queries.
Salesforce first introduced SOQL Explain support as a beta feature in Spring ’14 but unfortunately visibility of this feature has been relatively low. We’ve not only added support for it to SOQL Studio, we put it up-front and center right next to the Execute button.
Running an Explain on a query is as easy as running the query itself– just click the Explain SOQL button and SOQL Studio will present the detailed execution plan(s) and plan notes in an Explain tab alongside the SOQL Query tab, similar to a Results tab.
Salesforce provides a detailed description of each of the fields returned in an Explain in the REST API Developer Guide’s Query resource topic . Note: Salesforce still considers Explain to be a beta feature. Not every object is supported by Explain, especially objects exposed by the Tooling API. If you run an Explain on a query that includes an unsupported object, Salesforce will return an “INVALID_TYPE” error.
One last thing to note, if you are working in a SOQL Editor that has multiple queries in it, you can highlight one and Explain just that query by clicking the dropdown arrow on the ‘Explain SOQL’ button and clicking ‘Explain Selected SOQL’.
Tooling API Support
The Tooling API exposes a host of configuration and programming objects not supported by the main SOAP or Rest APIs. The problem has been that there’s no good way to explore the Tooling API’s schema – until now. SOQL Studio now includes the Tooling API’s object schema along with an organization’s regular schema in the Organizations tool window so you can explore it in detail. It presented in its own unique folder so it’s clear that an object belongs to the Tooling API.
SOQL Studio supports the same functionality for Tooling objects as it does with any other object, provided it’s a valid operation for that object. You will see the full list of Tooling objects in the org and the list of fields that each object supports. You can view the properties of an object or any of the object’s fields. And of course, you can have SOQL Studio generate a browse query for any object that supports querying.
Running a query against a Tooling API object is as straight-forward as running a regular query, with one caveat – you must tell SOQL Studio that you want to run the query with the Tooling API. Once you have created your SOQL query, check the ‘Use Tooling API’ option in the Execution group of the ribbon’s Home tab and click the Execute button. If you had SOQL Studio generate the SOQL query, the option will be selected for you.
Results from a Tooling query look the same as results from a regular query. All features of the Results tab are available with Tooling query results including selection, copying, and exporting. But there’s one feature on the Results tab that unique to certain Tooling query results: Advanced Visualization of complexvalue data.
Complexvalue is a datatype used to store data that’s more object-like than discreet value. Because of this, we developed an interactive tree-style UI to enable you to quickly navigate data of this type. It’s available when the data format mode is set to “Windows”. When formatting in Native mode, the data is presented as it was sent by Salesforce, in JSON.
The Tooling API functionality is optional and can be enabled on the General tab of the Options dialog.
Current customers with an active maintenance contract are entitled to a free upgrade. Login to you account, go to Downloads & Licenses and click the “Request Upgrade” button. You’ll be emailed a new license for version 2020.1 and you can download the new package right from there.