The following lines contain the word 'select', 'insert', 'update' or 'delete':
x_last_update_date IN DATE ,
x_last_updated_by IN NUMBER ,
x_last_update_login IN NUMBER
) as
CURSOR cur_old_ref_values IS
SELECT *
FROM IGS_RU_DESCRIPTION
WHERE rowid = x_rowid;
IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
Close cur_old_ref_values;
Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
IGS_RU_GEN_006.SET_TOKEN('IGS_RU_DESCRIPTION : P_ACTION INSERT, VALIDATE_INSERT : IGSUI03B.PLS');
IF (p_action = 'UPDATE') THEN
new_references.creation_date := old_references.creation_date;
new_references.last_update_date := x_last_update_date;
new_references.last_updated_by := x_last_updated_by;
new_references.last_update_login := x_last_update_login;
PROCEDURE BeforeRowInsertUpdate1(
p_inserting IN BOOLEAN ,
p_updating IN BOOLEAN ,
p_deleting IN BOOLEAN
) as
v_message_name Varchar2(30);
IF p_inserting OR p_updating
THEN
-- validate return type and IGS_RU_RULE description
IF IGS_RU_VAL_RUD.rulp_val_rud_desc(
old_references.sequence_number,
old_references.s_return_type,
old_references.rule_description,
old_references.s_turin_function,
new_references.s_return_type,
new_references.rule_description,
v_message_name) = FALSE
THEN
Fnd_Message.Set_Name('IGS',v_message_name);
END BeforeRowInsertUpdate1;
PROCEDURE AfterRowUpdate2(
p_inserting IN BOOLEAN ,
p_updating IN BOOLEAN ,
p_deleting IN BOOLEAN
) as
--
-- if named IGS_RU_RULE then update IGS_RU_RULE text
-- else retry with parent IGS_RU_RULE
--
PROCEDURE do_rule_text (
p_rule_number NUMBER )
as
v_rule_text IGS_RU_NAMED_RULE.rule_text%TYPE;
SELECT rule_text
FROM IGS_RU_NAMED_RULE
WHERE rul_sequence_number = p_rule_number )
LOOP
-- if named IGS_RU_RULE then update IGS_RU_RULE text
v_rule_text := IGS_RU_GEN_006.RULP_GET_RULE(p_rule_number);-- Changed IGS_RU_GEN_003 to IGS_RU_GEN_006 As part of Seed Migration Build Bug :2233951. This approach is taken to resolve the release issues .
UPDATE IGS_RU_NAMED_RULE
SET rule_text = v_rule_text
WHERE rul_sequence_number = p_rule_number;
SELECT rul_sequence_number
FROM IGS_RU_ITEM
WHERE rule_number = p_rule_number )
LOOP
do_rule_text(rui.rul_sequence_number);
SELECT UNIQUE
rul_sequence_number
FROM IGS_RU_ITEM
WHERE turin_function = New_References.S_TURIN_FUNCTION )
LOOP
-- update the IGS_RU_RULE text of this named IGS_RU_RULE
do_rule_text(rui.rul_sequence_number);
SELECT UNIQUE
rui.rul_sequence_number
FROM IGS_RU_NAMED_RULE nr,
IGS_RU_ITEM rui
WHERE nr.rud_sequence_number = New_References.sequence_number
AND rui.named_rule = nr.rul_sequence_number )
LOOP
-- update the IGS_RU_RULE text of this named IGS_RU_RULE
do_rule_text(nr.rul_sequence_number);
END AfterRowUpdate2;
Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
SELECT rowid
FROM IGS_RU_DESCRIPTION
WHERE sequence_number = x_sequence_number
FOR UPDATE NOWAIT;
SELECT rowid
FROM IGS_RU_DESCRIPTION
WHERE s_return_type = x_s_return_type
AND rule_description = x_rule_description
AND (l_rowid is null or rowid <> l_rowid)
FOR UPDATE NOWAIT;
SELECT rowid
FROM IGS_RU_DESCRIPTION
WHERE s_return_type = x_s_return_type ;
SELECT rowid
FROM IGS_RU_DESCRIPTION
WHERE s_turin_function = x_s_turin_function ;
x_last_update_date IN DATE ,
x_last_updated_by IN NUMBER ,
x_last_update_login IN NUMBER
) as
BEGIN
Set_Column_Values (
p_action,
x_rowid,
x_sequence_number,
x_s_return_type,
x_rule_description,
x_s_turin_function,
x_parenthesis_ind,
x_description,
x_creation_date,
x_created_by,
x_last_update_date,
x_last_updated_by,
x_last_update_login
);
IF (p_action = 'INSERT') THEN
-- Call all the procedures related to Before Insert.
BeforeRowInsertUpdate1 ( p_inserting => TRUE, p_updating => FALSE, p_deleting => FALSE );
ELSIF (p_action = 'UPDATE') THEN
-- Call all the procedures related to Before Update.
BeforeRowInsertUpdate1 ( p_inserting => TRUE, p_updating => TRUE, p_deleting => FALSE );
ELSIF (p_action = 'DELETE') THEN
-- Call all the procedures related to Before Delete.
Check_Child_Existance;
ELSIF (p_action = 'VALIDATE_INSERT') THEN
IF Get_PK_For_Validation (
new_references.sequence_number
) THEN
Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
ELSIF (p_action = 'VALIDATE_UPDATE') THEN
check_uniqueness;
ELSIF (p_action = 'VALIDATE_DELETE') THEN
Check_Child_Existance;
IF (p_action = 'UPDATE') THEN
-- Call all the procedures related to After Update.
AfterRowUpdate2 ( p_inserting => FALSE, p_updating => TRUE ,p_deleting => FALSE);
procedure INSERT_ROW (
X_ROWID in out NOCOPY VARCHAR2,
X_SEQUENCE_NUMBER in NUMBER,
X_S_RETURN_TYPE in VARCHAR2,
X_RULE_DESCRIPTION in VARCHAR2,
X_DESCRIPTION in VARCHAR2,
X_S_TURIN_FUNCTION in VARCHAR2,
X_PARENTHESIS_IND in VARCHAR2,
X_MODE in VARCHAR2
) as
------------------------------------------------------------------
--Created by : nsinha, Oracle India
--Date created: 12-Mar-2001
--
--Purpose: INSERT_ROW
--
--Known limitations/enhancements and/or remarks:
--
--Change History:
--Who When What
--kdande 15-Mar-2002 Bug # 2233951: The cursor C is being modified and cursor
-- cur_max_plus_one is being created. This is to ensure that
-- when a user defined rule is created,
-- it picks up a sequence number more than 500000.
-- rnirwani - 15-Mar-02 - 2233951 the cursor has been changed to do a select for update
-- so that parallel processing can be prevented.
-------------------------------------------------------------------
l_sequence_number NUMBER;
cursor C is select ROWID from IGS_RU_DESCRIPTION
where SEQUENCE_NUMBER = L_SEQUENCE_NUMBER;
SELECT (a.sequence_number + 1) sequence_number
FROM igs_ru_description a
WHERE a.sequence_number = (SELECT MAX(b.sequence_number) FROM igs_ru_description b
WHERE b.sequence_number < 499999) FOR UPDATE OF a.sequence_number NOWAIT;
X_LAST_UPDATE_DATE DATE;
X_LAST_UPDATED_BY NUMBER;
X_LAST_UPDATE_LOGIN NUMBER;
X_LAST_UPDATE_DATE := SYSDATE;
X_LAST_UPDATED_BY := 1;
X_LAST_UPDATE_LOGIN := 0;
X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
if X_LAST_UPDATED_BY is NULL then
X_LAST_UPDATED_BY := -1;
X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
if X_LAST_UPDATE_LOGIN is NULL then
X_LAST_UPDATE_LOGIN := -1;
p_action=>'INSERT',
x_rowid=>X_ROWID,
x_description=>X_DESCRIPTION,
x_parenthesis_ind=>X_PARENTHESIS_IND,
x_rule_description=>X_RULE_DESCRIPTION,
x_s_return_type=>X_S_RETURN_TYPE,
x_s_turin_function=>X_S_TURIN_FUNCTION,
x_sequence_number=>X_SEQUENCE_NUMBER,
x_creation_date=>X_LAST_UPDATE_DATE,
x_created_by=>X_LAST_UPDATED_BY,
x_last_update_date=>X_LAST_UPDATE_DATE,
x_last_updated_by=>X_LAST_UPDATED_BY,
x_last_update_login=>X_LAST_UPDATE_LOGIN
);
insert into IGS_RU_DESCRIPTION (
SEQUENCE_NUMBER,
S_RETURN_TYPE,
RULE_DESCRIPTION,
DESCRIPTION,
S_TURIN_FUNCTION,
PARENTHESIS_IND,
CREATION_DATE,
CREATED_BY,
LAST_UPDATE_DATE,
LAST_UPDATED_BY,
LAST_UPDATE_LOGIN
) values (
l_sequence_number,
NEW_REFERENCES.S_RETURN_TYPE,
NEW_REFERENCES.RULE_DESCRIPTION,
NEW_REFERENCES.DESCRIPTION,
NEW_REFERENCES.S_TURIN_FUNCTION,
NEW_REFERENCES.PARENTHESIS_IND,
X_LAST_UPDATE_DATE,
X_LAST_UPDATED_BY,
X_LAST_UPDATE_DATE,
X_LAST_UPDATED_BY,
X_LAST_UPDATE_LOGIN
);
p_action => 'INSERT',
x_rowid => X_ROWID);
end INSERT_ROW;
cursor c1 is select
S_RETURN_TYPE,
RULE_DESCRIPTION,
DESCRIPTION,
S_TURIN_FUNCTION,
PARENTHESIS_IND
from IGS_RU_DESCRIPTION
where ROWID = X_ROWID for update nowait;
fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
procedure UPDATE_ROW (
X_ROWID in VARCHAR2,
X_SEQUENCE_NUMBER in NUMBER,
X_S_RETURN_TYPE in VARCHAR2,
X_RULE_DESCRIPTION in VARCHAR2,
X_DESCRIPTION in VARCHAR2,
X_S_TURIN_FUNCTION in VARCHAR2,
X_PARENTHESIS_IND in VARCHAR2,
X_MODE in VARCHAR2
)as
X_LAST_UPDATE_DATE DATE;
X_LAST_UPDATED_BY NUMBER;
X_LAST_UPDATE_LOGIN NUMBER;
X_LAST_UPDATE_DATE := SYSDATE;
X_LAST_UPDATED_BY := 1;
X_LAST_UPDATE_LOGIN := 0;
X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
if X_LAST_UPDATED_BY is NULL then
X_LAST_UPDATED_BY := -1;
X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
if X_LAST_UPDATE_LOGIN is NULL then
X_LAST_UPDATE_LOGIN := -1;
p_action=>'UPDATE',
x_rowid=>X_ROWID,
x_description=>X_DESCRIPTION,
x_parenthesis_ind=>X_PARENTHESIS_IND,
x_rule_description=>X_RULE_DESCRIPTION,
x_s_return_type=>X_S_RETURN_TYPE,
x_s_turin_function=>X_S_TURIN_FUNCTION,
x_sequence_number=>X_SEQUENCE_NUMBER,
x_creation_date=>X_LAST_UPDATE_DATE,
x_created_by=>X_LAST_UPDATED_BY,
x_last_update_date=>X_LAST_UPDATE_DATE,
x_last_updated_by=>X_LAST_UPDATED_BY,
x_last_update_login=>X_LAST_UPDATE_LOGIN
);
update IGS_RU_DESCRIPTION set
S_RETURN_TYPE = NEW_REFERENCES.S_RETURN_TYPE,
RULE_DESCRIPTION = NEW_REFERENCES.RULE_DESCRIPTION,
DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
S_TURIN_FUNCTION = NEW_REFERENCES.S_TURIN_FUNCTION,
PARENTHESIS_IND = NEW_REFERENCES.PARENTHESIS_IND,
LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
LAST_UPDATED_BY = X_LAST_UPDATED_BY,
LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
where ROWID = X_ROWID
;
p_action => 'UPDATE',
x_rowid => X_ROWID);
end UPDATE_ROW;
cursor c1 is select rowid from IGS_RU_DESCRIPTION
where SEQUENCE_NUMBER = X_SEQUENCE_NUMBER
;
INSERT_ROW (
X_ROWID,
X_SEQUENCE_NUMBER,
X_S_RETURN_TYPE,
X_RULE_DESCRIPTION,
X_DESCRIPTION,
X_S_TURIN_FUNCTION,
X_PARENTHESIS_IND,
X_MODE);
UPDATE_ROW (
X_ROWID,
X_SEQUENCE_NUMBER,
X_S_RETURN_TYPE,
X_RULE_DESCRIPTION,
X_DESCRIPTION,
X_S_TURIN_FUNCTION,
X_PARENTHESIS_IND,
X_MODE);
procedure DELETE_ROW (
X_ROWID in VARCHAR2
) as
begin
Before_DML (
p_action => 'DELETE',
x_rowid => X_ROWID);
delete from IGS_RU_DESCRIPTION
where ROWID = X_ROWID;
p_action => 'DELETE',
x_rowid => X_ROWID);
end DELETE_ROW;