DBA Data[Home] [Help]

APPS.OPI_DBI_JOBS_PKG SQL Statements

The following lines contain the word 'select', 'insert', 'update' or 'delete':

Line: 74

    do not call the secondary currency API. Instead update the secondary
    rates from the primary.

    If the secondary currency has not been set up, set the conversion rate
    to null.

    If any primary conversion rates are missing, throw an exception.
    If any secondary currency rates are missing (after the secondary
    currency has been set up) throw an exception.

    Need to commit data here due to insert+append.

    Date            Author              Action
    08/25/2004      Dinkar Gupta        Modified to provide secondary
                                        currency support.
*/
FUNCTION Get_Conversion_Rate (
    errbuf  IN OUT NOCOPY VARCHAR2,
    retcode IN OUT NOCOPY VARCHAR2
 )
    RETURN NUMBER
 IS

    -- Cursor to see if any rates are missing. See below for details
    CURSOR invalid_rates_exist_csr IS
        SELECT 1
          FROM opi_dbi_muv_conv_rates
          WHERE (   nvl (conversion_rate, -999) < 0
                 OR nvl (sec_conversion_rate, 999) < 0)
            AND rownum < 2;
Line: 125

        SELECT DISTINCT
            report_order,
            curr_code,
            rate_type,
            completion_date,
            func_currency_code
          FROM (
           SELECT DISTINCT
                    g_global_currency_code curr_code,
                    g_global_rate_type rate_type,
                    1 report_order, -- ordering global currency first
                    mp.organization_code,
                    decode (conv.conversion_rate,
                            C_EURO_MISSING_AT_START, g_euro_start_date,
                            conv.transaction_date) completion_date,
                    conv.f_currency_code func_currency_code
              FROM opi_dbi_muv_conv_rates conv,
                   mtl_parameters mp,
                  (SELECT /*+ parallel (opi_dbi_jobs_stg) */
                   DISTINCT organization_id,
                            trunc (completion_date) completion_date
                     FROM opi_dbi_jobs_stg) to_conv
              WHERE nvl (conv.conversion_rate, -999) < 0 -- null is not fine
                AND mp.organization_id = to_conv.organization_id
                AND conv.transaction_date (+) = to_conv.completion_date
                AND conv.organization_id (+) = to_conv.organization_id
            UNION ALL
            SELECT DISTINCT
                    g_secondary_currency_code curr_code,
                    g_secondary_rate_type rate_type,
                    decode (p_pri_sec_curr_same,
                            1, 1,
                            2) report_order, --ordering secondary currency next
                    mp.organization_code,
                    decode (conv.sec_conversion_rate,
                            C_EURO_MISSING_AT_START, g_euro_start_date,
                            conv.transaction_date) completion_date,
                    conv.f_currency_code func_currency_code
              FROM opi_dbi_muv_conv_rates conv,
                   mtl_parameters mp,
                  (SELECT /*+ parallel (opi_dbi_jobs_stg) */
                   DISTINCT organization_id,
                            trunc (completion_date) completion_date
                     FROM opi_dbi_jobs_stg) to_conv
              WHERE nvl (conv.sec_conversion_rate, 999) < 0 -- null is fine
                AND mp.organization_id = to_conv.organization_id
                AND conv.transaction_date (+) = to_conv.completion_date
                AND conv.organization_id (+) = to_conv.organization_id)
          ORDER BY
                report_order ASC,
                completion_date,
                func_currency_code;
Line: 227

    INSERT /*+ append parallel(rates) */
    INTO opi_dbi_muv_conv_rates rates (
        organization_id,
        f_currency_code,
        transaction_date,
        conversion_rate,
        sec_conversion_rate,
        creation_date,
        last_update_date,
        created_by,
        last_updated_by,
        last_update_login,
        PROGRAM_ID,
	PROGRAM_LOGIN_ID,
	PROGRAM_APPLICATION_ID,
	REQUEST_ID )
    SELECT /*+ parallel (to_conv) parallel (curr_codes) */
        to_conv.organization_id,
        curr_codes.currency_code,
        to_conv.completion_date,
        decode (curr_codes.currency_code,
                g_global_currency_code, 1,
                fii_currency.get_global_rate_primary (
                                    curr_codes.currency_code,
                                    to_conv.completion_date) ),
        decode (g_secondary_currency_code,
                NULL, NULL,
                curr_codes.currency_code, 1,
                decode (l_pri_sec_curr_same,
                        1, C_PRI_SEC_CURR_SAME_MARKER,
                        fii_currency.get_global_rate_secondary (
                            curr_codes.currency_code,
                            to_conv.completion_date))),
        g_sysdate,
        g_sysdate,
        g_user_id,
        g_user_id,
        g_login_id,
        g_program_id,
	g_program_login_id,
	g_program_application_id,
	g_request_id
      FROM
        (SELECT /*+ parallel (opi_dbi_jobs_stg) */
         DISTINCT organization_id, trunc (completion_date) completion_date
           FROM opi_dbi_jobs_stg) to_conv,
        (SELECT /*+ leading (hoi) full (hoi) use_hash (gsob)
                    parallel (hoi) parallel (gsob)*/
         DISTINCT hoi.organization_id, gsob.currency_code
           FROM hr_organization_information hoi,
                gl_sets_of_books gsob
           WHERE hoi.org_information_context  = 'Accounting Information'
             AND hoi.org_information1  = to_char(gsob.set_of_books_id))
        curr_codes
      WHERE curr_codes.organization_id  = to_conv.organization_id;
