DBA Data[Home] [Help]

PACKAGE BODY: APPS.RCV_EXTERNAL_INTERFACE_SV

Source


1 PACKAGE BODY rcv_external_interface_sv AS
2 /* $Header: RCVRSEVB.pls 120.1 2010/01/26 20:07:32 vthevark noship $ */
3 
4 g_asn_debug       VARCHAR2(1)  := asn_debug.is_debug_on; -- Bug 9152790
5 
6 G_PKG_NAME CONSTANT VARCHAR2(50) := 'RCV_EXTERNAL_INTERFACE_SV';
7 
8 
9    /*===========================================================================
10    |                                                                           |
11    | PROCEDURE NAME   Raise_Event                                              |
12    |                                                                           |
13    | DESCRIPTION      This procedure raises an event in Work Flow.  It raises  |
14    |                  an appropriate procedure depending on the parameters     |
15    |                  passed.                                                  |
16    |                                                                           |
17    | MODIFICATION HISTORY                                                      |
18    |                                                                           |
19    | 24-Dec-09        Sunil Mididuddi    Created                               |
20    |                                                                           |
21    ============================================================================*/
22 
23    PROCEDURE Raise_Event ( P_txn_hist_record   IN     RCV_TRANSACTIONS_HISTORY_PKG.Txns_History_Record_Type,
24                            P_xml_document_id   IN     NUMBER,
25                            x_return_status     IN OUT NOCOPY  VARCHAR2)
26    IS
27 
28       l_event_name VARCHAR2 (120);
29       l_event_key  VARCHAR2 (30);
30 
31       l_return_status    VARCHAR2 (1);
32       l_Transaction_Code VARCHAR2 (100);
33       l_Org_ID           NUMBER;
34       l_Party_Site_ID    NUMBER;
35       l_txns_id          NUMBER := NULL;
36       l_xml_document_id  NUMBER;
37 
38       l_msg_parameter_list  WF_PARAMETER_LIST_T;
39       l_txn_hist_record RCV_TRANSACTIONS_HISTORY_PKG.Txns_History_Record_Type;
40 
41       l_wms_deployment_mode     varchar2(1);
42 
43       invalid_event_name  EXCEPTION;
44       update_history      EXCEPTION;
45 
46    BEGIN
47 
48       IF (g_asn_debug = 'Y') THEN
49           asn_debug.put_line('Entering RCV_EXTERNAL_INTERFACE_SV.Raise_Event Call');
50           asn_debug.put_line('transaction_id is ' || P_txn_hist_record.transaction_id);
51           asn_debug.put_line('transaction_status is ' || P_txn_hist_record.transaction_status);
52      END IF;
53 
54       x_return_status := rcv_error_pkg.g_ret_sts_success;
55 
56       l_txn_hist_record := P_txn_hist_record;
57       l_xml_document_id := P_xml_document_id;
58 
59 
60       -- Get the event name from the Transaction History Table.
61       l_event_name := l_txn_hist_record.Event_Name;
62 
63       -- Check if the event name is valid or not.
64 
65       IF ( l_event_name NOT IN ('oracle.apps.po.standalone.rcpto') ) THEN
66          RAISE invalid_event_name;
67       END IF;
68 
69       l_Transaction_Code := UPPER (SUBSTRB (l_event_name, INSTRB(l_Event_Name, '.', -1) + 1));
70 
71       IF (g_asn_debug = 'Y') THEN
72           asn_debug.put_line('Transaction Code is ' || l_transaction_code);
73       END If;
74 
75       l_event_key := l_txn_hist_record.Event_Key;
76       l_wms_deployment_mode := WMS_DEPLOY.WMS_DEPLOYMENT_MODE;
77 
78 
79       IF ( l_Transaction_Code in ('RCPTO') ) THEN --{
80 
81          IF (l_wms_deployment_mode = 'L') then
82 
83           SELECT trading_partner_site_id
84           INTO l_Party_Site_ID
85           FROM mtl_client_parameters
86           WHERE client_id IN (SELECT cust_account_id
87                               FROM hz_cust_accounts
88                               WHERE party_id = P_txn_hist_record.trading_partner_id);
89 
90 
91          ELSE
92 
93           l_Party_Site_ID  := P_txn_hist_record.trading_partner_id;
94 
95          END IF;
96 
97 
98          IF (g_asn_debug = 'Y') THEN
99              asn_debug.put_line('trading_partner_site_id is '||l_Party_Site_ID);
100          END IF;
101 
102       END IF; --}
103 
104 
105      IF ( l_wms_deployment_mode = 'L') then
106 
107          WF_EVENT.AddParameterToList (p_name  => 'ECX_PARTY_ID',
108                                       p_value => l_txn_hist_record.Trading_Partner_ID,
109                                       p_parameterlist => l_msg_parameter_list);
110 
111          WF_EVENT.AddParameterToList (p_name  => 'ECX_PARTY_SITE_ID',
112                                       p_value => l_Party_Site_ID,
113                                       p_parameterlist => l_msg_parameter_list);
114 
115          WF_EVENT.AddParameterToList (p_name  => 'ECX_PARTY_TYPE',
116                                       p_value => 'C',
117                                       p_parameterlist => l_msg_parameter_list);
118           IF (g_asn_debug = 'Y') THEN
119               asn_debug.put_line('Party Type is '|| 'C');
120           END IF;
121 
122          WF_EVENT.AddParameterToList (p_name  => 'ECX_TRANSACTION_TYPE',
123                                          p_value => 'PO',
124                                          p_parameterlist => l_msg_parameter_list);
125           IF (g_asn_debug = 'Y') THEN
126               asn_debug.put_line('Transaction Type is '|| 'PO');
127           END IF;
128 
129 
130          WF_EVENT.AddParameterToList (p_name  => 'ECX_TRANSACTION_SUBTYPE',
131                                          p_value => 'RCPTO',
132                                          p_parameterlist => l_msg_parameter_list);
133           IF (g_asn_debug = 'Y') THEN
134               asn_debug.put_line('Transaction SubType is '|| 'RCPTO');
135           END IF;
136 
137      ELSE
138 
139          WF_EVENT.AddParameterToList (p_name  => 'ECX_PARTY_ID',
140                                       p_value => l_txn_hist_record.Trading_Partner_ID,
141                                       p_parameterlist => l_msg_parameter_list);
142 
143          WF_EVENT.AddParameterToList (p_name  => 'ECX_PARTY_SITE_ID',
144                                       p_value => l_Party_Site_ID,
145                                       p_parameterlist => l_msg_parameter_list);
146 
147          WF_EVENT.AddParameterToList (p_name  => 'ECX_PARTY_TYPE',
148                                       p_value => 'I',
149                                       p_parameterlist => l_msg_parameter_list);
150           IF (g_asn_debug = 'Y') THEN
151               asn_debug.put_line('Party Type is '|| 'I');
152           END IF;
153 
154          WF_EVENT.AddParameterToList (p_name  => 'ECX_TRANSACTION_TYPE',
155                                          p_value => 'PO',
156                                          p_parameterlist => l_msg_parameter_list);
157           IF (g_asn_debug = 'Y') THEN
158               asn_debug.put_line('Transaction Type is '|| 'PO');
159           END IF;
160 
161 
162          WF_EVENT.AddParameterToList (p_name  => 'ECX_TRANSACTION_SUBTYPE',
163                                          p_value => 'RCPTO-INT',
164                                          p_parameterlist => l_msg_parameter_list);
165           IF (g_asn_debug = 'Y') THEN
166               asn_debug.put_line('Transaction SubType is '|| 'RCPTO-INT');
167           END IF;
168 
169       END IF;
170 
171 
172          WF_EVENT.AddParameterToList (p_name  => 'ECX_DOCUMENT_ID',
173                                       p_value => l_txn_hist_record.Entity_Number, --shipment_header_id
174                                       p_parameterlist => l_msg_parameter_list);
175 
176           IF (g_asn_debug = 'Y') THEN
177               asn_debug.put_line('Document ID is '|| l_txn_hist_record.Entity_Number);
178           END IF;
179 
180 
181          WF_EVENT.AddParameterToList (p_name  => 'USER_ID',
182                                p_value => FND_GLOBAL.USER_ID,
183                                p_parameterlist => l_msg_parameter_list);
184 
185           IF (g_asn_debug = 'Y') THEN
186               asn_debug.put_line('User ID is '|| FND_GLOBAL.USER_ID);
187           END IF;
188 
189          --
190          WF_EVENT.AddParameterToList (p_name  => 'APPLICATION_ID',
191                                p_value => FND_GLOBAL.RESP_APPL_ID,
192                                p_parameterlist => l_msg_parameter_list);
193 
194 
195           IF (g_asn_debug = 'Y') THEN
196               asn_debug.put_line('Responsibility Application ID is '|| FND_GLOBAL.RESP_APPL_ID);
197           END IF;
198 
199 
200          WF_EVENT.AddParameterToList (p_name  => 'RESPONSIBILITY_ID',
201                                p_value => FND_GLOBAL.RESP_ID,
202                                p_parameterlist => l_msg_parameter_list);
203 
204           IF (g_asn_debug = 'Y') THEN
205               asn_debug.put_line('Responsibility ID is '|| FND_GLOBAL.RESP_ID);
206           END IF;
207 
208 
209          WF_EVENT.AddParameterToList (p_name  => 'USER',
210                                       p_value => FND_GLOBAL.user_name,
211                                       p_parameterlist => l_msg_parameter_list);
212 
213           IF (g_asn_debug = 'Y') THEN
214               asn_debug.put_line('User_Name is '||FND_GLOBAL.user_name);
215           END IF;
216 
217          WF_EVENT.AddParameterToList (p_name  => 'ECX_PARAMETER1',
218                                       p_value => l_txn_hist_record.Action_Type,
219                                       p_parameterlist => l_msg_parameter_list);
220 
221          WF_EVENT.AddParameterToList (p_name  => 'ECX_PARAMETER2',
222                                       p_value => l_txn_hist_record.Client_Code,
223                                       p_parameterlist => l_msg_parameter_list);
224 
225           IF (g_asn_debug = 'Y') THEN
226               asn_debug.put_line('ECX Parameter1 is '||l_txn_hist_record.Action_Type);
227           END IF;
228 
229           IF (g_asn_debug = 'Y') THEN
230               asn_debug.put_line('ECX Parameter2 is '||l_txn_hist_record.Client_Code);
231           END IF;
232 
233 
234 
235           SELECT receipt_num
236           INTO l_txn_hist_record.Entity_Number
237           FROM rcv_shipment_headers
238           WHERE shipment_header_id = l_txn_hist_record.Entity_Number;
239 
240           IF (g_asn_debug = 'Y') THEN
241               asn_debug.put_line('Receipt Number is '||l_txn_hist_record.Entity_Number);
242           END IF;
243 
244           RCV_TRANSACTIONS_HISTORY_PKG.Create_Update_Txns_History ( l_txn_hist_record,
245                                                                     l_xml_document_id,
246                                                                     l_txns_id,
247                                                                     l_return_status );
248 
249           IF (g_asn_debug = 'Y') THEN
250               asn_debug.put_line('l_txns_id is '||l_txns_id);
251               asn_debug.put_line('l_return_status is '||To_Char(l_Return_Status));
252           END IF;
253 
254           IF ( l_return_status <> rcv_error_pkg.g_ret_sts_success ) THEN
255               IF (g_asn_debug = 'Y') THEN
256                   asn_debug.put_line('Raise_Event.l_Return_Status is '|| l_Return_Status);
257               END IF;
258               RAISE update_history;
259           END IF;
260 
261          -- Commit the data into the Transaction History table.
262          COMMIT;
263 
264 
265       IF ( l_Transaction_Code IN ('RCPTO') ) THEN
266 
267           IF (g_asn_debug = 'Y') THEN
268               asn_debug.put_line('Raising Business Event');
269           END IF;
270 
271          WF_EVENT.raise ( p_event_name => l_event_name,
272                           p_event_key  => l_event_key,
273                           p_parameters => l_msg_parameter_list );
274 
275           IF (g_asn_debug = 'Y') THEN
276               asn_debug.put_line('Completed the Business Event execution');
277           END IF;
278 
279       END IF;
280 
281       IF (g_asn_debug = 'Y') THEN
282           asn_debug.put_line('Exiting RCV_EXTERNAL_INTERFACE_SV.Raise_Event call');
283       END IF;
284 
285    EXCEPTION
286       WHEN invalid_event_name THEN
287          x_return_status := rcv_error_pkg.g_ret_sts_error;
288          IF (g_asn_debug = 'Y') THEN
289           asn_debug.put_line('invalid_event_name exception has occured.');
290          END IF;
291 
292       WHEN update_history THEN
293          x_return_status := rcv_error_pkg.g_ret_sts_error;
294          IF (g_asn_debug = 'Y') THEN
295           asn_debug.put_line('update_history exception has occured.');
296          END IF;
297 
298       WHEN OTHERS THEN
299          x_return_status := rcv_error_pkg.g_ret_sts_unexp_error;
300 
301          IF (g_asn_debug = 'Y') THEN
302           asn_debug.put_line('Unexpected error has occured. Oracle error message is '|| SQLERRM);
303          END IF;
304 
305    END Raise_Event;
306 
307 END RCV_EXTERNAL_INTERFACE_SV;