DBA Data[Home] [Help]

APPS.IGS_AD_IMP_024 SQL Statements

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

Line: 35

       cst_insert  CONSTANT VARCHAR2(6) :=  'INSERT';
Line: 36

       cst_update CONSTANT VARCHAR2(6) :=  'UPDATE';
Line: 70

     SELECT  cst_insert dmlmode, trans.rowid,  trans.*
     FROM igs_ad_txcpt_int  trans
     WHERE interface_run_id = p_interface_run_id
     AND  trans.status = '2'
     AND (          NOT EXISTS (SELECT 1
                                            FROM IGS_AD_TRANSCRIPT  trans_oss
                                           WHERE  education_id = trans.education_id
                                            AND TRUNC(date_of_issue) = TRUNC(trans.date_of_issue) )
                  OR ( p_rule = 'R'  AND trans.match_ind IN ('16', '25') )
            )
      AND UPDATE_TRANSCRIPT_ID IS NULL
      AND interface_transcript_id BETWEEN cp_start_int_id AND cp_end_int_id		--ARVSRINI--
     UNION ALL
     SELECT  cst_update dmlmode, trans.rowid, trans.*
     FROM igs_ad_txcpt_int  trans
     WHERE interface_run_id = p_interface_run_id
     AND  status = '2'
     AND (       p_rule = 'I'  OR (p_rule = 'R' AND trans.match_ind = '21'))
     AND interface_transcript_id BETWEEN cp_start_int_id AND cp_end_int_id		--ARVSRINI--
     AND ( EXISTS (SELECT 1 FROM IGS_AD_TRANSCRIPT  trans_oss
                                           WHERE education_id = trans.education_id
                                            AND TRUNC(date_of_issue) = TRUNC(trans.date_of_issue)
                        )
               OR UPDATE_TRANSCRIPT_ID IS NOT NULL
            );
Line: 97

    SELECT
       trans_oss.rowid, trans_oss.*
    FROM
	IGS_AD_TRANSCRIPT trans_oss
    WHERE  ( transcript_id = trans_cur_rec.update_transcript_id
                  AND trans_cur_rec.update_transcript_id IS NOT NULL)
     OR ( trans_cur_rec.update_transcript_id IS  NULL
          AND education_id = trans_cur_rec.education_id
          AND TRUNC(date_of_issue) = TRUNC(trans_cur_rec.date_of_issue)
         ) ;
Line: 158

        igs_ad_transcript_pkg.insert_row(
                                     x_rowid			=> l_rowid,
				     x_quintile_rank		=> p_trans_record.quintile_rank,
				     x_percentile_rank		=> p_trans_record.percentile_rank,
				     x_transcript_id		=> l_transcript_id,
				     x_education_id		=> p_trans_record.education_id,
				     x_transcript_status	=> p_trans_record.transcript_status,
				     x_transcript_source	=> p_trans_record.transcript_source,
				     x_date_of_receipt		=> TRUNC(p_trans_record.date_of_receipt),
				     x_entered_gpa		=> p_trans_record.entered_gpa,
				     x_entered_gs_id		=> p_trans_record.entered_gs_id,
				     x_conv_gpa			=> p_trans_record.conv_gpa,
				     x_conv_gs_id		=> p_trans_record.conv_gs_id,
				     x_term_type		=> p_trans_record.term_type,
				     x_rank_in_class		=> p_trans_record.rank_in_class,
				     x_class_size		=> p_trans_record.class_size,
				     x_approximate_rank		=> p_trans_record.approximate_rank,
				     x_weighted_rank		=> p_trans_record.weighted_rank,
				     x_decile_rank		=> p_trans_record.decile_rank,
				     x_quartile_rank		=> p_trans_record.quartile_rank,
				     x_transcript_type		=> p_trans_record.transcript_type,
				     x_mode			=> 'R',
				     x_date_of_issue		=> TRUNC(p_trans_record.date_of_issue),
                                     X_OVERRIDE                =>   NVL(p_trans_record.override_ind, 'N'),
                                     X_OVERRIDE_ID           =>    FND_GLOBAL.USER_ID,
                                     X_OVERRIDE_DATE      =>   TRUNC(SYSDATE)
                      	         );
Line: 185

        UPDATE igs_ad_txcpt_int
          SET status = cst_s_val_1,
              error_code = cst_ec_val_NULL,
              transcript_id = l_transcript_id,
              match_ind = DECODE (
                                       p_trans_record.match_ind,
                                              NULL, cst_mi_val_11,
                                       match_ind)
          WHERE interface_transcript_id = p_trans_record.interface_transcript_id;
Line: 232

           UPDATE igs_ad_txcpt_int
            SET status = cst_s_val_3,
            error_code = l_error_code,
            error_text = l_error_text ,
            match_ind = DECODE (
                                       p_trans_record.match_ind,
                                              NULL, cst_mi_val_11,
                                       match_ind)
            WHERE interface_transcript_id = p_trans_record.interface_transcript_id;
Line: 244

   PROCEDURE update_transcript_details(p_trans_record  IN OUT NOCOPY trans_cur%ROWTYPE, dup_cur_rec c_dup_cur%ROWTYPE  )
     AS
   --------------------------------------------------------------------------
   --  Created By : pbondugu
   --  Date Created On : 2003/11/22
   --  Purpose:
   --  Know limitations, enhancements or remarks
   --  Change History
   --  Who             When            What
   --  (reverse chronological order - newest change first)
    --------------------------------------------------------------------------
      l_rowid VARCHAR2(25);
Line: 286

         SAVEPOINT before_update_transcript;
