Business Logic,  Warehouse

Goods Stock Management

In certain situations some stock level optimizations and corrections might be needed. You need to consult the goods stock levels and correct them before reporting it to accounting.

Preview of Goods Stock Balance

In order to consult the goods stock at a certain moment you need to run the Preview Goods Stock Balance (Job) report (runs as a job and depending on the system size, it might take some time). You can find the action either in the sidebar or in the Goods Issue Projection‘s menu or Goods Reconciliation Projection‘s menu. All of them run the same job.

Preview Goods Stock Balance

You need to select the FinancialAccountingUnit, the reporting interval and the report type. You can select the GoodsIssue report or the BillOfMaterialGoodsIssue report, the difference being the number of processed records. The GoodsIssue has less entries because its sums of all BillOfMaterialGoodsIssues during a day. This will generate a report saved on the server’s storage that you need to view by navigating to it. If you wait until the end of the job, it will return the filename that you need to consult, otherwise you can consult the last one because the file’s name contains the type of the report and the date at which it was generated. If you leave the job monitor screen the RFC started, you can consult the job’s status in the jobs screen.

Click on View to display the report

Clicking on View will display the report’s json contents. To use the document render engine to display the document in a user friendly format, click on the Printer icon.

After opening the document, click on the Show details checkbox to display more details about each product’s stock levels. This will display the goods receipts interval, the goods issue interval and the moments when the stock level dropped below zero (negative stock moments).

Analysing the stock levels

Negative stock levels are displayed for each product. Multiple moments can be displayed for a product, depending on the GoodsReceipts present in the system. Multiple moments of negative stock doesn’t mean you need multiple Transformations (see below).

Stock balance document preview

Negative stock moments can appear if for example a GoodsReceipt was not entered in due time, the GoodsReceipt‘s DocumentDate is incorrect or the product was used in a BOM instead of the correct product (the BOM references the wrong product or quantity). Another case the stock might become negative, is if you sell a product similar with another one (for example, you sell Product_X on paper decreasing its stock, instead of Product_Y but deliver Product_Y), decreasing the stock of the wrong product. In this case you should instruct the staff to sell the right product and if the products are easily mistaken, take other actions also (renaming them for example).

You shouldn’t have any negative stock levels at the end of the reporting interval.

In order to correct the stock levels, you can choose to:

  • Add an initial stock if the system is new
  • Add goods transformations (see below)
  • Check if the goods receipt’s DocumentDate is correct
  • Check if the BOMs use the correct product and the right Quantity of it
  • Do an inventory of your goods stock

After you took all the actions needed, you should run the Preview Goods Stock Balance (Job) again and check if the actions you took corrected the issues.


You can transform one item to another one if the later’s stock is not sufficient. For example in a kitchen you don’t have enough fine salt but have enough raw salt. You can transform some quantity of the raw salt to another quantity of fine salt in order to proceed with the production of the finished goods you need to manufacture.

You can’t edit goods stock transformations and you can only delete items not affected by a goods receipt reconciliation.

Goods stock transformation projection

The transformation of the goods will add 3 documents:

  • one GoodsStockTransformation with the two children below but no lines
  • one InternalTransferIssue (child of the GoodsStockTransformation) with only one line referencing the product and quantity being transformed (the source product)
  • one InternalTransferReceipt (child of the GoodsStockTransformation) with only one line, referencing the target product and quantity

The system automatically searches for the first goods receipt with available products of the transformed product to extract the transformation cost.

Adding a goods stock transformation

The DocumentDate marks the time of the transformation. This will be taken into account when the system processes the goods stock.

All the transformations can be found in the Goods Stock Transformation projection.

The added documents will behave as GoodsIssues and GoodsReceipts when the reconciliation is run.

Stock Balance

If you corrected the issues and want to close the reporting interval you should run the report and check the PersistToStockBalance checkbox. This will write a StockBalance JournalRecord that is considered as the starting point of further goods stock calculations, lightening the computation load and marking end of the reporting interval.

The StockBalance record should be the final stock report of the reporting interval.

All further goods stock calculations will start from the last StockBalance found.