Starting amount showing blank in X/Z report in D365 Commerce (Retail)
In this blog, I am going to showcase how to resolve the error while printing the X/Z report from POS. In the store, go to payment methods. Select the tender Remove/ Float payment method. The payment method configuration for “Tender remove/float” was incorrect. If you don’t want to have the same problem be sure to unmark all the “tender declaration options” at this payment method. If you need to unmark after saving it you need to do it at RetailStoreTenderTypeTable.counting required there will be a record per payment method per store, so update as many as you need. After performing these steps, run Full sync from Channel Database. Refresh the POS link. You will able to see the start amount in both X/Z report. Hope this helps!
Share Story :
Issue in returning Invoice Orders in D365 Commerce (Retail)
In this blog, I am going to showcase how to resolve the error while returning invoice orders in Retail POS. When a customer will come to the shop and want to return the order which already invoices then getting following error on the POS This error was occurred because the return reason code setup is missing. Steps to Configure Return reason code. Set up return reason code groups Go to Sales and marketing > Setup > Sales orders > Returns > Return reason code groups. Select New to create a line for a new return reason code group. In the Return reason code group field, type an identifier for this group. In the Description field, type a brief phrase to explain how this group will be used. Set up return reason codes This procedure helps you set up return reason codes that you can use to indicate why a product was returned by the customer. Go to Sales and marketing > Setup > Sales orders > Returns > Return reason codes. Press CTRL + N to create a new return reason code line. In the Return reason code field, enter text to identify this code. In the Description field, enter text to describe the return reason code. Use the Return reason code group drop-down list to add the code to a return reason code group. Once all setup complete. Run 1030, 1070, 1090, and 1110 and refresh the POS link. Now you will get the below info code to enter the reason for the return and you will successfully return the invoice order. hope this helps!
Share Story :
Delete multiple tables or columns at once in PowerBI
While importing data into PowerBI we can choose the tables we want to load in the data model but we cant choose specific columns, although columns can be removed through advanced editor or by manually deleting them one by one this can also be done without using advance editor and multiple columns or tables can be deleted at once. To do this go into the data model section of your PowerBI report. Now expand the desired table and the press ctrl key on your keyboard and select the columns you want to delete. You can also select multiple tables using the same instruction. After selecting multiples columns or tables right click and select “Delete from the model” option. In the dialogue box that appears click on the “Delete” button. Then click on “Apply Changes” option which will appear in the window and you can see all those columns are now deleted Hope this helps!
Share Story :
Hide and show slicer pane with a toggle button
Sometimes we would want to toggle some visuals in PowerBI on the basis of a button click for instance when clicking a button a certain visual shows up and while clicking the same or another button the visual hides itself. This can be easily done with the help of bookmarks in PowerBI. In this blog we will hide and show the slicer panel. First let’s insert a right arrow button from the Buttons option in the insert tab. And place this newly created button in the extreme left of our report canvas. Now click on View tab from the Ribbon and enable Bookmarks Pane and Selection Pane. Click on Add option in Bookmarks and create a new bookmark named Slicer Invisble Now again go to Insert tab and from shapes draw a Rectangle over the button. Now on the rectangle add a slicer and populate it with desired values also add a left button so as to close the slicer pane. Now add another bookmark named Slicer Visible in the Bookmarks pane. Now in the selection pane hide the first button we had created and update the Slicer Visible Bookmark. Similarly keep the first button visible and keep the shape, slicer, and second button hidden. Update the Slicer Invisible bookmark accordingly. Right click on both the bookmarks and uncheck the Data option so as to not record changes in data. Select the second button and toggle the Action button as on from type select bookmark and from bookmark select slicer Invisible. Similarly click on the first button and set its action to slicer visible bookmark The toggle buttons will open and close the slicer pane as required. Thank you for reading my blog hope it helped.
Share Story :
Document Location Merge Duplicate
Introduction: If you have duplicate records, you end up merging the records. What happens to the documents that are present on these records. Solution: We have two Contacts, one with Word “My doc” attachment and other with Word “Test” attachment. When we merge the two records and select C 1 as master record. The record c2 will be set as Inactive and the master record will have two document locations. That is how merge works for Documents. Hope this was helpful!
Share Story :
D365 CRM Data Import Pointers
Introduction: Data Import is an integral part of any Migration or new enviornment. CRM allows us to use Data Management>> Data Import wizard to easily import data from Excel files. Text data is easily imported but for data that is Lookup or Multi Select Option Set, users might face issues. This blog will guide as to how we import Data of different types. Lookup: This type of record actually relates to other entity. We need to first assure that the related record is already in system. Example- If we are importing Account with Primary Contact lookup, we need to be sure that the Contact File is already imported and data is present in CRM. Excel file should have same name that we have for existing record, so that it maps to the correct record. In case where we have deadlock in lookup, like Account has Contact and Contact has Account Lookup, we have to import one file without lookup and then update same with lookup. To be clear we need to upload Account without primary contact, then import Contact with Account and then update Account file with Contact. Multiselect Option Set : To import records with multi-select option set field, we would need to pass the option set labels with semicolon “;” as the separator. We need to take care that none of the labels are misspelled. Date: To upload dates, please check the data format in settings and take care that your Excel data is in same format. Other points: While importing data, Duplicate detection rules might cause records to fail, we need to unpublish, rules that do not satisfy our requirements. Also, It is advised to upload clean data and what better than using highlight duplicate and remove duplicate functionality of Excel. This is all in case of new records, in case you want to update records, download the static worksheet of records from Advance find, make changes and upload the exact same updated file, the data import wizard in this case will not ask for mapping, if it does recheck your steps performed.
Share Story :
Retrieve characters/Substring from string in Cloud Flows
In this blog we will see how to retrieve string or characters from string using substring and take method When we want to retrieve character/string from starting index then will use take() method, else will use substring() Let say we want to retrieve first 5 character from string. Eg. – string is Power Automate We will demonstrate this with both the cases. Using Substring Here we are retrieving first 5 characters from string i.e. Power Expression used – substring(‘Power Automate’,0,5) Output – 2. Using take Expression used to retrieve string – take(‘Power Automate’,5) Output – Hope this helps!
Share Story :
Customizing POS Receipt Layout
Introduction POS Receipts are generated after every transaction that occurs on POS. The default receipt provided by LS Central is generally sufficient but as is in all things there are always exceptions. There are two approaches we can use to modify the POS Receipts and we are going to see them both. This is the default receipt provided by LS. I have marked division of sections using color. Red – Header Green – Body Blue – Footer References https://www.archerpoint.com/blog/Posts/learn-how-set-pos-receipt-enhancements-ls-retail https://help.lscentral.lsretail.com/Content/How-Tos-Created-By-Support/How-To-Set-Up-Receipts-LS-Central.htm Pre-requisites Microsoft Dynamics 365 Business Central LS Central Development Environment Setup for Business Central Configuration Using Receipt Printing from POS Terminal / Store Card We can add text directly into the Header or the Footer of the POS Receipts and also define some basic properties like bold, italic or wide for the text. It can be defined at POS Level or Store Level i.e. for individual POS Terminals or for all the POS Terminals in a Store. Go to POS Terminal Card. Go to Printing -> Receipt Printing Here you add static content, like Store Name, GST/VAT No, Store Address, etc in both header and footer. Here you can also define, if you want to specify the Item No. or Barcode in the POS Receipt. Similar, to this, we can also define for Store level, i.e. all the POS Terminals in a Store. Using the “POS Print Utility” procedure: In this method, we will write actual code to modify the receipt. If you are using NAV, then this is pretty straight forward, but in case of Business Central, we only have access to Events which we can subscribe to, to change the behaviour of the procedure. The highlighted four procedures do the majority of the work done in printing. PrintHeader -> Prints the content of the header defined in the Receipt Printing. PrintSubHeader: It prints the Information related to the current Transaction. PrintSalesInfo: It prints the actual Items of the Transaction along with VAT and other details at the bottom. PrintFooter: It prints the Footer Text defined in the Receipt Printing. Now that we know which procedure is responsible for which part of the Receipt, we can subscribe to that procedure’s event. For example, let’s try me modify the “Sub Header” part of the Receipt. As such we need to modify the “PrintSubHeader” procedure, so we subscribe to its event. The parameter, sender gives us a reference to the current instance of “POS Print Utility” codeunit which we can use to call all the procedures of that codeunit with the correct values. TransactionHeader is the current “Transaction Header” record. At the start of the procedure, we need to set the IsHandled variable to True so that once your procedure ends, the parent “PrintSubHeader” procedure exits immediately. DSTR – It is the design String, here we define the design of the Line that will be printed. It is at max up to 40 characters. It follows the pattern “#(alignment)##…”. The Design String is divided into sections, each section contains one piece of data. Value – It is a text array, which defines the data which is to be printed in the sections. The number of values set in the Value should be equal to the sections in the design string. Node – It is used as a Label for the data in the section. The number of values in this array should be the same as the values in Value array. Next, the essential part is the “FormatStr” procedure, the 4 booleans at the end are used to specify whether the String is going to be Wide, Bold, High or Italic respectively. After this, the final piece of the puzzle is the “AddPrintLine” procedure, the first argument is the “Section ID”, it is related to which part of the receipt we are printing in, it is better to set it the same as the procedure from which this event is being triggered. Next argument, specifies the maximum number of Sections that will be in the design string, just make sure it is more than the values you have provided. Next, we pass the Node and Value array, the Design String and specify whether the String is going to be Wide, Bold, High or Italic and the Tray at the end. The value for Tray can be taken directly from the Event’s parameters. Similar to this, we will add one more line and then we will check the results. The “PrintSeperator” procedure is used to draw a horizontal line across the receipt using dashes. Here is the final result: Conclusion: Thus we saw how to customize POS Receipts in LS Central either through POS/Store Receipt Printing or for advanced customizations through Event subscriptions.
Share Story :
Use Microsoft Forms with Power BI Reports
Sometimes we would want to ask users about their thoughts , opinions or ask some questions along with a PowerBI report. That is, we would need to collect information about the user through PowerBI App. This can be done by creating a Microsoft Form inside PowerBI interface to collect user information. This can be demonstrated as: Go to forms.office.com and create a new form. Insert the Title , Description and add some fields in my case I have created a Test form with a field for giving ratings. Click on share and copy the link. Go to app.powerbi.com , create a new workspace and while creating enable develop a template app option Add your existing PowerBI reports here by clicking “New” option and then click on create app. You can add Name, description and logo to this app also you can choose a theme Click on Navigation tab and enable new navigation builder Click on the New button on the navigation pane and select link. Enter the Name of the form and enter Microsoft form link Publish the app then select go to app As you can see the form is embedded in PowerBI interface The responses done by users gets saved at forms.office.com This can be used in a scenario where we need feedback for a PowerBI report Hope this blog helped Note: Not all Power BI users can view and interact with apps. If you have a free license, you can open apps that are stored in Premium capacity and have then been shared with you. If you have a Pro license, you can open apps that have been shared with you.
Share Story :
Configuring Scheduled Jobs – Part II
Introduction: In the previous Blog, we saw how to configure the Schedule Job Header, this time we will configure the Sub-jobs. In Sub-jobs, we can define the Table structures to be followed, Tables the Data is supposed to be sent to, filters, replication counter fields and so on. References: Repl. Counter Interval, Scheduler Subjob (lsretail.com) From-Location Design, Scheduler Subjob (lsretail.com) Replication Method, Scheduler Subjob (lsretail.com) http://www.apanko.ru/showthread.php?t=3517 Pre-requisites: Microsoft Dynamics 365 Business Central LS Central Configuration: General:- ID:- Unique Identifier for the Sub-job. From-Location Design/To-Location Design:- These fields specify the structure of the tables. If the table structures are same in both sending and receiving locations, then you do not need to set this field. From-Table ID/To Table ID:- These fields specify the IDs of the tables. In most cases, these will be same only exception would be when you want to send data to custom Tables from BC/LS Tables. Replication Method:- It has two options- Normal :- In this method the entire table is transferred but as this is an expensive operation and unsustainable if the data in the table is growing constantly, there is another field “Replication Counter” which resides on the table which is to be transferred, it must be an integer field and every operation which modifies/inserts a record in the table, this replication counter field must be updated. Majority of tables provided by LS have a “Replication Counter” field in them. By Actions:- Every operation we perform on every table is logged into a “Preactions” table by LS. Then these Preactions are converted into “Actions” which are then used to transfer data. Field Transfer Type:- It specifies how to handle the fields of the table. It has three options- All:- All the fields from the “From Table” are transferred in the “To Table”. Include List:- Only the fields specified are transferred. Exclude:- All field except the ones specified are transferred. What to do:- It specifies the operations the transfer can perform. There are the basic operations Add, Update & Delete and then building on them there are combinations of these operations.Note:- Please use the delete operations carefully as it may cause unintended data deletion. For most uses, Update-Add is sufficient. Replication:– Action Table ID:- This field is automatically updated when “Replication Method” is set to “By Actions.” Move Actions:- Specifies whether “Actions” should be transferred along with Data. Use Truncate:- When using “Normal” replication method, if this is set to true, then the destination table is cleared and then new data is inserted in it from the source table. If you are using “Update-Add-Delete” as “What to do” then this is more efficient. Replication Counter:- Specifies which “Integer” field is to be used as the “Replication Counter.” Repl. Counter Interval:- If this value is set then the data to be transferred is divided into blocks. The size of the block is as defined in the field.For instance, as per the replication counter, 1000 records are to be transferred. But since sending a huge amount of data at once may burden the replicator we can specify the “Repl. Counter Interval” at 100, after which the “Sub-job” will run 10 times, replicating 100 records at a time. Update Repl. Counter:- Specifies whether the “Replication Counter” field in the destination table should be updated or not. Mark Sent Records:- In this field we can set a boolean field of the “Source Table” which will automatically be set to true, when the record is set. Please do note that none of the fields mentioned in the “Replication” tab are compulsory but creating a sub-job without using the available replication options may become slower and network intensive as entire tables are transferred. Transfer Field List: Go to Navigate > Sub-job > Transfer Field List Here we specify the field mapping between the source and destination tables. It also allows for some degree of Conversion in transferring, for instance, Set “Conversion Type” to “Constant” and set a value in the “Conversion String” field, then after transferring, the value specified in the “Conversion String” is set on all the records in the specified field. Make sure the field is of type “Text” or “Code” before using this. Another practical example would be, When transferring “User” table, if we simply send the password directly then the proper values are not transferred. This can be resolved by using “Skip Text Conv.” on the “Password” field before transferring. From-Table Filters: Go to Navigate > Sub-job > From-Table Filters Here we can specify filters to be applied to the source table. Linked Tables: Go to Navigate > Linked Data > Linked Tables Here we can specify data from which other tables has to be pulled along the main table, in the above example, as the sub-job is using data from “Customer” table, we have defined that along with that we also want data from “Customer Ledger Entry” table. We can also define field mapping for these tables by going to Navigate > Linked Table> Field List. To define the link and/or filters on this table, go to Navigate > Linked Table > Filters and Links. Conclusion: Thus, we saw how to configure Sub-jobs and a brief overview of the features it offers. Thanks for reading!