Latest Microsoft Dynamics 365 Blogs | CloudFronts - Page 22

Staying Up to Date: Managing Updates in F&O

System updates are crucial for keeping systems secure, functional, and up to date with the latest technology advancements and user needs. They are typically provided by software developers, manufacturers, or service providers, and users are often encouraged or required to apply them regularly. System updates are essential for several reasons: One famous story of a catastrophic incident caused by a failure to update a system is the Equifax Data Breach of 2017. Here’s what happened: The Incident: In 2017, Equifax, one of the largest credit reporting agencies in the U.S., suffered a massive data breach that exposed the personal information of over 147 million people. The data leaked included sensitive details like Social Security numbers, birth dates, addresses, and in some cases, credit card information. Cause: The breach occurred because Equifax had failed to apply a critical security patch to a known vulnerability in Apache Struts, an open-source web application framework used in one of their online portals. The vulnerability had been identified and a patch was made available in March 2017, but Equifax did not apply the patch in time, leaving the system exposed. Hackers exploited this known vulnerability in May 2017, and over the next few months, they accessed Equifax’s systems and stole massive amounts of personal data. It wasn’t until July 2017 that the breach was detected, and Equifax publicly disclosed the breach in September 2017. Impact: The consequences were severe: Lesson: This breach became a stark example of why system updates and security patches are critical. A failure to update systems, even with known vulnerabilities, can lead to disastrous consequences, including financial loss, reputational damage, and exposure of sensitive information. Microsoft Dynamics 365, which includes Finance and Operations, has around 500,000 users worldwide as of 2024.With four service updates released each year and roughly one quality update each month, it is crucial for organizations to stay current with the latest features and security enhancements to ensure optimal performance and protection. I am confident that this article will highlight the importance of system maintenance and upkeep. References Details Proactive Quality Updates (PQUs) are automatic updates that bring important bug fixes and new features quickly, without interrupting your work.Delivered through Microsoft Dynamics Lifecycle Services (LCS), PQUs are applied in the background, so businesses hardly notice them. Benefits of PQUs Why PQUs Cause Little Disruption If a serious issue (like downtime or slow performance) happens during a PQU, Microsoft will pause the update and work with customers to fix it. If only one customer is affected, they can open a support ticket to stop the update for their environment. When Might PQUs Be Skipped? PQUs cannot be undone once applied. However, Microsoft can turn off specific changes if needed. Service updates are regular system improvements that give you new features without needing major upgrades.They contain both application changes and platform changes that are critical to the service, including regulatory updates.These updates are backward-compatible, meaning your custom code will still work.Microsoft suggests using the Regression Suite Automation Tool (RSAT) to test updates and make sure nothing breaks. How to Manage Service Updates: Four service updates are released by Microsoft annually in February, April, July, and October.You’re required to take at least two updates per year but can take up to four.You can also pause one update at a time for either your sandbox or production environment. Pre-Servicing: For service updates, the preservicing step starts when the update process begins.During this time, Microsoft Dynamics Lifecycle Services (LCS) shows the environment as Preservicing.This means the environment is online and accessible, but no other service actions can be performed.In this step, the system checks for specific errors that could cause the servicing process to fail.If any errors are found, a soft rollback occurs, which means the system goes back to its previous state without a point-in-time recovery (PITR).To resolve the issues, you can check the environment’s history logs for the errors and make necessary fixes before trying to update again. Post-Servicing: During the post-processing step after offline servicing is complete, the environment status in LCS is marked as Post-servicing.This means that any index creation or changes that couldn’t be done during offline servicing will now occur while the system is online.Users can still access the environment and continue their regular activities, but performance might be slower due to the updates being applied. However, users will not be able to cancel existing service requests or start new ones during this time. Notifications: You will receive several notifications about Microsoft Dynamics updates: Conclusion By keeping your system up to date with these automatic updates, you’ll enjoy new features, regulatory improvements, and better performance—all without the hassle of big upgrades. If all this feels overwhelming, feel free to reach out so we can help you getting this set up and manage it for you! Taking action now will lead to better user experience, minimal disruption in service and smoother operations for your business. 

Share Story :

Optimizing Cash Flow: Effective Reminder Systems in Business Central

