Category Archives: Blog
Inventory lookup feature to be operational in 10.0.19 release of D365 Retail(Commerce)
As of now as a POS user if you want to check the inventory of an Item , you will need to click on the inventory lookup button on homepage and you will have to then enter the item number to display a list of store wise inventory. While this feature is useful, there is a need to check inventory directly from the cart itself. Microsoft has finally made this feature available. However, this will be available from 10.0.19 release. Once this feature becomes operational, you will need to add an ‘Inventory lookup’ button to the button grid. After adding a line to the cart you can select the any line and then click on inventory lookup button to check the stock for that particular item. If you select no lines and click on the inventory look up button you will see an empty form Hope this helps!
Share Story :
Database error on POS while adding products to cart in D365 Retail POS
This particular error ‘A database error has occurred’ took a very long time to resolve for us as neither us or Microsoft were able to figure out what was causing it. We verified and double checked following to resolve the issue but to no avail. I suggest you to first ensure the below things before you escalate it to Microsoft support team. Validate the created products Make sure product has category assigned. Ensure product is added to store assortment and assortment is published Process the assortment and all the jobs are in applied state If the issue still persists, then its possible the issue is with scheduler sub jobs. Check the InventTable. There should be 1040 job in the scheduled by Tab If its missing then go to 1040 jobs and then scheduler jobs and add Inventtable to it. Hope this helps!
Share Story :
Register/Create customer accounts of store employees on POS in D365 Retail(Commerce)
In Retail store you will need to assign address books i.e. One for store staff/employees and the second one for customers. If you fail to do that then on POS you will not be able to login or see/search for customers The above setup is the ideal for the store to function properly. However, some employees you want to create as customers too. You can do this manually or you can keep it automatic. The meaning of automatics is, you will be able to search for store employees on POS and as soon as you click on their names, a customer with the same employee name will be created in the system. To do this automatically on POS the below setup is required. As you can see ‘Houston’ address book is common in the store Customer address book and Employee address book As a result of this setup, whenever you search for any employee on POS and select it, it will be created as customer in the system. Here, I have searched for Eric who is an employee and his customer ID field is blank as he is an employee. As soon as I click on it, it will create the customer in the system. Hope this helps!
Share Story :
How to handle multiple loyalty cards in D365 Retail(Commerce) store POS
Loyalty programs can help increase customer loyalty by rewarding customers for their interactions with the retailer’s brand. In Dynamics 365 Commerce, you can set up simple or complex loyalty programs that apply across your legal entities in any commerce channel. You can set up your loyalty program in many ways so that it includes options such as: multiple types of rewards, incentives, earning rules, manual point adjustment. Some customers will also require to setup multiple loyalty cards for every customers. For example as you can see Stuart has 2 loyalty cards associated with his account. The provision to allow customers to have multiple cards is a useful feature but it makes the loyalty card process a bit complex. Complex in a way that loyalty card will not be selected by default hence cashiers will need to be careful and choose a loyalty card during every transaction. If you do not select a loyalty card, then points will not be earned for the customer while making a purchase. To avoid this from happening, what cashier can do is always search for the customers with their loyalty card numbers. This way the loyalty card would be selected automatically while customer is making a purchase. However if the customer does not have the card number handy then the cashier will need to select a loyalty card I hope this helps!
Share Story :
Login Error in BC after changing Server Date
Introduction: While doing some customization testing, which revolved around using different dates, I realized that once the date is switched back to the correct date, I was unable to connect to Business Central. I restarted the server instance, IIS, SQL Server services to no avail. Prerequisite: Business Central On-Premise setup with Web Server and SSL. References: https://serverfault.com/questions/217343/date-header-returned-by-iis7-is-wrong https://support.microsoft.com/en-us/topic/using-net-stop-and-net-start-commands-to-force-iis-services-to-re-read-the-registry-c6fe0d0b-9893-36d0-cc3c-47d03f9ccdde Verification: Logging into Business Central gave no errors, there were no errors in the Event Viewer that explicitly mention that it is a Date related issue. The way I stumbled across it being a date related issue is that in the Response that the Business Central server sent to the Login Request, was carrying the wrong date in it. When I switched the System Date back to the date mentioned in the Response headers, everything seemed to be working again. Solution: This issue is caused because when the system date is changed, the same is changed in IIS but when you change it back IIS does not refresh it and we have to manually reset it. Restarting it does not work, trust me, I tried. One way to do this is to execute the following commands on the Server: net http stop net http start These commands took a lot of time so be sure to have available down time before you run them. The other way, which is much simpler in my opinion, is to simply restart the Server. This stops all the services and restarts them which forces the IIS to reset as well. Conclusion: Thus in this blog, we saw how to resolve the issue of being unable to login after changing Server Date in Business Central. Hope this helps!
Share Story :
Change Business Process Flow Based on Form Type Using Java Script.
There are situations where you might need different business process flows based on the form type you choose let us take an example. Consider you want a Business Process flow on the lead entity Such that Lead form will show –BPF with stage Discover, Demo, Propose Sales Lead form will show – BPF with stage Discover, Requirement Gathering, Qualify The case be achieved by doing the following. Lets begin with the implementation. Solution – Step 1: Make a Solution for your customizations and add the lead entity in your solution. Step 2: Make 2 main forms for the lead entity namely “Lead form” and “Sales Lead form” Step 3: Go to process – > Add a new process -> names It Lead creation. Step 4: In the same solution under lead entity add a field of type single line of text namely “Form Type”. Step 5: Add this new field on the lead form and the sales lead form. Note : This field will carry the form type of the form hence will be kept hidden and locked on both the forms. Step 6 : Next step is to get the form type in our form type field to achieve this we will use a web resource that is a java script code Step 7 : By doing so we successfully bring the form type written in our single line of text field. Step 8 : Next step is to create a business process flow in the solution go to process and make a new business process flow. Step 9 : The above snapshot shows the business process flow to achieve the functionality here the create stage we take the form type as a parameter this is then passed to the condition to check the form type Step 10 : So, if the form type is Lead form it will be true and take business process flow for lead form. Step 11 : Else it will be false and will take the business process flow for the sales lead form. Note: – Make sure to add the business process flow as an entity to the solution and select the form and the business process flow in the site map of the app designer. Java Script code : (Onload of the Form) ChangeBPFByType = (executionContext) => { debugger; try { let formContext = executionContext.getFormContext(); const selectedFormName = formContext.ui.formSelector.getCurrentItem().getLabel(); const getFormIdFromTxtBox = formContext.getAttribute(“cfs_formtype”).getValue(); //formContext.getControl(“header_process_cf_leadform”).setVisible(false); if (formContext.data.entity.getId() == “”) { formContext.getAttribute(“cfs_formtype”).setValue(selectedFormName); } else { var getAllForms = formContext.ui.formSelector.items.get(); let navigateFormGuid = “”; for (var i = 0; i < getAllForms.length; i++) { if (getFormIdFromTxtBox == getAllForms[i]._label) { navigateFormGuid = getAllForms[i]._id.guid; break; } } if (getFormIdFromTxtBox != selectedFormName) { formContext.ui.formSelector.items.get(navigateFormGuid).navigate(); } } } catch (e) { alert(“Something went wrong please try again later”); } } Hope that helps.!
Share Story :
Send an Email to all users in a D365 Team using power automate.
D365 gives us a functionality to assign a record to a group of users which can be archived by using a D365 Team these users then are know as members of that respective team, due to functionality restrictions we cannot send an email to a D365 team, however there are a few workarounds by which we can achieve this functionality. Lets consider a case. Suppose we have a D365 team called as “Accounts Associates” we have added a set of users in this team. Now if an invoice milestone is in the ready state i.e. “Ready For Invoicing” we need to send a reminder email to this “Accounts Associates” team to take an action regarding the ready invoicing. Solution :- The following case can be achieved by using an Out of the box functionality i.e. By using a distribution list Note :- (we must have an Microsoft Exchange License). Lets Begin with the implementation. Step – 1 Creating a Distribution List Login to your admin center (Link –https://admin.microsoft.com/) In the Admin center Section of the Left navigation bar select “Exchange”. Under the “recipients” select “groups”. In the “+ New Microsoft 365 Group” pull down the dropdown and add the distribution list. Add the Display name and the “Alias” and save the Distribution list. Add same users which are present in the teams to this Distribution list. Step – 2 Creating a Queue in D365 Go to “Settings” -> “Service Management” ->” Queues” and click on “+NEW” -> give it a name -> “Save” A mailbox would be created with the same name that of the queue. Open the mailbox. The Email address field will be blank, add the Distribution List’s email address created in Step 1. Step -3 Create a New Team or select an Existing Team. In the Default Queue lookup, select the Queue created in Step 2. Step – 4 Create a Flow which triggers on update of a project contract line milestone i.e. When status is ready for invoicing Flow triggers when Project Contract Line is Updated, Condition Invoice Milestone is Ready for invoicing for which click on the “…” select settings and add the following condition in the trigger sectio Get the Teams ID in this case I have hardcoded the ID as no record was associated with it to retrieve it Get the Teams Details. Get the Default Queue to which the email will be triggered . Send an Email to the Incoming Email of that Queue which is Email ID set on the Distribution list. Note : (We will have to Manually add or remove the users from both the Distribution list and the Teams. i.e. both the team and the distribution list must be sync, if a member is added or removed from the team the same should be done in the distribution list ) Output . Hope this helps.!
Share Story :
Send an Email to all users in a D365 Team using power automate
D365 gives us a functionality to assign a record to a group of users which can be archived by using a D365 Team these users then are know as members of that respective team, due to functionality restrictions we cannot send an email to a D365 team, however there are a few workarounds by which we can achieve this functionality. Lets consider a very case. Suppose we have a D365 team called as “Accounts Associates” we have added a set of users in this team. Now if an invoice milestone is in the ready state i.e. “Ready For Invoicing” we need to send a reminder email to this “Accounts Associates” team to take an action regarding the ready invoicing. Solution :- The following case can be achieved by using an Out of the box functionality i.e. By using a distribution list Note :- (we must have an Microsoft Exchange License). Lets Begin with the implementation. Step – 1 Creating a Distribution List Login to your admin center (Link –https://admin.microsoft.com/) In the Admin center Section of the Left navigation bar select “Exchange”. Under the “recipients” select “groups”. In the “+ New Microsoft 365 Group” pull down the dropdown and add the distribution list. Add the Display name and the “Alias” and save the Distribution list. Add same users which are present in the teams to this Distribution list. Step – 2 Creating a Queue in D365 Go to “Settings” -> “Service Management” ->” Queues” and click on “+NEW” -> give it a name -> “Save” A mailbox would be created with the same name that of the queue. Open the mailbox. The Email address field will be blank, add the Distribution List’s email address created in Step 1. Step -3 Create a New Team or select an Existing Team. In the Default Queue lookup, select the Queue created in Step 2. Step – 4 Create a Flow which triggers on update of a project contract line milestone i.e. When status is ready for invoicing Flow triggers when Project Contract Line is Updated, Condition Invoice Milestone is Ready for invoicing for which click on the “…” select settings and add the following condition in the trigger section. Get the Teams ID in this case I have hardcoded the ID as no record was associated with it to retrieve it Get the Teams Details. Get the Default Queue to which the email will be triggered . Send an Email to the Incoming Email of that Queue which is Email ID set on the Distribution list. Note : (We will have to Manually add or remove the users from both the Distribution list and the Teams. i.e. both the team and the distribution list must be sync, if a member is added or removed from the team the same should be done in the distribution list ) Output . Hope this helps.!
Share Story :
Using POS Tags in LS Central
Introduction: Tags are small pieces of Information that we can display on the POS. This information may be a field from a table or just some text. If we are using a field from some table, it is necessary that, the table can be referenced using only the fields available in the current “POS Transaction” record. There are multiple types of Tags available like: System :- These tags display system information. Transaction :- These Tags display information regarding the current Transaction. Session:- These Tags display information regarding the current Session. References: https://help.lscentral.lsretail.com/Content/LS%20Retail/POS/Data/Tags.htm Prerequisite: Microsoft Dynamics 365 Business Central LS Central Demonstration: In most cases, we are going to use “Transaction” type Tags so let take an example. In this example, we are going to create a Tag which will display the manager of the Store. To create a Tag: Search for POS Tag in BC Create a new POS Tag, by convention the naming is <#TagName> so we are going to follow the same. Since the data we need is from the “Store” table we set the “Store” table’s ID in the “Table No.” field and as we need the “Manager Name” from the “Store” record, we set the “Field No.” accordingly. In the “POS Trans. Key Field” we specify which field will be used to reference the table mentioned in the “Table No.” field which, in our case, is Store. This list of fields is from the “POS Transaction” table. In the “Expression” we can specify how the data should be presented, %1 is substituted for the data. On the POS, we can use this Tag in the “Description” field of any and all Menu Lines, for example, we can use this as the name of a button, thus the button will change depending on which Store it is being used on. In this example, I am going to set it on “Manager” button on POS. Right Click on the “Manager” button and click on “Button Properties.“ Click on the three dots and choose the “Tag” that we just created and click on OK. Click on OK again so that the “Button Properties” page closes. The button now shows the “Manager Name” field of the Store, in the expression that we provided. Conclusion: Thus, we saw how to configure and use “Tags” in POS, in LS Central. Thanks for reading!
Share Story :
How to use multiple email account to send different documents using Email Setup.
Introduction: There must be a requirement from client where they want to send different documents using different email accounts.It is possible using Email setup. Steps to achieve the goal: Go to Set up Email -> Click on Next Business Central gives you an option to choose the account type. I am going to use Microsoft 365 account Give Account name and assign the email address from which you need to send the documents. Don’t turn the default button as it will set this account as default and all documents will be shared from this new account which you added and then click on finish. Go to the email accounts page you will be able to see two accounts one account which will be the default one and another account which I created then go to Email Scenarios Assign the Email scenarios to stated which accounts to be used for sending specific documents. I just want the Sales Invoice to be sent from the new account which I added. Click on Ok. You can assign any scenario you want as well you can remove scenarios Go to Feature management to allow all the users to use this feature And then go to Sales invoice -> click on Print/Send action -> A screen appears with from details and to details and then click on send email. Conclusion: Thus we saw how we can use multiple email accounts to send the specific documents. Thank you very much for reading my work. Hope you enjoyed the article!