Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 5

REM +=========================================================================+

REM | Copyright (c) 2013 Oracle Corporation


REM | Redwood Shores, California, USA
REM | All rights reserved.
REM +=========================================================================+
REM | Name
REM | Create_Instance.sql, version 1
REM |
REM | Issue Detail:
REM | Using this script, we will create the instance of EXTERNAL type.
REM | -> This will be used to extract the data from EBS Instance and
REM | can be used to load data in fusion cloud
REM | -> There is no UI developed in EBS that will create instance of
REM | type EXTERNAL.
REM | Hence, we are providing data script to create the source system.
REM |
REM | Script Type:
REM | Insert
REM |
REM | List of steps/verification before datafix:
REM |
REM |
REM | List of steps/verification after datafix:
REM |
REM | Check the instance record got inserted to MSC_APPS_INSTANCES and
REM | MRP_AP_APPS_INSTANCES_ALL. Check the Orgs are assigned to this
REM | created instance in MSC_INSTANCE_ORGS.
REM |
REM | Version History:
REM | 1. created to insert instance and assign orgs.
REM |
REM +=========================================================================+

-- Script Starts From Here --

CONNECT &&1/&&2;

SET SERVEROUTPUT ON;


SPOOL Create_Instance.log

SET ECHO ON
SET FEEDBACK 1
SET NUMWIDTH 10
SET LINESIZE 80
SET TRIMSPOOL ON
SET TAB OFF
SET PAGESIZE 100
SET VERIFY OFF;
WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
WHENEVER OSERROR EXIT FAILURE ROLLBACK;

DECLARE
p_input_instance varchar2(3);
p_input_validation_org varchar2(3);
p_input_group_code varchar2(30);
p_input_org_code_list varchar2(100);

l_val_org_exists number;
l_org_count number;
l_org_array dbms_utility.lname_array;
l_input_validation_id number;
l_org_id_array dbms_utility.lname_array;
l_instance_id number;

BEGIN
--DBMS_OUTPUT.PUT_LINE('Welcome to EBS-Fusion Cloud Integration...');

--DBMS_OUTPUT.PUT_LINE('Enter the Instance Code :');


p_input_instance := upper('&enter_instance_code');

--DBMS_OUTPUT.PUT_LINE('Enter the Validation Organization Code :');


p_input_validation_org := upper('&enter_validation_org_code');

--DBMS_OUTPUT.PUT_LINE('Enter the Organization Group Code :');


p_input_group_code := upper('&enter_org_group_code');

--DBMS_OUTPUT.PUT_LINE('Enter the Organization Codes (comma separated. Eg:


M1,M2) :');
p_input_org_code_list := upper('&enter_list_of_org_code');

DBMS_OUTPUT.PUT_LINE('================================');
DBMS_OUTPUT.PUT_LINE('Input Instance Code : ' || p_input_instance);
DBMS_OUTPUT.PUT_LINE('Input Validation Organization Code : ' ||
p_input_validation_org);
DBMS_OUTPUT.PUT_LINE('Input Organization Group Code : '||p_input_group_code);
DBMS_OUTPUT.PUT_LINE('Input Organization Codes : '||p_input_org_code_list);

DBMS_OUTPUT.PUT_LINE('Validating the provided values...');

DBMS_OUTPUT.PUT_LINE('Validating the Instance code...');


select count(1) into l_val_org_exists from msc_apps_instances where
instance_code=p_input_instance and rownum=1;
if l_val_org_exists <> 1 then
DBMS_OUTPUT.PUT_LINE('New instance...');
l_instance_id := MSC_APPS_INSTANCES_S.nextval;
else
DBMS_OUTPUT.PUT_LINE('Instance already exists');
select instance_id into l_instance_id from msc_apps_instances where
instance_code=p_input_instance and rownum=1;
end if;

DBMS_OUTPUT.PUT_LINE('Validating the Validation Organization Code...');


