22: FND_MESSAGE.SET_NAME('IGS','IGS_AD_EXCEED_MAX_LENGTH');
23: FND_MESSAGE.SET_TOKEN('PARAMETER',p_param_name);
24: FND_MESSAGE.SET_TOKEN('LENGTH',l_col_length.width);
25: IGS_GE_MSG_STACK.ADD;
26: RAISE FND_API.G_EXC_ERROR;
27:
28:
29: ELSIF l_col_length.column_type ='N' AND p_param_length > (l_col_length.precision - l_col_length.scale) THEN
30: FND_MESSAGE.SET_NAME('IGS','IGS_AD_EXCEED_MAX_LENGTH');
34: ELSE
35: FND_MESSAGE.SET_TOKEN('LENGTH',l_col_length.precision );
36: END IF;
37: IGS_GE_MSG_STACK.ADD;
38: RAISE FND_API.G_EXC_ERROR;
39: END IF;
40:
41:
42: END check_length;
48: --API
49: PROCEDURE REDERIVE_PERSON_STATS(
50: --Standard Parameters Start
51: p_api_version IN NUMBER,
52: p_init_msg_list IN VARCHAR2 default FND_API.G_FALSE,
53: p_commit IN VARCHAR2 default FND_API.G_FALSE,
54: p_validation_level IN NUMBER default FND_API.G_VALID_LEVEL_FULL,
55: x_return_status OUT NOCOPY VARCHAR2,
56: x_msg_count OUT NOCOPY NUMBER,
49: PROCEDURE REDERIVE_PERSON_STATS(
50: --Standard Parameters Start
51: p_api_version IN NUMBER,
52: p_init_msg_list IN VARCHAR2 default FND_API.G_FALSE,
53: p_commit IN VARCHAR2 default FND_API.G_FALSE,
54: p_validation_level IN NUMBER default FND_API.G_VALID_LEVEL_FULL,
55: x_return_status OUT NOCOPY VARCHAR2,
56: x_msg_count OUT NOCOPY NUMBER,
57: x_msg_data OUT NOCOPY VARCHAR2,
50: --Standard Parameters Start
51: p_api_version IN NUMBER,
52: p_init_msg_list IN VARCHAR2 default FND_API.G_FALSE,
53: p_commit IN VARCHAR2 default FND_API.G_FALSE,
54: p_validation_level IN NUMBER default FND_API.G_VALID_LEVEL_FULL,
55: x_return_status OUT NOCOPY VARCHAR2,
56: x_msg_count OUT NOCOPY NUMBER,
57: x_msg_data OUT NOCOPY VARCHAR2,
58: --Standard parameter ends
96:
97: l_msg_index := 0;
98:
99: -- Standard call to check for call compatibility.
100: IF NOT FND_API.Compatible_API_Call (l_api_version,p_api_version,l_api_name,G_PKG_NAME) THEN
101: RAISE FND_API.G_EXC_ERROR;
102: END IF;
103:
104: -- Initialize message list if p_init_msg_list is set to TRUE.
97: l_msg_index := 0;
98:
99: -- Standard call to check for call compatibility.
100: IF NOT FND_API.Compatible_API_Call (l_api_version,p_api_version,l_api_name,G_PKG_NAME) THEN
101: RAISE FND_API.G_EXC_ERROR;
102: END IF;
103:
104: -- Initialize message list if p_init_msg_list is set to TRUE.
105: IF FND_API.to_Boolean( p_init_msg_list ) THEN
101: RAISE FND_API.G_EXC_ERROR;
102: END IF;
103:
104: -- Initialize message list if p_init_msg_list is set to TRUE.
105: IF FND_API.to_Boolean( p_init_msg_list ) THEN
106: FND_MSG_PUB.initialize;
107: END IF;
108:
109:
112: check_length('PERSON_ID', 'IGS_AD_PS_APPL_INST_ALL', length(TRUNC(p_person_id)));
113: -- P_GROUP_ID
114: check_length('GROUP_ID', 'IGS_PE_PERSID_GROUP_ALL', length(TRUNC(p_group_id)));
115: -- Initialize API return status to success
116: x_return_status := FND_API.G_RET_STS_SUCCESS;
117: ------------------------------
118: --Intialization of varable to handle G_MISS_CHAR/NUM/DATE
119: -------------------------------
120:
124: FETCH c_group_id INTO l_exists;
125: IF c_group_id%NOTFOUND THEN
126: FND_MESSAGE.SET_NAME('IGS','IGS_AD_INVALID_PER_ID_GRP');
127: IGS_GE_MSG_STACK.ADD;
128: RAISE FND_API.G_EXC_ERROR;
129:
130: END IF;
131: CLOSE c_group_id;
132: END IF;
134: IF p_group_id IS NULL and p_person_id IS NULL
135: THEN
136: FND_MESSAGE.SET_NAME('IGS','IGS_AD_PRS_PRSIDGRP_NULL');
137: IGS_GE_MSG_STACK.ADD;
138: RAISE FND_API.G_EXC_ERROR;
139:
140: END IF;
141:
142:
149: SAVEPOINT REDERIVE_PERSON_STATS_PUB;
150:
151: IGS_AD_UPD_INITIALISE.update_per_stats(p_person_id,NULL);
152:
153: IF FND_API.To_Boolean( p_commit ) THEN
154: COMMIT WORK;
155: END IF;
156: x_return_status := FND_API.G_RET_STS_SUCCESS;
157: -- Standard call to get message count and if count is 1, get message info.
152:
153: IF FND_API.To_Boolean( p_commit ) THEN
154: COMMIT WORK;
155: END IF;
156: x_return_status := FND_API.G_RET_STS_SUCCESS;
157: -- Standard call to get message count and if count is 1, get message info.
158: EXCEPTION
159: WHEN FND_API.G_EXC_ERROR THEN
160: ROLLBACK TO REDERIVE_PERSON_STATS_PUB;
155: END IF;
156: x_return_status := FND_API.G_RET_STS_SUCCESS;
157: -- Standard call to get message count and if count is 1, get message info.
158: EXCEPTION
159: WHEN FND_API.G_EXC_ERROR THEN
160: ROLLBACK TO REDERIVE_PERSON_STATS_PUB;
161: x_return_status := FND_API.G_RET_STS_ERROR ;
162: igs_ad_gen_016.extract_msg_from_stack (
163: p_msg_at_index => l_msg_index,
157: -- Standard call to get message count and if count is 1, get message info.
158: EXCEPTION
159: WHEN FND_API.G_EXC_ERROR THEN
160: ROLLBACK TO REDERIVE_PERSON_STATS_PUB;
161: x_return_status := FND_API.G_RET_STS_ERROR ;
162: igs_ad_gen_016.extract_msg_from_stack (
163: p_msg_at_index => l_msg_index,
164: p_return_status => l_return_status,
165: p_msg_count => x_msg_count,
167: p_hash_msg_name_text_type_tab => l_hash_msg_name_text_type_tab);
168: x_msg_data := l_hash_msg_name_text_type_tab(x_msg_count-2).text;
169: x_msg_count := x_msg_count-1;
170:
171: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
172: ROLLBACK TO REDERIVE_PERSON_STATS_PUB;
173: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
174: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
175: p_data => x_msg_data);
169: x_msg_count := x_msg_count-1;
170:
171: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
172: ROLLBACK TO REDERIVE_PERSON_STATS_PUB;
173: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
174: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
175: p_data => x_msg_data);
176:
177: WHEN OTHERS THEN
182: p_msg_count => x_msg_count,
183: p_msg_data => x_msg_data,
184: p_hash_msg_name_text_type_tab => l_hash_msg_name_text_type_tab);
185: IF l_hash_msg_name_text_type_tab(x_msg_count-1).name <> 'ORA' THEN
186: x_return_status := FND_API.G_RET_STS_ERROR ;
187: ELSE
188: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
189: END IF;
190: END;
184: p_hash_msg_name_text_type_tab => l_hash_msg_name_text_type_tab);
185: IF l_hash_msg_name_text_type_tab(x_msg_count-1).name <> 'ORA' THEN
186: x_return_status := FND_API.G_RET_STS_ERROR ;
187: ELSE
188: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
189: END IF;
190: END;
191: END IF;
192: ELSE -- group id is passed
200: SAVEPOINT REDERIVE_PERSON_STATS_PUB;
201: x_return_status_tbl(l_ctr).Person_id := c_person_group_rec.person_id;
202: IGS_AD_UPD_INITIALISE.update_per_stats(c_person_group_rec.person_id,NULL);
203:
204: IF FND_API.To_Boolean( p_commit ) THEN
205: COMMIT WORK;
206: END IF;
207:
208: x_return_status_tbl(l_ctr).sub_return_status := FND_API.G_RET_STS_SUCCESS;
204: IF FND_API.To_Boolean( p_commit ) THEN
205: COMMIT WORK;
206: END IF;
207:
208: x_return_status_tbl(l_ctr).sub_return_status := FND_API.G_RET_STS_SUCCESS;
209: x_return_status := FND_API.G_RET_STS_SUCCESS;
210: -- Standard call to get message count and if count is 1, get message info.
211: EXCEPTION
212: WHEN FND_API.G_EXC_ERROR THEN
205: COMMIT WORK;
206: END IF;
207:
208: x_return_status_tbl(l_ctr).sub_return_status := FND_API.G_RET_STS_SUCCESS;
209: x_return_status := FND_API.G_RET_STS_SUCCESS;
210: -- Standard call to get message count and if count is 1, get message info.
211: EXCEPTION
212: WHEN FND_API.G_EXC_ERROR THEN
213: l_ind_g_exec_error := TRUE;
208: x_return_status_tbl(l_ctr).sub_return_status := FND_API.G_RET_STS_SUCCESS;
209: x_return_status := FND_API.G_RET_STS_SUCCESS;
210: -- Standard call to get message count and if count is 1, get message info.
211: EXCEPTION
212: WHEN FND_API.G_EXC_ERROR THEN
213: l_ind_g_exec_error := TRUE;
214: ROLLBACK TO REDERIVE_PERSON_STATS_PUB;
215: x_return_status_tbl(l_ctr).sub_return_status := FND_API.G_RET_STS_ERROR ;
216: igs_ad_gen_016.extract_msg_from_stack (
211: EXCEPTION
212: WHEN FND_API.G_EXC_ERROR THEN
213: l_ind_g_exec_error := TRUE;
214: ROLLBACK TO REDERIVE_PERSON_STATS_PUB;
215: x_return_status_tbl(l_ctr).sub_return_status := FND_API.G_RET_STS_ERROR ;
216: igs_ad_gen_016.extract_msg_from_stack (
217: p_msg_at_index => l_msg_index,
218: p_return_status => l_return_status,
219: p_msg_count => x_return_status_tbl(l_ctr).sub_msg_count,
221: p_hash_msg_name_text_type_tab => l_hash_msg_name_text_type_tab);
222: x_return_status_tbl(l_ctr).sub_msg_data := l_hash_msg_name_text_type_tab(x_return_status_tbl(l_ctr).sub_msg_count-2).text;
223: x_return_status_tbl(l_ctr).sub_msg_count := x_return_status_tbl(l_ctr).sub_msg_count-1;
224:
225: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
226: l_ind_unc_exec_error := TRUE;
227: ROLLBACK TO REDERIVE_PERSON_STATS_PUB;
228: x_return_status_tbl(l_ctr).sub_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
229: FND_MSG_PUB.Count_And_Get(p_count => x_return_status_tbl(l_ctr).sub_msg_count,
224:
225: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
226: l_ind_unc_exec_error := TRUE;
227: ROLLBACK TO REDERIVE_PERSON_STATS_PUB;
228: x_return_status_tbl(l_ctr).sub_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
229: FND_MSG_PUB.Count_And_Get(p_count => x_return_status_tbl(l_ctr).sub_msg_count,
230: p_data => x_return_status_tbl(l_ctr).sub_msg_data);
231:
232: WHEN OTHERS THEN
242:
243:
244: IF l_hash_msg_name_text_type_tab(x_return_status_tbl(l_ctr).sub_msg_count-1).name <> 'ORA' THEN
245: l_ind_g_exec_error := TRUE;
246: x_return_status_tbl(l_ctr).sub_return_status := FND_API.G_RET_STS_ERROR ;
247: ELSE
248: l_ind_unc_exec_error := TRUE;
249: x_return_status_tbl(l_ctr).sub_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
250: END IF;
245: l_ind_g_exec_error := TRUE;
246: x_return_status_tbl(l_ctr).sub_return_status := FND_API.G_RET_STS_ERROR ;
247: ELSE
248: l_ind_unc_exec_error := TRUE;
249: x_return_status_tbl(l_ctr).sub_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
250: END IF;
251:
252: END;
253: END LOOP;
252: END;
253: END LOOP;
254:
255: IF l_ind_unc_exec_error THEN
256: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
257: ELSIF l_ind_g_exec_error THEN
258: x_return_status := FND_API.G_RET_STS_ERROR ;
259: ELSE
260: x_return_status := FND_API.G_RET_STS_SUCCESS;
254:
255: IF l_ind_unc_exec_error THEN
256: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
257: ELSIF l_ind_g_exec_error THEN
258: x_return_status := FND_API.G_RET_STS_ERROR ;
259: ELSE
260: x_return_status := FND_API.G_RET_STS_SUCCESS;
261: END IF;
262: END IF;
256: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
257: ELSIF l_ind_g_exec_error THEN
258: x_return_status := FND_API.G_RET_STS_ERROR ;
259: ELSE
260: x_return_status := FND_API.G_RET_STS_SUCCESS;
261: END IF;
262: END IF;
263: EXCEPTION ---- This expection block is for the whole api.
264: WHEN FND_API.G_EXC_ERROR THEN
260: x_return_status := FND_API.G_RET_STS_SUCCESS;
261: END IF;
262: END IF;
263: EXCEPTION ---- This expection block is for the whole api.
264: WHEN FND_API.G_EXC_ERROR THEN
265:
266: x_return_status := FND_API.G_RET_STS_ERROR ;
267: igs_ad_gen_016.extract_msg_from_stack (
268: p_msg_at_index => l_msg_index,
262: END IF;
263: EXCEPTION ---- This expection block is for the whole api.
264: WHEN FND_API.G_EXC_ERROR THEN
265:
266: x_return_status := FND_API.G_RET_STS_ERROR ;
267: igs_ad_gen_016.extract_msg_from_stack (
268: p_msg_at_index => l_msg_index,
269: p_return_status => l_return_status,
270: p_msg_count => x_msg_count,
272: p_hash_msg_name_text_type_tab => l_hash_msg_name_text_type_tab);
273: x_msg_data := l_hash_msg_name_text_type_tab(x_msg_count-2).text;
274: x_msg_count := x_msg_count-1;
275:
276: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
277:
278: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
279: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
280: p_data => x_msg_data);
274: x_msg_count := x_msg_count-1;
275:
276: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
277:
278: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
279: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
280: p_data => x_msg_data);
281:
282: WHEN OTHERS THEN
289: p_msg_data => x_msg_data,
290: p_hash_msg_name_text_type_tab => l_hash_msg_name_text_type_tab);
291:
292: IF l_hash_msg_name_text_type_tab(x_msg_count-1).name <> 'ORA' THEN
293: x_return_status := FND_API.G_RET_STS_ERROR ;
294: ELSE
295: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
296: END IF;
297:
291:
292: IF l_hash_msg_name_text_type_tab(x_msg_count-1).name <> 'ORA' THEN
293: x_return_status := FND_API.G_RET_STS_ERROR ;
294: ELSE
295: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
296: END IF;
297:
298:
299: END REDERIVE_PERSON_STATS;