[Home] [Help]
PACKAGE BODY: APPS.OKL_ESG_TRANSPORT_PVT
Source
1 PACKAGE BODY OKL_ESG_TRANSPORT_PVT AS
2 /* $Header: OKLESTRB.pls 120.0.12010000.2 2009/02/19 20:21:59 djanaswa ship $ */
3
4 ---------------------------------------------------------------------------
5 -- PRIVATE MEMBER VARIABLES
6 ---------------------------------------------------------------------------
7 G_MODULE VARCHAR2(255) := 'okl.stream.esg.okl_esg_transport_pvt';
8 G_DEBUG_ENABLED CONSTANT VARCHAR2(10) := OKL_DEBUG_PUB.CHECK_LOG_ENABLED;
9 G_IS_DEBUG_EXCEPTION_ON BOOLEAN;
10 G_IS_DEBUG_ERROR_ON BOOLEAN;
11 G_IS_DEBUG_PROCEDURE_ON BOOLEAN;
12
13 PROCEDURE transport(p_transaction_number IN NUMBER)
14 IS
15 request utl_http.req;
16 response utl_http.resp;
17
18 CURSOR c_tp IS
19 SELECT p.party_id, tp.tp_header_id, tp.party_site_id, tp.party_type
20 FROM ecx_tp_headers tp
21 , hz_parties p
22 WHERE tp.party_id = p.party_id
23 AND p.party_name = 'SuperTrump';
24
25 CURSOR c_tt (b_transaction_number NUMBER) is
26 SELECT t.ext_subtype, t.protocol_address, t.username, t.password,
27 t.protocol_type -- added bug8209104
28 FROM ecx_tp_details_v t
29 , okl_stream_interfaces si
30 WHERE t.transaction_type = 'OKL_ST'
31 AND t.transaction_subtype = si.deal_type
32 AND si.transaction_number = b_transaction_number;
33
34 rec c_tp%ROWTYPE;
35 rec2 c_tt%ROWTYPE;
36
37 l_url VARCHAR2(255);
38 l_path VARCHAR2(255);
39 l_password VARCHAR2(255);
40
41 l_max_timeout NUMBER := 3600; -- seconds
42 inbound_buffer VARCHAR2(32767);
43 l_parameter_data VARCHAR2(4096);
44
45 ctime DATE;
46
47 l_api_name CONSTANT VARCHAR2(30) := 'transport';
48 l_module VARCHAR2(255) := G_MODULE||'.'||l_api_name||'.'||p_transaction_number;
49 BEGIN
50 IF(G_IS_DEBUG_PROCEDURE_ON) THEN
51 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_PROCEDURE, l_module, p_transaction_number||': begin okl_esg_transport_pvt.transport');
52 END IF;
53
54 OPEN c_tp;
55 FETCH c_tp INTO rec;
56 CLOSE c_tp;
57
58 OPEN c_tt(p_transaction_number);
59 FETCH c_tt INTO rec2;
60 CLOSE c_tt;
61
62 l_url := rec2.protocol_address;
63
64 l_parameter_data :=
65 'TRANSACTION_TYPE=OKL_ST'||
66 '&'||'TRANSACTION_SUBTYPE='||rec2.ext_subtype||
67 '&'||'DOCUMENT_NUMBER='||p_transaction_number||
68 '&'||'PARTYID='||rec.party_id||
69 '&'||'PARTY_SITE_ID='||rec.party_site_id||
70 '&'||'PARTY_TYPE='||rec.party_type||
71 '&'||'PROTOCOL_TYPE='||rec2.protocol_type||
72 '&'||'PROTOCOL_ADDRESS='||rec2.protocol_address||
73 '&'||'USERNAME='||rec2.username||
74 '&'||'PASSWORD=XXXX'||'&';
75
76 ----------------------------------------------------------------------------------
77 -- 1. Send the outbound xml to Proxy Server
78 ----------------------------------------------------------------------------------
79 utl_http.set_transfer_timeout(l_max_timeout);
80 -- bug8209104 start
81 IF upper(rec2.protocol_type) = 'HTTPS' THEN
82 IF(G_IS_DEBUG_PROCEDURE_ON) THEN
83 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_PROCEDURE, l_module, p_transaction_number||': calling UTL_HTTP.SET_WALLET');
84 END IF;
85
86 l_path := 'file:' || fnd_profile.value('FND_DB_WALLET_DIR');
87 l_password := fnd_preference.eget('#INTERNAL','WF_WEBSERVICES','EWALLETPWD', 'WFWS_PWD');
88
89 UTL_HTTP.SET_WALLET (l_path, l_password);
90
91 END IF;
92 -- bug8209104 end
93
94 -- request := utl_http.begin_request(l_url, 'POST', 'HTTP/1.0'); -- commented bug8209104
95 IF(G_IS_DEBUG_PROCEDURE_ON) THEN
96 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_PROCEDURE, l_module, p_transaction_number||': calling utl_http.begin_request');
97 END IF;
98 request := utl_http.begin_request(url=>l_url, method=>'POST'); -- added bug8209104
99 IF(G_IS_DEBUG_PROCEDURE_ON) THEN
100 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_PROCEDURE, l_module, p_transaction_number||': calling utl_http.set_header');
101 END IF;
102 utl_http.set_header(request, 'Content-Type', 'application/x-www-form-urlencoded');
103 utl_http.set_header(request, 'Content-Length', lengthb(l_parameter_data));
104 utl_http.write_text(request, l_parameter_data);
105
106 ----------------------------------------------------------------------------------
107 -- 2. Get response from Proxy Server
108 ----------------------------------------------------------------------------------
109 response := utl_http.get_response(request);
110 utl_http.read_text(response, inbound_buffer);
111 utl_http.end_response(response);
112
113 IF(G_IS_DEBUG_PROCEDURE_ON) THEN
114 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_PROCEDURE, l_module, p_transaction_number||': end okl_esg_transport_pvt.transport');
115 END IF;
116 END transport;
117
118 PROCEDURE store_outxml(p_transaction_number IN NUMBER, p_xml IN CLOB)
119 IS
120 PRAGMA AUTONOMOUS_TRANSACTION;
121
122 l_api_name CONSTANT VARCHAR2(30) := 'store_outxml';
123 l_module VARCHAR2(255) := G_MODULE||'.'||l_api_name||'.'||p_transaction_number;
124 BEGIN
125 IF(G_IS_DEBUG_PROCEDURE_ON) THEN
126 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_PROCEDURE, l_module, p_transaction_number||': begin okl_esg_transport_pvt.store_outxml');
127 END IF;
128
129 INSERT INTO OKL_STREAM_TRX_DATA
130 (id, transaction_number, out_xml)
131 VALUES
132 (p_transaction_number
133 ,p_transaction_number
134 ,p_xml
135 );
136
137 COMMIT;
138
139 IF(G_IS_DEBUG_PROCEDURE_ON) THEN
140 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_PROCEDURE, l_module, p_transaction_number||': end okl_esg_transport_pvt.store_outxml');
141 END IF;
142
143 END store_outxml;
144
145 PROCEDURE process_esg(p_transaction_number IN NUMBER
146 ,x_return_status OUT NOCOPY VARCHAR2)
147 IS
148 l_api_name CONSTANT VARCHAR2(30) := 'process_esg';
149 l_outbound_xml CLOB;
150 l_inbound_xml CLOB;
151
152 l_resultout VARCHAR2(1);
153 amount Binary_integer := 0;
154
155 l_return_status VARCHAR2(1);
156 l_timeout NUMBER;
157
158 ctime DATE;
159
160 l_module VARCHAR2(255) := G_MODULE||'.'||l_api_name||'.'||p_transaction_number;
161 BEGIN
162 x_return_status := G_RET_STS_SUCCESS;
163
164 IF(G_DEBUG_ENABLED = 'Y') THEN
165 G_IS_DEBUG_EXCEPTION_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_EXCEPTION);
166 END IF;
167
168 IF(G_DEBUG_ENABLED = 'Y') THEN
169 G_IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_PROCEDURE);
170 END IF;
171
172 IF(G_DEBUG_ENABLED = 'Y') THEN
173 G_IS_DEBUG_ERROR_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_ERROR);
174 END IF;
175
176 IF(G_IS_DEBUG_PROCEDURE_ON) THEN
177 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_PROCEDURE, l_module, p_transaction_number||': begin okl_esg_transport_pvt.process_esg');
178 END IF;
179
180 ----------------------------------------------------------------------------------
181 -- 1. Generate an outbound xml document from XML Gateway
182 ----------------------------------------------------------------------------------
183 l_outbound_xml := okl_xmlgen_pvt.generate_xmldocument(p_transaction_number);
184
185 ----------------------------------------------------------------------------------
186 -- 2. Store the outbound xml into OKL_STREAM_TRX_DATA table
187 ----------------------------------------------------------------------------------
188 store_outxml(p_transaction_number, l_outbound_xml);
189
190 ----------------------------------------------------------------------------------
191 -- 3. Transporting outbound xml to Proxy Server
192 ----------------------------------------------------------------------------------
193 transport(p_transaction_number);
194
195 IF(G_IS_DEBUG_PROCEDURE_ON) THEN
196 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_PROCEDURE, l_module, p_transaction_number||': end okl_esg_transport_pvt.process_esg');
197 END IF;
198
199 EXCEPTION
200 WHEN OTHERS THEN
201 IF(G_IS_DEBUG_ERROR_ON) THEN
202 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_ERROR, l_module, p_transaction_number||': '||SQLERRM(SQLCODE));
203 END IF;
204
205 OKL_API.SET_MESSAGE(p_app_name => G_APP_NAME,
206 p_msg_name => G_UNEXPECTED_ERROR,
207 p_token1 => G_SQLCODE_TOKEN,
208 p_token1_value => SQLCODE,
209 p_token2 => G_SQLERRM_TOKEN,
210 p_token2_value => SQLERRM
211 );
212 x_return_status := G_RET_STS_UNEXP_ERROR;
213 END process_esg;
214
215 END OKL_ESG_TRANSPORT_PVT;