Dynamics 365 Business Central – Enter Customer Payments with Cash Receipt Journal

In Microsoft Dynamics 365 Business Central, customer payments can be entered using the Cash Receipt Journal. At the time of entry, customer payments can be applied to one or many open entries, or if you are not ready to apply the payments, you can apply them from the posted entries later.

To enter a customer payment via the Cash Receipt Journal:

  1. Search for Cash Receipt Journal using the “Tell Me” search feature in Microsoft Dynamics 365 Business Central
  2. Select the desired Cash Receipt Journal Batch to enter the payment Note: The journal batches may be set up for specific scenarios and may have predefined values for items such as the “Balancing Account” and  “No. Series”
  3. Fill in the values for the Payment on the Cash Receipt Journal Line.
    1. “Posting Date” is the date that you’ll register the Payment
    2. Because we are entering Customer payment, the “Document Type” would be Payment
    3. Enter the “Document No.” for the Payment if a “No. Series” is not defined for the Cash Receipt Journal Batch. The number may represent the Customer’s “Check No.” or another reference
    4. “Account Type” should be Customer, and the “Account No.” is the Customer’s number defined in Business Central.
    5. Enter the Credit Amount of the Payment
    6. Specify the “Bal. Account Type” and “Bal. Account No.” such as the number of the general ledger or bank account that the balancing entry is posted to, such as a cash account. (This may be predefined in the Cash Receipt Journal Batch)
  4. Apply the Payment to open Customer Entries
    1. If the Payment application is for one entry, you can select the “Applies-to Doc. Type” and the “Applies-to Doc. No.” of the posted document that this document or journal line will be applied to when posting.
    2. When applying a payment to one or more entries, select the “Apply Entries” action item to open the “Apply Customer Entries” page.
      1. Select the entries you would like to apply the Payment to, and select the “Set Applies-to ID” action item for each. The “Document No.” value of the journal line will populate the “Applies-to ID” field on the applied entry.
      2. If the applied Payment is not for the entire open amount, you can enter the applied amount in the “Amount to Apply” field on the open entry.
      3. Select Ok to close the “Apply Customer Entries” page.
  5. Finalize the Customer Payment by selecting the Post action item on the “Cash Receipt Journal” page

Note: The code and information discussed in this article is for informational and demonstration purposes only. This content was created referencing Microsoft Dynamics 365 Business Central 2022 Wave 2 online.

It’s Friday – December 02

Don’t forget about Feature Management. It allows an administrator to enable the preview of upcoming features, allowing users access (to test) the features in a SandBox environment before they’re activated in a Production environment.

December 2022 Cumulative Updates for Dynamics 365 Business Central and Microsoft Dynamics NAV

The December updates for Microsoft Dynamics NAV and Microsoft Dynamics 365 Business Central are now available.

Before applying the updates, you should confirm that your implementation is ready for the upgrade and ensure compatibility with your modifications. Work with a Microsoft Partner to determine if you are ready and what is needed for you to apply the update.

Please note that SaaS customers will automatically be upgraded to 21.2 over the coming days/weeks and should receive an email notification when upgraded.

Direct links to the cumulative updates are listed here:

Dynamics 365 Business Central On-Premises 2022 Release Wave 2 Updates – Update 21.2 (December 2022)

Dynamics 365 Business Central On-Premises 2022 Release Wave 1 Updates – Update 20.8 (December 2022)

Dynamics 365 Business Central On-Premises 2021 Release Wave 2 Updates – Update 19.14 (December 2022)

Dynamics 365 Business Central On-Premises 2021 Release Wave 1 Updates – Update 18.18 (October 2022)

Dynamics 365 Business Central On-Premises 2020 Release Wave 2 Updates – Update 17.17 (April 2022)

Dynamics 365 Business Central On-Premises 2020 Release Wave 1 Updates – Update 16.19 (January 2022)

Dynamics 365 Business Central On-Premises 2019 Release Wave 2 Updates – Update 15.17 (April 2021)

