[Home] [Help]
PACKAGE BODY: APPS.AMS_CAMPAIGN_PVT
Source
1 PACKAGE BODY AMS_Campaign_PVT AS
2 /* $Header: amsvcpnb.pls 120.4 2006/07/21 05:48:33 prageorg ship $ */
3
4
5 g_pkg_name CONSTANT VARCHAR2(30):='AMS_Campaign_PVT';
6
7
8 ---------------------------------------------------------------------
9 -- PROCEDURE
10 -- create_campaign
11 --
12 -- HISTORY
13 -- 10/01/99 holiu Created.
14 -- 08/31/00 ptendulk Added nvl in the insert statement for
15 -- global flag.
16 -- 09/27/00 ptendulk Added currency conversion api to conver the
17 -- transaction currency into functional currency
18 -- 01/23/01 julou Commented out budget_amount_tc, budget_amount_fc,
19 -- media_type_code, media_id, channel_id from insert
20 -- 06-Feb-2001 ptendulk Added program descriptive flexfield attributes.
21 -- 31-May-2001 ptendulk Changed the call to copy seeded metric. pass RCAM for programs
22 ---------------------------------------------------------------------
23 AMS_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
24 AMS_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
25 AMS_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
26
27 PROCEDURE create_campaign(
28 p_api_version IN NUMBER,
29 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
30 p_commit IN VARCHAR2 := FND_API.g_false,
31 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
32
33 x_return_status OUT NOCOPY VARCHAR2,
34 x_msg_count OUT NOCOPY NUMBER,
35 x_msg_data OUT NOCOPY VARCHAR2,
36
37 p_camp_rec IN camp_rec_type,
38 x_camp_id OUT NOCOPY NUMBER
39 )
40 IS
41
42 l_api_version CONSTANT NUMBER := 1.0;
43 l_api_name CONSTANT VARCHAR2(30) := 'create_campaign';
44 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
45
46 l_return_status VARCHAR2(1);
47 l_camp_rec camp_rec_type := p_camp_rec;
48 l_camp_count NUMBER;
49 l_bu_id NUMBER;
50 l_org_id NUMBER;
51
52 CURSOR c_camp_seq IS
53 SELECT ams_campaigns_all_b_s.NEXTVAL
54 FROM DUAL;
55
56 CURSOR c_camp_count(camp_id IN NUMBER) IS
57 SELECT COUNT(*)
58 FROM ams_campaigns_vl
59 WHERE campaign_id = camp_id;
60
61 /**
62 CURSOR c_parent_business_unit (p_parent_campaign_id IN NUMBER, p_org_id IN NUMBER) IS
63 SELECT business_unit_id
64 from ams_campaigns_all_b
65 where campaign_id = p_parent_campaign_id
66 and exists (
67 SELECT 1 FROM hr_all_organization_units_vl
68 WHERE business_group_id IN (
69 SELECT business_group_id FROM hr_all_organization_units_vl
70 WHERE organization_id = p_org_id
71 AND NVL(date_from, SYSDATE) <= SYSDATE
72 AND NVL(date_to, SYSDATE) >= SYSDATE)
73 AND type = 'BU'
74 AND NVL(date_from, SYSDATE) <= SYSDATE
75 AND NVL(date_to, SYSDATE) >= SYSDATE
76 AND organization_id = business_unit_id
77 );
78 **/
79
80 CURSOR c_parent_business_unit (p_parent_campaign_id IN NUMBER) IS
81 SELECT business_unit_id
82 from ams_campaigns_all_b
83 where campaign_id = p_parent_campaign_id
84 and exists (
85 SELECT 1
86 FROM hr_all_organization_units_vl
87 WHERE business_group_id = fnd_profile.value('PER_BUSINESS_GROUP_ID')
88 AND NVL(date_from, SYSDATE) <= SYSDATE
89 AND NVL(date_to, SYSDATE) >= SYSDATE
90 AND type = 'BU'
91 AND organization_id = business_unit_id);
92
93 CURSOR c_parent_confi_flag (p_parent_campaign_id IN NUMBER) IS
94 select private_flag
95 from ams_campaigns_all_b
96 where campaign_id = p_parent_campaign_id;
97
98 l_access_rec AMS_Access_Pvt.access_rec_type ;
99 l_dummy_id NUMBER ;
100 l_rollup_type VARCHAR2(30);
101
102 l_related_source_code VARCHAR2(30) ;
103 l_related_source_id NUMBER ;
104
105 BEGIN
106
107 --------------------- initialize -----------------------
108 SAVEPOINT create_campaign;
109
110 IF (AMS_DEBUG_HIGH_ON) THEN
111
112
113
114 AMS_Utility_PVT.debug_message(l_full_name||': start');
115
116 END IF;
117
118 IF FND_API.to_boolean(p_init_msg_list) THEN
119 FND_MSG_PUB.initialize;
120 END IF;
121
122 IF NOT FND_API.compatible_api_call(
123 l_api_version,
124 p_api_version,
125 l_api_name,
126 g_pkg_name
127 ) THEN
128 RAISE FND_API.g_exc_unexpected_error;
129 END IF;
130
131 x_return_status := FND_API.g_ret_sts_success;
132
133 ----------------------- validate -----------------------
134 IF (AMS_DEBUG_HIGH_ON) THEN
135
136 AMS_Utility_PVT.debug_message(l_full_name ||': validate');
137 END IF;
138
139 -- Following code is commented by ptendulk on 06-Feb-2001
140 -- as we are not using inherit attribute flag
141 -- This might need to be changed if we define any criteria for
142 -- copying campaigns attribute when campaign being copied.
143 --
144 -- handle inherit_attributes_flag
145 --AMS_CampaignRules_PVT.handle_camp_inherit_flag(
146 -- p_camp_rec.parent_campaign_id,
147 -- p_camp_rec.rollup_type,
148 -- l_camp_rec.inherit_attributes_flag,
149 -- l_return_status
150 --);
151 --IF l_return_status = FND_API.g_ret_sts_error THEN
152 -- RAISE FND_API.g_exc_error;
153 --ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
154 -- RAISE FND_API.g_exc_unexpected_error;
155 --END IF;
156
157 -- handle status
158 AMS_CampaignRules_PVT.handle_camp_status(
159 p_camp_rec.user_status_id,
160 l_camp_rec.status_code,
161 l_return_status
162 );
163 IF l_return_status = FND_API.g_ret_sts_error THEN
164 RAISE FND_API.g_exc_error;
165 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
166 RAISE FND_API.g_exc_unexpected_error;
167 END IF;
168
169 -- default campaign calendar
170 IF l_camp_rec.campaign_calendar IS NULL
171 AND (l_camp_rec.start_period_name IS NOT NULL
172 OR l_camp_rec.end_period_name IS NOT NULL)
173 THEN
174 l_camp_rec.campaign_calendar := FND_PROFILE.value('AMS_CAMPAIGN_DEFAULT_CALENDER');
175 END IF;
176
177 -- default source_code
178 IF l_camp_rec.source_code IS NULL AND
179 l_camp_rec.rollup_type <> 'RCAM'
180 THEN
181 -- choang - 16-May-2000
182 -- Replaced get_source_code with get_new_source_code
183 -- NOTE: must implement global flag
184 l_camp_rec.source_code := AMS_SourceCode_PVT.get_new_source_code (
185 p_object_type => 'CAMP',
186 p_custsetup_id => l_camp_rec.custom_setup_id,
187 p_global_flag => l_camp_rec.global_flag
188 );
189 --l_camp_rec.source_code := AMS_SourceCode_PVT.get_source_code(
190 -- 'CAMP',
191 -- l_camp_rec.campaign_type
192 --);
193 END IF;
194
195 validate_campaign(
196 p_api_version => l_api_version,
197 p_init_msg_list => p_init_msg_list,
198 p_validation_level => p_validation_level,
199 x_return_status => l_return_status,
200 x_msg_count => x_msg_count,
201 x_msg_data => x_msg_data,
202 p_camp_rec => l_camp_rec
203 );
204 IF l_return_status = FND_API.g_ret_sts_error THEN
205 RAISE FND_API.g_exc_error;
206 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
207 RAISE FND_API.g_exc_unexpected_error;
208 END IF;
209
210
211
212 -- ==========================================================
213 -- Following code is added by ptendulk on 09/27/2000
214 -- the code will convert the transaction currency in to
215 -- functional currency.
216 -- ==========================================================
217 IF l_camp_rec.budget_amount_tc IS NOT NULL THEN
218 AMS_CampaignRules_PVT.Convert_Camp_Currency(
219 p_tc_curr => l_camp_rec.transaction_currency_code,
220 p_tc_amt => l_camp_rec.budget_amount_tc,
221 x_fc_curr => l_camp_rec.functional_currency_code,
222 x_fc_amt => l_camp_rec.budget_amount_fc
223 ) ;
224 END IF ;
225
226
227 -- try to generate a unique id from the sequence
228 IF l_camp_rec.campaign_id IS NULL THEN
229 LOOP
230 OPEN c_camp_seq;
231 FETCH c_camp_seq INTO l_camp_rec.campaign_id;
232 CLOSE c_camp_seq;
233
234 OPEN c_camp_count(l_camp_rec.campaign_id);
235 FETCH c_camp_count INTO l_camp_count;
236 CLOSE c_camp_count;
237
238 EXIT WHEN l_camp_count = 0;
239 END LOOP;
240 END IF ;
241
242 -- Added by rmajumda (09/15/05). MOAC changes
243 l_org_id := fnd_profile.value('DEFAULT_ORG_ID');
244
245 -- Logic for Business Unit (8-Aug-2005 mayjain)
246 if (l_camp_rec.parent_campaign_id is not null)
247 then
248 --OPEN c_parent_business_unit (l_camp_rec.parent_campaign_id, fnd_profile.value('ORG_ID'));
249 -- MOAC changes
250 OPEN c_parent_business_unit (l_camp_rec.parent_campaign_id);
251 FETCH c_parent_business_unit into l_camp_rec.business_unit_id;
252 CLOSE c_parent_business_unit;
253
254 AMS_Utility_PVT.debug_message(l_full_name ||': Business Unit = ' || to_char(l_camp_rec.business_unit_id));
255 AMS_Utility_PVT.debug_message(l_full_name ||': Parent Campaign Id = ' || to_char(l_camp_rec.parent_campaign_id));
256 AMS_Utility_PVT.debug_message(l_full_name ||': Org Id = ' || to_char(fnd_profile.value('ORG_ID')));
257
258 OPEN c_parent_confi_flag (l_camp_rec.parent_campaign_id);
259 FETCH c_parent_confi_flag into l_camp_rec.private_flag;
260 CLOSE c_parent_confi_flag;
261 end if;
262 -- Logic for Business Unit (8-Aug-2005 mayjain)
263
264
265
266 -------------------------- insert --------------------------
267 IF (AMS_DEBUG_HIGH_ON) THEN
268
269 AMS_Utility_PVT.debug_message(l_full_name ||': insert');
270 END IF;
271
272 -----------------------------------------------------------------
273 -- budget_amount_tc, budget_amount_fc, media_type_code, media_id,
274 -- channel_id are commented out by julou on 01/23/00
275 -----------------------------------------------------------------
276 INSERT INTO ams_campaigns_all_b(
277 campaign_id,
278 last_update_date,
279 last_updated_by,
280 creation_date,
281 created_by,
282 last_update_login,
283 object_version_number,
284 owner_user_id,
285 user_status_id,
286 status_code,
287 status_date,
288 active_flag,
289 private_flag,
290 partner_flag,
291 template_flag,
292 cascade_source_code_flag,
293 inherit_attributes_flag,
294 source_code,
295 rollup_type,
296 campaign_type,
297 media_type_code,
298 priority,
299 fund_source_type,
300 fund_source_id,
301 parent_campaign_id,
302 application_id,
303 qp_list_header_id,
304 org_id,
305 media_id,
306 channel_id,
307 event_type,
308 arc_channel_from,
309 dscript_name,
310 transaction_currency_code,
311 functional_currency_code,
312 budget_amount_tc,
313 budget_amount_fc,
314 forecasted_plan_start_date,
315 forecasted_plan_end_date,
316 forecasted_exec_start_date,
317 forecasted_exec_end_date,
318 actual_plan_start_date,
319 actual_plan_end_date,
320 actual_exec_start_date,
321 actual_exec_end_date,
322 inbound_url,
323 inbound_email_id,
324 inbound_phone_no,
325 duration,
326 duration_uom_code,
327 ff_priority,
328 ff_override_cover_letter,
329 ff_shipping_method,
330 ff_carrier,
331 content_source,
332 cc_call_strategy,
333 cc_manager_user_id,
334 forecasted_revenue,
335 actual_revenue,
336 forecasted_cost,
337 actual_cost,
338 forecasted_response,
339 actual_response,
340 target_response,
341 country_code,
342 language_code,
343 attribute_category,
344 attribute1,
345 attribute2,
346 attribute3,
347 attribute4,
348 attribute5,
349 attribute6,
350 attribute7,
351 attribute8,
352 attribute9,
353 attribute10,
354 attribute11,
355 attribute12,
356 attribute13,
357 attribute14,
358 attribute15,
359 version_no,
360 campaign_calendar,
361 start_period_name,
362 end_period_name,
363 city_id,
364 global_flag,
365 custom_setup_id,
366 show_campaign_flag,
367 business_unit_id,
368 accounts_closed_flag,
369 task_id,
370 related_event_from,
371 related_event_id,
372 program_attribute_category,
373 program_attribute1,
374 program_attribute2,
375 program_attribute3,
376 program_attribute4,
377 program_attribute5,
378 program_attribute6,
379 program_attribute7,
380 program_attribute8,
381 program_attribute9,
382 program_attribute10,
383 program_attribute11,
384 program_attribute12,
385 program_attribute13,
386 program_attribute14,
387 program_attribute15
388 )
389 VALUES(
390 l_camp_rec.campaign_id,
391 SYSDATE,
392 FND_GLOBAL.user_id,
393 SYSDATE,
394 FND_GLOBAL.user_id,
395 FND_GLOBAL.conc_login_id,
396 1, -- object_version_number
397 l_camp_rec.owner_user_id,
398 l_camp_rec.user_status_id,
399 l_camp_rec.status_code,
400 NVL(l_camp_rec.status_date, SYSDATE),
401 NVL(l_camp_rec.active_flag, 'Y'),
402 NVL(l_camp_rec.private_flag, 'N'),
403 NVL(l_camp_rec.partner_flag, 'N'),
404 NVL(l_camp_rec.template_flag, 'N'),
405 NVL(l_camp_rec.cascade_source_code_flag, 'N'),
406 NVL(l_camp_rec.inherit_attributes_flag,'N'),
407 l_camp_rec.source_code,
408 l_camp_rec.rollup_type,
409 l_camp_rec.campaign_type,
410 l_camp_rec.media_type_code,
411 NVL(l_camp_rec.priority, 'STANDARD'),
412 l_camp_rec.fund_source_type,
413 l_camp_rec.fund_source_id,
414 l_camp_rec.parent_campaign_id,
415 l_camp_rec.application_id,
416 l_camp_rec.qp_list_header_id,
417 l_org_id, -- org_id value from MO: Default Org Id,
418 -- commenting out. moac changes.
419 --TO_NUMBER(SUBSTRB(userenv('CLIENT_INFO'),1,10)), -- org_id
420 l_camp_rec.media_id,
421 l_camp_rec.channel_id,
422 l_camp_rec.event_type,
423 l_camp_rec.arc_channel_from,
424 l_camp_rec.dscript_name,
425 l_camp_rec.transaction_currency_code,
426 l_camp_rec.functional_currency_code,
427 l_camp_rec.budget_amount_tc,
428 l_camp_rec.budget_amount_fc,
429 l_camp_rec.forecasted_plan_start_date,
430 l_camp_rec.forecasted_plan_end_date,
431 l_camp_rec.forecasted_exec_start_date,
432 l_camp_rec.forecasted_exec_end_date,
433 l_camp_rec.actual_plan_start_date,
434 l_camp_rec.actual_plan_end_date,
435 l_camp_rec.actual_exec_start_date,
436 l_camp_rec.actual_exec_end_date,
437 l_camp_rec.inbound_url,
438 l_camp_rec.inbound_email_id,
439 l_camp_rec.inbound_phone_no,
440 l_camp_rec.duration,
441 l_camp_rec.duration_uom_code,
442 l_camp_rec.ff_priority,
443 l_camp_rec.ff_override_cover_letter,
444 l_camp_rec.ff_shipping_method,
445 l_camp_rec.ff_carrier,
446 l_camp_rec.content_source,
447 l_camp_rec.cc_call_strategy,
448 l_camp_rec.cc_manager_user_id,
449 l_camp_rec.forecasted_revenue,
450 l_camp_rec.actual_revenue,
451 l_camp_rec.forecasted_cost,
452 l_camp_rec.actual_cost,
453 l_camp_rec.forecasted_response,
454 l_camp_rec.actual_response,
455 l_camp_rec.target_response,
456 l_camp_rec.country_code,
457 l_camp_rec.language_code,
458 l_camp_rec.attribute_category,
459 l_camp_rec.attribute1,
460 l_camp_rec.attribute2,
461 l_camp_rec.attribute3,
462 l_camp_rec.attribute4,
463 l_camp_rec.attribute5,
464 l_camp_rec.attribute6,
465 l_camp_rec.attribute7,
466 l_camp_rec.attribute8,
467 l_camp_rec.attribute9,
468 l_camp_rec.attribute10,
469 l_camp_rec.attribute11,
470 l_camp_rec.attribute12,
471 l_camp_rec.attribute13,
472 l_camp_rec.attribute14,
473 l_camp_rec.attribute15,
474 null, -- version_no
475 l_camp_rec.campaign_calendar,
476 l_camp_rec.start_period_name,
477 l_camp_rec.end_period_name,
478 NVL(l_camp_rec.city_id, TO_NUMBER(FND_PROFILE.value('AMS_SRCGEN_USER_CITY'))),
479 NVL(l_camp_rec.global_flag, 'N'),
480 l_camp_rec.custom_setup_id,
481 NVL(l_camp_rec.show_campaign_flag, 'Y'),
482 l_camp_rec.business_unit_id,
483 --07-apr-2003 cgoyal
484 'N', --NVL(l_camp_rec.accounts_closed_flag,'Y'),
485 --end 07-apr-2003 cgoyal
486 l_camp_rec.task_id,
487 l_camp_rec.related_event_from,
488 l_camp_rec.related_event_id,
489 l_camp_rec.program_attribute_category,
490 l_camp_rec.program_attribute1,
491 l_camp_rec.program_attribute2,
492 l_camp_rec.program_attribute3,
493 l_camp_rec.program_attribute4,
494 l_camp_rec.program_attribute5,
495 l_camp_rec.program_attribute6,
496 l_camp_rec.program_attribute7,
497 l_camp_rec.program_attribute8,
498 l_camp_rec.program_attribute9,
499 l_camp_rec.program_attribute10,
500 l_camp_rec.program_attribute11,
501 l_camp_rec.program_attribute12,
502 l_camp_rec.program_attribute13,
503 l_camp_rec.program_attribute14,
504 l_camp_rec.program_attribute15
505 );
506
507 INSERT INTO ams_campaigns_all_tl(
508 campaign_id,
509 language,
510 last_update_date,
511 last_updated_by,
512 creation_date,
513 created_by,
514 last_update_login,
515 source_lang,
516 campaign_name,
517 campaign_theme,
518 description
519 )
520 SELECT
521 l_camp_rec.campaign_id,
522 l.language_code,
523 SYSDATE,
524 FND_GLOBAL.user_id,
525 SYSDATE,
526 FND_GLOBAL.user_id,
527 FND_GLOBAL.conc_login_id,
528 USERENV('LANG'),
529 l_camp_rec.campaign_name,
530 l_camp_rec.campaign_theme,
531 l_camp_rec.description
532 FROM fnd_languages l
533 WHERE l.installed_flag in ('I', 'B')
534 AND NOT EXISTS(
535 SELECT NULL
536 FROM ams_campaigns_all_tl t
537 WHERE t.campaign_id = l_camp_rec.campaign_id
538 AND t.language = l.language_code );
539
540
541 IF l_camp_rec.rollup_type <> 'RCAM' THEN
542 -- need to push the source code to ams_source_codes
543 --=====================================================================
544 -- Following Code is added by ptendulk on 08-Oct-2001 to create related
545 -- source information
546 -- ====================================================================
547 l_related_source_code := null ;
548 IF p_camp_rec.related_event_from IS NOT NULL AND
549 p_camp_rec.related_event_from <> FND_API.G_MISS_CHAR THEN
550
551 l_related_source_code := AMS_CampaignRules_PVT.get_event_source_code(p_camp_rec.related_event_from,p_camp_rec.related_event_id);
552 END IF ;
553
554
555 AMS_CampaignRules_PVT.push_source_code(
556 l_camp_rec.source_code,
557 'CAMP',
558 l_camp_rec.campaign_id,
559 l_related_source_code,
560 p_camp_rec.related_event_from,
561 p_camp_rec.related_event_id
562 );
563 END IF;
564
565 -- Following code is commented by ptendulk as we are no longer writing in to attributes.
566 -- create object attributes
567 --IF p_camp_rec.custom_setup_id IS NOT NULL THEN
568 -- AMS_ObjectAttribute_PVT.create_object_attributes(
569 -- p_api_version => 1.0,
570 -- p_init_msg_list => FND_API.g_false,
571 -- p_commit => FND_API.g_false,
572 -- p_validation_level => FND_API.g_valid_level_full,
573 -- x_return_status => l_return_status,
574 -- x_msg_count => x_msg_count,
575 -- x_msg_data => x_msg_data,
576 -- p_object_type => 'CAMP',
577 -- p_object_id => l_camp_rec.campaign_id,
578 -- p_setup_id => p_camp_rec.custom_setup_id
579 -- );
580 -- IF l_return_status = FND_API.g_ret_sts_error THEN
581 -- RAISE FND_API.g_exc_error;
582 -- ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
583 -- RAISE FND_API.g_exc_unexpected_error;
584 -- END IF;
585 --END IF;
586
587 -- create object association when channel is event
588 --IF l_camp_rec.media_type_code = 'EVENTS'
589 -- AND l_camp_rec.channel_id IS NOT NULL
590 --THEN
591 -- AMS_CampaignRules_PVT.create_camp_association(
592 -- l_camp_rec.campaign_id,
593 -- l_camp_rec.channel_id,
594 -- l_camp_rec.arc_channel_from,
595 -- l_return_status
596 -- );
597 -- IF l_return_status = FND_API.g_ret_sts_error THEN
598 -- RAISE FND_API.g_exc_error;
599 -- ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
600 -- RAISE FND_API.g_exc_unexpected_error;
601 -- END IF;
602 --END IF;
603
604 -- Create Access for the owner
605 l_access_rec.act_access_to_object_id := l_camp_rec.campaign_id ;
606 IF l_camp_rec.rollup_type = 'RCAM' THEN
607 l_rollup_type := 'RCAM' ;
608 ELSE
609 l_rollup_type := 'CAMP' ;
610 END IF ;
611
612 l_access_rec.arc_act_access_to_object := l_rollup_type ;
613 l_access_rec.user_or_role_id := l_camp_rec.owner_user_id ;
614 l_access_rec.arc_user_or_role_type := 'USER' ;
615 l_access_rec.owner_flag := 'Y' ;
616 l_access_rec.delete_flag := 'N' ;
617 l_access_rec.admin_flag := 'Y' ;
618
619
620 AMS_Access_Pvt.Create_Access(
621 p_api_version => l_api_version,
622 p_init_msg_list => p_init_msg_list,
623 p_commit => p_commit,
624 p_validation_level => p_validation_level,
625
626 x_return_status => l_return_status,
627 x_msg_count => x_msg_count,
628 x_msg_data => x_msg_data,
629
630 p_access_rec => l_access_rec,
631 x_access_id => l_dummy_id
632 );
633
634 IF l_return_status = FND_API.g_ret_sts_error THEN
635 RAISE FND_API.g_exc_error;
636 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
637 RAISE FND_API.g_exc_unexpected_error;
638 END IF;
639
640 -- p_arc_act_metric_used_by will have to be changed as l_rollup_type instead of 'CAMP'
641 -- Waiting for gliu to resolve the issue.
642 -- attach seeded metrics as of Jun01-2001
643 AMS_RefreshMetric_PVT.copy_seeded_metric(
644 p_api_version => 1.0,
645 x_return_status => l_return_status,
646 x_msg_count => x_msg_count,
647 x_msg_data => x_msg_data,
648 p_arc_act_metric_used_by =>l_rollup_type,
649 p_act_metric_used_by_id => l_camp_rec.campaign_id,
650 p_act_metric_used_by_type => NULL
651 );
652 IF l_return_status = FND_API.g_ret_sts_error THEN
653 RAISE FND_API.g_exc_error;
654 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
655 RAISE FND_API.g_exc_unexpected_error;
656 END IF;
657
658 ------------------------- finish -------------------------------
659 x_camp_id := l_camp_rec.campaign_id;
660
661 IF FND_API.to_boolean(p_commit) THEN
662 COMMIT;
663 END IF;
664
665 FND_MSG_PUB.count_and_get(
666 p_encoded => FND_API.g_false,
667 p_count => x_msg_count,
668 p_data => x_msg_data
669 );
670
671 IF (AMS_DEBUG_HIGH_ON) THEN
672
673
674
675 AMS_Utility_PVT.debug_message(l_full_name ||': end');
676
677 END IF;
678
679 EXCEPTION
680
681 WHEN FND_API.g_exc_error THEN
682 ROLLBACK TO create_campaign;
683 x_return_status := FND_API.g_ret_sts_error;
684 FND_MSG_PUB.count_and_get(
685 p_encoded => FND_API.g_false,
686 p_count => x_msg_count,
687 p_data => x_msg_data
688 );
689
690 WHEN FND_API.g_exc_unexpected_error THEN
691 ROLLBACK TO create_campaign;
692 x_return_status := FND_API.g_ret_sts_unexp_error ;
693 FND_MSG_PUB.count_and_get(
694 p_encoded => FND_API.g_false,
695 p_count => x_msg_count,
696 p_data => x_msg_data
697 );
698
699
700 WHEN OTHERS THEN
701 ROLLBACK TO create_campaign;
702 x_return_status := FND_API.g_ret_sts_unexp_error ;
703
704 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
705 THEN
706 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
707 END IF;
708
709 FND_MSG_PUB.count_and_get(
710 p_encoded => FND_API.g_false,
711 p_count => x_msg_count,
712 p_data => x_msg_data
713 );
714
715 END Create_Campaign;
716
717
718 ---------------------------------------------------------------
719 -- PROCEDURE
720 -- delete_campaign
721 --
722 -- HISTORY
723 -- 01-Oct-1999 holiu Created.
724 -- 11-Feb-2001 ptendulk Delete the record if the status
725 -- is new else update
726 ---------------------------------------------------------------
727 PROCEDURE Delete_Campaign(
728 p_api_version IN NUMBER,
729 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
730 p_commit IN VARCHAR2 := FND_API.g_false,
731
732 x_return_status OUT NOCOPY VARCHAR2,
733 x_msg_count OUT NOCOPY NUMBER,
734 x_msg_data OUT NOCOPY VARCHAR2,
735
736 p_camp_id IN NUMBER,
737 p_object_version IN NUMBER
738 )
739 IS
740
741 l_api_version CONSTANT NUMBER := 1.0;
742 l_api_name CONSTANT VARCHAR2(30) := 'delete_campaign';
743 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
744
745 CURSOR c_camp IS
746 SELECT status_code
747 FROM ams_campaigns_all_b
748 WHERE campaign_id = p_camp_id
749 AND object_version_number = p_object_version ;
750 l_status VARCHAR2(30);
751
752 BEGIN
753
754 --------------------- initialize -----------------------
755 SAVEPOINT delete_campaign;
756
757 IF (AMS_DEBUG_HIGH_ON) THEN
758
759
760
761 AMS_Utility_PVT.debug_message(l_full_name||': start');
762
763 END IF;
764
765 IF FND_API.to_boolean(p_init_msg_list) THEN
766 FND_MSG_PUB.initialize;
767 END IF;
768
769 IF NOT FND_API.compatible_api_call(
770 l_api_version,
771 p_api_version,
772 l_api_name,
773 g_pkg_name
774 ) THEN
775 RAISE FND_API.g_exc_unexpected_error;
776 END IF;
777
778 x_return_status := FND_API.G_RET_STS_SUCCESS;
779
780 ------------------------ delete ------------------------
781 IF (AMS_DEBUG_HIGH_ON) THEN
782
783 AMS_Utility_PVT.debug_message(l_full_name ||': delete');
784 END IF;
785
786 -- Start of code modified by ptendulk on 11-Feb-2001
787 -- Delete the campaign if in new status.
788 OPEN c_camp ;
789 FETCH c_camp INTO l_status ;
790 IF c_camp%NOTFOUND THEN
791 CLOSE c_camp ;
792 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
793 THEN
794 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
795 FND_MSG_PUB.add;
796 END IF;
797 RAISE FND_API.g_exc_error;
798 END IF ;
799 CLOSE c_camp ;
800
801 IF l_status = 'NEW' THEN
802 DELETE FROM ams_campaigns_all_b
803 WHERE campaign_id = p_camp_id
804 AND object_version_number = p_object_version ;
805 ELSE
806 UPDATE ams_campaigns_all_b
807 SET active_flag = 'N'
808 WHERE campaign_id = p_camp_id
809 AND object_version_number = p_object_version;
810 END IF ;
811 -- End of code modified by ptendulk on 11-Feb-2001
812
813 -- UPDATE ams_campaigns_all_b
814 -- SET active_flag = 'N'
815 -- WHERE campaign_id = p_camp_id
816 -- AND object_version_number = p_object_version;
817
818 IF (SQL%NOTFOUND) THEN
819 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
820 THEN
821 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
822 FND_MSG_PUB.add;
823 END IF;
824 RAISE FND_API.g_exc_error;
825 END IF;
826
827 -------------------- finish --------------------------
828 IF FND_API.to_boolean(p_commit) THEN
829 COMMIT;
830 END IF;
831
832 FND_MSG_PUB.count_and_get(
833 p_encoded => FND_API.g_false,
834 p_count => x_msg_count,
835 p_data => x_msg_data
836 );
837
838 IF (AMS_DEBUG_HIGH_ON) THEN
839
840
841
842 AMS_Utility_PVT.debug_message(l_full_name ||': end');
843
844 END IF;
845
846 EXCEPTION
847
848 WHEN FND_API.g_exc_error THEN
849 ROLLBACK TO delete_campaign;
850 x_return_status := FND_API.g_ret_sts_error;
851 FND_MSG_PUB.count_and_get(
852 p_encoded => FND_API.g_false,
853 p_count => x_msg_count,
854 p_data => x_msg_data
855 );
856
857 WHEN FND_API.g_exc_unexpected_error THEN
858 ROLLBACK TO delete_campaign;
859 x_return_status := FND_API.g_ret_sts_unexp_error ;
860 FND_MSG_PUB.count_and_get(
861 p_encoded => FND_API.g_false,
862 p_count => x_msg_count,
863 p_data => x_msg_data
864 );
865
866 WHEN OTHERS THEN
867 ROLLBACK TO delete_campaign;
868 x_return_status := FND_API.g_ret_sts_unexp_error ;
869
870 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
871 THEN
872 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
873 END IF;
874
875 FND_MSG_PUB.count_and_get(
876 p_encoded => FND_API.g_false,
877 p_count => x_msg_count,
878 p_data => x_msg_data
879 );
880
881 END Delete_Campaign;
882
883
884 -------------------------------------------------------------------
885 -- PROCEDURE
886 -- lock_campaign
887 --
888 -- HISTORY
889 -- 10/01/99 holiu Created.
890 --------------------------------------------------------------------
891 PROCEDURE Lock_Campaign(
892 p_api_version IN NUMBER,
893 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
894
895 x_return_status OUT NOCOPY VARCHAR2,
896 x_msg_count OUT NOCOPY NUMBER,
897 x_msg_data OUT NOCOPY VARCHAR2,
898
899 p_camp_id IN NUMBER,
900 p_object_version IN NUMBER
901 )
902 IS
903
904 l_api_version CONSTANT NUMBER := 1.0;
905 l_api_name CONSTANT VARCHAR2(30) := 'lock_campaign';
906 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
907
908 l_camp_id NUMBER;
909
910 CURSOR c_camp_b IS
911 SELECT campaign_id
912 FROM ams_campaigns_all_b
913 WHERE campaign_id = p_camp_id
914 AND object_version_number = p_object_version
915 FOR UPDATE NOWAIT;
916
917 CURSOR c_camp_tl IS
918 SELECT campaign_id
919 FROM ams_campaigns_all_tl
920 WHERE campaign_id = p_camp_id
921 AND USERENV('LANG') IN (language, source_lang)
922 FOR UPDATE NOWAIT;
923
924 BEGIN
925
926 -------------------- initialize ------------------------
927 IF (AMS_DEBUG_HIGH_ON) THEN
928
929 AMS_Utility_PVT.debug_message(l_full_name||': start');
930 END IF;
931
932 IF FND_API.to_boolean(p_init_msg_list) THEN
933 FND_MSG_PUB.initialize;
934 END IF;
935
936 IF NOT FND_API.compatible_api_call(
937 l_api_version,
938 p_api_version,
939 l_api_name,
940 g_pkg_name
941 ) THEN
942 RAISE FND_API.g_exc_unexpected_error;
943 END IF;
944
945 x_return_status := FND_API.G_RET_STS_SUCCESS;
946
947 ------------------------ lock -------------------------
948 IF (AMS_DEBUG_HIGH_ON) THEN
949
950 AMS_Utility_PVT.debug_message(l_full_name||': lock');
951 END IF;
952
953 OPEN c_camp_b;
954 FETCH c_camp_b INTO l_camp_id;
955 IF (c_camp_b%NOTFOUND) THEN
956 CLOSE c_camp_b;
957 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
958 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
959 FND_MSG_PUB.add;
960 END IF;
961 RAISE FND_API.g_exc_error;
962 END IF;
963 CLOSE c_camp_b;
964
965 OPEN c_camp_tl;
966 CLOSE c_camp_tl;
967
968 -------------------- finish --------------------------
969 FND_MSG_PUB.count_and_get(
970 p_encoded => FND_API.g_false,
971 p_count => x_msg_count,
972 p_data => x_msg_data
973 );
974
975 IF (AMS_DEBUG_HIGH_ON) THEN
976
977
978
979 AMS_Utility_PVT.debug_message(l_full_name ||': end');
980
981 END IF;
982
983 EXCEPTION
984
985 WHEN AMS_Utility_PVT.resource_locked THEN
986 x_return_status := FND_API.g_ret_sts_error;
987 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
988 FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
989 FND_MSG_PUB.add;
990 END IF;
991
992 FND_MSG_PUB.count_and_get(
993 p_encoded => FND_API.g_false,
994 p_count => x_msg_count,
995 p_data => x_msg_data
996 );
997
998 WHEN FND_API.g_exc_error THEN
999 x_return_status := FND_API.g_ret_sts_error;
1000 FND_MSG_PUB.count_and_get(
1001 p_encoded => FND_API.g_false,
1002 p_count => x_msg_count,
1003 p_data => x_msg_data
1004 );
1005
1006 WHEN FND_API.g_exc_unexpected_error THEN
1007 x_return_status := FND_API.g_ret_sts_unexp_error ;
1008 FND_MSG_PUB.count_and_get(
1009 p_encoded => FND_API.g_false,
1010 p_count => x_msg_count,
1011 p_data => x_msg_data
1012 );
1013
1014 WHEN OTHERS THEN
1015 x_return_status := FND_API.g_ret_sts_unexp_error ;
1016 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
1017 THEN
1018 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1019 END IF;
1020
1021 FND_MSG_PUB.count_and_get(
1022 p_encoded => FND_API.g_false,
1023 p_count => x_msg_count,
1024 p_data => x_msg_data
1025 );
1026
1027 END Lock_Campaign;
1028
1029
1030 ---------------------------------------------------------------------
1031 -- PROCEDURE
1032 -- Update_Campaign
1033 --
1034 -- HISTORY
1035 -- 10/01/99 holiu Created.
1036 -- 09/27/00 ptendulk Added currency conversion api to conver the
1037 -- transaction currency into functional currency
1038 -- 01/23/01 julou Commented out budget_amount_tc, budget_amount_fc,
1039 -- media_type_code, media_id, channel_id from update
1040 -- 20-May-2001 ptendulk Commented the if statement before update_camp_source_code
1041 -- Refer bug#1786964
1042 -- 31-May-2001 ptendulk Added call to invalidate parent if the parent is changed.
1043 ----------------------------------------------------------------------
1044 PROCEDURE Update_Campaign(
1045 p_api_version IN NUMBER,
1046 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
1047 p_commit IN VARCHAR2 := FND_API.g_false,
1048 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
1049
1050 x_return_status OUT NOCOPY VARCHAR2,
1051 x_msg_count OUT NOCOPY NUMBER,
1052 x_msg_data OUT NOCOPY VARCHAR2,
1053
1054 p_camp_rec IN camp_rec_type
1055 )
1056 IS
1057
1058 l_source_code_for_event VARCHAR2(30);
1059 -- end declaration change - 04/13/01 - for related_event
1060
1061 l_api_version CONSTANT NUMBER := 1.0;
1062 l_api_name CONSTANT VARCHAR2(30) := 'update_campaign';
1063 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1064
1065 l_camp_rec camp_rec_type;
1066 l_return_status VARCHAR2(1);
1067 l_rollup_type VARCHAR2(30);
1068 l_source_code VARCHAR2(100);
1069 BEGIN
1070
1071 -------------------- initialize -------------------------
1072 IF (AMS_DEBUG_HIGH_ON) THEN
1073
1074 AMS_Utility_PVT.debug_message(l_full_name||': start');
1075 END IF;
1076 SAVEPOINT update_campaign;
1077
1078 IF FND_API.to_boolean(p_init_msg_list) THEN
1079 FND_MSG_PUB.initialize;
1080 END IF;
1081
1082 IF NOT FND_API.compatible_api_call(
1083 l_api_version,
1084 p_api_version,
1085 l_api_name,
1086 g_pkg_name
1087 ) THEN
1088 RAISE FND_API.g_exc_unexpected_error;
1089 END IF;
1090
1091 x_return_status := FND_API.G_RET_STS_SUCCESS;
1092
1093 ----------------------- validate ----------------------
1094 IF (AMS_DEBUG_HIGH_ON) THEN
1095
1096 AMS_Utility_PVT.debug_message(l_full_name ||': validate');
1097 END IF;
1098
1099 -- replace g_miss_char/num/date with current column values
1100 complete_camp_rec(p_camp_rec, l_camp_rec);
1101
1102 -- default campaign_calendar
1103 IF l_camp_rec.start_period_name IS NULL
1104 AND l_camp_rec.end_period_name IS NULL
1105 THEN
1106 l_camp_rec.campaign_calendar := NULL;
1107 ELSE
1108 l_camp_rec.campaign_calendar := FND_PROFILE.value('AMS_CAMPAIGN_DEFAULT_CALENDER');
1109 END IF;
1110
1111 -- item level
1112 IF (AMS_DEBUG_HIGH_ON) THEN
1113
1114 AMS_Utility_PVT.debug_message(l_full_name ||': check items');
1115 END IF;
1116 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1117 check_camp_items(
1118 p_camp_rec => p_camp_rec,
1119 p_validation_mode => JTF_PLSQL_API.g_update,
1120 x_return_status => l_return_status
1121 );
1122 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1123 RAISE FND_API.g_exc_unexpected_error;
1124 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1125 RAISE FND_API.g_exc_error;
1126 END IF;
1127 END IF;
1128
1129 -- record level
1130 IF (AMS_DEBUG_HIGH_ON) THEN
1131
1132 AMS_Utility_PVT.debug_message(l_full_name ||': check record');
1133 END IF;
1134 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record THEN
1135 check_camp_record(
1136 p_camp_rec => p_camp_rec,
1137 p_complete_rec => l_camp_rec,
1138 x_return_status => l_return_status
1139 );
1140 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1141 RAISE FND_API.g_exc_unexpected_error;
1142 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1143 RAISE FND_API.g_exc_error;
1144 END IF;
1145 END IF;
1146
1147 -- inter-entity level
1148 IF (AMS_DEBUG_HIGH_ON) THEN
1149
1150 AMS_Utility_PVT.debug_message(l_full_name ||': check inter-entity');
1151 END IF;
1152 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_inter_entity THEN
1153 check_camp_inter_entity(
1154 p_camp_rec => p_camp_rec,
1155 p_complete_rec => l_camp_rec,
1156 p_validation_mode => JTF_PLSQL_API.g_update,
1157 x_return_status => l_return_status
1158 );
1159 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1160 RAISE FND_API.g_exc_unexpected_error;
1161 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1162 RAISE FND_API.g_exc_error;
1163 END IF;
1164 END IF;
1165
1166 -- check update
1167 IF (AMS_DEBUG_HIGH_ON) THEN
1168
1169 AMS_Utility_PVT.debug_message(l_full_name ||': check update');
1170 END IF;
1171 AMS_CampaignRules_PVT.check_camp_update(
1172 p_camp_rec => p_camp_rec,
1173 p_complete_rec => l_camp_rec,
1174 x_return_status => l_return_status
1175 );
1176 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1177 RAISE FND_API.g_exc_unexpected_error;
1178 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1179 RAISE FND_API.g_exc_error;
1180 END IF;
1181
1182 -- handle inherit_attributes_flag
1183 -- Following code is commented by ptendulk on 07-Feb-2001
1184 -- We are not using it any more.
1185 --IF (AMS_DEBUG_HIGH_ON) THENAMS_Utility_PVT.debug_message(l_full_name ||': handle inherit flag');END IF;
1186 --IF p_camp_rec.rollup_type <> FND_API.g_miss_char
1187 -- OR p_camp_rec.parent_campaign_id <> FND_API.g_miss_num
1188 --THEN
1189 -- AMS_CampaignRules_PVT.handle_camp_inherit_flag(
1190 -- l_camp_rec.parent_campaign_id,
1191 -- l_camp_rec.rollup_type,
1192 -- l_camp_rec.inherit_attributes_flag,
1193 -- l_return_status
1194 -- );
1195 -- IF l_return_status = FND_API.g_ret_sts_error THEN
1196 -- RAISE FND_API.g_exc_error;
1197 -- ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1198 -- RAISE FND_API.g_exc_unexpected_error;
1199 -- END IF;
1200 --END IF;
1201
1202 -- handle source code update
1203 IF (AMS_DEBUG_HIGH_ON) THEN
1204
1205 AMS_Utility_PVT.debug_message(l_full_name ||': update source code');
1206 END IF;
1207 IF p_camp_rec.source_code <> FND_API.g_miss_char
1208 OR p_camp_rec.global_flag <> FND_API.g_miss_char
1209 OR p_camp_rec.cascade_source_code_flag <> FND_API.g_miss_char
1210 OR (p_camp_rec.related_event_id IS NULL OR p_camp_rec.related_event_id <> FND_API.g_miss_num)
1211 THEN
1212 --Modified by rrajesh on 04/16/2001 - this method had been modified to
1213 --include related event also.
1214 /*AMS_CampaignRules_PVT.update_camp_source_code(
1215 l_camp_rec.campaign_id,
1216 l_camp_rec.source_code,
1217 l_camp_rec.global_flag,
1218 l_camp_rec.source_code,
1219 l_return_status
1220 );*/
1221
1222 -- Following line is commented by ptendulk on 20-May-2001 Refer bug#1786964
1223 -- IF l_source_code_for_event <> FND_API.g_miss_char THEN
1224 IF (AMS_DEBUG_HIGH_ON) THEN
1225
1226 AMS_Utility_PVT.Debug_message('Update the source_code ');
1227 END IF;
1228
1229 AMS_CampaignRules_PVT.update_camp_source_code(
1230 l_camp_rec.campaign_id,
1231 l_camp_rec.source_code,
1232 l_camp_rec.global_flag,
1233 --l_camp_rec.source_code,
1234 l_source_code,
1235 l_camp_rec.related_event_from,
1236 l_camp_rec.related_event_id,
1237 l_return_status
1238 );
1239 -- END IF;
1240 --end change 04/16/2001 - rrajesh
1241
1242 -- following code is added by ptendulk on 06-Dec-2002 to fix no copy issue.
1243 -- also changed : pass the variable l_source_code in above api instead of l_camp_rec.source_code
1244 l_camp_rec.source_code := l_source_code ;
1245
1246 IF l_return_status = FND_API.g_ret_sts_error THEN
1247 RAISE FND_API.g_exc_error;
1248 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1249 RAISE FND_API.g_exc_unexpected_error;
1250 END IF;
1251 END IF;
1252
1253 -- aranka added 13/12/01 bug# 2148325 start
1254 IF l_camp_rec.rollup_type = 'RCAM' THEN
1255 l_rollup_type := 'RCAM' ;
1256 ELSE
1257 l_rollup_type := 'CAMP' ;
1258 END IF ;
1259
1260
1261 -- Change the owner in Access table if the owner is changed.
1262
1263 IF p_camp_rec.owner_user_id <> FND_API.g_miss_num
1264 THEN
1265 AMS_CampaignRules_PVT.Update_Owner(
1266 p_api_version => p_api_version,
1267 p_init_msg_list => p_init_msg_list,
1268 p_commit => p_commit,
1269 p_validation_level => p_validation_level,
1270 x_return_status => l_return_status,
1271 x_msg_count => x_msg_count,
1272 x_msg_data => x_msg_data,
1273 p_object_type => l_rollup_type ,
1274 p_campaign_id => l_camp_rec.campaign_id,
1275 p_owner_id => p_camp_rec.owner_user_id
1276 );
1277 IF l_return_status = FND_API.g_ret_sts_error THEN
1278 RAISE FND_API.g_exc_error;
1279 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1280 RAISE FND_API.g_exc_unexpected_error;
1281 END IF;
1282 END IF ;
1283
1284 -- aranka added 13/12/01 bug# 2148325 end
1285
1286 -- following lines of code are added by ptendulk on 31-May-2001
1287 -- Change the rollup if the parent is changed
1288 IF p_camp_rec.parent_campaign_id IS NULL OR
1289 p_camp_rec.parent_campaign_id <> FND_API.g_miss_num
1290 THEN
1291 AMS_CampaignRules_PVT.Update_Rollup(
1292 p_api_version => p_api_version,
1293 p_init_msg_list => p_init_msg_list,
1294 p_commit => p_commit,
1295 p_validation_level => p_validation_level,
1296 x_return_status => l_return_status,
1297 x_msg_count => x_msg_count,
1298 x_msg_data => x_msg_data,
1299 p_campaign_id => l_camp_rec.campaign_id,
1300 p_parent_id => p_camp_rec.parent_Campaign_id
1301 );
1302 IF l_return_status = FND_API.g_ret_sts_error THEN
1303 RAISE FND_API.g_exc_error;
1304 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1305 RAISE FND_API.g_exc_unexpected_error;
1306 END IF;
1307 END IF ;
1308
1309 -- Following code is commented by ptendulk on 07-Feb-2001
1310 -- as there won't be any budget amount at campaigns level.
1311 -- ==========================================================
1312 -- Following code is added by ptendulk on 09/27/2000
1313 -- the code will convert the transaction currency in to
1314 -- functional currency.
1315 -- ==========================================================
1316 IF p_camp_rec.budget_amount_tc IS NOT NULL THEN
1317 IF p_camp_rec.budget_amount_tc <> FND_API.g_miss_num THEN
1318 AMS_CampaignRules_PVT.Convert_Camp_Currency(
1319 p_tc_curr => l_camp_rec.transaction_currency_code,
1320 p_tc_amt => l_camp_rec.budget_amount_tc,
1321 x_fc_curr => l_camp_rec.functional_currency_code,
1322 x_fc_amt => l_camp_rec.budget_amount_fc
1323 ) ;
1324 END IF ;
1325 ELSE
1326 l_camp_rec.budget_amount_fc := null ;
1327 END IF;
1328
1329
1330 -------------------------- update --------------------
1331 IF (AMS_DEBUG_HIGH_ON) THEN
1332
1333 AMS_Utility_PVT.debug_message(l_full_name ||': update');
1334 END IF;
1335
1336 -----------------------------------------------------------------
1337 -- budget_amount_tc, budget_amount_fc, media_type_code, media_id,
1338 -- channel_id are commented out by julou on 01/23/00
1339 -----------------------------------------------------------------
1340 UPDATE ams_campaigns_all_b SET
1341 last_update_date = SYSDATE,
1342 last_updated_by = FND_GLOBAL.user_id,
1343 last_update_login = FND_GLOBAL.conc_login_id,
1344 object_version_number = l_camp_rec.object_version_number + 1,
1345 owner_user_id = l_camp_rec.owner_user_id,
1346 active_flag = NVL(l_camp_rec.active_flag, 'Y'),
1347 private_flag = NVL(l_camp_rec.private_flag, 'N'),
1348 partner_flag = NVL(l_camp_rec.partner_flag, 'N'),
1349 template_flag = NVL(l_camp_rec.template_flag, 'N'),
1350 cascade_source_code_flag = NVL(l_camp_rec.cascade_source_code_flag, 'N'),
1351 inherit_attributes_flag = NVL(l_camp_rec.inherit_attributes_flag,'N'),
1352 source_code = l_camp_rec.source_code,
1353 rollup_type = l_camp_rec.rollup_type,
1354 campaign_type = l_camp_rec.campaign_type,
1355 media_type_code = l_camp_rec.media_type_code,
1356 priority = l_camp_rec.priority,
1357 fund_source_type = l_camp_rec.fund_source_type,
1358 fund_source_id = l_camp_rec.fund_source_id,
1359 parent_campaign_id = l_camp_rec.parent_campaign_id,
1360 application_id = l_camp_rec.application_id,
1361 qp_list_header_id = l_camp_rec.qp_list_header_id,
1362 media_id = l_camp_rec.media_id,
1363 channel_id = l_camp_rec.channel_id,
1364 event_type = l_camp_rec.event_type,
1365 arc_channel_from = l_camp_rec.arc_channel_from,
1366 dscript_name = l_camp_rec.dscript_name,
1367 transaction_currency_code = l_camp_rec.transaction_currency_code,
1368 functional_currency_code = l_camp_rec.functional_currency_code,
1369 budget_amount_tc = l_camp_rec.budget_amount_tc,
1370 budget_amount_fc = l_camp_rec.budget_amount_fc,
1371 forecasted_plan_start_date = l_camp_rec.forecasted_plan_start_date,
1372 forecasted_plan_end_date = l_camp_rec.forecasted_plan_end_date,
1373 forecasted_exec_start_date = l_camp_rec.forecasted_exec_start_date,
1374 forecasted_exec_end_date = l_camp_rec.forecasted_exec_end_date,
1375 actual_plan_start_date = l_camp_rec.actual_plan_start_date,
1376 actual_plan_end_date = l_camp_rec.actual_plan_end_date,
1377 actual_exec_start_date = l_camp_rec.actual_exec_start_date,
1378 actual_exec_end_date = l_camp_rec.actual_exec_end_date,
1379 inbound_url = l_camp_rec.inbound_url,
1380 inbound_email_id = l_camp_rec.inbound_email_id,
1381 inbound_phone_no = l_camp_rec.inbound_phone_no,
1382 duration = l_camp_rec.duration,
1383 duration_uom_code = l_camp_rec.duration_uom_code,
1384 ff_priority = l_camp_rec.ff_priority,
1385 ff_override_cover_letter = l_camp_rec.ff_override_cover_letter,
1386 ff_shipping_method = l_camp_rec.ff_shipping_method,
1387 ff_carrier = l_camp_rec.ff_carrier,
1388 content_source = l_camp_rec.content_source,
1389 cc_call_strategy = l_camp_rec.cc_call_strategy,
1390 cc_manager_user_id = l_camp_rec.cc_manager_user_id,
1391 forecasted_revenue = l_camp_rec.forecasted_revenue,
1392 actual_revenue = l_camp_rec.actual_revenue,
1393 forecasted_cost = l_camp_rec.forecasted_cost,
1394 actual_cost = l_camp_rec.actual_cost,
1395 forecasted_response = l_camp_rec.forecasted_response,
1396 actual_response = l_camp_rec.actual_response,
1397 target_response = l_camp_rec.target_response,
1398 country_code = l_camp_rec.country_code,
1399 language_code = l_camp_rec.language_code,
1400 attribute_category = l_camp_rec.attribute_category,
1401 attribute1 = l_camp_rec.attribute1,
1402 attribute2 = l_camp_rec.attribute2,
1403 attribute3 = l_camp_rec.attribute3,
1404 attribute4 = l_camp_rec.attribute4,
1405 attribute5 = l_camp_rec.attribute5,
1406 attribute6 = l_camp_rec.attribute6,
1407 attribute7 = l_camp_rec.attribute7,
1408 attribute8 = l_camp_rec.attribute8,
1409 attribute9 = l_camp_rec.attribute9,
1410 attribute10 = l_camp_rec.attribute10,
1411 attribute11 = l_camp_rec.attribute11,
1412 attribute12 = l_camp_rec.attribute12,
1413 attribute13 = l_camp_rec.attribute13,
1414 attribute14 = l_camp_rec.attribute14,
1415 attribute15 = l_camp_rec.attribute15,
1416 --version_no = l_camp_rec.version_no,
1417 campaign_calendar = l_camp_rec.campaign_calendar,
1418 start_period_name = l_camp_rec.start_period_name,
1419 end_period_name = l_camp_rec.end_period_name,
1420 city_id = l_camp_rec.city_id,
1421 global_flag = NVL(l_camp_rec.global_flag, 'N'),
1422 custom_setup_id = l_camp_rec.custom_setup_id,
1423 show_campaign_flag = NVL(l_camp_rec.show_campaign_flag, 'Y'),
1424 business_unit_id = l_camp_rec.business_unit_id,
1425 program_attribute_category = l_camp_rec.program_attribute_category,
1426 program_attribute1 = l_camp_rec.program_attribute1,
1427 program_attribute2 = l_camp_rec.program_attribute2,
1428 program_attribute3 = l_camp_rec.program_attribute3,
1429 program_attribute4 = l_camp_rec.program_attribute4,
1430 program_attribute5 = l_camp_rec.program_attribute5,
1431 program_attribute6 = l_camp_rec.program_attribute6,
1432 program_attribute7 = l_camp_rec.program_attribute7,
1433 program_attribute8 = l_camp_rec.program_attribute8,
1434 program_attribute9 = l_camp_rec.program_attribute9,
1435 program_attribute10 = l_camp_rec.program_attribute10,
1436 program_attribute11 = l_camp_rec.program_attribute11,
1437 program_attribute12 = l_camp_rec.program_attribute12,
1438 program_attribute13 = l_camp_rec.program_attribute13,
1439 program_attribute14 = l_camp_rec.program_attribute14,
1440 program_attribute15 = l_camp_rec.program_attribute15
1441 --Added by rrajesh on 04/13/01 - to update related_event_fields
1442 ,related_event_id = l_camp_rec.related_event_id
1443 ,related_event_from = l_camp_rec.related_event_from
1444 --end change 04/13/01 - related event
1445 WHERE campaign_id = l_camp_rec.campaign_id
1446 AND object_version_number = l_camp_rec.object_version_number;
1447
1448 IF (SQL%NOTFOUND) THEN
1449 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1450 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1451 FND_MSG_PUB.add;
1452 END IF;
1453 RAISE FND_API.g_exc_error;
1454 END IF;
1455
1456 UPDATE ams_campaigns_all_tl SET
1457 campaign_name = l_camp_rec.campaign_name,
1458 campaign_theme = l_camp_rec.campaign_theme,
1459 description = l_camp_rec.description,
1460 last_update_date = SYSDATE,
1461 last_updated_by = FND_GLOBAL.user_id,
1462 last_update_login = FND_GLOBAL.conc_login_id,
1463 source_lang = USERENV('LANG')
1464 WHERE campaign_id = l_camp_rec.campaign_id
1465 AND USERENV('LANG') IN (language, source_lang);
1466
1467 IF (SQL%NOTFOUND) THEN
1468 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1469 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1470 FND_MSG_PUB.add;
1471 END IF;
1472 RAISE FND_API.g_exc_error;
1473 END IF;
1474
1475 -- create object association when channel is event
1476 --IF l_camp_rec.media_type_code = 'EVENTS' THEN
1477 -- AMS_CampaignRules_PVT.create_camp_association(
1478 -- l_camp_rec.campaign_id,
1479 -- l_camp_rec.channel_id,
1480 -- l_camp_rec.arc_channel_from,
1481 -- l_return_status
1482 -- );
1483 -- IF l_return_status = FND_API.g_ret_sts_error THEN
1484 -- RAISE FND_API.g_exc_error;
1485 -- ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1486 -- RAISE FND_API.g_exc_unexpected_error;
1487 -- END IF;
1488 --END IF;
1489
1490 -- update campaign status through workflow
1491 AMS_CampaignRules_PVT.update_camp_status(
1492 l_camp_rec.campaign_id,
1493 l_camp_rec.user_status_id,
1494 l_camp_rec.budget_amount_tc,
1495 l_camp_rec.parent_campaign_id
1496 );
1497
1498 -------------------- finish --------------------------
1499 IF FND_API.to_boolean(p_commit) THEN
1500 COMMIT;
1501 END IF;
1502
1503 FND_MSG_PUB.count_and_get(
1504 p_encoded => FND_API.g_false,
1505 p_count => x_msg_count,
1506 p_data => x_msg_data
1507 );
1508
1509 IF (AMS_DEBUG_HIGH_ON) THEN
1510
1511
1512
1513 AMS_Utility_PVT.debug_message(l_full_name ||': end');
1514
1515 END IF;
1516
1517 EXCEPTION
1518
1519 WHEN FND_API.g_exc_error THEN
1520 ROLLBACK TO update_campaign;
1521 x_return_status := FND_API.g_ret_sts_error;
1522 FND_MSG_PUB.count_and_get(
1523 p_encoded => FND_API.g_false,
1524 p_count => x_msg_count,
1525 p_data => x_msg_data
1526 );
1527
1528 WHEN FND_API.g_exc_unexpected_error THEN
1529 ROLLBACK TO update_campaign;
1530 x_return_status := FND_API.g_ret_sts_unexp_error;
1531 FND_MSG_PUB.count_and_get(
1532 p_encoded => FND_API.g_false,
1533 p_count => x_msg_count,
1534 p_data => x_msg_data
1535 );
1536
1537 WHEN OTHERS THEN
1538 ROLLBACK TO update_campaign;
1539 x_return_status := FND_API.g_ret_sts_unexp_error;
1540
1541 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
1542 THEN
1543 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1544 END IF;
1545
1546 FND_MSG_PUB.count_and_get(
1547 p_encoded => FND_API.g_false,
1548 p_count => x_msg_count,
1549 p_data => x_msg_data
1550 );
1551
1552 END Update_Campaign;
1553
1554
1555 --==================================================================
1556 -- PROCEDURE
1557 -- Validate_Campaign
1558 --
1559 -- NOTE
1560 --
1561 -- HISTORY
1562 -- 01-Oct-1999 holiu Created.
1563 --==================================================================
1564 PROCEDURE validate_campaign(
1565 p_api_version IN NUMBER,
1566 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
1567 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
1568
1569 x_return_status OUT NOCOPY VARCHAR2,
1570 x_msg_count OUT NOCOPY NUMBER,
1571 x_msg_data OUT NOCOPY VARCHAR2,
1572
1573 p_camp_rec IN camp_rec_type
1574 )
1575 IS
1576
1577 l_api_version CONSTANT NUMBER := 1.0;
1578 l_api_name CONSTANT VARCHAR2(30) := 'validate_campaign';
1579 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1580
1581 l_return_status VARCHAR2(1);
1582
1583 BEGIN
1584
1585 ----------------------- initialize --------------------
1586 IF (AMS_DEBUG_HIGH_ON) THEN
1587
1588 AMS_Utility_PVT.debug_message(l_full_name||': start');
1589 END IF;
1590
1591 IF FND_API.to_boolean(p_init_msg_list) THEN
1592 FND_MSG_PUB.initialize;
1593 END IF;
1594
1595 IF NOT FND_API.compatible_api_call(
1596 l_api_version,
1597 p_api_version,
1598 l_api_name,
1599 g_pkg_name
1600 ) THEN
1601 RAISE FND_API.g_exc_unexpected_error;
1602 END IF;
1603
1604 x_return_status := FND_API.g_ret_sts_success;
1605
1606 ---------------------- validate ------------------------
1607 IF (AMS_DEBUG_HIGH_ON) THEN
1608
1609 AMS_Utility_PVT.debug_message(l_full_name||': check items');
1610 END IF;
1611
1612 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1613 check_camp_items(
1614 p_camp_rec => p_camp_rec,
1615 p_validation_mode => JTF_PLSQL_API.g_create,
1616 x_return_status => l_return_status
1617 );
1618 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1619 RAISE FND_API.g_exc_unexpected_error;
1620 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1621 RAISE FND_API.g_exc_error;
1622 END IF;
1623 END IF;
1624
1625 IF (AMS_DEBUG_HIGH_ON) THEN
1626
1627
1628
1629 AMS_Utility_PVT.debug_message(l_full_name||': check record');
1630
1631 END IF;
1632
1633 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record THEN
1634 check_camp_record(
1635 p_camp_rec => p_camp_rec,
1636 p_complete_rec => p_camp_rec,
1637 x_return_status => l_return_status
1638 );
1639 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1640 RAISE FND_API.g_exc_unexpected_error;
1641 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1642 RAISE FND_API.g_exc_error;
1643 END IF;
1644 END IF;
1645
1646 IF (AMS_DEBUG_HIGH_ON) THEN
1647
1648
1649
1650 AMS_Utility_PVT.debug_message(l_full_name||': check inter-entity');
1651
1652 END IF;
1653
1654 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_inter_entity THEN
1655 check_camp_inter_entity(
1656 p_camp_rec => p_camp_rec,
1657 p_complete_rec => p_camp_rec,
1658 p_validation_mode => JTF_PLSQL_API.g_create,
1659 x_return_status => l_return_status
1660 );
1661 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1662 RAISE FND_API.g_exc_unexpected_error;
1663 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1664 RAISE FND_API.g_exc_error;
1665 END IF;
1666 END IF;
1667
1668 -------------------- finish --------------------------
1669 FND_MSG_PUB.count_and_get(
1670 p_encoded => FND_API.g_false,
1671 p_count => x_msg_count,
1672 p_data => x_msg_data
1673 );
1674
1675 IF (AMS_DEBUG_HIGH_ON) THEN
1676
1677
1678
1679 AMS_Utility_PVT.debug_message(l_full_name ||': end');
1680
1681 END IF;
1682
1683 EXCEPTION
1684
1685 WHEN FND_API.g_exc_error THEN
1686 x_return_status := FND_API.g_ret_sts_error;
1687 FND_MSG_PUB.count_and_get(
1688 p_encoded => FND_API.g_false,
1689 p_count => x_msg_count,
1690 p_data => x_msg_data
1691 );
1692
1693 WHEN FND_API.g_exc_unexpected_error THEN
1694 x_return_status := FND_API.g_ret_sts_unexp_error ;
1695 FND_MSG_PUB.count_and_get(
1696 p_encoded => FND_API.g_false,
1697 p_count => x_msg_count,
1698 p_data => x_msg_data
1699 );
1700
1701 WHEN OTHERS THEN
1702 x_return_status := FND_API.g_ret_sts_unexp_error;
1703 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
1704 THEN
1705 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1706 END IF;
1707
1708 FND_MSG_PUB.count_and_get(
1709 p_encoded => FND_API.g_false,
1710 p_count => x_msg_count,
1711 p_data => x_msg_data
1712 );
1713
1714 END validate_campaign;
1715
1716
1717 --====================================================================
1718 -- PROCEDURE
1719 -- check_camp_req_items
1720 --
1721 -- NOTES
1722 -- 1. We don't check status_date and any flags.
1723 --
1724 -- HISTORY
1725 -- 01-Oct-1999 holiu Created.
1726 -- 23-Jan-2001 julou Added check for actual_exec_end_date
1727 -- 06-Feb-2001 ptendulk Modified for Hornet.
1728 --
1729 --====================================================================
1730
1731 PROCEDURE check_camp_req_items(
1732 p_camp_rec IN camp_rec_type,
1733 x_return_status OUT NOCOPY VARCHAR2
1734 )
1735 IS
1736 BEGIN
1737
1738 x_return_status := FND_API.g_ret_sts_success;
1739
1740 ------------------------ owner_user_id --------------------------
1741 IF p_camp_rec.owner_user_id IS NULL THEN
1742 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1743 THEN
1744 FND_MESSAGE.set_name('AMS', 'AMS_CAMP_NO_OWNER_ID');
1745 FND_MSG_PUB.add;
1746 END IF;
1747 x_return_status := FND_API.g_ret_sts_error;
1748 END IF;
1749
1750 ------------------------ user_status_id --------------------------
1751 IF p_camp_rec.user_status_id IS NULL THEN
1752 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1753 THEN
1754 FND_MESSAGE.set_name('AMS', 'AMS_CAMP_NO_USER_STATUS_ID');
1755 FND_MSG_PUB.add;
1756 END IF;
1757 x_return_status := FND_API.g_ret_sts_error;
1758 END IF;
1759
1760 ------------------------ rollup_type --------------------------
1761 IF p_camp_rec.rollup_type IS NULL THEN
1762 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1763 THEN
1764 FND_MESSAGE.set_name('AMS', 'AMS_CAMP_NO_ROOLUP_TYPE');
1765 FND_MSG_PUB.add;
1766 END IF;
1767 x_return_status := FND_API.g_ret_sts_error;
1768 END IF;
1769
1770 ------------------------ application_id --------------------------
1771 IF p_camp_rec.application_id IS NULL THEN
1772 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1773 THEN
1774 FND_MESSAGE.set_name('AMS', 'AMS_API_NO_APPLICATION_ID');
1775 FND_MSG_PUB.add;
1776 END IF;
1777
1778 x_return_status := FND_API.g_ret_sts_error;
1779 END IF;
1780
1781 ------------------------ campaign_name --------------------------
1782 IF p_camp_rec.campaign_name IS NULL THEN
1783 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1784 THEN
1785 FND_MESSAGE.set_name('AMS', 'AMS_CAMP_NO_NAME');
1786 FND_MSG_PUB.add;
1787 END IF;
1788 x_return_status := FND_API.g_ret_sts_error;
1789 END IF;
1790
1791 ------------------------ Start Date --------------------------
1792 IF p_camp_rec.actual_exec_start_date IS NULL THEN
1793 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1794 THEN
1795 FND_MESSAGE.set_name('AMS', 'AMS_CAMP_NO_START_DATE');
1796 FND_MSG_PUB.add;
1797 END IF;
1798 x_return_status := FND_API.g_ret_sts_error;
1799 END IF;
1800
1801
1802 END Check_Camp_Req_Items;
1803
1804
1805 ---------------------------------------------------------------------
1806 -- PROCEDURE
1807 -- check_camp_uk_items
1808 --
1809 -- HISTORY
1810 -- 10/01/99 holiu Created.
1811 -- 07-Mar-2001 ptendulk Moved the source code unique test in inter entitiy.
1812 ---------------------------------------------------------------------
1813 PROCEDURE Check_Camp_Uk_Items(
1814 p_camp_rec IN camp_rec_type,
1815 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
1816 x_return_status OUT NOCOPY VARCHAR2
1817 )
1818 IS
1819 l_valid_flag VARCHAR2(1);
1820 BEGIN
1821
1822 x_return_status := FND_API.g_ret_sts_success;
1823
1824 -- For create_campaign, when campaign_id is passed in, we need to
1825 -- check if this campaign_id is unique.
1826 IF p_validation_mode = JTF_PLSQL_API.g_create
1827 AND p_camp_rec.campaign_id IS NOT NULL
1828 THEN
1829 IF AMS_Utility_PVT.check_uniqueness(
1830 'ams_campaigns_all_b',
1831 'campaign_id = ' || p_camp_rec.campaign_id
1832 ) = FND_API.g_false
1833 THEN
1834 AMS_Utility_PVT.Error_Message('AMS_CAMP_DUPLICATE_ID');
1835 x_return_status := FND_API.g_ret_sts_error;
1836 RETURN;
1837 END IF;
1838 END IF;
1839
1840 END Check_Camp_Uk_Items;
1841
1842
1843 ---------------------------------------------------------------------
1844 -- PROCEDURE
1845 -- check_camp_fk_items
1846 --
1847 -- HISTORY
1848 -- 10/01/99 holiu Created.
1849 ---------------------------------------------------------------------
1850 PROCEDURE Check_Camp_Fk_Items(
1851 p_camp_rec IN camp_rec_type,
1852 x_return_status OUT NOCOPY VARCHAR2
1853 )
1854 IS
1855 l_where_clause VARCHAR2(4000); -- Used by Check_FK_Exists.
1856 l_table_name VARCHAR2(30);
1857 l_pk_name VARCHAR2(30);
1858 l_pk_value VARCHAR2(30);
1859 l_pk_data_type VARCHAR2(30);
1860
1861 BEGIN
1862
1863 x_return_status := FND_API.g_ret_sts_success;
1864
1865 ----------------------- owner_user_id ------------------------
1866 IF p_camp_rec.owner_user_id <> FND_API.g_miss_num THEN
1867 IF AMS_Utility_PVT.check_fk_exists(
1868 -- 'ams_jtf_rs_emp_v',
1869 'jtf_rs_resource_extns',
1870 'resource_id',
1871 p_camp_rec.owner_user_id
1872 ) = FND_API.g_false
1873 THEN
1874 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_OWNER_USER_ID');
1875 x_return_status := FND_API.g_ret_sts_error;
1876 RETURN;
1877 END IF;
1878 END IF;
1879
1880 --------------------- application_id ------------------------
1881 IF p_camp_rec.application_id <> FND_API.g_miss_num THEN
1882 IF AMS_Utility_PVT.check_fk_exists(
1883 'fnd_application',
1884 'application_id',
1885 p_camp_rec.application_id
1886 ) = FND_API.g_false
1887 THEN
1888 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_APPLICATION_ID');
1889 x_return_status := FND_API.g_ret_sts_error;
1890 RETURN;
1891 END IF;
1892 END IF;
1893
1894 --------------------- qp_list_header_id ------------------------
1895 --IF p_camp_rec.qp_list_header_id <> FND_API.g_miss_num
1896 -- AND p_camp_rec.qp_list_header_id IS NOT NULL
1897 --THEN
1898 -- IF AMS_Utility_PVT.check_fk_exists(
1899 -- 'qp_list_headers_b',
1900 -- 'list_header_id',
1901 -- p_camp_rec.qp_list_header_id
1902 -- ) = FND_API.g_false
1903 -- THEN
1904 -- IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1905 -- THEN
1906 -- FND_MESSAGE.set_name('AMS', 'AMS_CAMP_BAD_QP_LIST_ID');
1907 -- FND_MSG_PUB.add;
1908 -- END IF;
1909 -- x_return_status := FND_API.g_ret_sts_error;
1910 -- RETURN;
1911 -- END IF;
1912 --END IF;
1913
1914 --------------------- dscript_name ------------------------
1915 --IF p_camp_rec.dscript_name <> FND_API.g_miss_char
1916 -- AND p_camp_rec.dscript_name IS NOT NULL
1917 --THEN
1918 -- IF AMS_Utility_PVT.check_fk_exists(
1919 -- 'ies_deployed_scripts',
1920 -- 'dscript_name',
1921 -- p_camp_rec.dscript_name
1922 -- ) = FND_API.g_false
1923 -- THEN
1924 -- IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1925 -- THEN
1926 -- FND_MESSAGE.set_name('AMS', 'AMS_CAMP_BAD_DSCRIPT_NAME');
1927 -- FND_MSG_PUB.add;
1928 -- END IF;
1929 -- x_return_status := FND_API.g_ret_sts_error;
1930 -- RETURN;
1931 -- END IF;
1932 -- END IF;
1933
1934 --------------------- custom_setup_id ----------------------------
1935 IF p_camp_rec.custom_setup_id <> FND_API.g_miss_num
1936 AND p_camp_rec.custom_setup_id IS NOT NULL
1937 THEN
1938 l_table_name := 'ams_custom_setups_b' ;
1939 l_pk_name := 'custom_setup_id' ;
1940 l_pk_value := p_camp_rec.custom_setup_id;
1941 l_pk_data_type := AMS_Utility_PVT.G_NUMBER ;
1942 l_where_clause := ' object_type = '''||p_camp_rec.rollup_type ||'''' ;
1943
1944 IF AMS_Utility_PVT.check_fk_exists(
1945 p_table_name => l_table_name,
1946 p_pk_name => l_pk_name,
1947 p_pk_value => l_pk_value,
1948 p_pk_data_type => l_pk_data_type,
1949 p_additional_where_clause => l_where_clause
1950 ) = FND_API.g_false
1951 THEN
1952 AMS_Utility_Pvt.Error_Message('AMS_CAMP_BAD_CUSTOM_SETUP') ;
1953 x_return_status := FND_API.g_ret_sts_error;
1954 RETURN;
1955 END IF;
1956
1957 END IF;
1958
1959 --------------------- city_id ----------------------------
1960 IF p_camp_rec.city_id <> FND_API.g_miss_num
1961 AND p_camp_rec.city_id IS NOT NULL
1962 THEN
1963 IF AMS_Utility_PVT.check_fk_exists(
1964 'jtf_loc_hierarchies_b',
1965 'location_hierarchy_id',
1966 p_camp_rec.city_id,
1967 AMS_Utility_PVT.g_number,
1968 NULL
1969 ) = FND_API.g_false
1970 THEN
1971 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_CITY');
1972 x_return_status := FND_API.g_ret_sts_error;
1973 RETURN;
1974 END IF;
1975 END IF;
1976
1977 --------------------- Task id ----------------------------
1978 IF p_camp_rec.task_id <> FND_API.g_miss_num
1979 AND p_camp_rec.task_id IS NOT NULL
1980 THEN
1981 IF AMS_Utility_PVT.check_fk_exists(
1982 'jtf_tasks_b',
1983 'task_id',
1984 p_camp_rec.task_id,
1985 AMS_Utility_PVT.g_number,
1986 NULL
1987 ) = FND_API.g_false
1988 THEN
1989 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_TASK');
1990 x_return_status := FND_API.g_ret_sts_error;
1991 RETURN;
1992 END IF;
1993 END IF;
1994
1995 --------------------- Language ----------------------------
1996 IF p_camp_rec.language_code <> FND_API.g_miss_char
1997 AND p_camp_rec.language_code IS NOT NULL
1998 THEN
1999 IF AMS_Utility_PVT.check_fk_exists(
2000 'fnd_languages',
2001 'language_code',
2002 p_camp_rec.language_code,
2003 AMS_Utility_PVT.g_varchar2,
2004 NULL
2005 ) = FND_API.g_false
2006 THEN
2007 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_LANG');
2008 x_return_status := FND_API.g_ret_sts_error;
2009 RETURN;
2010 END IF;
2011 END IF;
2012
2013 END Check_Camp_Fk_Items;
2014
2015
2016 ---------------------------------------------------------------------
2017 -- PROCEDURE
2018 -- Check_Camp_Lookup_Items
2019 --
2020 -- HISTORY
2021 -- 10/01/99 holiu Created.
2022 ---------------------------------------------------------------------
2023 PROCEDURE Check_Camp_Lookup_Items(
2024 p_camp_rec IN camp_rec_type,
2025 x_return_status OUT NOCOPY VARCHAR2
2026 )
2027 IS
2028 BEGIN
2029
2030 x_return_status := FND_API.g_ret_sts_success;
2031
2032 ----------------------- rollup_type ------------------------
2033 IF p_camp_rec.rollup_type <> FND_API.g_miss_char
2034 THEN
2035 IF AMS_Utility_PVT.check_lookup_exists(
2036 p_lookup_type => 'AMS_ROLLUP_TYPE',
2037 p_lookup_code => p_camp_rec.rollup_type
2038 ) = FND_API.g_false
2039 THEN
2040 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_ROLLUP_TYPE') ;
2041 x_return_status := FND_API.g_ret_sts_error;
2042 RETURN;
2043 END IF;
2044 END IF;
2045
2046 ---------------------------------------------------------------------
2047 -- 01/24/01 julou Commented out the following check as dont need media_type_code
2048 ---------------------------------------------------------------------
2049 /*
2050 ----------------------- media_type ------------------------
2051 IF p_camp_rec.media_type_code <> FND_API.g_miss_char THEN
2052 IF AMS_Utility_PVT.check_lookup_exists(
2053 p_lookup_type => 'AMS_MEDIA_TYPE',
2054 p_lookup_code => p_camp_rec.media_type_code
2055 ) = FND_API.g_false
2056 THEN
2057 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
2058 THEN
2059 FND_MESSAGE.set_name('AMS', 'AMS_CAMP_BAD_MEDIA_TYPE');
2060 FND_MSG_PUB.add;
2061 END IF;
2062 x_return_status := FND_API.g_ret_sts_error;
2063 RETURN;
2064 END IF;
2065 END IF;
2066 */
2067 ----------------------- campaign_type ------------------------
2068
2069 -- Following code is commented by ptendulk on 12-Feb-2001
2070 ----------------------- event_type ------------------------
2071 --IF p_camp_rec.event_type <> FND_API.g_miss_char
2072 -- AND p_camp_rec.event_type IS NOT NULL
2073 --THEN
2074 -- IF AMS_Utility_PVT.check_lookup_exists(
2075 -- p_lookup_type => 'AMS_EVENT_TYPE',
2076 -- p_lookup_code => p_camp_rec.event_type
2077 -- ) = FND_API.g_false
2078 -- THEN
2079 -- AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_EVENT_TYPE') ;
2080 -- x_return_status := FND_API.g_ret_sts_error;
2081 -- RETURN;
2082 -- END IF;
2083 --END IF;
2084
2085 ----------------------- priority ------------------------
2086 IF p_camp_rec.priority <> FND_API.g_miss_char
2087 AND p_camp_rec.priority IS NOT NULL
2088 THEN
2089 IF AMS_Utility_PVT.check_lookup_exists(
2090 p_lookup_type => 'AMS_PRIORITY',
2091 p_lookup_code => p_camp_rec.priority
2092 ) = FND_API.g_false
2093 THEN
2094 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_PRIORITY') ;
2095 x_return_status := FND_API.g_ret_sts_error;
2096 RETURN;
2097 END IF;
2098 END IF;
2099
2100 ----------------------- priority ------------------------
2101 IF p_camp_rec.priority <> FND_API.g_miss_char
2102 AND p_camp_rec.priority IS NOT NULL
2103 THEN
2104 IF AMS_Utility_PVT.check_lookup_exists(
2105 p_lookup_type => 'AMS_PRIORITY',
2106 p_lookup_code => p_camp_rec.priority
2107 ) = FND_API.g_false
2108 THEN
2109 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_PRIORITY') ;
2110 x_return_status := FND_API.g_ret_sts_error;
2111 RETURN;
2112 END IF;
2113 END IF;
2114
2115 ----------------------- Related Event from ------------------------
2116 IF p_camp_rec.related_event_from <> FND_API.g_miss_char
2117 AND p_camp_rec.related_event_from IS NOT NULL
2118 THEN
2119 IF p_camp_rec.related_event_from <> 'EVEH' AND
2120 p_camp_rec.related_event_from <> 'EVEO'
2121 --Added by rrajesh on 04/16/01 - EONE
2122 AND p_camp_rec.related_event_from <> 'EONE'
2123 THEN
2124 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_EVEH') ;
2125 x_return_status := FND_API.g_ret_sts_error;
2126 RETURN;
2127 END IF;
2128 END IF;
2129
2130 -- Following line of code is Commented by ptendulk as it is no longer being used.
2131 ------------------ ff_shipping_method ------------------------
2132 --IF p_camp_rec.ff_shipping_method <> FND_API.g_miss_char
2133 -- AND p_camp_rec.ff_shipping_method IS NOT NULL
2134 --THEN
2135 -- IF AMS_Utility_PVT.check_lookup_exists(
2136 -- p_lookup_type => 'AMS_CAMP_FF_SHIP_METHOD',
2137 -- p_lookup_code => p_camp_rec.ff_shipping_method
2138 -- ) = FND_API.g_false
2139 -- THEN
2140 -- AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_FF_SHIP_METHOD') ;
2141 -- x_return_status := FND_API.g_ret_sts_error;
2142 -- RETURN;
2143 -- END IF;
2144 --END IF;
2145
2146 ----------------------- cc_call_strategy ----------------------
2147 --IF p_camp_rec.cc_call_strategy <> FND_API.g_miss_char
2148 -- AND p_camp_rec.cc_call_strategy IS NOT NULL
2149 --THEN
2150 -- IF AMS_Utility_PVT.check_lookup_exists(
2151 -- p_lookup_type => 'AMS_CAMP_CALL_STRATEGY',
2152 -- p_lookup_code => p_camp_rec.cc_call_strategy
2153 -- ) = FND_API.g_false
2154 -- THEN
2155 -- AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_CC_CALL_STRATEGY') ;
2156 -- x_return_status := FND_API.g_ret_sts_error;
2157 -- RETURN;
2158 -- END IF;
2159 --END IF;
2160
2161 END Check_Camp_Lookup_Items;
2162
2163
2164 ---------------------------------------------------------------------
2165 -- PROCEDURE
2166 -- check_camp_flag_items
2167 --
2168 -- HISTORY
2169 -- 10/01/99 holiu Created.
2170 ---------------------------------------------------------------------
2171 PROCEDURE check_camp_flag_items(
2172 p_camp_rec IN camp_rec_type,
2173 x_return_status OUT NOCOPY VARCHAR2
2174 )
2175 IS
2176 BEGIN
2177
2178 x_return_status := FND_API.g_ret_sts_success;
2179
2180 ----------------------- active_flag ------------------------
2181 IF p_camp_rec.active_flag <> FND_API.g_miss_char
2182 AND p_camp_rec.active_flag IS NOT NULL
2183 THEN
2184 IF AMS_Utility_PVT.is_Y_or_N(p_camp_rec.active_flag) = FND_API.g_false
2185 THEN
2186 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_ACTIVE_FLAG');
2187 x_return_status := FND_API.g_ret_sts_error;
2188 RETURN;
2189 END IF;
2190 END IF;
2191
2192 ----------------------- private_flag ------------------------
2193 IF p_camp_rec.private_flag <> FND_API.g_miss_char
2194 AND p_camp_rec.private_flag IS NOT NULL
2195 THEN
2196 IF AMS_Utility_PVT.is_Y_or_N(p_camp_rec.private_flag) = FND_API.g_false
2197 THEN
2198 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_PRIVATE_FLAG');
2199 x_return_status := FND_API.g_ret_sts_error;
2200 RETURN;
2201 END IF;
2202 END IF;
2203
2204 ----------------------- partner_flag ------------------------
2205 IF p_camp_rec.partner_flag <> FND_API.g_miss_char
2206 AND p_camp_rec.partner_flag IS NOT NULL
2207 THEN
2208 IF AMS_Utility_PVT.is_Y_or_N(p_camp_rec.partner_flag) = FND_API.g_false
2209 THEN
2210 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_PARTNER_FLAG');
2211 x_return_status := FND_API.g_ret_sts_error;
2212 RETURN;
2213 END IF;
2214 END IF;
2215
2216 ----------------------- template_flag ------------------------
2217 IF p_camp_rec.template_flag <> FND_API.g_miss_char
2218 AND p_camp_rec.template_flag IS NOT NULL
2219 THEN
2220 IF AMS_Utility_PVT.is_Y_or_N(p_camp_rec.template_flag) = FND_API.g_false
2221 THEN
2222 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_TEMPLATE_FLAG');
2223 x_return_status := FND_API.g_ret_sts_error;
2224 RETURN;
2225 END IF;
2226 END IF;
2227
2228 IF p_camp_rec.global_flag <> FND_API.g_miss_char
2229 AND p_camp_rec.global_flag IS NOT NULL
2230 THEN
2231 IF AMS_Utility_PVT.is_Y_or_N(p_camp_rec.global_flag) = FND_API.g_false
2232 THEN
2233 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_GLOBAL_FLAG');
2234 x_return_status := FND_API.g_ret_sts_error;
2235 RETURN;
2236 END IF;
2237 END IF;
2238
2239 IF p_camp_rec.show_campaign_flag <> FND_API.g_miss_char
2240 AND p_camp_rec.show_campaign_flag IS NOT NULL
2241 THEN
2242 IF AMS_Utility_PVT.Is_Y_Or_N(p_camp_rec.show_campaign_flag) = FND_API.g_false
2243 THEN
2244 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_TEMPLATE_FLAG');
2245 x_return_status := FND_API.g_ret_sts_error;
2246 RETURN;
2247 END IF;
2248 END IF;
2249
2250
2251 IF p_camp_rec.accounts_closed_flag <> FND_API.g_miss_char
2252 AND p_camp_rec.accounts_closed_flag IS NOT NULL
2253 THEN
2254 IF AMS_Utility_PVT.Is_Y_Or_N(p_camp_rec.accounts_closed_flag) = FND_API.g_false
2255 THEN
2256 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_ACC_CLOSED_FLAG');
2257 x_return_status := FND_API.g_ret_sts_error;
2258 RETURN;
2259 END IF;
2260 END IF;
2261 ------------------- cascade_source_code_flag -----------------------
2262 -- IF p_camp_rec.cascade_source_code_flag <> FND_API.g_miss_char
2263 -- AND p_camp_rec.cascade_source_code_flag IS NOT NULL
2264 -- THEN
2265 -- IF AMS_Utility_PVT.is_Y_or_N(p_camp_rec.cascade_source_code_flag)
2266 -- = FND_API.g_false
2267 -- THEN
2268 -- AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_CASCADE_FLAG');
2269 -- x_return_status := FND_API.g_ret_sts_error;
2270 -- RETURN;
2271 -- END IF;
2272 --END IF;
2273
2274 END Check_Camp_Flag_Items;
2275
2276
2277 ---------------------------------------------------------------------
2278 -- PROCEDURE
2279 -- Check_Camp_Items
2280 --
2281 -- HISTORY
2282 -- 10/01/99 holiu Created.
2283 ---------------------------------------------------------------------
2284 PROCEDURE Check_Camp_Items(
2285 p_camp_rec IN camp_rec_type,
2286 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
2287 x_return_status OUT NOCOPY VARCHAR2
2288 )
2289 IS
2290 BEGIN
2291
2292 check_camp_req_items(
2293 p_camp_rec => p_camp_rec,
2294 x_return_status => x_return_status
2295 );
2296
2297 IF x_return_status <> FND_API.g_ret_sts_success THEN
2298 RETURN;
2299 END IF;
2300
2301 check_camp_uk_items(
2302 p_camp_rec => p_camp_rec,
2303 p_validation_mode => p_validation_mode,
2304 x_return_status => x_return_status
2305 );
2306
2307 IF x_return_status <> FND_API.g_ret_sts_success THEN
2308 RETURN;
2309 END IF;
2310
2311 check_camp_fk_items(
2312 p_camp_rec => p_camp_rec,
2313 x_return_status => x_return_status
2314 );
2315
2316 IF x_return_status <> FND_API.g_ret_sts_success THEN
2317 RETURN;
2318 END IF;
2319
2320 check_camp_lookup_items(
2321 p_camp_rec => p_camp_rec,
2322 x_return_status => x_return_status
2323 );
2324
2325 IF x_return_status <> FND_API.g_ret_sts_success THEN
2326 RETURN;
2327 END IF;
2328
2329 check_camp_flag_items(
2330 p_camp_rec => p_camp_rec,
2331 x_return_status => x_return_status
2332 );
2333
2334 IF x_return_status <> FND_API.g_ret_sts_success THEN
2335 RETURN;
2336 END IF;
2337
2338 END Check_Camp_Items;
2339
2340
2341 ---------------------------------------------------------------------
2342 -- PROCEDURE
2343 -- check_camp_record
2344 --
2345 -- HISTORY
2346 -- 10/01/99 holiu Created.
2347 ---------------------------------------------------------------------
2348 PROCEDURE check_camp_record(
2349 p_camp_rec IN camp_rec_type,
2350 p_complete_rec IN camp_rec_type,
2351 x_return_status OUT NOCOPY VARCHAR2
2352 )
2353 IS
2354
2355 CURSOR c_parent_type IS
2356 SELECT rollup_type,status_code
2357 FROM ams_campaigns_all_b
2358 WHERE campaign_id = p_camp_rec.parent_campaign_id;
2359
2360 l_parent_type VARCHAR2(30);
2361 l_status_code VARCHAR2(30);
2362 BEGIN
2363
2364 x_return_status := FND_API.g_ret_sts_success;
2365
2366 IF p_camp_rec.campaign_type <> FND_API.g_miss_char
2367 AND p_camp_rec.campaign_type IS NOT NULL
2368 THEN
2369 IF p_complete_rec.rollup_type = 'RCAM' THEN
2370 IF AMS_Utility_PVT.check_lookup_exists(
2371 p_lookup_type => 'AMS_PROGRAM_OBJECTIVE',
2372 p_lookup_code => p_camp_rec.campaign_type
2373 ) = FND_API.g_false
2374 THEN
2375 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_TYPE') ;
2376 x_return_status := FND_API.g_ret_sts_error;
2377 END IF;
2378 ELSE
2379 IF AMS_Utility_PVT.check_lookup_exists(
2380 p_lookup_type => 'AMS_CAMPAIGN_PURPOSE',
2381 p_lookup_code => p_camp_rec.campaign_type
2382 ) = FND_API.g_false
2383 THEN
2384 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_TYPE') ;
2385 x_return_status := FND_API.g_ret_sts_error;
2386 END IF;
2387 END IF;
2388 END IF;
2389
2390 -- budget amount must come with budget currency
2391 IF p_complete_rec.transaction_currency_code IS NULL
2392 AND p_complete_rec.budget_amount_tc IS NOT NULL
2393 THEN
2394 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
2395 THEN
2396 FND_MESSAGE.set_name('AMS', 'AMS_CAMP_BUDGET_NO_CURRENCY');
2397 FND_MSG_PUB.add;
2398 END IF;
2399 x_return_status := FND_API.g_ret_sts_error;
2400 END IF;
2401
2402
2403 --------------------------------------------------------------------
2404 -- 01/23/01 julou Added check parent type
2405 --------------------------------------------------------------------
2406 -- check parent campaign type
2407
2408 IF p_camp_rec.parent_campaign_id IS NOT NULL
2409 AND p_camp_rec.parent_campaign_id <> FND_API.g_miss_num
2410 THEN
2411 IF (AMS_DEBUG_HIGH_ON) THEN
2412
2413 AMS_Utility_PVT.Debug_message('Parent Camp Id '||p_camp_rec.parent_campaign_id );
2414 END IF;
2415 OPEN c_parent_type;
2416 FETCH c_parent_type INTO l_parent_type, l_status_code;
2417 IF (c_parent_type%NOTFOUND) THEN
2418 CLOSE c_parent_type;
2419 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
2420
2421 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
2422 FND_MSG_PUB.add;
2423 END IF;
2424 IF (AMS_DEBUG_HIGH_ON) THEN
2425
2426 AMS_Utility_PVT.Debug_message('Error Here : ' ||p_camp_rec.parent_campaign_id );
2427 END IF;
2428 RAISE FND_API.g_exc_error;
2429 END IF;
2430 CLOSE c_parent_type;
2431
2432 IF l_parent_type <> 'RCAM'
2433 THEN
2434 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
2435 FND_MESSAGE.set_name('AMS', 'AMS_CAMP_BAD_ROLLUP_TYPE');
2436 FND_MSG_PUB.add;
2437 END IF;
2438 RAISE FND_API.g_exc_error;
2439 END IF;
2440
2441 -- Can add component to Programs only when new and active
2442 -- Program-Campaign 1.
2443 IF l_status_code <> 'NEW' AND
2444 l_status_code <> 'ACTIVE'
2445 THEN
2446 AMS_Utility_Pvt.Error_Message('AMS_CAMP_PARENT_STAT');
2447 RAISE FND_API.g_exc_error;
2448 END IF ;
2449
2450 END IF;
2451
2452 END Check_Camp_Record;
2453
2454
2455 ---------------------------------------------------------------------
2456 -- PROCEDURE
2457 -- check_camp_inter_entity
2458 --
2459 -- HISTORY
2460 -- 10/26/99 holiu Created.
2461 -- 18-May-2001 ptendulk Added return after error happens in api.
2462 -- Follow bug #1786801
2463 -- 21-May-2001 ptendulk Added validation to check the duplicate name
2464 -- for Program.
2465 -- 01-Aug-2001 ptendulk Changed the validation for the unique prog
2466 --- name. Removed call to utility check uniqueness.
2467 -- 25-Oct-2001 ptendulk Added validation for the parent of the program.
2468 -- 29-jan-2003 soagrawa Fixed bug# 2764007
2469 ---------------------------------------------------------------------
2470 PROCEDURE check_camp_inter_entity(
2471 p_camp_rec IN camp_rec_type,
2472 p_complete_rec IN camp_rec_type,
2473 p_validation_mode IN VARCHAR2,
2474 x_return_status OUT NOCOPY VARCHAR2
2475 )
2476 IS
2477
2478 l_return_status VARCHAR2(1);
2479 l_start_date DATE;
2480 l_end_date DATE;
2481
2482 l_table_name VARCHAR2(100);
2483 l_pk_name VARCHAR2(100);
2484 l_pk_value NUMBER ;
2485 l_pk_data_type VARCHAR2(30);
2486 l_where_clause VARCHAR2(2000);
2487
2488 CURSOR c_prog_name
2489 IS SELECT 1 from dual
2490 WHERE EXISTS ( SELECT * from ams_campaigns_vl
2491 WHERE rollup_type = 'RCAM'
2492 AND UPPER(campaign_name) = UPPER(p_complete_rec.campaign_name)) ;
2493 CURSOR c_prog_name_updt
2494 IS SELECT 1 from dual
2495 WHERE EXISTS ( SELECT * from ams_campaigns_vl
2496 WHERE rollup_type = 'RCAM'
2497 AND UPPER(campaign_name) = UPPER(p_complete_rec.campaign_name)
2498 AND campaign_id <> p_complete_rec.campaign_id );
2499
2500 l_dummy NUMBER ;
2501
2502 BEGIN
2503
2504 -- For creating, check if source_code is unique in ams_source_codes.
2505 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
2506 IF p_complete_rec.rollup_type = 'RCAM' THEN
2507 IF p_camp_rec.source_code IS NULL THEN
2508 AMS_Utility_PVT.Error_Message('AMS_CAMP_NO_PROG_CODE');
2509 x_return_status := FND_API.g_ret_sts_error;
2510 RETURN;
2511 ELSE
2512
2513 --aranka added 07/27/02
2514 IF AMS_Utility_PVT.check_uniqueness(
2515 'ams_campaigns_all_b',
2516 'source_code = ''' || p_camp_rec.source_code || ''''
2517 -- 'source_code = ''' || p_camp_rec.source_code ||
2518 -- ''' AND rollup_type = ''RCAM'''
2519 ) = FND_API.g_false
2520 THEN
2521 AMS_Utility_PVT.Error_Message('AMS_CAMP_BAD_PROG_CODE');
2522 x_return_status := FND_API.g_ret_sts_error;
2523 RETURN;
2524 END IF;
2525 END IF;
2526 ELSE
2527 IF p_camp_rec.source_code IS NOT NULL THEN
2528 IF AMS_Utility_PVT.check_uniqueness(
2529 'ams_source_codes',
2530 'source_code = ''' || p_camp_rec.source_code ||
2531 ''' AND active_flag = ''Y'''
2532 ) = FND_API.g_false
2533 THEN
2534 AMS_Utility_PVT.Error_Message('AMS_CAMP_DUPLICATE_CODE');
2535 x_return_status := FND_API.g_ret_sts_error;
2536 RETURN;
2537 END IF;
2538
2539 --aranka added 07/27/02
2540 --sam added
2541 IF AMS_Utility_PVT.check_uniqueness(
2542 'ams_campaigns_all_b',
2543 'source_code = ''' || p_camp_rec.source_code || ''''
2544 ) = FND_API.g_false
2545 THEN
2546 AMS_Utility_PVT.Error_Message('AMS_CAMP_DUPLICATE_CODE');
2547 x_return_status := FND_API.g_ret_sts_error;
2548 RETURN;
2549 END IF;
2550
2551
2552 END IF;
2553 END IF ;
2554 END IF;
2555
2556 -- Following code is added by ptendulk on 21-May-2001
2557 -- Program name have to be unique.
2558 -- Please refer to bug #1783583
2559 -------------------------Program Name ---------------------------------
2560 IF p_complete_rec.rollup_type = 'RCAM' THEN
2561 --IF p_validation_mode = JTF_PLSQL_API.g_create THEN
2562 -- IF AMS_Utility_PVT.check_uniqueness(
2563 -- 'ams_campaigns_vl',
2564 -- 'campaign_name = ''' || p_camp_rec.campaign_name ||
2565 -- ''' AND rollup_type = ''RCAM'''
2566 -- ) = FND_API.g_false
2567 -- THEN
2568 -- AMS_Utility_PVT.Error_Message('AMS_PROG_DUPLICATE_NAME');
2569 -- x_return_status := FND_API.g_ret_sts_error;
2570 -- RETURN;
2571 -- END IF;
2572 --ELSE
2573 -- IF AMS_Utility_PVT.check_uniqueness(
2574 -- 'ams_campaigns_vl',
2575 -- 'campaign_name = ''' || p_camp_rec.campaign_name ||
2576 -- ''' AND rollup_type = ''RCAM'''||
2577 -- ' AND campaign_id <> '||p_camp_rec.campaign_id
2578 -- ) = FND_API.g_false
2579 -- THEN
2580 -- AMS_Utility_PVT.Error_Message('AMS_PROG_DUPLICATE_NAME');
2581 -- x_return_status := FND_API.g_ret_sts_error;
2582 -- RETURN;
2583 -- END IF;
2584 --END IF ;
2585 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
2586 OPEN c_prog_name ;
2587 FETCH c_prog_name INTO l_dummy;
2588 CLOSE c_prog_name ;
2589 ELSE
2590 OPEN c_prog_name_updt ;
2591 FETCH c_prog_name_updt INTO l_dummy;
2592 CLOSE c_prog_name_updt ;
2593 END IF ;
2594
2595 IF l_dummy IS NOT NULL THEN
2596 AMS_Utility_PVT.Error_Message('AMS_PROG_DUPLICATE_NAME');
2597 x_return_status := FND_API.g_ret_sts_error;
2598 RETURN;
2599 END IF ;
2600
2601
2602 END IF ;
2603
2604 ------------------------ actual_exec_end_date --------------------------
2605 IF p_camp_rec.actual_exec_end_date IS NOT NULL
2606 AND p_camp_rec.actual_exec_end_date <> FND_API.g_miss_date
2607 THEN
2608 IF p_complete_rec.rollup_type <> 'RCAM'
2609 AND p_camp_rec.actual_exec_end_date IS NULL
2610 THEN
2611 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
2612 THEN
2613 FND_MESSAGE.set_name('AMS', 'AMS_CAMP_NO_END_DATE');
2614 FND_MSG_PUB.add;
2615 END IF;
2616 x_return_status := FND_API.g_ret_sts_error;
2617 RETURN;
2618 END IF;
2619 END IF ;
2620
2621 ------------------------ Related Event --------------------------
2622 IF (p_camp_rec.related_event_id IS NOT NULL AND p_camp_rec.related_event_id <> FND_API.g_miss_num)
2623 OR (p_camp_rec.related_event_from IS NOT NULL AND p_camp_rec.related_event_from <> FND_API.g_miss_char)
2624 THEN
2625 AMS_CampaignRules_PVT.validate_realted_event(
2626 p_related_event_id => p_complete_rec.related_event_id ,
2627 p_related_event_type => p_complete_rec.related_event_from,
2628 x_return_status => x_return_status
2629 ) ;
2630 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2631 AMS_UTILITY_PVT.Error_Message('AMS_CAMP_INVALID_EVENT');
2632 x_return_status := FND_API.G_RET_STS_ERROR;
2633 END IF ;
2634
2635 -- Following code is modified by ptendulk on 22-May-2001
2636 -- Call business rule api
2637 -- Get table_name and pk_name for the ARC qualifier.
2638 --AMS_Utility_PVT.Get_Qual_Table_Name_And_PK (
2639 -- p_sys_qual => p_complete_rec.related_event_from,
2640 -- x_return_status => x_return_status,
2641 -- x_table_name => l_table_name,
2642 -- x_pk_name => l_pk_name
2643 --);
2644
2645 --l_pk_value := p_complete_rec.related_event_id ;
2646 --l_pk_data_type := AMS_Utility_PVT.G_NUMBER;
2647 --l_where_clause := NULL;
2648
2649 --IF AMS_Utility_PVT.Check_FK_Exists (
2650 -- p_table_name => l_table_name
2651 -- ,p_pk_name => l_pk_name
2652 -- ,p_pk_value => l_pk_value
2653 -- ,p_pk_data_type => l_pk_data_type
2654 -- ,p_additional_where_clause => l_where_clause
2655 -- ) = FND_API.G_FALSE
2656 --THEN
2657 -- AMS_UTILITY_PVT.Error_Message('AMS_CAMP_INVALID_EVENT');
2658 -- x_return_status := FND_API.G_RET_STS_ERROR;
2659 -- RETURN;
2660 --END IF;
2661
2662 END IF ;
2663
2664 -- check if actual_exec_start_date <= actual_exec_end_date
2665 IF p_camp_rec.actual_exec_start_date IS NOT NULL
2666 AND p_camp_rec.actual_exec_start_date <> FND_API.g_miss_date
2667 AND p_camp_rec.actual_exec_end_date IS NOT null
2668 AND p_camp_rec.actual_exec_end_date <> FND_API.g_miss_date
2669 THEN
2670 l_start_date := p_complete_rec.actual_exec_start_date;
2671 l_end_date := p_complete_rec.actual_exec_end_date;
2672
2673 IF l_start_date > l_end_date THEN
2674 AMS_UTILITY_PVT.Error_Message('AMS_CAMP_START_AFTER_END');
2675 x_return_status := FND_API.g_ret_sts_error;
2676 -- Following line is added by ptendulk on 18-May-2001
2677 -- Refer bug #1786801
2678 RETURN;
2679 END IF;
2680 END IF;
2681
2682 x_return_status := FND_API.g_ret_sts_success;
2683
2684 ------------------- check template flag ----------------------
2685 AMS_CampaignRules_PVT.Check_Camp_Template_Flag(
2686 p_complete_rec.parent_campaign_id,
2687 p_complete_rec.channel_id,
2688 p_complete_rec.template_flag,
2689 p_complete_rec.status_code,
2690 p_complete_rec.rollup_type,
2691 p_complete_rec.media_type_code,
2692 l_return_status
2693 );
2694 IF l_return_status <> FND_API.g_ret_sts_success THEN
2695 x_return_status := l_return_status;
2696 RETURN;
2697 END IF;
2698
2699 -- Following validation is commented out by ptendulk on 07-Feb-2001
2700 -- as Activity and Marketing mediums are attached at the schedule
2701 -- level from Hornet release.
2702 ------------------- check media type ----------------------
2703 -- IF p_camp_rec.parent_campaign_id <> FND_API.g_miss_num
2704 -- OR p_camp_rec.rollup_type <> FND_API.g_miss_char
2705 -- OR p_camp_rec.media_type_code <> FND_API.g_miss_char
2706 -- OR p_camp_rec.media_id <> FND_API.g_miss_num
2707 -- OR p_camp_rec.channel_id <> FND_API.g_miss_num
2708 -- OR p_camp_rec.event_type <> FND_API.g_miss_char
2709 -- OR p_camp_rec.arc_channel_from <> FND_API.g_miss_char
2710 -- THEN
2711 -- AMS_CampaignRules_PVT.check_camp_media_type(
2712 -- p_camp_rec.campaign_id,
2713 -- p_complete_rec.parent_campaign_id,
2714 -- p_complete_rec.rollup_type,
2715 -- p_complete_rec.media_type_code,
2716 -- p_complete_rec.media_id,
2717 -- p_complete_rec.channel_id,
2718 -- p_complete_rec.event_type,
2719 -- p_complete_rec.arc_channel_from,
2720 -- l_return_status
2721 -- );
2722 -- l_return_status := FND_API.g_ret_sts_success ;
2723 -- IF l_return_status <> FND_API.g_ret_sts_success THEN
2724 -- x_return_status := l_return_status;
2725 -- END IF;
2726 -- END IF;
2727
2728 ------------------- check fund source ----------------------
2729 -- 30-OCT-2000 holiu: remove as no longer needed
2730 -- IF p_camp_rec.fund_source_type <> FND_API.g_miss_char
2731 -- OR p_camp_rec.fund_source_id <> FND_API.g_miss_num
2732 -- THEN
2733 -- AMS_CampaignRules_PVT.check_camp_fund_source(
2734 -- p_complete_rec.fund_source_type,
2735 -- p_complete_rec.fund_source_id,
2736 -- l_return_status
2737 -- );
2738 -- IF l_return_status <> FND_API.g_ret_sts_success THEN
2739 -- x_return_status := l_return_status;
2740 -- END IF;
2741 -- END IF;
2742
2743 ------------------- check calendar ----------------------
2744 IF p_camp_rec.campaign_calendar <> FND_API.g_miss_char
2745 OR p_camp_rec.start_period_name <> FND_API.g_miss_char
2746 OR p_camp_rec.end_period_name <> FND_API.g_miss_char
2747 OR p_camp_rec.actual_exec_start_date <> FND_API.g_miss_date
2748 OR p_camp_rec.actual_exec_end_date <> FND_API.g_miss_date
2749 THEN
2750 AMS_CampaignRules_PVT.check_camp_calendar(
2751 p_complete_rec.campaign_calendar,
2752 p_complete_rec.start_period_name,
2753 p_complete_rec.end_period_name,
2754 p_complete_rec.actual_exec_start_date,
2755 p_complete_rec.actual_exec_end_date,
2756 l_return_status
2757 );
2758 IF l_return_status <> FND_API.g_ret_sts_success THEN
2759 x_return_status := l_return_status;
2760 RETURN;
2761 END IF;
2762 END IF;
2763
2764 -- soagrawa 29-jan-2003 bug# 2764007
2765 IF p_complete_rec.rollup_type <> 'RCAM'
2766 THEN
2767 ------------------- check version ----------------------
2768 IF p_camp_rec.campaign_name <> FND_API.g_miss_char
2769 OR p_camp_rec.status_code <> FND_API.g_miss_char
2770 OR p_camp_rec.actual_exec_start_date <> FND_API.g_miss_date
2771 OR p_camp_rec.city_id <> FND_API.g_miss_num
2772 -- 25-Aug-2005 mayjain version is no longer supported from R12
2773 --OR p_camp_rec.version_no <> FND_API.g_miss_num
2774 THEN
2775 AMS_CampaignRules_PVT.check_camp_version(
2776 p_complete_rec.campaign_id,
2777 p_complete_rec.campaign_name,
2778 p_complete_rec.status_code,
2779 p_complete_rec.actual_exec_start_date,
2780 p_complete_rec.city_id,
2781 p_complete_rec.version_no,
2782 l_return_status
2783 );
2784 IF l_return_status <> FND_API.g_ret_sts_success THEN
2785 x_return_status := l_return_status;
2786 RETURN ;
2787 END IF;
2788 END IF;
2789 END IF;
2790
2791 -- Following code is modified by ptendulk on 09-Sep-2001
2792 -- Business units of parent and child can be different.
2793 -- Refer bug #1966445
2794 -- Check the business unit id
2795 --IF p_camp_rec.business_unit_id IS NOT NULL
2796 ---AND p_camp_rec.business_unit_id <> FND_API.g_miss_num THEN
2797
2798 -- AMS_CampaignRules_PVT.Check_BU_Vs_Child(p_complete_rec.campaign_id ,
2799 -- p_complete_rec.business_unit_id,
2800 -- l_return_status);
2801
2802 -- IF l_return_status <> FND_API.g_ret_sts_success THEN
2803 -- x_return_status := l_return_status;
2804 -- RETURN ;
2805 -- END IF;
2806
2807 -- IF p_complete_rec.parent_campaign_id IS NOT NULL THEN
2808 -- AMS_CampaignRules_PVT.Check_BU_Vs_parent(p_complete_rec.parent_campaign_id ,
2809 -- p_complete_rec.business_unit_id,
2810 -- l_return_status);
2811
2812 -- IF l_return_status <> FND_API.g_ret_sts_success THEN
2813 -- x_return_status := l_return_status;
2814 -- RETURN ;
2815 -- END IF;
2816 -- END IF ;
2817
2818 --END IF ;
2819
2820
2821 ------------------- Parent Status ------------------------------
2822 AMS_CampaignRules_PVT.check_camp_status_vs_parent(
2823 p_complete_rec.parent_campaign_id,
2824 p_complete_rec.status_code,
2825 l_return_status
2826 );
2827 IF l_return_status <> FND_API.g_ret_sts_success THEN
2828 x_return_status := l_return_status;
2829 RETURN ;
2830 END IF;
2831
2832 ------------------- check dates ------------------------------
2833 -- Following code is modified by ptendulk on 16-Jun-2001
2834 -- Refer Bug #1827117 as from program component screen dates will come
2835 -- as g_miss_date
2836 --IF p_camp_rec.actual_exec_start_date <> FND_API.g_miss_date
2837 -- OR p_camp_rec.actual_exec_end_date <> FND_API.g_miss_date
2838 --THEN
2839 -- 09-Aug-2002 aranka
2840 AMS_CampaignRules_PVT.check_camp_dates_vs_parent(
2841 p_complete_rec.parent_campaign_id,
2842 p_complete_rec.rollup_type,
2843 p_complete_rec.actual_exec_start_date,
2844 p_complete_rec.actual_exec_end_date,
2845 l_return_status
2846 );
2847 IF l_return_status <> FND_API.g_ret_sts_success THEN
2848 x_return_status := l_return_status;
2849 RETURN ;
2850 END IF;
2851
2852
2853 IF p_validation_mode = JTF_PLSQL_API.g_update AND
2854 p_complete_rec.rollup_type = 'RCAM'
2855 THEN
2856 AMS_CampaignRules_PVT.check_camp_dates_vs_child(
2857 p_complete_rec.campaign_id,
2858 p_complete_rec.actual_exec_start_date,
2859 p_complete_rec.actual_exec_end_date,
2860 l_return_status
2861 );
2862 IF l_return_status <> FND_API.g_ret_sts_success THEN
2863 x_return_status := l_return_status;
2864 RETURN;
2865 END IF;
2866 END IF;
2867
2868 IF p_validation_mode = JTF_PLSQL_API.g_update
2869 AND p_complete_rec.rollup_type <> 'RCAM'
2870 THEN
2871 AMS_CampaignRules_PVT.check_camp_dates_vs_csch(
2872 p_complete_rec.campaign_id,
2873 p_complete_rec.actual_exec_start_date,
2874 p_complete_rec.actual_exec_end_date,
2875 l_return_status
2876 );
2877 IF l_return_status <> FND_API.g_ret_sts_success THEN
2878 x_return_status := l_return_status;
2879 RETURN ;
2880 END IF;
2881 END IF;
2882
2883 IF p_validation_mode = JTF_PLSQL_API.g_update THEN
2884 IF p_complete_rec.rollup_type = 'RCAM' THEN
2885 AMS_CampaignRules_PVT.Check_Prog_Dates_Vs_Eveh(
2886 p_complete_rec.campaign_id,
2887 p_complete_rec.actual_exec_start_date,
2888 p_complete_rec.actual_exec_end_date,
2889 l_return_status
2890 );
2891 IF l_return_status <> FND_API.g_ret_sts_success THEN
2892 x_return_status := l_return_status;
2893 RETURN ;
2894 END IF;
2895 END IF;
2896 END IF;
2897 --END IF;
2898
2899 IF p_complete_rec.rollup_type = 'RCAM' THEN
2900 IF p_camp_rec.parent_campaign_id IS NOT NULL AND
2901 p_camp_rec.parent_campaign_id <> FND_API.G_MISS_NUM
2902 THEN
2903 AMS_CampaignRules_PVT.Check_Children_Tree( p_campaign_id => p_complete_rec.campaign_id,
2904 p_parent_campaign_id => p_complete_rec.parent_campaign_id) ;
2905 END IF ;
2906
2907 END IF ;
2908
2909 END Check_Camp_Inter_Entity;
2910
2911
2912 ---------------------------------------------------------------------
2913 -- PROCEDURE
2914 -- init_camp_rec
2915 --
2916 -- HISTORY
2917 -- 10/01/99 holiu Created.
2918 ---------------------------------------------------------------------
2919 PROCEDURE init_camp_rec(
2920 x_camp_rec OUT NOCOPY camp_rec_type
2921 )
2922 IS
2923 BEGIN
2924
2925 x_camp_rec.campaign_id := FND_API.g_miss_num;
2926 x_camp_rec.last_update_date := FND_API.g_miss_date;
2927 x_camp_rec.last_updated_by := FND_API.g_miss_num;
2928 x_camp_rec.creation_date := FND_API.g_miss_date;
2929 x_camp_rec.created_by := FND_API.g_miss_num;
2930 x_camp_rec.last_update_login := FND_API.g_miss_num;
2931 x_camp_rec.object_version_number := FND_API.g_miss_num;
2932 x_camp_rec.owner_user_id := FND_API.g_miss_num;
2933 x_camp_rec.user_status_id := FND_API.g_miss_num;
2934 x_camp_rec.status_code := FND_API.g_miss_char;
2935 x_camp_rec.status_date := FND_API.g_miss_date;
2936 x_camp_rec.active_flag := FND_API.g_miss_char;
2937 x_camp_rec.private_flag := FND_API.g_miss_char;
2938 x_camp_rec.partner_flag := FND_API.g_miss_char;
2939 x_camp_rec.template_flag := FND_API.g_miss_char;
2940 x_camp_rec.cascade_source_code_flag := FND_API.g_miss_char;
2941 x_camp_rec.inherit_attributes_flag := FND_API.g_miss_char;
2942 x_camp_rec.source_code := FND_API.g_miss_char;
2943 x_camp_rec.rollup_type := FND_API.g_miss_char;
2944 x_camp_rec.campaign_type := FND_API.g_miss_char;
2945 --x_camp_rec.media_type_code := FND_API.g_miss_char;
2946 x_camp_rec.priority := FND_API.g_miss_char;
2947 x_camp_rec.fund_source_type := FND_API.g_miss_char;
2948 x_camp_rec.fund_source_id := FND_API.g_miss_num;
2949 x_camp_rec.parent_campaign_id := FND_API.g_miss_num;
2950 x_camp_rec.application_id := FND_API.g_miss_num;
2951 --x_camp_rec.media_id := FND_API.g_miss_num;
2952 --x_camp_rec.channel_id := FND_API.g_miss_num;
2953 x_camp_rec.event_type := FND_API.g_miss_char;
2954 x_camp_rec.arc_channel_from := FND_API.g_miss_char;
2955 x_camp_rec.dscript_name := FND_API.g_miss_char;
2956 x_camp_rec.transaction_currency_code := FND_API.g_miss_char;
2957 x_camp_rec.functional_currency_code := FND_API.g_miss_char;
2958 x_camp_rec.budget_amount_tc := FND_API.g_miss_num;
2959 x_camp_rec.budget_amount_fc := FND_API.g_miss_num;
2960 x_camp_rec.forecasted_plan_start_date := FND_API.g_miss_date;
2961 x_camp_rec.forecasted_plan_end_date := FND_API.g_miss_date;
2962 x_camp_rec.forecasted_exec_start_date := FND_API.g_miss_date;
2963 x_camp_rec.forecasted_exec_end_date := FND_API.g_miss_date;
2964 x_camp_rec.actual_plan_start_date := FND_API.g_miss_date;
2965 x_camp_rec.actual_plan_end_date := FND_API.g_miss_date;
2966 x_camp_rec.actual_exec_start_date := FND_API.g_miss_date;
2967 x_camp_rec.actual_exec_end_date := FND_API.g_miss_date;
2968 x_camp_rec.inbound_url := FND_API.g_miss_char;
2969 x_camp_rec.inbound_email_id := FND_API.g_miss_char;
2970 x_camp_rec.inbound_phone_no := FND_API.g_miss_char;
2971 x_camp_rec.duration := FND_API.g_miss_num;
2972 x_camp_rec.duration_uom_code := FND_API.g_miss_char;
2973 x_camp_rec.ff_priority := FND_API.g_miss_char;
2974 x_camp_rec.ff_override_cover_letter := FND_API.g_miss_num;
2975 x_camp_rec.ff_shipping_method := FND_API.g_miss_char;
2976 x_camp_rec.ff_carrier := FND_API.g_miss_char;
2977 x_camp_rec.content_source := FND_API.g_miss_char;
2978 x_camp_rec.cc_call_strategy := FND_API.g_miss_char;
2979 x_camp_rec.cc_manager_user_id := FND_API.g_miss_num;
2980 x_camp_rec.forecasted_revenue := FND_API.g_miss_num;
2981 x_camp_rec.actual_revenue := FND_API.g_miss_num;
2982 x_camp_rec.forecasted_cost := FND_API.g_miss_num;
2983 x_camp_rec.actual_cost := FND_API.g_miss_num;
2984 x_camp_rec.forecasted_response := FND_API.g_miss_num;
2985 x_camp_rec.actual_response := FND_API.g_miss_num;
2986 x_camp_rec.target_response := FND_API.g_miss_num;
2987 x_camp_rec.country_code := FND_API.g_miss_char;
2988 x_camp_rec.language_code := FND_API.g_miss_char;
2989 x_camp_rec.attribute_category := FND_API.g_miss_char;
2990 x_camp_rec.attribute1 := FND_API.g_miss_char;
2991 x_camp_rec.attribute2 := FND_API.g_miss_char;
2992 x_camp_rec.attribute3 := FND_API.g_miss_char;
2993 x_camp_rec.attribute4 := FND_API.g_miss_char;
2994 x_camp_rec.attribute5 := FND_API.g_miss_char;
2995 x_camp_rec.attribute6 := FND_API.g_miss_char;
2996 x_camp_rec.attribute7 := FND_API.g_miss_char;
2997 x_camp_rec.attribute8 := FND_API.g_miss_char;
2998 x_camp_rec.attribute9 := FND_API.g_miss_char;
2999 x_camp_rec.attribute10 := FND_API.g_miss_char;
3000 x_camp_rec.attribute11 := FND_API.g_miss_char;
3001 x_camp_rec.attribute12 := FND_API.g_miss_char;
3002 x_camp_rec.attribute13 := FND_API.g_miss_char;
3003 x_camp_rec.attribute14 := FND_API.g_miss_char;
3004 x_camp_rec.attribute15 := FND_API.g_miss_char;
3005 x_camp_rec.campaign_name := FND_API.g_miss_char;
3006 x_camp_rec.campaign_theme := FND_API.g_miss_char;
3007 x_camp_rec.description := FND_API.g_miss_char;
3008 x_camp_rec.version_no := FND_API.g_miss_num;
3009 x_camp_rec.campaign_calendar := FND_API.g_miss_char;
3010 x_camp_rec.start_period_name := FND_API.g_miss_char;
3011 x_camp_rec.end_period_name := FND_API.g_miss_char;
3012 x_camp_rec.city_id := FND_API.g_miss_num;
3013 x_camp_rec.global_flag := FND_API.g_miss_char;
3014 x_camp_rec.custom_setup_id := FND_API.g_miss_num;
3015 x_camp_rec.show_campaign_flag := FND_API.g_miss_char;
3016 x_camp_rec.business_unit_id := FND_API.g_miss_num;
3017 x_camp_rec.task_id := FND_API.g_miss_num;
3018 x_camp_rec.accounts_closed_flag := FND_API.g_miss_char;
3019 x_camp_rec.related_event_from := FND_API.g_miss_char;
3020 x_camp_rec.related_event_id := FND_API.g_miss_num;
3021 x_camp_rec.program_attribute_category := FND_API.g_miss_char;
3022 x_camp_rec.program_attribute1 := FND_API.g_miss_char ;
3023 x_camp_rec.program_attribute2 := FND_API.g_miss_char ;
3024 x_camp_rec.program_attribute3 := FND_API.g_miss_char ;
3025 x_camp_rec.program_attribute4 := FND_API.g_miss_char ;
3026 x_camp_rec.program_attribute5 := FND_API.g_miss_char ;
3027 x_camp_rec.program_attribute6 := FND_API.g_miss_char ;
3028 x_camp_rec.program_attribute7 := FND_API.g_miss_char ;
3029 x_camp_rec.program_attribute8 := FND_API.g_miss_char ;
3030 x_camp_rec.program_attribute9 := FND_API.g_miss_char ;
3031 x_camp_rec.program_attribute10 := FND_API.g_miss_char ;
3032 x_camp_rec.program_attribute11 := FND_API.g_miss_char ;
3033 x_camp_rec.program_attribute12 := FND_API.g_miss_char ;
3034 x_camp_rec.program_attribute13 := FND_API.g_miss_char ;
3035 x_camp_rec.program_attribute14 := FND_API.g_miss_char ;
3036 x_camp_rec.program_attribute15 := FND_API.g_miss_char ;
3037
3038
3039
3040
3041 END init_camp_rec;
3042
3043
3044 ---------------------------------------------------------------------
3045 -- PROCEDURE
3046 -- complete_camp_rec
3047 --
3048 -- HISTORY
3049 -- 10/01/99 holiu Created.
3050 ---------------------------------------------------------------------
3051 PROCEDURE complete_camp_rec(
3052 p_camp_rec IN camp_rec_type,
3053 x_complete_rec OUT NOCOPY camp_rec_type
3054 )
3055 IS
3056
3057 CURSOR c_camp IS
3058 SELECT *
3059 FROM ams_campaigns_vl
3060 WHERE campaign_id = p_camp_rec.campaign_id;
3061
3062 l_camp_rec c_camp%ROWTYPE;
3063
3064 BEGIN
3065
3066 x_complete_rec := p_camp_rec;
3067
3068 OPEN c_camp;
3069 FETCH c_camp INTO l_camp_rec;
3070 IF c_camp%NOTFOUND THEN
3071 CLOSE c_camp;
3072 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3073 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
3074 FND_MSG_PUB.add;
3075 END IF;
3076 RAISE FND_API.g_exc_error;
3077 END IF;
3078 CLOSE c_camp;
3079
3080 IF p_camp_rec.owner_user_id = FND_API.g_miss_num THEN
3081 x_complete_rec.owner_user_id := l_camp_rec.owner_user_id;
3082 END IF;
3083
3084 IF p_camp_rec.user_status_id = FND_API.g_miss_num THEN
3085 x_complete_rec.user_status_id := l_camp_rec.user_status_id;
3086 END IF;
3087
3088 -- status_code will go with user_status_id
3089 x_complete_rec.status_code := AMS_Utility_PVT.get_system_status_code(
3090 x_complete_rec.user_status_id
3091 );
3092
3093 IF p_camp_rec.status_date = FND_API.g_miss_date
3094 OR p_camp_rec.status_date IS NULL
3095 THEN
3096 IF p_camp_rec.user_status_id = l_camp_rec.user_status_id THEN
3097 -- no status change, set it to be the original value
3098 x_complete_rec.status_date := l_camp_rec.status_date;
3099 ELSE
3100 -- status changed, set it to be SYSDATE
3101 x_complete_rec.status_date := SYSDATE;
3102 END IF;
3103 END IF;
3104
3105 IF p_camp_rec.active_flag = FND_API.g_miss_char THEN
3106 x_complete_rec.active_flag := l_camp_rec.active_flag;
3107 END IF;
3108
3109 IF p_camp_rec.private_flag = FND_API.g_miss_char THEN
3110 x_complete_rec.private_flag := l_camp_rec.private_flag;
3111 END IF;
3112
3113 IF p_camp_rec.partner_flag = FND_API.g_miss_char THEN
3114 x_complete_rec.partner_flag := l_camp_rec.partner_flag;
3115 END IF;
3116
3117 IF p_camp_rec.template_flag = FND_API.g_miss_char THEN
3118 x_complete_rec.template_flag := l_camp_rec.template_flag;
3119 END IF;
3120
3121 IF p_camp_rec.cascade_source_code_flag = FND_API.g_miss_char THEN
3122 x_complete_rec.cascade_source_code_flag := l_camp_rec.cascade_source_code_flag;
3123 END IF;
3124
3125 IF p_camp_rec.inherit_attributes_flag = FND_API.g_miss_char THEN
3126 x_complete_rec.inherit_attributes_flag := l_camp_rec.inherit_attributes_flag;
3127 END IF;
3128
3129 IF p_camp_rec.source_code = FND_API.g_miss_char THEN
3130 x_complete_rec.source_code := l_camp_rec.source_code;
3131 END IF;
3132
3133 IF p_camp_rec.rollup_type = FND_API.g_miss_char THEN
3134 x_complete_rec.rollup_type := l_camp_rec.rollup_type;
3135 END IF;
3136
3137 IF p_camp_rec.campaign_type = FND_API.g_miss_char THEN
3138 x_complete_rec.campaign_type := l_camp_rec.campaign_type;
3139 END IF;
3140
3141 IF p_camp_rec.media_type_code = FND_API.g_miss_char THEN
3142 x_complete_rec.media_type_code := l_camp_rec.media_type_code;
3143 END IF;
3144
3145 IF p_camp_rec.priority = FND_API.g_miss_char THEN
3146 x_complete_rec.priority := l_camp_rec.priority;
3147 END IF;
3148
3149 IF p_camp_rec.fund_source_type = FND_API.g_miss_char THEN
3150 x_complete_rec.fund_source_type := l_camp_rec.fund_source_type;
3151 END IF;
3152
3153 IF p_camp_rec.fund_source_id = FND_API.g_miss_num THEN
3154 x_complete_rec.fund_source_id := l_camp_rec.fund_source_id;
3155 END IF;
3156
3157 IF p_camp_rec.parent_campaign_id = FND_API.g_miss_num THEN
3158 x_complete_rec.parent_campaign_id := l_camp_rec.parent_campaign_id;
3159 END IF;
3160
3161 IF p_camp_rec.application_id = FND_API.g_miss_num THEN
3162 x_complete_rec.application_id := l_camp_rec.application_id;
3163 END IF;
3164
3165 IF p_camp_rec.qp_list_header_id = FND_API.g_miss_num THEN
3166 x_complete_rec.qp_list_header_id := l_camp_rec.qp_list_header_id;
3167 END IF;
3168
3169 IF p_camp_rec.media_id = FND_API.g_miss_num THEN
3170 x_complete_rec.media_id := l_camp_rec.media_id;
3171 END IF;
3172
3173 IF p_camp_rec.channel_id = FND_API.g_miss_num THEN
3174 x_complete_rec.channel_id := l_camp_rec.channel_id;
3175 END IF;
3176
3177 IF p_camp_rec.event_type = FND_API.g_miss_char THEN
3178 x_complete_rec.event_type := l_camp_rec.event_type;
3179 END IF;
3180
3181 IF p_camp_rec.arc_channel_from = FND_API.g_miss_char THEN
3182 x_complete_rec.arc_channel_from := l_camp_rec.arc_channel_from;
3183 END IF;
3184
3185 IF p_camp_rec.dscript_name = FND_API.g_miss_char THEN
3186 x_complete_rec.dscript_name := l_camp_rec.dscript_name;
3187 END IF;
3188
3189 IF p_camp_rec.transaction_currency_code = FND_API.g_miss_char THEN
3190 x_complete_rec.transaction_currency_code := l_camp_rec.transaction_currency_code;
3191 END IF;
3192
3193 IF p_camp_rec.functional_currency_code = FND_API.g_miss_char THEN
3194 x_complete_rec.functional_currency_code := l_camp_rec.functional_currency_code;
3195 END IF;
3196
3197 IF p_camp_rec.budget_amount_tc = FND_API.g_miss_num THEN
3198 x_complete_rec.budget_amount_tc := l_camp_rec.budget_amount_tc;
3199 END IF;
3200
3201 IF p_camp_rec.budget_amount_fc = FND_API.g_miss_num THEN
3202 x_complete_rec.budget_amount_fc := l_camp_rec.budget_amount_fc;
3203 END IF;
3204
3205 IF p_camp_rec.forecasted_plan_start_date = FND_API.g_miss_date THEN
3206 x_complete_rec.forecasted_plan_start_date := l_camp_rec.forecasted_plan_start_date;
3207 END IF;
3208
3209 IF p_camp_rec.forecasted_plan_end_date = FND_API.g_miss_date THEN
3210 x_complete_rec.forecasted_plan_end_date := l_camp_rec.forecasted_plan_end_date;
3211 END IF;
3212
3213 IF p_camp_rec.forecasted_exec_start_date = FND_API.g_miss_date THEN
3214 x_complete_rec.forecasted_exec_start_date := l_camp_rec.forecasted_exec_start_date;
3215 END IF;
3216
3217 IF p_camp_rec.forecasted_exec_end_date = FND_API.g_miss_date THEN
3218 x_complete_rec.forecasted_exec_end_date := l_camp_rec.forecasted_exec_end_date;
3219 END IF;
3220
3221 IF p_camp_rec.actual_plan_start_date = FND_API.g_miss_date THEN
3222 x_complete_rec.actual_plan_start_date := l_camp_rec.actual_plan_start_date;
3223 END IF;
3224
3225 IF p_camp_rec.actual_plan_end_date = FND_API.g_miss_date THEN
3226 x_complete_rec.actual_plan_end_date := l_camp_rec.actual_plan_end_date;
3227 END IF;
3228
3229 IF p_camp_rec.actual_exec_start_date = FND_API.g_miss_date THEN
3230 x_complete_rec.actual_exec_start_date := l_camp_rec.actual_exec_start_date;
3231 END IF;
3232
3233 IF p_camp_rec.actual_exec_end_date = FND_API.g_miss_date THEN
3234 x_complete_rec.actual_exec_end_date := l_camp_rec.actual_exec_end_date;
3235 END IF;
3236
3237 IF p_camp_rec.inbound_url = FND_API.g_miss_char THEN
3238 x_complete_rec.inbound_url := l_camp_rec.inbound_url;
3239 END IF;
3240
3241 IF p_camp_rec.inbound_email_id = FND_API.g_miss_char THEN
3242 x_complete_rec.inbound_email_id := l_camp_rec.inbound_email_id;
3243 END IF;
3244
3245 IF p_camp_rec.inbound_phone_no = FND_API.g_miss_char THEN
3246 x_complete_rec.inbound_phone_no := l_camp_rec.inbound_phone_no;
3247 END IF;
3248
3249 IF p_camp_rec.duration = FND_API.g_miss_num THEN
3250 x_complete_rec.duration := l_camp_rec.duration;
3251 END IF;
3252
3253 IF p_camp_rec.duration_uom_code = FND_API.g_miss_char THEN
3254 x_complete_rec.duration_uom_code := l_camp_rec.duration_uom_code;
3255 END IF;
3256
3257 IF p_camp_rec.ff_priority = FND_API.g_miss_char THEN
3258 x_complete_rec.ff_priority := l_camp_rec.ff_priority;
3259 END IF;
3260
3261 IF p_camp_rec.ff_override_cover_letter = FND_API.g_miss_num THEN
3262 x_complete_rec.ff_override_cover_letter := l_camp_rec.ff_override_cover_letter;
3263 END IF;
3264
3265 IF p_camp_rec.ff_shipping_method = FND_API.g_miss_char THEN
3266 x_complete_rec.ff_shipping_method := l_camp_rec.ff_shipping_method;
3267 END IF;
3268
3269 IF p_camp_rec.ff_carrier = FND_API.g_miss_char THEN
3270 x_complete_rec.ff_carrier := l_camp_rec.ff_carrier;
3271 END IF;
3272
3273 IF p_camp_rec.content_source = FND_API.g_miss_char THEN
3274 x_complete_rec.content_source := l_camp_rec.content_source;
3275 END IF;
3276
3277 IF p_camp_rec.cc_call_strategy = FND_API.g_miss_char THEN
3278 x_complete_rec.cc_call_strategy := l_camp_rec.cc_call_strategy;
3279 END IF;
3280
3281 IF p_camp_rec.cc_manager_user_id = FND_API.g_miss_num THEN
3282 x_complete_rec.cc_manager_user_id := l_camp_rec.cc_manager_user_id;
3283 END IF;
3284
3285 IF p_camp_rec.forecasted_revenue = FND_API.g_miss_num THEN
3286 x_complete_rec.forecasted_revenue := l_camp_rec.forecasted_revenue;
3287 END IF;
3288
3289 IF p_camp_rec.actual_revenue = FND_API.g_miss_num THEN
3290 x_complete_rec.actual_revenue := l_camp_rec.actual_revenue;
3291 END IF;
3292
3293 IF p_camp_rec.forecasted_cost = FND_API.g_miss_num THEN
3294 x_complete_rec.forecasted_cost := l_camp_rec.forecasted_cost;
3295 END IF;
3296
3297 IF p_camp_rec.actual_cost = FND_API.g_miss_num THEN
3298 x_complete_rec.actual_cost := l_camp_rec.actual_cost;
3299 END IF;
3300
3301 IF p_camp_rec.forecasted_response = FND_API.g_miss_num THEN
3302 x_complete_rec.forecasted_response := l_camp_rec.forecasted_response;
3303 END IF;
3304
3305 IF p_camp_rec.actual_response = FND_API.g_miss_num THEN
3306 x_complete_rec.actual_response := l_camp_rec.actual_response;
3307 END IF;
3308
3309 IF p_camp_rec.target_response = FND_API.g_miss_num THEN
3310 x_complete_rec.target_response := l_camp_rec.target_response;
3311 END IF;
3312
3313 IF p_camp_rec.country_code = FND_API.g_miss_char THEN
3314 x_complete_rec.country_code := l_camp_rec.country_code;
3315 END IF;
3316
3317 IF p_camp_rec.language_code = FND_API.g_miss_char THEN
3318 x_complete_rec.language_code := l_camp_rec.language_code;
3319 END IF;
3320
3321 IF p_camp_rec.attribute_category = FND_API.g_miss_char THEN
3322 x_complete_rec.attribute_category := l_camp_rec.attribute_category;
3323 END IF;
3324
3325 IF p_camp_rec.attribute1 = FND_API.g_miss_char THEN
3326 x_complete_rec.attribute1 := l_camp_rec.attribute1;
3327 END IF;
3328
3329 IF p_camp_rec.attribute2 = FND_API.g_miss_char THEN
3330 x_complete_rec.attribute2 := l_camp_rec.attribute2;
3331 END IF;
3332
3333 IF p_camp_rec.attribute3 = FND_API.g_miss_char THEN
3334 x_complete_rec.attribute3 := l_camp_rec.attribute3;
3335 END IF;
3336
3337 IF p_camp_rec.attribute4 = FND_API.g_miss_char THEN
3338 x_complete_rec.attribute4 := l_camp_rec.attribute4;
3339 END IF;
3340
3341 IF p_camp_rec.attribute5 = FND_API.g_miss_char THEN
3342 x_complete_rec.attribute5 := l_camp_rec.attribute5;
3343 END IF;
3344
3345 IF p_camp_rec.attribute6 = FND_API.g_miss_char THEN
3346 x_complete_rec.attribute6 := l_camp_rec.attribute6;
3347 END IF;
3348
3349 IF p_camp_rec.attribute7 = FND_API.g_miss_char THEN
3350 x_complete_rec.attribute7 := l_camp_rec.attribute7;
3351 END IF;
3352
3353 IF p_camp_rec.attribute8 = FND_API.g_miss_char THEN
3354 x_complete_rec.attribute8 := l_camp_rec.attribute8;
3355 END IF;
3356
3357 IF p_camp_rec.attribute9 = FND_API.g_miss_char THEN
3358 x_complete_rec.attribute9 := l_camp_rec.attribute9;
3359 END IF;
3360
3361 IF p_camp_rec.attribute10 = FND_API.g_miss_char THEN
3362 x_complete_rec.attribute10 := l_camp_rec.attribute10;
3363 END IF;
3364
3365 IF p_camp_rec.attribute11 = FND_API.g_miss_char THEN
3366 x_complete_rec.attribute11 := l_camp_rec.attribute11;
3367 END IF;
3368
3369 IF p_camp_rec.attribute12 = FND_API.g_miss_char THEN
3370 x_complete_rec.attribute12 := l_camp_rec.attribute12;
3371 END IF;
3372
3373 IF p_camp_rec.attribute13 = FND_API.g_miss_char THEN
3374 x_complete_rec.attribute13 := l_camp_rec.attribute13;
3375 END IF;
3376
3377 IF p_camp_rec.attribute14 = FND_API.g_miss_char THEN
3378 x_complete_rec.attribute14 := l_camp_rec.attribute14;
3379 END IF;
3380
3381 IF p_camp_rec.attribute15 = FND_API.g_miss_char THEN
3382 x_complete_rec.attribute15 := l_camp_rec.attribute15;
3383 END IF;
3384
3385 IF p_camp_rec.campaign_name = FND_API.g_miss_char THEN
3386 x_complete_rec.campaign_name := l_camp_rec.campaign_name;
3387 END IF;
3388
3389 IF p_camp_rec.campaign_theme = FND_API.g_miss_char THEN
3390 x_complete_rec.campaign_theme := l_camp_rec.campaign_theme;
3391 END IF;
3392
3393 IF p_camp_rec.description = FND_API.g_miss_char THEN
3394 x_complete_rec.description := l_camp_rec.description;
3395 END IF;
3396
3397 IF p_camp_rec.version_no = FND_API.g_miss_num THEN
3398 x_complete_rec.version_no := l_camp_rec.version_no;
3399 END IF;
3400
3401 IF p_camp_rec.campaign_calendar = FND_API.g_miss_char THEN
3402 x_complete_rec.campaign_calendar := l_camp_rec.campaign_calendar;
3403 END IF;
3404
3405 IF p_camp_rec.start_period_name = FND_API.g_miss_char THEN
3406 x_complete_rec.start_period_name := l_camp_rec.start_period_name;
3407 END IF;
3408
3409 IF p_camp_rec.end_period_name = FND_API.g_miss_char THEN
3410 x_complete_rec.end_period_name := l_camp_rec.end_period_name;
3411 END IF;
3412
3413 IF p_camp_rec.city_id = FND_API.g_miss_num THEN
3414 x_complete_rec.city_id := l_camp_rec.city_id;
3415 END IF;
3416
3417 IF p_camp_rec.global_flag = FND_API.g_miss_char THEN
3418 x_complete_rec.global_flag := l_camp_rec.global_flag;
3419 END IF;
3420
3421 IF p_camp_rec.custom_setup_id = FND_API.g_miss_num THEN
3422 x_complete_rec.custom_setup_id := l_camp_rec.custom_setup_id;
3423 END IF;
3424
3425 IF p_camp_rec.show_campaign_flag = FND_API.g_miss_char THEN
3426 x_complete_rec.show_campaign_flag := l_camp_rec.show_campaign_flag;
3427 END IF;
3428
3429 IF p_camp_rec.business_unit_id = FND_API.g_miss_num THEN
3430 x_complete_rec.business_unit_id := l_camp_rec.business_unit_id;
3431 END IF;
3432
3433 IF p_camp_rec.accounts_closed_flag = FND_API.g_miss_char THEN
3434 x_complete_rec.accounts_closed_flag := l_camp_rec.accounts_closed_flag;
3435 END IF;
3436
3437 IF p_camp_rec.task_id = FND_API.g_miss_num THEN
3438 x_complete_rec.task_id := l_camp_rec.task_id;
3439 END IF;
3440
3441 IF p_camp_rec.related_event_from = FND_API.g_miss_char THEN
3442 x_complete_rec.related_event_from := l_camp_rec.related_event_from ;
3443 END IF;
3444
3445 IF p_camp_rec.related_event_id = FND_API.g_miss_num THEN
3446 x_complete_rec.related_event_id := l_camp_rec.related_event_id;
3447 END IF;
3448
3449 IF p_camp_rec.program_attribute_category = FND_API.g_miss_char THEN
3450 x_complete_rec.program_attribute_category := l_camp_rec.program_attribute_category;
3451 END IF;
3452
3453 IF p_camp_rec.program_attribute1 = FND_API.g_miss_char THEN
3454 x_complete_rec.program_attribute1 := l_camp_rec.program_attribute1;
3455 END IF;
3456
3457 IF p_camp_rec.program_attribute2 = FND_API.g_miss_char THEN
3458 x_complete_rec.program_attribute2 := l_camp_rec.program_attribute2;
3459 END IF;
3460
3461 IF p_camp_rec.program_attribute3 = FND_API.g_miss_char THEN
3462 x_complete_rec.program_attribute3 := l_camp_rec.program_attribute3 ;
3463 END IF;
3464
3465 IF p_camp_rec.program_attribute4 = FND_API.g_miss_char THEN
3466 x_complete_rec.program_attribute4 := l_camp_rec.program_attribute4 ;
3467 END IF;
3468
3469 IF p_camp_rec.program_attribute5 = FND_API.g_miss_char THEN
3470 x_complete_rec.program_attribute5 := l_camp_rec.program_attribute5;
3471 END IF;
3472
3473 IF p_camp_rec.program_attribute6 = FND_API.g_miss_char THEN
3474 x_complete_rec.program_attribute6 := l_camp_rec.program_attribute6;
3475 END IF;
3476
3477 IF p_camp_rec.program_attribute7 = FND_API.g_miss_char THEN
3478 x_complete_rec.program_attribute7 := l_camp_rec.program_attribute7;
3479 END IF;
3480
3481 IF p_camp_rec.program_attribute8 = FND_API.g_miss_char THEN
3482 x_complete_rec.program_attribute8 := l_camp_rec.program_attribute8;
3483 END IF;
3484
3485 IF p_camp_rec.program_attribute9 = FND_API.g_miss_char THEN
3486 x_complete_rec.program_attribute9 := l_camp_rec.program_attribute9;
3487 END IF;
3488
3489 IF p_camp_rec.program_attribute10 = FND_API.g_miss_char THEN
3490 x_complete_rec.program_attribute10 := l_camp_rec.program_attribute10;
3491 END IF;
3492
3493 IF p_camp_rec.program_attribute11 = FND_API.g_miss_char THEN
3494 x_complete_rec.program_attribute11 := l_camp_rec.program_attribute11;
3495 END IF;
3496
3497 IF p_camp_rec.program_attribute12 = FND_API.g_miss_char THEN
3498 x_complete_rec.program_attribute12 := l_camp_rec.program_attribute12;
3499 END IF;
3500
3501 IF p_camp_rec.program_attribute13 = FND_API.g_miss_char THEN
3502 x_complete_rec.program_attribute13 := l_camp_rec.program_attribute13 ;
3503 END IF;
3504
3505 IF p_camp_rec.program_attribute14 = FND_API.g_miss_char THEN
3506 x_complete_rec.program_attribute14 := l_camp_rec.program_attribute14 ;
3507 END IF;
3508
3509 IF p_camp_rec.program_attribute15 = FND_API.g_miss_char THEN
3510 x_complete_rec.program_attribute15 := l_camp_rec.program_attribute15;
3511 END IF;
3512
3513
3514 END Complete_Camp_Rec;
3515
3516
3517 END AMS_Campaign_PVT;