DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_CEVT_ASMBLR_PVT

Source


1 PACKAGE BODY OKC_CEVT_ASMBLR_PVT AS
2 /* $Header: OKCRCERB.pls 120.0 2005/05/25 17:59:51 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_contract_id	      IN NUMBER,
13   p_cont_evt_name     IN VARCHAR2,
14   p_cont_evt_date     IN DATE)  IS
15 
16  l_api_name     	CONSTANT VARCHAR2(30) := 'acn_assemble';
17  l_api_version   	CONSTANT NUMBER := 1.0;
18  k               	NUMBER := 1;
19  l_corrid_rec    	okc_aq_pub.corrid_rec_typ;
20  l_msg_tbl       	okc_aq_pub.msg_tab_typ;
21  l_msg_count     	number;
22  l_msg_data      	varchar2(1000);
23  l_return_status 	varchar2(1);
24  l_chr_number		varchar2(120);
25  l_chr_modifier  	varchar2(120);
26  l_cont_evt_date	date;
27 
28  --Select all the attributes for the contingent event recorded
29  CURSOR elements_csr IS
30  SELECT aae.element_name, aae.format_mask
31  FROM okc_actions_v acn,okc_action_attributes_v aae
32  WHERE acn.id = aae.acn_id
33  AND acn.correlation = 'CONT_EVT_REC';
34 
35  --Select the contract attributes
36  CURSOR chr_csr(p_chr_id IN NUMBER) IS
37  SELECT khr.id k_id,
38 	khr.contract_number k_number,
39 	khr.contract_number_modifier k_nbr_mod,
40 	cls.cls_code k_class,
41 	khr.scs_code k_subclass,
42 	khr.estimated_amount k_estimated_amount,
43 	khr.sts_code
44   FROM   okc_k_headers_v khr,okc_subclasses_v cls
45   WHERE khr.id = p_chr_id
46   AND khr.scs_code = cls.code;
47 
48 
49 BEGIN
50 
51  l_return_status := OKC_API.START_ACTIVITY
52                     (l_api_name
53                     ,p_init_msg_list
54                     ,'_PROCESS'
55                     ,x_return_status);
56 
57   IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
58      RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
59   ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
60      RAISE OKC_API.G_EXCEPTION_ERROR;
61   END IF;
62 
63   --The correlation for contingent event occurrence
64   l_corrid_rec.corrid := 'CONT_EVT_REC' ;
65 
66   -- check if action is enabled
67   IF OKC_K_SIGN_ASMBLR_PVT.isActionEnabled(l_corrid_rec.corrid) = 'Y' THEN
68 
69    --Initialize the table
70   l_msg_tbl := okc_aq_pvt.msg_tab_typ();
71 
72  FOR k1_rec in chr_csr(p_chr_id       => p_contract_id) LOOP
73            k := 1;
74 	      --Initialize the table
75   	      l_msg_tbl := okc_aq_pvt.msg_tab_typ();
76            FOR elements_rec IN elements_csr LOOP
77 		--Build the elements table
78     		IF elements_rec.element_name = 'K_ID' THEN
79     			l_msg_tbl.extend;
80        			l_msg_tbl(k).element_name  := elements_rec.element_name;
81        			l_msg_tbl(k).element_value := k1_rec.k_id;
82     		ELSIF elements_rec.element_name = 'K_NUMBER' 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_number;
86     		ELSIF elements_rec.element_name = 'K_NBR_MOD' 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_nbr_mod;
90     		ELSIF elements_rec.element_name = 'K_CLASS' 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_class;
94    		ELSIF elements_rec.element_name = 'K_SUBCLASS' 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_subclass;
98          	ELSIF elements_rec.element_name = 'ESTIMATED_AMOUNT' 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_estimated_amount;
102 		ELSIF elements_rec.element_name = 'K_STATUS_CODE' 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.sts_code;
106 		ELSIF elements_rec.element_name = 'CONT_EVT_NAME' THEN
107   			l_msg_tbl.extend;
108   			l_msg_tbl(k).element_name    := elements_rec.element_name;
109   			l_msg_tbl(k).element_value   := p_cont_evt_name;
110 		ELSIF elements_rec.element_name = 'CONT_EVT_DATE' THEN
111   			l_msg_tbl.extend;
112   			l_msg_tbl(k).element_name    := elements_rec.element_name;
113 			IF elements_rec.format_mask IS NOT NULL THEN
114 				l_cont_evt_date := to_char(p_cont_evt_date, elements_rec.format_mask);
115    			ELSE
116 				l_cont_evt_date := to_char(p_cont_evt_date, 'DD-MON-YY');
117 			END IF;
118   			l_msg_tbl(k).element_value   := l_cont_evt_date;
119     		END IF;
120 		--Increment the Counter
121 		k := k + 1;
122 		END LOOP;
123 
124   -- call OKC_AQ_PVT.send_messages to generate the XML string and put it
125   -- on the queue
126   OKC_AQ_PUB.send_message(p_api_version     =>1.0
127 			 ,p_init_msg_list   => 'F'
128                          ,x_msg_count       => l_msg_count
129                          ,x_msg_data        => l_msg_data
130                          ,x_return_status   => l_return_status
131                          ,p_corrid_rec      => l_corrid_rec
132                          ,p_msg_tab         => l_msg_tbl
133                          ,p_queue_name      => okc_aq_pvt.g_event_queue_name);
134 
135     IF l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
136 	commit;
137     ELSIF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
138         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
139     ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
140         RAISE OKC_API.G_EXCEPTION_ERROR;
141     END IF;
142     END LOOP;
143 END IF; -- isActionEnabled
144     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
145 
146 EXCEPTION
147  WHEN OKC_API.G_EXCEPTION_ERROR THEN
148   x_return_status := OKC_API.HANDLE_EXCEPTIONS
149                        (l_api_name,
150                         G_PKG_NAME,
151                       'OKC_API.G_RET_STS_ERROR',
152                         x_msg_count,
153                         x_msg_data,
154                         '_PROCESS');
155  WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
156   x_return_status := OKC_API.HANDLE_EXCEPTIONS
157                        (l_api_name,
158                         G_PKG_NAME,
159                        'OKC_API.G_RET_STS_UNEXP_ERROR',
160                         x_msg_count,
161                         x_msg_data,
162                         '_PROCESS');
163  WHEN OTHERS THEN
164   x_return_status := OKC_API.HANDLE_EXCEPTIONS
165                        (l_api_name,
166                         G_PKG_NAME,
167                         'OTHERS',
168                         x_msg_count,
169                         x_msg_data,
170                         '_PROCESS');
171 END acn_assemble;
172 END OKC_CEVT_ASMBLR_PVT;