Git Product home page Git Product logo

gotdibbs / dynamics-365-toolkit Goto Github PK

View Code? Open in Web Editor NEW
23.0 3.0 7.0 6.07 MB

Toolkit for development in a Microsoft Dynamics 365/CRM 2011+ environment. Note that the bookmarklets are deprecated in favor of the chrome extension, but will continue to function for CRM 2011 through 8.x.

Home Page: https://chrome.google.com/webstore/devconsole/2a32dd73-ad4f-4679-92a4-e373d1d25970/ajhcbjjgonogiifldoofdeonjclcehkh/edit?hl=en_US

License: MIT License

JavaScript 88.53% CSS 7.06% Gherkin 4.42%
javascript bookmarklet dynamics-365 dynamics-crm

dynamics-365-toolkit's Introduction

Dynamics 365 (CRM) Toolkit

Toolkit Screenshot

Contains quick, pretty, and easy to use tools and shortcuts to assist with development in a Dynamics 365 environment.

Keyboard Shortcut

Once installed, press Alt + Shift + G to open the toolbox when inside Dynamics.

Information Displayed

Note: Each of the items below can be copied to your clipboard by double clicking the value, or clicking the copy button on the right.

Depending on what you're viewing in Dynamics and which version you're accessing, one or more of the below may not apply and therefore won't be visible.

Label Description
Dynamics Version Displays the current version of Dynamics that you are accessing
Organization Unique Name Displays the unique name of the current environment you are in
App Name Name of the current business app in model-driven apps
User Name Displays the name of the current user, also is a link to current user's record
User Id Displays the GUID of the current user
Security Roles Displays the names of the security roles assigned to the current user as links
Record URL Displays a link to the current record
Record Id Displays the GUID of the current record
Logical Name Displays the logical name of the current record

Navigation Utilities

Navigator Description
Advanced Find Opens the Advanced Find tool for searching Dynamics data
Import Solution Opens the Dynamics solution import window
Open Record List Requests a logical name of an entity in Dynamics, then opens the default list view for that entity
Open Record Requests both a logical name and a GUID for a specific entity record in Dynamics, then opens it
Open Solution Requests the name of a solution in your Dynamics environment, then opens that solution
Plugin Trace Logs Opens a list view of all the plugin trace logs generated for your environment
Show Environment Variables Displays a listing of all the environment variable definitions in the current organization
Solution History Opens the history view of solutions imported to your environment

Utilities

Utility Description
Copy Record Id Copies the current record GUID to the clipboard
Copy Record Link Copies the current record URL to the clipboard
Enable Command Checker Enables the Command Checker / Ribbon Debug feature, or refreshes the page such that it is available
Focus Field Requests a field logical name, then sets the focus to that field
Populate Required Fields Finds all required fields and sets a value, except for lookups
Show All Fields Sets the display state of all fields to visible
Show Dirty Fields Displays a list of all fields that have unsaved changes
Show Entity Data Displays a JSON tree representation of the current entity as retrieved from the Web API
Toggle Schema Names Toggles between showing attribute labels and their logical names
Unlock All Fields Sets all attributes on the form to be enabled

Repository Structure

  • archive contains the old bookmarklets that were used in the Dynamics CRM 2011 days, they're still live and hosted on https://www.gotdibbs.com/crm/help/ if you wish to use them for older implementations, or need to do something in Internet Explorer (IE).
  • chromeExtension contains the meat of the new hot goodness. Recently rewritten entirely in React with an eye for maintainability and ease of contribution, this extension is what this repository is all about nowadays. All the bookmarklets of old, plus some new tricks are in here. See the README in that folder for more info on it's architecture.

Contributing

To put it simply, I would love the help. I worked on Dynamics 365/CRM implementations for nearly 10 years, from CRM 4.0 and up. That is no longer my day job, but I'd love to help update this tool for you if I can. If you'd like to contribute but find anything confusing I'm happy to chat through it.

Thanks for stopping by!

dynamics-365-toolkit's People

Contributors

dependabot[bot] avatar gotdibbs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

dynamics-365-toolkit's Issues

Investigate Auto Publish

Investigate publishing automatically to the chrome and microsoft edge (chromium) web stores from github actions.

Filter out workflow editor from errors

What is the current behavior? How do you reproduce it?

Errors are triggering when toolbox is used on paths of the form /sfa/workflow/edit.aspx (potentially /SFA/Workflow/entityform.aspx too).

What is the expected behavior?

Errors should not trigger for outdated forms.

Please tell us about your environment:

  • Dynamics Version: 9.x

  • Browser: all

  • Toolbox Version: latest

Add readme

Cover:

  • Chrome extension vs. bookmarklets
  • Level of support received
  • Contributing

New Command: Ribbon Debug

