[Home] [Help]
PACKAGE BODY: APPS.FUN_RULE_CRITERIA_PKG
Source
1 PACKAGE BODY FUN_RULE_CRITERIA_PKG AS
2 /*$Header: FUNXTMRULRCTTBB.pls 120.0 2005/06/20 04:30:01 ammishra noship $ */
3
4 PROCEDURE Insert_Row (
5 X_ROWID IN OUT NOCOPY VARCHAR2,
6 X_CRITERIA_ID IN NUMBER,
7 X_RULE_DETAIL_ID IN NUMBER,
8 X_CRITERIA_PARAM_ID IN NUMBER,
9 X_CONDITION IN VARCHAR2,
10 X_PARAM_VALUE IN VARCHAR2,
11 X_CASE_SENSITIVE_FLAG IN VARCHAR2,
12 X_CREATED_BY_MODULE IN VARCHAR2
13 ) IS
14
15 BEGIN
16
17 INSERT INTO FUN_RULE_CRITERIA (
18 CRITERIA_ID,
19 RULE_DETAIL_ID,
20 CRITERIA_PARAM_ID,
21 CONDITION,
22 PARAM_VALUE,
23 CASE_SENSITIVE_FLAG,
24 CREATED_BY,
25 CREATION_DATE,
26 LAST_UPDATE_LOGIN,
27 LAST_UPDATE_DATE,
28 LAST_UPDATED_BY,
29 OBJECT_VERSION_NUMBER,
30 CREATED_BY_MODULE
31 )
32 VALUES (
33 DECODE( X_CRITERIA_ID, NULL , FUN_RULE_CRITERIA_S.NEXTVAL , X_CRITERIA_ID),
34 DECODE( X_RULE_DETAIL_ID, FND_API.G_MISS_NUM, NULL, X_RULE_DETAIL_ID ),
35 DECODE( X_CRITERIA_PARAM_ID, FND_API.G_MISS_NUM, NULL, X_CRITERIA_PARAM_ID ),
36 DECODE( X_CONDITION, FND_API.G_MISS_CHAR, NULL, X_CONDITION ),
37 DECODE( X_PARAM_VALUE, FND_API.G_MISS_CHAR, NULL, X_PARAM_VALUE ),
38 DECODE( X_CASE_SENSITIVE_FLAG, FND_API.G_MISS_CHAR, NULL, X_CASE_SENSITIVE_FLAG ),
39 FUN_RULE_UTILITY_PKG.CREATED_BY,
40 FUN_RULE_UTILITY_PKG.CREATION_DATE,
41 FUN_RULE_UTILITY_PKG.LAST_UPDATE_LOGIN,
42 FUN_RULE_UTILITY_PKG.LAST_UPDATE_DATE,
43 FUN_RULE_UTILITY_PKG.LAST_UPDATED_BY,
44 1,
45 DECODE( X_CREATED_BY_MODULE, FND_API.G_MISS_CHAR, NULL, X_CREATED_BY_MODULE )
46 )RETURNING ROWID INTO X_ROWID;
47
48 END Insert_Row;
49
50 PROCEDURE Update_Row (
51 X_CRITERIA_ID IN NUMBER,
52 X_RULE_DETAIL_ID IN NUMBER,
53 X_CRITERIA_PARAM_ID IN NUMBER,
54 X_CONDITION IN VARCHAR2,
55 X_PARAM_VALUE IN VARCHAR2,
56 X_CASE_SENSITIVE_FLAG IN VARCHAR2,
57 X_CREATED_BY_MODULE IN VARCHAR2
58 ) IS
59
60 BEGIN
61
62 UPDATE FUN_RULE_CRITERIA SET
63 CRITERIA_PARAM_ID = DECODE( X_CRITERIA_PARAM_ID, FND_API.G_MISS_CHAR, NULL, NULL,CRITERIA_PARAM_ID, X_CRITERIA_PARAM_ID ),
64 CONDITION = X_CONDITION,
65
66 --Param Value can be NULL, we should not overwrite the value with old value if its not null.
67 PARAM_VALUE = DECODE( X_PARAM_VALUE, FND_API.G_MISS_CHAR, NULL, X_PARAM_VALUE ),
68
69 CASE_SENSITIVE_FLAG = DECODE( X_CASE_SENSITIVE_FLAG, FND_API.G_MISS_CHAR, NULL, NULL,CASE_SENSITIVE_FLAG, X_CASE_SENSITIVE_FLAG ),
70 CREATED_BY = FUN_RULE_UTILITY_PKG.CREATED_BY,
71 CREATION_DATE = FUN_RULE_UTILITY_PKG.CREATION_DATE,
72 LAST_UPDATE_LOGIN = FUN_RULE_UTILITY_PKG.LAST_UPDATE_LOGIN,
73 LAST_UPDATE_DATE = FUN_RULE_UTILITY_PKG.LAST_UPDATE_DATE,
74 LAST_UPDATED_BY = FUN_RULE_UTILITY_PKG.LAST_UPDATED_BY,
75 OBJECT_VERSION_NUMBER = OBJECT_VERSION_NUMBER + 1,
76 CREATED_BY_MODULE = DECODE( X_CREATED_BY_MODULE, FND_API.G_MISS_CHAR, NULL, NULL,CREATED_BY_MODULE, X_CREATED_BY_MODULE )
77 WHERE CRITERIA_ID = X_CRITERIA_ID;
78
79
80 EXCEPTION
81 WHEN NO_DATA_FOUND THEN
82 RAISE NO_DATA_FOUND;
83 END Update_Row;
84
85 PROCEDURE Lock_Row (
86 X_CRITERIA_ID IN NUMBER,
87 X_OBJECT_VERSION_NUMBER IN NUMBER
88 ) IS
89
90 CURSOR C IS
91 SELECT OBJECT_VERSION_NUMBER FROM FUN_RULE_CRITERIA
92 WHERE CRITERIA_ID = X_CRITERIA_ID
93 FOR UPDATE NOWAIT;
94 Recinfo C%ROWTYPE;
95
96 BEGIN
97
98 OPEN C;
99 FETCH C INTO Recinfo;
100 IF ( C%NOTFOUND ) THEN
101 CLOSE C;
102 FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
103 APP_EXCEPTION.RAISE_EXCEPTION;
104 END IF;
105 CLOSE C;
106
107 IF (
108 ( ( Recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER )
109 OR ( ( Recinfo.OBJECT_VERSION_NUMBER IS NULL )
110 AND ( X_OBJECT_VERSION_NUMBER IS NULL ) ) )
111 ) THEN
112 RETURN;
113 ELSE
114 FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
115 APP_EXCEPTION.RAISE_EXCEPTION;
116 END IF;
117
118 END Lock_Row;
119
120 PROCEDURE Select_Row (
121 X_CRITERIA_ID IN OUT NOCOPY NUMBER,
122 X_RULE_DETAIL_ID IN OUT NOCOPY NUMBER,
123 X_CRITERIA_PARAM_ID OUT NOCOPY NUMBER,
124 X_CONDITION OUT NOCOPY VARCHAR2,
125 X_PARAM_VALUE OUT NOCOPY VARCHAR2,
126 X_CASE_SENSITIVE_FLAG OUT NOCOPY VARCHAR2,
127 X_CREATED_BY_MODULE OUT NOCOPY VARCHAR2
128 ) IS
129
130 BEGIN
131
132 SELECT
133 NVL( CRITERIA_PARAM_ID, FND_API.G_MISS_NUM ),
134 NVL( CRITERIA_ID, FND_API.G_MISS_NUM ),
135 NVL( RULE_DETAIL_ID, FND_API.G_MISS_NUM ),
136 NVL( CONDITION, FND_API.G_MISS_CHAR ),
137 NVL( PARAM_VALUE, FND_API.G_MISS_CHAR ),
138 NVL( CASE_SENSITIVE_FLAG, FND_API.G_MISS_CHAR ),
139 NVL( CREATED_BY_MODULE, FND_API.G_MISS_CHAR )
140 INTO
141 X_CRITERIA_PARAM_ID,
142 X_CRITERIA_ID,
143 X_RULE_DETAIL_ID,
144 X_CONDITION,
145 X_PARAM_VALUE,
146 X_CASE_SENSITIVE_FLAG,
147 X_CREATED_BY_MODULE
148 FROM FUN_RULE_CRITERIA
149 WHERE CRITERIA_ID = X_CRITERIA_ID
150 AND ROWNUM = 1;
151
152
153 EXCEPTION
154 WHEN NO_DATA_FOUND THEN
155 FND_MESSAGE.SET_NAME( 'FUN', 'FUN_RULE_API_NO_RECORD' );
156 FND_MESSAGE.SET_TOKEN( 'RECORD', 'p_rule_criteria_rec');
157 FND_MESSAGE.SET_TOKEN( 'VALUE', X_CRITERIA_ID );
158 FND_MSG_PUB.ADD;
159 RAISE FND_API.G_EXC_ERROR;
160
161 END Select_Row;
162
163 PROCEDURE Delete_Row (
164 X_CRITERIA_ID IN NUMBER
165 ) IS
166
167 BEGIN
168
169 DELETE FUN_RULE_CRITERIA
170 WHERE CRITERIA_ID = X_CRITERIA_ID;
171
172 IF ( SQL%NOTFOUND ) THEN
173 RAISE NO_DATA_FOUND;
174 END IF;
175
176 END Delete_Row;
177
178 END FUN_RULE_CRITERIA_PKG;