Line: 293

        UPDATE /*+ parallel (opi_dbi_muv_conv_rates) */
        opi_dbi_muv_conv_rates
        SET sec_conversion_rate = conversion_rate;
Line: 362

FUNCTION Insert_into_Jobs_Fact RETURN NUMBER
IS
    l_row_count NUMBER;
Line: 367

    INSERT /*+ append parallel(f) */
    INTO opi_dbi_jobs_f f (
        organization_id,
        job_id,
        job_type,
        status,
        completion_date,
        assembly_item_id,
        start_quantity,
        actual_qty_completed,
        uom_code,
        conversion_rate,
        sec_conversion_rate,
        include_job,
        std_req_flag,
        std_res_flag,
        source,
        creation_date,
        last_update_date,
        created_by,
        last_updated_by,
        last_update_login,
        job_name,
        line_type,
        scheduled_completion_date,
        job_status_code,
        job_start_value,
        PROGRAM_ID,
	PROGRAM_LOGIN_ID,
	PROGRAM_APPLICATION_ID,
	REQUEST_ID)
    SELECT /*+ parallel (fstg)  parallel (conv) */
        fstg.organization_id,
        fstg.job_id,
        fstg.job_type,
        fstg.status,
        fstg.completion_date,
        fstg.assembly_item_id,
        fstg.start_quantity,
        fstg.actual_qty_completed,
        fstg.uom_code,
        conv.conversion_rate,
        conv.sec_conversion_rate,
        fstg.include_job,
        1,
        fstg.std_res_flag,
        fstg.source,
        fstg.creation_date,
        fstg.last_update_date,
        fstg.created_by,
        fstg.last_updated_by,
        fstg.last_update_login,
        fstg.job_name,
        fstg.line_type,
        fstg.scheduled_completion_date,
        fstg.job_status_code,
        fstg.job_start_value,
        fstg.PROGRAM_ID,
	fstg.PROGRAM_LOGIN_ID,
	fstg.PROGRAM_APPLICATION_ID,
	fstg.REQUEST_ID
      FROM  opi_dbi_jobs_stg fstg,
            opi_dbi_muv_conv_rates conv
      WHERE fstg.organization_id = conv.organization_id
        AND fstg.completion_date = conv.transaction_date;
Line: 438

