Webcraft Solutions

Project Operations vs Project Service Automation, A Seamless Comparison to Read

We know that PSA is now known as Project Operations. Well, it’s not just a name change but also some significant improvements that Microsoft has brought in. The following blog will take you through the differences between PSA and Project Operations. The upgrade from Project Service Automation to Project Operations is going to be delivered in three phases. Below are the major changes which will be seen after the upgrade is complete. In this phase, the dependency on WBS has been cut off for projects. With all the modifications from phase 1, we even have WBS that is a part of the project operations limits that are currently supported In addition to the enhancements from phase 2, WBS also includes support for the Project desktop client and extends beyond the present scope of Project Operations. Let’s delve deep in feature wise comparison between PSA and Project Operations. 1] Project Templates: They help you generate the WBS structure from an already pre-defined WBS structure in the form of a template. Project Service Automation: ✔️ Included You can create a project template as shown in below image in PSA: After saving this record, you can add the record while creating a new project as shown in the below image. You can also select ‘Is Template’ field to save the current project as a project template. Project Operations:   Not included This feature is not included in Project Operations, but the same functionality can be done with the ribbon button on the Project form named ‘Copy Project’. With this all the task information and the project properties get copied in a new draft project. 2] Project work breakdown structure (WBS) integration with desktop client: A project management tool with automated scheduling, resource management, and built-in reporting is Microsoft Project Online desktop client. Project Service Automation: ✔️ Included This feature is very essential in PSA as with the capabilities of desktop client, Task management can be done efficiently. There is a ribbon button to integrate the system as shown: Project Operations:   Not included This feature is not there in Project Operations as it has OOB integration with Project for the web. 3] Constraints – Start no earlier than, finish no later than: When you add a constraint on the tasks it forces you to start or end on that date even if the schedule is changed. Constraint is very useful, but one needs to be careful about the dates Project Service Automation:   Not included This is not available in Project Service Automation and is possible if integrated with Project Desktop Client. Project Operations: ✔️ Included This feature restricts the resource to complete the task start and finish the task in the given time. When a constraint is set your calendar icon gets a cross sign stating that it is restricted. Example: If you select Constraint type as ‘Finish No Later Than’ and the Finish date is set as 3rd February 2023. The task then needs to be completed by the specified date. 4] Milestones – Tasks with zero duration: Milestones are key points in the project timeline and serve as markers to indicate that certain objectives have been met and provide an opportunity to review and assess progress. Milestones are typically used to track the progress of a project, to communicate with stakeholders, and to help manage risks. Project Service Automation:   Not Included This feature is not available in PSA and is exclusively available in Project Operations Only. Project Operations: ✔️ Included Adding a milestone task with zero duration is now possible in Project Operations unlike PSA. Just add ‘0’ in the duration field and set same start and finish date as shown below: And now the milestone symbol can be seen as shown in the below image: 5] Resource driven tasks will respect the availability of assigned resources Resource-driven tasks are scheduled based on the availability of the resources assigned to them. This means that the start and end dates of a task are determined by the availability of the necessary human, equipment, or material resources. This helps ensure that tasks are completed efficiently and within the given time frame. Project Service Automation:   Not Included This feature is not available in Project Service Automation. Project Operations: ✔️ Included The system considers the availability of resources when scheduling tasks and adjusts task dates accordingly. This helps ensure that projects are completed on time and within budget, and that resources are utilized efficiently. It takes into consideration the work hour template of the assigned resources and changes the Start and Finish date according to the availability. 6] Time-phased editing – Edit plans and work on a day-by-day basis This feature provides a detailed view of the project schedule, with tasks and their associated work broken down into daily increments. This level of granularity enables project managers to adjust the project schedule based on daily progress and to account for changes in resource availability or task dependencies. Project Service Automation: ✔️ Included With the help of this feature, we can change the efforts on the resource assignments grid on a day-by-day basics and even by week or month. This makes work easy as changes can be done on the grid itself. Project Operations:   Not Included This feature is not yet added in the Project Operations, but we can expect this update in later phases. 7] Automatic/manual scheduling – Use the Project scheduling engine to schedule tasks automatically or manually Project Service Automation: ✔️included The scheduling of tasks for leaf nodes is determined by the task mode. Every activity supported by PSA has two task modes: automatic scheduling and manual scheduling. Automatic Scheduling: Scheduling engine uses the rules on task attributes to determine the schedule for the task. Manual Scheduling: It stops the engine from calculating the values of other scheduling attributes. Project Operations:   Not Included This feature is not available in Project Operations. 8] Edit large projects directly in the user interface: There is no limit to the size of plans that are editable Project Service

Boost Cloud Flows with Process Insights

