DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_EXP_DATE_ASMBLR_PVT

Source


1 PACKAGE BODY OKC_EXP_DATE_ASMBLR_PVT AS
2 /* $Header: OKCREDAB.pls 120.2 2010/05/28 07:08:36 cgopinee ship $ */
3 
4 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
5 
6 g_package  varchar2(33) := '  OKC_EXP_DATE_ASMBLR_PVT.';
7 
8  PROCEDURE exp_date_assemble(
9     p_api_version	IN NUMBER,
10     p_init_msg_list     IN VARCHAR2 ,
11     x_return_status     OUT NOCOPY VARCHAR2,
12     x_msg_count         OUT NOCOPY NUMBER,
13     x_msg_data          OUT NOCOPY VARCHAR2,
14     p_cnh_id            IN okc_condition_headers_b.id%TYPE,
15     p_dnz_chr_id        IN okc_condition_headers_b.dnz_chr_id%TYPE ,
16     p_cnh_variance      IN okc_condition_headers_b.cnh_variance%TYPE,
17     p_before_after      IN okc_condition_headers_b.before_after%TYPE,
18     p_last_rundate      IN okc_condition_headers_b.last_rundate%TYPE) IS
19 
20 
21     l_api_name            CONSTANT VARCHAR2(30) := 'exp_date_assemble';
22     l_api_version         CONSTANT NUMBER := 1.0;
23     l_return_status       VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
24     k                     NUMBER;
25     l_last_rundate	      DATE;
26     l_variance		       okc_condition_headers_b.cnh_variance%TYPE;
27     --l_corrid_rec    	  okc_aq_pub.corrid_rec_typ;
28     l_msg_tbl       	  okc_aq_pub.msg_tab_typ;
29     l_element_name	       okc_action_attributes_b.element_name%TYPE;
30     l_element_value	       VARCHAR2(100);
31     l_acn_id              NUMBER;
32 
33     --Get all the contracts that are expiring from the last rundate
34     --of the date assembler concurrent program for a given condition
35     --Modified the where clause toavoid the FTS on OKC_K_HEADERS_B
36 
37     CURSOR k1_csr(p_chr_id IN NUMBER, p_variance IN NUMBER, p_last_rundate IN DATE)
38     IS
39     SELECT /*+ leading(khr) use_nl(khr cls) */ khr.id k_id,        -- Bug 5012601 Added hint to avoid FTS
40            khr.contract_number k_number,
41 		 khr.contract_number_modifier k_nbr_mod,
42 		 khr.end_date k_expire_date,
43 		 cls.cls_code k_class,
44 		 khr.scs_code k_subclass,
45 		 khr.estimated_amount k_estimated_amount,
46 		 khr.sts_code,
47 		 khr.authoring_org_id
48     FROM  okc_k_headers_b khr,
49     		okc_subclasses_b cls
50     WHERE (khr.id = p_chr_id OR p_chr_id IS NULL)
51     AND khr.scs_code = cls.code
52     AND khr.end_date BETWEEN (p_variance + trunc(p_last_rundate) + 1)
53     AND (trunc(sysdate) + p_variance + 0.99999)
54     ORDER BY k_number;
55 
56     k1_rec	k1_csr%ROWTYPE;
57 
58     CURSOR elements_csr IS
59     SELECT aae.element_name
60     FROM   okc_actions_v acn,okc_action_attributes_v aae
61     WHERE  acn.id = aae.acn_id
62     AND    acn.correlation = 'KEXPIRE';
63 
64     elements_rec elements_csr%ROWTYPE;
65 
66    --
67    l_proc varchar2(72) := g_package||'exp_date_assemble';
68    l_hook_filter VARCHAR2(1) := 'Y'; --cgopinee bugfix for bug9166537.
69    --
70 
71     BEGIN
72 
73 
74   IF (l_debug = 'Y') THEN
75      okc_debug.Set_Indentation(l_proc);
76      okc_debug.Log('10: Entering ',2);
77   END IF;
78 
79   IF (l_debug = 'Y') THEN
80      okc_debug.Log('50: ***** In parameters **** ',2);
81      okc_debug.Log('50: p_api_version : '||p_api_version ,2);
82      okc_debug.Log('50: p_cnh_id : '||p_cnh_id ,2);
83      okc_debug.Log('50: p_dnz_chr_id : '||p_dnz_chr_id ,2);
84      okc_debug.Log('50: p_cnh_variance : '||p_cnh_variance ,2);
85      okc_debug.Log('50: p_before_after : '||p_before_after ,2);
86      okc_debug.Log('50: p_last_rundate : '||p_last_rundate ,2);
87   END IF;
88 
89   FND_FILE.PUT_LINE(FND_FILE.LOG, 'Last Rundate (dd/mm/yyyy:hh24:mi:ss) :'||to_char(p_last_rundate,'dd/mm/yyyy:hh24:mi:ss'));
90   FND_FILE.PUT_LINE(FND_FILE.LOG, 'End_Date Range (dd/mm/yyyy:hh24:mi:ss) :'||to_char((p_cnh_variance + trunc(p_last_rundate) + 1),'dd/mm/yyyy:hh24:mi:ss') || ' and ' || to_char((trunc(sysdate) + p_cnh_variance + 0.99999),'dd/mm/yyyy:hh24:mi:ss' ));
91     -- call start_activity to create savepoint, check comptability
92     -- and initialize message list
93        l_return_status := OKC_API.START_ACTIVITY(l_api_name
94                                                 ,p_init_msg_list
95                                                 ,'_PROCESS'
96                                                 ,x_return_status
97                                                 );
98     -- check if activity started successfully
99        IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
100           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
101        ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
102              RAISE OKC_API.G_EXCEPTION_ERROR;
103        END IF;
104 
105     --Get the correlation
106 /*    SELECT acn.correlation INTO l_corrid_rec FROM okc_actions_v acn
107     WHERE acn.correlation = 'KEXPIRE';*/
108 
109     --Get the action id
110     SELECT acn.id INTO l_acn_id FROM okc_actions_b acn
111     WHERE acn.correlation = 'KEXPIRE';
112 
113         --Check if the variance is positive or negative
114 	IF p_before_after = 'A' THEN
115 		l_variance := p_cnh_variance * -1;
116 	ELSIF p_before_after = 'B' THEN
117 		l_variance := p_cnh_variance;
118 	END IF;
119 
120 	    l_last_rundate := p_last_rundate;
121 
122       --get contract details
123       FOR k1_rec in k1_csr(p_chr_id       => p_dnz_chr_id,
124                            p_variance     => l_variance,
125                            p_last_rundate => l_last_rundate) LOOP
126            k := 0;
127           --added by cgopinee for bug9166537
128           l_hook_filter := oks_code_hook.date_asmblr_fn
129                            (k1_rec.k_id,
130                             k1_rec.k_number,
131                             k1_rec.k_nbr_mod,
132                             k1_rec.k_expire_date,
133                             k1_rec.k_class,
134                             k1_rec.k_subclass,
135                             k1_rec.k_estimated_amount,
136                             k1_rec.sts_code,
137                             k1_rec.authoring_org_id);
138 
139           IF l_hook_filter='Y' THEN
140 
141            FND_FILE.PUT_LINE(FND_FILE.LOG, 'Contract picked for Renewal :'||substr(k1_rec.k_number,1,200));
142 	    --Initialize the table
143     	    l_msg_tbl   := okc_aq_pvt.msg_tab_typ();
144            FOR elements_rec IN elements_csr LOOP
145 
146 
147         -- Bug#4172674 increment counter K inside the loop
148 		--Build the elements table
149     		IF elements_rec.element_name = 'K_ID' THEN
150     			l_msg_tbl.extend;
151 		        k := k + 1;
152        			l_msg_tbl(k).element_name  := elements_rec.element_name;
153        			l_msg_tbl(k).element_value := k1_rec.k_id;
154     		ELSIF elements_rec.element_name = 'K_NUMBER' THEN
155     			l_msg_tbl.extend;
156 		        k := k + 1;
157        			l_msg_tbl(k).element_name  := elements_rec.element_name;
158        			l_msg_tbl(k).element_value := k1_rec.k_number;
159     		ELSIF elements_rec.element_name = 'K_NBR_MOD' THEN
160     			l_msg_tbl.extend;
161 		        k := k + 1;
162        			l_msg_tbl(k).element_name  := elements_rec.element_name;
163        			l_msg_tbl(k).element_value := k1_rec.k_nbr_mod;
164     		ELSIF elements_rec.element_name = 'K_EXPIRE_DATE' THEN
165     			l_msg_tbl.extend;
166 		        k := k + 1;
167        			l_msg_tbl(k).element_name  := elements_rec.element_name;
168        			l_msg_tbl(k).element_value := to_char(k1_rec.k_expire_date, 'DD-MON-YY');
169     		ELSIF elements_rec.element_name = 'K_CLASS' THEN
170     			l_msg_tbl.extend;
171 		        k := k + 1;
172        			l_msg_tbl(k).element_name  := elements_rec.element_name;
173        			l_msg_tbl(k).element_value := k1_rec.k_class;
174    		ELSIF elements_rec.element_name = 'K_SUBCLASS' THEN
175     			l_msg_tbl.extend;
176 		        k := k + 1;
177        			l_msg_tbl(k).element_name  := elements_rec.element_name;
178        			l_msg_tbl(k).element_value := k1_rec.k_subclass;
179 		ELSIF elements_rec.element_name = 'CNH_ID' THEN
180     			l_msg_tbl.extend;
181 		        k := k + 1;
182        			l_msg_tbl(k).element_name  := elements_rec.element_name;
183        			l_msg_tbl(k).element_value := p_cnh_id;
184          	ELSIF elements_rec.element_name = 'ESTIMATED_AMOUNT' THEN
185 			l_msg_tbl.extend;
186 		    k := k + 1;
187 			l_msg_tbl(k).element_name := elements_rec.element_name;
188 			l_msg_tbl(k).element_value := k1_rec.k_estimated_amount;
189 		ELSIF elements_rec.element_name = 'K_STATUS_CODE' THEN
190 			l_msg_tbl.extend;
191 		    k := k + 1;
192 			l_msg_tbl(k).element_name := elements_rec.element_name;
193 			l_msg_tbl(k).element_value := k1_rec.sts_code;
194 		ELSIF elements_rec.element_name = 'ORG_ID' THEN
195 			l_msg_tbl.extend;
196 		    k := k + 1;
197 			l_msg_tbl(k).element_name := elements_rec.element_name;
198 			l_msg_tbl(k).element_value := k1_rec.authoring_org_id;
199     		END IF;
200 		END LOOP;
201 		-- call OKC_AQ_PVT.send_messages to generate the XML string and put it
202   		-- on the queue
203 	/*	OKC_AQ_PUB.send_message(p_api_version     =>1.0
204                          ,p_init_msg_list   => 'F'
205                          ,x_msg_count       => x_msg_count
206                          ,x_msg_data        => x_msg_data
207                          ,x_return_status   => l_return_status
208                          ,p_corrid_rec      => l_corrid_rec
209                          ,p_msg_tab         => l_msg_tbl
210                          ,p_queue_name      => okc_aq_pvt.g_event_queue_name); */
211 		/* Bug#3800031 superceeds Bug#2111951
212         Above call to enque message is commented to process date based events sychronously.
213         A direct call to date condition evaluator is made to evaluate date based events.
214         */
215        OKC_CONDITION_EVAL_PUB.evaluate_date_condition (
216                            p_api_version    => 1.0,
217 		                   p_init_msg_list  => p_init_msg_list,
218                            x_return_status  =>l_return_status,
219                            x_msg_count      =>x_msg_count,
220                            x_msg_data       =>x_msg_data,
221                            p_cnh_id         =>p_cnh_id ,
222                            p_msg_tab        =>l_msg_tbl
223                            );
224 		IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
225           		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
226      	        ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
227              		RAISE OKC_API.G_EXCEPTION_ERROR;
228 		--ELSIF l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
229 			--commit;
230        	        END IF;
231 
232                 FND_MESSAGE.SET_NAME('OKC','OKC_EDA_CONTRACTS');
233 --                FND_MESSAGE.SET_TOKEN('NUMBER',k1_rec.k_number);
234                 FND_MESSAGE.SET_TOKEN('NUMBER',k1_rec.k_number||': '||k1_rec.k_nbr_mod||': Ending  '|| to_char(k1_rec.k_expire_date,'DD-MM-YYYY:hh24:mi:ss'));
235                 FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MESSAGE.GET);
236          END IF; -- l_hook_filter if
237     	END LOOP;  -- end of k1_csr
238      COMMIT;
239     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
240 
241 
242   IF (l_debug = 'Y') THEN
243      okc_debug.Log('1000: Leaving ',2);
244      okc_debug.Reset_Indentation;
245   END IF;
246 
247     EXCEPTION
248        WHEN OKC_API.G_EXCEPTION_ERROR THEN
249        x_return_status := OKC_API.HANDLE_EXCEPTIONS
250        (l_api_name,
251         G_PKG_NAME,
252         'OKC_API.G_RET_STS_ERROR',
253         x_msg_count,
254         x_msg_data,
255         '_PROCESS');
256         IF (l_debug = 'Y') THEN
257            okc_debug.Log('2000: Leaving ',2);
258            okc_debug.Reset_Indentation;
259         END IF;
260        WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
261        x_return_status := OKC_API.HANDLE_EXCEPTIONS
262        (l_api_name,
263         G_PKG_NAME,
264         'OKC_API.G_RET_STS_UNEXP_ERROR',
265         x_msg_count,
266         x_msg_data,
267         '_PROCESS');
268         IF (l_debug = 'Y') THEN
269            okc_debug.Log('3000: Leaving ',2);
270            okc_debug.Reset_Indentation;
271         END IF;
272        WHEN OTHERS THEN
273        x_return_status := OKC_API.HANDLE_EXCEPTIONS
274        (l_api_name,
275         G_PKG_NAME,
276         'OTHERS',
277         x_msg_count,
278         x_msg_data,
279         '_PROCESS');
280         IF (l_debug = 'Y') THEN
281            okc_debug.Log('4000: Leaving ',2);
282            okc_debug.Reset_Indentation;
283         END IF;
284     END exp_date_assemble;
285 
286 
287  PROCEDURE exp_lines_date_assemble(
288     p_api_version	IN NUMBER,
289     p_init_msg_list     IN VARCHAR2 ,
290     x_return_status     OUT NOCOPY VARCHAR2,
291     x_msg_count         OUT NOCOPY NUMBER,
292     x_msg_data          OUT NOCOPY VARCHAR2,
293     p_cnh_id            IN okc_condition_headers_b.id%TYPE,
294     p_dnz_chr_id        IN okc_condition_headers_b.dnz_chr_id%TYPE ,
295     p_cnh_variance      IN okc_condition_headers_b.cnh_variance%TYPE,
296     p_before_after      IN okc_condition_headers_b.before_after%TYPE,
297     p_last_rundate      IN okc_condition_headers_b.last_rundate%TYPE) IS
298 
299 
300 --    l_api_name            CONSTANT VARCHAR2(30) := 'exp_lines_date_assemble';
301     l_api_name            CONSTANT VARCHAR2(30) := 'exp_ln_date_ass';
302     l_api_version         CONSTANT NUMBER := 1.0;
303     l_return_status       VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
304     k                     NUMBER;
305     l_last_rundate	      DATE;
306     l_variance		       okc_condition_headers_b.cnh_variance%TYPE;
307     --l_corrid_rec    	  okc_aq_pub.corrid_rec_typ;
308     l_msg_tbl       	  okc_aq_pub.msg_tab_typ;
309     l_element_name	       okc_action_attributes_b.element_name%TYPE;
310     l_element_value	       VARCHAR2(100);
311     l_acn_id               NUMBER;
312 
313     --Get all the contract LINES that are expiring from the last rundate
314     --of the date assembler concurrent program for a given condition
315 
316     CURSOR k1_csr(p_chr_id IN NUMBER, p_variance IN NUMBER, p_last_rundate IN DATE)
317     IS
318  SELECT /*+ leading(kln) use_nl(kln khr cls sts) */ khr.id k_id,   -- Bug 5012601 Added hint to avoid FTS
319  		khr.contract_number k_number,
320           khr.contract_number_modifier k_nbr_mod,
321           khr.end_date k_expire_date,
322           cls.cls_code k_class,
323           khr.scs_code k_subclass,
324           khr.estimated_amount k_estimated_amount,
325           khr.sts_code,
326           khr.authoring_org_id
327     FROM   okc_k_headers_b khr,
328            okc_subclasses_b cls,
329            okc_statuses_b sts ,
330            okc_k_lines_b kln
331     WHERE
332     (khr.id = p_chr_id OR p_chr_id IS NULL)
333     AND khr.scs_code = cls.code
334     AND khr.sts_code = sts.code
335     AND sts.ste_code IN ('ACTIVE', 'SIGNED')
336     AND kln.sts_code = sts.code
337     AND  kln.dnz_chr_id = khr.id
338     AND kln.end_date BETWEEN (p_variance + trunc(p_last_rundate) + 1)
339     AND (trunc(sysdate) + p_variance + 0.99999)
340     ORDER BY k_number;
341 
342     k1_rec	k1_csr%ROWTYPE;
343 
344 
345     CURSOR elements_csr IS
346     SELECT aae.element_name
347     FROM   okc_actions_v acn,okc_action_attributes_v aae
348     WHERE  acn.id = aae.acn_id
349     AND    acn.correlation = 'KLEXPIRE';
350 
351     elements_rec elements_csr%ROWTYPE;
352 
353    --
354    l_proc varchar2(72) := g_package||'exp_lines_date_assemble';
355    --
356 
357     BEGIN
358 
359   IF (l_debug = 'Y') THEN
360      okc_debug.Set_Indentation(l_proc);
361      okc_debug.Log('10: Entering ',2);
362   END IF;
363 
364   IF (l_debug = 'Y') THEN
365      okc_debug.Log('100: ***** In parameters **** ',2);
366      okc_debug.Log('100: p_api_version : '||p_api_version ,2);
367      okc_debug.Log('100: p_cnh_id : '||p_cnh_id ,2);
368      okc_debug.Log('100: p_dnz_chr_id : '||p_dnz_chr_id ,2);
369      okc_debug.Log('100: p_cnh_variance : '||p_cnh_variance ,2);
370      okc_debug.Log('100: p_before_after : '||p_before_after ,2);
371      okc_debug.Log('100: p_last_rundate : '||p_last_rundate ,2);
372   END IF;
373 
374   FND_FILE.PUT_LINE(FND_FILE.LOG, 'Last Rundate (dd/mm/yyyy:hh24:mi:ss) :'||to_char(p_last_rundate,'dd/mm/yyyy:hh24:mi:ss'));
375   FND_FILE.PUT_LINE(FND_FILE.LOG, 'End_Date Range (dd/mm/yyyy:hh24:mi:ss) :'||to_char((p_cnh_variance + trunc(p_last_rundate) + 1),'dd/mm/yyyy:hh24:mi:ss') || ' and ' || to_char((trunc(sysdate) + p_cnh_variance + 0.99999),'dd/mm/yyyy:hh24:mi:ss' ));
376 
377 
378     -- call start_activity to create savepoint, check comptability
379     -- and initialize message list
380        l_return_status := OKC_API.START_ACTIVITY(l_api_name
381                                                 ,p_init_msg_list
382                                                 ,'_PROCESS'
383                                                 ,x_return_status
384                                                 );
385   IF (l_debug = 'Y') THEN
386      okc_debug.Log('110: l_return_status : '||l_return_status ,2);
387   END IF;
388 
389     -- check if activity started successfully
390        IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
391           RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
392        ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
393              RAISE OKC_API.G_EXCEPTION_ERROR;
394        END IF;
395 
396     --Get the correlation
397     /*SELECT acn.correlation INTO l_corrid_rec FROM okc_actions_v acn
398     WHERE acn.correlation = 'KLEXPIRE';*/
399     --Get the action id
400     SELECT acn.id INTO l_acn_id FROM okc_actions_b acn
401     WHERE acn.correlation = 'KLEXPIRE';
402 
403   IF (l_debug = 'Y') THEN
404      okc_debug.Log('120: After fetching into l_corrid_rec  ',2);
405   END IF;
406 
407         --Check if the variance is positive or negative
408 	IF p_before_after = 'A' THEN
409 		l_variance := p_cnh_variance * -1;
410 	ELSIF p_before_after = 'B' THEN
411 		l_variance := p_cnh_variance;
412 	END IF;
413 
414 	    l_last_rundate := p_last_rundate;
415 
416 
417       --get contract details for K lines to be extended
418       FOR k1_rec in k1_csr(p_chr_id       => p_dnz_chr_id,
419                            p_variance     => l_variance,
420                            p_last_rundate => l_last_rundate) LOOP
421            k := 0;
422   FND_FILE.PUT_LINE(FND_FILE.LOG, 'Contract picked for Renewal :'||substr(k1_rec.k_number,1,200));
423 
424 	    --Initialize the table
425     	    l_msg_tbl   := okc_aq_pvt.msg_tab_typ();
426            FOR elements_rec IN elements_csr LOOP
427 
428 
429 
430         -- Bug#4172674 increment counter K inside the loop
431 		--Build the elements table
432     		IF elements_rec.element_name = 'K_ID' THEN
433 		        k := k + 1;
434     			l_msg_tbl.extend;
435        			l_msg_tbl(k).element_name  := elements_rec.element_name;
436        			l_msg_tbl(k).element_value := k1_rec.k_id;
437     		ELSIF elements_rec.element_name = 'K_NUMBER' THEN
438 		        k := k + 1;
439     			l_msg_tbl.extend;
440        			l_msg_tbl(k).element_name  := elements_rec.element_name;
441        			l_msg_tbl(k).element_value := k1_rec.k_number;
442     		ELSIF elements_rec.element_name = 'K_NBR_MOD' THEN
443 		        k := k + 1;
444     			l_msg_tbl.extend;
445        			l_msg_tbl(k).element_name  := elements_rec.element_name;
446        			l_msg_tbl(k).element_value := k1_rec.k_nbr_mod;
447     		ELSIF elements_rec.element_name = 'K_EXPIRE_DATE' THEN
448 		        k := k + 1;
449     			l_msg_tbl.extend;
450        			l_msg_tbl(k).element_name  := elements_rec.element_name;
451        			l_msg_tbl(k).element_value := to_char(k1_rec.k_expire_date, 'DD-MON-YY');
452     		ELSIF elements_rec.element_name = 'K_CLASS' THEN
453 		        k := k + 1;
454     			l_msg_tbl.extend;
455        			l_msg_tbl(k).element_name  := elements_rec.element_name;
456        			l_msg_tbl(k).element_value := k1_rec.k_class;
457    		ELSIF elements_rec.element_name = 'K_SUBCLASS' THEN
458 		        k := k + 1;
459     			l_msg_tbl.extend;
460        			l_msg_tbl(k).element_name  := elements_rec.element_name;
461        			l_msg_tbl(k).element_value := k1_rec.k_subclass;
462 		ELSIF elements_rec.element_name = 'CNH_ID' THEN
463 		        k := k + 1;
464     			l_msg_tbl.extend;
465        			l_msg_tbl(k).element_name  := elements_rec.element_name;
466        			l_msg_tbl(k).element_value := p_cnh_id;
467          	ELSIF elements_rec.element_name = 'ESTIMATED_AMOUNT' THEN
468 		        k := k + 1;
469 			l_msg_tbl.extend;
470 			l_msg_tbl(k).element_name := elements_rec.element_name;
471 			l_msg_tbl(k).element_value := k1_rec.k_estimated_amount;
472 		ELSIF elements_rec.element_name = 'K_STATUS_CODE' THEN
473 		        k := k + 1;
474 			l_msg_tbl.extend;
475 			l_msg_tbl(k).element_name := elements_rec.element_name;
476 			l_msg_tbl(k).element_value := k1_rec.sts_code;
477 		ELSIF elements_rec.element_name = 'ORG_ID' THEN
478 		        k := k + 1;
479 			l_msg_tbl.extend;
480 			l_msg_tbl(k).element_name := elements_rec.element_name;
481 			l_msg_tbl(k).element_value := k1_rec.authoring_org_id;
482     		END IF;
483 		END LOOP;  -- built the element table for K
484 
485   IF (l_debug = 'Y') THEN
486      okc_debug.Log('140: Calling OKC_AQ_PUB.send_message  ',2);
487   END IF;
488 
489 		-- call OKC_AQ_PVT.send_messages to generate the XML string and put it
490   		-- on the queue
491 /*		OKC_AQ_PUB.send_message(p_api_version     =>'1.0'
492                          ,p_init_msg_list   => 'F'
493                          ,x_msg_count       => x_msg_count
494                          ,x_msg_data        => x_msg_data
495                          ,x_return_status   => l_return_status
496                          ,p_corrid_rec      => l_corrid_rec
497                          ,p_msg_tab         => l_msg_tbl
498                          ,p_queue_name      => okc_aq_pvt.g_event_queue_name);
499 */
500         /* Bug#2111951 Above call to enque message is commented to process date based events
501  sychronously. A direct call to condition evaluator is made to evaluate date bas
502 ed events.*/
503 
504 		/* Bug#3800031 superceeds Bug#2111951
505         Above call to enque message is commented to process date based events sychronously.
506         A direct call to date condition evaluator is made to evaluate date based events.
507         */
508        OKC_CONDITION_EVAL_PUB.evaluate_date_condition (
509                            p_api_version    => 1.0,
510 		                   p_init_msg_list  => p_init_msg_list,
511                            x_return_status  =>l_return_status,
512                            x_msg_count      =>x_msg_count,
513                            x_msg_data       =>x_msg_data,
514                            p_cnh_id         =>p_cnh_id ,
515                            p_msg_tab        =>l_msg_tbl
516                            );
517 
518   IF (l_debug = 'Y') THEN
519      okc_debug.Log('150: Called OKC_AQ_PUB.send_message  ',2);
520      okc_debug.Log('160: l_return_status : '||l_return_status,2);
521   END IF;
522 
523 		IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
524           		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
525      	        ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
526              		RAISE OKC_API.G_EXCEPTION_ERROR;
527        	        END IF;
528 
529        FND_MESSAGE.SET_NAME('OKC','OKC_EDA_CONTRACTS');
530        FND_MESSAGE.SET_TOKEN('NUMBER',k1_rec.k_number||': '||k1_rec.k_nbr_mod||':Ending  '|| to_char(k1_rec.k_expire_date,'DD-MM-YYYY:hh24:mi:ss'));
531        FND_MESSAGE.SET_TOKEN('NUMBER',k1_rec.k_number);
532        FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MESSAGE.GET);
533 
534  IF (l_debug = 'Y') THEN
535     okc_debug.Log('170: going to next k ',2);
536  END IF;
537 
538     	END LOOP; -- for each K
539 
540      COMMIT;
541 
542     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
543 
544   IF (l_debug = 'Y') THEN
545      okc_debug.Log('1000: Leaving ',2);
546      okc_debug.Reset_Indentation;
547   END IF;
548 
549     EXCEPTION
550        WHEN OKC_API.G_EXCEPTION_ERROR THEN
551         IF (l_debug = 'Y') THEN
552            okc_debug.Log('2000: Leaving ',2);
553            okc_debug.Reset_Indentation;
554         END IF;
555        x_return_status := OKC_API.HANDLE_EXCEPTIONS
556        (l_api_name,
557         G_PKG_NAME,
558         'OKC_API.G_RET_STS_ERROR',
559         x_msg_count,
560         x_msg_data,
561         '_PROCESS');
562        WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
563         IF (l_debug = 'Y') THEN
564            okc_debug.Log('3000: Leaving ',2);
565            okc_debug.Reset_Indentation;
566         END IF;
567        x_return_status := OKC_API.HANDLE_EXCEPTIONS
568        (l_api_name,
569         G_PKG_NAME,
570         'OKC_API.G_RET_STS_UNEXP_ERROR',
571         x_msg_count,
572         x_msg_data,
573         '_PROCESS');
574        WHEN OTHERS THEN
575         IF (l_debug = 'Y') THEN
576            okc_debug.Log('4000: Leaving ',2);
577            okc_debug.Reset_Indentation;
578         END IF;
579        x_return_status := OKC_API.HANDLE_EXCEPTIONS
580        (l_api_name,
581         G_PKG_NAME,
582         'OTHERS',
583         x_msg_count,
584         x_msg_data,
585         '_PROCESS');
586     END exp_lines_date_assemble;
587 
588 END OKC_EXP_DATE_ASMBLR_PVT;