The following lines contain the word 'select', 'insert', 'update' or 'delete':
/* description : Validation checks for before inserting */
/* new record as well before modification */
/* takes place */
/*---------------------------------------------------------*/
G_DEBUG VARCHAR2(1):=AHL_DEBUG_PUB.is_log_enabled;
P_DELETE_FLAG IN VARCHAR2 := 'N'
)
IS
--Cursor to select document status
CURSOR get_doc_status(c_doc_revision_id NUMBER)
IS
SELECT REVISION_STATUS_CODE,
OBSOLETE_DATE
FROM AHL_DOC_REVISIONS_B
WHERE DOC_REVISION_ID = c_doc_revision_id;
SELECT lookup_code
FROM FND_LOOKUP_VALUES_VL
WHERE lookup_code = c_aso_object_type_code
AND lookup_type = 'AHL_OBJECT_TYPE'
AND sysdate between start_date_active
AND nvl(end_date_active,sysdate);
SELECT document_id,
doc_revision_id,
use_latest_rev_flag,
aso_object_type_code,
aso_object_id
FROM AHL_DOC_TITLE_ASSOS_B
WHERE doc_title_asso_id = c_doc_title_asso_id;
SELECT 'X'
FROM AHL_DOCUMENTS_B
WHERE document_id = c_document_id;
SELECT document_no
FROM AHL_DOCUMENTS_B
WHERE document_id = c_document_id;
SELECT revision_no
FROM AHL_DOC_REVISIONS_B
WHERE DOC_REVISION_ID = c_doc_revision_id;
SELECT revision_status_code
FROM ahl_operations_b
WHERE operation_id = c_operation_id;
SELECT revision_status_code
FROM ahl_routes_b
WHERE route_id = c_route_id;
SELECT 'X'
FROM AHL_DOC_TITLE_ASSOS_B
WHERE aso_object_id = c_aso_object_id
AND aso_object_type_code = c_aso_object_type_code
AND document_id = c_document_id
AND nvl(doc_revision_id,0) = nvl(c_doc_revision_id,0);
IF p_delete_flag <> 'Y'
THEN
IF p_doc_title_asso_id IS NOT NULL AND p_doc_title_asso_id <> FND_API.G_MISS_NUM
THEN
OPEN get_doc_assos_rec_b_info(p_doc_title_asso_id);
/* procedure name: delete_association */
/* description :Removes the record from associations */
/* */
/*-------------------------------------------------------*/
PROCEDURE DELETE_ASSOCIATION
(
p_api_version IN NUMBER := 1.0 ,
p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE ,
p_validate_only IN VARCHAR2 := FND_API.G_TRUE ,
p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
p_association_rec IN association_rec ,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER ,
x_msg_data OUT NOCOPY VARCHAR2)
IS
--
CURSOR get_doc_assos_rec_b_info(c_doc_title_asso_id NUMBER)
IS
SELECT ROWID,
object_version_number
FROM AHL_DOC_TITLE_ASSOS_B
WHERE doc_title_asso_id = c_doc_title_asso_id
FOR UPDATE OF object_version_number NOWAIT;
l_api_name CONSTANT VARCHAR2(30) := 'DELETE_ASSOCIATION';
SAVEPOINT delete_association;
AHL_DEBUG_PUB.debug( 'enter ahl_di_asso_doc_aso_pvt.Delete Association','+DOBJASS+');
/* procedure name: AHL_DOC_TITLE_ASSOS_PKG.DELETE_ROW */
/* description : Added by Senthil to call Table Handler */
/* Date : Dec 31 2001 */
/*---------------------------------------------------------*/
-- Delete the record from document associations table and association Trans table
AHL_DOC_TITLE_ASSOS_PKG.DELETE_ROW(
X_DOC_TITLE_ASSO_ID => p_association_rec.doc_title_asso_id
);
DELETE FROM AHL_DOC_TITLE_ASSOS_B
WHERE doc_title_asso_id = p_association_rec.doc_title_asso_id;
DELETE FROM AHL_DOC_TITLE_ASSOS_TL
WHERE doc_title_asso_id = p_association_rec.doc_title_asso_id;
AHL_DEBUG_PUB.debug( 'End of private procedure Delete Association','+DOBJASS+');
ROLLBACK TO delete_association;
AHL_DEBUG_PUB.debug( 'ahl_di_asso_doc_aso_pvt.Delete Association','+DOBJASS+');
ROLLBACK TO delete_association;
AHL_DEBUG_PUB.debug( 'ahl_di_asso_doc_aso_pvt.Delete Association','+DOCJASS+');
ROLLBACK TO delete_association;
p_procedure_name => 'DELETE_ASSOCIATION',
p_error_text => SUBSTR(SQLERRM,1,240));
AHL_DEBUG_PUB.debug( 'ahl_di_asso_doc_aso_pvt.Delete Association','+DOCJASS+');
END DELETE_ASSOCIATION;
SELECT 'X'
FROM AHL_DOC_TITLE_ASSOS_B
WHERE aso_object_id = c_aso_object_id
AND aso_object_type_code = c_aso_object_type_code
AND document_id = c_document_id
AND nvl(doc_revision_id,0) = nvl(c_doc_revision_id,0);
SELECT 'X'
FROM AHL_DOC_TITLE_ASSOS_VL
WHERE aso_object_id = c_aso_object_id
AND aso_object_type_code = c_aso_object_type_code
AND document_id = c_document_id
AND nvl(doc_revision_id,0) = nvl(c_doc_revision_id,0)
AND nvl(chapter, '$#@1X') = nvl(c_chapter,'$#@1X')
AND nvl(section, '$#@1X') = nvl(c_section,'$#@1X')
AND nvl(subject, '$#@1X') = nvl(c_subject,'$#@1X')
AND nvl(page, '$#@1X') = nvl(c_page,'$#@1X')
AND nvl(figure, '$#@1X') = nvl(c_figure,'$#@1X');
SELECT document_no
FROM AHL_DOCUMENTS_B
WHERE document_id = c_document_id;
p_delete_flag => p_x_association_tbl(i).delete_flag
);
SELECT AHL_DOC_TITLE_ASSOS_B_S.Nextval INTO
l_doc_title_asso_id from DUAL;
/* procedure name: AHL_DOC_TITLE_ASSOS_PKG.INSERT_ROW */
/* description : Added by Senthil to call Table Handler */
/* Date : Dec 31 2001 */
/*---------------------------------------------------------*/
--Insert the record into doc title assos table and tranlations table
AHL_DOC_TITLE_ASSOS_PKG.INSERT_ROW(
X_ROWID => l_rowid,
X_DOC_TITLE_ASSO_ID => l_doc_title_asso_id,
X_SERIAL_NO => l_association_info.serial_no,
X_ATTRIBUTE_CATEGORY => l_association_info.attribute_category,
X_ATTRIBUTE1 => l_association_info.attribute1,
X_ATTRIBUTE2 => l_association_info.attribute2,
X_ATTRIBUTE3 => l_association_info.attribute3,
X_ATTRIBUTE4 => l_association_info.attribute4,
X_ATTRIBUTE5 => l_association_info.attribute5,
X_ATTRIBUTE6 => l_association_info.attribute6,
X_ATTRIBUTE7 => l_association_info.attribute7,
X_ATTRIBUTE8 => l_association_info.attribute8,
X_ATTRIBUTE9 => l_association_info.attribute9,
X_ATTRIBUTE10 => l_association_info.attribute10,
X_ATTRIBUTE11 => l_association_info.attribute11,
X_ATTRIBUTE12 => l_association_info.attribute12,
X_ATTRIBUTE13 => l_association_info.attribute13,
X_ATTRIBUTE14 => l_association_info.attribute14,
X_ATTRIBUTE15 => l_association_info.attribute15,
X_ASO_OBJECT_TYPE_CODE => p_x_association_tbl(i).aso_object_type_code,
X_SOURCE_REF_CODE => NULL,
X_ASO_OBJECT_ID => p_x_association_tbl(i).aso_object_id,
X_DOCUMENT_ID => p_x_association_tbl(i).document_id,
X_USE_LATEST_REV_FLAG => l_association_info.use_latest_rev_flag,
X_DOC_REVISION_ID => l_association_info.doc_revision_id,
X_OBJECT_VERSION_NUMBER => 1,
X_CHAPTER => l_association_info.chapter,
X_SECTION => l_association_info.section,
X_SUBJECT => l_association_info.subject,
X_FIGURE => l_association_info.figure,
X_PAGE => l_association_info.page,
X_NOTE => l_association_info.note,
X_CREATION_DATE => sysdate,
X_CREATED_BY => fnd_global.user_id,
X_LAST_UPDATE_DATE => sysdate,
X_LAST_UPDATED_BY => fnd_global.user_id,
X_LAST_UPDATE_LOGIN => fnd_global.login_id);
/* description : Update the existing association record*/
/* and removes the association record */
/* for an associated document */
/* */
/*------------------------------------------------------*/
PROCEDURE MODIFY_ASSOCIATION
(
p_api_version IN NUMBER := 1.0 ,
p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE ,
p_validate_only IN VARCHAR2 := FND_API.G_TRUE ,
p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
p_x_association_tbl IN OUT NOCOPY association_tbl ,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER ,
x_msg_data OUT NOCOPY VARCHAR2
)
IS
-- To get the existing record
CURSOR get_doc_assos_rec_b_info(c_doc_title_asso_id NUMBER)
IS
SELECT ROWID,
document_id,
doc_revision_id,
use_latest_rev_flag,
aso_object_type_code,
aso_object_id,
serial_no,
object_version_number,
attribute_category,
attribute1,
attribute2,
attribute3,
attribute4,
attribute5,
attribute6,
attribute7,
attribute8,
attribute9,
attribute10,
attribute11,
attribute12,
attribute13,
attribute14,
attribute15
FROM AHL_DOC_TITLE_ASSOS_B AAB
WHERE doc_title_asso_id = c_doc_title_asso_id
FOR UPDATE OF object_version_number NOWAIT;
SELECT chapter,
section,
subject,
page,
figure,
note
FROM AHL_DOC_TITLE_ASSOS_TL
WHERE doc_title_asso_id = c_doc_title_asso_id
FOR UPDATE OF doc_title_asso_id NOWAIT;
SELECT doc_title_asso_id
FROM AHL_DOC_TITLE_ASSOS_B
WHERE aso_object_id = c_aso_object_id
AND aso_object_type_code = c_aso_object_type_code
AND document_id = c_document_id
AND doc_revision_id = c_doc_revision_id;
SELECT doc_title_asso_id
FROM AHL_DOC_TITLE_ASSOS_VL
WHERE doc_title_asso_id <> c_doc_title_asso_id
AND aso_object_id = c_aso_object_id
AND aso_object_type_code = c_aso_object_type_code
AND document_id = c_document_id
AND nvl(doc_revision_id,0) = nvl(c_doc_revision_id,0)
AND nvl(chapter, '$#@1X') = nvl(c_chapter,'$#@1X')
AND nvl(section, '$#@1X') = nvl(c_section,'$#@1X')
AND nvl(subject, '$#@1X') = nvl(c_subject,'$#@1X')
AND nvl(page, '$#@1X') = nvl(c_page,'$#@1X')
AND nvl(figure, '$#@1X') = nvl(c_figure,'$#@1X');
SELECT document_no
FROM AHL_DOCUMENTS_B
WHERE document_id = c_document_id;
p_delete_flag => p_x_association_tbl(i).delete_flag
);
p_x_association_tbl(i).delete_flag = 'N'
THEN
-- The following conditions compare the new record value with old record
-- value, if its different then assign the new value else continue
-- This is a bug fix for lost update concurrent users are
-- updating same record...02/05/02
if (l_association_info.object_version_number <>p_x_association_tbl(i).object_version_number)
then
FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
/* procedure name: AHL_DOC_TITLE_ASSOS_PKG.UPDATE_ROW */
/* description : Added by Senthil to call Table Handler */
/* Date : Dec 31 2001 */
/*---------------------------------------------------------*/
-- Update doc title assos table and trans table
AHL_DOC_TITLE_ASSOS_PKG.UPDATE_ROW(
X_DOC_TITLE_ASSO_ID => p_x_association_tbl(i).doc_title_asso_id,
X_SERIAL_NO => l_association_info.serial_no,
X_ATTRIBUTE_CATEGORY => l_association_info.attribute_category,
X_ATTRIBUTE1 => l_association_info.attribute1,
X_ATTRIBUTE2 => l_association_info.attribute2,
X_ATTRIBUTE3 => l_association_info.attribute3,
X_ATTRIBUTE4 => l_association_info.attribute4,
X_ATTRIBUTE5 => l_association_info.attribute5,
X_ATTRIBUTE6 => l_association_info.attribute6,
X_ATTRIBUTE7 => l_association_info.attribute7,
X_ATTRIBUTE8 => l_association_info.attribute8,
X_ATTRIBUTE9 => l_association_info.attribute9,
X_ATTRIBUTE10 => l_association_info.attribute10,
X_ATTRIBUTE11 => l_association_info.attribute11,
X_ATTRIBUTE12 => l_association_info.attribute12,
X_ATTRIBUTE13 => l_association_info.attribute13,
X_ATTRIBUTE14 => l_association_info.attribute14,
X_ATTRIBUTE15 => l_association_info.attribute15,
X_ASO_OBJECT_TYPE_CODE => l_association_info.aso_object_type_code,
X_SOURCE_REF_CODE => NULL,
X_ASO_OBJECT_ID => l_association_info.aso_object_id,
X_DOCUMENT_ID => l_association_info.document_id,
X_USE_LATEST_REV_FLAG => l_association_info.use_latest_rev_flag,
X_DOC_REVISION_ID => l_association_info.doc_revision_id,
X_OBJECT_VERSION_NUMBER => l_association_info.object_version_number+1,
X_CHAPTER => l_association_tl_info.chapter,
X_SECTION => l_association_tl_info.section,
X_SUBJECT => l_association_tl_info.subject,
X_FIGURE => l_association_tl_info.figure,
X_PAGE => l_association_tl_info.page,
X_NOTE => l_association_tl_info.note,
X_LAST_UPDATE_DATE => sysdate,
X_LAST_UPDATED_BY => fnd_global.user_id,
X_LAST_UPDATE_LOGIN => fnd_global.login_id);
p_x_association_tbl(i).delete_flag = 'Y' )
THEN
DELETE_ASSOCIATION
( p_api_version => 1.0 ,
p_init_msg_list => FND_API.G_TRUE ,
p_commit => FND_API.G_FALSE ,
p_validate_only => FND_API.G_TRUE ,
p_validation_level => FND_API.G_VALID_LEVEL_FULL,
p_association_rec => p_x_association_tbl(i) ,
x_return_status => x_return_status ,
x_msg_count => x_msg_count ,
x_msg_data => x_msg_data);
PROCEDURE INSERT_ASSOC_REC
(
p_api_version IN NUMBER := 1.0 ,
p_init_msg_list IN VARCHAR2 := Fnd_Api.G_TRUE ,
p_commit IN VARCHAR2 := Fnd_Api.G_FALSE ,
p_validate_only IN VARCHAR2 := Fnd_Api.G_TRUE ,
p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
p_association_rec IN ahl_doc_title_assos_vl%ROWTYPE ,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER ,
x_msg_data OUT NOCOPY VARCHAR2)
IS
-- Used to check for duplicate records
CURSOR dup_rec(c_aso_object_type_code VARCHAR2,
c_aso_object_id NUMBER,
c_document_id NUMBER,
c_doc_revision_id NUMBER)
IS
SELECT 'X'
FROM AHL_DOC_TITLE_ASSOS_B
WHERE aso_object_id = c_aso_object_id
AND aso_object_type_code = c_aso_object_type_code
AND document_id = c_document_id
AND nvl(doc_revision_id,0) = NVL(c_doc_revision_id,0);
SELECT document_no
FROM AHL_DOCUMENTS_B
WHERE document_id = c_document_id;
l_api_name CONSTANT VARCHAR2(30) := 'INSERT_ASSOC_REC';
SAVEPOINT insert_assoc_rec;
AHL_DEBUG_PUB.debug( 'enter ahl_di_asso_doc_aso_pvt.Insert Assoc Rec','+DOBJASS+');
p_delete_flag => 'N'
);
SELECT AHL_DOC_TITLE_ASSOS_B_S.NEXTVAL INTO
l_doc_title_asso_id FROM DUAL;
/* procedure name: AHL_DOC_TITLE_ASSOS_PKG.INSERT_ROW */
/* description : Added by Senthil to call Table Handler */
/* Date : Dec 31 2001 */
/*---------------------------------------------------------*/
--Insert the record into doc title assos table and tranlations table
AHL_DOC_TITLE_ASSOS_PKG.INSERT_ROW(
X_ROWID => l_rowid,
X_DOC_TITLE_ASSO_ID => l_doc_title_asso_id,
X_SERIAL_NO => l_association_info.serial_no,
X_ATTRIBUTE_CATEGORY => l_association_info.attribute_category,
X_ATTRIBUTE1 => l_association_info.attribute1,
X_ATTRIBUTE2 => l_association_info.attribute2,
X_ATTRIBUTE3 => l_association_info.attribute3,
X_ATTRIBUTE4 => l_association_info.attribute4,
X_ATTRIBUTE5 => l_association_info.attribute5,
X_ATTRIBUTE6 => l_association_info.attribute6,
X_ATTRIBUTE7 => l_association_info.attribute7,
X_ATTRIBUTE8 => l_association_info.attribute8,
X_ATTRIBUTE9 => l_association_info.attribute9,
X_ATTRIBUTE10 => l_association_info.attribute10,
X_ATTRIBUTE11 => l_association_info.attribute11,
X_ATTRIBUTE12 => l_association_info.attribute12,
X_ATTRIBUTE13 => l_association_info.attribute13,
X_ATTRIBUTE14 => l_association_info.attribute14,
X_ATTRIBUTE15 => l_association_info.attribute15,
X_ASO_OBJECT_TYPE_CODE => p_association_rec.aso_object_type_code,
X_SOURCE_REF_CODE => NULL,
X_ASO_OBJECT_ID => p_association_rec.aso_object_id,
X_DOCUMENT_ID => p_association_rec.document_id,
X_USE_LATEST_REV_FLAG => l_association_info.use_latest_rev_flag,
X_DOC_REVISION_ID => l_association_info.doc_revision_id,
X_OBJECT_VERSION_NUMBER => 1,
X_CHAPTER => l_association_info.chapter,
X_SECTION => l_association_info.section,
X_SUBJECT => l_association_info.subject,
X_FIGURE => l_association_info.figure,
X_PAGE => l_association_info.page,
X_NOTE => l_association_info.note,
X_CREATION_DATE => sysdate,
X_CREATED_BY => fnd_global.user_id,
X_LAST_UPDATE_DATE => sysdate,
X_LAST_UPDATED_BY => fnd_global.user_id,
X_LAST_UPDATE_LOGIN => fnd_global.login_id);
ROLLBACK TO insert_assoc_rec;
AHL_DEBUG_PUB.debug( 'Ahl_Di_Asso_Doc_Aso_Pvt.INSERT Assoc Rec','+DOBJASS+');
ROLLBACK TO insert_assoc_rec;
AHL_DEBUG_PUB.debug( 'Ahl_Di_Asso_Doc_Aso_Pvt. INSERT Assoc Rec','+DOCJASS+');
ROLLBACK TO insert_assoc_rec;
p_procedure_name => 'INSERT_ASSOC_REC',
p_error_text => SUBSTR(SQLERRM,1,240));
AHL_DEBUG_PUB.debug( 'Ahl_Di_Asso_Doc_Aso_Pvt.INSERT Assoc Rec','+DOCJASS+');
END INSERT_ASSOC_REC;
/* and inserts new document record with */
/* associated aso object(when the association */
/* changed from old aso object to new aso object */
/* */
/*------------------------------------------------------*/
Procedure COPY_ASSOCIATION
(
p_api_version IN NUMBER := 1.0 ,
p_init_msg_list IN VARCHAR2 := Fnd_Api.G_TRUE ,
p_commit IN VARCHAR2 := Fnd_Api.G_FALSE ,
p_validate_only IN VARCHAR2 := Fnd_Api.G_TRUE ,
p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
p_from_object_id IN NUMBER,
p_from_object_type IN VARCHAR2,
p_to_object_id IN NUMBER,
p_to_object_type IN VARCHAR2,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER ,
x_msg_data OUT NOCOPY VARCHAR2)
IS
-- Retrives all the records for passed aso object
CURSOR get_assos_b_cur (c_object_id NUMBER,
c_object_type_code VARCHAR2)
IS
SELECT * FROM AHL_DOC_TITLE_ASSOS_VL
WHERE ASO_OBJECT_ID = c_object_id
AND ASO_OBJECT_TYPE_CODE = c_object_type_code;
SELECT ROWID INTO l_row_id
FROM ahl_doc_title_assos_b
WHERE doc_title_asso_id = l_association_rec.doc_title_asso_id
AND object_version_number
= l_association_rec.object_version_number
FOR UPDATE OF aso_object_id NOWAIT;
INSERT_ASSOC_REC
( p_api_version => 1.0 ,
p_init_msg_list => Fnd_Api.G_TRUE ,
p_commit => Fnd_Api.G_FALSE ,
p_validate_only => Fnd_Api.G_TRUE ,
p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
p_association_rec => l_association_rec ,
x_return_status => x_return_status ,
x_msg_count => x_msg_count ,
x_msg_data => x_msg_data);