Maintaining timely communication with customers about outstanding payments is crucial. Business Central makes this easier with its automated reminder feature, helping businesses streamline their collection process while maintaining positive client relationships. This sets the stage for discussing the “how-to” steps for sending reminders in Business Central. Reminders can be used to remind clients of past-due amounts and to solicit payment. You can assign reminder terms to customers and set them up to manage accounts receivable. You have control over how the reminder process operates with reminder terms. You can specify a set of reminder levels for each reminder term. Rules governing when to send reminders, what fees to charge, and whether to compute interest are all included in reminder levels. A grace period setting is another feature of reminder levels that makes sure you don’t remind customers about bills they have already paid. Pre-requisites – Business Central onCloud – Reminder terms You have to choose how and when to remind clients who have past-due payments. You may also wish to deduct interest or fees from their accounts. Any number of reminder terms can be configured. Lets see how we can set automate reminders for ovedue customers Configuration: – Select the reminder term or terms for which you want to use this automation in the Reminder Terms Filter field.– Select the frequency of automation runs in the Cadence field.– Next, select whether the automation generates, issues, or sends reminders by selecting New on the Actions FastTab.– Select OK.– Complete the fields on the setup page as needed, depending on the action the automation is performing.– Go to Settings for reminder actions to find out more about the settings.– The Move up and Move down actions allow you to change the sequence in which the automation’s actions execute after you’ve configured them. Set cadence to manual and click on start button it will create reminders for customers witb overdue amount Now setup automation to issue reminders similar to above Click on action and choose Issue reminder action When issuing a reminder, entries are created in the customer ledger with details like the posting and tax dates. You can use the “Issue Reminders Setup” page to decide if these dates should be replaced by the dates from the reminder itself. For instance, if a reminder was created yesterday but issued today, the due date will adjust by one day. Once you click on start button it will move all draft reminders to issue reminder. From here by using above actions, you can sent reminders to customer manually also or mark it as sent if you already sent mail by yourself. Let’s create third entry to send reminders to customers Now before running this last job que, you need to set email body for customers Search Reminder terms and choose default value in our case we have added Domestic as a reminder term This is the template you will see when you click on “Customer Communication.” It can be changed to suit your needs. Once you schedule all three-job automatic it will start sending emails to customers Conclusion: In conclusion, automating reminders in Business Central streamlines the payment collection process, helping businesses maintain cash flow and reduce overdue receivables. By leveraging customizable reminder settings, companies can create tailored communication that encourages timely payments while maintaining positive customer relationships. The system’s flexibility and automation capabilities allow for efficient financial management, minimizing manual intervention and improving overall productivity. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com

Share Story :

Simplifying Sales with Business Central 2024 Wave 2: CSV Integration Made Easy

For growing businesses, managing sales efficiently is crucial as processes and reporting become more complex. Microsoft Dynamics 365 Business Central 2024 Wave 2 (BC25) introduces an exciting new feature that helps you create sales lines quickly by using data from a CSV (comma-separated values) file. This feature, powered by Copilot, simplifies the sales order process and saves valuable time. Are You Struggling to Manage Your Sales Lines? Are you finding it challenging to keep up with sales line entries? If you’re looking to automate this process, this article is for you. According to recent studies, businesses that streamline their sales processes can reduce order creation time by up to 80%. Additionally, companies using automated solutions see a 25% increase in productivity and improved accuracy in their sales data. Why CSV Integration Matters As businesses expand, the volume and complexity of sales orders increase. Having an efficient method to manage sales lines is essential for maintaining operational flow and customer satisfaction. The new CSV integration feature in Business Central 2024 Wave 2 allows you to: – Save Time: Upload your sales data all at once, eliminating the need for tedious manual entry. – Reduce Errors: Ensure your sales line data is accurate and consistent, minimizing mistakes that can occur with manual entry. – Manage Data Easily: Use a simple spreadsheet format to organize your sales line details before uploading them. How to Use the CSV Integration Feature Step-by-Step Guide 1. Prepare Your CSV File: Start by creating a CSV file containing all the sales line details you need, such as item numbers, quantities, and prices. 2. Log into Business Central: Open your Business Central account and navigate to the sales order section. 3. Upload the CSV File: – Click on the Copilot symbol and select “Suggest Sales Line.” – Choose “Attach” and upload your CSV file. Note: Only CSV files can be selected. PS: Only CSV (comma-separated values) can be selected. 4. Review the Suggestions: After uploading, review the suggested sales lines. You can make any adjustments if necessary. – For actions like matching or viewing, choose the appropriate options and click “Generate” for Copilot to suggest sales lines based on your data. Column Action: Matching: View: 5. Finalize Your Order: Once you’re satisfied with the sales lines, click “Insert.” Your sales lines will now be successfully added to the sales order. Conclusion The new CSV integration feature in Business Central 2024 Wave 2 makes managing sales orders easier than ever. With Copilot’s assistance, you can save time, reduce errors, and streamline your sales process. We encourage you to explore this feature and see how it can transform your sales operations. If you need further assistance, feel free to reach out to CloudFronts for practical solutions that can help you implement this powerful tool effectively.

