57:
58:
59: BEGIN
60:
61: --FND_LOG.STRING(Fnd_Log.Level_Procedure,lc_mod_name,'Starting');
62:
63: IF funcmode ='RUN' then
64:
65: l_repair_line_id := wf_engine.GetItemAttrNumber
87:
88: l_wf_role := 'NOTIFY_'||l_contact_name;
89: l_wf_role_display_name := 'Depot Notification Role For '||l_contact_name;
90:
91: --FND_LOG.STRING(Fnd_Log.Level_Procedure,lc_mod_name,'CreateAdHocRole');
92:
93: wf_directory.CreateAdHocRole
94: (role_name => l_wf_role,
95: role_display_name => l_wf_role_display_name,
119: l_msg_text := fnd_message.get;
120:
121: IF l_wf_role IS NOT NULL THEN
122:
123: --FND_LOG.STRING(Fnd_Log.Level_Procedure,lc_mod_name,'setItemAttrText');
124:
125: wf_engine.setItemAttrText
126: (itemtype => itemtype,
127: itemkey => itemkey,
206: and wr.status = 'ACTIVE';
207:
208: BEGIN
209:
210: --FND_LOG.STRING(Fnd_Log.Level_Procedure,lc_mod_name,'Starting');
211:
212: IF funcmode ='RUN' then
213:
214: l_repair_line_id := wf_engine.GetItemAttrNumber
236:
237: l_wf_role := 'NOTIFY_'||l_contact_name;
238: l_wf_role_display_name := 'Depot Notification Role For '||l_contact_name;
239:
240: --FND_LOG.STRING(Fnd_Log.Level_Procedure,lc_mod_name,'CreateAdHocRole');
241:
242: wf_directory.CreateAdHocRole
243: (role_name => l_wf_role,
244: role_display_name => l_wf_role_display_name,
269: l_msg_text := fnd_message.get;
270:
271: IF l_wf_role IS NOT NULL THEN
272:
273: --FND_LOG.STRING(Fnd_Log.Level_Procedure,lc_mod_name,'setItemAttrText');
274:
275: wf_engine.setItemAttrText
276: (itemtype => itemtype,
277: itemkey => itemkey,
349: and wr.status = 'ACTIVE';
350:
351: BEGIN
352:
353: --FND_LOG.STRING(Fnd_Log.Level_Procedure,lc_mod_name,'Starting');
354:
355: IF funcmode ='RUN' then
356:
357: l_repair_line_id := wf_engine.GetItemAttrNumber
378: --fnd_message.set_token('CURRENT_RO_STATUS',l_flow_status);
379:
380: l_msg_text := fnd_message.get;
381:
382: --FND_LOG.STRING(Fnd_Log.Level_Procedure,lc_mod_name,'setItemAttrText');
383:
384: wf_engine.setItemAttrText
385: (itemtype => itemtype,
386: itemkey => itemkey,
511: BEGIN
512:
513: IF funcmode ='RUN' THEN
514:
515: IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level) THEN
516: fnd_log.STRING (fnd_log.level_procedure,
517: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS.BEGIN',
518: 'Enter - auto_create_repair_orders');
519: END IF;
512:
513: IF funcmode ='RUN' THEN
514:
515: IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level) THEN
516: fnd_log.STRING (fnd_log.level_procedure,
517: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS.BEGIN',
518: 'Enter - auto_create_repair_orders');
519: END IF;
520:
570:
571: -- Create SR if no SR has been created
572: IF NOT(l_created_sr) THEN
573:
574: If (fnd_log.level_statement >= fnd_log.g_current_runtime_level) then
575: fnd_log.STRING (fnd_log.level_statement,
576: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
577: 'Begin Create Internal SR');
578: End if;
571: -- Create SR if no SR has been created
572: IF NOT(l_created_sr) THEN
573:
574: If (fnd_log.level_statement >= fnd_log.g_current_runtime_level) then
575: fnd_log.STRING (fnd_log.level_statement,
576: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
577: 'Begin Create Internal SR');
578: End if;
579:
602: );
603:
604: IF NOT(l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
605:
606: If (fnd_log.level_statement >= fnd_log.g_current_runtime_level) then
607: fnd_log.STRING (fnd_log.level_statement,
608: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
609: 'Create Internal SR Failed');
610: End if;
603:
604: IF NOT(l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
605:
606: If (fnd_log.level_statement >= fnd_log.g_current_runtime_level) then
607: fnd_log.STRING (fnd_log.level_statement,
608: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
609: 'Create Internal SR Failed');
610: End if;
611:
614: END IF;
615:
616: l_created_sr := true;
617:
618: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
619: fnd_log.STRING (fnd_log.level_statement,
620: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
621: 'Created Internal SR: Incident Number = ' || l_incident_number);
622: END IF;
615:
616: l_created_sr := true;
617:
618: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
619: fnd_log.STRING (fnd_log.level_statement,
620: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
621: 'Created Internal SR: Incident Number = ' || l_incident_number);
622: END IF;
623:
626: -------------------------------
627: -- CREATE REPAIR ORDERS
628: -------------------------------
629:
630: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
631: fnd_log.STRING (fnd_log.level_statement,
632: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
633: 'Begin Create RO for transaction id = ' || l_transaction_id);
634: END IF;
627: -- CREATE REPAIR ORDERS
628: -------------------------------
629:
630: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
631: fnd_log.STRING (fnd_log.level_statement,
632: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
633: 'Begin Create RO for transaction id = ' || l_transaction_id);
634: END IF;
635:
654: Else
655: l_currency_code := CSD_CHARGE_LINE_UTIL.GET_PLCURRCODE(l_repair_type_pl);
656: End if;
657:
658: If (fnd_log.level_statement >= fnd_log.g_current_runtime_level) then
659: fnd_log.STRING (fnd_log.level_statement,
660: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
661: 'Derived Currency Code = '|| l_currency_code);
662: End if;
655: l_currency_code := CSD_CHARGE_LINE_UTIL.GET_PLCURRCODE(l_repair_type_pl);
656: End if;
657:
658: If (fnd_log.level_statement >= fnd_log.g_current_runtime_level) then
659: fnd_log.STRING (fnd_log.level_statement,
660: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
661: 'Derived Currency Code = '|| l_currency_code);
662: End if;
663:
691: Open c_get_ib_info(l_inventory_item_id, l_serial_number);
692: Fetch c_get_ib_info into l_instance_id;
693: Close c_get_ib_info;
694:
695: If (fnd_log.level_statement >= fnd_log.g_current_runtime_level) then
696: fnd_log.STRING (fnd_log.level_statement,
697: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
698: 'Derived Instance Id = '|| l_instance_id || ' for Item Id = '|| l_inventory_item_id ||
699: ' Serial Number = ' || l_serial_number );
692: Fetch c_get_ib_info into l_instance_id;
693: Close c_get_ib_info;
694:
695: If (fnd_log.level_statement >= fnd_log.g_current_runtime_level) then
696: fnd_log.STRING (fnd_log.level_statement,
697: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
698: 'Derived Instance Id = '|| l_instance_id || ' for Item Id = '|| l_inventory_item_id ||
699: ' Serial Number = ' || l_serial_number );
700: End if;
723: );
724:
725: IF NOT(l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
726:
727: If (fnd_log.level_statement >= fnd_log.g_current_runtime_level) then
728: fnd_log.STRING (fnd_log.level_statement,
729: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
730: 'Create RO Failed for transaction id = ' || l_transaction_id);
731: End if;
724:
725: IF NOT(l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
726:
727: If (fnd_log.level_statement >= fnd_log.g_current_runtime_level) then
728: fnd_log.STRING (fnd_log.level_statement,
729: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
730: 'Create RO Failed for transaction id = ' || l_transaction_id);
731: End if;
732:
733: RAISE FND_API.G_EXC_ERROR;
734:
735: END IF;
736:
737: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
738: fnd_log.STRING (fnd_log.level_statement,
739: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
740: 'Created RO: Repair Number = ' || l_repair_number || ' for transaction id = ' || l_transaction_id);
741: END IF;
734:
735: END IF;
736:
737: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
738: fnd_log.STRING (fnd_log.level_statement,
739: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
740: 'Created RO: Repair Number = ' || l_repair_number || ' for transaction id = ' || l_transaction_id);
741: END IF;
742:
764: NVL(fnd_global.USER_ID, -1),
765: sysdate
766: );
767:
768: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
769: fnd_log.STRING (fnd_log.level_statement,
770: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
771: 'Inserted transaction id = ' || l_transaction_id || ' into CSD_RO_CREATION_WIP_TXNS');
772: END IF;
765: sysdate
766: );
767:
768: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
769: fnd_log.STRING (fnd_log.level_statement,
770: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS',
771: 'Inserted transaction id = ' || l_transaction_id || ' into CSD_RO_CREATION_WIP_TXNS');
772: END IF;
773:
779: Savepoint auto_create_ro_savepoint;
780:
781: resultout := 'COMPLETE:SUCCESS';
782:
783: IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level) THEN
784: fnd_log.STRING (fnd_log.level_procedure,
785: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS.END',
786: 'Exit - auto_create_repair_orders');
787: END IF;
780:
781: resultout := 'COMPLETE:SUCCESS';
782:
783: IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level) THEN
784: fnd_log.STRING (fnd_log.level_procedure,
785: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS.END',
786: 'Exit - auto_create_repair_orders');
787: END IF;
788:
792:
793: EXCEPTION
794: WHEN OTHERS THEN
795: Rollback To auto_create_ro_savepoint;
796: IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level) THEN
797: fnd_log.STRING (fnd_log.level_procedure,
798: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS.END',
799: 'Error/Exception occurred, Roll back all SR and ROs created');
800: END IF;
793: EXCEPTION
794: WHEN OTHERS THEN
795: Rollback To auto_create_ro_savepoint;
796: IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level) THEN
797: fnd_log.STRING (fnd_log.level_procedure,
798: 'CSD.PLSQL.CSD_WF_PROCESS_PVT.AUTO_CREATE_REPAIR_ORDERS.END',
799: 'Error/Exception occurred, Roll back all SR and ROs created');
800: END IF;
801:
818: x_return_status varchar2(1);
819: x_contract_number varchar2(30);
820:
821: BEGIN
822: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL )
823: THEN
824: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, lc_mod_name, 'Begin : create_service_warranty_wf');
825: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, lc_mod_name, 'Item key is '||itemkey);
826: END IF;
820:
821: BEGIN
822: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL )
823: THEN
824: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, lc_mod_name, 'Begin : create_service_warranty_wf');
825: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, lc_mod_name, 'Item key is '||itemkey);
826: END IF;
827: l_order_line_id := to_number(itemkey);
828: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL )
821: BEGIN
822: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL )
823: THEN
824: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, lc_mod_name, 'Begin : create_service_warranty_wf');
825: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, lc_mod_name, 'Item key is '||itemkey);
826: END IF;
827: l_order_line_id := to_number(itemkey);
828: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL )
829: THEN
824: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, lc_mod_name, 'Begin : create_service_warranty_wf');
825: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, lc_mod_name, 'Item key is '||itemkey);
826: END IF;
827: l_order_line_id := to_number(itemkey);
828: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL )
829: THEN
830: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, lc_mod_name, 'Calling csd_repairs_util.create_repair_warranty for order line id '||l_order_line_id);
831: END IF;
832: csd_repairs_util.create_repair_warranty
826: END IF;
827: l_order_line_id := to_number(itemkey);
828: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL )
829: THEN
830: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, lc_mod_name, 'Calling csd_repairs_util.create_repair_warranty for order line id '||l_order_line_id);
831: END IF;
832: csd_repairs_util.create_repair_warranty
833: (p_api_version_number => 1.0,
834: p_init_msg_list => fnd_api.g_true,
839: x_contract_number => x_contract_number,
840: p_order_line_id => l_order_line_id
841: );
842:
843: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL )
844: THEN
845: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, lc_mod_name, 'Return from csd_repairs_util.create_repair_warranty. The return status is '||x_return_status);
846: END IF;
847:
841: );
842:
843: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL )
844: THEN
845: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, lc_mod_name, 'Return from csd_repairs_util.create_repair_warranty. The return status is '||x_return_status);
846: END IF;
847:
848: IF x_return_status = fnd_api.g_ret_sts_success
849: THEN