Excel file creation on application server

Gurus,
I have seen a lot of threads on excel file creation in application server, but failed to see if anyone had a solution.
Problem: In background execution I need to create an excel sheet on application server, the data would be contained in internal table, The FM like WS_DOWNLOAD etc..cannot support these as they have GUI component.
All the documentation that I have been through states to use dataset which saves the file in.csv or txt format seperated by delimiter, is it possible to save as a true excel file.
same as this thread:
Re: Excel download in Application Server
let me know,
Thanks in advance .

* Write column headers, if required
  IF column_headers = 'X'.
*   ... override field names with LABELS_IN, if specified
    IF NOT labels_in[] IS INITIAL.
      DESCRIBE TABLE labels_in LINES num_lines.
      IF num_lines > num_fields.
        RAISE too_many_labels.
      ELSEIF num_lines < num_fields.
        RAISE too_few_labels.
      ENDIF.
      ASSIGN COMPONENT 1 OF STRUCTURE labels_in TO <f>.
      LOOP AT fields_in.
        READ TABLE labels_in INDEX sy-tabix.
        fields_in-name = labels_in-name.
        MODIFY fields_in.
      ENDLOOP.
    ENDIF.
*   ...write column headers to file...
    position = 0.
    LOOP AT fields_in.
      IF fixed_length NE space.
*** INSERT: DAR was here for Issue 17817 --------------- dar012009 ---v
        field_len = STRLEN( fields_in-name ).
*** INSERT: DAR was here for Issue 17817 --------------- dar012009 ---^
        DO fields_in-len TIMES.
          offset = sy-index - 1.
*          IF sy-index > 15.                                 dar012009
          IF sy-index > field_len.                          "dar012009
            line_out+position(1) = space.
          ELSEIF fields_in-name+offset(1) NE space.
            line_out+position(1) = fields_in-name+offset(1).
          ELSE.
            line_out+position(1) = space.
          ENDIF.
          position = position + 1.
        ENDDO.
      ELSE.
        CONCATENATE line_out fields_in-name INTO line_out
          SEPARATED BY delimiter.
      ENDIF.
    ENDLOOP.
    IF fixed_length EQ space.
      SHIFT line_out LEFT DELETING LEADING delimiter.
    ENDIF.
    IF no_write IS INITIAL.                                 "dar041505
      TRANSFER line_out TO file_out.
    ENDIF.                                                  "dar041505
    data_out = line_out.  APPEND data_out.                  "dar041505
  ENDIF.
* Write lines to file...
  LOOP AT data_in.
    CLEAR line_out.
    position = 0.
    DO num_fields TIMES.
      ASSIGN COMPONENT sy-index OF STRUCTURE data_in TO <f>.