END Insert_into_Jobs_Fact;
Line: 449

    SELECT
        fstg.organization_id,
        fstg.job_id,
        fstg.job_type,
        fstg.status,
        fstg.completion_date,
        fstg.assembly_item_id,
        fstg.start_quantity,
        fstg.actual_qty_completed,
        fstg.uom_code,
        conv.conversion_rate,
        conv.sec_conversion_rate,
        fstg.include_job,
        fstg.source,
        fstg.creation_date,
        fstg.last_update_date,
        fstg.created_by,
        fstg.last_updated_by,
        fstg.last_update_login,
        fstg.job_name,
        fstg.line_type,
        fstg.scheduled_completion_date,
        fstg.job_status_code,
        fstg.job_start_value,
        fstg.PROGRAM_ID PROGRAM_ID,
	fstg.PROGRAM_LOGIN_ID PROGRAM_LOGIN_ID,
	fstg.PROGRAM_APPLICATION_ID PROGRAM_APPLICATION_ID,
	fstg.REQUEST_ID REQUEST_ID
      FROM  opi_dbi_jobs_stg fstg,
            opi_dbi_muv_conv_rates conv
      WHERE fstg.organization_id = conv.organization_id
        AND fstg.completion_date = conv.transaction_date ) s
    ON (    f.Organization_id      = s.Organization_id
        and f.Job_id           = s.Job_id
        and f.Job_Type         = s.Job_Type
        and f.Assembly_Item_id = s.Assembly_Item_id
        and f.line_type        = s.line_type)
    WHEN MATCHED THEN
    UPDATE SET
        f.status = s.status
       ,f.job_name = s.job_name
       ,f.completion_date = s.completion_date
       ,f.start_quantity = s.start_quantity
       ,f.actual_qty_completed = s.actual_qty_completed
       ,f.uom_code = s.uom_code
       ,f.conversion_rate = s.conversion_rate
       ,f.include_job = s.include_job
       ,std_req_flag = (CASE
                        WHEN f.Status not in ( 'Closed', 'Complete - No Charges', 'Cancelled' )
                         AND s.Status in ( 'Closed', 'Complete - No Charges', 'Cancelled' ) THEN 1
                        WHEN s.Status in ( 'Closed', 'Complete - No Charges', 'Cancelled' )
                         AND s.Actual_Qty_Completed <> f.Actual_Qty_Completed THEN 1
                        WHEN s.Status in ( 'Closed', 'Complete - No Charges', 'Cancelled' )
                         AND s.Start_Quantity <> f.Start_Quantity THEN 1
                        WHEN s.Status in ( 'Closed', 'Complete - No Charges', 'Cancelled' )
                         AND trunc(s.Completion_date) <> trunc(f.Completion_date) THEN 1
                        ELSE 0
                        END)
       ,std_res_flag = (CASE
                        WHEN f.Status not in ( 'Closed', 'Complete - No Charges', 'Cancelled' )
                         AND s.Status in ( 'Closed', 'Complete - No Charges', 'Cancelled' ) THEN 1
                        WHEN s.Status in ( 'Closed', 'Complete - No Charges', 'Cancelled' )
                         AND s.Actual_Qty_Completed <> f.Actual_Qty_Completed THEN 1
                        WHEN s.Status in ( 'Closed', 'Complete - No Charges', 'Cancelled' )
                         AND s.Start_Quantity <> f.Start_Quantity THEN 1
                        WHEN s.Status in ( 'Closed', 'Complete - No Charges', 'Cancelled' )
                         AND trunc(s.Completion_date) <> trunc(f.Completion_date) THEN 1
                        ELSE 0
                        END)
       ,last_Update_Date = SYSDATE
       ,last_Updated_By = g_user_id
       ,last_Update_Login = g_login_id
       ,f.scheduled_completion_date = s.scheduled_completion_date
       ,f.job_status_code = s.job_status_code
       ,f.job_start_value = s.job_start_value
    WHEN NOT MATCHED THEN
    INSERT (
        organization_id,
        job_id,
        job_type,
        status,
        completion_date,
        assembly_item_id,
        start_quantity,
        actual_qty_completed,
        uom_code,
        conversion_rate,
        sec_conversion_rate,
        include_job,
        std_req_flag,
        std_res_flag,
        source,
        creation_date,
        last_update_date,
        created_by,
        last_updated_by,
        last_update_login,
        job_name,
        line_type,
        scheduled_completion_date,
        job_status_code,
        job_start_value,
        PROGRAM_ID,
	PROGRAM_LOGIN_ID,
	PROGRAM_APPLICATION_ID,
	REQUEST_ID)
    VALUES (
        s.organization_id,
        s.job_id,
        s.job_type,
        s.status,
        s.completion_date,
        s.assembly_item_id,
        s.start_quantity,
        s.actual_qty_completed,
        s.uom_code,
        s.conversion_rate,
        s.sec_conversion_rate,
        s.include_job,
        1,
        1,
        s.source,
        s.creation_date,
        s.last_update_date,
        s.created_by,
        s.last_updated_by,
        s.last_update_login,
        s.job_name,
        s.line_type,
        s.scheduled_completion_date,
        s.job_status_code,
        s.job_start_value,
        s.PROGRAM_ID,
	s.PROGRAM_LOGIN_ID,
	s.PROGRAM_APPLICATION_ID,
	s.REQUEST_ID);
Line: 612

    select
     	from_bound_date,
     	to_bound_date
    from
     	OPI_DBI_RUN_LOG_CURR
    where
     	ETL_ID = 4 and
 	source = 2;