Line: 287

          igs_ad_transcript_pkg.update_row(
                X_ROWID            => dup_cur_rec.rowid,
                X_QUINTILE_RANK    =>NVL(p_trans_record.QUINTILE_RANK, dup_cur_rec.QUINTILE_RANK),
                X_PERCENTILE_RANK  => NVL(p_trans_record.PERCENTILE_RANK, dup_cur_rec.PERCENTILE_RANK),
                X_TRANSCRIPT_ID    =>dup_cur_rec.transcript_id ,
                X_EDUCATION_ID     => p_trans_record.EDUCATION_ID         ,
                X_TRANSCRIPT_STATUS=> p_trans_record.TRANSCRIPT_STATUS    ,
                X_TRANSCRIPT_SOURCE=> p_trans_record.TRANSCRIPT_SOURCE    ,
                X_DATE_OF_RECEIPT  => TRUNC(NVL(p_trans_record.DATE_OF_RECEIPT, dup_cur_rec.DATE_OF_RECEIPT)),
                X_ENTERED_GPA      => NVL(p_trans_record.ENTERED_GPA, dup_cur_rec.ENTERED_GPA),
                X_ENTERED_GS_ID    => p_trans_record.ENTERED_GS_ID        ,
                  X_CONV_GPA         => NVL(p_trans_record.CONV_GPA, dup_cur_rec.CONV_GPA),
                X_CONV_GS_ID       => p_trans_record.CONV_GS_ID           ,
                X_TERM_TYPE        => p_trans_record.TERM_TYPE            ,
                X_RANK_IN_CLASS    => NVL(p_trans_record.RANK_IN_CLASS, dup_cur_rec.RANK_IN_CLASS),
                X_CLASS_SIZE       => NVL(p_trans_record.CLASS_SIZE, dup_cur_rec.CLASS_SIZE),
                X_APPROXIMATE_RANK => NVL(p_trans_record.APPROXIMATE_RANK, dup_cur_rec.APPROXIMATE_RANK),
                X_WEIGHTED_RANK    => NVL(p_trans_record.WEIGHTED_RANK, dup_cur_rec.WEIGHTED_RANK),
                X_DECILE_RANK      => NVL(p_trans_record.DECILE_RANK, dup_cur_rec.DECILE_RANK),
                X_QUARTILE_RANK    => NVL(p_trans_record.QUARTILE_RANK, dup_cur_rec.QUARTILE_RANK),
                X_TRANSCRIPT_TYPE  => NVL(p_trans_record.TRANSCRIPT_TYPE, dup_cur_rec.TRANSCRIPT_TYPE),
              X_DATE_OF_ISSUE	 => TRUNC(NVL(p_trans_record.DATE_OF_ISSUE, dup_cur_rec.DATE_OF_ISSUE)),
               X_OVERRIDE                =>   NVL(p_trans_record.override_ind, 'N'),
               X_OVERRIDE_ID           =>    FND_GLOBAL.USER_ID,
               X_OVERRIDE_DATE      =>   TRUNC(SYSDATE)

                  );
Line: 315

          UPDATE igs_ad_txcpt_int
            SET status = cst_s_val_1,
                error_code = cst_ec_val_NULL,
                transcript_id = dup_cur_rec.transcript_id,
                match_ind = DECODE (
                                       p_trans_record.match_ind,
                                              NULL, cst_mi_val_18,
                                       match_ind)
            WHERE interface_transcript_id = p_trans_record.interface_transcript_id;
Line: 329

        ROLLBACK TO before_update_transcript;
Line: 363

             UPDATE igs_ad_txcpt_int
              SET status = cst_s_val_3,
              error_code = l_error_code,
              error_text = l_error_text ,
              match_ind = DECODE (
                                       p_trans_record.match_ind,
                                              NULL, cst_mi_val_18,
                                       match_ind)
              WHERE interface_transcript_id = p_trans_record.interface_transcript_id;
Line: 373

    END update_transcript_details;
Line: 379

     UPDATE IGS_AD_TXCPT_INT trans
     SET
       status = '3',  error_code =  'E707',
       error_text =  igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E707', 8405)
     WHERE  interface_run_id = p_interface_run_id
          AND status = '2'
       AND trans.update_transcript_id IS NOT NULL
          AND NOT EXISTS ( SELECT 1 FROM IGS_AD_TRANSCRIPT
                                     WHERE transcript_id = NVL(trans.update_transcript_id,transcript_id)
                                   ) ;
Line: 393

     UPDATE IGS_AD_TXCPT_INT trans
     SET
       status = '3',  error_code =  'E334',
       error_text =  igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E334', 8405)
       WHERE interface_run_id = p_interface_run_id
       AND status = '2'
       AND trans.transcript_source IS NOT NULL
       AND EXISTS ( SELECT 1 FROM igs_ad_code_classes_v code
                    WHERE code.system_status = 'THIRD_PARTY_TRANSFER_EVAL'
                    AND code.class_type_code = 'ADM_CODE_CLASSES'
                    AND code.class = 'TRANSCRIPT_SOURCE'
                    AND code.code_id = trans.transcript_source);
Line: 409

        UPDATE igs_ad_txcpt_int
          SET
          status = '3'
          , error_code = 'E700'
          , error_text =  igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E700', 8405)
          WHERE interface_run_id = p_interface_run_id
          AND status = '2'
         AND NVL (match_ind, '15') <> '15';
Line: 422

        UPDATE igs_ad_txcpt_int
        SET
        status = '1',  error_code = NULL
        WHERE interface_run_id = p_interface_run_id
        AND status = '2'
        AND match_ind IN ('17', '18', '19', '22', '23', '24', '27');
Line: 433

     UPDATE igs_ad_txcpt_int trans
     SET
     status = '3'
     , match_ind = '13'
     WHERE interface_run_id = p_interface_run_id
     AND status = '2'
     AND UPDATE_TRANSCRIPT_ID  IS NULL
     AND 1  <  ( SELECT COUNT(*)
                        FROM IGS_AD_TRANSCRIPT  trans_oss
                         WHERE  education_id = trans.education_id
                         AND TRUNC(date_of_issue) = TRUNC(trans.date_of_issue)
                   );
