[Home] [Help]
PACKAGE BODY: APPS.CSM_MTL_ITEM_SUBINV_EVENT_PKG
Source
1 PACKAGE BODY CSM_MTL_ITEM_SUBINV_EVENT_PKG AS
2 /* $Header: csmemisb.pls 120.1 2005/07/25 00:11:58 trajasek noship $*/
3 --
4 -- To modify this template, edit file PKGBODY.TXT in TEMPLATE
5 -- directory of SQL Navigator
6 --
7 -- Purpose: Briefly explain the functionality of the package body
8 --
9 -- MODIFICATION HISTORY
10 -- Person Date Comments
11 -- --------- ------ ------------------------------------------
12 -- Enter procedure, function bodies as shown below
13
14 g_table_name1 CONSTANT VARCHAR2(30) := 'MTL_ITEM_SUB_INVENTORIES';
15 g_acc_table_name1 CONSTANT VARCHAR2(30) := 'CSM_MTL_ITEM_SUBINV_ACC';
16 g_acc_sequence_name1 CONSTANT VARCHAR2(30) := 'CSM_MTL_ITEM_SUBINV_ACC_S';
17 g_publication_item_name1 CONSTANT CSM_ACC_PKG.t_publication_item_list :=
18 CSM_ACC_PKG.t_publication_item_list('CSM_MTL_ITEM_SUBINV');
19 g_pk1_name1 CONSTANT VARCHAR2(30) := 'INVENTORY_ITEM_ID';
20 g_pk2_name1 CONSTANT VARCHAR2(30) := 'ORGANIZATION_ID';
21 g_pk3_name1 CONSTANT VARCHAR2(30) := 'SECONDARY_INVENTORY';
22 g_pub_item CONSTANT VARCHAR2(30) := 'CSM_MTL_ITEM_SUBINV';
23
24 PROCEDURE INSERT_MTL_ITEM_SUBINV( p_organization_id IN number
25 , p_user_id IN number
26 , p_last_run_date IN date)
27 IS
28 TYPE inventory_item_tbl_typ IS TABLE OF mtl_system_items_b.inventory_item_id%TYPE INDEX BY BINARY_INTEGER;
29 TYPE organization_tbl_typ IS TABLE OF mtl_system_items_b.organization_id%TYPE
30 INDEX BY BINARY_INTEGER;
31 TYPE secondary_inventory_typ IS TABLE OF mtl_item_sub_inventories.secondary_inventory%TYPE INDEX BY BINARY_INTEGER;
32 TYPE access_id_tbl_typ IS TABLE OF number INDEX BY binary_integer;
33 TYPE user_id_tbl_typ IS TABLE OF number INDEX BY binary_integer;
34
35 l_inventory_items_tbl inventory_item_tbl_typ;
36 l_organizations_tbl organization_tbl_typ;
37 l_sec_inventory_tbl secondary_inventory_typ;
38 l_access_id_tbl access_id_tbl_typ;
39 l_mark_dirty boolean;
40 l_run_date date;
41 l_sqlerrno varchar2(20);
42 l_sqlerrmsg varchar2(2000);
43
44 CURSOR l_ins_mtl_item_subinv_csr(p_organizationid IN number,
45 p_userid IN number,
46 p_lastrundate IN date)
47 IS
48 SELECT cila_acc.user_id, mis.inventory_item_id, mis.organization_id, mis.secondary_inventory
49 FROM csm_mtl_system_items_acc msi_acc,
50 csm_inv_loc_ass_acc cila_acc,
51 csp_inv_loc_assignments cila,
52 mtl_item_sub_inventories mis
53 WHERE msi_acc.inventory_item_id = mis.inventory_item_id
54 AND msi_acc.organization_id = mis.organization_id
55 AND cila.csp_inv_loc_assignment_id = cila_acc.csp_inv_loc_assignment_id
56 AND cila.subinventory_code = mis.secondary_inventory
57 AND cila_acc.user_id = msi_acc.user_id
58 AND NOT EXISTS
59 (SELECT 1
60 FROM csm_mtl_item_subinv_acc acc
61 WHERE acc.user_id = msi_acc.user_id
62 AND acc.inventory_item_id = mis.inventory_item_id
63 AND acc.organization_id = mis.organization_id
64 AND acc.secondary_inventory = mis.secondary_inventory
65 );
66
67 BEGIN
68 CSM_UTIL_PKG.LOG('Entering CSM_MTL_ITEM_SUBINV_EVENT_PKG.INSERT_MTL_ITEM_SUBINV ',
69 'CSM_MTL_ITEM_SUBINV_EVENT_PKG.INSERT_MTL_ITEM_SUBINV',FND_LOG.LEVEL_PROCEDURE);
70
71 l_run_date := SYSDATE;
72
73 -- process inserts
74 OPEN l_ins_mtl_item_subinv_csr(p_organization_id, p_user_id, p_last_run_date);
75 FETCH l_ins_mtl_item_subinv_csr BULK COLLECT INTO l_access_id_tbl, l_inventory_items_tbl, l_organizations_tbl, l_sec_inventory_tbl;
76 CLOSE l_ins_mtl_item_subinv_csr;
77
78 IF l_access_id_tbl.count > 0 THEN
79 FORALL i IN 1..l_access_id_tbl.count
80 INSERT INTO csm_mtl_item_subinv_acc(access_id, user_id, inventory_item_id, organization_id, secondary_inventory, counter,
81 created_by, creation_date, last_updated_by, last_update_date, last_update_login)
82 VALUES (l_access_id_tbl(i), p_user_id, l_inventory_items_tbl(i), l_organizations_tbl(i),l_sec_inventory_tbl(i), 1,
83 fnd_global.user_id, l_run_date, fnd_global.user_id, l_run_date, fnd_global.login_id);
84
85 CSM_UTIL_PKG.LOG('Bulk inserted ' || l_access_id_tbl.count || ' records into csm_mtl_item_subinv_acc for user ' || p_user_id ,
86 'CSM_MTL_ITEM_SUBINV_EVENT_PKG.INSERT_MTL_ITEM_SUBINV',FND_LOG.LEVEL_STATEMENT);
87
88 -- make dirty calls
89 FOR i IN 1..l_access_id_tbl.count LOOP
90 l_mark_dirty := csm_util_pkg.MakeDirtyForUser(g_pub_item,
91 l_access_id_tbl(i),
92 p_user_id,
93 asg_download.ins,
94 l_run_date);
95 END LOOP;
96
97 l_access_id_tbl.delete;
98
99 END IF;
100
101 /* --insert into acc
102 FOR i IN 1..l_inventory_items_tbl.count LOOP
103 CSM_ACC_PKG.Insert_Acc
104 ( P_PUBLICATION_ITEM_NAMES => g_publication_item_name1
105 ,P_ACC_TABLE_NAME => g_acc_table_name1
106 ,P_SEQ_NAME => g_acc_sequence_name1
107 ,P_PK1_NAME => g_pk1_name1
108 ,P_PK1_NUM_VALUE => l_inventory_items_tbl(i)
109 ,P_PK2_NAME => g_pk2_name1
110 ,P_PK2_NUM_VALUE => l_organizations_tbl(i)
111 ,P_PK3_NAME => g_pk3_name1
112 ,P_PK3_CHAR_VALUE => l_sec_inventory_tbl(i)
113 ,P_USER_ID => p_user_id
114 );
115 END LOOP;
116 */
117
118 CSM_UTIL_PKG.LOG('Leaving CSM_MTL_ITEM_SUBINV_EVENT_PKG.INSERT_MTL_ITEM_SUBINV ',
119 'CSM_MTL_ITEM_SUBINV_EVENT_PKG.INSERT_MTL_ITEM_SUBINV',FND_LOG.LEVEL_PROCEDURE);
120
121 EXCEPTION
122 WHEN others THEN
123 l_sqlerrno := to_char(SQLCODE);
124 l_sqlerrmsg := substr(SQLERRM, 1,2000);
125 -- ROLLBACK;
126 CSM_UTIL_PKG.LOG('Exception in CSM_MTL_ITEM_SUBINV_EVENT_PKG.INSERT_MTL_ITEM_SUBINV: ' || l_sqlerrno || ':' || l_sqlerrmsg,
127 'CSM_MTL_ITEM_SUBINV_EVENT_PKG.INSERT_MTL_ITEM_SUBINV',FND_LOG.LEVEL_EXCEPTION);
128 END INSERT_MTL_ITEM_SUBINV;
129
130
131 PROCEDURE UPDATE_MTL_ITEM_SUBINV( p_organization_id IN number
132 , p_user_id IN number
133 , p_last_run_date IN date)
134 IS
135 TYPE access_id_tbl_typ IS TABLE OF csm_mtl_system_items_acc.access_id%TYPE INDEX BY BINARY_INTEGER;
136 l_access_id_tbl access_id_tbl_typ;
137 l_mark_dirty boolean;
138 l_run_date date;
139 l_sqlerrno varchar2(20);
140 l_sqlerrmsg varchar2(2000);
141
142 CURSOR l_upd_mtl_item_subinv_csr( p_organizationid IN number
143 , p_lastrundate IN DATE
144 , p_userid IN NUMBER) IS
145 SELECT access_id
146 FROM csm_mtl_item_subinv_acc acc
147 , mtl_item_sub_inventories mis
148 WHERE mis.inventory_item_id = acc.inventory_item_id
149 AND mis.organization_id = acc.organization_id
150 AND mis.secondary_inventory = acc.secondary_inventory
151 AND mis.last_update_date >= p_last_run_date
152 AND acc.organization_id = p_organizationid
153 AND acc.user_id = p_userid;
154
155 BEGIN
156 CSM_UTIL_PKG.LOG('Entering CSM_MTL_ITEM_SUBINV_EVENT_PKG.UPDATE_MTL_ITEM_SUBINV ',
157 'CSM_MTL_ITEM_SUBINV_EVENT_PKG.UPDATE_MTL_ITEM_SUBINV',FND_LOG.LEVEL_PROCEDURE);
158
159 l_run_date := SYSDATE;
160
161 IF l_access_id_tbl.count > 0 THEN
162 l_access_id_tbl.DELETE;
163 END IF;
164
165 OPEN l_upd_mtl_item_subinv_csr(p_organization_id, p_last_run_date, p_user_id);
166 FETCH l_upd_mtl_item_subinv_csr BULK COLLECT INTO l_access_id_tbl;
167 CLOSE l_upd_mtl_item_subinv_csr;
168
169 IF l_access_id_tbl.count > 0 THEN
170 -- make dirty calls
171 FOR i IN 1..l_access_id_tbl.count LOOP
172 CSM_ACC_PKG.Update_Acc
173 ( P_PUBLICATION_ITEM_NAMES => g_publication_item_name1
174 ,P_ACC_TABLE_NAME => g_acc_table_name1
175 ,P_ACCESS_ID => l_access_id_tbl(i)
176 ,P_USER_ID => p_user_id
177 );
178 END LOOP;
179
180 l_access_id_tbl.DELETE;
181 END IF;
182
183 CSM_UTIL_PKG.LOG('Leaving CSM_MTL_ITEM_SUBINV_EVENT_PKG.UPDATE_MTL_ITEM_SUBINV ',
184 'CSM_MTL_ITEM_SUBINV_EVENT_PKG.UPDATE_MTL_ITEM_SUBINV',FND_LOG.LEVEL_PROCEDURE);
185
186 EXCEPTION
187 WHEN others THEN
188 l_sqlerrno := to_char(SQLCODE);
189 l_sqlerrmsg := substr(SQLERRM, 1,2000);
190 ROLLBACK;
191 CSM_UTIL_PKG.LOG('Exception in CSM_MTL_ITEM_SUBINV_EVENT_PKG.UPDATE_MTL_ITEM_SUBINV: ' || l_sqlerrno || ':' || l_sqlerrmsg,
192 'CSM_MTL_ITEM_SUBINV_EVENT_PKG.UPDATE_MTL_ITEM_SUBINV',FND_LOG.LEVEL_EXCEPTION);
193 END UPDATE_MTL_ITEM_SUBINV;
194
195
196 PROCEDURE DELETE_MTL_ITEM_SUBINV( p_organization_id IN number
197 , p_user_id IN number
198 , p_last_run_date IN date)
199 IS
200 TYPE inventory_item_tbl_typ IS TABLE OF mtl_system_items_b.inventory_item_id%TYPE INDEX BY BINARY_INTEGER;
201 TYPE organization_tbl_typ IS TABLE OF mtl_system_items_b.organization_id%TYPE INDEX BY BINARY_INTEGER;
202 TYPE secondary_inventory_typ IS TABLE OF mtl_item_sub_inventories.secondary_inventory%TYPE INDEX BY BINARY_INTEGER;
203 l_inventory_items_tbl inventory_item_tbl_typ;
204 l_organizations_tbl organization_tbl_typ;
205 l_sec_inventory_tbl secondary_inventory_typ;
206 l_sqlerrno varchar2(20);
207 l_sqlerrmsg varchar2(2000);
208
209 CURSOR l_del_mtl_item_subinv_csr( p_organizationid IN number
210 , p_userid IN NUMBER)
211 IS
212 SELECT acc.inventory_item_id, acc.organization_id, acc.secondary_inventory
213 FROM csm_mtl_item_subinv_acc acc
214 WHERE acc.user_id = p_userid
215 AND acc.organization_id = p_organizationid
216 AND NOT EXISTS
217 (SELECT 1
218 FROM mtl_item_sub_inventories mis
219 WHERE mis.inventory_item_id = acc.inventory_item_id
220 AND mis.organization_id = acc.organization_id
221 AND mis.secondary_inventory = acc.secondary_inventory
222 );
223
224 BEGIN
225 CSM_UTIL_PKG.LOG('Entering CSM_MTL_ITEM_SUBINV_EVENT_PKG.DELETE_MTL_ITEM_SUBINV ',
226 'CSM_MTL_ITEM_SUBINV_EVENT_PKG.DELETE_MTL_ITEM_SUBINV',FND_LOG.LEVEL_PROCEDURE);
227
228 IF l_inventory_items_tbl.count > 0 THEN
229 l_inventory_items_tbl.delete;
230 END IF;
231
232 IF l_organizations_tbl.count > 0 THEN
233 l_organizations_tbl.delete;
234 END IF;
235
236 IF l_sec_inventory_tbl.count > 0 THEN
237 l_sec_inventory_tbl.delete;
238 END IF;
239
240 -- process deletes
241 OPEN l_del_mtl_item_subinv_csr(p_organization_id, p_user_id);
242 FETCH l_del_mtl_item_subinv_csr BULK COLLECT INTO l_inventory_items_tbl, l_organizations_tbl, l_sec_inventory_tbl;
243 CLOSE l_del_mtl_item_subinv_csr;
244
245 IF l_inventory_items_tbl.count > 0 THEN
246 -- make dirty calls
247 FOR i IN 1..l_inventory_items_tbl.count LOOP
248 CSM_ACC_PKG.Delete_Acc
249 ( P_PUBLICATION_ITEM_NAMES => g_publication_item_name1
250 ,P_ACC_TABLE_NAME => g_acc_table_name1
251 ,P_PK1_NAME => g_pk1_name1
252 ,P_PK1_NUM_VALUE => l_inventory_items_tbl(i)
253 ,P_PK2_NAME => g_pk2_name1
254 ,P_PK2_NUM_VALUE => l_organizations_tbl(i)
255 ,P_PK3_NAME => g_pk3_name1
256 ,P_PK3_CHAR_VALUE => l_sec_inventory_tbl(i)
257 ,P_USER_ID => p_user_id
258 );
259 END LOOP;
260
261 END IF;
262
263 CSM_UTIL_PKG.LOG('Leaving CSM_MTL_ITEM_SUBINV_EVENT_PKG.DELETE_MTL_ITEM_SUBINV ',
264 'CSM_MTL_ITEM_SUBINV_EVENT_PKG.DELETE_MTL_ITEM_SUBINV',FND_LOG.LEVEL_PROCEDURE);
265
266 EXCEPTION
267 WHEN others THEN
268 l_sqlerrno := to_char(SQLCODE);
269 l_sqlerrmsg := substr(SQLERRM, 1,2000);
270 ROLLBACK;
271 CSM_UTIL_PKG.LOG('Exception in CSM_MTL_ITEM_SUBINV_EVENT_PKG.DELETE_MTL_ITEM_SUBINV: ' || l_sqlerrno || ':' || l_sqlerrmsg,
272 'CSM_MTL_ITEM_SUBINV_EVENT_PKG.DELETE_MTL_ITEM_SUBINV',FND_LOG.LEVEL_EXCEPTION);
273 END DELETE_MTL_ITEM_SUBINV;
274
275
276 PROCEDURE Refresh_acc(p_status OUT NOCOPY VARCHAR2,
277 p_message OUT NOCOPY VARCHAR2)
278 IS
279 PRAGMA AUTONOMOUS_TRANSACTION;
280 l_prog_update_date jtm_con_request_data.last_run_date%TYPE;
281 l_access_id jtm_fnd_lookups_acc.access_id%TYPE;
282 l_all_omfs_palm_resource_list asg_download.user_list;
283 l_valid_omfs_resource_list asg_download.user_list;
284 l_null_palm_omfs_resource_list asg_download.user_list;
285 l_user_id fnd_user.user_id%TYPE;
286 l_user_palm_organization_id mtl_system_items.organization_id%TYPE;
287 l_user_language mtl_system_items_tl.language%TYPE;
288 l_run_date date;
289 l_sqlerrno varchar2(20);
290 l_sqlerrmsg varchar2(2000);
291
292 CURSOR l_last_run_date_csr
293 IS
294 SELECT nvl(last_run_date, (sysdate - 365*50))
295 FROM jtm_con_request_data
296 WHERE package_name = 'CSM_MTL_ITEM_SUBINV_EVENT_PKG'
297 AND procedure_name = 'REFRESH_ACC';
298
299 --process inserts
300 CURSOR l_ins_mtl_item_subinv_csr
301 IS
302 SELECT cila_acc.user_id, mis.inventory_item_id, mis.organization_id, mis.secondary_inventory
303 FROM csm_mtl_system_items_acc msi_acc,
304 csm_inv_loc_ass_acc cila_acc,
305 csp_inv_loc_assignments cila,
306 mtl_item_sub_inventories mis
307 WHERE msi_acc.inventory_item_id = mis.inventory_item_id
311 AND cila_acc.user_id = msi_acc.user_id
308 AND msi_acc.organization_id = mis.organization_id
309 AND cila.csp_inv_loc_assignment_id = cila_acc.csp_inv_loc_assignment_id
310 AND cila.subinventory_code = mis.secondary_inventory
312 AND NOT EXISTS
313 (SELECT 1
314 FROM csm_mtl_item_subinv_acc acc
315 WHERE acc.user_id = msi_acc.user_id
316 AND acc.inventory_item_id = mis.inventory_item_id
317 AND acc.organization_id = mis.organization_id
318 AND acc.secondary_inventory = mis.secondary_inventory
319 );
320
321 -- process updates
322 CURSOR l_upd_mtl_item_subinv_csr(p_last_upd_date DATE)
323 IS
324 SELECT acc.access_id, acc.secondary_inventory, acc.organization_id,
325 acc.inventory_item_id, acc.user_id
326 FROM csm_mtl_item_subinv_acc acc,
327 mtl_item_sub_inventories mis
328 WHERE mis.inventory_item_id = acc.inventory_item_id
329 AND mis.secondary_inventory = acc.secondary_inventory
330 AND mis.organization_id = acc.organization_id
331 AND mis.last_update_date >= p_last_upd_date;
332
333 -- process deletes
334 CURSOR l_del_mtl_item_subinv_csr
335 IS
336 SELECT acc.access_id, acc.secondary_inventory, acc.organization_id,
337 acc.inventory_item_id, acc.user_id
338 FROM csm_mtl_item_subinv_acc acc
339 WHERE NOT EXISTS
340 (SELECT 1
341 FROM csm_mtl_system_items_acc msi_acc,
342 csm_inv_loc_ass_acc cila_acc,
343 csp_inv_loc_assignments cila,
344 mtl_item_sub_inventories mis
345 WHERE msi_acc.inventory_item_id = mis.inventory_item_id
346 AND msi_acc.organization_id = mis.organization_id
347 AND cila.csp_inv_loc_assignment_id = cila_acc.csp_inv_loc_assignment_id
348 AND cila.subinventory_code = mis.secondary_inventory
349 AND cila_acc.user_id = msi_acc.user_id
350 AND msi_acc.user_id = acc.user_id
351 AND msi_acc.inventory_item_id = acc.inventory_item_id
352 AND msi_acc.organization_id = acc.organization_id
353 AND acc.secondary_inventory = cila.subinventory_code
354 );
355
356 CURSOR l_user_id_csr (p_resourceid IN number)
357 IS
358 SELECT user_id
359 FROM asg_user
360 WHERE resource_id = p_resourceid;
361
362 BEGIN
363 CSM_UTIL_PKG.LOG('Entering CSM_MTL_ITEM_SUBINV_EVENT_PKG.Refresh_acc ',
364 'CSM_MTL_ITEM_SUBINV_EVENT_PKG.Refresh_acc',FND_LOG.LEVEL_PROCEDURE);
365
366 l_run_date := SYSDATE;
367
368 -- get last conc program update date
369 OPEN l_last_run_date_csr;
370 FETCH l_last_run_date_csr INTO l_prog_update_date;
371 CLOSE l_last_run_date_csr;
372
373 -- process deletes
374 FOR r_del_mtl_item_subinv_rec IN l_del_mtl_item_subinv_csr LOOP
375 CSM_ACC_PKG.Delete_acc
376 ( P_PUBLICATION_ITEM_NAMES => g_publication_item_name1
377 ,P_ACC_TABLE_NAME => g_acc_table_name1
378 ,P_PK1_NAME => g_pk1_name1
379 ,P_PK1_NUM_VALUE => r_del_mtl_item_subinv_rec.inventory_item_id
380 ,P_PK2_NAME => g_pk2_name1
381 ,P_PK2_NUM_VALUE => r_del_mtl_item_subinv_rec.organization_id
382 ,P_PK3_NAME => g_pk3_name1
383 ,P_PK3_CHAR_VALUE => r_del_mtl_item_subinv_rec.secondary_inventory
384 ,P_USER_ID => r_del_mtl_item_subinv_rec.user_id
385 );
386 END LOOP;
387
388 -- process updates
389 FOR r_upd_mtl_item_subinv_rec IN l_upd_mtl_item_subinv_csr(l_prog_update_date) LOOP
390 CSM_ACC_PKG.Update_acc
391 ( P_PUBLICATION_ITEM_NAMES => g_publication_item_name1
392 ,P_ACC_TABLE_NAME => g_acc_table_name1
393 ,P_ACCESS_ID => r_upd_mtl_item_subinv_rec.access_id
394 ,P_USER_ID => r_upd_mtl_item_subinv_rec.user_id
395 );
396 END LOOP;
397
398 -- process inserts
399 FOR r_ins_mtl_item_subinv_rec IN l_ins_mtl_item_subinv_csr LOOP
400 CSM_ACC_PKG.Insert_Acc
401 ( P_PUBLICATION_ITEM_NAMES => g_publication_item_name1
402 ,P_ACC_TABLE_NAME => g_acc_table_name1
403 ,P_SEQ_NAME => g_acc_sequence_name1
404 ,P_PK1_NAME => g_pk1_name1
405 ,P_PK1_NUM_VALUE => r_ins_mtl_item_subinv_rec.inventory_item_id
406 ,P_PK2_NAME => g_pk2_name1
407 ,P_PK2_NUM_VALUE => r_ins_mtl_item_subinv_rec.organization_id
408 ,P_PK3_NAME => g_pk3_name1
409 ,P_PK3_CHAR_VALUE => r_ins_mtl_item_subinv_rec.secondary_inventory
410 ,P_USER_ID => r_ins_mtl_item_subinv_rec.user_id
411 );
412 END LOOP;
413
414 -- update last_run_date
415 UPDATE jtm_con_request_data
416 SET last_run_date = l_run_date
417 WHERE package_name = 'CSM_MTL_ITEM_SUBINV_EVENT_PKG'
418 AND procedure_name = 'REFRESH_ACC';
419
420 COMMIT;
421
422 p_status := 'FINE';
423 p_message := 'CSM_MTL_ITEM_SUBINV_EVENT_PKG.Refresh_Acc Executed successfully';
424
425 EXCEPTION
426 WHEN others THEN
427 l_sqlerrno := to_char(SQLCODE);
428 l_sqlerrmsg := substr(SQLERRM, 1,2000);
429 p_status := 'ERROR';
430 p_message := 'Error in CSM_MTL_ITEM_SUBINV_EVENT_PKG.Refresh_Acc: ' || l_sqlerrno || ':' || l_sqlerrmsg;
431 ROLLBACK;
432 CSM_UTIL_PKG.LOG('Exception in CSM_MTL_ITEM_SUBINV_EVENT_PKG.refresh_acc: ' || l_sqlerrno || ':' || l_sqlerrmsg,
433 'CSM_MTL_ITEM_SUBINV_EVENT_PKG.refresh_acc',FND_LOG.LEVEL_EXCEPTION);
434 END Refresh_acc;
435
436 END CSM_MTL_ITEM_SUBINV_EVENT_PKG;