Dynamics 365 Business Central On-Premises Spring 2019 Updates – Update 42 (December 2022)

Dynamics 365 Business Central On-Premises October’18 Updates – Update 18 (April 2020)

Microsoft Dynamics NAV 2018 – Update 59 (December 2022)

Microsoft Dynamics NAV 2017 – Update Update 61 (January 2022)

Microsoft Dynamics NAV 2016 – Update 67 (July 2021)

Dynamics 365 Business Central – Create an XML File in AL

XML (eXtensible Markup Language) is a standard for encoding documents and is used to structure data for storage and transport. XML files are just plain text files that use custom tags to describe the structure and features of the document. Many describe the file’s structure as self-descriptive and intended to be both human and machine-readable. XML files are also extensible; they don’t have a predefined Markup and allow users to create their own tags and structure.

In today’s digital age, the exchange of data between Microsoft Dynamics 365 Business Central and other systems is often necessary. Because of this, I am frequently asked how to create an XML file in AL. Here is an example of creating XML within AL.

    local procedure CreateXML(): Text
    var
        Declaration: XmlDeclaration;
        XmlDoc: XmlDocument;
        Elements: XmlElement;
        Element: XmlElement;
        ElementItem: XmlElement;
        Comment: XmlComment;
        e,
        i : Integer;
        XmlData: Text;
        XmlWriteOptions: XmlWriteOptions;

    begin
        // Create the XML Document
        XmlDoc := XmlDocument.Create();
        // Create the Declaration
        Declaration := XmlDeclaration.Create('1.0', 'utf-8', 'yes');

        // Add the declaration to the XML File
        XmlDoc.SetDeclaration(Declaration);

        // Create Root Element
        Elements := XmlElement.Create('Elements');

        // Create a comment
        Comment := XmlComment.Create('This is a comment');
        // Add comment to eleement
        Elements.Add(Comment);

        for e := 1 to 2 do begin
            Clear(Element);
            Element := XmlElement.Create('Element');

            // Set element attributes
            Element.SetAttribute('id', Format(e, 0, 9));
            Element.SetAttribute('seq', Format(Time, 0, 9));

            for i := 1 to 3 do begin
                // Create and add data elements to the element
                Clear(ElementItem);
                ElementItem := XmlElement.Create('Item' + Format(i, 0, 9));
                ElementItem.Add(XmlText.Create(Format(e + i, 0, 9)));
                Element.Add(ElementItem);
            end;
            Elements.Add(Element);
        end;

        // Add Elements to document
        XmlDoc.Add(Elements);

        // Set the option to preserve whitespace - true makes it "more human readable"
        XmlWriteOptions.PreserveWhitespace(true);
        XmlDoc.WriteTo(XmlWriteOptions, XmlData);
    end;

The resulting XML is

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Elements>
    <!--This is a comment-->
    <Element id="1" seq="08:32:08.51">
        <Item1>2</Item1>
        <Item2>3</Item2>
        <Item3>4</Item3>
    </Element>
    <Element id="2" seq="08:32:08.51">
        <Item1>3</Item1>
        <Item2>4</Item2>
        <Item3>5</Item3>
    </Element>
</Elements>

The above example demonstrates a basic model to provide enough information to create a simple file; consider it “Getting Started.” Other things may need to be considered, namespaces, for instance, in more complex exchanges. There are many ways to code a solution, and opinion or situation determines the best. Within Microsoft Dynamics 365 Business Central, XML files may also be managed with Xmlports and codeunit 6224 “XML DOM Management.”

Note: The code and information discussed in this article is for informational and demonstration purposes only. This content was created referencing Microsoft Dynamics 365 Business Central 2022 Wave 2 online.

Dynamics 365 Business Central – What can you buy with Filter Tokens?

Do you use Filter Tokens in Microsoft Dynamics 365 Business Central? Have you heard of Filter Tokens?