Line: 722

        /* Insert into Jobs Staging Table */

        /* OPI Jobs master extraction into Jobs Staging Table */
        INSERT /*+ APPEND PARALLEL(f) */
        INTO opi_dbi_jobs_stg f (
            organization_id,
            job_id,
            job_type,
            status,
            completion_date,
            assembly_item_id,
            start_quantity,
            actual_qty_completed,
            uom_code,
            include_job,
            std_req_flag,
            std_res_flag,
            source,
            creation_date,
            last_update_date,
            created_by,
            last_updated_by,
            last_update_login,
            job_name,
            scheduled_completion_date,
	    line_type,
	    job_status_code,
            job_start_value,
            PROGRAM_ID,
	    PROGRAM_LOGIN_ID,
	    PROGRAM_APPLICATION_ID,
	    REQUEST_ID)
        SELECT /*+ parallel(jobs) use_hash(msi) parallel(msi) */
            jobs.organization_id organization_id,
            job_id,
            job_type,
            job_status,
            trunc (completion_date) completion_date,
            assembly_item_id,
            start_quantity,
            actual_qty_completed,
            msi.primary_uom_code uom_code,
            include_job,
            1 std_req_flag,
            decode(job_status_code, 2, 1, 5, 1, 7, 1, 12, 1, 0) std_res_flag,
            1 source,
            g_sysdate creation_date,
            g_sysdate last_update_date,
            g_user_id created_by,
            g_user_id last_updated_by,
            g_login_id last_update_login,
            job_name,
            scheduled_completion_date,
	    line_type,
	    decode(job_type,3,decode (job_status_code,2,12,job_status_code),job_status_code),
            job_start_value,
            g_program_id,
	    g_program_login_id,
	    g_program_application_id,
	    g_request_id
          FROM
            (
             SELECT    /*+ use_hash(en) use_hash(ml1) use_hash(jobsinner)
                           parallel(en) parallel(ml1) parallel(jobsinner) */
                en.organization_id organization_id,
                decode (en.entity_type,
                        2, jobsinner.sch_id,
                        en.wip_entity_id) job_id,
                decode (en.entity_type,
                        2, 2,
                        4, 3,
                        8, 5,
                        5, 5,
                        1) job_type,
                ml1.meaning job_status,
                jobsinner.completion_date,
                en.primary_item_id assembly_item_id,
                jobsinner.start_quantity start_quantity,
                jobsinner.actual_qty_completed actual_qty_completed,
                1 include_job,
                decode(en.entity_type,1,en.wip_entity_name
                                     ,2,jobsinner.sch_id
				     ,3,en.wip_entity_name
				     ,8,en.wip_entity_name
				     ,5,en.wip_entity_name
                                     ,en.wip_entity_id) job_name,
                jobsinner.line_type line_type,
                jobsinner.start_quantity*itemcost.item_cost job_start_value,
                jobsinner.scheduled_completion_date,
                ml1.lookup_code job_status_code
              FROM
                (
                 SELECT /*+ use_hash(di) parallel(di) */
                    null sch_id,
                    nvl (nvl (di.date_closed, di.date_completed),
                         l_to_date) completion_date,
                    di.start_quantity start_quantity,
                    di.quantity_completed actual_qty_completed,
                    di.wip_entity_id wip_entity_id,
                    di.status_type lookup_code,
                    di.organization_id organization_id,
                    di.SCHEDULED_COMPLETION_DATE SCHEDULED_COMPLETION_DATE,
                    1 line_type
                  FROM  wip_discrete_jobs di
                  WHERE di.job_type = 1 AND -- only standard jobs
                        di.status_type in (3,4,5,6,7,12,14,15)   AND
                        --di.scheduled_start_date >= g_global_start_date
                        di.date_released >= g_global_start_date
                 UNION ALL
                 SELECT  /*+ use_hash(re) parallel(re) */
                    re.repetitive_schedule_id     sch_id,
                    nvl (nvl (re.date_closed, re.last_unit_completion_date),
                         l_to_date) completion_date,
                    re.daily_production_rate *
                        re.processing_work_days start_quantity,
                    re.quantity_completed actual_qty_completed,
                    re.wip_entity_id wip_entity_id,
                    re.status_type lookup_code,
                    re.organization_id organization_id,
                    re.last_unit_completion_date SCHEDULED_COMPLETION_DATE,
                    1 line_type
                  FROM  wip_repetitive_schedules re
                  WHERE re.status_type in (3,4,5,6,7,12,14,15) AND
                        --re.first_unit_start_date >= g_global_start_date
                        re.date_released >= g_global_start_date
                 UNION ALL
                 SELECT  /*+ use_hash(fl) parallel(fl) */
                    null sch_id,
                    nvl (nvl (fl.date_closed,fl.scheduled_completion_date),
                         l_to_date) completion_date,
                    fl.planned_quantity  start_quantity,
                    fl.quantity_completed actual_qty_completed,
                    fl.wip_entity_id wip_entity_id,
                    fl.status lookup_code,
                    fl.organization_id  organization_id,
                    fl.SCHEDULED_COMPLETION_DATE SCHEDULED_COMPLETION_DATE,
                    1 line_type
                  FROM  wip_flow_schedules fl
                  WHERE /*fl.status = 2
                    AND */fl.scheduled_start_date >= g_global_start_date
                ) jobsinner,
                wip_entities en,
                CST_ITEM_COSTS itemcost,
                mfg_lookups ml1
                 WHERE   ((en.entity_type in (1,2,3,5,8)
                AND ml1.lookup_type in ('WIP_JOB_STATUS')) OR
                          (en.entity_type in (4)
                AND ml1.lookup_type in ('WIP_FLOW_SCHEDULE_STATUS')))
                AND jobsinner.wip_entity_id = en.wip_entity_id
                AND ml1.lookup_code = jobsinner.lookup_code
                AND jobsinner.organization_id = en.organization_id and
                itemcost.cost_type_id in (1,2,5,6) and
                itemcost.organization_id = en.organization_id and
                itemcost.inventory_item_id = en.primary_item_id
                ) jobs,
            mtl_system_items_b msi
          WHERE msi.inventory_item_id = jobs.assembly_item_id
            AND msi.organization_id = jobs.organization_id;
Line: 884

        BIS_COLLECTION_UTILITIES.PUT_LINE('Finished OPI Jobs Extraction into Staging Table: '|| l_row_count || ' rows inserted');
