Works well with Microsoft Dynamics CRM 2015-2016 and Microsoft Dynamics 365, online and onprem.
Written by Jonas Rapp, Stockholm, Sweden.
Investigate the Microsoft Dataverse Plugin Trace Log with easy filtering and display possibilities
Home Page: https://JonasR.app/PTV
License: GNU General Public License v3.0
Works well with Microsoft Dynamics CRM 2015-2016 and Microsoft Dynamics 365, online and onprem.
Written by Jonas Rapp, Stockholm, Sweden.
Implement usage statistics in the same way as FXB.
When filtering plugin and entity it would be great to be able to specify several names separated by commas.
Names should still be wildcardable.
Right click on a log record to open plugin statistics for that plugin class.
Or add an optional info panel with plugin stats automatically populated when navigating through the log records.
It would be great if it was possible to export plugin traces.
Display a view with all plugin statistics.
Somehow make it possible to select plugins and filter PTV by these.
It would be nice to be able to quickly search for a phrase in already selected log entries. It would nice to navigate to first matching record as you type, like some browsers does in "Find in page" function.
Related to #27
With this you can manually manipulate and query CRM for trace log records.
Sort Entity dropdown box alphabetically.
I think every developer has their own preference in text editors. So it would be nice to open log entry in that editor when we're double-clicking on log entry.
Enhance UI with http://dockpanelsuite.com/
Sometimes it's too many logs, so we need to specify exact time when something happened.
Is it possible to implement filtering by time in addition to date?
Export for further analysis in Excel or similar would be great.
Option to include message and exception.
There should be an option to display Message and Exception texts with scrollbars instead of word wrapped.
A button to reload date, plugin, message constraints.
Now that #42 is done and Stage is displayed, it would be nice to be able to filter on this attribute too.
Add filter like this:
Usually the name of the Step has more information than the name of the plugin class.
Show it in the trace log grid, easy now as #42 is implemented.
The columns in the list are not sizeable anymore.
They should be.
You don't always want to see all columns, and you don't want to have to drag their width down to not see them.
So an option to show/hide each column would be nice.
Currently the PluginClose is only issued when the single plugin is closed, but not when closing XTB.
So another event has to be used to always store settings.
Until XTB issues some event for all kinds of closing, the easiest way is to save each time Retrieve Logs is executed.
It should be possible to filter logs by entity name, including wildcards.
Add possibility to hide the Filter panel to maximize grid size.
please expose 'requestid' and 'correlationid' columns in the returned list - thx!
This plugin is not valid for older versions of CRM. Prior to 2015 OnLine, I guess.
For example, when I'm connecting to CRM 2013 I'm getting following exception, that actually makes sense for me as a developer, but looks too techy for normal user:
---------------------------
Load
---------------------------
Failed to load date constraints:
The entity with a name = 'plugintracelog' was not found in the MetadataCache.
---------------------------
OK
---------------------------
It's possible to dismiss that message and see plugin. Which will be completely unusable.
I think it would be better to inform user right away, that organization he tries to connect is not supported, since required entities are missing.
I'd like to be able to toggle trace-logging (all/exceptions only/none) from within the plugin, rather than having to go through the D365 UI
When I open the trace viewer against an on-prem connection that uses current credentials, I get the following errors. When I open the viewer against a different IFD org, I don't get the errors.
This started happening an update or two ago, but I don't recall if it was an update to the toolbox or the plugin when I started getting the errors.
Load
Failed to load entities:
The communication object, System.ServiceModel.Channels.HttpsChannelFactory`1+HttpsRequestChannel[System.ServiceModel.Channels.IRequestChannel], cannot be used for communication because it has been Aborted.
Load
Failed to load messages:
Cannot access a disposed object.Object name: 'System.ServiceModel.Channels.ServiceChannel'.
Load
Failed to load messages:
Cannot access a disposed object.Object name: 'System.ServiceModel.Channels.ServiceChannel'.
Load
Failed to load date constraints:
Cannot access a disposed object.Object name: 'System.ServiceModel.Security.TransportSecurityProtocol'.
Load
Failed to load date constraints:
AggregateQueryRecordLimit exceeded. Cannot perform this operation.
Having the possibility to save the selected filter makes it possible to distribute filters to colleagues, for collaboration during plugin trace investigation.
Currently you can right-click a log record to add the Correlation Id of the record to the filters.
This would be nice for entity, message and plugin too.
Step Name is probably a more interesting column than Plugin Name.
Add it to the view.
DataTable already contains column #entity
or similar, after connecting to a new org and changing connection for PTV.
When the XrmToolBox window is resized narrower and narrower (for example to fit on a portrait oriented screen with a pitiful 1080 x 1920 resolution), most of the items on the right side of the left-hand pane stay fixed in place, ultimately vanishing underneath the right-hand pane; the Retrieve button moves relative to the border, and goes underneath some items, and over others as it moves left.
Without stealing real estate from the right-hand pane, I'm not sure what the best solution is, and UX certainly isn't my area :-) But the attached is more compact, so would survive any sensible narrow-ness
Add possibility to filter by Operation: Plugin or Workflow Activity or All.
These are available if joining sdkmessageprocessingstep
on pluginstepid
.
<link-entity name="sdkmessageprocessingstep" from="sdkmessageprocessingstepid" to="pluginstepid" link-type="outer" alias="step" >
<attribute name="rank" />
<attribute name="stage" />
</link-entity>
Add the possibility to reset Plugin Statistics for All or Specific plugin type.
Open record in CRM when double-clicking line in grid view.
Reloading log records resets column widths and column order.
Please keep it :)
Being able to delete existing log records would really make debugging easier when you cannot see the trees for the forest.
Would be nice to be able to group traces by the context CorrelationId to see all plugins triggered in the execution process.
This should make it easier to identify if the a plugin is triggering multiple times in the same process.
It might be useful to be able to get the actual query that was composed by the filters when retrieving logs.
Exclamation sign does not seem to be recognized.
Probably some more problems too.
Related to #17.
Add possibility to only show steps with duration > x ms.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.