DBA Data[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;