Latest Microsoft Dynamics 365 Blogs | CloudFronts

How to Use Metadata Search in Visual Studio for Dynamics 365 Finance & Operations

When working on big projects, it can be hard to quickly find classes, methods, or properties spread across different libraries. Searching through files one by one takes too much time. This is where metadata search in Visual Studio helps. It lets you explore and navigate types from external libraries (like .NET assemblies or NuGet packages) even if you don’t have the source code. Visual Studio creates a readable view of the compiled metadata, so you can instantly see definitions and details, almost like built-in documentation. References Metadata search – Visual Studio Usage -In Visual Studio, go to Dynamics 365 > Metadata Search OR Ctrl + R, Ctrl + S.-Start typing the name of the element you are looking for.-Results appear as you type.-Double-click a result to go directly to that metadata or code.-You can also right-click to add items to your project. You can filter via the follow criteria: To conclude, Metadata search in Visual Studio is a fast and easy way to find code and metadata in Dynamics 365 F&O projects. Using it saves time, reduces frustration, and helps you understand and work with large projects more efficiently.If you require additional support or have specific questions about your ERP setup, please don’t hesitate to contact us for personalized guidance. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com.

Share Story :

Monitoring Job Queues: Setting Up Failure Notifications within Business Central

A job queue lets users set up and manage background tasks that run automatically. These tasks can be scheduled to run on a recurring schedule. For a long time, users had a common problem in Business Central—when a job queue failed, there was no alert or warning. You’d only notice something was wrong when a regular task didn’t run for a few days. Some people tried to fix this by setting up another job queue to watch and restart failed ones.But that didn’t always work, especially if an update happened at the same time. Now, Microsoft has finally added a built-in way to get alerts when a job queue fails.  You can get notified either inside Business Central or by using Business Events. In this blog, we’ll look at how to set up notifications directly within Business Central.  Configuration Search for “Assisted Setup” in Business Central’s global search. Scroll down till “Set up Job Queue notifications”. Click on Next. Add the additional users who need to be notified when the job queue fails along with the job creator (if required). Choose whether you want the notification to be in-product or using Business Events (and Power Automate). For now, I’m choosing in-product. Choose the frequency of the notification, you can have it either when a single job fails or you can have it after 3-5 jobs have failed (as per settings) Click on Finish. Now for testing I’ve run a job queue and on the home page, I get the following notification. Clicking on “Show more details” give me a list of all the failed job queues. To conclude, this new notification feature is a much-needed improvement and a good step forward. It helps users catch job queue failures quickly, without having to manually check every day.  However, the setup and experience still feel a bit buggy and lacklustre. With some refinements, it could be a lot smoother and more user-friendly.  If you need further assistance or have specific questions about your ERP setup, feel free to reach out for personalized guidance. I hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com.

Share Story :

Simplifying Access Management in Dynamics 365 Business Central Through Security Groups

