[Home] [Help]
PACKAGE BODY: APPS.FLM_EKANBAN_PUB
Source
1 PACKAGE BODY FLM_EKANBAN_PUB AS
2 /* $Header: FLMPEKBB.pls 120.1 2011/03/25 21:08:46 atjen noship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(15) := 'FLM_EKANBAN_PUB';
5
6
7 PROCEDURE validate_ekanban_profile
8 IS
9 BEGIN
10
11 IF FND_PROFILE.Value('FLM_EKB_OPS_FLAG') <> 1 THEN
12 FND_MESSAGE.Set_Name('FLM', 'FLM_EKB_PROFILE_DISABLED');
13 FND_MSG_PUB.Add;
14 RAISE FND_API.G_EXC_ERROR;
15 END IF;
16
17 END validate_ekanban_profile;
18
19
20 FUNCTION get_kanban_card_id(p_kanban_card_number IN VARCHAR2,
21 p_organization_code IN VARCHAR2)
22 RETURN NUMBER
23 IS
24
25 l_kanban_card_id NUMBER;
26
27 CURSOR c_kanbard_card_id(c_kanban_card_number IN VARCHAR2,
28 c_organization_code IN VARCHAR2)
29 IS
30 SELECT kanban_card_id
31 FROM mtl_kanban_cards
32 WHERE kanban_card_number = c_kanban_card_number
33 AND organization_id = (SELECT organization_id
34 FROM mtl_parameters
35 WHERE organization_code = c_organization_code);
36
37 BEGIN
38
39 OPEN c_kanbard_card_id(p_kanban_card_number, p_organization_code);
40 FETCH c_kanbard_card_id into l_kanban_card_id;
41 CLOSE c_kanbard_card_id;
42
43 IF l_kanban_card_id IS NULL THEN
44 FND_MESSAGE.Set_Name('FLM', 'FLM_INV_CARD_ORG_COMB');
45 FND_MSG_PUB.Add;
46 RAISE FND_API.G_EXC_ERROR;
47 END IF;
48
49 RETURN l_kanban_card_id;
50
51 END get_kanban_card_id;
52
53
54 PROCEDURE receive
55 ( p_api_version IN NUMBER,
56 p_commit IN VARCHAR2,
57 p_init_msg_list IN VARCHAR2,
58 x_return_status OUT NOCOPY VARCHAR2,
59 x_msg_count OUT NOCOPY NUMBER,
60 x_msg_data OUT NOCOPY VARCHAR2,
61 p_kanban_card_number IN VARCHAR2,
62 p_organization_code IN VARCHAR2,
63 p_receipt_quantity IN NUMBER,
64 p_process_flag IN VARCHAR2,
65 x_receipt_number OUT NOCOPY NUMBER
66 )
67 IS
68 l_api_name CONSTANT VARCHAR2(30) := 'receive';
69 l_api_version CONSTANT NUMBER := 1.0;
70
71 l_kanban_card_id NUMBER;
72
73 BEGIN
74
75 SAVEPOINT Receive_PUB;
76
77 -- Standard call to check for call compatibility
78 IF NOT FND_API.Compatible_API_Call(l_api_version,
79 p_api_version,
80 l_api_name,
81 G_PKG_NAME)
82 THEN
83 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
84 END IF;
85
86 -- Initialize message list if p_init_msg_list is set to TRUE
87 IF FND_API.To_Boolean(p_init_msg_list) THEN
88 FND_MSG_PUB.Initialize;
89 END IF;
90
91 validate_ekanban_profile;
92
93 l_kanban_card_id := get_kanban_card_id(p_kanban_card_number, p_organization_code);
94
95 FLM_RECEIPT_PUB.kanban_receive(p_kanban_card_id => l_kanban_card_id,
96 p_receipt_quantity => p_receipt_quantity,
97 p_process_flag => NVL(p_process_flag, 'N'),
98 p_receipt_number => x_receipt_number,
99 x_ret_status => x_return_status,
100 x_err_msg => x_msg_data);
101
102 -- Standard check of p_commit
103 IF FND_API.To_Boolean(p_commit) THEN
104 COMMIT;
105 END IF;
106
107 EXCEPTION
108 WHEN FND_API.G_EXC_ERROR THEN
109 ROLLBACK TO Receive_PUB;
110 x_return_status := FND_API.G_RET_STS_ERROR;
111
112 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
113 p_count => x_msg_count,
114 p_data => x_msg_data);
115
116 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
117 ROLLBACK TO Receive_PUB;
118 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
119
120 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
121 p_count => x_msg_count,
122 p_data => x_msg_data);
123
124 WHEN OTHERS THEN
125 ROLLBACK TO Receive_PUB;
126 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
127
128 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
129 FND_MSG_PUB.Add_Exc_Msg(p_pkg_name => G_PKG_NAME,
130 p_procedure_name => l_api_name);
131 END IF;
132
133 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
134 p_count => x_msg_count,
135 p_data => x_msg_data);
136
137 END receive;
138
139
140 PROCEDURE transfer
141 ( p_api_version IN NUMBER,
142 p_commit IN VARCHAR2,
143 p_init_msg_list IN VARCHAR2,
144 x_return_status OUT NOCOPY VARCHAR2,
145 x_msg_count OUT NOCOPY NUMBER,
146 x_msg_data OUT NOCOPY VARCHAR2,
147 p_kanban_card_number IN VARCHAR2,
148 p_organization_code IN VARCHAR2,
149 p_transfer_quantity IN NUMBER,
150 p_process_flag IN VARCHAR2
151 )
152 IS
153 l_api_name CONSTANT VARCHAR2(30) := 'transfer';
154 l_api_version CONSTANT NUMBER := 1.0;
155
156 l_kanban_card_id NUMBER;
157
158 BEGIN
159
160 SAVEPOINT Transfer_PUB;
161
162 -- Standard call to check for call compatibility
163 IF NOT FND_API.Compatible_API_Call(l_api_version,
164 p_api_version,
165 l_api_name,
166 G_PKG_NAME)
167 THEN
168 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
169 END IF;
170
171 -- Initialize message list if p_init_msg_list is set to TRUE
172 IF FND_API.To_Boolean(p_init_msg_list) THEN
173 FND_MSG_PUB.Initialize;
174 END IF;
175
176 validate_ekanban_profile;
177
178 l_kanban_card_id := get_kanban_card_id(p_kanban_card_number, p_organization_code);
179
180 FLM_KANBAN_TRANSFER.complete_process(p_kanban_id => l_kanban_card_id,
181 p_transfer_qty => p_transfer_quantity,
182 p_process_flag => NVL(p_process_flag, 'N'),
183 x_retcode => x_return_status,
184 x_errmsg => x_msg_data);
185
186 -- Standard check of p_commit
187 IF FND_API.To_Boolean(p_commit) THEN
188 COMMIT;
189 END IF;
190
191 EXCEPTION
192 WHEN FND_API.G_EXC_ERROR THEN
193 ROLLBACK TO Transfer_PUB;
194 x_return_status := FND_API.G_RET_STS_ERROR;
195
196 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
197 p_count => x_msg_count,
198 p_data => x_msg_data);
199
200 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
201 ROLLBACK TO Transfer_PUB;
202 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
203
204 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
205 p_count => x_msg_count,
206 p_data => x_msg_data);
207
208 WHEN OTHERS THEN
209 ROLLBACK TO Transfer_PUB;
210 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
211
212 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
213 FND_MSG_PUB.Add_Exc_Msg(p_pkg_name => G_PKG_NAME,
214 p_procedure_name => l_api_name);
215 END IF;
216
217 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
218 p_count => x_msg_count,
219 p_data => x_msg_data);
220
221 END transfer;
222
223
224 PROCEDURE process_pull_sequence
225 ( p_api_version IN NUMBER,
226 p_commit IN VARCHAR2,
227 p_init_msg_list IN VARCHAR2,
228 x_return_status OUT NOCOPY VARCHAR2,
229 x_msg_count OUT NOCOPY NUMBER,
230 x_msg_data OUT NOCOPY VARCHAR2,
231 x_pull_sequence_rec IN OUT NOCOPY pull_sequence_rec_type,
232 x_supplier_tbl IN OUT NOCOPY kanban_supplier_tbl_type,
233 p_transaction_type IN NUMBER
234 )
235 IS
236 l_api_name CONSTANT VARCHAR2(30) := 'process_pull_sequence';
237 l_api_version CONSTANT NUMBER := 1.0;
238
239 BEGIN
240
241 SAVEPOINT Process_Pull_Sequence_PUB;
242
243 -- Standard call to check for call compatibility
244 IF NOT FND_API.Compatible_API_Call(l_api_version,
245 p_api_version,
246 l_api_name,
247 G_PKG_NAME)
248 THEN
249 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
250 END IF;
251
252 -- Initialize message list if p_init_msg_list is set to TRUE
253 IF FND_API.To_Boolean(p_init_msg_list) THEN
254 FND_MSG_PUB.Initialize;
255 END IF;
256
257 validate_ekanban_profile;
258
259 FLM_KANBAN_PUB.process_pull_sequence(p_pull_sequence_rec => x_pull_sequence_rec,
260 p_supplier_tbl => x_supplier_tbl,
261 p_transaction_type => p_transaction_type,
262 p_commit_flag => 'N',
263 x_ret_status => x_return_status,
264 x_error_msg => x_msg_data);
265
266 -- Standard check of p_commit
267 IF FND_API.To_Boolean(p_commit) THEN
268 COMMIT;
269 END IF;
270
271 EXCEPTION
272 WHEN FND_API.G_EXC_ERROR THEN
273 ROLLBACK TO Process_Pull_Sequence_PUB;
274 x_return_status := FND_API.G_RET_STS_ERROR;
275
276 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
277 p_count => x_msg_count,
278 p_data => x_msg_data);
279
280 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
281 ROLLBACK TO Process_Pull_Sequence_PUB;
282 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
283
284 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
285 p_count => x_msg_count,
286 p_data => x_msg_data);
287
288 WHEN OTHERS THEN
289 ROLLBACK TO Process_Pull_Sequence_PUB;
290 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
291
292 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
293 FND_MSG_PUB.Add_Exc_Msg(p_pkg_name => G_PKG_NAME,
294 p_procedure_name => l_api_name);
295 END IF;
296
297 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
298 p_count => x_msg_count,
299 p_data => x_msg_data);
300
301 END process_pull_sequence;
302
303
304 PROCEDURE process_cards
305 ( p_api_version IN NUMBER,
306 p_commit IN VARCHAR2,
307 p_init_msg_list IN VARCHAR2,
308 x_return_status OUT NOCOPY VARCHAR2,
309 x_msg_count OUT NOCOPY NUMBER,
310 x_msg_data OUT NOCOPY VARCHAR2,
311 x_kanban_card_rec IN OUT NOCOPY kanban_card_rec_type,
312 p_transaction_type IN NUMBER
313 )
314 IS
315 l_api_name CONSTANT VARCHAR2(30) := 'process_cards';
316 l_api_version CONSTANT NUMBER := 1.0;
317
318 BEGIN
319
320 SAVEPOINT Process_Cards_PUB;
321
322 -- Standard call to check for call compatibility
323 IF NOT FND_API.Compatible_API_Call(l_api_version,
324 p_api_version,
325 l_api_name,
326 G_PKG_NAME)
327 THEN
328 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
329 END IF;
330
331 -- Initialize message list if p_init_msg_list is set to TRUE
332 IF FND_API.To_Boolean(p_init_msg_list) THEN
333 FND_MSG_PUB.Initialize;
334 END IF;
335
336 validate_ekanban_profile;
337
338 FLM_KANBAN_PUB.process_cards(p_kanban_card_rec => x_kanban_card_rec,
339 p_transaction_type => p_transaction_type,
340 p_commit_flag => 'N',
341 x_ret_status => x_return_status,
342 x_err_msg => x_msg_data);
343
344 -- Standard check of p_commit
345 IF FND_API.To_Boolean(p_commit) THEN
346 COMMIT;
347 END IF;
348
349 EXCEPTION
350 WHEN FND_API.G_EXC_ERROR THEN
351 ROLLBACK TO Process_Cards_PUB;
352 x_return_status := FND_API.G_RET_STS_ERROR;
353
354 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
355 p_count => x_msg_count,
356 p_data => x_msg_data);
357
358 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
359 ROLLBACK TO Process_Cards_PUB;
360 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
361
362 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
363 p_count => x_msg_count,
364 p_data => x_msg_data);
365
366 WHEN OTHERS THEN
367 ROLLBACK TO Process_Cards_PUB;
368 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
369
370 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
371 FND_MSG_PUB.Add_Exc_Msg(p_pkg_name => G_PKG_NAME,
372 p_procedure_name => l_api_name);
373 END IF;
374
375 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
376 p_count => x_msg_count,
377 p_data => x_msg_data);
378
379 END process_cards;
380
381
382 PROCEDURE update_card_status
383 ( p_api_version IN NUMBER,
384 p_commit IN VARCHAR2,
385 p_init_msg_list IN VARCHAR2,
386 x_return_status OUT NOCOPY VARCHAR2,
387 x_msg_count OUT NOCOPY NUMBER,
388 x_msg_data OUT NOCOPY VARCHAR2,
389 p_kanban_card_number IN VARCHAR2,
390 p_organization_code IN VARCHAR2,
391 p_supply_status_from IN NUMBER,
392 p_supply_status_to IN NUMBER,
396 l_api_name CONSTANT VARCHAR2(30) := 'update_card_status';
393 p_card_status_to IN NUMBER
394 )
395 IS
397 l_api_version CONSTANT NUMBER := 1.0;
398
399 l_ret_msg_code NUMBER;
400
401 BEGIN
402
403 SAVEPOINT Update_Card_Status_PUB;
404
405 -- Standard call to check for call compatibility
406 IF NOT FND_API.Compatible_API_Call(l_api_version,
407 p_api_version,
408 l_api_name,
409 G_PKG_NAME)
410 THEN
411 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
412 END IF;
413
414 -- Initialize message list if p_init_msg_list is set to TRUE
415 IF FND_API.To_Boolean(p_init_msg_list) THEN
416 FND_MSG_PUB.Initialize;
417 END IF;
418
419 validate_ekanban_profile;
420
421 FLM_KANBANCARD_PUB.update_card_status(p_kanban_card_num => p_kanban_card_number,
422 p_org_code => p_organization_code,
423 p_supply_status_from => p_supply_status_from,
424 p_supply_status_to => p_supply_status_to,
425 p_card_status_to => p_card_status_to,
426 p_commit_flag => 'N',
427 x_retcode => x_return_status,
428 x_ret_msg_code => l_ret_msg_code,
429 x_err_msg => x_msg_data);
430
431 -- Standard check of p_commit
432 IF FND_API.To_Boolean(p_commit) THEN
433 COMMIT;
434 END IF;
435
436 EXCEPTION
437 WHEN FND_API.G_EXC_ERROR THEN
438 ROLLBACK TO Update_Card_Status_PUB;
439 x_return_status := FND_API.G_RET_STS_ERROR;
440
441 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
442 p_count => x_msg_count,
443 p_data => x_msg_data);
444
445 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
446 ROLLBACK TO Update_Card_Status_PUB;
447 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
448
449 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
450 p_count => x_msg_count,
451 p_data => x_msg_data);
452
453 WHEN OTHERS THEN
454 ROLLBACK TO Update_Card_Status_PUB;
455 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
456
457 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
458 FND_MSG_PUB.Add_Exc_Msg(p_pkg_name => G_PKG_NAME,
459 p_procedure_name => l_api_name);
460 END IF;
461
462 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
463 p_count => x_msg_count,
464 p_data => x_msg_data);
465
466 END update_card_status;
467
468
469 END FLM_EKANBAN_PUB;