Step by Step guide to CI/CD Implementation
Problem Definition: People tend to make their tasks automated rather than doing them manually. Working with CRM, we always need to work with solutions. Being a developer to satisfy customers’ requirements we always work on a development instance and import it to the production end once done with all implementations. All this is done by performing Export and Import manually from one environment to another. To reduce the tedious work of Exporting and Importing your work manually CI/CD helps in making the flow automatic. What is CI/CD? Continuous Integration/Continuous Deployment – The name itself is self-explanatory, commonly known as CI/CD pipeline. It works in the same way as the normal pipeline, transferring things from one part to another. This task helps you transfer your solutions from the development environment to the production environment effortlessly. Not only solutions but you can also transfer data stored in those solutions using this pipeline. You can also send patches as and when required using the CI/CD pipeline. The CI/CD process includes a series of steps /tasks which are performed to improve the SDLC process via automation. Solution: Steps to perform CI/CD Pipeline: – Power DevOps Tool Download Power DevOps Tool from Power DevOps Tools – Visual Studio Marketplace, so that you could include and implement all the tasks related to the power DevOps tool. These tasks would eventually help you in performing the CI/CD in a much more efficient way. Once you are done downloading the tool (as shown below), you must make sure that you are logged in with the same account as your Azure DevOps. After that choose your Azure DevOps organization in which you want to implement the pipeline. Click on Download and you are done with installing the DevOps in your respective organization. Build Pipeline Go to your Azure DevOps account à Click on the Pipelines tab in the left panel à Create New Pipeline. Here you will be provided with a list of options where your code is residing. For now, we will go with the Azure Repos Git option, which will be responsible for holding and managing all the files your pipeline will execute and export. In the next step, you will be asked to choose a repository (either existing or creating a new one) to which your pipeline will be connected. To create a new repository, go to the Repos tab from the left side panel à Create New Repos. After done with creation, choose the repository which you want to connect to your pipeline and then select the option through which you wish to configure your pipeline. As a beginner, we will choose the Starter Pipeline to customize the code. Once you click on the Starter Pipeline, abasic YAML code will be generated for you. Set the trigger to none or let it run on the default trigger set i.e., main. Also specify the pool on which platform you wish to run your pipeline. Remove all the default steps provided by the Starter Pipeline and add the following steps: Power DevOps Tool: Even though you have downloaded the tool to your organization, you need to define the tool each time you want to use the tasks related to the tool in each new pipeline. Add the task to your YAML code which will auto-generate the code for you with proper parameters. Ping Environment: This task is used to test the connectivity of your DevOps with the Power Apps. For this task, you will require a connection string that would hold all the information to connect to your CRM. To store all the credentials of your CRM, you need to create a custom variable that will contain all the credentials required. In the Values section, provide the correct AuthType and other required credentials related to the AuthType. For various AuthType refer to – https://docs.microsoft.com/en-us/power-apps/developer/data-platform/xrm-tooling/use-connection-strings-xrm-tooling-connect Note: Office365 is a deprecated AuthType. For getting the credentials such as ClientID, ClientSecret, etc., you need to register an app in the Azure Portal. Follow the steps mentioned in the below link: Setting up an Application User in Dynamics 365 | Magnetism Solutions | NZ (Auckland, Wellington, Christchurch and Dunedin) Publish Customization: Many times, we make changes in the CRM and forget to publish those customizations, so in such cases, CI/CD provides you with this task which publishes all the customizations (if left any) through the pipeline run itself. Set Version: This task is added to increment your build number of the solution’s version number after every run of your build pipeline, to showcase how many times the commits are made to the solution being imported. Export Solution: This task is responsible for exporting the solution from CRM which then creates a zip file for the same. Publish Artifact: This task is correlated with the above task, the zip file which is created in the above task is saved in the pipeline which is inbuilt in the DevOps itself. Note: Use the Publish Pipeline Artifact task instead of using Publish Build Artifact, as it is deprecated.) Check Solution: This task works as a Solution Checker which is present in CRM. If any issues are found, then it doesn’t stop the running of the Build Pipeline, but it tells you the number of issues your Solution has and at what level the Issues are (i.e., High, Medium, Low). Unpack Solution: We all know that we don’t use zip files everywhere, so in such a case for extracting those zip files we make use of this task and store those extracted files in the Repos for future use. For various predefined variables and default locations in DevOps refer to – Predefined variables – Azure Pipelines | Microsoft Docs Release Pipeline Click on the Releases from the left side panel à Click on Create New Pipeline à you will be provided with a list of options to choose from, select Empty Job and name your Stage to showcase what the stage is performing. Also, name the Release Pipeline specific to the task.
Disable LookUp Hyperlink in D365
Introduction While working with a Read-only grid in Dynamics 365, if a user clicks on the lookup reference it takes you to the lookup reference record, while the intention was to navigate to the actual record. Let’s see how we can disable the link to the lookup reference. Solution As you can see in the screenshot below, we have link references in 4 different fields Name Customer Service Executive Customer Email (Email-link reference) Microsoft has recently released a new feature that allows the user to disable the Lookup reference link. Follow the steps below to disable the lookup reference link: Step 1: Open the solution and navigate to the entity for which you want to disable the link. While editing the solution please use the classic solution editor as all controls are not visible in the Modern UI. Step 2: Click on control section on the entity form and look for “Power Apps Read-only Grid” Step 3: Change the configuration and select the configuration for the (web, Phone, Tablet). In configuration, select the Navigation type allowed and edit it. Step 4: Set the bind to static options to “Primary only” Step 5: Save and publish the solution and refresh the home grid, you will be able to see the new changes. Conclusion This feature will help you avoid clicking on the wrong reference link on record. Thank you, Subhash for your inputs on this blog.
Introduction to Predictive Lead Scoring
Problem Definition: An organisation is always looking for improving its sales or efficiency of work. If an executive can foresee which lead is most likely going to be converted to an opportunity it would help the executive to focus and prioritise the leads accordingly. Predictive lead scoring uses a predictive machine learning model to calculate a score for all open leads. The score helps salespeople prioritize leads, achieve higher lead qualification rates and reduces the time that it takes to qualify a lead. Using this score, you can: Identify quality leads and convert them into opportunities Spend time on leads that have low scores and convert them into possible opportunities For example, say an executive has 2 separate leads named Lead 001 and Lead 002 in his/her CRM to work upon. Post implementation of lead scoring model, scoring model applies a score of 90 for Lead 001 and 30 for Lead 002. By looking at the score, you can predict that Lead A has a greater chance of being converted into an opportunity, and you can engage it. Also, there are other factors that can help you to improve the score such as by referring at the top reasons influencing the score and deciding whether to improve this score. Important Notes and Prerequisites before using predictive Lead scoring: Advanced Sales Insights features must be enabled in your CRM system Your CRM must have minimum of 40 qualified and 40 disqualified leads within the past 18 months If you’re using predictive lead scoring that pertains to a version prior to 2020 release wave 2 for Dynamics 365, delete the model. Otherwise, the previous version of the model will be applied on all leads in your organization, and the newly generated models won’t have any effect on the leads From 2020 release wave 2 for Dynamics 365, the application writes the lead scoring related data to msdyn_predictivescore table and has stopped writing to the lead table. This table is common for both lead and opportunity scoring. You can add custom fields to generate an accurate model for predictive lead scoring. The custom fields can be specific to your organization so that you can decide the impact of the outcome. Lead Scoring Grading: You can set the grading points structure as per your feasibility. The figure below shows that the grading points are editable. Lead Scoring Widget: This widget displays your lead score depending on the factors mentioned in your model. Below is the location on your lead form where lead scoring widget is visible. One would see the below image when you do not have a published working Lead scoring model in the system. Once you have the working lead predictive logic implemented, you will see the lead score widget as below. The image reference https://docs.microsoft.com/ Conclusion: PredictiveLead scoring would help organisations to focus on high scoring leads and also would let business understand the reasons behind low scoring or low success rates of lead conversion to an Opportunity. This would immensely help the organisations to take appropriate steps in improving the performance Thank you, Ashitosh for bringing this topic to light.
Join Teams meetings from in-app appointments
Introduction Earlier we used to book an appointment either by using Microsoft Teams or from MS Outlook. But now we can book an appointment from in-app appointments, also we can add links, lists and other rich text in description with new rich text editor control. These features are introduced by Microsoft in Microsoft 2022 release wave 1 plan. Description Go to Activities and click on Appointment Enter Subject as in Topic of the meeting. Enter Email id in Required Field which indicates the email id of required person to join the meeting. Enter optional Email id and Location. Toggle Teams meeting to Yes if you are scheduling an appointment as Teams meeting. Select Company in Regarding field and then Enter Start Time and End Time. Enter details in Description, you can also share any web link with participants Click on Save. Now you can see Teams link for the meeting you scheduled. You can use this link to join the meeting Conclusion By including this feature, you can easily add Microsoft Teams meeting from an appointment in your model-driven app. Also, you can also join a Teams meeting with a single click from the appointment or the timeline control. Sincere Thanks to Surbhi for bringing this topic to light.
Why were Modern Approvals introduced for Project Operations?
Problem Definition: Time entry approvals usually used to be an issue while approving when they were bulk in number. When the Project Managers (PM) used to approve more than 100-to-200-time entries, a lot of them used to get stuck in the queue and there used to be a rigorous process to go back and check which time entries are approved and which are still pending to be approved even after approving all of them. Solution: Microsoft has introduced Modern Approvals for such issues and so has introduced it for Project Operations. The way it works is, first we need to enable it on the Project Operations environment. PN: once enabled, cannot be disabled. Then we need to set threshold. This threshold decides the number of time entries to be approved synchronously. The prescribed Threshold from Microsoft is 5. Now when the project managers approve a set of time entries, let’s say for e.g., 100-time entries they are all put in an approval set and are tried to approve again and again until all the time entries are approved successfully. Below is where you can check the project related approval sets. Nevertheless, there can be some instances where there are failures in approving the time entries. These failures logs are also maintained in the approval set logs. When the time entries are approved, and the approval set record is created, it is in the active state and can be viewed in the active approval set’s view over the project. As soon as all the time entries in the approval set are approved, the state of these approval sets become inactive and can be viewed in the inactive approval set’s view over the project. Conclusion: Modern approvals have turned out to be a boon for the project managers when it comes to this tedious process of time entry approvals and can now trust the system that all the time entries will be approved successfully.
Quick Tip: How to apply non-working hours from Calendar Template in PSA / Project Operations
Problem Definition: It is generally thought by Project Operations / PSA (PO/PSA) users that the non-working hour cannot be copied via 1 Template resource to another resource when the Calendar Template is assigned. It is only assumed that the working shifts and the weekends marked are the only ones that gets copied. But that is not the case. There is a minor catch in how we do it. Following tip will help you make the non-working hours copy when a Calendar template is applied to a resource that contains a template resource which has the non-Working hours in the Work hours. Solution: Perform the following steps to get to the required solution mentioned in the Problem Definition. Step 1: Add a non-working hour in the template of the resource by following the screenshots below: Step 2: Click on the Template Resource and add a non-working hour as shown below in the Screenshot. Step 3: Select the Date range that you want to mark as non-working days. Mark them as all day. In my case, I have selected 12-July as the non-working day. The Calendar gets marked with a non-working day as shown below. Step 4: Navigate to the Calendar Template again and Remove the Calendar Tempalte Resource and Save the Calendar Template as shown in the below screenshot. Step 5: Re-add the same Calendar Template Resource again and Save the Template. Step 6: Navigate to the Resource entity and select the resources whom you want to apply the Calendar Template and apply as shown in the below screenshot. Step 7: Final step to validate if the resource which was applied with the Calendar Template is having those non-working hours as the Calendar Template resource had. This blog reflects my personal findings and based solely on my experience of using PSA/PO for last 4 years. For those who are looking for a platform that can track and manage the entire procedures of sales and project managements, I would highly recommend them to try Microsoft dynamics 365 for project service automation. This helps in keeping all the ONLY ACTIVE projects in the view and the ones that needs our action and attention.