[Home] [Help]
PACKAGE BODY: APPS.GMD_ACTIVITIES_PVT
Source
1 PACKAGE BODY GMD_ACTIVITIES_PVT AS
2 /* $Header: GMDVACTB.pls 115.4 2004/02/25 18:12:35 nsrivast noship $
3 *****************************************************************
4 * *
5 * Package GMD_ACTIVITY_PVT *
6 * *
7 * Contents: INSERT_ACTIVITY *
8 * UPDATE_ACTIVITY *
9 * *
10 * Use This is the private layer of the GMD Activity API *
11 * *
12 * *
13 * History *
14 * Written by Sandra Dulyk, OPM Development *
15 * *
16 * 20-FEB-2004 NSRIVAST Bug# 3222090,Removed call to *
17 * FND_PROFILE.VALUE('AFLOG_ENABLED') *
18 *****************************************************************
19 */
20
21
22 --Bug 3222090, NSRIVAST 20-FEB-2004, BEGIN
23 --Forward declaration.
24 FUNCTION set_debug_flag RETURN VARCHAR2;
25 l_debug VARCHAR2(1) := set_debug_flag;
26
27 FUNCTION set_debug_flag RETURN VARCHAR2 IS
28 l_debug VARCHAR2(1):= 'N';
29 BEGIN
30 IF( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
31 l_debug := 'Y';
32 END IF;
33 RETURN l_debug;
34 END set_debug_flag;
35 --Bug 3222090, NSRIVAST 20-FEB-2004, END
36
37 /*===========================================================================================
38 Procedure
39 insert_activity
40 Description
41 This particular procedure is used to insert an activity
42 Parameters
43 ================================================ */
44 PROCEDURE insert_activity (
45 p_api_version IN NUMBER
46 , p_init_msg_list IN BOOLEAN
47 , p_commit IN BOOLEAN
48 , p_activity_tbl IN gmd_activities_pub.gmd_activities_tbl_type
49 , x_message_count OUT NOCOPY NUMBER
50 , x_message_list OUT NOCOPY VARCHAR2
51 , x_return_status OUT NOCOPY VARCHAR2 ) IS
52
53 CURSOR Cur_check_activity (v_activity VARCHAR2) IS
54 SELECT 1
55 FROM gmd_activities_b
56 WHERE activity = v_activity;
57
58 l_exist NUMBER(5);
59 l_rowid VARCHAR2(40);
60 setup_failure EXCEPTION;
61 duplicate_activity EXCEPTION;
62 BEGIN
63 IF (l_debug = 'Y') THEN
64 gmd_debug.put_line(' In insert_activity private');
65 END IF;
66
67 /* Initially let us assign the return status to success */
68 x_return_status := FND_API.g_ret_sts_success;
69
70 IF NOT gmd_api_grp.setup_done THEN
71 gmd_api_grp.setup_done := gmd_api_grp.setup;
72 END IF;
73 IF NOT gmd_api_grp.setup_done THEN
74 RAISE setup_failure;
75 END IF;
76
77 FOR i IN 1 .. p_activity_tbl.count LOOP
78 IF (l_debug = 'Y') THEN
79 gmd_debug.put_line('Begin Loop - in insert_activity loop (private). Curr Activity is ' || p_activity_tbl(i).activity);
80 END IF;
81
82 /* Check for duplicate activity */
83 OPEN Cur_check_activity(p_activity_tbl(i).activity);
84 FETCH Cur_check_activity INTO l_exist;
85 IF (Cur_check_activity%FOUND) THEN
86 IF (l_debug = 'Y') THEN
87 gmd_debug.put_line('duplicate activity');
88 END IF;
89 gmd_api_grp.log_message ('GMD_DUPLICATE_ACTIVITY', 'ACTIVITY',p_activity_tbl(i).activity);
90 CLOSE Cur_check_activity;
91 RAISE duplicate_activity;
92 END IF;
93 CLOSE Cur_check_activity;
94
95 GMD_ACTIVITIES_PKG.INSERT_ROW(
96 X_ROWID => l_rowid,
97 X_ACTIVITY => p_activity_tbl(i).ACTIVITY,
98 X_COST_ANALYSIS_CODE => p_activity_tbl(i).COST_ANALYSIS_CODE,
99 X_DELETE_MARK => 0,
100 X_TEXT_CODE => p_activity_tbl(i).TEXT_CODE,
101 X_TRANS_CNT => p_activity_tbl(i).TRANS_CNT,
102 X_ACTIVITY_DESC => p_activity_tbl(i).ACTIVITY_DESC,
103 X_CREATION_DATE => sysdate,
104 X_CREATED_BY => gmd_api_grp.user_id,
105 X_LAST_UPDATE_DATE => sysdate,
106 X_LAST_UPDATED_BY => gmd_api_grp.user_id,
107 X_LAST_UPDATE_LOGIN => gmd_api_grp.user_id);
108 IF (l_debug = 'Y') THEN
109 gmd_debug.put_line('End Loop - insert_activity private');
110 END IF;
111 END LOOP;
112
113 IF (l_debug = 'Y') THEN
114 gmd_debug.put_line('END of Insert_activity private');
115 END IF;
116
117 EXCEPTION
118 WHEN setup_failure OR duplicate_activity THEN
119 x_return_status := FND_API.G_RET_STS_ERROR;
120 FND_MSG_PUB.COUNT_AND_GET (P_count => x_message_count,
121 P_data => x_message_list);
122 WHEN OTHERS THEN
123 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
124 FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
125 FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
126 FND_MSG_PUB.ADD;
127 FND_MSG_PUB.COUNT_AND_GET (P_count => x_message_count,
128 P_data => x_message_list);
129 END Insert_Activity;
130
131
132 /*===========================================================================================
133 Procedure
134 update_activity
135 Description
136 This particular procedure is used to update an activity
137 Parameters
138
139 ================================================ */
140 PROCEDURE update_activity (
141 p_api_version IN NUMBER
142 ,p_init_msg_list IN BOOLEAN
143 ,p_commit IN BOOLEAN
144 ,p_activity IN gmd_activities.activity%TYPE
145 ,p_update_table IN gmd_activities_pub.update_tbl_type
146 ,x_message_count OUT NOCOPY NUMBER
147 ,x_message_list OUT NOCOPY VARCHAR2
148 ,x_return_status OUT NOCOPY VARCHAR2 ) IS
149
150 CURSOR retrieve_activity_table_values(v_activity VARCHAR2) IS
151 SELECT *
152 FROM gmd_activities
153 WHERE activity = v_activity;
154
155 v_update_rec gmd_activities%ROWTYPE;
156
157 setup_failure EXCEPTION;
158 inv_activity_err EXCEPTION;
159
160
161 BEGIN
162 IF (l_debug = 'Y') THEN
163 gmd_debug.put_line(' In update_activity private');
164 END IF;
165
166 /* Initially let us assign the return status to success */
167 x_return_status := FND_API.g_ret_sts_success;
168
169 IF NOT gmd_api_grp.setup_done THEN
170 gmd_api_grp.setup_done := gmd_api_grp.setup;
171 END IF;
172 IF NOT gmd_api_grp.setup_done THEN
173 RAISE setup_failure;
174 END IF;
175
176 OPEN retrieve_activity_table_values(p_activity);
177 FETCH retrieve_activity_table_values INTO v_update_rec;
178 IF retrieve_activity_table_values%NOTFOUND THEN
179 gmd_api_grp.log_message ('FM_INVACTIVITY');
180 CLOSE retrieve_activity_table_values;
181 RAISE inv_activity_err;
182 END IF;
183 CLOSE retrieve_activity_table_values;
184
185 FOR i IN 1 .. p_update_table.count LOOP
186 IF (l_debug = 'Y') THEN
187 gmd_debug.put_line('Begin Loop - in update_activity loop (private). Col to update is ' || p_update_table(i).p_col_to_update);
188 END IF;
189 IF UPPER(p_update_table(i).p_col_to_update) = 'COST_ANALYSIS_CODE' THEN
190 v_update_rec.cost_analysis_code := p_update_table(i).p_value;
191 ELSIF UPPER(p_update_table(i).p_col_to_update) = 'DELETE_MARK' THEN
192 v_update_rec.delete_mark := p_update_table(i).p_value;
193 ELSIF UPPER(p_update_table(i).p_col_to_update) = 'TEXT_CODE' THEN
194 v_update_rec.text_code := p_update_table(i).p_value;
195 ELSIF UPPER(p_update_table(i).p_col_to_update) = 'TRANS_CNT' THEN
196 v_update_rec.trans_cnt := p_update_table(i).p_value;
197 ELSIF UPPER(p_update_table(i).p_col_to_update) = 'ACTIVITY_DESC' THEN
198 v_update_rec.activity_desc := p_update_table(i).p_value;
199 END IF;
200 END LOOP;
201
202 GMD_ACTIVITIES_PKG.UPDATE_ROW(
203 X_ACTIVITY => p_activity
204 ,X_COST_ANALYSIS_CODE => v_update_rec.cost_analysis_code
205 ,X_DELETE_MARK => v_update_rec.delete_mark
206 ,X_TEXT_CODE => v_update_rec.text_code
207 ,X_TRANS_CNT => v_update_rec.trans_cnt
208 ,X_ACTIVITY_DESC => v_update_rec.activity_desc
209 ,X_LAST_UPDATE_DATE => sysdate
210 ,X_LAST_UPDATED_BY => gmd_api_grp.user_id
211 ,X_LAST_UPDATE_LOGIN => gmd_api_grp.login_id);
212
213 IF (l_debug = 'Y') THEN
214 gmd_debug.put_line('END of update_activity private');
215 END IF;
216
217 EXCEPTION
218 WHEN setup_failure OR inv_activity_err THEN
219 x_return_status := FND_API.G_RET_STS_ERROR;
220 FND_MSG_PUB.COUNT_AND_GET (P_count => x_message_count,
221 P_data => x_message_list);
222 WHEN OTHERS THEN
223 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
224 FND_MESSAGE.SET_NAME('GMD', 'GMD_UNEXPECTED_ERROR');
225 FND_MESSAGE.SET_TOKEN('ERROR', sqlerrm);
226 FND_MSG_PUB.ADD;
227 FND_MSG_PUB.COUNT_AND_GET (P_count => x_message_count,
228 P_data => x_message_list);
229 END update_activity;
230 END GMD_ACTIVITIES_PVT;