DBA Data[Home] [Help]

PACKAGE BODY: APPS.OCM_DATA_POINTS_PUB

Source


1 PACKAGE BODY OCM_DATA_POINTS_PUB AS
2 /*$Header: ARCMLDPB.pls 120.2 2006/04/03 17:16:18 bsarkar noship $  */
3 /*#
4 * This API is used for entering User Defined Data Points at the time of
5 * Credit Request Submission
6 * @rep:scope public
7 * @rep:doccd 115ocmug.pdf Credit Management API User Notes, Oracle Credit Management User Guide
8 * @rep:product OCM
9 * @rep:lifecycle active
10 * @rep:displayname Get Data Points
11 * @rep:category BUSINESS_ENTITY OCM_GET_DATA_POINTS
12 */
13 
14 /*#
15 * Use this procedure to retreive data points based on a checklist.
16 * @rep:scope public
17 * @rep:lifecycle active
18 * @rep:displayname Get Data Points
19 */
20 pg_debug VARCHAR2(1) := nvl(fnd_profile.value('AFLOG_ENABLED'),'N');
21 
22 PROCEDURE debug (
23         p_message_name          IN      VARCHAR2 ) IS
24 BEGIN
25     ar_cmgt_util.debug (p_message_name, 'ar.cmgt.plsql.OCM_DATA_POINTS_PUB' );
26 END;
27 
28 PROCEDURE GET_DATA_POINTS (
29         p_api_version           	IN          NUMBER,
30         p_init_msg_list         	IN          VARCHAR2,
31         p_commit                	IN          VARCHAR2,
32         p_validation_level      	IN          VARCHAR2,
33         p_credit_classification 	IN          VARCHAR2,
34         p_review_type           	IN          VARCHAR2,
35         p_data_point_category   	IN          VARCHAR2,
36         p_data_point_sub_category	IN			VARCHAR2,
37         x_return_status         	OUT NOCOPY  VARCHAR2,
38         x_msg_count             	OUT NOCOPY  NUMBER,
39         x_msg_data              	OUT NOCOPY  VARCHAR2,
40         p_datapoints_tbl        	OUT NOCOPY  data_points_tbl ) IS
41 
42         l_status                    VARCHAR2(2000);
43         l_check_flag                VARCHAr2(60);
44         l_check_list_id             NUMBER(15);
45         i 							NUMBER :=1;
46 
47         CURSOR getDataPointsC IS
48         	SELECT  dp.DATA_POINT_ID,
49         			dp.DATA_POINT_CODE,
50         			dp.DATA_POINT_NAME                 ,
51         			dp.DATA_POINT_CATEGORY             ,
52         			dp.DESCRIPTION                     ,
53         			dp.SCORABLE_FLAG                   ,
54         			dp.APPLICATION_ID                  ,
55         			dp.PACKAGE_NAME                    ,
56         			dp.FUNCTION_NAME                   ,
57         			dp.PARENT_DATA_POINT_ID            ,
58         			dp.DATA_POINT_SUB_CATEGORY         ,
59         			dp.FUNCTION_TYPE                   ,
60         			dp.RETURN_DATA_TYPE                ,
61         			dp.RETURN_DATE_FORMAT
62 					FROM ar_cmgt_data_points_vl dp,
63 						 ar_cmgt_check_lists chklist,
64 						 ar_cmgt_check_list_dtls chkdtls
65 					WHERE  chklist.credit_classification = p_credit_classification
66 					AND    chklist.review_type           = p_review_type
67 					AND    trunc(sysdate) between trunc(start_date) and nvl(trunc(end_date), trunc(sysdate))
68 					AND    chklist.check_list_id = chkdtls.check_list_id
69 					AND    chkdtls.data_point_id = dp.data_point_id
70 					AND    dp.data_point_category = nvl(p_data_point_category, data_point_category)
71 					AND    dp.data_point_sub_category = nvl(p_data_point_sub_category, data_point_sub_category);
72 
73 BEGIN
74               IF pg_debug = 'Y'
75               THEN
76                         debug ( 'GET_DATA_POINTS(+)');
77                         debug ( 'Credit Classification =' || p_credit_classification);
78                         debug ( 'Review Type =' || p_review_type);
79                         debug ( 'Data Point Category =' ||p_data_point_category);
80                         debug ( 'Data Point Sub Category =' ||p_data_point_sub_category);
81               END IF;
82                x_return_status         := FND_API.G_RET_STS_SUCCESS;
83 
84                 IF FND_API.to_Boolean( p_init_msg_list )
85         		THEN
86               		FND_MSG_PUB.initialize;
87         		END IF;
88 				IF p_data_point_sub_category IS NOT NULL
89 					AND p_data_point_category IS NULL
90 				THEN
91 					IF pg_debug = 'Y'
92               		THEN
93                         debug ( 'Data Point category IS NULL and data Point Sub Category IS not null');
94                     END IF;
95                     x_return_status := FND_API.G_RET_STS_ERROR;
96                     x_msg_data := 'Data Point category IS NULL and data Point Sub Category IS not null';
97                     return;
98 				END IF;
99 
100 
101                 IF p_data_point_sub_category IS NOT NULL
102                 THEN
103                     BEGIN
104                        SELECT 'x' INTO l_check_flag
105                        FROM   ar_lookups
106                        WHERE lookup_type = 'OCM_USER_DATA_POINT_CATEGORIES'
107                        AND   lookup_code = p_data_point_sub_category
108 					   AND   enabled_flag = 'Y'
109 					   AND   trunc(sysdate) between trunc(start_date_active)
110 					   		and nvl(trunc(end_date_active), trunc(sysdate));
111 
112                        EXCEPTION
113                             WHEN NO_DATA_FOUND THEN
114                                 x_msg_data := 'Invalid Data Point Sub Category';
115                                 x_return_status := FND_API.G_RET_STS_ERROR;
116                                 return;
117                             WHEN OTHERS THEN
118                                 x_msg_data := Sqlerrm;
119                                 x_return_status := FND_API.G_RET_STS_ERROR;
120                                 return;
121                     END;
122                 END IF;
123                 IF pg_debug = 'Y'
124               	THEN
125                         debug ( 'Valid data point sub category');
126               	END IF;
127                 IF p_data_point_category IS NOT NULL
128                 THEN
129                     BEGIN
130                        SELECT 'x' INTO l_check_flag
131                        FROM   ar_lookups
132                        WHERE lookup_type = 'AR_CMGT_DATA_POINT_CATEGORY'
133                        AND   lookup_code = p_data_point_category
134 					   AND   enabled_flag = 'Y'
135 					   AND   trunc(sysdate) between trunc(start_date_active)
136 					   		and nvl(trunc(end_date_active), trunc(sysdate));
137 
138                        EXCEPTION
139                             WHEN NO_DATA_FOUND THEN
140                                 x_msg_data := 'Invalid Data Point Category';
141                                 x_return_status := FND_API.G_RET_STS_ERROR;
142                                 return;
143                             WHEN OTHERS THEN
144                                 x_msg_data := Sqlerrm;
145                                 x_return_status := FND_API.G_RET_STS_ERROR;
146                                 return;
147                     END;
148                 END IF;
149 
150                 IF pg_debug = 'Y'
151               	THEN
152                         debug ( 'Valid data point category');
153               	END IF;
154 				FOR getDataPointsRec IN getDataPointsC
155 				LOOP
156 					IF pg_debug = 'Y'
157               		THEN
158                         debug ( 'data_point_id ' || getDataPointsRec.data_point_id);
159               		END IF;
160 					p_datapoints_tbl(i).data_point_id := getDataPointsRec.data_point_id;
161 					p_datapoints_tbl(i).data_point_name := getDataPointsRec.data_point_name;
162 					p_datapoints_tbl(i).data_point_code := getDataPointsRec.data_point_code;
163 					p_datapoints_tbl(i).data_point_category := getDataPointsRec.data_point_category;
164 					p_datapoints_tbl(i).data_point_sub_category := getDataPointsRec.data_point_sub_category;
165 					p_datapoints_tbl(i).description := getDataPointsRec.description;
166 					p_datapoints_tbl(i).scorable_flag := getDataPointsRec.scorable_flag;
167 					p_datapoints_tbl(i).application_id := getDataPointsRec.application_id;
168 					p_datapoints_tbl(i).package_name := getDataPointsRec.package_name;
169 					p_datapoints_tbl(i).function_name := getDataPointsRec.function_name;
170 					p_datapoints_tbl(i).parent_data_point_id := getDataPointsRec.parent_data_point_id;
171 					p_datapoints_tbl(i).function_type := getDataPointsRec.function_type;
172 					p_datapoints_tbl(i).return_data_type := getDataPointsRec.return_data_type;
173 					p_datapoints_tbl(i).return_date_format := getDataPointsRec.return_date_format;
174 					i := i + 1;
175 				END LOOP;
176 
177 END;
178 END OCM_DATA_POINTS_PUB;