Goals in Project for the Web for Project Operations
Problem Definition: This blog is regarding a new feature named ‘Goals in Project for the Web’. In Project for the Web, it was not possible earlier to have an alignment within the team and set the priorities for the same. What are Goals in Project for the Web? You can simply establish and monitor objectives for your project using the objectives tool in Microsoft Project. You can also link these goals to specific tasks so that the work you describe is in line with your goals. Solution Limitation Thank you, Sankalp for your valuable inputs for this blog!
Automation Using Playwright – Part 2
Introduction: Playwright is an open-source automation tool that allows developers to write reliable and efficient browser automation scripts. In Dynamics 365 implementation projects, automated end-to-end testing plays a crucial role, streamlining the process by rapidly validating code, replicating business workflows, and expediting code deployment with enhanced reliability. In the past, configuring automated tests has proven to be a challenging task. This article aims to introduce Playwright as a solution for end-to-end automation testing specifically tailored for Dynamics 365 Customer Service. The Playwright Library offers a unified set of APIs for browser management and interaction, while Playwright Test further enhances the experience by introducing a comprehensive, fully managed end-to-end test runner. It was developed by Microsoft for automating web browsers to provide a better alternative to other automation tools. Advantages Of Playwright: Playwright Architecture: Playwright works on Web socket connection protocol, it means once you will trigger the test, the code will be converted into JSON format and will be sent to the server using Web socket protocol. Browser Contexts: Playwright operates within the concept of browser contexts. A browser context represents an isolated environment within a browser instance. You can think of it as a separate tab or window in a browser. Each browser context has its own cookies, local storage, and session state. This isolation allows for parallel test execution and prevents interference between different automation tasks. Browser: Browser is encapsulated in a separate browser instance. You can launch multiple browser instances simultaneously. Playwright takes care of downloading and managing the appropriate browser binaries for you. Browser and Page Instances: Within a browser instance, you can create multiple page instances. A page corresponds to a single tab in a browser. Each page has its own DOM, network, and JavaScript context. Drivers: Playwright uses a driver architecture to communicate with browsers. Each browser has its own driver, which is responsible for controlling the browser and executing commands. The drivers interact with the browser’s protocol to perform actions and retrieve information. Protocol Clients: Playwright uses Protocol Clients to communicate with the DevTools protocol of the underlying browsers. These clients are responsible for sending and receiving messages between Playwright and the browser. Protocol Clients enable Playwright to control browser behavior and retrieve data from the browser, such as DOM structure, network activity, and more. Language Bindings: Playwright provides language-specific bindings for JavaScript, Typescript, Python, and C#. These bindings allow you to write automation scripts in your preferred programming language. (Typescript is the most recommended way though) The language bindings provide a high-level API that abstracts away the complexities of interacting with the browser’s Dev Tools Protocol. Automation Scripts: You write automation scripts using Playwright’s API in your chosen programming language. These scripts can perform various tasks such as navigating to web pages, interacting with page elements, filling out forms, capturing screenshots, and more. The scripts execute commands through the language bindings, which in turn communicate with the appropriate Protocol Client and browser driver. Cross-Browser and Cross-Platform: Playwright is designed to work consistently across different browsers and platforms, making it a powerful choice for cross-browser testing and automation. Comparison with other popular automation tools: Playwright, with its cutting-edge design and powerful capabilities, stands as the pinnacle of modern web automation tools, surpassing even the most popular alternatives like Selenium and Cypress. Here’s why Playwright shines as the preferred choice for browser automation: Unmatched Cross-Browser Versatility: Playwright effortlessly outperforms its competitors with its support for multiple browsers, including Chromium, Firefox, and Web Kit. This breadth of compatibility makes it the unbeatable champion for cross-browser testing, ensuring your web applications work seamlessly across various browser environments. Sleek, Multi-Language Compatibility: Playwright offers an elegant solution for developers of all backgrounds, with language bindings available in JavaScript, Python, and C#. This flexibility empowers you to harness the power of automation using the language you’re most comfortable with, amplifying your productivity. Swift, Asynchronous Automation: Say goodbye to slow, outdated automation scripts. Playwright embraces the future with its asynchronous approach, effortlessly handling complex web interactions with grace. This modern pattern allows you to create efficient, high-performance automation scripts that execute tasks with unrivaled speed. Stability through Isolation: Playwright’s architecture brings stability to your automation endeavors by providing isolated browser contexts. This innovative feature shields your tests from external interference, ensuring the reliability of your automation suite even in the most demanding scenarios. Incomparable Speed and Efficiency: When it comes to execution speed and efficiency, Playwright leaves its competition in the dust. Thanks to its exceptional performance optimization, your automation tasks complete swiftly and effortlessly, keeping your testing and development processes on the fast track to success. Future-Proofed Technology: Playwright’s commitment to staying at the forefront of browser automation technology means you’ll always have access to the latest features and capabilities. Its continuous development and frequent updates ensure that you’re equipped to tackle any automation challenge that arises. Conclusion: Playwright emerges as the premier choice for modern web automation, surpassing its peers with its cutting-edge features and exceptional capabilities. With unrivaled cross-browser support, multi-language compatibility, lightning-fast asynchronous automation, and stability through isolation, Playwright empowers developers and testers to achieve superior results efficiently and effectively. Its commitment to staying at the forefront of technology ensures that you’ll always be equipped to tackle the evolving challenges of web automation. Choose Playwright to elevate your automation efforts and embrace the future of web automation. Thank you, Aditya for your valuable inputs!!
Automation Using Playwright-Part 1
Prerequisites: Visual Studio Code: Ensure you have Visual Studio Code installed on your machine. You can download it from the official website: https://code.visualstudio.com/download Node.js: Ensure you have Node.js installed on your machine. You can download it from Node.js official website. https://nodejs.org/en/download To check if the node installation is completed: Playwright project setup: Here you go, playwright has been successfully installed for your project. Opening the project in VSCode: In a default Playwright project, the folder structure is typically simple and flexible, allowing you to organize your automation scripts, configuration files, and other resources according to your needs. Let’s break down each component of this folder structure: It will contain an example.spec.ts file to refer to how a test file normally looks like Run the example test file: npx playwright show-report Your report will be generated and will open automatically in a browser and will something like shown in the above image. You can expand each of the tests and view the execution in detail. Config file walkthrough: This playwright.config.ts file is a central place to specify test-related settings, such as test directories, test reporters, test execution modes, and more. We’ll have a look at it in detail: Imports: The configuration file imports necessary modules from Playwright Test to define the configuration. Environment Variables (Optional): It includes the option to read environment variables from a file (using dotenv) if you need to set environment-specific configuration. Configuration Object: defineConfig() is used to define the Playwright Test configuration object. testDir: Specifies the directory where your test files are located. In this example, it’s set to ‘./tests’. Parallel Execution: fullyParallel allows running tests in parallel for improved performance. CI-Specific Configuration: forbidOnly and retries are configured based on whether the tests are running on a Continuous Integration (CI) environment. It forbids the use of ‘test.only’ and retries failed tests on CI. Number of Workers: The workers setting defines the number of workers for parallel execution, using one worker locally and potentially more on CI. Test Reporter: Specifies the test reporter format, in this case, ‘html’. Shared Settings: The use object contains shared settings for all test projects. For example, you can set a base URL for your tests. Test Projects: The projects array defines different test projects for different browsers (Chromium, Firefox, WebKit, etc.). Each project can have its specific configuration, such as browser settings. Local Development Server (Optional): The webServer section allows you to run a local development server before starting tests. This is useful for testing against a locally hosted web application. Feel free to customize and adapt this configuration file to your specific testing needs. You can uncomment and modify sections as necessary, depending on your project’s requirements and testing environment. You can start using Playwright with Typescript in this manner. I hope this makes it easier for you to set up and begin using Playwright without any worries. Thank you, Aditya for your valuable inputs for the blog.
Now Import Projects from Microsoft Project Desktop Client in Project Operations
Problem Definition: In contrast to Project Service Automation, where importing projects is made easy via a ribbon button, it was previously not possible for current Microsoft Project Desktop Client users to do so in D365 Project Operations. Project for the Web is supported by D365 Project Operations, although not all of Microsoft Project Desktop Client’s features are available. It was imperative to establish a connection between the two due to the system’s gap. Solution: Steps to import a file in Project Limitations: Project for the Web works well for the majority of projects, but it doesn’t totally replace Project desktop. The following features cannot be migrated or supported. Before you begin importing your project, make sure it doesn’t rely on these features. Cross-project dependencies, manual tasks, recurring tasks, subprojects, and even some types of selective constraint types like As late as possible, Start no later than, Finish no later than, etc. are a few characteristics. There are many such features which are not supported while importing. Refer given Microsoft link for more information: https://support.microsoft.com/en-us/office/move-your-project-from-project-desktop-to-project-for-the-web-143ab391-002e-451a-aedb-3b6fa1f6ab8b#bkmk_featuresthatdontmigrate Conclusion: Users will have the freedom to utilise any project planning tool of their choice, including Project Desktop Client and Project for the Web, thanks to this import feature. This functionality is a good complement to all the other functionalities in the product and will help D365 Project Operations meet more customer requests. Thank you, Sankalp for your valuable inputs.
Filter Grid data, and Save results as a View
Introduction: Views in model-driven apps specify the data that is tabulated and displayed on a grid page. Views that have been developed by an administrator, shared with others, and normally can’t be changed are called System Views. Dynamics 365 2022 release wave II includes a new functionality that provides the ability to save the filter conditions on a grid as a personal view as well as enables you to manage and share views. You can save time with this effective feature. Following types of views are available in model-driven apps: How to Filter grid data, and save results as a view? To select the filter condition, click on the Edit Filters To remove a condition, select More commands (…) next to the row, and then select Delete To add one or more conditions, select Add option The following options are available to add conditions in the filter editor To add a condition, select Add row, To select a value, click on the down arrow After editing the view filters, select Apply to see changes on the grid page How to Save edits as a new view? On the command bar, select More commands (⁝) > Create view > Save as new view Enter a new name for the view, and then select Save How to Manage and share personal views? To manage and share views, turn on the modern Advanced find options. Click on the Save button In the view selector, the Manage and share views option is available Select the Manage and share views option Select View commands (…) and then choose the Share option Select the user to share the view Set the permissions Select Share option Conclusion: This feature is helpful because it increases Productivity by preserving the quick find filter conditions as a personal view and it also optimizes time. References: – Filter grid data, save results as view | Microsoft Learn Thank you , Amisha for your valuable inputs
Power Platform: CI/CD Pipeline
CI/CD pipeline containing Azure DevOps is well known and is necessary for the automated deployment of solutions from the development environment to the user acceptance test and from the user acceptance test to the production environment. Solution: – In Dynamics 365-2022-release wave 2, Microsoft introduced a feature called Power Platform Pipeline for deployment of Solution from Dev to UAT and UAT to Prod. To deploy the feature, no additional integration would be needed. To use the feature, your tenant only has to be configured. Prerequisites: – Steps to configure the environment: – NOTE: – The development environment and target environment must have Type and Region same and environment as a managed environment. 2. Give the name to your environment select region and type same as the “Host Environment” 3. Enter the URL to your Environment and give the access to D365 apps and select whatever you want to choose, and then click on “Save” button. 4. Repeat the steps for Target environment as well. 2. Give the name to your environment select region and type same as the “Host Environment” 3. Enter the URL to your Environment and give the access to D365 apps and select whatever you want to choose, and then click on “Save” button. 4. Repeat the steps for Target environment as well. Steps to setup “Host Environment Configure Pipeline: – Note: – if you have one more environment like production then add one stage in that fill the pervious deployment stage “UAT environment” so it will do UAT to Prod movement of a solution. Deployment of your Solution. Conclusion: – You can quickly and easily deploy your solution into a development-to-UAT environment. We won’t need to manually perform it or need Azure Integration with CI/CD. The solution migration will be a little bit simpler thanks to this automation method. Thank you, Vijay Kumar for your inputs