Line: 451

    UPDATE igs_ad_txcpt_int  trans
    SET
    status = '3'
    , match_ind = '13'
    WHERE interface_run_id = p_interface_run_id
    AND status = '2'
    AND UPDATE_TRANSCRIPT_ID  IS NULL
    AND NVL(match_ind, '15')  IN ('15', '21')
    AND 1  <  ( SELECT COUNT(*)
                        FROM IGS_AD_TRANSCRIPT  trans_oss
                         WHERE  education_id = trans.education_id
                         AND TRUNC(date_of_issue) = TRUNC(trans.date_of_issue)
                   );
Line: 470

     UPDATE igs_ad_txcpt_int  trans
      SET
          status = '1'
         , match_ind = '19'
         , transcript_id = update_transcript_id
     WHERE interface_run_id = p_interface_run_id
     AND status = '2'
     AND  update_transcript_id IS NOT NULL;
Line: 479

      UPDATE igs_ad_txcpt_int  trans
      SET
         status = '3'
        , match_ind = '19'
        ,error_code = 'E708'
       , error_text =  igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E708', 8405)
     WHERE interface_run_id = p_interface_run_id
     AND status = '2'
     AND EXISTS( SELECT 1 FROM IGS_AD_TRMDT_INT term
                         WHERE term.interface_transcript_id = trans.interface_transcript_id
                         AND status = '2')
     AND 1 < (  SELECT count(*)  FROM igs_ad_transcript  trans_oss
                         WHERE  education_id = trans.education_id
                         AND TRUNC(date_of_issue) = TRUNC(trans.date_of_issue)
                         );
Line: 495

      UPDATE igs_ad_txcpt_int  trans
      SET
         status = '1'
        , match_ind = '19'
        , transcript_id = ( SELECT transcript_id FROM IGS_AD_TRANSCRIPT  trans_oss
                         WHERE  education_id = trans.education_id
                         AND TRUNC(date_of_issue) = TRUNC(trans.date_of_issue)
                         AND rownum <= 1)
      WHERE interface_run_id = p_interface_run_id
     AND status = '2'
     AND EXISTS (  SELECT 1 FROM IGS_AD_TRANSCRIPT  trans_oss
                         WHERE  education_id = trans.education_id
                         AND TRUNC(date_of_issue) = TRUNC(trans.date_of_issue)
                         );
Line: 513

Create / Update the OSS record after validating successfully the interface record
Create
    If RULE I (match indicator will be 15 or NULL by now no need to check) and matching system record not found OR
    RULE = R and MATCH IND = 16, 25
Update
    If RULE = I (match indicator will be 15 or NULL by now no need to check) OR
    RULE = R and MATCH IND = 21

Selecting together the interface records for INSERT / UPDATE with DMLMODE identifying the DML operation.
This is done to have one code section for record validation, exception handling and interface table update.
This avoids call to separate PLSQL blocks, tuning performance on stack maintenance during the process.

**********************************************************************************/

l_total_records_prcessed := 0;
Line: 529

  SELECT COUNT(interface_transcript_id) INTO l_count_interface_txpt_id
  FROM igs_ad_txcpt_int
  WHERE interface_run_id = p_interface_run_id
  AND status =2 ;
Line: 535

  SELECT
       MIN(interface_transcript_id) , MAX(interface_transcript_id)
   INTO l_minint , l_maxint
   FROM igs_ad_txcpt_int
   WHERE interface_run_id = p_interface_run_id
   AND status =2
   AND rownum < =100;
Line: 546

	       IF trans_cur_rec.dmlmode =  cst_insert  THEN
	           create_new_transcript_details(trans_cur_rec);
Line: 548

	       ELSIF  trans_cur_rec.dmlmode = cst_update THEN
	          OPEN c_dup_cur(trans_cur_rec);
Line: 552

	           update_transcript_details(trans_cur_rec, dup_cur_rec);
