[Home] [Help]
PACKAGE BODY: APPS.AMS_CT_RULE_PVT
Source
1 PACKAGE BODY AMS_Ct_Rule_PVT as
2 /* $Header: amsvctrb.pls 120.3 2006/05/30 11:09:34 prageorg noship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- AMS_Ct_Rule_PVT
7 --
8 -- Purpose
9 -- Private api created to Update/insert/Delete general
10 -- and object-specific content rules
11 --
12 -- History
13 -- 21-mar-2002 jieli Created.
14 -- 10-apr-2002 soagrawa Added all the comments
15 -- 10-apr-2002 soagrawa Added check_Content_Rules
16 -- 29-apr-2002 soagrawa Modified last_updated_date to last_update_date
17 -- 15-jul-2002 soagrawa Modified check_content_rule to pass source codes to the FFM API.
18 -- 29-May-2006 prageorg Added delivery_mode column. Bug 4896511
19 -- NOTE
20 --
21 -- End of Comments
22 -- ===============================================================
23
24
25 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AMS_Ct_Rule_PVT';
26 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amsvctrb.pls';
27
28 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
29 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
30
31
32 --===================================================================
33 -- NAME
34 -- Create_Ct_Rule
35 --
36 -- PURPOSE
37 -- Creates the Content Rule.
38 --
39 -- NOTES
40 --
41 -- HISTORY
42 -- 21-MAR-2001 JIELI Created
43 --===================================================================
44
45 AMS_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
46 AMS_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
47 AMS_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
48
49 PROCEDURE Create_Ct_Rule(
50 p_api_version_number IN NUMBER,
51 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
52 p_commit IN VARCHAR2 := FND_API.G_FALSE,
53 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
54
55 x_return_status OUT NOCOPY VARCHAR2,
56 x_msg_count OUT NOCOPY NUMBER,
57 x_msg_data OUT NOCOPY VARCHAR2,
58
59 p_ct_rule_rec IN ct_rule_rec_type := g_miss_ct_rule_rec,
60 x_content_rule_id OUT NOCOPY NUMBER
61 )
62
63 IS
64 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Ct_Rule';
65 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
66 l_return_status_full VARCHAR2(1);
67 l_object_version_number NUMBER := 1;
68 l_org_id NUMBER := FND_API.G_MISS_NUM;
69 l_CONTENT_RULE_ID NUMBER;
70 l_dummy NUMBER;
71
72 CURSOR c_id IS
73 SELECT AMS_CONTENT_RULES_B_s.NEXTVAL
74 FROM dual;
75
76 CURSOR c_id_exists (l_id IN NUMBER) IS
77 SELECT 1
78 FROM AMS_CONTENT_RULES_B
79 WHERE CONTENT_RULE_ID = l_id;
80
81 BEGIN
82 -- Standard Start of API savepoint
83 SAVEPOINT CREATE_Ct_Rule_PVT;
84
85 -- Standard call to check for call compatibility.
86 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
87 p_api_version_number,
88 l_api_name,
89 G_PKG_NAME)
90 THEN
91 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
92 END IF;
93
94 -- Initialize message list if p_init_msg_list is set to TRUE.
95 IF FND_API.to_Boolean( p_init_msg_list )
96 THEN
97 FND_MSG_PUB.initialize;
98 END IF;
99
100 -- Debug Message
101 IF (AMS_DEBUG_HIGH_ON) THEN
102
103 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: ' || l_api_name || 'start');
104 END IF;
105
106
107 -- Initialize API return status to SUCCESS
108 x_return_status := FND_API.G_RET_STS_SUCCESS;
109
110 -- Local variable initialization
111
112 IF p_ct_rule_rec.CONTENT_RULE_ID IS NULL OR p_ct_rule_rec.CONTENT_RULE_ID = FND_API.g_miss_num THEN
113 LOOP
114 l_dummy := NULL;
115 OPEN c_id;
116 FETCH c_id INTO l_CONTENT_RULE_ID;
117 CLOSE c_id;
118
119 OPEN c_id_exists(l_CONTENT_RULE_ID);
120 FETCH c_id_exists INTO l_dummy;
121 CLOSE c_id_exists;
122 EXIT WHEN l_dummy IS NULL;
123
124 END LOOP;
125 END IF;
126
127 -- Validate Environment
128 IF FND_GLOBAL.User_Id IS NULL
129 THEN
130 AMS_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
131 RAISE FND_API.G_EXC_ERROR;
132 END IF;
133
134 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
135 THEN
136 -- Debug message
137 IF (AMS_DEBUG_HIGH_ON) THEN
138
139 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: ' || l_api_name || ' Validate_Ct_Rule');
140 END IF;
141
142 -- Invoke validation procedures
143 Validate_ct_rule(
144 p_api_version_number => 1.0,
145 p_init_msg_list => FND_API.G_FALSE,
146 p_validation_level => p_validation_level,
147 p_validation_mode => JTF_PLSQL_API.g_create,
148 p_ct_rule_rec => p_ct_rule_rec,
149 x_return_status => x_return_status,
150 x_msg_count => x_msg_count,
151 x_msg_data => x_msg_data);
152 END IF;
153
154 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
155 RAISE FND_API.G_EXC_ERROR;
156 END IF;
157
158
159 -- Debug Message
160 IF (AMS_DEBUG_HIGH_ON) THEN
161
162 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: ' || l_api_name || ' Calling create table handler');
163 END IF;
164
165 -- Invoke table handler(AMS_CONTENT_RULES_B_PKG.Insert_Row)
166 AMS_CONTENT_RULES_B_PKG.Insert_Row(
167 px_content_rule_id => l_content_rule_id,
168 p_created_by => G_USER_ID,
169 p_creation_date => SYSDATE,
170 p_last_updated_by => G_USER_ID,
171 p_last_updated_date => p_ct_rule_rec.last_updated_date,
172 p_last_update_login => G_LOGIN_ID,
173 px_object_version_number => l_object_version_number,
174 p_object_type => p_ct_rule_rec.object_type,
175 p_object_id => p_ct_rule_rec.object_id,
176 p_sender => p_ct_rule_rec.sender,
177 p_reply_to => p_ct_rule_rec.reply_to,
178 p_cover_letter_id => p_ct_rule_rec.cover_letter_id,
179 p_table_of_content_flag => p_ct_rule_rec.table_of_content_flag,
180 p_trigger_code => p_ct_rule_rec.trigger_code,
181 p_enabled_flag => p_ct_rule_rec.enabled_flag,
182 p_subject => p_ct_rule_rec.subject,
183 p_sender_display_name => p_ct_rule_rec.sender_display_name, -- anchaudh
184 --prageorg 5/29/2006
185 p_delivery_mode => p_ct_rule_rec.delivery_mode
186 );
187
188 x_content_rule_id := l_content_rule_id;
189 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
190 RAISE FND_API.G_EXC_ERROR;
191 END IF;
192 --
193 -- End of API body
194 --
195
196 -- Standard check for p_commit
197 IF FND_API.to_Boolean( p_commit )
198 THEN
199 COMMIT WORK;
200 END IF;
201
202
203 -- Debug Message
204 IF (AMS_DEBUG_HIGH_ON) THEN
205
206 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: ' || l_api_name || 'end');
207 END IF;
208
209 -- Standard call to get message count and if count is 1, get message info.
210 FND_MSG_PUB.Count_And_Get
211 (p_count => x_msg_count,
212 p_data => x_msg_data
213 );
214 EXCEPTION
215
216 WHEN AMS_Utility_PVT.resource_locked THEN
217 x_return_status := FND_API.g_ret_sts_error;
218 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
219
220 WHEN FND_API.G_EXC_ERROR THEN
221 ROLLBACK TO CREATE_Ct_Rule_PVT;
222 x_return_status := FND_API.G_RET_STS_ERROR;
223 -- Standard call to get message count and if count=1, get the message
224 FND_MSG_PUB.Count_And_Get (
225 p_encoded => FND_API.G_FALSE,
226 p_count => x_msg_count,
227 p_data => x_msg_data
228 );
229
230 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
231 ROLLBACK TO CREATE_Ct_Rule_PVT;
232 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
233 -- Standard call to get message count and if count=1, get the message
234 FND_MSG_PUB.Count_And_Get (
235 p_encoded => FND_API.G_FALSE,
236 p_count => x_msg_count,
237 p_data => x_msg_data
238 );
239
240 WHEN OTHERS THEN
241 ROLLBACK TO CREATE_Ct_Rule_PVT;
242 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
243 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
244 THEN
245 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
246 END IF;
247 -- Standard call to get message count and if count=1, get the message
248 FND_MSG_PUB.Count_And_Get (
249 p_encoded => FND_API.G_FALSE,
250 p_count => x_msg_count,
251 p_data => x_msg_data
252 );
253 End Create_Ct_Rule;
254
255
256
257 --===================================================================
258 -- NAME
259 -- Update_Ct_Rule
260 --
261 -- PURPOSE
262 -- Updates the Content Rule.
263 --
264 -- NOTES
265 --
266 -- HISTORY
267 -- 21-MAR-2001 JIELI Created
268 --===================================================================
269
270
271 PROCEDURE Update_Ct_Rule(
272 p_api_version_number IN NUMBER,
273 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
274 p_commit IN VARCHAR2 := FND_API.G_FALSE,
275 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
276
277 x_return_status OUT NOCOPY VARCHAR2,
278 x_msg_count OUT NOCOPY NUMBER,
279 x_msg_data OUT NOCOPY VARCHAR2,
280
281 p_ct_rule_rec IN ct_rule_rec_type,
282 x_object_version_number OUT NOCOPY NUMBER
283 )
284
285 IS
286
287 CURSOR c_get_ct_rule(content_rule_id NUMBER) IS
288 SELECT *
289 FROM AMS_CONTENT_RULES_B;
290 -- Hint: Developer need to provide Where clause
291
292 L_API_NAME CONSTANT VARCHAR2(30) := 'Update_Ct_Rule';
293 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
294 -- Local Variables
295 l_object_version_number NUMBER;
296 l_CONTENT_RULE_ID NUMBER;
297 l_ref_ct_rule_rec c_get_Ct_Rule%ROWTYPE ;
298 l_tar_ct_rule_rec AMS_Ct_Rule_PVT.ct_rule_rec_type := P_ct_rule_rec;
299 l_rowid ROWID;
300
301 BEGIN
302 -- Standard Start of API savepoint
303 SAVEPOINT UPDATE_Ct_Rule_PVT;
304
305 -- Standard call to check for call compatibility.
306 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
307 p_api_version_number,
308 l_api_name,
309 G_PKG_NAME)
310 THEN
311 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
312 END IF;
313
314 -- Initialize message list if p_init_msg_list is set to TRUE.
315 IF FND_API.to_Boolean( p_init_msg_list )
316 THEN
317 FND_MSG_PUB.initialize;
318 END IF;
319
320 -- Debug Message
321 IF (AMS_DEBUG_HIGH_ON) THEN
322
323 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
324 END IF;
325
326
327 -- Initialize API return status to SUCCESS
328 x_return_status := FND_API.G_RET_STS_SUCCESS;
329
330 -- Debug Message
331 IF (AMS_DEBUG_HIGH_ON) THEN
332
333 AMS_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
334 END IF;
335
336 /*
337 OPEN c_get_Ct_Rule( l_tar_ct_rule_rec.content_rule_id);
338
339 FETCH c_get_Ct_Rule INTO l_ref_ct_rule_rec ;
340
341 If ( c_get_Ct_Rule%NOTFOUND) THEN
342 AMS_Utility_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
343 p_token_name => 'INFO',
344 p_token_value => 'Ct_Rule') ;
345 RAISE FND_API.G_EXC_ERROR;
346 END IF;
347 -- Debug Message
348 IF (AMS_DEBUG_HIGH_ON) THEN
349
350 AMS_UTILITY_PVT.debug_message('Private API: - Close Cursor');
351 END IF;
352 CLOSE c_get_Ct_Rule;
353 */
354
355
356 If (l_tar_ct_rule_rec.object_version_number is NULL or
357 l_tar_ct_rule_rec.object_version_number = FND_API.G_MISS_NUM ) Then
358 AMS_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
359 p_token_name => 'COLUMN',
360 p_token_value => 'Last_Update_Date') ;
361 raise FND_API.G_EXC_ERROR;
362 End if;
363 -- Check Whether record has been changed by someone else
364 If (l_tar_ct_rule_rec.object_version_number <> l_ref_ct_rule_rec.object_version_number) Then
365 AMS_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
366 p_token_name => 'INFO',
367 p_token_value => 'Ct_Rule') ;
368 raise FND_API.G_EXC_ERROR;
369 End if;
370 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
371 THEN
372 -- Debug message
373 IF (AMS_DEBUG_HIGH_ON) THEN
374
375 AMS_UTILITY_PVT.debug_message('Private API: Validate_Ct_Rule');
376 END IF;
377
378 -- Invoke validation procedures
379 Validate_ct_rule(
380 p_api_version_number => 1.0,
381 p_init_msg_list => FND_API.G_FALSE,
382 p_validation_level => p_validation_level,
383 p_validation_mode => JTF_PLSQL_API.g_update,
384 p_ct_rule_rec => p_ct_rule_rec,
385 x_return_status => x_return_status,
386 x_msg_count => x_msg_count,
387 x_msg_data => x_msg_data);
388 END IF;
389
390 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
391 RAISE FND_API.G_EXC_ERROR;
392 END IF;
393
394
395 -- Debug Message
396 --IF (AMS_DEBUG_HIGH_ON) THENAMS_UTILITY_PVT.debug_message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');END IF;
397 IF (AMS_DEBUG_HIGH_ON) THEN
398
399 AMS_UTILITY_PVT.debug_message('Private API: Calling update table handler');
400 END IF;
401
402 -- Invoke table handler(AMS_CONTENT_RULES_B_PKG.Update_Row)
403 AMS_CONTENT_RULES_B_PKG.Update_Row(
404 p_content_rule_id => p_ct_rule_rec.content_rule_id,
405 p_created_by => G_USER_ID,
406 p_creation_date => SYSDATE,
407 p_last_updated_by => G_USER_ID,
408 p_last_updated_date => p_ct_rule_rec.last_updated_date,
409 p_last_update_login => G_LOGIN_ID,
410 p_object_version_number => p_ct_rule_rec.object_version_number,
411 p_object_type => p_ct_rule_rec.object_type,
412 p_object_id => p_ct_rule_rec.object_id,
413 p_sender => p_ct_rule_rec.sender,
414 p_reply_to => p_ct_rule_rec.reply_to,
415 p_cover_letter_id => p_ct_rule_rec.cover_letter_id,
416 p_table_of_content_flag => p_ct_rule_rec.table_of_content_flag,
417 p_trigger_code => p_ct_rule_rec.trigger_code,
418 p_enabled_flag => p_ct_rule_rec.enabled_flag,
419 p_subject => p_ct_rule_rec.subject,
420 p_sender_display_name => p_ct_rule_rec.sender_display_name, --anchaudh
421 --prageorg 5/29/2006
422 p_delivery_mode => p_ct_rule_rec.delivery_mode
423 );
424
425 x_object_version_number := p_ct_rule_rec.object_version_number + 1;
426
427 --
428 -- End of API body.
429 --
430
431 -- Standard check for p_commit
432 IF FND_API.to_Boolean( p_commit )
433 THEN
434 COMMIT WORK;
435 END IF;
436
437
438 -- Debug Message
439 IF (AMS_DEBUG_HIGH_ON) THEN
440
441 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
442 END IF;
443
444 -- Standard call to get message count and if count is 1, get message info.
445 FND_MSG_PUB.Count_And_Get
446 (p_count => x_msg_count,
447 p_data => x_msg_data
448 );
449 EXCEPTION
450
451 WHEN AMS_Utility_PVT.resource_locked THEN
452 x_return_status := FND_API.g_ret_sts_error;
453 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
454
455 WHEN FND_API.G_EXC_ERROR THEN
456 ROLLBACK TO UPDATE_Ct_Rule_PVT;
457 x_return_status := FND_API.G_RET_STS_ERROR;
458 -- Standard call to get message count and if count=1, get the message
459 FND_MSG_PUB.Count_And_Get (
460 p_encoded => FND_API.G_FALSE,
461 p_count => x_msg_count,
462 p_data => x_msg_data
463 );
464
465 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
466 ROLLBACK TO UPDATE_Ct_Rule_PVT;
467 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
468 -- Standard call to get message count and if count=1, get the message
469 FND_MSG_PUB.Count_And_Get (
470 p_encoded => FND_API.G_FALSE,
471 p_count => x_msg_count,
472 p_data => x_msg_data
473 );
474
475 WHEN OTHERS THEN
476 ROLLBACK TO UPDATE_Ct_Rule_PVT;
477 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
478 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
479 THEN
480 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
481 END IF;
482 -- Standard call to get message count and if count=1, get the message
483 FND_MSG_PUB.Count_And_Get (
484 p_encoded => FND_API.G_FALSE,
485 p_count => x_msg_count,
486 p_data => x_msg_data
487 );
488 End Update_Ct_Rule;
489
490
491 --===================================================================
492 -- NAME
493 -- Delete_Ct_Rule
494 --
495 -- PURPOSE
496 -- Deletes the Content Rule.
497 --
498 -- NOTES
499 --
500 -- HISTORY
501 -- 21-MAR-2001 JIELI Created
502 --===================================================================
503
504
505 PROCEDURE Delete_Ct_Rule(
506 p_api_version_number IN NUMBER,
507 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
508 p_commit IN VARCHAR2 := FND_API.G_FALSE,
509 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
510 x_return_status OUT NOCOPY VARCHAR2,
511 x_msg_count OUT NOCOPY NUMBER,
512 x_msg_data OUT NOCOPY VARCHAR2,
513 p_content_rule_id IN NUMBER,
514 p_object_version_number IN NUMBER
515 )
516
517 IS
518 L_API_NAME CONSTANT VARCHAR2(30) := 'Delete_Ct_Rule';
519 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
520 l_object_version_number NUMBER;
521
522 BEGIN
523 -- Standard Start of API savepoint
524 SAVEPOINT DELETE_Ct_Rule_PVT;
525
526 -- Standard call to check for call compatibility.
527 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
528 p_api_version_number,
529 l_api_name,
530 G_PKG_NAME)
531 THEN
532 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
533 END IF;
534
535 -- Initialize message list if p_init_msg_list is set to TRUE.
536 IF FND_API.to_Boolean( p_init_msg_list )
537 THEN
538 FND_MSG_PUB.initialize;
539 END IF;
540
541 -- Debug Message
542 IF (AMS_DEBUG_HIGH_ON) THEN
543
544 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
545 END IF;
546
547
548 -- Initialize API return status to SUCCESS
549 x_return_status := FND_API.G_RET_STS_SUCCESS;
550
551 --
552 -- Api body
553 --
554 -- Debug Message
555 IF (AMS_DEBUG_HIGH_ON) THEN
556
557 AMS_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
558 END IF;
559
560 -- Invoke table handler(AMS_CONTENT_RULES_B_PKG.Delete_Row)
561 AMS_CONTENT_RULES_B_PKG.Delete_Row(
562 p_CONTENT_RULE_ID => p_CONTENT_RULE_ID);
563 --
564 -- End of API body
565 --
566
567 -- Standard check for p_commit
568 IF FND_API.to_Boolean( p_commit )
569 THEN
570 COMMIT WORK;
571 END IF;
572
573
574 -- Debug Message
575 IF (AMS_DEBUG_HIGH_ON) THEN
576
577 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
578 END IF;
579
580 -- Standard call to get message count and if count is 1, get message info.
581 FND_MSG_PUB.Count_And_Get
582 (p_count => x_msg_count,
583 p_data => x_msg_data
584 );
585 EXCEPTION
586
587 WHEN AMS_Utility_PVT.resource_locked THEN
588 x_return_status := FND_API.g_ret_sts_error;
589 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
590
591 WHEN FND_API.G_EXC_ERROR THEN
592 ROLLBACK TO DELETE_Ct_Rule_PVT;
593 x_return_status := FND_API.G_RET_STS_ERROR;
594 -- Standard call to get message count and if count=1, get the message
595 FND_MSG_PUB.Count_And_Get (
596 p_encoded => FND_API.G_FALSE,
597 p_count => x_msg_count,
598 p_data => x_msg_data
599 );
600
601 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
602 ROLLBACK TO DELETE_Ct_Rule_PVT;
603 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
604 -- Standard call to get message count and if count=1, get the message
605 FND_MSG_PUB.Count_And_Get (
606 p_encoded => FND_API.G_FALSE,
607 p_count => x_msg_count,
608 p_data => x_msg_data
609 );
610
611 WHEN OTHERS THEN
612 ROLLBACK TO DELETE_Ct_Rule_PVT;
613 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
614 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
615 THEN
616 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
617 END IF;
618 -- Standard call to get message count and if count=1, get the message
619 FND_MSG_PUB.Count_And_Get (
620 p_encoded => FND_API.G_FALSE,
621 p_count => x_msg_count,
622 p_data => x_msg_data
623 );
624 End Delete_Ct_Rule;
625
626
627
628 --===================================================================
629 -- NAME
630 -- Lock_Ct_Rule
631 --
632 -- PURPOSE
633 -- Locks the Content Rule.
634 --
635 -- NOTES
636 --
637 -- HISTORY
638 -- 21-MAR-2001 JIELI Created
639 --===================================================================
640
641
642 PROCEDURE Lock_Ct_Rule(
643 p_api_version_number IN NUMBER,
644 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
645
646 x_return_status OUT NOCOPY VARCHAR2,
647 x_msg_count OUT NOCOPY NUMBER,
648 x_msg_data OUT NOCOPY VARCHAR2,
649
650 p_content_rule_id IN NUMBER,
651 p_object_version IN NUMBER
652 )
653
654 IS
655 L_API_NAME CONSTANT VARCHAR2(30) := 'Lock_Ct_Rule';
656 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
657 L_FULL_NAME CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
658 l_CONTENT_RULE_ID NUMBER;
659
660 CURSOR c_Ct_Rule IS
661 SELECT CONTENT_RULE_ID
662 FROM AMS_CONTENT_RULES_B
663 WHERE CONTENT_RULE_ID = p_CONTENT_RULE_ID
664 AND object_version_number = p_object_version
665 FOR UPDATE NOWAIT;
666
667 BEGIN
668
669 -- Debug Message
670 IF (AMS_DEBUG_HIGH_ON) THEN
671
672 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
673 END IF;
674
675 -- Initialize message list if p_init_msg_list is set to TRUE.
676 IF FND_API.to_Boolean( p_init_msg_list )
677 THEN
678 FND_MSG_PUB.initialize;
679 END IF;
680
681 -- Standard call to check for call compatibility.
682 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
683 p_api_version_number,
684 l_api_name,
685 G_PKG_NAME)
686 THEN
687 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
688 END IF;
689
690
691 -- Initialize API return status to SUCCESS
692 x_return_status := FND_API.G_RET_STS_SUCCESS;
693
694
695 ------------------------ lock -------------------------
696
697 IF (AMS_DEBUG_HIGH_ON) THEN
698
699
700
701 AMS_Utility_PVT.debug_message(l_full_name||': start');
702
703 END IF;
704 OPEN c_Ct_Rule;
705
706 FETCH c_Ct_Rule INTO l_CONTENT_RULE_ID;
707
708 IF (c_Ct_Rule%NOTFOUND) THEN
709 CLOSE c_Ct_Rule;
710 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
711 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
712 FND_MSG_PUB.add;
713 END IF;
714 RAISE FND_API.g_exc_error;
715 END IF;
716
717 CLOSE c_Ct_Rule;
718
719 -------------------- finish --------------------------
720 FND_MSG_PUB.count_and_get(
721 p_encoded => FND_API.g_false,
722 p_count => x_msg_count,
723 p_data => x_msg_data);
724 IF (AMS_DEBUG_HIGH_ON) THEN
725
726 AMS_Utility_PVT.debug_message(l_full_name ||': end');
727 END IF;
728 EXCEPTION
729
730 WHEN AMS_Utility_PVT.resource_locked THEN
731 x_return_status := FND_API.g_ret_sts_error;
732 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
733
734 WHEN FND_API.G_EXC_ERROR THEN
735 ROLLBACK TO LOCK_Ct_Rule_PVT;
736 x_return_status := FND_API.G_RET_STS_ERROR;
737 -- Standard call to get message count and if count=1, get the message
738 FND_MSG_PUB.Count_And_Get (
739 p_encoded => FND_API.G_FALSE,
740 p_count => x_msg_count,
741 p_data => x_msg_data
742 );
743
744 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
745 ROLLBACK TO LOCK_Ct_Rule_PVT;
746 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
747 -- Standard call to get message count and if count=1, get the message
748 FND_MSG_PUB.Count_And_Get (
749 p_encoded => FND_API.G_FALSE,
750 p_count => x_msg_count,
751 p_data => x_msg_data
752 );
753
754 WHEN OTHERS THEN
755 ROLLBACK TO LOCK_Ct_Rule_PVT;
756 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
757 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
758 THEN
759 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
760 END IF;
761 -- Standard call to get message count and if count=1, get the message
762 FND_MSG_PUB.Count_And_Get (
763 p_encoded => FND_API.G_FALSE,
764 p_count => x_msg_count,
765 p_data => x_msg_data
766 );
767 End Lock_Ct_Rule;
768
769
770 --===================================================================
771 -- NAME
772 -- check_rule_unique
773 --
774 -- PURPOSE
775 -- Checks the uniqueness of combination of object type, trigger type. object id
776 --
777 -- NOTES
778 --
779 -- HISTORY
780 -- 10-APR-2001 SOAGRAWA Created
781 --===================================================================
782
783
784
785 FUNCTION check_rule_unique(
786 p_object_type IN VARCHAR2
787 , p_trigger_code IN VARCHAR2
788 , p_object_id IN NUMBER
789 , p_enabled_flag IN VARCHAR2)
790 RETURN VARCHAR2
791 IS
792 CURSOR c_rule_det
793 IS SELECT 1
794 FROM ams_content_rules_vl
795 WHERE object_type = p_object_type
796 AND trigger_code = p_trigger_code
797 AND object_id = p_object_id
798 AND enabled_flag = p_enabled_flag;
799
800 CURSOR c_rule_det_null
801 IS SELECT 1
802 FROM ams_content_rules_vl
803 WHERE object_type = p_object_type
804 AND trigger_code = p_trigger_code
805 AND object_id IS null;
806
807 l_dummy NUMBER ;
808 BEGIN
809
810 IF (AMS_DEBUG_HIGH_ON) THEN
811
812
813
814 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_rule_unique start');
815
816 END IF;
817
818 IF p_object_id IS null
819 THEN
820 IF (AMS_DEBUG_HIGH_ON) THEN
821
822 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_rule_unique : is null');
823 END IF;
824 OPEN c_rule_det_null ;
825 FETCH c_rule_det_null INTO l_dummy ;
826 CLOSE c_rule_det_null ;
827 ELSE
828 IF (AMS_DEBUG_HIGH_ON) THEN
829
830 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_rule_unique : is not null');
831 END IF;
832 OPEN c_rule_det ;
833 FETCH c_rule_det INTO l_dummy ;
834 CLOSE c_rule_det ;
835 END IF;
836
837 IF l_dummy IS NULL THEN
838 IF (AMS_DEBUG_HIGH_ON) THEN
839
840 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_rule_unique : did not find anything');
841 END IF;
842 RETURN FND_API.g_true ;
843 ELSE
844 IF (AMS_DEBUG_HIGH_ON) THEN
845
846 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_rule_unique : found something');
847 END IF;
848 RETURN FND_API.g_false;
849 END IF;
850
851 END check_rule_unique ;
852
853
854 --===================================================================
855 -- NAME
856 -- check_ct_rule_uk_items
857 --
858 -- PURPOSE
859 -- Checks the unique items for their uniqueness
860 --
861 -- NOTES
862 --
863 -- HISTORY
864 -- 21-MAR-2001 JIELI Created
865 --===================================================================
866
867
868
869 PROCEDURE check_ct_rule_uk_items(
870 p_ct_rule_rec IN ct_rule_rec_type,
871 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
872 x_return_status OUT NOCOPY VARCHAR2)
873 IS
874 l_valid_flag VARCHAR2(1);
875 l_sql VARCHAR2(400);
876 BEGIN
877 IF (AMS_DEBUG_HIGH_ON) THEN
878
879 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_ct_rule_uk_items start');
880 END IF;
881
882 x_return_status := FND_API.g_ret_sts_success;
883 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
884 l_valid_flag := AMS_Utility_PVT.check_uniqueness(
885 'AMS_CONTENT_RULES_B',
886 'CONTENT_RULE_ID = ''' || p_ct_rule_rec.CONTENT_RULE_ID ||''''
887 );
888 ELSE
889 l_valid_flag := AMS_Utility_PVT.check_uniqueness(
890 'AMS_CONTENT_RULES_B',
891 'CONTENT_RULE_ID = ''' || p_ct_rule_rec.CONTENT_RULE_ID ||
892 ''' AND CONTENT_RULE_ID <> ' || p_ct_rule_rec.CONTENT_RULE_ID
893 );
894 END IF;
895
896 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
897 IF (AMS_DEBUG_HIGH_ON) THEN
898
899 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_ct_rule_uk_items before unique check');
900 END IF;
901 l_sql := ' WHERE OBJECT_TYPE <> ''' || p_ct_rule_rec.OBJECT_TYPE || '''';
902 l_sql := l_sql || ' AND TRIGGER_CODE <>''' || p_ct_rule_rec.TRIGGER_CODE || '''';
903 IF p_ct_rule_rec.object_id IS null
904 THEN l_sql := l_sql || ' AND OBJECT_ID IS NULL';
905 ELSE l_sql := l_sql || ' AND OBJECT_ID <> '||p_ct_rule_rec.object_id;
906 END IF;
907
908 IF (AMS_DEBUG_HIGH_ON) THEN
909
910
911
912 AMS_UTILITY_PVT.debug_message(l_sql);
913
914 END IF;
915
916 /*
917 l_valid_flag := AMS_Utility_PVT.check_uniqueness(
918 'AMS_CONTENT_RULES_B',
919 l_sql
920 );
921
922 IF l_valid_flag = FND_API.g_false
923 */
924 IF FND_API.G_FALSE = check_rule_unique(
925 p_ct_rule_rec.object_type
926 , p_ct_rule_rec.trigger_code
927 , p_ct_rule_rec.object_id
928 , p_ct_rule_rec.enabled_flag
929 )
930 THEN
931 AMS_Utility_PVT.Error_Message('AMS_CONR_ONLY_ONE');
932 x_return_status := FND_API.g_ret_sts_error;
933 RAISE FND_API.g_exc_error;
934 END IF ;
935 END IF;
936 IF (AMS_DEBUG_HIGH_ON) THEN
937
938 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_ct_rule_uk_items after unique check');
939 END IF;
940
941 IF l_valid_flag = FND_API.g_false THEN
942 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_CONTENT_RULE_ID_DUPLICATE');
943 x_return_status := FND_API.g_ret_sts_error;
944 RETURN;
945 END IF;
946
947 END check_ct_rule_uk_items;
948
949
950
951
952
953
954 --===================================================================
955 -- NAME
956 -- check_ct_rule_req_items
957 --
958 -- PURPOSE
959 -- Checks the required items for their existence
960 --
961 -- NOTES
962 --
963 -- HISTORY
964 -- 21-MAR-2001 JIELI Created
965 --===================================================================
966
967 PROCEDURE check_ct_rule_req_items(
968 p_ct_rule_rec IN ct_rule_rec_type,
969 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
970 x_return_status OUT NOCOPY VARCHAR2
971 )
972 IS
973 BEGIN
974 x_return_status := FND_API.g_ret_sts_success;
975 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
976
977
978 IF p_ct_rule_rec.object_type = FND_API.g_miss_char OR p_ct_rule_rec.object_type IS NULL THEN
979 FND_MESSAGE.set_name('AMS', 'AMS_NO_OBJECT_TYPE');
980 FND_MSG_PUB.Add;
981 x_return_status := FND_API.g_ret_sts_error;
982 RETURN;
983 END IF;
984
985 IF p_ct_rule_rec.trigger_code = FND_API.g_miss_char OR p_ct_rule_rec.trigger_code IS NULL THEN
986 FND_MESSAGE.set_name('AMS', 'AMS_NO_TRIGGER_CODE');
987 FND_MSG_PUB.Add;
988 x_return_status := FND_API.g_ret_sts_error;
989 RETURN;
990 END IF;
991
992 IF p_ct_rule_rec.cover_letter_id = FND_API.g_miss_num OR p_ct_rule_rec.cover_letter_id IS NULL THEN
993 FND_MESSAGE.set_name('AMS', 'AMS_NO_COVER_LETTER_ID');
994 FND_MSG_PUB.Add;
995
996 x_return_status := FND_API.g_ret_sts_error;
997 RETURN;
998 END IF;
999
1000 ELSE
1001
1002
1003 IF p_ct_rule_rec.object_type IS NULL THEN
1004 FND_MESSAGE.set_name('AMS', 'AMS_NO_OBJECT_TYPE');
1005 FND_MSG_PUB.Add;
1006 x_return_status := FND_API.g_ret_sts_error;
1007 RETURN;
1008 END IF;
1009
1010 IF p_ct_rule_rec.trigger_code IS NULL THEN
1011 FND_MESSAGE.set_name('AMS', 'AMS_NO_TRIGGER_CODE');
1012 FND_MSG_PUB.Add;
1013 x_return_status := FND_API.g_ret_sts_error;
1014 RETURN;
1015 END IF;
1016
1017 IF p_ct_rule_rec.cover_letter_id IS NULL THEN
1018 FND_MESSAGE.set_name('AMS', 'AMS_NO_COVER_LETTER_ID');
1019 FND_MSG_PUB.Add;
1020 x_return_status := FND_API.g_ret_sts_error;
1021 RETURN;
1022 END IF;
1023
1024 END IF;
1025
1026 END check_ct_rule_req_items;
1027
1028
1029
1030 --===================================================================
1031 -- NAME
1032 -- check_ct_rule_FK_items
1033 --
1034 -- PURPOSE
1035 -- Checks the foreign key items for their correctness
1036 --
1037 -- NOTES
1038 --
1039 -- HISTORY
1040 -- 21-MAR-2001 JIELI Created
1041 --===================================================================
1042
1043
1044 PROCEDURE check_ct_rule_FK_items(
1045 p_ct_rule_rec IN ct_rule_rec_type,
1046 x_return_status OUT NOCOPY VARCHAR2
1047 )
1048 IS
1049 BEGIN
1050 x_return_status := FND_API.g_ret_sts_success;
1051
1052 -- Enter custom code here
1053
1054 END check_ct_rule_FK_items;
1055
1056 PROCEDURE check_ct_rule_Lookup_items(
1057 p_ct_rule_rec IN ct_rule_rec_type,
1058 x_return_status OUT NOCOPY VARCHAR2
1059 )
1060 IS
1061 BEGIN
1062 x_return_status := FND_API.g_ret_sts_success;
1063
1064 -- Enter custom code here
1065
1066 END check_ct_rule_Lookup_items;
1067
1068
1069 --===================================================================
1070 -- NAME
1071 -- Check_ct_rule_Items
1072 --
1073 -- PURPOSE
1074 -- Checks the items of the content rule record
1075 --
1076 -- NOTES
1077 --
1078 -- HISTORY
1079 -- 21-MAR-2001 JIELI Created
1080 --===================================================================
1081
1082 PROCEDURE Check_ct_rule_Items (
1083 P_ct_rule_rec IN ct_rule_rec_type,
1084 p_validation_mode IN VARCHAR2,
1085 x_return_status OUT NOCOPY VARCHAR2
1086 )
1087 IS
1088 BEGIN
1089
1090 -- Check Items Uniqueness API calls
1091
1092 check_ct_rule_uk_items(
1093 p_ct_rule_rec => p_ct_rule_rec,
1094 p_validation_mode => p_validation_mode,
1095 x_return_status => x_return_status);
1096 IF x_return_status <> FND_API.g_ret_sts_success THEN
1097 RETURN;
1098 END IF;
1099
1100 -- Check Items Required/NOT NULL API calls
1101
1102 check_ct_rule_req_items(
1103 p_ct_rule_rec => p_ct_rule_rec,
1104 p_validation_mode => p_validation_mode,
1105 x_return_status => x_return_status);
1106 IF x_return_status <> FND_API.g_ret_sts_success THEN
1107 RETURN;
1108 END IF;
1109 -- Check Items Foreign Keys API calls
1110
1111 check_ct_rule_FK_items(
1112 p_ct_rule_rec => p_ct_rule_rec,
1113 x_return_status => x_return_status);
1114 IF x_return_status <> FND_API.g_ret_sts_success THEN
1115 RETURN;
1116 END IF;
1117 -- Check Items Lookups
1118
1119 check_ct_rule_Lookup_items(
1120 p_ct_rule_rec => p_ct_rule_rec,
1121 x_return_status => x_return_status);
1122 IF x_return_status <> FND_API.g_ret_sts_success THEN
1123 RETURN;
1124 END IF;
1125
1126 END Check_ct_rule_Items;
1127
1128
1129
1130 --===================================================================
1131 -- NAME
1132 -- Complete_ct_rule_Rec
1133 --
1134 -- PURPOSE
1135 -- Completes the content rule record
1136 --
1137 -- NOTES
1138 --
1139 -- HISTORY
1140 -- 21-MAR-2001 JIELI Created
1141 --===================================================================
1142
1143
1144 PROCEDURE Complete_ct_rule_Rec (
1145 p_ct_rule_rec IN ct_rule_rec_type,
1146 x_complete_rec OUT NOCOPY ct_rule_rec_type)
1147 IS
1148 l_return_status VARCHAR2(1);
1149
1150 CURSOR c_complete IS
1151 SELECT *
1152 FROM ams_content_rules_b
1153 WHERE content_rule_id = p_ct_rule_rec.content_rule_id;
1154 l_ct_rule_rec c_complete%ROWTYPE;
1155 BEGIN
1156 x_complete_rec := p_ct_rule_rec;
1157
1158
1159 OPEN c_complete;
1160 FETCH c_complete INTO l_ct_rule_rec;
1161 CLOSE c_complete;
1162
1163 -- content_rule_id
1164 IF p_ct_rule_rec.content_rule_id = FND_API.g_miss_num THEN
1165 x_complete_rec.content_rule_id := l_ct_rule_rec.content_rule_id;
1166 END IF;
1167
1168 -- created_by
1169 IF p_ct_rule_rec.created_by = FND_API.g_miss_num THEN
1170 x_complete_rec.created_by := l_ct_rule_rec.created_by;
1171 END IF;
1172
1173 -- creation_date
1174 IF p_ct_rule_rec.creation_date = FND_API.g_miss_date THEN
1175 x_complete_rec.creation_date := l_ct_rule_rec.creation_date;
1176 END IF;
1177
1178 -- last_updated_by
1179 IF p_ct_rule_rec.last_updated_by = FND_API.g_miss_num THEN
1180 x_complete_rec.last_updated_by := l_ct_rule_rec.last_updated_by;
1181 END IF;
1182
1183 -- last_updated_date
1184 IF p_ct_rule_rec.last_updated_date = FND_API.g_miss_date THEN
1185 x_complete_rec.last_updated_date := l_ct_rule_rec.last_update_date;
1186 END IF;
1187
1188 -- last_update_login
1189 IF p_ct_rule_rec.last_update_login = FND_API.g_miss_num THEN
1190 x_complete_rec.last_update_login := l_ct_rule_rec.last_update_login;
1191 END IF;
1192
1193 -- object_version_number
1194 IF p_ct_rule_rec.object_version_number = FND_API.g_miss_num THEN
1195 x_complete_rec.object_version_number := l_ct_rule_rec.object_version_number;
1196 END IF;
1197
1198 -- object_type
1199 IF p_ct_rule_rec.object_type = FND_API.g_miss_char THEN
1200 x_complete_rec.object_type := l_ct_rule_rec.object_type;
1201 END IF;
1202
1203 -- object_id
1204 IF p_ct_rule_rec.object_id = FND_API.g_miss_num THEN
1205 x_complete_rec.object_id := l_ct_rule_rec.object_id;
1206 END IF;
1207
1208 -- sender
1209 IF p_ct_rule_rec.sender = FND_API.g_miss_char THEN
1210 x_complete_rec.sender := l_ct_rule_rec.sender;
1211 END IF;
1212
1213 -- reply_to
1214 IF p_ct_rule_rec.reply_to = FND_API.g_miss_char THEN
1215 x_complete_rec.reply_to := l_ct_rule_rec.reply_to;
1216 END IF;
1217
1218 -- cover_letter_id
1219 IF p_ct_rule_rec.cover_letter_id = FND_API.g_miss_num THEN
1220 x_complete_rec.cover_letter_id := l_ct_rule_rec.cover_letter_id;
1221 END IF;
1222
1223 -- table_of_content_flag
1224 IF p_ct_rule_rec.table_of_content_flag = FND_API.g_miss_char THEN
1225 x_complete_rec.table_of_content_flag := l_ct_rule_rec.table_of_content_flag;
1226 END IF;
1227
1228 -- trigger_code
1229 IF p_ct_rule_rec.trigger_code = FND_API.g_miss_char THEN
1230 x_complete_rec.trigger_code := l_ct_rule_rec.trigger_code;
1231 END IF;
1232
1233 -- enabled_flag
1234 IF p_ct_rule_rec.enabled_flag = FND_API.g_miss_char THEN
1235 x_complete_rec.enabled_flag := l_ct_rule_rec.enabled_flag;
1236 END IF;
1237 -- Note: Developers need to modify the procedure
1238 -- to handle any business specific requirements.
1239
1240 -- sender_display_name : anchaudh
1241 IF p_ct_rule_rec.sender_display_name = FND_API.g_miss_char THEN
1242 x_complete_rec.sender_display_name := l_ct_rule_rec.sender_display_name;
1243 END IF;
1244
1245 -- delivery_mode prageorg 5/29/2006
1246 IF p_ct_rule_rec.delivery_mode = FND_API.g_miss_char THEN
1247 x_complete_rec.delivery_mode := l_ct_rule_rec.delivery_mode;
1248 END IF;
1249
1250 END Complete_ct_rule_Rec;
1251
1252
1253
1254 --===================================================================
1255 -- NAME
1256 -- Validate_ct_rule
1257 --
1258 -- PURPOSE
1259 -- Validates the content rule record
1260 --
1261 -- NOTES
1262 --
1263 -- HISTORY
1264 -- 21-MAR-2001 JIELI Created
1265 --===================================================================
1266
1267
1268 PROCEDURE Validate_ct_rule(
1269 p_api_version_number IN NUMBER,
1270 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1271 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1272 p_ct_rule_rec IN ct_rule_rec_type,
1273 p_validation_mode IN VARCHAR2,
1274 x_return_status OUT NOCOPY VARCHAR2,
1275 x_msg_count OUT NOCOPY NUMBER,
1276 x_msg_data OUT NOCOPY VARCHAR2
1277 )
1278 IS
1279 L_API_NAME CONSTANT VARCHAR2(30) := 'Validate_Ct_Rule';
1280 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1281 l_object_version_number NUMBER;
1282 l_ct_rule_rec AMS_Ct_Rule_PVT.ct_rule_rec_type;
1283
1284 BEGIN
1285 -- Standard Start of API savepoint
1286 SAVEPOINT VALIDATE_Ct_Rule_;
1287
1288 -- Standard call to check for call compatibility.
1289 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1290 p_api_version_number,
1291 l_api_name,
1292 G_PKG_NAME)
1293 THEN
1294 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1295 END IF;
1296
1297 -- Initialize message list if p_init_msg_list is set to TRUE.
1298 IF FND_API.to_Boolean( p_init_msg_list )
1299 THEN
1300 FND_MSG_PUB.initialize;
1301 END IF;
1302 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1303 Check_ct_rule_Items(
1304 p_ct_rule_rec => p_ct_rule_rec,
1305 p_validation_mode => p_validation_mode,
1306 x_return_status => x_return_status
1307 );
1308
1309 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1310 RAISE FND_API.G_EXC_ERROR;
1311 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1312 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1313 END IF;
1314 END IF;
1315
1316 Complete_ct_rule_Rec(
1317 p_ct_rule_rec => p_ct_rule_rec,
1318 x_complete_rec => l_ct_rule_rec
1319 );
1320
1321 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1322 Validate_ct_rule_Rec(
1323 p_api_version_number => 1.0,
1324 p_init_msg_list => FND_API.G_FALSE,
1325 x_return_status => x_return_status,
1326 x_msg_count => x_msg_count,
1327 x_msg_data => x_msg_data,
1328 p_ct_rule_rec => l_ct_rule_rec);
1329
1330 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1331 RAISE FND_API.G_EXC_ERROR;
1332 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1333 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1334 END IF;
1335 END IF;
1336
1337
1338 -- Debug Message
1339 IF (AMS_DEBUG_HIGH_ON) THEN
1340
1341 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1342 END IF;
1343
1344
1345 -- Initialize API return status to SUCCESS
1346 x_return_status := FND_API.G_RET_STS_SUCCESS;
1347
1348
1349 -- Debug Message
1350 IF (AMS_DEBUG_HIGH_ON) THEN
1351
1352 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1353 END IF;
1354
1355 -- Standard call to get message count and if count is 1, get message info.
1356 FND_MSG_PUB.Count_And_Get
1357 (p_count => x_msg_count,
1358 p_data => x_msg_data
1359 );
1360 EXCEPTION
1361
1362 WHEN AMS_Utility_PVT.resource_locked THEN
1363 x_return_status := FND_API.g_ret_sts_error;
1364 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1365
1366 WHEN FND_API.G_EXC_ERROR THEN
1367 ROLLBACK TO VALIDATE_Ct_Rule_;
1368 x_return_status := FND_API.G_RET_STS_ERROR;
1369 -- Standard call to get message count and if count=1, get the message
1370 FND_MSG_PUB.Count_And_Get (
1371 p_encoded => FND_API.G_FALSE,
1372 p_count => x_msg_count,
1373 p_data => x_msg_data
1374 );
1375
1376 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1377 ROLLBACK TO VALIDATE_Ct_Rule_;
1378 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1379 -- Standard call to get message count and if count=1, get the message
1380 FND_MSG_PUB.Count_And_Get (
1381 p_encoded => FND_API.G_FALSE,
1382 p_count => x_msg_count,
1383 p_data => x_msg_data
1384 );
1385
1386 WHEN OTHERS THEN
1387 ROLLBACK TO VALIDATE_Ct_Rule_;
1388 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1389 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1390 THEN
1391 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1392 END IF;
1393 -- Standard call to get message count and if count=1, get the message
1394 FND_MSG_PUB.Count_And_Get (
1395 p_encoded => FND_API.G_FALSE,
1396 p_count => x_msg_count,
1397 p_data => x_msg_data
1398 );
1399 End Validate_Ct_Rule;
1400
1401
1402 --===================================================================
1403 -- NAME
1404 -- Validate_ct_rule_rec
1405 --
1406 -- PURPOSE
1407 -- Validates the content rule record
1408 --
1409 -- NOTES
1410 --
1411 -- HISTORY
1412 -- 21-MAR-2001 JIELI Created
1413 --===================================================================
1414
1415 PROCEDURE Validate_ct_rule_rec(
1416 p_api_version_number IN NUMBER,
1417 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1418 x_return_status OUT NOCOPY VARCHAR2,
1419 x_msg_count OUT NOCOPY NUMBER,
1420 x_msg_data OUT NOCOPY VARCHAR2,
1421 p_ct_rule_rec IN ct_rule_rec_type
1422 )
1423 IS
1424 BEGIN
1425 -- Initialize message list if p_init_msg_list is set to TRUE.
1426 IF FND_API.to_Boolean( p_init_msg_list )
1427 THEN
1428 FND_MSG_PUB.initialize;
1429 END IF;
1430
1431 -- Initialize API return status to SUCCESS
1432 x_return_status := FND_API.G_RET_STS_SUCCESS;
1433
1434 -- Hint: Validate data
1435 -- If data not valid
1436 -- THEN
1437 -- x_return_status := FND_API.G_RET_STS_ERROR;
1438
1439 -- Debug Message
1440 IF (AMS_DEBUG_HIGH_ON) THEN
1441
1442 AMS_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1443 END IF;
1444 -- Standard call to get message count and if count is 1, get message info.
1445 FND_MSG_PUB.Count_And_Get
1446 (p_count => x_msg_count,
1447 p_data => x_msg_data
1448 );
1449 END Validate_ct_rule_Rec;
1450
1451
1452 --===================================================================
1453 -- NAME
1454 -- check_content_rule
1455 --
1456 -- PURPOSE
1457 -- sees if there are any content rules for given object
1458 -- and submits a request to Fulfillment
1459 --
1460 -- NOTES
1461 --
1462 --
1463 -- ALGORITHM
1464 -- see if there is any object specific rule for this obj type -- trig code -- object id (1)
1465 -- if yes use this to get template id
1466 -- if no
1467 -- see if there is any general rule for this obj type -- trig code (2)
1468 -- if no => dont send any request
1469 -- if yes =>
1470 -- see if it has been disabled for this particular obj id (3)
1471 -- if yes => (has been disabled) dont send any request
1472 -- if no => (has not been disabled) send this template id
1473 --
1474 --
1475 -- HISTORY
1476 -- 10-apr-2002 soagrawa Created
1477 -- 15-jul-2002 soagrawa Modified call to submit batch request to pass it source code
1478 -- and source code id of the object. Added cursors for that.
1479 -- 30-sep-2003 soagrawa Modified for 11.5.10 JTO integration
1480 -- 14-dec-2004 anchaudh Modified call to pass extended information to fulfillment server
1481 -- 29-May-2006 prageorg Added handling of delivery_mode for Multipart bug fix
1482 --===================================================================
1483
1484 PROCEDURE check_content_rule(
1485 p_api_version IN NUMBER,
1486 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
1487 p_commit IN VARCHAR2 := FND_API.g_false,
1488 p_object_type IN VARCHAR2,
1489 p_object_id IN NUMBER,
1490 p_trigger_type IN VARCHAR2,
1491 p_requestor_type IN VARCHAR2 := NULL,
1492 p_requestor_id IN NUMBER,
1493 p_server_group IN NUMBER := NULL,
1494 p_scheduled_date IN DATE := SYSDATE,
1495 p_media_types IN VARCHAR2 := 'E',
1496 p_archive IN VARCHAR2 := 'N',
1497 p_log_user_ih IN VARCHAR2 := 'Y', --anchaudh: fixed to be able to log interactions for fulfillment rules related to Events.
1498 p_request_type IN VARCHAR2 := 'E',
1499 p_language_code IN VARCHAR2 := NULL,
1500 p_profile_id IN NUMBER := NULL,
1501 p_order_id IN NUMBER := NULL,
1502 p_collateral_id IN NUMBER := NULL,
1503 p_party_id IN JTF_FM_REQUEST_GRP.G_NUMBER_TBL_TYPE,
1504 p_email IN JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE,
1505 p_fax IN JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE,
1506 p_bind_names IN JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE,
1507 p_bind_values IN JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE,
1508 x_return_status OUT NOCOPY VARCHAR2,
1509 x_msg_count OUT NOCOPY NUMBER,
1510 x_msg_data OUT NOCOPY VARCHAR2,
1511 x_request_history_id OUT NOCOPY NUMBER
1512 )
1513 IS
1514
1515 CURSOR c_rules_generic IS
1516 SELECT cover_letter_id, email_subject,sender, reply_to,sender_display_name, delivery_mode
1517 FROM ams_content_rules_vl
1518 WHERE object_type = p_object_type
1519 AND trigger_code = p_trigger_type
1520 AND object_id IS NULL;
1521
1522
1523 CURSOR c_rules_for_object_enabled IS
1524 SELECT cover_letter_id, email_subject,sender, reply_to,sender_display_name, delivery_mode
1525 FROM ams_content_rules_vl
1526 WHERE object_type = p_object_type
1527 AND trigger_code = p_trigger_type
1528 AND object_id = p_object_id
1529 AND enabled_flag = 'Y'; -- 'Y' for (1) ; 'N' for (3)
1530
1531 CURSOR c_rules_for_object_disabled IS
1532 SELECT cover_letter_id, email_subject,sender, reply_to,sender_display_name, delivery_mode
1533 FROM ams_content_rules_vl
1534 WHERE object_type = p_object_type
1535 AND trigger_code = p_trigger_type
1536 AND object_id = p_object_id
1537 AND enabled_flag = 'N'; -- 'Y' for (1) ; 'N' for (3)
1538
1539 -- cursor for source codes added by soagrawa on 15-jul-2002
1540 CURSOR c_source_code IS
1541 SELECT source_code, source_code_id
1542 FROM ams_source_codes
1543 WHERE arc_source_code_for = p_object_type
1544 AND source_code_for_id = p_object_id
1545 AND active_flag = 'Y';
1546
1547
1548 l_send_request NUMBER;
1549
1550 l_template_id NUMBER;
1551 l_dummy_template_id NUMBER;
1552 l_email_subject VARCHAR2(240);
1553 l_dummy_email_subject VARCHAR2(240);
1554
1555 -- start dhsingh on 02-sep-2004
1556 l_sender VARCHAR2(2000);
1557 l_sender_display_name VARCHAR2(2000);
1558 l_dummy_sender_display_name VARCHAR2(2000);
1559 l_dummy_sender VARCHAR2(2000);
1560 l_reply_to VARCHAR2(2000);
1561 l_dummy_reply_to VARCHAR2(2000);
1562 -- end dhsingh 0n 02-sep-2004
1563
1564 l_return_status VARCHAR2(1);
1565 l_msg_count NUMBER;
1566 l_msg_data VARCHAR2(2000);
1567
1568 l_source_code VARCHAR2(30);
1569 l_source_code_id NUMBER;
1570 l_delivery_mode VARCHAR2(30); -- prageorg 29-May-2006 for Multipart fix
1571 l_dummy_delivery_mode VARCHAR2(30); -- prageorg 29-May-2006 for Multipart fix
1572
1573 -- soagrawa added these definitions for integrating with 1159 1-to-1 FFM
1574 -- 12-dec-2002
1575 l_order_header_rec JTF_Fulfillment_PUB.ORDER_HEADER_REC_TYPE;
1576 l_order_line_tbl JTF_Fulfillment_PUB.ORDER_LINE_TBL_TYPE;
1577 l_fulfill_electronic_rec JTF_FM_OCM_REQUEST_GRP.FULFILL_ELECTRONIC_REC_TYPE;
1578 y_order_header_rec ASO_ORDER_INT.ORDER_HEADER_REC_TYPE;
1579 l_extended_header VARCHAR2(32767) ;
1580
1581
1582 BEGIN
1583
1584 x_request_history_id := -1;
1585 x_return_status := FND_API.G_RET_STS_SUCCESS;
1586
1587 l_send_request := 0;
1588
1589 IF (AMS_DEBUG_HIGH_ON) THEN
1590
1591
1592
1593 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : start');
1594
1595 END IF;
1596 -- (1)
1597 IF (AMS_DEBUG_HIGH_ON) THEN
1598
1599 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : before check for object level trigger');
1600 END IF;
1601 OPEN c_rules_for_object_enabled;
1602 FETCH c_rules_for_object_enabled INTO l_dummy_template_id, l_dummy_email_subject, l_dummy_sender, l_dummy_reply_to,l_dummy_sender_display_name, l_dummy_delivery_mode;-- dhsingh on 02-sep-2004
1603 IF c_rules_for_object_enabled%NOTFOUND
1604 THEN
1605 IF (AMS_DEBUG_HIGH_ON) THEN
1606
1607 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : NOT FOUND object level trigger');
1608 END IF;
1609 -- (2)
1610 IF (AMS_DEBUG_HIGH_ON) THEN
1611
1612 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : before check for generic level trigger');
1613 END IF;
1614 OPEN c_rules_generic;
1615 FETCH c_rules_generic INTO l_dummy_template_id, l_dummy_email_subject,l_dummy_sender, l_dummy_reply_to,l_dummy_sender_display_name, l_dummy_delivery_mode;-- dhsingh on 02-sep-2004
1616 IF c_rules_generic%NOTFOUND
1617 THEN
1618 -- not found
1619 IF (AMS_DEBUG_HIGH_ON) THEN
1620
1621 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : NOT FOUND generic level trigger');
1622 END IF;
1623 NULL;
1624 ELSE
1625 -- found
1626 IF (AMS_DEBUG_HIGH_ON) THEN
1627
1628 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : FOUND generic level trigger');
1629 END IF;
1630 l_template_id := l_dummy_template_id;
1631 l_email_subject := l_dummy_email_subject;
1632 -- start dhsingh on 02-sep-2004
1633 l_sender := l_dummy_sender;
1634 l_reply_to := l_dummy_reply_to;
1635 l_sender_display_name := l_dummy_sender_display_name;
1636 -- end dhsingh on 02-sep-2004
1637 -- (3)
1638 l_delivery_mode := l_dummy_delivery_mode;
1639 IF (AMS_DEBUG_HIGH_ON) THEN
1640
1641 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : before check for is generic level trigger disabled');
1642 END IF;
1643 OPEN c_rules_for_object_disabled;
1644 FETCH c_rules_for_object_disabled INTO l_dummy_template_id, l_dummy_email_subject, l_dummy_sender, l_dummy_reply_to,l_dummy_sender_display_name, l_dummy_delivery_mode;-- dhsingh on 02-sep-2004
1645 IF c_rules_for_object_disabled%NOTFOUND
1646 THEN
1647 -- not found
1648 IF (AMS_DEBUG_HIGH_ON) THEN
1649
1650 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : generic level trigger NOT disabled');
1651 END IF;
1652 l_send_request := 1;
1653 IF (AMS_DEBUG_HIGH_ON) THEN
1654
1655 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : template id is '||l_template_id);
1656 END IF;
1657 IF (AMS_DEBUG_HIGH_ON) THEN
1658
1659 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : subject is '||l_email_subject);
1660 END IF;
1661 -- start dhsingh on 02-sep-2004
1662 IF (AMS_DEBUG_HIGH_ON) THEN
1663 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : sender is '||l_sender);
1664 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : reply-to is '||l_reply_to);
1665 END IF;
1666 -- end dhsingh on 02-sep-2004
1667
1668 ELSE
1669 -- found
1670 IF (AMS_DEBUG_HIGH_ON) THEN
1671
1672 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : generic level trigger IS disabled');
1673 END IF;
1674 NULL;
1675 END IF;
1676 CLOSE c_rules_for_object_disabled;
1677
1678 END IF;
1679 CLOSE c_rules_generic;
1680
1681 ELSE
1682 IF (AMS_DEBUG_HIGH_ON) THEN
1683
1684 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : FOUND object level trigger');
1685 END IF;
1686 -- found
1687 l_send_request := 1;
1688 l_template_id := l_dummy_template_id;
1689 l_email_subject := l_dummy_email_subject;
1690 -- start dhsingh on 02-sep-2004
1691 l_sender := l_dummy_sender;
1692 l_reply_to := l_dummy_reply_to;
1693 l_sender_display_name := l_dummy_sender_display_name;
1694 -- end dhsingh on 02-sep-2004
1695 -- prageorg 29-May-2006
1696 l_delivery_mode := l_dummy_delivery_mode;
1697 IF (AMS_DEBUG_HIGH_ON) THEN
1698
1699 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : FOUND object level trigger id is '||l_template_id);
1700 END IF;
1701 IF (AMS_DEBUG_HIGH_ON) THEN
1702
1703 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : FOUND object level trigger subject is '||l_email_subject);
1704 END IF;
1705 END IF;
1706 -- start dhsingh on 02-sep-2004
1707 IF (AMS_DEBUG_HIGH_ON) THEN
1708 begin
1709 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : sender is '||l_sender);
1710 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : reply-to is '||l_reply_to);
1711 end;
1712 END IF;
1713 -- end dhsingh on 02-sep-2004
1714 CLOSE c_rules_for_object_enabled;
1715
1716
1717 IF l_send_request = 1
1718 THEN
1719
1720
1721 -- soagrawa added 15-jul-2002
1722 -- get source_code info for the object
1723 OPEN c_source_code;
1724 FETCH c_source_code INTO l_source_code, l_source_code_id;
1725 CLOSE c_source_code ;
1726
1727 IF (AMS_DEBUG_HIGH_ON) THEN
1728 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : BEFORE sending REQUEST ');
1729 END IF;
1730
1731 -- soagrawa 12-dec-2002 replaced AMF callout with JTF 1-to-1 call for 11.5.9
1732
1733 l_fulfill_electronic_rec.template_id := l_template_id;
1734 l_fulfill_electronic_rec.object_type := 'AMS_'||p_object_type;-- modified for 11.5.10
1735 l_fulfill_electronic_rec.object_id := p_object_id;
1736 l_fulfill_electronic_rec.source_code := l_source_code;
1737 l_fulfill_electronic_rec.source_code_id := l_source_code_id;
1738 -- l_fulfill_electronic_rec.requestor_type := p_requestor_type;
1739 l_fulfill_electronic_rec.requestor_id := p_requestor_id; --l_resource_id;
1740 -- l_fulfill_electronic_rec.server_group := p_server_group;
1741 -- l_fulfill_electronic_rec.schedule_date := p_scheduled_date;
1742 l_fulfill_electronic_rec.media_types := p_media_types;
1743 --l_fulfill_electronic_rec.archive := 'N'; -- thts the default
1744 l_fulfill_electronic_rec.log_user_ih := p_log_user_ih;
1745 l_fulfill_electronic_rec.request_type := p_request_type;
1746 --l_fulfill_electronic_rec.profile_id := p_profile_id;
1747 --l_fulfill_electronic_rec.order_id := order_id;
1748 --l_fulfill_electronic_rec.collateral_id := collateral_id;
1749 l_fulfill_electronic_rec.subject := l_email_subject;
1750 --l_fulfill_electronic_rec.party_id := party_id;
1751 --l_fulfill_electronic_rec.email := email;
1752 --l_fulfill_electronic_rec.fax := fax;
1753 l_fulfill_electronic_rec.bind_values := p_bind_values;
1754 l_fulfill_electronic_rec.bind_names := p_bind_names;
1755 --l_fulfill_electronic_rec.email_text := email_text;
1756 --l_fulfill_electronic_rec.content_name := content_name;
1757 --l_fulfill_electronic_rec.content_type := content_type;
1758 l_fulfill_electronic_rec.stop_list_bypass := 'B'; -- added for 11.5.10
1759 l_fulfill_electronic_rec.email_format := nvl(l_delivery_mode, 'BOTH');
1760
1761 --start. dhsingh added extended information to pass it to fulfillment server on 02-sep-2004
1762 IF (l_sender IS NOT NULL ) OR (l_reply_to IS NOT null) OR (l_sender_display_name IS NOT null)
1763 THEN
1764 l_extended_header := '<extended_header>';
1765
1766 IF l_sender IS NOT NULL THEN
1767 l_extended_header := l_extended_header || '<header_name>email_from_address</header_name><header_value>' ||l_sender|| '</header_value>';
1768 END IF;
1769 IF l_reply_to IS NOT NULL THEN
1770 l_extended_header := l_extended_header || '<header_name>email_reply_to_address</header_name><header_value>' ||l_reply_to|| '</header_value>';
1771 END IF;
1772 IF l_sender_display_name IS NOT NULL THEN
1773 l_extended_header := l_extended_header || '<header_name>sender_display_name</header_name><header_value>' ||l_sender_display_name|| '</header_value>';
1774 END IF;
1775
1776 l_extended_header := l_extended_header || '</extended_header>';
1777 /*
1778 l_extended_header := '<extended_header>
1779 <header_name>email_from_address</header_name>
1780 <header_value>' ||l_sender|| '</header_value>
1781 <header_name>email_reply_to_address</header_name>
1782 <header_value>' ||l_reply_to|| '</header_value>
1783 </extended_header>';
1784 */
1785 l_fulfill_electronic_rec.extended_header := l_extended_header;
1786 END IF;
1787 -- end dhsingh on 02-sep-2004
1788
1789 -- soagrawa modified for 11.5.10
1790 --JTF_FM_OCM_REQUEST_GRP.create_fulfillment
1791 JTF_FM_OCM_REND_REQ.create_fulfillment_rendition
1792 (
1793 p_init_msg_list => p_init_msg_list,
1794 p_api_version => p_api_version,
1795 p_commit => p_commit,
1796 p_order_header_rec => l_order_header_rec,
1797 p_order_line_tbl => l_order_line_tbl,
1798 p_fulfill_electronic_rec => l_fulfill_electronic_rec,
1799 p_request_type => p_request_type,
1800 x_return_status => x_return_status,
1801 x_msg_count => x_msg_count,
1802 x_msg_data => x_msg_data,
1803 x_order_header_rec => y_order_header_rec,
1804 x_request_history_id => x_request_history_id
1805 );
1806
1807 IF (AMS_DEBUG_HIGH_ON) THEN
1808 ams_utility_pvt.debug_message('l_fulfill_electronic_rec.template_id := '||l_template_id);
1809 ams_utility_pvt.debug_message('l_fulfill_electronic_rec.version_id := '||'1');
1810 ams_utility_pvt.debug_message('l_fulfill_electronic_rec.object_type := '||p_object_type);
1811 ams_utility_pvt.debug_message('l_fulfill_electronic_rec.object_id := '||p_object_id);
1812 ams_utility_pvt.debug_message(' l_fulfill_electronic_rec.source_code := '||l_source_code);
1813 ams_utility_pvt.debug_message('l_fulfill_electronic_rec.source_code_id := '||l_source_code_id);
1814 ams_utility_pvt.debug_message('l_fulfill_electronic_rec.requestor_type := '||p_requestor_type);
1815 ams_utility_pvt.debug_message('l_fulfill_electronic_rec.requestor_id := '||p_requestor_id); --l_resource_id;
1816 ams_utility_pvt.debug_message('l_fulfill_electronic_rec.server_group := '||p_server_group);
1817 ams_utility_pvt.debug_message('l_fulfill_electronic_rec.schedule_date := '||p_scheduled_date);
1818 ams_utility_pvt.debug_message('l_fulfill_electronic_rec.media_types := '||p_media_types); --??
1819 --l_fulfill_electronic_rec.archive := 'N'; -- thts the default
1820 ams_utility_pvt.debug_message('l_fulfill_electronic_rec.log_user_ih := '||p_log_user_ih);
1821 ams_utility_pvt.debug_message('l_fulfill_electronic_rec.request_type := '||p_request_type);
1822 --l_fulfill_electronic_rec.profile_id := p_profile_id;
1823 --l_fulfill_electronic_rec.order_id := order_id;
1824 --l_fulfill_electronic_rec.collateral_id := collateral_id;
1825 ams_utility_pvt.debug_message('l_fulfill_electronic_rec.subject := '||l_email_subject);
1826 -- start dhsingh on 02-sep-2004
1827 ams_utility_pvt.debug_message('l_fulfill_electronic_rec.extended_header := '||l_extended_header);
1828 -- end dhsingh on 02-sep-2004
1829 ams_utility_pvt.debug_message('Length of bind variables names '|| p_bind_names.count);
1830 ams_utility_pvt.debug_message('Length of bind variables values '|| p_bind_values.count);
1831 ams_utility_pvt.debug_message('Delivery mode '|| l_delivery_mode);
1832
1833 for i IN 1..p_bind_values.count LOOP
1834 ams_utility_pvt.debug_message(i||': bind name ' ||p_bind_names(i));
1835 ams_utility_pvt.debug_message(i||': bind value ' ||p_bind_values(i));
1836 end loop;
1837
1838
1839
1840 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : AFTER sending REQUEST ');
1841 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : AFTER sending REQUEST template id sent was '||l_template_id);
1842 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : sending REQUEST was '||x_return_status);
1843 AMS_UTILITY_PVT.debug_message(G_PKG_NAME||' Private API: check_content_rule : AFTER sending REQUEST req_his_id is '||x_request_history_id);
1844 END IF;
1845 END IF;
1846
1847
1848 -- see if there is any object specific rule for this obj type -- trig code -- object id (1)
1849 -- if yes use this to get template id
1850 -- if no
1851 -- see if there is any general rule for this obj type -- trig code (2)
1852 -- if no => dont send any request
1853 -- if yes =>
1854 -- see if it has been disabled for this particular obj id (3)
1855 -- if yes => (has been disabled) dont send any request
1856 -- if no => (has not been disabled) send this template id
1857
1858 END check_content_rule;
1859
1860
1861 END AMS_Ct_Rule_PVT;