DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSM_INVENTORY_PKG

Source


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;