Filter Tokens are special words that resolve to a filter string of values. Several Filter Tokens are defined in Microsoft Dynamics 365 Business Central; for example, the ‘%mycustomers’ Token (Note: when using a Filter token, an ampersand precedes the filter text) returns a filter of Customer numbers for the user’s My Customers list. The user of the ‘%mycustomers’ filter token simplifies users’ experience when filtering their customers.

You can define token words that users can enter for a filter to simplify the filtering of records. The events found in codeunit 41, “Filter Tokens,” are the key to building your own Filter Token. Subscribe to the appropriate event and compare the FilterToken entered to your word, and then make the proper TextFilter value to return from the event.

The following AL code example demonstrates creating a token, ‘USCUSTOMERS’, that constructs a filter for all customers with a Country/Region Code of ‘US’.

codeunit 50101 "DVLPR FilterToken Management"
{
    [EventSubscriber(ObjectType::Codeunit, Codeunit::"Filter Tokens", 'OnResolveTextFilterToken', '', true, true)]
    local procedure OnResolveTextFilterToken(TextToken: Text; var TextFilter: Text; var Handled: Boolean)
    var
        Customer: Record Customer;
        MaxCount: Integer;
    begin
        if StrLen(TextToken) < 3 then
            exit;

        if StrPos(UpperCase('USCUSTOMERS'), UpperCase(TextToken)) = 0 then
            exit;

        Handled := true;

        MaxCount := 200;
        Customer.SetRange("Country/Region Code", 'US');

        if Customer.FindSet() then begin
            MaxCount -= 1;
            TextFilter := Customer."No.";

            if Customer.Next() <> 0 then
                repeat
                    MaxCount -= 1;
                    TextFilter += '|' + Customer."No.";
                until (Customer.Next() = 0) or (MaxCount <= 0);
        end;
    end;
}

Using the Token %uscustomers for a Filter where a “Customer No.” Filter is expected, returns a filter string containing matching customers.

This example is intended only to demonstrate the use of Filter Tokens. When creating a token design, consider the design of your implementation. Complex, unreliable or time-consuming tokens may result in a less-than-desirable user experience.

Note: The code and information discussed in this article is for informational and demonstration purposes only. This content was created referencing Microsoft Dynamics 365 Business Central 2022 Wave 2 online.

Real things I’m asked – Date Assignment

Q: What’s the syntax to assign a date in BC? Used to be date := 010122D;

A: In AL The syntax for defining Date format is yyyymmddD, where D is a mandatory letter. In C/AL a normal date is assigned with the format <MMDDYY>D

What do you need to know for the MB-800 exam?

This post is a contribution by Andrea Riviezzo. Andrea is an active member of the Microsoft 365 Dynamics Business Central Community. Andrea, the Denver NAV/BC Chapter Leader, named me Chapter Leader of the month for November 2017, Chapter of the Year 2018, Ruby Gemstone Award 2018 and 2019, and NAVUG All-Star. She also served on the Board of Advisors, Chapter Leader Advisory Committee, and Innovation Committee. You can contact Andrea via LinkedIn.

One question I get often is what to study for the MB-800 exam and hopefully pass the first go around.

Honestly, there will be some caveats, mostly for those that have implemented or used the system from an accounting point of view. Even the skills matrix will state it’s not really focused on operations. Or at least, I would be shocked if the questions were more focused on MRP schedules, or BOMs/Routings. If you are totally green, you have never opened BC before but decided this is your next career move, these study tips may be a bit light; this is probably more focused for people who have some familiarity with the system.

Study Material:

Honestly the best free recourse is going to be the Microsoft Learning Path – be careful the naming of what was AX and what was NAV are pretty similar so if it looks like F&O it’s probably F&O. Don’t study the wrong path! You can find the Microsoft Learning Path at the bottom of the exam registration page.

Exam MB-800: Microsoft Dynamics 365 Business Central Functional Consultant – Certifications | Microsoft Learn

Now if you’re super familiar with Business Central and you’re only taking this just because you want/need to be certified these learnings can be a lot…there is some nuggets in them, and I did learn things but often I found myself daydreaming. However, compared to previous learnings by Microsoft these are very well done and easy to absorb the info and some hands-on experience as well.

