Custom Lot Generation
Prerequisites:
1- Create Custom Table to Store Lot and ORG and Item Type
Create Table GNP_LOT_SEQ1 --Create custome Table
(
SEQ number unique
,ITEM_TYPE NVARCHAR2(10)
,LOT_NO NVARCHAR2(30)
,LOT_DATE Date
,ORG NVARCHAR2(10)
,ITEM NVARCHAR2(50)
)
2- Create Sequence :
CREATE SEQUENCE GNP_L_SEQ -- to Create Sequence
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 2;
// to Reset Sequence use below Command
alter sequence GNP_L_SEQ restart start with 1 -- to Reset Sequence
3- Create Personalization for Both PO Receipts and Toll Receipts
Personalization:
1- Generate Custom LOT for RAW and TRAW-GNP_GPI_GAP “for RAW”
WHEN-NEW-ITEM-INSTANCE
LOT_ENTRY.LOT_NUMBER
Condition:
(Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I
Where
I.INVENTORY_ITEM_ID =:RCV_TRANSACTION.ITEM_ID
and I.ORGANIZATION_ID = (Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and I.ITEM_TYPE in ('RM','TRAW') )is not NULL
and :LOT_ENTRY.LOT_NUMBER is NULL
Action:
Item
LOT_ENTRY.LOT_NUMBER
Value
To Read from Custom Table:
=Select 'R'||(substr(L.LOT_NO,2,100)+1)
from GNP_LOT_SEQ1 L
Where L.SEQ =(Select MAX(L1.SEQ)
from GNP_LOT_SEQ1 L1
Where
L1.ORG = (Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and L1.ITEM_TYPE in ('RM','TRAW'))
and L.ORG= (Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and L.ITEM_TYPE in ('RM','TRAW')
Modification:
)
1
)+
''
,
Z]'
-
A
-
'[
||(regexp_replace(LOT_NO,
'R'
=765 then
.ORG
L
Case When
=Select
)
1
)+
''
,
Z]'
-
A
-
'[
(regexp_replace(LOT_NO,
to_char
then
977
=
.ORG
L
When
)
1
)+
''
,
Z]'
-
A
-
'[
(regexp_replace(LOT_NO,
to_char
.ORG=767 then
When L
End
from GNP_LOT_SEQ1 L
Where L.SEQ =(Select MAX(L1.SEQ)
from GNP_LOT_SEQ1 L1
Where
L1.ORG = (Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and L1.ITEM_TYPE in ('RM','TRAW'))
and L.ORG= (Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and L.ITEM_TYPE in ('RM','TRAW')
To Read from Seeded Lot Table: Optional
=Select 'R'||(substr(L.LOT_NUMBER,2,100)+1)
from MTL_LOT_NUMBERS L, MTL_SYSTEM_ITEMS_B i
Where L.CREATION_DATE =(Select MAX(L.CREATION_DATE)
from MTL_LOT_NUMBERS L, MTL_SYSTEM_ITEMS_B i
Where I.INVENTORY_ITEM_ID = L.INVENTORY_ITEM_ID
and I.ORGANIZATION_ID = L.ORGANIZATION_ID
and I.ORGANIZATION_ID = 765
and L.ORIGINATION_TYPE in (3,4)
and I.ITEM_TYPE in ('RM','TRAW'))
and I.INVENTORY_ITEM_ID = L.INVENTORY_ITEM_ID
and I.ORGANIZATION_ID = L.ORGANIZATION_ID
and I.ORGANIZATION_ID = 765
and I.ITEM_TYPE in ('RM','TRAW')
For Packaging
2- Generate Custom LOT for PACK and TPACK-GNP-GAP-GPI
WHEN-NEW-ITEM-INSTANCE
LOT_ENTRY.LOT_NUMBER
(Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I
Where
I.INVENTORY_ITEM_ID =:RCV_TRANSACTION.ITEM_ID
and I.ORGANIZATION_ID =(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and I.ITEM_TYPE in ('PM','TPACK') )is not NULL
and :LOT_ENTRY.LOT_NUMBER is NULL
Action
Item
LOT_ENTRY.LOT_NUMBER
)
1
)+
''
,
Z]'
-
A
-
'[
||(regexp_replace(LOT_NO,
'P'
=765 then
.ORG
Case When L
Select
=
)
1
)+
''
,
Z]'
-
A
-
'[
(regexp_replace(LOT_NO,
then to_char
977
=
.ORG
L
When
)
1
)+
''
,
Z]'
-
A
-
'[
(regexp_replace(LOT_NO,
When L.ORG=767 then to_char
End
from GNP_LOT_SEQ1 L
Where L.SEQ =(Select MAX(L1.SEQ)
from GNP_LOT_SEQ1 L1
Where
L1.ORG = (Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and L1.ITEM_TYPE in ('RM','TRAW'))
and L.ORG= (Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and L.ITEM_TYPE in ('PM','TPACK')
3- Insert Lot to LOT Custom Table for RAW and PACK
WHEN-VALIDATE-RECORD
LOT_ENTRY
Condition:
(Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I
Where
I.INVENTORY_ITEM_ID =:RCV_TRANSACTION.ITEM_ID
and I.ORGANIZATION_ID=(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and I.ITEM_TYPE in ('RM','TRAW','PM','TPACK') )is not NULL
Action:
Built-in
Execute Procedure:
='declare
C number:=GNP_L_SEQ.NEXTVAL;
F NVARCHAR2(10);
G NVARCHAR2(30):='''||${item.lot_entry.lot_number.value}||''';
H Date:=sysdate;
O NVARCHAR2(10):='''||${item.rcv_transaction.to_organization_id.value}||''';
M NVARCHAR2(50):='''||${item.LOT_CONTEXT.ITEM.value}||''';
begin
Select I.item_type into F from MTL_system_items_b I Where I.inventory_item_id='${item.rcv_transaction.item_id.value}'and
I.organization_id ='${item.rcv_transaction.to_organization_id.value}';
Insert into GNP_LOT_SEQ1 (SEQ,ITEM_TYPE,LOT_NO,LOT_DATE,ORG,ITEM) Select C,F,G,H,O,M from Dual where not exists (Select *
from GNP_LOT_SEQ1 Where (ITEM='${item.LOT_CONTEXT.ITEM.value}' and ORG='${item.rcv_transaction.to_organization_id.value}'
and LOT_NO='${item.lot_entry.lot_number.value}'));
end;
Commit'
4- Disable Lot Field for GNP-GAP-GPI
WHEN-NEW-ITEM-INSTANCE
LOT_ENTRY.LOT_NUMBER
Condition:
(Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I
Where
I.INVENTORY_ITEM_ID =:RCV_TRANSACTION.ITEM_ID
and I.ORGANIZATION_ID =(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and I.ITEM_TYPE in ('RM','TRAW','PM','TPACK') )is not NULL
Action:
Item
LOT_ENTRY.LOT_NUMBER
ENABLED (APPLICATIONS COVER)
False
UPDATE_ALLOWED (ITEM-INSTANCE)
False
Scenario: PO Receipt
Example : PO : 22104940
Open Lot Entry
Lot Generated Automatic and Inserted to New Custom Table
Receipt anew Quantity
Lot Generated Automatic and Inserted to New Custom Table
Scenario TOLL Receipts:
Enter Lot/Serial
Lot Inserted in Custom table
Customization:
1- Close Lot Field at TRANS LINE GNP-GAP-GPI
Condition:
WHEN-NEW-ITEM-INSTANCE
MTL_TRX_LINE.LOT_NUMBER
(Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I
Where
I.INVENTORY_ITEM_ID =:mtl_trx_line.inventory_item_id
and I.ORGANIZATION_ID =(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and I.ITEM_TYPE in ('RM','TRAW') )is not NULL
Action
Item
MTL_TRX_LINE.LOT_NUMBER
INSERT_ALLOWED
False
UPDATE_ALLOWED
False
2- Disable Lot Field at Lot Entry Level
Condition:
LOT_ENTRY.LOT_NUMBER
(Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I
Where
I.INVENTORY_ITEM_ID =:mtl_trx_line.inventory_item_id
and I.ORGANIZATION_ID =(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and I.ITEM_TYPE in ('RM','TRAW') )is not NULL
Action:
Item
LOT_ENTRY.LOT_NUMBER
INSERT_ALLOWED
False
UPDATE_ALLOWED
False
3- Generate Custom LOT for RAW and TRAW-GNP-GPI-GAP
WHEN-NEW-ITEM-INSTANCE
LOT_ENTRY.LOT_NUMBER
(Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I
Where
I.INVENTORY_ITEM_ID =:mtl_trx_line.inventory_item_id
and I.ORGANIZATION_ID =(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and I.ITEM_TYPE in ('RM','TRAW') )is not NULL
and :lot_entry.lot_number is NULL
Action
Item
LOT_ENTRY.LOT_NUMBER
Value
= Select Case When L.ORG=765 then 'R'||(regexp_replace(LOT_NO, '[-A-Z]', '')+1)
When L.ORG =977 then to_char(regexp_replace(LOT_NO, '[-A-Z]', '')+1)
When L.ORG=767 then to_char(regexp_replace(LOT_NO, '[-A-Z]', '')+1)
End
from GNP_LOT_SEQ1 L
Where L.SEQ =(Select MAX(L1.SEQ)
from GNP_LOT_SEQ1 L1
Where
L1.ORG =(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and L1.ITEM_TYPE in ('PM','TPACK'))
and L.ORG=(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and L.ITEM_TYPE in ('PM','TPACK')
4- Insert LOT to GNP Custom Table
Condition:
WHEN-VALIDATE-RECORD
LOT_ENTRY
(Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I
Where
I.INVENTORY_ITEM_ID =:mtl_trx_line.inventory_item_id
and I.ORGANIZATION_ID =(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977
when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767
end from dual )
and I.ITEM_TYPE in ('RM','TRAW') )is not NULL
and :LOT_ENTRY.LOT_NUMBER is not NULL
Action
Built in
Execute Procedure
='declare
C number:=GNP_L_SEQ.NEXTVAL;
F NVARCHAR2(10);
G NVARCHAR2(30):='''||${item.lot_entry.lot_number.value}||''';
H Date:=sysdate;
O NVARCHAR2(10):='''||${item.mtl_trx_line.organization_id.value}||''';
M NVARCHAR2(50):='''||${item.LOT_CONTEXT.ITEM.value}||''';
begin
Select I.item_type into F from MTL_system_items_b I Where
I.inventory_item_id='${item.mtl_trx_line.inventory_item_id.value}'and I.organization_id
='${item.mtl_trx_line.organization_id.value}';
Insert into GNP_LOT_SEQ1 (SEQ,ITEM_TYPE,LOT_NO,LOT_DATE,ORG,ITEM) Select C,F,G,H,O,M
from Dual where not exists (Select * from GNP_LOT_SEQ1 Where
(ITEM='${item.LOT_CONTEXT.ITEM.value}' and ORG='${item.mtl_trx_line.organization_id.value}'))
;
end;
Commit'

Custom Lot Generation .docx

  • 1.
    Custom Lot Generation Prerequisites: 1-Create Custom Table to Store Lot and ORG and Item Type Create Table GNP_LOT_SEQ1 --Create custome Table ( SEQ number unique ,ITEM_TYPE NVARCHAR2(10) ,LOT_NO NVARCHAR2(30) ,LOT_DATE Date ,ORG NVARCHAR2(10) ,ITEM NVARCHAR2(50) ) 2- Create Sequence : CREATE SEQUENCE GNP_L_SEQ -- to Create Sequence MINVALUE 1 MAXVALUE 999999999999999999999999999 START WITH 1 INCREMENT BY 1 CACHE 2; // to Reset Sequence use below Command alter sequence GNP_L_SEQ restart start with 1 -- to Reset Sequence
  • 2.
    3- Create Personalizationfor Both PO Receipts and Toll Receipts Personalization:
  • 3.
    1- Generate CustomLOT for RAW and TRAW-GNP_GPI_GAP “for RAW” WHEN-NEW-ITEM-INSTANCE LOT_ENTRY.LOT_NUMBER Condition: (Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I Where I.INVENTORY_ITEM_ID =:RCV_TRANSACTION.ITEM_ID and I.ORGANIZATION_ID = (Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765 When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and I.ITEM_TYPE in ('RM','TRAW') )is not NULL and :LOT_ENTRY.LOT_NUMBER is NULL Action: Item LOT_ENTRY.LOT_NUMBER Value To Read from Custom Table: =Select 'R'||(substr(L.LOT_NO,2,100)+1) from GNP_LOT_SEQ1 L Where L.SEQ =(Select MAX(L1.SEQ) from GNP_LOT_SEQ1 L1 Where L1.ORG = (Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765 When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and L1.ITEM_TYPE in ('RM','TRAW')) and L.ORG= (Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765 When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and L.ITEM_TYPE in ('RM','TRAW')
  • 4.
    Modification: ) 1 )+ '' , Z]' - A - '[ ||(regexp_replace(LOT_NO, 'R' =765 then .ORG L Case When =Select ) 1 )+ '' , Z]' - A - '[ (regexp_replace(LOT_NO, to_char then 977 = .ORG L When ) 1 )+ '' , Z]' - A - '[ (regexp_replace(LOT_NO, to_char .ORG=767then When L End from GNP_LOT_SEQ1 L Where L.SEQ =(Select MAX(L1.SEQ) from GNP_LOT_SEQ1 L1 Where L1.ORG = (Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765 When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and L1.ITEM_TYPE in ('RM','TRAW')) and L.ORG= (Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765 When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and L.ITEM_TYPE in ('RM','TRAW')
  • 5.
    To Read fromSeeded Lot Table: Optional =Select 'R'||(substr(L.LOT_NUMBER,2,100)+1) from MTL_LOT_NUMBERS L, MTL_SYSTEM_ITEMS_B i Where L.CREATION_DATE =(Select MAX(L.CREATION_DATE) from MTL_LOT_NUMBERS L, MTL_SYSTEM_ITEMS_B i Where I.INVENTORY_ITEM_ID = L.INVENTORY_ITEM_ID and I.ORGANIZATION_ID = L.ORGANIZATION_ID and I.ORGANIZATION_ID = 765 and L.ORIGINATION_TYPE in (3,4) and I.ITEM_TYPE in ('RM','TRAW')) and I.INVENTORY_ITEM_ID = L.INVENTORY_ITEM_ID and I.ORGANIZATION_ID = L.ORGANIZATION_ID and I.ORGANIZATION_ID = 765 and I.ITEM_TYPE in ('RM','TRAW')
  • 6.
    For Packaging 2- GenerateCustom LOT for PACK and TPACK-GNP-GAP-GPI WHEN-NEW-ITEM-INSTANCE LOT_ENTRY.LOT_NUMBER (Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I Where I.INVENTORY_ITEM_ID =:RCV_TRANSACTION.ITEM_ID and I.ORGANIZATION_ID =(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765 When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and I.ITEM_TYPE in ('PM','TPACK') )is not NULL and :LOT_ENTRY.LOT_NUMBER is NULL Action Item LOT_ENTRY.LOT_NUMBER ) 1 )+ '' , Z]' - A - '[ ||(regexp_replace(LOT_NO, 'P' =765 then .ORG Case When L Select = ) 1 )+ '' , Z]' - A - '[ (regexp_replace(LOT_NO, then to_char 977 = .ORG L When ) 1 )+ '' , Z]' - A - '[ (regexp_replace(LOT_NO, When L.ORG=767 then to_char
  • 7.
    End from GNP_LOT_SEQ1 L WhereL.SEQ =(Select MAX(L1.SEQ) from GNP_LOT_SEQ1 L1 Where L1.ORG = (Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765 When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and L1.ITEM_TYPE in ('RM','TRAW')) and L.ORG= (Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765 When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and L.ITEM_TYPE in ('PM','TPACK') 3- Insert Lot to LOT Custom Table for RAW and PACK WHEN-VALIDATE-RECORD LOT_ENTRY Condition: (Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I Where I.INVENTORY_ITEM_ID =:RCV_TRANSACTION.ITEM_ID and I.ORGANIZATION_ID=(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765
  • 8.
    When apps.FND_PROFILE.VALUE('ORG_ID') =956then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and I.ITEM_TYPE in ('RM','TRAW','PM','TPACK') )is not NULL Action: Built-in Execute Procedure: ='declare C number:=GNP_L_SEQ.NEXTVAL; F NVARCHAR2(10); G NVARCHAR2(30):='''||${item.lot_entry.lot_number.value}||'''; H Date:=sysdate; O NVARCHAR2(10):='''||${item.rcv_transaction.to_organization_id.value}||'''; M NVARCHAR2(50):='''||${item.LOT_CONTEXT.ITEM.value}||'''; begin Select I.item_type into F from MTL_system_items_b I Where I.inventory_item_id='${item.rcv_transaction.item_id.value}'and I.organization_id ='${item.rcv_transaction.to_organization_id.value}'; Insert into GNP_LOT_SEQ1 (SEQ,ITEM_TYPE,LOT_NO,LOT_DATE,ORG,ITEM) Select C,F,G,H,O,M from Dual where not exists (Select * from GNP_LOT_SEQ1 Where (ITEM='${item.LOT_CONTEXT.ITEM.value}' and ORG='${item.rcv_transaction.to_organization_id.value}' and LOT_NO='${item.lot_entry.lot_number.value}')); end; Commit' 4- Disable Lot Field for GNP-GAP-GPI WHEN-NEW-ITEM-INSTANCE LOT_ENTRY.LOT_NUMBER Condition: (Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I
  • 9.
    Where I.INVENTORY_ITEM_ID =:RCV_TRANSACTION.ITEM_ID and I.ORGANIZATION_ID=(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765 When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and I.ITEM_TYPE in ('RM','TRAW','PM','TPACK') )is not NULL Action: Item LOT_ENTRY.LOT_NUMBER ENABLED (APPLICATIONS COVER) False UPDATE_ALLOWED (ITEM-INSTANCE) False Scenario: PO Receipt Example : PO : 22104940
  • 10.
  • 11.
    Lot Generated Automaticand Inserted to New Custom Table Receipt anew Quantity
  • 12.
    Lot Generated Automaticand Inserted to New Custom Table
  • 13.
    Scenario TOLL Receipts: EnterLot/Serial Lot Inserted in Custom table
  • 14.
    Customization: 1- Close LotField at TRANS LINE GNP-GAP-GPI Condition: WHEN-NEW-ITEM-INSTANCE MTL_TRX_LINE.LOT_NUMBER (Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I Where I.INVENTORY_ITEM_ID =:mtl_trx_line.inventory_item_id and I.ORGANIZATION_ID =(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765 When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and I.ITEM_TYPE in ('RM','TRAW') )is not NULL Action Item MTL_TRX_LINE.LOT_NUMBER INSERT_ALLOWED False UPDATE_ALLOWED False
  • 15.
    2- Disable LotField at Lot Entry Level Condition: LOT_ENTRY.LOT_NUMBER (Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I Where I.INVENTORY_ITEM_ID =:mtl_trx_line.inventory_item_id and I.ORGANIZATION_ID =(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765 When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and I.ITEM_TYPE in ('RM','TRAW') )is not NULL Action: Item LOT_ENTRY.LOT_NUMBER INSERT_ALLOWED False UPDATE_ALLOWED False 3- Generate Custom LOT for RAW and TRAW-GNP-GPI-GAP WHEN-NEW-ITEM-INSTANCE LOT_ENTRY.LOT_NUMBER (Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I Where I.INVENTORY_ITEM_ID =:mtl_trx_line.inventory_item_id and I.ORGANIZATION_ID =(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765 When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and I.ITEM_TYPE in ('RM','TRAW') )is not NULL and :lot_entry.lot_number is NULL
  • 16.
    Action Item LOT_ENTRY.LOT_NUMBER Value = Select CaseWhen L.ORG=765 then 'R'||(regexp_replace(LOT_NO, '[-A-Z]', '')+1) When L.ORG =977 then to_char(regexp_replace(LOT_NO, '[-A-Z]', '')+1) When L.ORG=767 then to_char(regexp_replace(LOT_NO, '[-A-Z]', '')+1) End from GNP_LOT_SEQ1 L Where L.SEQ =(Select MAX(L1.SEQ) from GNP_LOT_SEQ1 L1 Where L1.ORG =(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765 When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and L1.ITEM_TYPE in ('PM','TPACK')) and L.ORG=(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765 When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and L.ITEM_TYPE in ('PM','TPACK') 4- Insert LOT to GNP Custom Table Condition: WHEN-VALIDATE-RECORD LOT_ENTRY (Select I.INVENTORY_ITEM_ID from MTL_SYSTEM_ITEMS_B I Where I.INVENTORY_ITEM_ID =:mtl_trx_line.inventory_item_id and I.ORGANIZATION_ID =(Select Case When apps.FND_PROFILE.VALUE('ORG_ID')=23 then 765 When apps.FND_PROFILE.VALUE('ORG_ID') =956 then 977 when apps.FND_PROFILE.VALUE('ORG_ID') =283 then 767 end from dual ) and I.ITEM_TYPE in ('RM','TRAW') )is not NULL and :LOT_ENTRY.LOT_NUMBER is not NULL Action Built in
  • 17.
    Execute Procedure ='declare C number:=GNP_L_SEQ.NEXTVAL; FNVARCHAR2(10); G NVARCHAR2(30):='''||${item.lot_entry.lot_number.value}||'''; H Date:=sysdate; O NVARCHAR2(10):='''||${item.mtl_trx_line.organization_id.value}||'''; M NVARCHAR2(50):='''||${item.LOT_CONTEXT.ITEM.value}||'''; begin Select I.item_type into F from MTL_system_items_b I Where I.inventory_item_id='${item.mtl_trx_line.inventory_item_id.value}'and I.organization_id ='${item.mtl_trx_line.organization_id.value}'; Insert into GNP_LOT_SEQ1 (SEQ,ITEM_TYPE,LOT_NO,LOT_DATE,ORG,ITEM) Select C,F,G,H,O,M from Dual where not exists (Select * from GNP_LOT_SEQ1 Where (ITEM='${item.LOT_CONTEXT.ITEM.value}' and ORG='${item.mtl_trx_line.organization_id.value}')) ; end; Commit'