Line: 565

   ALL updateable column values, if column nullification is not allowed then the 2 DECODE should be replaced by a single NVL*/
     IF p_rule = 'R'  THEN
       UPDATE igs_ad_txcpt_int  trans
       SET
         status = '1'
         , match_ind = '23'
       WHERE interface_run_id = p_interface_run_id
       AND status = '2'
       AND NVL (match_ind, '15') = '15'
       AND EXISTS (  SELECT 1 FROM IGS_AD_TRANSCRIPT  trans_oss
                         WHERE education_id = trans.education_id
                         AND TRUNC(date_of_issue) = TRUNC(trans.date_of_issue)
                         AND transcript_type = trans.transcript_type
                         AND TRANSCRIPT_STATUS  =  trans.TRANSCRIPT_STATUS
                         AND  TRANSCRIPT_SOURCE   = trans.TRANSCRIPT_SOURCE
                         AND  TRUNC(NVL(DATE_OF_RECEIPT,IGS_GE_DATE.IGSDATE('1000/01/01')))
                                    = TRUNC( NVL( NVL(trans.DATE_OF_RECEIPT, DATE_OF_RECEIPT ) , IGS_GE_DATE.IGSDATE('1000/01/01')))
                         AND  NVL(ENTERED_GPA,'1')       = NVL(NVL(trans.ENTERED_GPA, ENTERED_GPA),'X')
                         AND  NVL(ENTERED_GS_ID,-1)      = NVL(NVL(trans.ENTERED_GS_ID,ENTERED_GS_ID),-1)
                         AND  NVL(CONV_GPA,'X')          = NVL(NVL(trans.CONV_GPA,CONV_GPA), 'X')
                         AND  NVL(CONV_GS_ID,-1)         = NVL(NVL(trans.CONV_GS_ID,CONV_GS_ID), -1)
                         AND  NVL(TERM_TYPE,'X')         = NVL(NVL(trans.TERM_TYPE,TERM_TYPE) , 'X')
                         AND  NVL(RANK_IN_CLASS,-1)      = NVL(NVL(trans.RANK_IN_CLASS,RANK_IN_CLASS), -1)
                         AND  NVL(CLASS_SIZE,-1)         = NVL(NVL(trans.CLASS_SIZE, CLASS_SIZE), -1)
                         AND  NVL(APPROXIMATE_RANK,'X')  = NVL(NVL(trans.APPROXIMATE_RANK, APPROXIMATE_RANK), 'X')
                         AND  NVL(WEIGHTED_RANK,'X')     = NVL(NVL(trans.DECILE_RANK, WEIGHTED_RANK), -1)
                         AND  NVL(QUARTILE_RANK,-1)      = NVL(NVL(trans.QUARTILE_RANK, QUARTILE_RANK), -1)
                         AND  NVL(QUINTILE_RANK,-1)      = NVL(NVL(trans.QUINTILE_RANK, QUINTILE_RANK), -1)
                         AND  NVL(PERCENTILE_RANK,-1)    = NVL(NVL(trans.PERCENTILE_RANK, PERCENTILE_RANK ), -1)
                         AND  NVL(TRANSCRIPT_TYPE,'X')   = NVL(NVL(trans.TRANSCRIPT_TYPE,TRANSCRIPT_TYPE), 'X')
                         AND  NVL(DECILE_RANK, -1)    =        NVL(NVL(trans.DECILE_RANK,DECILE_RANK),  -1)
                         AND  NVL( OVERRIDE_IND, 'X' ) =   NVL(NVL(trans.OVERRIDE_IND, OVERRIDE_IND), 'X' )
                );
Line: 603

        UPDATE igs_ad_txcpt_int  trans
        SET
        status = '3'
        , match_ind = '20'
        , dup_transcript_id = trans.update_transcript_id
        WHERE trans.interface_run_id = p_interface_run_id
        AND status = '2'
        AND update_transcript_id IS NOT NULL;
Line: 612

        UPDATE igs_ad_txcpt_int  trans
        SET
        status = '3'
        , match_ind = '20'
        , dup_transcript_id= ( SELECT transcript_id  FROM IGS_AD_TRANSCRIPT  trans_oss
                         WHERE  education_id = trans.education_id
                         AND TRUNC(date_of_issue) = TRUNC(trans.date_of_issue))
        WHERE interface_run_id = p_interface_run_id
        AND status = '2'
        AND NVL (match_ind, '15') = '15'
        AND EXISTS (SELECT 1 FROM IGS_AD_TRANSCRIPT  trans_oss
                         WHERE  education_id = trans.education_id
                         AND TRUNC(date_of_issue) = TRUNC(trans.date_of_issue));
Line: 632

        UPDATE igs_ad_txcpt_int  trans
        SET
        status = '3'
        , error_code = 'E700'
        , error_text =  igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E700', 8405)
        WHERE interface_run_id = p_interface_run_id
        AND status = '2'
        AND match_ind IS NOT NULL;
Line: 644

  UPDATE igs_ad_trmdt_int a
      SET    interface_run_id = p_interface_run_id,
             (person_id,education_id, transcript_id)
             = (SELECT person_id,education_id, NVL(update_transcript_id, transcript_id)
                FROM   igs_ad_txcpt_int
                WHERE  interface_transcript_id = a.interface_transcript_id)
      WHERE  status IN ('1','2','4')
      AND    interface_transcript_id IN (SELECT interface_transcript_id
                                         FROM   igs_ad_txcpt_int
                                         WHERE  interface_run_id = p_interface_run_id
                                         AND    status IN ('1','4'));
Line: 658

      UPDATE igs_ad_trmdt_int
      SET    error_code = NULL,
             error_text = NULL,
             status = '1'
      WHERE  interface_run_id = p_interface_run_id
      AND    error_code = 'E347'
      AND    status = '4';
Line: 677

UPDATE igs_ad_tundt_int a
    SET    interface_run_id = p_interface_run_id,
           (person_id,education_id , transcript_id, term_details_id )
             = (SELECT person_id,education_id ,
                     transcript_id, term_details_id
                FROM   igs_ad_trmdt_int
                WHERE  interface_term_dtls_id = a.interface_term_dtls_id)
      WHERE  status IN ('1','2','4')
      AND    interface_term_dtls_id IN (SELECT interface_term_dtls_id
                                        FROM   igs_ad_trmdt_int
                                        WHERE  interface_run_id = p_interface_run_id
                                        AND    status IN ('1','4'));
Line: 709

     SELECT  cst_insert dmlmode, term.rowid,  term.*
     FROM igs_ad_trmdt_int  term
     WHERE interface_run_id = p_interface_run_id
     AND  term.status = '2'
     AND INTERFACE_TERM_DTLS_ID BETWEEN cp_start_int_id AND cp_end_int_id
     AND  (NOT EXISTS (SELECT 1 FROM IGS_AD_TERM_DETAILS term_oss
                                          WHERE transcript_id  = term.transcript_id
                                           AND  term = term.term
                                           AND  TRUNC(start_Date) = TRUNC(term.start_Date)
                                           AND  TRUNC(end_Date) = TRUNC(term.end_Date) )
                  OR ( p_rule = 'R'  AND term.match_ind IN ('16', '25') )
              )
     UNION ALL
     SELECT  cst_update dmlmode, term.rowid,  term.*
     FROM igs_ad_trmdt_int  term
     WHERE interface_run_id = p_interface_run_id
     AND  status = '2'
     AND INTERFACE_TERM_DTLS_ID BETWEEN cp_start_int_id AND cp_end_int_id
     AND (       p_rule = 'I'  OR (p_rule = 'R' AND term.match_ind = cst_mi_val_21))
     AND EXISTS (SELECT 1 FROM IGS_AD_TERM_DETAILS term_oss
                                          WHERE transcript_id  = term.transcript_id
                                           AND  term = term.term
                                           AND  TRUNC(start_Date) = TRUNC(term.start_Date)
                                           AND  TRUNC(end_Date) = TRUNC(term.end_Date)
                          );
