[Home] [Help]
PACKAGE BODY: APPS.AS_DECISION_FACTOR_PVT
Source
4 -- Package name : AS_DECISION_FACTOR_PVT
1 PACKAGE BODY AS_DECISION_FACTOR_PVT as
2 /* $Header: asxvdfcb.pls 120.1 2005/06/14 01:34:18 appldev $ */
3 -- Start of Comments
5 -- Purpose :
6 -- History :
7 -- NOTE :
8 -- End of Comments
9
10
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AS_DECISION_FACTOR_PVT';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'asxvdfcb.pls';
13
14
15 -- Hint: Primary key needs to be returned.
16
17 PROCEDURE Create_decision_factors(
18 P_Api_Version_Number IN NUMBER,
19 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
20 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
21 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
22 P_Check_Access_Flag IN VARCHAR2 := FND_API.G_FALSE,
23 P_Admin_Flag IN VARCHAR2 := FND_API.G_FALSE,
24 P_Admin_Group_Id IN NUMBER,
25 P_Identity_Salesforce_Id IN NUMBER := NULL,
26
27 P_Partner_Cont_Party_id IN NUMBER := FND_API.G_MISS_NUM,
28 P_profile_tbl IN AS_UTILITY_PUB.PROFILE_TBL_TYPE,
29 P_decision_factor_Tbl IN As_Opportunity_Pub.Decision_Factor_Tbl_Type :=
30 AS_OPPORTUNITY_PUB.G_MISS_decision_factor_Tbl,
31 X_decision_factor_out_tbl OUT NOCOPY as_opportunity_pub.decision_factor_out_tbl_type,
32 X_Return_Status OUT NOCOPY VARCHAR2,
33 X_Msg_Count OUT NOCOPY NUMBER,
34 X_Msg_Data OUT NOCOPY VARCHAR2
35 )
36
40 FROM as_lead_lines_all
37 IS
38 CURSOR G_lead_id(p_lead_line_id NUMBER) IS
39 SELECT lead_id
41 WHERE lead_line_id = p_lead_line_id;
42
43 l_api_name CONSTANT VARCHAR2(30) := 'Create_decision_factor';
44 l_api_version_number CONSTANT NUMBER := 2.0;
45 l_return_status_full VARCHAR2(1);
46 l_identity_sales_member_rec AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
47 l_access_flag VARCHAR2(1);
48 --P_Decision_Factor_Rec AS_OPPORTUNITY_PUB.Decision_Factor_Rec_Type;
49 l_decision_factor_rec AS_OPPORTUNITY_PUB.Decision_Factor_Rec_Type;
50 l_decision_factor_tbl AS_OPPORTUNITY_PUB.Decision_Factor_Tbl_Type;
51 l_count CONSTANT NUMBER := P_decision_factor_tbl.count;
52 l_access_profile_rec AS_ACCESS_PUB.Access_Profile_Rec_Type;
53 l_update_access_flag VARCHAR2(1);
54 l_lead_id NUMBER;
55 l_curr_row NUMBER;
56 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
57 l_module CONSTANT VARCHAR2(255) := 'as.plsql.dfpv.Create_decision_factors';
58
59 BEGIN
60 -- Debug Message
61 IF l_debug THEN
62 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API1: ' || l_api_name || 'start');
63 END IF;
64
65
66
67 -- Standard Start of API savepoint
68 SAVEPOINT CREATE_DECISION_FACTOR_PVT;
69
70 -- Standard call to check for call compatibility.
71 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
72 p_api_version_number,
73 l_api_name,
74 G_PKG_NAME)
75 THEN
76 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
77 END IF;
78
79
80 -- Initialize message list if p_init_msg_list is set to TRUE.
81 IF FND_API.to_Boolean( p_init_msg_list )
82 THEN
83 FND_MSG_PUB.initialize;
84 END IF;
85
86
87 -- Debug Message
88 IF l_debug THEN
89 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API2: ' || l_api_name || 'start');
90 END IF;
91
92
93
94 -- Initialize API return status to SUCCESS
95 x_return_status := FND_API.G_RET_STS_SUCCESS;
96
97 --
98 -- API body
99 --
100 -- ******************************************************************
101 -- Validate Environment
102 -- ******************************************************************
103 IF FND_GLOBAL.User_Id IS NULL
104 THEN
105 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
106 THEN
107 FND_MESSAGE.Set_Name('AS', 'UT_CANNOT_GET_PROFILE_VALUE');
108 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
109 FND_MSG_PUB.ADD;
110 END IF;
111 RAISE FND_API.G_EXC_ERROR;
112 END IF;
113
114
115 IF p_validation_level = FND_API.G_VALID_LEVEL_FULL
116 THEN
117 AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
118 p_api_version_number => 2.0
119 ,p_init_msg_list => p_init_msg_list
120 ,p_salesforce_id => NULL
121 ,p_admin_group_id => p_admin_group_id
122 ,x_return_status => x_return_status
123 ,x_msg_count => x_msg_count
124 ,x_msg_data => x_msg_data
125 ,x_sales_member_rec => l_identity_sales_member_rec);
126
127
128 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
129 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
130 IF l_debug THEN
131 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
132 'Private API3: Get_CurrentUser fail');
133 END IF;
134
135 END IF;
136 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
137 END IF;
138
139 END IF;
140
141 -- Debug message
142 IF l_debug THEN
143 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API4: Validate_decision_factor');
144 END IF;
145
146
147 IF(P_Check_Access_Flag = 'Y') THEN
148
149 -- get lead id
150 OPEN G_lead_id(P_decision_factor_tbl(1).LEAD_LINE_ID);
151 FETCH G_lead_id INTO l_lead_id;
152 CLOSE G_lead_id;
153
154 -- Call Get_Access_Profiles to get access_profile_rec
155 AS_OPPORTUNITY_PUB.Get_Access_Profiles(
156 p_profile_tbl => p_profile_tbl,
157 x_access_profile_rec => l_access_profile_rec);
158
159 AS_ACCESS_PUB.has_updateOpportunityAccess
160 ( p_api_version_number => 2.0
161 ,p_init_msg_list => p_init_msg_list
162 ,p_validation_level => p_validation_level
163 ,p_access_profile_rec => l_access_profile_rec
164 ,p_admin_flag => p_admin_flag
165 ,p_admin_group_id => p_admin_group_id
169 ,p_identity_salesforce_id => p_identity_salesforce_id
166 ,p_person_id => l_identity_sales_member_rec.employee_person_id
167 ,p_opportunity_id => l_lead_id
168 ,p_check_access_flag => p_check_access_flag
170 ,p_partner_cont_party_id => p_partner_cont_party_id
171 ,x_return_status => x_return_status
172 ,x_msg_count => x_msg_count
173 ,x_msg_data => x_msg_data
174 ,x_update_access_flag => l_update_access_flag );
175
176 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
177 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
178 IF l_debug THEN
179 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
180 'Private API5: has_updateOpportunityAccess fail');
181 END IF;
182 END IF;
183 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
184 END IF;
185
186 IF (l_update_access_flag <> 'Y') THEN
187 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
188 FND_MESSAGE.Set_Name('AS', 'API_NO_UPDATE_PRIVILEGE');
189 FND_MESSAGE.Set_Token('INFO', 'CUSTOMER_ID,OPPORTUNITY_ID,SALESFORCE_ID', FALSE);
190 FND_MSG_PUB.ADD;
191 END IF;
192 RAISE FND_API.G_EXC_ERROR;
193 ELSE
194 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
195 IF l_debug THEN
196 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
197 'Private API6: has_updateOpportunityAccess succeed');
198 END IF;
199
200 END IF;
201 END IF;
202 END IF;
203
204 -- Hint: Add corresponding Master-Detail business logic here if necessary.
205
206 FOR l_curr_row in 1 .. l_count LOOP
207 l_decision_factor_rec := P_decision_factor_Tbl(l_curr_row);
208
209 -- Invoke validation procedures
210 Validate_decision_factor(
211 p_init_msg_list => FND_API.G_FALSE,
212 p_validation_level => p_validation_level,
213 p_validation_mode => AS_UTILITY_PVT.G_CREATE,
214 P_Decision_Factor_Rec => l_decision_factor_rec,
215 x_return_status => x_return_status,
216 x_msg_count => x_msg_count,
217 x_msg_data => x_msg_data);
218
219 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
220 RAISE FND_API.G_EXC_ERROR;
221 END IF;
222
223
224 -- Debug Message
225 IF l_debug THEN
226 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API7: Calling create table handler');
227 END IF;
228
229 -- Invoke table handler(AS_LEAD_DECISION_FACTORS_PKG.Insert_Row)
230 AS_LEAD_DECISION_FACTORS_PKG.Insert_Row(
231 --px_SECURITY_GROUP_ID => x_SECURITY_GROUP_ID,
232 p_ATTRIBUTE15 => l_Decision_Factor_rec.ATTRIBUTE15,
233 p_ATTRIBUTE14 => l_Decision_Factor_rec.ATTRIBUTE14,
234 p_ATTRIBUTE13 => l_Decision_Factor_rec.ATTRIBUTE13,
235 p_ATTRIBUTE12 => l_Decision_Factor_rec.ATTRIBUTE12,
236 p_ATTRIBUTE11 => l_Decision_Factor_rec.ATTRIBUTE11,
237 p_ATTRIBUTE10 => l_Decision_Factor_rec.ATTRIBUTE10,
238 p_ATTRIBUTE9 => l_Decision_Factor_rec.ATTRIBUTE9,
239 p_ATTRIBUTE8 => l_Decision_Factor_rec.ATTRIBUTE8,
240 p_ATTRIBUTE7 => l_Decision_Factor_rec.ATTRIBUTE7,
241 p_ATTRIBUTE6 => l_Decision_Factor_rec.ATTRIBUTE6,
242 p_ATTRIBUTE5 => l_Decision_Factor_rec.ATTRIBUTE5,
243 p_ATTRIBUTE4 => l_Decision_Factor_rec.ATTRIBUTE4,
244 p_ATTRIBUTE3 => l_Decision_Factor_rec.ATTRIBUTE3,
245 p_ATTRIBUTE2 => l_Decision_Factor_rec.ATTRIBUTE2,
246 p_ATTRIBUTE1 => l_Decision_Factor_rec.ATTRIBUTE1,
247 p_ATTRIBUTE_CATEGORY => l_Decision_Factor_rec.ATTRIBUTE_CATEGORY,
248 p_PROGRAM_UPDATE_DATE => l_Decision_Factor_rec.PROGRAM_UPDATE_DATE,
249 p_PROGRAM_ID => l_Decision_Factor_rec.PROGRAM_ID,
250 p_PROGRAM_APPLICATION_ID => l_Decision_Factor_rec.PROGRAM_APPLICATION_ID,
251 p_REQUEST_ID => l_Decision_Factor_rec.REQUEST_ID,
252 p_DECISION_RANK => l_Decision_Factor_rec.DECISION_RANK,
253 p_DECISION_PRIORITY_CODE => l_Decision_Factor_rec.DECISION_PRIORITY_CODE,
254 p_DECISION_FACTOR_CODE => l_Decision_Factor_rec.DECISION_FACTOR_CODE,
255 px_LEAD_DECISION_FACTOR_ID => l_Decision_Factor_rec.LEAD_DECISION_FACTOR_ID,
256 p_LEAD_LINE_ID => l_Decision_Factor_rec.LEAD_LINE_ID,
257 p_CREATE_BY => FND_GLOBAL.USER_ID,
258 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
259 p_LAST_UPDATE_DATE => SYSDATE,
260 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
261 p_CREATION_DATE => SYSDATE);
262
263 -- Hint: Primary key should be returned.
264 -- x_SECURITY_GROUP_ID := px_SECURITY_GROUP_ID;
265
266 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
267 RAISE FND_API.G_EXC_ERROR;
268 END IF;
269
270 END LOOP;
271 --
272 -- End of API body
273 --
274
275 -- Standard check for p_commit
276 IF FND_API.to_Boolean( p_commit )
277 THEN
278 COMMIT WORK;
282 -- Debug Message
279 END IF;
280
281
283 IF l_debug THEN
284 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API8: ' || l_api_name || 'end');
285 END IF;
286
287
288
289 -- Standard call to get message count and if count is 1, get message info.
290 FND_MSG_PUB.Count_And_Get
291 ( p_count => x_msg_count,
292 p_data => x_msg_data
293 );
294
295 EXCEPTION
296
297 WHEN DUP_VAL_ON_INDEX THEN
298 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
299 THEN
300 --FND_MESSAGE.Set_Name('AS', 'API_DUP_DECIS_FACTOR_CODE');
301 --FND_MSG_PUB.ADD;
302 AS_UTILITY_PVT.Set_Message(
303 p_module => l_module,
304 p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
305 p_msg_name => 'API_DUP_DECIS_FACTOR_CODE',
306 p_token1 => 'VALUE',
307 p_token1_value => l_Decision_Factor_rec.DECISION_FACTOR_CODE);
308
309 END IF;
310
311 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
312 P_MODULE => l_module
313 ,P_API_NAME => L_API_NAME
314 ,P_PKG_NAME => G_PKG_NAME
315 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
316 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
317 ,X_MSG_COUNT => X_MSG_COUNT
318 ,X_MSG_DATA => X_MSG_DATA
319 ,X_RETURN_STATUS => X_RETURN_STATUS);
320
321
322
323 WHEN FND_API.G_EXC_ERROR THEN
324 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
325 P_MODULE => l_module
326 ,P_API_NAME => L_API_NAME
327 ,P_PKG_NAME => G_PKG_NAME
328 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
329 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
330 ,X_MSG_COUNT => X_MSG_COUNT
331 ,X_MSG_DATA => X_MSG_DATA
332 ,X_RETURN_STATUS => X_RETURN_STATUS);
333
334 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
335 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
336 P_MODULE => l_module
337 ,P_API_NAME => L_API_NAME
338 ,P_PKG_NAME => G_PKG_NAME
339 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
340 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
341 ,X_MSG_COUNT => X_MSG_COUNT
342 ,X_MSG_DATA => X_MSG_DATA
343 ,X_RETURN_STATUS => X_RETURN_STATUS);
344
345 WHEN OTHERS THEN
346 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
347 P_MODULE => l_module
348 ,P_API_NAME => L_API_NAME
349 ,P_PKG_NAME => G_PKG_NAME
350 ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
351 ,P_SQLCODE => SQLCODE
352 ,P_SQLERRM => SQLERRM
353 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
354 ,X_MSG_COUNT => X_MSG_COUNT
355 ,X_MSG_DATA => X_MSG_DATA
356 ,X_RETURN_STATUS => X_RETURN_STATUS);
357 End Create_decision_factors;
358
359
360 -- Hint: Add corresponding update detail table procedures if it's master-detail relationship.
361
362 PROCEDURE Update_decision_factors(
363 P_Api_Version_Number IN NUMBER,
364 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
365 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
366 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
367 P_Check_Access_Flag IN VARCHAR2 := FND_API.G_FALSE,
368 P_Admin_Flag IN VARCHAR2 := FND_API.G_FALSE,
369 P_Admin_Group_Id IN NUMBER,
370 P_Identity_Salesforce_Id IN NUMBER,
371 P_profile_tbl IN AS_UTILITY_PUB.PROFILE_TBL_TYPE,
372 P_Partner_Cont_Party_id IN NUMBER := FND_API.G_MISS_NUM,
373 P_decision_factor_Tbl IN As_Opportunity_Pub.Decision_Factor_Tbl_Type,
374 X_decision_factor_out_tbl OUT NOCOPY as_opportunity_pub.decision_factor_out_tbl_type,
375 X_Return_Status OUT NOCOPY VARCHAR2,
376 X_Msg_Count OUT NOCOPY NUMBER,
377 X_Msg_Data OUT NOCOPY VARCHAR2
378 )
379
380 IS
381 CURSOR G_lead_id(p_lead_line_id NUMBER) IS
382 SELECT lead_id
383 FROM as_lead_lines_all
384 WHERE lead_line_id = p_lead_line_id;
385
386 l_Decision_Factor_Rec AS_OPPORTUNITY_PUB.Decision_Factor_Rec_Type;
387 l_Decision_Factor_Tbl AS_OPPORTUNITY_PUB.Decision_Factor_Tbl_Type;
388
389 l_api_name CONSTANT VARCHAR2(30) := 'Update_decision_factor';
390 l_api_version_number CONSTANT NUMBER := 2.0;
391 -- Local Variables
392 l_identity_sales_member_rec AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
393 --l_ref_Decision_Factor_rec AS_decision_factor_PVT.Decision_Factor_Rec_Type;
394 --l_tar_Decision_Factor_rec AS_decision_factor_PVT.Decision_Factor_Rec_Type := P_Decision_Factor_Rec;
395 l_rowid ROWID;
396 l_return_status_full VARCHAR2(1);
397 l_access_flag VARCHAR2(1);
398 l_count CONSTANT NUMBER := P_decision_factor_tbl.count;
399 l_curr_row NUMBER;
400 l_access_profile_rec AS_ACCESS_PUB.Access_Profile_Rec_Type;
401 l_update_access_flag VARCHAR2(1);
402 l_lead_id NUMBER;
403 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
404 l_module CONSTANT VARCHAR2(255) := 'as.plsql.dfpv.Update_decision_factors';
405
406 BEGIN
410 -- Standard call to check for call compatibility.
407 -- Standard Start of API savepoint
408 SAVEPOINT UPDATE_DECISION_FACTOR_PVT;
409
411 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
412 p_api_version_number,
413 l_api_name,
414 G_PKG_NAME)
415 THEN
416 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
417 END IF;
418
419 -- Initialize message list if p_init_msg_list is set to TRUE.
420 IF FND_API.to_Boolean( p_init_msg_list )
421 THEN
422 FND_MSG_PUB.initialize;
423 END IF;
424
425
426 -- Debug Message
427 IF l_debug THEN
428 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API9: ' || l_api_name || 'start');
429 END IF;
430
431
432 -- Initialize API return status to SUCCESS
433 x_return_status := FND_API.G_RET_STS_SUCCESS;
434
435 --
436 -- Api body
437 --
438
439 IF p_validation_level = FND_API.G_VALID_LEVEL_FULL
440 THEN
441 AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
442 p_api_version_number => 2.0
443 ,p_init_msg_list => p_init_msg_list
444 ,p_salesforce_id => NULL
445 ,p_admin_group_id => p_admin_group_id
446 ,x_return_status => x_return_status
447 ,x_msg_count => x_msg_count
448 ,x_msg_data => x_msg_data
449 ,x_sales_member_rec => l_identity_sales_member_rec);
450
451
452 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
453 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
454 IF l_debug THEN
455 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
456 'Private API10: Get_CurrentUser fail');
457 END IF;
458
459 END IF;
460 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
461 END IF;
462
463 END IF;
464
465 IF(P_Check_Access_Flag = 'Y') THEN
466 -- get lead id
467 OPEN G_lead_id(P_decision_factor_tbl(1).LEAD_LINE_ID);
468 FETCH G_lead_id INTO l_lead_id;
469 CLOSE G_lead_id;
470
471 -- Call Get_Access_Profiles to get access_profile_rec
472 AS_OPPORTUNITY_PUB.Get_Access_Profiles(
473 p_profile_tbl => p_profile_tbl,
474 x_access_profile_rec => l_access_profile_rec);
475
476 AS_ACCESS_PUB.has_updateOpportunityAccess
477 ( p_api_version_number => 2.0
478 ,p_init_msg_list => p_init_msg_list
479 ,p_validation_level => p_validation_level
480 ,p_access_profile_rec => l_access_profile_rec
481 ,p_admin_flag => p_admin_flag
482 ,p_admin_group_id => p_admin_group_id
483 ,p_person_id => l_identity_sales_member_rec.employee_person_id
484 ,p_opportunity_id => l_lead_id
485 ,p_check_access_flag => p_check_access_flag
486 ,p_identity_salesforce_id => p_identity_salesforce_id
487 ,p_partner_cont_party_id => p_partner_cont_party_id
488 ,x_return_status => x_return_status
489 ,x_msg_count => x_msg_count
490 ,x_msg_data => x_msg_data
491 ,x_update_access_flag => l_update_access_flag );
492
493 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
494 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
495 IF l_debug THEN
496 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
497 'Private API11: has_updateOpportunityAccess fail');
498 END IF;
499
500 END IF;
501 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
502 END IF;
503
504 IF (l_update_access_flag <> 'Y') THEN
505 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
506 FND_MESSAGE.Set_Name('AS', 'API_NO_UPDATE_PRIVILEGE');
507 FND_MESSAGE.Set_Token('INFO', 'CUSTOMER_ID,OPPORTUNITY_ID,SALESFORCE_ID', FALSE);
508 FND_MSG_PUB.ADD;
509 END IF;
510 RAISE FND_API.G_EXC_ERROR;
511 ELSE
512 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
513 IF l_debug THEN
514 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
515 'Private API12: has_updateOpportunityAccess succeed');
516 END IF;
517
518 END IF;
519 END IF;
520 END IF;
521
522
523
524 -- Hint: Add corresponding Master-Detail business logic here if necessary.
525
526 -- Debug Message
527 IF l_debug THEN
528 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API13: Calling update table handler');
529 END IF;
530
531
532 -- Invoke validation procedures
533 FOR l_curr_row in 1 .. l_count LOOP
534 l_decision_factor_rec := P_decision_factor_Tbl(l_curr_row);
535
536 Validate_decision_factor(
537 p_init_msg_list => FND_API.G_FALSE,
538 p_validation_level => p_validation_level,
539 p_validation_mode => AS_UTILITY_PVT.G_UPDATE,
540 P_Decision_Factor_Rec => l_Decision_Factor_Rec,
541 x_return_status => x_return_status,
542 x_msg_count => x_msg_count,
546 RAISE FND_API.G_EXC_ERROR;
543 x_msg_data => x_msg_data);
544
545 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
547 END IF;
548
549
550 -- Invoke table handler(AS_LEAD_DECISION_FACTORS_PKG.Update_Row)
551 AS_LEAD_DECISION_FACTORS_PKG.Update_Row(
552 p_ATTRIBUTE15 => l_Decision_Factor_rec.ATTRIBUTE15,
553 p_ATTRIBUTE14 => l_Decision_Factor_rec.ATTRIBUTE14,
554 p_ATTRIBUTE13 => l_Decision_Factor_rec.ATTRIBUTE13,
555 p_ATTRIBUTE12 => l_Decision_Factor_rec.ATTRIBUTE12,
556 p_ATTRIBUTE11 => l_Decision_Factor_rec.ATTRIBUTE11,
557 p_ATTRIBUTE10 => l_Decision_Factor_rec.ATTRIBUTE10,
558 p_ATTRIBUTE9 => l_Decision_Factor_rec.ATTRIBUTE9,
559 p_ATTRIBUTE8 => l_Decision_Factor_rec.ATTRIBUTE8,
560 p_ATTRIBUTE7 => l_Decision_Factor_rec.ATTRIBUTE7,
561 p_ATTRIBUTE6 => l_Decision_Factor_rec.ATTRIBUTE6,
562 p_ATTRIBUTE5 => l_Decision_Factor_rec.ATTRIBUTE5,
563 p_ATTRIBUTE4 => l_Decision_Factor_rec.ATTRIBUTE4,
564 p_ATTRIBUTE3 => l_Decision_Factor_rec.ATTRIBUTE3,
565 p_ATTRIBUTE2 => l_Decision_Factor_rec.ATTRIBUTE2,
566 p_ATTRIBUTE1 => l_Decision_Factor_rec.ATTRIBUTE1,
567 p_ATTRIBUTE_CATEGORY => l_Decision_Factor_rec.ATTRIBUTE_CATEGORY,
568 p_PROGRAM_UPDATE_DATE => l_Decision_Factor_rec.PROGRAM_UPDATE_DATE,
569 p_PROGRAM_ID => l_Decision_Factor_rec.PROGRAM_ID,
570 p_PROGRAM_APPLICATION_ID => l_Decision_Factor_rec.PROGRAM_APPLICATION_ID,
571 p_REQUEST_ID => l_Decision_Factor_rec.REQUEST_ID,
572 p_DECISION_RANK => l_Decision_Factor_rec.DECISION_RANK,
573 p_DECISION_PRIORITY_CODE => l_Decision_Factor_rec.DECISION_PRIORITY_CODE,
574 p_DECISION_FACTOR_CODE => l_Decision_Factor_rec.DECISION_FACTOR_CODE,
575 p_LEAD_DECISION_FACTOR_ID => l_Decision_Factor_rec.LEAD_DECISION_FACTOR_ID,
576 p_LEAD_LINE_ID => l_Decision_Factor_rec.LEAD_LINE_ID,
577 p_CREATE_BY => l_Decision_Factor_rec.CREATE_BY,
578 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
579 p_LAST_UPDATE_DATE => SYSDATE,
580 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
581 p_CREATION_DATE => l_Decision_Factor_rec.CREATION_DATE);
582
583 END LOOP;
584
585 --
586 -- End of API body.
587 --
588
589 -- Standard check for p_commit
590 IF FND_API.to_Boolean( p_commit )
591 THEN
592 COMMIT WORK;
593 END IF;
594
595
596 -- Debug Message
597 IF l_debug THEN
598 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API14: ' || l_api_name || 'end');
599 END IF;
600
601
602
603 -- Standard call to get message count and if count is 1, get message info.
604 FND_MSG_PUB.Count_And_Get
605 ( p_count => x_msg_count,
606 p_data => x_msg_data
607 );
608
609 EXCEPTION
610
611 WHEN DUP_VAL_ON_INDEX THEN
612 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
613 THEN
614 --FND_MESSAGE.Set_Name('AS', 'API_DUP_DECIS_FACTOR_CODE');
615 --FND_MSG_PUB.ADD;
616 AS_UTILITY_PVT.Set_Message(
617 p_module => l_module,
618 p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
622
619 p_msg_name => 'API_DUP_DECIS_FACTOR_CODE',
620 p_token1 => 'VALUE',
621 p_token1_value => l_Decision_Factor_rec.DECISION_FACTOR_CODE);
623 END IF;
624
625 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
626 P_MODULE => l_module
627 ,P_API_NAME => L_API_NAME
628 ,P_PKG_NAME => G_PKG_NAME
629 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
630 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
631 ,X_MSG_COUNT => X_MSG_COUNT
632 ,X_MSG_DATA => X_MSG_DATA
633 ,X_RETURN_STATUS => X_RETURN_STATUS);
634
635
636 WHEN FND_API.G_EXC_ERROR THEN
637 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
638 P_MODULE => l_module
639 ,P_API_NAME => L_API_NAME
640 ,P_PKG_NAME => G_PKG_NAME
641 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
642 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
646
643 ,X_MSG_COUNT => X_MSG_COUNT
644 ,X_MSG_DATA => X_MSG_DATA
645 ,X_RETURN_STATUS => X_RETURN_STATUS);
647 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
648 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
649 P_MODULE => l_module
650 ,P_API_NAME => L_API_NAME
651 ,P_PKG_NAME => G_PKG_NAME
652 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
653 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
654 ,X_MSG_COUNT => X_MSG_COUNT
655 ,X_MSG_DATA => X_MSG_DATA
656 ,X_RETURN_STATUS => X_RETURN_STATUS);
657
658 WHEN OTHERS THEN
659 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
660 P_MODULE => l_module
661 ,P_API_NAME => L_API_NAME
662 ,P_PKG_NAME => G_PKG_NAME
663 ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
664 ,P_SQLCODE => SQLCODE
665 ,P_SQLERRM => SQLERRM
666 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
667 ,X_MSG_COUNT => X_MSG_COUNT
668 ,X_MSG_DATA => X_MSG_DATA
669 ,X_RETURN_STATUS => X_RETURN_STATUS);
670 End Update_decision_factors;
671
672 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
673 -- The Master delete procedure may not be needed depends on different business requirements.
674
675 PROCEDURE Delete_decision_factors(
676 P_Api_Version_Number IN NUMBER,
677 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
678 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
679 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
680 P_Check_Access_Flag IN VARCHAR2 := FND_API.G_FALSE,
681 P_Admin_Flag IN VARCHAR2 := FND_API.G_FALSE,
682 P_Admin_Group_Id IN NUMBER,
683 P_identity_salesforce_id IN NUMBER := NULL,
684 P_profile_tbl IN AS_UTILITY_PUB.PROFILE_TBL_TYPE,
685 P_Partner_Cont_Party_id IN NUMBER := FND_API.G_MISS_NUM,
686 P_decision_factor_Tbl IN As_Opportunity_Pub.Decision_Factor_Tbl_Type,
687 X_decision_factor_out_tbl OUT NOCOPY as_opportunity_pub.decision_factor_out_tbl_type,
688 X_Return_Status OUT NOCOPY VARCHAR2,
689 X_Msg_Count OUT NOCOPY NUMBER,
690 X_Msg_Data OUT NOCOPY VARCHAR2
691 )
692 IS
693 CURSOR G_lead_id(p_lead_line_id NUMBER) IS
694 SELECT lead_id
695 FROM as_lead_lines_all
696 WHERE lead_line_id = p_lead_line_id;
697 l_api_name CONSTANT VARCHAR2(30) := 'Delete_decision_factor';
698 l_api_version_number CONSTANT NUMBER := 2.0;
699 l_identity_sales_member_rec AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
700 l_Decision_Factor_Rec AS_OPPORTUNITY_PUB.Decision_Factor_Rec_Type;
701 l_Decision_Factor_Tbl AS_OPPORTUNITY_PUB.Decision_Factor_Tbl_Type;
702 l_rowid ROWID;
703 l_return_status_full VARCHAR2(1);
704 l_access_flag VARCHAR2(1);
705 l_count CONSTANT NUMBER := P_decision_factor_tbl.count;
706 l_curr_row NUMBER;
707 l_access_profile_rec AS_ACCESS_PUB.Access_Profile_Rec_Type;
708 l_update_access_flag VARCHAR2(1);
709 l_lead_id NUMBER;
710 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
711 l_module CONSTANT VARCHAR2(255) := 'as.plsql.dfpv.Delete_decision_factors';
712
713 BEGIN
714 -- Standard Start of API savepoint
715 SAVEPOINT DELETE_DECISION_FACTOR_PVT;
716
717 -- Standard call to check for call compatibility.
718 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
719 p_api_version_number,
720 l_api_name,
721 G_PKG_NAME)
722 THEN
723 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
724 END IF;
725
726 -- Initialize message list if p_init_msg_list is set to TRUE.
727 IF FND_API.to_Boolean( p_init_msg_list )
728 THEN
729 FND_MSG_PUB.initialize;
730 END IF;
731
732
733 -- Debug Message
734 IF l_debug THEN
735 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API15: ' || l_api_name || 'start');
736 END IF;
737
738
739
740 -- Initialize API return status to SUCCESS
741 x_return_status := FND_API.G_RET_STS_SUCCESS;
742
743 --
744 -- Api body
745 --
746 IF p_validation_level = FND_API.G_VALID_LEVEL_FULL
747 THEN
748 AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
749 p_api_version_number => 2.0
750 ,p_init_msg_list => p_init_msg_list
751 ,p_salesforce_id => NULL
752 ,p_admin_group_id => p_admin_group_id
753 ,x_return_status => x_return_status
754 ,x_msg_count => x_msg_count
755 ,x_msg_data => x_msg_data
756 ,x_sales_member_rec => l_identity_sales_member_rec);
757
758
759 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
760 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
761 IF l_debug THEN
762 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
763 'Private API16: Get_CurrentUser fail');
764 END IF;
765
766 END IF;
770 END IF;
767 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
768 END IF;
769
771
772 IF(P_Check_Access_Flag = 'Y') THEN
773 -- get lead id
774 OPEN G_lead_id(P_decision_factor_tbl(1).LEAD_LINE_ID);
775 FETCH G_lead_id INTO l_lead_id;
776 CLOSE G_lead_id;
777
778 -- Call Get_Access_Profiles to get access_profile_rec
779 AS_OPPORTUNITY_PUB.Get_Access_Profiles(
780 p_profile_tbl => p_profile_tbl,
781 x_access_profile_rec => l_access_profile_rec);
782
783 AS_ACCESS_PUB.has_updateOpportunityAccess
784 ( p_api_version_number => 2.0
785 ,p_init_msg_list => p_init_msg_list
786 ,p_validation_level => p_validation_level
787 ,p_access_profile_rec => l_access_profile_rec
788 ,p_admin_flag => p_admin_flag
789 ,p_admin_group_id => p_admin_group_id
790 ,p_person_id => l_identity_sales_member_rec.employee_person_id
791 ,p_opportunity_id => l_lead_id
792 ,p_check_access_flag => p_check_access_flag
793 ,p_identity_salesforce_id => p_identity_salesforce_id
794 ,p_partner_cont_party_id => p_partner_cont_party_id
795 ,x_return_status => x_return_status
796 ,x_msg_count => x_msg_count
797 ,x_msg_data => x_msg_data
798 ,x_update_access_flag => l_update_access_flag );
799
800 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
801 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
802 IF l_debug THEN
803 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
804 'Private API17: has_updateOpportunityAccess fail');
805 END IF;
806
807 END IF;
808 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
809 END IF;
810
811 IF (l_update_access_flag <> 'Y') THEN
812 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
813 FND_MESSAGE.Set_Name('AS', 'API_NO_UPDATE_PRIVILEGE');
814 FND_MESSAGE.Set_Token('INFO', 'CUSTOMER_ID,OPPORTUNITY_ID,SALESFORCE_ID', FALSE);
815 FND_MSG_PUB.ADD;
816 END IF;
817 RAISE FND_API.G_EXC_ERROR;
818 ELSE
819 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
820 IF l_debug THEN
821 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
822 'Private API18: has_updateOpportunityAccess succeed');
823 END IF;
824
825 END IF;
826 END IF;
827 END IF;
828
829
830 -- Debug Message
831 IF l_debug THEN
832 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API19: Calling delete table handler');
833 END IF;
834
835
836 FOR l_curr_row in 1 .. l_count LOOP
837 l_decision_factor_rec := P_decision_factor_Tbl(l_curr_row);
838 -- Invoke table handler(AS_LEAD_DECISION_FACTORS_PKG.Delete_Row)
839 AS_LEAD_DECISION_FACTORS_PKG.Delete_Row(
840 p_LEAD_DECISION_FACTOR_ID => l_Decision_Factor_rec.LEAD_DECISION_FACTOR_ID);
841
842 END LOOP;
843
844 --
845 -- End of API body
846 --
847
848 -- Standard check for p_commit
849 IF FND_API.to_Boolean( p_commit )
850 THEN
851 COMMIT WORK;
852 END IF;
853
854
855 -- Debug Message
856 IF l_debug THEN
857 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API20: ' || l_api_name || 'end');
858 END IF;
859
860
861
862 -- Standard call to get message count and if count is 1, get message info.
863 FND_MSG_PUB.Count_And_Get
864 ( p_count => x_msg_count,
865 p_data => x_msg_data
866 );
867
868 EXCEPTION
869 WHEN FND_API.G_EXC_ERROR THEN
870 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
871 P_MODULE => l_module
872 ,P_API_NAME => L_API_NAME
873 ,P_PKG_NAME => G_PKG_NAME
874 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
875 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
876 ,X_MSG_COUNT => X_MSG_COUNT
877 ,X_MSG_DATA => X_MSG_DATA
878 ,X_RETURN_STATUS => X_RETURN_STATUS);
879
880 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
884 ,P_PKG_NAME => G_PKG_NAME
881 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
882 P_MODULE => l_module
883 ,P_API_NAME => L_API_NAME
885 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
886 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
887 ,X_MSG_COUNT => X_MSG_COUNT
888 ,X_MSG_DATA => X_MSG_DATA
889 ,X_RETURN_STATUS => X_RETURN_STATUS);
890
891 WHEN OTHERS THEN
892 AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
893 P_MODULE => l_module
894 ,P_API_NAME => L_API_NAME
895 ,P_PKG_NAME => G_PKG_NAME
896 ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
897 ,P_SQLCODE => SQLCODE
898 ,P_SQLERRM => SQLERRM
899 ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
900 ,X_MSG_COUNT => X_MSG_COUNT
901 ,X_MSG_DATA => X_MSG_DATA
902 ,X_RETURN_STATUS => X_RETURN_STATUS);
903 End Delete_decision_factors;
904
905 -- Item-level validation procedures
906 PROCEDURE Validate_REQUEST_ID (
907 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
908 P_Validation_mode IN VARCHAR2,
909 P_REQUEST_ID IN NUMBER,
910 X_Return_Status OUT NOCOPY VARCHAR2,
911 X_Msg_Count OUT NOCOPY NUMBER,
912 X_Msg_Data OUT NOCOPY VARCHAR2
913 )
914
915 IS
916 BEGIN
917
918 -- Initialize message list if p_init_msg_list is set to TRUE.
919 IF FND_API.to_Boolean( p_init_msg_list )
920 THEN
921 FND_MSG_PUB.initialize;
922 END IF;
923
924
925 -- Initialize API return status to SUCCESS
926 x_return_status := FND_API.G_RET_STS_SUCCESS;
927
928 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
929 THEN
930 -- Hint: Validate data
931 -- IF p_REQUEST_ID is not NULL and p_REQUEST_ID <> G_MISS_CHAR
932 -- verify if data is valid
933 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
934 NULL;
935 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
936 THEN
937 -- Hint: Validate data
938 -- IF p_REQUEST_ID <> G_MISS_CHAR
939 -- verify if data is valid
940 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
941 NULL;
942 END IF;
943
944 -- Standard call to get message count and if count is 1, get message info.
945 FND_MSG_PUB.Count_And_Get
946 ( p_count => x_msg_count,
947 p_data => x_msg_data
948 );
949
950 END Validate_REQUEST_ID;
951
952
953 PROCEDURE Validate_DECISION_RANK (
954 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
955 P_Validation_mode IN VARCHAR2,
956 P_DECISION_RANK IN NUMBER,
957 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
958 X_Return_Status OUT NOCOPY VARCHAR2,
962 IS
959 X_Msg_Count OUT NOCOPY NUMBER,
960 X_Msg_Data OUT NOCOPY VARCHAR2
961 )
963 BEGIN
964
965 -- Initialize message list if p_init_msg_list is set to TRUE.
966 IF FND_API.to_Boolean( p_init_msg_list )
967 THEN
968 FND_MSG_PUB.initialize;
969 END IF;
970
971
972 -- Initialize API return status to SUCCESS
973 x_return_status := FND_API.G_RET_STS_SUCCESS;
974
975 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
976 THEN
977 -- Hint: Validate data
978 -- IF p_DECISION_RANK is not NULL and p_DECISION_RANK <> G_MISS_CHAR
979 -- verify if data is valid
980 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
981 NULL;
982 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
983 THEN
984 -- Hint: Validate data
985 -- IF p_DECISION_RANK <> G_MISS_CHAR
986 -- verify if data is valid
987 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
988 NULL;
989 END IF;
990
991 -- Standard call to get message count and if count is 1, get message info.
992 FND_MSG_PUB.Count_And_Get
993 ( p_count => x_msg_count,
994 p_data => x_msg_data
995 );
996
997 END Validate_DECISION_RANK;
998
999
1000 PROCEDURE Validate_DECISION_PRIOR_CODE (
1001 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1002 P_Validation_mode IN VARCHAR2,
1003 P_DECISION_PRIORITY_CODE IN VARCHAR2,
1004 -- Hint: You may add 'X_Item_Property_Rec OUT AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1005 X_Return_Status OUT NOCOPY VARCHAR2,
1006 X_Msg_Count OUT NOCOPY NUMBER,
1007 X_Msg_Data OUT NOCOPY VARCHAR2
1008 )
1009 IS
1010 CURSOR C_Decis_Prior_Code_Exists (c_Decision_Priority_Code VARCHAR2) IS
1011 SELECT 'X'
1012 FROM AS_LOOKUPS
1013 WHERE LOOKUP_TYPE = 'DECISION_PRIORITY_TYPE'
1014 AND LOOKUP_CODE = c_Decision_Priority_Code;
1015 l_val VARCHAR2(1);
1016 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
1017 l_module CONSTANT VARCHAR2(255) := 'as.plsql.dfpv.Validate_DECISION_PRIOR_CODE';
1018 BEGIN
1019 -- Initialize message list if p_init_msg_list is set to TRUE.
1020 IF FND_API.to_Boolean( p_init_msg_list )
1021 THEN
1022 FND_MSG_PUB.initialize;
1023 END IF;
1024
1025 -- Initialize API return status to SUCCESS
1026 x_return_status := FND_API.G_RET_STS_SUCCESS;
1027
1028 IF (P_DECISION_PRIORITY_CODE is NOT NULL) and (P_DECISION_PRIORITY_CODE <> FND_API.G_MISS_CHAR)
1029 THEN
1030 OPEN C_Decis_Prior_Code_Exists (P_DECISION_PRIORITY_CODE);
1031 FETCH C_Decis_Prior_Code_Exists into l_val;
1032 IF C_Decis_Prior_Code_Exists%NOTFOUND
1033 THEN
1034 IF l_debug THEN
1035 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1036 'Private API21: DECISION_PRIORITY_CODE is not valid:' ||P_DECISION_PRIORITY_CODE);
1037 END IF;
1038
1039
1040 AS_UTILITY_PVT.Set_Message(
1041 p_module => l_module,
1042 p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
1043 p_msg_name => 'API_INVALID_DECISION_PRIORITY',
1044 p_token1 => 'COLUMN',
1045 p_token1_value => 'DECISION_PRIORITY_CODE',
1046 p_token2 => 'VALUE',
1047 p_token2_value => P_DECISION_PRIORITY_CODE );
1048
1049 x_return_status := FND_API.G_RET_STS_ERROR;
1050 END IF;
1051 CLOSE C_Decis_Prior_Code_Exists;
1052 END IF;
1053
1054
1055 FND_MSG_PUB.Count_And_Get
1056 ( p_count => x_msg_count,
1057 p_data => x_msg_data
1058 );
1059
1060 END Validate_DECISION_PRIOR_CODE;
1061
1062
1063 PROCEDURE Validate_DECISION_FACTOR_CODE (
1064 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1065 P_Validation_mode IN VARCHAR2,
1066 P_DECISION_FACTOR_CODE IN VARCHAR2,
1067 P_LEAD_LINE_ID IN NUMBER,
1068 -- Hint: You may add 'X_Item_Property_Rec OUT AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1069 X_Return_Status OUT NOCOPY VARCHAR2,
1070 X_Msg_Count OUT NOCOPY NUMBER,
1071 X_Msg_Data OUT NOCOPY VARCHAR2
1072 )
1073 IS
1074
1075 CURSOR C_Decis_Factor_Code_Exists (c_Decision_Factor_Code VARCHAR2) IS
1076 SELECT 'X'
1077 FROM AS_LOOKUPS
1078 WHERE LOOKUP_TYPE = 'DECISION_FACTOR_TYPE'
1079 AND LOOKUP_CODE = c_Decision_Factor_Code;
1080 l_val VARCHAR2(1);
1081
1082 CURSOR C_D_Decis_Factor_Code_Exists (c_Lead_Line_Id NUMBER) IS
1083 SELECT 'X'
1084 FROM AS_LEAD_DECISION_FACTORS
1085 WHERE LEAD_LINE_ID = c_Lead_Line_Id;
1086
1087 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
1088 l_module CONSTANT VARCHAR2(255) := 'as.plsql.dfpv.Validate_DECISION_FACTOR_CODE';
1089 BEGIN
1090 -- Initialize message list if p_init_msg_list is set to TRUE.
1091 IF FND_API.to_Boolean( p_init_msg_list )
1092 THEN
1096 -- Initialize API return status to SUCCESS
1093 FND_MSG_PUB.initialize;
1094 END IF;
1095
1097 x_return_status := FND_API.G_RET_STS_SUCCESS;
1098
1099 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE) OR (p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1100 THEN
1101
1102 -- OPEN C_D_Decis_Factor_Code_Exists (P_LEAD_LINE_ID);
1103 -- FETCH C_D_Decis_Factor_Code_Exists into l_val;
1104 -- IF C_D_Decis_Factor_Code_Exists%FOUND THEN
1105 -- AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1106 -- 'Private API24: DECISION_FACTOR_CODE exist');
1107
1108 --AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_ERROR,
1109 -- 'Duplicate DECISION_FACTOR_CODE ');
1110
1111 -- AS_UTILITY_PVT.Set_Message(
1112 -- p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
1113 -- p_msg_name => 'API_DUP_DECIS_FACTOR_CODE',
1114 --p_token1 => 'COLUMN',
1115 --p_token1_value => '',
1116 -- p_token1 => 'VALUE',
1117 -- p_token1_value => P_DECISION_FACTOR_CODE );
1118
1119 -- x_return_status := FND_API.G_RET_STS_ERROR;
1120 -- END IF;
1121 -- CLOSE C_D_Decis_Factor_Code_Exists ;
1122
1123
1124
1125 IF (P_DECISION_FACTOR_CODE is NULL) or (P_DECISION_FACTOR_CODE = FND_API.G_MISS_CHAR)
1126 THEN
1127 IF l_debug THEN
1128 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1129 'Private API22: Violate NOT NULL constraint(DECISION_FACTOR_CODE)');
1130 END IF;
1131
1132
1133 AS_UTILITY_PVT.Set_Message(
1134 p_module => l_module,
1135 p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
1136 p_msg_name => 'API_MISSING_ID',
1137 p_token1 => 'COLUMN',
1138 p_token1_value => 'DECISION_FACTOR_CODE');
1139
1140 x_return_status := FND_API.G_RET_STS_ERROR;
1141 ELSE
1142 OPEN C_Decis_Factor_Code_Exists (P_DECISION_FACTOR_CODE);
1143 FETCH C_Decis_Factor_Code_Exists into l_val;
1144 IF C_Decis_Factor_Code_Exists%NOTFOUND
1145 THEN
1146 IF l_debug THEN
1147 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1148 'Private API23: DECISION_FACTOR_CODE is not valid:' ||
1149 P_DECISION_FACTOR_CODE);
1150 END IF;
1151
1152
1153 AS_UTILITY_PVT.Set_Message(
1154 p_module => l_module,
1155 p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
1156 p_msg_name => 'API_INVALID_DECISION_FACTOR',
1157 p_token1 => 'COLUMN',
1158 p_token1_value => 'DECISION_FACTOR_CODE',
1159 p_token2 => 'VALUE',
1160 p_token2_value => P_DECISION_FACTOR_CODE );
1161
1162 x_return_status := FND_API.G_RET_STS_ERROR;
1163 END IF;
1164 CLOSE C_Decis_Factor_Code_Exists;
1165 END IF;
1166 END IF;
1167
1168 -- Standard call to get message count and if count is 1, get message info.
1169 FND_MSG_PUB.Count_And_Get
1170 ( p_count => x_msg_count,
1171 p_data => x_msg_data
1172 );
1173
1174 END Validate_DECISION_FACTOR_CODE;
1175
1176
1177 PROCEDURE Validate_L_DECISION_FACTOR_ID (
1178 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1179 P_Validation_mode IN VARCHAR2,
1180 P_LEAD_DECISION_FACTOR_ID IN NUMBER,
1181 -- Hint: You may add 'X_Item_Property_Rec OUT AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1182 X_Return_Status OUT NOCOPY VARCHAR2,
1183 X_Msg_Count OUT NOCOPY NUMBER,
1184 X_Msg_Data OUT NOCOPY VARCHAR2
1185 )
1186 IS
1187
1188 CURSOR C_L_Decis_Factor_Id_Exists (c_Lead_Decision_Factor_Id NUMBER) IS
1189 SELECT 'X'
1190 FROM AS_LEAD_DECISION_FACTORS
1191 WHERE LEAD_DECISION_FACTOR_ID = c_Lead_DECISION_FACTOR_ID;
1192
1193 l_val VARCHAR2(1);
1194 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
1195 l_module CONSTANT VARCHAR2(255) := 'as.plsql.dfpv.Validate_L_DECISION_FACTOR_ID';
1196
1197 BEGIN
1198
1199 -- Initialize message list if p_init_msg_list is set to TRUE.
1200 IF FND_API.to_Boolean( p_init_msg_list )
1201 THEN
1202 FND_MSG_PUB.initialize;
1203 END IF;
1204
1205 -- Initialize API return status to SUCCESS
1206 x_return_status := FND_API.G_RET_STS_SUCCESS;
1207
1208 -- Calling from Create API
1209 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1210 THEN
1211 IF (P_LEAD_DECISION_FACTOR_ID is NOT NULL) and (p_LEAD_DECISION_FACTOR_ID <> FND_API.G_MISS_NUM)
1212 THEN
1213 OPEN C_L_Decis_Factor_Id_Exists (P_LEAD_DECISION_FACTOR_ID);
1214 FETCH C_L_Decis_Factor_Id_Exists into l_val;
1215 IF C_L_Decis_Factor_Id_Exists%FOUND THEN
1216 IF l_debug THEN
1217 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1218 'Private API24: LEAD_LINE_ID exist');
1219 END IF;
1223 p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
1220
1221 AS_UTILITY_PVT.Set_Message(
1222 p_module => l_module,
1224 p_msg_name => 'API_DUP_DECIS_FACT_ID',
1225 p_token1 => 'COLUMN',
1226 p_token1_value => 'LEAD_DECISION_FACTOR_ID',
1227 p_token2 => 'VALUE',
1228 p_token2_value => P_LEAD_DECISION_FACTOR_ID );
1229
1230 x_return_status := FND_API.G_RET_STS_ERROR;
1231 END IF;
1232 CLOSE C_L_Decis_Factor_Id_Exists;
1233 END IF;
1234
1235 -- Calling from Update API
1236 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1237 THEN
1238 -- validate NOT NULL column
1239 IF (P_LEAD_DECISION_FACTOR_ID is NULL) or (P_LEAD_DECISION_FACTOR_ID = FND_API.G_MISS_NUM)
1240 THEN
1241 IF l_debug THEN
1242 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1243 'Private API25: Violate NOT NULL constraint(LEAD_DECISION_FACTOR_ID)');
1244 END IF;
1245
1246 AS_UTILITY_PVT.Set_Message(
1247 p_module => l_module,
1248 p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
1249 p_msg_name => 'API_MISSING_ID',
1250 p_token1 => 'COLUMN',
1251 p_token1_value => 'LEAD_DECISION_FACTOR_ID');
1252
1253 x_return_status := FND_API.G_RET_STS_ERROR;
1254 ELSE
1255 OPEN C_L_Decis_Factor_Id_Exists (P_Lead_DECISION_FACTOR_ID);
1256 FETCH C_L_Decis_Factor_Id_Exists into l_val;
1257 IF C_L_Decis_Factor_Id_Exists%NOTFOUND
1258 THEN
1259 IF l_debug THEN
1260 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1261 'Private API26: LEAD_DECISION_FACTOR_ID is not valid');
1262 END IF;
1263
1264 AS_UTILITY_PVT.Set_Message(
1265 p_module => l_module,
1266 p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
1267 p_msg_name => 'API_INVALID_DECIS_FACT_ID',
1268 p_token1 => 'COLUMN',
1269 p_token1_value => 'LEAD_DECISION_FACTOR_ID',
1270 p_token2 => 'VALUE',
1271 p_token2_value => P_LEAD_DECISION_FACTOR_ID );
1272
1273 x_return_status := FND_API.G_RET_STS_ERROR;
1274 END IF;
1275 CLOSE C_L_Decis_Factor_Id_Exists;
1276 END IF;
1277
1278 END IF;
1279
1280 -- Standard call to get message count and if count is 1, get message info.
1281 FND_MSG_PUB.Count_And_Get
1282 ( p_count => x_msg_count,
1283 p_data => x_msg_data
1284 );
1285
1286
1287 END Validate_L_DECISION_FACTOR_ID;
1288
1289
1290 PROCEDURE Validate_LEAD_LINE_ID (
1291 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1292 P_Validation_mode IN VARCHAR2,
1293 P_LEAD_LINE_ID IN NUMBER,
1294 -- Hint: You may add 'X_Item_Property_Rec OUT AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1295 X_Return_Status OUT NOCOPY VARCHAR2,
1296 X_Msg_Count OUT NOCOPY NUMBER,
1297 X_Msg_Data OUT NOCOPY VARCHAR2
1298 )
1299 IS
1300
1301 CURSOR C_Lead_Line_Id_Exists (c_Lead_Line_Id NUMBER) IS
1302 SELECT 'X'
1303 FROM AS_LEAD_LINES
1304 WHERE LEAD_LINE_ID = c_Lead_Line_Id;
1305
1306 l_val VARCHAR2(1);
1307 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
1308 l_module CONSTANT VARCHAR2(255) := 'as.plsql.dfpv.Validate_LEAD_LINE_ID';
1309
1310 BEGIN
1311 -- Initialize message list if p_init_msg_list is set to TRUE.
1312 IF FND_API.to_Boolean( p_init_msg_list )
1313 THEN
1314 FND_MSG_PUB.initialize;
1315 END IF;
1316
1317 -- Initialize API return status to SUCCESS
1318 x_return_status := FND_API.G_RET_STS_SUCCESS;
1319
1320 IF (P_LEAD_LINE_ID is NULL) or (P_LEAD_LINE_ID = FND_API.G_MISS_NUM)
1321 THEN
1322 IF l_debug THEN
1323 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1324 'Private API27: Violate NOT NULL constraint(LEAD_LINE_ID)');
1325 END IF;
1326
1327
1328 AS_UTILITY_PVT.Set_Message(
1329 p_module => l_module,
1330 p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
1331 p_msg_name => 'API_MISSING_ID',
1332 p_token1 => 'COLUMN',
1333 p_token1_value => 'LEAD_LINE_ID');
1334
1335 x_return_status := FND_API.G_RET_STS_ERROR;
1336 ELSE
1337 OPEN C_Lead_Line_Id_Exists (P_LEAD_LINE_ID);
1338 FETCH C_Lead_Line_Id_Exists into l_val;
1339 IF C_Lead_Line_Id_Exists%NOTFOUND
1340 THEN
1341 IF l_debug THEN
1342 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1343 'Private API28: LEAD_LEAD_ID is not valid:' ||
1344 P_LEAD_LINE_ID);
1345 END IF;
1346
1347 AS_UTILITY_PVT.Set_Message(
1348 p_module => l_module,
1349 p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
1350 p_msg_name => 'API_INVALID_OPP_LEAD_LINE_ID',
1351 p_token1 => 'COLUMN',
1352 p_token1_value => 'LEAD_LINE_ID',
1356 x_return_status := FND_API.G_RET_STS_ERROR;
1353 p_token2 => 'VALUE',
1354 p_token2_value => P_LEAD_LINE_ID );
1355
1357 END IF;
1358 CLOSE C_Lead_Line_Id_Exists;
1359 END IF;
1360
1361 -- Standard call to get message count and if count is 1, get message info.
1362 FND_MSG_PUB.Count_And_Get
1363 ( p_count => x_msg_count,
1364 p_data => x_msg_data
1365 );
1366
1367 END Validate_LEAD_LINE_ID;
1368
1369
1370 PROCEDURE Validate_CREATE_BY (
1371 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1372 P_Validation_mode IN VARCHAR2,
1373 P_CREATE_BY IN NUMBER,
1374 -- Hint: You may add 'X_Item_Property_Rec OUT AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1375 X_Return_Status OUT NOCOPY VARCHAR2,
1376 X_Msg_Count OUT NOCOPY NUMBER,
1377 X_Msg_Data OUT NOCOPY VARCHAR2
1378 )
1379 IS
1380 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
1381 l_module CONSTANT VARCHAR2(255) := 'as.plsql.dfpv.Validate_CREATE_BY';
1382 BEGIN
1383
1384 -- Initialize message list if p_init_msg_list is set to TRUE.
1385 IF FND_API.to_Boolean( p_init_msg_list )
1386 THEN
1387 FND_MSG_PUB.initialize;
1388 END IF;
1389
1390
1391 -- Initialize API return status to SUCCESS
1392 x_return_status := FND_API.G_RET_STS_SUCCESS;
1393
1394 -- validate NOT NULL column
1395 IF(p_CREATE_BY is NULL)
1396 THEN
1397 IF l_debug THEN
1398 AS_UTILITY_PVT.Debug_Message(l_module, 'ERROR', 'Private decision_factor API: -Violate NOT NULL constraint(CREATE_BY)');
1399 END IF;
1400
1401 x_return_status := FND_API.G_RET_STS_ERROR;
1402 END IF;
1403
1404 IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1405 THEN
1406 -- Hint: Validate data
1407 -- IF p_CREATE_BY is not NULL and p_CREATE_BY <> G_MISS_CHAR
1408 -- verify if data is valid
1409 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1410 NULL;
1411 ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1412 THEN
1413 -- Hint: Validate data
1414 -- IF p_CREATE_BY <> G_MISS_CHAR
1415 -- verify if data is valid
1416 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1417 NULL;
1418 END IF;
1419
1420 -- Standard call to get message count and if count is 1, get message info.
1421 FND_MSG_PUB.Count_And_Get
1422 ( p_count => x_msg_count,
1423 p_data => x_msg_data
1424 );
1425
1426 END Validate_CREATE_BY;
1427
1428
1429 -- Hint: inter-field level validation can be added here.
1430 -- Hint: If p_validation_mode = AS_UTILITY_PVT.G_VALIDATE_UPDATE, we should use cursor
1431 -- to get old values for all fields used in inter-field validation and set all G_MISS_XXX fields to original value
1432 -- stored in database table.
1433 PROCEDURE Validate_Decision_Factor_rec(
1434 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1435 P_Validation_mode IN VARCHAR2,
1436 P_Decision_Factor_Rec IN AS_OPPORTUNITY_PUB.Decision_Factor_Rec_Type,
1437 X_Return_Status OUT NOCOPY VARCHAR2,
1438 X_Msg_Count OUT NOCOPY NUMBER,
1439 X_Msg_Data OUT NOCOPY VARCHAR2
1440 )
1441 IS
1442 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
1443 l_module CONSTANT VARCHAR2(255) := 'as.plsql.dfpv.Validate_Decision_Factor_rec';
1444 BEGIN
1445
1446 -- Initialize message list if p_init_msg_list is set to TRUE.
1447 IF FND_API.to_Boolean( p_init_msg_list )
1448 THEN
1449 FND_MSG_PUB.initialize;
1450 END IF;
1451
1452
1453 -- Initialize API return status to SUCCESS
1454 x_return_status := FND_API.G_RET_STS_SUCCESS;
1455
1456 -- Hint: Validate data
1457 -- If data not valid
1458 -- THEN
1459 -- x_return_status := FND_API.G_RET_STS_ERROR;
1460
1461 -- Debug Message
1462 IF l_debug THEN
1463 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'API_INVALID_RECORD');
1464 END IF;
1465
1466 -- Standard call to get message count and if count is 1, get message info.
1467 FND_MSG_PUB.Count_And_Get
1468 ( p_count => x_msg_count,
1469 p_data => x_msg_data
1470 );
1471
1472 END Validate_Decision_Factor_Rec;
1473
1474 PROCEDURE Validate_decision_factor(
1475 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1476 P_Validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1477 P_Validation_mode IN VARCHAR2,
1478 P_Decision_Factor_Rec IN AS_OPPORTUNITY_PUB.Decision_Factor_Rec_Type,
1479 X_Return_Status OUT NOCOPY VARCHAR2,
1480 X_Msg_Count OUT NOCOPY NUMBER,
1481 X_Msg_Data OUT NOCOPY VARCHAR2
1482 )
1483 IS
1484 l_api_name CONSTANT VARCHAR2(30) := 'Validate_decision_factor';
1485 x_item_property_rec AS_UTILITY_PUB.ITEM_PROPERTY_REC_TYPE;
1486 --x_return_status VARCHAR2(1);
1487 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
1488 l_module CONSTANT VARCHAR2(255) := 'as.plsql.dfpv.Validate_decision_factor';
1489 BEGIN
1490
1491 -- Debug Message
1492 IF l_debug THEN
1496
1493 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API29: ' || l_api_name || 'start');
1494 END IF;
1495
1497
1498 -- Initialize API return status to SUCCESS
1499 x_return_status := FND_API.G_RET_STS_SUCCESS;
1500
1501 IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_ITEM) THEN
1502
1503 Validate_DECISION_PRIOR_CODE(
1504 p_init_msg_list => FND_API.G_FALSE,
1505 p_validation_mode => p_validation_mode,
1506 p_DECISION_PRIORITY_CODE => P_Decision_Factor_Rec.DECISION_PRIORITY_CODE,
1507 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1508 x_return_status => x_return_status,
1509 x_msg_count => x_msg_count,
1510 x_msg_data => x_msg_data);
1511
1512 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1513 raise FND_API.G_EXC_ERROR;
1514 END IF;
1515 IF l_debug THEN
1516 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1517 'Private API30: Validated DECISION_PRIOR_CODE');
1518 END IF;
1519
1520
1521
1522 Validate_DECISION_FACTOR_CODE(
1523 p_init_msg_list => FND_API.G_FALSE,
1524 p_validation_mode => p_validation_mode,
1525 p_DECISION_FACTOR_CODE => P_Decision_Factor_Rec.DECISION_FACTOR_CODE,
1526 p_LEAD_LINE_ID => P_Decision_Factor_Rec.LEAD_LINE_ID,
1527 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1528 x_return_status => x_return_status,
1529 x_msg_count => x_msg_count,
1530 x_msg_data => x_msg_data);
1531
1532 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1533 raise FND_API.G_EXC_ERROR;
1534 END IF;
1535 IF l_debug THEN
1536 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1537 'Private API31: Validated DECISION_FACTOR_CODE');
1538 END IF;
1539
1540
1541 Validate_L_DECISION_FACTOR_ID(
1542 p_init_msg_list => FND_API.G_FALSE,
1543 p_validation_mode => p_validation_mode,
1544 p_LEAD_DECISION_FACTOR_ID => P_Decision_Factor_Rec.LEAD_DECISION_FACTOR_ID,
1545 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1546 x_return_status => x_return_status,
1547 x_msg_count => x_msg_count,
1548 x_msg_data => x_msg_data);
1549
1550 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1551 raise FND_API.G_EXC_ERROR;
1552 END IF;
1553 IF l_debug THEN
1554 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1555 'Private API32: Validated LEAD_DECISION_FACTOR_ID');
1556 END IF;
1557
1558
1559
1560 Validate_LEAD_LINE_ID(
1561 p_init_msg_list => FND_API.G_FALSE,
1562 p_validation_mode => p_validation_mode,
1563 p_LEAD_LINE_ID => P_Decision_Factor_Rec.LEAD_LINE_ID,
1564 -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1565 x_return_status => x_return_status,
1566 x_msg_count => x_msg_count,
1567 x_msg_data => x_msg_data);
1568
1569 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1570 raise FND_API.G_EXC_ERROR;
1571 END IF;
1572
1573 IF l_debug THEN
1574 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1575 'Private API33: Validated LEAD_LINE_ID');
1576 END IF;
1577
1578
1579
1580
1581 END IF;
1582
1583 /*IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_RECORD) THEN
1584 -- Hint: Inter-field level validation can be added here
1585 -- invoke record level validation procedures
1586 Validate_Decision_Factor_Rec(
1587 p_init_msg_list => FND_API.G_FALSE,
1588 p_validation_mode => p_validation_mode,
1589 P_Decision_Factor_Rec => P_Decision_Factor_Rec,
1590 x_return_status => x_return_status,
1591 x_msg_count => x_msg_count,
1592 x_msg_data => x_msg_data);
1593
1594 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1595 raise FND_API.G_EXC_ERROR;
1596 END IF;
1597 END IF;
1598
1599 IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_INTER_RECORD) THEN
1600 -- invoke inter-record level validation procedures
1601 NULL;
1602 END IF;
1603
1604 IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_INTER_ENTITY) THEN
1605 -- invoke inter-entity level validation procedures
1606 NULL;
1607 END IF;
1608 */
1609
1610 -- Debug Message
1611 IF l_debug THEN
1612 AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API34: ' || l_api_name || 'end');
1613 END IF;
1614
1615 END Validate_decision_factor;
1616
1617 End AS_DECISION_FACTOR_PVT;