Line: 893

	/********* OPM Insert *********************************/
        INSERT /*+ APPEND PARALLEL(f) */ INTO OPI_DBI_JOBS_STG f
	        (
	        organization_id,
	        job_id,
	        job_type,
	        status,
	        completion_date,
	        assembly_item_id,
	        start_quantity,
	        actual_qty_completed,
	        uom_code,
	        conversion_rate,
	        include_job,
	        std_req_flag,
	        std_res_flag,
	        source,
	        creation_date,
	        last_update_date,
	        created_by,
	        last_updated_by,
	        last_update_login,
	        job_name,
	        line_type,
	        scheduled_completion_date,
	        job_status_code,
	        job_start_value,
	        PROGRAM_ID,
		PROGRAM_LOGIN_ID,
		PROGRAM_APPLICATION_ID,
		REQUEST_ID
	        )
	        SELECT /*+ parallel(dtl) parallel(hdr) */
	            hdr.organization_id organization_id,
	            hdr.batch_id job_id,
	            4 job_type,           /* process job */
	            decode (hdr.batch_status,
	                    4, 'Closed',
	                    3, 'Complete',
			            2, 'Released',
                        -1, 'Cancelled' ) Status,      --Made change for UT2 bug fix 4721820
	            trunc (nvl (hdr.Actual_Cmplt_Date,l_to_date)) Completion_date,
	            dtl.inventory_item_id Assembly_Item_ID,
	            sum (dtl.plan_qty) start_quantity,
	            sum (dtl.actual_qty) actual_qty_completed,
	            dtl.dtl_um           UOM_Code,
	            null conversion_rate,
	            decode (hdr.batch_status, 4, 1, 2) include_job,        /* include closed jobs only */
	            1 std_req_flag,
	            decode (hdr.batch_status, 4, 1, -1, 1, 0) std_res_flag,  -- Made change for bug 4713488
	            case when g_r12_migration_date>hdr.Actual_Cmplt_Date THEN
	            	3
	            	ELSE 2
	            END,
	            g_sysdate creation_date,
	            g_sysdate last_update_date,
	            g_user_id created_by,
	            g_user_id last_updated_by,
	            g_login_id last_update_login,
	            hdr.batch_no  job_name,
	            dtl.line_type line_type,
	            hdr.plan_cmplt_date scheduled_completion_date,
	            decode(hdr.batch_status, 1, 1,
	            			     2, 3,
	            			     3, 4,
	            			     4, 12,
                                 -1, 7) job_status_code,
	            sum (dtl.plan_qty) * OPI_DBI_JOBS_PKG.GET_OPM_ITEM_COST(hdr.organization_id,
  					 dtl.inventory_item_id,
  				         l_to_date) job_start_value,
  		    g_program_id,
		    g_program_login_id,
		    g_program_application_id,
		    g_request_id
	          FROM  gme_material_details dtl,
	                gme_batch_header     hdr
	          WHERE
		        hdr.batch_id       = dtl.batch_id
	            and dtl.line_type      in (1,2)     /* coproducts, by-products */
	            and batch_status       in (2,3,4,-1)        /* wip, completed, closed, cancelled  */
	            and nvl(actual_start_date, g_global_start_date)  >= g_global_start_date
	          GROUP BY
	                hdr.organization_id,
	                hdr.batch_id,
	                hdr.batch_status,
	                hdr.actual_cmplt_date,
	                hdr.plan_cmplt_date,
	                dtl.inventory_item_id,
	                dtl.dtl_um,
	                hdr.batch_no,
	                dtl.line_type,
	                hdr.plan_cmplt_date
        ;
Line: 992

            l_row_count || ' rows inserted');
Line: 1005

        l_row_count := Insert_into_Jobs_Fact;
Line: 1008

            l_row_count || ' rows inserted');
Line: 1083

 select
 	from_bound_date,
      	to_bound_date
 from
      	OPI_DBI_RUN_LOG_CURR
 where
      	ETL_ID = 4 and
 	source = 2;
Line: 1115

 /* Insert into Jobs Staging Table */

 l_stmt_num := 10;
