• Home
  • About Me
  • Contact
  • German
  • TestPage

Microsoft BizApps Finance & Controlling

Microsoft BizApps Finance & Controlling

Tag Archives: Dynamics AX

Inventory reconciliation (Inventory value report) – Part 2/3

11 Friday Sep 2015

Posted by Ludwig Reinhard in General Ledger, Inventory

≈ Comments Off on Inventory reconciliation (Inventory value report) – Part 2/3

Tags

Dynamics AX, Inventory reconciliation, Inventory value report

Block 3:
The column section is probably the most important setup block of the inventory value report. Due to its importance, the different elements that can be setup in this block will be explained in detail based on several examples.

Inventory parameter
EN_22_012Activating the inventory parameter ensures that financial and physical inventory quantities and amounts are incorporated into the inventory value report. Please note that – from a finance & controlling perspective – the total inventory value is usually made up of the sum of the physical and financial amounts, as the risk of loss by chance and transfer usually shifts once goods enter or leave the company.

In respect to the inventory value parameter you might experience situations where the inventory value report shows you negative physical and/or financial amounts. This often happens when transactions are backdated or entered (too) late. The following example shows you an example of this phenomenon.

Example:
A company purchases 1000 pcs of an item that has a current cost price of 10 €/pcs for this very price. Due to delays in the warehouse and the accounts payable department, the purchase order packing slip is posted in September and the purchase order invoice is posted in October. In the meantime 500 pcs of the item have been shipped to a customer. The shipment occurred in July and the sales order invoice was posted in August. The following timeline summarizes the sequence of inventory transactions that were recorded in Dynamics AX.
EN_22_018

Outcome:
In July, after recording the sales order packing slip, the inventory value report shows a negative physical quantity and amount.
EN_22_019
In August, after posting the sales order invoice, the inventory value report shows a negative financial quantity and amount.
EN_22_020
In September, the inventory value report still shows a negative financial quantity and amount but a positive physical quantity and amount resulting in an overall positive inventory value.
EN_22_021
In October, the inventory value report finally shows the remaining positive financial quantity and amount.
EN_22_022


WIP Parameter
EN_22_023

Activating the WIP parameter allows you reconciling the following two production WIP accounts that are setup in the inventory posting form.
EN_22_024

Please note that the activation of the following row parameters does also allow you reconciling other WIP Transactions such as labor cost transactions, indirect cost transactions and direct outsourcing cost transactions.
EN_22_026
As an example, given the following production parameter setup (“item and category”), …
EN_22_025
… the inventory value report does also allow you reconciling the WIP accounts that are setup at the cost category level.
EN_22_027

Note: For reconciling WIP accounts, you do not have to use the inventory value report but can also use the production control balance reports illustrated in the next screenshot.
EN_22_028

Deferred COGS & COGS Parameter
Within this subsection, I will explain the deferred COGS and COGS parameters together as they are related from a process flow perspective.
EN_22_029

Activating the deferred COGS and COGS parameter allows reconciling the ledger accounts that have been setup in the following sections of the inventory posting form.
EN_22_030

Example 1:
After activating the COGS parameter, the inventory value report shows a total value of 10 TEUR for the financial COGS amount.
EN_22_031
If you compare this amount with the balance that can be identified in the General Ledger you will notice that there seems to be a difference of 300 EUR between the ledger transactions and the inventory transactions as illustrated in the following screenshot.
EN_22_032
The underlying reason for this variance is that project related transactions are not included in the inventory value report.
EN_22_033

In addition to project related inventory transactions, the following inventory transactions are not included in the inventory value report if you only activate the COGS / deferred COGS parameters:

  • Transfer orders,
  • Purchase order related transactions,
  • Sales order picking list transactions.

Example 2:
The previously illustrated inventory value report does also show a deferred COGS amount of 314885.84 EUR.
EN_22_034
As before, if you try finding this value in the General Ledger you will probably notice a “variance” (see the following screenshot).
EN_22_035
The reason for this obvious difference is that the inventory value report shows values that are not limited to one single financial period. If you use the ledger transaction list report and not the trial balance list page, you are able to reconcile the amount shown in the inventory value report as illustrated in the following screenshot.
EN_22_036

