DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_WEB_CITEM_ASSOC_PKG

Source


1 PACKAGE BODY AMS_WEB_CITEM_ASSOC_PKG as
2 /* $Header: amstwmpb.pls 120.0 2005/07/01 03:56:14 appldev noship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --        AMS_WEB_CITEM_ASSOC_PKG
7 -- Purpose
8 --		Table api to insert/update/delete WebPlanner Citems Associations..
9 -- History
10 --      10-May-2005    sikalyan     Created.
11 -- NOTE
12 --
13 -- End of Comments
14 -- ===============================================================
15 
16 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AMS_WEB_CITEM_ASSOC_PKG';
17 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amstwmpb.pls';
18 
19 --  ========================================================
20 --
21 --  NAME
22 --  		createInsertBody
23 --  PURPOSE
24 --		 Table Api to insert WebPlanner Citems Associations
25 --  NOTES
26 --
27 --  HISTORY
28 --
29 --  ========================================================
30 AMS_DEBUG_HIGH_ON constant boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
31 AMS_DEBUG_LOW_ON constant boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
32 AMS_DEBUG_MEDIUM_ON constant boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
33 
34 PROCEDURE Insert_Row(
35           px_placement_citem_id   IN OUT NOCOPY NUMBER,
36           p_placement_mp_id    NUMBER,
37           p_content_item_id    NUMBER,
38           p_citem_version_id    NUMBER,
39           p_created_by    NUMBER,
40           p_creation_date    DATE,
41           p_last_updated_by    NUMBER,
42           p_last_update_date    DATE,
43           p_last_update_login    NUMBER,
44           px_object_version_number   IN OUT NOCOPY NUMBER,
45           p_return_status          OUT NOCOPY VARCHAR2,
46           p_msg_count             OUT  NOCOPY  NUMBER,
47           p_msg_data                OUT  NOCOPY  VARCHAR2
48           )
49 
50 IS
51    x_rowid    VARCHAR2(30);
52 
53 BEGIN
54 
55 
56    px_object_version_number := 1;
57 
58 
59    INSERT INTO ams_web_plce_citem_assoc(
60           placement_citem_id,
61           placement_mp_id,
62           content_item_id,
63           citem_version_id,
64           created_by,
65           creation_date,
66           last_updated_by,
67           last_update_date,
68           last_update_login,
69           object_version_number
70    ) VALUES (
71            DECODE( px_placement_citem_id, FND_API.g_miss_num, NULL, px_placement_citem_id),
72            DECODE( p_placement_mp_id, FND_API.g_miss_num, NULL, p_placement_mp_id),
73            DECODE( p_content_item_id, FND_API.g_miss_num, NULL, p_content_item_id),
74            DECODE( p_citem_version_id, FND_API.g_miss_num, NULL, p_citem_version_id),
75            DECODE( p_created_by, FND_API.g_miss_num, NULL, p_created_by),
76            DECODE( p_creation_date, FND_API.g_miss_date, NULL, p_creation_date),
77            DECODE( p_last_updated_by, FND_API.g_miss_num, NULL, p_last_updated_by),
78            DECODE( p_last_update_date, FND_API.g_miss_date, NULL, p_last_update_date),
79            DECODE( p_last_update_login, FND_API.g_miss_num, NULL, p_last_update_login),
80            DECODE( px_object_version_number, FND_API.g_miss_num, NULL, px_object_version_number));
81 
82 
83 END Insert_Row;
84 
85 
86 --  ========================================================
87 --
88 --  NAME
89 --  		createUpdateBody
90 --  PURPOSE
91 --		Table api to WebPlanner Citems Associations.
92 --  NOTES
93 --
94 --  HISTORY
95 --
96 --  ========================================================
97 
98 PROCEDURE  Update_Row(
99           p_placement_citem_id  NUMBER,
100           p_placement_mp_id    NUMBER,
101           p_content_item_id    NUMBER,
102           p_citem_version_id    NUMBER,
103           p_created_by    NUMBER,
104           p_creation_date    DATE,
105           p_last_updated_by   NUMBER,
106           p_last_update_date  DATE,
107           p_last_update_login    NUMBER,
108           p_object_version_number    NUMBER
109 	  )
110 	IS
111 	BEGIN
112 
113 	   IF (AMS_DEBUG_HIGH_ON) THEN
114 	      AMS_UTILITY_PVT.debug_message('table handler : before update p_placement_citem_id =' || p_placement_citem_id );
115 	   END IF;
116 
117 
118 	    UPDATE ams_web_plce_citem_assoc
119 	    SET
120               last_update_date = DECODE( p_last_update_date, FND_API.g_miss_date, last_update_date, p_last_update_date),
121               last_updated_by = DECODE( p_last_updated_by, FND_API.g_miss_num, last_updated_by, p_last_updated_by),
122               last_update_login = DECODE( p_last_update_login, FND_API.g_miss_num, last_update_login, p_last_update_login),
123 	      placement_mp_id = DECODE( p_placement_mp_id, FND_API.g_miss_num, NULL, p_placement_mp_id),
124 	      content_item_id = DECODE( p_content_item_id, FND_API.g_miss_num, NULL, p_content_item_id),
125               citem_version_id = DECODE( p_citem_version_id, FND_API.g_miss_num, NULL, p_citem_version_id)
126 	   WHERE placement_citem_id = p_placement_citem_id;
127 
128 	   IF (SQL%NOTFOUND) THEN
129 		RAISE no_data_found;
130 	   END IF;
131 
132 
133 END Update_Row;
134 
135 
136 --  ========================================================
137 --
138 --  NAME
139 --  		createDeleteBody
140 --  PURPOSE
141 --		Table api to delete WebPlanner Citems Associations.
142 --  NOTES
143 --
144 --  HISTORY
145 --
146 --  ========================================================
147 PROCEDURE Delete_Row(
148     p_placement_citem_id  NUMBER,
149     p_object_version_number NUMBER)
150  IS
151 BEGIN
152    IF (AMS_DEBUG_HIGH_ON) THEN
153 
154    AMS_UTILITY_PVT.debug_message('table handler : before delete of b; placement_citem_id = ' || p_placement_citem_id || ' object_version_num = ' || p_object_version_number);
155    END IF;
156    DELETE FROM ams_web_plce_citem_assoc
157    WHERE placement_citem_id = p_placement_citem_id
158    AND   object_version_number = p_object_version_number;
159 
160    IF (AMS_DEBUG_HIGH_ON) THEN
161 
162 
163 
164    AMS_UTILITY_PVT.debug_message('table handler : After delete of b; placement_citem_id = ' || p_placement_citem_id || ' object_version_num = ' || p_object_version_number);
165 
166    END IF;
167 
168    If (SQL%NOTFOUND) then
169 		RAISE no_data_found;
170    End If;
171 
172 
173 END Delete_Row ;
174 
175 --  ========================================================
176 --
177 --  NAME
178 --  	createLockBody
179 --
180 --  PURPOSE
181 --	Table api to lock  WebPlanner Citems Associations.  .
182 --
183 --  NOTES
184 --
185 --  HISTORY
186 --
187 --  ========================================================
188 PROCEDURE Lock_Row(
189           p_placement_citem_id    NUMBER,
190           p_placement_mp_id    NUMBER,
191           p_content_item_id    NUMBER,
192           p_citem_version_id    NUMBER,
193           p_created_by    NUMBER,
194           p_creation_date    DATE,
195           p_last_updated_by    NUMBER,
196           p_last_update_date    DATE,
197           p_last_update_login    NUMBER,
198           p_object_version_number    NUMBER
199 )
200 
201  IS
202    CURSOR C IS
203         SELECT *
204          FROM ams_web_plce_citem_assoc
205         WHERE PLACEMENT_CITEM_ID =  p_placement_citem_id
206         FOR UPDATE of PLACEMENT_CITEM_ID NOWAIT;
207    Recinfo C%ROWTYPE;
208  BEGIN
209     OPEN c;
210     FETCH c INTO Recinfo;
211     If (c%NOTFOUND) then
212         CLOSE c;
213         FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
214         APP_EXCEPTION.RAISE_EXCEPTION;
215     END IF;
216     CLOSE C;
217     IF (
218           ( Recinfo.placement_citem_id = p_placement_citem_id)
219 
220        AND  ( (  Recinfo.placement_mp_id = p_placement_mp_id )
221            OR ( (  Recinfo.placement_mp_id IS NULL )
222        AND (  p_placement_mp_id IS NULL )))
223 
224          AND (    ( Recinfo.content_item_id = p_content_item_id)
225             OR (    ( Recinfo.content_item_id IS NULL )
226        AND (  p_content_item_id IS NULL )))
227 
228        AND (    ( Recinfo.citem_version_id = p_citem_version_id)
229             OR (    ( Recinfo.citem_version_id IS NULL )
230        AND (  p_citem_version_id IS NULL )))
231 
232         AND (    ( Recinfo.created_by = p_created_by)
233             OR (    ( Recinfo.created_by IS NULL )
234                 AND (  p_created_by IS NULL )))
235        AND (    ( Recinfo.creation_date = p_creation_date)
236             OR (    ( Recinfo.creation_date IS NULL )
237                 AND (  p_creation_date IS NULL )))
238        AND (    ( Recinfo.last_updated_by = p_last_updated_by)
239             OR (    ( Recinfo.last_updated_by IS NULL )
240                 AND (  p_last_updated_by IS NULL )))
241        AND (    ( Recinfo.last_update_date = p_last_update_date)
242             OR (    ( Recinfo.last_update_date IS NULL )
243                 AND (  p_last_update_date IS NULL )))
244        AND (    ( Recinfo.last_update_login = p_last_update_login)
245             OR (    ( Recinfo.last_update_login IS NULL )
246                 AND (  p_last_update_login IS NULL )))
247        AND (    ( Recinfo.object_version_number = p_object_version_number)
248             OR (    ( Recinfo.object_version_number IS NULL )
249                 AND (  p_object_version_number IS NULL )))
250        ) THEN
251        RETURN;
252    ELSE
253        FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_CHANGED');
254        APP_EXCEPTION.RAISE_EXCEPTION;
255    END IF;
256 END Lock_Row;
257 
258 
259 PROCEDURE load_row (
260      x_placement_citem_id   IN NUMBER,
261          x_placement_mp_id  IN  NUMBER,
262          x_content_item_id  IN  NUMBER,
263          x_citem_version_id  IN  NUMBER,
264          x_p_created_by   IN NUMBER,
265          x_p_creation_date  IN  DATE,
266          x_p_last_updated_by  IN  NUMBER,
267          x_p_last_update_date  IN  DATE,
268          x_p_last_update_login  IN  NUMBER,
269          x_p_object_version_number   IN NUMBER,
270 	  x_owner               IN VARCHAR2,
271 	 x_custom_mode IN VARCHAR2
272 )
273 IS
274    l_user_id      number :=1;
275    l_obj_verno    number;
276    l_dummy_char   varchar2(1);
277    l_row_id       varchar2(100);
278    l_placement_citem_id     number;
279    l_db_luby_id   number;
280     l_return_status    varchar2(100);
281     l_msg_count        number;
282     l_msg_data   varchar2(100);
283 
284      cursor c_db_data_details is
285      select last_updated_by, nvl(object_version_number,1)
286      from ams_web_plce_citem_assoc
287      where placement_citem_id =  x_placement_citem_id;
288 
289    cursor c_chk_plce_citem_id_exists is
290      select 'x'
291      from   ams_web_plce_citem_assoc
292      where placement_citem_id =  x_placement_citem_id;
293 
294    cursor c_get_placement_citem_id is
295       select ams_web_plce_citem_assoc_s.nextval
296       from dual;
297 BEGIN
298    if X_OWNER = 'SEED' then
299       l_user_id := 1;
300 elsif X_OWNER = 'ORACLE' then
301       l_user_id := 2;
302    elsif X_OWNER = 'SYSADMIN' then
303       l_user_id := 0;
304    end if;
305 
306    open c_chk_plce_citem_id_exists;
307    fetch c_chk_plce_citem_id_exists into l_dummy_char;
308    if c_chk_plce_citem_id_exists%notfound THEN
309       if x_placement_citem_id is null then
310          open c_get_placement_citem_id;
311          fetch c_get_placement_citem_id into l_placement_citem_id;
312          close c_get_placement_citem_id;
313       else
314          l_placement_citem_id := x_placement_citem_id;
315       end if;
316       l_obj_verno := 1;
317 
318       AMS_WEB_CITEM_ASSOC_PKG.Insert_Row (
319          px_placement_citem_id => l_placement_citem_id,
320 	 p_placement_mp_id   => x_placement_mp_id,
321          p_content_item_id  => x_content_item_id,
322          p_citem_version_id =>   x_citem_version_id,
323          p_created_by => l_user_id,
324          p_creation_date => SYSDATE,
325          p_last_updated_by => l_user_id,
326          p_last_update_date => SYSDATE,
327          p_last_update_login => 1,
328          px_object_version_number => l_obj_verno,
329 	 p_return_status       => l_return_status,
330 	 p_msg_count         => l_msg_count,
331 	 p_msg_data            => l_msg_data
332           );
333    else
334       open c_db_data_details;
335       fetch c_db_data_details into l_db_luby_id, l_obj_verno;
336       close c_db_data_details;
337 
338      if (l_db_luby_id IN (0, 1, 2) or NVL(x_custom_mode, 'PRESERVE')='FORCE')
339       then
340       AMS_WEB_CITEM_ASSOC_PKG.Update_Row (
341          p_placement_citem_id => l_placement_citem_id,
342 	 p_placement_mp_id   => x_placement_mp_id ,
343          p_content_item_id  => x_content_item_id,
344          p_citem_version_id =>   x_citem_version_id,
345          p_created_by => l_user_id,
346          p_creation_date => SYSDATE,
347          p_last_updated_by => l_user_id,
348          p_last_update_date => SYSDATE,
349          p_last_update_login => 1,
350          p_object_version_number => l_obj_verno
351       );
352       end if;
353    end if;
354    close c_chk_plce_citem_id_exists;
355 END load_row;
356 
357 END  AMS_WEB_CITEM_ASSOC_PKG;