Problem with Bapi_po_Getdetail return values

We have developed a web service in asp.net to get the details of a particular purchase order number calling Bapi_po_Getdetail. The input parameters that we pass are:
string  ITEMS = “X”
string PURCHASEORDER= “<purchase order number>”
But when we debug and check the return values from the bapi, BAPIEKPO Table doesn’t have any data, it is null.
Could someone help us, please?

Please initialize the BAPIEKPOTable bedore call. Passing null allways returns null.
NCo:
string ITEMS = “X”
string PURCHASEORDER= “<purchase order number>”
BAPIEKPOTable result = new BAPIEKPOTable();
proxy.Bapi_po_Getdetail(ITEMS, PURCHASEORDER, ref result);
Soap Processor / Web Service Wizard
string ITEMS = “X”
string PURCHASEORDER= “<purchase order number>”
BAPIEKPO[] result = new BAPIEKPO[0];
proxy.Bapi_po_Getdetail(ITEMS, PURCHASEORDER, ref result);

Similar Messages

  • Problem with the return value from a tablemodel after filtering

    I have a form (consult that return a value) with a jtextfield and a jtable. when the user types in the textfield, the textfield call a method to filter the tablemodel.
    everything works fine, but after filtering the model, the references are lost and the return value does not match with the selected row.
    I read that convertColumnIndexToView, convertRowIndexToView, vertColumnIndexToModel and convertRowIndexToModel, solve the problem, but I used all and nothing.
    **** This is the code to fill the jtable
    DefaultTableModel modelo=(DefaultTableModel)this.jTable1.getModel();
    while(rs.next()){
    Object[] fila= new Object[2];
    fila[0]=rs.getObject("id_categoria");
    fila[1]=rs.getObject("nombre");
    modelo.addRow(fila);
    this.jTable1.getColumnModel().removeColumn(this.jTable1.getColumnModel().getColumn(0));
    // I delete the first column because is a ID, I dont want that the user see it. the value is only for me**** this is the method to filter from the jtextfield
    private void FiltrarJtable1() {
    TableRowSorter sorter = new TableRowSorter(this.jTable1.getModel());
    sorter.setRowFilter(RowFilter.regexFilter("^"+this.jTextField1.getText().toUpperCase(), 1));
    this.jTable1.setRowSorter(sorter);
    this.jTable1.convertRowIndexToModel(0);
    }*** this is the method that return the ID (id_categoria) from the tablemodel
    private void SeleccionarRegistro(){
    if(this.jTable1.getSelectedRow()>-1){
    String str_id =this.jTable1.getModel().getValueAt(this.jTable1.getSelectedRow(),0).toString();
    int_idtoreturn=Integer.parseInt(str_id);
    this.dispose();
    }else{
    JOptionPane.showMessageDialog(this,"there are no records selected","Warning!",1);
    }Who I can solve this problem?

    m_ilio wrote:
    I have a form (consult that return a value) with a jtextfield and a jtable. when the user types in the textfield, the textfield call a method to filter the tablemodel.
    everything works fine, but after filtering the model, the references are lost and the return value does not match with the selected row.
    I read that convertColumnIndexToView, convertRowIndexToView, vertColumnIndexToModel and convertRowIndexToModel, solve the problem, but I used all and nothing.
    You're right in that you have to use convertRowIndexToModel(), but you are using it wrong. That method takes as input the index of a row in the view, i.e. the table, and returns the corresponding row in the underlying TableModel. No data is changed by the call, so this:
    this.jTable1.convertRowIndexToModel(0);is meaningless by itself.
    What you need to do is the following:
    int selectedRow = this.jTable1.getSelectedRow(); // This is the selected row in the view
    if (selectedRow >= 0) {
        int modelRow = this.jTable1.convertRowIndexToModel(selectedRow); // This is the corresponding row in the model
        String str_id =this.jTable1.getModel().getValueAt(modelRow, 0).toString();
    }Hope this helps.

  • Webservice : problem with Base64 returned value

    Hello all,
    We are calling a webservice from a Flex2 application.
    When the returned value does not contain accentuated letters,
    we receive the value "as-is", everything is OK.
    When there is at least one accent, the result is
    automatically Base64 encoded by the server, and the
    xsi:type="n2:base64 is specified in the XML answer.
    The problem is that Flex2 does not Base64 decode the returned
    string, ans we cannot get the right value.
    We do not think that the problem is on the server, because we
    tryied to use 2 other webservice clients, and they worked well.
    We wonder if Flex2 can handle Base64 encoding on Webservice
    results or not.
    We thought abut using the Base64 decoder class, but it won't
    work because the result if not *always* Base64 encoded (depending
    if it contains some chars or not).
    Is there any solution to this issue ? If it can help, I paste
    the XML returned by the server at the end of this message.
    Thank you for your help.
    MiF
    <?xml version="1.0" encoding="UTF-8" ?>
    <env:Envelope xmlns:xsd="
    http://www.w3.org/2001/XMLSchema"
    xmlns:env="
    http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="
    http://www.w3.org/2001/XMLSchema-instance">
    <env:Body>
    <n1:GetArticleResponse xmlns:n1="urn:ActionWebService"
    env:encodingStyle="
    http://schemas.xmlsoap.org/soap/encoding/">
    <return xmlns:n2="
    http://schemas.xmlsoap.org/soap/encoding/"
    xsi:type="n2:base64">PD94bWwgdmVyc2lvbj0iMS4xIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8
    YXJ0aWNsZXM+CiAgPGFydGljbGU+CiAgICA8aWQ+MTwvaWQ+CiAgICA8Y29k
    ZT5NaXRjaDwvY29kZT4KICA8L2FydGljbGU+CiAgPGFydGljbGU+CiAgICA8
    aWQ+MjwvaWQ+CiAgICA8Y29kZT5Qb2xvPC9jb2RlPgogIDwvYXJ0aWNsZT4K
    ICA8YXJ0aWNsZT4KICAgIDxpZD4zPC9pZD4KICAgIDxjb2RlPkvpa+k8L2Nv
    ZGU+CiAgPC9hcnRpY2xlPgo8L2FydGljbGVzPgo=</return>
    </n1:GetArticleResponse>
    </env:Body>
    </env:Envelope>

    You should use cast_to_varchar2 regardless what is source of base64_encode.
    Because base64-value consists of single byte ASCII-characters.

  • LOV problem with multiple return values.

    I created a ViewObject and in it a transient attribute.
    I create a ViewAccessor for another field and a LOV for it (default InputText with Lov Value).
    In List Return Values I added also my tranient attribute in order to receive another attribute from the accesor VO.
    When I run it from the Application browser I see my transient attribute emtpty even if the "source" attribute is not empty.
    If I change the value from the LOV the source value changes bit the transient is still empty.
    What's wrong ?
    Tks
    Tullio

    Repost.

  • Difficulty in creating a chart by using a function with a returned value

    Hi,
    I am having a problem in using own function to create chart a with a returned value as the chart. If not using the returned value, it works fine.
    Is this a known issue?

    If you share some code, we might be able to help you.

  • How to populate right side of Shuttle with display/return values?

    Hello,
    I know, that the proper way to populate the right side of shuttle is that:
    declare
         v_list     apex_application_global.vc_arr2;
    begin
         select profile_name return_value
           bulk     collect
           into     v_list
           from     user_profiles
          where     user_id = :p61_user_id;
         return (apex_util.table_to_string (v_list));
    end;It is comfortable for the user to see the name of the profile.
    However, I need a profile_id as a return value, like I have it on the left side of the shuttle.
    The left side of the shuttle is populated with a select list with display/return values, as you know.
    I need both sides of the shuttle to return profile_id in order to create a merge.
    How is it possible to populate the right side of the Shuttle with display/return values?

    All you have to do is to use the subset of shuttle query to assign value to the right side shuttle.
    http://apex.oracle.com/pls/apex/f?p=50942:95
    I have created a dummy page with shuttle query
    SELECT ename, empno FROM emp ORDER by 1then I have defined a pl-sql before header process to assign values to shuttle variable
    using the code
    begin
    :P95_SHUTTLE := '7566:219:7900:7782:90';
    end;since 90 is not one the result set of the shuttle query it is getting displayed as number, and for others it is displaying the text. Thanks.
    --Manish                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • How to create a procedure function with a return value of ref cursor?

    Can anybody provide a sample about how to create a procedure function with a return value of REF CURSOR?
    I heard if I can create a function to return a ref cursor, I can use VB to read its recordset.
    Thanks a lot.

    http://osi.oracle.com/~tkyte/ResultSets/index.html

  • SQL dynamic query returning (problem with list of value)

    Hi, I'm having trouble with my query. I want to make where statement based on my selectlist, but the problem is that I couldnt write the correct string in my where condition.
    :P61_STATUS has this following display, return value
    Bewerber     Bewerber     
    PRA_Kandidat     PRA_Kandidat          
    abgelehnt     abgelehnt          
    angenommen     angenommen          
    Thema     Thema     
    angemeldet     angemeldet          
    abgegeben     abgegeben          
    abgeschlossen     abgeschlossen          
    bestätigt     bestätigt
    DECLARE
      q varchar2(4000);
      list_betreuer htmldb_application_global.vc_arr2;
      list_semester htmldb_application_global.vc_arr2;
      list_status htmldb_application_global.vc_arr2;
    BEGIN
    -- variable to store the list
    list_betreuer := HTMLDB_UTIL.STRING_TO_TABLE(:P61_BETREUER);
    list_semester := HTMLDB_UTIL.STRING_TO_TABLE(:P61_SEMESTER);
    list_status := HTMLDB_UTIL.STRING_TO_TABLE(:P61_STATUS);
    -- Query begins
    q:= 'select p1.name, p1.vorname , a1.tel, a2.tel, ';
    q:= q||'ab.thema, ab.status, ab.typ, s.bezeichnung, p2.name ';
    q:= q||'from person p1, person p2, adresse a1, adresse a2, ';
    q:= q||'zuordnungp_a zpa1,zuordnungp_a zpa2, ';
    q:= q||'abschlussarbeit ab, semester s ';
    q:= q||'WHERE ab.SEMESTER = s.OBJECTID (+) ';
    q:= q||'AND ab.STUDENT = p1.OBJECTID (+) ';
    q:= q||'AND ab.BETREUER = p2.OBJECTID (+) ';
    q:= q||'and p1.objectid = zpa1.person (+) ';
    q:= q||'and zpa1.adresse  = a1.objectid (+) ';
    q:= q||'and zpa1.art (+)= ''Privat'' ';
    q:= q||'and p1.objectid = zpa2.person (+) ';
    q:= q||'and zpa2.adresse  = a2.objectid (+) ';
    q:= q||'and zpa2.art (+)= ''Geschäft'' ';
    -- Loop for betreuer list
    FOR i in 1..list_betreuer.count
    LOOP
        IF i = 1 THEN
        q:= q||'AND (ab.betreuer = '||list_betreuer(i);
        ELSE
        q:= q||' OR ab.betreuer  = '||list_betreuer(i);
        END IF;
    END LOOP; if (list_betreuer.count>0)THEN q:= q||')'; END IF;
      -- Loop for semester list
    FOR i in 1..list_semester.count
    LOOP
        IF i = 1 THEN
        q:= q||'AND (ab.semester = '||list_semester(i);
        ELSE
        q:= q||'OR ab.semester = '||list_semester(i);
        END IF;
    END LOOP; if (list_semester.count>0)THEN q:= q||')'; END IF;
    -- Loop for status list
    FOR i in 1..list_status.count
    LOOP
        IF i = 1 THEN
        q:= q||'AND (ab.status = '||list_status(i)||'';
        ELSE
        q:= q||'OR ab.status = '||list_status(i)||'';
        END IF;
    END LOOP; if (list_status.count>0)THEN q:= q||')'; END IF;
      htp.p(q);
    return q;
    END;result
    select p1.name, p1.vorname , a1.tel, a2.tel, ab.thema, ab.status, ab.typ, s.bezeichnung, p2.name from person p1, person p2, adresse a1, adresse a2, zuordnungp_a zpa1,zuordnungp_a zpa2, abschlussarbeit ab, semester s WHERE ab.SEMESTER = s.OBJECTID (+) AND ab.STUDENT = p1.OBJECTID (+) AND ab.BETREUER = p2.OBJECTID (+) and p1.objectid = zpa1.person (+) and zpa1.adresse = a1.objectid (+) and zpa1.art (+)= 'Privat' and p1.objectid = zpa2.person (+) and zpa2.adresse = a2.objectid (+) and zpa2.art (+)= 'Geschäft' AND (ab.status = abgegeben) the problem is in this statement
    q:= q||'AND (ab.status = '||list_status(i)||'';that statement produce this following statement
    ab.status = abgegebenbut what I need is this statement
    ab.status = 'abgegeben';how can I achieve this statement?
    thank you very much

    raitodn wrote:
    ah ok , I was confused with this q:= q||'AND (ab.status = '''||list_status(i)||'''';I think I get it now
    basically stop the string and write double quotes before the variable
    'AND (ab.status = ' + ''||list_status(i)||'' + ''No, more like "wherever I want a single quote within a string, I put two single quotes instead and that tells oracle it's a quote and not the end of the string".
    q:= q||'AND (ab.status = '''||list_status(i)||'''';
           ^                 ^^^                  ^^^^
           |                 |/|                  ||/|
           |                 | |                  || \-- single quote indicates end of string
           |                 | |                  ||
           |                 | |                  |\-- two quotes indicate a single quote required
           |                 | |                  |
           |                 | |                  \-- single quote to open a new string
           |                 | |
           |                 | \-- single quote indicates end of string
           |                 |
           |                 \-- two quotes indicate single quote required
           \-- Open String

  • .MSG files. Problem with getting requested values from crawled properites

    Hi
    I have a lot of msg files on my file server. I use SharePoint Enterprise Serach engine to crawl all these MSGs.
    I would like to get extra managed properties out of these files. I am most interested in getting Mail:5(text) / Mail:12(Date and Time) / Mail:53(Date and Time) from MAIL category in Managed Properties.
    This thread is very similar to one already posted by SpinnerUp:
    http://social.technet.microsoft.com/Forums/sharepoint/en-US/82d69df0-5cb2-4e51-a485-34209e111f4b/problem-with-crawling-msg-files-doesnt-seem-to-return-requested-values-from-crawled-property
    Please be aware that I do not use Public Folders. These MSGs are exproted from Outlook and are stored on File Server not Exchange.
    I tried to link Crawled Properties to new property however I cannot get any results back.
    Thank you for you help.
    Regards, Marcin (Please mark as helpful or answered if it helps)

    Thank you for your replay.
    However I am not keen to write custom connector at this stage.
    Is it possible to simply get "Subject", "Sent", "Received" info from msg file and then map it to managed properties.
    Does SharePoint create any crawled properties which contain information about let's say "Subject" which then can be used to create managed properties?
    I tried playing with "MAIL" properties however I cannot get them to work. I guess this is because the file is a msg file rather than mail which is stored in Exchange Public Folder.
    Regards, Marcin (Please mark as helpful or answered if it helps)

  • Calling web service via utl_dbws with unbounded return values

    Hello, everyone.
    I'm trying to use utl_dbws to call web service from Oracle DB 10 g.
    WS has unbounded return value:
    <xs:element maxOccurs='unbounded' minOccurs='0' name='return' type='xs:string'/>
    I'm setting return paramter in web service call handler like this:
    sys.UTL_DBWS.set_return_type(l_h_service_call, cs_qname_type_string);
    and when I'm trying to call it from PL/SQL function I'm getting an error:
    ORA-29532: Java call terminated by uncaught Java exception:
    deserialization error: XML reader error: unexpected character content: "s2"
    ORA-06512: at "SYS.UTL_DBWS", line 388
    ORA-06512: at "SYS.UTL_DBWS", line 385
    ORA-06512: at line 38
    I've tried to return values by out parameters and got the same exception.
    It looks like utl_dbws needs to know parameters count before calling.
    Have anyone succeded in getting arrays from Web Service call?
    This is a part of wsdl:
    <xs:complexType name='getProcessList'>
    <xs:sequence>
    <xs:element minOccurs='0' name='nameMask' type='xs:string'/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name='getProcessListResponse'>
    <xs:sequence>
    <xs:element maxOccurs='unbounded' minOccurs='0' name='return' type='xs:string'/>
    </xs:sequence>
    </xs:complexType>
    Throught SoapUI I can produce such kind of request:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:proc="http://processmanager.argustelecom.ru/">
    <soapenv:Header/>
    <soapenv:Body>
    <proc:getProcessList>
    <processNameMask>*</processNameMask>
    </proc:getProcessList>
    </soapenv:Body>
    </soapenv:Envelope>
    and get a response:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header/>
    <env:Body>
    <ns2:getProcessListResponse xmlns:ns2="http://processmanager.argustelecom.ru/">
    <return>s1</return>
    <return>s2</return>
    <return>s3</return>
    <return>s4</return>
    </ns2:getProcessListResponse>
    </env:Body>
    </env:Envelope>
    PL/SQL function:
    DECLARE
    cs_qname_type_string CONSTANT sys.UTL_DBWS.qname
    := sys.UTL_DBWS.to_qname('http://www.w3.org/2001/XMLSchema', 'string') ;
    cs_qname_type_int CONSTANT sys.UTL_DBWS.qname := sys.UTL_DBWS.to_qname('http://www.w3.org/2001/XMLSchema', 'int');
    cs_qname_type_any CONSTANT sys.UTL_DBWS.qname
    := sys.UTL_DBWS.to_qname('http://www.w3.org/2001/XMLSchema', 'anyType') ;
    cs_endpoint CONSTANT VARCHAR2(256) := 'http://server:8080/process-manager/ProcessManager';
    l_service sys.UTL_DBWS.service;
    l_service_qname sys.UTL_DBWS.qname;
    l_port_qname sys.UTL_DBWS.qname;
    l_operation_qname sys.UTL_DBWS.qname;
    l_h_service_call sys.UTL_DBWS.call;
    l_params sys.UTL_DBWS.anydata_list;
    l_ret_val SYS.ANYDATA;
    BEGIN
    l_service_qname := sys.UTL_DBWS.to_qname(NULL, 'ProcessManagerService');
    l_service := sys.UTL_DBWS.create_service(l_service_qname);
    l_port_qname := sys.UTL_DBWS.to_qname(NULL, 'ProcessListServiceBinding');
    l_operation_qname := sys.UTL_DBWS.to_qname('http://processmanager.argustelecom.ru/', 'getProcessList');
    l_h_service_call := sys.UTL_DBWS.create_call(l_service, l_port_qname, l_operation_qname);
    sys.UTL_DBWS.set_target_endpoint_address(l_h_service_call, cs_endpoint);
    -- return type
    sys.UTL_DBWS.set_return_type(l_h_service_call, cs_qname_type_any);
    -- param type
    sys.UTL_DBWS.ADD_PARAMETER(l_h_service_call, 'processNameMask', cs_qname_type_string, 'ParameterMode.IN');
    l_params(1) := anydata.convertvarchar2('*');
    l_ret_val := sys.UTL_DBWS.invoke(l_h_service_call, l_params);
    IF l_ret_val IS NULL THEN
    DBMS_OUTPUT.put_line('l_ret_val is null');
    ELSE
    DBMS_OUTPUT.put_line('l_ret_val is not null');
    END IF;
    sys.UTL_DBWS.release_call(l_h_service_call);
    END;
    Edited by: Ilya on 03.12.2008 3:50

    Hi Tony
    I'm not sure if you would have solved your problem by now, but with my recent experience with the utl_dbws package, for doc lits with complex data types, you have to call the service with an XML request, as opposed to passing the param array.
    If you still need details, reply accordingly.
    Ta
    cT

  • Problem with sdo_relate returning unexpected results

    I am having a problem with an oracle spatial query not returning what I feel is an appropriate result.
    I have a bounding box that has 6 points from a table that should be inside it. There are several hundred points total in this table. I perform the following query and oracle returns only 4 points, well 5 but we will get to that later, within the area of the search.
    SQL> Select feature_id
    From city_points A
    where (MDSYS.SDO_RELATE(A.GEOM, mdsys.sdo_geometry(2003, 8307, NULL, mdsys.sdo_elem_info_array(1,1003,1), mdsys.sdo_ordinate_array(-101.8417,-52.8083,-23.8417,-52.8083,-23.8417,-13.8083,-101.8417,-13.8083,101.8417,-52.8083)), 'mask=ANYINTERACT querytype=join') = 'TRUE');
    I used a different application to perform the same type of query. The difference is that the application does the spatial query, not oracle. Further the application gets all of the points and performs this query on the client. What the application returns is correct both visually and spatially.
    Two of the points not returned in the oracle spatial query are 300km inside the bounding box. This far exceeds the .5 m tolerance used in our decimal degrees data set (SRID 8307).
    I have experienced this problem on 9.2.0.1. I then patched that instance to 9.2.0.7 and duplicated the problem. I then exported the data and imported into a 10g release 1 database and again duplicated the problem. I have tried to re-index the data to no avail.
    I have also tried different querytypes also yielding less than expected results.
    The data looks like this:
    243
    SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-58.45, -34.6, NULL),NULL, NULL)
    254
    SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-56.18333, -34.883334, NULL), NULL, NULL)
    377
    SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-70.666671, -33.449999, NULL), NULL, NULL)
    385
    SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-68.149999, -16.5, NULL), NULL, NULL)
    388
    SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-47.916667, -15.783333, NULL), NULL, NULL)
    427
    SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-57.640066, -25.270295, NULL), NULL, NULL)
    The number is the id field, the rest is the geometry.
    The oracle spatial query above only returns id #s 359, 377,243,254,427
    There are five returned records. The extra value is outside the bounding area. So it should not have been returned at all. It is all too strange.
    I have seen this with different geometry types (points lines and area) as well.
    If anyone has suggestions, I would appreciate your comments.
    Thanks,
    John

    John,,
    What you are seeing is the behavior you should expect in the geodetic space.
    When you have a very long line connecting from longitude -101 to -23, that line
    does not follow the same latitude value.
    Since these points are in southern hemisphere, the line connecting them
    will curve downward (this is the great circle line).
    If you really want a line connecting with constant latitude, you should
    use the MBR type for the window geometry which densifies the
    lines along constant latitude before passing it into relate.
    SDO_GEOMETRY(2003, 8307, NULL,
    sdo_elem_info_array(1,1003,3),
    sdo_ordinate_array(-101.8417,-52.8083, 23.8417,-13.8083))
    siva

  • Problem with field-symbol values not updating

    H i ,
          I have following piece of code :
    Assigning Dynamic Table to Field Symbol
        ASSIGN ist_dyn_table->* TO <gs_dyn_table>.
    *   Creating Structure for dynamic table
        CREATE DATA gs_dyn_line LIKE LINE OF <gs_dyn_table>.
    *   Creating line type for the Dynamic Values
        ASSIGN gs_dyn_line->* TO <gs_line>.
    *   Populating values in the dynamic table
        LOOP AT ist_pwcl_main INTO wa_pwcl_main.
          ASSIGN COMPONENT gc_fld_werks OF STRUCTURE <gs_line> TO <gs_field>.
       1   IF sy-subrc EQ 0.
       2        <gs_field> = wa_pwcl_main-werks.
       3      ENDIF.
       5  IF <gs_field> IS ASSIGNED.
       6     <gs_field> = wa_pwcl_main-vbeln.
          ENDIF.
      7 IF <gs_field> IS ASSIGNED.
      8  <gs_field> =  wa_pwcl_main-posnr.
          ENDIF.
       IF <gs_field> IS ASSIGNED.
            <gs_field> = wa_pwcl_main-quant.
          ENDIF.
    on debugging  at line 2 <gs_filed> contains the value of werks .
    but at line 6 <gs_field> contains value of vbeln as 0 and at 8 of posnr as 0 .
    What can be the problem ? Other values are getting assigned properly .
    Plz help ...
    Regards .

    Hi,
    Assigning Dynamic Table to Field Symbol
        ASSIGN ist_dyn_table->* TO <gs_dyn_table>.
      Creating Structure for dynamic table
        CREATE DATA gs_dyn_line LIKE LINE OF <gs_dyn_table>.
      Creating line type for the Dynamic Values
        ASSIGN gs_dyn_line->* TO <gs_line>.
      Populating values in the dynamic table
        LOOP AT ist_pwcl_main INTO wa_pwcl_main.
          ASSIGN COMPONENT gc_fld_werks OF STRUCTURE <gs_line> TO <gs_field>.
       1   IF sy-subrc EQ 0.
       2        <gs_field> = wa_pwcl_main-werks.
       3      ENDIF.
       5  IF <gs_field> IS ASSIGNED.
       6     <gs_field> = wa_pwcl_main-vbeln.
          ENDIF.
      7 IF <gs_field> IS ASSIGNED.
      8  <gs_field> =  wa_pwcl_main-posnr.
          ENDIF.
       IF <gs_field> IS ASSIGNED.
            <gs_field> = wa_pwcl_main-quant.
          ENDIF.
    Based on your coding above, <gs_field> has been assigned with data type 'WERKS' (i'd assume component gc_fld_werks found from structure <gs_line> is a plant typed), which is a CHAR(4) data type.
    Meaning, if <gs_field> is assigned with Plant type value, e.g. <gs_field> = '1000', field symbol <gs_field> will contain 4 character only.
    At line 6, if wa_pwcl_main-vbeln = '0000201000', <gs_field> is only capturing '0000' only. This is also happened to line 8.
    However, it looks like that <gs_field> is getting over-write if ASSIGNED statement returns SY-SUBRC = 0.
    Hope this helps.
    Regards,
    Patrick

  • Problem with subqueries returning TIMESTAMP's

    I've got problems with some subqueries returning TIMESTAMP values.
    I've build a case for easy reproduction, with this query:
    SELECT iil.iil_lot_num ,
         (SELECT max ( lot_data_validade )
         FROM lot
         WHERE lot.lot_mat_cod = iil.iil_mat_cod AND
               lot.lot_num = iil.iil_lot_num ) as validade
    FROM iil
    WHERE ( iil.iil_inv_serie = 109 ) and
          ( iil. iil_inv_num = 16 ) and
          ( iil.iil_mat_cod = 111 )
    When I run it, it gives the error:
    General error;-9999 POS(1) System error: invalid_indexorder
    knldiag also gives:
    2009-07-28 15:03:18  9943 ERR 51080 SYSERROR -9999 invalid_indexorder
    I'm running on 7.6.06.03.
    Previous versions were giving another message:
    SQLCODE:  -9999      System error: Otherwise unknown errorcode
    If I change max ( lot_data_validade ) to  max ( year (lot_data_validade) ), it works. The problem is specifically with fetching that timestamp value from the subquery.
    Backup for reproduction of the problem is on:
    http://www.tecnova.com.br/maxdb/backup_problem
    (i've isolated only the tables involved in the problem, so the backup is tiny -> 4.3MB)

    HI Elke,
    I had the same idea at first but was largely disappointed to find that this 'corrupt index' is indeed a temp. resultset:
    --> max() query
    OWNER         TABLENAME           COLUMN_OR_INDEX     STRATEGY                                  PAGECOUNT
    DBA           IIL                                     RANGE CONDITION FOR KEY                           61
                                      IIL_INV_SERIE            (USED KEY COLUMN)                             
                                      IIL_INV_NUM              (USED KEY COLUMN)                             
                                      IIL_MAT_COD              (USED KEY COLUMN)                             
    INTERNAL      TEMPORARY RESULT                        EQUAL CONDITION FOR KEY                            1
                                      IIL_INV_SERIE            (USED KEY COLUMN)                             
    DBA           LOT                                     NO STRATEGY NOW (ONLY AT EXECUTION TIME)           
    INTERNAL      TEMPORARY RESULT                        TABLE SCAN                                         1
                                                               RESULT IS COPIED   , COSTVALUE IS       > 2 E10
    The cost expectation is really awesome here...
    --> max(year()) query
    OWNER     TABLENAME         COLUMN_OR_INDEX  STRATEGY                                  PAGECOUNT
    DBA       IIL                                RANGE CONDITION FOR KEY                           61
                                IIL_INV_SERIE         (USED KEY COLUMN)                   
                                IIL_INV_NUM           (USED KEY COLUMN)                   
                                IIL_MAT_COD           (USED KEY COLUMN)                   
    INTERNAL  TEMPORARY RESULT                   EQUAL CONDITION FOR KEY                            1
                                IIL_INV_SERIE         (USED KEY COLUMN)                   
    DBA       LOT                                NO STRATEGY NOW (ONLY AT EXECUTION TIME) 
                                                      RESULT IS COPIED   , COSTVALUE IS   
    This time the optimizer ran out of words for the expected effort for this query execution...
    The problem really seems to be the subquery-select as we can strip down the example to
    select (select max(lot_data_validade) maxval
    from lot
    where lot.lot_mat_cod=111) as maxval
    from dual
    and still see the error...
    regards,
    Lars

  • CreateInsert and LOV with multiple return values

    HI. I am on Build JDEVADF_11.1.2.3.0_GENERIC_120914.0223.6276.1
    I have a View Object which is based on Entity Object.
    View Object has customer_name and customer_id attributes.
    customer_name attribute has LOV (input field with LOV) based on some other View Object (which of caurse holds customer name and customer id data)
    I defined that when LOV return the chosen values it will populate customer_name with "Customer Name" value and customer_id with "Customer Id" value
    All atributes are updatable
    I droped my View Object on the page and also "CreateInsert" buton. When I click on "CreateInsert" button, I can see new row added as expected, customer_name field has LOV. I can choose from LOV and can see customers and customer_id data. But when I click OK in the LOV pop-up only customer_name attribute is populated!
    I do see that customer_id is returned from LOV (I implemented ReturnPopupEvent listener), but still the customer id remains empty.
    I though maybe I need to add LOV as auto submit = true and set LOV to be a partial trigger for customer_id. But still  - it didn't help
    However, if I run Application Module tester, I do get what I want. I can create new row and when I change customer name , both customer name and customer id fields are populated
    Please advice

    Hi Michael,
    On Lov VO, make sure you have at least one or combination of attributes as Key attribute. and re test.
    Thanks,
    Jeet

  • Problem with mouse-over value on a column chart (by Series)

    Hi.
    First of all thanks for any offered tip.
    I am having a problem with a column chart.
    When I move the mouse over a column it should show a small pop-up (or tip) with the column name (series name) and the value (series value). The problem is that it displays an extra '1' just like the following:
    SeriesName
    1
    X.XXX
    How can I remove the extra '1' and only show the name and the value ?
    The data is populated by series (manually added).
    Mihai.

    Hi,
    Thanks for the tip Shanthakumar KA.
    Yes. It looks like the '1' is coming from the X Axis labels. The chart that I have built does not require any labels on the X Axis, so this was not set (X-Axis labels: Empty). I tried setting this to an empty cell, but the '1' still appears in the mouse-over tip.
    It is very weird. If I leave the X-Axis labels empty, I still get the '1' displayed which is very annoing.
    Are there any solutions for this except the re-building the tip with a label a.k.a. '[customize the mouse over values|http://xcelsiusandme.blogspot.com/2009/07/xm-sample-7-customizing-mouse-over.html].'
    Regards,
    Mihai.

Maybe you are looking for