[Home] [Help]
PACKAGE BODY: APPS.OKL_STREAMS_WF
Source
1 PACKAGE BODY Okl_Streams_Wf AS
2 /* $Header: OKLRPWFB.pls 120.2 2006/07/18 10:52:52 dkagrawa noship $ */
3 -- INFO
4 -- This procedure is invoked from Inbound Work Flow Process
5 -- END INFO
6
7 PROCEDURE process(itemtype IN VARCHAR2,
8 itemkey IN VARCHAR2,
9 actid IN NUMBER,
10 funcmode IN VARCHAR2,
11 resultout IN OUT NOCOPY VARCHAR2)
12 IS
13 l_transaction_number VARCHAR2(240);
14 document_id VARCHAR2(240);
15 parameter1 VARCHAR2(240);
16 parameter2 VARCHAR2(240);
17 parameter3 VARCHAR2(240);
18 parameter4 VARCHAR2(240);
19 parameter5 VARCHAR2(240);
20 parameter6 VARCHAR2(240);
21 parameter7 VARCHAR2(240);
22 parameter8 VARCHAR2(240);
23 parameter9 VARCHAR2(240);
24 parameter10 VARCHAR2(240);
25 l_error_msg VARCHAR2(2000);
26 result VARCHAR2(30);
27 l_orp_code VARCHAR2(10);
28
29 l_api_version NUMBER := 1;
30 l_init_msg_list VARCHAR2(1) := OKC_API.G_FALSE;
31 l_return_status VARCHAR2(1);
32 l_msg_count NUMBER;
33 l_msg_data VARCHAR2(4000);
34 l_msg_text VARCHAR2(4000);
35 l_attr_name VARCHAR2(15) := 'ERROR_MSG';
36 G_SIS_CODE VARCHAR2(50) := 'PROCESSING_FAILED';
37 G_SRT_CODE VARCHAR2(50) := 'PROCESSING_FAILED';
38 l_error_message_tbl LOG_MSG_TBL_TYPE;
39 l_error_message_line VARCHAR2(4000) := NULL;
40 -- l_new_line VARCHAR2(4000) := FND_GLOBAL.NEWLINE;
41
42 -- smahapat added khr_id to cursor for bug 3145238
43 CURSOR strm_interfaces_data_csr (p_trx_number NUMBER) IS
44 SELECT
45 ORP_CODE, KHR_ID
46 FROM okl_stream_interfaces
47 WHERE okl_stream_interfaces.transaction_number = p_trx_number;
48
49 -- smahapat added for bug 3145238
50 -- cursor to provide information for setting context
51 CURSOR l_hdr_csr(chrId NUMBER)
52 IS
53 SELECT chr.orig_system_source_code,
54 chr.start_date,
55 chr.end_date,
56 chr.template_yn,
57 chr.authoring_org_id,
58 chr.inv_organization_id,
59 khr.deal_type,
60 pdt.id pid,
61 NVL(pdt.reporting_pdt_id, -1) report_pdt_id,
62 chr.currency_code currency_code,
63 khr.term_duration term
64 FROM okc_k_headers_v chr,
65 okl_k_headers khr,
66 okl_products_v pdt
67 WHERE khr.id = chr.id
68 AND chr.id = chrId
69 AND khr.pdt_id = pdt.id(+);
70
71 l_hdr_rec l_hdr_csr%ROWTYPE;
72 l_khr_id NUMBER;
73 -- end code for setting context
74
75 BEGIN
76 -- Do nothing in cancel or timeout mode
77
78 IF (funcmode <> wf_engine.eng_run) THEN
79 resultout := wf_engine.eng_null;
80 RETURN;
81 END IF;
82 --
83 -- We need to determine which parameters are required and which are optional
84 --
85 l_transaction_number := Wf_Engine.GetActivityAttrText(itemtype, itemkey, actid, 'PARAMETER1');
86 IF ( l_transaction_number IS NULL ) THEN
87 wf_core.token('OKL_TRANSACTION_NUMBER','NULL');
88 wf_core.RAISE('WFSQL_ARGS');
89 END IF;
90
91 --
92 -- params2..10 optional
93 --
94 parameter2 := Wf_Engine.GetActivityAttrText(itemtype, itemkey,actid, 'PARAMETER2');
95 parameter3 := Wf_Engine.GetActivityAttrText(itemtype, itemkey,actid, 'PARAMETER3');
96 parameter4 := Wf_Engine.GetActivityAttrText(itemtype, itemkey,actid, 'PARAMETER4');
97 parameter5 := Wf_Engine.GetActivityAttrText(itemtype, itemkey,actid, 'PARAMETER5');
98 parameter6 := Wf_Engine.GetActivityAttrText(itemtype, itemkey,actid, 'PARAMETER6');
99 parameter7 := Wf_Engine.GetActivityAttrText(itemtype, itemkey,actid, 'PARAMETER7');
100 parameter8 := Wf_Engine.GetActivityAttrText(itemtype, itemkey,actid, 'PARAMETER8');
101 parameter9 := Wf_Engine.GetActivityAttrText(itemtype, itemkey,actid, 'PARAMETER9');
102 parameter10 := Wf_Engine.GetActivityAttrText(itemtype, itemkey,actid, 'PARAMETER10');
103
104 -- Invoke Process Stream Results API
105 FOR strm_interfaces_data in strm_interfaces_data_csr(l_transaction_number)
106 LOOP
107 l_orp_code := strm_interfaces_data.orp_code;
108 l_khr_id := strm_interfaces_data.khr_id; -- added by smahapat for setting context (bug 3145238)
109 END LOOP;
110
111 -- set context (bug 3145238)
112 OPEN l_hdr_csr( l_khr_id );
113 FETCH l_hdr_csr INTO l_hdr_rec;
114 CLOSE l_hdr_csr;
115 okl_context.set_okc_org_context(l_hdr_rec.authoring_org_id,l_hdr_rec.inv_organization_id);
116 -- end set context
117
118
119 -- Booking
120 IF (l_orp_code = 'AUTH')
121 THEN
122 OKL_PROCESS_STREAMS_PVT.PROCESS_STREAM_RESULTS (l_api_version
123 ,l_init_msg_list
124 ,l_transaction_number
125 ,l_return_status
126 ,l_msg_count
127 ,l_msg_data);
128 -- Restrucutres
129 ELSIF(l_orp_code = 'RSAM')
130 THEN
131 OKL_PROCESS_STREAMS_PVT.PROCESS_REST_STRM_RESLTS(
132 p_api_version => l_api_version
133 ,p_init_msg_list => l_init_msg_list
134 ,p_transaction_number => l_transaction_number
135 ,x_return_status => l_return_status
136 ,x_msg_count => l_msg_count
137 ,x_msg_data => l_msg_data);
138 -- Quotes
139 ELSIF(l_orp_code = 'QUOT')
140 THEN
141 OKL_PROCESS_STREAMS_PVT.PROCESS_QUOT_STRM_RESLTS(
142 p_api_version => l_api_version
143 ,p_init_msg_list => l_init_msg_list
144 ,p_transaction_number => l_transaction_number
145 ,x_return_status => l_return_status
146 ,x_msg_count => l_msg_count
147 ,x_msg_data => l_msg_data);
148 -- Renewals
149 ELSIF(l_orp_code = 'RENW')
150 THEN
151 OKL_PROCESS_STREAMS_PVT.PROCESS_RENW_STRM_RESLTS(
152 p_api_version => l_api_version
153 ,p_init_msg_list => l_init_msg_list
154 ,p_transaction_number => l_transaction_number
155 ,x_return_status => l_return_status
156 ,x_msg_count => l_msg_count
157 ,x_msg_data => l_msg_data);
158 -- Variable Interest Rate Processing
159 ELSIF(l_orp_code = 'VIRP')
160 THEN
161 OKL_PROCESS_STREAMS_PVT.PROCESS_VIRP_STRM_RESLTS(
162 p_api_version => l_api_version
163 ,p_init_msg_list => l_init_msg_list
164 ,p_transaction_number => l_transaction_number
165 ,x_return_status => l_return_status
166 ,x_msg_count => l_msg_count
167 ,x_msg_data => l_msg_data);
168
169
170 END IF;
171 -- if error
172 IF(l_return_status <> G_RET_STS_SUCCESS)
173 THEN
174
175 -- commented for using REPORT ERROR API
176 -- l_error_msg := 'Errors while processing results, please refer to log file ' || 'OKLSTXMLG_' || l_transaction_number || '.log' || ' for more details';
177 l_error_msg := ' ';
178 wf_engine.SetItemAttrText(itemtype,itemkey,l_attr_name, l_error_msg);
179
180 l_error_message_tbl(1) := 'Errors while processing Streams Results :- ';
181
182 Okl_Streams_Util.LOG_MESSAGE(p_msgs_tbl => l_error_message_tbl,
183 p_translate => G_FALSE,
184 p_file_name => 'OKLSTXMLG_' || l_transaction_number || '.log' ,
185 x_return_status => l_return_status );
186
187 Okl_Streams_Util.LOG_MESSAGE(p_msg_count => l_msg_count,
188 p_file_name => 'OKLSTXMLG_' || l_transaction_number || '.log',
189 x_return_status => l_return_status
190 );
191
192 l_error_message_tbl(1) := 'End Errors while processing Streams Results';
193 Okl_Streams_Util.LOG_MESSAGE(p_msgs_tbl => l_error_message_tbl,
194 p_translate => G_FALSE,
195 p_file_name => 'OKLSTXMLG_' || l_transaction_number || '.log' ,
196 x_return_status => l_return_status );
197
198
199 OKL_POPULATE_PRCENG_RESULT_PUB.UPDATE_STATUS(--p_api_version => l_api_version,
200 --p_init_msg_list => l_init_msg_list,
201 p_transaction_number => l_transaction_number,
202 p_sis_code => G_SIS_CODE,
203 p_srt_code => G_SRT_CODE,
204 p_log_file_name => 'OKLSTXMLG_' || l_transaction_number || '.log',
205 x_return_status => l_return_status
206 );
207
208
209 resultout := wf_engine.eng_completed || ':' || 'F';
210 ELSE
211 resultout := wf_engine.eng_completed || ':' || 'T';
212 END IF;
213
214 EXCEPTION
215 WHEN OTHERS THEN
216 Wf_Core.Context('OKL_PROCESS_STREAMS', 'process_streams', itemtype, itemkey, TO_CHAR(actid), funcmode);
217 RAISE;
218
219 END process;
220
221 PROCEDURE REPORT_ERROR(ITEMTYPE IN VARCHAR2,
222 ITEMKEY IN VARCHAR2,
223 ACTID IN NUMBER,
224 FUNCMODE IN VARCHAR2,
225 RESULTOUT IN OUT NOCOPY VARCHAR2)
226 IS
227 l_transaction_number VARCHAR2(40);
228 l_document_id VARCHAR2(240);
229 l_msg_name VARCHAR2(30);
230
231 parameter1 VARCHAR2(240);
232 parameter2 VARCHAR2(240);
233 parameter3 VARCHAR2(240);
234 parameter4 VARCHAR2(240);
235 parameter5 VARCHAR2(240);
236 l_error_msg VARCHAR2(2000);
237 result VARCHAR2(30);
238
239 l_api_version NUMBER := 1;
240 l_init_msg_list VARCHAR2(1) := OKC_API.G_FALSE;
241 l_return_status VARCHAR2(1);
242 l_msg_count NUMBER;
243 l_msg_data VARCHAR2(4000);
244 l_msg_text VARCHAR2(1000);
245 l_attr_name VARCHAR2(15) := 'OKL_ERROR_MSG';
246 l_new_line VARCHAR2(10) := FND_GLOBAL.NEWLINE;
247
248 l_file_name VARCHAR2(100);
249
250 BEGIN
251 -- Do nothing in cancel or timeout mode
252 IF (funcmode <> wf_engine.eng_run) THEN
253 resultout := wf_engine.eng_null;
254 RETURN;
255 END IF;
256
257 l_document_id := Wf_Engine.GetActivityAttrText(itemtype, itemkey, actid, 'OKL_REQUEST_ID');
258 IF ( l_document_id IS NULL ) THEN
259 wf_core.token('OKL_REQUEST_ID','NULL');
260 wf_core.RAISE('WFSQL_ARGS');
261 END IF;
262
263 l_msg_name := Wf_Engine.GetActivityAttrText(itemtype, itemkey, actid, 'OKL_ERROR_MSG');
264 IF ( l_document_id IS NULL ) THEN
265 wf_core.token('OKL_DOCUMENT_ID','NULL');
266 wf_core.RAISE('WFSQL_ARGS');
267 END IF;
268
269
270 -- WHAT IS THIS????
271
272 -- AKJAIN
273 -- MAY BE WE DO NOT NEED IT SO COMMENTED
274 -- wf_Item_Activity_Status.Result(itemtype, itemkey, actid, status, result);
275 -- AKJAIN
276
277 l_file_name := G_FILENAME_PRE || l_document_id || G_FILENAME_EXT;
278
279 -- Call the Process Stream Results API
280 Okl_Streams_Util.LOG_MESSAGE(p_msg_name => l_msg_name
281 ,p_file_name => l_file_name
282 ,x_return_status => l_return_status);
283 -- if error
284 IF(l_return_status <> G_RET_STS_SUCCESS)
285 THEN
286
287 -- GET THE MESSAGES FROM FND_MESSAGES
288 FOR i IN 1..l_msg_count
289 LOOP
290 fnd_msg_pub.get(p_data => l_msg_text,
291 p_msg_index_out => l_msg_count,
292 p_encoded => G_FALSE,
293 p_msg_index => fnd_msg_pub.g_next);
294 IF i = 1 THEN
295 l_error_msg := l_msg_text;
296 ELSE
297 l_error_msg := l_error_msg || l_new_line || l_msg_text;
298 END IF;
299 END LOOP;
300 wf_engine.SetItemAttrText(itemtype,itemkey,l_attr_name,l_error_msg);
301 resultout := wf_engine.eng_completed||':'|| 'F';
302 ELSE
303 resultout := wf_engine.eng_completed||':'|| 'T';
304 END IF;
305
306 EXCEPTION
307 WHEN OTHERS THEN
308 Wf_Core.Context('report_error', 'report_error', itemtype, itemkey, TO_CHAR(actid), funcmode);
309 RAISE;
310 END REPORT_ERROR;
311
312
313 END Okl_Streams_Wf;