- Added support for synchronous execution of XrmQuery. Should be used sparingly. (@majakubowski)
- Fixed error where .ts file was included for XrmQuery
- Fixed error where .d.ts file was missing for XrmQuery
- Fixed error in typings when generating for versions below 9.
- Add the following query functions to XrmQuery;
In
,NotIn
,Above
,Under
,UnderOrEqual
,NotUnder
,EqualUserId
,NotEqualUserId
,EqualBusinessId
,NotEqualBusinessId
. - Changed several Xrm functions to return promises instead of Then for version 9 and above.
- Added a more strict typing to Business Process Flow controls. This is a breaking change.
- Fixed a bug where typings were missing for fields from business process flows.
- Fixed errors with Xrm.WebAPI typings
- Fixed error where Xrm.Device.pickFile returned a single value instead of an array
- Added Xrm.ProcessModule.addOnProcessStatusChange (@majakubowski)
- Added Xrm.ProcessModule.removeOnProcessStatusChange (@majakubowski)
- Added Xrm.Process.getStatus (@majakubowski)
- Xrm.Utility.lookupObjects now returns an array of lookups (@mathiasbl)
- Added missing methods under Xrm.Encoding (@mathiasbl)
- Added option to include lookup properties (@pederwagner)
- Fixed LCID enums (problem with spaces and special characters)
- Bug fix
- Reduced the amount of proxies connected to an environment
- Bug fixes
- Only generates typings for active forms by default, added option sif to allow generation of inactive forms. Credit to PR #70
- Multiselect Optionsets are now supported.
- Added associate and disassociate support to XrmQuery
- FormIntersects are now once again generated properly.
- ViewIntersects added, functions just like form intersects, but for views. #55
- Typings are now generated for the logicalnames in entityreferences, as suggested in #38
- Increased dependencies to recent versions (including using D365 v9 assemblies)
- Removed dependency to Microsoft.IdentityModel
- Fixed casing with openInNewWindow in EntityFormOptions
- Made #44 optional
- Fixed issue 44: Be Able To Define Custom Interface Definition Creation, delegateas#44
- 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.
- 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
setDisabled
andgetDisabled
from theBaseControl
interface to theControl
interface - Made an
AnyControl
type which collections of controls use instead of theBaseControl
type
- 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.retrieveRecord
now allowsnull
values in the select and expand parametersdouble
attributes are now typed asnumber
s instead ofstring
s for both endpointsdecimal
attributes are now typed asnumber
s in the WebAPI, and asstring
s 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 theundefined
type
- 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
oneFile
makes 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
Result
andFormattedResult
interfaces were incorrectly initialized for retrieve queries- Removed string type as a valid parameter in certain function definitions of
xrm.d.ts
- Made
boolean
a valid filter type in the Web API
- Fix:
Filter.substringof
changed to beFilter.contains
in the Web API - Added matching generic return type on
promise()
of Query - Helper function
promiseRequest
method 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
Form
interfaces can now be skipped - The
XrmQuery
functionality for the REST endpoint has been moved intoXrmQuery.Rest
- The filter functionality for the REST endpoint has been moved into
Filter.Rest
base.d.ts
has been renamed toxrm.d.ts
- Interfaces from the
IPage
namespace have been moved to theXrm
namespace IPage
entity 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
getAll
function to RetrieveMultipleRecords which concatenates all page results and serves it to the success callback. - Changed
execute
function of RetrieveMultipleRecords to have obligatoryerrorCallback
andonComplete
handlers 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
addTabStateChange
from the base declaration file
- Split
base.d.ts
into more parts - XrmDefinitelyTyped now retrieves the version from the targeted CRM and modifies the resulting
base.d.ts
to 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
IPage
module to be a namespace instead - Made
IPage.ExecutionContext
generic, 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
getFirst
function 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:
.orFilter
or.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
Option
interface to be generic based on the type of the parent attribute/control - Updated base.d.ts with more types to allow the use of
noImplicitAny
in 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.CoreAssemblies
to 5.0.18 or greater - Reduced used .NET Framework to version 4.5.2
- Reduced requirement of the dependency
- Added possibility of using
.exe.config
file to pass arguments - Changed
IPage.Control
to be generic, depending on the attribute it contains - Added
IPage.BaseControl
as a superclass toIPage.Control
that is non-generic and has nogetAttribute()
function. - Added
IPage.StringControl
andIPage.NumberControl
as 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_composite
is on a form - Added interface
IPage.LookupAttribute
as 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
getAttribute
to 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
expand
attributes
- Added support for using
Date
objects 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
tsversion
to 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
_Unknown
instead - 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.process
andXrm.Page.ui.process
objects. - Changed an interface for the XrmQuery
expand
function.
- Fixed an incorrectly assigned interface
- New entity interfaces specifically for XrmQuery to ensure input correctness
- Updated
dg.xrmquery.js
anddg.xrmquery.min.js
- Added XrmQuery
- Changed to use .NET Framework 4.6
- Added Business Process Flow fields to forms
- Added more functionality to
addOnSave
on forms - Added missing functionality to
Xrm.Page.ui
- Updated to use Microsoft.CrmSdk.CoreAssemblies 7.1.0
- Added more functionality to lookup controls
GetContext
now throws an exception when called programatically and an error occurs
- Separated declarations for
SDK.Metadata.js
into 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.REST
calls. - 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.ts
to 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
,associateRecords
anddisassociateRecords
- 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