DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_K_STS_CHG_ASMBLR_PVT

Source


1 PACKAGE BODY OKC_K_STS_CHG_ASMBLR_PVT AS
2 /* $Header: OKCRHSCB.pls 120.0 2005/05/25 22:37:46 appldev noship $ */
3 
4 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
5 --subtype control_rec_type is okc_util.okc_control_rec_type;
6 
7 -- action assembler for contract status change action
8 PROCEDURE acn_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_k_id		 IN NUMBER,
15   p_k_number		 IN VARCHAR2,
16   p_k_nbr_mod		 IN VARCHAR2,
17   p_k_cur_sts_code	 IN VARCHAR2,
18   p_k_cur_sts_type	 IN VARCHAR2,
19   p_k_pre_sts_code	 IN VARCHAR2,
20   p_k_pre_sts_type	 IN VARCHAR2,
21   p_k_source_system_code IN VARCHAR2
22   )  IS
23 
24  l_api_name     CONSTANT VARCHAR2(30) := 'acn_assemble';
25  l_api_version   CONSTANT NUMBER := 1.0;
26  i               NUMBER := 1;
27  l_corrid_rec    okc_aq_pvt.corrid_rec_typ;
28  l_msg_tbl       okc_aq_pvt.msg_tab_typ;
29  l_msg_count     number;
30  l_msg_data      varchar2(1000);
31  l_return_status varchar2(1);
32  l_hstv_rec  	 OKC_K_HISTORY_PVT.hstv_rec_type;
33  x_hstv_rec  	 OKC_K_HISTORY_PVT.hstv_rec_type;
34  l_version   	 VARCHAR2(255);  --modified for bug 3007067
35 
36  CURSOR cur_corr_csr IS
37  SELECT aae.element_name
38 	   ,aae.format_mask format_mask
39    FROM okc_actions_b acn,okc_action_attributes_b aae
40   WHERE acn.id = aae.acn_id
41     AND acn.correlation = 'K_STS_CHANGE' ;
42 
43 
44  CURSOR version_csr(p_chr_id NUMBER) IS
45     SELECT to_char (major_version)||'.'||to_char(minor_version)
46     FROM okc_k_vers_numbers
47     WHERE chr_id=p_chr_id;
48 
49 
50 BEGIN
51 
52  l_return_status := OKC_API.START_ACTIVITY
53                     (l_api_name
54                     ,p_init_msg_list
55                     ,'_PROCESS'
56                     ,x_return_status);
57 
58   IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
59      RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
60   ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
61      RAISE OKC_API.G_EXCEPTION_ERROR;
62   END IF;
63 
64   -- To insert record in history tables
65   l_hstv_rec.chr_id := p_k_id;
66   l_hstv_rec.sts_code_from := p_k_pre_sts_code;
67   l_hstv_rec.sts_code_to := p_k_cur_sts_code;
68   l_hstv_rec.opn_code := 'STS_CHG';
69 
70   open version_csr(p_k_id);
71   fetch version_csr into l_version;
72   close version_csr;
73 
74   l_hstv_rec.contract_version := l_version;
75 
76   OKC_K_HISTORY_PUB.create_k_history(
77          p_api_version          => p_api_version,
78          p_init_msg_list        => p_init_msg_list,
79          x_return_status        => x_return_status,
80          x_msg_count            => x_msg_count,
81          x_msg_data             => x_msg_data,
82          p_hstv_rec             => l_hstv_rec,
83          x_hstv_rec             => x_hstv_rec);
84 
85   IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
86       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
87   ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
88       RAISE OKC_API.G_EXCEPTION_ERROR;
89   END IF;
90 
91  l_corrid_rec.corrid := 'K_STS_CHANGE' ;
92 -- check if action is enabled
93 IF OKC_K_SIGN_ASMBLR_PVT.isActionEnabled(l_corrid_rec.corrid) = 'Y' THEN
94 l_msg_tbl := okc_aq_pvt.msg_tab_typ();
95  FOR corr_rec IN cur_corr_csr
96  LOOP
97 
98  IF corr_rec.element_name = 'K_CUR_STS_CODE' THEN
99   l_msg_tbl.extend;
100   l_msg_tbl(i).element_name     := corr_rec.element_name;
101   l_msg_tbl(i).element_value    := p_k_cur_sts_code;
102  ELSIF corr_rec.element_name = 'K_CUR_STS_TYPE' THEN
103   l_msg_tbl.extend;
104   l_msg_tbl(i).element_name     := corr_rec.element_name;
105   l_msg_tbl(i).element_value    := p_k_cur_sts_type;
106  ELSIF corr_rec.element_name = 'K_ID' THEN
107    l_msg_tbl.extend;
108   l_msg_tbl(i).element_name    := corr_rec.element_name;
109   l_msg_tbl(i).element_value   := p_k_id;
110  ELSIF corr_rec.element_name = 'K_NUMBER' THEN
111    l_msg_tbl.extend;
112   l_msg_tbl(i).element_name    := corr_rec.element_name;
113   l_msg_tbl(i).element_value   := p_k_number;
114  ELSIF corr_rec.element_name = 'K_NBR_MOD' THEN
115    l_msg_tbl.extend;
116   l_msg_tbl(i).element_name    := corr_rec.element_name;
117   l_msg_tbl(i).element_value   := p_k_nbr_mod;
118  ELSIF corr_rec.element_name = 'K_PRE_STS_CODE' THEN
119   l_msg_tbl.extend;
120   l_msg_tbl(i).element_name     := corr_rec.element_name;
121   l_msg_tbl(i).element_value    := p_k_pre_sts_code;
122  ELSIF corr_rec.element_name = 'K_PRE_STS_TYPE' THEN
123   l_msg_tbl.extend;
124   l_msg_tbl(i).element_name     := corr_rec.element_name;
125   l_msg_tbl(i).element_value    := p_k_pre_sts_type;
126  ELSIF corr_rec.element_name = 'K_SOURCE_SYSTEM_CODE' THEN
127   l_msg_tbl.extend;
128   l_msg_tbl(i).element_name     := corr_rec.element_name;
129   l_msg_tbl(i).element_value    := p_k_source_system_code;
130  END IF;
131 
132   i := i + 1;
133  END LOOP;
134 
135 
136 
137 
138   OKC_AQ_PUB.send_message(p_api_version     =>1.0
139                          ,x_msg_count       => l_msg_count
140                          ,x_msg_data        => l_msg_data
141                          ,x_return_status   => l_return_status
142                          ,p_corrid_rec      => l_corrid_rec
143                          ,p_msg_tab         => l_msg_tbl
144                          ,p_queue_name      => okc_aq_pvt.g_event_queue_name);
145 
146     IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
147         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
148     ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
149         RAISE OKC_API.G_EXCEPTION_ERROR;
150     END IF;
151 END IF; -- OKC_K_SIGN_ASMBLR_PVT.isActionEnabled
152  OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
153 
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 ------------------------------------------------------------
182 -- This will be used for contract status change
183 ------------------------------------------------------------
184 PROCEDURE acn_assemble(
185   p_api_version          IN NUMBER,
186   p_init_msg_list        IN VARCHAR2 ,
187   x_return_status        OUT NOCOPY VARCHAR2,
188   x_msg_count            OUT NOCOPY NUMBER,
189   x_msg_data             OUT NOCOPY VARCHAR2,
190   p_k_id		 IN NUMBER,
191   p_k_number		 IN VARCHAR2,
192   p_k_nbr_mod		 IN VARCHAR2,
193   p_k_cur_sts_code	 IN VARCHAR2,
194   p_k_cur_sts_type	 IN VARCHAR2,
195   p_k_pre_sts_code	 IN VARCHAR2,
196   p_k_pre_sts_type	 IN VARCHAR2,
197   p_k_source_system_code IN VARCHAR2,
198   p_control_rec	         IN control_rec_type
199   )  IS
200 
201  l_api_name     CONSTANT VARCHAR2(30) := 'acn_assemble';
202  l_api_version   CONSTANT NUMBER := 1.0;
203  i               NUMBER := 1;
204  l_corrid_rec    okc_aq_pvt.corrid_rec_typ;
205  l_msg_tbl       okc_aq_pvt.msg_tab_typ;
206  l_msg_count     number;
207  l_msg_data      varchar2(1000);
208  l_return_status varchar2(1);
209  l_hstv_rec  	 OKC_K_HISTORY_PVT.hstv_rec_type;
210  x_hstv_rec  	 OKC_K_HISTORY_PVT.hstv_rec_type;
211  l_version   	 VARCHAR2(255); --modified for bug 3007067
212 
213  CURSOR cur_corr_csr IS
214  SELECT aae.element_name
215 	   ,aae.format_mask format_mask
216    FROM okc_actions_b acn,okc_action_attributes_b aae
217   WHERE acn.id = aae.acn_id
218     AND acn.correlation = 'K_STS_CHANGE' ;
219 
220 
221  CURSOR version_csr(p_chr_id NUMBER) IS
222     SELECT to_char (major_version)||'.'||to_char(minor_version)
223     FROM okc_k_vers_numbers
224     WHERE chr_id=p_chr_id;
225 
226 
227 BEGIN
228 
229  l_return_status := OKC_API.START_ACTIVITY
230                     (l_api_name
231                     ,p_init_msg_list
232                     ,'_PROCESS'
233                     ,x_return_status);
234 
235   IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
236      RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
237   ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
238      RAISE OKC_API.G_EXCEPTION_ERROR;
239   END IF;
240 
241   -- To insert record in history tables
242   l_hstv_rec.chr_id := p_k_id;
243   l_hstv_rec.sts_code_from := p_k_pre_sts_code;
244   l_hstv_rec.sts_code_to := p_k_cur_sts_code;
245   l_hstv_rec.opn_code := 'STS_CHG';
246   l_hstv_rec.manual_yn := p_control_rec.flag;
247   l_hstv_rec.reason_code := p_control_rec.code;
248   l_hstv_rec.comments := p_control_rec.comments;
249 
250   open version_csr(p_k_id);
251   fetch version_csr into l_version;
252   close version_csr;
253 
254   l_hstv_rec.contract_version := l_version;
255 
256   OKC_K_HISTORY_PUB.create_k_history(
257          p_api_version          => p_api_version,
258          p_init_msg_list        => p_init_msg_list,
259          x_return_status        => x_return_status,
260          x_msg_count            => x_msg_count,
261          x_msg_data             => x_msg_data,
262          p_hstv_rec             => l_hstv_rec,
263          x_hstv_rec             => x_hstv_rec);
264 
265   IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
266       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
267   ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
268       RAISE OKC_API.G_EXCEPTION_ERROR;
269   END IF;
270 
271  l_corrid_rec.corrid := 'K_STS_CHANGE' ;
272 -- check if action is enabled
273 IF OKC_K_SIGN_ASMBLR_PVT.isActionEnabled(l_corrid_rec.corrid) = 'Y' THEN
274 
275 l_msg_tbl := okc_aq_pvt.msg_tab_typ();
276  FOR corr_rec IN cur_corr_csr
277  LOOP
278 
279  IF corr_rec.element_name = 'K_CUR_STS_CODE' THEN
280   l_msg_tbl.extend;
281   l_msg_tbl(i).element_name     := corr_rec.element_name;
282   l_msg_tbl(i).element_value    := p_k_cur_sts_code;
283  ELSIF corr_rec.element_name = 'K_CUR_STS_TYPE' THEN
284   l_msg_tbl.extend;
285   l_msg_tbl(i).element_name     := corr_rec.element_name;
286   l_msg_tbl(i).element_value    := p_k_cur_sts_type;
287  ELSIF corr_rec.element_name = 'K_ID' THEN
288    l_msg_tbl.extend;
289   l_msg_tbl(i).element_name    := corr_rec.element_name;
290   l_msg_tbl(i).element_value   := p_k_id;
291  ELSIF corr_rec.element_name = 'K_NUMBER' THEN
292    l_msg_tbl.extend;
293   l_msg_tbl(i).element_name    := corr_rec.element_name;
294   l_msg_tbl(i).element_value   := p_k_number;
295  ELSIF corr_rec.element_name = 'K_NBR_MOD' THEN
296    l_msg_tbl.extend;
297   l_msg_tbl(i).element_name    := corr_rec.element_name;
298   l_msg_tbl(i).element_value   := p_k_nbr_mod;
299  ELSIF corr_rec.element_name = 'K_PRE_STS_CODE' THEN
300   l_msg_tbl.extend;
301   l_msg_tbl(i).element_name     := corr_rec.element_name;
302   l_msg_tbl(i).element_value    := p_k_pre_sts_code;
303  ELSIF corr_rec.element_name = 'K_PRE_STS_TYPE' THEN
304   l_msg_tbl.extend;
305   l_msg_tbl(i).element_name     := corr_rec.element_name;
306   l_msg_tbl(i).element_value    := p_k_pre_sts_type;
307  ELSIF corr_rec.element_name = 'K_SOURCE_SYSTEM_CODE' THEN
308   l_msg_tbl.extend;
309   l_msg_tbl(i).element_name     := corr_rec.element_name;
310   l_msg_tbl(i).element_value    := p_k_source_system_code;
311  END IF;
312 
313   i := i + 1;
314  END LOOP;
315 
316 
317 
318 
319   OKC_AQ_PUB.send_message(p_api_version     =>1.0
320                          ,x_msg_count       => l_msg_count
321                          ,x_msg_data        => l_msg_data
322                          ,x_return_status   => l_return_status
323                          ,p_corrid_rec      => l_corrid_rec
324                          ,p_msg_tab         => l_msg_tbl
325                          ,p_queue_name      => okc_aq_pvt.g_event_queue_name);
326 
327     IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
328         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
329     ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
330         RAISE OKC_API.G_EXCEPTION_ERROR;
331     END IF;
332 
333 END IF; -- OKC_K_SIGN_ASMBLR_PVT.isActionEnabled
334  OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
335 
336 EXCEPTION
337  WHEN OKC_API.G_EXCEPTION_ERROR THEN
338   x_return_status := OKC_API.HANDLE_EXCEPTIONS
339                        (l_api_name,
340                         G_PKG_NAME,
341                       'OKC_API.G_RET_STS_ERROR',
342                         x_msg_count,
343                         x_msg_data,
344                         '_PROCESS');
345  WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
346   x_return_status := OKC_API.HANDLE_EXCEPTIONS
347                        (l_api_name,
348                         G_PKG_NAME,
349                        'OKC_API.G_RET_STS_UNEXP_ERROR',
350                         x_msg_count,
351                         x_msg_data,
352                         '_PROCESS');
353  WHEN OTHERS THEN
354   x_return_status := OKC_API.HANDLE_EXCEPTIONS
355                        (l_api_name,
356                         G_PKG_NAME,
357                         'OTHERS',
358                         x_msg_count,
359                         x_msg_data,
360                         '_PROCESS');
361 END acn_assemble;
362 
363 END OKC_K_STS_CHG_ASMBLR_PVT;