The following lines contain the word 'select', 'insert', 'update' or 'delete':
/* Fix for Bug#4956543. Added following lot_selected procedure
This procedure will return Lot Quantity populated by the system for a
particular Lot. Since Quantity Tree is not considering MTI records for
Quantity calculation, we need to look into interface tables
*/
procedure lot_selected (
p_organization_id NUMBER,
p_inventory_item_id NUMBER,
p_sub_code VARCHAR2,
p_locator_id NUMBER,
p_lot_number VARCHAR2,
p_lot_qty_selected OUT NOCOPY NUMBER,
x_returnStatus OUT NOCOPY VARCHAR2);
select backflush_lot_entry_type
into l_entryType
from wip_parameters
where organization_id = p_orgID;
select mmtt.transaction_temp_id,
mmtt.operation_seq_num,
mmtt.inventory_item_id,
msi.concatenated_segments,
mmtt.primary_quantity * -1,
sum(mtlt.primary_quantity),
mmtt.transaction_quantity * -1,
msi.primary_uom_code,
mmtt.subinventory_code,
mmtt.locator_id,
mmtt.wip_supply_type,
mmtt.transaction_action_id,
msi.mtl_transactions_enabled_flag,
msi.serial_number_control_code,
msi.lot_control_code,
mmtt.revision
from mtl_material_transactions_temp mmtt,
mtl_system_items_kfv msi,
mtl_transaction_lots_temp mtlt
where mmtt.completion_transaction_id = p_cplTxnID
and mmtt.transaction_action_id in (wip_constants.isscomp_action, wip_constants.retcomp_action,
wip_constants.issnegc_action, wip_constants.retnegc_action)
and mmtt.inventory_item_id = msi.inventory_item_id
and mmtt.organization_id = msi.organization_id
and mmtt.transaction_temp_id = mtlt.transaction_temp_id (+)
group by mmtt.transaction_temp_id,
mmtt.operation_seq_num,
mmtt.inventory_item_id,
msi.concatenated_segments,
mmtt.primary_quantity * -1,
mmtt.transaction_quantity * -1,
msi.primary_uom_code,
mmtt.subinventory_code,
mmtt.locator_id,
mmtt.wip_supply_type,
mmtt.transaction_action_id,
msi.mtl_transactions_enabled_flag,
msi.serial_number_control_code,
msi.lot_control_code,
mmtt.revision
order by mmtt.inventory_item_id, mmtt.transaction_temp_id;
select mmtt.transaction_temp_id,
mmtt.operation_seq_num,
mmtt.inventory_item_id,
msi.concatenated_segments,
mmtt.primary_quantity * -1,
sum(mtlt.primary_quantity),
mmtt.transaction_quantity * -1,
msi.primary_uom_code,
mmtt.subinventory_code,
mmtt.locator_id,
mmtt.wip_supply_type,
mmtt.transaction_action_id,
msi.mtl_transactions_enabled_flag,
msi.serial_number_control_code,
msi.lot_control_code,
mmtt.revision
from mtl_material_transactions_temp mmtt,
mtl_system_items_kfv msi,
mtl_transaction_lots_temp mtlt
where mmtt.move_transaction_id = p_movTxnID
and mmtt.transaction_action_id in (wip_constants.isscomp_action, wip_constants.retcomp_action,
wip_constants.issnegc_action, wip_constants.retnegc_action)
and mmtt.inventory_item_id = msi.inventory_item_id
and mmtt.organization_id = msi.organization_id
and mmtt.transaction_temp_id = mtlt.transaction_temp_id (+)
group by mmtt.transaction_temp_id,
mmtt.operation_seq_num,
mmtt.inventory_item_id,
msi.concatenated_segments,
mmtt.primary_quantity * -1,
mmtt.transaction_quantity * -1,
msi.primary_uom_code,
mmtt.subinventory_code,
mmtt.locator_id,
mmtt.wip_supply_type,
mmtt.transaction_action_id,
msi.mtl_transactions_enabled_flag,
msi.serial_number_control_code,
msi.lot_control_code,
mmtt.revision
order by mmtt.inventory_item_id, mmtt.transaction_temp_id;
insert into mtl_transaction_lots_temp
(transaction_temp_id,
last_update_date,
last_updated_by,
creation_date,
created_by,
last_update_login,
request_id,
program_application_id,
program_id,
program_update_date,
transaction_quantity,
primary_quantity,
lot_number)
values
(l_itemRec.txnID,
sysdate,
fnd_global.user_id,
sysdate,
fnd_global.user_id,
fnd_global.login_id,
fnd_global.conc_request_id,
fnd_global.prog_appl_id,
fnd_global.conc_program_id,
sysdate,
abs(round(l_lot.primary_quantity * (l_itemRec.txnQty/
l_itemRec.priQty), wip_constants.inv_max_precision)),
abs(round(l_lot.primary_quantity, wip_constants.inv_max_precision)),
l_lot.lot_number);
select mti.transaction_interface_id,
mti.operation_seq_num,
mti.inventory_item_id,
msi.concatenated_segments,
mti.primary_quantity * -1,
sum(mtli.primary_quantity),
mti.transaction_quantity * -1,
msi.primary_uom_code,
mti.subinventory_code,
mti.locator_id,
-- null,--mti.wip_supply_type,
mti.transaction_action_id,
msi.mtl_transactions_enabled_flag,
msi.serial_number_control_code,
msi.lot_control_code,
mti.revision,
mti.move_transaction_id,
mti.completion_transaction_id
from mtl_transactions_interface mti,
mtl_system_items_kfv msi,
mtl_transaction_lots_interface mtli
where mti.transaction_header_id = p_txnHdrID
and mti.transaction_action_id in (wip_constants.isscomp_action, wip_constants.retcomp_action,
wip_constants.issnegc_action, wip_constants.retnegc_action)
and mti.inventory_item_id = msi.inventory_item_id
and mti.organization_id = msi.organization_id
and mti.transaction_interface_id = mtli.transaction_interface_id (+)
group by mti.transaction_interface_id,
mti.operation_seq_num,
mti.inventory_item_id,
msi.concatenated_segments,
mti.primary_quantity * -1,
mti.transaction_quantity * -1,
msi.primary_uom_code,
mti.subinventory_code,
mti.locator_id,
-- null,--mti.wip_supply_type,
mti.transaction_action_id,
msi.mtl_transactions_enabled_flag,
msi.serial_number_control_code,
msi.lot_control_code,
mti.revision,
mti.move_transaction_id,
mti.completion_transaction_id
order by mti.inventory_item_id, mti.transaction_interface_id;
select mti.transaction_interface_id,
mti.operation_seq_num,
mti.inventory_item_id,
msi.concatenated_segments,
mti.primary_quantity * -1,
sum(mtli.primary_quantity),
mti.transaction_quantity * -1,
msi.primary_uom_code,
mti.subinventory_code,
mti.locator_id,
-- null,--mti.wip_supply_type,
mti.transaction_action_id,
msi.mtl_transactions_enabled_flag,
msi.serial_number_control_code,
msi.lot_control_code,
mti.revision,
mti.move_transaction_id,
mti.completion_transaction_id
from mtl_transactions_interface mti,
mtl_system_items_kfv msi,
mtl_transaction_lots_interface mtli
where mti.transaction_header_id = p_txnHdrID
and ( mti.completion_transaction_id = p_cplTxnID
or mti.move_transaction_id in (p_movTxnID, p_childMovTxnID))
and mti.transaction_action_id in (wip_constants.isscomp_action, wip_constants.retcomp_action,
wip_constants.issnegc_action, wip_constants.retnegc_action)
and mti.inventory_item_id = msi.inventory_item_id
and mti.organization_id = msi.organization_id
and mti.transaction_interface_id = mtli.transaction_interface_id (+)
group by mti.transaction_interface_id,
mti.operation_seq_num,
mti.inventory_item_id,
msi.concatenated_segments,
mti.primary_quantity * -1,
mti.transaction_quantity * -1,
msi.primary_uom_code,
mti.subinventory_code,
mti.locator_id,
-- null,--mti.wip_supply_type,
mti.transaction_action_id,
msi.mtl_transactions_enabled_flag,
msi.serial_number_control_code,
msi.lot_control_code,
mti.revision,
mti.move_transaction_id,
mti.completion_transaction_id
order by mti.inventory_item_id, mti.transaction_interface_id;
select mti.transaction_temp_id,
mti.operation_seq_num,
mti.inventory_item_id,
msi.concatenated_segments,
mti.primary_quantity * -1,
sum(mtli.primary_quantity),
mti.transaction_quantity * -1,
msi.primary_uom_code,
mti.subinventory_code,
mti.locator_id,
mti.wip_supply_type,
msi.mtl_transactions_enabled_flag,
msi.serial_number_control_code,
msi.lot_control_code,
mti.revision
from mtl_material_transactions_temp mti,
mtl_system_items_kfv msi,
mtl_transaction_lots_temp mtlt
where mti.move_transaction_id = p_movTxnID
and mti.transaction_action_id in (wip_constants.isscomp_action, wip_constants.retcomp_action,
wip_constants.issnegc_action, wip_constants.retnegc_action)
and mti.inventory_item_id = msi.inventory_item_id
and mti.organization_id = msi.organization_id
and mti.transaction_interface_id = mtlt.transaction_interface_id (+)
group by mti.transaction_temp_id,
mti.operation_seq_num,
mti.inventory_item_id,
msi.concatenated_segments,
mti.primary_quantity * -1,
mti.transaction_quantity * -1,
msi.primary_uom_code,
mti.subinventory_code,
mti.locator_id,
mti.wip_supply_type,
msi.mtl_transactions_enabled_flag,
msi.serial_number_control_code,
msi.lot_control_code,
mti.revision
order by mti.inventory_item_id, mti.transaction_temp_id;
insert into mtl_transaction_lots_interface
(transaction_interface_id,
last_update_date,
last_updated_by,
creation_date,
created_by,
last_update_login,
request_id,
program_application_id,
program_id,
program_update_date,
transaction_quantity,
primary_quantity,
lot_number)
values
(l_itemRecTbl.txnID(i),
sysdate,
fnd_global.user_id,
sysdate,
fnd_global.user_id,
fnd_global.login_id,
fnd_global.conc_request_id,
fnd_global.prog_appl_id,
fnd_global.conc_program_id,
sysdate,
abs(round(l_lot.primary_quantity * (l_itemRecTbl.txnQty(i)/
l_itemRecTbl.priQty(i)), wip_constants.inv_max_precision)),
abs(round(l_lot.primary_quantity, wip_constants.inv_max_precision)),
l_lot.lot_number);
select tln.lot_number,
max(mln.expiration_date),
abs(round(sum(tln.primary_quantity), wip_constants.max_displayed_precision))
from mtl_transaction_lot_numbers tln,
mtl_material_transactions mmt,
mtl_lot_numbers mln
where tln.organization_id = p_orgID
and tln.transaction_source_id = p_wipEntityID
and tln.transaction_source_type_id = 5
and tln.inventory_item_id = v_itemID
and tln.organization_id = mln.organization_id
and tln.inventory_item_id = mln.inventory_item_id
and tln.lot_number = mln.lot_number
and nvl(mln.expiration_date, sysdate + 1) > sysdate
and mmt.transaction_id = tln.transaction_id
and mmt.transaction_action_id in (wip_constants.isscomp_action, wip_constants.retcomp_action)
group by tln.lot_number
having sign(round(sum(tln.primary_quantity), wip_constants.max_displayed_precision)) < 0 --more issued quantity than returned
order by max(sign(round(tln.primary_quantity, wip_constants.max_displayed_precision))), --give priority to lots that have ret txns
max(tln.transaction_date) desc, --then sort by most recent txn date
tln.lot_number desc; --finally sort by lot number, descending b/c issues are ascending
select tln.lot_number,
max(mln.expiration_date),
abs(round(sum(tln.primary_quantity), wip_constants.max_displayed_precision))
from mtl_transaction_lot_numbers tln,
mtl_material_transactions mmt,
mtl_lot_numbers mln
where tln.organization_id = p_orgID
and tln.transaction_source_id = p_wipEntityID
and tln.transaction_source_type_id = 5
and tln.inventory_item_id = v_itemID
and tln.organization_id = mln.organization_id
and tln.inventory_item_id = mln.inventory_item_id
and tln.lot_number = mln.lot_number
and nvl(mln.expiration_date, sysdate + 1) > sysdate
and mmt.transaction_id = tln.transaction_id
and mmt.transaction_action_id in (wip_constants.issnegc_action, wip_constants.retnegc_action)
group by tln.lot_number
having sign(round(sum(tln.primary_quantity), wip_constants.max_displayed_precision)) > 0 --more neg issues than neg returns
order by max(sign(round(tln.primary_quantity, wip_constants.max_displayed_precision))), --give priority to lots that have ret txns
max(tln.transaction_date) desc, --then sort by most recent txn date
tln.lot_number desc; --finally sort by lot number, descending b/c issues are ascending
l_alt_lot_selection_method NUMBER ;
l_lot_qty_selected NUMBER ; /* Fix for Bug#4956543 */
select moq.lot_number,
min(mln.expiration_date)
from mtl_lot_numbers mln,
mtl_onhand_quantities_detail moq
where moq.inventory_item_id = v_itemID
and moq.organization_id = p_orgID
and moq.subinventory_code = v_supplySubinv
and nvl(moq.locator_id, -1) = nvl(v_supplyLocID, -1)
and nvl(moq.revision, 'NONE') = nvl(v_revision, 'NONE')
and mln.lot_number = moq.lot_number
and mln.inventory_item_id = moq.inventory_item_id
and mln.organization_id = moq.organization_id
and nvl(mln.expiration_date, sysdate + 1) > sysdate
group by moq.lot_number
order by min(moq.date_received), moq.lot_number;
select moq.lot_number,
min(mln.expiration_date)
from mtl_lot_numbers mln,
mtl_onhand_quantities_detail moq
where moq.inventory_item_id = v_itemID
and moq.organization_id = p_orgID
and moq.subinventory_code = v_supplySubinv
and nvl(moq.locator_id, -1) = nvl(v_supplyLocID, -1)
and nvl(moq.revision, 'NONE') = nvl(v_revision, 'NONE')
and mln.lot_number = moq.lot_number
and mln.inventory_item_id = moq.inventory_item_id
and mln.organization_id = moq.organization_id
and nvl(mln.expiration_date, sysdate + 1) > sysdate
group by moq.lot_number
order by min(mln.expiration_date),
min(moq.date_received),
moq.lot_number;
select tln.lot_number
from mtl_transaction_lot_numbers tln ,
mtl_lot_numbers mln ,
mtl_onhand_quantities_detail moq
where tln.transaction_date =
( select max(transaction_date)
from mtl_material_transactions
where organization_id = p_OrgID
and transaction_source_id =p_wipEntityID
and transaction_source_type_id = 5
and inventory_item_id = v_ItemId
and ( MOVE_TRANSACTION_ID IS NOT NULL or
COMPLETION_TRANSACTION_ID IS NOT NULL )
)
and tln.organization_id = moq.organization_id
and tln.inventory_item_id = moq.inventory_item_id
and tln.lot_number = moq.lot_number
and tln.lot_number = mln.lot_number
and moq.subinventory_code = v_supplySubinv
and nvl(moq.locator_id, -1) = nvl(v_supplyLocID, -1)
and nvl(moq.revision, 'NONE') = nvl(v_revision, 'NONE')
and nvl(mln.expiration_date, sysdate + 1) > sysdate
group by tln.lot_number
order by tln.lot_number ;
select alternate_lot_selection_method
into l_alt_lot_selection_method
from wip_parameters
where organization_id = p_orgID ;
if (l_alt_lot_selection_method in (wip_constants.recdate_full,wip_constants.recdate_exc)) then
open c_receiptOrderedLots(v_itemID => l_item.inventory_item_id,
v_supplySubinv => l_item.supply_subinventory,
v_supplyLociD => l_item.supply_locator_id,
v_revision => l_item.revision);
elsif (l_alt_lot_selection_method in (wip_constants.expdate_full,wip_constants.expdate_exc)) then
open c_expDateOrderedLots(v_itemID => l_item.inventory_item_id,
v_supplySubinv => l_item.supply_subinventory,
v_supplyLociD => l_item.supply_locator_id,
v_revision => l_item.revision);
raise fnd_api.g_exc_error; --manual selection.
if(l_alt_lot_selection_method in (wip_constants.recdate_full, wip_constants.recdate_exc)) then
fetch c_receiptOrderedLots into l_lotNumber, l_expDate;
elsif(l_alt_lot_selection_method in (wip_constants.expdate_full, wip_constants.expdate_exc)) then
fetch c_expDateOrderedLots into l_lotNumber, l_expDate;
end if; -- end if for l_alt_lot_selection
lot_selected ( p_organization_id => p_orgID,
p_inventory_item_id => l_item.inventory_item_id,
p_sub_code => l_item.supply_subinventory,
p_locator_id => l_item.supply_locator_id,
p_lot_number => l_lotNumber,
p_lot_qty_selected => l_lot_qty_selected,
x_returnStatus => x_returnStatus ) ;
/* Begin Bug#4956543. l_qtyAvailToTxt is updated if Lot is already selected */
if ((l_qtyAvailToTxt > 0) and (l_qtyAvailToTxt - l_lot_qty_selected ) > 0) then
if (l_lot_qty_selected > 0 ) then
wip_logger.log ('Changing l_qtyAvailToTxt', l_returnStatus ) ;
l_qtyAvailToTxt := l_qtyAvailToTxt - l_lot_qty_selected ;
inv_quantity_tree_pvt.update_quantities(p_api_version_number => 1.0,
p_init_msg_lst => fnd_api.g_false,
p_tree_id => x_treeID,
p_revision => l_item.revision,
p_lot_number => l_lotNumber,
p_subinventory_code => l_item.supply_subinventory,
p_locator_id => l_item.supply_locator_id,
p_primary_quantity => -1 * least(l_rmnQty, l_qtyAvailToTxt),
p_quantity_type => 1, --pending txn
p_transfer_subinventory_code => null,
p_cost_group_id => null,
p_containerized => inv_quantity_tree_pvt.g_containerized_false,
p_lpn_id => null,
p_transfer_locator_id => null,
x_return_status => x_returnStatus,
x_msg_count => l_msgCount,
x_msg_data => l_msgData,
x_qoh => l_qtyOnHand2,
x_rqoh => l_rsvableQtyOnHand2,
x_qr => l_qtyRsved2,
x_qs => l_qtySuggested2,
x_att => l_qtyAvailToTxt2,
x_atr => l_qtyAvailToRsv2);
l_errMsg := 'qty tree update failed';
select lot_control_code, serial_number_control_code
into l_lotControlCode, l_serialControlCode
from mtl_system_items
where inventory_item_id = l_item.inventory_item_id
and organization_id = p_orgID;
select nvl(max(count(*)), 0)
into l_serCount
from mtl_serial_numbers
where current_organization_id = p_orgID
and inventory_item_id = p_itemID
and current_status = 3
and (group_mark_id = -1 OR group_mark_id is null)
and lpn_id is null
and (wip_utilities.is_status_applicable(/*p_trx_status_enabled => */ null,
/*p_trx_type_id => */ l_txnTypeID,
/*p_lot_status_enabled => */ null,
/*p_serial_status_enabled => */ null,
/*p_organization_id => */ current_organization_id,
/*p_inventory_item_id => */ inventory_item_id,
/*p_sub_code => */ current_subinventory_code,
/*p_locator_id => */ current_locator_id,
/*p_lot_number => */ lot_number,
/*p_serial_number => */ serial_number,
/*p_object_type => */ 'S') = 'Y')
group by current_subinventory_code, current_locator_id, revision;
select nvl(max(count(*)), 0)
into l_serCount
from mtl_serial_numbers
where current_organization_id = p_orgID
and inventory_item_id = p_itemID
and current_status = 4
and (group_mark_id = -1 OR group_mark_id is null)
and (wip_utilities.is_status_applicable(/*p_trx_status_enabled => */ null,
/*p_trx_type_id => */ l_txnTypeID,
/*p_lot_status_enabled => */ null,
/*p_serial_status_enabled => */ null,
/*p_organization_id => */ current_organization_id,
/*p_inventory_item_id => */ inventory_item_id,
/*p_sub_code => */ current_subinventory_code,
/*p_locator_id => */ current_locator_id,
/*p_lot_number => */ lot_number,
/*p_serial_number => */ serial_number,
/*p_object_type => */ 'S') = 'Y')
group by revision;
select count(*)
into l_serCount
from mtl_serial_numbers
where current_organization_id = p_orgID
and inventory_item_id = p_itemID
and current_status in (1, 6)
and (group_mark_id = -1 OR group_mark_id is null)
and (wip_utilities.is_status_applicable(/*p_trx_status_enabled => */ null,
/*p_trx_type_id => */ l_txnTypeID,
/*p_lot_status_enabled => */ null,
/*p_serial_status_enabled => */ null,
/*p_organization_id => */ current_organization_id,
/*p_inventory_item_id => */ inventory_item_id,
/*p_sub_code => */ current_subinventory_code,
/*p_locator_id => */ current_locator_id,
/*p_lot_number => */ lot_number,
/*p_serial_number => */ serial_number,
/*p_object_type => */ 'S') = 'Y');
select fm_serial_number fmSerial,
to_serial_number toSerial
from mtl_serial_numbers_temp
where transaction_temp_id = p_txnTmpID;
select fm_serial_number fmSerial,
to_serial_number toSerial
from mtl_serial_numbers_interface
where transaction_interface_id = p_txnIntID;
procedure lot_selected (
p_organization_id NUMBER,
p_inventory_item_id NUMBER,
p_sub_code VARCHAR2,
p_locator_id NUMBER,
p_lot_number VARCHAR2,
p_lot_qty_selected OUT NOCOPY NUMBER,
x_returnStatus OUT NOCOPY VARCHAR2) is
l_qty NUMBER ;
wip_logger.entryPoint(p_procName => 'wip_autoLotProc_priv.lot_selected',
p_params => l_params,
x_returnStatus => x_returnStatus);
select sum(abs(nvl(transaction_quantity, 0)))
into l_qty
from mtl_transaction_lots_interface
where transaction_interface_id in
(select transaction_interface_id
from mtl_transactions_interface
where inventory_item_id = p_inventory_item_id
and organization_id = p_organization_id
and subinventory_code = p_sub_code
and nvl(locator_id, -1) = nvl(p_locator_id, -1))
and lot_number = p_lot_number ;
p_lot_qty_selected := nvl(l_qty, 0) ;
wip_logger.log( 'Lot Qty Selected ' || p_lot_qty_selected || ' for Lot ' || p_lot_number, l_returnStatus) ;
wip_logger.exitPoint(p_procName => 'wip_autoLotProc_priv.lot_selected',
p_procReturnStatus => x_returnStatus,
p_msg => 'procedure success',
x_returnStatus => l_returnStatus); --discard logging return status
end lot_selected ;
SELECT mtln.lot_number lot,
mtln.primary_quantity * -1 lot_qty
FROM mtl_object_genealogy mog,
mtl_material_transactions mmt,
mtl_transaction_lot_numbers mtln,
mtl_lot_numbers mln
WHERE mog.object_id = mln.gen_object_id
AND mog.end_date_active IS NULL
AND mog.parent_object_id = p_parentObjID
AND mtln.inventory_item_id = p_item.inventory_item_id
AND mtln.organization_id = p_orgID
AND mtln.organization_id = mln.organization_id
AND mtln.inventory_item_id = mln.inventory_item_id
AND mtln.lot_number = mln.lot_number
AND nvl(mln.expiration_date, sysdate + 1) > sysdate
AND mmt.transaction_id = mog.origin_txn_id
AND mmt.transaction_id = mtln.transaction_id
AND mmt.transaction_action_id IN (WIP_CONSTANTS.ISSCOMP_ACTION,
WIP_CONSTANTS.RETCOMP_ACTION)
AND mmt.operation_seq_num = p_item.operation_seq_num;
SELECT mmt.revision revision
FROM mtl_object_genealogy mog,
mtl_material_transactions mmt,
mtl_transaction_lot_numbers mtln,
mtl_lot_numbers mln
WHERE mog.object_id = mln.gen_object_id
AND mog.end_date_active IS NULL
AND mog.parent_object_id = p_parentObjID
AND mtln.inventory_item_id = p_item.inventory_item_id
AND mtln.organization_id = p_orgID
AND mtln.organization_id = mln.organization_id
AND mtln.inventory_item_id = mln.inventory_item_id
AND mtln.lot_number = mln.lot_number
AND nvl(mln.expiration_date, sysdate + 1) > sysdate
AND mmt.transaction_id = mog.origin_txn_id
AND mmt.transaction_id = mtln.transaction_id
AND mmt.transaction_action_id IN (WIP_CONSTANTS.ISSCOMP_ACTION,
WIP_CONSTANTS.RETCOMP_ACTION)
AND mmt.operation_seq_num = p_item.operation_seq_num;