[Home] [Help]
77: d_position := 30;
78:
79: -- If lines for a particular catalog name will get expired, move those
80: -- records to draft table and set expiration date for those lines
81: IF (PO_PDOI_PARAMS.g_request.calling_module =
82: PO_PDOI_CONSTANTS.g_CALL_MOD_CATALOG_UPLOAD
83: AND
84: PO_PDOI_PARAMS.g_request.catalog_to_expire IS NOT NULL) THEN
85:
80: -- records to draft table and set expiration date for those lines
81: IF (PO_PDOI_PARAMS.g_request.calling_module =
82: PO_PDOI_CONSTANTS.g_CALL_MOD_CATALOG_UPLOAD
83: AND
84: PO_PDOI_PARAMS.g_request.catalog_to_expire IS NOT NULL) THEN
85:
86: expire_lines_by_catalog_name;
87: END IF;
88: END IF;
155:
156: x_all_headers_processed := FND_API.G_FALSE;
157:
158: -- Increment round number
159: PO_PDOI_PARAMS.g_current_round_num := PO_PDOI_PARAMS.g_current_round_num + 1;
160:
161: IF (PO_LOG.d_stmt) THEN
162: PO_LOG.stmt(d_module, d_position, 'Current Round Number: ' ||
163: PO_PDOI_PARAMS.g_current_round_num);
159: PO_PDOI_PARAMS.g_current_round_num := PO_PDOI_PARAMS.g_current_round_num + 1;
160:
161: IF (PO_LOG.d_stmt) THEN
162: PO_LOG.stmt(d_module, d_position, 'Current Round Number: ' ||
163: PO_PDOI_PARAMS.g_current_round_num);
164: END IF;
165:
166: IF (PO_PDOI_PARAMS.g_original_doc_processed = FND_API.G_FALSE) THEN
167: d_position := 10;
162: PO_LOG.stmt(d_module, d_position, 'Current Round Number: ' ||
163: PO_PDOI_PARAMS.g_current_round_num);
164: END IF;
165:
166: IF (PO_PDOI_PARAMS.g_original_doc_processed = FND_API.G_FALSE) THEN
167: d_position := 10;
168:
169: -- First, we need to process NEW documents
170:
173: INTO l_intf_header_id_tbl
174: FROM (SELECT interface_header_id
175: FROM po_headers_interface
176: WHERE processing_round_num IS NULL
177: AND processing_id = PO_PDOI_PARAMS.g_processing_id
178: AND action IN (PO_PDOI_CONSTANTS.g_action_ORIGINAL,
179: PO_PDOI_CONSTANTS.g_action_ADD)
180: ORDER BY interface_header_id)
181: WHERE rownum <= PO_PDOI_PARAMS.g_request.batch_size;
177: AND processing_id = PO_PDOI_PARAMS.g_processing_id
178: AND action IN (PO_PDOI_CONSTANTS.g_action_ORIGINAL,
179: PO_PDOI_CONSTANTS.g_action_ADD)
180: ORDER BY interface_header_id)
181: WHERE rownum <= PO_PDOI_PARAMS.g_request.batch_size;
182:
183: IF (SQL%ROWCOUNT = 0) THEN
184: d_position := 20;
185:
184: d_position := 20;
185:
186: -- mark g_original_doc_processed to TRUE so that we won't process
187: -- NEW documents the next time we come here
188: PO_PDOI_PARAMS.g_original_doc_processed := FND_API.G_TRUE;
189:
190: IF (PO_LOG.d_stmt) THEN
191: PO_LOG.stmt(d_module, d_position, 'Finished progressing doc with ' ||
192: 'action = original ');
200: d_position := 30;
201:
202: FORALL i IN 1..l_intf_header_id_tbl.COUNT
203: UPDATE po_headers_interface
204: SET processing_round_num = PO_PDOI_PARAMS.g_current_round_num
205: WHERE interface_header_id = l_intf_header_id_tbl(i);
206:
207: IF (PO_LOG.d_stmt) THEN
208: PO_LOG.stmt(d_module, d_position, 'updated ' || SQL%ROWCOUNT ||
229: INTO l_intf_header_id_tbl,
230: l_po_header_id_tbl
231: FROM po_headers_interface
232: WHERE processing_round_num IS NULL
233: AND processing_id = PO_PDOI_PARAMS.g_processing_id
234: AND po_header_id IS NOT NULL
235: AND action IN (PO_PDOI_CONSTANTS.g_action_UPDATE,
236: PO_PDOI_CONSTANTS.g_action_REPLACE)
237: ORDER BY interface_header_id;
248: NOT l_process_list.EXISTS(l_po_header_id_tbl(i))) THEN
249: l_process_list(l_po_header_id_tbl(i)) := l_intf_header_id_tbl(i);
250: END IF;
251:
252: IF (l_process_list.COUNT >= PO_PDOI_PARAMS.g_request.batch_size) THEN
253: IF (PO_LOG.d_stmt) THEN
254: PO_LOG.stmt(d_module, d_position, '# of documents to process has ' ||
255: 'reached the limit. Wait for the next round');
256: END IF;
266: IF (l_process_list.COUNT > 0) THEN
267: -- assign round number for those in process list
268: FORALL i IN INDICES OF l_process_list
269: UPDATE po_headers_interface
270: SET processing_round_num = PO_PDOI_PARAMS.g_current_round_num
271: WHERE interface_header_id = l_process_list(i);
272:
273: IF (PO_LOG.d_stmt) THEN
274: PO_LOG.stmt(d_module, d_position, 'updated ' || SQL%ROWCOUNT ||
367: l_action_tbl,
368: l_revision_num_tbl
369: FROM po_headers_interface PHI,
370: po_headers_all PH
371: WHERE PHI.processing_id = PO_PDOI_PARAMS.g_processing_id
372: AND PHI.processing_round_num = PO_PDOI_PARAMS.g_current_round_num
373: AND PHI.po_header_id = PH.po_header_id(+);
374: --For Bug: 11794764.Refer bug for reference.
375: --FOR UPDATE OF PH.po_header_id;
368: l_revision_num_tbl
369: FROM po_headers_interface PHI,
370: po_headers_all PH
371: WHERE PHI.processing_id = PO_PDOI_PARAMS.g_processing_id
372: AND PHI.processing_round_num = PO_PDOI_PARAMS.g_current_round_num
373: AND PHI.po_header_id = PH.po_header_id(+);
374: --For Bug: 11794764.Refer bug for reference.
375: --FOR UPDATE OF PH.po_header_id;
376:
536: FORALL i IN 1..l_intf_header_id_tbl.COUNT
537: UPDATE po_headers_interface
538: SET draft_id = l_draft_id_tbl(i)
539: WHERE interface_header_id = l_intf_header_id_tbl(i)
540: AND processing_id = PO_PDOI_PARAMS.g_processing_id;
541:
542: d_position := 130;
543:
544: -- Since DB 10g (bug4340345) has probems using VALUES OF against EMPTY
566: ( l_draft_id_tbl(i),
567: l_po_header_id_tbl(i),
568: l_revision_num_tbl(i),
569: FND_GLOBAL.user_id,
570: PO_PDOI_PARAMS.g_request.role,
571: l_status,
572: SYSDATE,
573: FND_GLOBAL.user_id,
574: FND_GLOBAL.login_id,
584: FOR i IN 1..l_new_dft_idx_tbl.COUNT LOOP
585: -- get the interface header id that creates the new draft, and set
586: -- the new draft flag
587: l_intf_hdr_id := l_intf_header_id_tbl ( l_new_dft_idx_tbl(i) );
588: PO_PDOI_PARAMS.g_docs_info(l_intf_hdr_id).new_draft := FND_API.G_TRUE;
589:
590: END LOOP;
591:
592: d_position := 150;
664: INTO l_draft_id_tbl,
665: l_line_id_tbl
666: FROM po_headers_interface PHI,
667: po_lines_all POL
668: WHERE PHI.processing_id = PO_PDOI_PARAMS.g_processing_id
669: AND PHI.processing_round_num = PO_PDOI_PARAMS.g_current_round_num
670: AND PHI.po_header_id = POL.po_header_id
671: AND POL.catalog_name = PO_PDOI_PARAMS.g_request.catalog_to_expire
672: AND NVL(POL.cancel_flag, 'N') = 'N'
665: l_line_id_tbl
666: FROM po_headers_interface PHI,
667: po_lines_all POL
668: WHERE PHI.processing_id = PO_PDOI_PARAMS.g_processing_id
669: AND PHI.processing_round_num = PO_PDOI_PARAMS.g_current_round_num
670: AND PHI.po_header_id = POL.po_header_id
671: AND POL.catalog_name = PO_PDOI_PARAMS.g_request.catalog_to_expire
672: AND NVL(POL.cancel_flag, 'N') = 'N'
673: AND NVL(POL.closed_code, 'OPEN') <> 'FINALLY CLOSED'
667: po_lines_all POL
668: WHERE PHI.processing_id = PO_PDOI_PARAMS.g_processing_id
669: AND PHI.processing_round_num = PO_PDOI_PARAMS.g_current_round_num
670: AND PHI.po_header_id = POL.po_header_id
671: AND POL.catalog_name = PO_PDOI_PARAMS.g_request.catalog_to_expire
672: AND NVL(POL.cancel_flag, 'N') = 'N'
673: AND NVL(POL.closed_code, 'OPEN') <> 'FINALLY CLOSED'
674: AND NVL(POL.expiration_date, SYSDATE+1) > SYSDATE;
675:
750: IF (PO_LOG.d_proc) THEN
751: PO_LOG.proc_begin (d_module);
752: END IF;
753:
754: PO_PDOI_PARAMS.g_docs_info.DELETE;
755:
756: d_position := 10;
757:
758: FOR i IN 1..p_intf_header_id_tbl.COUNT LOOP
767: FROM po_lines_interface PLI
768: WHERE PLI.interface_header_id = p_intf_header_id_tbl(i)
769: AND PLI.process_code = PO_PDOI_CONSTANTS.g_PROCESS_CODE_REJECTED;
770:
771: PO_PDOI_PARAMS.g_docs_info(l_id).number_of_processed_lines :=
772: l_reject_count;
773: PO_PDOI_PARAMS.g_docs_info(l_id).number_of_errored_lines :=
774: l_reject_count;
775: PO_PDOI_PARAMS.g_docs_info(l_id).number_of_valid_lines := 0;
769: AND PLI.process_code = PO_PDOI_CONSTANTS.g_PROCESS_CODE_REJECTED;
770:
771: PO_PDOI_PARAMS.g_docs_info(l_id).number_of_processed_lines :=
772: l_reject_count;
773: PO_PDOI_PARAMS.g_docs_info(l_id).number_of_errored_lines :=
774: l_reject_count;
775: PO_PDOI_PARAMS.g_docs_info(l_id).number_of_valid_lines := 0;
776: PO_PDOI_PARAMS.g_docs_info(l_id).err_tolerance_exceeded := FND_API.G_FALSE;
777: PO_PDOI_PARAMS.g_docs_info(l_id).has_errors := FND_API.G_FALSE;
771: PO_PDOI_PARAMS.g_docs_info(l_id).number_of_processed_lines :=
772: l_reject_count;
773: PO_PDOI_PARAMS.g_docs_info(l_id).number_of_errored_lines :=
774: l_reject_count;
775: PO_PDOI_PARAMS.g_docs_info(l_id).number_of_valid_lines := 0;
776: PO_PDOI_PARAMS.g_docs_info(l_id).err_tolerance_exceeded := FND_API.G_FALSE;
777: PO_PDOI_PARAMS.g_docs_info(l_id).has_errors := FND_API.G_FALSE;
778: PO_PDOI_PARAMS.g_docs_info(l_id).has_lines_to_notify := FND_API.G_FALSE;
779: PO_PDOI_PARAMS.g_docs_info(l_id).new_draft := FND_API.G_FALSE; -- bug5129752
772: l_reject_count;
773: PO_PDOI_PARAMS.g_docs_info(l_id).number_of_errored_lines :=
774: l_reject_count;
775: PO_PDOI_PARAMS.g_docs_info(l_id).number_of_valid_lines := 0;
776: PO_PDOI_PARAMS.g_docs_info(l_id).err_tolerance_exceeded := FND_API.G_FALSE;
777: PO_PDOI_PARAMS.g_docs_info(l_id).has_errors := FND_API.G_FALSE;
778: PO_PDOI_PARAMS.g_docs_info(l_id).has_lines_to_notify := FND_API.G_FALSE;
779: PO_PDOI_PARAMS.g_docs_info(l_id).new_draft := FND_API.G_FALSE; -- bug5129752
780: END LOOP;
773: PO_PDOI_PARAMS.g_docs_info(l_id).number_of_errored_lines :=
774: l_reject_count;
775: PO_PDOI_PARAMS.g_docs_info(l_id).number_of_valid_lines := 0;
776: PO_PDOI_PARAMS.g_docs_info(l_id).err_tolerance_exceeded := FND_API.G_FALSE;
777: PO_PDOI_PARAMS.g_docs_info(l_id).has_errors := FND_API.G_FALSE;
778: PO_PDOI_PARAMS.g_docs_info(l_id).has_lines_to_notify := FND_API.G_FALSE;
779: PO_PDOI_PARAMS.g_docs_info(l_id).new_draft := FND_API.G_FALSE; -- bug5129752
780: END LOOP;
781:
774: l_reject_count;
775: PO_PDOI_PARAMS.g_docs_info(l_id).number_of_valid_lines := 0;
776: PO_PDOI_PARAMS.g_docs_info(l_id).err_tolerance_exceeded := FND_API.G_FALSE;
777: PO_PDOI_PARAMS.g_docs_info(l_id).has_errors := FND_API.G_FALSE;
778: PO_PDOI_PARAMS.g_docs_info(l_id).has_lines_to_notify := FND_API.G_FALSE;
779: PO_PDOI_PARAMS.g_docs_info(l_id).new_draft := FND_API.G_FALSE; -- bug5129752
780: END LOOP;
781:
782: IF (PO_LOG.d_proc) THEN
775: PO_PDOI_PARAMS.g_docs_info(l_id).number_of_valid_lines := 0;
776: PO_PDOI_PARAMS.g_docs_info(l_id).err_tolerance_exceeded := FND_API.G_FALSE;
777: PO_PDOI_PARAMS.g_docs_info(l_id).has_errors := FND_API.G_FALSE;
778: PO_PDOI_PARAMS.g_docs_info(l_id).has_lines_to_notify := FND_API.G_FALSE;
779: PO_PDOI_PARAMS.g_docs_info(l_id).new_draft := FND_API.G_FALSE; -- bug5129752
780: END LOOP;
781:
782: IF (PO_LOG.d_proc) THEN
783: PO_LOG.proc_end (d_module);