[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;