A recent update enabled a UCI ribobn debugger. Other toolkits are handling this like:

if (Xrm.Internal.isUci && Xrm.Internal.isUci() && !location.search.includes('ribbondebug=')) {
    window.location.href = `${location.href}&ribbondebug=true`;
}

We should investigate to see if we can make this any easier by finding a global API or rebuilding the app config and auto-clicking the button without a refresh.

Migrate bookmarklets in toolbox to functions

Originally bookmarklets were included in the toolbox UI to reduce code, but as bookmarklets are being deprecated, a split out is warranted for better debugging. Bookmarklets have a finite function length so removing that limitation will help us make newer better experiences.

Quick Actions Tests

  1. Test for when viewing a record
  2. Test for when not viewing a record
  3. Share logic with Utilities tests

Investigate Enable All Fields Dirty Field Issue

Reported by community:

Submit mode ‘Always’ will push all fields into the save request, which may cause unexpected results.

  • Any code/validation that doesn’t compare the new value with the old value will treat the fields as being updated
  • Same applies for workflows, which will be triggered if the field is present in the ‘target’ of the save request

Suggested resolution requiring evaluation:

I think this depends on the current value of the submitmode (rather than the state of the field, enabled/disabled):

  • Never: in that case you need to change the submitmode, otherwhise it will not save
  • Dirty: no update needed, will update if you change it
  • Always: no update needed, will always update, even if you don’t change it
    So, if you still want to update the submit mode, you can set it to ‘dirty’ for all of the fields. Then it will only update the fields you change.

Filter out errors from crm4.dynamics online instances

What is the current behavior? How do you reproduce it?

We're receiving errors from *.crm4.dynamics.com which we don't support, let's filter those out and/or try to make it more obvious that crm4 isn't supported.

What is the expected behavior?

No errors logged, UX for unsupported environments is clearer

Please tell us about your environment:

  • Dynamics Version: 4.x

  • Browser: all

  • Toolbox Version: all

Ensure all instances are cleaned up when close is clicked

There are some awkward race conditions that can present in multiple instances of the toolbox container being injected into the DOM, and conditions where the root element in launcher.js have already been cleared/orphaned. We should ensure all references are removed and be safer when attempting to remove the element.

https://github.com/gotdibbs/Dynamics-CRM-Bookmarklets/blob/4f80c73b21304760ebc88c6a68642f2fc976ea76/src/chromeExtension/toolkit/launcher.js#L77

Expand toolbox functionality with quick nav options

  • Add categories to toolbox with slide effect to open drawer of new links
  • Add new options for quick nav like solution import, advanced find
  • Begin thinking of architecture for making service calls to find solutions by name and open them quicker, metadata explorer, etc.

Prevent error notifications from app launcher

What is the current behavior? How do you reproduce it?

When accessing a URL of the form: /main.aspx?forceUCI=1&pagetype=apps errors occur from the polling mechanism for the dynamics version.

What is the expected behavior?

No errors occur, polling pauses.

Please tell us about your environment:

  • Dynamics Version: latest

  • Browser: all

  • Toolbox Version: 2.3.2

Other information

None

Showing fields marks them as dirty for update/save operation

What is the current behavior? How do you reproduce it?

Currently using the Chrome extension, version 2.2.2. By using "Show All Fields" command on a form, all fields get marked dirty as well. Saving the form after showing all fields erroneously triggers plugins and flows that have filter criteria different than the fields that are actually changed.

What is the expected behavior?

Clicking "Show All Fields" should not set fields to dirty if they are not changed. Perhaps before setting the field visibility, the dirty-ness of the field can be tracked and set accordingly after the visibility change.

Please tell us about your environment:**

Chrome, using the 2.2.2 version of the Toolbox. Latest version of Dynamics (2020 Release wave 1; 9.1.0000.2251).

Other information

End-user here complained about this problem describing it as such: they have a flow that triggers on a field that is not visible by default. They used Show All Fields, updated a different field, and then hit save. The flow was still triggered although the field that's supposed to trigger it was not actually changed. Unfortunately, flows still do not have support for pre/post-image type comparisons, so it's not possible to just add a condition to the flow to check before/after for non-updates.

Toggle Schema names does not stay on.

What is the current behavior? How do you reproduce it?

Toggle Schema Names is always on, clicking the toggle button briefly removes them then they show again.

What is the expected behavior?

Clicking the toggle button should switch off the schema names then clicking again should show them.

Please tell us about your environment:

  • Dynamics Version: 9.1.0000.26437

  • Browser: Edge 86.0.622.69 (Official build) (64-bit)

  • Toolbox Version: 2.3.1

Other information

For example: screenshots, detailed explanations, stacktraces, related issues, suggestions how to fix, links for us to have context, etc.

image

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.