Note that you can also use the “shipped, not invoiced” Accounts Receivable report for reconciling the deferred COGS value shown in the inventory value report.
EN_22_037
Unfortunately, the “shipped, not invoiced” report is not generally available for every country but can easily be made available through a change of the following country code parameter:
EN_22_038

Best practice:
As illustrated in the examples before, for reconciliation purposes it is best setting up separate ledger accounts for each transaction type in the inventory posting and project posting form. Using the same ledger account for different groups – as illustrated in the next screenshot – can easily result in reconciliation problems.
EN_22_039

Profit and loss Parameter
EN_22_041

Activating the profit and loss parameter allows you reconciling the accounts that are setup in the profit and loss section of the inventory posting form (see the next screenshot). As a result, an inventory value report with this parameter activated allows identifying and reconciling inventory transactions that have been recorded through inventory adjustment and inventory counting journals.
EN_22_040

Please note that activating the profit and loss parameter does not allow you identifying those inventory transactions that have been recorded through inventory movement journals as those journals do not make use of the profit and loss accounts that have been setup in the inventory posting form.

Hint: Analyzing inventory transactions that have been recorded through inventory adjustment journals can offer you a first sign whether or not something is possibly wrong with your warehouse processes.

A last remark on the ledger accounts that can be setup in the column section:
EN_22_042
As illustrated before, setting up a ledger account in the yellow highlighted section of the inventory value report allows you a direct comparison of the inventory value amounts with the general ledger amounts. A prerequisite for this comparison is that summary accounts are setup in the Chart of Accounts as only summary accounts can be selected here.

…to be continued in the next post.

Excel add-in enhancements (2)

22 Saturday Aug 2015

Posted by Ludwig Reinhard in General Ledger

≈ Comments Off on Excel add-in enhancements (2)

Tags

Dynamics AX, Excel add-in, General Ledger journal

Within this blog post I will show you how the standard Excel add-in for uploading General Ledger transactions can be used for uploading project and fixed asset related transactions. Different from the uploads that I showed you in the previous blog post, the upload of project and fixed asset related transactions requires that the the LedgerJournalTrans table and the related LedgerJournalTrans_Asset / LedgerJournalTrans_Project tables are filled with the data prepared in the Excel template.
EN_36_0010
To realize that, I first added all fields that I need from the LedgerJournalTrans_Project table to the LedgerJournalTrans table.
EN_36_0015
Thereafter, I did the same with the fields that I need from the LedgerJournalTrans_Asset table.
EN_36_0020
My next step was to adjust the field properties of the fields that I dragged & dropped into the LedgerJournalTrans table. Note that I also added a new label later on to identify the newly added fields easily later on in the Excel template.
EN_36_0025
As in the previous blog post, my next step was dragging and dropping the new fields from the LedgerJournalTrans table to the AxdLedgerGeneralJournal query.
EN_36_0030
After generating a full CIL, refreshing the AIF services and de-activating and re-activating the LedgerService in the System administration module, the newly added fields showed up in the field section of my Excel template. Please see the following screenshot for an example.
EN_36_0035
As usual and illustrated in the previous blog post, I setup my template with the new fields and added a project transaction that I uploaded to Dynamics AX.
EN_36_0040 EN_36_0045
So far, everything looked fine. The upload recognized the “TM1” project that I created and uploaded all other information that I entered.
EN_36_0050
Yet, once I had a look in the project tab of my journal I noticed that none of the project related fields have been filled with the data that I prepared in my Excel template.
EN_36_0060
After having a look at the table structures and the relationships of the LedgerJournalTrans tables, I noticed that the upload cannot work with the standard Excel upload functionalities.

That is because Dynamics AX creates the RecId value that links the LedgerJournalTrans table with the LedgerJournalTrans_Asset/ LedgerJournalTrans _Project tables at the time I upload my values into the General Ledger journal.

