reenhanced

Category: Dynamics 365

  • Model-driven apps in PowerApps: Site Map

    Model-driven apps in PowerApps: Site Map

    Welcome to the third article in the model-driven app series! Today we will look at the Site Map and understand how it works from the back end / system administrator view and how that translates to the front end / end user view. This series includes six articles that will help you to get to know and use model-driven apps and PowerApps:

    Site Map

    This is the single most important component of your model-driven app. It controls which areas of Dynamics 365 are accessible in your App. When building your app, you will have two options when it comes to a site map:

    1. Use existing (from a solution)
    2. Create new

    Your map consists of three components:

    1. Area
    2. Group
    3. Subarea

    Let’s first look at these three components from the back end view for System Administrators and app builders:

    Site map back end
    The site map from the build perspective

    Utilizing a simple drag and drop interface (similar to what you see when building Business Rules and Business Process Flows), you can add new Areas, Groups and Subareas to your Sitemap Designer. But what do these mean to the end user? What is the difference between the three components and how do they display?

    To best understand the difference between an area, group and subarea on the Sitemap Designer, let’s take a look at the end user / front end view of the sitemap:

    Site map, front end
    The site map from the end user perspective

    Take a look at the image above to understand how the site map displays to users. The table below will explain how the highlighted colors relate to the Sitemap Designer.

    Highlight colorSitemap Designer Detail
    BlueArea
    GreenGroup
    YellowSubarea

    Now that you understand what each component is, build out your app’s sitemap. Once you have completed the build, make sure to Save it by clicking the Save icon in the top right-hand corner of the Sitemap Designer. Next, click Publish.

    After your site map has been saved and published, it’s time to move on to the fun stuff – adding components and setting properties. Stay tuned for the next article in our series, where we dive into components (entities, dashboards, business process flows and more)!

    Need Help?

    Do you need help planning your Site Map? Feel free to reach out to reenhanced! Fill out our Contact Form with details about what you’re working on, or email me directly at heidi@reenhanced.com. Happy building!

  • Model-driven apps in PowerApps: Using the App Designer

    Model-driven apps in PowerApps: Using the App Designer

    Welcome to our second blog in the model-driven app series! Today we will focus on getting to know the App Designer. This series includes six articles that will help you to get to know and use model-driven apps and PowerApps:

    A blank canvas to build your model-driven app!

    When you open your model-driven App in the App Designer, it will resemble the image above. You will notice a few main areas here:

    • Site Map
    • Dashboards
    • Components (Artifacts & Entity Assets)
    • Properties

    Using the App Designer is fairly simple and should be familiar to System Administrators as it uses a similar drag and drop configuration style used in building business rules and business process flows. Microsoft has done an excellent job making configurations like these accessible to the less technical System Administrator (like yours truly!).

    Let’s briefly look at each of these – as all of these areas will be covered thoroughly in subsequent articles.

    App Designer Areas
    Site MapControls which areas of Dynamics 365 can be accessed in this App
    DashboardsList of any system dashboard included in the App
    ComponentsA list of entities and entity assets (forms, views, charts) that are in this App
    PropertiesName and description of the App, custom icon (optional), unified interface URL

    Stay tuned for the rest of this series on building a model-driven app in Dynamics 365 using PowerApps, where we will dive deeper into the Site Map, Components and Properties.


  • Security Considerations when building a model-driven app in PowerApps

    Security Considerations when building a model-driven app in PowerApps

    If you’re a Dynamics 365 System Administrator, chances are you’ve played around with building model-driven apps in PowerApps. By now, it’s become glaringly clear that this is the direction Microsoft CRM has headed and will continue to head when it comes to configuration and customization.

    For those of you have not yet ventured into the world of model-driven apps, this blog series will introduce you to the components, security considerations and functionality to help you get started.

    This series will include six articles that will help you to get to know model-driven apps and PowerApps:

    Security Considerations

    Creating Model-Driven Apps. When building a model-driven app in Dynamics 365 using PowerApps, it’s important to understand security pre-requisites. You will need the System Administrator or System Customizer security role in Dynamics 365, or another role with Create, Read & Write access for Model-driven app.

    Accessing Model-Driven Apps. If you are using custom security roles in your organization, it is important to ensure your users have Read access to Model-driven apps on the Customization tab:

    Security role permissions for model-driven app
    Troubleshooting Tip! If your users report not seeing an app or getting an error message saying the app is not accessible, make sure they have the Model-driven App Read privileges on the Customization tab!

    Applying security role(s) to App. Take security a step further with model-driven apps and streamline which apps appear for your users. Make sure that they only see the apps they need to see. Here are 4 simple steps to limit access to a model-driven app by security role:

    1. Go to My Apps, then select Home

    2. In the App box, click the ellipses icon next to the App name

    manage roles in a model-driven app

    3. A panel will open on the right-hand side. Select the security roles who should access the App.

    Select security roles for model-driven app

    4. Click Save at the bottom.

    Tip! You can hide the Dynamics 365 – custom App from all users by following steps 1 & 2 above. Clicking the ellipses on this App will give you the option to “Hide for all roles.”

    Stay tuned for the rest of this series on building a model-driven app in Dynamics 365 using PowerApps.

  • Planning for Dynamics 365 License Changes

    Planning for Dynamics 365 License Changes

    Starting tomorrow (October 1, 2019) the way Dynamics 365 is licensed is changing. These changes will apply on your next annual renewal and represent a big change from how the products used to be licensed.
    Understanding how things used to work

    Prior to this change, Dynamics 365 was licensed on a selection “One Size Fits All” packages. Depending on what applications and features you needed, your accounts were licensed according to different bundles that would provide as much or more than needed for your account to function.

    For example, if you needed to access Field Service and Sales, your only option was to purchase the Customer Engagement Plan, which would also give you access to Customer Service and Project Service Automation.

    Now its a pay-per-app model

    With the changes launched on October 1, pricing moves to a Base plus Attach model for licensing in which a Base application is selected and then one or more Attach licenses can be added to it to determine costs.

    In this new model, many businesses can save costs in some areas and see price increases in others. Due to the way licensing is assigned, these costs may not always be clear.

    Announcing the Dynamics 365 License Planner

    In order to help you understand how these licensing changes impact you, we are releasing a Dynamics 365 License Planner tool to help you build your license plan and understand how your users will need to be licensed upon renewal.

    Click the image above to visit the planner and start planning your license renewal today.

    Dynamics 365 License Planner
  • Reenhanced at User Group Summit

    Reenhanced at User Group Summit

    Reenhanced is thrilled to be speaking at thee events at the upcoming User Group Summit. If you will be at User Group Summit, be sure to stop by one of our sessions!

    10 User Adoption & Training Best Practices You Can Implement Today

    Organizations of all shapes and sizes struggle with user adoption. All too often, new CRM technology is rolled out only to find that employees aren’t using it. They feel like it’s just another management tool. Join this session to learn best practices, tips and real-life examples of how organizations like yours have overcome the same struggles you are facing. This session will cover configuration, end user and training best practices and tips. “They need to learn how to use this to do their job. They will figure it out.” – Management Don’t let that be you! Come to this session and learn how to increase adoption at your organization. We will have time at the end for an interactive Q&A. Please feel free to share what has worked at your organization or ask questions to learn what your organization may be able to do better.

    Join us for a workshop-type session where you can build a model-driven app in Dynamics 365 using out-of-the-box configuration. We will review components of a model-driven app, how to work with the App Designer, use the artifacts and entity assets to build your App and limit access using your organization’s security model. Then, we will be hands-on: bring your tablets or laptops and follow along. If you have appropriate permissions in your organization, I welcome you to build an App today as part of our session (in your Sandbox environment, of course!). Model-driven apps, when designed properly have the ability to streamline the user experience and simplify their journey in Dynamics 365. I will also point out limitations when accessing CRM data via an App versus the full web experience. When you leave this session, you will be equipped with the tools to build Apps for your organization (and/or possibly your first App built in the session!), including an understanding of best practices around App design.

    You did it! After months of hard work, your Dynamics implementation is officially live. Users have licenses and have been trained. You are starting to see data flowing through the system. It’s a fairy tale ending! Or is it? Within weeks you start to hear users asking things such as “Hey, this is great, can we have a field over here for this?”, or “wait, I don’t remember how to do XYZ, can you remind me?” (or, worse yet, “do it for me?”), or “hey, I was listening to this podcast and they talked about this great product that does email marketing, let’s add that in tomorrow!”. The list goes on. Join this session to explore how to shift gears from project implementation to project maintenance and ensure your organization continues to push the envelope of organizational efficiency.

  • 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.