Share Story :

All-in-One Guide to C# Plugin Data Types: Working with Strings, Currency, Lookups, and More

In Dynamics 365 and Power Platform, C# plugins play a crucial role in extending the functionality of your applications. One of the key aspect’s developers need to grasp is how to handle various data types effectively. This guide will walk you through the most commonly used data types in C# plugins, including strings, currency, lookups, option sets, and more. Introduction to C# Plugins C# plugins are custom business logic that you can implement in Dynamics 365 to execute in response to specific events, like creating, updating, or deleting records. They allow you to manipulate data and interact with the system in powerful ways. Understanding how to work with different data types is essential for writing effective plugins. Retrieving Entities Before you can manipulate data types, you first need to retrieve the entity record you want to work with. Here’s how you can do that: public void Execute(IServiceProvider serviceProvider){IPluginExecutionContext context =(IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId); // Retrieve entity by IDEntity entity = service.Retrieve(“entity_logical_name”, context.PrimaryEntityId, new ColumnSet(true));}   Working with Different Data Types String The most common data types are strings. They can represent text values. Getting a String Value: string name = entity.GetAttributeValue<string>(“string_attribute_name”); Setting a String Value: entity[“string_attribute_name”] = “New String Value”; Currency Currency is represented by the Money type in Dynamics 365. Getting a Currency Value: Money amount = entity.GetAttributeValue<Money>(“currency_attribute_name”);decimal currencyValue = amount?.Value ?? 0; Setting a Currency Value: entity[“currency_attribute_name”] = new Money(150.00m); // Set to 150.00 Lookups Lookup fields refer to related entities. They are represented by the EntityReference type. Getting a Lookup Value: EntityReference lookup = entity.GetAttributeValue<EntityReference>(“lookup_attribute_name”); if (lookup != null) {     Guid lookupId = lookup.Id;     string lookupName = lookup.Name; // Requires another retrieve call to get the name} Setting a Lookup Value: entity[“lookup_attribute_name”] = new EntityReference(“related_entity_logical_name”, lookupId); Option Sets (Picklists) Option sets are used to represent a list of choices. They are represented by the OptionSetValue type. Getting an Option Set Value: OptionSetValue optionSetValue = entity.GetAttributeValue<OptionSetValue>(“optionset_attribute_name”); int selectedValue = optionSetValue?.Value ?? 0; Setting an Option Set Value: entity[“optionset_attribute_name”] = new OptionSetValue(1); // Assuming 1 is a valid option Multiselect Option Set Multiselect option sets allow multiple selections from a list. Getting a Value: IEnumerable<OptionSetValue> multiSelectOptions = entity.GetAttributeValue<IEnumerable<OptionSetValue>>(“multiselect_optionset”); Setting a Value: entity[“multiselect_optionset”] = new List<OptionSetValue> {     new OptionSetValue(1),     new OptionSetValue(2) }; // Assuming 1 and 2 are valid options Boolean Values or Two Options Boolean fields represent true/false values. Getting a Boolean Value: bool? isActive = entity.GetAttributeValue<bool?>(“boolean_attribute_name”); Setting a Boolean Value: entity[“boolean_attribute_name”] = true; // or false Getting a Boolean Value: OptionSetValue twoOptionsValue = entity.GetAttributeValue<OptionSetValue>(“two_options_attribute”); bool isSelected = twoOptionsValue?.Value == 1; // Assuming 1 is ‘Yes’ Setting a Boolean Value: entity[“two_options_attribute”] = new OptionSetValue(1); // Set to ‘Yes’ DateTime DateTime fields are used for date and time information. Getting a DateTime Value: DateTime? createdOn = entity.GetAttributeValue<DateTime?>(“datetime_attribute_name”); Setting a DateTime Value: entity[“datetime_attribute_name”] = DateTime.UtcNow; // Set to current date and time Image Image fields store binary data like photos or documents. Getting an Image: var image = entity.GetAttributeValue<EntityImage>(“image_attribute”);byte[] imageData = image?.ImageData; // Assuming you handle the image type properly Whole Number Whole numbers are represented as int. Getting a Value: int wholeNumber = entity.GetAttributeValue<int>(“whole_number_attribute”); Setting a Value: entity[“whole_number_attribute”] = 42; Floating Point Number Floating point numbers allow for decimal values. Getting a Value: float floatingPointNumber = entity.GetAttributeValue<float>(“floating_point_attribute”); Setting a Value: entity[“floating_point_attribute”] = 3.14f; Decimal Number Decimal fields store precise decimal values. Getting a Value: decimal decimalNumber = entity.GetAttributeValue<decimal>(“decimal_number_attribute”); Setting a Value: entity[“decimal_number_attribute”] = 123.45m; Setting Data Types After retrieving the desired values and possibly making changes, you need to update the entity. This is done using the Update method. service.Update(entity);    Some Additional Data Types you Might Encounter in Dynamics 365 C# Plugins such as : 1. Guid Getting a Value: Guid uniqueId = entity.GetAttributeValue<Guid>(“unique_attribute”); Setting a Value: entity[“unique_attribute”] = new Guid(“d3c1d9c8-7438-44b5-91b1-f40241b0f84d”); 2. Composite Fields Getting a Value: string city = entity.GetAttributeValue<string>(“address1_city”); string state = entity.GetAttributeValue<string>(“address1_stateorprovince”); Setting a Value: entity[“address1_city”] = “Seattle”;entity[“address1_stateorprovince”] = “WA”; 3. Unique Identifier (Primary Key) Getting a Value: Guid entityId = entity.Id; Setting a Value: Entity newEntity = new Entity(“entity_logical_name”) {     Id = Guid.NewGuid() }; 4. PartyList (Used in Activities) Getting a Value: string city = entity.GetAttributeValue<string>(“address1_city”); EntityCollection partyList = entity.GetAttributeValue<EntityCollection>(“to”); foreach (Entity party in partyList.Entities) {     EntityReference partyRef = party.GetAttributeValue<EntityReference>(“partyid”);     // Do something with partyRef }   Setting a Value: Entity party = new Entity(“activityparty”); party[“partyid”] = new EntityReference(“contact”, new Guid(“c3e4b159-64af-4c3d-b894-6d62007dbe79”));   EntityCollection partyList = new EntityCollection(new List<Entity> { party }); entity[“to”] = partyList; Conclusion Handling various data types in Dynamics 365 plugins is critical for creating robust and adaptable solutions. Knowing how to work with fields such as text, currencies, lookups, option sets, and others enables you to manage data more precisely and conduct custom activities in our CRM. With these examples, you now have the ability to retrieve and set values for a variety of common data types, making it easy to create plugins that match our organization’s requirements. As you gain experience, you’ll notice that handling data in plugins becomes easier, allowing you to focus on developing smart and effective solutions. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com

