DBA Data[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;