Line: 736

    SELECT
       term_oss.rowid, term_oss.*
    FROM
	IGS_AD_TERM_DETAILS term_oss
    WHERE transcript_id  = term_cur_rec.transcript_id
    AND  term = term_cur_rec.term
    AND  TRUNC(start_Date) = TRUNC(term_cur_rec.start_Date)
    AND  TRUNC(end_Date) = TRUNC(term_cur_rec.end_Date) ;
Line: 782

          igs_ad_term_details_pkg.insert_row(
                                              l_rowid,
                                              l_term_details_id      ,
                                              p_term_dtls_record.TRANSCRIPT_ID        ,
                                              p_term_dtls_record.TERM                 ,
                                              TRUNC(p_term_dtls_record.START_DATE)           ,
                                              TRUNC(p_term_dtls_record.END_DATE)             ,
                                              NULL,
                                              NULL,
                                              NULL,
                                              p_term_dtls_record.TOTAL_GPA_UNITS      ,
                                              p_term_dtls_record.GPA
                                            );
Line: 795

    UPDATE igs_ad_trmdt_int
          SET status =cst_s_val_1,
              error_code = cst_ec_val_NULL,
              term_details_id = l_term_details_id
          WHERE interface_term_dtls_id  = p_term_dtls_record.interface_term_dtls_id;
Line: 840

           UPDATE igs_ad_trmdt_int
            SET status = cst_s_val_3,
            error_code = l_error_code,
            error_text = l_error_text,
            match_ind = DECODE (
                                       p_term_dtls_record.match_ind,
                                              NULL, cst_mi_val_11,
                                       match_ind)
          WHERE interface_term_dtls_id  = p_term_dtls_record.interface_term_dtls_id;
Line: 851

   PROCEDURE update_term_details(p_term_dtls_record term_cur%ROWTYPE, dup_cur_rec c_dup_cur%ROWTYPE  )
     AS
   --------------------------------------------------------------------------
   --  Created By : rboddu
   --  Date Created On : 2001/07/27
   --  Purpose:
   --  Know limitations, enhancements or remarks
   --  Change History
   --  Who             When            What
   --  (reverse chronological order - newest change first)
    --------------------------------------------------------------------------
      l_rowid VARCHAR2(25);
Line: 874

         SAVEPOINT before_update_term;
Line: 875

          igs_ad_term_details_pkg.update_row(
                          X_ROWID           =>  dup_cur_rec.rowid   ,
                          X_TERM_DETAILS_ID =>  dup_cur_rec.term_details_id      ,
                          X_TRANSCRIPT_ID   =>  p_term_dtls_record.transcript_id        ,
                          X_TERM            =>  p_term_dtls_record.term                 ,
                          X_START_DATE      =>  TRUNC(p_term_dtls_record.start_date)           ,
                          X_END_DATE        =>  TRUNC(p_term_dtls_record.end_date)             ,
                          X_TOTAL_CP_ATTEMPTED => dup_cur_rec.total_cp_attempted,
                          X_TOTAL_CP_EARNED =>  dup_cur_rec.total_cp_earned,
                          X_TOTAL_UNIT_GP   =>  dup_cur_rec.total_unit_gp,
                          X_TOTAL_GPA_UNITS =>  NVL(p_term_dtls_record.total_gpa_units, dup_cur_rec.total_gpa_units),
                          X_GPA             =>  NVL(p_term_dtls_record.gpa, dup_cur_rec.gpa)
                            );
Line: 888

        UPDATE igs_ad_trmdt_int
          SET status =cst_s_val_1,
              error_code = cst_ec_val_NULL,
              term_details_id = dup_cur_rec.term_details_id
          WHERE interface_term_dtls_id  = p_term_dtls_record.interface_term_dtls_id;
Line: 896

                  ROLLBACK TO  before_update_term;
Line: 915

   	          l_label := 'igs.plsql.igs_ad_imp_024.update_term_details.exception '||l_msg_data;
Line: 930

          UPDATE igs_ad_trmdt_int
            SET status = cst_s_val_3,
            error_code = l_error_code,
            error_text = l_error_text,
            match_ind = DECODE (
                                       p_term_dtls_record.match_ind,
                                              NULL, cst_mi_val_12,
                                       match_ind)
          WHERE interface_term_dtls_id  = p_term_dtls_record.interface_term_dtls_id;
Line: 939

    END update_term_details;
Line: 946

     UPDATE igs_ad_trmdt_int term
       SET
       status = '3'
       ,error_code = 'E334'
       ,error_Text =  igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E334', 8405)
       WHERE interface_run_id = p_interface_run_id
       AND status = '2'
       AND EXISTS (SELECT 1 FROM igs_ad_txcpt_int trans, igs_ad_code_classes_v code
                   WHERE trans.interface_transcript_id = term.interface_transcript_id
                   AND trans.transcript_source = code.code_id
                   AND code.class = 'TRANSCRIPT_SOURCE'
                   AND code.system_status = 'THIRD_PARTY_TRANSFER_EVAL'
                   AND code.class_type_code = 'ADM_CODE_CLASSES');
Line: 964

        UPDATE igs_ad_trmdt_int
          SET
          status = '3'
          , error_code = 'E700'
          ,error_Text =  igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E700', 8405)
          WHERE interface_run_id = p_interface_run_id
          AND status = '2'
         AND NVL (match_ind, '15') <> '15';
