GUI_DOWNLOAD issue - returns empty table

I am using the following to read a text file (I have tried a tab delimited text file as well as a .csv file) into an internal table.  The returned sy-subrc value is 0 but the returned table is empty.
Any ideas?
Regards,
Davis
d_string = p_file.
  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
*   BIN_FILESIZE                    =
      filename                        = d_string
*   FILETYPE                        = 'ASC'
*   APPEND                          = ' '
*   WRITE_FIELD_SEPARATOR           = ' '
*   HEADER                          = '00'
*   TRUNC_TRAILING_BLANKS           = ' '
*   WRITE_LF                        = 'X'
*   COL_SELECT                      = ' '
*   COL_SELECT_MASK                 = ' '
*   DAT_MODE                        = ' '
*   CONFIRM_OVERWRITE               = ' '
*   NO_AUTH_CHECK                   = ' '
*   CODEPAGE                        = ' '
*   IGNORE_CERR                     = ABAP_TRUE
*   REPLACEMENT                     = '#'
*   WRITE_BOM                       = ' '
*   TRUNC_TRAILING_BLANKS_EOL       = 'X'
*   WK1_N_FORMAT                    = ' '
*   WK1_N_SIZE                      = ' '
*   WK1_T_FORMAT                    = ' '
*   WK1_T_SIZE                      = ' '
*   WRITE_LF_AFTER_LAST_LINE        = ABAP_TRUE
*   SHOW_TRANSFER_STATUS            = ABAP_TRUE
* IMPORTING
*   FILELENGTH                      =
    TABLES
      data_tab                        = it_string
*   FIELDNAMES                      =
   EXCEPTIONS
     file_write_error                = 1
     no_batch                        = 2
     gui_refuse_filetransfer         = 3
     invalid_type                    = 4
     no_authority                    = 5
     unknown_error                   = 6
     header_not_allowed              = 7
     separator_not_allowed           = 8
     filesize_not_allowed            = 9
     header_too_long                 = 10
     dp_error_create                 = 11
     dp_error_send                   = 12
     dp_error_write                  = 13
     unknown_dp_error                = 14
     access_denied                   = 15
     dp_out_of_memory                = 16
     disk_full                       = 17
     dp_timeout                      = 18
     file_not_found                  = 19
     dataprovider_exception          = 20
     control_flush_error             = 21
     OTHERS                          = 22

Arent you supposed to use GUI_UPLOAD?
GUI_UPLOAD - Text file to internal table.
GUI_Download - Internal table to text file.