Line: 1122

 Select
  JOBS.ORGANIZATION_ID,
  JOB_ID,
  JOB_TYPE,
  STATUS,
  TRUNC(COMPLETION_DATE) COMPLETION_DATE,
  Assembly_Item_id,
  START_QUANTITY,
  ACTUAL_QTY_COMPLETED,
  MSI.PRIMARY_UOM_CODE UOM_Code,
  INCLUDE_JOB,
  1 Std_Req_Flag,
  1 Std_Res_Flag,
  1 SOURCE,
  g_sysdate  CREATION_DATE,
  g_sysdate  LAST_UPDATE_DATE,
  g_user_id  CREATED_BY,
  g_user_id  LAST_UPDATED_BY,
  g_login_id LAST_UPDATE_LOGIN,
  job_name   JOB_NAME,
  jobs.line_type LINE_TYPE,
  jobs.scheduled_completion_date SCHEDULED_COMPLETION_DATE,
  jobs.job_status_code,
  jobs.start_quantity*itemcost.item_cost JOB_START_VALUE,
  g_program_id PROGRAM_ID,
  g_program_login_id PROGRAM_LOGIN_ID,
  g_program_application_id PROGRAM_APPLICATION_ID,
  g_request_id REQUEST_ID
 FROM
 (
 SELECT
  EN.ORGANIZATION_ID ORGANIZATION_ID,
  EN.WIP_ENTITY_ID JOB_ID,
  decode(en.entity_type,8,5,5,5,1) JOB_TYPE,
  ML1.MEANING STATUS,
  DI.STATUS_TYPE JOB_STATUS_CODE,
  NVL(NVL(DI.DATE_CLOSED,DI.date_completed),l_to_date) COMPLETION_DATE,
  EN.PRIMARY_ITEM_ID Assembly_Item_id,
  DI.START_QUANTITY START_QUANTITY,
  DI.QUANTITY_COMPLETED ACTUAL_QTY_COMPLETED,
  1 INCLUDE_JOB,
  DI.LAST_UPDATE_DATE,
  EN.WIP_ENTITY_NAME JOB_NAME,
  1 line_type,
  DI.SCHEDULED_COMPLETION_DATE SCHEDULED_COMPLETION_DATE
 FROM WIP_ENTITIES EN, WIP_DISCRETE_JOBS DI, MFG_LOOKUPS ML1
 WHERE
   DI.WIP_ENTITY_ID = EN.WIP_ENTITY_ID AND DI.ORGANIZATION_ID = EN.ORGANIZATION_ID AND
   DI.JOB_TYPE = 1 AND  -- Only Standard Jobs
   EN.ENTITY_TYPE IN (1,3,5,8) AND  -- Discrete jobs and Closed discrete jobs
   ML1.LOOKUP_TYPE = 'WIP_JOB_STATUS' AND ML1.LOOKUP_CODE = DI.STATUS_TYPE AND
   --DI.SCHEDULED_START_DATE >= g_global_start_date
   DI.date_released >= g_global_start_date
 UNION ALL
 SELECT
  EN.ORGANIZATION_ID        ORGANIZATION_ID,
  RE.REPETITIVE_SCHEDULE_ID     JOB_ID,
  2 JOB_TYPE,
  ML1.MEANING JOB_STATUS,
  RE.STATUS_TYPE JOB_STATUS_CODE,
  NVL(NVL(RE.DATE_CLOSED,RE.last_unit_completion_date), l_to_date) COMPLETION_DATE,
  EN.PRIMARY_ITEM_ID Assembly_Item_id,
  RE.DAILY_PRODUCTION_RATE * RE.PROCESSING_WORK_DAYS START_QUANTITY,
  RE.QUANTITY_COMPLETED ACTUAL_QTY_COMPLETED,
  1 INCLUDE_JOB,
  RE.LAST_UPDATE_DATE,
  to_char(RE.REPETITIVE_SCHEDULE_ID) JOB_NAME,
  1 line_type,
  RE.last_unit_completion_date SCHEDULED_COMPLETION_DATE
 FROM
   WIP_ENTITIES EN, WIP_REPETITIVE_SCHEDULES RE, MFG_LOOKUPS ML1
 WHERE
  RE.WIP_ENTITY_ID = EN.WIP_ENTITY_ID AND RE.ORGANIZATION_ID = EN.ORGANIZATION_ID AND
  EN.ENTITY_TYPE = 2 AND -- Repetitive Schedules
  ML1.LOOKUP_TYPE = 'WIP_JOB_STATUS' AND ML1.LOOKUP_CODE = RE.STATUS_TYPE AND
  --RE.FIRST_UNIT_START_DATE >= g_global_start_date
  re.date_released >= g_global_start_date
 UNION ALL
 SELECT
  EN.ORGANIZATION_ID ORGANIZATION_ID,
  EN.WIP_ENTITY_ID JOB_ID,
  3 JOB_TYPE,
  ML1.MEANING JOB_STATUS,
  decode(FL.STATUS,2,12,FL.STATUS) JOB_STATUS_CODE,
  NVL(NVL(FL.DATE_CLOSED,FL.scheduled_completion_date), l_to_date) COMPLETION_DATE,
  EN.PRIMARY_ITEM_ID Assembly_Item_id,
  FL.PLANNED_QUANTITY  START_QUANTITY,
  FL.QUANTITY_COMPLETED ACTUAL_QTY_COMPLETED,
  1 INCLUDE_JOB,
  FL.LAST_UPDATE_DATE,
  to_char(EN.WIP_ENTITY_ID) JOB_NAME,
  1 line_type,
  FL.SCHEDULED_COMPLETION_DATE  SCHEDULED_COMPLETION_DATE
 FROM
  WIP_ENTITIES EN, WIP_FLOW_SCHEDULES FL, MFG_LOOKUPS ML1
 WHERE
  FL.WIP_ENTITY_ID = EN.WIP_ENTITY_ID AND FL.ORGANIZATION_ID = EN.ORGANIZATION_ID AND
  EN.ENTITY_TYPE = 4 AND -- Flow Schedules
  ML1.LOOKUP_TYPE = 'WIP_FLOW_SCHEDULE_STATUS' AND ML1.LOOKUP_CODE = FL.STATUS AND
  FL.SCHEDULED_START_DATE >= g_global_start_date
 ) JOBS,
 MTL_SYSTEM_ITEMS_B MSI,
 CST_ITEM_COSTS itemcost
 WHERE
  MSI.INVENTORY_ITEM_ID = JOBS.Assembly_Item_id AND
 MSI.ORGANIZATION_ID = JOBS.ORGANIZATION_ID AND
 itemcost.cost_type_id in (1,2,5,6) and
 itemcost.organization_id = jobs.organization_id and
 itemcost.inventory_item_id = jobs.Assembly_Item_id and
 ((NOT EXISTS (SELECT 'X' FROM OPI_DBI_JOBS_F WHERE JOB_ID = JOBS.JOB_ID AND JOB_TYPE = JOBS.JOB_TYPE)
               AND JOBS.JOB_STATUS_CODE IN (1,2,3,4,5,6,7,12,14,15)
  ) -- New jobs in any of the 3 statuses considered: Closed, Complete - No Charges, Cancelled
  OR (EXISTS (SELECT 'X' FROM OPI_DBI_JOBS_F WHERE JOB_ID = JOBS.JOB_ID AND JOB_TYPE = JOBS.JOB_TYPE) AND JOBS.LAST_UPDATE_DATE > g_last_collection_date)  ) -- Jobs in Jobs Master that have been updated
 ) s
 ON (f.Organization_id      = s.Organization_id
     and f.Job_id           = s.Job_id
     and f.Job_Type         = s.Job_Type
     and f.Assembly_Item_id = s.Assembly_Item_id)
 WHEN MATCHED THEN
     UPDATE SET
     f.Status = s.Status
    ,f.Completion_date = s.Completion_date
    ,f.Start_Quantity = s.Start_Quantity
    ,f.Actual_Qty_Completed = s.Actual_Qty_Completed
    ,f.UOM_Code = s.UOM_Code
    ,f.Include_Job = s.Include_Job
    ,f.Std_Req_Flag = s.Std_Req_Flag
    ,f.Std_Res_Flag = s.Std_Res_Flag
    ,f.Last_Update_Date = s.Last_Update_Date
    ,f.Last_Updated_By = s.Last_Updated_By
    ,f.Last_Update_Login = s.Last_Update_Login
    ,f.job_name = s.job_name
    ,f.line_type = s.line_type
    ,f.scheduled_completion_date = s.scheduled_completion_date
    ,f.job_status_code = s.job_status_code
    ,f.job_start_value = s.job_start_value
 WHEN NOT MATCHED THEN
     INSERT (ORGANIZATION_ID, JOB_ID, JOB_TYPE, STATUS, COMPLETION_DATE, Assembly_Item_id,
             START_QUANTITY, ACTUAL_QTY_COMPLETED, UOM_Code, CONVERSION_RATE, INCLUDE_JOB, Std_Req_Flag, Std_Res_Flag, SOURCE,
             CREATION_DATE, LAST_UPDATE_DATE, CREATED_BY, LAST_UPDATED_BY, LAST_UPDATE_LOGIN, JOB_NAME,
             LINE_TYPE, SCHEDULED_COMPLETION_DATE, JOB_STATUS_CODE, JOB_START_VALUE,
             PROGRAM_ID,PROGRAM_LOGIN_ID,PROGRAM_APPLICATION_ID,REQUEST_ID)
     VALUES (s.ORGANIZATION_ID, s.JOB_ID, s.JOB_TYPE, s.STATUS, s.COMPLETION_DATE, s.Assembly_Item_id,
             s.START_QUANTITY, s.ACTUAL_QTY_COMPLETED, s.UOM_Code, null, s.INCLUDE_JOB, s.Std_Req_Flag, s.Std_Res_Flag, s.SOURCE,
             s.CREATION_DATE, s.LAST_UPDATE_DATE, s.CREATED_BY, s.LAST_UPDATED_BY, s.LAST_UPDATE_LOGIN, S.JOB_NAME,
             s.LINE_TYPE, S.SCHEDULED_COMPLETION_DATE, S.JOB_STATUS_CODE, S.JOB_START_VALUE,
             s.PROGRAM_ID,s.PROGRAM_LOGIN_ID,s.PROGRAM_APPLICATION_ID,s.REQUEST_ID);
