Null values not returned

Friends it is strange that when I run a query like
SELECT * FROM EMPLOYEE_TABLE WHERE EMP_DEPT_CODE != '01'
doesnt return me records with EMP_DEPT_CODE = null ...which I thought is not = '01' !!
Please tell me why is this happening.I am looking for materials and they are not at all helpful.
Thanks
MS

NULL is not equivalent to != '01' because a NULL is unknown
Here's an exercise
SQL> select * from test_1;
FLD1
01
02
03
4 rows selected.
SQL> select * from test_1 where fld1 !='01';
FLD1
02
03
2 rows selected.
SQL> select * from test_1 where nvl(fld1,'99') != '01';
FLD1
02
03
3 rows selected.
SQL>

Similar Messages

  • How to clear alert when a null value is returned for a metric column?

    Hey all,
    Recently, I've encountered a problem about clearing alert when a null value is returned for a metric column. From Oracle official doc, it seems that NO_CLEAR_ON_NULL could be used for this propose. However, it doesn't.
    Here is the line from doc, you can see when NO_CLEAR_ON_NULL is set as FALSE, the null value will clear alert, and the default value for NO_CLEAR_ON_NULL is FALSE.
    NO_CLEAR_ON_NULL: This attribute is used to control severity clearing when a null value is returned for a metric column. It defaults to FALSE with the behavior that a null value ends up clearing previous alert severities. With a TRUE value for this attribute, null values will be skipped in severity evaluations without clearing the severity.
    TRUE | FALSE (default)
    STATELESS_ALERTS: This attribute if set to TRUE indicates to EM that alerts on this
    column will not have corresponding clears. This allows the UI to decide whether to
    allow users to manually clear alerts on this column.
    TRUE | FALSE (default)Here is my code for the metric,
    -- meta definition
      <Metric NAME="Flushing_Table_Overtime" TYPE="TABLE" HELP="NO_HELP">
        <Display>
          <Label NLSID="mmd_ip">Flushing Table Overtime</Label>
        </Display>
        <TableDescriptor>
          <ColumnDescriptor NAME="State" TYPE="STRING" IS_KEY="FALSE">
            <Display>
              <Label NLSID="mmd_rc_State">State</Label>
            </Display>
          </ColumnDescriptor>
          <ColumnDescriptor NAME="Time_Seconds" TYPE="NUMBER" IS_KEY="FALSE">
            <Display>
              <Label NLSID="mmd_fto_Time_Seconds">Flush Table consume Seconds</Label>
            </Display>
          </ColumnDescriptor>
        </TableDescriptor>
        <ExecutionDescriptor>
          <GetTable NAME="MysqlProcessAggregate"/>
          <GetView NAME="v_flushing_tables" FROM_TABLE="MysqlProcessAggregate">
            <Column NAME="State" />
            <Column NAME="Time_Seconds" />
            <Filter COLUMN_NAME="State" OPERATOR="EQ">Flushing tables</Filter>
          </GetView>
        </ExecutionDescriptor>
      </Metric> 
    -- coll definition
      <CollectionItem NAME="Flushing_Table_Overtime">
        <Schedule>
          <IntervalSchedule INTERVAL="10" TIME_UNIT="Min" />
        </Schedule>
        <MetricColl NAME="Flushing_Table_Overtime">
          <Condition COLUMN_NAME="Time_Seconds"
                     CRITICAL="30" OPERATOR="GT"
                     MESSAGE="There is a Flushing Table command has exceeded %critical_threshold% seconds."
                     MESSAGE_NLSID="msg_Flushing_Table_Overtime" />
        </MetricColl>
      </CollectionItem>If this feature can not be achieved by coding XML, then is there a way to clear alert with Oracle Package? I have confirm neither sysman.em_severity.delete_current_severity nor sysman.em_severity.clear_alerts could do it.
    Would anyone give me a hint?
    Thanks in advance!
    Best wishes,
    Satine

    > I am executing in this manner
    var RESULT BOOLEAN;
    BUT I am unable to create variable with boolean data type.
    WARNING. Do not confuse SQL*Plus with PL/SQL.
    There is no variable command in PL/SQL. PL/SQL does support the boolean data type.
    There is a variable command in SQL*Plus. It allows one to define bind variables. It is limited in the data types it supports. It does not support boolean as a bind variable type.
    SQL*Plus is a CLI (Command Line Interface) client tool. It has a very limited vocabularly, allowing you to (primarily):
    a) configure its local environment (e.g. size of the terminal ito number of characters per lines)
    b) configure its bevahiour (e.g. spooling data to a file)
    c) defining substitution and bind variables
    And that's it. It is not PL/SQL. It is not SQL. It takes the PL/SQL and SQL you enter, and submit that to the Oracle server. (it does some basic parsing of the data to substitute variables and bind variables where applicable)
    Do not confuse this CLI client tool with the server side PL/SQL or SQL languages.

  • NULL value not validated for a Required field

    Hi,
    I have added a MessageLovInput item to the expense header page (/oracle/apps/ap/oie/entry/header/webui/GeneralInformationPG), and have made the Required Value to True. But I do not get any error when I navigate to the next page without populating the field. If I enter in incorrect information, it validates it against the LOV, but not for null values.
    Any pointers to make the field validate NULL values?
    Thanks,
    Ashish

    Yeah.. I can see the Required field indicator (*) next to the field. I have tried with all the values (uiOnly, ValidatorOnly, Yes etc.), but it does not validate NULL values.
    I'll try to handle this in the controller, but would prefer if this can be done by personalization.
    Ashish

  • Null values not getting

    Hi all,
    Below query is not getting null values. Please help me to get the null values.
    SELECT
    T5.name,
    T4.VOD_NAME,
    count(T6.ATTRIB_03)
    FROM
    SIEBEL.S_VOD_VER T1
    INNER JOIN VOD T2 ON T1.VOD_ID = T2.ROW_ID
    LEFT OUTER JOIN ISS_OBJ_DEF T3 ON T1.VOD_ID = T3.VOD_ID
    LEFT OUTER JOIN VOD T4 ON T3.PAR_VOD_ID = T4.OBJECT_NUM
    LEFT OUTER JOIN PROD_INT T5 ON T2.OBJECT_NUM = T5.CFG_MODEL_ID
    left outer join PROD_INT_XM T6 ON T5.row_id= T6.PAR_ROW_ID
    WHERE
    T4.vod_name = 'Componentes' and T1.CURR_VER_FLG='Y' and T3.last_vers = 0 and T6.TYPE = 'GALA_PROD_OPER'
    group by T5.name,T4.VOD_NAME having count(T6.ATTRIB_03) != 7
    Edited by: user9522927 on Jun 16, 2010 11:44 PM
    Edited by: user9522927 on Jun 16, 2010 11:44 PM

    Hi,
    As you do the inner join it will not retrieve the null rows.
    See the below illustration:
    SQL> select * from a;
    ID
    12
    12
    10
    11
    13
    7 rows selected.
    SQL> select * from b;
    ID
    12
    13
    45
    25
    36
    9 rows selected.
    ********* no null rows retrieved for inner join below ******************
    SQL> select a.id from a inner join b on a.id=b.id;
    ID
    12
    12
    13
    ********* null rows retrieved for outer join below **************
    SQL> select a.id from a left outer join b on a.id=b.id;
    ID
    12
    12
    13
    10
    11
    7 rows selected.
    Edited by: adnanKaysar on Jun 17, 2010 1:04 PM

  • Dimension with one value not returned

    Hi all,
    I have a question related with the dimensions returned by the Endeca search results.
    There is one dimension, which has only one single value for all records, that is not returned with the Endeca search results.
    Do you know why can this happen?
    Many thanks,
    Alejandra

    Alejandra,
    Yes. Guided navigation only returns "valid refinements" for a given navigation state. In other words, after each refinement is made, the Endeca Server recalculates which refinements are now valid. Valid refinements are those that, if selected, will filter the result set further. If every record in a result set carries the same dimension with the same value, the Endeca Server will not return it since it is not valid as a refinement. If every record has it, selecting it would not refine the results further -- rather, it would return the same collection of records that is already displayed effectively accomplishing nothing.
    I suspect that EVERY record in your Endeca Server has the same value for a dimension and, by design, the Endeca Server is not returning it in guided navigation.
    HTH,
    Dan
    http://branchbird.com

  • Null values not allowed in object-parameter for esb proxy invocation

    When I create a proxy service for my esb webservice and try to invoke this service from my ADF Application I was always getting the exception 'unexpected null value for literal data'.
    I've figured out what went wrong through debugging the proxy-classes of the esb-service.
    You need to define an input-value for each attribute of which your object is constituted. After I've initialized each variable in the object, which is the input-parameter of my esb proxy, everything works fine.

    When I create a proxy service for my esb webservice and try to invoke this service from my ADF Application I was always getting the exception 'unexpected null value for literal data'.
    I've figured out what went wrong through debugging the proxy-classes of the esb-service.
    You need to define an input-value for each attribute of which your object is constituted. After I've initialized each variable in the object, which is the input-parameter of my esb proxy, everything works fine.

  • Null values not displaying in the LOV on the parameter form.

    My report works perfect while in Oracle Reports 10g, however when I move it to our menu (Oracle Forms 10g) it does not display the null in the LOV on the parameter form.
    This report allows the the user to select by inspector or district or everyone for certain dates.
    Ex: I have 4 parameter fields. The user must enter the start & end dates and either the Inspector or the district or leave the inspector or district null to run for everyone.
    The district LOV is :
    select dnr_section_code, description from dnr_section_code where dnr_section_code in ('29', '38','52')
    UNION
    select null, 'All' from dual
    order by 2 asc ;
    The inspector LOV is:
    select null , 'All' from dual
    UNION
    select person_seq, first_name||' '||last_name inspector from vw_eng_inspectors
    order by 2 asc
    In my Data Model query I use the :
    My select
    from tables
    where clause
    +
    ----by inspector
    and (prod_fac_inspections.person_seq_inspector =
    nvl(:inspector,prod_fac_inspections.person_seq_inspector))
    ---by district
    and
    (d.dnr_section_code = nvl(:district,d.dnr_section_code)
    and d.person_seq = prod_fac_inspections.person_seq_inspector)
    Again, it works perfect in Reports! It eliminates having 3 reports on the menu. This one report gives the user the option of selecting dynamic parameters.
    Also, I got so frustrated, that I went a different route of using a default where.
    I am stuck with the error of ORA:00933 SQL command not ended properly
    1=1
    I set the initial value to 1=1 and it does not like it.
    I am stuck!
    DB = Oracle Database 10g Enterprise Edition Release 10.2.0.2.0

    Hi Krishna,
    I'm not sure I understand the probelm.
    A progress bar control only displays numeric values. When do you mean by "unassigned values"? What would you expect to be presented?
    Best regards,
    Udi

  • Null values not equal

    I'm writing some reports that are pulling possible duplicates out of a table. I have to base the query on several nullable columns in my table. I was tired of writting (a.column1 = b.column1 or (a.column1 IS NULL and b.column1 IS NULL)) for every column being compared so i wrote the following function:
    CREATE OR REPLACE FUNCTION equivalent (
    in_one     VARCHAR2,
    in_two     VARCHAR2)
    RETURN NUMBER IS
    BEGIN
    IF in_one = in_two THEN
         RETURN 1;
    ELSIF in_one IS NULL AND in_two IS NULL THEN
              RETURN 1;
    END IF;
         RETURN 0;
    END equivalent;
    Now I just pass equivalent(a.column1, b.column1) = 1. The problem is that this seems to take considerably longer. Does anybody know why or have a suggestion to speed things up?
    Any help would be appreciated.
    Thakns in advance,
    Chris S.

    There is always an overhead to calling PL/SQL. If you're running on 9i you could try compiling your function as native C; that way it will run almost as fast as kernel code. If you want to save yourself a bit of typing you could try this:
    nvl(a.column1, 'Chris is ace!!') = nvl(b.column1, 'Chris is ace!!') Of course, you need to substitute some more buisness-like but equally non-valid phrase for 'Chris is ace!!'
    - er - if you know what I mean. And it still won't use any indexes.
    Cheers, APC

  • Match code value not returned...

    Hi all,
    Since a hot package upgrade i have a strange things on the system.
    On TC VA01, when end user want to select a meterial ID (with F4), the match code appears correctly with the material list but when user double-click on the item line, the material ID is not send to parent screen.
    Any suggestion about something in parameters or others ?
    Thx.

    You can check the known side effects of Hotpack from service.sap.com .
    Check the Note - 651948 to get detailed information on this.
    For your version, SAP might have suggested some note for this issue.

  • Using Convert to handle NULL values for empty Strings ""

    After having had the problem with null values not being returned as nulls and reading some suggestion solution I added a converter to my application.
      <converter>
        <converter-id>NullStringConverter</converter-id>
        <converter-for-class>java.lang.String</converter-for-class>
        <converter-class>com.j2anywhere.addressbookserver.web.NullStringConverter</converter-class>
      </converter>
    ...I then implemented it as follows:
      public String getAsString(FacesContext context, UIComponent component, Object object)
        System.out.println("Converting to String : "+object);
        if (object == null)
          System.out.println("READING null");
          return "NULL";
        else
          if (((String)object).equals(""))
            System.out.println("READING null (Second Check)");
            return null;       
          else
            return object.toString();
      public Object getAsObject(FacesContext context, UIComponent component, String value)
        System.out.println("Converting to Object: "+value+"-"+value.trim().length());
        if (value.trim().length()==0 || value.equals("NULL"))
          System.out.println("WRITING null");
          return null;
        else
          return value.toUpperCase();
    ...I can see that it is converting my values, however the object to which the inputText fields are bound are still set to empty strings ""
    <h:inputText size="50" value="#{addressBookController.contactDetails.information}" converter="NullStringConverter"/>Also when reading the object values any nulls are already converted to empty strings before ariving at the converter. It seems that there is a default converter handling string values.
    How can I resolve this problem as set nulls when the input value is an empty string other then checking every string in my class individually. I would really hate to pollute my object model with empty string tests.
    Thanks in advance
    Edited by: j2anywhere.com on Oct 19, 2008 9:06 AM

    I changed my converter as suggested :
      public Object getAsObject(FacesContext context, UIComponent component, String value)
        if (value == null || value.trim().length() == 0)
          if (component instanceof EditableValueHolder)
            System.out.println("SUBMITTED VALUE SET TO NULL");
            ((EditableValueHolder) component).setSubmittedValue(null);
          else
            System.out.println("COMPONENT :"+component.getClass().getName());
          System.out.println("Converting to Object: " + value + "< to " + null);
          return null;
        System.out.println("Converting to Object: " + value + "< to " + value);
        return value;
      }which produces the following output :
    SUBMITTED VALUE SET TO NULL
    Converting to Object: < to null
    Info : The INFO line however comes from my controller object where I print out the set value :
    package com.simple;
    import java.util.ArrayList;
    import java.util.List;
    public class Controller
      private String information;
      /** Creates a new instance of Controller */
      public Controller()
        System.out.println("Createing Controller");
        information = "Constructed";
      public String process()
        System.out.println("Info : "+getInformation());
        return "processed";
      public String reset()
        setInformation("Re-Constructed");
        System.out.println("Info : "+getInformation());
        return "processed";
      public String setNull()
        setInformation(null);
        System.out.println("Info : "+getInformation());
        return "processed";
      public String getInformation()
        return information;
      public void setInformation(String information)
        this.information = information;
    }I also changes my JSP / JSF page a little. Here is the updated version
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <%--
        This file is an entry point for JavaServer Faces application.
    --%>
    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
      </head>
      <body>
        <f:view>
          <h:form>
            <h:inputText id="value" value="#{Controller.information}"/>
            <hr/>
            <h:commandLink action="#{Controller.process}">
              <h:outputText id="clicker" value="Process"/>
            </h:commandLink>             
            <hr/>
            <h:commandLink action="#{Controller.reset}">
              <h:outputText id="reset" value="Reset"/>
            </h:commandLink>             
            <hr/>
            <h:commandLink action="#{Controller.setNull}">
              <h:outputText id="setNull" value="Set Null"/>
            </h:commandLink>             
          </h:form>
        </f:view>
      </body>
    </html>The converter is declared for the String class in the faces configuration file. From the log message is appears to be invoked, however the object is not set to null.
    I tested this with JSF 1.2_04-b20-p03 as well as 1.2_09-b02-FCS.
    any other suggestions what could be causing this.

  • Oracle BI Write Back on NULL values  - Write Back Error

    Hi together,
    Write Back Error
    An error occurred while writing to the server. Please check to make sure you have entered appropriate values. If the problem persists, contact your system administrator
    I receive this message when I try to make a update of an null value in the database.
    update value on value or value to null works fine. So the XML Message is working on production.
    Is this a BUG?
    Regards,
    Stefan
    <?xml version="1.0" encoding="utf-8" ?>
    <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
    <WebMessageTable lang="en-us" system="WriteBack" table="Messages">
    <WebMessage name="SetWriteBackGKV">
    <XML>
    <writeBack connectionPool="QS_DWH_DB">
    <insert> </insert>
    <update>UPDATE QS_DWH.CKVB_HR_EXTERNAL SET CKVB_HR_EXTERNAL.GKV_SICKNESS_PERC = '@{c7}' WHERE CKVB_HR_EXTERNAL.D_TIME ='@{c5}'</update>
         </writeBack>
    </XML>
    </WebMessage>
    </WebMessageTable>
    </WebMessageTables>

    Hi,
    http://gerardnico.com/wiki/dat/obiee/write_back -- recheck your configuration following this link step by step with screen shots.
    Note : The Problem Occurred two ways,
    1. Problem your XMl Script
    2. If null value not present in your columns in your table in the database.The problem is occured.
    please check below steps.
    1. Are you using OCI or ODBC in your connection pool? Try it with OCI Call Interface 11g.
    2.Remove the commit tag from the XML file.
    <postUpdate>COMMIT</postUpdate>
    =============================================================================================================
    This xml file working for me.
    Insert--
    A couple of small adjustments got your XML to work here:
    <?xml version="1.0"; encoding="utf-8"?>
    <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1";>
    <WebMessageTable lang="en-us" system="WriteBack" table="Messages">
    <WebMessage name="WriteBack">
    <XML>
    <writeBack connectionPool="Connection Pool">
    <insert> INSERT INTO FACT (PRICE,PRODUCT_KEY,REGION_KEY,SALE_UNIT,TIMEKEY,SALES_QUOTA)
    values (@{c7},@{c8},@{c9},@{c10},@{c11},@{c5} ) </insert>
    <update> </update>
    </writeBack>
    </XML>
    </WebMessage>
    </WebMessageTable>
    </WebMessageTables>
    The <writeBack> tag is written with a lower case "w".
    The "connetionPool" needs an upper case "P".
    Update--
    I think that you have to specify also an SQL statement for the update tag, for example:
    <?xml version="1.0"; encoding="utf-8"?>
    <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1";>
    <WebMessageTable lang="en-us" system="WriteBack" table="Messages">
    <WebMessage name="pmet_update">
    <XML>
    <writeBack connectionPool="PMTCOG">
    <insert> select null from dual</insert>
    <update> UPDATE XREF_PMET_URL SET URL= '@{c1}' WHERE API='@{c0}'</update>
    </writeBack>
    </XML>
    </WebMessage>
    </WebMessageTable>
    </WebMessageTables>
    The witeback wants for both the tags (<insert></insert> and <update></update>) an SQL Statement.
    Hope this help's
    Thanks
    Satya

  • NULL value in LOV not displaying in Viewer as NULL

    Discoverer Viewer: 10.1.2.54.25 CP4
    I have a list of values ('A','B','C',NULL).
    In desktop the drop down shows
    A
    B
    C
    NULL
    However in viewer I get
    A
    B
    C
    When I select the area just under C, which I presume to be NULL, it allows me to move it over. However when I'm ready to run the query, it informs me that I have not selected a value. I can manually key in NULL and the query will execute without a hitch.
    What am I doing wrong?
    Thanks,
    Jamie

    I'm not sure I understand exactly what you need.
    But your LOV show the DNAME and return the DEPTNO, so of course the LOV will return the DEPTNO even if the DNAME is null.
    To return null if the DNAME is null, indeed you can use decode but in the return value :
    select dname d, decode(dname,null,null,deptno) r
    from test_dept
    order by 1

  • T-SQL: SET Statement Using a Case Statement is not returning a value

    SQL VER:  2008
    Please see the attached screenshot from SSMS.  The Set statement  below is not returned a value or may be returning a zero value.  The AllocPercent field is set to zero in code preceeding this Update Statement:
    AllocPercent
    =
    CASE
    WHEN AllocBase
    IS
    NULL
    OR AllocBase
    = 0
    THEN 0
    ELSE PM_Input/AllocBase
    END
    As you can see by the screen shot from the Select Statement that is displaying the results after the Update Statement is completed, the value of AllocPercent is = 0 even though all the values necessary for it to compute a value > 0 are present in the
    table.  Incidentally, the values in both the AllocBase and PM_Input fields are the same before the Update Statement is ran, as shown in the Select ran after the Update Statement.
    I have ran this type of code several times with never a problem.  This seems really simple, but I just can't seem to get it to compute. 
    Any help would be greatly appreciated.
    Regards,
    bob sutor
    Bob Sutor

    Yep--This statement is running in a Stored Procedure and inside its own block statement.
    I did get a response that suggested I change the SET statement as follows, that worked:
    AllocPercent
    = CASE WHEN AllocBase IS NULL OR AllocBase = 0 THEN 0.00 ELSE cast(PM_Input*1.0/AllocBase*1.0
     as decimal(6,2)) END
    Your response did get me thinking which was great!  I appreciate your help.
    Regards,
    ...bob sutor
    Bob Sutor

  • SELECT statement not returning NULL records

    I have the following SELECT statement:
    SELECT *
    FROM RPT_DS1_CNT_CAT
    WHERE DUPS_SAME <> 'N/A';
    I also tried:
    SELECT *
    FROM RPT_DS1_CNT_CAT
    WHERE DUPS_SAME != 'N/A';
    Same results - There ARE Null DUPS_SAME values
    which are not being selected. I get NO results.
    When I execute this, I do get NULL values.
    SELECT *
    FROM RPT_DS1_CNT_CAT
    WHERE DUPS_SAME IS NULL;
    How can I ensure that I get all non - 'N/A' records
    if it won't pick up the nulls? Is there a function
    I can use or a different wording? I do want to use
    != or <> because there may be other values besides
    'N/A' such as 'YES' or 'NO' and they may be null or
    filled with spaces.

    The expression
    NVL(DUPS_SAME,'') is meaningless. You're saying "If DUPS_SAME is NULL, return the empty string, which is NULL, otherwise return DUPS_SAME." If you're going to use NVL, the string that gets returned if the column is NULL should be non-NULL, i.e.
    NVL(DUPS_SAME,'DUPS_SAME was NULL') Your query should, as others have pointed out, either be
    SELECT *
      FROM rpt_ds1_cnt_cat
    WHERE dups_same <> 'N/A' OR dups_same IS NULLor
    SELECT *
      FROM rpt_ds1_cnt_cat
    WHERE NVL(dups_same, 'DUPS_SAME is NULL') <> 'N/A' Either of these return the same results as your query but they're going to be far clearer for whoever needs to maintain the code. There may be performance differences as well if DUPS_SAME is indexed depending on the data distribution...
    Justin

  • Standar ws ProjectByPartyQueryResponse_In is not returning any values

    Hi gurus,
      I'm trying to use the standar webservice ProjectByPartyQueryResponse_In in our landscape in order to get all the projects related to the person responsible for the project but the web service is not returning any values.
    When I execute the service -using soapui- with the following values (or any other value for that matters):
    <PartyID>20000143</PartyID>
    <PartyRoleCode>ZA</PartyRoleCode>
    The web service always returns :
           <Log>
                <BusinessDocumentProcessingResultCode>5</BusinessDocumentProcessingResultCode>
                <MaximumLogItemSeverityCode>3</MaximumLogItemSeverityCode>
                <Item>
                   <TypeID>002(ECC_SE_COMMON)</TypeID>
                   <SeverityCode>3</SeverityCode>
                   <Note>No records returned for ZA 0020000143</Note>
                </Item>
             </Log>
    The party Id exists and also de party role code and there is at least one project that has that party with that role. I'm sure because I use other web service to find a project by id and in the result the project has the <Party> section with those values.
    I was looking for solutions, notes, threads in forums with no success, then i decided to debug the webservice and I did find the following line in the webservice code.
      SELECT objnr INTO TABLE it_data FROM ihpa
      WHERE  parvw = role_code AND
             parnr = party_id AND
             obtyp = 'PDN'.
    when that line executes the select always returns 0 values, then I look in the table IHPA using the SE16 without any filter and I found that my records exists!! but the select does not get it. I was wondering why the select is not working and then I filter the data in the SE16 using the same values that the query does
    for example:
    PARVW= ZA
    PARNR = 20000143
    OBTYP = PDN
    And I was surprised when the SE16 did not found any value even I was seeing in the previous screen with no filters!!!! And I supouse thats why the webservice is not working. I started making filters one by one, for example firts filtering just de PARVW = ZA and works, but when I filter just the PARNR =  20000143 the SE16 can't find any value, just when I put an * at the end of the number the SE16 returns all the values expected, Im guessing that the fields in the database has blanks at the end but this is a standar table and a standar program.
    Have any of you had the same problem? is there anything that I can do? does anyone knows if this is an unkown bug? becaus I could'n find any note on the marketplace.
    Any help would be appreciated.
    Gustavo Balboa

    Hi!
      The problem were solved but not using the Badi, because the badi only let you change the value of the var party_id and that var is declared as PARNR (of type numeric with length 10), and no mater wat you do the two 00 can´t be removed.
      We solved the problem with an enhancement point in the code at the method "party_get_data", look at the beginin and at the end. We just change the type of var used for party_id.. now we use a CHAR one insted the numeric used by the original code.
    And we repeat the select...
    Thank you very much for the help.
    METHOD party_get_data.
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$SE:(1) Class CL_PRS_PROJECTPRJPARTYQR, Method PARTY_GET_DATA, Start                                                                                A
    $$-Start: (1)----
    $$
    ENHANCEMENT 1  ZPARTY_GET_DATA.    "active version
    DATA : WA_PARNR TYPE I_PARNR.
    DATA : WA_CHPAR(10) TYPE C.
    ENDENHANCEMENT.
    $$-End:   (1)----
    $$
      DATA :  temp_object_number TYPE ihpa-objnr,
              field1 TYPE char50,
              field2 TYPE char50,
              field_role TYPE char50,
              field_party TYPE char50,
              st_object_number TYPE TABLE OF bapiprexp.
      DATA : it_data TYPE TABLE OF st_data,
             wa_data LIKE LINE OF it_data,
             itab TYPE TABLE OF st_data,
             wa LIKE LINE OF itab,
             wa_project_details LIKE LINE OF project_details,
             null.
    Select Object number based on input Party and Role
      SELECT objnr INTO TABLE it_data FROM ihpa
      WHERE  parvw = role_code AND
             parnr = party_id AND
             obtyp = 'PDN'.
    Select Project ID based on input Object number
      LOOP AT it_data INTO wa_data.
        SELECT pspid post1 FROM proj INTO CORRESPONDING FIELDS OF wa_data
        WHERE  objnr = wa_data-pspid.                         "#EC CI_NOFIELD
        ENDSELECT.
        MOVE-CORRESPONDING wa_data TO wa.
        APPEND wa TO itab.
      ENDLOOP.
      IF sy-subrc <> 0.
        field_role = cl_wd_utilities=>get_otr_text_by_alias( 'PLM-SE_PRS_XI_PROXY/ROLE_CODE' ) .
        field_party = cl_wd_utilities=>get_otr_text_by_alias( 'PLM-SE_PRS_XI_PROXY/PARTY_ID' ) .
        CONCATENATE  field_role role_code_external INTO field1.
        CONCATENATE  field_party party_id INTO field2.
        MESSAGE e002(ecc_se_common) WITH field1 field2 INTO null.
        CALL FUNCTION 'PS_BAPI_MESSAGE_APPEND'
          TABLES
            return = party_return.
      ELSE.
        MESSAGE s082(ops_se_prs) INTO null.
        CALL FUNCTION 'PS_BAPI_MESSAGE_APPEND'
          TABLES
            return = party_return.
      ENDIF.
      LOOP AT itab INTO wa.
        MOVE-CORRESPONDING wa TO wa_project_details.
        APPEND wa_project_details TO project_details.
      ENDLOOP.
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$SE:(2) Class CL_PRS_PROJECTPRJPARTYQR, Method PARTY_GET_DATA, End                                                                                A
    $$-Start: (2)----
    $$
    ENHANCEMENT 2  ZPARTY_GET_DATA.    "active version
      WA_CHPAR = party_id.
      SHIFT WA_CHPAR BY 2 PLACES.
      CLEAR party_return.
      REFRESH party_return.
      SELECT objnr INTO TABLE it_data FROM ihpa
      WHERE  parvw = role_code AND
             parnr = WA_CHPAR AND
             obtyp = 'PDN'.
    Select Project ID based on input Object number
      LOOP AT it_data INTO wa_data.
        SELECT pspid post1 FROM proj INTO CORRESPONDING FIELDS OF wa_data
        WHERE  objnr = wa_data-pspid.                         "#EC CI_NOFIELD
        ENDSELECT.
        MOVE-CORRESPONDING wa_data TO wa.
        APPEND wa TO itab.
      ENDLOOP.
      IF sy-subrc <> 0.
        field_role = cl_wd_utilities=>get_otr_text_by_alias( 'PLM-SE_PRS_XI_PROXY/ROLE_CODE' ) .
        field_party = cl_wd_utilities=>get_otr_text_by_alias( 'PLM-SE_PRS_XI_PROXY/PARTY_ID' ) .
        CONCATENATE  field_role role_code_external INTO field1.
        CONCATENATE  field_party party_id INTO field2.
        MESSAGE e002(ecc_se_common) WITH field1 field2 INTO null.
        CALL FUNCTION 'PS_BAPI_MESSAGE_APPEND'
          TABLES
            return = party_return.
      ELSE.
        MESSAGE s082(ops_se_prs) INTO null.
        CALL FUNCTION 'PS_BAPI_MESSAGE_APPEND'
          TABLES
            return = party_return.
      ENDIF.
      LOOP AT itab INTO wa.
        MOVE-CORRESPONDING wa TO wa_project_details.
        APPEND wa_project_details TO project_details.
      ENDLOOP.
    ENDENHANCEMENT.
    $$-End:   (2)----
    $$
    ENDMETHOD.

Maybe you are looking for