1 PACKAGE BODY CSM_INVENTORY_PKG AS
2 /* $Header: csmuinvb.pls 120.1 2005/07/25 01:13:12 trajasek noship $ */
3
4 -- MODIFICATION HISTORY
5 -- Person Date Comments
6 -- RaviRanjan 09/05/03 Created
7 -- --------- ------ ------------------------------------------
8 -- Enter procedure, function bodies as shown below
9
10
11 /*** Globals ***/
12 g_object_name CONSTANT VARCHAR2(30) := 'CSM_INVENTORY_PKG'; -- package name
13 g_pub_name CONSTANT VARCHAR2(30) := 'CSF_M_INVENTORY'; -- publication item name
14 g_debug_level NUMBER; -- debug level
15
16 CURSOR c_inventory( b_user_name VARCHAR2, b_tranid NUMBER) is
17 SELECT *
18 FROM csf_m_inventory_inq
19 WHERE tranid$$ = b_tranid
20 AND clid$$cs = b_user_name;
21
22 /***
23 This procedure is called by CSM_UTIL_PKG when publication item <replace>
24 is dirty. This happens when a mobile field service device executed DML on an updatable table and did
25 a fast sync. This procedure will insert the data that came from mobile into the backend tables using
26 public APIs.
27 ***/
28 PROCEDURE APPLY_CLIENT_CHANGES
29 (
30 p_user_name IN VARCHAR2,
31 p_tranid IN NUMBER,
32 p_debug_level IN NUMBER,
33 x_return_status IN OUT NOCOPY VARCHAR2
34 ) IS
35
36 l_process_status VARCHAR2(1);
37 l_error_msg VARCHAR2(4000);
38 BEGIN
39 g_debug_level := p_debug_level;
40 x_return_status := FND_API.G_RET_STS_SUCCESS;
41
42 /*** loop through debrief labor records in inqueue ***/
43 FOR r_inventory IN c_inventory( p_user_name, p_tranid) LOOP
44
45 SAVEPOINT save_rec;
46
47 CSM_UTIL_PKG.DELETE_RECORD
48 (
49 p_user_name,
50 p_tranid,
51 r_inventory.seqno$$,
52 r_inventory.gen_pk,
53 g_object_name,
54 g_pub_name,
55 l_error_msg,
56 l_process_status
57 );
58
59 /*** was delete successful? ***/
60 IF l_process_status <> FND_API.G_RET_STS_SUCCESS THEN
61 /*** no -> rollback ***/
62 CSM_UTIL_PKG.LOG
63 ( 'Deleting from inqueue failed, rolling back to savepoint'
64 || ' for PK ' || r_inventory.gen_pk ,'CSM_INVENTORY_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR); -- put PK column here
65 ROLLBACK TO save_rec;
66 x_return_status := FND_API.G_RET_STS_ERROR;
67 END IF;
68
69 END LOOP;
70
71 EXCEPTION WHEN OTHERS THEN
72 /*** catch and log exceptions ***/
73 CSM_UTIL_PKG.LOG
74 ( 'Exception occurred in APPLY_CLIENT_CHANGES:' || ' ' || SQLERRM ,'CSM_INVENTORY_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_EXCEPTION);
75 x_return_status := FND_API.G_RET_STS_ERROR;
76 END APPLY_CLIENT_CHANGES;
77
78 END CSM_INVENTORY_PKG;