DBA Data[Home] [Help]

PACKAGE BODY: APPS.BIM_FIRST_LOAD_FACTS

Source


1 PACKAGE BODY bim_first_load_facts AS
2 /* $Header: bimfdfab.pls 115.19 2003/10/22 08:32:25 kpadiyar ship $*/
3 
4 --g_pkg_name  CONSTANT  VARCHAR2(20) :='BIM_LOAD_FACTS';
5 --G_FILE_NAME CONSTANT  VARCHAR2(20) :='bimldfab.pls';
6 
7 PROCEDURE invoke_object
8    (ERRBUF                  OUT  NOCOPY VARCHAR2,
9     RETCODE		    OUT  NOCOPY NUMBER,
10     p_api_version_number    IN   NUMBER	,
11     p_object                IN   VARCHAR2  DEFAULT NULL,
12    --  p_mode                  IN   VARCHAR2  DEFAULT NULL,
13     p_start_dt              IN   VARCHAR2  DEFAULT NULL,
14     p_end_dt                IN   VARCHAR2  DEFAULT NULL,
15     p_proc_num              IN   NUMBER    DEFAULT 8
16     ) IS
17 cursor max_log_date IS
18 select TRUNC(max(object_last_updated_date))
19 from bim_rep_history
20 where object='DATES';
21     v_error_code              NUMBER;
22     v_error_text              VARCHAR2(1500);
23     l_start_date              DATE;
24     l_end_date                DATE;
25     l_user_id                 NUMBER := FND_GLOBAL.USER_ID();
26     l_api_version_number      CONSTANT NUMBER       := 1.0;
27     l_api_name                CONSTANT VARCHAR2(30) := 'invoke_object';
28     x_msg_count	              NUMBER;
29     x_msg_data		      VARCHAR2(240);
30     x_return_status	      VARCHAR2(1) ;
31     l_init_msg_list           VARCHAR2(10)  := FND_API.G_FALSE;
32     l_max_date                DATE;
33     p_start_date              DATE := FND_DATE.CANONICAL_TO_DATE(p_start_dt);
34     p_end_date                DATE := FND_DATE.CANONICAL_TO_DATE(p_end_dt);
35 
36 BEGIN
37 
38 
39      -- Standard call to check for call compatibility.
40       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
41                                            p_api_version_number,
42                                            l_api_name,
43                                            g_pkg_name)
44       THEN
45           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
46       END IF;
47 
48 
49       -- Initialize message list if p_init_msg_list is set to TRUE.
50 
51 
52       -- Debug Message
53       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
54 
55       -- Initialize API return status to SUCCESS
56       x_return_status := FND_API.G_RET_STS_SUCCESS;
57       OPEN max_log_date;
58       FETCH max_log_date into l_max_date;
59       CLOSE max_log_date;
60       IF (l_max_date is null) or (l_max_date < TRUNC(sysdate)) THEN
61       BIM_POPDATES_PKG.pop_intl_dates(p_start_date);
62       END IF;
63 
64  		BIM_SOURCE_CODE_PKG.LOAD_DATA(p_api_version_number=>1
65                                      ,x_msg_count     => x_msg_count
66                                      ,x_msg_data      => x_msg_data
67                                      ,x_return_status => x_return_status);
68 
69 
70 	 IF p_object = 'CAMPAIGN' THEN
71 
72 		  bim_campaign_facts.populate
73                                      (p_api_version_number => 1.0
74                                      ,p_init_msg_list => FND_API.G_FALSE
75                                      ,x_msg_count     => x_msg_count
76                                      ,x_msg_data      => x_msg_data
77                                      ,x_return_status => x_return_status
78                                      ,p_object        => p_object
79                                      ,p_start_date    => p_start_date
80                                      ,p_end_date      => p_end_date
81                                      ,p_para_num      => p_proc_num
82                                      );
83 
84                   IF    x_return_status = FND_API.g_ret_sts_error
85                   THEN
86                      RAISE FND_API.g_exc_error;
87                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
88                      RAISE FND_API.g_exc_unexpected_error;
89                   END IF;
90 
91 
92 	   ELSIF
93  	   	   p_object = 'EVENT' THEN
94 
95 
96 		   bim_event_facts.POPULATE (
97                                       p_api_version_number => 1.0,
98                                       p_init_msg_list      => FND_API.G_FALSE,
99                                       x_msg_count          => x_msg_count         ,
100                                       x_msg_data           => x_msg_data        ,
101                                       x_return_status      => x_return_status   ,
102                                       p_object             => p_object,
103                                       p_start_date         => p_start_date,
104                                       p_end_date           => p_end_date,
105 				                      p_para_num           => p_proc_num
106                                       );
107                   IF    x_return_status = FND_API.g_ret_sts_error
108                   THEN
109                      RAISE FND_API.g_exc_error;
110                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
111                      RAISE FND_API.g_exc_unexpected_error;
112                   END IF;
113 
114            ELSIF
115                    p_object = 'RESPONSE' THEN
116 
117 
118                    bim_response_facts_pkg.populate (
119                                       p_api_version_number => 1.0,
120                                       p_init_msg_list      => FND_API.G_FALSE,
121                                       x_msg_count          => x_msg_count         ,
122                                       x_msg_data           => x_msg_data        ,
123                                       x_return_status      => x_return_status   ,
124                                       p_start_date         => p_start_date,
125                                       p_end_date           => p_end_date,
126                                       p_para_num           => p_proc_num
127                                       );
128 
129                   IF    x_return_status = FND_API.g_ret_sts_error
130                   THEN
131                      RAISE FND_API.g_exc_error;
132                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
133                      RAISE FND_API.g_exc_unexpected_error;
134                   END IF;
135 
136            ELSIF
137                    p_object = 'LEADS' THEN
138 
139 
140                    bim_lead_facts_pkg.populate (
141                                       p_api_version_number => 1.0,
142                                       p_init_msg_list      => FND_API.G_FALSE,
143                                       x_msg_count          => x_msg_count         ,
144                                       x_msg_data           => x_msg_data        ,
145                                       x_return_status      => x_return_status   ,
146                                       p_object             => p_object,
147                                       p_start_date         => p_start_date,
148                                       p_end_date           => p_end_date,
149                                       p_para_num           => p_proc_num
150                                       );
151 
152                   IF    x_return_status = FND_API.g_ret_sts_error
153                   THEN
154                      RAISE FND_API.g_exc_error;
155                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
156                      RAISE FND_API.g_exc_unexpected_error;
157                   END IF;
158 
159          ELSIF
160            p_object = 'LEAD_IMPORT' THEN
161 
162 		   bim_lead_import_facts_pkg.POPULATE (
163                                       p_api_version_number => 1.0,
164                                       p_init_msg_list      => FND_API.G_FALSE,
165                                       x_msg_count          => x_msg_count         ,
166                                       x_msg_data           => x_msg_data        ,
167                                       x_return_status      => x_return_status   ,
168                                       p_object             => 'LEAD_IMPORT',
169                                       p_start_date         => p_start_date,
170                                       p_end_date           => p_end_date,
171 				                      p_para_num           => p_proc_num
172                                       );
173                   IF    x_return_status = FND_API.g_ret_sts_error
174                   THEN
175                      RAISE FND_API.g_exc_error;
176                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
177                      RAISE FND_API.g_exc_unexpected_error;
178                   END IF;
179 
180          ELSIF
181    		 p_object = 'BUDGET'THEN
182 
183 	         bim_fund_facts.populate (
184                           	      p_api_version_number => 1.0,
185                                       p_init_msg_list      => FND_API.G_FALSE,
186                                       x_msg_count          => x_msg_count      ,
187                                       x_msg_data           => x_msg_data    ,
188                                       x_return_status      => x_return_status    ,
189                                       P_OBJECT             => 'FUND',
190                                       P_START_DATE         => p_start_date,
191                                       P_END_DATE           => p_end_date,
192 				                      p_para_num           => p_proc_num
193 			              );
194                   IF    x_return_status = FND_API.g_ret_sts_error
195                   THEN
196                      RAISE FND_API.g_exc_error;
197                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
198                      RAISE FND_API.g_exc_unexpected_error;
199                   END IF;
200 
201 
202 	   ELSIF
203 		  p_object = 'ALL' THEN
204 
205 		  bim_campaign_facts.populate
206                                      (p_api_version_number => 1.0
207                                      ,p_init_msg_list => FND_API.G_FALSE
208                                      ,x_msg_count     => x_msg_count
209                                      ,x_msg_data      => x_msg_data
210                                      ,x_return_status => x_return_status
211                                      ,p_object        => 'CAMPAIGN'
212                                      ,p_start_date    => p_start_date
213                                      ,p_end_date      => p_end_date
214                                      ,p_para_num      => p_proc_num
215                                      );
216 
217                   IF    x_return_status = FND_API.g_ret_sts_error
218                   THEN
219                      RAISE FND_API.g_exc_error;
220                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
221                      RAISE FND_API.g_exc_unexpected_error;
222                   END IF;
223 
224   		  bim_event_facts.populate (
225                                       p_api_version_number => 1.0,
226                                       p_init_msg_list      => FND_API.G_FALSE,
227                                       x_msg_count          => x_msg_count         ,
228                                       x_msg_data           => x_msg_data        ,
229                                       x_return_status      => x_return_status   ,
230                                       p_object             => 'EVENT',
231                                       p_start_date         => p_start_date,
232                                       p_end_date           => p_end_date,
233 			                          p_para_num           => p_proc_num
234 				      );
235                   IF    x_return_status = FND_API.g_ret_sts_error
236                   THEN
237                      RAISE FND_API.g_exc_error;
238                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
239                      RAISE FND_API.g_exc_unexpected_error;
240                   END IF;
241 
242                  bim_lead_import_facts_pkg.POPULATE (
243                                       p_api_version_number => 1.0,
244                                       p_init_msg_list      => FND_API.G_FALSE,
245                                       x_msg_count          => x_msg_count         ,
246                                       x_msg_data           => x_msg_data        ,
247                                       x_return_status      => x_return_status   ,
248                                       p_object             => 'LEAD_IMPORT',
249                                       p_start_date         => p_start_date,
250                                       p_end_date           => p_end_date,
251 				                      p_para_num           => p_proc_num
252                                       );
253                   IF    x_return_status = FND_API.g_ret_sts_error
254                   THEN
255                      RAISE FND_API.g_exc_error;
256                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
257                      RAISE FND_API.g_exc_unexpected_error;
258                   END IF;
259                    bim_response_facts_pkg.populate (
260                                       p_api_version_number => 1.0,
261                                       p_init_msg_list      => FND_API.G_FALSE,
262                                       x_msg_count          => x_msg_count         ,
263                                       x_msg_data           => x_msg_data        ,
264                                       x_return_status      => x_return_status   ,
265                                       p_start_date         => p_start_date,
266                                       p_end_date           => p_end_date,
267                                       p_para_num           => p_proc_num
268                                       );
269 
270                   IF    x_return_status = FND_API.g_ret_sts_error
271                   THEN
272                      RAISE FND_API.g_exc_error;
273                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
274                      RAISE FND_API.g_exc_unexpected_error;
275                   END IF;
276 
277                    bim_lead_facts_pkg.populate (
278                                       p_api_version_number => 1.0,
279                                       p_init_msg_list      => FND_API.G_FALSE,
280                                       x_msg_count          => x_msg_count         ,
281                                       x_msg_data           => x_msg_data        ,
282                                       x_return_status      => x_return_status   ,
283                                       p_object             => p_object,
284                                       p_start_date         => p_start_date,
285                                       p_end_date           => p_end_date,
286                                       p_para_num           => p_proc_num
287                                       );
288 
289                   IF    x_return_status = FND_API.g_ret_sts_error
290                   THEN
291                      RAISE FND_API.g_exc_error;
292                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
293                      RAISE FND_API.g_exc_unexpected_error;
294                   END IF;
295 
296 
297 	          bim_fund_facts.populate (
298                           	          p_api_version_number  => 1.0,
299                                       p_init_msg_list       => FND_API.G_FALSE,
300                                       x_msg_count           => x_msg_count      ,
301                                       x_msg_data            => x_msg_data    ,
302                                       x_return_status       => x_return_status    ,
303                                       p_object              => 'FUND',
304                                       p_start_date          => p_start_date,
305                                       p_end_date            => p_end_date,
306 				      p_para_num            => p_proc_num
307                                      -- p_smode              => p_mode
308 				      );
309 
310                   IF    x_return_status = FND_API.g_ret_sts_error
311                   THEN
312                      RAISE FND_API.g_exc_error;
313                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
314                      RAISE FND_API.g_exc_unexpected_error;
315                   END IF;
316 
317 	      END IF;
318 
319 	  	  AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'End');
320 
321    EXCEPTION
322 
323    WHEN FND_API.G_EXC_ERROR THEN
324 	 x_return_status := FND_API.g_ret_sts_error ;
325 	 FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
326                                 p_count   => x_msg_count,
327                                 p_data    => x_msg_data);
328      ERRBUF := x_msg_data;
329      RETCODE := 2;
330 
331    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
332     	x_return_status := FND_API.g_ret_sts_unexp_error ;
333     FND_MSG_PUB.Count_And_Get (p_encoded => FND_API.G_FALSE,
334             				   p_count => x_msg_count,
335                                p_data  => x_msg_data);
336      ERRBUF := x_msg_data;
337      RETCODE := 2;
338 
339    WHEN OTHERS THEN
340         	x_return_status := FND_API.g_ret_sts_unexp_error ;
341      FND_MSG_PUB.Count_And_Get (p_encoded => FND_API.G_FALSE,
342              				    p_count => x_msg_count,
343                                 p_data  => x_msg_data);
344      ERRBUF  := sqlerrm(sqlcode);
345      RETCODE := sqlcode;
346 
347 END invoke_object;
348 
349 
350 PROCEDURE recover_object
351    (ERRBUF                  OUT  NOCOPY VARCHAR2,
352     RETCODE		    OUT  NOCOPY NUMBER,
353     p_api_version_number    IN   NUMBER	,
354     p_object                IN   VARCHAR2  DEFAULT NULL,
355     p_date                  IN   DATE    DEFAULT SYSDATE
356     ) IS
357 
358     v_error_code              NUMBER;
359     v_error_text              VARCHAR2(1500);
360     l_start_date              DATE;
361     l_end_date                DATE;
362     l_user_id                 NUMBER := FND_GLOBAL.USER_ID();
363     l_api_version_number      CONSTANT NUMBER       := 1.0;
364     l_api_name                CONSTANT VARCHAR2(30) := 'invoke_object';
365     x_msg_count	              NUMBER;
366     x_msg_data		      VARCHAR2(240);
367     x_return_status	      VARCHAR2(10);
368     l_init_msg_list           VARCHAR2(10)  := FND_API.G_FALSE;
369 
370 BEGIN
371 
372      -- Standard call to check for call compatibility.
373       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
374                                            p_api_version_number,
375                                            l_api_name,
376                                            g_pkg_name)
377       THEN
378           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
379       END IF;
380 
381 
382       -- Initialize message list if p_init_msg_list is set to TRUE.
383 
384 
385       -- Debug Message
386       AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
387 
388       -- Initialize API return status to SUCCESS
389       x_return_status := FND_API.G_RET_STS_SUCCESS;
390 
391 	 IF p_object = 'CAMPAIGN' THEN
392 		       	bim_campaign_facts.campaign_daily_load
393                                      (p_api_version_number => 1.0
394                                      ,p_init_msg_list => FND_API.G_FALSE
395                                      ,x_msg_count     => x_msg_count
396                                      ,x_msg_data      => x_msg_data
397                                      ,x_return_status => x_return_status
398 				     ,p_date => p_date
399 				     );
400                   IF    x_return_status = FND_API.g_ret_sts_error
401                   THEN
402                      RAISE FND_API.g_exc_error;
403                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
404                      RAISE FND_API.g_exc_unexpected_error;
405                   END IF;
406 
407 	ELSIF
408    	   p_object = 'EVENT' 	THEN
409 		  	 bim_event_facts.event_subsequent_load
410 				                     (p_start_datel    => null
411                                      ,p_end_datel     => p_date
412                                      ,p_api_version_number => 1.0
413                                      ,x_msg_count     => x_msg_count
414                                      ,x_msg_data      => x_msg_data
415                                      ,x_return_status => x_return_status
416 				    );
417                   IF    x_return_status = FND_API.g_ret_sts_error
418                   THEN
419                      RAISE FND_API.g_exc_error;
420                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
421                      RAISE FND_API.g_exc_unexpected_error;
422                   END IF;
423 
424 	/*ELSIF
425 	   p_object = 'BUDGET'	THEN
426 		        bim_fund_facts.fund_daily_load
427 				                     (p_date      => p_date
428                                      ,x_msg_count     => x_msg_count
429                                      ,x_msg_data      => x_msg_data
430                                      ,x_return_status => x_return_status
431 			             );
432                   IF    x_return_status = FND_API.g_ret_sts_error
433                   THEN
434                      RAISE FND_API.g_exc_error;
435                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
436                      RAISE FND_API.g_exc_unexpected_error;
437                   END IF; */
438 
439 	ELSIF
440 	   p_object = 'ALL'	THEN
441 
442 		       	bim_campaign_facts.campaign_daily_load
443                                      (p_api_version_number => 1.0
444                                      ,p_init_msg_list => FND_API.G_FALSE
445                                      ,x_msg_count     => x_msg_count
446                                      ,x_msg_data      => x_msg_data
447                                      ,x_return_status => x_return_status
448 				     ,p_date	=> p_date
449 				     );
450                   IF    x_return_status = FND_API.g_ret_sts_error
451                   THEN
452                      RAISE FND_API.g_exc_error;
453                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
454                      RAISE FND_API.g_exc_unexpected_error;
455                   END IF;
456 
457 		  	bim_event_facts.event_subsequent_load
458 				                    (p_start_datel     => null
459                                      ,p_end_datel     => p_date
460                                      ,p_api_version_number => 1.0
461                                      ,x_msg_count     => x_msg_count
462                                      ,x_msg_data      => x_msg_data
463                                      ,x_return_status => x_return_status
464 				    );
465                   IF    x_return_status = FND_API.g_ret_sts_error
466                   THEN
467                      RAISE FND_API.g_exc_error;
468                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
469                      RAISE FND_API.g_exc_unexpected_error;
470                   END IF;
471 
472 /*		        bim_fund_facts.fund_daily_load
473 				                     (p_date      => p_date
474                                      ,x_msg_count     => x_msg_count
475                                      ,x_msg_data      => x_msg_data
476                                      ,x_return_status => x_return_status
477 			             );
478                   IF    x_return_status = FND_API.g_ret_sts_error
479                   THEN
480                      RAISE FND_API.g_exc_error;
481                   ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
482                      RAISE FND_API.g_exc_unexpected_error;
483                   END IF; */
484 
485          END IF;
486 
487 EXCEPTION
488 
489    WHEN FND_API.G_EXC_ERROR THEN
490 	 x_return_status := FND_API.g_ret_sts_error ;
491 	 FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
492                                 p_count   => x_msg_count,
493                                 p_data    => x_msg_data);
494      ERRBUF := x_msg_data;
495      RETCODE := 2;
496 
497    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
498     	x_return_status := FND_API.g_ret_sts_unexp_error ;
499     FND_MSG_PUB.Count_And_Get (p_encoded => FND_API.G_FALSE,
500             				   p_count => x_msg_count,
501                                p_data  => x_msg_data);
502      ERRBUF := x_msg_data;
503      RETCODE := 2;
504 
505    WHEN OTHERS THEN
506         	x_return_status := FND_API.g_ret_sts_unexp_error ;
507      FND_MSG_PUB.Count_And_Get (p_encoded => FND_API.G_FALSE,
508              				    p_count => x_msg_count,
509                                 p_data  => x_msg_data);
510 
511      ERRBUF  := sqlerrm(sqlcode);
512      RETCODE := sqlcode;
513 
514 END recover_object;
515 
516 
517 END bim_first_load_facts;