Tag Archives: Dynamics 365
Mastering Date Manipulation with CALCDATE in Microsoft Dynamics 365 Business Central
Microsoft Dynamics 365 Business Central provides a comprehensive suite of tools designed to streamline business processes, and one of the most powerful tools for managing dates and times is the CALCDATE function. This versatile function enables users to perform complex date calculations with ease, making it indispensable for developers, consultants, and power users. In this blog post, we’ll dive deep into the CALCDATE function, explain its syntax, and explore how you can leverage it in your Business Central environment. Understanding CALCDATE The CALCDATE function is used to calculate a new date based on a specific date expression and an optional reference date. It is particularly helpful in scenarios where you need to determine dates relative to a given point in time. This could include calculating due dates, forecasting future events, setting up recurring transactions, or determining any other date relative to the system’s current or a user-defined date. For example, if you need to find the first day of next month or calculate a due date based on the current date, CALCDATE can handle these tasks efficiently. Syntax of CALCDATE The syntax of the CALCDATE function is simple, but the power lies in how you use the date expressions to represent relative time periods. NewDate := System.CalcDate(DateExpression: Text [, Date: Date]) Parameters DateExpression (Type: Text): This is the key input to the function, where you specify the date you want to calculate. The date expression can represent a variety of time periods, ranging from days to weeks, months, quarters, and years. The expression is evaluated from left to right, and each subexpression is processed one at a time. The valid syntax for the date expression follows a set of rules: Subexpression: A date expression consists of one or more subexpressions, each of which may be prefixed with a + or – sign. The subexpression can specify a time unit (day, week, month, etc.) along with a number. Here’s the structure of a typical date expression: <Subexpression> = [<Sign>] <Term> <Sign> = + | – <Term> = <Number><Unit> | <Unit><Number> | <Prefix><Unit> Examples of valid date expressions: The calendar in Business Central starts on Monday and ends on Sunday, where Monday is considered weekday 1 and Sunday is weekday 7. An invalid date expression, such as specifying an incorrect syntax, will result in a runtime error. 2. [Optional] Date (Type: Date):This optional parameter is used to define the reference date. If you omit it, the system defaults to the current date. You can specify any date here, and CALCDATE will perform the calculation based on that reference date instead of the current system date. Return Value Example: pageextension 50103 CustomerPageExt1 extends “Customer Card” { trigger OnOpenPage() var StartDate: Date; EndDate: Date; FirstDateofPreviousMonth: Date; LastDateofPreviousMonth: Date; FirstDateofNextMonth: Date; LastDateofNextMonth: Date; TodayDate: Date; FirstDateofYear: Date; LastDateofYear: Date; FirstDayOfNextQuarter: Date; LastDayOfCurrentQuarter: Date; FirstDayOfNextWeek: Date; FirstDayOfNextWeek10D: Date; begin // Current Month Start and End Dates StartDate := System.CalcDate(‘<-CM>’, Today); EndDate := System.CalcDate(‘<CM>’, Today); // Previous Month Start and End Dates TodayDate := TODAY; FirstDateOfPreviousMonth := CALCDATE(‘<-1M>’, CALCDATE(‘<-CM>’, TodayDate)); LastDateOfPreviousMonth := CALCDATE(‘<-1M>’, CALCDATE(‘<CM>+1D’, TodayDate) – 1); // Next Month Start and End Dates FirstDateOfNextMonth := CALCDATE(‘<+1M>’, CALCDATE(‘<-CM>’, TodayDate)); LastDateOfNextMonth := CALCDATE(‘<+1M>’, CALCDATE(‘<CM>+1D’, TodayDate) – 1); // First and Last Date of the Current Year FirstDateofYear := CALCDATE(‘<-CY>’, TodayDate); LastDateOfYear := CALCDATE(‘<CY>’, TODAY); // First Day of the Next Quarter FirstDayOfNextQuarter := CALCDATE(‘<+1Q>’, CALCDATE(‘<-CQ>’, TodayDate)); // Last Day of the Current Quarter LastDayOfCurrentQuarter := CALCDATE(‘<CQ>’, TODAY); // First Day of the Next Week FirstDayOfNextWeek := CALCDATE(‘<+1W>’, CALCDATE(‘<-CW>’, TodayDate)); // First Day of the Next Week + 10D FirstDayOfNextWeek10D := CALCDATE(‘<+1W>+10D’, CALCDATE(‘<-CW>’, TodayDate)); Message( ‘Current Month: ‘ + ‘\’ + ‘Start Date: %1, End Date: %2’ + ‘\’ + ‘\’ + ‘Previous Month: ‘ + ‘\’ + ‘Start Date: %3, End Date: %4’ + ‘\’ + ‘\’ + ‘Next Month: ‘ + ‘\’ + ‘Start Date: %5, End Date: %6’ + ‘\’ + ‘\’ + ‘Current Year: ‘ + ‘\’ + ‘Start Date: %7, End Date: %8’ + ‘\’ + ‘\’ + ‘Next Quarter: ‘ + ‘\’ + ‘Start Date: %9’ + ‘\’ + ‘\’ + ‘Current Quarter: ‘ + ‘\’ + ‘End Date: %10’ + ‘\’ + ‘\’ + ‘Next Week: ‘ + ‘\’ + ‘Start Date: %11’ + ‘\’ + ‘\’ + ‘Next Week + 10D: ‘ + ‘\’ + ‘Start Date: %12’, StartDate, EndDate, FirstDateOfPreviousMonth, LastDateOfPreviousMonth, FirstDateOfNextMonth, LastDateOfNextMonth, FirstDateofYear, LastDateOfYear, FirstDayOfNextQuarter, LastDayOfCurrentQuarter, FirstDayOfNextWeek, FirstDayOfNextWeek10D ); end; } Why Use CALCDATE in Business Central? The CALCDATE function is incredibly useful for automating and simplifying date-based calculations in Microsoft Dynamics 365 Business Central. Whether you are calculating due dates, generating reports based on time periods, or working with recurring events, CALCDATE saves time and reduces the chances of errors by automating these calculations. Here are some scenarios where CALCDATE can be particularly useful: To conclude, the CALCDATE function is a vital tool for anyone working in Microsoft Dynamics 365 Business Central. It simplifies the process of calculating dates based on specific time intervals, allowing users to manage and manipulate time-based data with ease. By understanding its syntax and functionality, you can unlock the full potential of CALCDATE and streamline your business processes. If you’re a developer or power user, mastering the CALCDATE function will not only enhance your efficiency but also give you greater control over your business data and operations. 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.
A Guide to Batch and Serial Numbers in D365 F&O: Part 1
In today’s fast-moving world, keeping track of inventory is incredibly important for businesses of all types and sizes. Proper inventory tracking ensures that businesses can maintain product quality, comply with industry regulations, and deliver better customer experiences. Dynamics 365 Finance & Operations (D365F&O) offers powerful tools to simplify this process, including the use of batch and serial numbers. These features allow businesses to track and manage products accurately, from the time they are manufactured or received to when they reach the customer. Let’s take a closer look at what batch and serial numbers are, how they work in D365F&O, and why they are essential for efficient inventory management. What Are Batch and Serial Numbers? Batch Numbers: Batch numbers are unique identifiers used to group items that were manufactured or received under similar conditions, such as during the same production run or shipment. These numbers make it easier to track and manage items collectively. Batch numbers are particularly useful for businesses that deal with perishable goods or need to maintain strict quality control. For example: Serial Numbers: Serial numbers are unique codes assigned to individual items, allowing each product to be tracked separately. Unlike batch numbers, which apply to groups of items, serial numbers provide item-level traceability. This is especially important for businesses dealing with high-value or complex products. For example: How to Configure Batch and Serial Numbers in D365F&O D365F&O makes it simple to set up and manage batch and serial numbers, ensuring smooth inventory operations. Here’s how you can configure these features step by step: 1. Set Up Tracking Dimensions: 2.Assign Tracking Dimensions to Items: 3.Enable Automatic Numbering: 4.Test and Train: Why Are Batch and Serial Numbers Important? Batch and serial numbers play a crucial role in modern inventory management, offering a range of benefits that streamline operations and reduce risks. Some key advantages include: To conclude, this blog is Part 1 of our detailed guide on batch and serial numbers in D365F&O. We’ve explored what batch and serial numbers are, why they’re important, and how to set them up in the system. By implementing these features, businesses can improve traceability, enhance inventory accuracy, and ensure compliance with industry regulations. In the next part, we’ll take a practical look at how to use batch and serial numbers in day-to-day operations. This will include real-world examples, step-by-step processes, and screenshots to help you better understand how these features can streamline your inventory management. Stay tuned for more insights and practical tips to make the most of D365F&O’s powerful inventory tracking capabilities! That’s it for this blog. Hope this helps!! 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.
US-Based Casting Manufacturer Partners with CloudFronts for a Managed Services Agreement
We are delighted to announce that the largest US-based casting manufacturer is partnering with CloudFronts for Dynamics 365 support & maintenance with a Managed Services Agreement (MSA). The manufacturer and distributor based in Houston, Texas, is doing business since 1960 with facilities in the United States, India, and China. It was one of the first innovators to globally source municipal castings and utility fittings in the United States. They have established a reputation for providing high-quality, reliable, and cost-effective globally sourced products for the utility marketplace and OEM castings. Under this MSA, CloudFronts will provide support & maintenance services for the system based on Microsoft Dynamics 365 Sales. On this occasion, Priyesh Wagh, Dynamics 365 Practice Manager at CloudFronts, said, “We continue to work for their Dynamics 365 Sales implementation and help sales teams collaborate better. We look forward to scaling the implementation as their team continues to use the systems and derive value for growth.” “Discover How We’ve Enabled Businesses Like Yours – Explore Our Client Testimonials!” About CloudFronts CloudFronts is a Dynamics 365 focused Microsoft Solutions Partner, helping teams and organizations worldwide solve their complex business challenges with Microsoft Cloud, AI, and Azure Integration Services. We have a global presence with offices in U.S, Singapore & India. Since its inception in 2012, CloudFronts has successfully served over 200+ small and medium-sized clients all over the world, such as North America, Europe, Australia, MENA, Maldives & India, with diverse experiences in sectors ranging from Professional Services, Financial Services, Manufacturing, Retail, Pharmaceutical, Logistics/SCM, and Non-profits. Please feel free to connect with us at transform@cloudfronts.com
Data Flow with Array Filtering in Power Automate
When working with arrays in Power Automate, it’s common to need to filter or select a specific item based on certain attributes. Whether you’re handling JSON data from an API, processing records from a list, or managing dynamic content within a flow, efficiently identifying the right item is key. In this blog, we’ll explore a simple yet effective method to extract the desired item from an array using expressions in Power Automate. By the end, you’ll have a clear strategy to streamline your workflows and enhance the intelligence of your automation. In case you need to select an item from an array in Power Automate based on the value of a certain attribute, here’s how you can do it. Scenario You have an array of objects, and each object has a specific attribute. You want to efficiently select the object(s) where this attribute matches a particular value. As you see, the array of objects have different structure – All of them have an attribute called “key” and that’s the one you want to select and then process further. Let’s see how we do it. Filter Array Let’s see how you can select the item from the array based on the value of the “key” attribute instead of looping through all the items and matching. To encapsulate, by using this approach, you can efficiently select specific items from an array based on the value of a particular attribute, making your Power Automate flows more dynamic and tailored to your specific 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.
Avoiding Negative Inventory: Tips and Tricks in D365 F&O
Managing inventory is an important part of any business, and keeping track of stock levels is key to smooth operations. Negative inventory happens when your system shows that you have less than zero items in stock. This can cause problems like delays, mistakes in finances, and unhappy customers. Luckily, Dynamics 365 Finance & Operations (D365F&O) has tools to help you avoid negative inventory. In this blog, we’ll share simple tips and tricks to keep your inventory accurate. What is Negative Inventory? Negative inventory means your system says you have less stock than zero. For example, if you sell or use more items than you have in storage, the system might show a negative number. This can happen because: Negative inventory can cause confusion, financial mistakes, and problems in planning and ordering stock. How to Avoid Negative Inventory in D365F&O Here are some easy steps to prevent negative inventory in D365F&O: 1. Set Up Item Model Groups Item model groups control how inventory is managed. Setting them up properly helps avoid negative inventory. 2. Use Inventory Reservations Inventory reservations make sure stock is set aside for specific orders, so you don’t overcommit. 3. Track Inventory Dimensions Inventory dimensions, like site, warehouse, batch, and serial number, help you track stock accurately. Make sure these are used correctly for each product. 4. Do Regular Cycle Counts Cycle counts help you check if the stock in your system matches what you actually have. Fixing any mistakes quickly avoids negative inventory. 5. Post Transactions in Order Posting transactions in the wrong order can cause temporary negative inventory. For example, issuing stock before recording receipts. 6. Check Inventory Transactions Often Review inventory transactions to catch and fix issues early. 7. Train Your Team Training your team is key to preventing mistakes that lead to negative inventory. Benefits of Avoiding Negative Inventory Preventing negative inventory can make a big difference for your business: Avoiding negative inventory in D365F&O is about using the right settings and following good processes. By setting up item model groups, using reservations, doing regular cycle counts, and keeping an eye on transactions, you can prevent negative inventory and keep your stock levels accurate. These steps will improve your operations, make customers happy, and help your business run smoothly. Start using these tips today to get the most out of Dynamics 365 Finance & Operations for inventory management! So, that its for this blog. Thanks for reading!! 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.
Seamlessly Importing Images via URLs in Bulk into Business Central
Whether you’re adding product catalogs or updating images for an extensive inventory, having an efficient way to bulk import images can save time and effort. In this blog post, we will walk you through the steps to import images in bulk into Business Central, providing you with a seamless method to enhance your product data. In today’s fast-paced business environment, efficiency and accuracy in managing product data are crucial for maintaining a competitive edge. Microsoft Dynamics 365 Business Central (BC) is a comprehensive enterprise resource planning (ERP) system that integrates all business functions into one platform. One of the most time-consuming tasks for businesses, especially those with large inventories, is managing and uploading product images. 1. Create a Codeunit or Processing Report: Since Business Central doesn’t have a built-in feature for bulk image import, you can create a custom codeunit or processing report to handle this task. In this example, we’ll use a codeunit. 2. Add a New Field for Image URL: Create an Item Table Extension and add a new field called “Product Image URL” to the Item table. This field will hold the URL or path for each product image. 3. Set the Image URLs Using a Configuration Package: Use a config package to set the image URLs in the “Product Image URL” field for each item. This is where you will provide the path or URL for the image associated with each product. 4. Run the Codeunit to Update Items: After populating the image URLs via the configuration package, run the codeunit in the foreground. The codeunit will process each item and update the products that have a valid URL set, linking them to the corresponding images. Below is the logic which will use the url which is set in Item master table and update all the data in bulk codeunit 50112 SetImageUrl { Permissions = tabledata Item = rimd; Description = ‘Set Image URL’; trigger OnRun() var RecItem: Record Item; Rec_Item1: Record Item; ItemPage: page “Item Card”; PictureURLDialog: Page “Picture URL Dialog”; begin Clear(RecItem); RecItem.Reset(); RecItem.SetFilter(“Product Image URL”, ‘<>%1’, ”); if RecItem.FindSet() then repeat Rec_Item1.SetRange(“No.”, RecItem.”No.”); if Rec_Item1.FindFirst() then begin PictureURLDialog.SetItemInfo(Rec_Item1.”No.”, Rec_Item1.Description, Rec_Item1.”Product Image URL”); PictureURLDialog.ImportItemPictureFromURL(); end; until RecItem.Next() = 0; end; } This approach allows you to automate the bulk import of product images into Business Central efficiently. Conclusion Importing images in bulk into Business Central can significantly enhance your operational efficiency and ensure your product records are complete and accurate. By following the steps outlined in this blog, you can easily upload and manage product images, creating a more professional and visually appealing online presence, as well as improving internal processes. Whether you’re dealing with thousands of items or just a few, these steps will guide you through the bulk image import process, saving time, reducing errors, and providing a better user experience for both your team and customers. If you need further assistance or have specific questions about your Business Central setup, feel free to reach out for personalized guidance. Happy importing! 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.
Phases of Quality Control in Business Central – 3
Welcome back to our series on navigating the GMP-compliant quality control module in Business Central! In our previous blog, we took you through the process up to the Goods Receipt Note (GRN), laying the foundation for efficient and compliant quality management. In this blog, we’ll dive deeper into an equally important aspect of the process: the quality control of raw materials and packing materials. Ensuring that your raw materials meet the necessary standards is crucial for maintaining product integrity and compliance with regulatory requirements. Let’s explore how Business Central helps streamline this critical step in the manufacturing process. Previously, we discussed the process of posting a purchase order in Business Central, which triggers several behind-the-scenes actions. When the purchase order is posted, the system generates a posted purchase receipt along with an inspection datasheet document. This seamless integration ensures that both the material tracking and quality control processes are aligned. In the background, the system also handles the transfer of items between locations. For instance, the raw material (RM) item gets posted to the location specified in the purchase order. If the item is Quality Control (QC) enabled, an inspection datasheet is automatically created upon posting. The system then transfers the item from the purchase order location to an “undertest” location, where the quality control checks are carried out before the materials are accepted into stock. Inspection Datasheet When a Goods Receipt Note (GRN) is created, an inspection datasheet is automatically generated. This datasheet pulls details from the posted purchase order, such as product information, quantities, and other relevant data. The document type for this datasheet is classified as “Purchase” to indicate that it pertains to a purchased item from a vendor. Users have the ability to edit the sample quantity on the inspection datasheet. This allows for flexibility in determining how much of the received goods will be inspected or tested When an inspection datasheet is generated from the Goods Receipt Note (GRN), the Specification ID specified on the Purchase Order (PO) for each item is automatically transferred to the datasheet. The Specification ID links to a detailed set of standards or criteria that are predefined for the item (e.g., testing methods, acceptable ranges for quality attributes). The user performs the required testing on the received goods, and after testing, the user records the test results (e.g., pass/fail, measured values) in the specification table on the inspection datasheet. After all the data is filled and verified, the user posts the inspection datasheet. Posting the datasheet signifies that the inspection process is complete, and the items are ready for further processing or acceptance. Once posted, the system creates a final, official version of the inspection datasheet, capturing all test results and any other relevant data entered during the QC process. Along with the posted datasheet, the system generates an Inspection Receipt. This receipt serves as confirmation that the goods have passed or failed inspection, and it also indicate the status (e.g., approved or rejected) Inspection Receipt On the Inspection Receipt page, the user will review the test results and specifications from the inspection datasheet. a) Based on these results, the user decides whether to accept or reject the lot. Accept: If the results meet the required specifications. Reject: If the results fail to meet the specifications. b) After making the acceptance or rejection decision, the user will enter the location and bin information for the lot to be transferred. Undertest Location: Initially, the lot is in a holding or undertest location. Accepted Lot: If the lot is accepted, the user will move it to an appropriate approved location (e.g., RM-approve for raw materials). Rejected Lot: If the lot is rejected, the user will move it to a rejected location (e.g., RM-reject for raw materials). The bins will vary based on whether the lot is accepted or rejected and its type .Once posted, the system creates a final, posted inspection receipt. This document becomes part of the system’s records, confirming the final status of the lot. The lot is moved to its designated location (approved or rejected), and inventory records are updated accordingly. A transfer entry will be created in the Item Ledger to reflect that the material has been moved to an approved/Rejected location (e.g., RM-approve/reject). c) Posted inspection receipt On the posted inspection receipt page, the user can initiate the generation of the COA report. The Certificate of analysis(COA) report contains detailed test results, pass/fail statuses, specifications, and approval information, providing a formal certificate of compliance. Conclusion: In this blog, I’ve highlighted how a streamlined Quality Control (QC) process ensures that only materials meeting your standards are accepted into inventory. From automated inspection datasheets to real-time inventory updates and generating Certificates of Analysis (COA), you can be confident in the quality and compliance of every batch. Why It Matters for Your Business: a) Ensure Consistent Quality: Only accept materials that meet your standards. b) Save Time: Automation reduces manual work and errors. c) Stay Compliant: Easy access to COAs for audits and regulatory checks. d) Build Trust: Your customers will appreciate your commitment to quality. Ready to optimize your QC process and improve efficiency? 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.
Phases of Quality Control in Business Central – 2
In this continuation of our journey through the GMP-compliant quality control module in Business Central, we’ll be diving into key components that come into play post-MRP (Material Requirements Planning/Planning worksheet) run. The MRP identifies what’s required to meet demand, but ensuring that all materials align with quality standards demands a closer look at each phase—from defining specifications to the actual receipt of goods. This blog will cover four essential steps: setting up a Specification Master for Quality, creating a Purchase Indent to formalize demand, generating a Purchase Order to confirm procurement, and finally, processing the Goods Receipt Note (GRN), where quality checks ensure that only materials meeting specified standards are accepted. Each of these steps is integral in maintaining a seamless, controlled flow of materials that meet stringent quality requirements. Through these processes, we not only streamline procurement but also build quality control measures right into the purchasing workflow. Let’s explore how Business Central’s quality control module facilitates this alignment with Good Manufacturing Practices (GMP), helping to achieve a compliant, efficient supply chain. Specification Master In the Specifications Master is a centralized repository of quality parameters. It defines acceptance criteria for raw materials, intermediates, and finished products, ensuring compliance with regulatory standards and maintaining consistent product quality throughout procurement, production, and delivery processes. Purchase Indent Purchase indent can be created from the planning worksheet where system calculates the shortages. The EOPA no. which is tagged in the sales order will also be tagged against the shortage raw material in the planning worksheet. The quantity to purchase can be adjusted on purchase indent. Once necessary information is filled in, the purchase indent can be converted to purchase order. Multiple purchase order can be created from 1 purchase indent till the indent quantity is exhausted. Purchase Order In the purchase order page, location should be where the materials will be received. Let’s call it as quarantine. The locations will be according to the type of the material. Eg. If it is a raw material the location will be RM quarantine. While generating GRN, system creates the posted purchase receipt document and the inspection datasheet. (if the item is QC enabled) Inspection datasheet- It is a page where sampling is performed. The quality control process starts from the inspection datasheet page. Conclusion: Incorporating quality control in procurement ensures GMP compliance from the start. Business Central’s module streamlines this with defined specifications, structured purchasing, and enforced quality checks, creating a seamless and compliant supply chain. We will be continuing the quality control of purchased goods in the next blog. 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.
How to configure Device License in Business Central
A Device License in Business Central is a type of user license that provides access to the application on a specific device, rather than a user-based license. This is particularly useful for scenarios where a shared device, such as a point of sale (POS) terminal, warehouse scanner, or shared workstation, needs to access Business Central without requiring individual user licenses. Why Device Licenses are Important Device licenses are particularly useful for organizations that have multiple employees using the same device at different times. Examples of such use cases include: Steps to achieve the goal