The latest v3.6 release of the FuseIT SFDC Explorer is out and contains a couple of new features around Apex Debug logs.
Aaaaaannnd... because I got distracted before publishing this post, 3.7 is also out. So it's now a twofer release post.
Improvements to log parsing
Carrying on from the previous release, I've made a number of modifications to the debug log viewer.
All the calculations for duration's are now done of the underlying nanosecond ticks. This helps prevent compounding errors due to the lack of definition in C# Timespans.
The improved duration calculation is particularly important for the new grouping functionality. Take the two examples below. With the standard log you can get 200 CODE_UNIT_STARTED events for the validation of each record in a transaction (plus the corresponding 200 CODE_UNIT_FINISHED events). With the new "Group Recurring Events" button in the tool bar any repeating events of the same type will be collapsed into a single node with a summary.
Before
After
While still on the topic of the Apex Log Tree View, DML operations now have a basic icons to indicate which variant of Insert, Update, Upsert, or Delete operation they are. Trigger, Validation, and Workflow have consistent color coding between the Tree View and the Timeline.
Auto build a Metadata package
There is a new option on the Metadata Deploy tab under "Deploy Selected Files" called "Compare File Hashes". As per the name, it will do 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.
Colored logging
Both the Metadata Deployment results and test method error results now include some basic color.
Salesforce DX CLI integration
If you have the Salesforce DX CLI installed (and in the path) you can use it to manage org logins. It might take a moment after pressing "Refresh Orgs" for the list to come back. Once it does, just select an org and press login.
Other changes 3.6
- Log Tree view. Color code Trigger, Validation, and Workflow events. Open debug log from File. Toggle Timeline and Treeview display.
- Highlight FLOW_ELEMENT_ERROR messages in the log.
- Handle log highlighting for Fine, Finer, and Finest logging levels. Provide links for ids for the active org.
- Optionally display scale on the log. Highlight VALIDATION_FAIL events.
- Highlight Exception and skipped/maxlog events in the Log Timeline.
- When parsing a log, identify the log levels applied (if present) in the footer.
- Attempt to determine if an ApexClass contains tests. Use this to drive direct running tests cases from the class.
- Improve performance of building the EntityTree from sObject describe results. Especially for orgs with a large number of custom objects and settings.
Other changes 3.7
- Add optional allowExistingSObjectsWithoutId="true" to the binding configuration element to allow sObjects to be created with a null Id. Typically this isn't allowed as the ID is used to control insert/update operations and to identify relationship types. This setting can be used for more basic SOQL queries where the results won't be subsequently used for DML.
- Highlight CALLOUT_REQUESTs in the timeline as they often take up large chunks of time.
- Fix for updating available metadata types with Session change.
- Improve SessionId validation pre login
- When exporting results, give the user the choice of folder to export to.
- Handle SOQL Aggregate Results that return only a single value
- Improve IDEWorkspace integration. Allow for switching of workspaces.
- Wsdl2Apex: Handle case where the Schema TargetNamespace is missing
- Perform Metadata Deploy Hash on Apex Pages. Option to refresh local metadata from Server.