Similar Messages

  • Oracle returns empty table

    Hello All,I used INCBUILDIM to create dimension, Oracle sometime returns an empty table and IFERROR can't detect the error, end up the dimension is missing.Does anyboby know how to check for this kind of error?

    Arent you supposed to use GUI_UPLOAD?
    GUI_UPLOAD - Text file to internal table.
    GUI_Download - Internal table to text file.

  • ALV Grid- GET_SELECTED_ROWS returns empty table in edit mode

    Hi all,
    I saw similar threads on this forum, but didn't find the answer. Do you know if that is possible to force grid to return selected rows when is in edit mode? When I switch to display mode everything works just fine.
    regards,
    Marcin

    It is necessary to enforce the ALV to transport data from the frontend to the backend. Therefore register the event
    Register 'Enter' event
      CALL METHOD go_alv->register_edit_event
        EXPORTING
          i_event_id = cl_gui_alv_grid=>mc_evt_enter.
    After then clicking 'ENTER', the data should be available in the ABAP program. Without any user interaction it is not possible (as far as I know).
    Best regards,
    Thomas

  • The return value of sqlcode when select an empty table in a proc code

    Table: test
    there is an empty table. But when I use "select * from test" in a proc code, I found the return value of sqlca.sqlcode is 0, not 1403 (NO MORE DATA). Why ?

    EXEC SQL DECLARE individual_cursor CURSOR for
                   SELECT IATA_C, DELAY, UPDATE_TIME
                   FROM TBL_TIME
                   WHERE IATA_C <> '***' AND
                        FLAG = 1;
    EXEC SQL OPEN individual_cursor;
    while(1) {
    printf("in while");
         if (sqlca.sqlcode == 1403 && individual_flag == 0) {
    printf("no any data");
              return 1;
         } else if (sqlca.sqlcode == SQLNOMORE) {
              break;
         EXEC SQL FETCH individual_without_general_cursor INTO :pnrtime.airline, :pnrtime.delay, :pnrtime.update_time;
    EXEC SQL CLOSE individual_cursor;
    The result is:
    in while
    in while
    no any data
    Since the table is empty, why "in while" is printed twice? And "no any data" is printed in the end? I cannot decide the empty when using "select ... into" in proc unless using "select count(*) from test", right? Thx.

  • How to get list of block identifiers in a empty table and an empty index

    We have an application that has issue with ITL waits: this application is running many INSERT statements on a table that has 2 NUMBER columns and one primary key index. The application is designed to run INSERT statements but they are never committed (this is a software package).
    To check what are the really allocated ITL slots, I know that I can dump data block but I don't know how to get the block identifiers/numbers for an "empty" table and an "empty" index. Does someone knows how to do that ?
    PS: I already had a look to the Metalink notes and I have a Metalink SR for that but maybe OTN forum is faster ?

    You should be able to find the first data/index block with the following, even on an empty table/index.
    select header_file, header_block +1
    from dba_segments
    where segment_name = '<index or table name>';

  • EntryProcessor invokeAll returning empty ConverterMap{}

    Hi All,
    I am trying to write a custom entryprocessor and whatever I return from the invokeAll method in the entryprocessor, I am always getting a empty ConverterMap{}. The code for the entryprocessor is as below:
    public class CustomEP implements PortableObject, EntryProcessor {
         public CustomEP (){
    public Map processAll(Set entries) {
              Map results=new HashMap ();
    results.put ("1", "1");
    System.out.println("Inside process All method");
              return results;
    public Object process(Entry arg0) {
              Map results=new HashMap ();
    results.put ("1", "1");
    System.out.println("Inside process method");
              return results;
    The client code to invoke this entryprocessor is as below:
    Map results=cache.invokeAll(AlwaysFilter.INSTANCE, new CustomEP());
    The processAll method on the Coherence nodes is invoked but if the print the results on the client side it return empty ConverterMap{}
    On the other hand, if I invoke process method of CustomEP as below:
    Map results=(Map) cache.invoke(AlwaysFilter.INSTANCE, new CustomEP());
    I get the desired results. Please help me with the details why it is happening this way when the return type of the processAll is a Map.
    Thanks a lot!
    Regards,
    S

    911767 wrote:
    Hi Robert and JK,
    Thank you for your reply and time!
    I could not find these details in any of the documentation that specifies keys passed in the result should be subset of the keys passed to the processAll method. Anyways, my problem is to invoke server-side code (avoid de-serialization) by passing a filter and then create a entirely new map (key and value will be different from the entries extracted from the passed filter) by reading the data from the passed entries. How can I implement it?
    I am thinking to use aggregator as they are read-only and faster but again how to implement it using:
    public Object aggregate(Set entries){
    Again, I am getting an empty Map so is it necessary that the object returned should have keys matching the set of the entries passed to this method.
    Secondly, there are other methods such as, finalizeResult() and init() if I extend AbstractAggregator, do I need to implement them and if yes, how? The entries set passed to the aggregate() method may not reside on the same node.
    Please advise!
    Regards,
    SHi S,
    the process() return value object, or the entry value objects in the map returned by processAll() can be arbitrary objects. So you just return a map from process(), and return a map as the entry value in the result map from processAll().
    The AbstractAggregator has a fairly badly documented contract in the Javadoc (does not properly cover the values received in different scenarios for invocation). You should probably read the section about it in the Coherence book, that explains leveraging AbstractAggregator in significantly more details. It also happens to be in the sample chapter, but I recommend reading the entire book.
    I am not sure about the issues relating to posting links to PDFs on Packt's webpage, so I won't do that. Please go to Packt's webpage (http://www.packtpub.com ), look for the Coherence book there and download the sample chapter (or order the book).
    In short, all 3 to-be-implemented methods (init(), process(), finalizeResult()) in AbstractAggregator are called both on the server and on the caller side. You can distinguish which side you are on from looking at both the passed in fFinal boolean parameter and the m_fParallel attribute tof the aggregator instance.
    There are 3 cases:
    - non-parallel aggregation processing extracted values (m_fParallel is false, I don't remember what fFinal is in this case),
    - parallel aggregation storage side processing extracted values (if I correctly remember, m_fParallel is true, fFinal is false),
    - parallel aggregation caller side processing parallel results (m_fParallel and fFinal are both true).
    Depending on which side you are on, the process method takes different object types (on server side it receievs the extracted value, on caller side it receives a parallel result object instance).
    You SHOULD NOT override any of the other methods (e.g. aggregate() which you mentioned).
    The advantage of this approach is that the AbstractAggregator subclass instance can pass itself off as a parallel-aggregator instance.
    You should put together a temporary result in a member attribute of the AbstractAggregator subclass, which also means that it will likely not be thread-safe, but at the moment it is not necessary for it to be thread-safe either as it is called only on a single-thread.
    Best regards,
    Robert
    Edited by: robvarga on Feb 3, 2012 10:38 AM

  • Applescript: file.open("r") returns empty in jsx

    Hey guys,
    i am having a bit of a scripting problem here. The big goal for me at the moment is creating a UI script to control aerender.
    To achieve getting feedback from the terminal about when an aerender process is completed, i let the terminal trigger an applescript running a jsx inside after effects (since the terminal can't run a jsx inside after effects itself).
    However, this particular script needs to eval the contents of a text file that is outputted during the render process (its just a log file put into a fixed location). No matter what i do: I can't get a proper response from the script. Here is what should happen when a render is done:
    function RenderEnd () {
    var report = new File ("Macintosh HD/Users/macname/generallog.txt");
    report.open("r");
    var reportstring = report.read();
    report.close();
    var reportendindex = reportstring.indexOf("Total Time Elapsed:");
    var reportcloseindex = reportstring.indexOf("aerender version");
    var reportendstring = reportstring.substring(reportendindex, [reportcloseindex]);
    var regex = /Finished composition/gi, result, indices = [];
    while ( (result = regex.exec(reportstring)) ) {
        indices.push(result.index);
    var ItemStringArray = new Array ();
    for(var i=0; i<indices.length; i++){
        ItemStringArray.push("Finished Item " + (i+1) + ": " + reportstring.substring(indices[i]-32, [indices[i]-2]));
    var AlertString = "Rendering done." + "\r" + reportendstring + "\r" + ItemStringArray.toString().replace(",","\r");
    alert(AlertString);
    RenderEnd ();
    Running this script by itself properly returns an alert containing a message "Rendering done." plus additional info about the render time and item completion.
    But whenever i have the following applescript triggering the above jsx script...
    set scriptfile to (POSIX file ("/Applications/Adobe After Effects CS5.5/Scripts/AERenderEndTrigger.jsx"))
    tell application "Adobe After Effects CS5.5"
      DoScriptFile scriptfile
    end tell
    ...the line report.open("r") just returns empty.
    Same goes when i place the jsx in the startup folder and just call the function RenderEnd () via applescript. It's as if the file open/read stuff does not work when using applescript.
    Does anybody have an idea about this or knows the reason for why this obviously wrong behaviour happens? Maybe someone knows a different approach of how to get feedback from a completed aerender process back into a UI script.

    Ok, i finally found the issue:
    Applescript apparently does not recognize file paths beginning with a drive designation:
    When i change the file path part of the report file from
    var report = new File ("Macintosh HD/Users/macname/generallog.txt");
    to simply
    var report = new File ("/Users/macname/generallog.txt");
    everything works as it should.
    It's still a bit weird and i don't understand this. Maybe someone can explain this to me, please?

  • Empty tables in ZCL_JSON_HANDLER

    Hello,
    I try to use your ZCL_JSON_HANDLER (JSON Adapter for ABAP Function Modules) in combination of a complex json string which contain parameters and a table. When I break in my function module I see that the function module accepted the parameters and have an empty table.
    Can you tell me why the table is not filled in the function module?
    This is the source I use:
    createContent : function(oController) {
    var inputParametersPss = {IV_PROCESS: "TEST",
    IV_EVENT  : "TEST",
    IV_WORK_ITEM : "",
    IV_ROLE :   "TEST",
    IV_OBJECT : "TEST",
    IT_FORM_FIELD_VALUES:[{
    fieldindex : 0,
    fieldname  : "test",
    fieldvalue : "a"
    IT_ATTACHMENTS:[]
    var oModel_test = new sap.ui.model.json.JSONModel();
    // oModel_test.setData(data_test);
    $.ajax({
    url : "/entrada/json/zctr_entrada_pss_event_trigger?$format=json",
    type: "POST", //or POST?
    dataType: "json",
    data : inputParametersPss,
    success: function(data){
    var jsonString = jQuery.parseJSON( data.OUTPUT );
    data_test = jsonString;
    oModel_test.setData(jsonString);     
    alert(oModel_test.getJSON());
    error: function(){alert("error")}
    return new sap.m.Page({
    title: "Title",
    content: [
    Import paramaters function module:
    Kind Regards,
    Richard

    Hi Richard,
    Using Jquery.ajax like in the example, jquery will try to convert the data to a query string, which is not obviously what we want.
    In "data" there must be a correctly formed JSON string. You may try something like the following inside the $.ajax:
        data: JSON.stringify( inputParametersPss ),
        contentType: "application/json",
    Setting a string in "data" should enconde it correctly and prevent jquery from trying to convert the data to a query string. If you want to be sure that data is not processed you may add:
        processData: false,
    To the list of settings in the jquery call.
    It is important that you set correctly the content type of the posted data. Otherwise, jquery sends it as a urlencoded string and this may cause confusion in the adaptor.
    Thanks for asking.
    Hope this helps,
             César.

  • Show or Hide empty table based on If condition

    I want to show or hide empty table based on condition. The table will be empty with 5 rows,2 cols and should display if <?Rout_Information1_id1?> is blank or null or when XML field is not present. Actually the JDEdwards report will generate XML file. In the XML file if <?Rout_Information1_id1?> is present it will have definitely value like 'PULL' or 'Cut' otherwise sometimes XML field itself will not be present. Need to display the empty table when the <?Rout_Information1_id1?> is not present. I am trying to do as below but the table is not displayed. Can someone tell me how to resolve this.
    <?if:Rout_Information1_id1=' '?>
    5 rows,2 cols table
    <?end if?>
    Thanks,
    Vijay Vattiprolu

    Ok. I used the below syntax from other post and it resolved displaying empty table issue.
    <?if:not(XML_TAG_NAME)?>
    <?end if?>
    Thanks,
    Vijay

  • Getserver cookie - returns empty page

    Hi,
    I am using MVC,
    I have firstpage - a controller for that and a model class.
    I have second page - a controller for that and the model is the same as the first one.
    I am using a single model class but multiple controllers and multiple views. I am trying to use server cookies to set and get attributes between the pages.
    First Page - I have 2 attributes - on Do_init - I instantiate Model. Do_request - loads the firstpage. Do_handle-data - once the data is entered in firstpage, gets it from form fields and loads it into cookie.
    Do_handle_event - gets the values from the cookie and processes it and makes a table to be passed to the seconf page. I loaded this table in the cookie and - call second.do
    Second page - in controller  - DOInit - i have again instantiated Model - in Dorequest - I try to read from the cookie for the table data...But I am getting an empty page. I debugged it and in the Do request - where I call the get_server_cookie - nothing happens, just returns empty page...
    Does anyone know why?? can I not access the cookie by name in more than once controllers??
    Is this a right way of navigating between pages?? I want all the objects in the pages accessible across all the pages...should be able to read and write as per events...please suggest...
    Thanks
    Thilothama

    Hi,
         Put that cookie in the navigation->set_parameter and paas it to the next page in the page attributes as an 'AUTO'.
              Hope this may help you.
    Jyoti

  • Returning Internal Table as Returning Parameter of Method (by Value).

    When you return an internal table as the returning parameter of a method, it is passed by value.  I understand the concept of passing by value vs. passing by reference, but exactly what this means in this case is ambiguous.
    1)  It could mean that the entire table, including data, is copied from the local table in the method into the parameter provided by the calling code.
    2)  Alternatively, it could mean that only the pointer to the table is passed by value and the data is not literally copied from one place in memory to another.  This would <b>not</b> be the same as passing by reference.  For instance, I believe this is how object references are passed by value.
    I want to know how it works, so that I know if there is an efficiency problem with returning a huge table.  The returning parameter is wonderful for getter methods, and I prefer to use it over exporting parameters, but I have some concern about passing tables as returning parameters since I don't know how this works.
    Can anyone either explain this, or at least make it clear to me whether or not there is an efficiency issue?
    Thanks, in advance,
    -Chris

    Thanks to those who tried to help me with this question, but I finally had to just figure it out on my own.  I just realized today that there is a way to find the answer using the debugger's <i>Go To->Status Display->Memory Use</i> option.  This shows how variables are stored in memory.
    The answer:
    First of all, if you set one internal table equal to another like:
      i_tab1 = i_tab2.
    or like:
      i_tab1[] = i_tab2[].
    both will simply set <i>i_tab1</i> to point to the same memory that <i>i_tab2</i> is using.  It does <b>not</b> make a copy.  Now, if you attempt to change <i>i_tab1</i>, with an <i>append</i> statement for instance, a copy of <i>i_tab2</i>'s memory is made <b>then</b>!  The requested change to <i>i_tab1</i> is then applied to the copied data.  <b>AHA!!!</b>  This means that even if you think you are copying a table, you are not really doing it until it becomes necessary due to a divergence in values.
    I specifically tested a returning parameter to see how memory is handled, and it is basically just like an '<i>=</i>' statment.  No copy of the data is performed at first.  The memory that is allocated for the local variable in the method is simply pointed to by the variable used in the calling code to recieve that value.
    What if you then change the value in the calling code after the method has finished executing?  The answer depends on the situation.  If the value that you returned from the method is still being pointed to by another variable somewhere, then a copy is made when you attempt to change the returned table in the calling code, but if there is no longer another variable pointing to this memory, you can change the table in the calling program all you want without causing a copy in memory.
    For instance, if you have a getter method that returns the value of an attribute, at first no copy will be made, but when you try to change the table in your calling code, a copy will be made then.  However, if you just fill a local table in your getter method and return that table, there will never be a copy made, because the local variable that originally pointed to that memory expired when the method completed.  That means that after the method completes, the only variable pointing to the allocated memory is the one in the calling code that recieved the returning value.
    This is fantastic!!  This behaives in a way that seems to provide maximum efficiency in most cases.  Also, the table copies are <b>never</b> a waste, since they only happen upon changing of one of the table variables that point to the common memory, and in this case you would <b>want</b> to make a copy to avoid corrupting the other variable.
    Also, even if you did return your table as an exporting parameter by reference, you would not gain any significant efficiency.  There would still be no table copy if you don't change the returned table.  Also, if you did change the returned table, you <b>would</b> still produce a table copy if there was another variable, like an attribute, still pointing to the memory that you set your exporting paramter from before.
    The only situation that I can see resulting in a needless efficiency problem is if someone used a getter method to return the value of a table attribute, then changed the returned table in the calling program, and then used a setter method to set the whole table attribute equal to the changed table.  This would be a waste, so maybe this should be accomplished in another way.
    In conclusion, there is essentially no reason to hesitate returning a whole internal table as a returning parameter from a method call, even though it is pass by value.
    Kudos to the ABAP development team for their good design!

  • How to stop the selection of an empty table?

    Hello , everyone.
    I created a JTable : tableView :
    tableView.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    tableView.getSelectionModel().addListSelectionListener(this);
    tableView is a empty table , that is to say , tableView.getRowCount() returns 0 .
    When the table has focus, I press ENTER key , it will invoke the table's ListSelectionEvent event.
    So , in the ListSelectionEvent interface:
    public void valueChanged(ListSelectionEvent _e)
    I call :
    int selectedRow = tableView.getSelectionModel().getMinSelectionIndex();
    selectedRow value will increase with ENTER key pressed each time .
    My question is how to prevent from ENTER key event when a table is empty ?
    Thanks in advance .

    There is no table, unless you have a mapping table or an overflow segment, so the size is the bytes for the index segment. So yes, your query is probably correct. NB you will only have multiple segments with the same name, if you have partitioning, so you might not need the SUM .. GROUP BY

  • LicenseServer property in Company object alway return empty string

    Hi everyone,
    When I use Company object and LicenseServer property to get LicenseServer, both in SBO 2004 & SBO 2005 all return empty string, who can help me get the correct LicenseServer name.
    Thanks in advance.
    Kathy

    Jose Xabier,
    Thanks for your reply, actually I need the License server name, but in SLIC table it saves Local hotost and port number some times like below:
    [localhost:30000]
    who knows how to get the name instead of Localhost,
    why licenseserver return empty sting? doI need set other property to get license server name for company object?
    Thanks,
    Kathy

  • BAPI return empty element.

    Guys,
    I have created one scenario SOAP -> BAPI (sync).
    BAPI
    ZMMF_GET_COMPANY
    My BAPI have 10 elements and 9 return with values.
    But i have 1 element with name "text1" and one return empty value always.
    When i execute the BAPI using tcode se37, "text1" return value, for exemplo "test test test".
    But when i execute in RFCAdapter, "text1" return empty value.
    Can anybody helpme me?

    Hey
    I had the same issue with a standard BAPI some time ago.
    The way BAPI is triggered in SE37 is different from the way BAPI is triggered when a request is send from XI.
    suppose you want to fetch business partner data based upon business partner number,now this partner number has been configured to be of length 10 in BAPI,now suppose you execute the BAPI via SE37 and give the partner number of only 6 digits then 4 zeros will be padded and the partner number will be made of all 10 digits,but if you send a partner number of 6 digits from XI then no padding is done hence no records are pulled up(since partner number must be 10 digits and you have only 6).
    Please try to test this and make sure you are giving correct values.
    Thanx
    Aamir

  • SQLTables return empty

    Hi, all,
    I used to ues Microsoft ODBC driver for Oracle, my application works fine. Now, I switch to Oracle Driver for Oracle. My application does not work.
    It is becuase the "SQLTables" function returns empty recordset when I tried to look up tables. I am sure the table is there. Can anyone give me any clue? When I connect to the database, do I need special privilege?
    Thanks.
    Jing GUO

    Hi, there,
    When I connect to the database through ODBC, I use user "afm", and I am looking for a table named "bl" which belongs to schema "afm".
    the parameters are:
    cataloge name: ""
    schema name: ""
    table name "bl"
    tableType: ""
    And I also tried schema name: "AFM".
    Any clue? thanks
    Jing

Maybe you are looking for

  • 32-bit Vista Home Premium - Explorer.exe visual basic library C++ runtime crash

    Friends, I have a weird Explorer.exe crash going on when attempting to use Windows Explorer to access my iTunes Movies folder. Background: Running 32-bit Windows Vista Home Premium (SP2) on a Gateway GM5664 Desktop (2.3 GHz Quad-core AMD CPU with 3 G

  • Some questions on Adobe Form

    Hi, I would like to find out if the following requirements are possible: 1) Mass generation of Adobe Form based on a list of personnel number (in SAP HR system). Which means that if I have 20 personnel in my list, then the system will generate 20 Ado

  • Upgrading of WLS 6.1 from SP3 to SP5

    Can anyone help me. I am going to upgrade WLS 6.1 from SP3 to SP5. How can i do this ? From where do i download the ServicePack (SP5) ? Is there someting i have to be aware off, about the license ?

  • Why would a JNLP require local admin rights?

    I'm working as a technical support contact for a user working on a third-party company's web app, which is a JNLP. (I.e.: this is a JNLP I have no control over and no idea how to use, but the goal is simply to get it to launch.) When I am a local adm

  • Change default size for Spotlight window

    Hit +space, type query, click "Show All". Window you get always small and narrow - needs adjusting all the time. Even more insulting - it's not reacting on 'Zoom' menu command or 'green button'. The only way is to drag it's corner. What I'm looking