Once this RecId value is created/known a link to the LedgerJournalTrans_Asset/ LedgerJournalTrans _Project tables can be established. Yet, since there is only one upload transaction without an additional “update” that would be required to fill also the related tables.
EN_36_0065

Solution
After agonizing over this issue for a while, I finally asked my friend Ewa Watkins for some help and we developed a project that adds an event handler to the insert method of the LedgerJournalTrans table. This event handler executes an update on the uploaded values which ensures that the related LedgerJournalTrans_Asset/ LedgerJournalTrans_Project tables are filled with the values that I entered in the Excel template.

Within the following sections I will provide you some additional details on the adjustment that we realized so that you can get an idea on how to deal with similar issues in your environment. Please note that the sample code provided in the following was only used for demonstration purposes and might require some adjustment before using it in a live environment. If you want to test the next steps I would thus suggest you to do this in a development / test environment.

 

Step 1: Import the demo xpo-file attached
Please note that I had to change the file type to “.docx” due to file contrainst on this site. In order to use the demo code in Dynamics AX, you have to download the file and change the file type from “.docx” to “.xpo”.  SharedProject_EWA_Ludwig
EN_36_0070 EN_36_0075
As a result of the import, you can find the following project where you have to do some adjustments to the blue highlighted methods.
EN_36_0080


Step 2: Mapping of the fields
Map the newly added fields included in the LedgerJournalTrans table with the ones in the LedgerJournalTrans_Asset and LedgerJournalTrans_Project table as illustrated in the next screenshots.
EN_36_0085 EN_36_0090

Step 3: Specify the additional fields that need to be imported
In the createExtendedJournals method, enter the fixed asset and project related fields that have been added to the ledgerJournalTrans table as illustrated in the following screenshot.
EN_36_0095

Step 4: Drag & drop the event handler method to the insert method of the ledgerJournalTrans table
Example:
EN_36_0100

Step 5: Change property of the event handler method
After the event handler has been added to the ledgerJournalTrans table, change the CalledWhen property from „PRE“ to „POST” as shown in the next screen-print.
EN_36_0105

Step 6: Update document service
The next step is updating the LedgerGeneralJournalService.
EN_36_0110
When doing that ensure that the following yellow highlighted parameters are checked.
EN_36_0115
As a result, the AxLedgerJournalTrans class gets extended by the fixed asset and project parameter fields. Example:
EN_36_0120

Step 7: Setup new Excel template and upload your data
After generating a full CIL, refreshing the AIF services and deactivating and re-activating the LedgerService in the System administration module, create a new Excel template and add the fixed asset and project related transactions that you want to upload to AX.

In the example illustrated in the next screenshot, I added one line with a fixed asset transaction and another line with a project transaction.
EN_36_0125
After uploading the data to Dynamics AX you will now find that the fixed asset and project related fields in the General Ledger journal have been populated with the data prepared in the Excel template. Please see the following screenshots for an example.
EN_36_0130 EN_36_0135 EN_36_0140

 

Summary
By implementing the system modifications illustrated in this blog post basically any kind of transaction can be uploaded to Dynamics AX General Ledger journals.

Yet, please be aware that the pitfalls mentioned in the previous post still apply.

A final remark that I want to make here is that the sample code provided covers only situations where the fixed asset and project related data are entered on the “offset account side” of the account entry. If you want to use the sample code in a live environment you might thus have to make some additional enhancements to cover also other ways of preparing vouchers, such as split postings, entering fixed asset / project related data on the “account side” of a transaction and alike.

Despite those shortcomings, I hope that you found the information provided in this and the previous blog post helpful.

Finally, I would like to express special thanks to my friend Ewa Watkins without whom this post would not have been possible.

Excel add-in enhancements (1)

14 Friday Aug 2015

Posted by Ludwig Reinhard in General Ledger

≈ 4 Comments

Tags

Dynamics AX, Excel add-in, General Ledger journals

