This document is aimed at explaining the basics around the Serial number functionality with specific reference to Discrete Production/Goods Movements. The base reference used in sharing the information is ERP 6.0 with Enhancement Package5. Even though the aim is to serve as a generic document the contents/ behaviour observed may change to a small degree depending on the SAP Release/Version used by the person concerned (because of the continuous developments over the releases).
Control of Goods movements with Serialised materials according to what is called as serialising procedures in SAP is not common in forum discussions and a small attempt has been made to explain the same with illustrations based on various configuration settings in this document.
The SAP Serial number functionality allows us to manage serialized stock keeping. Serial number is a numeric or alpha-numeric number given to an individual item of a material in addition to the material number and differentiates the item from all other items of the material.
Materials can be tracked across business streams like Sales Order taking through Production through Quality through Purchasing and Material movements through Handling Units through the Customer deliveries with what is called as a Serialisation Procedure.
Say in a MTO scenario the starting point of serialisation may be from a Sales order which can be referenced over to a production order and then given back at the time of Sales delivery may be through a handling unit usage also for instance. And in case of a MTS scenario the starting trigger can be from a production order and carried over to other streams inclusive of Quality management through Delivery against a Sales order for instance.
Normally 11 Serialisation Procedures are made available in the Standard:
Serial numbers in PP order
PP order release
Serial numbers in Repetitive Manufacturing
Maintain Inspection lot
Maintain Goods Receipt and Issue doc.
Maintain Handling unit
Sales and Distribution
Serial numbers in SD order
Completeness check for delivery
Completion check IR delivery
Maintain returns delivery
Serial Numbers in Purchase Orders
Serial Numbers in Purchase Requisition
* As of ERP6.0 with Enhancement Package 4, two new procedures are made available for purchasing also (only) after the activation of the Business Function LOG_MM_SERNO.
(Details of the POSL/PRSL procedures are available in the MM forum’s Documents section and the document is Serial Numbers in Purchasing with EhP4 Business function LOG_MM_SERNO).
In the configuration we start of with what is called as a Serial profile and assign the various Serialisation procedures underneath it.
Plant Maintenance and Customer Service--> Master Data in Plant Maintenance and Customer Service--> Technical Objects--> Serial Number Management --> Define Serial Number Profiles
IMPORTANT: It should be noted that the settings here done for the procedures are ‘Global’ with the exception of MMSL and POSL/PRSL procedures. Meaning the system adheres to this setting for all concerned documents/order types that undergo serialization as the case may be.
For MMSL procedure, related to Goods Movements (GR and GI) alone, SAP allows us the option to bring in what can be called as ‘Exceptions’.
This is done as specified under ‘Define Serialization Attributes for Movement Types’ in 2 steps:
- Define Flow type groups
- Assignment of Movement Type Group to Movement Type
A typical business scenario may be that certain bought out components alone are required to have the serial numbers at the time of GR against a Purchase order whereas some other procured components do not require serial numbers at the time of GR against a purchase order. In such a case we get the flexibility to act accordingly with the ‘Exceptions’ provided.
Same flexibility holds good for GR against a Production order for multiple serial profiles existing for manufactured components also.
Another business scenario may be to procure a component with out serial numbers but later on when it is issued against a production order it may be mandatory to serialise it. Such a scenario can also be addressed by the ‘Exceptions’ functionality.
EqR: This field specifies that whether an equipment master record is created at the time of serial number generation or at a later stage.
When the setting is 01 the equipment is not generated at the time of serial number generation and can later be generated from the IQ02 transaction by clicking on the Equipment view icon there.
Normally when we have a finished assembly alone which requires serialisation we do not need any equipment creation at all. Tracking is sufficient at this serial number of the assembly material itself.
In business scenarios like multiple serialised components used in a finished assembly and all of them requiring tracking for failures at a later date in the future then this equipment creation also can be done and this helps in tracking multiple components inside an assembly with what is called as an Equipment Hierarchy.
Other details in the Serial profile config:
ExistReq check box: If the business practice is to create serial numbers manually and then assign them during production order creation for instance, then this needs to be checked ON. Else if we create a serial number on the fly/automatically then this needs to be left blank.
Cat: Category of the equipment that is associated at the time of serial number generation. Has its Own number range and gets created in the background. If no value is specified here the same is picked from the Define Default Equipment Categories for Serial Numbers config and this also specifies whether the combination of material number and serial number should be unique or not.
StkChk: Ensures Stock check during goods movement based on the serial number status (like the production order statuses) that is set automatically by the system. 3 Options are provided (No Stock validation, Inconsistencies in Stock data-->Warning and Inconsistencies in Stock data-->Error).
When stock validation is set, the system checks for the Serial number status accordingly before any goods movement. If a component has been issued already against a production order and if the same serial number is provided for a subsequent order the system does the validation. Serial number status should be EQ ESTO and NE (AVLB or INAC or DLFL).
If validation fails we get a
a. DLFL status
Serial number xx cannot be used here
Message no. IO201
System status DLFL is active (EQU xxxxxx)
b. INAC status
Serial number xx cannot be used here
Message no. IO201
System status INAC is active (EQU xxxxxx)
c. Both DLFL/INAC status active:
System status INAC is active (EQU xxxxxx)
Serial number 5 cannot be used here
System status DLFL is active (EQU xxxxxx)
d. Wrong/Invalid/Duplicate serial number:
Stock data of serial number not suitable for movement
Message no. IO231
(Details of serial number statuses is discussed later in this document).
Serialisation in Production Orders:
From Production point of view, we have 3 relevant Serialisation procedures:
This procedure enables you to use Serial numbers in production orders.
This procedure enables you to assign serial numbers when production orders are released.
Required for REM scenario only and is called up when the serialised components are back flushed using MFBF transaction.
When PPAU SerUsage value is say 1 in the profile it does not allow serialisation in a Production order at all. With this setting when we try to create a production order for the serialised material and click on HeaderàSerial Numbers in CO01 screen we will get a message ‘Serialization not possible for material number xxxxxx’ Message no. IO205.
This setting has to be 2 or above for a Serial number usage in a production order.
PPRL setting is influenced by the PPAU value and a consistency check happens as follows:
PPRL value can be
PPRL with a value of 3 makes it mandatory to assign the serial number manually. When we try to save the order with out assigning serial numbers we get a RELR status for the Order concerned.
PPRL with a value of 4 ensures that serial numbers are assigned automatically during Production order creation.
Assigning the Serial numbers:
In the standard, System always follows a ‘Numeric’ number assignment. If a serialised assembly is subjected to a production order creation first time the system assigns 1 by default as the first number. Note: For ANY material this value is defaulted as 1.
If you manually change it to 75 and save it, next time when a production order is created the system assigns 76 and so on. Any alpha-numeric value assigned is not considered and not incremented accordingly. Rather the system saves only the highest numeric number assigned so far for the material in MASE table and looks at it every time when a new production order is created next time.
Alpha-numerals or Customer–specific Serial numbers can however be assigned using: Name of Enhancement: IQSM0001
Name of Function Module: EXIT_SAPLIPW1_001
Name of Include: ZXQSMU01.
- Create a Production order for say 10 numbers and try to do a GR for the same with a partial quantity and observe the system messages. After a successful partial receipt when we do the GR again which are the serial numbers proposed?
- No consistency check happens if a serialised procedure for instance PPSF is not assigned in the profile for a REM component and the error comes into picture only at the time of the concerned trigger. Consultants need to understand which procedures need to be used in a profile. What is the best option- Include all standard procedures in a profile irrespective of the current business usage and take future business changes into account as and when required or make use of only required procedures?
- Try to key in different available values for the SerUsage field for each procedure and observe for any status bar messages in the screen.
- If you use the StkChk indicator field as say Inconsistencies in Stock data-->Error and try to set the value of a serialising procedure like MMSL as 01/02 what message does the system display in the status bar?
Material Master/Routing Details:
- In the Material master the Serial profile can be assigned in the WS view for a manufactured material or Plant data/Stor2 view for a Procured component.
- If we try to set the Backflush indicator for the serialised part in the master (both options 1 and 2), we get an error message ‘Serial number management is not possible with backflushing’. Message no. M3896.
- Level of Explicitness field in the master ensures that we can make use of our own serial number convention leaving the option as blank (default) or make the serial number similar to the equipment number with the other option. (Remember the equipment category has its own number range and this number is then defaulted as the Serial number also for the second option).
- Try to set a Serial number of profile for a material currently non-serialised in the material master and also with stock existing and observe the information.
- In the Routing if we try to assign the backflush indicator to a serialised component for any particular operation the system does not do any validation. It saves the details with backflushing indicator. However when you create a production order the serialised components appear without the backflush indicator. Any attempt to set the backflush indicator for these components in the component overview of the order results in an error message ‘There must be a serial number for material xxxxx in plant xxxx’ Message no. CO689.
Serial number Statuses possible:
Like the Production order statuses we know, the system also assigns Statuses for Serial numbers and the commonly seen statuses are:
ASEQ--> Allocated to superior equipment
DLFL--> Deletion Flag
ECUS--> At Customer site
EDEL--> Assigned in delivery note
ESTO--> In the Warehouse
INAC--> Object Deactivated
List is not exhaustive and we have others like INST--> Installed, HUAS-->Handling unit assigned etc etc.,
Let us say that we have a Serialised assembly X and Serialised component Y.
Serial number assigned at the time of Production order creation for the Assembly material
Goods Receipt against Production order with Serial numbers
Goods Receipt against Purchase Order
Goods Issue of Serialised components against a Serialised assembly
Equipment Hierarchy Built (Y is built into X with IE02 transaction)
Delivery created against a Sales order for the Serialised assembly
Goods Delivered against a Sales order to Customer
DLFL and INAC statuses can be set manually from the change serial number transaction IQ02.
Controlling Goods Movements: (OIS2 Settings vs Exceptions)
Inference of SerUsage values in MMSL procedure at the time of a GR against Purchase Order:
A. Option with OIS2 setting only and No Exceptions config in place:
The PO Item detail Serial number tab will show up as
- SerUsage Value-02
PO Item detail Serial number tab will show up as
Check passes with a green icon and Serial number tab shows 3 editable rows (equal to Purchase Order qty). For the optional setting 02, we can still do a GR with or without any serial number.
- SerUsage Value-03
In the PO, when we click on check we will get an error message as below:
We need to enter the serial numbers to proceed further and post the document.
B. Option with entries in OIS2 as well as Exceptions: System prioritises the Exceptions instead of OIS2 entries.
OIS2 has MMSL SerUsage- 01/None for the Z006 Profile.
- Plant Maintenance and Customer Service--> Master Data in Plant Maintenance and Customer Service--> Technical Objects--> Serial Number Management-->Define Flow type groups
We define SNRO as the Movement type group making SerUsage 03/Mandatory.
(Try to input any other procedure other than MMSL in procedure column and observe the message given by the system).
We carry over this definition to the next step in the Exceptions config definition.
Plant Maintenance and Customer Service--> Master Data in Plant Maintenance and Customer Service--> Technical Objects--> Serial Number Management--> Assignment of Movement Type Group to Movement Type
Against movement type 101 and indicator Goods movement for Purchase Order/No Consumption option, we set the SNRO movement group defined already.
When we try to do a GR against the purchase order for the material with Z006 profile using MIGO,
We get an error message stating that Serial numbers are mandatory.
Even though the OIS2 setting specified no serial number usage, based on the Exceptions setting we are able to exercise control during the goods movements.
Say if we have another profile Z007 maintained for other procured components, in the first step we can maintain the flow type group as the same SNRO but with SerUsage as 02. For these components during GR for Purchase order the serial numbers then become optional.
Again if there is another profile say Z008 for another category of procured components and if no flow type group definition is maintained for this profile it would follow the OIS2 setting then.
Also to be noted is inspite of maintaining a Flow type group if the value in Movement type group is not made available in the Assignment of Movement Type Group to Movement Type config or if this config has a different value of Movement type group then also the OIS2 setting is considered by the system for proceeding further.
a. OIS setting MMSL-01/None
b. Flow type group:
Profile/Mvmt type group/SerUsage value
c. Assignment of Mvmt type group to Movement type
101/Goods Movement for Purchase order/SNRO
d. Results during a GR against Purchase order for:
- Z006 profile materialà Serial number entry is mandatory
- Z007 profile materialà Serial number entry is optional
- Z008 profile materialà Serial number entry is None(from OIS2)
Once understanding this becomes clear, all other related movements with respect to serialised components become very easier.
In the Exceptions Config we can see that there is a separate entry provided for 101-Movement for Production order to use the exception function with Production order receipts also for appropriate profiles as per the business requirement.
Similar to GR against Purchase order we can plan for GR against Production order also in a similar fashion for different profiles as required.
- Check for Special procurement/Stock transfer functionality for the same serialised component existing in two plants. What issues we have if one plant does not have the serial profile? For the same material with no stock in a plant and stock available in another will the system still allow us to delete the serial profile in the plant with no stock?
- Like Number ranges for objects concerned like production orders, there is a serial number range object /EACC/SERI for serial numbers. Check where/how or if at all this can be used.
Common queries in forums relate to serial number range object and its assignment. As we have seen that serial numbers are not common to any single business stream we cannot assign the number range anywhere specifically. For instance we can maintain the number range with this object and use custom developments to use the number range during a production order creation.
- Check for PPSF serialising procedure usage in REM scenario and how the goods movements happen. Also the QMSL procedure related to QM Inspection lots will also be a point of learning.
- For any issues related to serial numbers standard reports are provided. Serial number inventory problem (RIINV00), Serial number History (RISERNR1), Copying of changed stock check flag (RISERNR9), MASE Correction report (RIMASE01).
- Managing Traceability/Component level serial numbers is possible through the As-Built configuration for Serialised assemblies and additional information has been made available by a forum member already in the PP Forum.
- Extended/Advanced Serial number functionalities are made available in the SCM-Extended Warehouse Management (EWM) module.
Other document for Serial number Overview reference is http://scn.sap.com/docs/DOC-1836
Other Basic Information:
- What happens during a Serial number/Equipment master creation?
Serial Number/Equipment combination gets saved in the EQUI and OBJK tables.
In OBJK there is a field Object list (OBKNR) which then references a table specific to production orders, SER05 and shows all relevant details related to production.(PPAU/PPRL procedures)
Observe for the procedure and see if it is PPAU or PPRL in the table for your production orders.
If we try to look for possible entries of the procedures in this table we will get to see additional procedures too. These do not get called when we create the OIS2 profile but work in the background and get displayed here.
Once a GR against the order happens the data gets updated in SER03 table.(MMSL procedure). Observe the procedure field for your material documents generated and check if it is only MMSL or some thing else.
- What happens during a goods movement related to Serial numbers?
In the EQBS table the following details get updated:
1 Plant and Storage location
3 Valuation type
4 Stock type (Unrestricted/QI/Blocked Stock returns/Stk in transfer/Stk in transit/Blocked stock)
5 Special stock indicator
6 Sales Order number and Sales item
7 WBS element
3. Once serialised components have been issued against a Production order how do we track the details of the assignment if we need it in the form of a custom report?
- Pass the Production order number into SAP table SER05 and get the Object list number (Field:OBKNR).
- Input OBKNR field into the table OBJK and get the serial numbers and equipment numbers generated for the header assembly.
- (In case if order qty is GT 1, then the Object list field OBKNR is referenced by Object counters (OBZAE) pointing to individual serial numbers/ equipment numbers for the higher assembly).
- Pass the Prod order number into table AUFM and retrieve Material documents against movement type 261. For the 261 movement type and plant combination, check if the component/material is serialised from MARC-SERNP.
- If MARC-SERNP is NOT Blank, pick up the records pertaining to the 261 movement type as above.
- Pass the Material document number in table SER03 and again get the Object list (OBJNR) details.
- Input the OBJNR as above from SER03 into OBJK table and get the component serial number and equipment number details.
Building an Equipment Hierarchy- IE02:
When a serial number gets created an equipment generally can also be created in the background based on the OIS2 setting. This equipment for a higher assembly becomes the superior equipment and all other serialised components underneath this assembly then can have what can be called as inferior equipment/s.
For the Superior equipment we can assign the inferior or sub equipments using IE02 transaction and this hierarchy build gets saved in V_EQUI_SER.
Through out the cycle the serial number history gets updated for every movement and can be seen in the IQ03 transaction for the material in the SerData tab and then clicking on the History icon from there.
Once on the History details we get to see the various serialised transactions facilitated by the Color legend.
For a dependent component assigned in the hierarchy under an assembly we will be able to see the Installation details in addition to the GR against Pur.Order, GI against Prod order etc., it went through previously.
Display of fields here is as per the definition under the IMG path pointing to Field Selection for Multi-Level List Display of Serial Numbers--> Define Field Selection for Production Order Fields for instance.
Follow-up Document planned at a later date:
Goods Movements with Serialised components inclusive of
11. 1. Seriliased components during Picking using CO27/MB26 transactions
2. 2. Serialised components/Auto GR during confirmation of orders.
3. 3. MIGO error/s seen w.r.to Serialised components
4. Serialised components in Subcontracting
Please point out any errors/mistakes and also add any important things missed out along with other valuable inputs which then can be edited/added over making the content in this document more meaningful.