A Security Group is a way to group users together so that you can give access to all of them at once.For example, if everyone in the Finance team needs access to certain files or apps, you can add them to a group and give the group permission instead of doing it for each person. In Office 365, Security Groups are managed through Azure Active Directory, which handles sign-ins and user identities in Microsoft 365.  They help IT teams save time, stay organized, and keep company data safe. The same Security Groups you create in Azure Active Directory (AAD) can also be used in Dynamics 365 Business Central to manage user permissions. Instead of giving access to each user one by one in Business Central, you can connect a Security Group to a set of permissions. Then, anyone added to that group in Azure AD will automatically get the same permissions in Business Central. They’re also helpful when you want to control environment-level access, especially if your company uses different environments for testing and production. For example, only specific groups of users can be allowed into the production system. Security Groups aren’t just useful in Business Central; they can be used across many Microsoft 365 services. You can use them in tools like Power BI, Power Automate, and other Office 365 apps to manage who has access to certain reports, flows, or data. In Microsoft Entra (formerly Azure AD), these groups can be used in Conditional Access policies. This means you can set rules like “only users in this group can log in from trusted devices” or “users in this group must use multi-factor authentication.” References Compare types of groups in Microsoft 365 – Microsoft 365 admin | Microsoft Learn What is Conditional Access in Microsoft Entra ID? – Microsoft Entra ID | Microsoft Learn Simplify Conditional Access policy deployment with templates – Microsoft Entra ID | Microsoft Learn Usage Go to Home – Microsoft 365 admin center. Go to “Teams & Groups” > “Active Teams & Groups” > “Security Groups” Click on “Add a security group” to create a new group. Add a name and description for the group and click on Next and finish the process. Once the group is created, you can re-open it and click on “Members” tab to add Members. Click on “View all and manage members” > “Add Members” Select all the relevant Users and click on Add. Now, back in Business Central, search for Security Groups. Open it and click on New. Click on the drill down. You’ll see all the available security groups here, select the relevant one and click on OK. Mail groups are not considered in this list. You can change the Code it uses in Business Central if required.Once done, click on “Create” Select the new Security Group and click on Permissions. Assign the relevant permissions. Now, any User that will be added to this Security Group in Office 365 will have the D365 Banking Permission Set assigned to them. Further, these groups will also be visible in the Admin Center, from where you can define whether a particular group has access to a particular environment. To conclude, security Groups are a powerful way to manage user access across Microsoft 365 and Dynamics 365 Business Central. They save time, reduce manual effort, and help ensure that the right people have access to the right data and tools. By using Security Groups, IT teams can stay organized, manage permissions more consistently, and improve overall security. Whether you’re working with Business Central, Power BI, or setting up Conditional Access in Microsoft Entra, Security Groups provide a flexible and scalable solution for modern access management. If you need further assistance or have specific questions about your ERP setup, feel free to reach out for personalized guidance. I hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com.

Share Story :

Create No Code Powerful AI Agents – Azure AI Foundry

An AI agent is a smart program that can think, make decisions, and do tasks. Sometimes it works alone, and sometimes it works with people or other agents. The main difference between an agent and a regular assistant is that agents can do things on their own. They don’t just help—you can give them a goal, and they’ll try to reach it. Every AI agent has three main parts: Agents can take input like a message or a prompt and respond with answers or actions.  For example, they might look something up or start a process based on what you asked. Azure AI Foundry is a platform that brings all these things together; so you can build, train, and manage AI agents easily. References What is Azure AI Foundry Agent Service? – Azure AI Foundry | Microsoft Learn Understanding deployment types in Azure AI Foundry Models – Azure AI Foundry | Microsoft Learnhttps://learn.microsoft.com/en-us/azure/ai-foundry/how-to/index-add Usage Firstly, we create a project in Azure AI Foundry. Click on Next and give a name to your project. Wait till the setup finishes. Once the project creation finishes we are greeted with this screen. Click on Agents tab and click on Next to choose the model. I’m currently using GPT-4o Mini. It also includes descriptions for all the available models. Then we configure the deployment details. There are multiple deployment types available such as – Global Deployments Data Zone Standard Deployments Standard deployments [Standard] follow a pay-per-use model perfect for getting started quickly.They’re best for low to medium usage with occasional traffic spikes.  However, for high and steady loads, performance may vary.Provisioned deployments [ProvisionedManaged] let you pre-allocate the amount of processing power you need.This is measured using Provisioned Throughput Units (PTUs).  Each model and version requires a different number of PTUs and offers different performance levels. Provisioned deployments ensure predictable and stable performance for large or mission-critical workloads. This is how the deployment details look for in Global Standard. I’ll be choosing Standard deployment for our use case. Click on deploy and wait for a few seconds. Once the deployment is completed, you can give your agent a name and some instructions for their behavior. You should specify the tone, end goal, verbosity, etc as well. You can also specify the Temperature and Top P values which are both a control on the randomness or creativeness of the model. Temperature controls how bold or cautious the model is. Lower temperature = Safer, more predictable answers. (Factual Q&A, Code Summarization)Higher temperature = More creative or surprising answers. (Poetry/Creative writing) Top P (Nucleus Sampling) controls how wide the model’s word choices are. Lower Top P = Only picks from the most likely words. (Legal or financial writing) Higher Top P = Includes less likely, more diverse words. (Brainstorming names) Next, I’ll add a knowledge base to my bot. For this example, I’ll just upload a single file.However, you have the option to add an sharepoint folder or files, connect it to Bing Search, MS Fabric, Azure AI search, etc as required. A Vector store in Azure AI Foundry helps your AI agent retrieve relevant information based on meaning rather than just keywords.It works by breaking your content (like a PDF) into smaller parts, converting them into numerical representations (embeddings), and storing them.When a user asks a question, the AI finds the most semantically similar parts from the vector store and uses them to generate accurate, context-aware responses. Once you select the file, click on Upload and save. At this point, you can start to interact with your model. To “play around” with your model, click on the “Try in Playground” button. And here, we can see the output based on our provided knowledge base. One more example, just because it is kind of fun. Every input that you provide to the agent is called as a “message”. Everytime the agent is invoked for processing the provided input is called a “run”. Every interaction session with the agent is called a “thread”. We can see all the open threads in the threads section. To conclude, Azure AI Foundry makes it easy to build and use AI agents without writing any code.  You can choose models, set how they behave, and connect your data all through a simple interface. Whether you’re testing ideas, automating tasks, or building custom bots, Foundry gives you the tools to do it.If you’re curious about AI or want to try building your agent, Foundry is a great place to begin. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfonts.com