Share Story :

Quality Control in Business Central – Part 1

Quality isn’t just a standard—it’s a promise. For pharmaceutical industries where quality can make or break success, we are offering a quality control module in business central which is in compliance with GMP. Imagine what you could achieve with a streamlined, GMP-compliant solution that integrates seamlessly into your existing workflows. With our new quality control module in Business Central, not only can your business meet Good Manufacturing Practice (GMP) standards, but you can also elevate product consistency, enhance traceability, and make real-time quality insights accessible. Let’s explore how this tool is built to not only meet requirements but drive your business forward This blog series dives into the step-by-step process of implementing and optimizing our GMP-compliant quality control module in Business Central. Let’s begin, Customer order is received – In a manufacturing company, company will receive an order from customer. Based on the order and availability of product the user will prepare a Proforma invoice. Proforma Invoice – User will create a proforma invoice with all the details of the order and send that invoice for approval internally. – Once that invoice is approved, the user will convert that proforma invoice into sales order. Sales order – Once a sales order is created after approval, user will then plan the production. – To plan the schedule, we have customised a page, “Planning Schedule” – The planning schedule has to be prepared from the sales order page. Later the page is accessible with global search as well. – User will select the item no. on the page and click on “Planning” button on the action bar. – System will automatically create lines/batches for the sales order quantity. These batches are created based on the production Bom details in the master. – When the user is ready to create production orders for the first batch, user will click on the “carry out action” checkbox and the from the action bar click on “Create production order button” – System will automatically create firm planed production order for the entire batch. – Now that the firm plan production orders are ready, user can run the Planning (shortage) worksheet Planning Worksheet – User will run the planning worksheet to figure out the shortages for the production of Finished goods. – To get the shortages, user will click on “Calculate regenerative plans” button on the action bar. A filter page will pop up, enter the date range for the shortages and click on “ok” – When the lines are generated, user can directly select the lines on the worksheet and create a Purchase indent (It is an internal document used by companies to authorize the requisition of Materials.) – User can club multiple lines in one purchase indent. Thank you for reading this blog. We’ve started the series with sales order and covered in the MRP process, and we hope you found the information valuable. In our next blog, we will start the Procurement Quality Check process, exploring its significance and the steps involved in ensuring that all procured materials meet our stringent quality standards. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com