There is a paid instructor led course for those that rather this format – I didn’t take it so I cannot tell you if this is good or bad, or indifferent.

Practice Test:

I’m a big believer in practice test. There are some free ones just to get used to the format and the questions are actual skills measured – now will you see that exact question on the exam? Who knows, but it does review real concepts:

MB-800 Exam – Free Actual Q&As, Page 1 | ExamTopics

https://www.pass4success.com/microsoft/exam/mb-800

Microsoft also has a paid one that of course will come with more questions and scenarios: Microsoft Certified Official Practice Test MB-800: Microsoft Dynamics 365 Business Central Functional Consultant | mindhub

Hot Tips:

I purchased this two for just slightly cheaper than the price of one and while I didn’t end up needing that 2nd test it was kind of nice knowing it was in my back pocket. Mostly because I’m an extremely nervous exam taker. Palms are sweater, vomit on my sweater…my own spaghetti. Also these guys didn’t pay me to advertise, but I found it to be helpful at least to me: Microsoft Exam Replay | Exam Voucher & Retake (mindhub.com)

Download the Skills Measured and do and honest evaluation of your skills. Maybe write some notes to remind yourself of something you fill might be helpful. Funny enough I took some notes that I then got a question on. Here’s an example of my markups:

Now important: don’t be too critical of yourself and your skill. Don’t talk yourself out of the exam or how ready you are. You’ll either study and delay and therefor forget and now need to re-study, or you’re just going to not take the exam out of fear…or maybe do poorly just because you hold this belief you’ll fail. First and foremost, it’s okay to fail. Failing means you tried, and if you got the two deal up above, then nice you got a cheap practice round and an assessment of where you should study. That’s awesome. Now dust yourself off and try it again. Second, I know you got this. You’ve studied, you’ve taken practice exams, you probably do this day in and day out – don’t count yourself out before even getting in.

Read the questions carefully. This sounds dumb, like of course you’re going to read the question- but…but these questions are almost designed to trick you. There’s wording in them that can be confusing or even a bit misleading. I know I flagged a few and came back at the end and when I re-read the question, I was like oh man they were trying to trick me and hopefully got it right after some additional time to slow down and think it through. However, with saying flag ones you felt unsure…sometimes, go with your gut. Don’t change it just because you have time to change. If you’re like me it’s easy to start second guessing yourself. I’m not saying don’t re-read and re-evaluate your answer, more like if you think the answer was B and now waffling and not sure it’s A or B and you’re not seeing there’s a trick…go with the B.

You Passed- Now What?

One and done right? Wrong. The MB800 lapses every April. Read that again. If you take in March, it lapses in that year April. I.e. if you’re getting close to that period do yourself a favor and wait. This isn’t like United status, where you get a full year from getting the status, plus time at the end to complete the next full year. Get it March 2022, it’s good until Dec 31, 2023. Quick plug for United status there.

For full renewal info: Microsoft Certifications | Microsoft Learn

The good news: it’s free; as long as you do it in the required 6-month period and before the deadline. Once the deadline hits you must re-sit for the exam.

The renewal is way easier to pass than the original exam, it’s open book and there’s no VUE or testing centers involved. You can take it multiple times as well, you just must pass before the deadline.

How to prep: honestly, this is either you retake learnings, make sure you stay on top of new wave info or maybe just a bit of trail and error of trying the exam a few times.

With that dear reader, I wish you the best on this exam and your career in this wonderful software!

This post is a contribution by Andrea Riviezzo. You can contact Andrea via LinkedIn.

It’s Friday – November 11

Dynamics 365 Business Central – Setup Payment Tolerance

Microsoft Dynamics 365 Business Central has many options for setting up different scenarios in a business environment. Microsoft Dynamics 365 Business Central allows you to set up payment tolerances when applying payments to invoices. Once set up, a payment tolerance will close an invoice when a payment does not fully cover the amount on the invoice. A payment tolerance is typically for a small amount, which would require more to correct than to accept.

