FuseIT SFDC Explorer
SALESFORCE UTILITY
A freeware tool for Salesforce and Microsoft developers and administrators. We created the FuseIT SFDC Explorer while building our S4S (CMS to Salesforce) connector and found it so useful we made it a free download. The FuseIT SFDC Explorer application runs on Microsoft Windows only.
The Explorer includes a code generation tool that uses a T4 template to create strongly typed C#.NET classes (with associated service and data source classes) from custom and standard Salesforce objects.
How can I use the SFDC Explorer?
The tool provides a number of functions built around the Salesforce Partner, Tooling, and Metadata APIs e.g.
- Login to Salesforce using credentials from a Partner API-enabled user
- Create and run SOQL queries
- Explore the Salesforce database schema
- Find Salesforce entities
- Identify lookup and master-detail relationships
- Run Apex tests via a range of modes
- Run our version of WSDL2Apex to generate Apex classes (with test methods) from a WSDL
- Parse and visualize Apex Debug logs
- Queries Salesforce for the metadata dependency records
- Compare schema elements between two different orgs
Select your Tabs
To use the FuseIT SFDC Explorer, first login with the credentials of a Salesforce API user. See the help documentation for further details.
The Explorer has many features. To help you focus on the applicable ones go to the Home Tab to select the features you frequently use. You can also use the Tabs menu to toggle the visibility of features.
We regularly add new features so be sure to regularly download the latest version of the Explorer from the Help tab.
SOQL Queries
Run Salesforce SOQL queries with the query builder. The results can be exported to a CSV (Excel) or JSON file or to the clipboard by clicking the table icon at the bottom of the results pane.
Fields
- Entry field: Canvas for writing the query. You can also drag an entity in from the Database Schema section
Buttons
- Query: Executes the query against Salesforce
- Explain Query Plan: Returns the Query Plan that determines how Salesforce performs the query.
- Recent: Load recent queries onto the canvas
- Tooling API: Select to run the SOQL query against the Tooling API rather than the Partner API
- Clear: Clears the current SOQL query and any results.
- Save: Asks you to name the query then saves it for future use
- View All: This shows a screen with a list of saved queries and presents an opportunity to open one
Find Entity
This tab lets you find and view the entity fields belonging to any Salesforce ID.
Fields
- Entity ID: The Salesforce entity sought. This is typically the 15-digit unique parameter seen in the URL extension when viewing the entity in Salesforce
- Case Safe ID: The 15-character Salesforce ID converted to the 18-character equivalent
- Globe Image: Open a browser window in Salesforce to the entity
- Magnifier Image: Show the SOQL query that accesses the entity
- Output Field: Details about the selected entity
Apex Tests Queued
Shows the currently queued tests running asynchronously.
- Find Recent Test Runs: Finds recent test runs for selection to display the outcome.
- CometD: Enable CometD for long polling to monitor the progress of test runs.
- Check Status: Checks the status of the tests within the current job and displays results below.
- Get Results: Gets the results of all tests in the run.
- Open Log: Find and open the applicable Apex Debug log for the test run.
- Run Selected Tests: After a test run you can reselect test classes or individual methods to run again
- Test Run Job Id: The Apex Job ID of the current job.
Apex Logs
Lets users view the Apex logs for the Salesforce instance. The logs can be filtered by ticking the statement types in the Apex Log box in the bottom-left section.
Buttons
- Open Log: Opens the selected log
- Logging Levels: Alter the current logging levels that Salesforce is capturing
- Capture Trace: Enable a TraceFlag in Salesforce to start capturing debug logs
- CometD: Use long polling to monitor Salesforce for new debug logs
- Refresh: Gets the latest list of logs from Salesforce
- Show logs for all users: Exposes all logs
- Clear: Clears the list of logs currently visible
- Reset: Resets the display of logs that the Clear button hid
- Delete all Apex logs: Deletes every Apex log that is accessible via the API. Even those that aren't currently displayed
The display has several controls for filtering and parsing the debug log content.
Data Exports
Salesforce Data Export files (Setup > Salesforce > Data > Data Export) need to be manually downloaded to a local server. Not part of the FuseIT SFDC Explorer, the FuseIT Downloader is a paid Microsoft application that automates the downloads. A friendly GUI makes it easy to configure the automation without technical expertise. Some features include:
- Unattended Downloads: Automatic update and download operations without scheduled tasks
- Download Resume: If the download fails the app will keep retrying the download from the point it failed
- Increased Reliability: The application is made more robust by using Windows background transfer
- Integrated Scheduling: There is no need to use an external application to perform the scheduled download
Anonymous Apex
From this tab, users can run apex statements directly against the Salesforce org. The Apex debug log output of these statements is also displayed.
Buttons
- Highlighted Only: Toggle execution of highlighted lines only or the complete script.
- Use Tooling API: Toggle to execute in the Tooling API or Partner API contexts.
- Save: Save to .apex file.
- Open: Import an existing .apex file.
- IDE Workspaces: Options for persisting the current script within a Salesforce IDEWorkspace. These are also accessible via the Developer Console
Relationships
Use this tab to quickly view the relationships between entities. First, select an entity from the Database Schema section on the left.
On the right, the top panel shows the master-detail relationships (where the master record controls certain behaviors of the detail and sub-detail record). The lookup relations associated with the entity are shown in the bottom panel.
Fields
- Master Detail Relationships: Shows any related parent-child relationships where a master object controls behaviors of the detail object.
- Lookup Relationships: Shows any related lookup relationships where another object is optionally connected to selected object.
Code Generation (T4)
From this tab, users can generate strongly typed C# classes that represent Salesforce entities.
Fields
- Selected Entities: Drag one or more entities in from the Database Schema on the left is used to populate this field
- Namespace Prefix: Enter the required namespace for the generated classes require.
- Save Path: The local path for the .cs files.
- Generate: Create the strongly typed C# classes
WSDL Parser and Apex Generator (WSDL2Apex)
The WSDL to Apex control helps developers deal with many of the problems faced when generating Apex classes from a WSDL using Salesforce’s WSDL2Apex tool.
The parser lets developers point at the required WSDL, select only the web service methods needed, generate the corresponding Apex classes, choose to also generate test classes, and then publish the classes directly into a Salesforce Org via the Tooling API.
WSDL Parsing Features
WDSL parsing is particularly challenging as the published interfaces greatly vary. Over the last 10 years, the parser has been improved based on user feedback. The WSDL parsing features in the FuseIT SFDC Explorer are:
- Import a WSDL from URL or local file.
- Supports multiple Port, Binding and PortType in the WSDL (calls SOAP based web service at the moment).
- Support for complex types that extend from a base class <xsd:extension base="tns:Sample">
- Support for <wsdl:import> which will import the Service Description (e.g. Bindings) from another location.
- Support for <xsd:import> and <xsd:include> which will import a WSDL schema from another location.
- Support for <xsd:any> schema element, and converted to "List<DOM.XmlNode>" type in Apex.
- Support for <xsd:choice> elements.
- Support <xsd:attribute> elements.
- Support for nested Complex types in a sequence.
- Support for nested sequence in a sequence.
- Support for <xsd:all> element to generate Apex class members and apex method parameters.
- Support for <xs:simpleContent> elements.
- User-defined class names for each WSDL namespace.
- Option to replace already existing Apex classes in Salesforce.
- Ability to select the Apex methods that should be generated. A description of input and output parameters is also provided.
- Response and Request Apex classes are generated only for the methods included. This reduces the code written for testing Web Service callouts.
- Apex method filter by name or by CSV (Comma Separated Values.)
- Warning comments are added to the generated Apex code if WSDL elements are skipped.
- Syntax highlighter for generated Apex classes.
- Option available to generate web service callout test and mock classes for Apex classes providing more than 75% code coverage.
- HTTP mock class for testing will also be generated if Apex methods with HTTP calls are generated.
- Deploy generated Apex and test classes all at once or one by one.
- Resolves typical code generation errors produced by Salesforce.
- Option available to generate HTTP calls in addition to SOAP calls in Apex methods.
WSDL Parsing Errors
The FuseIT WSDL to Apex utility resolves a number of error messages described by the "Error parsing WSDL with Salesforce Wsdl2Apex" message.
- Error: Failed to parse wsdl: Found more than one wsdl:binding. WSDL with multiple binding not supported
- Error: Failed to parse wsdl: Found more than one wsdl:portType. WSDL with multiple portType not supported
- Failed to parse wsdl: Failed to parse WSDL: Unable to find binding
- Error: Failed to parse wsdl: Found schema import. External schema import not supported
- Apex Generation Failed Unable to find schema for element
- Error: Failed to parse wsdl: type not specified for attribute
- Apex Generation Failed: No type specified for element
- Error: need to modify WSDL with import tags or include tags
- Enterprise wsdl error: Unsupported schema type: {http://www.w3.org/2001/XMLSchema}anyType
Code Coverage
This tab allows you to view the code coverage of Salesforce classes.
The Percent column is color-coded to indicate if the minimum 75% coverage for the class has been met and the individual percentage shown. On the top row, the org-wide coverage is shown.
Double-clicking a row will open the class and clicking the green double arrow to the right will attempt to find all the test cases that contribute to the coverage of that class. Then it queues those tests up to run.
Apex Classes
This tab is similar to the Code Coverage but the Apex Classes tab provides the ability to view, edit, and deploy multiple classes without jumping out of the Explorer and into your preferred IDE.
Metadata Retrieve
From this tab, users can access Salesforce metadata. Metadata defines the schema of the Salesforce instance and includes the entities, fields, config, page layouts, etc,
Metadata can be imported, modified, or edited using the Salesforce Metadata API.
The retrieval dataset can be large so users should try to narrow down their retrieval selections.
Metadata Deploy
This tab assists users to build and deploy a Metadata package.
There are granular options to deploy from a file, several files, or a nominated directory.
Once the deployment files have been selected, the Compare File Hash selection initiates a CRC32 diff of the body of Apex classes, triggers, and Visualforce pages between the local file system and the connected Salesforce org. If anything is different it gets added to the current package ready for deployment. If it turns out the local file is the one that should be updated there is a context menu option to update the local file.
Metadata Dependencies
This tab queries Salesforce for the Metadata dependency records.
There is also the capability of graphing the relationships using tools like Gephi. Start with a single ID against "Where is it used" and then use the context menus to create a small dataset.
Diff Orgs
This tab allows users to compare schema elements between the current Salesforce org (the Source org) and a second Target org.
After the two orgs have been chosen the metadata is retrieved from both orgs and placed into the nominated folders where they can be compared using third-party tools.
Event Logs
This tab is useful for quickly checking the Salesforce event logs.
The types of events are displayed in the upper panel. Selecting an event type will cause all events of this type to be displayed in the lower panel. The data can then be exported in csv format.
Individual columns are sortable making it easy to find the event you are looking for.
Reports
This tab lets users execute a Salesforce report from inside the Explorer.
First, use the refresh button to load any reports that have been recently executed. Clicking on the Id link will run the report in the lower panel.
As expected, the report can also be exported as a .csv file and used with the likes of Excel
How Does FuseIT SFDC Explorer Work?
Most FuseIT SFDC Explorer features use our G4S module to transact information with Salesforce. G4S is the engine that drives many of our Salesforce integration products including S4S and T4S. By developing FuseIT SFDC Explorer in parallel with S4S and T4S we've been able to enhance both products.
FuseIT SFDC Explorer General Use License
Please download the End User License Agreement EULA to view our terms of use.
Website integration with dual-mode personalization
The ultimate way to support your sales team.