Share Story :

Real-Life Use Case of CRUD Operations with Postman and Azure Logic Apps 

Posted On November 18, 2024 by Bhavika Shetty Posted in Tagged in

Having a robust Customer Relationship Management (CRM) system is crucial for managing customer data and interactions effectively. One way to enhance your CRM capabilities is through seamless integration with Azure Logic Apps, allowing for efficient CRUD (Create, Read, Update, Delete) operations via OData endpoints. In this blog post, we’ll dive into a real-life business use case that demonstrates how to perform CRUD operations on a CRM system using Postman and Azure Logic Apps.  What Are CRUD Operations?  CRUD operations form the backbone of any data-driven application. They enable you to:  The Setup: Using Postman for API Requests  Postman is an incredibly useful tool for testing APIs, and in our case, it will help us interact with our CRM’s OData endpoints. Before we begin, ensure that you have the necessary API access and permissions set up.  Creating a New Record in CRM  Step 1: Prepare Your Request  To create a new record, you’ll need to set up a POST request in Postman. Here’s how to do it:  Step 2: Set the Request Body  In the body of your POST request, include the necessary details for the new record. For example, if you’re creating a customer record, it might look something like this:  Step 3: Send the Request  Hit the Send button. You should receive a response containing the payload of the newly created entry (e.g., CustomersV3).  Step 4: Verify Creation in CRM  Next, navigate to your CRM dashboard to verify that the new customer entry has been successfully created.    Updating an Existing Record  Step 1: Prepare Your Update Request  To update an existing record, you’ll be sending a PATCH or PUT request. Here’s how to set it up in Postman:  Step 2: Set the Request Body  Include the changes you wish to make in the request body. For example, if you want to update John Doe’s phone number:  Step 3: Send the Request  Once you send the request, you should see a response indicating the payload of the updated account.     Step 4: Verify Update in CRM  Check your CRM to confirm that the changes were applied correctly.     Future Topics: Logic App Creation  In our next blog, we’ll dive deeper into the creation of Azure Logic Apps and how they can automate these CRUD operations further, enhancing your CRM’s functionality. We’ll cover:  – Setting up triggers and actions within Azure Logic Apps.  – Automating data flow between systems.  – Best practices for managing CRM data efficiently.  Conclusion  By leveraging Postman for CRUD operations and integrating with Azure Logic Apps, businesses can significantly enhance their CRM capabilities, streamline operations, and ensure that their customer data remains accurate and accessible. Stay tuned for our upcoming blog, where we’ll explore how to create Azure Logic Apps to automate these processes, making your CRM experience even more efficient.  We hope you found this article useful, and if you would like to discuss anything, you can schedule a call with us by clicking the button below.

