How to resolve Error: Report _ does not have a layout of type None
Introduction Have you ever faced the error: “Report ___ does not have a layout of type None.” Here’s how you can resolve it. Pre-requisites Business Central OnCloud/OnPrem References https://community.dynamics.com/business/b/think-about-it/posts/how-do-i-fix-error-report-x-does-not-have-a-layout-of-type-none Configuration With the earlier versions of Business Central, you were allowed to run a report without specifying a layout, even if it was not a processing only report. However with the recent version of Business Central it is mandatory to specify both the “DefaultLayout” and the path to the layout via the “RDLCLayout” or “WordLayout” or “ExcelLayout” properties. Once these properties are the defined the error is resolved. Furthermore you can also resolve this error by using the report rendering section which has been made available since runtime 9.0. However be sure to define the “DefaultRenderingLayout” property for the report to specify which of the layouts defined should be considered as default. Conclusion: Thus we saw how we can resolve the error: “Report ___ does not have a layout of type None.” Happy Coding!
Share Story :
Using Dialogs to enhance User Experience in Business Central
Introduction We’ve all faced situations where we’ve had an operation take a long while which made the User wonder whether the system is stuck with something or is still processing. We can use simple dialogs which can enhance the User experience by showing User the progress of the operation. Some Business Central operations have out of the box dialogs which indicate progress like Posting documents or entries, Running reports with large data sets. Pre-requisites Business Central OnCloud/OnPrem References Dialog Data Type – Business Central | Microsoft Docs Dialog.Open(Text [, var Any,…]) Method – Business Central | Microsoft Docs Configuration While using the Dialog for creating windows, there are 3 procedures that we are going to be using. Open – It creates the window which we will be displaying the messages in. Update – It updates the content of the window based on the values that we pass in it. Close – It closes the window. We can create a simple Progress Window using the below piece of code. And this is the result for it. Please note that because there were two # in the Label, system has broken them into two separate lines. To avoid creating multiple lines within a single dialog box, we can use the StrSubstNo procedure which compresses the number of updates that we call to 1. We can now see that the content is visible in a single line. In Business Central 14 or previous versions of Business Central (which used windows client) it was possible to show the progress indicator in percentages using native APIs, however this functionality is not supported in Web Client. However we can still simulate it using text and creating our own basic procedure which converts the values to a String which will be used to indicate the progress. Conclusion: Thus we saw how we can use Dialogs to enhance User Experience and allow Users to visualize the processing of some long running task.
Share Story :
How to Create Inventory Period in Business Central.
Inventory periods are used to keep track of when inventory adjusting entries are posted. Unless inventory periods are closed on a monthly basis, adjusting entries will post in the same period as the original transaction. Inventory adjustments will not be posted in that period if you create and close inventory periods. If the initial transaction was posted during a closed inventory period, the adjustments’ value is posted on the first day of the first open inventory period. This ensures that once the financial statements have been printed for a month, the G/L value of inventories, costs, and cost of goods sold do not change. CREATING INVENTORY PERIOD Many companies manage inventory the same time they manage accounting Period. Steps to access inventory period: Go to ‘Accounting Period’ Click on ‘Process’, there you find ‘inventory period’ OR You can simply Go to ‘Inventory Period’ from Global Search. STEPS TO CREATE AN INVENTORY PERIOD. Click On the search icon and enter Inventory Period, select relevant link. Create a new line In the Ending Date Field, enter the last date in the inventory period that you want to define. When the period is closed, you will not be able to post inventory changes before this date. Enter a descriptive name in the Name field. CLOSING INVENTORY PERIOD. The Closed parameter specifies whether the inventory period is closed to changes in inventory value. This field is not editable. You can close any inventory period if the following conditions are met In that time period, there are no open outbound item ledger entries, showing negative inventory. The Adjust Cost – Item Entries batch job was used to adjust the cost of all goods. This means that any outbound transaction quantities must be applied to existing inventory numbers, such as those from sales orders, outbound transfers, sales invoices, buy returns, or purchase credit notes. TO CLOSE AN INVENTORY PERIOD Before closing an inventory period, choose the Adjust Cost – Item Entries action to ensure that all cost adjustments are posted.Run the Close Inventory Period – Test report to determine if there are any open outbound item entries within the inventory period or any items whose cost has not yet been adjusted. Choose the Close Inventory Period – Test action.Run the Post Inventory Cost to G/L batch job to ensure that all costs are posted to the general ledger. Choose the Post Inventory to G/L action. On the Inventory Periods page, select the inventory period you want to close. Choose the Close Period action. After the inventory period has been closed, you cannot post inventory changes before the ending date. The cost of all items must be adjusted with the Adjust Cost – Item Entries batch job before you close the inventory period. Choose the Yes button to confirm that you want to close the period, or choose No to cancel the closing. The inventory period is closed and a confirmation message is displayed when it is finished. REOPEN INVENTORY PERIOD It is not possible to delete an inventory period once it has been closed. You can, however, reopen it if you want to allow posting before the inventory period’s expiration date. When you reopen a period, it also reopens other inventory periods with ending dates later than the reopened period. TO REOPEN AN INVENTORY PERIOD Choose the icon, enter Inventory Periods, and then choose the related link. Select the inventory period you want to reopen. Choose the Reopen Period action. Confirm that you want to reopen the period. All inventory periods with ending dates later than the period you selected are reopened. Thank you for reading. Hope this helped. 🙂
Share Story :
Undo Bank Reconciliation in Business Central.
If you find a mistake in a posted bank reconciliation, you can correct it using the Undo action on the Bank Acc. Statement page. Steps to undo a Bank reconciliation: 1. Go to ‘Bank Account’ from the global search icon. 2. Select the bank account for which you want to undo the statement. 3. Open the Bank account Card Page, select ‘Bank Account’ and then ‘Statement’ 4.Select the statement for the bank account reconciliation that you want to reverse, and select Undo. 5. Select Yes When you undo a previously posted bank reconciliation, the entries are relocated to the Bank Reconciliation page and are marked as Open, indicating that they have not been reconciled. The bank reconciliation can then be corrected and re-posted. The bank account card provides the bank statement number and the balance from the last bank reconciliation. This indicates that the new bank reconciliation has a different number than the cancelled one. You can use the Change Statement No. action on the Bank Acct. Reconciliation page to use the same number as the cancelled bank reconciliation. Follow these steps to modify the number of a bank account reconciliation: 1. Go to Global Search icon and type in Bank Account Reconciliation, and then select the relevant link. 2.Change Statement No. after selecting Actions. 3. Enter the number you want to use in the New Statement No. area, then click OK. The Last Statement No. and Balance Last Statement fields on the bank account card are updated after the bank reconciliation is posted. This means that if the bank reconciliation you just completed isn’t the most recent, you may need to manually edit the Last Statement No. and Balance Last Statement fields on the bank account card. Thank you. Hope this helps! 🙂
Share Story :
How to Create a collapsible Gallery control in Canvas Power App
In this blog, I am going to show how we can create a collapsing and retracting gallery control in Canvas Power app. Let’s start making this into our Canvas PowerApps Step 1: Insert a Flexible Height Gallery on the screen. For the current example, I’m using a table of User details. Items property of Gallery Step 2: Adding a ‘button’ which is stay visible all time and a ‘Container’ which will only be visible when that specific record is selected. Step 3: Adding variables to store information of selected record unique ID. OnSelect property of Button, Visible property of Container, Step 4: Modify as you like, I’ve added color indication which record is selected. That’s all, We have finally created the collapsible Gallery control in Power App. Hope this helps!!
Share Story :
How to Dynamically Filter Multi-Select Option set/Picklist in D365 CRM using JavaScript
In this blog, I am going to show how we can filter a field (multi-select option set) item dynamically based on another field (single-select option set) item. Let’s consider a use case, We have a field named ‘Application Area’ which is a (single-select option set) field and ‘Application Type’ which is a (multi-select option set) field. Let’s have a look at JavaScript where the magic is making this possible. Step 1: Below is the entire code of JS For Table/Entity Main Form customization, select ‘Form Properties’ to include JavaScript function as below, On Load: oApplicationAreaType.Main On Change of field ‘Application Area’: oApplicationAreaType.getDetails Note: Pass the execution context for calling the JS function. That’s all, we have created a dynamic filtering of multi-select option set using JavaScript. Hope this helps!!
Share Story :
To show validation on a field using Regex Expression
In this blog, I am going to show how we can display a validation on the field if the entered text is not in the required format Let’s consider a use case, We have a field name ‘DMV Initial License’ which is a single line of text field. When text is entered the Date format for this field should be MM/YYYY Let’s have a look at JavaScript where the magic is making this possible. Step 1: Regex Expression for Date in the required format MM/YYYY – date_regex = /^(0[1-9]|1[0-2])\/[/]?([0-9]{4})$/ Step 2: Below is the entire code of JS For Table/Entity Main Form customization, select ‘Form Properties’ to include JavaScript function as below, On Change of field ‘ DMV Initial License ’: oCustomerFormCustomization.checkDateFormat Note: Pass the execution context for calling the JS function. Hope this helps!!
Share Story :
How to throw validation notification on Fields residing in Form Header
Hi All, Have you tried setting Field level notification on the Form Header of the Record? Let’s consider an example, We have an Estimated Revenue field which should never be set a $0.00. Therefore, we must throw a notification error based on this validation. The formula for setting field level notification is generalized as follows, Now let’s see how this general formula changes based on the field’s location set on the Form. If Field is located on the Form Formula will be: If Field is located on the Form Header Formula will be: If Field is located on the Form Business Process Flow (BPF) Formula will be: Hope this helps!!
Share Story :
Use of Environment Variable inside Azure Function in C#
In this blog, we will learn how to configure and use Environment Variable in Azure Function. Concept of using Environment variable during your development which needs to deploy on multiple servers and connect to multiple systems. Whenever you use Environment variables to store the global constant or system credentials it reduces the time which was required to modify the code base for multiple deployments. Let’s get started with Creating the Azure Function and using the Environment variable. Step 1: Create an Azure Function inside the Visual Studio: I have created the HTTP Trigger Azure function inside Visual Studio and the authorization level is Anonymous Once you create an Azure Function project you will notice there are many files created with the project. We have a “local.setting.json” file that we are going to use and it holds the environment variable while the development and testing phase of your Azure function. Step 2: Declare credentials/global variable inside “local.setting.json” Information on local.setting.json – This file represents your local application setting for your Azure Function and it stays with your local build only. While you publish your azure function to Azure Portal or commit your code to your Repo this file is never pushed to the server as they are excluded/prevent from committing or publishing. Step 3: Access variable inside the code You can access the environment variable using the Environment class(required System lib). Based on your preference you can either access Environment variable the directly inside the code or you can create a CONSTANT class as mentioned below screenshot. Here, I am passing this environment variable inside a response so that we can test it. Step 4: Testing using Postman We will require the API testing tool, here I am using Postman and the following is the link to download “Postman”. https://www.postman.com/downloads/ To test the application, click on the Start button on top of the Navbar as mentioned below in the screenshot [Button will have Project Name]. It will take a few minutes to Load the Azure Emulator Following is the screen you will be able to see and copy the URL highlighted in the red below and paste that URL into Postman. Result: Now, you need to configure the Environment while deploying the Azure function on Azure Portal, and below are steps for the same: Step 1: Deploy an Azure Function on Azure Portal. You can directly create it on Portal or you can create it from Visual Studio. Here I am going to create and deploy it from Visual Studio: Right Click on the project and select Publish: Select Azure and Click on Next: Click on the + icon to create a new function, You can use the existing resource group or create a new resource group as per your preference: After deployment is completed you can see the deployed Azure function on Azure Portal: Now, if you try to use the Azure Function URL and post the request then you will notice that all the environmental credentials part is missing as we have not configured the environment variable on the Azure portal inside Azure Function App: Step 2: Configure the App Environment variable on Azure Portal for online deployment. Navigate to the Configuration section of your deployed Azure Function Add the Application setting in your Configuration and the Name should same as you have declared in your local.setting.json file. Make sure your click on Save to update the configuration on Portal. After configuration if you test your deployed Azure function using postman you will get your expected result: This is how you can configure and use the Environment variable inside your Azure Function. It will make your life easier while deploying Azure on Development, UAT, or Production Environment. You can store the Source and Destination system credentials, SQL Access credentials, or Custom Global Variable based on your business requirement of integration.
Share Story :
Create Accounting period in Business Central.
CREATION OF ACCOUNTING PERIOD. Step1. Globally search “Accounting Period” and click on the related link. Step2. To create a new accounting period, select process and then click Create year. Step3. By default, system will have a starting date as per the last created accounting period. The no. of periods is 12 by default Period length usually is 1M but can be modified to weeks or quarters. Click ok and a new accounting period is created. CLOSE ACCOUNTING PERIOD Step1. Select Process action and then click on Close Year Step2. System pops up a message stating the start and end date and once the period is closed it cannot be undone. Once you click OK, the closed and data locked column is check true. After Closing the accounting period, we need to close the Income Statement. Step1. Globally search “Close Income Statement” and select the related link Step2. The Fiscal year ending date is automatically filled by the system Step3. Select the journal template you need to post. For Journal batch, create a new batch that can be uniquely identify year end. Step4. Fill in all the necessary details. Click OK and Journal lines are created Step4. Navigate to General Journal and select the batch name Check if the balance is correct before posting. (First preview post the entries to verify the G/L entries) Step5. Post the journal lines. After posting check the retaining earning account. Hope this helps! Thank you.