Line: 977

        UPDATE igs_ad_trmdt_int
        SET
        status = '1',  error_code = NULL
        WHERE interface_run_id = p_interface_run_id
        AND status = '2'
        AND match_ind IN ('17', '18', '19', '22', '23', '24', '27');
Line: 987

      UPDATE igs_ad_trmdt_int  term
      SET
         status = '3'
        , error_code = 'E708'
          ,error_Text =  igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E708', 8405)
      WHERE interface_run_id = p_interface_run_id
      AND status = '2'
      AND  EXISTS ( SELECT 1 FROM igs_ad_tundt_int
                            WHERE  interface_term_dtls_id = term.interface_term_dtls_id
                            AND status ='2')
      AND  1 < (  SELECT COUNT(*)  FROM IGS_AD_TERM_DETAILS term_oss
                                          WHERE transcript_id  = term.transcript_id
                                           AND  term = term.term
                                           AND  TRUNC(start_Date) = TRUNC(term.start_Date)
                                           AND  TRUNC(end_Date) = TRUNC(term.end_Date)
                         );
Line: 1004

      UPDATE igs_ad_trmdt_int  term
      SET
         status = '1'
        , match_ind = '19'
        , term_Details_id = (  SELECT term_Details_id  FROM IGS_AD_TERM_DETAILS term_oss
                                          WHERE transcript_id  = term.transcript_id
                                           AND  term = term.term
                                           AND  TRUNC(start_Date) = TRUNC(term.start_Date)
                                           AND  TRUNC(end_Date) = TRUNC(term.end_Date)
                                           AND  rownum <=1
                                      )
      WHERE interface_run_id = p_interface_run_id
     AND status = '2'
     AND  EXISTS (  SELECT 1 FROM IGS_AD_TERM_DETAILS term_oss
                                          WHERE transcript_id  = term.transcript_id
                                           AND  term = term.term
                                           AND  TRUNC(start_Date) = TRUNC(term.start_Date)
                                           AND  TRUNC(end_Date) = TRUNC(term.end_Date)
                         );
Line: 1027

Create / Update the OSS record after validating successfully the interface record
Create
    If RULE I (match indicator will be 15 or NULL by now no need to check) and matching system record not found OR
    RULE = R and MATCH IND = 16, 25
Update
    If RULE = I (match indicator will be 15 or NULL by now no need to check) OR
    RULE = R and MATCH IND = 21

Selecting together the interface records for INSERT / UPDATE with DMLMODE identifying the DML operation.
This is done to have one code section for record validation, exception handling and interface table update.
This avoids call to separate PLSQL blocks, tuning performance on stack maintenance during the process.

**********************************************************************************/

l_total_records_prcessed := 0;
Line: 1042

  SELECT COUNT( interface_term_dtls_id) INTO l_count_interface_trmdtls_id
  FROM   igs_ad_trmdt_int
  WHERE interface_run_id = p_interface_run_id
  AND status =2 ;
Line: 1050

SELECT
 MIN(interface_term_dtls_id) , MAX(interface_term_dtls_id)
 INTO l_minint , l_maxint
FROM  igs_ad_trmdt_int
WHERE interface_run_id = p_interface_run_id
 AND status =2
 AND rownum < =100;
Line: 1060

       IF term_cur_rec.dmlmode =  cst_insert  THEN
           create_term_details(term_cur_rec);
Line: 1062

       ELSIF  term_cur_rec.dmlmode = cst_update THEN
          OPEN c_dup_cur(term_cur_rec);
Line: 1066

           update_term_details(term_cur_rec, dup_cur_rec);
Line: 1081

   ALL updateable column values, if column nullification is not allowed then the 2 DECODE should be replaced by a single NVL*/
     IF p_rule = 'R'  THEN
       UPDATE igs_ad_trmdt_int  term
       SET
         status = '1'
         , match_ind = '23'
       WHERE interface_run_id = p_interface_run_id
       AND status = '2'
       AND NVL (match_ind, '15') = '15'
       AND EXISTS (  SELECT 1  FROM igs_ad_term_details
                                 WHERE
                                    TRANSCRIPT_ID= term.transcript_id AND
                                    TERM           = term.TERM          AND
                                    TRUNC(START_DATE) =  TRUNC(term.START_DATE) AND
                                    TRUNC(END_DATE) = TRUNC(term.END_DATE) AND
                                    NVL(TOTAL_GPA_UNITS,-1)= NVL(term.TOTAL_GPA_UNITS,-1) AND
                                    NVL(GPA,'X')= NVL(term.GPA,'X')
                );
Line: 1105

        UPDATE igs_ad_trmdt_int  term
        SET
        status = '3'
        , match_ind = '20'
        , dup_term_dtls_id = ( SELECT term_details_id FROM IGS_AD_TERM_DETAILS term_oss
                                          WHERE transcript_id  = term.transcript_id
                                           AND  term = term.term
                                           AND  TRUNC(start_Date) = TRUNC(term.start_Date)
                                           AND  TRUNC(end_Date) = TRUNC(term.end_Date) )
        WHERE interface_run_id = p_interface_run_id
        AND status = '2'
        AND NVL (match_ind, '15') = '15'
        AND EXISTS (SELECT 1 FROM IGS_AD_TERM_DETAILS term_oss
                                          WHERE transcript_id  = term.transcript_id
                                           AND  term = term.term
                                           AND  TRUNC(start_Date) = TRUNC(term.start_Date)
                                           AND  TRUNC(end_Date) = TRUNC(term.end_Date) );
Line: 1129

        UPDATE igs_ad_trmdt_int  term
        SET
        status = '3'
        , error_code = 'E700'
        ,error_Text =  igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E700', 8405)
        WHERE interface_run_id = p_interface_run_id
        AND status = '2'
        AND match_ind IS NOT NULL;
