- Fixed an issue where in the case of the NavigationPropteryName attributes being null in the relationship metadata, the generated definition file was not valid typescript code.
- Updated .NET framwork to 4.6.2 in order to fix issue with connecting to Dynamics 9.0
- REST API interfaces are now sorted
- Reverted the name change after a more elegant fix was proposed, in which the user uses the namespace feature of XDT.
- The WebEntities interface has been split up, as to comply with standards made in Typescript 2.4
- As a fix for clashing names with the standard Typescript library in 2.4-2.6, all entity interfaces have been postfixed with "XDT" - this is a breaking change.
- XrmQuery now handles additional cases where Guid parentheses can occur.
- Views, LCIDs and webresource images are now properly generated based on generation settings instead of rawstate.
- Increased support for CRM 9.0.
- Header and footer controls will no longer be generated when using CRM 2011.
- Two Options formatted as Lists now get the proper type boolean instead of number.
- Made XrmQuery automatically remove Guid parenthesis, if they are there.
- Forms with duplicate names are named starting from 1
- Forms with duplicate names are ordered by their guid, to ensure a deterministic order
- Duplicate names in forms are now allowed
- Fixed issue with updating a datetime or date only field using XrmQuery
- All functionality in this release is only for CRM version 8.2 and above
- A new argument, "views", has been added. When set, all Views in the loaded solutions will be generated and put into the supplied namespace.
- The available languages installed in CRM are now retrieved and useable as an enum called LCID.
- The image web resources for the loaded solutions are now retrieved and useable as a union type called WebResourceImage.
- A helper function is now available for custom view icons and tooltips introduced in CRM 8.2.
- A new argument, "useDeprecated", has been added that toggles whether to include or exclude deprecated functionality.
- The following functions have been moved into deprecation extensions due to the impending 9.0 release:
- Xrm.Page.context: getQueryStringParameters, getTimeZoneOffsetMinutes, getUserId, getUserLcid, getUserName, getUserRoles, getIsAutoSaveEnabled, getOrgLcid, getOrgUniqueName
- addOnKeyPress removeOnKeyPress, showAutoComplete, hideAutoComplete
- Xrm.Utility: alertDialog, confirmDialog, isActivityType, openEntityForm, openQuickCreate, openWebResource
- isOutlookClient() and isOutlookOnline() now correctly appears when using CRM 2011
- Xrm.Page.ui.process and OptionSetControl.getOptions() which where introduced in CRM 2015, no longer appears in previous versions
- Xrm.Page.data.process which where introduced in CRM 2016, no longer appears in previous versions
- Additonal form programming methods introduced in CRM 2013 as well as some introduced in CRM 2015, no longer appear when using CRM 2011
- Fixed a bug when generating typings for 2011
- Form programming methods introduced in CRM 2013 no longer appear when using CRM 2011
- Updated XrmQuery to be compatible with TypeScript 2.4.1
- Added new methods to grid control which are found in newer versions (i.e.
getAttributes()) - Moved
setDisabledandgetDisabledfrom theBaseControlinterface to theControlinterface - Made an
AnyControltype which collections of controls use instead of theBaseControltype
- Fix: Promise polyfill was not being included properly in the new gulp compilation setup
- Bind variables are now generated based on N:1 relationships, instead of Lookup attributes
- Fixed filtering and ordering by entity references in XrmQuery for the Web API
- Added some of the new Dynamics 365 form functionality
SDK.REST.retrieveRecordnow allowsnullvalues in the select and expand parametersdoubleattributes are now typed asnumbers instead ofstrings for both endpointsdecimalattributes are now typed asnumbers in the WebAPI, and asstrings in the old REST endpoint- Fixed generated output when targeting all entities
- Fixed bug when trying to access elements in the
Xrm-namespace, while usingdeclare var Xrm: Xrm<...> - Replaced all returns of the
Empty...interfaces with theundefinedtype
- Fixed creation of typings directories
- Removed NuGet dependencies and added necessary assemblies directly as files -- making it easy to use the tool straight from NuGet
- New argument
oneFilemakes XrmDefinitelyTyped concatenate all the dynamic parts of the typings into one filecontext.d.ts - Automatic generation of config file, if one does not exist and no arguments are passed to executable
- Fixed automatic CRM version check
- General clean-up of code and structure
ResultandFormattedResultinterfaces were incorrectly initialized for retrieve queries- Removed string type as a valid parameter in certain function definitions of
xrm.d.ts
- Made
booleana valid filter type in the Web API
- Fix:
Filter.substringofchanged to beFilter.containsin the Web API - Added matching generic return type on
promise()of Query - Helper function
promiseRequestmethod now also correctly returns the promise
- Promises now works properly in all cases
- Generation of lib and declaration files is now properly skipped if they are not specified in the configuration
- Fix: Intersection entity interfaces were not generated properly for the Web API (no entity set name)
- More robust usage of
GetGlobalContext(), since CRM will bug out in certain cases when it is executed
- The Web API is now supported
- Generation of REST and Web API entity interfaces is now opt-in, and they can be namespaced
- Generation of
Forminterfaces can now be skipped - The
XrmQueryfunctionality for the REST endpoint has been moved intoXrmQuery.Rest - The filter functionality for the REST endpoint has been moved into
Filter.Rest base.d.tshas been renamed toxrm.d.ts- Interfaces from the
IPagenamespace have been moved to theXrmnamespace IPageentity interfaces have been deprecated in favor of intersection forms- It can now generate the context from a local metadata file via the new
save- andload-arguments - JavaScript library files (XrmQuery) can now be automatically updated when generating the context with the
jsLib-argument
- Better handling of tabs and sections when intersecting forms
- Added union types throughout the generated declaration files to make it usable with TypeScript's
strictNullChecks. - XrmQuery update (new javascript code):
- Added
getAllfunction to RetrieveMultipleRecords which concatenates all page results and serves it to the success callback. - Changed
executefunction of RetrieveMultipleRecords to have obligatoryerrorCallbackandonCompletehandlers to promote proper usage of paged results.
- Added
- Added the possibility of generating special declaration files, which are intersections of multiple forms.
- Fix: Removed the newly version-controlled function
addTabStateChangefrom the base declaration file
- Split
base.d.tsinto more parts - XrmDefinitelyTyped now retrieves the version from the targeted CRM and modifies the resulting
base.d.tsto fit that version- Made AddTabStateChange function for specific CRM versions (Pre-CRM2016:
add_tabStateChange, Post-CRM2016:addTabStateChange) - Made CRM 2015 Update 1 form functionality only available, when CRM is that version or higher
- Made AddTabStateChange function for specific CRM versions (Pre-CRM2016:
- Added more specific types when getting controls on an attribute via
<Attribute>.controls - Changed
IPagemodule to be a namespace instead - Made
IPage.ExecutionContextgeneric, such that it contains the type of the event source
- Removed current implementation for supporting previous TypeScript versions
- Made use of string literal types for certain functions in base.d.ts
- Better error messages when encountering AggregateExceptions
- XrmQuery update (new javascript code):
- Added
getFirstfunction to RetrieveMultipleRecords
- Added
- Added support for entities and option sets sharing the same name
- XrmQuery updates (new javascript code):
- Fixed attribute select in expanded entities
- Added new filter functions to make it easier to make chained conjunctions:
Filter.ors,Filter.ands - Added new functions to RetrieveMultiple that make it possible to extend the current filter:
.orFilteror.andFilter
- Fixed variable name:
Xrm.Page.ui.FormSelector->Xrm.Page.ui.formSelector
- Fixed bug in XrmQuery when using IE in which it would fail to execute in certain cases
- Changed
getInitialValue()of option-sets to also return the corresponding enum value
- Changed the
Optioninterface to be generic based on the type of the parent attribute/control - Updated base.d.ts with more types to allow the use of
noImplicitAnyin the TypeScript compiler - Added a few missing functions to base.d.ts
- Added CRM version check for BPF fields in order to support CRM2011
- Added "/useconfig" argument, see usage for more information
- Renamed "/config" argument to "/genconfig"
- Changed exit-code for the executable to be 1 instead of 0, when it encounters an exception
- Added support for the new CRM 2016 form types
- Added version print when using the executable
- Added "/config" argument which generates a dummy configuration file to use
- Improved retrieval of CRM metadata
- Added CRM Online 2015 Update 1 functionality to subgrid controls
- Added filtering of which entities should be included in the context, see usage for more information.
- Fixed a missing generic type declaration on certain controls of type
OptionSetControl - Reduced version requirements to support backward-compatibility:
- Reduced requirement of the dependency
Microsoft.CrmSdk.CoreAssembliesto 5.0.18 or greater - Reduced used .NET Framework to version 4.5.2
- Reduced requirement of the dependency
- Added possibility of using
.exe.configfile to pass arguments - Changed
IPage.Controlto be generic, depending on the attribute it contains - Added
IPage.BaseControlas a superclass toIPage.Controlthat is non-generic and has nogetAttribute()function. - Added
IPage.StringControlandIPage.NumberControlas shorthand names for their corresponding attribute controls - Updated entity IPage interfaces with new control types
- Added the attributes and controls that come along when
addressX_compositeis on a form - Added interface
IPage.LookupAttributeas a shorthand name forIPage.Attribute<IPage.EntityReference[]>
- Code refactoring in preparation for open-sourcing the project
- Added numbering to controls when there are multiple of the same field on a form
- Added
getAttributeto form controls
- Changed to use more robust Date object check in XrmQuery (updated javascript files)
- Updated to use Microsoft.CrmSdk.CoreAssemblies 7.1.1
- Made XrmQuery and the SDK entities use enums instead of just numbers
- Altered the type when selecting XrmQuery
expandattributes
- Added support for using
Dateobjects when filtering in XrmQuery (updated javascript files) - Added execution context object to the handler passed to
addOnChange
- Now generates declaration files for the newest TypeScript version
- New argument
tsversionto specify which TypeScript version it should generate files for (newest version is default) - All word characters are now allowed in declaration names
- Added check for empty string declarations, outputting
_Unknowninstead - Eliminated duplicates of global enums and removed the obsolete file
optionsets.d.ts - Fixed escape of string literals that contained single/double quotes
- Fixed an incorrectly named function.
- Added interfaces for the
Xrm.Page.data.processandXrm.Page.ui.processobjects. - Changed an interface for the XrmQuery
expandfunction.
- Fixed an incorrectly assigned interface
- New entity interfaces specifically for XrmQuery to ensure input correctness
- Updated
dg.xrmquery.jsanddg.xrmquery.min.js
- Added XrmQuery
- Changed to use .NET Framework 4.6
- Added Business Process Flow fields to forms
- Added more functionality to
addOnSaveon forms - Added missing functionality to
Xrm.Page.ui
- Updated to use Microsoft.CrmSdk.CoreAssemblies 7.1.0
- Added more functionality to lookup controls
GetContextnow throws an exception when called programatically and an error occurs
- Separated declarations for
SDK.Metadata.jsinto a new filemetadata.d.ts. - Added more specific declarations for the types gotten via Metadata calls
- Added install script for the NuGet package, which automatically copies the required DLLs into the same folder upon installation
- Fixed type of Money attributes sent and received through the REST API.
- Made the OptionSet attributes use the type of the actual corresponding
TypeScript enum instead of just the type
number - Fixed type of OptionSet attributes for
SDK.RESTcalls. - Fixed type of some TwoOption attributes for Form declaration files.
- Fixed bug when duplicates of the same field existed on a form.
- Introduced a new declaration file for each specific form.
Read more here.
- The previous IPage declaration files are still being generated in case they are necessary.
- Changes to
base.d.tsto comply with the new Form declaration files
- Added docs to most of the base functionality.
- Updated some attribute types to be more specific
- Added generic Xrm interface for different pages
- Added executable usage description
- Better executable error messages
- Added more specific types to some attributes
- Added support for
deleteRecord,associateRecordsanddisassociateRecords - Removed attributes from entities which were not available via OData
- Changed NuGet package structure and added batch script to copy necessary assemblies
- Initial public release