1 PACKAGE BODY PO_PDOI_GRP AS
2 /* $Header: PO_PDOI_GRP.plb 120.6.12020000.4 2013/02/10 19:26:58 vegajula ship $ */
3
4 d_pkg_name CONSTANT VARCHAR2(50) :=
5 PO_LOG.get_package_base('PO_PDOI_GRP');
6
7 -------------------------------------------------------
8 -------------- PUBLIC PROCEDURES ----------------------
9 -------------------------------------------------------
10
11 -----------------------------------------------------------------------
12 --Start of Comments
13 --Name: start_process
14 --Function:
15 -- Group procedure for PDOI, which is used for importing and updating
16 -- blankets, quotations or standard purchase orders
17 --Parameters:
18 --IN:
19 --p_api_version
20 -- API version of the program caller assumes
21 --p_init_msg_list
22 -- FND_API.G_TRUE if caller expects PDOI to initialize the message stack
23 -- maintained by FND_MSG_PUB.
24 -- FND_API.G_FALSE otherwise
25 --p_validation_level
26 -- Currently this parameter has no effect. PDOI always does full validation
27 --p_commit
28 -- Whether PDOI will issue commits
29 -- FND_API.G_TRUE if caller expects PDOI to commit data
30 -- FND_API.G_FALSE otherwise
31 --p_gather_intf_tbl_stat
32 -- Whether PDOI gather table statistics before processing.
33 -- 'Y' if statistics should be gathered. Consider this if a large
34 -- number of records are being inserted into the interface table
35 -- 'N' otherwise
36 --p_calling_module
37 -- The module name of the calling program. Value 'CATALOG UPLOAD' is reserved
38 -- to be used by calling from Calog upload program
39 --p_selected_batch_id
40 -- Batch id parameter. If this is specified, only the records with this batch
41 -- id will be processed.
42 --p_batch_size
43 -- Used for performance tuning. It specifies the number of header interface
44 -- records that will be processed for each bulk fetching. Default number is
45 -- PO_PDOI_CONSTANTS.g_DEF_BATCH_SIZE
46 --p_buyer_id
47 -- Default buyer of the document to be imported
48 --p_document_type
49 -- Type of the document that will be processed. Possible values are:
50 -- STANDARD, BLANKET, QUOTATION
51 --p_document_subtype
52 -- Default document subtype. Use it only if p_document_type is 'QUOTATION'.
53 --p_create_items
54 -- Specifies whether an item will be created as inventory item if the specified
55 -- item does not exist in the system.
56 -- 'Y' if item should be created
57 -- 'N' if item should NOT be created
58 --p_create_sourcing_rules_flag
59 -- Whether sourcing rules and ASL should be created as part of the creation
60 -- of blanket and quotation line
61 -- 'Y' if sourcing rules and ASL should be created
62 -- 'N' otherwise
63 --p_rel_gen_method
64 -- Release generation method of the ASL
65 --p_sourcing_level
66 -- Level of the sourcing rules assignment. Possible values:
67 -- ITEM, ITEM-ORGANIZATION
68 --p_sourcing_inv_org_id
69 -- If sourcing level is 'ITEM-ORGANIZATION', the organization where the
70 -- sourcing rule will be created in
71 --p_approved_status
72 -- Intended approval status the document after import. Possible values
73 -- INCOMPLETE - Incomplete documents
74 -- INITIATE APPROVAL - This means that the document will be submitted for
75 -- approval through approval workflow
76 -- APPROVED - Import as approved without submitting through approval wf
77 --p_process_code
78 -- Type of interface records to be processed. If this is specified, only
79 -- records with the specified process code will be processed
80 --p_interface_header_id
81 -- If this is specified, only record with this interface_header_id will be
82 -- processed
83 --p_org_id
84 -- Operating Unit where this PDOI will be running in. If this is not specified,
85 -- Current operating unit will be the operating unit for PDOI to run.
86 --p_ga_flag
87 -- Whether the blanket will be imported as global agreement or not.
88 -- 'Y' if blanekets should be imported as global agreements
89 --p_clm_flag
90 -- 'Y' if the concurrent request is for CLM Award/IDVs/Mods
91 --IN OUT:
92 --OUT:
93 --x_return_status
94 -- Return status of the API.
95 -- FND_API.G_RET_STS_SUCCESS if API is successful
96 -- FND_API.G_RET_STS_ERR if there are user errors
97 -- FND_API.G_RET_STS_UNEXP_ERR if unexpected error (exception) occurs
98 --End of Comments
99 ------------------------------------------------------------------------
100 PROCEDURE start_process
101 ( p_api_version IN NUMBER,
102 p_init_msg_list IN VARCHAR2,
103 p_validation_level IN NUMBER,
104 p_commit IN VARCHAR2,
105 x_return_status OUT NOCOPY VARCHAR2,
106 p_gather_intf_tbl_stat IN VARCHAR2,
107 p_calling_module IN VARCHAR2,
108 p_selected_batch_id IN NUMBER,
109 p_batch_size IN NUMBER,
110 p_buyer_id IN NUMBER,
111 p_document_type IN VARCHAR2,
112 p_document_subtype IN VARCHAR2,
113 p_create_items IN VARCHAR2,
114 p_create_sourcing_rules_flag IN VARCHAR2,
115 p_rel_gen_method IN VARCHAR2,
116 p_sourcing_level IN VARCHAR2,
117 p_sourcing_inv_org_id IN NUMBER,
118 p_approved_status IN VARCHAR2,
119 p_process_code IN VARCHAR2,
120 p_interface_header_id IN NUMBER,
121 p_org_id IN NUMBER,
122 p_ga_flag IN VARCHAR2,
123 p_clm_flag IN VARCHAR2 DEFAULT 'N' --CLM PDOI Project
124 ) IS
125
126 d_api_version CONSTANT NUMBER := 1.0;
127 d_api_name CONSTANT VARCHAR2(30) := 'start_process';
128 d_module CONSTANT VARCHAR2(255) := d_pkg_name || d_api_name || '.';
129 d_position NUMBER;
130
131 l_processed_lines_count NUMBER;
132 l_rejected_lines_count NUMBER;
133 l_err_tolerance_exceeded VARCHAR2(1);
134
135 BEGIN
136
137 d_position := 0;
138
139 IF (PO_LOG.d_proc) THEN
140 PO_LOG.proc_end(d_module);
141 END IF;
142
143 IF (p_init_msg_list = FND_API.G_TRUE) THEN
144 FND_MSG_PUB.initialize;
145 END IF;
146
147 IF (NOT FND_API.Compatible_API_Call
148 ( p_current_version_number => d_api_version,
149 p_caller_version_number => p_api_version,
150 p_api_name => d_api_name,
151 p_pkg_name => d_pkg_name
152 )
153 ) THEN
154
155 d_position := 10;
156 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
157 END IF; -- not compatible_api
158
159 d_position := 20;
160
161 PO_PDOI_PVT.start_process
162 ( p_api_version => 1.0,
163 p_init_msg_list => FND_API.G_FALSE,
164 p_validation_level => p_validation_level,
165 p_commit => p_commit,
166 x_return_status => x_return_status,
167 p_gather_intf_tbl_stat => p_gather_intf_tbl_stat,
168 p_calling_module => p_calling_module,
169 p_selected_batch_id => p_selected_batch_id,
170 p_batch_size => p_batch_size,
171 p_buyer_id => p_buyer_id,
172 p_document_type => p_document_type,
173 p_document_subtype => p_document_subtype,
174 p_create_items => p_create_items,
175 p_create_sourcing_rules_flag => p_create_sourcing_rules_flag,
176 p_rel_gen_method => p_rel_gen_method,
177 p_sourcing_level => p_sourcing_level,
178 p_sourcing_inv_org_id => p_sourcing_inv_org_id,
179 p_approved_status => p_approved_status,
180 p_process_code => p_process_code,
181 p_interface_header_id => p_interface_header_id,
182 p_org_id => p_org_id,
183 p_ga_flag => p_ga_flag,
184 p_submit_dft_flag => NULL,
185 p_role => PO_GLOBAL.g_ROLE_BUYER,
186 p_catalog_to_expire => NULL,
187 p_err_lines_tolerance => NULL,
188 p_clm_flag => p_clm_flag, --CLM PDOI Project
189 x_processed_lines_count => l_processed_lines_count,
190 x_rejected_lines_count => l_rejected_lines_count,
191 x_err_tolerance_exceeded => l_err_tolerance_exceeded
192 );
193
194 d_position := 30;
195
196 IF (PO_LOG.d_proc) THEN
197 PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);
198 END IF;
199
200 EXCEPTION
201 WHEN OTHERS THEN
202 PO_MESSAGE_S.add_exc_msg
203 ( p_pkg_name => d_pkg_name,
204 p_procedure_name => d_api_name || '.' || d_position
205 );
206 RAISE;
207 END start_process;
208
209
210 -----------------------------------------------------------------------
211 --Start of Comments
212 --Name: catalog_upload
213 --Function:
214 -- This API will be called by iP during catalog upload process. This API
215 -- internally calls PDOI to perform import action.
216 --Parameters:
217 --IN:
218 --p_api_version
219 -- API version of the program caller assumes
220 --p_init_msg_list
221 -- FND_API.G_TRUE if caller expects PDOI to initialize the message stack
222 -- maintained by FND_MSG_PUB.
223 -- FND_API.G_FALSE otherwise
224 --p_validation_level
225 -- Currently this parameter has no effect. PDOI always does full validation
226 --p_commit
227 -- Whether PDOI will issue commits
228 -- FND_API.G_TRUE if caller expects PDOI to commit data
229 -- FND_API.G_FALSE otherwise
230 --p_gather_intf_tbl_stat
231 -- Whether PDOI gather table statistics before processing.
232 -- 'Y' if statistics should be gathered. Consider this if a large
233 -- number of records are being inserted into the interface table
234 -- 'N' otherwise
235 --p_selected_batch_id
236 -- Batch id parameter. If this is specified, only the records with this batch
237 -- id will be processed.
238 --p_batch_size
239 -- Used for performance tuning. It specifies the number of header interface
240 -- records that will be processed for each bulk fetching. Default number is
241 -- PO_PDOI_CONSTANTS.g_DEF_BATCH_SIZE
242 --p_buyer_id
243 -- Default buyer of the document to be imported
244 --p_document_type
245 -- Type of the document that will be processed. Possible values are:
246 -- STANDARD, BLANKET, QUOTATION
247 --p_document_subtype
248 -- Default document subtype. Use it only if p_document_type is 'QUOTATION'.
249 --p_create_items
250 -- Specifies whether an item will be created as inventory item if the specified
251 -- item does not exist in the system.
252 -- 'Y' if item should be created
253 -- 'N' if item should NOT be created
254 --p_create_sourcing_rules_flag
255 -- Whether sourcing rules and ASL should be created as part of the creation
256 -- of blanket and quotation line
257 -- 'Y' if sourcing rules and ASL should be created
258 -- 'N' otherwise
259 --p_rel_gen_method
260 -- Release generation method of the ASL
261 --p_sourcing_level
262 -- Level of the sourcing rules assignment. Possible values:
263 -- ITEM, ITEM-ORGANIZATION
264 --p_sourcing_inv_org_id
265 -- If sourcing level is 'ITEM-ORGANIZATION', the organization where the
266 -- sourcing rule will be created in
267 --p_approved_status
268 -- Intended approval status the document after import. Possible values
269 -- INCOMPLETE - Incomplete documents
270 -- INITIATE APPROVAL - This means that the document will be submitted for
271 -- approval through approval workflow
272 -- APPROVED - Import as approved without submitting through approval wf
273 --p_process_code
274 -- Type of interface records to be processed. If this is specified, only
275 -- records with the specified process code will be processed
276 --p_interface_header_id
277 -- If this is specified, only record with this interface_header_id will be
278 -- processed
279 --p_org_id
280 -- Operating Unit where this PDOI will be running in. If this is not specified,
281 -- Current operating unit will be the operating unit for PDOI to run.
282 --p_ga_flag
283 -- Whether the blanket will be imported as global agreement or not.
284 -- 'Y' if blanekets should be imported as global agreements
285 --p_submit_dft_flag
286 -- ** Reserved for catalog upload **
287 -- Determines whether the draft changes should be submitted for buyer's
288 -- acceptance after they pass PDOI validations
289 -- 'Y' if changes should be submitted
290 -- 'N' otherwise
291 --p_role
292 -- ** Reserved for catalog upload ***
293 -- Role of the user calling PDOI. Possible values:
294 -- BUYER, SUPPLIER, CAT ADMIN
295 --p_catalog_to_expire
296 -- ** Reserved for catalog upload ***
297 -- If this is specified, all the lines with this value as the catalog name
298 -- will get expired
299 --p_err_lines_tolerance
300 -- ** Reserved for catalog upload **
301 -- Number of line errors PDOI can take before aborting the program.
302 -- Note: Even if PDOI is aborted, lines that get accepted will continue to
303 -- be processed.
304 --IN OUT:
305 --OUT:
306 --x_return_status
307 -- Return status of the API.
308 -- FND_API.G_RET_STS_SUCCESS if API is successful
309 -- FND_API.G_RET_STS_ERR if there are user errors
310 -- FND_API.G_RET_STS_UNEXP_ERR if unexpected error (exception) occurs
311 --x_error_message
312 -- Concatenation of error in case an error exists
313 --x_processed_lines_count
314 -- ** Populated for catalog upload only **
315 -- Number of lines being processed
316 --x_rejected_lines_count
317 -- ** Populated for catalog upload only **
318 -- Number of lines being rejected
319 --x_err_tolerance_exceeded
320 -- ** Populated for catalog upload only **
321 -- indicates whether error threshold is exceeded
322 -- FND_API.G_TRUE if exceeded
323 -- FND_API.G_FALSE otherwise
324 --End of Comments
325 ------------------------------------------------------------------------
326 PROCEDURE catalog_upload
327 ( p_api_version IN NUMBER,
328 p_init_msg_list IN VARCHAR2,
329 p_validation_level IN NUMBER,
330 p_commit IN VARCHAR2,
331 x_return_status OUT NOCOPY VARCHAR2,
332 x_error_message OUT NOCOPY VARCHAR2,
333 p_gather_intf_tbl_stat IN VARCHAR2,
334 p_selected_batch_id IN NUMBER,
335 p_batch_size IN NUMBER,
336 p_buyer_id IN NUMBER,
337 p_document_type IN VARCHAR2,
338 p_document_subtype IN VARCHAR2,
339 p_create_items IN VARCHAR2,
340 p_create_sourcing_rules_flag IN VARCHAR2,
341 p_rel_gen_method IN VARCHAR2,
342 p_sourcing_level IN VARCHAR2,
343 p_sourcing_inv_org_id IN NUMBER,
344 p_approved_status IN VARCHAR2,
345 p_process_code IN VARCHAR2,
346 p_interface_header_id IN NUMBER,
347 p_org_id IN NUMBER,
348 p_ga_flag IN VARCHAR2,
349 p_submit_dft_flag IN VARCHAR2,
350 p_role IN VARCHAR2,
351 p_catalog_to_expire IN VARCHAR2,
352 p_err_lines_tolerance IN NUMBER,
353 x_processed_lines_count OUT NOCOPY NUMBER,
354 x_rejected_lines_count OUT NOCOPY NUMBER,
355 x_err_tolerance_exceeded OUT NOCOPY VARCHAR2,
356 p_clm_flag IN VARCHAR2 DEFAULT 'N' --<Bug 14465697>
357 ) IS
358
359 d_api_version CONSTANT NUMBER := 1.0;
360 d_api_name CONSTANT VARCHAR2(30) := 'catalog_upload';
361 d_module CONSTANT VARCHAR2(255) := d_pkg_name || d_api_name || '.';
362 d_position NUMBER;
363
364 l_msg_temp VARCHAR2(2000);
365
366 BEGIN
367
368 d_position := 0;
369
370 IF (PO_LOG.d_proc) THEN
371 PO_LOG.proc_end(d_module);
372 END IF;
373
374 IF (p_init_msg_list = FND_API.G_TRUE) THEN
375 FND_MSG_PUB.initialize;
376 END IF;
377
378 IF (NOT FND_API.Compatible_API_Call
379 ( p_current_version_number => d_api_version,
380 p_caller_version_number => p_api_version,
381 p_api_name => d_api_name,
382 p_pkg_name => d_pkg_name
383 )
384 ) THEN
385
386 d_position := 10;
387 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
388 END IF; -- not compatible_api
389
390 d_position := 20;
391
392 PO_PDOI_PVT.start_process
393 ( p_api_version => 1.0,
394 p_init_msg_list => FND_API.G_FALSE,
395 p_validation_level => p_validation_level,
396 p_commit => p_commit,
397 x_return_status => x_return_status,
398 p_gather_intf_tbl_stat => p_gather_intf_tbl_stat,
399 p_calling_module => PO_PDOI_CONSTANTS.g_call_mod_CATALOG_UPLOAD,
400 p_selected_batch_id => p_selected_batch_id,
401 p_batch_size => p_batch_size,
402 p_buyer_id => p_buyer_id,
403 p_document_type => p_document_type,
404 p_document_subtype => p_document_subtype,
405 p_create_items => p_create_items,
406 p_create_sourcing_rules_flag => p_create_sourcing_rules_flag,
407 p_rel_gen_method => p_rel_gen_method,
408 p_sourcing_level => p_sourcing_level,
409 p_sourcing_inv_org_id => p_sourcing_inv_org_id,
410 p_approved_status => p_approved_status,
411 p_process_code => p_process_code,
412 p_interface_header_id => p_interface_header_id,
413 p_org_id => p_org_id,
414 p_ga_flag => p_ga_flag,
415 p_submit_dft_flag => p_submit_dft_flag,
416 p_role => p_role,
417 p_catalog_to_expire => p_catalog_to_expire,
418 p_clm_flag => p_clm_flag, --CLM PDOI Project
419 p_err_lines_tolerance => p_err_lines_tolerance,
420 x_processed_lines_count => x_processed_lines_count,
421 x_rejected_lines_count => x_rejected_lines_count,
422 x_err_tolerance_exceeded => x_err_tolerance_exceeded
423 );
424
425 -- For Catalog Upload, we need to return error messaeg in case
426 -- an error occurs.
427 IF (x_return_status <> 'S') THEN
428 FOR i IN 1..FND_MSG_PUB.count_msg LOOP
429 l_msg_temp := FND_MSG_PUB.get
430 ( p_msg_index => i,
431 p_encoded => 'F'
432 );
433
434 x_error_message := SUBSTRB(x_error_message || l_msg_temp || ' ',
435 2000);
436 END LOOP;
437 END IF;
438
439
440 d_position := 30;
441
442 IF (PO_LOG.d_proc) THEN
443 PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);
444 PO_LOG.proc_end(d_module, 'x_processed_liens_count', x_processed_lines_count);
445 PO_LOG.proc_end(d_module, 'x_rejected_lines_count', x_rejected_lines_count);
446 PO_LOG.proc_end(d_module, 'x_err_tolerance_exceeded', x_err_tolerance_exceeded);
447 END IF;
448
449 EXCEPTION
450 WHEN OTHERS THEN
451 PO_MESSAGE_S.add_exc_msg
452 ( p_pkg_name => d_pkg_name,
453 p_procedure_name => d_api_name || '.' || d_position
454 );
455
456 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
457
458 END catalog_upload;
459
460
461 -----------------------------------------------------------------------
462 --Start of Comments
463 --Name: handle_price_tolerance_resp
464 --Function:
465 -- This API handles response from buyer about lines that exceed
466 -- price tolerance
467 --Parameters:
468 --IN:
469 --p_api_version
470 -- API version of the program caller assumes
471 --p_init_msg_list
472 -- FND_API.G_TRUE if caller expects PDOI to initialize the message stack
473 -- maintained by FND_MSG_PUB.
474 -- FND_API.G_FALSE otherwise
475 --p_validation_level
476 -- Currently this parameter has no effect. PDOI always does full validation
477 --p_commit
478 -- Whether PDOI will issue commits
479 -- FND_API.G_TRUE if caller expects PDOI to commit data
480 -- FND_API.G_FALSE otherwise
481 --p_selected_batch_id
482 -- Batch id parameter. If this is specified, only the records with this batch
483 -- id will be processed.
484 --p_document_type
485 -- Type of the document that will be processed. Possible values are:
486 -- STANDARD, BLANKET, QUOTATION
487 --p_document_subtype
488 -- Default document subtype. Use it only if p_document_type is 'QUOTATION'.
489 --p_interface_header_id
490 -- If this is specified, only record with this interface_header_id will be
491 -- processed
492 --p_org_id
493 -- Operating Unit where this PDOI will be running in. If this is not specified,
494 -- Current operating unit will be the operating unit for PDOI to run.
495 --IN OUT:
496 --OUT:
497 --x_return_status
498 -- Return status of the API.
499 -- FND_API.G_RET_STS_SUCCESS if API is successful
500 -- FND_API.G_RET_STS_ERR if there are user errors
501 -- FND_API.G_RET_STS_UNEXP_ERR if unexpected error (exception) occurs
502 --End of Comments
503 ------------------------------------------------------------------------
504 PROCEDURE handle_price_tolerance_resp
505 ( p_api_version IN NUMBER,
506 p_init_msg_list IN VARCHAR2,
507 p_validation_level IN NUMBER,
508 p_commit IN VARCHAR2,
509 x_return_status OUT NOCOPY VARCHAR2,
510 p_selected_batch_id IN NUMBER,
511 p_document_type IN VARCHAR2,
512 p_document_subtype IN VARCHAR2,
513 p_interface_header_id IN NUMBER,
514 p_org_id IN NUMBER,
515 p_clm_flag IN VARCHAR2 DEFAULT 'N' --<Bug 14465697>
516 ) IS
517
518 d_api_version CONSTANT NUMBER := 1.0;
519 d_api_name CONSTANT VARCHAR2(30) := 'handle_price_tolerance_resp';
520 d_module CONSTANT VARCHAR2(255) := d_pkg_name || d_api_name || '.';
521 d_position NUMBER;
522
523 l_processed_lines_count NUMBER;
524 l_rejected_lines_count NUMBER;
525 l_err_tolerance_exceeded VARCHAR2(1);
526
527 BEGIN
528
529 d_position := 0;
530
531 IF (PO_LOG.d_proc) THEN
532 PO_LOG.proc_end(d_module);
533 END IF;
534
535 IF (p_init_msg_list = FND_API.G_TRUE) THEN
536 FND_MSG_PUB.initialize;
537 END IF;
538
539 IF (NOT FND_API.Compatible_API_Call
540 ( p_current_version_number => d_api_version,
541 p_caller_version_number => p_api_version,
542 p_api_name => d_api_name,
543 p_pkg_name => d_pkg_name
544 )
545 ) THEN
546
547 d_position := 10;
548 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
549 END IF; -- not compatible_api
550
551 d_position := 20;
552
553 PO_PDOI_PVT.start_process
554 ( p_api_version => 1.0,
555 p_init_msg_list => FND_API.G_FALSE,
556 p_validation_level => p_validation_level,
557 p_commit => p_commit,
558 x_return_status => x_return_status,
559 p_gather_intf_tbl_stat => 'N',
560 p_calling_module => PO_PDOI_CONSTANTS.g_call_mod_PRICE_TOL_RESP,
561 p_selected_batch_id => p_selected_batch_id,
562 p_batch_size => 1,
563 p_buyer_id => NULL,
564 p_document_type => p_document_type,
565 p_document_subtype => p_document_subtype,
566 p_create_items => 'N',
567 p_create_sourcing_rules_flag => 'N',
568 p_rel_gen_method => NULL,
569 p_sourcing_level => NULL,
570 p_sourcing_inv_org_id => NULL,
571 p_approved_status => NULL,
572 p_process_code => PO_PDOI_CONSTANTS.g_PROCESS_CODE_NOTIFIED,
573 p_interface_header_id => p_interface_header_id,
574 p_org_id => p_org_id,
575 p_ga_flag => NULL,
576 p_submit_dft_flag => NULL,
577 p_role => PO_GLOBAL.g_ROLE_BUYER,
578 p_catalog_to_expire => NULL,
579 p_clm_flag => p_clm_flag, --CLM PDOI Project
580 p_err_lines_tolerance => NULL,
581 x_processed_lines_count => l_processed_lines_count,
582 x_rejected_lines_count => l_rejected_lines_count,
583 x_err_tolerance_exceeded => l_err_tolerance_exceeded
584 );
585
586 d_position := 30;
587
588 IF (PO_LOG.d_proc) THEN
589 PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);
590 END IF;
591
592 EXCEPTION
593 WHEN OTHERS THEN
594 PO_MESSAGE_S.add_exc_msg
595 ( p_pkg_name => d_pkg_name,
596 p_procedure_name => d_api_name || '.' || d_position
597 );
598
599 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
600 END handle_price_tolerance_resp;
601
602
603 END PO_PDOI_GRP;