[Home] [Help]
PACKAGE BODY: APPS.IBC_RENDITIONS_PKG
Source
1 PACKAGE BODY Ibc_Renditions_Pkg AS
2 /* $Header: ibctrenb.pls 120.2 2005/07/29 15:06:15 appldev ship $ */
3
4
5 -- MODIFICATION HISTORY
6 -- Person Date Comments
7 -- --------- ------ ------------------------------------------
8 -- vicho 11/05/2002 Remove G_MISS defaulting on UPDATE_ROW
9 -- SHARMA 07/04/2005 Modified LOAD_ROW, TRANSLATE_ROW and created
10 -- LOAD_SEED_ROW for R12 LCT standards bug 4411674
11
12
13 PROCEDURE INSERT_ROW (
14 Px_rowid IN OUT NOCOPY VARCHAR2,
15 Px_RENDITION_ID IN OUT NOCOPY NUMBER,
16 P_OBJECT_VERSION_NUMBER IN NUMBER,
17 P_LANGUAGE IN VARCHAR2,
18 P_FILE_ID IN NUMBER,
19 P_FILE_NAME IN VARCHAR2,
20 P_CITEM_VERSION_ID IN NUMBER,
21 P_mime_type IN VARCHAR2,
22 p_CREATION_DATE IN DATE,
23 p_CREATED_BY IN NUMBER,
24 p_LAST_UPDATE_DATE IN DATE,
25 p_LAST_UPDATED_BY IN NUMBER,
26 p_LAST_UPDATE_LOGIN IN NUMBER
27 ) IS
28 CURSOR C IS SELECT ROWID FROM IBC_RENDITIONS
29 WHERE RENDITION_ID = Px_RENDITION_ID;
30 CURSOR c2 IS SELECT ibc_renditions_s1.NEXTVAL FROM dual;
31 BEGIN
32
33 -- Primary key validation check
34
35 IF ((Px_RENDITION_ID IS NULL) OR
36 (Px_RENDITION_ID = Fnd_Api.G_MISS_NUM))
37 THEN
38 OPEN c2;
39 FETCH c2 INTO px_rendition_ID;
40 CLOSE c2;
41 END IF;
42
43 INSERT INTO IBC_RENDITIONS (
44 FILE_ID,
45 FILE_NAME,
46 mime_type,
47 RENDITION_ID,
48 CITEM_VERSION_ID,
49 LANGUAGE,
50 object_version_number,
51 CREATION_DATE,
52 CREATED_BY,
53 LAST_UPDATE_DATE,
54 LAST_UPDATED_BY,
55 LAST_UPDATE_LOGIN
56 ) VALUES (
57 P_FILE_ID,
58 P_FILE_NAME,
59 p_mime_type,
60 Px_RENDITION_ID,
61 P_CITEM_VERSION_ID,
62 p_LANGUAGE,
63 DECODE(p_object_version_number,NULL,1,p_object_version_number),
64 DECODE(p_creation_date, NULL, SYSDATE,
65 p_creation_date),
66 DECODE(p_created_by, NULL, Fnd_Global.user_id, p_created_by),
67 DECODE(p_last_update_date, NULL, SYSDATE,
68 p_last_update_date),
69 DECODE(p_last_updated_by,
70 NULL, Fnd_Global.user_id, p_last_updated_by),
71 DECODE(p_last_update_login,
72 NULL, Fnd_Global.login_id, p_last_update_login)
73 );
74
75 OPEN c;
76 FETCH c INTO Px_rowid;
77 IF (c%NOTFOUND) THEN
78 CLOSE c;
79 RAISE NO_DATA_FOUND;
80 END IF;
81 CLOSE c;
82
83 END INSERT_ROW;
84
85 PROCEDURE LOCK_ROW (
86 P_RENDITION_ID IN NUMBER,
87 P_OBJECT_VERSION_NUMBER IN NUMBER,
88 P_FILE_ID IN NUMBER,
89 P_FILE_NAME IN VARCHAR2,
90 P_CITEM_VERSION_ID IN NUMBER,
91 P_mime_type IN VARCHAR2
92 ) IS
93 CURSOR c IS SELECT
94 OBJECT_VERSION_NUMBER,
95 FILE_ID,
96 FILE_NAME,
97 CITEM_VERSION_ID
98 FROM IBC_RENDITIONS
99 WHERE RENDITION_ID = P_RENDITION_ID
100 FOR UPDATE OF RENDITION_ID NOWAIT;
101 recinfo c%ROWTYPE;
102
103 BEGIN
104 OPEN c;
105 FETCH c INTO recinfo;
106 IF (c%NOTFOUND) THEN
107 CLOSE c;
108 Fnd_Message.set_name('FND', 'FORM_RECORD_DELETED');
109 App_Exception.raise_exception;
110 END IF;
111 CLOSE c;
112 IF ( (recinfo.OBJECT_VERSION_NUMBER = P_OBJECT_VERSION_NUMBER)
113 AND (recinfo.FILE_ID = P_FILE_ID)
114 AND ((recinfo.FILE_NAME = P_FILE_NAME)
115 OR ((recinfo.FILE_NAME IS NULL) AND (P_FILE_NAME IS NULL)))
116 AND (recinfo.CITEM_VERSION_ID = P_CITEM_VERSION_ID)
117 ) THEN
118 NULL;
119 ELSE
120 Fnd_Message.set_name('FND', 'FORM_RECORD_CHANGED');
121 App_Exception.raise_exception;
122 END IF;
123
124 END LOCK_ROW;
125
126 PROCEDURE UPDATE_ROW (
127 P_RENDITION_ID IN NUMBER,
128 P_OBJECT_VERSION_NUMBER IN NUMBER,
129 P_LANGUAGE IN VARCHAR2,
130 P_FILE_ID IN NUMBER,
131 P_FILE_NAME IN VARCHAR2,
132 P_CITEM_VERSION_ID IN NUMBER,
133 P_mime_type IN VARCHAR2,
134 P_LAST_UPDATE_DATE IN DATE,
135 P_LAST_UPDATED_BY IN NUMBER,
136 P_LAST_UPDATE_LOGIN IN NUMBER
137 ) IS
138 BEGIN
139 UPDATE IBC_RENDITIONS SET
140 FILE_ID = DECODE(P_FILE_ID,NULL,FILE_ID,P_FILE_ID),
141 FILE_NAME = DECODE(P_FILE_NAME,NULL,FILE_NAME,P_FILE_NAME),
142 MIME_TYPE = DECODE(P_MIME_TYPE,NULL,MIME_TYPE,P_MIME_TYPE),
143 CITEM_VERSION_ID = DECODE(P_CITEM_VERSION_ID,NULL,CITEM_VERSION_ID,P_CITEM_VERSION_ID),
144 LANGUAGE = DECODE(P_LANGUAGE,NULL,LANGUAGE,P_LANGUAGE),
145 object_version_number = object_version_number + 1,
146 last_update_date = DECODE(p_last_update_date,
147 NULL, SYSDATE, p_last_update_date),
148 last_updated_by = DECODE(p_last_updated_by, NULL, Fnd_Global.user_id,
149 p_last_updated_by),
150 last_update_login = DECODE(p_last_update_login, NULL, Fnd_Global.login_id,
151 p_last_update_login)
152 WHERE RENDITION_ID = P_RENDITION_ID
153 AND object_version_number = DECODE(p_object_version_number,
154 NULL,object_version_number,
155 p_object_version_number);
156
157 IF (SQL%NOTFOUND) THEN
158 RAISE NO_DATA_FOUND;
159 END IF;
160
161 END UPDATE_ROW;
162
163 PROCEDURE DELETE_ROW (
164 P_RENDITION_ID IN NUMBER
165 ) IS
166 BEGIN
167
168 DELETE FROM IBC_RENDITIONS
169 WHERE RENDITION_ID = P_RENDITION_ID;
170
171 IF (SQL%NOTFOUND) THEN
172 RAISE NO_DATA_FOUND;
173 END IF;
174 END DELETE_ROW;
175
176
177
178 PROCEDURE LOAD_ROW (
179 P_UPLOAD_MODE IN VARCHAR2,
180 P_RENDITION_ID IN NUMBER,
181 P_LANGUAGE IN VARCHAR2,
182 P_FILE_ID IN NUMBER,
183 P_FILE_NAME IN VARCHAR2,
184 P_CITEM_VERSION_ID IN NUMBER,
185 P_mime_type IN VARCHAR2,
186 p_OWNER IN VARCHAR2,
187 p_LAST_UPDATE_DATE IN VARCHAR2) IS
188
189 l_user_id NUMBER := 0;
190 lx_row_id VARCHAR2(240);
191 lx_rendition_id NUMBER := p_rendition_id;
192 l_FILE_NAME VARCHAR2(100) := p_file_name;
193
194 l_last_update_date DATE;
195
196 db_user_id NUMBER := 0;
197 db_last_update_date DATE;
198
199 BEGIN
200 --get last updated by user id
201 l_user_id := FND_LOAD_UTIL.OWNER_ID(p_OWNER);
202
203 --translate data type VARCHAR2 to DATE for last_update_date
204 l_last_update_date := nvl(TO_DATE(p_last_update_date, 'YYYY/MM/DD'),SYSDATE);
205
206 -- get updatedby and update_date values if existing in db
207 SELECT LAST_UPDATED_BY, LAST_UPDATE_DATE INTO db_user_id, db_last_update_date
208 FROM IBC_RENDITIONS
209 WHERE RENDITION_ID = P_RENDITION_ID;
210
211
212 IF l_file_name IS NULL THEN
213 SELECT attachment_file_name
214 INTO l_FILE_NAME
215 FROM ibc_citem_versions_tl
216 WHERE attachment_file_id=p_file_id
217 AND ROWNUM=1;
218 END IF;
219
220 IF (FND_LOAD_UTIL.UPLOAD_TEST(l_user_id, l_last_update_date,
221 db_user_id, db_last_update_date, p_upload_mode )) THEN
222 UPDATE_ROW (
223 P_RENDITION_ID => p_RENDITION_ID
224 ,P_OBJECT_VERSION_NUMBER => NULL
225 ,P_LANGUAGE => p_LANGUAGE
226 ,P_FILE_ID => p_FILE_ID
227 ,P_FILE_NAME => l_FILE_NAME
228 ,P_CITEM_VERSION_ID => p_CITEM_VERSION_ID
229 ,P_mime_type => p_mime_type
230 ,P_LAST_UPDATE_DATE => SYSDATE
231 ,P_LAST_UPDATED_BY => l_user_id
232 ,P_LAST_UPDATE_LOGIN => 0
233 );
234 END IF;
235
236 EXCEPTION
237 WHEN NO_DATA_FOUND THEN
238 INSERT_ROW (
239 Px_rowid => lx_row_id
240 ,Px_RENDITION_ID => lx_rendition_id
241 ,P_OBJECT_VERSION_NUMBER => 1
242 ,P_LANGUAGE => P_LANGUAGE
243 ,P_FILE_ID => p_FILE_ID
244 ,P_FILE_NAME => l_FILE_NAME
245 ,P_CITEM_VERSION_ID => P_CITEM_VERSION_ID
246 ,P_mime_type => p_mime_type
247 ,p_CREATION_DATE => SYSDATE
248 ,p_CREATED_BY => l_user_id
249 ,p_LAST_UPDATE_DATE => SYSDATE
250 ,p_LAST_UPDATED_BY => l_user_id
251 ,p_LAST_UPDATE_LOGIN => 0
252 );
253
254 END LOAD_ROW;
255
256 PROCEDURE LOAD_SEED_ROW (
257 P_UPLOAD_MODE IN VARCHAR2,
258 P_RENDITION_ID IN NUMBER,
259 P_LANGUAGE IN VARCHAR2,
260 P_FILE_ID IN NUMBER,
261 P_FILE_NAME IN VARCHAR2,
262 P_CITEM_VERSION_ID IN NUMBER,
263 P_mime_type IN VARCHAR2,
264 p_OWNER IN VARCHAR2,
265 p_LAST_UPDATE_DATE IN VARCHAR2
266 ) IS
267 BEGIN
268 IF (p_UPLOAD_MODE = 'NLS') THEN
269 NULL;
270 ELSE
271 Ibc_Renditions_Pkg.LOAD_ROW(
272 P_UPLOAD_MODE => P_UPLOAD_MODE,
273 P_RENDITION_ID => P_RENDITION_ID,
274 P_LANGUAGE => P_LANGUAGE,
275 P_FILE_ID => P_FILE_ID,
276 P_FILE_NAME => P_FILE_NAME,
277 P_CITEM_VERSION_ID => P_CITEM_VERSION_ID,
278 P_mime_type => P_mime_type,
279 p_OWNER => p_OWNER,
280 p_LAST_UPDATE_DATE => p_LAST_UPDATE_DATE
281 );
282
283 END IF;
284
285 END LOAD_SEED_ROW;
286
287
288 END Ibc_Renditions_Pkg;