DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_API

Source


1 PACKAGE BODY OKL_API AS
2  /* $Header: OKLPAPIB.pls 120.4 2007/10/03 20:51:28 rmunjulu ship $ */
3 --------------------------------------------------------------------------------
4 -- MESSAGE CONSTANTS
5 --------------------------------------------------------------------------------
6 G_MSG_LEVEL_THRESHOLD		CONSTANT NUMBER := OKL_API.G_MISS_NUM;
7 --------------------------------------------------------------------------------
8 -- PROCEDURE init_msg_list
9 --------------------------------------------------------------------------------
10 PROCEDURE init_msg_list (
11 	p_init_msg_list	IN VARCHAR2
12 ) IS
13 BEGIN
14   IF (FND_API.to_boolean(p_init_msg_list)) THEN
15     FND_MSG_PUB.initialize;
16   END IF;
17 EXCEPTION
18   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
19   	RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
20 END init_msg_list;
21 --------------------------------------------------------------------------------
22 -- FUNCTION start_activity
23 --------------------------------------------------------------------------------
24 FUNCTION start_activity(
25 	p_api_name			IN VARCHAR2,
26 	p_pkg_name			IN VARCHAR2,
27 	p_init_msg_list			IN VARCHAR2,
28 	l_api_version			IN NUMBER,
29 	p_api_version			IN NUMBER,
30 	p_api_type			IN VARCHAR2,
31 	x_return_status		 OUT NOCOPY VARCHAR2
32 ) RETURN VARCHAR2 IS
33 BEGIN
34 	-- Standard START OF API SAVEPOINT
35 	DBMS_TRANSACTION.SAVEPOINT(p_api_name || p_api_type);
36 	IF NOT FND_API.compatible_API_Call( l_api_version,
37 					    p_api_version,
38 					    p_api_name,
39 					    p_pkg_name)
40 	THEN
41 	  RETURN(OKL_API.G_RET_STS_UNEXP_ERROR);
42 	END IF;
43 	OKL_API.init_msg_list(p_init_msg_list);
44 	x_return_status := OKL_API.G_RET_STS_SUCCESS;
45 	RETURN(OKL_API.G_RET_STS_SUCCESS);
46 END start_activity;
47 FUNCTION start_activity(
48 	p_api_name			IN VARCHAR2,
49 	p_init_msg_list			IN VARCHAR2,
50 	p_api_type			IN VARCHAR2,
51 	x_return_status		 OUT NOCOPY VARCHAR2
52 ) RETURN VARCHAR2 IS
53 BEGIN
54 	-- Standard START OF API SAVEPOINT
55 	DBMS_TRANSACTION.SAVEPOINT(p_api_name || p_api_type);
56 	OKL_API.init_msg_list(p_init_msg_list);
57 	x_return_status := OKL_API.G_RET_STS_SUCCESS;
58 	RETURN(OKL_API.G_RET_STS_SUCCESS);
59 END start_activity;
60 --------------------------------------------------------------------------------
61 -- FUNCTION handle_exceptions
62 --------------------------------------------------------------------------------
63 FUNCTION handle_exceptions (
64 	p_api_name		IN VARCHAR2,
65 	p_pkg_name		IN VARCHAR2,
66 	p_exc_name		IN VARCHAR2,
67 	x_msg_count	 OUT NOCOPY NUMBER,
68 	x_msg_data	 OUT NOCOPY VARCHAR2,
69 	p_api_type		IN VARCHAR2
70 ) RETURN VARCHAR2 IS
71 	l_return_value		VARCHAR2(200) := OKL_API.G_RET_STS_UNEXP_ERROR;
72 BEGIN
73 	DBMS_TRANSACTION.ROLLBACK_SAVEPOINT(p_api_name || p_api_type);
74 	IF UPPER(p_exc_name) = 'OKL_API.G_RET_STS_ERROR'  THEN
75 		FND_MSG_PUB.Count_And_Get
76 		(
77 				p_count	=>	x_msg_count,
78 				p_data	=>	x_msg_data
79 		);
80 		l_return_value := OKL_API.G_RET_STS_ERROR;
81 	ELSIF UPPER(p_exc_name) = 'OKL_API.G_RET_STS_UNEXP_ERROR'  THEN
82 	 	FND_MSG_PUB.Count_And_Get
83 	 	(
84 	 		p_count	=>	x_msg_count,
85 	 		p_data	=>	x_msg_data
86 	 	);
87 	ELSE -- WHEN OTHERS EXCEPTION
88 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
89 		THEN
90 			FND_MSG_PUB.Add_Exc_Msg
91 			(
92 				p_pkg_name,
93 	 			p_api_name
94 			);
95 		END IF;
96 		FND_MSG_PUB.Count_And_Get
97 		(
98 				p_count	=>	x_msg_count,
99 				p_data	=>	x_msg_data
100 		);
101 	END IF;
102 	RETURN(l_return_value);
103 END handle_exceptions;
104 --------------------------------------------------------------------------------
105 -- FUNCTION end_activity
106 --------------------------------------------------------------------------------
107 PROCEDURE end_activity (
108 	x_msg_count	 OUT NOCOPY NUMBER,
109 	x_msg_data	 OUT NOCOPY VARCHAR2
110 ) IS
111 BEGIN
112     --- Standard call to get message count and if count is 1, get message info
113 	FND_MSG_PUB.Count_And_Get (
114 		p_count	=> 	x_msg_count,
115 		p_data	=> 	x_msg_data);
116 END end_activity;
117 --------------------------------------------------------------------------------
118 -- PROCEDURE set_message
119 --------------------------------------------------------------------------------
120 PROCEDURE set_message (
121 	p_app_name		IN VARCHAR2 DEFAULT OKL_API.G_APP_NAME,
122 	p_msg_name		IN VARCHAR2,
123 	p_token1		IN VARCHAR2 DEFAULT NULL,
124 	p_token1_value		IN VARCHAR2 DEFAULT NULL,
125 	p_token2		IN VARCHAR2 DEFAULT NULL,
126 	p_token2_value		IN VARCHAR2 DEFAULT NULL,
127 	p_token3		IN VARCHAR2 DEFAULT NULL,
128 	p_token3_value		IN VARCHAR2 DEFAULT NULL,
129 	p_token4		IN VARCHAR2 DEFAULT NULL,
130 	p_token4_value		IN VARCHAR2 DEFAULT NULL,
131 	p_token5		IN VARCHAR2 DEFAULT NULL,
132 	p_token5_value		IN VARCHAR2 DEFAULT NULL,
133 	p_token6		IN VARCHAR2 DEFAULT NULL,
134 	p_token6_value		IN VARCHAR2 DEFAULT NULL,
135 	p_token7		IN VARCHAR2 DEFAULT NULL,
136 	p_token7_value		IN VARCHAR2 DEFAULT NULL,
137 	p_token8		IN VARCHAR2 DEFAULT NULL,
138 	p_token8_value		IN VARCHAR2 DEFAULT NULL,
139 	p_token9		IN VARCHAR2 DEFAULT NULL,
140 	p_token9_value		IN VARCHAR2 DEFAULT NULL,
141 	p_token10		IN VARCHAR2 DEFAULT NULL,
142 	p_token10_value		IN VARCHAR2 DEFAULT NULL
143 ) IS
144 BEGIN
145 	FND_MESSAGE.SET_NAME( P_APP_NAME, P_MSG_NAME);
146 	IF (p_token1 IS NOT NULL) AND (p_token1_value IS NOT NULL) THEN
147 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token1,
148 					VALUE		=> p_token1_value);
149 	END IF;
150 	IF (p_token2 IS NOT NULL) AND (p_token2_value IS NOT NULL) THEN
151 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token2,
152 					VALUE		=> p_token2_value);
153 	END IF;
154 	IF (p_token3 IS NOT NULL) AND (p_token3_value IS NOT NULL) THEN
155 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token3,
156 					VALUE		=> p_token3_value);
157 	END IF;
158 	IF (p_token4 IS NOT NULL) AND (p_token4_value IS NOT NULL) THEN
159 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token4,
160 					VALUE		=> p_token4_value);
161 	END IF;
162 	IF (p_token5 IS NOT NULL) AND (p_token5_value IS NOT NULL) THEN
163 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token5,
164 					VALUE		=> p_token5_value);
165 	END IF;
166 	IF (p_token6 IS NOT NULL) AND (p_token6_value IS NOT NULL) THEN
167 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token6,
168 					VALUE		=> p_token6_value);
169 	END IF;
170 	IF (p_token7 IS NOT NULL) AND (p_token7_value IS NOT NULL) THEN
171 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token7,
172 					VALUE		=> p_token7_value);
173 	END IF;
174 	IF (p_token8 IS NOT NULL) AND (p_token8_value IS NOT NULL) THEN
175 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token8,
176 					VALUE		=> p_token8_value);
177 	END IF;
178 	IF (p_token9 IS NOT NULL) AND (p_token9_value IS NOT NULL) THEN
179 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token9,
180 					VALUE		=> p_token9_value);
181 	END IF;
182 	IF (p_token10 IS NOT NULL) AND (p_token10_value IS NOT NULL) THEN
183 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token10,
184 					VALUE		=> p_token10_value);
185 	END IF;
186 	FND_MSG_PUB.add;
187 END set_message;
188 
189 -- rmunjulu Added function which gets customer baseline
190 -- Returns H if customer coming from H to R12
191 -- Returns G if customer coming from G to R12
192 -- Returns a default of H if cannot find the lookup OKL_CUSTOMER_BASELINE
193 -- Returns NULL if ERROR
194 -- Pre-req - customer has to first apply OKLG or OKLH one-off which sets the baseline
195 FUNCTION get_customer_baseline RETURN VARCHAR2 IS
196 
197   -- get the lookup code from lookup - 'OKL_CUSTOMER_BASELINE'
198   -- will be H if customer on OKLH, will be G if customer on OKLG
199   -- Upon testing found that if G patch is applied and then H patch then both codes (G and H)
200   -- exist - so disabling G code in SEED115 and doing the query properly for
201   -- enabled code only.
202   CURSOR get_cust_baseline_csr  IS
203   SELECT lookup_code
204   FROM   fnd_lookups
205   WHERE  lookup_type = 'OKL_CUSTOMER_BASELINE'
206   AND    enabled_flag = 'Y'
207   AND    end_date_active IS NULL;
208 
209   l_cst_baseline VARCHAR2(3);
210 
211 BEGIN
212 
213   OPEN get_cust_baseline_csr;
214   FETCH get_cust_baseline_csr INTO l_cst_baseline;
215   CLOSE get_cust_baseline_csr;
216 
217   RETURN nvl(l_cst_baseline,'H');
218 
219 EXCEPTION
220   WHEN OTHERS THEN
221   IF get_cust_baseline_csr%ISOPEN THEN
222      CLOSE get_cust_baseline_csr;
223   END IF;
224   RETURN NULL;
225 
226 END get_customer_baseline;
227 
228 END OKL_API;