[Home] [Help]
PACKAGE BODY: APPS.OKC_K_SIGN_ASMBLR_PVT
Source
1 PACKAGE BODY OKC_K_SIGN_ASMBLR_PVT AS
2 /* $Header: OKCRKSAB.pls 120.0 2005/05/26 09:50:57 appldev noship $ */
3
4 l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
5
6 g_pkg_name CONSTANT varchar2(100) := 'OKC_K_SIGN_ASMBLR_PVT';
7
8
9 /* Bug#4033775 check for action being enabled.
10 Used in all action assemblers before putting
11 messages on the queue.
12 */
13 FUNCTION isActionEnabled (p_correlation IN VARCHAR2)
14 RETURN VARCHAR2
15 IS
16
17 CURSOR action_cur IS
18 SELECT enabled_yn
19 FROM okc_actions_b
20 WHERE correlation = p_correlation;
21 l_enabled_yn VARCHAR2(1);
22
23 BEGIN
24
25 OPEN action_cur;
26 FETCH action_cur INTO l_enabled_yn;
27 CLOSE action_cur;
28
29 RETURN (l_enabled_yn);
30
31 EXCEPTION
32 WHEN NO_DATA_FOUND THEN
33 IF action_cur%ISOPEN THEN
34 CLOSE action_cur;
35 END IF;
36
37 RETURN(null);
38
39 END isActionEnabled;
40
41 PROCEDURE acn_assemble(
42 p_api_version IN NUMBER,
43 p_init_msg_list IN VARCHAR2 ,
44 x_return_status OUT NOCOPY VARCHAR2,
45 x_msg_count OUT NOCOPY NUMBER,
46 x_msg_data OUT NOCOPY VARCHAR2,
47 p_contract_id IN NUMBER) IS
48 --
49 l_api_name CONSTANT VARCHAR2(30) := 'ACN_ASSEMBLE';
50 l_api_version NUMBER := 1.0;
51 l_init_msg_list VARCHAR2(1) ;
52 l_return_status varchar2(1) := OKC_API.G_RET_STS_SUCCESS;
53 --
54 CURSOR k_cur IS
55 SELECT k.contract_number contract_number
56 ,k.contract_number_modifier contract_number_modifier
57 ,k.date_signed date_signed
58 ,k.estimated_amount estimated_amount
59 ,k.sts_code sts_code
60 ,c.cls_code cls_code
61 ,c.code subcls_code
62 FROM okc_k_headers_b k,
63 okc_subclasses_v c
64 WHERE k.scs_code = c.code
65 AND k.id = p_contract_id;
66 k_rec k_cur%ROWTYPE;
67
68 CURSOR acn_cur IS
69 SELECT aae.element_name element_name,
70 aae.format_mask format_mask
71 FROM okc_actions_b acn,
72 okc_action_attributes_b aae
73 WHERE acn.id = aae.acn_id
74 AND acn.correlation = 'KSIGN';
75 acn_rec acn_cur%ROWTYPE;
76
77 l_contract_id varchar2(120) := to_char(p_contract_id);
78 l_contract_number varchar2(120);
79 l_contract_number_modifier varchar2(120);
80 l_date_signed varchar2(22);
81 --
82 l_rec okc_aq_pvt.corrid_rec_typ;
83 l_tbl okc_aq_pvt.msg_tab_typ;
84 i NUMBER := 1;
85 --
86 BEGIN
87 -- call start_activity to create savepoint, check comptability
88 -- and initialize message list
89 l_return_status := OKC_API.START_ACTIVITY(l_api_name
90 ,l_init_msg_list
91 ,'_PVT'
92 ,x_return_status
93 );
94 -- check if activity started successfully
95 IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
96 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
97 ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
98 RAISE OKC_API.G_EXCEPTION_ERROR;
99 END IF;
100
101 l_rec.corrid := 'KSIGN';
102 -- check if action is enabled
103 IF isActionEnabled(l_rec.corrid) = 'Y' THEN
104 l_tbl := okc_aq_pvt.msg_tab_typ();
105
106 FOR acn_rec IN acn_cur LOOP
107 OPEN k_cur;
108 FETCH k_cur INTO k_rec;
109 IF acn_rec.element_name = 'K_ID' THEN
110 l_tbl.extend;
111 l_tbl(i).element_name := acn_rec.element_name;
112 l_tbl(i).element_value := p_contract_id;
113 ELSIF acn_rec.element_name = 'K_NUMBER' THEN
114 l_tbl.extend;
115 l_tbl(i).element_name := 'K_NUMBER';
116 l_tbl(i).element_value := k_rec.contract_number;
117 ELSIF acn_rec.element_name = 'K_NBR_MOD' THEN
118 l_tbl.extend;
119 l_tbl(i).element_name := 'K_NBR_MOD';
120 l_tbl(i).element_value := k_rec.contract_number_modifier;
121 ELSIF acn_rec.element_name = 'K_DATE_SIGNED' THEN
122 l_tbl.extend;
123 l_tbl(i).element_name := 'K_DATE_SIGNED';
124 IF acn_rec.format_mask IS NOT NULL THEN
125 l_tbl(i).element_value := to_char(k_rec.date_signed,
126 acn_rec.format_mask);
127 ELSE
128 l_tbl(i).element_value := to_char(k_rec.date_signed,'DD-MON-YY');
129 END IF;
130 ELSIF acn_rec.element_name = 'K_CLASS' THEN
131 l_tbl.extend;
132 l_tbl(i).element_name := 'K_CLASS';
133 l_tbl(i).element_value := k_rec.cls_code;
134 ELSIF acn_rec.element_name = 'K_SUBCLASS' THEN
135 l_tbl.extend;
136 l_tbl(i).element_name := 'K_SUBCLASS';
137 l_tbl(i).element_value := k_rec.subcls_code;
138 ELSIF acn_rec.element_name = 'K_STATUS_CODE' THEN
139 l_tbl.extend;
140 l_tbl(i).element_name := 'K_STATUS_CODE';
141 l_tbl(i).element_value := k_rec.sts_code;
142 ELSIF acn_rec.element_name = 'ESTIMATED_AMOUNT' THEN
143 l_tbl.extend;
144 l_tbl(i).element_name := 'ESTIMATED_AMOUNT';
145 l_tbl(i).element_value := k_rec.estimated_amount;
146 END IF;
147 i := i+1;
148 CLOSE k_cur;
149 END LOOP;
150 OKC_aq_pvt.send_message(p_api_version => l_api_version
151 ,x_msg_count => x_msg_count
152 ,x_msg_data => x_msg_data
153 ,x_return_status => x_return_status
154 ,p_corrid_rec => l_rec
155 ,p_msg_tab => l_tbl
156 ,p_queue_name => okc_aq_pvt.g_event_queue_name
157 );
158 -- check if activity started successfully
159 IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
160 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
161 ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
162 RAISE OKC_API.G_EXCEPTION_ERROR;
163 END IF;
164
165 END IF; -- isActionEnabled
166 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
167
168 EXCEPTION
169 WHEN OKC_API.G_EXCEPTION_ERROR THEN
170 x_return_status := OKC_API.HANDLE_EXCEPTIONS
171 (l_api_name,
172 G_PKG_NAME,
173 'OKC_API.G_RET_STS_ERROR',
174 x_msg_count,
175 x_msg_data,
176 '_PVT');
177 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
178 x_return_status := OKC_API.HANDLE_EXCEPTIONS
179 (l_api_name,
180 G_PKG_NAME,
181 'OKC_API.G_RET_STS_UNEXP_ERROR',
182 x_msg_count,
183 x_msg_data,
184 '_PVT');
185 WHEN OTHERS THEN
186 x_return_status := OKC_API.HANDLE_EXCEPTIONS
187 (l_api_name,
188 G_PKG_NAME,
189 'OTHERS',
190 x_msg_count,
191 x_msg_data,
192 '_PVT');
193 END acn_assemble;
194
195 END OKC_K_SIGN_ASMBLR_PVT;