Return value for Direct OBPM SQL Query in OBPM 10GR3

Hi all,
I use a direct SQL Query provided by OBPM 10GR3 in my automatic activity to select certain elements from the db. The query is as follows:-
foreach (element in
SELECT id FROM TESTTABLE WHERE requestId = 732 and status = 1 )
// statements
logMessage("-- The id is-->" +element.id);
This only returns when the id is found in the db but returns nothing when not found in db?
How can I always get a return value? atleast a true or false, so that I can put IF statements?
Because if it returns nothing, the loop does not execute {}? So we cannot put something like:-
foreach (element in
SELECT id FROM TESTTABLE WHERE requestId = 732 and status = 1 )
logMessage("-- The id is-->" +element.id);
if(element.id == null)
logMessage("-- Id Not Found -->" );
else
logMessage("-- Id Found -->");
How can I always get a return value from my OBPM direct query ?
Remember , I am not using DynamicSQL in this case?

Hi,
Set a Boolean flag value to False before the SQL query.
Some thing like:
boolean flag = false;
foreach (element in
SELECT id FROM TESTTABLE WHERE requestId = 732 and status = 1 )
logMessage("-- The id is-->" +element.id);
flag = true;
if(flag) {
logMessage("-- Id Found -->" );
else
logMessage("-- Id Not Found -->");
Hope the above logic would work fine.
Bibhu
Edited by: Bibhuti Bhusan on Sep 2, 2011 11:48 AM

Similar Messages

  • URGENT HELP Required: Solution to avoid Full table scan for a PL/SQL query

    Hi Everyone,
    When I checked the EXPLAIN PLAN for the below SQL query, I saw that Full table scans is going on both the tables TABLE_A and TABLE_B
    UPDATE TABLE_A a
    SET a.current_commit_date =
    (SELECT MAX (b.loading_date)
    FROM TABLE_B b
    WHERE a.sales_order_id = b.sales_order_id
    AND a.sales_order_line_id = b.sales_order_line_id
    AND b.confirmed_qty > 0
    AND b.data_flag IS NULL
    OR b.schedule_line_delivery_date >= '23 NOV 2008')
    Though the TABLE_A is a small table having nearly 1 lakh records, the TABLE_B is a huge table, having nearly 2 and a half crore records.
    I created an Index on the TABLE_B having all its fields used in the WHERE clause. But, still the explain plan is showing FULL TABLE SCAN only.
    When I run the query, it is taking long long time to execute (more than 1 day) and each time I have to kill the session.
    Please please help me in optimizing this.
    Thanks,
    Sudhindra

    Check the instruction again, you're leaving out information we need in order to help you, like optimizer information.
    - Post your exact database version, that is: the result of select * from v$version;
    - Don't use TOAD's execution plan, but use
    SQL> explain plan for <your_query>;
    SQL> select * from table(dbms_xplan.display);(You can execute that in TOAD as well).
    Don't forget you need to use the {noformat}{noformat} tag in order to post formatted code/output/execution plans etc.
    It's also explained in the instruction.
    When was the last time statistics were gathered for table_a and table_b?
    You can find out by issuing the following query:select table_name
    , last_analyzed
    , num_rows
    from user_tables
    where table_name in ('TABLE_A', 'TABLE_B');
    Can you also post the results of these counts;select count(*)
    from table_b
    where confirmed_qty > 0;
    select count(*)
    from table_b
    where data_flag is null;
    select count(*)
    from table_b
    where schedule_line_delivery_date >= /* assuming you're using a date, and not a string*/ to_date('23 NOV 2008', 'dd mon yyyy');

  • How to Change the return value for the parameters

    Hi, Can anyone help me with my problem?
    I have a parameter called "P1_Projects" defined in the HTMLDB page, on the report region, there are 2 buttons, one is "Go" button to submit the report on the screen, so user can preview the report, then another button "Export to PDF" can be clicked to generate the report using Oracle Report Services. The "Export to PDF" button will use the same set of parameters submitted for the "Go" button.
    So, the parameter "P1_Projects" is being used by these 2 buttons. and I have to pass a "%" wild card for "All Projects". To make the "Export to PDF" button work, I have to safe encode the return value for "%" to "%25" in order to pass the URL formula, but now my "Go" button doesn't work with "%25", it only recognize the "%" wild card.
    Is there a way to conditionally change the value depends which button is clicked?
    Any hint or help is highly appreciated!
    Hong

    try creating a plsql process which sets the P1_Projects item as required.
    in the plsql you can do:
    if :REQUEST = 'GO' then
    xxx
    else
    xxxx
    end if;
    set the condition to plsql expression:
    :REQUEST in ('GO', 'EXPORT')
    NB. the request value is usually set to the button name when a page is submitted from a button

  • [svn:fx-trunk] 11523: Fix return values for ASyncListView/setItemAt(), removeItemAt(): return failed items if they exist.

    Revision: 11523
    Author:   [email protected]
    Date:     2009-11-06 11:58:50 -0800 (Fri, 06 Nov 2009)
    Log Message:
    Fix return values for ASyncListView/setItemAt(),removeItemAt(): return failed items if they exist.
    QE notes:
    Doc notes:
    Bugs: sdk-24078
    Reviewer: Evtim
    Tests run: AsyncListView Mustella tests pass
    Is noteworthy for integration: no
    Ticket Links:
        http://bugs.adobe.com/jira/browse/sdk-24078
    Modified Paths:
        flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/AsyncListView.as

  • Not able to return value for pl/sql to shell

    Hi,
    I'm calling pl/sql script from my shell script. Have set a flag in the pl/sql. Trying to return the value of the flag back to the shell script, but it is not working. My shell is ksh
    Please help....
    SHELL code trysnir.sh file--->
    <code>
    #!/bin/ksh
    flaga=50
    echo $flaga
    flaga=`sqlplus -S user/pass@sid@/opt/local/sql/update.sql > LOGFILE`
    echo aftersql
    echo $flaga
    if [ $flaga -lt 50 ]; then
    error "Previous Load failed"
    exit 3
    fi
    echo complete
    </code>
    SQL CODE file for update.sql--->
    <code>
    variable flaga number
    declare
    sessin_id number;
    begin
    Select Load_Sessin('aaa','xx') into sessin_id from dual;
    if sessin_id is NULL then
    :flaga :=10;
    end if;
    dbms_output.put_line(flaga);
    end;
    exit :flaga
    </code>
    But this returns me --->
    +50+
    aftersql
    PL/SQL procedure successfully completed.
    tyrnir.sh[9]: procedure: unknown test operator
    complete
    Please advise.... I have been trying since past 3 hrs and tried all search and everything i could but in vain.
    Many Thanks....
    Edited by: nss280 on Aug 20, 2009 2:17 AM

    executing this way will return you the last output from the sqlplus command. I think suppressing message PL/SQL procedure successfully completed. and putting a DBMS_OUTPUT.PUT_LINE(vflag) (this you have done already) will give you the desired result. So in update.sql put some extra line as below:
    set feedback off
    set serveroutput on
    <your code goes here>
    Regards.

  • Ref cursor stopped returning values for the output.

    Hi Everyone,
    My DB version is
    BANNER                                                        
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
    PL/SQL Release 10.2.0.1.0 - Production                          
    CORE 10.2.0.1.0 Production                                        
    TNS for Linux: Version 10.2.0.1.0 - Production                  
    NLSRTL Version 10.2.0.1.0 - Production  
    Please do have a look at the code, and let me know where I've gone wrong, because select query is fetching data. Previously procedure was returning values too through ref cursor. Please correct me where I've gone wrong.
    create or replace
    PROCEDURE
    SPL_SPN_MISSING_EMR_AOE_DTL (IN_PATIENT_ID            NUMBER,
                                 IN_FACILITY_ID           NUMBER,
                                 IN_DRAW_DT               DATE,
                                 IN_REQUISITION_NUMBER    ORDER_REQUISITION_HEADER.REQUISITION_NUMBER%TYPE,
                                 IN_CORP_ACRONYM          CORPORATION.CORPORATION_ACRONYM%TYPE,
                                 IN_ABCDEF_MRN           PATIENT.ABCDEF_MRN%TYPE,
                                 IN_ACCOUNT_NUMBER        FACILITY_ACCOUNT_DETAIL.ACCOUNT_NUMBER%TYPE,
                                 IN_HLAB_NUM              FACILITY_ACCOUNT_DETAIL.HLAB_NUM%TYPE,
                                 OV_COMMENTS              OUT   VARCHAR2,
                                 OR_QUES_AND_ANS          OUT   SYS_REFCURSOR) AS                               
    *  Copyright (C) 2013 ABCDEF Laboratories
    *  All Rights Reserved
    *  This Work Contains Trade Secrets And Confidential Material Of
    *  ABCDEF Laboratories., And Its Use Of Disclosure In Whole Or In Part
    *  Without Express Written Permission Of ABCDEF Laboratories Is Prohibited.
    *  Company              : ABCDEF Laboratories
    *  Project              : ABCDEF Scorpion
    *  Name                 : SPL_SPN_MISSING_EMR_AOE_DTL
    * In Parameters         : In_Patient_Id            Number
    *                         In_Facility_Id           Number
    *                         In_Draw_Dt               Date
    *                         In_Requisition_Number    Order_Requisition_Header.Requisition_Number%Type,
    *                         In_Corp_Acronym          Corporation.Corporation_Acronym%Type
    *                         In_ABCDEF_Mrn           Patient.ABCDEF_Mrn%Type
    *                         In_Account_Number        Facility_Account_Detail.Account_Number%Type
    *                         In_Hlab_Num              Facility_Account_Detail.Hlab_Num%Type
    * Out Parameters        : OV_COMMENTS           Out   Varchar2
    *                         OR_QUES_AND_ANS       Out   Sys_Refcursor
    * Description           : This Procedure Will Fetch The Mising Emr Aoe Detail And Provide
    *                         Necessary Comments As Well.
    * Modification History  :
    *   Date       Version No.        Author                 Description
    * 21/01/2014      1.0            ABCDEF               Initial Version  
    * 27/01/2014      1.1            ABCDEF               Restricted the output for duplicate questions
    *                                                     and answers, partially answered AOE. Also renamed
    *                                                     the output variable names.
        CC_PACKAGE_NAME             CONSTANT VARCHAR2(50)  := 'SPL_SPN_MISSING_EMR_AOE_DTL';   
        CC_PROCEDURE_NAME           CONSTANT VARCHAR2(50)  := 'SPL_SPN_MISSING_EMR_AOE_DTL';
        VC_AVL_PAT_QUES             VARCHAR2(1000);
        VC_DUP_PAT_QUES             VARCHAR2(1000);
        VC_ACTUAL_QUES              VARCHAR2(1000);
        VC_ACTUAL_QUES_CNT          NUMBER:= 0;
        VR_QUES_AND_ANS             SYS_REFCURSOR;
        VN_AVL_PAT_QUES_CNT         NUMBER := 0;
        VN_DUP_PAT_QUES_CNT         NUMBER := 0;
        VN_EXACT_PAT_ID_CNT         NUMBER := 0;
        VN_DUPL_PAT_ID              NUMBER := 0;
        VN_EXTERNAL_ID              PATIENT.EXTERNAL_ID%TYPE;
        VC_OBX_QUES                 VARCHAR2(1000);
        VC_OBX_QUES_CNT             NUMBER := 0;
        VN_OBX_QUES_CNT             NUMBER := 0;
        PAT_EXTERNAL_ID             PATIENT.EXTERNAL_ID%TYPE;
        VC_EXACT_BOOLEAN_VAL        VARCHAR2(10) := 'FALSE';
        VC_EXACT_PAR_BOOLEAN_VAL    VARCHAR2(10) := 'FALSE';
        VC_DUPL_BOOLEAN_VAL         VARCHAR2(10) := 'FALSE';
        VC_DUPL_PAR_BOOLEAN_VAL     VARCHAR2(10) := 'FALSE';
        VC_REJECTED_BOOLEAN_VAL     VARCHAR2(10) := 'FALSE';
        VC_REJECTED_PAR_BOOLEAN_VAL VARCHAR2(10) := 'FALSE';
        VC_COMMENTS                 VARCHAR2(100);
        VC_PAR_COMMENTS             VARCHAR2(100);
        VC_RETURN_EXACT_PAT         CHAR(1) := 'N';
        VC_RETURN_DUPL_PAT          CHAR(1) := 'N';
        VC_RETURN_REJECT_PAT        CHAR(1) := 'N';
        VC_CHK_FOR_EXT_ID           CHAR(1) := 'N';
        VN_MAX_MSG_ID               INTERFACE_A04_OBX_SEGMENT.MSG_ID%TYPE;
        VN_MAX_COUNT                NUMBER := 0;
        VN_ITERATION_RUN            NUMBER := 0;
    BEGIN
       SPL_SPN_ERROR_LOGGING_SPK.INFO_PROC
                      (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                      ,IC_PROCEDURE_NAME  => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                      ,IN_BATCH_ID        => '100'
                      ,IC_MESSAGE_TEXT    => 'Start of the procedure with Patient_Id:'||IN_PATIENT_ID||' Facility_Id:'||IN_FACILITY_ID||
                                             ' Draw_Dt:'||IN_DRAW_DT||' Requisition_Number:'||IN_REQUISITION_NUMBER||' Corp_Acronym:'||IN_CORP_ACRONYM||
                                             ' ABCDEF_Mrn:'||IN_ABCDEF_MRN||' Account_Number:'||IN_ACCOUNT_NUMBER||' Hlab_Num:'||IN_HLAB_NUM);
        <<AOE_TEST_LOOP>>
        FOR AOE_REC IN (SELECT ORD.TEST_ID
                            FROM ORDER_REQUISITION_DETAIL ORD
                           WHERE ORD.REQUISITION_HDR_ID = (SELECT ORH.REQUISITION_HDR_ID
                                                             FROM ORDER_REQUISITION_HEADER ORH
                                                            WHERE ORH.REQUISITION_NUMBER = IN_REQUISITION_NUMBER)
                            AND ORD.TEST_CODE IN (SELECT TEST_CODE FROM INTERFACE_ADT_AOE_MASTER WHERE SOURCE_SYSTEM = IN_CORP_ACRONYM))
            LOOP
                VN_ITERATION_RUN := VN_ITERATION_RUN + 1;
                SELECT COUNT(DISTINCT PATIENT_ID)
                INTO VN_EXACT_PAT_ID_CNT
                FROM EMR_ADTAOE_DTL
                WHERE PATIENT_ID  = IN_PATIENT_ID
                AND   TEST_ID = AOE_REC.TEST_ID
                AND   FACILITY_ID = IN_FACILITY_ID   
                AND   (DRAW_DATE   = IN_DRAW_DT
                    OR DRAW_DATE   = TO_DATE('2999/12/31','YYYY/MM/DD'))
                AND   SOURCE_SYSTEM = IN_CORP_ACRONYM ;
                --Collecting all questions in interface_adt_aoe_master
                SELECT STRAGG(SUB1.QUESTION_CODE), COUNT(SUB1.QUESTION_CODE)
                INTO VC_ACTUAL_QUES, VC_ACTUAL_QUES_CNT
                FROM (SELECT DISTINCT QUESTION_CODE FROM INTERFACE_ADT_AOE_MASTER
                      WHERE TEST_CODE = (SELECT TEST_CODE FROM TEST WHERE TEST_ID = AOE_REC.TEST_ID)
                      AND   SOURCE_SYSTEM = IN_CORP_ACRONYM
                      ORDER BY QUESTION_CODE) SUB1;
                 SPL_SPN_ERROR_LOGGING_SPK.INFO_PROC
                              (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                              ,IC_PROCEDURE_NAME  => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                              ,IN_BATCH_ID        => '100'
                              ,IC_MESSAGE_TEXT    => 'vc_actual_ques:'||VC_ACTUAL_QUES ||
                                                     ' vn_exact_pat_id_cnt:'||VN_EXACT_PAT_ID_CNT||
                                                     ' aoe_rec.test_id:'||AOE_REC.TEST_ID||
                                                     ' VN_ITERATION_RUN:'||VN_ITERATION_RUN);
                <<MAIN_IF_BLOCK>>
                IF
                    VN_EXACT_PAT_ID_CNT = 1 AND
                    VN_ITERATION_RUN    >= 1 THEN               
                    --Collecting avaliable questions in emr_adtaoe_dtl               
                    SELECT STRAGG(SUB.QUESTION_CODE), COUNT(DISTINCT SUB.QUESTION_CODE)
                    INTO VC_AVL_PAT_QUES, VN_AVL_PAT_QUES_CNT
                    FROM (SELECT DISTINCT QUESTION_CODE FROM EMR_ADTAOE_DTL
                          WHERE TEST_ID = AOE_REC.TEST_ID
                          AND   PATIENT_ID  = IN_PATIENT_ID
                          AND   FACILITY_ID = IN_FACILITY_ID
                          AND   (DRAW_DATE   = IN_DRAW_DT
                              OR DRAW_DATE   = TO_DATE('2999/12/31','YYYY/MM/DD'))
                          AND   SOURCE_SYSTEM = IN_CORP_ACRONYM
                          AND   ANSWER IS NOT NULL
                          ORDER BY QUESTION_CODE) SUB;
                    SPL_SPN_ERROR_LOGGING_SPK.INFO_PROC
                      (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                      ,IC_PROCEDURE_NAME  => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                      ,IN_BATCH_ID        => '100'
                      ,IC_MESSAGE_TEXT    => 'vc_avl_pat_ques:'||VC_AVL_PAT_QUES||
                                             ' vn_avl_pat_ques_cnt:'||VN_AVL_PAT_QUES_CNT);
                    <<CASE_1_AND_2>>
                    IF
                        VC_AVL_PAT_QUES = VC_ACTUAL_QUES THEN
                        VC_EXACT_BOOLEAN_VAL := 'TRUE';
                        VC_COMMENTS := 'AOE AVAILABLE';
                    ELSIF--<<case_1_and_2>>
                        (VC_AVL_PAT_QUES != VC_ACTUAL_QUES OR VC_AVL_PAT_QUES IS NULL) AND
                        VN_AVL_PAT_QUES_CNT >= 0 THEN
                        VC_EXACT_PAR_BOOLEAN_VAL := 'TRUE';
                        VC_PAR_COMMENTS := 'PARTIAL AOE AVAILABLE';
                    END IF;--<<case_1_and_2>>
                ELSIF
                    VN_EXACT_PAT_ID_CNT = 0 AND
                    VN_ITERATION_RUN    > 1 THEN 
                    VC_EXACT_PAR_BOOLEAN_VAL := 'TRUE';
                    VC_PAR_COMMENTS := 'PARTIAL AOE AVAILABLE';
                ELSIF--<<Main_if_block>>
                    VN_EXACT_PAT_ID_CNT = 0 THEN
                    <<DUPL_PAT_LOOP>>
                    FOR PAT_ID_REC IN(SELECT DISTINCT PATIENT_ID
                                      FROM PATIENT P
                                      WHERE P.ABCDEF_MRN = IN_ABCDEF_MRN
                                      AND EXISTS(SELECT 1 FROM EMR_ADTAOE_DTL EAD
                                                 WHERE EAD.PATIENT_ID  = P.PATIENT_ID
                                                 AND   EAD.TEST_ID     = AOE_REC.TEST_ID
                                                 AND   EAD.FACILITY_ID = IN_FACILITY_ID
                                                 AND  (EAD.DRAW_DATE  = IN_DRAW_DT
                                                    OR EAD.DRAW_DATE  = TO_DATE('2999/12/31','YYYY/MM/DD'))
                                                 AND   EAD.SOURCE_SYSTEM   = IN_CORP_ACRONYM)
                                      AND P.PATIENT_ID != IN_PATIENT_ID)
                    LOOP
                        --Collecting avaliable questions in emr_adtaoe_dtl
                        SELECT STRAGG(SUB.QUESTION_CODE), COUNT(QUESTION_CODE)
                        INTO VC_DUP_PAT_QUES, VN_DUP_PAT_QUES_CNT
                        FROM (SELECT QUESTION_CODE FROM EMR_ADTAOE_DTL   
                               WHERE TEST_ID     = AOE_REC.TEST_ID
                               AND   PATIENT_ID  = PAT_ID_REC.PATIENT_ID
                               AND   FACILITY_ID = IN_FACILITY_ID
                               AND   (DRAW_DATE   = IN_DRAW_DT
                                   OR DRAW_DATE   = TO_DATE('2999/12/31','YYYY/MM/DD'))
                               AND   SOURCE_SYSTEM = IN_CORP_ACRONYM
                               AND   ANSWER IS NOT NULL
                               ORDER BY QUESTION_CODE) SUB;
                        <<CASE_3_AND_4>>
                        IF 
                            VC_DUP_PAT_QUES = VC_ACTUAL_QUES THEN
                            VC_DUPL_BOOLEAN_VAL  := 'TRUE';
                            VC_COMMENTS := 'AOE AVAILABLE FOR DUPLICATE PATIENT';
                        ELSIF
                            VC_DUP_PAT_QUES != VC_ACTUAL_QUES AND
                            VN_DUP_PAT_QUES_CNT >= 0 THEN
                            VC_DUPL_PAR_BOOLEAN_VAL := 'TRUE';
                            VC_PAR_COMMENTS := 'PARTIAL AOE AVAILABLE FOR DUPLICATE PATIENT';
                        END IF;--<<case_3_and_4>>
                        VN_DUPL_PAT_ID := PAT_ID_REC.PATIENT_ID;
                        SPL_SPN_ERROR_LOGGING_SPK.INFO_PROC
                                  (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                                  ,IC_PROCEDURE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                                  ,IN_BATCH_ID        => '100'
                                  ,IC_MESSAGE_TEXT    => 'vc_dup_pat_ques:'||VC_DUP_PAT_QUES||
                                                         ' vn_dup_pat_ques_cnt:'||VN_DUP_PAT_QUES_CNT||
                                                         ' VC_COMMENTS:'||VC_COMMENTS||
                                                         ' VC_PAR_COMMENTS:'||VC_PAR_COMMENTS);
                    END LOOP DUPL_PAT_LOOP;
                    VC_CHK_FOR_EXT_ID := 'Y';
                    IF
                      VC_CHK_FOR_EXT_ID = 'Y' THEN
                      <<EXTERNAL_ID_LOOP>>
                      FOR P_PAT_EXT_ID_REC IN (SELECT DISTINCT P.EXTERNAL_ID
                                                 FROM PATIENT P
                                                WHERE P.ABCDEF_MRN = IN_ABCDEF_MRN
                                                  AND P.EXTERNAL_ID IS NOT NULL)
                      LOOP 
                          INSERT INTO TT_A04_OBX_QUES_ANS_DTL
                          (SELECT IAOBX.MSG_ID, IAOBX.OBSERVATION_IDENTIFIER, IAOBX.OBSERVATION_VALUE, IAM.UOM
                            FROM INTERFACE_A04_OBX_SEGMENT IAOBX, INTERFACE_ADT_AOE_MASTER IAM
                            WHERE IAOBX.OBSERVATION_IDENTIFIER = IAM.QUESTION_CODE
                            AND   (IAOBX.OBSERVATION_DTM  = TO_CHAR(IN_DRAW_DT,'YYYYMMDD')
                                OR IAOBX.OBSERVATION_DTM = TO_CHAR(TO_DATE('2999/12/31','YYYY/MM/DD'),'YYYYMMDD'))
                            AND   IAOBX.MSG_ID IN (SELECT IPID.MSG_ID
                                                     FROM   INTERFACE_A04_PID_SEGMENT IPID
                                                    WHERE   IPID.PATIENT_ID_EXTERNAL  = P_PAT_EXT_ID_REC.EXTERNAL_ID
                                                      AND   IPID.MSG_ID IN (SELECT IMSH.MSG_ID
                                                                             FROM  INTERFACE_A04_MSH_SEGMENT IMSH
                                                                             WHERE (TRIM('W' FROM SUBSTR(IMSH.SENDING_FACILITY,5,LENGTH(IMSH.SENDING_FACILITY))) = IN_ACCOUNT_NUMBER
                                                                                 OR SUBSTR(IMSH.SENDING_FACILITY,2,LENGTH(IMSH.SENDING_FACILITY))    = IN_HLAB_NUM))));
                          BEGIN
                            SELECT STRAGG(SUB3.OBSERVATION_IDENTIFIER), COUNT(OBSERVATION_IDENTIFIER)
                            INTO VC_OBX_QUES, VC_OBX_QUES_CNT
                            FROM (SELECT DISTINCT OBSERVATION_IDENTIFIER
                                  FROM TT_A04_OBX_QUES_ANS_DTL
                                  ORDER BY OBSERVATION_IDENTIFIER)SUB3;
                             IF
                                VC_OBX_QUES = VC_ACTUAL_QUES THEN
                                VC_COMMENTS := 'AOE RECEIVED IN A REJECTED ADT';
                                VC_REJECTED_BOOLEAN_VAL := 'TRUE';
                             ELSIF
                                VC_OBX_QUES != VC_ACTUAL_QUES AND
                                VC_OBX_QUES_CNT > 0 THEN
                                VC_PAR_COMMENTS := 'PARTIAL AOE RECEIVED IN A REJECTED ADT';
                                VC_REJECTED_PAR_BOOLEAN_VAL := 'TRUE';
                             END IF;
                            VN_EXTERNAL_ID := P_PAT_EXT_ID_REC.EXTERNAL_ID;
                        EXCEPTION
                          WHEN NO_DATA_FOUND THEN
                            VC_REJECTED_BOOLEAN_VAL := 'FALSE';
                            VC_REJECTED_PAR_BOOLEAN_VAL := 'FALSE';
                        END;
                         SPL_SPN_ERROR_LOGGING_SPK.INFO_PROC
                                    (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                                    ,IC_PROCEDURE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                                    ,IN_BATCH_ID        => '100'
                                    ,IC_MESSAGE_TEXT    => 'vc_obx_ques:'||VC_OBX_QUES||
                                                           ' vc_obx_ques_cnt:'||VC_OBX_QUES_CNT);
                      END LOOP EXTERNAL_ID_LOOP;
                    END IF;
                END IF;--<<Main_if_block>>
          END LOOP AOE_TEST_LOOP;
      --Returning output as per the execution result.
      IF
         VC_EXACT_BOOLEAN_VAL = 'TRUE' AND
         VC_EXACT_PAR_BOOLEAN_VAL = 'FALSE' THEN
         OV_COMMENTS := VC_COMMENTS;
         VC_DUPL_BOOLEAN_VAL         := NULL;
         VC_DUPL_PAR_BOOLEAN_VAL     := NULL;
         VC_REJECTED_BOOLEAN_VAL     := NULL;
         VC_REJECTED_PAR_BOOLEAN_VAL := NULL;
         VC_RETURN_EXACT_PAT := 'Y';
      ELSIF
         --VC_EXACT_BOOLEAN_VAL = 'TRUE' AND
         VC_EXACT_PAR_BOOLEAN_VAL = 'TRUE' THEN
         OV_COMMENTS := VC_PAR_COMMENTS;
         VC_DUPL_BOOLEAN_VAL         := NULL;
         VC_DUPL_PAR_BOOLEAN_VAL     := NULL;
         VC_REJECTED_BOOLEAN_VAL     := NULL;
         VC_REJECTED_PAR_BOOLEAN_VAL := NULL;
         VC_RETURN_EXACT_PAT := 'Y';
      END IF;
      IF
        VC_RETURN_EXACT_PAT = 'Y' THEN
        --Returning result set (OV_COMMENTS,Question and Answer) for the exact patient.(Case 1 (AOE) and 2 (PARTIAL AOE))
        SELECT MAX (SUB.COUNT_QUES_ANS)
        INTO VN_MAX_COUNT FROM (SELECT COUNT(*) OVER (PARTITION BY EAD.QUESTION_CODE, EAD.ANSWER) AS COUNT_QUES_ANS
                                FROM  EMR_ADTAOE_DTL EAD , INTERFACE_ADT_AOE_MASTER IAM, TEST T
                                WHERE T.TEST_ID = EAD.TEST_ID
                                AND   IAM.TEST_CODE = T.TEST_CODE
                                AND   EAD.SOURCE_SYSTEM = IAM.SOURCE_SYSTEM
                                AND   EAD.QUESTION_CODE = IAM.QUESTION_CODE
                                AND   EAD.PATIENT_ID    = IN_PATIENT_ID
                                AND   EAD.FACILITY_ID   = IN_FACILITY_ID
                                AND   (TRUNC(EAD.DRAW_DATE)   = IN_DRAW_DT
                                      OR TRUNC(EAD.DRAW_DATE) = TRUNC(TO_DATE('12-31-2999','mm-dd-yyyy')))
                                AND   EAD.SOURCE_SYSTEM = IN_REQUISITION_NUMBER) SUB;
         IF
            VN_MAX_COUNT > 1 THEN
            SPL_SPN_ERROR_LOGGING_SPK.INFO_PROC
                                    (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                                    ,IC_PROCEDURE_NAME  => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                                    ,IN_BATCH_ID        => '100'
                                    ,IC_MESSAGE_TEXT    => 'exact patient duplicate scenario'||' vn_max_count:'||VN_MAX_COUNT);
            OPEN VR_QUES_AND_ANS FOR                                 
            SELECT DISTINCT IAM.QUESTION_CODE,
                  (SELECT DISTINCT CASE
                                   WHEN EAD.ANSWER IS NULL THEN NULL
                                   WHEN LENGTH(TRIM(TRANSLATE(EAD.ANSWER, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', ' '))) IS NULL THEN EAD.ANSWER
                                   ELSE TO_CHAR(TRUNC(EAD.ANSWER *  DECODE(UPPER(IAM.UOM), 'KGS', 2.20462,1),2))
                                   END
                    FROM  EMR_ADTAOE_DTL EAD , TEST T
                    WHERE T.TEST_ID = EAD.TEST_ID
                    AND   IAM.TEST_CODE = T.TEST_CODE
                    AND   EAD.SOURCE_SYSTEM = IAM.SOURCE_SYSTEM
                    AND   EAD.QUESTION_CODE = IAM.QUESTION_CODE
                    AND   EAD.PATIENT_ID    = IN_PATIENT_ID
                    AND   EAD.FACILITY_ID   = IN_FACILITY_ID
                    AND   (TRUNC(EAD.DRAW_DATE)    = IN_DRAW_DT
                            OR TRUNC(EAD.DRAW_DATE) = TRUNC(TO_DATE('12-31-2999','mm-dd-yyyy')))
                    AND   EAD.SOURCE_SYSTEM = IN_CORP_ACRONYM
                    AND   EAD.ANSWER IS NOT NULL
                    AND   EAD.STATUS = DECODE(IAM.MATCH_TYPE, 'AT', EAD.STATUS, 'N')
                    ) AS ANSWER
            FROM INTERFACE_ADT_AOE_MASTER IAM
            WHERE IAM.SOURCE_SYSTEM = IN_CORP_ACRONYM
            AND IAM.TEST_CODE IN  (SELECT ORD.TEST_CODE
                                     FROM ORDER_REQUISITION_DETAIL ORD
                                    WHERE ORD.REQUISITION_HDR_ID = (SELECT ORH.REQUISITION_HDR_ID
                                                                      FROM ORDER_REQUISITION_HEADER ORH
                                                                     WHERE ORH.REQUISITION_NUMBER = IN_REQUISITION_NUMBER)   
                                    AND EXISTS (SELECT 1 FROM EMR_ADTAOE_DTL EAD1, INTERFACE_ADT_AOE_MASTER IAM1, TEST T1
                                                 WHERE  ORD.TEST_ID = EAD1.TEST_ID
                                                  AND   IAM1.TEST_CODE = T1.TEST_CODE
                                                  AND   EAD1.SOURCE_SYSTEM = IAM1.SOURCE_SYSTEM
                                                  AND   EAD1.QUESTION_CODE = IAM1.QUESTION_CODE
                                                  AND   EAD1.PATIENT_ID    = IN_PATIENT_ID
                                                  AND   EAD1.FACILITY_ID   = IN_FACILITY_ID
                                                  AND   (TRUNC(EAD1.DRAW_DATE)    = IN_DRAW_DT
                                                        OR TRUNC(EAD1.DRAW_DATE) = TRUNC(TO_DATE('12-31-2999','mm-dd-yyyy')))
                                                  AND   EAD1.SOURCE_SYSTEM = IN_CORP_ACRONYM
                                                  AND   EAD1.ANSWER IS NOT NULL
                                                  AND   EAD1.STATUS = DECODE(IAM1.MATCH_TYPE, 'AT', EAD1.STATUS, 'N')));
         ELSIF
           VN_MAX_COUNT = 1 THEN
           SPL_SPN_ERROR_LOGGING_SPK.INFO_PROC
                                    (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                                    ,IC_PROCEDURE_NAME  => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                                    ,IN_BATCH_ID        => '100'
                                    ,IC_MESSAGE_TEXT    => 'exact patient unique scenario'||' vn_max_count:'||VN_MAX_COUNT);
           OPEN VR_QUES_AND_ANS FOR                                 
           SELECT DISTINCT IAM.QUESTION_CODE,
                  (SELECT DISTINCT CASE
                                   WHEN EAD.ANSWER IS NULL THEN NULL
                                   WHEN LENGTH(TRIM(TRANSLATE(EAD.ANSWER, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', ' '))) IS NULL THEN EAD.ANSWER
                                   ELSE TO_CHAR(TRUNC(EAD.ANSWER *  DECODE(UPPER(IAM.UOM), 'KGS', 2.20462,1),2))
                                   END
                    FROM  EMR_ADTAOE_DTL EAD , TEST T
                    WHERE T.TEST_ID = EAD.TEST_ID
                    AND   IAM.TEST_CODE = T.TEST_CODE
                    AND   EAD.SOURCE_SYSTEM = IAM.SOURCE_SYSTEM
                    AND   EAD.QUESTION_CODE = IAM.QUESTION_CODE
                    AND   EAD.PATIENT_ID    = IN_PATIENT_ID
                    AND   EAD.FACILITY_ID   = IN_FACILITY_ID
                    AND   (TRUNC(EAD.DRAW_DATE)    = IN_DRAW_DT
                            OR TRUNC(EAD.DRAW_DATE) = TRUNC(TO_DATE('12-31-2999','mm-dd-yyyy')))
                    AND   EAD.SOURCE_SYSTEM = IN_CORP_ACRONYM
                    AND   EAD.ANSWER IS NOT NULL
                    AND   EAD.STATUS = DECODE(IAM.MATCH_TYPE, 'AT', EAD.STATUS, 'N')
                    ) AS ANSWER
            FROM INTERFACE_ADT_AOE_MASTER IAM
            WHERE IAM.SOURCE_SYSTEM = IN_CORP_ACRONYM
            AND IAM.TEST_CODE IN  (SELECT ORD.TEST_CODE
                                     FROM ORDER_REQUISITION_DETAIL ORD
                                    WHERE ORD.REQUISITION_HDR_ID = (SELECT ORH.REQUISITION_HDR_ID
                                                                      FROM ORDER_REQUISITION_HEADER ORH
                                                                     WHERE ORH.REQUISITION_NUMBER = IN_REQUISITION_NUMBER));
         END IF;                           
         OR_QUES_AND_ANS := VR_QUES_AND_ANS;
        SPL_SPN_ERROR_LOGGING_SPK.INFO_PROC
                      (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                      ,IC_PROCEDURE_NAME  => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                      ,IN_BATCH_ID        => '100'
                      ,IC_MESSAGE_TEXT    => 'vc_exact_boolean_val:'||VC_EXACT_BOOLEAN_VAL||
                                             ' vc_exact_par_boolean_val:'||VC_EXACT_PAR_BOOLEAN_VAL||
                                             ' OV_COMMENTS:'||OV_COMMENTS);
      END IF;               
      IF
          VC_DUPL_BOOLEAN_VAL = 'TRUE' AND
          VC_DUPL_PAR_BOOLEAN_VAL = 'FALSE' THEN
          OV_COMMENTS := VC_COMMENTS;
          VC_EXACT_BOOLEAN_VAL        := NULL;
          VC_EXACT_PAR_BOOLEAN_VAL    := NULL;
          VC_REJECTED_BOOLEAN_VAL     := NULL;
          VC_REJECTED_PAR_BOOLEAN_VAL := NULL;
          VC_RETURN_DUPL_PAT := 'Y';
      ELSIF
         --VC_DUPL_BOOLEAN_VAL = 'TRUE' AND
         VC_DUPL_PAR_BOOLEAN_VAL = 'TRUE' THEN
         OV_COMMENTS := VC_PAR_COMMENTS;
         VC_EXACT_BOOLEAN_VAL        := NULL;
         VC_EXACT_PAR_BOOLEAN_VAL    := NULL;
         VC_REJECTED_BOOLEAN_VAL     := NULL;
         VC_REJECTED_PAR_BOOLEAN_VAL := NULL;
         VC_RETURN_DUPL_PAT := 'Y';
      END IF;
      IF
        VC_RETURN_DUPL_PAT = 'Y' THEN
        --Returning result set (OV_COMMENTS,Question and Answer) for the duplicate patient.(Case 3 (AOE) and 4 (PARTIAL AOE))
        SELECT MAX (SUB.COUNT_QUES_ANS)
        INTO VN_MAX_COUNT FROM (SELECT COUNT(*) OVER (PARTITION BY EAD.QUESTION_CODE, EAD.ANSWER) AS COUNT_QUES_ANS
                                FROM  EMR_ADTAOE_DTL EAD , INTERFACE_ADT_AOE_MASTER IAM, TEST T
                                WHERE T.TEST_ID = EAD.TEST_ID
                                AND   IAM.TEST_CODE = T.TEST_CODE
                                AND   EAD.SOURCE_SYSTEM = IAM.SOURCE_SYSTEM
                                AND   EAD.QUESTION_CODE = IAM.QUESTION_CODE
                                AND   EAD.PATIENT_ID    = VN_DUPL_PAT_ID
                                AND   EAD.FACILITY_ID   = IN_FACILITY_ID
                                AND   (TRUNC(EAD.DRAW_DATE)   = IN_DRAW_DT
                                      OR TRUNC(EAD.DRAW_DATE) = TRUNC(TO_DATE('12-31-2999','mm-dd-yyyy')))
                                AND   EAD.SOURCE_SYSTEM = IN_REQUISITION_NUMBER) SUB;
         IF
            VN_MAX_COUNT > 1 THEN
            SPL_SPN_ERROR_LOGGING_SPK.INFO_PROC
                                    (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                                    ,IC_PROCEDURE_NAME  => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                                    ,IN_BATCH_ID        => '100'
                                    ,IC_MESSAGE_TEXT    => 'duplicate patient duplicate scenario'||' vn_max_count:'||VN_MAX_COUNT);
            OPEN VR_QUES_AND_ANS FOR                                 
            SELECT DISTINCT IAM.QUESTION_CODE,
                  (SELECT DISTINCT CASE
                                   WHEN EAD.ANSWER IS NULL THEN NULL
                                   WHEN LENGTH(TRIM(TRANSLATE(EAD.ANSWER, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', ' '))) IS NULL THEN EAD.ANSWER
                                   ELSE TO_CHAR(TRUNC(EAD.ANSWER *  DECODE(UPPER(IAM.UOM), 'KGS', 2.20462,1),2))
                                   END
                    FROM  EMR_ADTAOE_DTL EAD , TEST T
                    WHERE T.TEST_ID = EAD.TEST_ID
                    AND   IAM.TEST_CODE = T.TEST_CODE
                    AND   EAD.SOURCE_SYSTEM = IAM.SOURCE_SYSTEM
                    AND   EAD.QUESTION_CODE = IAM.QUESTION_CODE
                    AND   EAD.PATIENT_ID    = VN_DUPL_PAT_ID
                    AND   EAD.FACILITY_ID   = IN_FACILITY_ID
                    AND   (TRUNC(EAD.DRAW_DATE)    = IN_DRAW_DT
                            OR TRUNC(EAD.DRAW_DATE) = TRUNC(TO_DATE('12-31-2999','mm-dd-yyyy')))
                    AND   EAD.SOURCE_SYSTEM = IN_CORP_ACRONYM
                    AND   EAD.ANSWER IS NOT NULL
                    AND   EAD.STATUS = DECODE(IAM.MATCH_TYPE, 'AT', EAD.STATUS, 'N')
                    ) AS ANSWER
            FROM INTERFACE_ADT_AOE_MASTER IAM
            WHERE IAM.SOURCE_SYSTEM = IN_CORP_ACRONYM
            AND IAM.TEST_CODE IN  (SELECT ORD.TEST_CODE
                                     FROM ORDER_REQUISITION_DETAIL ORD
                                    WHERE ORD.REQUISITION_HDR_ID = (SELECT ORH.REQUISITION_HDR_ID
                                                                      FROM ORDER_REQUISITION_HEADER ORH
                                                                     WHERE ORH.REQUISITION_NUMBER = IN_REQUISITION_NUMBER)   
                                    AND EXISTS (SELECT 1 FROM EMR_ADTAOE_DTL EAD1, INTERFACE_ADT_AOE_MASTER IAM1, TEST T1
                                                 WHERE  ORD.TEST_ID = EAD1.TEST_ID
                                                  AND   IAM1.TEST_CODE = T1.TEST_CODE
                                                  AND   EAD1.SOURCE_SYSTEM = IAM1.SOURCE_SYSTEM
                                                  AND   EAD1.QUESTION_CODE = IAM1.QUESTION_CODE
                                                  AND   EAD1.PATIENT_ID    = VN_DUPL_PAT_ID
                                                  AND   EAD1.FACILITY_ID   = IN_FACILITY_ID
                                                  AND   (TRUNC(EAD1.DRAW_DATE)    = IN_DRAW_DT
                                                        OR TRUNC(EAD1.DRAW_DATE) = TRUNC(TO_DATE('12-31-2999','mm-dd-yyyy')))
                                                  AND   EAD1.SOURCE_SYSTEM = IN_CORP_ACRONYM
                                                  AND   EAD1.ANSWER IS NOT NULL
                                                  AND   EAD1.STATUS = DECODE(IAM1.MATCH_TYPE, 'AT', EAD1.STATUS, 'N')));
         ELSIF
           VN_MAX_COUNT = 1 THEN
            SPL_SPN_ERROR_LOGGING_SPK.INFO_PROC
                                    (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                                    ,IC_PROCEDURE_NAME  => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                                    ,IN_BATCH_ID        => '100'
                                    ,IC_MESSAGE_TEXT    => 'duplicate patient unique scenario'||' vn_max_count:'||VN_MAX_COUNT);
            OPEN VR_QUES_AND_ANS FOR                                 
            SELECT DISTINCT IAM.QUESTION_CODE,
                  (SELECT DISTINCT CASE
                                   WHEN EAD.ANSWER IS NULL THEN NULL
                                   WHEN LENGTH(TRIM(TRANSLATE(EAD.ANSWER, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', ' '))) IS NULL THEN EAD.ANSWER
                                   ELSE TO_CHAR(TRUNC(EAD.ANSWER *  DECODE(UPPER(IAM.UOM), 'KGS', 2.20462,1),2))
                                   END
                    FROM  EMR_ADTAOE_DTL EAD , TEST T
                    WHERE T.TEST_ID = EAD.TEST_ID
                    AND   IAM.TEST_CODE = T.TEST_CODE
                    AND   EAD.SOURCE_SYSTEM = IAM.SOURCE_SYSTEM
                    AND   EAD.QUESTION_CODE = IAM.QUESTION_CODE
                    AND   EAD.PATIENT_ID    = VN_DUPL_PAT_ID
                    AND   EAD.FACILITY_ID   = IN_FACILITY_ID
                    AND   (TRUNC(EAD.DRAW_DATE)    = IN_DRAW_DT
                            OR TRUNC(EAD.DRAW_DATE) = TRUNC(TO_DATE('12-31-2999','mm-dd-yyyy')))
                    AND   EAD.SOURCE_SYSTEM = IN_CORP_ACRONYM
                    AND   EAD.ANSWER IS NOT NULL
                    AND   EAD.STATUS = DECODE(IAM.MATCH_TYPE, 'AT', EAD.STATUS, 'N')
                    ) AS ANSWER
            FROM INTERFACE_ADT_AOE_MASTER IAM
            WHERE IAM.SOURCE_SYSTEM = IN_CORP_ACRONYM
            AND IAM.TEST_CODE IN  (SELECT ORD.TEST_CODE
                                     FROM ORDER_REQUISITION_DETAIL ORD
                                    WHERE ORD.REQUISITION_HDR_ID = (SELECT ORH.REQUISITION_HDR_ID
                                                                      FROM ORDER_REQUISITION_HEADER ORH
                                                                     WHERE ORH.REQUISITION_NUMBER = IN_REQUISITION_NUMBER));
         END IF; 
        OR_QUES_AND_ANS := VR_QUES_AND_ANS;
        SPL_SPN_ERROR_LOGGING_SPK.INFO_PROC
                      (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                      ,IC_PROCEDURE_NAME  => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                      ,IN_BATCH_ID        => '100'
                      ,IC_MESSAGE_TEXT    => 'vc_dup_pat_ques:'||VC_DUP_PAT_QUES||
                                             ' vc_dupl_boolean_val:'||VC_DUPL_BOOLEAN_VAL||
                                             ' vc_dupl_par_boolean_val:'||VC_DUPL_PAR_BOOLEAN_VAL||
                                             ' OV_COMMENTS:'||OV_COMMENTS);
      END IF;               
      IF
         VC_REJECTED_BOOLEAN_VAL = 'TRUE' AND
         VC_REJECTED_PAR_BOOLEAN_VAL = 'FALSE' THEN
         OV_COMMENTS := VC_COMMENTS;
         VC_EXACT_BOOLEAN_VAL        := NULL;
         VC_EXACT_PAR_BOOLEAN_VAL    := NULL;
         VC_DUPL_BOOLEAN_VAL         := NULL;
         VC_DUPL_PAR_BOOLEAN_VAL     := NULL;
         VC_RETURN_REJECT_PAT := 'Y';
      ELSIF
         --VC_REJECTED_BOOLEAN_VAL = 'FALSE' AND
         VC_REJECTED_PAR_BOOLEAN_VAL = 'TRUE' THEN
         OV_COMMENTS := VC_PAR_COMMENTS;
         VC_EXACT_BOOLEAN_VAL        := NULL;
         VC_EXACT_PAR_BOOLEAN_VAL    := NULL;
         VC_DUPL_BOOLEAN_VAL         := NULL;
         VC_DUPL_PAR_BOOLEAN_VAL     := NULL;
         VC_RETURN_REJECT_PAT := 'Y';
      ELSIF
         VC_REJECTED_BOOLEAN_VAL = 'FALSE' AND
         VC_REJECTED_PAR_BOOLEAN_VAL = 'FALSE' THEN
         --Returning result set (OV_COMMENTS) for the rejected ADT.(Case 7)
         OV_COMMENTS := 'AOE NOT RECEIVED IN ADT';
         OR_QUES_AND_ANS := NULL;
         SPL_SPN_ERROR_LOGGING_SPK.INFO_PROC
                        (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                        ,IC_PROCEDURE_NAME  => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                        ,IN_BATCH_ID        => '100'
                        ,IC_MESSAGE_TEXT    => 'vc_obx_ques:'||VC_OBX_QUES||
                                               ' vc_rejected_boolean_val:'||VC_REJECTED_BOOLEAN_VAL||
                                               ' vc_rejected_par_boolean_val:'||VC_REJECTED_PAR_BOOLEAN_VAL||
                                               ' OV_COMMENTS:'||OV_COMMENTS);
         VC_EXACT_BOOLEAN_VAL        := NULL;
         VC_EXACT_PAR_BOOLEAN_VAL    := NULL;
         VC_DUPL_BOOLEAN_VAL         := NULL;
         VC_DUPL_PAR_BOOLEAN_VAL     := NULL;
      END IF;
      IF
        VC_RETURN_REJECT_PAT = 'Y' THEN
        --Returning result set (OV_COMMENTS,Question and Answer) for the rejected ADT.(Case 5 (AOE) and 6 (PARTIAL AOE))
        --In case of multiple external id with same patient, facility and draw date; the lastest record should be picked.
        SELECT MAX(MSG_ID) INTO VN_MAX_MSG_ID FROM TT_A04_OBX_QUES_ANS_DTL;
        OPEN VR_QUES_AND_ANS FOR
        SELECT DISTINCT IAM.QUESTION_CODE,
                       (SELECT DISTINCT
                         CASE
                            WHEN TOBX.OBSERVATION_VALUE IS NULL THEN NULL
                            WHEN LENGTH(TRIM(TRANSLATE(TOBX.OBSERVATION_VALUE, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', ' '))) IS NULL THEN TOBX.OBSERVATION_VALUE
                            ELSE TO_CHAR(TRUNC(TOBX.OBSERVATION_VALUE *  DECODE(UPPER(TOBX.UOM), 'KGS', 2.20462,1),2))
                         END
                         FROM TT_A04_OBX_QUES_ANS_DTL TOBX
                        WHERE TOBX.OBSERVATION_IDENTIFIER = IAM.QUESTION_CODE
                          AND TOBX.MSG_ID = VN_MAX_MSG_ID) AS ANSWER
         FROM INTERFACE_ADT_AOE_MASTER IAM
        WHERE SOURCE_SYSTEM = IN_CORP_ACRONYM;
        OR_QUES_AND_ANS := VR_QUES_AND_ANS;
        SPL_SPN_ERROR_LOGGING_SPK.INFO_PROC
                        (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                        ,IC_PROCEDURE_NAME  => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                        ,IN_BATCH_ID        => '100'
                        ,IC_MESSAGE_TEXT    => 'vc_rejected_boolean_val:'||VC_REJECTED_BOOLEAN_VAL||
                                               ' vc_rejected_par_boolean_val:'||VC_REJECTED_PAR_BOOLEAN_VAL||
                                               ' OV_COMMENTS:'||OV_COMMENTS);
      END IF;
       SPL_SPN_ERROR_LOGGING_SPK.INFO_PROC
                        (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                        ,IC_PROCEDURE_NAME  => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                        ,IN_BATCH_ID        => '100'
                        ,IC_MESSAGE_TEXT    => 'End of the procedure with Patient_Id:'||IN_PATIENT_ID||' Facility_Id:'||IN_FACILITY_ID||
                                               ' Draw_Dt:'||IN_DRAW_DT||' Requisition_Number:'||IN_REQUISITION_NUMBER||' Corp_Acronym:'||IN_CORP_ACRONYM||
                                               ' ABCDEF_Mrn:'||IN_ABCDEF_MRN||' Account_Number:'||IN_ACCOUNT_NUMBER||' Hlab_Num:'||IN_HLAB_NUM);
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
        SPL_SPN_ERROR_LOGGING_SPK.ERROR_PROC
                        (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                        ,IC_PROCEDURE_NAME  => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                        ,IN_BATCH_ID        => '100'
                        ,IC_MESSAGE_TEXT    => SQLERRM);
      WHEN OTHERS THEN
        SPL_SPN_ERROR_LOGGING_SPK.ERROR_PROC
                        (IC_PACKAGE_NAME    => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                        ,IC_PROCEDURE_NAME  => 'SPL_SPN_MISSING_EMR_AOE_DTL'
                        ,IN_BATCH_ID        => '100'
                        ,IC_MESSAGE_TEXT    => SQLERRM);
    END SPL_SPN_MISSING_EMR_AOE_DTL;
    Regards,
    BS2012.

    Hey Guys,
    I'm sorry, that I troubled you all. But I found the issue and solved it.
    The actual problem is residing at that max of that partition by query. I had a misconception that this query will always return a value which is positive number like 1,2 etc.
    But sometimes it's returning null as well. So the ref cursor is fetching nothing. Now I've modified my code and everything is working fine. Thanks for your help and support.
    Regards,
    BS2012.

  • Showing column value as counter in sql query - report

    I created a classic report with search bar based on an sql query. I would like to show the "notes" column in this query using some sort of counter and as a hyperlink to another section on the page (same idea as footnotes in a book). So if I have 10 rows and 5 have "notes". I should show 1,2,3,4,5 in the notes column for those rows and the number gets displayed as a link to another section listing the notes 1 through 5.
    I was thinking of creating a hidden page item as the counter with value of 0 and then in my query doing counter+1 but i'm not sure how to do this or if i can do that...
    If anyone can help or have any other ideas I would really appreciate it!!
    Thanks,
    Hindy

    Well, I'm doing this in VB and the subquery is dynamic. I'm passing an ADO recordset to a routine that sets up a listview to display the results. The number of columns selected can vary. My idea was to size the columns appropriately based on the size of the data. Within the display routine I could:
    sql = "SELECT "
    for i = 0 to oRS.Fields.Count - 1
    sql = sql & "MAX(LENGTH(" & i & ")), "
    next 'i
    sql = sql & "FROM (" & oRS.Source & ")"

  • How to create a display value and a return value for an item

    Hi! I have an item on a form. I want the default value for my item to be :":APP_USER", but the return value, to be the id of my user. I tried to create a PL/SQL Expression for the default item, but it doesn't work. What do I miss?
    It should be something like this, but it's not.
    begin
    select first_name || ',' ||last_name as "Employee",
    id_employee -- display value,return value
    from employees
    where id_employee = :APP_USER;
    end;
    Does anyone know?
    Thanks!
    Vitaly

    Hi VItaly,
    Display value and return value concept applies very well in case of a Combo box if i am correct, I don't know what type of item is your's.
    But any way, you can have a workaround like,
    Create a hidden item such that it's default value should be ID of the user which can be get from db by using :APP_USER.
    Use the this item for your references.
    I think this will meet your requirement.
    Thanks
    Kumaraswamy.

  • Bulk editor is not returning values for default properties

    ..even though the content nodes have a value for this property. CQ version is 5.5.
    I need to export a report of all user generated content from /content/usergenerated/content/<sitename>/en. This is the root path.
    The query parameter I have specified is "type:Rating". By default the "sling:resourceType" is selected. No other custom properties are specified in the interface.
    The search returns the nodes of this type, but the results do not return a value for the "sling:resourceType" for these nodes.

    It should work. Might be you do not have data. Is the results shown as zero records?

  • Return values for deadlock handling in BDB-SQLITE

    The whitepaper titled "Oracle Berkeley DB SQL API vs.SQLite API – A Technical Evaluation, November 2010" notes that
    all programs should be able to handle SQLITE_ERROR or SQLITE_LOCKED while handling potential deadlocks. From the sqlite errorcode page
    #define SQLITE_ERROR 1 /* SQL error or missing database */
    Further documentation lists SQLITE_ERROR as "This return value indicates that there was an error in the SQL that was passed into the sqlite_exec."
    Question 1:
    Why is BDB-SQLITE raising a generic errorcode "SQLITE_ERROR" when we have to abort a transaction and start all over again?
    While running my test application under intensive load, I have never gotten SQLITE_ERROR. I have gotten SQLITE_LOCKED and occasionally SQLITE_BUSY which is being handled in my code.
    Question 2:
    Can someone please confirm whether is this indeed is the expected behaviour?
    Thank you for your time.

    The behavior described in the white paper only applies to Berkeley DB version 5.0, versions 5.1 and beyond do not have this behavior.
    In DB-5.0 SQLITE_ERROR is returned when you attempt to use an explicit transaction that has already returned SQLITE_LOCKED. The reason for this is because in BDBSQL (as opposed to SQLite) SQLITE_LOCKED is returned when a transaction is forced to give up its locks because it has entered a state of deadlock with another transaction. Because the transaction has lost its locks it is invalid and cannot be used anymore other than to abort it, that is why SQLITE_ERROR is returned if you continue to use the transaction. In DB-5.1 and beyond SQLITE_LOCKED means only the last operation lost its locks and has been rolled back, the transaction is still good and can still be committed or be used to perform other operations.
    I hope this clears up your confusion.
    Lauren Foutz

  • How to replace a table name with an item value in report region SQL query?

    I've got a SQL query in a report region that goes like this:
    SELECT :P30_HIDDEN FROM v_dms_dataset
    GROUP BY :P30_HIDDEN
    P30_HIDDEN is populated from a textfield input. Why doesn't this work, and is there a way to achieve what I'm trying to do here? I really need the ability to dynamically generate SQL queries in this way.

    Ben - you could either:
    1. case when :P30_HIDDEN = 'COL1' then col1 else ... end
    in order to determine which column to select (only really useful if you have a small number of predetermined columns to select from), or
    2. generate the SQL dynamically.
    Set the report region to SQL Query (PL/SQL function body returning SQL query), then have something like:
    declare
    l_sql VARCHAR2(4000);
    begin
    l_sql := 'SELECT ' || :P30_HIDDEN || ' FROM v_dms_dataset
    GROUP BY ' || :P30_HIDDEN;
    return l_sql;
    exception
    etc.
    end;
    John.

  • How to restrict the attribute values for the user in query designer

    Hi All,
    I have a requirment where certain user would see certain vailes in the query desiner of the attribute.
    The requirment is we have planing material which is attribute of material
    When X user want to restrict the  values for planning material ,where he is able to see all the planning material.But who is not authorized for all the value.
    Ex: X user has authorization for see planning material 100,101,102. of material But when he try to restrict the planning material in query designer where is getting all values of planing material.
    Or
    is there way to blank the restriction help.so that he can't able to see values while restricting
    Please some one can advise me on it..

    Hi,
    Let me sum up:
    you have an object ZPLNMAT for the planning material
    you have the object 0MATERIAL for material and this object has ZPLNMAT as attribute.
    If you can restrict in the query designer, I suppose this attribute is then as navigationnal and also added in the multi-provider.
    The object ZPLNMAT is checked as relevant for authorization, and you set up a role with the attached values of ZPLNMAT this user should have access to.
    Are you sure the users are restricting on the ZPLNMAT object and not 0MATERIAL, because you should have everything now
    PY

  • How to default field values based on a sql query?

    I have a create form that has employee_id and supervisor_id fields. I am defaulting the employee_id based on the login info (no problem there). Now I want to default the supervisor_id also. Supervisor id is based on a sql query that takes the employee_id as a parameter for the where clause.
    How do I implement this in jDeveloper?

    I figured how to do this. I created a new EO, associated it to my base EO via association. Then put this code in the base EO's create() method:
    // Set supervisor id based on SupervisorEO
    SupervisorEOImpl supEO = getSupervisorEO();
    Number newSupId = supEO.getSupervisorId();
    setSupervisorId(newSupId);
    This seems to be the simplest.

  • Rounding value for direct procurement

    Hi,
    I an sourcing the same material from another plant within the same client. The materiale is some times purchased as a standard material using rounding value and going to stock. But, in some cases the material is procured as direct procurement. When purchasing for direct procurement will it then be possible not to use the rounding value but just order the exact quantity?
    thanks,
    Anders

    Hi Andres,
    I think, you do not need to take any action on this requirement.  SAP works the way you wanted, by standard.  For example, you have a setup with a vendor (may be via info record or material master itself may have rounding qty etc)...not a problem.  The parameters you use in material master will control for procurement process either triggered from planning (or production ) or manual purchases.  When you create a SO# and if it triggers a purchase requisition, it sends exact quantity required only, into the preqs.  By standard SAP config, the message about rounding rules is just warning.  I don't think you will be stuck with this message when you try to convert the 3rd party Preq to PO.  Even if there is a message, it must just warning. 
    Let me know with these inputs, if you test both types of PO#s, how it goes.
    Regards

  • Count the number of columns return in an user-input sql query

    I need to do something like this
    I let an user input a sql query and then execute it
    assuming the sql query is always correct, it will return a Resultset
    then a table will pop up to accomodate the number of columns the resultset will produce
    i'm stuck at the part on how to check how many columns of data will be return in the resultset

         ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
         ResultSetMetaData rsmd = rs.getMetaData();
         int numberOfColumns = rsmd.getColumnCount();

Maybe you are looking for

  • Netgear PCI Wireless Card in a Power Mac G4

    I have a Netgear PCI Wireless Card MA311 and I'm trying to make it work in my Power Mac G4. Does anyone know of any drivers I can use or any way I can get online with it? An alternate option is the Linksys Wireless-B USB adapter (ver.2.8) that I have

  • Populating a field using rule generator adapter

    Hi How a form field is populated using Rule Generator Adapter. And what we should do if we want the same field do not appear in the form, though it's value should be participate in task(create user update user etc). Thanks Kanchan

  • Weird : I redeemed $30 code, verified as unlocked by 3 reps, and then last rep said im not

    Fellas, Ive heard some werid crap happeniing with their gamers club unlocked $30/2 year renewal promotion. heres my story: after 4 hours, i finally got it redeemed. i verified i was unlocked with 3 different reps because each time i tried to make an

  • Von OS X 10.4.11 auf OS X 10.9 (Mavericks)

    Hallo zusammen. Ich habe Zuhause einen iMac der fünften Generation (7.1) stehen mit der Version 10.4.11. Über die Software-Aktualisierung komme ich nicht mehr in eine neuere Version. Kann mir jemand den richtigen Weg sagen, dass ich auf die neuste Ve

  • Apple photostream.exe a cessé de fonctionner

    Hello, I have installed Icloud a few months ago and everything was working. Since a few days, I have a message from windows whenever I open my computer that Photostream.exe doesn't work anymore. I didn't do anything on the computer. Would you know wh