Share Story :

CTEs vs Subqueries in SQL: What’s the Difference and When to Use Them?

Posted On July 15, 2025 by Rahul Bansode Posted in Tagged in , ,

What happens when a SQL query becomes too long or hard to follow?> It gets confusing> Difficult to debug> Hard to maintain or extend Use Subqueries or Common Table Expressions (CTEs) to break down the logic and improve readability. What is a Subquery? A subquery is a query inside another query.Below is a query which shows customers whose remaining amount is above the average. What is a CTE (Common Table Expression)? A CTE is a temporary result set you can reference in a main query.It starts with the WITH keyword and improves readability, especially with multi-step logic. To Conclude: Subqueries Advantages Disadvantages Quick and easy for simple filtering. Harder to read when nested. Good for one-off checks. Redundancy if used multiple times (no reuse). CTEs (Common Table Expressions) Advantages Disadvantages Clean, readable SQL for complex queries. May be slightly slower in some databases. Can be recursive. Not supported in old SQL engines. Both subqueries and CTEs help you write better SQL but choosing the right one depends on your needs. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfonts.com

Share Story :

Find Your Element’s Project in Visual Studio for Finance and Operations Developers

In Finance and Operations development, it’s common for the same object to be referenced across multiple projects for different purposes. For example, one developer might have created the object in Project A, another could be using it with slight modifications in Project B, and yet another might be working on bug fixes for the same object in Project C. In such cases, the original logical grouping of the object—essentially the reason for creating a project—can become unclear. Unfortunately, Visual Studio does not provide a built-in method to identify all the projects an element belongs to. In this blog, we’ll explore how to determine the projects associated with a specific element. Steps 1. Go to the root of your projects folder in File Explorer. This will generally be the “C:\Users\<Username>\source\repos” folder. 2. Open a command prompt from this window by typing CMD in the address bar.  3. Type “dir /s /b *.rnrproj > projectslist.txt” this will generate a text file containing the addresses of all the project files in your selected folder. 4. Type “findstr /f:projectslist.txt /m Name_Of_Your_File”, this will return a list of all the projects which contain a file with the selected name. 5. You can also use regular expressions in FindStr to further narrow down the file you want. Conclusion Identifying which projects reference a specific file in Finance and Operations can be a challenging task, especially when dealing with large and complex solutions.By leveraging simple command-line tools like dir and findstr, developers can efficiently locate project dependencies without relying on Visual Studio’s limited search capabilities. This approach not only saves time but also provides greater flexibility through the use of regular expressions, allowing for more refined searches.Whether you’re debugging, modifying, or reorganizing your codebase, this method ensures you maintain better control and organization over your projects. If you need further assistance or have specific questions about your ERP setup, feel free to reach out for personalized guidance. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfonts.com.

