Skip to content

General

52 results found

  1. Add Actions and Views to generated proxy classes

    It would be great to be able to select Actions and Views to automatically generate their own proxy classes. For Actions, it would generate a strongly-typed proxy that accepted the typed parameters and returned the output parameters. For Views, it would generate a proxy that lets you quickly get results from System Views on each entity by just querying that View proxy. This way you could quickly model queries in Dynamics in the Advanced Find and then easily reference them in code.

    6 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  2. publish on Build instead of Save

    I tried using the option to auto-publish on Save, but I actually save a lot (because VS crashes hurt) and only want to incur the publish delay when things are in a particularly good state. In other development this is when I do a Build, and I do build my CRM client scripts (Typescript ftw), so my ideal would be for a build to publish files changed since the previous build. Slightly less ideal but still good: publish all of the project's checked-out files. Worst case, manually flagging files to publish works, too.

    5 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  3. Customer Self-Service Portal

    Login. See the invoices, license count and license id of licenses my company has purchased so i can easily transfer license if staff leave our organisation.

    5 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  4. Add OrganizationServiceContext support to proxy classes like early bound classes

    it would be great if OrganizationServiceContext could be used like early bound class's with "Crm Service Util" or Entity Frameworks

    how i imagine using

    create OrganizationServiceContext then use the context to query (like ef or the context created when generating early bound class's with "Crm Service Util")

    update multiple entities using the awesome smart change tracking

    run a single context.SaveChanges() (like ef or "Crm Service Util" but with the smart change tracking keeping track of what needs changing saving)

    4 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  5. XrmToolkit Site License

    Is a site license possible to purchase?

    4 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  6. Execute publish and connection in parallel

    Connecting to online instances of D365 can be a little slow so waiting for this step to complete before compiling and then uploading assembly/code is time consuming. I suggesting starting the connection attempt and building the project (plugin) at the same time, once they are both complete, upload. This will save 10-15 seconds per publish which happens a ton of times over the course of a work day.

    4 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  7. Enhance the Picklist Attribute Intellisense Feature to use a constant to represent the numeric value for the SetValue method.

    The current intellisense feature for picklist attribute will generate something like this.
    Xrm.Page.getAttribute("new_dropdownfield").setValue(912210002);

    The value 912210002 makes it less readable for future maintenance. A suggestion is to rather do the following.
    Xrm.Page.getAttribute("newdropdownfield").setValue(PicklistAOption1);

    Define PicklistA_Option1 in the same file automatically or in an enumerations.js file that can be include.
    As part of the Web Resource Minification remove this reference.

    4 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  8. Add unit testing mock ability

    Add the ability to easily create/test plugins and other code. Something similar to https://github.com/daryllabar/XrmUnitTest or https://dynamicsvalue.com/home

    4 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  9. Pretty print the sitemap xml

    ...so that when I commit it to source control, I can use standard diff tools to review changes

    4 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  10. Plugin registration shown Execution User column

    Would be great to see at a glance the plugin message executing user as a column. This would quickly identify which messages are registered as impersonations.

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  11. Add empty check on ToEntityReference method

    Add this Guid.Empty check and return null if empty.
    Reason:
    EntityReference account = new Account();

    This should assign null but instead it assigns an EntityReference with Guid.Empty. This throws an error when trying to Save.
    The error can be resolved if it assigned null as EntityReference instead.

        public EntityReference ToEntityReference()
        {
            if (Id == Guid.Empty) return null;
            return new EntityReference(LogicalName, Id)
            {
                RowVersion = RowVersion
            };
        }
    
    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  12. Typescript Intellisense XRM Namespace

    Please make the Namespace of the current "XRMBase" changable or put it fixed to Xrm.
    It's pretty annoying when working with Xrm.Utility... etc. so you gotta fake it every time with declare const Xrm: XrmBase<any> or something similar

    Afaik the intellisense files are created by xrmdefinitelytyped(?) and they have a setting for that but where to store the config?

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  13. add javascript base form without attributes intellisense

    Sometimes you don't know how the form will look like when you code, and then you might want to code defensively, could it be possible to have an execution context that allows us to do this, ie.

    function OnFormLoad(executionContext: XrmBase.ExecutionContext) {
    var firstNameAttribute = executionContext.getFormContext().getAttribute("firstname");
    if(firstNameAttribute != null) firstNameAttribute.getValue();
    }

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  14. return an int of updated records in the Update method

    On the Update method of BaseProxyClass, return an int of updated records. If no Update was sent because _changedValues.Count was 0, it should return 0, otherwise 1. This would help to count the amount of updates that were sent for logging purposes.

        public int Update(IOrganizationService service)
        {
            if (_changedValues.Count > 0)
            {
    
                service.Update(GetChangedEntity());
                _changedValues.Clear();
                return 1;
            }
            return 0;
    
        }
    
    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  15. Add summary comments to generated public/protected code

    In our environment warnings are generated during deployment if any public or protected class, method, or property has no summary and param comments. We use Swagger which utilizes these comments.

    For Example:

    /// <summary>
    /// Gets the error string.
    /// </summary>
    /// <returns>The error string.</returns>
    /// <param name="attributeName">Attribute name.</param>
    /// <param name="defaultErrorType">Default error type.</param>
    protected override string GetErrorString(string attributeName, BaseProxyClass.eErrorType defaultErrorType)
    {
    if (_errorStrings.ContainsKey(attributeName))
    {
    return _errorStrings[attributeName];
    }
    return defaultErrorType == BaseProxyClass.eErrorType.Text ? TextError : NumberError;
    }

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  16. extract interface from class with comments

    When you want to create an interface for a class you can use the helper "extract interface" on the class definition. This does not copy the leading comments used with tools such as Swagger; i.e. the comment block created with the three forward slashes ///

    For example:
    /// <summary>
    /// Configuration manager
    /// </summary>
    protected readonly IConfigurationKeyManager _configurationKeyManager;

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  17. Generate POCO or DTO early binding classes

    Generate POCO or DTO early binding classes which do not have any references to the SDK. Any 1:n relationships are created as Property LIST<MyEntity>. Any Optionsets are generated as enums in separate file so there are no duplicates (i.e. status and statusReason ). The ability for these POCO classes to then generate an XSD without error. At run time AutoMapper could map from POCO to ProxyClasses

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  18. create a Clear method for the BaseProxyClass

    A Clear Method should allow us to execute _changedValues.Clear();

        public T Clear<T>() where T : BaseProxyClass
        {
            _changedValues.Clear();
            return (T)this;
        }
    

    Reason being following request:

    var leads = (from l in crmContext.CreateQuery<Lead>()
    
                      select new Lead
    
                      {
    
                           LastName = l.LastName,
    
                           LeadSourceType = l.LeadSourceType
    
                      }.Clear<Lead>());
    

    The only way to select column here is by creating a new instance of Lead in select. This will cause all columns to be considered "changed". Even though they were just retrieved.
    Therefore it should be possible to Clear the _changedValues property.

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  19. Add basic handling of Environment Variables

    I've noticed that there are no built-in methods which would allow to fetch or store Environment Variables via XrmToolkit.

    How I would imagine the perfect support here:

    • Autogenerate a file similar to "MessageNames.cs" or "TableNames.cs" called "VariableNames.cs" or "EnvVariableNames.cs" (other name ideas are welcome) which would store schema names of all available environment variables in the same fashion as the other mentioned files do already + have the ability to regenerate the file.

    • Create IOrganizationService extension methods which would fetch the variable's value based on its name. I imagine the method to first try and return the "Current Value" (environment-based)…

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  20. Add CalculateRollup function to early binding of a rollup field.

    It would be great if I could Execute a CalculateRollupRequest if the field is a rollup field. Currently I have to extend the proxy class and so I could call the function. It could work similar to how lookup fields can RetrieveProxy<T> i.e. contactRecord.new_rollupfield.Rollup(OrganizationService) would execute the function.

    2 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  • Don't see your idea?

General

Categories

Feedback and Knowledge Base