Using the Dynamics AX Excel add-in for uploading General Ledger journal transactions into Dynamics AX is already well documented on TechNet, various blog sites and alike (see e.g. the following Website).

Yet, when using this functionality in a live environment you will quickly encounter several issues that considerably limit the usability of this feature. As an example, customer transactions, fixed asset transactions, project related transactions, sales tax information and alike cannot be uploaded without making some enhancements to the standard Excel add-in feature.

Within this and the following blog post I will introduce how those enhancements can be implemented to make the Excel add-in feature more applicable in your daily work. Yet, before doing that, let’s start by having a look on how to set up and use the Dynamics AX Excel add-in for uploading transactions into General Ledger journals.

 

Setup standard Excel add-in for uploading General Ledger transactions
Step 1: Deploy the LedgerServices service group in the AOT
The first step in setting up the standard Excel add-in is to deploy the LedgerService in the AOT.
EN_35_0010


Step 2: Activate the inbound port
Thereafter, you have to ensure that the LedgerService inbound port is activated. This can be verified in the System administration module under “inbound ports”. Please see the next screenshots.
EN_35_0015 EN_35_0020

Step 3: Setup a document data source
The third step is setting up a document data source in the Organization administration module as illustrated in the following screen-prints.
EN_35_0025 EN_35_0030

Step 4: Setup Excel template for upload
After the previous steps have been finalized, you can set up the Excel template that is required for uploading the data. To realize this simply select “Add Data” in the Dynamics AX tab in Excel …
EN_35_0035
… and select the General Ledger data source that has been setup in step 3 before.
EN_35_0040
Next, setup the journal header by dragging and dropping the required fields from the Ledger journal table.
EN_35_0045
Once you setup the journal header section, the journal line template fields can be setup similarly by dragging and dropping the required fields into the Excel sheet.
EN_35_0050

Note: Rather than setting up your own template, you can make use of the Microsoft template that ships with Dynamics AX. In a Microsoft “Contoso” demo environment you can find this template in the General Ledger Template folder. If you plan to use the Microsoft template in a live environment, please ask your system administrator for details where this file can be found.
EN_35_0055
Please note that the major difference of the Microsoft template and the one I created is that the Microsoft template uses separate worksheets for the journal header, the lines and the notes. Example:
EN_35_0060

 

Shortcomings of the standard Excel add-in for uploading General Ledger Transactions
Once you have finished setting up your template, add the header and line data and publish (upload) your data into Dynamics AX. In my example the upload failed because the standard General Ledger Excel add-in does not support all transaction types; in my case, the customer transaction recorded in the third line of my Excel template.
EN_35_0065
The following screenshot shows you the error message generated. What you can identify from this message is that the standard Excel upload does only support ledger, bank and vendor transactions.
EN_35_0070

 

Enhancing the standard Excel add-in for uploading General Ledger Transactions
To overcome the problem illustrated before, I made a change to the LedgerJournalTransType class to ensure that all account types that I need are accepted. Please note that those changes have to be made in the validateAccountType method and the validateOffsetAccountType method of the LedgerJournalTransType class as exemplified in the next screenshot.
EN_35_0075

A second major shortcoming of the standard Excel add-in is that important fields required for generating ledger postings are not available in the field section of the Excel template. As an example, the standard Excel add-in does not provide users the possibility to select and upload sales tax information, invoice information, due date information and alike.

Luckily, there is also a solution for this issue available. The solution consists of dragging and dropping the required fields from the LedgerJournalTrans table into the AxdLedgerGeneralJournal query. Please see the following screenshot for an example.
EN_35_0080
Once you have added all additional account types and fields required for preparing and uploading your transactions, you have to (a) generate a full CIL, (b) refresh the AIF services in the AIF services form that can be accessed from the AOT and (c) de-activate and re-activate the LedgerService in the System administration module.

After you have gone through all those steps and open Excel again, you can identify and select the fields that you have added to the AxdLedgerGeneralJournal query. Please see the next screenshot.
EN_35_0090

