1 PACKAGE BODY OKE_API AS
2 /* $Header: OKEPAPIB.pls 115.7 2002/11/19 21:00:27 jxtang ship $ */
3
4 -- MESSAGE CONSTANTS
5
6 G_MSG_LEVEL_THRESHOLD CONSTANT NUMBER := OKE_API.G_MISS_NUM;
7
8 PROCEDURE init_msg_list (
9 p_init_msg_list IN VARCHAR2
10 ) IS
11 BEGIN
12 IF (FND_API.to_boolean(p_init_msg_list)) THEN
13 FND_MSG_PUB.initialize;
14 END IF;
15 EXCEPTION
16 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
17 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
18 END init_msg_list;
19
20 FUNCTION start_activity
21 ( p_api_name IN VARCHAR2
22 , p_pkg_name IN VARCHAR2
23 , p_init_msg_list IN VARCHAR2
24 , l_api_version IN NUMBER
25 , p_api_version IN NUMBER
26 , p_api_type IN VARCHAR2
27 , x_return_status OUT NOCOPY VARCHAR2
28 ) RETURN VARCHAR2 IS
29
30 BEGIN
31 --
32 -- Standard START OF API SAVEPOINT
33 --
34 DBMS_TRANSACTION.SAVEPOINT(p_api_name || p_api_type);
35
36 IF NOT FND_API.compatible_API_Call
37 ( l_api_version
38 , p_api_version
39 , p_api_name
40 , p_pkg_name) THEN
41
42 RETURN(OKE_API.G_RET_STS_UNEXP_ERROR);
43
44 END IF;
45
46 OKE_API.init_msg_list(p_init_msg_list);
47
48 x_return_status := OKE_API.G_RET_STS_SUCCESS;
49
50 RETURN(OKE_API.G_RET_STS_SUCCESS);
51
52 END start_activity;
53
54
55 FUNCTION start_activity
56 ( p_api_name IN VARCHAR2
57 , p_init_msg_list IN VARCHAR2
58 , p_api_type IN VARCHAR2
59 , x_return_status OUT NOCOPY VARCHAR2
60 ) RETURN VARCHAR2 IS
61
62 BEGIN
63 --
64 -- Standard START OF API SAVEPOINT
65 --
66 DBMS_TRANSACTION.SAVEPOINT(p_api_name || p_api_type);
67
68 OKE_API.init_msg_list(p_init_msg_list);
69
70 x_return_status := OKE_API.G_RET_STS_SUCCESS;
71
72 RETURN(OKE_API.G_RET_STS_SUCCESS);
73
74 END start_activity;
75
76
77 FUNCTION Handle_Exceptions
78 ( p_api_name IN VARCHAR2
79 , p_pkg_name IN VARCHAR2
80 , p_exc_name IN VARCHAR2
81 , x_msg_count OUT NOCOPY NUMBER
82 , x_msg_data OUT NOCOPY VARCHAR2
83 , p_api_type IN VARCHAR2
84 ) RETURN VARCHAR2 IS
85
86 l_return_value VARCHAR2(200) := OKE_API.G_RET_STS_UNEXP_ERROR;
87
88 BEGIN
89
90 DBMS_TRANSACTION.ROLLBACK_SAVEPOINT(p_api_name || p_api_type);
91
92 IF p_exc_name = 'OKE_API.G_RET_STS_ERROR' THEN
93
94 FND_MSG_PUB.Count_And_Get
95 ( p_count => x_msg_count
96 , p_data => x_msg_data
97 );
98
99 l_return_value := OKE_API.G_RET_STS_ERROR;
100
101 ELSIF p_exc_name = 'OKE_API.G_RET_STS_UNEXP_ERROR' THEN
102
103 FND_MSG_PUB.Count_And_Get
104 ( p_count => x_msg_count
105 , p_data => x_msg_data
106 );
107
108 ELSE -- WHEN OTHERS EXCEPTION
109
110 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
111
112 FND_MSG_PUB.Add_Exc_Msg ( p_pkg_name , p_api_name );
113 END IF;
114
115 FND_MSG_PUB.Count_And_Get
116 ( p_count => x_msg_count
117 , p_data => x_msg_data
118 );
119 END IF;
120
121 RETURN(l_return_value);
122
123 END Handle_Exceptions;
124
125
126 PROCEDURE End_Activity
127 ( x_msg_count OUT NOCOPY NUMBER
128 , x_msg_data OUT NOCOPY VARCHAR2
129 ) IS
130 BEGIN
131 -- Standard call to get message count and if count is 1, get message info
132 FND_MSG_PUB.Count_And_Get
133 ( p_count => x_msg_count
134 , p_data => x_msg_data
135 );
136
137 END End_Activity;
138
139 -- Added translation flag by syho on 11-may-01
140 PROCEDURE set_message
141 ( p_app_name IN VARCHAR2
142 , p_msg_name IN VARCHAR2
143 , p_token1 IN VARCHAR2
144 , p_token1_value IN VARCHAR2
145 , p_token1_translate IN VARCHAR2
146 , p_token2 IN VARCHAR2
147 , p_token2_value IN VARCHAR2
148 , p_token2_translate IN VARCHAR2
149 , p_token3 IN VARCHAR2
150 , p_token3_value IN VARCHAR2
151 , p_token3_translate IN VARCHAR2
152 , p_token4 IN VARCHAR2
153 , p_token4_value IN VARCHAR2
154 , p_token4_translate IN VARCHAR2
155 , p_token5 IN VARCHAR2
156 , p_token5_value IN VARCHAR2
157 , p_token5_translate IN VARCHAR2
158 , p_token6 IN VARCHAR2
159 , p_token6_value IN VARCHAR2
160 , p_token6_translate IN VARCHAR2
161 , p_token7 IN VARCHAR2
162 , p_token7_value IN VARCHAR2
163 , p_token7_translate IN VARCHAR2
164 , p_token8 IN VARCHAR2
165 , p_token8_value IN VARCHAR2
166 , p_token8_translate IN VARCHAR2
167 , p_token9 IN VARCHAR2
168 , p_token9_value IN VARCHAR2
169 , p_token9_translate IN VARCHAR2
170 , p_token10 IN VARCHAR2
171 , p_token10_value IN VARCHAR2
172 , p_token10_translate IN VARCHAR2
173 ) IS
174
175 BEGIN
176
177 FND_MESSAGE.SET_NAME( P_APP_NAME, P_MSG_NAME );
178
179 IF (p_token1 IS NOT NULL) AND (p_token1_value IS NOT NULL) THEN
180 FND_MESSAGE.SET_TOKEN( TOKEN => p_token1 , VALUE => p_token1_value, TRANSLATE => FND_API.TO_BOOLEAN(p_token1_translate));
181 END IF;
182 IF (p_token2 IS NOT NULL) AND (p_token2_value IS NOT NULL) THEN
183 FND_MESSAGE.SET_TOKEN( TOKEN => p_token2 , VALUE => p_token2_value, TRANSLATE => FND_API.TO_BOOLEAN(p_token2_translate));
184 END IF;
185 IF (p_token3 IS NOT NULL) AND (p_token3_value IS NOT NULL) THEN
186 FND_MESSAGE.SET_TOKEN( TOKEN => p_token3 , VALUE => p_token3_value, TRANSLATE => FND_API.TO_BOOLEAN(p_token3_translate));
187 END IF;
188 IF (p_token4 IS NOT NULL) AND (p_token4_value IS NOT NULL) THEN
189 FND_MESSAGE.SET_TOKEN( TOKEN => p_token4 , VALUE => p_token4_value, TRANSLATE => FND_API.TO_BOOLEAN(p_token4_translate));
190 END IF;
191 IF (p_token5 IS NOT NULL) AND (p_token5_value IS NOT NULL) THEN
192 FND_MESSAGE.SET_TOKEN( TOKEN => p_token5 , VALUE => p_token5_value, TRANSLATE => FND_API.TO_BOOLEAN(p_token5_translate));
193 END IF;
194 IF (p_token6 IS NOT NULL) AND (p_token6_value IS NOT NULL) THEN
195 FND_MESSAGE.SET_TOKEN( TOKEN => p_token6 , VALUE => p_token6_value, TRANSLATE => FND_API.TO_BOOLEAN(p_token6_translate));
196 END IF;
197 IF (p_token7 IS NOT NULL) AND (p_token7_value IS NOT NULL) THEN
198 FND_MESSAGE.SET_TOKEN( TOKEN => p_token7 , VALUE => p_token7_value, TRANSLATE => FND_API.TO_BOOLEAN(p_token7_translate));
199 END IF;
200 IF (p_token8 IS NOT NULL) AND (p_token8_value IS NOT NULL) THEN
201 FND_MESSAGE.SET_TOKEN( TOKEN => p_token8 , VALUE => p_token8_value, TRANSLATE => FND_API.TO_BOOLEAN(p_token8_translate));
202 END IF;
203 IF (p_token9 IS NOT NULL) AND (p_token9_value IS NOT NULL) THEN
204 FND_MESSAGE.SET_TOKEN( TOKEN => p_token9 , VALUE => p_token9_value, TRANSLATE => FND_API.TO_BOOLEAN(p_token9_translate));
205 END IF;
206 IF (p_token10 IS NOT NULL) AND (p_token10_value IS NOT NULL) THEN
207 FND_MESSAGE.SET_TOKEN( TOKEN => p_token10 , VALUE => p_token10_value, TRANSLATE => FND_API.TO_BOOLEAN(p_token10_translate));
208 END IF;
209
210 FND_MSG_PUB.add;
211
212 END Set_Message;
213
214 END OKE_API;