if ( p_input_validation_org is not null)
then
select count(1) into l_val_org_exists from mtl_parameters where
organization_code=p_input_validation_org and rownum=1;
if l_val_org_exists <> 1 then
DBMS_OUTPUT.PUT_LINE('Invalid Validation Organization Code..');
DBMS_OUTPUT.PUT_LINE('Exiting..');
return;
else
DBMS_OUTPUT.PUT_LINE('Deriving the id of Validation Organization
Code..');
select ORGANIZATION_ID into l_input_validation_id from mtl_parameters
where organization_code=p_input_validation_org and rownum=1;
end if;
else
DBMS_OUTPUT.PUT_LINE('Input Validation Organization Code is null..');
l_input_validation_id := null;
end if;

dbms_utility.comma_to_table
( list => p_input_org_code_list
, tablen => l_org_count
, tab => l_org_array
);

DBMS_OUTPUT.PUT_LINE('Validating the provided '||l_org_count|| ' Organization


Code(s)...');
for i in 1 .. l_org_count
loop
select count(1) into l_val_org_exists from mtl_parameters where
organization_code=l_org_array(i) and rownum=1;
if l_val_org_exists <> 1 then
DBMS_OUTPUT.PUT_LINE('Invalid Organization Code : '||l_org_array(i));
DBMS_OUTPUT.PUT_LINE('Exiting..');
return;
else
DBMS_OUTPUT.PUT_LINE('Deriving the id of Organization Code : '||
l_org_array(i)||'..');
select ORGANIZATION_ID into l_org_id_array(i) from mtl_parameters
where organization_code=l_org_array(i) and rownum=1;
end if;
end loop;

DBMS_OUTPUT.PUT_LINE('Merging to MSC_APPS_INSTANCES...');
MERGE into MSC_APPS_INSTANCES msc using (
select p_input_instance instance_code,
l_input_validation_id validation_org_id,
sysdate creation_date,
sysdate last_update_date,
-1 created_by, -- get the session user
-1 last_updated_by -- get the session user
from dual) rec
on (msc.instance_code = rec.instance_code)
WHEN MATCHED THEN
UPDATE SET
msc.validation_org_id = rec.validation_org_id,
msc.last_update_date = rec.last_update_date,
msc.last_updated_by = rec.last_updated_by
WHEN NOT MATCHED THEN
INSERT (instance_code,
apps_ver,
instance_type,
dbs_ver,
enable_flag,
apps_lrn,
instance_id,
st_status,
cleansed_flag,
gmt_difference,
last_update_date,
last_updated_by,
creation_date,
created_by,
currency,
allow_atp_flag,
allow_release_flag,
validation_org_id)
VALUES(
rec.instance_code,
-1, --APPS_VER,
3, --INSTANCE_TYPE,
0, --DBS_VER,
1, --ENABLE_FLAG,
0, --APPS_LRN,
l_instance_id,
0, --ST_STATUS,
1, --CLEANSED_FLAG,
0, --GMT_DIFFERENCE,
rec.last_update_date,
rec.last_updated_by,
rec.creation_date,
rec.created_by,
'USD', --CURRENCY,
2, --ALLOW_ATP_FLAG,
2, --ALLOW_RELEASE_FLAG,
rec.validation_org_id
);

DBMS_OUTPUT.PUT_LINE('Merging to MRP_AP_APPS_INSTANCES_ALL...');
MERGE into MRP_AP_APPS_INSTANCES_ALL msc using (
select p_input_instance instance_code,
l_instance_id instance_id,
sysdate creation_date,
sysdate last_update_date,
-1 created_by, -- get the session user
-1 last_updated_by -- get the session user
from dual) rec
on (msc.instance_code = rec.instance_code)
WHEN MATCHED THEN
UPDATE SET
msc.last_update_date = rec.last_update_date,
msc.last_updated_by = rec.last_updated_by
WHEN NOT MATCHED THEN
INSERT (
instance_id,
instance_code,
sn_status,
allow_atp_flag,
allow_release_flag,
last_update_date,
last_updated_by,
creation_date,
created_by
)
VALUES(
rec.instance_id,
rec.instance_code,
-1, --SN_STATUS,
2, --ALLOW_ATP_FLAG,
2, --ALLOW_RELEASE_FLAG,
rec.last_update_date,
rec.last_updated_by,
rec.creation_date,
rec.created_by
);

DBMS_OUTPUT.PUT_LINE('Merging to MSC_INSTANCE_ORGS...');
FOR i in 1 .. l_org_count
LOOP
MERGE into MSC_INSTANCE_ORGS msc using (
select p_input_group_code org_group,
l_instance_id instance_id,
l_org_id_array(i) organization_id,
1 enabled_flag,
sysdate creation_date,
sysdate last_update_date,
-1 created_by, -- get the session user
-1 last_updated_by -- get the session user
from dual) rec
ON (msc.sr_instance_id = rec.instance_id and
msc.organization_id=rec.organization_id)
WHEN MATCHED THEN
UPDATE SET
msc.org_group = rec.org_group,
msc.last_update_date = rec.last_update_date,
msc.last_updated_by = rec.last_updated_by
WHEN NOT MATCHED THEN
INSERT (
sr_instance_id,
organization_id,
org_group,
enabled_flag,
last_update_date,
last_updated_by,
creation_date,
created_by
)
VALUES(
rec.instance_id,
rec.organization_id,
rec.org_group,
rec.enabled_flag,
rec.last_update_date,
rec.last_updated_by,
rec.creation_date,
rec.created_by
);
END LOOP;
DBMS_OUTPUT.PUT_LINE('End. Please issue COMMIT...');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error while executing Create_Instance.sql : '||SQLERRM);
DBMS_OUTPUT.PUT_LINE('Error while executing Create_Instance.sql : '||
DBMS_UTILITY.FORMAT_ERROR_STACK);
DBMS_OUTPUT.PUT_LINE('Error while executing Create_Instance.sql : '||
DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
END;
/
SPOOL OFF;

You might also like