The following lines contain the word 'select', 'insert', 'update' or 'delete':
Procedure Delete_Bom_Expl(top_bill_id Number,
arg_expl_type Varchar2)
IS
pragma AUTONOMOUS_TRANSACTION;
DELETE from bom_explosions
WHERE top_bill_sequence_id = top_bill_id
AND explosion_type = arg_expl_type;
END Delete_Bom_Expl;
SELECT bill_sequence_id
FROM bom_bill_of_materials
WHERE assembly_item_id = ITEM_ID
AND organization_id = ORG_ID
AND alternate_bom_designator is null;
SELECT to_date(nvl(REV_DATE, SYSDATE),'YYYY/MM/DD HH24:MI') rev_datetime
FROM sys.dual;
Select 1
FROM bom_explosions be
WHERE be.top_bill_sequence_id = X_TOP_BILL_ID
AND be.explosion_type = EXPL_TYPE
and be.rexplode_flag = 1
and rownum = 1;
select to_date(to_char(effectivity_date,'YYYY/MM/DD HH24:MI'),'YYYY/MM/DD HH24:MI') effectivity_date
from bom_explosions
where top_bill_sequence_id = X_TOP_BILL_ID
AND explosion_type = EXPL_TYPE
and sort_order = lpad('1', X_SortWidth, '0');
SELECT 1
FROM bom_bill_of_materials bbom
WHERE organization_id = ORG_ID
AND assembly_item_id = ITEM_ID
AND alternate_bom_designator is NULL
FOR UPDATE OF assembly_item_id NOWAIT;
SELECT bom_config_explosions_s.nextval group_id
FROM sys.dual;
SELECT to_date(REV_DATE,'YYYY/MM/DD HH24:MI')
into x_revision_date
FROM sys.dual;
SELECT to_date(to_char(sysdate,'YYYY/MM/DD HH24:MI'),'YYYY/MM/DD HH24:MI')
into x_revision_date
FROM sys.dual;
--Added call to Delete_Bom_Expl procedure to avoid deadlock issue and removed earlier delete st
Delete_Bom_Expl(X_TOP_BILL_ID,EXPL_TYPE);
INSERT INTO bom_config_explosions (
TOP_BILL_SEQUENCE_ID,
BILL_SEQUENCE_ID,
ORGANIZATION_ID,
EXPLOSION_TYPE,
COMPONENT_SEQUENCE_ID,
COMPONENT_ITEM_ID,
PLAN_LEVEL,
EXTENDED_QUANTITY,
SORT_ORDER,
GROUP_ID,
SESSION_ID,
TOP_ITEM_ID,
COMPONENT_QUANTITY,
SO_BASIS,
OPTIONAL,
MUTUALLY_EXCLUSIVE_OPTIONS,
CHECK_ATP,
SHIPPING_ALLOWED,
REQUIRED_TO_SHIP,
REQUIRED_FOR_REVENUE,
INCLUDE_ON_SHIP_DOCS,
INCLUDE_ON_BILL_DOCS,
LOW_QUANTITY,
HIGH_QUANTITY,
PICK_COMPONENTS,
PRIMARY_UOM_CODE,
PRIMARY_UNIT_OF_MEASURE,
BASE_ITEM_ID,
ATP_COMPONENTS_FLAG,
ATP_FLAG,
BOM_ITEM_TYPE,
PICK_COMPONENTS_FLAG,
REPLENISH_TO_ORDER_FLAG,
SHIPPABLE_ITEM_FLAG,
CUSTOMER_ORDER_FLAG,
INTERNAL_ORDER_FLAG,
CUSTOMER_ORDER_ENABLED_FLAG,
INTERNAL_ORDER_ENABLED_FLAG,
SO_TRANSACTIONS_FLAG,
DESCRIPTION,
ASSEMBLY_ITEM_ID,
CONFIGURATOR_FLAG,
COMPONENT_CODE,
LOOP_FLAG,
PARENT_BOM_ITEM_TYPE,
OPERATION_SEQ_NUM,
ITEM_NUM,
EFFECTIVITY_DATE,
DISABLE_DATE,
IMPLEMENTATION_DATE,
REXPLODE_FLAG,
COMMON_BILL_SEQUENCE_ID)
SELECT
TOP_BILL_SEQUENCE_ID,
BILL_SEQUENCE_ID,
ORGANIZATION_ID,
expl_type,
COMPONENT_SEQUENCE_ID,
COMPONENT_ITEM_ID,
PLAN_LEVEL,
EXTENDED_QUANTITY,
SORT_ORDER,
X_Group.group_id,
x_sessn_id,
TOP_ITEM_ID,
COMPONENT_QUANTITY,
SO_BASIS,
OPTIONAL,
MUTUALLY_EXCLUSIVE_OPTIONS,
CHECK_ATP,
SHIPPING_ALLOWED,
REQUIRED_TO_SHIP,
REQUIRED_FOR_REVENUE,
INCLUDE_ON_SHIP_DOCS,
INCLUDE_ON_BILL_DOCS,
LOW_QUANTITY,
HIGH_QUANTITY,
PICK_COMPONENTS,
PRIMARY_UOM_CODE,
PRIMARY_UNIT_OF_MEASURE,
BASE_ITEM_ID,
ATP_COMPONENTS_FLAG,
ATP_FLAG,
BOM_ITEM_TYPE,
PICK_COMPONENTS_FLAG,
REPLENISH_TO_ORDER_FLAG,
SHIPPABLE_ITEM_FLAG,
CUSTOMER_ORDER_FLAG,
INTERNAL_ORDER_FLAG,
CUSTOMER_ORDER_ENABLED_FLAG,
INTERNAL_ORDER_ENABLED_FLAG,
SO_TRANSACTIONS_FLAG,
DESCRIPTION,
ASSEMBLY_ITEM_ID,
'Y',
COMPONENT_CODE,
LOOP_FLAG,
PARENT_BOM_ITEM_TYPE,
OPERATION_SEQ_NUM,
ITEM_NUM,
EFFECTIVITY_DATE,
DISABLE_DATE,
IMPLEMENTATION_DATE,
REXPLODE_FLAG,
COMMON_BILL_SEQUENCE_ID
FROM bom_explosions
WHERE top_bill_sequence_id = X_TOP_BILL_ID
AND explosion_type = EXPL_TYPE
AND plan_level > 0
AND effectivity_date <= X_REVISION_DATE
AND disable_date > X_REVISION_DATE;