DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_SCHR_AD_ASMBLR_PVT

Source


1 PACKAGE BODY OKC_SCHR_AD_ASMBLR_PVT AS
2 /* $Header: OKCRSARB.pls 120.0 2005/05/25 19:16:22 appldev noship $ */
3 
4 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
5 
6 PROCEDURE acn_assemble(
7   p_api_version       		IN NUMBER,
8   p_init_msg_list     		IN VARCHAR2 ,
9   x_return_status     		OUT NOCOPY VARCHAR2,
10   x_msg_count         		OUT NOCOPY NUMBER,
11   x_msg_data          		OUT NOCOPY VARCHAR2,
12   p_rtv_id			IN NUMBER,
13   p_actual_date			IN DATE)  IS
14 
15  l_api_name      CONSTANT VARCHAR2(30) := 'acn_assemble';
16  l_api_version   CONSTANT NUMBER := 1.0;
17  k               NUMBER := 1;
18  l_corrid_rec    okc_aq_pub.corrid_rec_typ;
19  l_msg_tbl       okc_aq_pub.msg_tab_typ;
20  l_msg_count     number;
21  l_msg_data      varchar2(1000);
22  l_return_status varchar2(1);
23  l_actual_date	 date;
24 
25  --Select all the attributes for the scheduled actual date recorded event
26  CURSOR elements_csr IS
27  SELECT aae.element_name, aae.format_mask
28  FROM okc_actions_v acn,okc_action_attributes_v aae
29  WHERE acn.id = aae.acn_id
30  AND acn.correlation = 'SHR_ADATE_REC' ;
31 
32 -- The following cursor has been changed by MSENGUPT on 12/08/2001 to replace okc_rules_v to okc_rules_b
33  --Select the rule attributes for the time value id
34  CURSOR rul_cur(p_rtve_id IN NUMBER) IS
35  select rul.id rule_id,
36         rul.dnz_chr_id,
37         rul.rule_information1 rule_name
38  from okc_resolved_timevalues res, okc_rules_b rul
39  where res.id = p_rtve_id
40  and to_char(res.tve_id) = rul.rule_information2
41  and rul.rule_information_category = 'NTN';
42 
43  --Select all the Contract attributes for a specific contract id
44  CURSOR chr_csr(p_chr_id IN NUMBER) IS
45  SELECT khr.id k_id,
46 	khr.contract_number k_number,
47 	khr.contract_number_modifier k_nbr_mod,
48 	cls.cls_code k_class,
49 	khr.scs_code k_subclass,
50 	khr.estimated_amount k_estimated_amount,
51 	khr.sts_code
52   FROM   okc_k_headers_b khr,okc_subclasses_b cls
53   WHERE khr.id = p_chr_id
54   AND khr.scs_code = cls.code;
55 
56 BEGIN
57 
58  l_return_status := OKC_API.START_ACTIVITY
59                     (l_api_name
60                     ,p_init_msg_list
61                     ,'_PROCESS'
62                     ,x_return_status);
63 
64   IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
65      RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
66   ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
67      RAISE OKC_API.G_EXCEPTION_ERROR;
68   END IF;
69 
70   --The correlation for the scheduled actual date recorded event
71   l_corrid_rec.corrid := 'SHR_ADATE_REC' ;
72 -- check if action is enabled
73 IF OKC_K_SIGN_ASMBLR_PVT.isActionEnabled(l_corrid_rec.corrid) = 'Y' THEN
74 
75   FOR rule_rec in rul_cur(p_rtve_id => p_rtv_id) LOOP
76      FOR k1_rec in chr_csr(p_chr_id   => rule_rec.dnz_chr_id) LOOP
77 		k := 1;
78 	      --Initialize the table
79   	      l_msg_tbl := okc_aq_pvt.msg_tab_typ();
80            FOR elements_rec IN elements_csr LOOP
81 		--Build the elements table
82     		IF elements_rec.element_name = 'K_ID' THEN
83     			l_msg_tbl.extend;
84        			l_msg_tbl(k).element_name  := elements_rec.element_name;
85        			l_msg_tbl(k).element_value := k1_rec.k_id;
86     		ELSIF elements_rec.element_name = 'K_NUMBER' THEN
87     			l_msg_tbl.extend;
88        			l_msg_tbl(k).element_name  := elements_rec.element_name;
89        			l_msg_tbl(k).element_value := k1_rec.k_number;
90     		ELSIF elements_rec.element_name = 'K_NBR_MOD' THEN
91     			l_msg_tbl.extend;
92        			l_msg_tbl(k).element_name  := elements_rec.element_name;
93        			l_msg_tbl(k).element_value := k1_rec.k_nbr_mod;
94     		ELSIF elements_rec.element_name = 'K_CLASS' THEN
95     			l_msg_tbl.extend;
96        			l_msg_tbl(k).element_name  := elements_rec.element_name;
97        			l_msg_tbl(k).element_value := k1_rec.k_class;
98    		ELSIF elements_rec.element_name = 'K_SUBCLASS' THEN
99     			l_msg_tbl.extend;
100        			l_msg_tbl(k).element_name  := elements_rec.element_name;
101        			l_msg_tbl(k).element_value := k1_rec.k_subclass;
102          	ELSIF elements_rec.element_name = 'ESTIMATED_AMOUNT' THEN
103 			l_msg_tbl.extend;
104 			l_msg_tbl(k).element_name := elements_rec.element_name;
105 			l_msg_tbl(k).element_value := k1_rec.k_estimated_amount;
106 		ELSIF elements_rec.element_name = 'K_STATUS_CODE' THEN
107 			l_msg_tbl.extend;
108 			l_msg_tbl(k).element_name := elements_rec.element_name;
109 			l_msg_tbl(k).element_value := k1_rec.sts_code;
110 		ELSIF elements_rec.element_name = 'RULE_ID' THEN
111   			l_msg_tbl.extend;
112   			l_msg_tbl(k).element_name    := elements_rec.element_name;
113   			l_msg_tbl(k).element_value   := rule_rec.rule_id;
114 		ELSIF elements_rec.element_name = 'RULE_NAME' THEN
115   			l_msg_tbl.extend;
116   			l_msg_tbl(k).element_name    := elements_rec.element_name;
117   			l_msg_tbl(k).element_value   := rule_rec.rule_name;
118 		ELSIF elements_rec.element_name = 'ADATE' THEN
119   			l_msg_tbl.extend;
120   			l_msg_tbl(k).element_name    := elements_rec.element_name;
121 			IF elements_rec.format_mask IS NOT NULL THEN
122 				l_actual_date := to_char(p_actual_date, elements_rec.format_mask);
123    			ELSE
124 				l_actual_date := to_char(p_actual_date, 'DD-MON-YY');
125 			END IF;
126   			l_msg_tbl(k).element_value   := l_actual_date;
127     		END IF;
128 		k := k + 1;
129 		END LOOP;
130 
131   -- call OKC_AQ_PVT.send_messages to generate the XML string and put it
132   -- on the queue
133   OKC_AQ_PUB.send_message(p_api_version     =>1.0
134 			 ,p_init_msg_list   => 'F'
135                          ,x_msg_count       => l_msg_count
136                          ,x_msg_data        => l_msg_data
137                          ,x_return_status   => l_return_status
138                          ,p_corrid_rec      => l_corrid_rec
139                          ,p_msg_tab         => l_msg_tbl
140                          ,p_queue_name      => okc_aq_pvt.g_event_queue_name);
141 
142     IF l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
143 	commit;
144     ELSIF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
145         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
146     ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
147         RAISE OKC_API.G_EXCEPTION_ERROR;
148     END IF;
149 
150     END LOOP;
151    END LOOP;
152 END IF; -- OKC_K_SIGN_ASMBLR_PVT.isActionEnabled
153 	 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
154 EXCEPTION
155  WHEN OKC_API.G_EXCEPTION_ERROR THEN
156   x_return_status := OKC_API.HANDLE_EXCEPTIONS
157                        (l_api_name,
158                         G_PKG_NAME,
159                       'OKC_API.G_RET_STS_ERROR',
160                         x_msg_count,
161                         x_msg_data,
162                         '_PROCESS');
163  WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
164   x_return_status := OKC_API.HANDLE_EXCEPTIONS
165                        (l_api_name,
166                         G_PKG_NAME,
167                        'OKC_API.G_RET_STS_UNEXP_ERROR',
168                         x_msg_count,
169                         x_msg_data,
170                         '_PROCESS');
171  WHEN OTHERS THEN
172   x_return_status := OKC_API.HANDLE_EXCEPTIONS
173                        (l_api_name,
174                         G_PKG_NAME,
175                         'OTHERS',
176                         x_msg_count,
177                         x_msg_data,
178                         '_PROCESS');
179 END acn_assemble;
180 
181 END OKC_SCHR_AD_ASMBLR_PVT;