Webcraft Solutions

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.

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.

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.

Unwinding Sub-Contracting in Dynamics 365 Project Operations

Problem Definition: Sub-Contracting was a much-needed functionality in any project management platform which Project Operations was missing. With the latest updates from Microsoft, we now have Sub-Contracting feature available which can leverage creating contracts for the Sub-Contractors\Vendors with whom we work. Solution: Let’s look upon how do we enable this feature on Project Operations environment and create a Subcontract. Please follow the below steps to enable, configure and then create a Sub-Contract for a vendor. PN: This feature is still in preview and hence, there are continuous updates coming from Microsoft to enhance this feature. Enabling: The first step is to enable the Sub-Contracting feature in Project Operations. In order to enable this feature, Step 1: Navigate to Settings Area and then go to Parameters and Open the Parameter record as shown below. Step 2: Click on “Enable SubContracting” from the Feature Control button in the Ribbon Control. Just remember, once this feature is enabled, it cannot be disabled. There is no harm with that said in enabling this feature. When the Sub Contracting is enabled, you shall start seeing Purchasing section in the Projects Area as shown below. The above 2 steps will enable SubContracting feature on your Project Operations environment. Also, this feature is only available for now on the Project Operations Lite deployment version. This will also slowly get enabled for the integrated deployments of Project Operations. Configuration: There are some configurations that we need to do or I must say some details that are required to create the Sub Contracts should be present. Let’s look at what are those. Config 1: Create an account of type Vendor. Config 2: Attach the related Resources (So called Contacts here) to the Vendor created as shown below. Config 3: Create a Vendor Price List. Create a Contract: Let’s start creating a Sub Contract. Step 1: Navigate to Purchase Section on Project area ,click on Sub Contracts and click on New Button as shown below: Step 2: Fill in the information in General Tab as shown below. Step 3: Create the Subcontract Lines and fill in the details in the Quick Create form that opens up as shown below. Step 3: Add a Sub Contracting Price List as shown below: Your Sub Contract is ready. Now when you assign the resource from a Vendor onto the project, this Subcontract comes to light. When there are now time entries from this resource the subcontract shows actuals over it.

Project Task opening issue resolved by Microsoft in Dynamics 365 Project Operations

We often used to face issues while opening the Project Tasks in Project Operations (PO). We had to play a lot of tricks in order to open the schedule. Microsoft is consistently putting in efforts on making Project Operations, one of its successful tools to enrich it with tons of brilliant features and make it more user friendly. One of the major feature resolutions provided in the latest release provided by Microsoft was for opening the Project Tasks (Schedule) Seamlessly. Of course there are certain tweaks to be made in order to make it work in your browser. In this blog we will look at those tweaks and settings that would be needed to enable that feature.

Upgrade to Dynamics 365 Project Operations from Dynamics 365 Project Service Automation

Some exciting news for the users who are planning to upgrade from Dynamics 365 Project Service Automation (PSA) to Dynamics 365 Project Operations (PO). Its been a long awaited news Dynamics community and PSA/PO fans are waiting for. Well Microsoft has pulled up the curtain on how the release will happen. First news before we look in to how the upgrade will work is that it will work for Dynamics 365 Project Operations Lite Deployment customers only. It will be released with 2021 release wave 2. The release will happen in 3 stages: Stage 1: December 2021 Microsoft is targeting the customers that do not have any dependencies on WBS Structure or any of the related entities to WBS. Stage 2: In April wave, Microsoft intends to support the customers who have less than 500 tasks in WBS Stage 3: Post April wave, customers who have bigger projects or more than 500 tasks will be taken up. Conclusion: Transformation has begun and is soon going to be available. Customers can slowly start to migrate based on where they actually stand with the project size and needs.