Line: 1273

 BIS_COLLECTION_UTILITIES.PUT_LINE('Finished OPI Jobs Extraction into Staging Table: '|| l_row_count || ' rows inserted');
Line: 1310

 select
  from_bound_date,
  to_bound_date
 from
  OPI_DBI_RUN_LOG_CURR
 where
  ETL_ID = 4 and
  source = 2;
Line: 1337

  select
  hdr.organization_id                              Organization_id,
  hdr.batch_id                                          Job_id,
  4                                                     Job_Type,           /* Process Job */
  Decode(hdr.batch_status, 4, 'Closed',
                           3, 'Complete',
			               2, 'Released',
                          -1, 'Cancelled')    Status,    --Change made for UT2 bug # 4723975
  trunc(nvl(hdr.Actual_Cmplt_Date,l_to_date))           Completion_date,
  dtl.inventory_item_id                                 Assembly_Item_ID,
  SUM(dtl.plan_qty)                                     Start_Quantity,
  SUM(dtl.actual_qty)                                   Actual_Qty_Completed,
  dtl.dtl_um                                            UOM_Code,
  NULL                                                  Conversion_Rate,
  Decode(hdr.batch_status, 4, 1, 2)                     Include_Job,        /* include closed jobs only */
  1                                                     Std_Req_Flag,
  decode (hdr.batch_status, 4, 1, -1, 1, 0)             Std_Res_Flag,
  2                                                     Source,             /* OPM */
  g_Sysdate                                             Creation_Date,
  g_Sysdate                                             Last_Update_Date,
  g_user_id                                             Created_By,
  g_user_id                                             Last_Updated_By,
  g_login_id                                            Last_Update_Login,
  hdr.batch_no                                          JOB_NAME,
  dtl.line_type 					line_type,
  hdr.plan_cmplt_date 					scheduled_completion_date,
  decode(hdr.batch_status, 1, 1,
                  	   2, 3,
  	            	   3, 4,
  	            	   4, 12,
                       -1, 7) 			job_status_code,
  sum (dtl.plan_qty*GET_OPM_ITEM_COST(hdr.organization_id,
  					 dtl.inventory_item_id,
  					 l_to_date) )job_start_value,
  g_program_id PROGRAM_ID,
  g_program_login_id PROGRAM_LOGIN_ID,
  g_program_application_id PROGRAM_APPLICATION_ID,
  g_request_id REQUEST_ID
 from gme_material_details dtl,
      gme_batch_header     hdr
 where hdr.batch_id       = dtl.batch_id
   and dtl.line_type      in (1,2)                      /* coproducts  and by-products*/
   and nvl(ACTUAL_START_DATE, g_global_start_date)  >= g_global_start_date
   and
   (    (NOT EXISTS (SELECT 'X' FROM OPI_DBI_JOBS_F WHERE JOB_ID = hdr.batch_ID AND JOB_TYPE = 4)
         and hdr.batch_status in (2,3,4,-1)  /* wip, completed, closed, cancelled */
  )
  OR   (EXISTS (SELECT 'X' FROM OPI_DBI_JOBS_F WHERE JOB_ID = hdr.batch_ID AND JOB_TYPE = 4)
       AND hdr.LAST_UPDATE_DATE > g_opm_last_collection_date)  ) -- Jobs in Jobs Master that have been updated
 group by
  hdr.organization_id,
  hdr.batch_id,
  hdr.batch_status,
  hdr.Actual_Cmplt_Date,
  dtl.inventory_item_id,
  dtl.dtl_um,
  hdr.batch_no,
  dtl.line_type,
  hdr.plan_cmplt_date
 ) s
 ON (f.Organization_id      = s.Organization_id
     and f.Job_id           = s.Job_id
     and f.Job_Type         = s.Job_Type
     and f.Assembly_Item_id = s.Assembly_Item_id)
 WHEN MATCHED THEN
     UPDATE SET
     f.Status = s.Status
    ,f.Completion_date = s.Completion_date
    ,f.Start_Quantity = s.Start_Quantity
    ,f.Actual_Qty_Completed = s.Actual_Qty_Completed
    ,f.UOM_Code = s.UOM_Code
    ,f.Include_Job = s.Include_Job
    ,f.Std_Req_Flag = s.Std_Req_Flag
    ,f.Std_Res_Flag = s.Std_Res_Flag
    ,f.Last_Update_Date = s.Last_Update_Date
    ,f.Last_Updated_By = s.Last_Updated_By
    ,f.Last_Update_Login = s.Last_Update_Login
    ,f.job_name = s.job_name
    ,f.line_type = s.line_type
    ,f.scheduled_completion_date = s.scheduled_completion_date
    ,f.job_status_code = s.job_status_code
    ,f.job_start_value = s.job_start_value
 WHEN NOT MATCHED THEN
     INSERT (ORGANIZATION_ID, JOB_ID, JOB_TYPE, STATUS, COMPLETION_DATE, Assembly_Item_id,
             START_QUANTITY, ACTUAL_QTY_COMPLETED, UOM_Code, CONVERSION_RATE, INCLUDE_JOB, Std_Req_Flag, Std_Res_Flag, SOURCE,
             CREATION_DATE, LAST_UPDATE_DATE, CREATED_BY, LAST_UPDATED_BY, LAST_UPDATE_LOGIN, JOB_NAME, LINE_TYPE, SCHEDULED_COMPLETION_DATE,
             JOB_STATUS_CODE, JOB_START_VALUE, PROGRAM_ID, PROGRAM_LOGIN_ID, PROGRAM_APPLICATION_ID, REQUEST_ID)
     VALUES (s.ORGANIZATION_ID, s.JOB_ID, s.JOB_TYPE, s.STATUS, s.COMPLETION_DATE, s.Assembly_Item_id,
             s.START_QUANTITY, s.ACTUAL_QTY_COMPLETED, s.UOM_Code, null, s.INCLUDE_JOB, s.Std_Req_Flag, s.Std_Res_Flag, s.SOURCE,
             s.CREATION_DATE, s.LAST_UPDATE_DATE, s.CREATED_BY, s.LAST_UPDATED_BY, s.LAST_UPDATE_LOGIN, s.JOB_NAME, s.LINE_TYPE, s.SCHEDULED_COMPLETION_DATE,
             s.JOB_STATUS_CODE, s.JOB_START_VALUE,s.PROGRAM_ID,s.PROGRAM_LOGIN_ID,s.PROGRAM_APPLICATION_ID,s.REQUEST_ID);
Line: 1432

 BIS_COLLECTION_UTILITIES.PUT_LINE('Finished OPM Jobs Extraction into Staging Table: '|| l_row_count || ' rows inserted');
Line: 1523

            SELECT LAST_COLLECTION_DATE INTO g_last_collection_date FROM OPI_DBI_RUN_LOG_CURR
            WHERE ETL_ID = 4 AND SOURCE = 1;
Line: 1558

            SELECT LAST_COLLECTION_DATE INTO g_opm_last_collection_date FROM OPI_DBI_RUN_LOG_CURR
            WHERE ETL_ID = 4 AND SOURCE = 2;
Line: 1595

            l_row_count || ' rows inserted/updated');
Line: 1714

	select
		item_cost into x_cost
	from
		cst_item_costs
	where
		organization_id = l_organization_id and
		inventory_item_id = l_inventory_item_id and
		cost_type_id in (1,2,5,6);