reenhanced

Category: CRM

  • Adding a Logo or Custom Image to a Model-Driven App Tile

    Adding a Logo or Custom Image to a Model-Driven App Tile

    PowerApps are a great way for you to streamline the user experience in Dynamics 365. Available for Dynamics 365 Online Customers, creating an App is easier than ever with the PowerApps interface and drag-and-drop App Designer.

    Today, let’s show you in a few simple steps how you can replace the Default Image for your App to be a custom image. In this example, I will use the Reenhanced logo. You can use your company’s logo or any image that works for the App you are building.

    default app tile
    The default PowerApp Image Tile. This is what your users see when they select an App in Dynamics 365.

    1. If your image/logo does not yet exist as a Web Resource, the first thing we need to do is add it. In a Dynamics 365 Solution File, add a new Web Resource.

    Adding a new Web Resource to a Dynamics 365 Solution File.
    Name your Web Resource and upload file. Save, then Preview to ensure it looks right. Finally, Publish your Web Resource.

    2. Open your Model-Driven App. Navigate to Properties in the control panel on the right-hand side of your App Designer.

    3. Under Icon, uncheck the box next to Use Default Image.

    Uncheck Use Default Image under the Properties tab, highlighted here.

    4. In the search box above App Tile, find the Web Resource you added in step #1 and select it.

    Select your new Web Resource and preview App Tile.

    Once you Save and Publish the changes in your App, your App Tile will be updated with the new image!

  • How to get started with Form Scripts in Dynamics 365

    How to get started with Form Scripts in Dynamics 365

    A very simple script that we’ll load into the OnLoad event of Lead form.

    A very simple script that we’ll load into the OnLoad event of Lead form.

    In this article, you’ll learn how to load a simple javascript extension into Dynamics 365 forms. Our example script is a single function that will execute during the OnLoad event for our Lead form. In future articles you’ll learn how to package full Angular and React applications and deploy them to your entities.

    TIP: While today’s method is useful for an example, you won’t want to modify your forms directly like this. In future articles you will learn how to package your javascript into a solution that will allow you to more easily manage your releases.

    The first step will be to create your javascript file as shown above. Our file is saved under the filename onload-example.js

    Some important things to note at this time:

    1. Your file must include a function that will be available in the global context.
    2. If you are minifying a large application, you will need to know the name of the function to execute.
    3. Dynamics will handle the import of this single script and will control when the method is executed.

    Now that you have your javascript file, the next step is to load it into your Dynamics instance.

    Loading Web Resources into Dynamics

    A full overview of loading web resources

    A full overview of loading web resources

    To load web resources into CRM, visit the Settings > Customizations page and click “Customize the System”.

    09-19-js4crm-webresource.png

    Once that page loads click on “Web Resources” from the left column and then click “New” to add a new web resource.

    Note the web resource will automatically be prefixed with new_ so when you are searching for it later, you’ll have to look for the filename you uploaded starting with that string.

    09-19-js4crm-uploadwebresource.png

    Once you have named your file, select it from your file system and click “Save”.

    You don’t need to publish new uploads but you will need to click publish when you change an existing web resource.

    Once these steps are complete, your new javascript file is stored within the Dynamics filesystem.

    Next we need to load this script into the Lead entity.

    Attaching your Web Resource to Form Events

    A full overview. We break this down into steps below

    A full overview. We break this down into steps below

    Now we will be modifying the form to add the new web resource to it. The first step is to open the form editor from the dropdown menu in the ribbon.

    How to open the form editor

    How to open the form editor

    The form editor will open a new window and from there you’ll click on “Form Properties”.

    09-19-js4crm-form-props.png

    Why do I use Form Properties instead of inserting a Web Resource?

    Even though you upload your script as a web resource, we must use Microsoft’s Form Properties to insert the script and set it up for execution during the OnLoad event of the form. If you attempt to insert it as a web resource you won’t have the ability to connect it to the form events.

    Next, you will click on “Add” to bring your Web Resource into the Form Properties. You’ll need to first add the web resource and then assign the resource to an Event Handler.

    09-19-js4crm-form-prop-ins.png


    Below, you can see an animated example of how you can find your web resource (Remember, it was uploaded with a filename starting with new_) and attach it to the form event.

    Inserting your script. Remember how it was prefixed with `new_` during upload? That makes finding it easy.

    Inserting your script. Remember how it was prefixed with `new_` during upload? That makes finding it easy.

    In this final steps shown above you pull together the file you’ve uploaded with the form and assign it to the Event Handler. Once completed, press “OK” and then Save followed by Publish on the Form Editor window.

    You are done!

    You are done!


    If you’ve enjoyed this article and would like to see more, please email us at javascriptforcrm@buildbettersoftware.com with ideas for what you would find helpful for future articles. We are always happy to answer questions and help you get more comfortable modifying CRM to meet your needs.

  • Change Management Best Practices for your Dynamics 365: Create a Change Management Team

    Change Management Best Practices for your Dynamics 365: Create a Change Management Team

    To help your organization embrace the change that comes along with a Dynamics 365 project or enhancement, make sure that you have established an internal Change Management Team. This team should be comprised of champions, end user and organizational culture experts and anyone who handles corporate communications.

    time for change

    This is the second article in a series on Change Management in Dynamics 365 projects and enhancements. First, we talked about understanding change as a process, specifically looking at how a simple CRM project lifecycle may look when overlaid on a standard Change Curve.

    Let’s look at a few areas to consider when you begin to think about creating a Change Management team at your organization.

    What does the Change Management team do for a Dynamics 365 project?

    This team is tasked with:

    • understanding the corporate culture and user groups
    • collecting end user feedback
    • designing the change management plan and strategy
    • designing a communication plan and execute the plans and related activities

    How does this relate to the standard Dynamics 365 project team?

    Your Change Management team should be involved in any regular project meetings and have an agenda item.  A representative of the Change Management team should report on the action items: end user feedback (survey results), development of the change management plan and updates on the communication plan.

    What roles should be represented on my Change Management Team?

    When selecting your Change Management Team, you should consider participation at the following levels:

    • Change Champions: These individuals will write and execute the change management and communication plans. There should be at least one expert in your organization’s culture and users included on the team.
    • Change Sponsor: An executive team member who can champion the plan throughout the leadership team.
    • Steering Committee: If this change is in conjunction with a Dynamics 365 project, this can be the same Steering Committee. Depending on organization size, a separate Change Management Steering Committee may be appropriate.
    • Corporate/Organization Communications: If your organization has a team member who handles all communications, (s)he should be a part of the Change Management team to facilitate delivery of the Communication Plan.

    More on Change Management

    Stay tuned for more articles in the Dynamics 365 Change Management series. The next articles will focus on the following topics:

    • Assess change readiness
    • Include a Communication Plan as part of your CRM project
    • Incorporate Change Management into your Training Plan

    Need help crafting your plan? Contact the Dynamics 365 experts at Reenhanced today!

  • How to Adopt Change Management Best Practices into your Dynamics 365 Project: Understand Change as a Process

    How to Adopt Change Management Best Practices into your Dynamics 365 Project: Understand Change as a Process

    • Understand Change as a Process
    • Create a Change Management Team
    • Assess change readiness
    • Include a Communication Plan as part of your CRM project
    • Incorporate Change Management into your Training Plan

    This blog kicks off a series on Change Management in Dynamics 365 projects and enhancements. When you are planning for a Dynamics 365 project or enhancement, change is coming to your organization. That change won’t be a one-time thing and then your users simply move on. To properly address change, you will need to be able to adapt and accept change as a process and not a one-time event.

    Let’s look at a standard, simple CRM project life-cycle and overlay it with a standard Change Curve:

    Dynamics 365 Project life cycle applied to a standard Change Curve
    • Project Kick-off: You’ve invited stakeholders, end users and management to help kick off the project! Expectations are all over the place: excitement, fear, confidence, uncertainty. Performance and motivation are at the start of the standard Change Curve.
    • Requirements: You’re being heard by your Partner and Project team! All of your wish list items are being captured. Excitement is high!
    • Development: Your partner and project team are busy building the system per requirements in the prior stage and working off of a mutually-approved project plan. As development begins and continues, you wonder if the requirements gathered were correct? Confidence begins to wane.
    • UAT & Testing: You’re in the system doing User-Acceptance Testing. You’re running through test scripts, documenting where items pass and fail. Why are there failures? The Change Curve reaches its lowest point in performance and motivation for users.
    • Training: As users go through training, they will increase the confidence with the CRM system, learning new areas and seeing new features. If you have followed some basic User Adoption tips, you have successfully used the technology of Dynamics 365 to create a system that will aid users in their daily job, building confidence. We’re heading back towards our starting point in the Change Curve of performance & motivation.
    • Go Live & Beyond: You’ve returned to your starting point on the change curve and surpassed it!

    Remember – change is a PROCESS. It is continuous. While the graphic above represents one cycle, be prepared for the curve to ebb and flow as your team continues to use and enhance your Dynamics 365 system

    Stay tuned for more blogs in the Dynamics 365 – Change Management series! The next articles will focus on the following topics:

    • Create a Change Management Team
    • Assess change readiness
    • Include a Communication Plan as part of your CRM project
    • Incorporate Change Management into your Training Plan

    Ready to learn more? Contact Reenhanced today to learn how we can assist with your project!

  • How to embed Audit History directly into an Entity Form

    How to embed Audit History directly into an Entity Form

    Recently, I helped a CRM Developer learn how to embed a view of his Audit History directly into his form. Keep reading for a step-by-step process explaining exactly how this is done and find a code sample you can download and use to power the same behavior inside your entity forms as well.

    First, let’s look at what we’re inserting. Our view of the audit history will be the same view that you see when you select Audit History from the Form Navigation. If you’re using v9, it looks like this:

    The Audit History that we want to show inside our form.

    The Audit History that we want to show inside our form.

    Now that we’re on the audit history page, let’s take a closer look at how this is displayed. If you use the Developer Tools for your browser, you’ll find that this view is shown inside an IFRAME which is how a lot of the components in Dynamics are displayed.

    So now what we need to do is grab the URL for the IFRAME that’s showing the audit history. We will use this to build a web resource that we’ll be able to embed into our form. From the Audit History page, if using Chrome press Control + Shift + J to open the developer tools, then scroll to the iframe in the elements tab.

    2-15-iframe.gif

    This IFRAME source will look something like this:

    /userdefined/areas.aspx?formid=e3b6ddb7-8df0-4410-ac7b-fd32e5053d38&inlineEdit=1&navItemName=Audit%20History&oId=%7b5D5C1423-DEB2-E811-A96A-000D3A37062B%7d&oType=4&pagemode=iframe&rof=true&security=852023&tabSet=areaAudit&theme=Outlook15White

    Hold on to this, because we’ll be using it to customize your web resource that will handle the embed of this IFRAME.

    Open your favorite text editor and paste in the following in a file called web-resource.html:


    <!DOCTYPE html>
    <html style="height: 100%">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body style="height: 100%">
        <iframe src="" id="areaAuditFrame" name="areaAuditFrame" scrolling="auto" isarea="1" frameborder="0" style="width: 100%; height: 100%"></iframe>
        <script>
            let auditLoader = window.auditLoader || {};
    
            auditLoader.setIframe = function() {
                const search = new URLSearchParams(window.location.search);
                const recordId = search.get('id');
    
                let element = document.getElementById('areaAuditFrame');
    
                // TODO: Modify this with your url from the iframe
                // Make sure you modify it to add ${recordId} where needed
                element.src = `/userdefined/areas.aspx?formid=e3b6ddb7-8df0-4410-ac7b-fd32e5053d38&inlineEdit=1&navItemName=Audit%20History&oId=${recordId}&oType=4&pagemode=iframe&rof=true&security=852023&tabSet=areaAudit&theme=Outlook15White`;
    
            };
    
            auditLoader.setIframe();
        </script>
    </body>
    </html>

    Note: For the script above we have all of the code and display components in the same file. It’s a good idea to do this when possible because it will be easier to maintain the system if each modification is self-contained. If you ever need to remove this, you can remove the web resource and there are no further steps. Always think about how to minimize dependencies as you build your modifications.

    What the code above does is the following:

    1. It creates a blank IFRAME that takes up 100% of the space in the displayed Web Resource
    2. It uses parameters passed to the web resource to set the src attribute of the IFRAME to the Audit History page, customized to load the correct record for the form where it is embedded.

    You will need to change the element.src line to match the IFRAME url you copied above, making sure to replace the oId= section with oId=${recordId}.

    Once you have your file, save it to your local machine. The next step is to upload this into your entity form. In our example, we add a section to the bottom of our form that will hold the Audit History because this component requires a lot of space to display.

    insert-and-upload.gif


    Some things to note when you do this:

    1. Mark the Web Resource type as HTML so that Dynamics knows the right way to display it.
    2. Make sure you click the box inside Web Resource Properties to Pass record object type code and unique identifier as parameters. The script uses this to know what audit records to show.

    You can reuse the script above to display any iframe you like into any entity form, all you need to do is change the element.src property.

    Happy Modifications! If you liked this, please leave a comment.

  • How to fix Dynamics 365 File download apostrophe bug

    How to fix Dynamics 365 File download apostrophe bug

    The Problem

    Starting in Chrome 72 the way the file download process works has changed. For Dynamics users, this means that files are currently being downloaded with a character surrounding the files.

    What this means is if a user downloads a file called Report.xls what actually happens is the file is downloaded as ‘Report.xls’ which causes the file to be unknown. There is no problem with the file itself, but this is very confusing for users.

    The Solution

    To fix this, users may rename the file to remove the apostrophe or if you like, I wrote a Chrome Plugin available for FREE that will automatically remove the apostrophe before download.

    Download the extension from the Chrome Web Store here or click the button below.

    What our users say…

    I am new to CRM (under a year) and have been super frustrated with the single tics on downloads that were happening in Chrome.  Today we got a Help desk ticket that i researched and found your chrome plug in…. [link to store]…  It worked…  Helped the customer right away…  Thank you so much for this. I have a very tenured developer  on my team that actually worked for Microsoft on the CRM team and he didn’t know how to fix this.   Made me look like a rockstar for the day!!!   Great plug in! Thank you,

    Steven T. Parsley

    Our firm is a heavy user of Dynamics CRM. We have been dealing with the CRM/Chrome export to Excel issue for a year. Our “solution” was not ideal. We either instructed users to use Internet Explorer or to associate .xlsx’ files to Excel. Nobody wants to use IE and the file association workaround was too difficult for users resulting in lots of Helpdesk tickets.

    This extension worked exactly as described. We were able to immediately roll it across our firm via our Chrome Group Policy.

    Thank you so much for providing a fix to a problem that should have been resolved by Google and/or Microsoft by now. Your firm is our hero!

    Aaron Appelbaum, Laird Norton Wealth Management

    To whom Concern,
    I have added extension which is provided by your company to chrome to fix download problem of Chrome on CRM 365. It is great and useful. thanks for your solution

    Bahram T.

    Have a great experience? Share a message with the hashtag #reenhancedtotherescue

  • Reenhanced Enhances CRM Services & Offerings

    Reenhanced Enhances CRM Services & Offerings

    Hello world! I am thrilled to be joining the Reenhanced team as the Director of CRM Projects.

    Reenhanced has been rescuing struggling software and Dynamics 365 projects for 14 years. I’ve always loved CRM rescue projects – stepping in when a project is nearing failure and helping an organization to turn it around. This is a wonderful opportunity to help more companies embrace their CRM systems and use the technology within Microsoft CRM to streamline their business processes and help achieve greater user adoption.

    I have more than ten year’s experience in Microsoft CRM technologies that I am bringing to the Reenhanced team. I have personally worked with Microsoft CRM from version 4.0 all the way up to my current role using Dynamics 365 online.

    If your company has a failed CRM implementation or just needs a little help optimizing the technology to meet your organizations’s business needs, contact us today at (215) 804-9408! We can help you get your system back on track.