The following lines contain the word 'select', 'insert', 'update' or 'delete':
SELECT 'x'
FROM mtl_system_items_b
WHERE
inventory_item_id = p_inventory_item_id
AND organization_id = p_organization_id;
SELECT object_version_number
FROM mtl_item_revisions_b
WHERE
inventory_item_id = p_inventory_item_id
AND organization_id = p_organization_id
AND revision = p_revision;
SELECT ascii(p_revision) - ascii(Max(revision))
FROM mtl_item_revisions_b
WHERE inventory_item_id=p_inventory_item_id
AND organization_id=p_organization_id;
SELECT object_version_number
FROM mtl_item_revisions_b
WHERE
inventory_item_id = p_inventory_item_id
AND organization_id = p_organization_id
AND revision = p_revision
AND revision_id <> p_revision_id;
SELECT object_version_number
FROM mtl_item_revisions_b
WHERE
inventory_item_id = p_inventory_item_id
AND organization_id = p_organization_id
AND revision_id = p_revision_id;
SELECT pe.proj_element_id lifecycle_phase_id
FROM pa_proj_elements pe,
pa_proj_element_versions pevl,
pa_proj_element_versions pevlp
WHERE pevl.object_type = 'PA_STRUCTURES' AND
pevl.project_id = 0 AND
pevl.proj_element_id = p_lifecycle_id AND
pevlp.object_type = 'PA_TASKS' AND
pevlp.project_id = 0 AND
pevlp.parent_structure_version_id = pevl.element_version_id AND
pevlp.proj_element_id = pe.proj_element_id AND
pevlp.project_id = pe.project_id
ORDER BY pevlp.display_sequence;
SELECT revision, effectivity_date
FROM mtl_item_revisions_b
WHERE
inventory_item_id = p_Item_Revision_rec.inventory_item_id
AND organization_id = p_Item_Revision_rec.organization_id
AND revision_id <> NVL(p_Item_Revision_rec.revision_id,-999999) --3655522 , 7248982:API taking same effectivity date
ORDER BY
revision, effectivity_date;
PROCEDURE Insert_Revision_UserAttr(p_organization_id IN NUMBER
,p_inventory_item_id IN NUMBER
,p_revision_id IN NUMBER
,p_transaction_type IN VARCHAR2
,p_template_id IN NUMBER) IS
CURSOR c_get_item_catalog(cp_inventory_item_id NUMBER
,cp_organization_id NUMBER) IS
SELECT item_catalog_group_id
FROM mtl_system_items_b
WHERE organization_id = cp_organization_id
AND inventory_item_id = cp_inventory_item_id;
SELECT item_catalog_group_id
,parent_catalog_group_id
FROM mtl_item_catalog_groups_b
CONNECT BY PRIOR parent_catalog_group_id = item_catalog_group_id
START WITH item_catalog_group_id = cp_catalog_group_id;
END Insert_Revision_UserAttr;
SELECT revision_id
FROM mtl_item_revisions_b
WHERE inventory_item_id = cp_inventory_item_id
AND organization_id = cp_organization_id
AND revision < cp_revision
AND implementation_date IS NOT NULL
AND effectivity_date <= sysdate
ORDER BY effectivity_date desc;
SELECT revision_id
FROM mtl_item_revisions_b
WHERE inventory_item_id = cp_inventory_item_id
AND organization_id = cp_organization_id
AND revision_id = cp_source_revision_id;
SELECT DATA_LEVEL_ID
INTO l_item_rev_dl_id
FROM EGO_DATA_LEVEL_B
WHERE ATTR_GROUP_TYPE = 'EGO_ITEMMGMT_GROUP'
AND APPLICATION_ID = 431
AND DATA_LEVEL_NAME = 'ITEM_REVISION_LEVEL';
SELECT template_id
FROM mtl_item_templates
WHERE template_name = cp_template_name;
SELECT template_id
FROM mtl_item_templates
WHERE template_id = cp_template_id;
SELECT mtl_item_revisions_b_s.CURRVAL
INTO l_revision_id FROM DUAL;
SELECT mtl_item_revisions_b_s.NEXTVAL
INTO p_Item_Revision_rec.revision_id
FROM DUAL;
INSERT INTO mtl_item_revisions_b
(
inventory_item_id
, organization_id
, revision_id
, revision
, change_notice
, ecn_initiation_date
, implementation_date
, effectivity_date
, revised_item_sequence_id
, attribute_category
, attribute1
, attribute2
, attribute3
, attribute4
, attribute5
, attribute6
, attribute7
, attribute8
, attribute9
, attribute10
, attribute11
, attribute12
, attribute13
, attribute14
, attribute15
, creation_date
, created_by
, last_update_date
, last_updated_by
, last_update_login
, request_id
, program_application_id
, program_id
, program_update_date
, object_version_number
, revision_label
, revision_reason
, lifecycle_id
, current_phase_id
)
VALUES
(
p_Item_Revision_rec.inventory_item_id
, p_Item_Revision_rec.organization_id
, p_Item_Revision_rec.revision_id
, p_Item_Revision_rec.revision
, p_Item_Revision_rec.change_notice
, p_Item_Revision_rec.ecn_initiation_date
, p_Item_Revision_rec.implementation_date
, p_Item_Revision_rec.effectivity_date
, p_Item_Revision_rec.revised_item_sequence_id
, DECODE(p_Item_Revision_rec.attribute_category, G_Miss_Char, NULL, p_Item_Revision_rec.attribute_category )
, DECODE(p_Item_Revision_rec.attribute1, G_Miss_Char, NULL, p_Item_Revision_rec.attribute1 )
, DECODE(p_Item_Revision_rec.attribute2, G_Miss_Char, NULL, p_Item_Revision_rec.attribute2 )
, DECODE(p_Item_Revision_rec.attribute3, G_Miss_Char, NULL, p_Item_Revision_rec.attribute3 )
, DECODE(p_Item_Revision_rec.attribute4, G_Miss_Char, NULL, p_Item_Revision_rec.attribute4 )
, DECODE(p_Item_Revision_rec.attribute5, G_Miss_Char, NULL, p_Item_Revision_rec.attribute5 )
, DECODE(p_Item_Revision_rec.attribute6, G_Miss_Char, NULL, p_Item_Revision_rec.attribute6 )
, DECODE(p_Item_Revision_rec.attribute7, G_Miss_Char, NULL, p_Item_Revision_rec.attribute7 )
, DECODE(p_Item_Revision_rec.attribute8, G_Miss_Char, NULL, p_Item_Revision_rec.attribute8 )
, DECODE(p_Item_Revision_rec.attribute9, G_Miss_Char, NULL, p_Item_Revision_rec.attribute9 )
, DECODE(p_Item_Revision_rec.attribute10, G_Miss_Char, NULL, p_Item_Revision_rec.attribute10 )
, DECODE(p_Item_Revision_rec.attribute11, G_Miss_Char, NULL, p_Item_Revision_rec.attribute11 )
, DECODE(p_Item_Revision_rec.attribute12, G_Miss_Char, NULL, p_Item_Revision_rec.attribute12 )
, DECODE(p_Item_Revision_rec.attribute13, G_Miss_Char, NULL, p_Item_Revision_rec.attribute13 )
, DECODE(p_Item_Revision_rec.attribute14, G_Miss_Char, NULL, p_Item_Revision_rec.attribute14 )
, DECODE(p_Item_Revision_rec.attribute15, G_Miss_Char, NULL, p_Item_Revision_rec.attribute15 )
, l_sysdate
, FND_GLOBAL.user_id
, l_sysdate
, FND_GLOBAL.user_id
, FND_GLOBAL.conc_login_id
, DECODE(p_Item_Revision_rec.request_id, G_Miss_Num, NULL, p_Item_Revision_rec.request_id )
, DECODE(p_Item_Revision_rec.program_application_id, G_Miss_Num, NULL, p_Item_Revision_rec.program_application_id )
, DECODE(p_Item_Revision_rec.program_id, G_Miss_Num, NULL, p_Item_Revision_rec.program_id )
, DECODE(p_Item_Revision_rec.program_update_date, G_Miss_Date, NULL, p_Item_Revision_rec.program_update_date )
, c_object_version_number
, p_Item_Revision_rec.revision_label
, p_Item_Revision_rec.revision_reason
, p_Item_Revision_rec.lifecycle_id
, p_Item_Revision_rec.current_phase_id
) RETURNING revision_id, object_version_number INTO G_revision_id, G_object_version_number;
SELECT userenv('LANG') INTO G_language_code FROM dual;
INSERT INTO mtl_item_revisions_TL
( Inventory_Item_Id
, Organization_Id
, Revision_id
, Language
, Source_Lang
, Created_By
, Creation_Date
, Last_Updated_By
, Last_Update_Date
, Last_Update_Login
, Description
)
SELECT p_Item_Revision_rec.inventory_item_id
, p_Item_Revision_rec.organization_id
, G_revision_id
, lang.language_code
, G_language_code
, G_User_Id
, l_sysdate
, G_User_Id
, l_sysdate
, G_Login_Id
, p_Item_Revision_rec.description
FROM FND_LANGUAGES lang
WHERE lang.installed_flag in ('I', 'B');
INSERT INTO mtl_pending_item_status
( Inventory_Item_Id
, Organization_Id
, Status_code
, Effective_date
, Implemented_date
, Pending_flag
, Revision_Id
, lifecycle_id
, phase_id
, Created_By
, Creation_Date
, Last_Updated_By
, Last_Update_Date
, Last_Update_Login
)
VALUES
( p_Item_Revision_rec.Inventory_Item_Id
, p_Item_Revision_rec.Organization_Id
, NULL
, l_sysdate
, l_sysdate
, 'N'
, G_revision_id
, p_Item_Revision_rec.lifecycle_id
, p_Item_Revision_rec.current_phase_id
, G_User_Id
, l_sysdate
, G_User_Id
, l_sysdate
, G_Login_Id
);
Insert_Revision_UserAttr(p_organization_id => p_Item_Revision_rec.Organization_Id
,p_inventory_item_id => p_Item_Revision_rec.inventory_item_id
,p_revision_id => G_revision_id
,p_transaction_type => 'CREATE'
,p_template_id => l_template_id);
PROCEDURE Update_Item_Revision
(
p_api_version IN NUMBER
, p_init_msg_list IN VARCHAR2 := FND_API.g_FALSE
, p_commit IN VARCHAR2 := FND_API.g_FALSE
, p_validation_level IN NUMBER := FND_API.g_VALID_LEVEL_FULL
, p_process_control IN VARCHAR2 := NULL
, x_return_status OUT NOCOPY VARCHAR2
, x_msg_count OUT NOCOPY NUMBER
, x_msg_data OUT NOCOPY VARCHAR2
, p_Item_Revision_rec IN OUT NOCOPY Item_Revision_rec_type
)
IS
CURSOR check_template_name (cp_template_name VARCHAR2) IS
SELECT template_id
FROM mtl_item_templates
WHERE template_name = cp_template_name;
SELECT template_id
FROM mtl_item_templates
WHERE template_id = cp_template_id;
SELECT effectivity_date
,implementation_date
,lifecycle_id
,current_phase_id
FROM mtl_item_revisions_b
WHERE inventory_item_id = p_inventory_item_id
AND organization_id = p_organization_id
AND revision = p_revision;
l_api_name CONSTANT VARCHAR2(30) := 'Update_Item_Revision';
SAVEPOINT Update_Item_Revision_PUB;
/*Bug: 5037166 Modified the clause below to prevent Revision being updated
with Effectivity date prior to SYSDATE*/
IF (( l_orig_effectivity_date < l_sysdate AND
l_orig_implementation_date IS NOT NULL )
OR p_Item_Revision_rec.effectivity_date < l_sysdate ) THEN
--3655522 if rev is not implemented, then we allow changing effectivity date
x_return_status := FND_API.g_RET_STS_ERROR;
UPDATE mtl_item_revisions_b
SET
revision = DECODE(p_Item_Revision_rec.revision, G_Miss_Char, revision, null, revision, p_Item_Revision_rec.revision )
, change_notice = DECODE(p_Item_Revision_rec.change_notice, G_Miss_Char, null, null, change_notice, p_Item_Revision_rec.change_notice )
, ecn_initiation_date = DECODE(p_Item_Revision_rec.ecn_initiation_date, G_Miss_Date, null, null, ecn_initiation_date, p_Item_Revision_rec.ecn_initiation_date )
, effectivity_date = DECODE(p_Item_Revision_rec.effectivity_date, null, effectivity_date, p_Item_Revision_rec.effectivity_date )
, implementation_date = DECODE(change_notice,null,DECODE(p_Item_Revision_rec.effectivity_date,null,effectivity_date,p_Item_Revision_rec.effectivity_date),implementation_date) --3607562
, revised_item_sequence_id = DECODE(p_Item_Revision_rec.revised_item_sequence_id, G_Miss_Num, null, null, revised_item_sequence_id, p_Item_Revision_rec.revised_item_sequence_id )
, attribute_category = DECODE(p_Item_Revision_rec.attribute_category, G_Miss_Char, null, null, attribute_category, p_Item_Revision_rec.attribute_category )
, attribute1 = DECODE(p_Item_Revision_rec.attribute1, G_Miss_Char, null, null, attribute1, p_Item_Revision_rec.attribute1 )
, attribute2 = DECODE(p_Item_Revision_rec.attribute2, G_Miss_Char, null, null, attribute2, p_Item_Revision_rec.attribute2 )
, attribute3 = DECODE(p_Item_Revision_rec.attribute3, G_Miss_Char, null, null, attribute3, p_Item_Revision_rec.attribute3 )
, attribute4 = DECODE(p_Item_Revision_rec.attribute4, G_Miss_Char, null, null, attribute4, p_Item_Revision_rec.attribute4 )
, attribute5 = DECODE(p_Item_Revision_rec.attribute5, G_Miss_Char, null, null, attribute5, p_Item_Revision_rec.attribute5 )
, attribute6 = DECODE(p_Item_Revision_rec.attribute6, G_Miss_Char, null, null, attribute6, p_Item_Revision_rec.attribute6 )
, attribute7 = DECODE(p_Item_Revision_rec.attribute7, G_Miss_Char, null, null, attribute7, p_Item_Revision_rec.attribute7 )
, attribute8 = DECODE(p_Item_Revision_rec.attribute8, G_Miss_Char, null, null, attribute8, p_Item_Revision_rec.attribute8 )
, attribute9 = DECODE(p_Item_Revision_rec.attribute9, G_Miss_Char, null, null, attribute9, p_Item_Revision_rec.attribute9 )
, attribute10 = DECODE(p_Item_Revision_rec.attribute10, G_Miss_Char, null, null, attribute10, p_Item_Revision_rec.attribute10 )
, attribute11 = DECODE(p_Item_Revision_rec.attribute11, G_Miss_Char, null, null, attribute11, p_Item_Revision_rec.attribute11 )
, attribute12 = DECODE(p_Item_Revision_rec.attribute12, G_Miss_Char, null, null, attribute12, p_Item_Revision_rec.attribute12 )
, attribute13 = DECODE(p_Item_Revision_rec.attribute13, G_Miss_Char, null, null, attribute13, p_Item_Revision_rec.attribute13 )
, attribute14 = DECODE(p_Item_Revision_rec.attribute14, G_Miss_Char, null, null, attribute14, p_Item_Revision_rec.attribute14 )
, attribute15 = DECODE(p_Item_Revision_rec.attribute15, G_Miss_Char, null, null, attribute15, p_Item_Revision_rec.attribute15 )
, last_update_date = l_sysdate
, last_updated_by = FND_GLOBAL.user_id
, last_update_login = FND_GLOBAL.conc_login_id
, request_id = DECODE(p_Item_Revision_rec.request_id, G_Miss_Num, null, null, request_id, p_Item_Revision_rec.request_id )
, program_application_id = DECODE(p_Item_Revision_rec.program_application_id, G_Miss_Num, null, null, program_application_id, p_Item_Revision_rec.program_application_id )
, program_id = DECODE(p_Item_Revision_rec.program_id, G_Miss_Num, null, null, program_id, p_Item_Revision_rec.program_id )
, program_update_date = DECODE(p_Item_Revision_rec.program_update_date, G_Miss_Date, null, null, program_update_date, p_Item_Revision_rec.program_update_date )
, object_version_number = nvl(object_version_number,0) + 1
, revision_label = DECODE(p_Item_Revision_rec.revision_label, G_Miss_Char, revision_label, null, revision_label, p_Item_Revision_rec.revision_label)
, revision_reason = DECODE(p_Item_Revision_rec.revision_reason, G_Miss_Char, null, null, revision_reason, p_Item_Revision_rec.revision_reason)
, lifecycle_id = l_lifecycle_id
, current_phase_id = l_current_phase_id
WHERE
inventory_item_id = p_Item_Revision_rec.inventory_item_id
AND organization_id = p_Item_Revision_rec.organization_id
AND (revision_id = p_Item_Revision_rec.revision_id or revision = p_Item_Revision_rec.revision)
AND nvl(object_version_number,0) = nvl(p_Item_Revision_rec.object_version_number,nvl(object_version_number,0))
RETURNING revision_id, object_version_number INTO G_revision_id, G_object_version_number;
SELECT userenv('LANG') INTO G_language_code FROM dual;
UPDATE mtl_item_revisions_TL
SET description = DECODE( p_Item_Revision_rec.description, G_Miss_Char, description, --Bug: 3055810 replaced NULL with G_Miss_Char
p_Item_Revision_rec.description)
, last_updated_by = G_User_Id
, last_update_date = l_sysdate
WHERE revision_id = G_revision_id
AND LANGUAGE = G_language_code;
INSERT INTO mtl_pending_item_status
( Inventory_Item_Id
, Organization_Id
, Status_code
, Effective_date
, Implemented_date
, Pending_flag
, Revision_Id
, lifecycle_id
, phase_id
, Created_By
, Creation_Date
, Last_Updated_By
, Last_Update_Date
, Last_Update_Login
)
VALUES
( p_Item_Revision_rec.Inventory_Item_Id
, p_Item_Revision_rec.Organization_Id
, NULL
, l_sysdate
, l_sysdate
, 'N'
, G_revision_id
, l_lifecycle_id
, l_current_phase_id
, G_User_Id
, l_sysdate
, G_User_Id
, l_sysdate
, G_Login_Id
);
Raise Event if Revision got Updated successfully */
IF (INSTR(NVL(p_process_control,'PLM_UI:N'),'PLM_UI:Y') = 0 ) THEN
-- Start 5208102: Supporting template for UDA's at revisions
IF l_apply_template THEN
Insert_Revision_UserAttr(p_organization_id => p_Item_Revision_rec.Organization_Id
,p_inventory_item_id => p_Item_Revision_rec.inventory_item_id
,p_revision_id => G_revision_id
,p_transaction_type => 'UPDATE'
,p_template_id => l_template_id);
,p_dml_type => 'UPDATE'
,p_inventory_item_id => p_Item_Revision_rec.Inventory_Item_Id
,p_organization_id => p_Item_Revision_rec.Organization_Id
,p_revision_id => p_Item_Revision_rec.revision_id);
Raise Event if Revision got Updated successfully */
-- Standard check of p_commit
IF FND_API.To_Boolean (p_commit) THEN
--INV_ITEM_MSG.Debug(Mctx, 'before COMMIT WORK');
ROLLBACK TO Update_Item_Revision_PUB;
ROLLBACK TO Update_Item_Revision_PUB;
ROLLBACK TO Update_Item_Revision_PUB;
END Update_Item_Revision;
SELECT object_version_number
FROM mtl_item_revisions_b
WHERE
inventory_item_id = p_inventory_item_id
AND organization_id = p_organization_id
AND revision = p_revision
FOR UPDATE NOWAIT;
Add_Message ('INV', 'INV_ITM_REVISION_REC_DELETED');
PROCEDURE Delete_Item_Revision
(
p_api_version IN NUMBER
, p_init_msg_list IN VARCHAR2 := FND_API.g_FALSE
, p_commit IN VARCHAR2 := FND_API.g_FALSE
, p_validation_level IN NUMBER := FND_API.g_VALID_LEVEL_FULL
, x_return_status OUT NOCOPY VARCHAR2
, x_msg_count OUT NOCOPY NUMBER
, x_msg_data OUT NOCOPY VARCHAR2
, p_inventory_item_id IN NUMBER
, p_organization_id IN NUMBER
, p_revision IN VARCHAR2
, p_object_version_number IN NUMBER
)
IS
l_api_name CONSTANT VARCHAR2(30) := 'Delete_Item_Revision';
SAVEPOINT Delete_Item_Revision_PUB;
Add_Message ('INV', 'INV_ITM_REVISION_REC_DELETED');
DELETE FROM mtl_item_revisions_b
WHERE
inventory_item_id = p_inventory_item_id
AND organization_id = p_organization_id
AND revision = p_revision
AND nvl(object_version_number,0) = nvl(p_object_version_number,0)
RETURNING revision_id, object_version_number INTO G_revision_id, G_object_version_number;
DELETE FROM mtl_item_revisions_TL
WHERE revision_id = G_revision_id;
DELETE FROM mtl_pending_item_status
WHERE inventory_item_id = p_inventory_item_id
AND organization_id = p_organization_id
AND revision_id = G_revision_id;
ROLLBACK TO Delete_Item_Revision_PUB;
ROLLBACK TO Delete_Item_Revision_PUB;
ROLLBACK TO Delete_Item_Revision_PUB;
END Delete_Item_Revision;
l_item_revision_rec.transaction_type := Bom_Globals.G_OPR_UPDATE;
Bom_Globals.G_OPR_UPDATE,
Bom_Globals.G_OPR_DELETE) THEN
Add_Message ('INV', 'INV_INVALID_TRANS_TYPE');
Bom_Globals.G_OPR_UPDATE)
THEN
l_item_revision_rec.inventory_item_id := p_inventory_item_id;
ELSIF l_item_revision_rec.transaction_type = Bom_Globals.G_OPR_UPDATE
THEN
--dbms_output.put_line('Calling Update ...');
select 1
into l_inherit
from mtl_item_revisions_b
where revision_id = p_revision_id
and effectivity_date <> p_effectivity_date;
Update_Item_Revision
(
p_api_version => 1.0
, p_init_msg_list => FND_API.G_TRUE
, x_return_status => x_return_status
, x_msg_count => x_msg_count
, x_msg_data => l_msg_data
, p_Item_Revision_rec => l_item_revision_rec
, p_process_control => p_process_control
);
Delete_Item_Revision
(
p_api_version => 1.0
, p_init_msg_list => FND_API.G_TRUE
, x_return_status => x_return_status
, x_msg_count => x_msg_count
, x_msg_data => l_msg_data
, p_inventory_item_id => p_inventory_item_id
, p_organization_id => p_organization_id
, p_revision => p_revision
, p_object_version_number => p_object_version_number
);