DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_EXTERNAL_INTERFACE_SV

Source


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