Share Story :

How to Use Copilot Chat to Supercharge Productivity in Business Central

Interacting with systems in natural language benefits organizations by making technology more accessible and user-friendly for all employees, regardless of technical skill. It allows users to complete tasks quickly by eliminating complex commands, improving productivity and reducing the potential for errors. This streamlined access to information leads to faster decision-making, ultimately helping organizations operate more efficiently. Are your people finding it difficult to navigate Business Central and access important information quickly? If so, consider incorporating Copilot Chat to ease their suffering! Research indicates that call center operators using AI assistance became 14% more productive, with gains exceeding 30% for less experienced workers. This improvement is attributed to AI capturing and conveying organizational knowledge that helps in problem-solving. Specific tasks can see remarkable speed increases; for instance, software engineers using tools like Codex can code up to twice as fast. Similarly, writing tasks can be completed 10-20% faster with the aid of large language models. In the retail sector, AI-driven chatbots have been shown to increase customer satisfaction by 30%, demonstrating their effectiveness in enhancing customer interactions​. Currently, around 35% of businesses leverage AI technology, which is expected to grow significantly as organizations recognize its strategic importance. I am confident that this article will highlight the advantages of incorporating Copilot into your daily activities. References Configuration In Business Central, – Search for “Copilot and Capabilities.” – Select the “Chat” and click on the “Activate” button. – Click on the “Copilot button” near the top right. – You’ll be presented with this screen. – You can ask it queries like – “Show me all the Customers” from India. – “How many open Sales Quotes do I have?” – You can also ask context specific questions like –  – You can also ask questions for guidance on how to achieve certain things in the system. In my humble opinion, it is far from perfect but it is absolutely a step in the right direction.In the coming days, the functionality is surely going to blossom and navigation to different screens may become something that only power users need to think about. Conclusion In conclusion, I believe utilizing Copilot can surely boost the Users productivity and reduce reliance on other partners or other experiences users in resolving minor queries.It also reduces the effort taken to move from one piece of information to another. One thing that I would love to see incorporated into this is data summarization and inclusion of all the fields available on the entity to the Copilot’s database. If you need further assistance, feel free to reach out to CloudFronts for practical solutions that can help you develop a more effective service request management system.  Taking action now will lead to better customer satisfaction and smoother operations for your business.

Share Story :

Understanding Purchase & trade agreements in D365 – Part 4

