In auditing, the focus is frequently on financial accounting and the commercial processes of purchasing and sales. But there are of course other business processes that are worth considering. This time we are therefore going to take a look at SAP logistics and identify where you can make the simplest quick wins in auditing. We will focus our attention here on the “movement types” in the SAP MM module.
What are movement types in SAP?
Movement types in SAP Logistics are used to characterize a variety of business transactions in the area of goods and materials management. Movement types are used to differentiate between goods receipts, goods issues, plant-to-plant transfers of stocks, and the entry of inventory differences, for example. A list of various movement types can be found here.
Where can I find the goods movements in SAP?
Just as document headers and document lines can be found in Accounting in the tables BKPF and BSEG, there are the corresponding tables MKPF (material document header) and MSEG (material document segment/line) in Materials Management.
You can find the movement type in a material document in the data field BWART in the MSEG table.
How do you evaluate which movement types have taken place in SAP?
First of all, it makes sense to get an overview of the flow types used. The following query counts the number of different material documents in which the movement type was used. If you also want to test the SQL queries on your SAP system, simply use the DBACOCKPIT transaction and go to the SQL Editor via Diagnostics:
SELECT MANDT, MJAHR, BWART, COUNT(DISTINCT MBLNR) NUMBER_DOCS
FROM MSEG
GROUP BY MANDT,MJAHR,BWART
ORDER BY MJAHR DESC, COUNT(DISTINCT MBLNR) DESC
MJAHR is the fiscal year, BWART the movement type and NUMBER_DOCS the number of different material documents in which the movement type was used. Note that material documents do not have to be assigned directly to a company code, since they are not accounting transactions.
The result of the query should then look something like this, for example:
MANDT | MJAHR | BWART | NUMBER_DOCS |
---|---|---|---|
800 | 1997 | 601 | 297 |
800 | 1997 | 101 | 163 |
800 | 1997 | 261 | 123 |
800 | 1997 | 633 | 1 |
800 | 1997 | 641 | 1 |
As can be seen here, the movement types mean the following:
601 = Goods issue for delivery
101 = Goods receipt for purchase order
261 = Goods issue for an order
633 = Goods issue from consignment stock at customer (shipping)
641 = Goods issue for a stock transport order (shipping)
Pay particular attention to rarely occurring movement types in such an evaluation, since these can be indicative of deviations from standard processes.
Three “sensitive” material movements
After you have gained an overview of the movement types used, you should check whether there were certain critical movement types and if there were, then what exactly happened; that is, you should then take a look at each of the corresponding material documents individually and trace the business transaction:
Quickwin 1: Goods receipt without purchase order
The movement type “Goods receipt without purchase order” (501, 503, 505) reveals the bridge between the purchasing process and inventory management. The normal process is of course that a purchase order exists for a goods receipt. This is also important in the sense of the Internal Control System (ICS), since only a goods receipt can be compared with the ordered and required quantities if there is a purchase order reference. Therefore, the use of this type of movement is generally to be regarded as “bad” in terms of process. So find out which goods receipts have been existing in your SAP system without purchase orders:
SELECT DISTINCT MSEG.MANDT,MJAHR,MBLNR,BWART,MSEG.MATNR,MAKTX
FROM MSEG
LEFT JOIN MAKT ON (MSEG.MANDT=MAKT.MANDT AND MSEG.MATNR=MAKT.MATNR AND MAKT.SPRAS='D')
WHERE MSEG.BWART IN ('501','503', '505') ORDER BY MANDT,MJAHR,MBLNR
MBLNR is the material document number, MATNR the material number and MAKTX the description of the material. Note that you can change the language of the material description if you change the condition MAKT.SPRAS=’D’.
Quickwin 2: Scrappings
Scrapping of material is always interesting, as values are presumed to be destroyed here. Therefore, always demand reasons why something has been scrapped. Bookings for scrapping can also be used to disguise theft. Therefore, always familiarize yourself with the internal control system concerning scrapping processes. In this way, you can find out which scrappings have occurred in your SAP system:
SELECT DISTINCT MSEG.MANDT,MJAHR,MBLNR,BWART,MSEG.MATNR,MAKTX
FROM MSEG
LEFT JOIN MAKT ON (MSEG.MANDT=MAKT.MANDT AND MSEG.MATNR=MAKT.MATNR AND MAKT.SPRAS='D')
WHERE MSEG.BWART IN ('551','553','555') ORDER BY MANDT,MJAHR,MBLNR
Quickwin 3: Transfer postings between materials
Transfer postings between materials are possible in SAP. This is necessary, for example, if a goods receipt (made by mistake) was posted to the wrong material and you now have to transfer the quantity to another material. Of course, reposting between materials is also a way of concealing misconduct. For example, a valuable material could be stolen and the amount stolen could be transferred to a material of little value.
Therefore, check such material transfers with the following query:
SELECT DISTINCT MSEG.MANDT,MJAHR,MBLNR,BWART,MSEG.MATNR,MAKTX
FROM MSEG
LEFT JOIN MAKT ON (MSEG.MANDT=MAKT.MANDT AND MSEG.MATNR=MAKT.MATNR AND MAKT.SPRAS='D')
WHERE MSEG.BWART=309 ORDER BY MANDT,MJAHR,MBLNR
and follow up the corresponding business transactions. Particularly noticeable in this regard are cases in which a change has been made from a high-quality material to one that is less valuable.
Are you interested in data analysis?
… then give zap Audit a try. For company codes with less than 50,000 entries in the “BKPF” table (documents in Financial Accounting), you receive a free license. Just contact us.