Share Story :

Failed to Rotate Secrets in Lifecycle Services (LCS)? Here’s What to Do Next

Working with Lifecycle Services (LCS) may feel a bit outdated as we prepare for its eventual phase-out, but the reality is that many businesses still rely on it daily. Recently, I encountered an issue while deploying to a new environment after a long break; it kept failing without a clear cause. After investigating, I discovered the SSL certificate was the culprit, which I’d run into before (I’ve shared that experience in a previous post). Naturally, I tried rotating the secrets from LCS, but it failed repeatedly without any error message or explanation. I was ready to raise a ticket with Microsoft when Copilot stepped in with a suggestion that helped me quickly resolve the problem. Here’s what happened and how you can fix it if you face the same issue. What to do: Go into your development VM and search for certificates. You’ll see there’s a certificate with the same name as your VM and if you observe the “Expiration Date” it is past your current date. This is the reason the certificate rotation is failing. Microsoft offers a simple script that can be used to generate another certificate to replace this. Go to “Shared Asset Library” in LCS. Scroll down to “Renew WinRM Certificate” and download it. Move the downloaded zip into your Development VM and extract it. Right click on “RenewWinRMCertificate” file and click on “Edit” to edit it in Windows ISE. Once this is completed, go back to the Certificates and refresh the page. You’ll see there’s another entry with the VM name and a different expiration date. At this point, you can delete the old certificate. After this, go to LCS and restart your development environment. That’s it! Now you can try to rotate your certificate from LCS. And now I can finally get back to my development work! LCS might be on its way out, but for now, it’s still a big part of many businesses’ workflows.Running into deployment failures because of an expired SSL certificate was a frustrating experience, but fixing it turned out to be pretty straightforward.After checking the certificates, running Microsoft’s “Renew WinRM Certificate” script, and restarting the environment, I was able to rotate the secrets without a hitch.  If you ever find yourself in the same boat, start by checking your certificates, it’s a quick step that can save you a lot of stress! If you need further assistance or have specific questions about your ERP setup, feel free to reach out for personalized guidance. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfonts.com.

Share Story :

Transforming Development: How Copilot is Revolutionizing Developer Productivity

