Currently SRCE (Lot Process Type) in (tab) Lot Processing of Item/Branch Plant Info.(P41026) though LayerCodeSource or Layer Code - Source.
In dealing with Automatic Lot Numbering, you may have the following questions:
Q1. When does a certain application create/populate lot/serial number automatically?
When it meets the below condition it populates lot number,
F41001.OT6Y (Inventory Lot Creation Y/N) is selected (value '1', 'y' or 'Y') for a specific branch/plant you are working on
Application ID which are listed in <Document 1075187.1> - E1: 40: Item Branch/Location/Lot Creation On the Fly in E1 Inventory Transaction
F4102.SRCE (Lot Process Type) is '1', '2', '5' and '6' (5 and 6 are meant for Serial Number)
Note:
F41001.OT6Y: A code that indicates whether the inventory transaction programs can create new lot or serial numbers in the system. If you leave this option blank, the system will not allow the inventory transaction programs to create new lot numbers in the system. If you check this option, the system allows the inventory transaction programs to create new lot numbers in the system.
F4102.SRCE: UDC H41/SR. A code that indicates whether lot or serial number is assigned. Lot and serial number processes use the Lot Master table (F4108).
1 Lot assignment is required. The system assigns numbers using the system date in YYMMDD format. Quantity can be greater than one.
2 Lot assignment is required. The system assigns numbers in ascending order using Next Numbers. Quantity can be greater than one.
5 Serial number assignment is required. The system assigns numbers using the system date in YYMMDD format. Quantity must not exceed one.
6 Serial number assignment is required. The system assigns numbers in ascending order using Next Numbers. Quantity must not exceed one.
Q2. What is the maximum size of the string for LOTN?
: 30 when you populate it manually with proper SRCE value. However if you choose to use SRCE 1, 2, 5 and 6 the maximum value will be:
12 digits for SRCE 1 and 5 (e.g., yyyymmdd9999 (12 digits): 4 digits (9999) is hard coded in X41LOT.c
8 digits for SRCE 2 and 6 (e.g., 99999999): 8 item limitation is coming from DD definition for F0002.N001
Q3. What is the primary key of Table F4108 - Lot Master?
The primary Key of F4108 is:
LOTN
ITM
MCU
Note: This is important to understand how a certain routine is checking/assigning a new lot number based upon your setup
Q4. What is the routine to create lot number?
Currently Lot number is assigned through: --> X41LOT - AssignLotNumber (F0002 Get Next Lot Number) ----> B4000620 - GetLotNumberFromNextNumber (F0002 Get Next Lot Number) (only when SRCE is 2 or 6)
Note:
For inventory transaction a certain 'Edit Line' routine is calling XT4111Z1 - F4111EditLine (F4111 Edit Line) and in turn XT4111Z1 is calling X41LOT - AssignLotNumberAssignLotNumber (F0002 Get Next Lot Number)
If SRCE value is 2 or 6, X41LOT is calling B4000620 to get and update next number file
Whenever you exit from a certain row (and Lot Number is blank) the next number can be increased by 1
The description of X41LOT and B4000620 are same with 'F0002 Get Next Lot Number'
Q5. Where does it store next number for SRCE = '1' and SRCE = '2'?
It stores the next available lot number to be at F0002 - Next Numbers - Automatic as below,
Case (SRCE = 1) get F0002.N008 (where system code 40): it stores MMDD9999 value
Case (SRCE = 2) get F0002.N001 (where system code 40): get it from F0002 and check whether same lot does exist from F4108 if any get next number and so on.
Note:
System code is 40 (Inventory/OP Base) not 41 (Inventory Management)
If SRCE is 1 or 5 F0002.N008 is written with Month + Day + 9999. For example, the first records for date August 22, 2011 will be written as 8220001
So max value of F0002.N008 is to be 12319999 which is the last day of a certain year
Like other Next Numbering at once it gets next number it updates back F0002 table. Hence, if you cancel/delete a certain row in multiple grid transaction, which number shall not be used again.
Q6. How does it format lot number when SRCE=1 or 5?
If (Lot) Process Type = 1 or 5 : Convert Date passed in to YYYYMMDD string and load Lot with format of YYYYMMDD9999. Verify that the lot number is unique by checking data from F4108 (Lot Master) based on primary key defined above (LOTN, ITM and MCU). If lot number computed does exist from F4108 then increment it by 1
Q7. How does it format lot number when SRCE=2 or 6?
If (Lot) Process Type = 2 or 6: Based on next number returned (F0002.N001 where SY='40') check whether data does exist from F4108 based on primary key of F4108. If so, increment it by 1. So for this setup lot number has to be unique across system.
Q8. How does the system know the date format - which can vary (F00921.FRMT - Date Format) user by user?
Regardless of user specific date format it re-formats based on date format mask OSASE, Date Mask Information:
O - Month Number, zero pad to 2 digits (If current month is August this value is represented as 08)
S - Slash (/)
A - Day Number, zero pad to 2 digits
S - Slash
E - 4 digit year
Refer to <Document 626493.1> E1: BSFN: Date Business Functions in the EnterpriseOne
Actual Implementation:
1
Initialization
0
0
0
0
0
0
0
0
0
0
0
1
Index
0
1
2
3
4
5
6
7
8
9
2
Value ("OSASE")
0
8
/
2
3
/
2
0
1
1
3
Swap it
4
5
6
7
0
1
2
3
Index -new
0
1
2
3
4
5
6
7
4
Result
2
0
1
1
0
8
2
3
5
Final Result
2
0
1
1
0
8
2
3
0
0
0
1
Format
y
y
y
y
0
m
d
d
9
9
9
9
Note:
The restriction of 4 digit running number is limitation of initialization '000000000001'.
Lot Number string is initialized as "000000000001" which is character array so individual character can be replaced by a certain character.
In C, ASCII Numbers (or integer) are treated as a character.
For this example, szDateInYYMMDD[0] = szDateConvert[6], szDateConvert[6] is 7th character of OSASE format string and szDateInYYMMDD[0] is the 1st character of output to be.
Q9. Is it possible to have different lot numbering for SRCE value 1 or 5?
No. As explained above, there is a single output format which is YYYYMMDD9999 and note that daily limit is 9999
Q10. In assigning date formatted lot number, which date does the system use?
Transaction Date (date today in client) but if this value is null date then system date in your logic server will be assigned through API JDEDATEToday().