Line: 1152

     SELECT  cst_insert dmlmode, unit.rowid,  unit.*
     FROM igs_ad_tundt_int  unit
     WHERE interface_run_id = p_interface_run_id
     AND  unit.status = '2'
     AND INTERFACE_TERM_UNITDTLS_ID BETWEEN cp_start_int_id AND cp_end_int_id		--ARVSRINI--
     AND  (NOT EXISTS (SELECT 1 FROM igs_ad_term_unitdtls unit_oss
                                          WHERE term_details_id =  unit.term_details_id
                                          AND unit = unit.unit )
                  OR ( p_rule = 'R'  AND unit.match_ind IN ('16', '25') )
              )
     UNION ALL
     SELECT  cst_update  dmlmode, unit.rowid,  unit.*
     FROM igs_ad_tundt_int  unit
     WHERE interface_run_id = p_interface_run_id
     AND  status = '2'
     AND INTERFACE_TERM_UNITDTLS_ID BETWEEN cp_start_int_id AND cp_end_int_id		--ARVSRINI--
     AND (       p_rule = 'I'  OR (p_rule = 'R' AND unit.match_ind = cst_mi_val_21))
     AND EXISTS (SELECT 1 FROM igs_ad_term_unitdtls unit_oss
                                          WHERE term_details_id =  unit.term_details_id
                                          AND unit = unit.unit
                        );
Line: 1175

    SELECT
       unit_oss.rowid, unit_oss.*
    FROM
	igs_ad_term_unitdtls unit_oss
    WHERE term_details_id =  term_unit_rec.term_details_id
     AND unit = term_unit_rec.unit ;
Line: 1218

          igs_ad_term_unitdtls_pkg.insert_row(
          l_rowid ,
          l_unit_details_id    ,
          p_term_unitdtls_record.term_details_id ,
          p_term_unitdtls_record.UNIT,
          p_term_unitdtls_record.UNIT_DIFFICULTY ,
          p_term_unitdtls_record.UNIT_NAME,
          p_term_unitdtls_record.CP_ATTEMPTED,
          p_term_unitdtls_record.CP_EARNED ,
          p_term_unitdtls_record.GRADE,
          p_term_unitdtls_record.UNIT_GRADE_POINTS
          );
Line: 1232

           UPDATE igs_ad_tundt_int
             SET status = cst_s_val_1,
                 error_code = NULL,
                 unit_details_id = l_unit_details_id
             WHERE interface_term_unitdtls_id = p_term_unitdtls_record.interface_term_unitdtls_id;
Line: 1277

           UPDATE igs_ad_tundt_int
            SET status = cst_s_val_3,
            error_code = l_error_code,
            error_text = l_error_text,
            match_ind = DECODE (
                                       p_term_unitdtls_record.match_ind,
                                              NULL, cst_mi_val_11,
                                       match_ind)
             WHERE interface_term_unitdtls_id = p_term_unitdtls_record.interface_term_unitdtls_id;
Line: 1288

   PROCEDURE update_term_unit_details(p_term_unitdtls_record term_unit_cur%ROWTYPE, dup_cur_rec c_dup_cur%ROWTYPE  )
     AS
   --------------------------------------------------------------------------
   --  Created By : rboddu
   --  Date Created On : 2001/07/27
   --  Purpose:
   --  Know limitations, enhancements or remarks
   --  Change History
   --  Who             When            What
   --  (reverse chronological order - newest change first)
    --------------------------------------------------------------------------
      l_rowid VARCHAR2(25);
Line: 1310

            SAVEPOINT before_update_unit;
Line: 1311

             igs_ad_term_unitdtls_pkg.update_row(
                 X_ROWID             => dup_cur_rec.rowid                        ,
                 X_UNIT_DETAILS_ID   => dup_cur_rec.UNIT_DETAILS_ID      ,
                 X_TERM_DETAILS_ID   => p_term_unitdtls_record.TERM_DETAILS_ID      ,
                 X_UNIT              => p_term_unitdtls_record.UNIT                 ,
                 X_UNIT_DIFFICULTY   => p_term_unitdtls_record.UNIT_DIFFICULTY      ,
                 X_UNIT_NAME         => p_term_unitdtls_record.UNIT_NAME            ,
                 X_CP_ATTEMPTED      => NVL(p_term_unitdtls_record.CP_ATTEMPTED, dup_cur_rec.cp_attempted),
                 X_CP_EARNED         => NVL(p_term_unitdtls_record.CP_EARNED, dup_cur_rec.CP_EARNED),
                 X_GRADE             => NVL(p_term_unitdtls_record.GRADE,dup_cur_rec.GRADE),
                 X_UNIT_GRADE_POINTS => NVL(p_term_unitdtls_record.UNIT_GRADE_POINTS, dup_cur_rec.UNIT_GRADE_POINTS)
                    );
Line: 1324

         UPDATE igs_ad_tundt_int
          SET status =cst_s_val_1,
              error_code = cst_ec_val_NULL,
              term_details_id = dup_cur_rec.UNIT_DETAILS_ID
             WHERE interface_term_unitdtls_id = p_term_unitdtls_record.interface_term_unitdtls_id;
Line: 1331

                  ROLLBACK TO before_update_unit;
Line: 1350

   	          l_label := 'igs.plsql.igs_ad_imp_024.update_term_details.exception '||l_msg_data;
Line: 1365

          UPDATE igs_ad_tundt_int
            SET status = cst_s_val_3,
            error_code = l_error_code,
            error_text = l_error_text,
            match_ind = DECODE (
                                       p_term_unitdtls_record.match_ind,
                                              NULL, cst_mi_val_12,
                                       match_ind)
             WHERE interface_term_unitdtls_id = p_term_unitdtls_record.interface_term_unitdtls_id;
