DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_API

Source


1 PACKAGE BODY OKC_API AS
2 /* $Header: OKCPAPIB.pls 120.0.12020000.4 2012/12/29 11:23:16 harchand ship $ */
3 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
4 --------------------------------------------------------------------------------
5 -- MESSAGE CONSTANTS
6 --------------------------------------------------------------------------------
7 G_MSG_LEVEL_THRESHOLD		CONSTANT NUMBER := OKC_API.G_MISS_NUM;
8 --------------------------------------------------------------------------------
9 -- PROCEDURE init_msg_list
10 --------------------------------------------------------------------------------
11 PROCEDURE init_msg_list (
12 	p_init_msg_list	IN VARCHAR2
13 ) IS
14 BEGIN
15   IF (FND_API.to_boolean(p_init_msg_list)) THEN
16     FND_MSG_PUB.initialize;
17   END IF;
18 EXCEPTION
19   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
20   	RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
21 END init_msg_list;
22 --------------------------------------------------------------------------------
23 -- FUNCTION start_activity
24 --------------------------------------------------------------------------------
25 FUNCTION start_activity(
26 	p_api_name			IN VARCHAR2,
27 	p_pkg_name			IN VARCHAR2,
28 	p_init_msg_list			IN VARCHAR2,
29 	l_api_version			IN NUMBER,
30 	p_api_version			IN NUMBER,
31 	p_api_type			IN VARCHAR2,
32 	x_return_status		 OUT NOCOPY VARCHAR2
33 ) RETURN VARCHAR2 IS
34 BEGIN
35 	-- Standard START OF API SAVEPOINT
36 
37 	DBMS_TRANSACTION.SAVEPOINT(p_api_name || p_api_type);
38 
39 	IF NOT FND_API.compatible_API_Call( l_api_version,
40 					    p_api_version,
41 					    p_api_name,
42 					    p_pkg_name)
43 	THEN
44 	  RETURN(OKC_API.G_RET_STS_UNEXP_ERROR);
45 	END IF;
46 
47 	OKC_API.init_msg_list(p_init_msg_list);
48 
49 	x_return_status := OKC_API.G_RET_STS_SUCCESS;
50 	RETURN(OKC_API.G_RET_STS_SUCCESS);
51 END start_activity;
52 FUNCTION start_activity(
53 	p_api_name			IN VARCHAR2,
54 	p_init_msg_list			IN VARCHAR2,
55 	p_api_type			IN VARCHAR2,
56 	x_return_status		 OUT NOCOPY VARCHAR2
57 ) RETURN VARCHAR2 IS
58 BEGIN
59 	-- Standard START OF API SAVEPOINT
60 
61 	DBMS_TRANSACTION.SAVEPOINT(p_api_name || p_api_type);
62 	OKC_API.init_msg_list(p_init_msg_list);
63 
64 	x_return_status := OKC_API.G_RET_STS_SUCCESS;
65 	RETURN(OKC_API.G_RET_STS_SUCCESS);
66 END start_activity;
67 --------------------------------------------------------------------------------
68 -- FUNCTION handle_exceptions
69 --------------------------------------------------------------------------------
70 FUNCTION handle_exceptions (
71 	p_api_name		IN VARCHAR2,
72 	p_pkg_name		IN VARCHAR2,
73 	p_exc_name		IN VARCHAR2,
74 	x_msg_count	 OUT NOCOPY NUMBER,
75 	x_msg_data	 OUT NOCOPY VARCHAR2,
76 	p_api_type		IN VARCHAR2
77 ) RETURN VARCHAR2 IS
78 	l_return_value		VARCHAR2(200) := OKC_API.G_RET_STS_UNEXP_ERROR;
79 BEGIN
80 	DBMS_TRANSACTION.ROLLBACK_SAVEPOINT(p_api_name || p_api_type);
81 	IF p_exc_name = 'OKC_API.G_RET_STS_ERROR'  THEN
82 		FND_MSG_PUB.Count_And_Get
83 		(
84 				p_count	=>	x_msg_count,
85 				p_data	=>	x_msg_data
86 		);
87 		l_return_value := OKC_API.G_RET_STS_ERROR;
88 	ELSIF p_exc_name = 'OKC_API.G_RET_STS_UNEXP_ERROR'  THEN
89 	 	FND_MSG_PUB.Count_And_Get
90 	 	(
91 	 		p_count	=>	x_msg_count,
92 	 		p_data	=>	x_msg_data
93 	 	);
94 	ELSE -- WHEN OTHERS EXCEPTION
95 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
96 		THEN
97 			FND_MSG_PUB.Add_Exc_Msg
98 			(
99 				p_pkg_name,
100 	 			p_api_name
101 			);
102 		END IF;
103 		FND_MSG_PUB.Count_And_Get
104 		(
105 				p_count	=>	x_msg_count,
106 				p_data	=>	x_msg_data
107 		);
108 	END IF;
109 	RETURN(l_return_value);
110 END handle_exceptions;
111 --------------------------------------------------------------------------------
112 -- FUNCTION end_activity
113 --------------------------------------------------------------------------------
114 PROCEDURE end_activity (
115 	x_msg_count	 OUT NOCOPY NUMBER,
116 	x_msg_data	 OUT NOCOPY VARCHAR2
117 ) IS
118 BEGIN
119     --- Standard call to get message count and if count is 1, get message info
120 	FND_MSG_PUB.Count_And_Get (
121 		p_count	=> 	x_msg_count,
122 		p_data	=> 	x_msg_data);
123 END end_activity;
124 --------------------------------------------------------------------------------
125 -- PROCEDURE set_message
126 --------------------------------------------------------------------------------
127 PROCEDURE set_message (
128 	p_app_name		IN VARCHAR2 ,
129 	p_msg_name		IN VARCHAR2,
130 	p_token1		IN VARCHAR2 ,
131 	p_token1_value		IN VARCHAR2 ,
132 	p_token2		IN VARCHAR2 ,
133 	p_token2_value		IN VARCHAR2 ,
134 	p_token3		IN VARCHAR2 ,
135 	p_token3_value		IN VARCHAR2 ,
136 	p_token4		IN VARCHAR2 ,
137 	p_token4_value		IN VARCHAR2 ,
138 	p_token5		IN VARCHAR2 ,
139 	p_token5_value		IN VARCHAR2 ,
140 	p_token6		IN VARCHAR2 ,
141 	p_token6_value		IN VARCHAR2 ,
142 	p_token7		IN VARCHAR2 ,
143 	p_token7_value		IN VARCHAR2 ,
144 	p_token8		IN VARCHAR2 ,
145 	p_token8_value		IN VARCHAR2 ,
146 	p_token9		IN VARCHAR2 ,
147 	p_token9_value		IN VARCHAR2 ,
148 	p_token10		IN VARCHAR2 ,
149 	p_token10_value		IN VARCHAR2
150 ) IS
151 BEGIN
152 	FND_MESSAGE.SET_NAME( P_APP_NAME, P_MSG_NAME);
153 	IF (p_token1 IS NOT NULL) AND (p_token1_value IS NOT NULL) THEN
154 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token1,
155 					VALUE		=> p_token1_value);
156 	END IF;
157 	IF (p_token2 IS NOT NULL) AND (p_token2_value IS NOT NULL) THEN
158 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token2,
159 					VALUE		=> p_token2_value);
160 	END IF;
161 	IF (p_token3 IS NOT NULL) AND (p_token3_value IS NOT NULL) THEN
162 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token3,
163 					VALUE		=> p_token3_value);
164 	END IF;
165 	IF (p_token4 IS NOT NULL) AND (p_token4_value IS NOT NULL) THEN
166 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token4,
167 					VALUE		=> p_token4_value);
168 	END IF;
169 	IF (p_token5 IS NOT NULL) AND (p_token5_value IS NOT NULL) THEN
170 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token5,
171 					VALUE		=> p_token5_value);
172 	END IF;
173 	IF (p_token6 IS NOT NULL) AND (p_token6_value IS NOT NULL) THEN
174 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token6,
175 					VALUE		=> p_token6_value);
176 	END IF;
177 	IF (p_token7 IS NOT NULL) AND (p_token7_value IS NOT NULL) THEN
178 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token7,
179 					VALUE		=> p_token7_value);
180 	END IF;
181 	IF (p_token8 IS NOT NULL) AND (p_token8_value IS NOT NULL) THEN
182 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token8,
183 					VALUE		=> p_token8_value);
184 	END IF;
185 	IF (p_token9 IS NOT NULL) AND (p_token9_value IS NOT NULL) THEN
186 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token9,
187 					VALUE		=> p_token9_value);
188 	END IF;
189 	IF (p_token10 IS NOT NULL) AND (p_token10_value IS NOT NULL) THEN
190 		FND_MESSAGE.SET_TOKEN(	TOKEN		=> p_token10,
191 					VALUE		=> p_token10_value);
192 	END IF;
193 	FND_MSG_PUB.add;
194 END set_message;
195 
196 -- Acq Plan messages cleanup
197 
198 
199 FUNCTION resolve_message(
200   p_msg_name IN VARCHAR2,
201   p_contract_type IN VARCHAR2
202 ) RETURN VARCHAR2 IS
203 
204 l_rep_type_prefix VARCHAR2(10) := OKC_REP_UTIL_PVT.G_REP_CONTRACT_TYPE_PREFIX;
205 
206 l_appended_msg VARCHAR2(50);
207 
208 l_message_name VARCHAR2(30);
209 
210 l_msg_txt VARCHAR2(2000);
211 
212 BEGIN
213 
214 if (p_contract_type is null or p_contract_type = '') then
215 	RETURN p_msg_name;
216 end if;
217 
218 l_appended_msg :=  p_msg_name || SubStr(p_contract_type,Length(l_rep_type_prefix));
219 
220 l_msg_txt:=fnd_message.GET_STRING('OKC',l_appended_msg);
221 
222 IF l_msg_txt = l_appended_msg THEN
223   RETURN p_msg_name;
224 ELSE
225   RETURN l_appended_msg;
226 END IF;
227 
228   RETURN p_msg_name;
229 
230 END  resolve_message;
231 
232 FUNCTION resolve_hdr_token(
233   p_contract_type IN VARCHAR2
234 ) RETURN VARCHAR2 IS
235 
236 l_msg_txt VARCHAR2(2000);
237 l_msg_name VARCHAR2(30);
238 
239 cursor c_get_hdr_token is
240 select header_token
241 from okc_bus_doc_types_b
242 where document_type = p_contract_type;
243 
244 l_hdr_token_msg varchar2(30);
245 BEGIN
246 
247 open c_get_hdr_token;
248 fetch c_get_hdr_token into l_hdr_token_msg;
249 close c_get_hdr_token;
250 
251 if l_hdr_token_msg is null or l_hdr_token_msg = '' then
252     l_msg_name := resolve_message(OKC_REP_UTIL_PVT.G_REP_MSG_ENTITY_HDR,p_contract_type);
253 else
254     l_msg_name := resolve_message(l_hdr_token_msg,p_contract_type);
255 end if;
256 l_msg_txt := fnd_message.GET_STRING('OKC',l_msg_name);
257 RETURN l_msg_txt;
258 
259 END resolve_hdr_token;
260 
261 FUNCTION resolve_del_token(
262   p_contract_type IN VARCHAR2
263 ) RETURN VARCHAR2 IS
264 
265 l_msg_txt VARCHAR2(2000);
266 l_msg_name VARCHAR2(30);
267 
268 cursor c_get_del_token is
269 select deliverable_token
270 from okc_bus_doc_types_b
271 where document_type = p_contract_type;
272 
273 l_del_token_msg varchar2(30);
274 
275 BEGIN
276 
277 open c_get_del_token;
278 fetch c_get_del_token into l_del_token_msg;
279 close c_get_del_token;
280 if l_del_token_msg is null or l_del_token_msg = '' then
281     l_msg_name := resolve_message(OKC_REP_UTIL_PVT.G_REP_MSG_ENTITY_DEL,p_contract_type);
282 else
283     l_msg_name := resolve_message(l_del_token_msg,p_contract_type);
284 end if;
285 l_msg_txt := fnd_message.GET_STRING('OKC',l_msg_name);
286 RETURN l_msg_txt;
287 
288 END resolve_del_token;
289 
290 FUNCTION get_contract_type(
291   p_contract_id IN NUMBER
292 ) RETURN VARCHAR2 IS
293 
294 l_ctr_type VARCHAR2(30);
295 
296 CURSOR c IS
297 SELECT contract_type
298 FROM okc_rep_contracts_all
299 WHERE contract_id = p_contract_id;
300 
301 BEGIN
302 
303 OPEN c;
304 FETCH c INTO l_ctr_type;
305 CLOSE c;
306 
307 RETURN l_ctr_type;
308 
309 END get_contract_type;
310 
311 FUNCTION get_contract_type_ui_func(
312   p_contract_type IN VARCHAR2
313 ) RETURN VARCHAR2 IS
314 
315 l_ctr_type_uifunc VARCHAR2(30);
316 
317 CURSOR c IS
318 SELECT ui_pers_function
319 FROM okc_bus_doc_types_b
320 WHERE document_type = p_contract_type;
321 
322 BEGIN
323 
324 OPEN c;
325 FETCH c INTO l_ctr_type_uifunc;
326 CLOSE c;
327 
328 RETURN l_ctr_type_uifunc;
329 
330 END get_contract_type_ui_func;
331 
332 
333 END OKC_API;