Problem Definition: Building cloud flows of acceptable quality, should be in the mind of every Power Automate developer. After hearing this guideline, one would naturally ask what makes a flow ‘good-quality’. Furthermore, how can we be aware whether a flow is working up to its full potential? This blog shall provide the answers to these types of questions. After all, our goal is not only to automate processes in Dynamics 365, but to make them efficient – every connector used should serve a purpose, that the flow cannot do without. To begin your cloud flow investigation, first start off with a sample cloud flow. Solution: Once you are done opening your cloud flow in Power Automate, click on ‘Improve your flow’. Your cloud flow will keep track of its run history – This can help you analyze if your flow has improved, or if any new issue has been discovered during the different runs of the flow. Once clicked on, the flow’s downloading process will start. After the download is completed, you will see a pop-up stating your report is ready. A Power BI dashboard will be opened, where you can see all information about your flow, such as a flowchart, average case duration, the custom attributes that have been used and much more! Interestingly, you can even add your own custom filters if you want to keep track of differences among different versions of the same cloud flow. The screenshot below can give you a better understanding on how the dashboard will look like. Out of all the components of the dashboard, let us explore the flowchart in better detail. Notice how your flowchart will contain nodes and arrows, highlighted differently, with different thicknesses and will be marked with labels and number. Here is a brief explanation of the meanings of the labels. An arrow with a greater thickness indicates that the step is frequently executed, as compared to steps which have a thinner arrow. In addition, the darker the node, the longer will be the execution time. As far as the labels are concerned, the number at the top indicates the number of seconds it took for a particular step to execute, and the percentages show the probability of visiting a specific node. Consider the Following Points: Conclusion: To fully understand how the ‘process advisor’ works, just play around with the dashboard, and try using it on any flow that you currently have on your CRM environment. Then, try making minor changes on the flow, and notice the changes that take place in the dashboard. Jot down your observations and make gradual improvements, when inspecting the next cloud flow given to you. Happy learning! References Used: https://docs.microsoft.com/en-us/power-automate/task-mining-tutorial Thank you, Tanmay for your inputs.

Searching on a table is easier with Dataverse Search in Dynamics 365 CRM

Introduction: In Dynamics 365 CRM, we have different search options to search data. As we have hundreds of records of different table, Relevance Search aka Dataverse Search is a global search box that gets the record information across all the tables. There is a new feature introduced in 2022 release wave one for Dynamics 365 CE on Dataverse search. This feature will help users to search & filter for records in model-driven Power Apps. This will make Dataverse Search easier than before to find the data.  Description: What is Dataverse Search? Dataverse Search is a great tool to find quickly records across all the tables. It delivers fast and comprehensive result to all tables, sorted by relevance. In model-driven apps, this Search Box is available in the header in the environment. If we opt into early access of 2021 release wave 2 on a production environment, Dataverse Search is enabled automatically. But if not, we need to enable the Dataverse Search. How to Enable & Configure Dataverse Search: – Before Enabling Dataverse Search: – After enabling Dataverse Search: – Dataverse (Relevance) Search is used by the Dataverse Search Index. You can manage & configure the index from the Overview section of a solution. Under Manage Search Index: – It will show us all the tables which are present in the current solution. When users select the tables for indexing, it will show the number of fields that are included in Dataverse Search. These columns are dependent on the Quick Find View. The limit for Columns indexed in this environment is maximum 950 per organization. Users can enable or disable indexing for a specific table from here and can adjust which columns are included in Dataverse Search within the Power Apps portal. Conclusion: With this new update in 2022 release wave one for Dynamics 365 CE, it is just easy to find the record, it also helps minimize the no. of clicks required to find or to get there. References: – Thank you, Shubham Dhumal for your inputs.

How to Create App Using Image

Problem Definition: Nowadays, things are getting much easier and the low-code approach is focused on a larger scale. To create a canvas app, you need to have good knowledge regarding the same. But when we need to create a single form, it used to be a time-consuming process. If any person doesn’t have any idea how the canvas app is used and if he just had to create a form, then it used to be a difficult task. To reduce this task PowerApps introduced a new feature named “Image” which is in Preview Stage. What is an Image? It is an App feature that is used to create a Canvas app by uploading an image of an app or form in it. This will help makers of all skill levels easily turn their designs into working apps and connect them to a data through few easy steps.  Solution:  Steps involved in Image: Conclusion: This feature is easy to use but has many limitations too.

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.

Compressing Image Attached in Notes

Problem Statement: Sometimes user has to upload or attach image inside Notes Section of form. When user uploads any image in Notes, dynamics stores image in Base 64 format. As frequency of uploading/attaching images increase then it will also increase the size requirement in CDS. To reduce the size requirement in CDS, we can compress image while storing it in CDS. Solution: When user attaches Image in Note(annotation), we can trigger Post Operation Async Plugin to Compress Image. When image gets attached to Notes, it gets stored as Base 64 inside “documentbody” field. So, we have to trigger Plugin on ‘Create of Notes’, get Base 64 code of Image, Compress Image and Update New Base 64 Code in Notes. Following Plugin code Converts Base 64 Code to Image format compresses Image without loosing quality and then reconvert it to Base 64 code: Plugin Code: (JPEG) Dynamics store Image attached in Note(annotations) in Base 64 form. Image Body will be stored in “documentbody” field and Image Type will be stored in “mimetype” field. Get Image Body and Image Type using following code: Now, create following method, which will compress Base 64 image. We have to pass Base 64 code and quality to custom method which will be used to compress image. Using this method, we can compress image till 10% – 90%. So, pass Image Quality between 10-90. Add Encoder method in class as it is used in “Base64StringImage” method. Once Base 64 Image Code gets compressed, our method will provide new Base 64 Image Code. Store it in new variable. Now, Update Document Body of Note(annotations) with new Document Body. Plugin Step: After Registering our code as New Plugin Assembly, add Step on Create on annotation (Notes). Make Execution Mode as Asynchronous as there will be chances where multiple users will upload Images as same time. Example: Image with Size: 1465 KB Uploaded Image in Notes: Image After Compression: Conclusion: Using above the plugin on Annotation Entity we can effectively compress image size by 10% to 90%. This will help us to save CDS size. Thanks Mayur Hande for your inputs on this blogs.