Suppose the payment amount is an underpayment or an overpayment. In that case, the outstanding amount is fully closed, and a detailed ledger entry is posted and applied to the invoice entry.

To setup a payment tolerance:

  1. Search for General Ledger Setup in the Tell me what you want to do search
  2. Choose Actions -> Functions -> Change Payment Tolerance from the Action Menu on the General Ledger Setup Page
  3. Enter the desired Payment Tolerance Options on the Change Payment Tolerance Dialog page and click Ok. Enter the desired payment tolerance % to allow and the Max. Pmt. Tolerance Amount that can be applied.
  4. In the Application section, on the General Ledger Setup page, set the Payment Tolerance options. Turn on the Payment Tolerance Warning to display a warning to the user when a payment does not cover the full amount of the invoice and is within the tolerance values. The Payment Tolerance Posting option  determines how the tolerance is posted.
  5. Search for Customer Posting Groups and enter the payment tolerance accounts if tolerances post to the payment tolerance accounts or the payment disc. accounts If tolerances post to the discount accounts (as determined in the setup in Step 4)

Once set up, payment tolerances rules are applied to customer payments. If enabled, a warning will be displayed showing the payment tolerance amounts and allow the user to choose the action to take with the payment.

During posting, a payment tolerance entry is created for the payment difference to the account used in the set up.

Read more about payment-tolerances here.

Note: The code and information discussed in this article is for informational and demonstration purposes only. This content was created referencing Microsoft Dynamics 365 Business Central 2022 Wave 2 online.

Dynamics 365 Business Central – you can do more with your URL

The Microsoft Dynamics 365 Business Central web client has several parameters in the URL, allowing you to manipulate what is displayed in the web browser.

There are many parameters available for use in constructing the URL. For example, you can display a specific page, table, or report. Load the web client for a particular user profile, and build a view for embedding in another web application, with the navigation bar and ribbon hidden.

A few of my most used listed here:

ParameterDescription
companyopens the client in a specific company
pageopens to a specific page object
page=42 to show the Sales Order page
tableopens a specific table object
table=18 to show the Customer Table
showribbonspecifies if the action bar is shown on a page.
showribbon=1 displays the action bar
showribbon=0 hides the action bar
filterapply a filter to the records displayed
modespecifies if the page should be open in View, Edit or Create mode
mode=view opens the page in view mode
mode=edit opens the page in edit mode
shownavigationspecifies if the navigation bar is shown on a page.
shownavigation=1 displays the navigation bar
shownavigation=0 hides the navigation bar
isembeddedspecifies that the client is displayed in embedded mode, for viewing in another application
isembedded=1 set the embedded mode

Note: for the following examples you would use your hostname and tenant id in the url.

Use of the table parameter to display the customer table (18) (https://businesscentral.dynamics.com/?company=CRONUS%20USA%2C%20lnc.&table=18):

Use of the page parameter to display the item card (30) (https://businesscentral.dynamics.com/?company=CRONUS%20USA%2C%20lnc.&page=30):

Displaying the Sales Order page (42) without the ribbon, ui parts and opening in edit mode (https://businesscentral.dynamics.com/?company=CRONUS%20USA%2C%20Inc.&page=42&showribbon=0&showuiparts=0&mode=edit):

When building the URL, You can place parameters in any order after /?, separated by the ampersand (&). Use %20 for any spaces in values, and enclose values in single quotes (”).

Filter Data – Data displayed on the page can be filtered with the filter parameter. For example, to show the Sales Order List page, with all orders for the “Sell-to Customer” ‘10000’, you’d use the page and filter parameters in your URL. For example (https://businesscentral.dynamics.com/?company=CRONUS%20USA%2C%20Inc.&page=9305&filter=’Sell-to Customer No.’ IS ‘10000’)-

Read more about the feature web client urls here.

Note: The code and information discussed in this article is for informational and demonstration purposes only. This content was created referencing Microsoft Dynamics 365 Business Central 2022 Wave 2 online.