Comments (10)
Thanks @ClintWoods - now that I see this, I realize I have noticed the change too.
It definitely seems MS has pushed two changes here:
- Fully qualified assembly name is included in the
typename
column - If the execution throws an exception, nothing traced will be available in the messageblock, it can only be found at the end of the exception block.
Perhaps @JimDaly has any comments to this?
from plugintraceviewer.
That doesn't look right. I'm not so concerned about the TypeName value being more verbose. Should I be?
But the fact that traces aren't being written to the message block seems a serious issue.
I've alerted the dev team to check it out.
from plugintraceviewer.
But as always - Opening up a support case is the best first step for something like this.
from plugintraceviewer.
Can I open a support ticket to say "your change broke my tool"? 😉
The underlying issue here of making the typename more verbose is that the filtering possibilities allow for specifying several plugintypes (including * wildcards) separated by comma, and the new plugintypes returned include lots of commas within what used to be the fully qualified class name (the plugin type!) and now includes classname, assembly name, version, culture, token.
So the query performed by PTV is something like:
<fetch>
<entity name='plugintracelog' >
<attribute name='correlationid' />
<attribute name='performanceexecutionstarttime' />
<attribute name='operationtype' />
<attribute name='messagename' />
<attribute name='plugintracelogid' />
<attribute name='primaryentity' />
<attribute name='exceptiondetails' />
<attribute name='messageblock' />
<attribute name='performanceexecutionduration' />
<attribute name='createdon' />
<attribute name='typename' />
<attribute name='depth' />
<attribute name='mode' />
<attribute name='requestid' />
<filter type='and' >
<filter type='or' >
<condition attribute='typename' operator='eq' value='CRMK.xxxx.Synchronization.SetNextSyncTime' />
<condition attribute='typename' operator='eq' value='CRMK.xxxx.Synchronization' />
<condition attribute='typename' operator='eq' value='Version=1.0.0.32' />
<condition attribute='typename' operator='eq' value='Culture=neutral' />
<condition attribute='typename' operator='eq' value='PublicKeyToken=e7cab53c0186a699' />
</filter>
</filter>
<order attribute='performanceexecutionstarttime' descending='true' />
<order attribute='correlationid' descending='false' />
<order attribute='depth' descending='true' />
<link-entity name='sdkmessageprocessingstep' to='pluginstepid' from='sdkmessageprocessingstepid' link-type='outer' alias='step' >
<attribute name='name' />
<attribute name='rank' />
<attribute name='stage' />
</link-entity>
</entity>
</fetch>
...which of course will render 0 hits.
So it would be good to know if this is something temporary that sneaked out, or a deliberate change to stay this way. Might there possibly even be something to read about it somewhere...? (doubting that, since it is a very semi-internal change).
from plugintraceviewer.
Yes @JimDaly, the type name isn't even an annoyance IMO. I was just noting that there was a change and then the filter stopped working. This particular client of mine uses the tool extensively, so you can be proud of that @rappen! It's "production". LOL.
Just curious... wouldn't "begins with" work better in the Fetch? Thanks for jumping right into this. We appreciate it.
from plugintraceviewer.
@ClintWoods New release with new option to show FQN is now available with version 1.2021.1.1.
Feel free to get back with any comments / requests!
And yes, I am proud! 😉
The resulting fetchxml you see above is due to PTV thinks the user wants to filter by multiple different plugins - the comma in the FQN does that.... I'm now handling it in a better way, I think 😀
from plugintraceviewer.
@rappen Calling support to say 'you broke my tool' is perfectly legitimate to me.
We shouldn't push out changes like this without consideration and announcement. But isn't the additional data more useful?
Seems like you have adapted already?
The more concerning issue to me is that the data in the message block is missing. Devs tell me they found the problem and have Pushed a PR to fix. Still waiting to know when that will take effect. Thanks for letting me know.
from plugintraceviewer.
Thanks @JimDaly ! 🙏
Yes, I adapted PTV to handle this longer plugintype and pushed a new version.
from plugintraceviewer.
Hey @rappen, I don't think that quite did it. I updated the tool at the client site and got the same results.
from plugintraceviewer.
Hm... Curious about your step by step.
This is how I do: https://www.screencast.com/t/cfixCPceWs
If you make sure the Plugin filter field is empty, and then add filter by plugin, does it still show the FQN in the filter text box?
Note that the text in the filter box should be the "simple" class name (everything before the first comma) followed by an asterisk as wildcard.
Also is this checked or unchecked?
from plugintraceviewer.
Related Issues (20)
- Open PTV for integrations HOT 1
- New logs notification button doesn't work
- Plugin class incorrectly displayed HOT 1
- Auto hide Exception panel if there is no exception
- Repeatedly prompted to enter login credentials HOT 3
- The Quick Filter does not return all the results
- Add option to show Core actions trace HOT 1
- Extra filtering conditions HOT 4
- Possibity to only show the error message HOT 1
- XrmToolBox.PluginsStore, Version=1.2022.2.54 HOT 2
- Filtering by existing plugin names isn't working
- Option to remove the plugin class name from the Steps HOT 1
- Statistics don't seem to work
- Option to remove the entity name from the Steps
- Show UserId / InitiatingUserId
- Filter by UserId / InitiatingUserId
- Show filtering by attributes
- Exceptions with New Lines Breaks Matching HOT 1
- Quick stats of trace log
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from plugintraceviewer.