1 package body WSH_ITM_PARAMETER_SETUPS_PKG as
2 /* $Header: WSHITTHB.pls 120.0.12010000.2 2010/05/25 08:32:39 gbhargav ship $ */
3 -- Global constant holding the package name
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'WSH_ITM_PARAMETER_SETUPS_PKG';
5
6 /*----------------------------------------------------------*/
7 /* Insert_Row Procedure */
8 /*----------------------------------------------------------*/
9 /* --
10 -- Purpose
11 -- Insert a row into WSH_ITM_PARAMETER_SETUPS_B entity
12 -- Insert a row into WSH_ITM_PARAMETER_SETUPS_TL entity
13 -- Input Parameters
14 -- p_api_version
15 -- API version number (current version is 1.0)
16 -- p_init_msg_list (optional, default FND_API.G_FALSE)
17 -- Valid values: FND_API.G_FALSE or FND_API.G_TRUE.
18 -- if set to FND_API.G_TRUE
19 -- initialize error message list
20 -- if set to FND_API.G_FALSE - not initialize error
21 -- message list
22 -- p_commit (optional, default FND_API.G_FALSE)
23 -- whether or not to commit the changes to database
24 --
25 -- Input parameters
26 -- P_PARAMETER_ID Unique sequence generated parameter ID
27 -- P_PARAMETER_NAME Parameter Name (Internally identified)
28 -- P_VALUE User Defined Value for the Parameter.
29 -- P_DEFAULT_VALUE System defined Seeded Value for the Parameter.
30 -- P_USER_SETTABLE User can Override the default.
31 -- P_USER_PARAMETER_NAME User Parameter name
32 -- P_DESCRIPTION Brief Description of the Parameter.
33 --
34 -- Output Parameters
35 -- x_return_status
36 -- if the process succeeds, the value is
37 -- fnd_api.g_ret_sts_success;
38 -- if there is an expected error, the value is
39 -- fnd_api.g_ret_sts_error;
40 -- if there is an unexpected error, the value is
41 -- fnd_api.g_ret_sts_unexp_error;
42 -- x_msg_count
43 -- if there is one or more errors, the number of error messages
44 -- in the buffer
45 -- x_msg_data
46 -- if there is one and only one error, the error message
47 -- (See fnd_api package for more details about the above output parameters)
48 --*/
49
50
51 procedure INSERT_ROW (
52 p_api_version IN NUMBER ,
53 p_init_msg_list IN VARCHAR2 := fnd_api.g_false ,
54 p_commit IN VARCHAR2 := fnd_api.g_false ,
55 x_return_status OUT NOCOPY VARCHAR2 ,
56 x_msg_count OUT NOCOPY NUMBER ,
57 x_msg_data OUT NOCOPY VARCHAR2 ,
58 P_PARAMETER_ID OUT NOCOPY NUMBER ,
59 P_PARAMETER_NAME IN VARCHAR2 ,
60 P_VALUE IN VARCHAR2 ,
61 P_DEFAULT_VALUE IN VARCHAR2 ,
62 P_USER_SETTABLE IN VARCHAR2 ,
63 P_USER_PARAMETER_NAME IN VARCHAR2 ,
64 P_DESCRIPTION IN VARCHAR2
65 ) is
66
67 l_parameter_id NUMBER;
68 l_api_name CONSTANT VARCHAR2(30) := 'Insert_Row';
69 l_api_version number := 1.0;
70
71 begin
72
73 --dbms_output.put_line('begin api');
74 -- Standard Start of API savepoint
75 SAVEPOINT WSH_ITM_PARAMETER_SETUPS_PKG;
76 -- Standard call to check for call compatibility.
77 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
78 p_api_version ,
79 l_api_name ,
80 G_PKG_NAME )
81 THEN
82 FND_MESSAGE.SET_NAME('WSH', 'WSH_INCOMPATIBLE_API_CALL');
83 FND_MSG_PUB.ADD;
84 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
85 END IF;
86 -- Initialize message list if p_init_msg_list is set to TRUE.
87 IF FND_API.to_Boolean( p_init_msg_list ) THEN
88 FND_MSG_PUB.initialize;
89 END IF;
90 -- Initialize API return status to success
91 x_return_status := FND_API.G_RET_STS_SUCCESS;
92 --dbms_output.put_line('begin api-2');
93
94 SELECT WSH_ITM_PARAMETER_SETUPS_S.NEXTVAL into l_parameter_id FROM dual;
95
96 insert into WSH_ITM_PARAMETER_SETUPS_B (
97 PARAMETER_ID,
98 PARAMETER_NAME,
99 VALUE,
100 DEFAULT_VALUE,
101 USER_SETTABLE,
102 CREATION_DATE,
103 CREATED_BY,
104 LAST_UPDATE_DATE,
105 LAST_UPDATED_BY,
106 LAST_UPDATE_LOGIN
107 )
108 values (
109 l_PARAMETER_ID,
110 P_PARAMETER_NAME,
111 P_VALUE,
112 P_DEFAULT_VALUE,
113 P_USER_SETTABLE,
114 sysdate,
115 FND_GLOBAL.user_id,
116 sysdate,
117 FND_GLOBAL.user_id,
118 FND_GLOBAL.login_id
119 );
120
121 IF SQL%NOTFOUND THEN
122 FND_MESSAGE.SET_NAME('WSH', 'WSH_INSERT_FAILED');
123 FND_MSG_PUB.ADD;
124 x_return_status := FND_API.G_RET_STS_ERROR;
125 RAISE FND_API.G_EXC_ERROR ;
126 END IF;
127 --dbms_output.put_line('Seq Id got it '||l_parameter_ID||'success');
128 x_return_status := fnd_api.g_ret_sts_success;
129 p_parameter_id := l_parameter_id;
130 -- End of API body
131 -- Standard check of p_commit.
132 IF FND_API.To_Boolean( p_commit ) THEN
133 COMMIT WORK;
134 END IF;
135 -- Standard call to get message count and if count is 1,
136 -- get message info.
137 FND_MSG_PUB.Count_And_Get
138 ( p_count => x_msg_count,
139 p_data => x_msg_data
140 );
141
142
143 insert into WSH_ITM_PARAMETER_SETUPS_TL (
144 PARAMETER_ID,
145 USER_PARAMETER_NAME,
146 DESCRIPTION,
147 LAST_UPDATE_DATE,
148 LAST_UPDATED_BY,
149 CREATION_DATE,
150 CREATED_BY,
151 LAST_UPDATE_LOGIN,
152 LANGUAGE,
153 SOURCE_LANG
154 ) select
155 l_PARAMETER_ID,
156 P_USER_PARAMETER_NAME,
157 P_DESCRIPTION,
158 sysdate,
159 FND_GLOBAL.user_id,
160 sysdate,
161 FND_GLOBAL.user_id,
162 FND_GLOBAL.login_id,
163 L.LANGUAGE_CODE,
164 userenv('LANG')
165 from FND_LANGUAGES L
166 where L.INSTALLED_FLAG in ('I', 'B')
167 and not exists
168 (select NULL
169 from WSH_ITM_PARAMETER_SETUPS_TL T
170 where T.PARAMETER_ID = l_PARAMETER_ID
171 and T.LANGUAGE = L.LANGUAGE_CODE);
172
173 IF SQL%NOTFOUND THEN
174 FND_MESSAGE.SET_NAME('WSH', 'WSH_INSERT_FAILED');
175 FND_MSG_PUB.ADD;
176 x_return_status := FND_API.G_RET_STS_ERROR;
177 RAISE FND_API.G_EXC_ERROR ;
178 END IF;
179 --dbms_output.put_line('Seq Id got it '||l_parameter_ID||'success');
180 x_return_status := fnd_api.g_ret_sts_success;
181 p_parameter_id := l_parameter_id;
182 -- End of API body
183 -- Standard check of p_commit.
184 IF FND_API.To_Boolean( p_commit ) THEN
185 COMMIT WORK;
186 END IF;
187 -- Standard call to get message count and if count is 1,
188 -- get message info.
189 FND_MSG_PUB.Count_And_Get
190 ( p_count => x_msg_count,
191 p_data => x_msg_data
192 );
193
194 EXCEPTION
195 WHEN FND_API.G_EXC_ERROR THEN
196 ROLLBACK TO WSH_ITM_PARAMETER_SETUPS_PKG;
197 x_return_status := FND_API.G_RET_STS_ERROR;
198 FND_MSG_PUB.Count_And_Get
199 ( p_count => x_msg_count,
200 p_data => x_msg_data
201 );
202 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
203 ROLLBACK TO WSH_ITM_PARAMETER_SETUPS_PKG;
204 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
205 FND_MSG_PUB.Count_And_Get
206 ( p_count => x_msg_count,
207 p_data => x_msg_data
208 );
209 WHEN OTHERS THEN
210 ROLLBACK TO WSH_ITM_PARAMETER_SETUPS_PKG;
211 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
212 IF FND_MSG_PUB.Check_Msg_Level
213 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
214 THEN
215 FND_MSG_PUB.Add_Exc_Msg
216 ( G_PKG_NAME ,
217 l_api_name
218 );
219 END IF;
220 FND_MSG_PUB.Count_And_Get
221 ( p_count => x_msg_count,
222 p_data => x_msg_data
223 );
224
225 end INSERT_ROW;
226
227 /*----------------------------------------------------------*/
228 /* Lock_Row Procedure */
229 /*----------------------------------------------------------*/
230 /* --
231 -- Purpose
232 -- Check Lock a row of WSH_ITM_PARAMETER_SETUPS entity
233 -- for the given parameter id
234 --
235 -- Input Parameters
236 -- p_api_version
237 -- API version number (current version is 1.0)
238 -- p_init_msg_list (optional, default FND_API.G_FALSE)
239 -- Valid values: FND_API.G_FALSE or FND_API.G_TRUE.
240 -- if set to FND_API.G_TRUE
241 -- initialize error message list
242 -- if set to FND_API.G_FALSE - not initialize error
243 -- message list
244 -- p_commit (optional, default FND_API.G_FALSE)
245 -- whether or not to commit the changes to database
246 --
247 -- Input parameters
248 -- P_PARAMETER_ID Unique sequence generated parameter ID
249 -- P_PARAMETER_NAME Parameter Name (Internally identified)
250 -- P_VALUE User Defined Value for the Parameter.
251 -- P_DEFAULT_VALUE System defined Seeded Value for the Parameter.
252 -- P_USER_SETTABLE User can Override the default.
253 -- P_USER_PARAMETER_NAME User Parameter name
254 -- P_DESCRIPTION Brief Description of the Parameter.
255 -- Output Parameters
256 -- x_return_status
257 -- if the process succeeds, the value is
258 -- fnd_api.g_ret_sts_success;
259 -- if there is an expected error, the value is
260 -- fnd_api.g_ret_sts_error;
261 -- if there is an unexpected error, the value is
262 -- fnd_api.g_ret_sts_unexp_error;
263 -- x_msg_count
264 -- if there is one or more errors, the number of error messages
265 -- in the buffer
266 -- x_msg_data
267 -- if there is one and only one error, the error message
268 -- (See fnd_api package for more details about the above output parameters)
269
270 --*/
271 procedure LOCK_ROW (
272 p_api_version IN NUMBER ,
273 p_init_msg_list IN VARCHAR2 := fnd_api.g_false ,
274 p_commit IN VARCHAR2 := fnd_api.g_false ,
275 x_return_status OUT NOCOPY VARCHAR2 ,
276 x_msg_count OUT NOCOPY NUMBER ,
277 x_msg_data OUT NOCOPY VARCHAR2 ,
278 P_PARAMETER_ID IN NUMBER ,
279 P_PARAMETER_NAME IN VARCHAR2 ,
280 P_VALUE IN VARCHAR2 ,
281 P_DEFAULT_VALUE IN VARCHAR2 ,
282 P_USER_SETTABLE IN VARCHAR2 ,
283 P_USER_PARAMETER_NAME IN VARCHAR2 ,
284 P_DESCRIPTION IN VARCHAR2
285 ) is
286
287 cursor c is select
288 PARAMETER_NAME,
289 VALUE,
290 DEFAULT_VALUE,
291 USER_SETTABLE
292 from WSH_ITM_PARAMETER_SETUPS_B
293 where PARAMETER_ID = P_PARAMETER_ID
294 for update of PARAMETER_ID nowait;
295 recinfo c%rowtype;
296
297 l_api_name CONSTANT VARCHAR2(30) := 'Lock_Row' ;
298 l_api_version number := 1.0;
299
300
301 cursor c1 is select
302 USER_PARAMETER_NAME,
303 DESCRIPTION,
304 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
305 from WSH_ITM_PARAMETER_SETUPS_TL
306 where PARAMETER_ID = P_PARAMETER_ID
307 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
308 for update of PARAMETER_ID nowait;
309
310 begin
311
312 -- Standard call to check for call compatibility.
313 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
314 p_api_version ,
315 l_api_name ,
316 G_PKG_NAME )
317 THEN
318 FND_MESSAGE.SET_NAME('WSH', 'WSH_INCOMPATIBLE_API_CALL');
319 FND_MSG_PUB.ADD;
320 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
321 END IF;
322
323 -- Initialize message list if p_init_msg_list is set to TRUE.
324 IF FND_API.to_Boolean( p_init_msg_list ) THEN
325 FND_MSG_PUB.initialize;
326 END IF;
327
328 -- Initialize API return status to success
329 x_return_status := FND_API.G_RET_STS_SUCCESS;
330
331 -- Check Lock a row of wsh_itm_parameter_setups
332
333 open c;
334 fetch c into recinfo;
335 if (c%notfound) then
336 close c;
337 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
338 app_exception.raise_exception;
339 end if;
340
341 close c;
342
343 IF ((recinfo.PARAMETER_NAME = p_PARAMETER_NAME)
344 AND ((recinfo.VALUE = p_VALUE)
345 OR ((recinfo.VALUE is null) AND (p_VALUE is null)))
346 AND ((recinfo.DEFAULT_VALUE = p_DEFAULT_VALUE)
347 OR ((recinfo.DEFAULT_VALUE is null) AND (p_DEFAULT_VALUE is null)))
348 AND (recinfo.USER_SETTABLE = p_USER_SETTABLE)) THEN
349 RETURN;
350 ELSE
351 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
352 app_exception.raise_exception;
353 END IF;
354
355 for tlinfo in c1 loop
356 IF (tlinfo.BASELANG = 'Y') then
357 IF (((tlinfo.USER_PARAMETER_NAME = p_USER_PARAMETER_NAME) OR
358 ((tlinfo.USER_PARAMETER_NAME is null) AND (p_USER_PARAMETER_NAME is null)))
359 AND ((tlinfo.DESCRIPTION = p_DESCRIPTION) OR
360 ((tlinfo.DESCRIPTION is null) AND (p_DESCRIPTION is null)))) then
361 RETURN;
362 ELSE
363 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
364 app_exception.raise_exception;
365 END IF;
366 END IF;
367 end loop;
368
369 EXCEPTION
370
371 WHEN app_exception.application_exception or app_exception.record_lock_exception THEN
372 if (c%ISOPEN) then
373 close c;
374 end if;
375 RAISE;
376
377 WHEN others THEN
378 if (c%ISOPEN) then
379 close c;
380 end if;
381 FND_MESSAGE.SET_NAME('WSH','WSH_UNEXP_ERROR');
382 FND_MESSAGE.Set_Token('PACKAGE', 'WSH_ITM_PARAMETER_SETUPS_PKG.LOCK_ROW');
383 FND_MESSAGE.Set_Token('ORA_ERROR',sqlcode);
384 FND_MESSAGE.Set_Token('ORA_TEXT',sqlerrm);
385
386 RAISE;
387
388 end LOCK_ROW;
389
390 /*----------------------------------------------------------*/
391 /* Update_Row Procedure */
392 /*----------------------------------------------------------*/
393 /* --
394 -- Purpose
395 -- Update a row into WSH_ITM_parameter_setups_b entity
396 -- Update a row into WSH_ITM_parameter_setups_tl entity
397 -- for the given parameter id
398 --
399 -- Input Parameters
400 -- p_api_version
401 -- API version number (current version is 1.0)
402 -- p_init_msg_list (optional, default FND_API.G_FALSE)
403 -- Valid values: FND_API.G_FALSE or FND_API.G_TRUE.
404 -- if set to FND_API.G_TRUE
405 -- initialize error message list
406 -- if set to FND_API.G_FALSE - not initialize error
407 -- message list
408 -- p_commit (optional, default FND_API.G_FALSE)
409 -- whether or not to commit the changes to database
410 --
411 -- Input parameters for clear cross parameter setups informations
412 -- P_PARAMETER_ID Unique sequence generated parameter ID
413 -- P_PARAMETER_NAME Parameter Name (Internally identified)
414 -- P_VALUE User Defined Value for the Parameter.
415 -- P_DEFAULT_VALUE System defined Seeded Value for the Parameter.
416 -- P_USER_SETTABLE User can Override the default.
417 -- P_USER_PARAMETER_NAME User Parameter name
418 -- P_DESCRIPTION Brief Description of the Parameter.
419 --
420 -- Output Parameters
421 -- x_return_status
422 -- if the process succeeds, the value is
423 -- fnd_api.g_ret_sts_success;
424 -- if there is an expected error, the value is
425 -- fnd_api.g_ret_sts_error;
429 -- if there is one or more errors, the number of error messages
426 -- if there is an unexpected error, the value is
427 -- fnd_api.g_ret_sts_unexp_error;
428 -- x_msg_count
430 -- in the buffer
431 -- x_msg_data
432 -- if there is one and only one error, the error message
433 -- (See fnd_api package for more details about the above output parameters)
434
435 --*/
436
437 procedure UPDATE_ROW (
438 p_api_version IN NUMBER ,
439 p_init_msg_list IN VARCHAR2 := fnd_api.g_false ,
440 p_commit IN VARCHAR2 := fnd_api.g_false ,
441 x_return_status OUT NOCOPY VARCHAR2 ,
442 x_msg_count OUT NOCOPY NUMBER ,
443 x_msg_data OUT NOCOPY VARCHAR2 ,
444 P_PARAMETER_ID IN NUMBER ,
445 P_PARAMETER_NAME IN VARCHAR2 ,
446 P_VALUE IN VARCHAR2 ,
447 P_DEFAULT_VALUE IN VARCHAR2 ,
448 P_USER_SETTABLE IN VARCHAR2 ,
449 P_USER_PARAMETER_NAME IN VARCHAR2 ,
450 P_DESCRIPTION IN VARCHAR2
451 ) is
452
453 l_api_name CONSTANT VARCHAR2(30) := 'Update_Row' ;
454 l_api_version number := 1.0;
455
456 begin
457
458 --dbms_output.put_line('begin');
459 -- Standard Start of API savepoint
460 SAVEPOINT WSH_ITM_PARAMETER_SETUPS_PKG;
461 -- Standard call to check for call compatibility.
462 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
463 p_api_version ,
464 l_api_name ,
465 G_PKG_NAME )
466 THEN
467 FND_MESSAGE.SET_NAME('WSH', 'WSH_INCOMPATIBLE_API_CALL');
468 FND_MSG_PUB.ADD;
469 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
470 END IF;
471 -- Initialize message list if p_init_msg_list is set to TRUE.
472 IF FND_API.to_Boolean( p_init_msg_list ) THEN
473 FND_MSG_PUB.initialize;
474 END IF;
475 -- Initialize API return status to success
476 x_return_status := FND_API.G_RET_STS_SUCCESS;
477
478 -- Update a row into WSH_ITM_parameter_setups entity with all detail information
479 -- for the given parameter id
480
481 update WSH_ITM_PARAMETER_SETUPS_B set
482 PARAMETER_NAME = P_PARAMETER_NAME,
483 VALUE = P_VALUE,
484 DEFAULT_VALUE = P_DEFAULT_VALUE,
485 USER_SETTABLE = P_USER_SETTABLE,
486 LAST_UPDATE_DATE = sysdate,
487 LAST_UPDATED_BY = FND_GLOBAL.user_id,
488 LAST_UPDATE_LOGIN = FND_GLOBAL.login_id
489 where PARAMETER_ID = P_PARAMETER_ID;
490
491 IF SQL%NOTFOUND THEN
492 FND_MESSAGE.SET_NAME('WSH', 'WSH_UPDATE_FAILED');
493 FND_MSG_PUB.ADD;
494 x_return_status := FND_API.G_RET_STS_ERROR;
495 RAISE FND_API.G_EXC_ERROR ;
496 END IF;
497 --dbms_output.put_line('begin-5');
498 x_return_status := fnd_api.g_ret_sts_success;
499
500 -- End of API body
501 -- Standard check of p_commit.
502 IF FND_API.To_Boolean( p_commit ) THEN
503 COMMIT WORK;
504 END IF;
505 -- Standard call to get message count and if count is 1,
506 -- get message info.
507 FND_MSG_PUB.Count_And_Get
508 ( p_count => x_msg_count,
509 p_data => x_msg_data
510 );
511
512 update WSH_ITM_PARAMETER_SETUPS_TL set
513 USER_PARAMETER_NAME = P_USER_PARAMETER_NAME,
514 DESCRIPTION = P_DESCRIPTION,
515 SOURCE_LANG = userenv('LANG')
516 where PARAMETER_ID = P_PARAMETER_ID
517 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
518
519 IF SQL%NOTFOUND THEN
520 FND_MESSAGE.SET_NAME('WSH', 'WSH_UPDATE_FAILED');
521 FND_MSG_PUB.ADD;
522 x_return_status := FND_API.G_RET_STS_ERROR;
523 RAISE FND_API.G_EXC_ERROR ;
524 END IF;
525 --dbms_output.put_line('begin-5');
526 x_return_status := fnd_api.g_ret_sts_success;
527
528 -- End of API body
529 -- Standard check of p_commit.
530 IF FND_API.To_Boolean( p_commit ) THEN
531 COMMIT WORK;
532 END IF;
533 -- Standard call to get message count and if count is 1,
534 -- get message info.
535 FND_MSG_PUB.Count_And_Get
536 ( p_count => x_msg_count,
537 p_data => x_msg_data
538 );
539
540 EXCEPTION
541 WHEN FND_API.G_EXC_ERROR THEN
542 --dbms_output.put_line(sqlerrm);
543 ROLLBACK TO WSH_ITM_PARAMETER_SETUPS_PKG;
544 x_return_status := FND_API.G_RET_STS_ERROR;
545 FND_MSG_PUB.Count_And_Get
546 ( p_count => x_msg_count,
547 p_data => x_msg_data
548 );
549 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
550 --dbms_output.put_line(sqlerrm);
551 ROLLBACK TO WSH_ITM_PARAMETER_SETUPS_PKG;
552 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
553 FND_MSG_PUB.Count_And_Get
554 ( p_count => x_msg_count,
555 p_data => x_msg_data
556 );
557 WHEN OTHERS THEN
558 --dbms_output.put_line(sqlerrm);
559 ROLLBACK TO WSH_ITM_PARAMETER_SETUPS_PKG;
560 x_return_status := 'W';
561 IF FND_MSG_PUB.Check_Msg_Level
562 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
563 THEN
564 FND_MSG_PUB.Add_Exc_Msg
565 ( G_PKG_NAME ,
566 l_api_name
567 );
568 END IF;
569 FND_MSG_PUB.Count_And_Get
570 ( p_count => x_msg_count,
571 p_data => x_msg_data
572 );
573
574 end UPDATE_ROW;
575
576 /*----------------------------------------------------------*/
580 -- Purpose
577 /* Delete_Row Procedure */
578 /*----------------------------------------------------------*/
579 /* --
581 -- Delete a row from WSH_ITM_PARAMETER_SETUPS_B entity
582 -- Delete a row from WSH_ITM_PARAMETER_SETUPS_TL entity
583 -- for the given parameter id
584 --
585 -- Input Parameters
586 -- p_api_version
587 -- API version number (current version is 1.0)
588 -- p_init_msg_list (optional, default FND_API.G_FALSE)
589 -- Valid values: FND_API.G_FALSE or FND_API.G_TRUE.
590 -- if set to FND_API.G_TRUE
591 -- initialize error message list
592 -- if set to FND_API.G_FALSE - not initialize error
593 -- message list
594 -- p_commit (optional, default FND_API.G_FALSE)
595 -- whether or not to commit the changes to database
596 --
597 -- Input parameters for clear cross parameters informations
598 -- p_PARAMETER_ID -- parameter id
599 --
600 --
601 -- Output Parameters
602 -- x_return_status
603 -- if the process succeeds, the value is
604 -- fnd_api.g_ret_sts_success;
605 -- if there is an expected error, the value is
606 -- fnd_api.g_ret_sts_error;
607 -- if there is an unexpected error, the value is
608 -- fnd_api.g_ret_sts_unexp_error;
609 -- x_msg_count
610 -- if there is one or more errors, the number of error messages
611 -- in the buffer
612 -- x_msg_data
613 -- if there is one and only one error, the error message
614 -- (See fnd_api package for more details about the above output parameters)
615
616 --*/
617 procedure DELETE_ROW (
618 p_api_version IN NUMBER ,
619 p_init_msg_list IN VARCHAR2 := fnd_api.g_false ,
620 p_commit IN VARCHAR2 := fnd_api.g_false ,
621 x_return_status OUT NOCOPY VARCHAR2 ,
622 x_msg_count OUT NOCOPY NUMBER ,
623 x_msg_data OUT NOCOPY VARCHAR2 ,
624 P_PARAMETER_ID IN NUMBER
625 ) is
626
627 l_api_name CONSTANT VARCHAR2(30) := 'Delete_Row' ;
628 l_api_version number := 1.0;
629
630 begin
631
632 --dbms_output.put_line('begin');
633 -- Standard Start of API savepoint
634 SAVEPOINT WSH_ITM_PARAMETER_SETUPS_PKG;
635 -- Standard call to check for call compatibility.
636 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
637 p_api_version ,
638 l_api_name ,
639 G_PKG_NAME )
640 THEN
641 FND_MESSAGE.SET_NAME('WSH', 'WSH_INCOMPATIBLE_API_CALL');
642 FND_MSG_PUB.ADD;
643 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
644 END IF;
645 -- Initialize message list if p_init_msg_list is set to TRUE.
646 IF FND_API.to_Boolean( p_init_msg_list ) THEN
647 FND_MSG_PUB.initialize;
648 END IF;
649 -- Initialize API return status to success
650 x_return_status := FND_API.G_RET_STS_SUCCESS;
651
652 -- Delete a row from WSH_ITM_parameter_setups entity
653 -- for the given parameter id
654
655
656 delete from WSH_ITM_PARAMETER_SETUPS_TL
657 where PARAMETER_ID = P_PARAMETER_ID;
658
659 IF SQL%NOTFOUND THEN
660 FND_MESSAGE.SET_NAME('WSH', 'WSH_DELETE_FAILED');
661 FND_MSG_PUB.ADD;
662 x_return_status := FND_API.G_RET_STS_ERROR;
663 RAISE FND_API.G_EXC_ERROR ;
664 END IF;
665 --dbms_output.put_line('begin-5');
666 x_return_status := fnd_api.g_ret_sts_success;
667
668 -- End of API body
669 -- Standard check of p_commit.
670 IF FND_API.To_Boolean( p_commit ) THEN
671 COMMIT WORK;
672 END IF;
673 -- Standard call to get message count and if count is 1,
674 -- get message info.
675 FND_MSG_PUB.Count_And_Get
676 ( p_count => x_msg_count,
677 p_data => x_msg_data
678 );
679
680 delete from WSH_ITM_PARAMETER_SETUPS_B
681 where PARAMETER_ID = p_PARAMETER_ID;
682
683 IF SQL%NOTFOUND THEN
684 FND_MESSAGE.SET_NAME('WSH', 'WSH_DELETE_FAILED');
685 FND_MSG_PUB.ADD;
686 x_return_status := FND_API.G_RET_STS_ERROR;
687 RAISE FND_API.G_EXC_ERROR ;
688 END IF;
689 --dbms_output.put_line('begin-5');
690 x_return_status := fnd_api.g_ret_sts_success;
691
692 -- End of API body
693 -- Standard check of p_commit.
694 IF FND_API.To_Boolean( p_commit ) THEN
695 COMMIT WORK;
696 END IF;
697 -- Standard call to get message count and if count is 1,
698 -- get message info.
699 FND_MSG_PUB.Count_And_Get
700 ( p_count => x_msg_count,
701 p_data => x_msg_data
702 );
703
704 EXCEPTION
705 WHEN FND_API.G_EXC_ERROR THEN
706 --dbms_output.put_line(sqlerrm);
707 ROLLBACK TO WSH_ITM_PARAMETER_SETUPS_PKG;
708 x_return_status := FND_API.G_RET_STS_ERROR;
709 FND_MSG_PUB.Count_And_Get
710 ( p_count => x_msg_count,
711 p_data => x_msg_data
712 );
713 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
714 --dbms_output.put_line(sqlerrm);
715 ROLLBACK TO WSH_ITM_PARAMETER_SETUPS_PKG;
716 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
717 FND_MSG_PUB.Count_And_Get
718 ( p_count => x_msg_count,
719 p_data => x_msg_data
720 );
721 WHEN OTHERS THEN
725 IF FND_MSG_PUB.Check_Msg_Level
722 --dbms_output.put_line(sqlerrm);
723 ROLLBACK TO WSH_ITM_PARAMETER_SETUPS_PKG;
724 x_return_status := 'W';
726 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
727 THEN
728 FND_MSG_PUB.Add_Exc_Msg
729 ( G_PKG_NAME ,
730 l_api_name
731 );
732 END IF;
733 FND_MSG_PUB.Count_And_Get
734 ( p_count => x_msg_count,
735 p_data => x_msg_data
736 );
737
738 end DELETE_ROW;
739
740 /*----------------------------------------------------------*/
741 /* Add_Language Procedure */
742 /*----------------------------------------------------------*/
743 procedure ADD_LANGUAGE
744 is
745 begin
746 delete from WSH_ITM_PARAMETER_SETUPS_TL T
747 where not exists
748 (select NULL
749 from WSH_ITM_PARAMETER_SETUPS_B B
750 where B.PARAMETER_ID = T.PARAMETER_ID
751 );
752
753 update WSH_ITM_PARAMETER_SETUPS_TL T set (
754 USER_PARAMETER_NAME,
755 DESCRIPTION
756 ) = (select
757 B.USER_PARAMETER_NAME,
758 B.DESCRIPTION
759 from WSH_ITM_PARAMETER_SETUPS_TL B
760 where B.PARAMETER_ID = T.PARAMETER_ID
761 and B.LANGUAGE = T.SOURCE_LANG)
762 where (
763 T.PARAMETER_ID,
764 T.LANGUAGE
765 ) in (select
766 SUBT.PARAMETER_ID,
767 SUBT.LANGUAGE
768 from WSH_ITM_PARAMETER_SETUPS_TL SUBB, WSH_ITM_PARAMETER_SETUPS_TL SUBT
769 where SUBB.PARAMETER_ID = SUBT.PARAMETER_ID
770 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
771 and (SUBB.USER_PARAMETER_NAME <> SUBT.USER_PARAMETER_NAME
772 or (SUBB.USER_PARAMETER_NAME is null and SUBT.USER_PARAMETER_NAME is not null)
773 or (SUBB.USER_PARAMETER_NAME is not null and SUBT.USER_PARAMETER_NAME is null)
774 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
775 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
776 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
777 ));
778
779 insert into WSH_ITM_PARAMETER_SETUPS_TL (
780 PARAMETER_ID,
781 USER_PARAMETER_NAME,
782 DESCRIPTION,
783 LAST_UPDATE_DATE,
784 LAST_UPDATED_BY,
785 CREATION_DATE,
786 CREATED_BY,
787 LAST_UPDATE_LOGIN,
788 LANGUAGE,
789 SOURCE_LANG
790 ) select
791 B.PARAMETER_ID,
792 B.USER_PARAMETER_NAME,
793 B.DESCRIPTION,
794 B.LAST_UPDATE_DATE,
795 B.LAST_UPDATED_BY,
796 B.CREATION_DATE,
797 B.CREATED_BY,
798 B.LAST_UPDATE_LOGIN,
799 L.LANGUAGE_CODE,
800 B.SOURCE_LANG
801 from WSH_ITM_PARAMETER_SETUPS_TL B, FND_LANGUAGES L
802 where L.INSTALLED_FLAG in ('I', 'B')
803 and B.LANGUAGE = userenv('LANG')
804 and not exists
805 (select NULL
806 from WSH_ITM_PARAMETER_SETUPS_TL T
807 where T.PARAMETER_ID = B.PARAMETER_ID
808 and T.LANGUAGE = L.LANGUAGE_CODE);
809 end ADD_LANGUAGE;
810
811 /*----------------------------------------------------------*/
812 /* Translate_Row Procedure */
813 /*----------------------------------------------------------*/
814 PROCEDURE translate_row
815 (
816 x_parameter_id IN VARCHAR2 ,
817 x_owner IN VARCHAR2 ,
818 x_user_parameter_name IN VARCHAR2 ,
819 x_description IN VARCHAR2
820 ) IS
821 BEGIN
822 UPDATE WSH_ITM_parameter_setups_tl SET
823 user_parameter_name = x_user_parameter_name,
824 description = x_description,
825 last_update_date = sysdate,
826 last_updated_by = Decode(x_owner, 'SEED', 1, 0),
827 last_update_login = 0,
828 source_lang = userenv('LANG')
829 WHERE parameter_id = fnd_number.canonical_to_number(x_parameter_id)
830 AND userenv('LANG') IN (language, source_lang);
831 END translate_row;
832
833 /*----------------------------------------------------------*/
834 /* Load_Row Procedure */
835 /*----------------------------------------------------------*/
836 PROCEDURE load_row
837 (
838 x_parameter_id IN VARCHAR2 ,
839 x_owner IN VARCHAR2 ,
840 x_parameter_name IN VARCHAR2 ,
841 x_user_parameter_name IN VARCHAR2 ,
842 x_value IN VARCHAR2 ,
843 x_user_settable IN VARCHAR2 ,
844 x_default_value IN VARCHAR2 ,
845 x_description IN VARCHAR2
846 ) IS
847
848 BEGIN
849 DECLARE
850 l_parameter_id NUMBER;
851 l_user_id NUMBER := 0;
852 l_row_id VARCHAR2(64);
853 l_sysdate DATE;
854 BEGIN
855 IF (x_owner = 'SEED') THEN
856 l_user_id := 1;
857 END IF;
858 --
859 SELECT Sysdate INTO l_sysdate FROM dual;
860 l_parameter_id := fnd_number.canonical_to_number(x_parameter_id);
861
862
863 update WSH_ITM_PARAMETER_SETUPS_B set
864 PARAMETER_NAME = x_PARAMETER_NAME,
865 --VALUE = x_VALUE, --Bug 9738287 Do not override value field with seeded value.
866 DEFAULT_VALUE = x_DEFAULT_VALUE,
867 USER_SETTABLE = x_USER_SETTABLE,
868 LAST_UPDATE_DATE = l_sysdate,
869 LAST_UPDATED_BY = l_user_id,
870 LAST_UPDATE_LOGIN = 0
871 where PARAMETER_ID = l_PARAMETER_ID;
872
873 update WSH_ITM_PARAMETER_SETUPS_TL set
874 USER_PARAMETER_NAME = x_USER_PARAMETER_NAME,
875 DESCRIPTION = x_DESCRIPTION,
876 SOURCE_LANG = userenv('LANG')
880 IF SQL%NOTFOUND THEN
877 where PARAMETER_ID = l_PARAMETER_ID
878 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
879
881
882 insert into WSH_ITM_PARAMETER_SETUPS_B (
883 PARAMETER_ID,
884 PARAMETER_NAME,
885 VALUE,
886 DEFAULT_VALUE,
887 USER_SETTABLE,
888 CREATION_DATE,
889 CREATED_BY,
890 LAST_UPDATE_DATE,
891 LAST_UPDATED_BY,
892 LAST_UPDATE_LOGIN
893 )
894 values (
895 l_PARAMETER_ID,
896 x_PARAMETER_NAME,
897 x_VALUE,
898 x_DEFAULT_VALUE,
899 x_USER_SETTABLE,
900 l_sysdate,
901 l_user_id,
902 l_sysdate,
903 l_user_id,
904 0
905 );
906
907 insert into WSH_ITM_PARAMETER_SETUPS_TL (
908 PARAMETER_ID,
909 USER_PARAMETER_NAME,
910 DESCRIPTION,
911 LAST_UPDATE_DATE,
912 LAST_UPDATED_BY,
913 CREATION_DATE,
914 CREATED_BY,
915 LAST_UPDATE_LOGIN,
916 LANGUAGE,
917 SOURCE_LANG
918 ) select
919 l_PARAMETER_ID,
920 x_USER_PARAMETER_NAME,
921 x_DESCRIPTION,
922 l_sysdate,
923 l_user_id,
924 l_sysdate,
925 l_user_id,
926 0,
927 L.LANGUAGE_CODE,
928 userenv('LANG')
929 from FND_LANGUAGES L
930 where L.INSTALLED_FLAG in ('I', 'B')
931 and not exists
932 (select NULL
933 from WSH_ITM_PARAMETER_SETUPS_TL T
934 where T.PARAMETER_ID = l_PARAMETER_ID
935 and T.LANGUAGE = L.LANGUAGE_CODE);
936
937 END IF;
938 END;
939 commit;
940 END load_row;
941
942 end WSH_ITM_PARAMETER_SETUPS_PKG;