Line: 1374

    END update_term_unit_details;
Line: 1382

    UPDATE igs_ad_tundt_int unit
      SET
      status = '3'
      , error_code = 'E334'
      ,error_Text =  igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E334', 8405)
      WHERE interface_run_id = p_interface_run_id
      AND status = '2'
      AND EXISTS (SELECT 1 FROM igs_ad_txcpt_int trans, igs_ad_code_classes_v code,
                  igs_ad_trmdt_int term
                  WHERE trans.interface_transcript_id = term.interface_transcript_id
                  AND term.interface_term_dtls_id = unit.interface_term_dtls_id
                  AND trans.transcript_source = code.code_id
                  AND code.class = 'TRANSCRIPT_SOURCE'
                  AND code.system_status = 'THIRD_PARTY_TRANSFER_EVAL'
                  AND code.class_type_code = 'ADM_CODE_CLASSES');
Line: 1402

        UPDATE igs_ad_tundt_int
          SET
          status = '3'
          , error_code = 'E700'
          , error_text =  igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E700', 8405)
          WHERE interface_run_id = p_interface_run_id
          AND status = '2'
         AND NVL (match_ind, '15') <> '15';
Line: 1415

        UPDATE igs_ad_tundt_int
        SET
        status = '1',  error_code = NULL
        WHERE interface_run_id = p_interface_run_id
        AND status = '2'
        AND match_ind IN ('17', '18', '19', '22', '23', '24', '27');
Line: 1426

      UPDATE igs_ad_tundt_int  unit
      SET
         status = '1'
        , match_ind = '19'
      WHERE interface_run_id = p_interface_run_id
     AND status = '2'
     AND  EXISTS ( SELECT 1 FROM igs_ad_term_unitdtls unit_oss
                                          WHERE term_details_id =  unit.term_details_id
                                          AND unit = unit.unit
                         );
Line: 1440

Create / Update the OSS record after validating successfully the interface record
Create
    If RULE I (match indicator will be 15 or NULL by now no need to check) and matching system record not found OR
    RULE = R and MATCH IND = 16, 25
Update
    If RULE = I (match indicator will be 15 or NULL by now no need to check) OR
    RULE = R and MATCH IND = 21

Selecting together the interface records for INSERT / UPDATE with DMLMODE identifying the DML operation.
This is done to have one code section for record validation, exception handling and interface table update.
This avoids call to separate PLSQL blocks, tuning performance on stack maintenance during the process.

**********************************************************************************/

l_total_records_prcessed := 0;
Line: 1455

  SELECT COUNT(interface_term_unitdtls_id) INTO l_count_interface_unitdtls_id
  FROM  igs_ad_tundt_int
  WHERE interface_run_id = p_interface_run_id
  AND status =2 ;
Line: 1463

SELECT
 MIN(interface_term_unitdtls_id) , MAX(interface_term_unitdtls_id)
 INTO l_minint , l_maxint
FROM igs_ad_tundt_int
WHERE interface_run_id = p_interface_run_id
 AND status =2
 AND rownum < =100;
Line: 1473

       IF term_unit_cur_rec.dmlmode =  cst_insert  THEN
           create_term_unit_details(term_unit_cur_rec);
Line: 1475

       ELSIF  term_unit_cur_rec.dmlmode = cst_update THEN
          OPEN c_dup_cur(term_unit_cur_rec);
Line: 1479

           update_term_unit_details(term_unit_cur_rec, dup_cur_rec);
Line: 1491

   ALL updateable column values, if column nullification is not allowed then the 2 DECODE should be replaced by a single NVL*/
     IF p_rule = 'R'  THEN
       UPDATE igs_ad_tundt_int  unit
       SET
         status = '1'
         , match_ind = '23'
       WHERE interface_run_id = p_interface_run_id
       AND status = '2'
       AND NVL (match_ind, '15') = '15'
       AND EXISTS (  SELECT 1  FROM igs_ad_term_unitdtls
                             WHERE   NVL(UNIT,'X')          = NVL(unit.UNIT,'X')          AND
                                          NVL(UNIT_DIFFICULTY,-1) = NVL(unit.UNIT_DIFFICULTY,-1) AND
                                          NVL(UNIT_NAME,'X')     = NVL(unit.UNIT_NAME,'X')     AND
                                          NVL(CP_ATTEMPTED,-1)    = NVL(unit.CP_ATTEMPTED,-1)    AND
                                          NVL(CP_EARNED,-1)       = NVL(unit.CP_EARNED,-1)       AND
                                          NVL(GRADE,'X')         = NVL(unit.GRADE,'X')         AND
                                          NVL(UNIT_GRADE_POINTS,-1) = NVL(unit.UNIT_GRADE_POINTS,-1)
                );
Line: 1515

       UPDATE igs_ad_tundt_int  unit
        SET
        status = '3'
        , match_ind = '20'
        , dup_term_unitdtls_id = ( SELECT  unit_details_id
                                          FROM igs_ad_term_unitdtls unit_oss
                                          WHERE term_details_id =  unit.term_details_id
                                          AND unit = unit.unit )
        WHERE interface_run_id = p_interface_run_id
        AND status = '2'
        AND NVL (match_ind, '15') = '15'
        AND EXISTS (SELECT  1
                                          FROM igs_ad_term_unitdtls unit_oss
                                          WHERE term_details_id =  unit.term_details_id
                                          AND unit = unit.unit );
Line: 1537

       UPDATE igs_ad_tundt_int  unit
        SET
        status = '3'
        , error_code = 'E700'
        , error_text  = igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E700', 8405)
        WHERE interface_run_id = p_interface_run_id
        AND status = '2'
        AND match_ind IS NOT NULL;