NAV posting procedures
QBS group
Tech
One of our partners requested some background information on the NAV posting procedures and what the meaning is of the different ledger entries tables.
NAV has two posting procedures:
- Journal: the resource is added in a journal line and a resource ledger entry is created via the journal posting
- Document: the resource is used in a document and a resource ledger entry is created via the document posting routine
1. Journal posting
The scenario explained in this chapter is that Linda and Mark have worked on a project for 8 hours. When these journal lines are posted, one register entry and two resource ledger entries are created.
Posting Date | Resource No. | Description | Quantity | Unit of Measure | Unit Cost | Unit Price |
23-01-2020 | LINDA | Linda Martin | 8 | HOUR | 6,30 | 50,40 |
23-01-2020 | MARK | Mark Hanson | 8 | HOUR | 31,90 | 54,00 |
To be able to make this posting we need to setup resource templates, – batches and the resource itself.
1.1. Setup
In the resource template and batches information are stored including number series, source and reason codes.
The last setup step is to create the resource information.
1.2. Journal posting
Now all setup information is complete, it is time to create the journal lines and post these.
As shown the default Resource journal batch is used and the information from Linda and Mark is inserted. When the “Post” action is pressed a message is displayed if the user wants to post the resource journal lines. The user has to confirm the posting and the posting is executed and the resource ledger entries are created.
1.3. Navigation, journal register and entries
There are a number of possibilities to retrieve information from this posting.
From the resource list or card, the action “Ledger Entries” will give an overview of the resource ledger entries.
Another way to find the resource entries is to use the Navigation page
Or you can find the resource entries via the Resource register.
1.4. Technical information
Now we have covered the functional part of the posting, it is time to see the technical side.
When the “Post” button is pressed the following codeunits are executed
Codeunit ID | Codeunit Name | Function |
271 | Res.-Jnl.-Post | Starting point for posting transaction |
213 | Res.-Jnl.-Post Batch | Open dialog and execute for every line the check (211) and post (212) codeunit |
211 | Res.-Jnl.-Check Line | Check if user is allowed to post based on user and/or general ledger setup and if no dimension conflicts can occur |
212 | Res.-Jnl.-Post Line | Actual posting: Create or update resource register Create resource ledger entry |
The above-mentioned journal posting is the preferred one, but if you have a lot of batches with journal lines to be posted, it is possible to post the journal lines via the batch page.
When the “Post” button is pressed the following codeunits are executed
Codeunit ID | Codeunit Name | Function |
273 | Res.-Jnl.-B.Post | Starting point for posting transaction |
213 | Res.-Jnl.-Post Batch | Open dialog and execute for every line the check (211) and post (212) Codeunit |
211 | Res.-Jnl.-Check Line | Check if user is allowed to post based on user and/or general ledger setup and if no dimension conflicts can occur |
212 | Res.-Jnl.-Post Line | Actual posting: Create or update resource register Create resource ledger entry |
2. Document posting
It is possible to post resource information in a sales order, so the customer gets an invoice for the worked hours.
The scenario explained in this chapter is that Linda and Mark have worked on a project for customer “The Cannon Group PLC” for 8 hours.
Posting Date | Resource No. | Description | Quantity | Unit of Measure | Unit Cost | Unit Price |
23-1-2020 | LINDA | Linda Martin | 8 | HOUR | 6,30 | 50,40 |
23-1-2020 | MARK | Mark Hanson | 8 | HOUR | 31,90 | 54,00 |
2.1. Document posting
The following sales order is created and posted (ship and invoice).
2.2. Navigation, journal register and entries
The navigation options described in paragraph 1.3 will still work to find the sales order posting entries. One additional option is possible: from the sales invoice, the action “Navigate” on the “Actions” ribbon gives an overview which entries have been created during the posting.
2.3. Technical information
When the “Post” action on the Sales Order page is pressed Codeunit 80 “Sales-Post” will be executed to create the ledger entries.
During the posting routine, for every line is checked what type it has and when it is a Resource type line, the information from the sales line will be copied to a resource journal line and that journal line is checked and posted.
The code line ResJnlPostLine.RunWithCheck(ResJnlLine) starts the resource posting.
Codeunit ID | Codeunit Name | Function |
212 | Res.-Jnl.-Post Line | Actual posting: Create or update resource register Create resource ledger entry |
Yes, you already came across that number. The same posting codeunit is used in the journal and in the document posting routines.
3. NAV Ledger Entries
The second part of the question was that within NAV there are a lot of different ledger tables. Where are they used for?
That question is a bit tough as there are indeed a lot of ledger entry tables
No. | Name |
21 | Cust. Ledger Entry |
25 | Vendor Ledger Entry |
32 | Item Ledger Entry |
169 | Job Ledger Entry |
203 | Res. Ledger Entry |
271 | Bank Account Ledger Entry |
272 | Check Ledger Entry |
281 | Phys. Inventory Ledger Entry |
317 | Payable Vendor Ledger Entry |
379 | Detailed Cust. Ledg. Entry |
380 | Detailed Vendor Ledg. Entry |
5601 | FA Ledger Entry |
5625 | Maintenance Ledger Entry |
5629 | Ins. Coverage Ledger Entry |
5832 | Capacity Ledger Entry |
5907 | Service Ledger Entry |
5908 | Warranty Ledger Entry |
And even more entry tables. The first eight are shown, the others can be found via the NAV object designer.
No. | Name |
17 | G/L Entry |
96 | G/L Budget Entry |
160 | Res. Capactity Entry |
179 | Reversal Entry |
254 | VAT Entry |
265 | Document Entry |
271 | Bank Account Ledger Entry |
272 | Check Ledger Entry |
So which table is a ledger entry and which isn’t? As mentioned in paragraph 1.3 a ledger entry has to have an accompanying register table. In the following table the register and the ledger entry tables are combined.
No. | Register table | No. | Ledger Entry table |
45 | G/L Register | 17 254 |
G/L Entry VAT Entry |
46 | Item Register | 32 5802 5832 |
Item Ledger Entry Value Entry Capacity Ledger Entry |
51 | User Time Register | – | |
87 | Date Compr. Register | – | |
240 | Resource Register | 203 | Res. Ledger Entry |
241 | Job Register | 169 | Job Ledger Entry |
1105 | Cost Register | 17 1104 |
G/L Entry Cost Entry |
1111 | Cost Budget Register | 96 1109 |
G/L Budget Entry Cost Budget Entry |
1205 | Credit Transfer Register | – | |
5617 | FA Register | 5601 | FA Ledger Entry |
5636 | Insurance Register | 5629 | Ins. Coverage Ledger Entry |
5934 | Service Register | 5907 | Service Ledger Entry |
5936 | Service Document Register | – | |
7313 | Warehouse Register | 7312 | Warehouse Entry |
99000848 | Registered Absence | – |
Conclusion
It’s hard to define what a real ledger entry table is and what not. And things get worse. In previous NAV versions you could just press F1 to get at least some information why the table and fields where created. Unfortunately, information is moved from MSDN towards Microsoft Docs but I can’t find the information there.
When you search for MSDN and G/L Register you get information from the table and field information can be found via the link “List of Fields in the Table”.
Searching on Microsoft Docs won’t give you any results
What can you learn from this post?
- Define your posting routine and use it
- Define a proper naming convention schema and stick to it
- Define a proper data model and update it