After entering all necessary lines in the Excel template that you want to have uploaded and posted in Dynamics AX, you will find that all transactions have been uploaded including the values that are entered in the newly added fields (in my example, the sales tax and invoice information highlighted in yellow color in the next screens). EN_35_0095
EN_35_0100

 

Additional tips and tricks
At the end of this post I want to provide you some additional tips that might help you when using the Excel add-in for uploading General Ledger transactions:

Tip 1:
Use a filter similar to the one illustrated in the next screen-print to ensure that Excel does not update and show you all previously posted General ledger transactions. That is because such an update might require some time.
EN_35_0105


Tip 2:
Accountants often prepare the data they want to upload to Dynamics AX in a separate file that allows them repeating uploads quickly in future periods. When doing that, copy and paste the transactions into the second line of the Excel template as illustrated in the next screenshot.
EN_35_0110
The underlying reason is that the Excel add-in does often not upload the first line that is pasted from a different source into the Excel upload template.


Tip 3:
Once you try posting the transactions that have been uploaded to Dynamics AX you might see a message that says that your vouchers do not balance. This often happens if the rounding of your data in Excel differs from the rounding that Dynamics AX applies.
EN_35_0115
Rather than deleting the General Ledger journal and trying to fix this issue in the Excel template, try using the post and transfer option that transfers the sticky transactions into a new General Ledger journal. When Dynamics AX is doing this posting transfer, the Dynamics AX rounding rules are applied and usually you can post the transferred transaction in the newly created journal without any other issue.
EN_35_0120

 

Summary
To sum up, the illustrated Excel add-in enhancements allow you preparing and uploading almost all kind of transactions from Excel to Dynamics AX. You can thus use the Excel add-in e.g. for uploading intercompany transactions, vendor invoice transactions and transactions required for data migrations from previous systems. When doing that, please be aware of the following pitfalls:

  • General Ledger journals do not have an invoice number check. As a result, users might post the same invoice numbers several times without noticing it.
  • Despite the fact that you can post customer revenue transactions in General Ledger journals, those journals do not provide you the possibility to print tax compliant customer invoice documents without making further system adjustments.
  • Changes in your account structures require setting up new Excel templates. Making adjustments to existing templates usually does not work.
  • Do not try to upload mass data. If you plan to upload more than 1000 transaction lines on a regular basis, think about using other upload tools such as the data migration framework.
  • A final pitfall of the illustrated Excel add-in that I want to mention here is that it does not allow you uploading project and fixed asset related transactions even if you made the previously illustrated adjustments to the LedgerJournalTransType class. Within the next blog post I will show you how this pitfall can be fixed.
← Older posts
Newer posts →

Microsoft BizApps Deutschland Podcast

Dynamics UserGroup Deutschland

Project Accounting Book – Part 2

Project accounting book

Categories

  • Accounts Payable
  • Accounts Receivable
  • Bank Management
  • Book reviews
  • Budgeting
  • Cost accounting
  • Fixed Assets
  • General Ledger
  • Inventory
  • Management Reporter
  • Miscellaneous
  • Podcast
  • PowerPlatform
  • Project
  • Sustainability
  • Uncategorized

Tags

Advanced bank reconciliation AI Artificial Intelligence Automation Azure Bank reconciliation BizApps Budgeting Controlling Copilot Copilot Studio Cost accounting module Cost center accounting D365 D365FO Dynamics 365 Dynamics AX Dynamics AX 2012 Electronic reporting Email Environment Flow Global Warming invoice invoice recording IOT LEGO Management Accounting Modern Finance MS Flow MT940 Podcast PowerApps Power Apps PowerAutomate Power Automate PowerPlatform Power Platform Process Mining Project RPA Security SharePoint Sustainability Sustainability Accounting Sustainability Manager Tax time recording WBS workflow

Follow Blog via Email

Enter your email address to follow this blog and receive notifications of new posts by email.

Subcribe

  • RSS - Posts
  • RSS - Comments

Legal

  • Disclaimer

Important Websites

  • Microsoft BizApps Links

Archives

  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015

Powered by WordPress.com.

 

Loading Comments...