In Purchase & trade agreements in D365 – Part 1 & 2 blog we have gone through overview of Purchase & trade agreements in D365 & how to setup different types of Purchase agreements in D365. In Part 3 blog we have covered setup of Trade agreement for purchase price & line discount. In this blog will go through how to setup Trade agreement line discount for quantity range & find next functionality in trade agreement. Problem statement – In this scenario we need to setup trade agreements for quantity range & Find next functionality. Solution steps – 1 – Will setup trade agreement for Line discount for Quantity range 1.1 As discussed in previous blog (Part 3) point no. 2.1, 2.2 & 2.3 we have already created Trade agreement journal names & enabled parameters hence we can use same for this blog. For those who have not gone through blog part 3 can follow below steps Create Trade agreement journal names – Go to Procurement & Sourcing -> Setup -> Prices & discounts -> Trade agreement journal names New -> Name -> Pur Disc -> Description -> Purchase discount -> Relation -> Line disc. (purch.) -> Save. & Enable parameters – Go to Procurement & sourcing -> Setup -> Prices & discounts -> Activate price/discount Enable all parameters for Price. Item parameter Yes for Vendor means It is to enable price for specific vendor for specific Item. Item parameter Yes for Vendor group means if price is same for item for group of supplier (based on vendor group) then need to enable this parameter. Item parameter Yes for All vendors means if item has same price for all suppliers then need to enable this parameter. 1.2 Create trade agreement journal. Go to Procurement & Sourcing -> Prices & discounts -> Trade agreement journals Create new journal – Name -> Pur Disc (Created in step 1.1) -> click on Lines to add details 1.3 Enter line details.  Party code type -> Table -> Account selection -> VEN-000001 -> Product code type -> Table -> Item relation -> P-000012 -> From -> 1 -> To -> 101 -> Unit -> Pcs -> Discount percentage 1 -> 5. Kindly note that, discount will be applicable to range excluding last number. In this case it will be excluding 101. 1.4 Then add lines as per range required Party code type -> Table -> Account selection -> VEN-000001 -> Product code type -> Table -> Item relation -> P-000012 -> From -> 101 -> To -> 501 -> Unit -> Pcs -> Discount percentage 1 -> 10. Party code type -> Table -> Account selection -> VEN-000001 -> Product code type -> Table -> Item relation -> P-000012 -> From -> 501 -> To -> 1001 -> Unit -> Pcs -> Discount percentage 1 -> 15 Then validate & post. 1.5 Then create new purchase order with respective vendor (In this case VEN-000001) for respective item (In this case P-000012) discount % will be reflected as defined in Trade agreement. As per above Trade agreement, if quantity is within 1-100 then discount will be 5%. As per above Trade agreement, if quantity is within 101-500 then discount will be 10%. 2 – Will setup trade agreement for Line discount with Next flag enabled 2.1 When we have trade journal with multiple scenarios for same item, “Find next” flag checks the all the applicable scenarios defined in trade agreement. When “Find next” flag is disabled then system checks & use discount with highest level of details. Create trade agreement journal. Go to Procurement & Sourcing -> Prices & discounts -> Trade agreement journals Create new journal – Name -> Pur Disc (Created in step 1.1) -> click on Lines to add details 2.2 Enter line details.  Party code type -> Table -> Account selection -> VEN-000002 -> Product code type -> Table -> Item relation -> P-000009 -> Unit -> Pcs -> Discount percentage 1 -> 5 -> Find next -> Yes Party code type -> Table -> Account selection -> VEN-000002 -> Product code type -> Table -> Item relation -> P-000009 -> From -> 101 -> To -> 501 -> Unit -> Pcs -> Discount percentage 1 -> 10 -> Find next -> Yes Party code type -> Table -> Account selection -> VEN-000002 -> Product code type -> Table -> Item relation -> P-000009 -> From -> 501 -> To -> 1001 -> Unit -> Pcs -> Discount percentage 1 -> 15 -> Find next -> Yes 2.3 Now if Find next parameter is Disable & then if we create PO with quantity 50 then disc will be 5%, quantity 150 then also discount 5% (even though we have given disc of 10% for 101-501) It is because Find next parameter is turned off, so system search for best fit price. Since in 1st line, quantity is not mentioned it is best fit line for all quantities & hence only applies 5% disc. 2.4 Now if we enable Find next parameters in all 3 lines & then if we create PO with quantity 50 then discount will be 5%, quantity 150 then discount 15% (as we have defined discount of 10% for 101-501 & 5% for all quantity) So system finds 2 best possible discounts hence added the same. If quantity 700 then discount 20% & If quantity 1050 then Discount 5%, as we have defined additional discount till quantity 1000. In this blog we completed how to setup of trade agreement line discount for quantity range & next flag. In next blog (Part 5) will cover Multiline discount & Total discount. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com

Share Story :

Sending and Receiving Messages from Azure Service Bus Using Logic Apps

