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