XXX_Mark_ID in MTL_SERIAL_NUMBRS

MTL_SERIAL_NUMBER table has 3 mark_id fields: GROUP_MARK_ID, LINE_MARK_ID, LOT_LINE_MARK_ID



GROUP_MARK_ID=TRANSACTION_HEADER_ID


LINE_MARK_ID=TRANSACTION_TEMP_ID


If lot controlled, then

    LOT_LINE_MARK_ID = LOT_TEMP_TRNASACTION_ID

Else

   LOT_LINE_MARK_ID=LINE_MARK_ID


These mark_id fields are used to ensure that that serial numbers used by one user's session do not become available incorrectly to another user.

XXX_Mark_ID in MTL_SERIAL_NUMBRS_第1张图片


Note 309710.1 - Cannot Transact Serial Number with Mark ID Populated/Orphan Serial Numbers

The following SQL identified the invalid / incorrect data:
This query can show the columns (MARK_ID's) were populated for the serialnumber and that the status of the serial number was one of the following:

select count(*) from 
mtl_serial_numbers msn 
where (msn.group_mark_id is not null and msn.group_mark_id <> -1) 
and not exists (select 1 from mtl_serial_numbers_temp msnt 
                where msn.group_mark_id = msnt.transaction_temp_id 
                   or msn.group_mark_id = msnt.group_header_id) 
and not exists (select 1 from wsh_delivery_details wdd 
                where wdd.inv_interfaced_flag <> 'Y' 
                  and wdd.released_status in ('Y','C') 
                  and wdd.transaction_temp_id is not null 
                  and msn.group_mark_id = wdd.transaction_temp_id) 
and not exists (select 1 from wsh_delivery_details wdd 
                where wdd.inv_interfaced_flag <> 'Y' 
                  and wdd.released_status in ('Y','C') 
                  and msn.inventory_item_id = wdd.inventory_item_id 
                  and msn.serial_number = wdd.serial_number) 
and not exists (select 1 from mtl_cycle_count_entries mcce 
                where mcce.cycle_count_header_id = msn.group_mark_id 
                  and mcce.cycle_count_entry_id = msn.line_mark_id 
                  and mcce.entry_status_code in (1,2))
/

你可能感兴趣的:(XXX_Mark_ID in MTL_SERIAL_NUMBRS)