Similar Messages

  • Upload and download of  excel file in the application server in background

    Hi all,
    i want to download the excel file from application server into internal table and after processing i have to upload to excel file in the application server in the background mode..
    i mean i'll schedule the program in background.
    im using FM ALSM_EXCEL_TO_INTERNAL_TABLE its working fine in fore ground but not in back ground.
    what method i have to follow ?

    Hi Ankit,
    I think this is not possible to open a Excel-File from the application server because the Excel format before Office 2007 where a binary format (Suffix: .xls). The newer Office file format (Suffix: xlsx) is a zipped XML Format. To read the binary Excel-Format you need an OLE Connection between SAP GUI and Office. But at the application server in background you doesn't have this OLE Connection.
    In my opinion you have two possibilities:
    1. Convert all files in the CSV format. This file format can be read with open dataset.
    2. Upload the files from the presentation server in forground. There are some funktion modules in the standard which can read the xls format. But they have some limits regarding the length of cells content.
    My recommendation is solution no. 1. If you know an VBA expert, he can write an Excel-macro which converts all Excel Files in the CSV-Fomat.
    Regards
    Dirk

  • Excel File downloaded from application server is also opening in notepad

    Hi Friends,
    While downlaoding an excel file from the application server,we are able to open in notepad also.But this does not conatin the excel properties and hence happening.File should only oopen with excel and no other file type
    Can any open help on this
        ld_file =  '/usr/sap/trans/abap/HR_DATA.xls'.
        OPEN DATASET ld_file FOR OUTPUT in text mode ENCODING DEFAULT .
        IF sy-subrc = 0.
          LOOP AT int_final.
            CLEAR wa_string.
            CONCATENATE int_final-employee_sno int_final-employee_code INTO wa_string SEPARATED BY con_tab.
            CONCATENATE wa_string int_final-first_name         INTO wa_string SEPARATED BY con_tab.
    please help...
    Edited by: Neliea on Oct 29, 2009 1:11 PM

    Hi,
    Please refer to these links.
    [url]Re: Internal table to excel download?;url]
    [url]Re: Transfer from Internal Table to EXCEL file...;url]
    Regards,
    Aditya

  • Excel file located in application server to be uploaded

    Hello friends,
                 Please tell me what are the steps to be followed while uploading the data from a file in EXCEL format located in application server in to SAP data base using BDC.
    Thanks in advance,
    Ram.

    declarations:
    DATA:IT_EXCEL LIKE TABLE OF ALSMEX_TABLINE WITH HEADER LINE.
    I guess u r familiar with notepad upload.....just use your declaration as it is. Below is a basic demonstration of uploading data from excel...reward if useful.
    Excel file Locating.
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002.
    PARAMETERS: P_FILE TYPE LOCALFILE OBLIGATORY .
    SELECTION-SCREEN END OF BLOCK B1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        EXPORTING
          STATIC    = 'X'
        CHANGING
          FILE_NAME = P_FILE.
    Check whether the uploaded fiel is excel or not
    AT SELECTION-SCREEN ON P_FILE.
      WK_LEN = P_FILE.
      CONDENSE WK_LEN NO-GAPS.
      LENT = STRLEN( WK_LEN ).
      WK_ALP = LENT - 4.
      B = WK_LEN+WK_ALP(LENT).
      IF ( B NE '.xls' AND B NE '.XLS' ).
        MESSAGE E939.
        CLEAR P_FILE.
        STOP.
      ENDIF.
    START-OF-SELECTION.
    do all the othre process here
    PERFORM FETCH_FROM_FLAT_FILE.
    store the values to your normal itab and the process.
    LOOP AT IT_EXCEL.
        CASE IT_EXCEL-COL.
          WHEN '0001'.
            MOVE: IT_EXCEL-VALUE TO RECORD1-MATNR_005.
          WHEN '0002'.
            MOVE: IT_EXCEL-VALUE TO WK_WERKS.
          WHEN '0003'.
            MOVE: IT_EXCEL-VALUE TO RECORD1-BUDAT_002.
          WHEN '0004'.
            MOVE: IT_EXCEL-VALUE TO RECORD1-BKTXT_004.
          WHEN '0005'.
            MOVE: IT_EXCEL-VALUE TO RECORD1-ERFMG_007.
          WHEN '0006'.
            MOVE: IT_EXCEL-VALUE TO RECORD1-ERFMG_008.
        ENDCASE.
        AT END OF ROW.
          APPEND RECORD1.
          CLEAR RECORD1.
        ENDAT.
      ENDLOOP.
    **Here record1 is the internal table holding the data fetched from excel
    end-of-selection.
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
        EXPORTING
          FILENAME                = P_FILE
          I_BEGIN_COL             = 1 "From 1st Column
          I_BEGIN_ROW             = 2 "From 2nd row
          I_END_COL               = 6 "Till 6th Column
          I_END_ROW               = 65536 "Till Row
        TABLES
          INTERN                  = IT_EXCEL
        EXCEPTIONS
          INCONSISTENT_PARAMETERS = 1
          UPLOAD_OLE              = 2
          OTHERS                  = 3.
      CLEAR IT_EXCEL.
      DESCRIBE TABLE IT_EXCEL.
      IF SY-TFILL = 0.
        MESSAGE I937.
        STOP.
      ENDIF.

  • Creation of xml file in r3 application server (AL11)

    Hi All
    I need to create xml file in r3 application server (AL11) using PI.Can we achieve this using file adapter or we need to proceed with proxy. As I tried with file adapter with FTP transport protocol. Its giving the error as "Unable to create new pooled resource:FTPEx:Login incorrect".
    Thanks in advance
    Regards,
    Kartikeya

    Hi
    need to create xml file in r3 application server (AL11) using PI.Can we achieve this using file adapter or we need to proceed with proxy.
    To generate file at AL11 file directory use File adapter. Proxy is not required for this
    Its giving the error as "Unable to create new pooled resource:FTPEx:Login incorrect".
    1. Check with the Login credentials for the FTP service.
    2. FTP User you use in communication channel must have 777 access to FTP location.
    Thanks
    Gaurav

  • File transfer into application server

    Hi folks.
    I need to retrieve header records from table MCHB and RESB and transfer it into file.
    Again for the corresponding header record, i need to transfer item records retrived from table MKOL and LFA1 as well.
    One file each is to be create per plant.
    But,i am not able to get item data into file.
    My coding....
    LOOP AT i_mchb INTO wa_mchb.
        l_clabs = wa_mchb-clabs.
        SHIFT l_clabs LEFT DELETING LEADING space.
    Summarize requirement quantity
        LOOP AT i_resb INTO wa_resb.
          wa_sum-charg = wa_resb-charg.
          wa_sum-bdmng = wa_resb-bdmng.
          COLLECT wa_sum INTO i_sum.
          SORT i_sum BY charg.
        ENDLOOP.
        READ TABLE i_sum INTO wa_sum WITH KEY charg = wa_mchb-charg.
        IF sy-subrc EQ 0.
          l_bdmng = wa_sum-bdmng.
          SHIFT l_bdmng LEFT DELETING LEADING space.
        ENDIF.
    Calculation on Available quantity
        l_avqty = l_bdmng - l_clabs.
        SHIFT l_avqty LEFT DELETING LEADING space.
        AT NEW werks.
    *Creation of file
          PERFORM sub_create_file.
    Open File on the application server for processing
          OPEN DATASET g_file_name FOR OUTPUT IN TEXT MODE
          ENCODING DEFAULT.
          IF sy-subrc NE 0.
    *Display error message
            MESSAGE i055 WITH g_file_name.
            " Error in opening file
            LEAVE LIST-PROCESSING.
          ENDIF.
        ENDAT.
    Transfering data to file
        CONCATENATE c_header         "Header indentification
                    wa_mchb-matnr    " Material number
                    wa_mchb-werks    " Plant
                    wa_mchb-lgort    " Storage location
                    wa_mchb-charg    " Batch number
                    l_clabs           " Valuated stock-unrestricted use
                    l_bdmng           " Requirement quantity
                    l_avqty           " Avalable quantity.
        INTO l_record.
        TRANSFER l_record TO g_file_name.
        CLEAR: l_clabs,
               l_bdmng,
               l_avqty,
               l_record.
        READ TABLE i_mkol INTO wa_mkol WITH KEY matnr = wa_mchb-matnr
                                                werks = wa_mchb-werks
                                                lgort = wa_mchb-lgort
                                                charg = wa_mchb-charg
                                                BINARY SEARCH.
        IF sy-subrc EQ 0.
          l_tabix = sy-tabix.
          LOOP AT i_mkol INTO wa_mkol FROM l_tabix.
    *Population of consignment stock-unrestricted use
            l_slabs = wa_mkol-slabs.
            SHIFT l_slabs LEFT DELETING LEADING space.
            READ TABLE i_lfa1 INTO wa_lfa1 WITH KEY lifnr = wa_mkol-lifnr.
    sy-subrc check not done
            CONCATENATE c_item           " Item identification
                        l_slabs
                        " Consignment stock-unrestricted use
                        wa_mkol-lifnr    " Vendor account number
                        wa_lfa1-name1    " Vendor name
            INTO l_record.
            TRANSFER l_record TO g_file_name.
            CLEAR: l_slabs,
                   l_record.
          ENDLOOP.
        ENDIF.
        AT END OF werks.
    Close File
          CLOSE DATASET g_file_name.
          CLEAR   g_file_name.
        ENDAT.
      ENDLOOP.

    Hi,
    Yes thats correct. When using AT NEW. The field in internal table after the WERKS field will have ASTERSIK .
    So before AT NEW. Assign the work area to another work area. Eg.
    WA_mchb1 = wa_mchb.
    Later on i.e. After ENDAT use everywhere WA_MCHB1 and not not WA_MCHB.
    This will solve the problem.
    wa_sum-charg = wa_resb-charg.
    wa_sum-bdmng = wa_resb-bdmng.
    COLLECT wa_sum INTO i_sum.
    SORT i_sum BY charg.
    ENDLOOP.
    READ TABLE i_sum INTO wa_sum WITH KEY charg = wa_mchb-charg.
    IF sy-subrc EQ 0.
    l_bdmng = wa_sum-bdmng.
    SHIFT l_bdmng LEFT DELETING LEADING space.
    ENDIF.
    Calculation on Available quantity
    l_avqty = l_bdmng - l_clabs.
    SHIFT l_avqty LEFT DELETING LEADING space.
    <b>clear wa_mchb_new.</b>
    <b>wa_mchb_new = wa_mchb.</b>
    AT NEW werks.
    *Creation of file
    PERFORM sub_create_file.
    Open File on the application server for processing
    OPEN DATASET g_file_name FOR OUTPUT IN TEXT MODE
    ENCODING DEFAULT.
    IF sy-subrc NE 0.
    *Display error message
    MESSAGE i055 WITH g_file_name.
    " Error in opening file
    LEAVE LIST-PROCESSING.
    ENDIF.
    ENDAT.
    Transfering data to file
    CONCATENATE c_header "Header indentification
    <b>wa_mchb_new-matnr " Material number
    wa_mchb_new-werks " Plant
    wa_mchb_new-lgort " Storage location
    wa_mchb_new-charg " Batch number</b>l_clabs " Valuated stock-unrestricted use
    l_bdmng " Requirement quantity
    l_avqty " Avalable quantity.
    INTO l_record.
    TRANSFER l_record TO g_file_name.
    CLEAR: l_clabs,
    l_bdmng,
    l_avqty,
    l_record.
    READ TABLE i_mkol INTO wa_mkol WITH KEY matnr = <b>wa_mchb_new-matnr
    werks = wa_mchb_new-werks
    lgort = wa_mchb_new-lgort
    charg = wa_mchb_new-charg</b>BINARY SEARCH.
    IF sy-subrc EQ 0.
    l_tabix = sy-tabix.
    LOOP AT i_mkol INTO wa_mkol FROM l_tabix.
    *Population of consignment stock-unrestricted use
    l_slabs = wa_mkol-slabs.
    SHIFT l_slabs LEFT DELETING LEADING space.
    READ TABLE i_lfa1 INTO wa_lfa1 WITH KEY lifnr = wa_mkol-lifnr.
    sy-subrc check not done
    CONCATENATE c_item " Item identification
    l_slabs
    " Consignment stock-unrestricted use
    wa_mkol-lifnr " Vendor account number
    wa_lfa1-name1 " Vendor name
    INTO l_record.
    TRANSFER l_record TO g_file_name.
    CLEAR: l_slabs,
    l_record.
    ENDLOOP.
    ENDIF.
    AT END OF werks.
    Close File
    CLOSE DATASET g_file_name.
    CLEAR g_file_name.
    ENDAT.
    ENDLOOP.
    Best regards,
    Prashant
    PS : Please reward all helpful answers
    Message was edited by: Prashant Patil
    Message was edited by: Prashant Patil

  • Maximum length of header in the file on the application server?

    Hi there,
               I am uploading a file on the application server. I am writing the header separately which is column heading in char format. Then I am writing the data to that file.
               Now the problem is, I am unable to get more than 256 chars for each line in the file, including header, in <b>AL11 file view</b> and while I am <b>downloading that file on to my desktop</b>, I am <b>not</b> getting more than 256 chars from <b>header </b> line in my excel sheet however I am getting all the chars i.e. more than 256 chars of all the <b>data line</b>.
               Please can you tell,what could be the problem or let me know any way to see and download all the header line fields.

    I am using more than 256 chars at both the places i.e. header and data line. Still I am not getting more than 256 chars in the file.
    However while downloading that file onto the desktop, it is not showing more than 256 chars for the header part, but it showing all the values of data line, exceeding 256 chars.

  • Excel file cannot connect to server, offline copy

    Good day,
    I have a user in my company's portal (SharePoint 2007) that cannot upload changes made in excel file.
    He needs to have the compatibility view active in IE in order to be able to open the documents.
    If he does not have the compatibility view of IE for the application he gets an error saying  that "cannot connect to the server".
    With the compatibility view the user is able to open documents, but what happens is that the excel file connection to the server.
    So changes to the excel file are not submitted to the server.
    Does anyone have any idea of how to fix this issue?
    Is there any other information i can provide that can help on this issue?
    Thank you.

    What is the OS version?
    What is the Office version ?
    Regards,
    Pratik Vyas | SharePoint Consultant |
    http://sharepointpratik.blogspot.com
    Posting is provided AS IS with no warranties, and confers no rights
    Please remember to click Mark As Answer if a post solves your problem or
    Vote As Helpful if it was useful.

  • How to see the file at the application server

    HI TO ALL SDNERS ,
                                 THIS IS MY CODE WHERE TO CHECK THE DOWNLOADED FILE AT THE APPLICATION SERVER.IN TCODE AL11 I HAVE SEEN THERE IS NO FILE GETTING CREATED.WHEN TRANSFERRING THE SY-SUBRC VALUE IS ZERO.
    Program Name        : ZME11_BDC.
    Title               : PURCHASE INFORMATION RECORD LOAD PROGRAM
    Program Objective   : THIS PROGRAM READS IN THE PURCHASE
                          INFORMATION FILE. IT CREATES A BDC SESSION TO
                          USE TO LOAD THE PURCHASE INFORMATION RECORDS
                          INTO SAP using the ME11 Transaction.
    REPORT  ZME11_BDC no standard page heading MESSAGE-ID ZHNC line-size 55.
                constants declaration
    constants: c_x value 'X',
               c_sess type apqi-groupid value 'zcustomer',
               c_xd01 type tstc-tcode value 'ME11'.
                  DECLARING VARIABLES
    DATA: V_MSG(255),
          V_ERREC TYPE I,"NO OF FAILED RECORDS
          V_LINES."NO OF RECORDS
           FLAG DECLARATIONS
    DATA: FG_DATA_EXIST VALUE 'X',"CHECK FOR DATA
          FG_SESSION_OPEN VALUE ''.
          STRUCTURES AND INTERNAL TABLE DECLARATIONS
    TYPES :BEGIN OF TY_PIR,
             LIFNR TYPE EINA-LIFNR,
             MATNR TYPE EINA-MATNR,
             EKORG TYPE EINE-EKORG,
             WERKS TYPE EINE-WERKS,
             VERKF TYPE EINA-VERKF,"sales person
             TELF1 TYPE EINA-TELF1,"telephone
             URZLA TYPE EINA-URZLA,"country
             REGIO TYPE EINA-REGIO,"region
             APLFZ(5),"plan deleivery time
             EKGRP TYPE EINE-EKGRP,"purchase group
             NORBM(13),
             NETPR(13),
         END OF TY_PIR.
    DATA : IT_PIR TYPE TABLE OF TY_PIR,
           WA_PIR LIKE LINE OF IT_PIR.
    DATA: BEGIN OF IT_BDCDATA.
    INCLUDE STRUCTURE BDCDATA.
    DATA END OF IT_BDCDATA.
    DATA : BEGIN OF IT_BDCMSG.
    INCLUDE STRUCTURE BDCMSGCOLL.
    DATA END OF IT_BDCMSG.
                      SELECTION SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETER : FNAME TYPE RLGRAP-FILENAME.
    SELECTION-SCREEN END OF BLOCK B1.
                           AT SELECTION ON VALUE REQUEST
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR FNAME.
    CALL FUNCTION 'F4_FILENAME'
    EXPORTING
       PROGRAM_NAME        = SYST-CPROG
       DYNPRO_NUMBER       = SYST-DYNNR
       FIELD_NAME          = ' '
    IMPORTING
       FILE_NAME           = FNAME.
                             START OF SELECTION
    START-OF-SELECTION.
    PERFORM F_GET_DATA USING FNAME
                       CHANGING IT_PIR.
    PERFORM F_GENERATE_DATASET USING FNAME
                               CHANGING IT_PIR WA_PIR.
    *&      Form  F_GET_DATA
          text
         -->P_V_FNAME  text
         <--P_IT_PIR  text
    FORM F_GET_DATA  USING    P_FNAME LIKE FNAME
                     CHANGING P_IT_PIR LIKE IT_PIR.
    DATA: LV_FILE TYPE STRING.
    LV_FILE  = FNAME.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        FILENAME                      = LV_FILE
       FILETYPE                      = 'DAT'
      HAS_FIELD_SEPARATOR           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
      TABLES
        DATA_TAB                      = P_IT_PIR
    EXCEPTIONS
       FILE_OPEN_ERROR               = 1
       FILE_READ_ERROR               = 2
       NO_BATCH                      = 3
       GUI_REFUSE_FILETRANSFER       = 4
       INVALID_TYPE                  = 5
       NO_AUTHORITY                  = 6
       UNKNOWN_ERROR                 = 7
       BAD_DATA_FORMAT               = 8
       HEADER_NOT_ALLOWED            = 9
       SEPARATOR_NOT_ALLOWED         = 10
       HEADER_TOO_LONG               = 11
       UNKNOWN_DP_ERROR              = 12
       ACCESS_DENIED                 = 13
       DP_OUT_OF_MEMORY              = 14
       DISK_FULL                     = 15
       DP_TIMEOUT                    = 16
       OTHERS                        = 17
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    IF P_IT_PIR IS INITIAL.
    FG_DATA_EXIST = ''.
    ENDIF.
    ENDFORM.                    " F_GET_DATA
    *&      Form  F_GENERATE_DATASET
          text
         -->P_V_FNAME  text
         <--P_IT_PIR  text
    FORM F_GENERATE_DATASET  USING    P_V_FNAME LIKE FNAME
                             CHANGING P_IT_PIR LIKE IT_PIR
                                      P_WA_PIR LIKE WA_PIR.
    MESSAGE I001(ZHNC).
    *OPENING FILE AT THE APPLICATION SERVER FOR WRITING
    OPEN DATASET FNAME FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
    IF SY-SUBRC  EQ 0.
    MESSAGE I002(ZHNC).
    LOOP AT P_IT_PIR INTO P_WA_PIR.
    SPLIT P_WA_PIR AT '*' INTO P_WA_PIR-LIFNR
                               P_WA_PIR-MATNR
                               P_WA_PIR-EKORG
                               P_WA_PIR-WERKS
                               P_WA_PIR-VERKF
                               P_WA_PIR-TELF1
                               P_WA_PIR-URZLA
                               P_WA_PIR-REGIO
                               P_WA_PIR-APLFZ
                               P_WA_PIR-EKGRP
                               P_WA_PIR-NORBM.
    *TRANSFER THE FILE FROM INTERNAL TABLE TO APPLICATION SERVER
    MESSAGE I003(ZHNC).
    TRANSFER P_WA_PIR TO FNAME.
    ENDLOOP.
    *CLOSING THE FILE AT THE APPLICATION SERVER
    CLOSE DATASET FNAME.
    ENDIF.

    Hello,
    I made a similar program. You can have a look at it.
    *&      Form  write_to_app_server
          text
    -->  p1        text
    <--  p2        text
    FORM write_to_app_server.
    To get filename
      PERFORM get_filename.
    To write into the application server
      OPEN DATASET g_filename_with_path FOR OUTPUT IN TEXT MODE.
      IF sy-subrc = 0.
        LOOP AT <l_table> INTO <l_line>.
          TRANSFER <l_line> TO g_filename_with_path.
        ENDLOOP.
        CLOSE DATASET g_filename_with_path.
      ELSE.
        CLOSE DATASET g_filename_with_path.
      ENDIF.
    To send mail
      PERFORM send_mail.
    ENDFORM.                    " write_to_app_server
    *&      Form  get_filename
          text
    -->  p1        text
    <--  p2        text
    FORM get_filename.
      DATA : l_log_path TYPE  filepath-pathintern
                          VALUE 'Y28M_DOWNLOADS_BACKGROUND' .
      CALL FUNCTION 'FILE_GET_NAME_USING_PATH'
           EXPORTING
                client                     = sy-mandt
                logical_path               = l_log_path
                operating_system           = sy-opsys
                file_name                  = p_fname
           IMPORTING
                file_name_with_path        = g_filename_with_path
           EXCEPTIONS
                path_not_found             = 1
                missing_parameter          = 2
                operating_system_not_found = 3
                file_system_not_found      = 4
                OTHERS                     = 5.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " get_filename
    You may find it useful.
    Regards,
    Karuna.

  • How to delete string or line from unix file(dataset) of application server

    Hi  All,
    After transfer workarea information or all records into dataset(unix file). When I see the file in application server automatically the last line is shown a blank line. I am not passing any blank line.
    I have tried for single record than also the file generates the last line(2nd line) also a blank line.
    When I m reading the dataset, it is not reading the last blank line but why it is showing the last blank line?
    How to delete string or line from unix file(dataset) of application server?
    Please give your comments to resolve this.
    Thanks
    Tirumula Rao Chinni

    Hi Rio,
    I faced similar kind of issue working with files on UNIX platform.
    The line is a line feed to remove it use
    DATA : lv_carr_linefd TYPE abap_cr_lf VALUE cl_abap_char_utilities=>cr_lf. 
      DATA : lv_carr_return TYPE char1,                                   
             lv_line_feed   TYPE char1.                                          
      lv_line_feed   = lv_carr_linefd(1).
      lv_carr_return = lv_carr_linefd+1(1).
    Note: IMP: The character in ' ' is not space but is a special
    character set by pressing ALT and +255 simultaneosly
      REPLACE ALL OCCURRENCES OF lv_line_feed IN l_string WITH ' '.
      REPLACE ALL OCCURRENCES OF lv_carr_return IN l_string WITH ' '.

  • File from the Application server

    Hi gurus,
    I am working on a scenario where I need to get a file from the application server and for this I need to ask user to enter the location and that too at the selection screen and then I need to read this location using open data set and read data set in my program , once I am done with this I need to do some other validations. so can you please help me out how to achieve this.
    Thanks
    Rajeev Gupta

    Hi
    Declare the selection screen with file as parameter so that the user enter the application server file..
    the use the OPEND DATASET  as mentioned in below code and process
    Refer this:
    http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3ca6358411d1829f0000e829fbfe/frameset.htm
    ABAP code for uploading a TAB delimited file into an internal table. See code below for structures.
    *& Report  ZUPLOADTAB                                                  *                     &----
    *& Example of Uploading tab delimited file                             *
    REPORT  zuploadtab                    .
    PARAMETERS: p_infile  LIKE rlgrap-filename
                            OBLIGATORY DEFAULT  '/usr/sap/'..
    DATA: ld_file LIKE rlgrap-filename.
    *Internal tabe to store upload data
    TYPES: BEGIN OF t_record,
        name1 like pa0002-VORNA,
        name2 like pa0002-name2,
        age   type i,
        END OF t_record.
    DATA: it_record TYPE STANDARD TABLE OF t_record INITIAL SIZE 0,
          wa_record TYPE t_record.
    *Text version of data table
    TYPES: begin of t_uploadtxt,
      name1(10) type c,
      name2(15) type c,
      age(5)  type c,
    end of t_uploadtxt.
    DATA: wa_uploadtxt TYPE t_uploadtxt.
    *String value to data in initially.
    DATA: wa_string(255) type c.
    constants: con_tab TYPE x VALUE '09'.
    *If you have Unicode check active in program attributes then you will
    *need to declare constants as follows:
    *class cl_abap_char_utilities definition load.
    *constants:
       con_tab  type c value cl_abap_char_utilities=>HORIZONTAL_TAB.
    *START-OF-SELECTION
    START-OF-SELECTION.
    ld_file = p_infile.
    OPEN DATASET ld_file FOR INPUT IN TEXT MODE ENCODING DEFAULT.
    IF sy-subrc NE 0.
    ELSE.
      DO.
        CLEAR: wa_string, wa_uploadtxt.
        READ DATASET ld_file INTO wa_string.
        IF sy-subrc NE 0.
          EXIT.
        ELSE.
          SPLIT wa_string AT con_tab INTO wa_uploadtxt-name1
                                          wa_uploadtxt-name2
                                          wa_uploadtxt-age.
          MOVE-CORRESPONDING wa_uploadtxt TO wa_upload.
          APPEND wa_upload TO it_record.
        ENDIF.
      ENDDO.
      CLOSE DATASET ld_file.
    ENDIF.
    *END-OF-SELECTION
    END-OF-SELECTION.
    *!! Text data is now contained within the internal table IT_RECORD
    Display report data for illustration purposes
      loop at it_record into wa_record.
        write:/     sy-vline,
               (10) wa_record-name1, sy-vline,
               (10) wa_record-name2, sy-vline,
               (10) wa_record-age, sy-vline.
      endloop.
    Regards
    Anji

  • Upload tab-delimited file from the application server to an internal table

    Hello SAPients.
    I'm using OPEN DATASET..., READ DATASET..., CLOSE DATASET to upload a file from the application server (SunOS). I'm working with SAP 4.6C. I'm trying to upload a tab-delimited file to an internal table but when I try load it the fields are not correctly separated, in fact, they are all misplaced and the table shows '#' where supposedly there was a tab.
    I tried to SPLIT the line using as separator a variable with reference to CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB but for some reason that class doesn't exist in my system.
    Do you know what I'm doing wrong? or Do you know a better method to upload a tab-delimited file into an internal table?
    Thank you in advance for your help.

    Try:
    REPORT ztest MESSAGE-ID 00.
    PARAMETER: p_file LIKE rlgrap-filename   OBLIGATORY.
    DATA: BEGIN OF data_tab OCCURS 0,
          data(4096),
          END   OF data_tab.
    DATA: BEGIN OF vendor_file_x OCCURS 0.
    * LFA1 Data
    DATA: mandt  LIKE bgr00-mandt,
          lifnr  LIKE blf00-lifnr,
          anred  LIKE blfa1-anred,
          bahns  LIKE blfa1-bahns,
          bbbnr  LIKE blfa1-bbbnr,
          bbsnr  LIKE blfa1-bbsnr,
          begru  LIKE blfa1-begru,
          brsch  LIKE blfa1-brsch,
          bubkz  LIKE blfa1-bubkz,
          datlt  LIKE blfa1-datlt,
          dtams  LIKE blfa1-dtams,
          dtaws  LIKE blfa1-dtaws,
          erdat  LIKE  lfa1-erdat,
          ernam  LIKE  lfa1-ernam,
          esrnr  LIKE blfa1-esrnr,
          konzs  LIKE blfa1-konzs,
          ktokk  LIKE  lfa1-ktokk,
          kunnr  LIKE blfa1-kunnr,
          land1  LIKE blfa1-land1,
          lnrza  LIKE blfa1-lnrza,
          loevm  LIKE blfa1-loevm,
          name1  LIKE blfa1-name1,
          name2  LIKE blfa1-name2,
          name3  LIKE blfa1-name3,
          name4  LIKE blfa1-name4,
          ort01  LIKE blfa1-ort01,
          ort02  LIKE blfa1-ort02,
          pfach  LIKE blfa1-pfach,
          pstl2  LIKE blfa1-pstl2,
          pstlz  LIKE blfa1-pstlz,
          regio  LIKE blfa1-regio,
          sortl  LIKE blfa1-sortl,
          sperr  LIKE blfa1-sperr,
          sperm  LIKE blfa1-sperm,
          spras  LIKE blfa1-spras,
          stcd1  LIKE blfa1-stcd1,
          stcd2  LIKE blfa1-stcd2,
          stkza  LIKE blfa1-stkza,
          stkzu  LIKE blfa1-stkzu,
          stras  LIKE blfa1-stras,
          telbx  LIKE blfa1-telbx,
          telf1  LIKE blfa1-telf1,
          telf2  LIKE blfa1-telf2,
          telfx  LIKE blfa1-telfx,
          teltx  LIKE blfa1-teltx,
          telx1  LIKE blfa1-telx1,
          xcpdk  LIKE  lfa1-xcpdk,
          xzemp  LIKE blfa1-xzemp,
          vbund  LIKE blfa1-vbund,
          fiskn  LIKE blfa1-fiskn,
          stceg  LIKE blfa1-stceg,
          stkzn  LIKE blfa1-stkzn,
          sperq  LIKE blfa1-sperq,
          adrnr  LIKE  lfa1-adrnr,
          mcod1  LIKE  lfa1-mcod1,
          mcod2  LIKE  lfa1-mcod2,
          mcod3  LIKE  lfa1-mcod3,
          gbort  LIKE blfa1-gbort,
          gbdat  LIKE blfa1-gbdat,
          sexkz  LIKE blfa1-sexkz,
          kraus  LIKE blfa1-kraus,
          revdb  LIKE blfa1-revdb,
          qssys  LIKE blfa1-qssys,
          ktock  LIKE blfa1-ktock,
          pfort  LIKE blfa1-pfort,
          werks  LIKE blfa1-werks,
          ltsna  LIKE blfa1-ltsna,
          werkr  LIKE blfa1-werkr,
          plkal  LIKE  lfa1-plkal,
          duefl  LIKE  lfa1-duefl,
          txjcd  LIKE blfa1-txjcd,
          sperz  LIKE  lfa1-sperz,
          scacd  LIKE blfa1-scacd,
          sfrgr  LIKE blfa1-sfrgr,
          lzone  LIKE blfa1-lzone,
          xlfza  LIKE  lfa1-xlfza,
          dlgrp  LIKE blfa1-dlgrp,
          fityp  LIKE blfa1-fityp,
          stcdt  LIKE blfa1-stcdt,
          regss  LIKE blfa1-regss,
          actss  LIKE blfa1-actss,
          stcd3  LIKE blfa1-stcd3,
          stcd4  LIKE blfa1-stcd4,
          ipisp  LIKE blfa1-ipisp,
          taxbs  LIKE blfa1-taxbs,
          profs  LIKE blfa1-profs,
          stgdl  LIKE blfa1-stgdl,
          emnfr  LIKE blfa1-emnfr,
          lfurl  LIKE blfa1-lfurl,
          j_1kfrepre  LIKE blfa1-j_1kfrepre,
          j_1kftbus   LIKE blfa1-j_1kftbus,
          j_1kftind   LIKE blfa1-j_1kftind,
          confs  LIKE  lfa1-confs,
          updat  LIKE  lfa1-updat,
          uptim  LIKE  lfa1-uptim,
          nodel  LIKE blfa1-nodel.
    DATA: END   OF vendor_file_x.
    FIELD-SYMBOLS:  <field>,
                    <field_1>.
    DATA: delim          TYPE x        VALUE '09'.
    DATA: fld_chk(4096),
          last_char,
          quote_1     TYPE i,
          quote_2     TYPE i,
          fld_lth     TYPE i,
          columns     TYPE i,
          field_end   TYPE i,
          outp_rec    TYPE i,
          extras(3)   TYPE c        VALUE '.,"',
          mixed_no(14) TYPE c        VALUE '1234567890-.,"'.
    OPEN DATASET p_file FOR INPUT.
    DO.
      READ DATASET p_file INTO data_tab-data.
      IF sy-subrc = 0.
        APPEND data_tab.
      ELSE.
        EXIT.
      ENDIF.
    ENDDO.
    * count columns in output structure
    DO.
      ASSIGN COMPONENT sy-index OF STRUCTURE vendor_file_x TO <field>.
      IF sy-subrc <> 0.
        EXIT.
      ENDIF.
      columns = sy-index.
    ENDDO.
    * Assign elements of input file to internal table
    CLEAR vendor_file_x.
    IF columns > 0.
      LOOP AT data_tab.
        DO columns TIMES.
          ASSIGN space TO <field>.
          ASSIGN space TO <field_1>.
          ASSIGN COMPONENT sy-index OF STRUCTURE vendor_file_x TO <field>.
          SEARCH data_tab-data FOR delim.
          IF sy-fdpos > 0.
            field_end = sy-fdpos + 1.
            ASSIGN data_tab-data(sy-fdpos) TO <field_1>.
    * Check that numeric fields don't contain any embedded " or ,
            IF <field_1> CO mixed_no AND
               <field_1> CA extras.
              TRANSLATE <field_1> USING '" , '.
              CONDENSE <field_1> NO-GAPS.
            ENDIF.
    * If first and last characters are '"', remove both.
            fld_chk = <field_1>.
            IF NOT fld_chk IS INITIAL.
              fld_lth = strlen( fld_chk ) - 1.
              MOVE fld_chk+fld_lth(1) TO last_char.
              IF fld_chk(1) = '"' AND
                 last_char = '"'.
                MOVE space TO fld_chk+fld_lth(1).
                SHIFT fld_chk.
                MOVE fld_chk TO <field_1>.
              ENDIF.       " for if fld_chk(1)=" & last_char="
            ENDIF.         " for if not fld_chk is initial
    * Replace "" with "
            DO.
              IF fld_chk CS '""'.
                quote_1 = sy-fdpos.
                quote_2 = sy-fdpos + 1.
                MOVE fld_chk+quote_2 TO fld_chk+quote_1.
              ELSE.
                MOVE fld_chk TO <field_1>.
                EXIT.
              ENDIF.
            ENDDO.
            <field> = <field_1>.
          ELSE.
            field_end = 1.
          ENDIF.
          SHIFT data_tab-data LEFT BY field_end PLACES.
        ENDDO.
        APPEND vendor_file_x.
        CLEAR vendor_file_x.
      ENDLOOP.
    ENDIF.
    CLEAR   data_tab.
    REFRESH data_tab.
    FREE    data_tab.
    Rob

  • Error while extracting XML file from the application server

    Hi ,
    I am writing a XML file into the application server, after which when i try to extract the file to the local server using the report - RFASLDPC ,
    the file is extracted, but with a '#' symbol at the first position.
    Because of which the XML File does not open. But after i open the file in notepad and manually delete the '#' symbol and then reopen the file, it works fine.
    Is there any way to remove the '#' symbol while extracting itself ??
    Thanks in advance,
    Vikas.

    Select the option "No Character Set Conversion" in stead of Code page 1100.
    However, I still have troubles -> the downloaded xml file misses a space on several places. This causes errors too.

  • Printing files on the application server

    Hi,
    I am looking for ways to print files residing on the application server. Do you know of any function modules/transaction code that can do this?
    Here is my situation:
    I am using GRAPH_PRINT_POSTSCRIPT_FILE to print postscript file to the printer. I have no problem using this FM. The issue is that this function only prints files residing on the PC/local computer. It doesn't print any files on the application server.
    Thanks in advance for any help you can provide.

    Hi,
    use
       CALL FUNCTION 'F4_DXFILENAME_4_DYNP'
         EXPORTING
           dynpfield_filename = 'P_FNAME'
           dyname             = 'ZFILE_HELP'
           dynumb             = sy-dynnr
           filetype           = 'P'
           location           = 'A'.
    Thanks,
    NN.

  • Issue: XML File Downloading to Application Server

    Hi All,
    I am experiencing an issue downloading an XML File to the Application Server.
    I'm using FM SAP_CONVERT_TO_XML_FORMAT to convert SAP data to XML Format.
    After getting the XML data into XMLTAB, I'm using:
    OPEN DATASET pfile_fs FOR OUTPUT IN BINARY MODE .
         LOOP AT xmltab INTO xmltab_w.
         TRANSFER xmltab_w TO pfile_fs.
          CLEAR xmltab_w.
         ENDLOOP.
       CLOSE DATASET pfile_fs.
    The xml file is downloaded show an Error in 'XML page cannot be displayed
    Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.
    Invalid at the top level of the document. Error processing resource 'file:/shared/TEST/2009'
    But when i download xml file using the FM  WS_Download , the XML page has no errors .
    I am unable to figure out what could be the issue, If this issue is due to some characters like Chinese or Japanese then .. is there any solution for this .
    Please, give me your valuable suggestions.
    Thank you,
    Prasead

    Dear Prasead,
            Hope things are good at your end, i have got the same issue as well, could you please care to share the solution...Wud be of a gr8 help if you could do that, hope to have your response back.
    Regards,
    Abdul.

