rappen / fetchxmlbuilder Goto Github PK
View Code? Open in Web Editor NEWFetchXML Builder for XrmToolBox and Microsoft Dynamics 365 / CRM
Home Page: https://fetchxmlbuilder.com/
License: GNU General Public License v3.0
FetchXML Builder for XrmToolBox and Microsoft Dynamics 365 / CRM
Home Page: https://fetchxmlbuilder.com/
License: GNU General Public License v3.0
Open a new query by entering an OData query.
Not sure if you can do a runtime check of the installed vs. latest version from with the tab, but that would be helpful to ensure that I'm up-to-date with changes that you release.
At minimum, add a hyperlink to your github releases page in the 'about' menu to make it easy to compare versions while in the tool.
The list sorter method does only string comparison, which gives bad sorting for numeric values.
Fix it!
When MscrmTools/XrmToolBox#44 is solved, the Close-button can be removed from this plugin.
To support automatic builds, all dependencies must be included in the repo.
Add the option to display results of the executed fetch in a grid instead of just XML or JSON.
Add function to convert FetchXML to OData query string, when possible depending of the complexity of the FetchXML.
Create object that is serialized to file and reverse, like XTB does.
When the FXB "Open View" option is accessed the first time, FXB retrieves and caches a list of available entities/views.
If a new view is added to CRM, it won't show up in the list of available views until the Toolbox is closed / reopened (just closing/reopening the FXB tab is not enough)
If the connection is changed from one organization to another, the first organization's views will remain cached until the toolbox is closed and re-opened.
Partylist is an EntityCollection.
Display this in some nice way :)
MscrmTools/XrmToolBox#59 made github version checker generic.
Use it!
As per suggestion from @mscottsewell the list of existing links should be sorted to easier find the desired relationship.
Right click a cell in the result grid to get option to copy the value from the cell.
Add a user-friendly possibility to be able to in the FetchXml-builder specify that an attribute in the FetchXml query - when saved to CRM as a CWP feed - should be replaced with a specific CWP substitution parameter.
For example {cwpuser:contact_id}
in the cwpuser namespace, or {querystring:myQueryStringVariable}
in the querystring-namespace.
Example of a resulting FetchXml feed saved to CRM:
<fetch mapping="logical" version="1.0">
<entity name="cint_cwp_login">
<attribute name="cint_username" />
<attribute name="cint_cwp_loginid" />
<filter>
<condition attribute="cint_username" operator="eq" value="{cwpuser:name}" />
</filter>
</entity>
</fetch>
Another example:
<fetch mapping="logical" version="1.0">
<entity name="cint_cwp_login">
<attribute name="cint_username" />
<attribute name="cint_cwp_loginid" />
<filter>
<condition attribute="cint_username" operator="eq" value="{querystring:username}" />
</filter>
</entity>
</fetch>
MscrmTools/XrmToolBox#85 makes it possible to communicate between plugins.
Implement functionality to be able to call/initiate FXB and pass an initial fetch.
Implement functionality to send back designed fetch to the caller.
The outline is updated for every key stroke. Even just pressing and releasing the shift
key.
Change it so the outline is updated after actual change of the xml.
Might be a good idea to have namespace:
Cinteros.XrmToolbox.<pluginname>
for all XrmToolbox plugins from Cinteros.
Verify valid aggregations, e.g. Max(accountid) is not relevant, just like Sum(createdon).
If the Live XML Update window is open and XTB is minimized, the LiveXML is still visible.
Probably need a window event from main form to hook into.
@MscrmTools might that be possible?
The "Accounts : No Orders in Last 6 Months" view doesn't open correctly - (It's an out of the box view.)
I've tested with CRM2015 OnPremise and CRM2015 Online Beta and in both cases, attempting to open the view, the app throws an exception.
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Cinteros.Xrm.FetchXmlBuilder.FetchXmlBuilder.OpenView()
FXB Version 1.2015.3.13
If a condition refers to an entityreference (Lookup, Customer, Owner) it should be possible to look for records of the related entity to get a guid of the selected record into the condition value.
IGitHubPlugin
and IPayPalPlugin
.
Last used file is not loaded on startup, so saving and just loading the filename does not make sense.
With Spring '15 Update there is going to be a mismatch between OnPrem and Online and hence we should be checking if the fetch statement/condition is supported for the organisation version. There are new condition operators for Datetime and this is Online only at the moment.
Aggregate results can only be displayed as ResultXML.
Implement FetchExpression for aggregate queries to enable displaying results in grid.
It would be useful to be presented with a list of the available CWP Feeds in the system, when clicking "Open CWP Feed...", rather than having to enter the Feed ID.
During very first run when output type is not set, so trying execute query leads to notification message, asking to select desirable output type.
It confuses new user (as only very new users will receive such message) and makes them roam around to find needed option to set.
I think it's possible to stick to any output type
value (presumably first one) as default to not confuse new users.
Make it possible to execute query SQL Server style by hitting the F5 key.
The tool works really well for CRM 2015, but when I try to use it for CRM 2011, it gives me an error. I am trying to return all the accounts which have no contacts. The error states " 'Account' entity doesn't contain attribute with Name = 'contactid'. "
Is the tool meant to work with CRM 2011? Or am I doing something wrong?
It is possible to query "system" entities that does not really have an entity form. For example, plugin
, plugintype
, sdkmessageprocessingstep
and others. But by showing results of such a query in the GridResult will lead to ability user to double-click on the line and open website on the address that shows nothing except confusing error message that access is denied or entity does not exist.
Both this statements are not true.
I think it's much more correct to just remove this action (and tooltip that proposes to use this functionality) from the results on entities that could not be shown on web.
It would be pretty neat to be able to select the values for an OptionSet that is part of an 'in' condition from a list rather than having to type each option manually.
When using the QueryExpression C# code option to generate C# code from a FetchXml containing a linked entity expression, the target attribute of the AddLink method is set to an incorrect attribute. Consider the following FetchXml:
<fetch count="50" >
<entity name="cint_cwp_login" >
<link-entity name="contact" from="contactid" to="cint_contact_id" link-type="inner" />
</entity>
</fetch>
The following code is generated - and the third attribute to the AddLink-method is incorrect - contact. Should be contactid.
// Instantiate QueryExpression QEcint_cwp_login
var QEcint_cwp_login = new QueryExpression("cint_cwp_login");
// Add all columns to QEcint_cwp_login.ColumnSet
QEcint_cwp_login.ColumnSet.AllColumns = true;
// Add link-entity QEcint_cwp_login_contact
var QEcint_cwp_login_contact = QEcint_cwp_login.AddLink("contact", "cint_contact_id", "contact");
Screenshot:
It shall be possible to sort the results in the grid view by clicking column headers.
Make an option to show name of optionsetvalues and lookup records instead of numeric value and guid.
Should be optional.
Context menu of value-node shall enable the Delete command.
Horizontal scrolling is needed on GridView
query results with many columns. It is still possible to move view into the right and left, but the UI does not help to understand how many invisible columns left invisible.
When creating aggregate queries, all attributes returned have an Alias.
Adding the Order node then requires you to enter Alias instead of Attribte.
Create a dropdown list for existing aliases in the query to make it easier to know what to sort by.
Also disable Attribute field in this case, and disable Alias field in non-aggregating queries.
Create a page with all settings instead of having the Options-submenu growing out of control.
Live XML window may still be shown after closing the FXB plugin.
https://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.metadata.query.metadataqueryexpression(v=crm.7).aspx
Apparently a lot more efficient, according to @MscrmTools http://crmtipoftheday.com/2015/03/31/retrieve-only-metadata-you-need/
When I copy text from OneNote (2013) and pasting it into the Edit XML window, it's getting pasted as an image.
Most likely a function of the editor, hopefully you'll be able to change the paste event and tell it to grab the text content
For testing purposes you might want FXB to execute FetxhXML that was manually typed in the edit window, even if it contains attributes or elements that are not supported by FXB.
There should be an option to not regenerate the xml based on the tree outline when executing the query.
Trying to read attributes without ValidForRead will only generate error anyway...
If approved by user, collect usage statistics to improve usability of FXB.
When adding attributes to a query by using the "Add" -> "Attributes..." dialog, in would be nice to be able to filter attributes in the list using a freetext field. For example, writing "cint_" in the text field would show only the attributes with schema-name or Friendly Name beginning with "cint_".
The search should be case-insensitive.
Usage of wild-cards ("*") would be nice.
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.