We are closing in on the next WorkZone release. In a week we will host the annual customer seminar. It is time for an update of what to expect for the OData part of the WorkZone product suite.
As we haven’t finalized the release yet, there could be changes in the final release compared to information given here.
- The QueryBuilder (delivered as part of our OData provider) has been thru a major UI refresh. We now include more user friendly labels for the system names making it easier to find what you are looking for in our rather big model. Information about data types and lengths are provided as placeholder texts on input fields. Results can be paged (we now have a Next button). The results are now placed in a more readable table structure with inlined expanded data. A new color scheme has been applied making it easier to distinguish between single (blue) and multi (yellow) navigation properties. Columns can be resized and reordered. Links are included on ID properties of selected entity types enabling you to directly open WorkZone Client and show the selected Case, Document or Contact. Document contents are likewise directly accessible from a link on the SuggestedFileName of the Document entity. Queries can be stored and reused in WorkZone Client, WorkZone Explorer and WorkZone Mobile. Saved OData QueryBuilder queries can now be reopened and edited directly in QueryBuilder or from WorkZone Client. The reference model documentation available from within our QueryBuilder now opens faster, looks prettier and automatically navigates to the entity chosen in the QueryBuilder. Happy 2018 QueryBuild’ing.
- I have submitted a couple of changes to Microsoft’s OData client framework that they included in their WCF Data Service Client release 5.8.2 and onwards. The most interesting one is the ability to have the WCF Data Services (OData) Client framework to handle null propagation check automatically. By setting DataServiceContext.AutoNullPropagation = true, you can now avoid doing explicit null checks in your C# linq select expression. The other submitted changes relates to fixing various performance issues in the WCF DS Client. The updated Microsoft framework can also be used (with the same benefits) together with earlier versions of WorkZone.
- We now support CORS on our OData service (requires configuration of allowed origins). By configuring this you would be able to securely fetch WorkZone data from other origins – like a SharePoint Intranet Portal.
- SaveChanges: $batch support for independent updates (SaveChangesOptions.BatchWithIndependentUpdates). This will submit multiple creates, updates, deletes and gets in a single batch’ed request, but instructing the server to treat these as individual transactions.
- Support for OData date functions year(), month() and day() functions as part of a filter expression enabling you to do queries like $filter=month(Created) eq 12 for finding entries that were created in a December month regardless of the year.
- The Custom Property feature we included in the 2017 release has been simplified on the OData part. Custom Properties are now exposed as _Value and _Summary properties directly on the entity where they belong. You no longer have to expand your way to get to their values. This change is backwards compatible – if you have existing code that reference and manipulate them the “old” way – it will still work as always.
- All UserKey, Summary and _Summary properties can now be used in the $filter part of a query.
- The service is now more immune to model changes in save operations.
We have removed around 2000 redundant properties from our OData metadata model. We had some redundancy in our properties (like – there were multiple navigation paths to get from a Record to its File or Summary properties that would never have any contents), these redundant and always null properties are now removed from the metadata model. The OData server backend still knows about them so any existing javascript and .net based client code should run just fine without needing to change anything. If you at some point decide to update an existing .net proxy/service reference you could experience compiler errors if your code is referencing one of the now removed redundant properties, you can either fix these errors in your code rewriting it to use the preferred property instead, our you can use our new /OData/2017/ endpoint that is identical to the standard endpoint except that all properties are still available in the metadata model. The good part of this change is that it now should be a lot easier to find what you are looking for in the model.Reverted. See 17.- Performance of expand a collection/multi property has been optimized. Prior to WorkZone 2018 a separate query was generated for each main entry per collection/multi expand path. In WorkZone 2018 a single query is generated on the server selecting everything at once. Our test case shows a performance gain of more than a factor 60 in these cases (the actual number depends on the actual query and data present).
- Single character wildcard ‘?‘ can now be used as search criteria on non free text based properties.
- Support getting an entity prefilled with default values returned from server. You can trigger this in a query by doing $top=-1.
- Advanced: You can now disable 2 automatic performance optimizations from an OData client: Disable Oracle Hints and Disable Inline Select (of expanded collections/multis).
- A new custom header FixedPageSize can be set to true to prevent the server to increase the page size for each page request and $skiptoken.
- A new demo showcase application (unsupported beta client) is included called Flex. It is a simple html5 application showcasing how a full functional but very simple client build on OData could look. Find it on your workzone host at http(s)://[HOST]/OData/Flex/
- Last but not least – good news for our OData Service… WorkZone Client and WorkZone PDF have now adopted OData completely. They now runs on the best standard data http protocol – OData. Welcome to both of them.
- We include a new OData endpoint V3 (found at http(s)://[host]/OData/V3/). The QueryBuilder will default to this endpoint. The V3 endpoint removes around 2000 redundant properties from our OData metadata model. We had some redundancy in our properties (like – there were multiple navigation paths to get from a Record to its File and Summary properties that would never have any contents). These redundant or always null properties are now removed from the metadata model at the V3 endpoint. We recommend that all new code targets this new V3 endpoint. We encourage existing code be rewritten to target the new V3 endpoint. The good part of the V3 endpoint is that it should be a lot easier to find what you are looking for in our rather large model.