Software development has been around since the 1940s.We started with punch cards, then machine language, followed by assembly, high-level programming languages, low code, no code, and now AI-assisted coding. Along the way, several tools have been developed to make programmers’ jobs easier, from card sorters and verifiers to debuggers and IDEs. Now, with the advent of AI, we have large language models (LLMs) writing code for us, but I don’t think it’s quite there yet. In this article we’ll see how AI assists developers, what it can do for us today, its limitations, and where it’s headed. The concept of AI began in the 1950s when researchers tried to imbue machines with the magic to think. Early systems followed set rules, but as computers improved and data became more available, smarter methods emerged, such as machine learning, natural language processing, and neural networks. Large Language Models (LLMs) grew from these advances, using huge amounts of data and computing power to understand and create language. This marked a shift from fixed rules to models that learn on their own. By 2025, AI has taken root in most fields, even in places we might not have expected.For example, robotic bees — tiny drones designed to mimic bee behavior, are now being used to assist with pollination in areas where natural bee populations are struggling. These drones combine machine learning and computer vision for navigation, flight control, pollination strategies, and swarm intelligence. Usage Copilot is integrated with both Visual Studio Code and Visual Studio, and it comes with a few LLMs built in by default.Currently, these include Claude Sonnet 3.5, GPT-4o, o3-mini, and Gemini Flash 2.0.If you want to add more models, you’ll need a subscription for Copilot Pro. We can use Copilot Chat to prompt these models directly in the sidebar chat, whether to generate a specific functionality or create an entirely new file. Here, I asked it to create a simple sales order.Notably, it kept the key details — Customer, Item, and Quantity — as parameters without requiring any input. From here, we can click a button to apply the changes to the open file. At the bottom, we can see which file Copilot is currently using as a reference.If we want to stop Copilot from referencing that file, we can click the eye button. We can also ask it to make changes to the generated code. Now, I noticed that while it has parameterized the “Customer No.” for the sales order, it hasn’t actually used it anywhere in the code. If I point this out to Copilot… Instead of using Copilot Chat, we can also get recommendations directly within the file.Here, I’m trying to write a function to delete a sales order based on the given SO No. I can just tab my way into writing the method. One common way I’ve used copilot is to add Guard clauses to methods that I’ve written. For instance –  Here, it is referring to Customer and Item record variables, which don’t exist yet. But if I go to the variables section then it knows what I’m trying to do and suggests the same. Now, if I were to make it handle something complex, that’s when the cracks start to show. For example, pulling data from an API and creating customers would require several steps — authenticating with the API, fetching the data, parsing it, handling errors or logging, and finally creating the customers. We get the following as an output – Here, we can see that while it has a surface-level understanding of the code structure and the steps needed to achieve the goal, it struggles with the details. This could be because, unlike open-source languages like Java, Python, or C++, there isn’t as much publicly available source code for AL. I believe Microsoft Documentation would have helped to some degree, but instead, it tends to guess what the correct methods or fields should be. To its credit, the generated code isn’t far off from being functional, especially considering the simplicity of the input prompt. The structure it provides is still a solid starting point and much better than writing everything from scratch. Another example of these “hallucinations” is when it suggests methods that don’t actually exist, like this- However, once you show it what the correct method is, it suggests that –  To go one step further, I asked the different models to create an entire project based on the below prompt –  Findings: o3-mini 1. The objects it generated had the fewest errors.2. It was the simplest and closest to compiling successfully.3. It returned all the text in a single response, so I had to manually create files from it. GPT-4o 1. Created a Readme.md with project requirement details.2. Automatically generated the necessary project files.3. Farthest from compiling successfully, with most requirements missed.4. There were plenty of hallucinations, including methods that don’t exist in AL at all – like this example below. Gemini Flash 2.0 1. Created a Readme.md with project requirement details.2. Automatically generated the necessary project files.3. Added launch.json, settings.json, and app.json.4. Didn’t meet all requirements but managed to lay some groundwork.5. Struggled with code structure in several places, though still significantly better than GPT-4o.6. Had at least a couple of pages with zero errors. Claude Sonnet 3.5 1. Created a Readme.md with project requirement details.2. Automatically generated the necessary project files.3. Added launch.json and app.json.4. Included a test codeunit, though it had errors.5. Created a permission set for the objects generated.6. All files had one or more errors. In my opinion, Claude and o3-mini are the most useful for coding assistance. HumanEval is a test developed by OpenAI to assess how well language models can write code.It includes 164 programming problems where the model must generate accurate and functional Python code. The HumanEval leaderboard aligns with my assessment as well. Pricing While all these models offer a free trial with a limited set of tokens, they can become quite expensive if you don’t monitor your usage. Below … Continue reading Transforming Development: How Copilot is Revolutionizing Developer Productivity

Share Story :

From Commit to Inbox: Automating Change Summaries with Azure AI

