[Home] [Help]
PACKAGE BODY: APPS.BOMPPRCB
Source
1 package body BOMPPRCB as
2 /* $Header: BOMPRCBB.pls 115.6 2002/10/31 07:33:35 djebar ship $ */
3 function bmprobm_process_bom
4 ( ato_flag in NUMBER,
5 prg_appid in NUMBER,
6 prg_id in NUMBER,
7 req_id in NUMBER,
8 user_id in NUMBER,
9 login_id in NUMBER,
10 error_message out VARCHAR2,
11 message_name out VARCHAR2,
12 table_name out VARCHAR2)
13 return integer
14 is
15 stmt_num number;
16 BEGIN
17
18 /*
19 ** process bom interface table
20 */
21 stmt_num := 10;
22 table_name := 'BOM_BILL_OF_MATERIALS';
23 insert into BOM_BILL_OF_MATERIALS(
24 assembly_item_id,
25 organization_id,
26 alternate_bom_designator,
27 last_update_date,
28 last_updated_by,
29 creation_date,
30 created_by,
31 last_update_login,
32 specific_assembly_comment,
33 pending_from_ecn,
34 attribute_category,
35 attribute1,
36 attribute2,
37 attribute3,
38 attribute4,
39 attribute5,
40 attribute6,
41 attribute7,
42 attribute8,
43 attribute9,
44 attribute10,
45 attribute11,
46 attribute12,
47 attribute13,
48 attribute14,
49 attribute15,
50 assembly_type,
51 common_bill_sequence_id,
52 bill_sequence_id,
53 request_id,
54 program_application_id,
55 program_id,
56 program_update_date
57 )
58 select
59 b.assembly_item_id,
60 b.organization_id,
61 b.alternate_bom_designator,
62 b.last_update_date,
63 user_id, /* last_updated_by */
64 b.creation_date,
65 user_id, /* created_by */
66 login_id, /* last_update_login */
67 b.specific_assembly_comment,
68 b.pending_from_ecn,
69 b.attribute_category,
70 b.attribute1,
71 b.attribute2,
72 b.attribute3,
73 b.attribute4,
74 b.attribute5,
75 b.attribute6,
76 b.attribute7,
77 b.attribute8,
78 b.attribute9,
79 b.attribute10,
80 b.attribute11,
81 b.attribute12,
82 b.attribute13,
83 b.attribute14,
84 b.attribute15,
85 b.assembly_type,
86 b.common_bill_sequence_id,
87 b.bill_sequence_id,
88 req_id, /* request_id */
89 prg_appid, /* program_application_id */
90 prg_id, /* program_id */
91 SYSDATE /* program_update_date */
92 from BOM_BILL_OF_MTLS_INTERFACE b
93 where b.set_id = TO_CHAR(to_number(USERENV('SESSIONID')));
94
95 /*
96 ** Process inventory components interface table
97 */
98
99 stmt_num := 20;
100 table_name := 'BOM_INVENTORY_COMPONENTS';
101 insert into BOM_INVENTORY_COMPONENTS
102 (
103 OPERATION_SEQ_NUM,
104 COMPONENT_ITEM_ID,
105 LAST_UPDATE_DATE,
106 LAST_UPDATED_BY,
107 CREATION_DATE,
108 CREATED_BY,
109 LAST_UPDATE_LOGIN,
110 ITEM_NUM,
111 COMPONENT_QUANTITY,
112 COMPONENT_YIELD_FACTOR,
113 COMPONENT_REMARKS,
114 EFFECTIVITY_DATE,
115 CHANGE_NOTICE,
116 IMPLEMENTATION_DATE,
117 DISABLE_DATE,
118 ATTRIBUTE_CATEGORY,
119 ATTRIBUTE1,
120 ATTRIBUTE2,
121 ATTRIBUTE3,
122 ATTRIBUTE4,
123 ATTRIBUTE5,
124 ATTRIBUTE6,
125 ATTRIBUTE7,
126 ATTRIBUTE8,
127 ATTRIBUTE9,
128 ATTRIBUTE10,
129 ATTRIBUTE11,
130 ATTRIBUTE12,
131 ATTRIBUTE13,
132 ATTRIBUTE14,
133 ATTRIBUTE15,
134 PLANNING_FACTOR,
135 QUANTITY_RELATED,
136 SO_BASIS,
137 OPTIONAL,
138 MUTUALLY_EXCLUSIVE_OPTIONS,
139 INCLUDE_IN_COST_ROLLUP,
140 CHECK_ATP,
141 SHIPPING_ALLOWED,
142 REQUIRED_TO_SHIP,
143 REQUIRED_FOR_REVENUE,
144 INCLUDE_ON_SHIP_DOCS,
145 INCLUDE_ON_BILL_DOCS,
146 LOW_QUANTITY,
147 HIGH_QUANTITY,
148 ACD_TYPE,
149 OLD_COMPONENT_SEQUENCE_ID,
150 COMPONENT_SEQUENCE_ID,
151 BILL_SEQUENCE_ID,
152 REQUEST_ID,
153 PROGRAM_APPLICATION_ID,
154 PROGRAM_ID,
155 PROGRAM_UPDATE_DATE,
156 WIP_SUPPLY_TYPE,
157 OPERATION_LEAD_TIME_PERCENT,
158 REVISED_ITEM_SEQUENCE_ID,
159 SUPPLY_LOCATOR_ID,
160 SUPPLY_SUBINVENTORY,
161 PICK_COMPONENTS,
162 BOM_ITEM_TYPE
163 )
164 select
165 b.OPERATION_SEQ_NUM,
166 b.COMPONENT_ITEM_ID,
167 b.LAST_UPDATE_DATE,
168 user_id, /* LAST_UPDATED_BY */
169 b.CREATION_DATE,
170 user_id, /* created_by */
171 login_id, /* last_update_login */
172 b.ITEM_NUM,
173 b.COMPONENT_QUANTITY,
174 b.COMPONENT_YIELD_FACTOR,
175 b.COMPONENT_REMARKS,
176 b.EFFECTIVITY_DATE,
177 b.CHANGE_NOTICE,
178 b.IMPLEMENTATION_DATE,
179 b.DISABLE_DATE,
180 b.ATTRIBUTE_CATEGORY,
181 b.ATTRIBUTE1,
182 b.ATTRIBUTE2,
183 b.ATTRIBUTE3,
184 b.ATTRIBUTE4,
185 b.ATTRIBUTE5,
186 b.ATTRIBUTE6,
187 b.ATTRIBUTE7,
188 b.ATTRIBUTE8,
189 b.ATTRIBUTE9,
190 b.ATTRIBUTE10,
191 b.ATTRIBUTE11,
192 b.ATTRIBUTE12,
193 b.ATTRIBUTE13,
194 b.ATTRIBUTE14,
195 b.ATTRIBUTE15,
196 b.PLANNING_FACTOR,
197 b.QUANTITY_RELATED,
198 b.SO_BASIS,
199 b.OPTIONAL,
200 b.MUTUALLY_EXCLUSIVE_OPTIONS,
201 b.INCLUDE_IN_COST_ROLLUP,
202 b.CHECK_ATP,
203 b.SHIPPING_ALLOWED,
204 b.REQUIRED_TO_SHIP,
205 b.REQUIRED_FOR_REVENUE,
206 b.INCLUDE_ON_SHIP_DOCS,
207 b.INCLUDE_ON_BILL_DOCS,
208 b.LOW_QUANTITY,
209 b.HIGH_QUANTITY,
210 b.ACD_TYPE,
211 b.OLD_COMPONENT_SEQUENCE_ID,
212 b.COMPONENT_SEQUENCE_ID,
213 b.BILL_SEQUENCE_ID,
214 req_id, /* request_id */
215 prg_appid, /* program_application_id */
216 prg_id, /* program_id */
217 SYSDATE, /* program_update_date */
218 b.WIP_SUPPLY_TYPE,
219 b.OPERATION_LEAD_TIME_PERCENT,
220 b.REVISED_ITEM_SEQUENCE_ID,
221 b.SUPPLY_LOCATOR_ID,
222 b.SUPPLY_SUBINVENTORY,
223 b.PICK_COMPONENTS,
224 i.BOM_ITEM_TYPE
225 from MTL_SYSTEM_ITEMS i,
226 BOM_INVENTORY_COMPS_INTERFACE b,
227 BOM_BILL_OF_MTLS_INTERFACE b1
228 where b.bill_sequence_id = b1.bill_sequence_id
229 and b1.organization_id = i.organization_id
230 and b.component_item_id = i.inventory_item_id
231 and b1.set_id = TO_CHAR(to_number(USERENV('SESSIONID')));
232
233
234 /*
235 ** Process reference designators interface table
236 */
237 stmt_num := 40;
238 table_name := 'BOM_REFERENCE_DESIGNATORS';
239 insert into BOM_REFERENCE_DESIGNATORS
240 (
241 COMPONENT_REFERENCE_DESIGNATOR,
242 LAST_UPDATE_DATE,
243 LAST_UPDATED_BY,
244 CREATION_DATE,
245 CREATED_BY,
246 LAST_UPDATE_LOGIN,
247 REF_DESIGNATOR_COMMENT,
248 CHANGE_NOTICE ,
249 COMPONENT_SEQUENCE_ID,
250 ACD_TYPE,
251 REQUEST_ID,
252 PROGRAM_APPLICATION_ID,
253 PROGRAM_ID,
254 PROGRAM_UPDATE_DATE,
255 ATTRIBUTE_CATEGORY,
256 ATTRIBUTE1 ,
257 ATTRIBUTE2,
258 ATTRIBUTE3,
259 ATTRIBUTE4,
260 ATTRIBUTE5,
261 ATTRIBUTE6,
262 ATTRIBUTE7,
263 ATTRIBUTE8,
264 ATTRIBUTE9,
265 ATTRIBUTE10,
266 ATTRIBUTE11,
267 ATTRIBUTE12,
268 ATTRIBUTE13,
269 ATTRIBUTE14,
270 ATTRIBUTE15
271 )
272 select
273 b1.COMPONENT_REFERENCE_DESIGNATOR,
274 b1.LAST_UPDATE_DATE,
275 user_id, /* LAST_UPDATED_BY */
276 b1.CREATION_DATE,
277 user_id, /* created_by */
278 login_id, /* last_update_login */
279 b1.REF_DESIGNATOR_COMMENT,
280 b1.CHANGE_NOTICE ,
281 b1.COMPONENT_SEQUENCE_ID,
282 b1.ACD_TYPE,
283 req_id, /* request_id */
284 prg_appid, /* program_application_id */
285 prg_id, /* program_id */
286 SYSDATE, /* program_update_date */
287 b1.ATTRIBUTE_CATEGORY,
288 b1.ATTRIBUTE1 ,
289 b1.ATTRIBUTE2,
290 b1.ATTRIBUTE3,
291 b1.ATTRIBUTE4,
292 b1.ATTRIBUTE5,
293 b1.ATTRIBUTE6,
294 b1.ATTRIBUTE7,
295 b1.ATTRIBUTE8,
296 b1.ATTRIBUTE9,
297 b1.ATTRIBUTE10,
298 b1.ATTRIBUTE11,
299 b1.ATTRIBUTE12,
300 b1.ATTRIBUTE13,
301 b1.ATTRIBUTE14,
302 b1.ATTRIBUTE15
303 from BOM_REF_DESGS_INTERFACE b1,
304 BOM_INVENTORY_COMPS_INTERFACE b2,
305 BOM_BILL_OF_MTLS_INTERFACE b3
306 where b1.component_sequence_id = b2.component_sequence_id
307 and b2.bill_sequence_id = b3.bill_sequence_id
308 and b3.set_id = TO_CHAR(to_number(USERENV('SESSIONID')));
309
310 /*
311 ** Process substitute components interface table
312 */
313 stmt_num := 50;
314 table_name := 'BOM_SUBSTITUTE_COMPONENTS';
315 insert into BOM_SUBSTITUTE_COMPONENTS
316 (
317 SUBSTITUTE_COMPONENT_ID,
318 LAST_UPDATE_DATE,
319 LAST_UPDATED_BY,
320 CREATION_DATE,
321 CREATED_BY,
322 LAST_UPDATE_LOGIN,
323 SUBSTITUTE_ITEM_QUANTITY,
324 ACD_TYPE,
325 ATTRIBUTE_CATEGORY,
326 ATTRIBUTE1,
327 ATTRIBUTE2 ,
328 ATTRIBUTE3,
329 ATTRIBUTE4,
330 ATTRIBUTE5,
331 ATTRIBUTE6,
332 ATTRIBUTE7,
333 ATTRIBUTE8,
334 ATTRIBUTE9,
335 ATTRIBUTE10,
336 ATTRIBUTE11,
337 ATTRIBUTE12,
338 ATTRIBUTE13,
339 ATTRIBUTE14,
340 ATTRIBUTE15,
341 CHANGE_NOTICE ,
342 COMPONENT_SEQUENCE_ID,
343 REQUEST_ID,
347 )
344 PROGRAM_APPLICATION_ID,
345 PROGRAM_ID ,
346 PROGRAM_UPDATE_DATE
348 select
349 b1.SUBSTITUTE_COMPONENT_ID,
350 b1.LAST_UPDATE_DATE,
351 user_id, /* LAST_UPDATED_BY */
352 b1.CREATION_DATE,
353 user_id, /* created_by */
354 login_id, /* last_update_login */
355 b1.SUBSTITUTE_ITEM_QUANTITY,
356 b1.ACD_TYPE,
357 b1.ATTRIBUTE_CATEGORY,
358 b1.ATTRIBUTE1,
359 b1.ATTRIBUTE2 ,
360 b1.ATTRIBUTE3,
361 b1.ATTRIBUTE4,
362 b1.ATTRIBUTE5,
363 b1.ATTRIBUTE6,
364 b1.ATTRIBUTE7,
365 b1.ATTRIBUTE8,
366 b1.ATTRIBUTE9,
367 b1.ATTRIBUTE10,
368 b1.ATTRIBUTE11,
369 b1.ATTRIBUTE12,
370 b1.ATTRIBUTE13,
371 b1.ATTRIBUTE14,
372 b1.ATTRIBUTE15,
373 b1.CHANGE_NOTICE,
374 b1.COMPONENT_SEQUENCE_ID,
375 req_id, /* request_id */
376 prg_appid, /* program_application_id */
377 prg_id, /* program_id */
378 SYSDATE /* program_update_date */
379 from BOM_SUB_COMPS_INTERFACE b1,
380 BOM_INVENTORY_COMPS_INTERFACE b2,
381 BOM_BILL_OF_MTLS_INTERFACE b3
382 where b1.component_sequence_id = b2.component_sequence_id
383 and b2.bill_sequence_id = b3.bill_sequence_id
384 and b3.set_id = TO_CHAR(to_number(USERENV('SESSIONID')));
385
386 return(1);
387
388 EXCEPTION
389 WHEN NO_DATA_FOUND THEN
390 return(1);
391 WHEN OTHERS THEN
392 error_message := 'BOMPPRCB:'||to_char(stmt_num)||':'|| substrb(sqlerrm,1,150);
393 message_name := 'BOM_ATO_PROCESS_ERROR';
394 return(0);
395
396 END bmprobm_process_bom;
397
398
399 function bmprort_process_rtg
400 ( ato_flag in NUMBER,
401 perform_fc in NUMBER,
402 prg_appid in NUMBER,
403 prg_id in NUMBER,
404 req_id in NUMBER,
405 user_id in NUMBER,
406 login_id in NUMBER,
407 error_message out VARCHAR2,
408 message_name out VARCHAR2,
409 table_name out VARCHAR2)
410 return integer
411 is
412 stmt_num number;
413 x_install_cfm BOOLEAN;
414 x_status VARCHAR2(1);
415 x_industry VARCHAR2(1);
416 x_schema VARCHAR2(30);
417 l_routing number;
418
419 cursor allRoutings is
420 select organization_id, routing_sequence_id,cfm_routing_flag
421 from bom_op_routings_interface b
422 where b.set_id = to_char(to_number(USERENV('SESSIONID')));
423
424 cursor allops is
425 select operation_sequence_id, model_op_seq_id
426 from bom_op_sequences_interface
427 where routing_sequence_id = l_routing;
428
429 BEGIN
430
431 /*
432 ** Process routing header interface table
433 */
434 stmt_num := 60;
435 table_name := 'BOM_OPERATIONAL_ROUTINGS';
436 insert into BOM_OPERATIONAL_ROUTINGS
437 (
438 ROUTING_SEQUENCE_ID,
439 ASSEMBLY_ITEM_ID,
440 ORGANIZATION_ID,
441 ALTERNATE_ROUTING_DESIGNATOR,
442 LAST_UPDATE_DATE,
443 LAST_UPDATED_BY,
444 CREATION_DATE,
445 CREATED_BY,
446 LAST_UPDATE_LOGIN,
447 ROUTING_TYPE,
448 COMMON_ROUTING_SEQUENCE_ID,
449 COMMON_ASSEMBLY_ITEM_ID,
450 ROUTING_COMMENT,
451 COMPLETION_SUBINVENTORY,
452 COMPLETION_LOCATOR_ID,
453 ATTRIBUTE_CATEGORY,
454 ATTRIBUTE1,
455 ATTRIBUTE2,
456 ATTRIBUTE3,
457 ATTRIBUTE4,
458 ATTRIBUTE5,
459 ATTRIBUTE6,
460 ATTRIBUTE7,
461 ATTRIBUTE8,
462 ATTRIBUTE9,
463 ATTRIBUTE10,
464 ATTRIBUTE11,
465 ATTRIBUTE12,
466 ATTRIBUTE13,
467 ATTRIBUTE14,
468 ATTRIBUTE15,
472 PROGRAM_UPDATE_DATE,
469 REQUEST_ID,
470 PROGRAM_APPLICATION_ID,
471 PROGRAM_ID,
473 LINE_ID,
474 CFM_ROUTING_FLAG,
475 MIXED_MODEL_MAP_FLAG,
476 PRIORITY,
477 TOTAL_PRODUCT_CYCLE_TIME,
478 CTP_FLAG
479 )
480 select
481 b.ROUTING_SEQUENCE_ID,
482 b.ASSEMBLY_ITEM_ID,
483 b.ORGANIZATION_ID,
484 b.ALTERNATE_ROUTING_DESIGNATOR,
485 b.LAST_UPDATE_DATE,
486 user_id, /* LAST_UPDATED_BY */
487 b.CREATION_DATE,
488 user_id, /* created_by */
489 login_id, /* last_update_login */
490 b.ROUTING_TYPE,
491 b.COMMON_ROUTING_SEQUENCE_ID,
492 b.COMMON_ASSEMBLY_ITEM_ID,
493 b.ROUTING_COMMENT,
494 b.COMPLETION_SUBINVENTORY,
495 b.COMPLETION_LOCATOR_ID,
496 b.ATTRIBUTE_CATEGORY,
497 b.ATTRIBUTE1,
498 b.ATTRIBUTE2,
499 b.ATTRIBUTE3,
500 b.ATTRIBUTE4,
501 b.ATTRIBUTE5,
502 b.ATTRIBUTE6,
503 b.ATTRIBUTE7,
504 b.ATTRIBUTE8,
505 b.ATTRIBUTE9,
506 b.ATTRIBUTE10,
507 b.ATTRIBUTE11,
508 b.ATTRIBUTE12,
509 b.ATTRIBUTE13,
510 b.ATTRIBUTE14,
511 b.ATTRIBUTE15,
512 req_id, /* request_id */
513 prg_appid, /* program_application_id */
514 prg_id, /* program_id */
515 SYSDATE, /* program_update_date */
516 line_id,
517 cfm_routing_flag,
518 mixed_model_map_flag,
519 priority,
520 total_product_cycle_time,
521 ctp_flag
522 from BOM_OP_ROUTINGS_INTERFACE b
523 where b.set_id = TO_CHAR(to_number(USERENV('SESSIONID')));
524
525 /*
526 ** Process routing revision interface table
527 */
528 stmt_num := 70;
529 table_name := 'MTL_RTG_ITEM_REVISIONS';
530 insert into MTL_RTG_ITEM_REVISIONS
531 (
532 INVENTORY_ITEM_ID,
533 ORGANIZATION_ID,
534 PROCESS_REVISION,
535 LAST_UPDATE_DATE,
536 LAST_UPDATED_BY,
537 CREATION_DATE,
538 CREATED_BY,
539 LAST_UPDATE_LOGIN,
540 CHANGE_NOTICE ,
541 ECN_INITIATION_DATE,
542 IMPLEMENTATION_DATE,
543 IMPLEMENTED_SERIAL_NUMBER,
544 EFFECTIVITY_DATE ,
545 ATTRIBUTE_CATEGORY,
546 ATTRIBUTE1 ,
547 ATTRIBUTE2,
548 ATTRIBUTE3,
549 ATTRIBUTE4,
550 ATTRIBUTE5,
551 ATTRIBUTE6,
552 ATTRIBUTE7,
553 ATTRIBUTE8,
554 ATTRIBUTE9,
555 ATTRIBUTE10,
556 ATTRIBUTE11,
557 ATTRIBUTE12,
558 ATTRIBUTE13 ,
559 ATTRIBUTE14,
560 ATTRIBUTE15
561 )
562 select
563 ASSEMBLY_ITEM_ID,
564 ORGANIZATION_ID,
565 PROCESS_REVISION,
566 SYSDATE, /* LAST_UPDATE_DATE */
567 user_id, /* LAST_UPDATED_BY */
568 SYSDATE, /* CREATION_DATE */
569 user_id, /* created_by */
570 login_id, /* last_update_login */
571 NULL, /* CHANGE_NOTICE */
572 NULL, /* ECN_INITIATION_DATE */
573 TRUNC(SYSDATE), /* IMPLEMENTATION_DATE */
574 NULL, /* IMPLEMENTED_SERIAL_NUMBER */
575 TRUNC(SYSDATE), /* EFFECTIVITY_DATE */
576 NULL, /* ATTRIBUTE_CATEGORY */
577 NULL, /* ATTRIBUTE1 */
578 NULL, /* ATTRIBUTE2 */
579 NULL, /* ATTRIBUTE3 */
580 NULL, /* ATTRIBUTE4 */
581 NULL, /* ATTRIBUTE5 */
582 NULL, /* ATTRIBUTE6 */
583 NULL, /* ATTRIBUTE7 */
584 NULL, /* ATTRIBUTE8 */
585 NULL, /* ATTRIBUTE9 */
589 NULL, /* ATTRIBUTE13 */
586 NULL, /* ATTRIBUTE10 */
587 NULL, /* ATTRIBUTE11 */
588 NULL, /* ATTRIBUTE12 */
590 NULL, /* ATTRIBUTE14 */
591 NULL /* ATTRIBUTE15 */
592 from bom_op_routings_interface
593 where set_id = TO_CHAR(to_number(USERENV('SESSIONID')));
594
595 /*
596 ** Process operation sequences interface table
597 */
598 stmt_num := 80;
599 table_name := 'BOM_OPERATION_SEQUENCES';
600 insert into BOM_OPERATION_SEQUENCES
601 (
602 OPERATION_SEQUENCE_ID,
603 ROUTING_SEQUENCE_ID,
604 OPERATION_SEQ_NUM,
605 LAST_UPDATE_DATE,
606 LAST_UPDATED_BY,
607 CREATION_DATE,
608 CREATED_BY,
609 LAST_UPDATE_LOGIN,
610 STANDARD_OPERATION_ID,
611 DEPARTMENT_ID ,
612 OPERATION_LEAD_TIME_PERCENT,
613 MINIMUM_TRANSFER_QUANTITY,
614 COUNT_POINT_TYPE ,
615 OPERATION_DESCRIPTION,
616 EFFECTIVITY_DATE,
617 DISABLE_DATE ,
618 BACKFLUSH_FLAG,
619 OPTION_DEPENDENT_FLAG,
620 ATTRIBUTE_CATEGORY ,
621 ATTRIBUTE1,
622 ATTRIBUTE2,
623 ATTRIBUTE3,
624 ATTRIBUTE4,
625 ATTRIBUTE5,
626 ATTRIBUTE6,
627 ATTRIBUTE7,
628 ATTRIBUTE8,
629 ATTRIBUTE9,
630 ATTRIBUTE10,
631 ATTRIBUTE11,
632 ATTRIBUTE12,
633 ATTRIBUTE13,
634 ATTRIBUTE14,
635 ATTRIBUTE15,
636 REQUEST_ID,
637 PROGRAM_APPLICATION_ID,
638 PROGRAM_ID ,
639 PROGRAM_UPDATE_DATE,
640 OPERATION_TYPE,
641 REFERENCE_FLAG,
642 PROCESS_OP_SEQ_ID,
643 LINE_OP_SEQ_ID,
644 YIELD,
645 CUMULATIVE_YIELD,
646 REVERSE_CUMULATIVE_YIELD,
647 LABOR_TIME_CALC,
648 MACHINE_TIME_CALC,
649 TOTAL_TIME_CALC,
650 LABOR_TIME_USER,
651 MACHINE_TIME_USER,
652 TOTAL_TIME_USER,
653 NET_PLANNING_PERCENT
654 )
655 select
656 b.OPERATION_SEQUENCE_ID,
657 b.ROUTING_SEQUENCE_ID,
658 b.OPERATION_SEQ_NUM,
659 b.LAST_UPDATE_DATE,
660 user_id, /* LAST_UPDATED_BY */
661 b.CREATION_DATE,
662 user_id, /* created_by */
663 login_id, /* last_update_login */
664 b.STANDARD_OPERATION_ID,
665 b.DEPARTMENT_ID ,
666 b.OPERATION_LEAD_TIME_PERCENT,
667 b.MINIMUM_TRANSFER_QUANTITY,
668 b.COUNT_POINT_TYPE ,
669 b.OPERATION_DESCRIPTION,
670 b.EFFECTIVITY_DATE,
671 b.DISABLE_DATE ,
672 b.BACKFLUSH_FLAG,
673 b.OPTION_DEPENDENT_FLAG,
674 b.ATTRIBUTE_CATEGORY ,
675 b.ATTRIBUTE1,
676 b.ATTRIBUTE2,
677 b.ATTRIBUTE3,
678 b.ATTRIBUTE4,
679 b.ATTRIBUTE5,
680 b.ATTRIBUTE6,
681 b.ATTRIBUTE7,
682 b.ATTRIBUTE8,
683 b.ATTRIBUTE9,
684 b.ATTRIBUTE10,
685 b.ATTRIBUTE11,
686 b.ATTRIBUTE12,
687 b.ATTRIBUTE13,
688 b.ATTRIBUTE14,
689 b.ATTRIBUTE15,
690 req_id, /* request_id */
691 prg_appid, /* program_application_id */
692 prg_id, /* program_id */
693 SYSDATE, /* program_update_date */
694 operation_type,
695 reference_flag,
696 process_op_seq_id,
697 line_op_seq_id,
698 yield,
699 cumulative_yield,
700 reverse_cumulative_yield,
701 labor_time_calc,
702 machine_time_calc,
703 total_time_calc,
707 net_planning_percent
704 labor_time_user,
705 machine_time_user,
706 total_time_user,
708 from BOM_OP_SEQUENCES_INTERFACE b,
709 BOM_OP_ROUTINGS_INTERFACE b1
710 where b.routing_sequence_id = b1.routing_sequence_id
711 and b1.set_id = TO_CHAR(to_number(USERENV('SESSIONID')));
712
713 /*
714 ** Process operation resources interface table
715 */
716 stmt_num := 90;
717 table_name := 'BOM_OPERATION_RESOURCES';
718 insert into BOM_OPERATION_RESOURCES
719 (
720 OPERATION_SEQUENCE_ID,
721 RESOURCE_SEQ_NUM,
722 RESOURCE_ID ,
723 ACTIVITY_ID,
724 STANDARD_RATE_FLAG,
725 ASSIGNED_UNITS ,
726 USAGE_RATE_OR_AMOUNT,
727 USAGE_RATE_OR_AMOUNT_INVERSE,
728 BASIS_TYPE,
729 SCHEDULE_FLAG,
730 LAST_UPDATE_DATE,
731 LAST_UPDATED_BY,
732 CREATION_DATE,
733 CREATED_BY,
734 LAST_UPDATE_LOGIN,
735 RESOURCE_OFFSET_PERCENT,
736 AUTOCHARGE_TYPE,
737 ATTRIBUTE_CATEGORY,
738 ATTRIBUTE1,
739 ATTRIBUTE2,
740 ATTRIBUTE3,
741 ATTRIBUTE4,
742 ATTRIBUTE5,
743 ATTRIBUTE6,
744 ATTRIBUTE7,
745 ATTRIBUTE8,
746 ATTRIBUTE9,
747 ATTRIBUTE10,
748 ATTRIBUTE11,
749 ATTRIBUTE12,
750 ATTRIBUTE13,
751 ATTRIBUTE14,
752 ATTRIBUTE15,
753 REQUEST_ID,
754 PROGRAM_APPLICATION_ID,
755 PROGRAM_ID,
756 PROGRAM_UPDATE_DATE
757 )
758 select
759 b1.OPERATION_SEQUENCE_ID,
760 b1.RESOURCE_SEQ_NUM,
761 b1.RESOURCE_ID ,
762 b1.ACTIVITY_ID,
763 b1.STANDARD_RATE_FLAG,
764 b1.ASSIGNED_UNITS ,
765 b1.USAGE_RATE_OR_AMOUNT,
766 b1.USAGE_RATE_OR_AMOUNT_INVERSE,
767 b1.BASIS_TYPE,
768 b1.SCHEDULE_FLAG,
769 b1.LAST_UPDATE_DATE,
770 user_id, /* LAST_UPDATED_BY */
771 b1.CREATION_DATE,
772 user_id, /* created_by */
773 login_id, /* last_update_login */
774 b1.RESOURCE_OFFSET_PERCENT,
775 b1.AUTOCHARGE_TYPE,
776 b1.ATTRIBUTE_CATEGORY,
777 b1.ATTRIBUTE1,
778 b1.ATTRIBUTE2,
779 b1.ATTRIBUTE3,
780 b1.ATTRIBUTE4,
781 b1.ATTRIBUTE5,
782 b1.ATTRIBUTE6,
783 b1.ATTRIBUTE7,
784 b1.ATTRIBUTE8,
785 b1.ATTRIBUTE9,
786 b1.ATTRIBUTE10,
787 b1.ATTRIBUTE11,
788 b1.ATTRIBUTE12,
789 b1.ATTRIBUTE13,
790 b1.ATTRIBUTE14,
791 b1.ATTRIBUTE15,
792 req_id, /* request_id */
793 prg_appid, /* program_application_id */
794 prg_id, /* program_id */
795 SYSDATE /* program_update_date */
796 from BOM_OP_RESOURCES_INTERFACE b1,
797 BOM_OP_SEQUENCES_INTERFACE b2,
798 BOM_OP_ROUTINGS_INTERFACE b3
799 where b2.operation_sequence_id = b1.operation_sequence_id
800 and b2.routing_sequence_id = b3.routing_sequence_id
801 and b3.set_id = TO_CHAR(to_number(USERENV('SESSIONID')));
802
803 /*
804 ** Process operation Networks table
805 */
806 stmt_num := 95;
807 table_name := 'BOM_OPERATION_NETWORKS';
808
809 INSERT INTO bom_operation_networks
810 ( FROM_OP_SEQ_ID,
811 TO_OP_SEQ_ID,
812 TRANSITION_TYPE,
813 PLANNING_PCT,
814 EFFECTIVITY_DATE,
815 DISABLE_DATE,
816 CREATED_BY,
817 CREATION_DATE,
818 LAST_UPDATED_BY,
819 LAST_UPDATE_DATE,
820 LAST_UPDATE_LOGIN,
821 ATTRIBUTE_CATEGORY,
822 ATTRIBUTE1 ,
823 ATTRIBUTE2 ,
824 ATTRIBUTE3 ,
828 ATTRIBUTE7 ,
825 ATTRIBUTE4 ,
826 ATTRIBUTE5 ,
827 ATTRIBUTE6 ,
829 ATTRIBUTE8 ,
830 ATTRIBUTE9 ,
831 ATTRIBUTE10 ,
832 ATTRIBUTE11 ,
833 ATTRIBUTE12 ,
834 ATTRIBUTE13 ,
835 ATTRIBUTE14 ,
836 ATTRIBUTE15
837 )
838 SELECT
839 bos3.operation_sequence_id,
840 bos4.operation_sequence_id,
841 bon.TRANSITION_TYPE,
842 bon.PLANNING_PCT,
843 bon.EFFECTIVITY_DATE,
844 bon.DISABLE_DATE,
845 bon.CREATED_BY,
846 bon.CREATION_DATE,
847 bon.LAST_UPDATED_BY,
848 bon.LAST_UPDATE_DATE,
849 bon.LAST_UPDATE_LOGIN,
850 bon.ATTRIBUTE_CATEGORY,
851 bon.ATTRIBUTE1,
852 bon.ATTRIBUTE2,
853 bon.ATTRIBUTE3,
854 bon.ATTRIBUTE4,
855 bon.ATTRIBUTE5,
856 bon.ATTRIBUTE6,
857 bon.ATTRIBUTE7,
858 bon.ATTRIBUTE8,
859 bon.ATTRIBUTE9,
860 bon.ATTRIBUTE10,
861 bon.ATTRIBUTE11,
862 bon.ATTRIBUTE12,
863 bon.ATTRIBUTE13,
864 bon.ATTRIBUTE14,
865 bon.ATTRIBUTE15
866 FROM bom_operation_networks bon,
867 bom_operation_sequences bos1, /* 'from' Ops of model */
868 bom_operation_sequences bos2, /* 'to' Ops of model */
869 bom_operation_sequences bos3, /* 'from' Ops of config */
870 bom_operation_sequences bos4, /* 'to' Ops of config */
871 bom_op_routings_interface brif
872 WHERE bon.from_op_seq_id = bos1.operation_sequence_id
873 AND bon.to_op_seq_id = bos2.operation_sequence_id
874 AND bos1.routing_sequence_id = bos2.routing_sequence_id
875 AND bos3.routing_sequence_id = brif.routing_sequence_id
876 AND brif.cfm_routing_flag = 1
877 AND brif.set_id = to_char(to_number(USERENV('SESSIONID')))
878 AND bos3.operation_seq_num = bos1.operation_seq_num
879 AND NVL(bos3.operation_type,1) = NVL(bos1.operation_type, 1)
880 AND bos4.routing_sequence_id = bos3.routing_sequence_id
881 AND bos4.operation_seq_num = bos2.operation_seq_num
882 AND NVL(bos4.operation_type,1) = NVL(bos2.operation_type, 1)
883 AND bos1.routing_sequence_id = ( /* find the model routing */
884 select routing_sequence_id
885 from bom_operational_routings bor,
886 mtl_system_items_interface msi
887 where brif.assembly_item_id = msi.inventory_item_id
888 and brif.organization_id = msi.organization_id
889 and bor.assembly_item_id = msi.copy_item_id
890 and bor.organization_id = msi.organization_id
891 and bor.cfm_routing_flag = 1
892 and bor.alternate_routing_designator is null );
893
894
895
896 stmt_num := 95;
897
898 /** Check if flow_manufacturing is installed **/
899
900 x_install_cfm := Fnd_Installation.Get_App_Info(application_short_name => 'FLM',
901 status => x_status,
902 industry => x_industry,
903 oracle_schema => x_schema);
904
905 for nextrec in allRoutings loop
906 l_routing := nextrec.routing_sequence_id;
907
908 /* For each operation in each routing, copy attachments of operations
909 ** copied from model/option class to operations on the config item
910 */
911
912 for nextop in allops loop
913
914 FND_ATTACHED_DOCUMENTS2_PKG.copy_attachments(
915 X_from_entity_name =>'BOM_OPERATION_SEQUENCES',
916 X_from_pk1_value =>nextop.model_op_seq_id,
917 X_from_pk2_value =>'',
918 X_from_pk3_value =>'',
919 X_from_pk4_value =>'',
920 X_from_pk5_value =>'',
921 X_to_entity_name =>'BOM_OPERATION_SEQUENCES',
922 X_to_pk1_value =>nextop.operation_sequence_id,
923 X_to_pk2_value =>'',
924 X_to_pk3_value =>'',
925 X_to_pk4_value =>'',
926 X_to_pk5_value =>'',
930 X_program_id =>'',
927 X_created_by =>user_id,
928 X_last_update_login =>'',
929 X_program_application_id =>'',
931 X_request_id =>''
932 );
933 end loop;
934
935 /** if flow manufacturing is installed and the 'Perform Flow Calulations'
936 * parameter is set to 2 or 3 (perform calculations based on processes or perform
937 * calulations based on Line operations) the routing is 'flow routing' then
938 * calculate operation times, yields, net planning percent and total
939 * product cycle time for config routing
940 **/
941
942 if ( x_status = 'I' and perform_fc >1 and nextrec.cfm_routing_flag = 1 ) then
943
944 /* Calculate Operation times */
945
946 BOM_CALC_OP_TIMES_PK.calculate_operation_times(
947 arg_org_id => nextrec.organization_id,
948 arg_routing_sequence_id => nextrec.routing_sequence_id );
949
950 /* Calculate cumu yield, rev cumu yield and net plannning percent */
951
952 BOM_CALC_CYNP.calc_cynp(
953 p_routing_sequence_id => nextrec.routing_sequence_id,
954 p_operation_type => perform_fc, /* operation_type = process */
955 p_update_events => 1 ); /* update events */
956
957 /* Calculate total_product_cycle_time */
958
959 BOM_CALC_TPCT.calculate_tpct(
960 p_routing_sequence_id => nextrec.routing_sequence_id,
961 p_operation_type => perform_fc); /* Operation_type = Process */
962 end if;
963 end loop;
964 return(1);
965
966 EXCEPTION
967 WHEN NO_DATA_FOUND THEN
968 return(1);
969 WHEN OTHERS THEN
970 error_message:='BOMPPRCB:'||to_char(stmt_num)||':'||substrb(sqlerrm,1,150);
971 message_name := 'BOM_ATO_PROCESS_ERROR';
972 return(0);
973
974 END bmprort_process_rtg;
975
976
977 function bmproec_process_eco
978 ( ato_flag in NUMBER,
979 prg_appid in NUMBER,
980 prg_id in NUMBER,
981 req_id in NUMBER,
982 user_id in NUMBER,
983 login_id in NUMBER,
984 error_message out VARCHAR2,
985 message_name out VARCHAR2,
986 table_name out VARCHAR2)
987 return integer
988 is
989 stmt_num number;
990 BEGIN
991 /*
992 ** Process engineering changes interface table
993 */
994 stmt_num := 110;
995 table_name := 'ENG_ENGINEERING_CHANGES';
996 insert into ENG_ENGINEERING_CHANGES
997 (
998 CHANGE_NOTICE,
999 ORGANIZATION_ID,
1000 LAST_UPDATE_DATE,
1001 LAST_UPDATED_BY,
1002 CREATION_DATE,
1003 CREATED_BY,
1004 LAST_UPDATE_LOGIN,
1005 DESCRIPTION ,
1006 STATUS_TYPE,
1007 INITIATION_DATE,
1008 IMPLEMENTATION_DATE,
1009 CANCELLATION_DATE,
1010 CANCELLATION_COMMENTS,
1011 PRIORITY_CODE ,
1012 REASON_CODE,
1013 ESTIMATED_ENG_COST,
1014 ESTIMATED_MFG_COST,
1015 REQUESTOR_ID ,
1016 ATTRIBUTE_CATEGORY,
1017 ATTRIBUTE1,
1018 ATTRIBUTE2,
1019 ATTRIBUTE3,
1020 ATTRIBUTE4,
1021 ATTRIBUTE5,
1022 ATTRIBUTE6,
1023 ATTRIBUTE7,
1024 ATTRIBUTE8,
1025 ATTRIBUTE9,
1026 ATTRIBUTE10,
1027 ATTRIBUTE11,
1028 ATTRIBUTE12,
1029 ATTRIBUTE13,
1030 ATTRIBUTE14,
1031 ATTRIBUTE15,
1032 REQUEST_ID,
1033 PROGRAM_APPLICATION_ID,
1034 PROGRAM_ID ,
1035 PROGRAM_UPDATE_DATE,
1036 APPROVAL_DATE,
1037 APPROVAL_STATUS_TYPE,
1038 APPROVAL_LIST_ID,
1039 CHANGE_ORDER_TYPE_ID,
1040 RESPONSIBLE_ORGANIZATION_ID,
1041 APPROVAL_REQUEST_DATE,
1042 DDF_CONTEXT
1043 )
1044 select
1045 CHANGE_NOTICE,
1046 ORGANIZATION_ID,
1047 LAST_UPDATE_DATE,
1048 user_id, /* LAST_UPDATED_BY */
1049 CREATION_DATE,
1050 user_id, /* created_by */
1054 INITIATION_DATE,
1051 login_id , /* last_update_login */
1052 DESCRIPTION ,
1053 STATUS_TYPE,
1055 IMPLEMENTATION_DATE,
1056 CANCELLATION_DATE,
1057 CANCELLATION_COMMENTS,
1058 PRIORITY_CODE ,
1059 REASON_CODE,
1060 ESTIMATED_ENG_COST,
1061 ESTIMATED_MFG_COST,
1062 REQUESTOR_ID ,
1063 ATTRIBUTE_CATEGORY,
1064 ATTRIBUTE1,
1065 ATTRIBUTE2,
1066 ATTRIBUTE3,
1067 ATTRIBUTE4,
1068 ATTRIBUTE5,
1069 ATTRIBUTE6,
1070 ATTRIBUTE7,
1071 ATTRIBUTE8,
1072 ATTRIBUTE9,
1073 ATTRIBUTE10,
1074 ATTRIBUTE11,
1075 ATTRIBUTE12,
1076 ATTRIBUTE13,
1077 ATTRIBUTE14,
1078 ATTRIBUTE15,
1079 req_id, /* request_id */
1080 prg_appid, /* program_application_id */
1081 prg_id, /* program_id */
1082 SYSDATE, /* program_update_date */
1083 APPROVAL_DATE,
1084 APPROVAL_STATUS_TYPE,
1085 APPROVAL_LIST_ID,
1086 CHANGE_ORDER_TYPE_ID,
1087 RESPONSIBLE_ORGANIZATION_ID,
1088 APPROVAL_REQUEST_DATE,
1089 DDF_CONTEXT
1090 from ENG_ENG_CHANGES_INTERFACE
1091 where set_id = TO_CHAR(to_number(USERENV('SESSIONID')));
1092
1093 /*
1094 ** Process revised items interface table
1095 */
1096 stmt_num := 120;
1097 table_name := 'ENG_REVISED_ITEMS';
1098 insert into ENG_REVISED_ITEMS
1099 (
1100 CHANGE_NOTICE,
1101 ORGANIZATION_ID,
1102 REVISED_ITEM_ID,
1103 LAST_UPDATE_DATE,
1104 LAST_UPDATED_BY,
1105 CREATION_DATE,
1106 CREATED_BY,
1107 LAST_UPDATE_LOGIN,
1108 IMPLEMENTATION_DATE,
1109 DESCRIPTIVE_TEXT,
1110 CANCELLATION_DATE,
1111 CANCEL_COMMENTS,
1112 DISPOSITION_TYPE,
1113 NEW_ITEM_REVISION,
1114 AUTO_IMPLEMENT_DATE,
1115 EARLY_SCHEDULE_DATE,
1116 ATTRIBUTE_CATEGORY,
1117 ATTRIBUTE1,
1118 ATTRIBUTE2,
1119 ATTRIBUTE3,
1120 ATTRIBUTE4 ,
1121 ATTRIBUTE5,
1122 ATTRIBUTE6 ,
1123 ATTRIBUTE7,
1124 ATTRIBUTE8,
1125 ATTRIBUTE9,
1126 ATTRIBUTE10,
1127 ATTRIBUTE11,
1128 ATTRIBUTE12,
1129 ATTRIBUTE13,
1130 ATTRIBUTE14,
1131 ATTRIBUTE15,
1132 STATUS_TYPE,
1133 SCHEDULED_DATE,
1134 BILL_SEQUENCE_ID,
1135 MRP_ACTIVE ,
1136 REQUEST_ID,
1137 PROGRAM_APPLICATION_ID,
1138 PROGRAM_ID ,
1139 PROGRAM_UPDATE_DATE ,
1140 UPDATE_WIP ,
1141 USE_UP ,
1142 USE_UP_ITEM_ID ,
1143 REVISED_ITEM_SEQUENCE_ID,
1144 USE_UP_PLAN_NAME
1145 )
1146 select
1147 e.CHANGE_NOTICE,
1148 e.ORGANIZATION_ID,
1149 e.REVISED_ITEM_ID,
1150 e.LAST_UPDATE_DATE,
1151 user_id, /* LAST_UPDATED_BY */
1152 e.CREATION_DATE,
1153 user_id, /* CREATED_BY */
1154 login_id, /* LAST_UPDATE_LOGIN */
1155 e.IMPLEMENTATION_DATE,
1156 e.DESCRIPTIVE_TEXT,
1157 e.CANCELLATION_DATE,
1158 e.CANCEL_COMMENTS,
1159 e.DISPOSITION_TYPE,
1160 e.NEW_ITEM_REVISION,
1161 e.AUTO_IMPLEMENT_DATE,
1162 e.EARLY_SCHEDULE_DATE,
1163 e.ATTRIBUTE_CATEGORY,
1164 e.ATTRIBUTE1,
1165 e.ATTRIBUTE2,
1166 e.ATTRIBUTE3,
1167 e.ATTRIBUTE4 ,
1168 e.ATTRIBUTE5,
1169 e.ATTRIBUTE6 ,
1170 e.ATTRIBUTE7,
1171 e.ATTRIBUTE8,
1172 e.ATTRIBUTE9,
1173 e.ATTRIBUTE10,
1177 e.ATTRIBUTE14,
1174 e.ATTRIBUTE11,
1175 e.ATTRIBUTE12,
1176 e.ATTRIBUTE13,
1178 e.ATTRIBUTE15,
1179 e.STATUS_TYPE,
1180 e.SCHEDULED_DATE,
1181 e.BILL_SEQUENCE_ID,
1182 e.MRP_ACTIVE ,
1183 req_id, /* request_id */
1184 prg_appid, /* program_application_id */
1185 prg_id, /* program_id */
1186 SYSDATE, /* program_update_date */
1187 e.UPDATE_WIP ,
1188 e.USE_UP ,
1189 e.USE_UP_ITEM_ID ,
1190 e.REVISED_ITEM_SEQUENCE_ID,
1191 e.USE_UP_PLAN_NAME
1192 from ENG_REVISED_ITEMS_INTERFACE e,
1193 ENG_ENG_CHANGES_INTERFACE e1
1194 where e1.set_id = TO_CHAR(to_number(USERENV('SESSIONID')))
1195 and e.change_notice = e1.change_notice
1196 and e.organization_id = e1.organization_id;
1197
1198 return(1);
1199
1200 EXCEPTION
1201 WHEN NO_DATA_FOUND THEN
1202 return(1);
1203 WHEN OTHERS THEN
1204 error_message:='BOMPPRCB:'||to_char(stmt_num)||':'|| substrb(sqlerrm,1,150);
1205 message_name := 'BOM_ATO_PROCESS_ERROR';
1206 return(0);
1207
1208 END bmproec_process_eco;
1209
1210 function bmprobr_process_bom_rtg (
1211 ato_flag in out NUMBER,
1212 perform_fc in NUMBER,
1213 prg_appid in out NUMBER,
1214 prg_id in out NUMBER,
1215 req_id in out NUMBER,
1216 user_id in out NUMBER,
1217 login_id in out NUMBER,
1218 error_message out VARCHAR2,
1219 message_name out VARCHAR2,
1220 table_name out VARCHAR2)
1221 return integer
1222 is
1223 status number;
1224 stmt_num number;
1225 PROCESS_ERROR exception;
1226 x_from_sequence_id number;
1227 x_to_sequence_id number;
1228
1229 cursor allconfigs is
1230 select inventory_item_id, organization_id,copy_item_id
1231 from mtl_system_items_interface m
1232 where m.set_id = to_char(to_number(USERENV('SESSIONID')));
1233 BEGIN
1234 status := 1; /* init status */
1235
1236 stmt_num := 130;
1237 status := bmprobm_process_bom(
1238 ato_flag,
1239 prg_appid,
1240 prg_id,
1241 req_id,
1242 user_id,
1243 login_id,
1244 error_message,
1245 message_name,
1246 table_name );
1247
1248 for nextconfig in allconfigs
1249 loop
1250
1251 select common_bill_sequence_id
1252 into x_from_sequence_id
1253 from bom_bill_of_materials
1254 where assembly_item_id = nextconfig.copy_item_id
1255 and organization_id = nextconfig.organization_id
1256 and alternate_bom_designator is NULL;
1257
1258
1259 select common_bill_sequence_id
1260 into x_to_sequence_id
1261 from bom_bill_of_materials
1262 where assembly_item_id = nextconfig.inventory_item_id
1263 and organization_id = nextconfig.organization_id
1264 and alternate_bom_designator is NULL;
1265
1266 fnd_attached_documents2_pkg.copy_attachments(
1267 X_from_entity_name => 'BOM_BILL_OF_MATERIALS',
1268 X_from_pk1_value => x_from_sequence_id,
1269 X_from_pk2_value => '',
1270 X_from_pk3_value => '',
1271 X_from_pk4_value => '',
1272 X_from_pk5_value => '',
1273 X_to_entity_name => 'BOM_BILL_OF_MATERIALS',
1274 X_to_pk1_value => x_to_sequence_id,
1275 X_to_pk2_value => '',
1276 X_to_pk3_value => '',
1277 X_to_pk4_value => '',
1278 X_to_pk5_value => '',
1279 X_created_by => user_id,
1280 X_last_update_login => '',
1281 X_program_application_id=> '',
1282 X_program_id => '',
1283 X_request_id => ''
1284 );
1285 end loop;
1286
1287 if (status = 1) then
1288 stmt_num := 140;
1289 status := bmprort_process_rtg(
1290 ato_flag,
1291 perform_fc,
1292 prg_appid,
1293 prg_id,
1294 req_id,
1295 user_id,
1296 login_id,
1297 error_message,
1298 message_name,
1299 table_name );
1300 end if;
1301
1302 /*
1303 As per discussion with Shreyas it is not known why we needed this stuff here
1304 Probably it was coded as part of the open interface project
1305 if (status = 1) then
1306 stmt_num := 150;
1307 status := bmproec_process_eco(
1308 ato_flag,
1309 prg_appid,
1310 prg_id,
1311 req_id,
1312 user_id,
1313 login_id,
1314 error_message,
1318 */
1315 message_name,
1316 table_name );
1317 end if;
1319 if (status = 1) then
1320 /*
1321 ** Remove rows from BOM_INVENTORY_COMPS_INTERFACE
1322 */
1323 stmt_num := 160;
1324 table_name := 'BOM_INVENTORY_COMPS_INTERFACE';
1325 delete from BOM_INVENTORY_COMPS_INTERFACE i
1326 where i.rowid in
1327 ( select b1.rowid
1328 from bom_inventory_comps_interface b1,
1329 BOM_BILL_OF_MTLS_INTERFACE b2
1330 where b2.set_id = TO_CHAR(to_number(USERENV('SESSIONID')))
1331 and b1.bill_sequence_id = b2.bill_sequence_id);
1332
1333 /*
1334 ** Remove rows from BOM_BILL_OF_MTLS_INTERFACE
1335 */
1336 stmt_num := 180;
1337 table_name := 'BOM_BILL_OF_MTLS_INTERFACE';
1338 delete from BOM_BILL_OF_MTLS_INTERFACE b
1339 where b.set_id = TO_CHAR(to_number(USERENV('SESSIONID')));
1340
1341 /*
1342 ** Remove rows from BOM_OP_RESOURCES_INTERFACE
1343 */
1344 stmt_num := 190;
1345 table_name := 'BOM_OP_RESOURCES_INTERFACE';
1346 delete from BOM_OP_RESOURCES_INTERFACE i
1347 where i.rowid in
1348 ( select b1.rowid from
1349 bom_op_resources_interface b1,
1350 BOM_OP_SEQUENCES_INTERFACE b2,
1351 BOM_OP_ROUTINGS_INTERFACE b3
1352 where b3.routing_sequence_id = b2.routing_sequence_id
1353 and b3.set_id = TO_CHAR(to_number(USERENV('SESSIONID')))
1354 and b1.operation_sequence_id = b2.operation_sequence_id);
1355
1356
1357 /*
1358 ** Remove from BOM_OP_SEQUENCES_INTERFACE
1359 */
1360 stmt_num := 210;
1361 table_name := 'BOM_OP_SEQUENCES_INTERFACE';
1362 delete from BOM_OP_SEQUENCES_INTERFACE i
1363 where i.rowid in
1364 ( select b1.rowid from
1365 bom_op_sequences_interface b1,
1366 BOM_OP_ROUTINGS_INTERFACE b2
1367 where b2.set_id = TO_CHAR(to_number(USERENV('SESSIONID')))
1368 and b1.routing_sequence_id = b2.routing_sequence_id);
1369
1370
1371 /*
1372 ** Remove the moved rows from BOM_OP_ROUTINGS_INTERFACE
1373 */
1374
1375 stmt_num := 220;
1376 table_name := 'BOM_OP_ROUTINGS_INTERFACE';
1377 delete from BOM_OP_ROUTINGS_INTERFACE b
1378 where b.set_id = TO_CHAR(to_number(USERENV('SESSIONID')));
1379
1380 stmt_num := 230;
1381 table_name := 'BOM_REF_DESGS_INTERFACE';
1382 delete from BOM_REF_DESGS_INTERFACE b1
1383 where b1.rowid in ( select b.rowid
1384 from BOM_REF_DESGS_INTERFACE b,
1385 BOM_INVENTORY_COMPS_INTERFACE b2,
1386 BOM_BILL_OF_MTLS_INTERFACE b3,
1387 MTL_SYSTEM_ITEMS_INTERFACE m
1388 where b.component_sequence_id = b2.component_sequence_id
1389 and b2.bill_sequence_id = b3.bill_sequence_id
1390 and b3.demand_source_line = m.demand_source_line
1391 and b3.demand_source_type = m.demand_source_type
1392 and b3.demand_source_header_id = m.demand_source_header_id
1393 and b3.assembly_item_id = m.inventory_item_id
1394 and b3.organization_id = m.organization_id
1395 and m.set_id = TO_CHAR(to_number(USERENV('SESSIONID'))));
1396
1397 stmt_num := 240;
1398 table_name := 'BOM_SUB_COMPS_INTERFACE';
1399 delete from BOM_SUB_COMPS_INTERFACE b1
1400 where b1.rowid in ( select b.rowid
1401 from BOM_SUB_COMPS_INTERFACE b,
1402 BOM_INVENTORY_COMPS_INTERFACE b2,
1403 BOM_BILL_OF_MTLS_INTERFACE b3,
1404 MTL_SYSTEM_ITEMS_INTERFACE m
1405 where b.component_sequence_id = b2.component_sequence_id
1406 and b2.bill_sequence_id = b3.bill_sequence_id
1407 and b3.demand_source_line = m.demand_source_line
1408 and b3.demand_source_type = m.demand_source_type
1409 and b3.demand_source_header_id = m.demand_source_header_id
1410 and b3.assembly_item_id = m.inventory_item_id
1411 and b3.organization_id = m.organization_id
1412 and m.set_id = TO_CHAR(to_number(USERENV('SESSIONID'))));
1413
1414 /*
1415 This is commented out since we do not insert into these tables anyway
1416 stmt_num := 250;
1417 table_name := 'ENG_REVISED_ITEMS_INTERFACE';
1418 delete from ENG_REVISED_ITEMS_INTERFACE
1419 where exists ( select 1
1420 from ENG_ENG_CHANGES_INTERFACE e,
1421 ENG_REVISED_ITEMS_INTERFACE e1
1422 where e.set_id = TO_CHAR(to_number(USERENV('SESSIONID')))
1423 and e.organization_id = e1.organization_id
1424 and e.change_notice = e1.change_notice);
1425
1426 stmt_num := 260;
1427 table_name := 'ENG_ENG_CHANGES_INTERFACE';
1431 */
1428 delete from ENG_ENG_CHANGES_INTERFACE
1429 where set_id = TO_CHAR(to_number(USERENV('SESSIONID')));
1430
1432 end if;
1433 return(status);
1434
1435 EXCEPTION
1436 WHEN NO_DATA_FOUND THEN
1437 return(1);
1438 WHEN PROCESS_ERROR THEN
1439 error_message :='BOMPPRCB:'||to_char(stmt_num)||':'||substrb(sqlerrm,1,150);
1440 message_name := 'BOM_ATO_PROCESS_ERROR';
1441 return(status);
1442 WHEN OTHERS THEN
1443 error_message:='BOMPPRCB:'||to_char(stmt_num)||':'|| substrb(sqlerrm,1,150);
1444 message_name := 'BOM_ATO_PROCESS_ERROR';
1445 return(status);
1446
1447 END bmprobr_process_bom_rtg;
1448
1449 function bmprbill_process_bill_data
1450 ( prog_appid NUMBER,
1451 prog_id NUMBER,
1452 request_id NUMBER,
1453 user_id NUMBER,
1454 login_id NUMBER,
1455 error_message OUT VARCHAR2,
1456 message_name OUT VARCHAR2,
1457 table_name OUT VARCHAR2)
1458 return integer
1459 is
1460 stmt_num number;
1461 commit_cnt NUMBER;
1462 BEGIN
1463
1464 /*
1465 ** process bill interface table
1466 */
1467 stmt_num := 10;
1468 table_name := 'BOM_BILL_OF_MATERIALS';
1469 commit_cnt := 0;
1470 loop
1471 insert into BOM_BILL_OF_MATERIALS(
1472 assembly_item_id,
1473 organization_id,
1474 alternate_bom_designator,
1475 last_update_date,
1476 last_updated_by,
1477 creation_date,
1478 created_by,
1479 last_update_login,
1480 common_assembly_item_id,
1481 specific_assembly_comment,
1482 attribute_category,
1483 attribute1,
1484 attribute2,
1485 attribute3,
1486 attribute4,
1487 attribute5,
1488 attribute6,
1489 attribute7,
1490 attribute8,
1491 attribute9,
1492 attribute10,
1493 attribute11,
1494 attribute12,
1495 attribute13,
1496 attribute14,
1497 attribute15,
1498 assembly_type,
1499 common_bill_sequence_id,
1500 bill_sequence_id,
1501 request_id,
1502 program_application_id,
1503 program_id,
1504 program_update_date,
1505 common_organization_id,
1506 next_explode_date
1507 )
1508 select
1509 assembly_item_id,
1510 organization_id,
1511 alternate_bom_designator,
1512 last_update_date,
1513 last_updated_by,
1514 creation_date,
1515 created_by,
1516 last_update_login,
1517 common_assembly_item_id,
1518 specific_assembly_comment,
1519 attribute_category,
1520 attribute1,
1521 attribute2,
1522 attribute3,
1523 attribute4,
1524 attribute5,
1525 attribute6,
1526 attribute7,
1527 attribute8,
1528 attribute9,
1529 attribute10,
1530 attribute11,
1531 attribute12,
1532 attribute13,
1533 attribute14,
1534 attribute15,
1535 assembly_type,
1536 common_bill_sequence_id,
1537 bill_sequence_id,
1538 request_id,
1539 program_application_id,
1540 program_id,
1541 program_update_date,
1542 common_organization_id,
1543 next_explode_date
1544 from BOM_BILL_OF_MTLS_INTERFACE
1545 where process_flag = 4
1546 and rownum < 500;
1547
1548 EXIT when SQL%NOTFOUND;
1549
1550 update bom_bill_of_mtls_interface bi
1551 set process_flag = 7
1552 where process_flag = 4
1553 and exists (select NULL
1554 from bom_bill_of_materials bom
1555 where bom.bill_sequence_id = bi.bill_sequence_id);
1556 commit;
1557
1558 end loop;
1559 /*
1560 ** Process inventory components interface table
1561 */
1562 stmt_num := 20;
1563 table_name := 'BOM_INVENTORY_COMPONENTS';
1564 commit_cnt := 0;
1565 loop
1566 insert into BOM_INVENTORY_COMPONENTS
1570 LAST_UPDATE_DATE,
1567 (
1568 OPERATION_SEQ_NUM,
1569 COMPONENT_ITEM_ID,
1571 LAST_UPDATED_BY,
1572 CREATION_DATE,
1573 CREATED_BY,
1574 LAST_UPDATE_LOGIN,
1575 ITEM_NUM,
1576 COMPONENT_QUANTITY,
1577 COMPONENT_YIELD_FACTOR,
1578 COMPONENT_REMARKS,
1579 EFFECTIVITY_DATE,
1580 CHANGE_NOTICE,
1581 IMPLEMENTATION_DATE,
1582 DISABLE_DATE,
1583 ATTRIBUTE_CATEGORY,
1584 ATTRIBUTE1,
1585 ATTRIBUTE2,
1586 ATTRIBUTE3,
1587 ATTRIBUTE4,
1588 ATTRIBUTE5,
1589 ATTRIBUTE6,
1590 ATTRIBUTE7,
1591 ATTRIBUTE8,
1592 ATTRIBUTE9,
1593 ATTRIBUTE10,
1594 ATTRIBUTE11,
1595 ATTRIBUTE12,
1596 ATTRIBUTE13,
1597 ATTRIBUTE14,
1598 ATTRIBUTE15,
1599 PLANNING_FACTOR,
1600 QUANTITY_RELATED,
1601 SO_BASIS,
1602 OPTIONAL,
1603 MUTUALLY_EXCLUSIVE_OPTIONS,
1604 INCLUDE_IN_COST_ROLLUP,
1605 CHECK_ATP,
1606 SHIPPING_ALLOWED,
1607 REQUIRED_TO_SHIP,
1608 REQUIRED_FOR_REVENUE,
1609 INCLUDE_ON_SHIP_DOCS,
1610 LOW_QUANTITY,
1611 HIGH_QUANTITY,
1612 COMPONENT_SEQUENCE_ID,
1613 BILL_SEQUENCE_ID,
1614 REQUEST_ID,
1615 PROGRAM_APPLICATION_ID,
1616 PROGRAM_ID,
1617 PROGRAM_UPDATE_DATE,
1618 WIP_SUPPLY_TYPE,
1619 SUPPLY_LOCATOR_ID,
1620 SUPPLY_SUBINVENTORY,
1621 BOM_ITEM_TYPE
1622 )
1623 select
1624 OPERATION_SEQ_NUM,
1625 COMPONENT_ITEM_ID,
1626 LAST_UPDATE_DATE,
1627 LAST_UPDATED_BY,
1628 CREATION_DATE,
1629 created_by,
1630 last_update_login,
1631 ITEM_NUM,
1632 COMPONENT_QUANTITY,
1633 COMPONENT_YIELD_FACTOR,
1634 COMPONENT_REMARKS,
1635 EFFECTIVITY_DATE,
1636 CHANGE_NOTICE,
1637 IMPLEMENTATION_DATE,
1638 DISABLE_DATE,
1639 ATTRIBUTE_CATEGORY,
1640 ATTRIBUTE1,
1641 ATTRIBUTE2,
1642 ATTRIBUTE3,
1643 ATTRIBUTE4,
1644 ATTRIBUTE5,
1645 ATTRIBUTE6,
1646 ATTRIBUTE7,
1647 ATTRIBUTE8,
1648 ATTRIBUTE9,
1649 ATTRIBUTE10,
1650 ATTRIBUTE11,
1651 ATTRIBUTE12,
1652 ATTRIBUTE13,
1653 ATTRIBUTE14,
1654 ATTRIBUTE15,
1655 PLANNING_FACTOR,
1656 QUANTITY_RELATED,
1657 SO_BASIS,
1658 OPTIONAL,
1659 MUTUALLY_EXCLUSIVE_OPTIONS,
1660 INCLUDE_IN_COST_ROLLUP,
1661 CHECK_ATP,
1662 SHIPPING_ALLOWED,
1663 REQUIRED_TO_SHIP,
1664 REQUIRED_FOR_REVENUE,
1665 INCLUDE_ON_SHIP_DOCS,
1666 LOW_QUANTITY,
1667 HIGH_QUANTITY,
1668 COMPONENT_SEQUENCE_ID,
1669 BILL_SEQUENCE_ID,
1670 REQUEST_ID,
1671 PROGRAM_APPLICATION_ID,
1672 PROGRAM_ID,
1673 PROGRAM_UPDATE_DATE,
1674 WIP_SUPPLY_TYPE,
1675 SUPPLY_LOCATOR_ID,
1676 SUPPLY_SUBINVENTORY,
1677 BOM_ITEM_TYPE
1678 from BOM_INVENTORY_COMPS_INTERFACE
1679 where process_flag = 4
1680 and rownum < 500;
1681
1682 EXIT when SQL%NOTFOUND;
1683
1684 update bom_inventory_comps_interface bci
1685 set process_flag = 7
1686 where process_flag = 4
1687 and exists (select NULL
1688 from bom_inventory_components bic
1689 where bic.component_sequence_id = bci.component_sequence_id);
1690
1694
1691 commit;
1692
1693 end loop;
1695 /*
1696 ** Process reference designators interface table
1697 */
1698 stmt_num := 40;
1699 table_name := 'BOM_REFERENCE_DESIGNATORS';
1700 commit_cnt := 0;
1701 loop
1702 insert into BOM_REFERENCE_DESIGNATORS
1703 (
1704 COMPONENT_REFERENCE_DESIGNATOR,
1705 LAST_UPDATE_DATE,
1706 LAST_UPDATED_BY,
1707 CREATION_DATE,
1708 CREATED_BY,
1709 LAST_UPDATE_LOGIN,
1710 REF_DESIGNATOR_COMMENT,
1711 CHANGE_NOTICE,
1712 COMPONENT_SEQUENCE_ID,
1713 ACD_TYPE,
1714 REQUEST_ID,
1715 PROGRAM_APPLICATION_ID,
1716 PROGRAM_ID,
1717 PROGRAM_UPDATE_DATE,
1718 ATTRIBUTE_CATEGORY,
1719 ATTRIBUTE1,
1720 ATTRIBUTE2,
1721 ATTRIBUTE3,
1722 ATTRIBUTE4,
1723 ATTRIBUTE5,
1724 ATTRIBUTE6,
1725 ATTRIBUTE7,
1726 ATTRIBUTE8,
1727 ATTRIBUTE9,
1728 ATTRIBUTE10,
1729 ATTRIBUTE11,
1730 ATTRIBUTE12,
1731 ATTRIBUTE13,
1732 ATTRIBUTE14,
1733 ATTRIBUTE15
1734 )
1735 select
1736 COMPONENT_REFERENCE_DESIGNATOR,
1737 LAST_UPDATE_DATE,
1738 LAST_UPDATED_BY,
1739 CREATION_DATE,
1740 created_by,
1741 last_update_login,
1742 REF_DESIGNATOR_COMMENT,
1743 CHANGE_NOTICE,
1744 COMPONENT_SEQUENCE_ID,
1745 ACD_TYPE,
1746 REQUEST_ID,
1747 PROGRAM_APPLICATION_ID,
1748 PROGRAM_ID,
1749 PROGRAM_UPDATE_DATE,
1750 ATTRIBUTE_CATEGORY,
1751 ATTRIBUTE1,
1752 ATTRIBUTE2,
1753 ATTRIBUTE3,
1754 ATTRIBUTE4,
1755 ATTRIBUTE5,
1756 ATTRIBUTE6,
1757 ATTRIBUTE7,
1758 ATTRIBUTE8,
1759 ATTRIBUTE9,
1760 ATTRIBUTE10,
1761 ATTRIBUTE11,
1762 ATTRIBUTE12,
1763 ATTRIBUTE13,
1764 ATTRIBUTE14,
1765 ATTRIBUTE15
1766 from BOM_REF_DESGS_INTERFACE
1767 where process_flag = 4
1768 and rownum < 500;
1769
1770 EXIT when SQL%NOTFOUND;
1771
1772 update bom_ref_desgs_interface bdi
1773 set process_flag = 7
1774 where process_flag = 4
1775 and exists (select NULL from bom_reference_designators brd
1776 where brd.component_sequence_id = bdi.component_sequence_id
1777 and brd.component_reference_designator = bdi.component_reference_designator
1778 and nvl(brd.acd_type,999) =nvl(bdi.acd_type,999));
1779 commit;
1780 end loop;
1781
1782 /*
1783 ** Process substitute components interface table
1784 */
1785 stmt_num := 50;
1786 table_name := 'BOM_SUBSTITUTE_COMPONENTS';
1787 commit_cnt := 0;
1788 loop
1789 insert into BOM_SUBSTITUTE_COMPONENTS
1790 (
1791 SUBSTITUTE_COMPONENT_ID,
1792 LAST_UPDATE_DATE,
1793 LAST_UPDATED_BY,
1794 CREATION_DATE,
1795 CREATED_BY,
1796 LAST_UPDATE_LOGIN,
1797 SUBSTITUTE_ITEM_QUANTITY,
1798 ATTRIBUTE_CATEGORY,
1799 ATTRIBUTE1,
1800 ATTRIBUTE2,
1801 ATTRIBUTE3,
1802 ATTRIBUTE4,
1803 ATTRIBUTE5,
1804 ATTRIBUTE6,
1805 ATTRIBUTE7,
1806 ATTRIBUTE8,
1807 ATTRIBUTE9,
1808 ATTRIBUTE10,
1809 ATTRIBUTE11,
1810 ATTRIBUTE12,
1811 ATTRIBUTE13,
1812 ATTRIBUTE14,
1813 ATTRIBUTE15,
1814 COMPONENT_SEQUENCE_ID,
1815 CHANGE_NOTICE,
1816 REQUEST_ID,
1817 PROGRAM_APPLICATION_ID,
1818 PROGRAM_ID ,
1819 PROGRAM_UPDATE_DATE
1820 )
1821 select
1825 CREATION_DATE,
1822 SUBSTITUTE_COMPONENT_ID,
1823 LAST_UPDATE_DATE,
1824 LAST_UPDATED_BY,
1826 created_by,
1827 last_update_login,
1828 SUBSTITUTE_ITEM_QUANTITY,
1829 ATTRIBUTE_CATEGORY,
1830 ATTRIBUTE1,
1831 ATTRIBUTE2,
1832 ATTRIBUTE3,
1833 ATTRIBUTE4,
1834 ATTRIBUTE5,
1835 ATTRIBUTE6,
1836 ATTRIBUTE7,
1837 ATTRIBUTE8,
1838 ATTRIBUTE9,
1839 ATTRIBUTE10,
1840 ATTRIBUTE11,
1841 ATTRIBUTE12,
1842 ATTRIBUTE13,
1843 ATTRIBUTE14,
1844 ATTRIBUTE15,
1845 COMPONENT_SEQUENCE_ID,
1846 CHANGE_NOTICE,
1847 REQUEST_ID,
1848 PROGRAM_APPLICATION_ID,
1849 PROGRAM_ID ,
1850 PROGRAM_UPDATE_DATE
1851 from BOM_SUB_COMPS_INTERFACE
1852 where process_flag = 4
1853 and rownum < 500;
1854
1855 EXIT when SQL%NOTFOUND;
1856
1857 update bom_sub_comps_interface bsi
1858 set process_flag = 7
1859 where process_flag = 4
1860 and exists (select NULL from bom_substitute_components bsc
1861 where bsc.component_sequence_id = bsi.component_sequence_id
1862 and bsc.substitute_component_id = bsi.substitute_component_id
1863 and nvl(bsc.acd_type,999) = nvl(bsi.acd_type,999));
1864 commit;
1865 end loop;
1866
1867 /*
1868 ** Process item revisions interface table
1869 */
1870 stmt_num := 60;
1871 table_name := 'MTL_ITEM_REVISIONS';
1872 commit_cnt := 0;
1873 loop
1874 insert into MTL_ITEM_REVISIONS
1875 (
1876 INVENTORY_ITEM_ID,
1877 ORGANIZATION_ID,
1878 REVISION,
1879 LAST_UPDATE_DATE,
1880 LAST_UPDATED_BY,
1881 CREATION_DATE,
1882 CREATED_BY,
1883 LAST_UPDATE_LOGIN,
1884 CHANGE_NOTICE,
1885 IMPLEMENTATION_DATE,
1886 EFFECTIVITY_DATE,
1887 ATTRIBUTE_CATEGORY,
1888 ATTRIBUTE1,
1889 ATTRIBUTE2,
1890 ATTRIBUTE3,
1891 ATTRIBUTE4,
1892 ATTRIBUTE5,
1893 ATTRIBUTE6,
1894 ATTRIBUTE7,
1895 ATTRIBUTE8,
1896 ATTRIBUTE9,
1897 ATTRIBUTE10,
1898 ATTRIBUTE11,
1899 ATTRIBUTE12,
1900 ATTRIBUTE13,
1901 ATTRIBUTE14,
1902 ATTRIBUTE15,
1903 PROGRAM_APPLICATION_ID,
1904 PROGRAM_ID,
1905 PROGRAM_UPDATE_DATE,
1906 REQUEST_ID,
1907 DESCRIPTION)
1908 select
1909 INVENTORY_ITEM_ID,
1910 ORGANIZATION_ID,
1911 REVISION,
1912 LAST_UPDATE_DATE,
1913 LAST_UPDATED_BY,
1914 CREATION_DATE,
1915 CREATED_BY,
1916 LAST_UPDATE_LOGIN,
1917 CHANGE_NOTICE,
1918 IMPLEMENTATION_DATE,
1919 EFFECTIVITY_DATE,
1920 ATTRIBUTE_CATEGORY,
1921 ATTRIBUTE1,
1922 ATTRIBUTE2,
1923 ATTRIBUTE3,
1924 ATTRIBUTE4,
1925 ATTRIBUTE5,
1926 ATTRIBUTE6,
1927 ATTRIBUTE7,
1928 ATTRIBUTE8,
1929 ATTRIBUTE9,
1930 ATTRIBUTE10,
1931 ATTRIBUTE11,
1932 ATTRIBUTE12,
1933 ATTRIBUTE13,
1934 ATTRIBUTE14,
1935 ATTRIBUTE15,
1936 PROGRAM_APPLICATION_ID,
1937 PROGRAM_ID,
1938 PROGRAM_UPDATE_DATE,
1939 REQUEST_ID,
1940 DESCRIPTION
1941 from mtl_item_revisions_interface
1942 where process_flag = 4
1943 and rownum < 500;
1944
1945 EXIT when SQL%NOTFOUND;
1946
1947 update mtl_item_revisions_interface mri
1948 set process_flag = 7
1949 where process_flag = 4
1950 and exists (select NULL from mtl_item_revisions mir
1951 where mir.inventory_item_id = mri.inventory_item_id
1952 and mir.organization_id = mri.organization_id
1953 and mir.revision = mri.revision);
1954 commit;
1955 end loop;
1956
1957 return(1);
1958
1962 WHEN OTHERS THEN
1959 EXCEPTION
1960 WHEN NO_DATA_FOUND THEN
1961 return(1);
1963 rollback;
1964 error_message := 'BOMPPRCB:'||to_char(stmt_num)||':'|| substrb(sqlerrm,1,150);
1965 message_name := 'BOM_BILL_PROCESS_ERROR';
1966 return(SQLCODE);
1967
1968 END bmprbill_process_bill_data;
1969
1970 function bmprrtg_process_rtg_data
1971 ( prog_appid NUMBER,
1972 prog_id NUMBER,
1973 request_id NUMBER,
1974 user_id NUMBER,
1975 login_id NUMBER,
1976 error_message OUT VARCHAR2,
1977 message_name OUT VARCHAR2,
1978 table_name OUT VARCHAR2)
1979 return integer
1980 is
1981 stmt_num number;
1982 BEGIN
1983
1984 /*
1985 ** process routing interface table
1986 */
1987 stmt_num := 10;
1988 table_name := 'BOM_OPERATIONAL_ROUTINGS';
1989 loop
1990 insert into BOM_OPERATIONAL_ROUTINGS(
1991 ROUTING_SEQUENCE_ID,
1992 ASSEMBLY_ITEM_ID,
1993 ORGANIZATION_ID,
1994 ALTERNATE_ROUTING_DESIGNATOR,
1995 LAST_UPDATE_DATE,
1996 LAST_UPDATED_BY,
1997 CREATION_DATE,
1998 CREATED_BY,
1999 LAST_UPDATE_LOGIN,
2000 ROUTING_TYPE,
2001 COMMON_ASSEMBLY_ITEM_ID,
2002 COMMON_ROUTING_SEQUENCE_ID,
2003 ROUTING_COMMENT,
2004 COMPLETION_SUBINVENTORY,
2005 COMPLETION_LOCATOR_ID,
2006 ATTRIBUTE_CATEGORY,
2007 ATTRIBUTE1,
2008 ATTRIBUTE2,
2009 ATTRIBUTE3,
2010 ATTRIBUTE4,
2011 ATTRIBUTE5,
2012 ATTRIBUTE6,
2013 ATTRIBUTE7,
2014 ATTRIBUTE8,
2015 ATTRIBUTE9,
2016 ATTRIBUTE10,
2017 ATTRIBUTE11,
2018 ATTRIBUTE12,
2019 ATTRIBUTE13,
2020 ATTRIBUTE14,
2021 ATTRIBUTE15,
2022 REQUEST_ID,
2023 PROGRAM_APPLICATION_ID,
2024 PROGRAM_ID,
2025 PROGRAM_UPDATE_DATE
2026 )
2027 select
2028 ROUTING_SEQUENCE_ID,
2029 ASSEMBLY_ITEM_ID,
2030 ORGANIZATION_ID,
2031 ALTERNATE_ROUTING_DESIGNATOR,
2032 LAST_UPDATE_DATE,
2033 LAST_UPDATED_BY,
2034 CREATION_DATE,
2035 CREATED_BY,
2036 LAST_UPDATE_LOGIN,
2037 ROUTING_TYPE,
2038 COMMON_ASSEMBLY_ITEM_ID,
2039 COMMON_ROUTING_SEQUENCE_ID,
2040 ROUTING_COMMENT,
2041 COMPLETION_SUBINVENTORY,
2042 COMPLETION_LOCATOR_ID,
2043 ATTRIBUTE_CATEGORY,
2044 ATTRIBUTE1,
2045 ATTRIBUTE2,
2046 ATTRIBUTE3,
2047 ATTRIBUTE4,
2048 ATTRIBUTE5,
2049 ATTRIBUTE6,
2050 ATTRIBUTE7,
2051 ATTRIBUTE8,
2052 ATTRIBUTE9,
2053 ATTRIBUTE10,
2054 ATTRIBUTE11,
2055 ATTRIBUTE12,
2056 ATTRIBUTE13,
2057 ATTRIBUTE14,
2058 ATTRIBUTE15,
2059 REQUEST_ID,
2060 PROGRAM_APPLICATION_ID,
2061 PROGRAM_ID,
2062 PROGRAM_UPDATE_DATE
2063 from BOM_OP_ROUTINGS_INTERFACE
2064 where process_flag = 4
2065 and rownum < 500;
2066
2067 EXIT when SQL%NOTFOUND;
2068
2069 update bom_op_routings_interface bri
2070 set process_flag = 7
2071 where process_flag = 4
2072 and exists (select NULL from bom_operational_routings bor
2073 where bor.routing_sequence_id =
2074 bri.routing_sequence_id);
2075 commit;
2076 end loop;
2077 /*
2078 ** Process operation sequences interface tables
2079 */
2080
2081 stmt_num := 20;
2082 table_name := 'BOM_OPERATION_SEQUENCES';
2083 loop
2084 insert into BOM_OPERATION_SEQUENCES
2085 (
2086 OPERATION_SEQUENCE_ID,
2087 ROUTING_SEQUENCE_ID,
2088 OPERATION_SEQ_NUM,
2089 LAST_UPDATE_DATE,
2090 LAST_UPDATED_BY,
2091 CREATION_DATE,
2092 CREATED_BY,
2093 LAST_UPDATE_LOGIN,
2094 STANDARD_OPERATION_ID,
2095 DEPARTMENT_ID,
2096 OPERATION_LEAD_TIME_PERCENT,
2097 MINIMUM_TRANSFER_QUANTITY,
2098 COUNT_POINT_TYPE,
2099 OPERATION_DESCRIPTION,
2100 EFFECTIVITY_DATE,
2101 DISABLE_DATE,
2102 BACKFLUSH_FLAG,
2103 OPTION_DEPENDENT_FLAG,
2104 ATTRIBUTE_CATEGORY,
2105 ATTRIBUTE1,
2106 ATTRIBUTE2,
2107 ATTRIBUTE3,
2108 ATTRIBUTE4,
2109 ATTRIBUTE5,
2110 ATTRIBUTE6,
2111 ATTRIBUTE7,
2112 ATTRIBUTE8,
2113 ATTRIBUTE9,
2114 ATTRIBUTE10,
2115 ATTRIBUTE11,
2119 ATTRIBUTE15,
2116 ATTRIBUTE12,
2117 ATTRIBUTE13,
2118 ATTRIBUTE14,
2120 REQUEST_ID,
2121 PROGRAM_APPLICATION_ID,
2122 PROGRAM_ID,
2123 PROGRAM_UPDATE_DATE
2124 )
2125 select
2126 OPERATION_SEQUENCE_ID,
2127 ROUTING_SEQUENCE_ID,
2128 OPERATION_SEQ_NUM,
2129 LAST_UPDATE_DATE,
2130 LAST_UPDATED_BY,
2131 CREATION_DATE,
2132 CREATED_BY,
2133 LAST_UPDATE_LOGIN,
2134 STANDARD_OPERATION_ID,
2135 DEPARTMENT_ID,
2136 OPERATION_LEAD_TIME_PERCENT,
2137 MINIMUM_TRANSFER_QUANTITY,
2138 COUNT_POINT_TYPE,
2139 OPERATION_DESCRIPTION,
2140 -- trunc(EFFECTIVITY_DATE), -- Changed for bug 2647027
2141 -- trunc(DISABLE_DATE),
2142 EFFECTIVITY_DATE,
2143 DISABLE_DATE,
2144 BACKFLUSH_FLAG,
2145 OPTION_DEPENDENT_FLAG,
2146 ATTRIBUTE_CATEGORY,
2147 ATTRIBUTE1,
2148 ATTRIBUTE2,
2149 ATTRIBUTE3,
2150 ATTRIBUTE4,
2151 ATTRIBUTE5,
2152 ATTRIBUTE6,
2153 ATTRIBUTE7,
2154 ATTRIBUTE8,
2155 ATTRIBUTE9,
2156 ATTRIBUTE10,
2157 ATTRIBUTE11,
2158 ATTRIBUTE12,
2159 ATTRIBUTE13,
2160 ATTRIBUTE14,
2161 ATTRIBUTE15,
2162 REQUEST_ID,
2163 PROGRAM_APPLICATION_ID,
2164 PROGRAM_ID,
2165 PROGRAM_UPDATE_DATE
2166 from BOM_OP_SEQUENCES_INTERFACE
2167 where process_flag = 4
2168 and rownum < 500;
2169
2170 EXIT when SQL%NOTFOUND;
2171
2172 update bom_op_sequences_interface bsi
2173 set process_flag = 7
2174 where process_flag = 4
2175 and exists (select NULL from bom_operation_sequences bos
2176 where bos.operation_sequence_id =
2177 bsi.operation_sequence_id);
2178 commit;
2179 end loop;
2180
2181
2182 /*
2183 ** Process operation resources interface table
2184 */
2185 stmt_num := 40;
2186 table_name := 'BOM_OPERATION_RESOURCES';
2187 loop
2188 insert into BOM_OPERATION_RESOURCES
2189 (
2190 OPERATION_SEQUENCE_ID,
2191 RESOURCE_SEQ_NUM,
2192 RESOURCE_ID,
2193 ACTIVITY_ID,
2194 STANDARD_RATE_FLAG,
2195 ASSIGNED_UNITS,
2196 USAGE_RATE_OR_AMOUNT,
2197 USAGE_RATE_OR_AMOUNT_INVERSE,
2198 BASIS_TYPE,
2199 SCHEDULE_FLAG,
2200 LAST_UPDATE_DATE,
2201 LAST_UPDATED_BY,
2202 CREATION_DATE,
2203 CREATED_BY,
2204 LAST_UPDATE_LOGIN,
2205 RESOURCE_OFFSET_PERCENT,
2206 AUTOCHARGE_TYPE,
2207 ATTRIBUTE_CATEGORY,
2208 ATTRIBUTE1,
2209 ATTRIBUTE2,
2210 ATTRIBUTE3,
2211 ATTRIBUTE4,
2212 ATTRIBUTE5,
2213 ATTRIBUTE6,
2214 ATTRIBUTE7,
2215 ATTRIBUTE8,
2216 ATTRIBUTE9,
2217 ATTRIBUTE10,
2218 ATTRIBUTE11,
2219 ATTRIBUTE12,
2220 ATTRIBUTE13,
2221 ATTRIBUTE14,
2222 ATTRIBUTE15,
2223 REQUEST_ID,
2224 PROGRAM_APPLICATION_ID,
2225 PROGRAM_ID,
2226 PROGRAM_UPDATE_DATE
2227 )
2228 select
2229 OPERATION_SEQUENCE_ID,
2230 RESOURCE_SEQ_NUM,
2231 RESOURCE_ID,
2232 ACTIVITY_ID,
2233 STANDARD_RATE_FLAG,
2234 ASSIGNED_UNITS,
2235 USAGE_RATE_OR_AMOUNT,
2236 USAGE_RATE_OR_AMOUNT_INVERSE,
2237 BASIS_TYPE,
2238 SCHEDULE_FLAG,
2239 LAST_UPDATE_DATE,
2240 LAST_UPDATED_BY,
2241 CREATION_DATE,
2242 CREATED_BY,
2243 LAST_UPDATE_LOGIN,
2244 RESOURCE_OFFSET_PERCENT,
2245 AUTOCHARGE_TYPE,
2246 ATTRIBUTE_CATEGORY,
2247 ATTRIBUTE1,
2248 ATTRIBUTE2,
2249 ATTRIBUTE3,
2250 ATTRIBUTE4,
2251 ATTRIBUTE5,
2252 ATTRIBUTE6,
2253 ATTRIBUTE7,
2254 ATTRIBUTE8,
2255 ATTRIBUTE9,
2259 ATTRIBUTE13,
2256 ATTRIBUTE10,
2257 ATTRIBUTE11,
2258 ATTRIBUTE12,
2260 ATTRIBUTE14,
2261 ATTRIBUTE15,
2262 REQUEST_ID,
2263 PROGRAM_APPLICATION_ID,
2264 PROGRAM_ID,
2265 PROGRAM_UPDATE_DATE
2266 from BOM_OP_RESOURCES_INTERFACE
2267 where process_flag = 4
2268 and rownum < 500;
2269
2270 EXIT when SQL%NOTFOUND;
2271
2272 update bom_op_resources_interface bri
2273 set process_flag = 7
2274 where process_flag = 4
2275 and exists (select NULL from bom_operation_resources bor
2276 where bor.operation_sequence_id =
2277 bri.operation_sequence_id
2278 and bor.resource_seq_num =
2279 bri.resource_seq_num);
2280 commit;
2281 end loop;
2282 /*
2283 ** process routing revision interface table
2284 */
2285 stmt_num := 50;
2286 table_name := 'MTL_RTG_ITEM_REVISIONS';
2287 loop
2288 insert into MTL_RTG_ITEM_REVISIONS(
2289 INVENTORY_ITEM_ID,
2290 ORGANIZATION_ID,
2291 PROCESS_REVISION,
2292 LAST_UPDATE_DATE,
2293 LAST_UPDATED_BY,
2294 CREATION_DATE,
2295 CREATED_BY,
2296 LAST_UPDATE_LOGIN,
2297 IMPLEMENTATION_DATE,
2298 EFFECTIVITY_DATE,
2299 ATTRIBUTE_CATEGORY,
2300 ATTRIBUTE1,
2301 ATTRIBUTE2,
2302 ATTRIBUTE3,
2303 ATTRIBUTE4,
2304 ATTRIBUTE5,
2305 ATTRIBUTE6,
2306 ATTRIBUTE7,
2307 ATTRIBUTE8,
2308 ATTRIBUTE9,
2309 ATTRIBUTE10,
2310 ATTRIBUTE11,
2311 ATTRIBUTE12,
2312 ATTRIBUTE13,
2313 ATTRIBUTE14,
2314 ATTRIBUTE15,
2315 REQUEST_ID,
2316 PROGRAM_APPLICATION_ID,
2317 PROGRAM_ID,
2318 PROGRAM_UPDATE_DATE
2319 )
2320 select
2321 INVENTORY_ITEM_ID,
2322 ORGANIZATION_ID,
2323 PROCESS_REVISION,
2324 LAST_UPDATE_DATE,
2325 LAST_UPDATED_BY,
2326 CREATION_DATE,
2327 CREATED_BY,
2328 LAST_UPDATE_LOGIN,
2329 trunc(IMPLEMENTATION_DATE),
2330 trunc(EFFECTIVITY_DATE),
2331 ATTRIBUTE_CATEGORY,
2332 ATTRIBUTE1,
2333 ATTRIBUTE2,
2334 ATTRIBUTE3,
2335 ATTRIBUTE4,
2336 ATTRIBUTE5,
2337 ATTRIBUTE6,
2338 ATTRIBUTE7,
2339 ATTRIBUTE8,
2340 ATTRIBUTE9,
2341 ATTRIBUTE10,
2342 ATTRIBUTE11,
2343 ATTRIBUTE12,
2344 ATTRIBUTE13,
2345 ATTRIBUTE14,
2346 ATTRIBUTE15,
2347 REQUEST_ID,
2348 PROGRAM_APPLICATION_ID,
2349 PROGRAM_ID,
2350 PROGRAM_UPDATE_DATE
2351 from MTL_RTG_ITEM_REVS_INTERFACE
2352 where process_flag = 4
2353 and rownum < 500;
2354
2355 EXIT when SQL%NOTFOUND;
2356
2357 update mtl_rtg_item_revs_interface mri
2358 set process_flag = 7
2359 where process_flag = 4
2360 and exists (select NULL from mtl_rtg_item_revisions mrr
2361 where mrr.inventory_item_id = mri.inventory_item_id
2362 and mrr.organization_id = mri.organization_id
2363 and mrr.process_revision = mri.process_revision);
2364 commit;
2365 end loop;
2366 return(1);
2367
2368 EXCEPTION
2369 WHEN NO_DATA_FOUND THEN
2370 return(1);
2371 WHEN OTHERS THEN
2372 rollback;
2373 error_message := 'BOMPPRCB:'||to_char(stmt_num)||':'|| substrb(sqlerrm,1,150);
2374 message_name := 'BOM_RTG_PROCESS_ERROR';
2375 return(SQLCODE);
2376
2377 END bmprrtg_process_rtg_data;
2378
2379
2380 END BOMPPRCB;