Azure Service Bus, paired with Logic Apps, offers a powerful combination for sending, receiving, and managing messages between different applications and services. In this blog, we’ll walk through the process of sending and receiving messages using Azure Service Bus and Logic Apps. Steps to send and receive messages from service bus using logic app Step 1: Create an Azure Service Bus Namespace Navigate to the Azure Portal: – Go to portal.azure.com and log in with your credentials. Create a Service Bus Namespace: – In the search bar at the top, type “Service Bus” and select Service Bus from the results. – Click + Create to start the creation process. – Fill in the required details: Click Review + Create, and then Create to deploy the namespace. Step 2: Create a Queue or Topic in the Service Bus Namespace Access the Service Bus Namespace: – After the namespace is deployed, navigate to it by clicking on the resource in the portal. Create a Queue or Topic depending on your use case I am going to use: – Creating a Queue: Step 3: Create a Logic App to Send Messages to the Service Bus Navigate to Logic Apps: – In the Azure portal, use the search bar to find and select Logic Apps. – Click + Create to start a new Logic App. Configure Your Logic App: – In the Basics tab, provide the following details: – Click Review + Create, and then Create. Design the Logic App: – Once the Logic App is created, open the Logic Apps Designer and a trigger “When a HTTP request is received” along with POST request. – Add a compose action and pass the input parameters. – Go to Service bus –> Shared access policies –> Copy the Connection String Endpoint url – Add action Service Send Message and paste the copied end point in Connection String. – Pass the Output of compose in content. – Add a response action and the logic app workflow. – Now Copy the Url from trigger and paste it in postman hit the url. – As soon as you hit the url you will get customer Id as response in postman body. – Now Go to azure portal and check the run history I will see the Date and Status has been added for that particular customer id. – Now, Let’s verify this particular message whether it has been sent at the logic level or not. – Go to queue in my case Queue name Is “receivingqueue” –> Go to Service bus Explorer –> Click on Peek form Start. – Now in order see the content/ Message select the sequence number Step 4: Create a Logic App to Receive Messages from the Service Bus – Create a New Logic App: Repeat the steps to create a new Logic App. – Go to Logic app designer. – Add the Trigger “When a message is received in a queue”. – Add a compose action – Add a Terminate action on Succeeded. – Now to verify you check the run history of logic app you can we are getting the content in base64 Format – You can decode it and check it’s the same data that we were sending. Conclusion We’ve successfully set up a messaging system with Logic Apps and Azure Service Bus by following these steps. This configuration makes it possible to automate workflows, integrate apps seamlessly, and create reliable cloud solutions. Whether you’re working with batch processing or real-time data, Azure’s tools give you the strength and flexibility you need to scale your business effectively.

Share Story :

X++ and Excel: A Powerful Partnership

Excel has over 750 million users worldwide, making it one of the most popular software applications in the world. According to recent studies, 89% of companies use Excel for daily operations, financial modeling, data analysis, and other tasks. Excel is so integral to the financial world that many financial analysts and accountants refer to themselves as “Excel jockeys” or “Excel ninjas.” NASA used Excel in its operations for various calculations related to space missions. Using Excel for manual data entry is much more easier for end users as it provides a familar interface and can be navigated much more quickly.It can also be used for quick minor calculations and formulas. References: Details: For businesses generating large volumes of data, it’s essential to have an efficient system for users to input that data smoothly.  Are you struggling to keep up with your rapidly growing data? A study by Forrester Consulting shows that companies using Microsoft 365 tools like Excel, Word, Outlook, and PowerPoint see a 15-20% boost in employee productivity due to better collaboration and task management. This article will surely inspire you to start using Excel for your organization’s daily operations too! Enabling the Developer Tab in Excel To access advanced features like creating macros, using form controls, or accessing the XML commands in Excel, you’ll need to enable the Developer tab. Here’s how: – In the Developer Tab, click on “Add Ins” – In the pop-up that follows, click on “Store” and search for “Microsoft Dynamics” and click on enter. – Once you get the results as described in the below screenshot, click on “Add.” – Click on Continue. – Go to your Finance and Operations environment. – Go to System Administration -> Setup -> Office App Parameters. – Go to App Parameters and click on “Initialize app parameters” – Go to “Registered applets” and click on “Initialize applet registration” – Go to “Registered resources” and then click on “Initialize resource registration” – Then to test it out, we can go to the “All sales orders” list click on the “Office” icon at the top right and click on one of the “non-obsolete” options. – You can either download it on your own system or you can save it directly from this screen. – When you open the downloaded excel, after enabling editing, you’ll get the following pop-up and data. – You can also use this Excel to create records in the system. – Open the downloaded excel sheet. – Click on “New”. – Add the necessary fields in the newly created rows. – Once done, click on Publish. And we can see back in D365 that we have added some new records in the system via Excel. In conclusion, I firmly believe that using Excel for manual data entry can significantly cut down on unnecessary tasks.If you’re looking to streamline your processes or maximize the potential of your ERP systems, please feel free to reach out.

Share Story :

SEARCH BLOGS:

FOLLOW CLOUDFRONTS BLOG :


Secured By miniOrange