In our small development team, we usually merge code without formal pull requests. Instead, changes are committed directly by the developer responsible for the project, and while I don’t need to approve every change in my role as the senior developer, I still need to stay aware of what’s being merged.  Manually reviewing each commit was becoming too time-consuming, so I built an automated process using Power Automate, Azure DevOps, and Azure AI.Now, whenever a commit is made, it triggers a workflow that summarizes the changes and sends me an email.This simple system keeps me informed without slowing down the team’s work. Although I kept the automation straightforward, it could easily be extended further.For example, it could be improved to allow me to reply directly to the committer from the email or even display file changes in detail using a text comparison feature in Outlook.We didn’t need that level of detail, but it’s a good option if deeper insights are ever required. Journey We get started with the Azure DevOps trigger “When a code is pushed”. Here we specify the organization name, project name and repository name. We can also specify a specific branch if we want to limit our tracking to simply that branch otherwise it tracks all the available branches to the User. Then we have a foreach loop that iterates over the “Ref Updates” object array. It contains a list of all the changes but not the exact details.This action pops up automatically as well when we configure the next action. Then we set up a “Azure DevOps REST API request to invoke” action. This has connection capabilities to Azure DevOps directly so it is better to use over a simple REST API action. We specify the relative URL as {Repository Name}/_apis/git/repositories/{Repository ID}/commits/{Commit ID}/changes?api-version=6.0 The Commit ID shows up as newObjectId in the “When code is pushed” trigger. Then we pass the output of this action to a “Create Text with GPT using a prompt” action under the AI Builder group.I’ve passed the prompt as below but it took several trials and errors to get exactly what I wanted. The last action is a simple “Send an email” one where I’ve kept myself as a recepient and I’ve added a subject and a body. Now to put it all together and run it – And here is the final output – When the hyperlinks are clicked they take me straight to azure while pointing to the file which is referred. For instance, if I click on the Events Codeunit – Conclusion Summarizing commit changes is just one way automation can make life easier.This same idea can be applied to other tasks, like summarizing meeting notes, project updates, or customer feedback.With a bit of creativity, we can use tools like this to cut down on repetitive work and free up time to focus on learning new skills or tackling more challenging projects.By finding smart ways to streamline our workflows, we can work more efficiently and open up more time for growth and development. If you need further assistance or have specific questions about your ERP setup, feel free to reach out for personalized guidance. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfonts.com.

Share Story :

Using Copilot for simplifying Sales Quote and Order Lines creation in Dynamics 365 Business Central

Microsoft is rapidly integrating Copilot across its ecosystem, empowering users with AI-driven assistance in various business processes. As enterprise systems become more connected, AI gains deeper access to data, enabling automation that eliminates tedious tasks and lets users focus on strategic decisions. In Dynamics 365, Copilot can help sales teams by generating Sales Quote Lines or Sales Order Lines by providing a rough prompt.  In this blog, we’ll explore how to leverage Copilot for a more efficient sales workflow by taking a sample use case. References Copilot in Business Central Overview Sales Line Suggestions with Copilot Scenario One fine morning your sales team receives an email from a customer who’s looking to try out your product. He sends your team an email. Your team goes to Business Central and creates a Sales Quote. In the lines section, they click on the Copilot button and click on “Suggest lines”. They can add the text the customer sent them directly or with some minor changes. And Copilot will find the best matching item and suggest some lines to the User. You can adjust the matching criteria to your required –  Permissive means that all keywords are optional. This option typically generates the most suggestions. Balanced is a blend of required and optional keywords. This option typically generates fewer suggestions. Precise means that all keywords are required. This option typically generates the fewest suggestions. Fast-foward a few days, the Customer is happy with your product and sends a bigger order. We can paste the entire description again into the suggest lines box. Copilot handles minor mistakes like spelling errors and mismatched totals without any intervention. And your new sales quote is ready! The accuracy of sales lines suggested by Copilot rely heavily on the quality of data present in the system. I’m not sure why Microsoft hasn’t included the same functionality for the Purchase side of things but I’m sure it’s not too far off in the future.  There’s already a BC Idea raised for this (Please vote it!).  If you need further assistance or have specific questions about your ERP setup, feel free to reach out for personalized guidance. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfonts.com.

Share Story :

SEARCH BLOGS:

FOLLOW CLOUDFRONTS BLOG :


Secured By miniOrange