Maybe you are looking for

  • CUPC 8.6.3/Presence 8.5.2 Incoming call window does not appear

    Updated CUPC client to 8.6.3 on a Windows 7 32-bit workstation.  When a incoming call is placed, the incoming call windows to answer or send to VM is not appearing.  On the Show server health from the Help menu is showing all green.  Is there a setti

  • "Print Settings" are not stored in the print preset

    Hi everybody, It seems that, no matter how many times i save and update the profile, all the print setting (image size, sharpening, bit depth, color management, ...) are store within the preset, all but the Epson Driver settings, which have to be sel

  • GuiXT for projects - to call application within transaction

    Hi I'm using GuiXT for screen modifications and field layouts. I'm using Project Builder CJ20n. Everytime when i want to give a settlement rule to the WBS element within project i need to select the WBS element, g oto Edit --> Cost --> Settlement Rul

  • Cann't download from app store any more

    can't download from the app store anymore ........every time i try to download free app .......it goes to home page then the app shows with waiting ......but dont start with the download 

  • [solved] amarok stopped playing mp3's

    EDIT: using Xine backend phonon with no problem, except now I have no system notfication sounds, Ah well. I have my system updated. Amarok will not play mp3's, although it will play flac's. I started "amarok --debug" and I see: amarok: [EngineControl