Spool file query

Hi,
I am creating a number of flat files using sql to load into someone elses system and was wondering if there is a way of spooling a file without the column headings and the count at the end.
iwould like
SURNAME
SMITH
JONES
JENKINS
3 rows selected
to look like this
SMITH
JONES
JENKINS
thanks for your help
James

Thanks so much for your help.
some of these problems turn out to be so simple to fix in the end.
cheers
James

Similar Messages

  • Spool file problem,Can't see the query in output file.

    Hello ,
    I am facing a very old school kind of problem .....about spool file ....
    The scenario -
    I have made a script by name DB_Status_checkup.sql which i want to fire on the database to check the database status. In this script their are many queries regarding the data dictionary views to know about the database. It consist of nearly 25-30 different select queries..
    The problem is i want to make a spool file of the output of that query....i want to see the SQL query & the output below in the spool file, so it will be easy for me to judge the result. But i can't see the SQL query , i can only see the output , & in so many queries it all gets jumbled up....even i can't understand where the next output starts ...
    Sample of my SQL Script ....
    clear buffer
    spool D:\DB_status.txt
    /*To check the database startup time*/
    Select to_char(startup_time, 'HH24:MI DD-MON-YY') "Startup time"
    from v$instance
    .........next query n so on....
    spool off;
    In the output pf the spool file at D:\db_status.txt..
    Startup time
    08:25 16-JUL-10It shows only the output of the query in the spool file not the query,
    What should i do to get the SQL query as well as the output of that query just below it in the spool file ???
    Please suggest if you have anymore ideas , regarding this .....
    ORACLE 10g R2
    Windows Server 2008
    Thanks in advance ...

    Why don't you just use database control, instead of re-inventing the wheel?
    Apart from that, SQL*Plus has it's own reference manual, which you apparently refuse to read.
    The answer to your quiz/doc question is
    set echo on
    Sybrand Bakker
    Senior Oracle DBA

  • Spool file error - Buffer Overflow

    I've a sql script that is running from a.sql file. The script fetches almost 9 million data as a result of the query. Main problem is related to spool file generation. It is saying buffer overflow. But, when i write that query from sql prompts it is running within 2 mins and completes the task within 15 mins.
    I've written -
    set serveroutput on size ######
    But, still it is not working. Total application is freeze whenever i want to run it. Tell me any suggestion if u have.
    Satyaki.

    i guess what you are more concerned with is the output produced by your query (the spool file).
    you need not to see what is displayed on the screen all you need is open up the spool file to
    check for those data in there.
    to suppress the output from the screen and still generates spool file. use the SET TERMOUT option.
    e.g.
    -- code for a producing a sample spool file
    spool r:\sample_spool.txt;
    select * from emp;
    spool off;
    at the SQL*Plus command line:
    SQL> @r:\sample_spool.sql;
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
          7566 JONES      MANAGER         7839 02-APR-81       2975       1000         20
          7902 FORD       ANALYST         7566 03-DEC-81       3000                    20
          7839 KING       PRESIDENT            17-NOV-81       5000                    10
          7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30
          7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10
          7369 SMITH      CLERK           7902 17-DEC-80        800                    20
          7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
          7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30
          7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
          7788 SCOTT      ANALYST         7566 09-DEC-82       3000                    20
          7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30
          7876 ADAMS      CLERK           7788 12-JAN-83       1100                    20
          7900 JAMES      CLERK           7698 03-DEC-81        950                    30
          7934 MILLER     CLERK           7782 23-JAN-82       1300                    10
    14 rows selected.
    SQL> -- the above example displays the output on the screen
    SQL> -- now we want to turn it off by using the SET TERMOUT option
    SQL> SQL> set termout off;
    SQL> @r:\sample_spool.sql;
    SQL>
    after executing the script sample_spool.sql it does not display output from the screen which
    we want to avoid the buffer overflow error. and still produce the spool file:
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                  
          7566 JONES      MANAGER         7839 02-APR-81       2975       1000         20                                  
          7902 FORD       ANALYST         7566 03-DEC-81       3000                    20                                  
          7839 KING       PRESIDENT            17-NOV-81       5000                    10                                  
          7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30                                  
          7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10                                  
          7369 SMITH      CLERK           7902 17-DEC-80        800                    20                                  
          7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30                                  
          7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30                                  
          7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30                                  
          7788 SCOTT      ANALYST         7566 09-DEC-82       3000                    20                                  
          7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30                                  
          7876 ADAMS      CLERK           7788 12-JAN-83       1100                    20                                  
          7900 JAMES      CLERK           7698 03-DEC-81        950                    30                                  
          7934 MILLER     CLERK           7782 23-JAN-82       1300                    10                                  
    14 rows selected.

  • How to get the number of rows written to the header of the spool file.

    Hi
    I need to create a header line for the spool file .
    the header line should include fixed length values .
    The header should include the number of records found in the table with a maximum begin date (begin_date is the column of the table)
    To get the header in the spool file , i wrote a select query has :-
    --SPOOL 'C:\Documents and Settings\abc\Desktop\output.TXT'
    select 'W'||to_char(sysdate,'MM/DD/YYYYMi:HH:SS')||lpad(max(rownum),9,'000000000') ||'R'||max(to_char(school_from_date,'MM/DD/YYYY')) ||
    rpad(' ',76,' ')
    from dad.school
    group by sysdate;
    SPOOL OFF
    which gets me all the rows in the table , but i only want the rows with the latest school_begin_date .
    how can i achieve that ...
    I know that a subquery should be written in the from clause to get the number of rows found with a maximum school_begin_date.
    select 'W'||to_char(sysdate,'MM/DD/YYYYMi:HH:SS')||lpad(max(rownum),9,'000000000') ||'R'||max(to_char(school_from_date,'MM/DD/YYYY')) ||
    rpad(' ',76,' ')
    from dad.school where
    select rownum from dad.school
    where school_begin_date = max(school_begin_date) ;
    the error i get is
    ORA-00934: group function is not allowed here
    I NEED HELP ..IN GETTING THE ROWNUM JUST FOR THE LATEST BEGIN_DATE ?
    PLS HELP ME IN WRITING THE QUERY .
    THANKS IN ADVANCE .

    Try this:
    select 'W'||to_char(sysdate,'MM/DD/YYYYMi:HH:SS')||lpad(max(rownum),9,'000000000')||'R'||max(to_char(school_from_date,'MM/DD/YYYY')) || rpad(' ',76,' ')
      from dad.school
    where school_begin_date = (select max(school_begin_date)
                                  from dad.school);

  • Need Spool file 255 characters for background HR Reports into Excel

    We have been looking for a solution for problem this for more than 2 years now.
    Problem:
    1.     Requirement is to run large HR reports – either standard or with Ad Hoc Query in background mode in a company with more than 50,000 employees.
    2.     Nobody wants printed reports these days.  We want to save the forests. Customers prefer to be emailed an Excel file so they can do further data analysis, filtering, pivot tables etc.
    3.     Reports are running OK in foreground for smaller sections of the organisation, where you send the output to Excel from ALV, or save as a local file in spreadsheet format.
    4.     But large reports for entire company are awkward, tie up your PCs resources, and complex reports accessing many tables can timeout before completion.
    5.     So scheduling these reports to run in background would be the ideal solution.
    6.     However when we access the report output from SP02, we find that most reports (say with more than 13 or so fields) have an output wider than 255 characters and the output of the spool file wraps to the next line in Excel.  It is very tricky to then parse the data back into one row for each employee.  And you have a problem if you output is for 50,000 or so employees, because then you file is 100,000 rows and will not load completely into Excel – limit problem of 65,536 characters.
    7.     We simply want a spool file that does not wrap the data to the next line after 255 characters.
    8.     But how to explain this simple requirement to some technical people. It seems a lot of posts on SDN think we always want to print a spool file.  NO – remember the forests!
    Possible Solutions:
    I see a lot of posts here that refer to OSS note 186603, but they don’t mention the target for the output of the spool is to import into an Excel File (i.e. spreadsheet format).  Just search for 186603 or ” Spool request with more than 255 columns”.  There is also a reference to OSS note 313566.  I am not sure if these will work?
    I have also seen the suggestions that you need to define a customer printer format that does not wrap the output after 255 characters (create a new format type in transaction SPAD).
    Can anyone help us!
    John McKee

    Hi,
    Can you please check whether you can use:
    CONSTANTS C_LF TYPE X VALUE '0A'.
    CONSTANTS C_CR TYPE X VALUE '0D'.
    Regards,
    Lakshmi.

  • Need help for Scheduling a Spool file and FTP the file

    I have one requirement like below...
    1. Start Scheduling a job
    2. Generate a Spool file (.csv file)
    3. If Spool file generation is successful then start FTP the file
    Else End job
    4. After successful FTP process end the job.
    We need to create a log file also for this job.
    Can any body give some idea how will i proceed?
    Thanks in advance.

    Billy  Verreynne  wrote:
    BluShadow wrote:
    Chris' may be wrapped, but it includes the funky ability to query remote files directly in SQL due to it's use of pipelined functions. A feature I've also got in my own FTP package and very useful for monitoring logs on remote servers through our Apex applications. ;)Ditto - also rolled my own FTP package as doing wildcard file listing requires custom support depending on the type of FTP server you're dealing with. The text part of the responses differ (these are not RFC'ed) and makes parsing more complex than what it could have been.Yeah, the differing responses can be a pain, though fortunately they are far and few between. There was a bug in Chris' package in that it wasn't handling a two code response from a windows FTP server for one of the commands, but I emailed him and he fixed that. Not his fault, he didn't have a windows FTP server to test on at the time.
    FTP is a pretty straight forward protocol and easy to wrap a PL/SQL package around (using <i>UTL_TCP</i>).Absolutely. and the RFC details almost everthing you need to handle. It was quite quick to knock up a package, similar to the code hoek has linked to.
    I think there is a lot of common stuff that many of us do in this regard. Always wondered how well a proper GPL'ed open source project providing a PL/SQL development framework and libraries would do...I think there'd be a lot of arguments about what is the best way of doing things. :D

  • Blank line in the spool file

    Good day,
    I was trying to retrive data from the table and save the results in the spool file, but I find blank lines in the spool file. What can be the couses of that? I am using oracle 9i.
    regards
    Talifhani

    SET SHOWMODE off
    SET FEEDBACK OFF
    SET VERIFY off
    SET RECSEP off
    SET TRIMSPOOL on
    SET LINESIZE 20000
    SET HEADING OFF
    SET PAGESIZE 0
    SET PAGES 0
    ==>Select the spool file
    ==>Run you query
    ==>Spool off.
    Now check the spool file.
    Good luck!!!
    Bhagat

  • Append new records for a spool file

    Hello,
    I am running a query and sending the output to a spool file.
    The query never returns the same data because it is run every 2
    hours
    How can I make the spool to append the new records and not
    overwrite the old records?
    Thanks
    Carlos

    SPOOL.SPO[OL] [filename[.ext]|OFF|OUT]
    Oracle documentation provides no indication that any append
    functionality exists for the sql*plus command SPOOL.
    I can recommend two solutions:
    1. Spool to a temporary file in sql*plus, then perform a
    concatenation using the OS. Automate the process with a shell
    script (or batch file, as the case may be).
    2. Write the file using DBMS_OUTPUT.
    -Kevin

  • Spool file with just the data

    Hi,
    I have a sql query that I'm spooling to a file. I have set echo off, heading off, feedback off, verify off. The spool file is exactly what I want except for the SQL prompt and the actual query. It looks like this:
    SQL> "select statement;"
    data data
    data data
    data data
    data data
    SQL>
    What parameter do I set so that the
    SQL> "select statement"
    doesn't appear in the spooled file at the top, and
    SQL>
    doesn't appear at the bottom?
    I need data only.
    Thanks
    -Bob

    Hi,
    Try running your SQL from within a script instead of executing it directly from SQL prompt.
    i.e. Script a.sql
    set head off;
    set echo off;
    set feed off;
    set verify off;
    spool c:\1;
    select col1, col2
    from table;
    Spool Off;
    set head on;
    set echo on;
    set feed on;
    set verify on;
    In SQL promot,
    SQL> @a
    This should give you the output without SQL commands etc.
    Shailender Mehta

  • SQL and Spool File: low performance  (Oracle 8)

    Hi,
    I've got some difficulties with the spool function: it works very slowly when I have to write on a file.
    In details, a shell script starts the PL/SQL procedure, which starts the spool function that produces a file.dat .
    Oracle solves the query and sends out the data immediately. This with 850 million of records for a 20gb final file. The total time to write this file is 8 hours.
    May it be a solutions with could to improve this file writing procedure, trying not to use the spool function, like a C program which could work on the memory? In this way it could take fewer time.
    Thank you for your suggestions and solutions.
    A

    Oracle RDBMS does not write to the spool file. The client does (SQL*Plus in this case).
    SQL*Plus uses standard kernel calls.
    To open/create the file and write data to it:
    - open call with flags O_WRONLY|O_CREAT|O_TRUNC (see open (C System Call) - Code Wiki)
    - write call to file descriptor (see write (C System Call) - Code Wiki)
    These are standard calls supported by all modern kernels (Unix, Linux, Windows, OS/X, etc). The performance of which is entirely dependant on how fast the kernel can service the call. Which in turn is dependant on the speed of the file system on which these calls operate.
    Speeding up a spool type process typically means using async I/O (called overlap I/O in the Windows kernel). The approach being to fetch the next set of data from the database cursor, while writing the previous fetch's data to spool file, at the same time.
    Of course, better and faster hardware can also improve the performance of the I/O subsystem and make such a spool process faster.

  • Spool file, column width question

    I'm a new user, and just converted to Oracle 9 from Informix.
    I am trying to create a (comma delimited) spool file, but the
    column width for some of the numbers that I'm pulling in my
    queries are very wide. For example, if my query is pulling
    first, last, account#, and cust#, the spool output is as such:
    JOHN , SMITH ,
    10203 , 4987
    I realize I can use 'COL name FOR an' to adjust the width of the
    text columns, but how can I make the width of the number columns
    only 5 or 6 digits wide?
    Help!

    Peter,
    If you just want a comma separated value file without formatted columns and you want to eliminate all spaces, then just trim all your values and concatenate them together. See the example below.
    Barbara
    SQL> -- test table:
    SQL> CREATE TABLE mrs_record_load_errors
      2    (DF_ID                 NUMBER   (10)   NOT NULL,
      3     RECORD_NUMBER         NUMBER   (10)   NOT NULL,
      4     DF_ID_REJECT          NUMBER   (10),
      5     METER_POINT_REFERENCE NUMBER   (10),
      6     ERROR_CODE            VARCHAR2 (8),
      7     ERROR_TEXT            VARCHAR2 (200),
      8     RECORD_IMAGE          VARCHAR2 (2000),
      9     PROBLEM               CHAR     (1),
    10     DF_ID_OUT             NUMBER   (10),
    11     FIELD_NUMBER          NUMBER   (10),
    12     RECORD_STATUS         VARCHAR2 (1),
    13     CLIENT_REFERENCE      VARCHAR2 (30),
    14     TRANS_TYPE            VARCHAR2 (3))
    15  /
    Table created.
    SQL> -- test data:
    SQL> INSERT INTO mrs_record_load_errors
      2  VALUES
      3    (245399, 2, 3, 4, 'A', 'B', 'C', 'D', 5, 6, 'E', 'F', 'G')
      4  /
    1 row created.
    SQL> -- test:
    SQL> SET HEADING OFF
    SQL> SELECT '"'
      2         || TO_CHAR (df_id)
      3         || ','
      4         || record_number
      5         || ','
      6         || df_id_reject
      7         || ','
      8         || meter_point_reference
      9         || ','
    10         || LTRIM (RTRIM (error_code))
    11         || ','
    12         || LTRIM (RTRIM (error_text))
    13         || ','
    14         || LTRIM (RTRIM (record_image))
    15         || ','
    16         || problem
    17         || ','
    18         || df_id_out
    19         || ','
    20         || field_number
    21         || ','
    22         || record_status
    23         || ','
    24         || LTRIM (RTRIM (client_reference))
    25         || ','
    26         || LTRIM (RTRIM (trans_type))
    27         || '"'
    28  FROM   mrs_record_load_errors
    29  /
    "245399,2,3,4,A,B,C,D,5,6,E,F,G"

  • Spool file format

    Hi,
    I am trying to come up with a clean consistent spool file format. Right now when I set linesize in sqplus to 9999, the rows in my spool file are printed far apart. so for a small query result I end getting a long file. The linesize is what I want for sqlplus but not spooling. Anyone have settings that would fix this?
    Thanks.

    set trimspool on
    should trunc the lines on the last non blank character.
    Nicolas.

  • Dunning letters as individual/separate spool file

    Hi All,
    I've found that dunning run by F150 in my company sometimes gives an output results as separate spool file for every customer what is unexpected.  Usually we get one common spool with multiple pages. I would appreciate it somebody can give me the clue what is the reason. I couldn't find any system and transaction settings... Thanks in advance.
    Greg

    Hi,
    see the link below :
    http://web.mit.edu/CAO/www/SB2002/AR/F150.htm
    SKS

  • How to spool out put of multiple scripts and get a single spool file output

    Hi,
    I have one master script that calls three other scripts. The three scripts each produce their own spool files. But I would like to have the master script also produce one single output (in addition to the three indiviual output I mean). How to do that? Can you please help.
    Following are the scripts:
    --m.sql (master script)
    spool c:\m.log
    @1.sql
    @2.sql
    @3.sql
    spool off
    --1.sql
    spool c:\1.log
    insert into test values(1);
    commit;
    spool off
    --2.sql
    spool c:\2.log
    insert into test values(2);
    commit;
    spool off
    spool c:\3.log
    insert into test values(3);
    commit;
    spool off
    --table used
    SQL> desc test
    Name                                      Null?    Type
    A                                                  NUMBERWhen I run the above script m.sql it does produce the other 3 log files (1.log,2.log etc) but m.log (which is master log file which should have output of each of the three calling script) is empty file with 0 byte!
    Thanks
    Edited by: orausern on May 1, 2011 3:17 AM

    I have one master script that calls three other scripts. The three scripts each produce their own spool files. But I would like to have the master script also produce one single output (in addition to the three indiviual output I mean). How to do that? Can you please help. Not sure if that's possible directly with sqlplus spool option
    When you spool to a different file in a single session, sqlplus stops writing to earlier spool file and redirects the output to the file specified in last spool command.
    at the end of the script, however, below may help
    host type c:\1.log >> c:\m.log
    host type c:\2.log >> c:\m.log
    host type c:\3.log >> c:\m.log

  • Can a spool file be sent as an attachment in the decision step?

    Hi,
    I have z program that runs in background and produces a spool file. Normally, I can use tcode SP01 to display this file. At the end of this z program, I call SWW_WI_START_SIMPLE to send a workflow into SAP inbox. I want to know if I somhow can send the spool file along also? I read about attachment and SOFM object but still can't figure out what I need to do yet. Please help.
    Thank you,
    TH

    Hi Th,
    Check this code if helpful.
    FORM pdf_conversion.
      CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
           EXPORTING
                src_spoolid              = spoolno
                no_dialog                = ' '
           IMPORTING
                pdf_bytecount            = numbytes
                pdf_spoolid              = pdfspoolid
                btc_jobname              = jobname
                btc_jobcount             = jobcount
           TABLES
                pdf                      = pdf
           EXCEPTIONS
                err_no_abap_spooljob     = 1
                err_no_spooljob          = 2
                err_no_permission        = 3
                err_conv_not_possible    = 4
                err_bad_destdevice       = 5
                user_cancelled           = 6
                err_spoolerror           = 7
                err_temseerror           = 8
                err_btcjob_open_failed   = 9
                err_btcjob_submit_failed = 10
                err_btcjob_close_failed  = 11.
    ENDFORM.                    " PDF_CONVERSION
          FORM SPOOL                                                    *
    FORM spool.
      PERFORM display.
      CALL FUNCTION 'GET_PRINT_PARAMETERS'
           EXPORTING
               destination            = 'LOCL'
                immediately            = ' '
                new_list_id            = 'X'
                expiration             = '9'
                in_parameters          = p_pripar
                layout                 = 'X_65_132'
                line_count             = 65
                line_size              = 132
                mode                   = 'DEFVALS'
                no_dialog              = 'X'
           IMPORTING
                out_parameters         = p_pripar
                valid                  = val
           EXCEPTIONS
                archive_info_not_found = 1
                invalid_print_params   = 2
                invalid_archive_params = 3
                OTHERS                 = 4.
      NEW-PAGE PRINT ON NEW-SECTION PARAMETERS p_pripar NO DIALOG.
      PERFORM display.
      NEW-PAGE PRINT OFF.
      CLEAR t_filename_tx.
      CONCATENATE 'c:\temp\' p_mat '.pdf' INTO t_filename_tx.
      CONDENSE t_filename_tx.
      SELECT * FROM tsp01 INTO TABLE t_tsp01
           WHERE rqowner EQ sy-uname.
      SORT t_tsp01  BY rqcretime DESCENDING.
      LOOP AT t_tsp01.
        spoolno = t_tsp01-rqident.
        EXIT.
      ENDLOOP.
      IF sy-subrc EQ 0.
        PERFORM pdf_conversion.
      ENDIF.
    sending that inernal to mail
    FUNCTION z_p_traveler_workflow.
    ""Local interface:
    *"  IMPORTING
    *"     REFERENCE(V_FILE_PATH) LIKE  RLGRAP-FILENAME
    *"     REFERENCE(DOKNR) LIKE  CRVD_A-DOKNR
    *"     REFERENCE(DOKVR) LIKE  CRVD_A-DOKVR
    *"  TABLES
    *"      PDF STRUCTURE  TLINE
    D A T A
      DATA: w_gd_doc_data LIKE sodocchgi1.
    internal table for body content of the email
      DATA: t_message LIKE solisti1 OCCURS 0 WITH HEADER LINE.
    internal table for receivers of email
      DATA: t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE.
    internal table for attachment data
      DATA: t_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE.
    *internal table for Information about structure of data tables
      DATA: t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE.
    internal tables for attachment data
      DATA: t_xi_pdf LIKE tline OCCURS 0  WITH HEADER LINE,
            t_xi_temp LIKE bapiqcmime OCCURS 0  WITH HEADER LINE,
            t_xi_mime(255) TYPE c OCCURS 0  WITH HEADER LINE,
            t_html LIKE solisti1   OCCURS 0  WITH HEADER LINE.
    for splitting of the filepath
      DATA : BEGIN OF t_split OCCURS 0,
                row(50),
             END OF t_split.
      DATA:  w_tab_lines LIKE sy-tabix,
             w_subject TYPE so_obj_des,                " for email header
             w_file_path1 TYPE string.                 "file path
      DATA : w_lines       TYPE i,
             w_temp(500)   TYPE c,
             w_offset      TYPE p,
             w_lineslen(2) TYPE p,
             w_mimelen(2)  TYPE p,
             w_tabix       LIKE sy-tabix.
      DATA : w_len      TYPE i,
             w_index    LIKE sy-index,
             w_doc_type TYPE  so_obj_tp,
             w_filename TYPE  so_obj_des .
    internal table for gettting personal numbers of quality engineers
      DATA: BEGIN OF t_ztptwf2 OCCURS 0,
            pernr LIKE ztptwf2-pernr,        "personal number
            END OF t_ztptwf2.
    internal table for gettting userids of quality engineers
      DATA: BEGIN OF t_pa0105 OCCURS 0,
            usrid LIKE pa0105-usrid,       " user id of the quality engineer
            END OF t_pa0105.
    move file path to w_file_path
      w_file_path1 = v_file_path.
    *assign subject of the email
      w_subject = text-006.                  "Travaler Document to Approve
    refreshing the internal tables
      REFRESH : t_objbin, t_packing_list, t_split.
      CLEAR   : t_objbin, t_packing_list, t_split.
      CLEAR   : t_xi_pdf, t_xi_temp.
      REFRESH : t_xi_pdf, t_xi_temp.
      CLEAR: w_temp, w_offset, t_xi_temp.
    move attachment data to t_xi_pdf[].
      t_xi_pdf[] = pdf[].
    Reformat the line to 255 characters wide
      DESCRIBE TABLE t_xi_pdf   LINES  w_lines.
      DESCRIBE FIELD t_xi_pdf   LENGTH w_lineslen.
      DESCRIBE FIELD t_xi_temp  LENGTH w_mimelen.
      LOOP AT t_xi_pdf.
        w_tabix = sy-tabix.
        MOVE t_xi_pdf TO w_temp+w_offset.
        IF w_tabix = w_lines.
          w_lineslen = strlen( t_xi_pdf ).
        ENDIF.
        w_offset = w_offset + w_lineslen.
        IF w_offset GE w_mimelen.
          CLEAR t_xi_temp.
          t_xi_temp = w_temp(w_mimelen).
          APPEND t_xi_temp.
          SHIFT w_temp BY w_mimelen PLACES.
          w_offset = w_offset - w_mimelen.
        ENDIF.
        IF w_tabix = w_lines.
          IF w_offset GT 0.
            CLEAR t_xi_temp.
            t_xi_temp = w_temp(w_offset).
            APPEND t_xi_temp.
          ENDIF.
        ENDIF.
      ENDLOOP.
    *move data from t_xi_temp to t_xi_mime
      LOOP AT t_xi_temp.
        t_xi_mime(255) = t_xi_temp-line.
        APPEND t_xi_mime.
        CLEAR  t_xi_mime.
      ENDLOOP.
    *move data from t_xi_mime[] to t_html[]
      t_html[] = t_xi_mime[].
    *move data from t_html[] to t_objbin.
      LOOP AT t_html.
        t_objbin-line = t_html-line.
        APPEND t_objbin.
        CLEAR t_objbin.
      ENDLOOP.
    *fill the body of email
      t_message = text-005.                        "Mail with PDF attachment
      APPEND t_message.
      CLEAR t_message.
      t_message = text-004.    "Please double click the attachment to verify
      APPEND t_message.
      CLEAR t_message.
      concatenate 'COPY FOR VIEWING ONLY-NOT TO BE'
              'USED/PRINTED FOR PRODUCTION' into t_message separated by
    space.
      APPEND t_message.
      CLEAR t_message.
      IF NOT doknr IS INITIAL.
        CONCATENATE text-001                     "The Document
                    doknr
                    text-002                     "and Version
                    dokvr
                    text-003 INTO                "is changed
                t_message SEPARATED BY space.
        APPEND t_message.
        CLEAR t_message.
      ENDIF.
      DESCRIBE TABLE t_message LINES w_tab_lines.
      READ     TABLE t_message INDEX w_tab_lines.
      w_gd_doc_data-doc_size = ( w_tab_lines - 1 ) *
                                               255 + STRLEN( t_message ).
      w_gd_doc_data-obj_langu  = sy-langu.
      w_gd_doc_data-obj_name   = 'SENDFILE'.
      w_gd_doc_data-obj_descr  = w_subject.
      w_gd_doc_data-sensitivty = 'O'.
      CLEAR t_packing_list.
      t_packing_list-head_start = 1.
      t_packing_list-head_num   = 0.
      t_packing_list-body_start = 1.
      t_packing_list-doc_type   = 'RAW'.
      t_packing_list-body_num   = w_tab_lines.
      APPEND t_packing_list.
      IF NOT w_file_path1 IS INITIAL.
        w_len = strlen( w_file_path1 ) - 3.
        w_doc_type = w_file_path1+w_len(3) .
        TRANSLATE w_doc_type TO UPPER CASE .
        SPLIT w_file_path1 AT '\' INTO TABLE t_split .
        DESCRIBE TABLE t_split LINES w_index .
        READ TABLE t_split INDEX w_index .
        w_filename = t_split-row .
        w_len = strlen( w_filename ) - 4.
        w_filename = w_filename(w_len) .
        DESCRIBE TABLE t_objbin LINES w_tab_lines.
        t_packing_list-transf_bin = 'X'.
        t_packing_list-head_start = 1.
        t_packing_list-head_num   = 1.
        t_packing_list-body_start = 1.
        t_packing_list-doc_type   = w_doc_type.
        t_packing_list-body_num   = w_tab_lines.
        t_packing_list-doc_size   = w_tab_lines * 255.
        t_packing_list-obj_descr  = w_filename.
        APPEND t_packing_list.
      ENDIF.
    fill the Receivers
      SELECT * FROM ztptwf2 INTO TABLE t_ztptwf2.
      IF NOT t_ztptwf2[] IS INITIAL.
        SELECT usrid FROM pa0105 INTO TABLE t_pa0105 FOR ALL ENTRIES IN
      t_ztptwf2 WHERE pernr = t_ztptwf2-pernr AND subty = '0001' .
        LOOP AT t_pa0105.
          t_receivers-receiver = t_pa0105-usrid.
          t_receivers-rec_type = 'B'.
          APPEND t_receivers .
          CLEAR t_receivers.
        ENDLOOP.
      ENDIF.
      IF  NOT t_receivers[] IS INITIAL.
    Call the FM to post the message to SAPMAIL
        CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
             EXPORTING
                  document_data              = w_gd_doc_data
                  commit_work                = 'X'
             TABLES
                  packing_list               = t_packing_list
                  contents_txt               = t_message
                  contents_bin               = t_objbin
                  receivers                  = t_receivers
             EXCEPTIONS
                  too_many_receivers         = 1
                  document_not_sent          = 2
                  document_type_not_exist    = 3
                  operation_no_authorization = 4
                  parameter_error            = 5
                  x_error                    = 6
                  enqueue_error              = 7
                  OTHERS                     = 8.
      ENDIF.
      FREE: t_objbin,t_message,t_packing_list,t_receivers.
    i hope this code will solve your problem.
    Sankar

Maybe you are looking for

  • Hard drive not recognized on startup. hp pavilion ze4900 laptop

    Receive the following screen message when I try to start.  hp pavilion ze4900 laptop Intel UNDI, PXE-2.0 (build 082) Copyright (C) 1997-2000   Intel Corporation For Realtek RTL8139(X)/8130/810X PCI Fast Ethernet Controller v2.13 (020326) PXE-E61:  Me

  • What's the difference between AIA 3.0 and AIA FP 11g Release 1 (11.1.1.4.0)

    Hi, experts, Have a question need your great help and clarification, you know we have Oracle AIA Foundation Pack 2.5 based on SOA 10.1.3.4 installation, the new release for SOA has been released on this version Oracle Fusion Middleware 11g R1 (11.1.1

  • Why should i use Java in Web form

    I am making a web calculator. Its takes some inputs from the user and evaluates input to calculate the result. I dont want the user to see the interpretation of their result. I am new to java. Can anybody tell me if i can do that with ASP?

  • ALV Hierarchy

    Hi Experts, I have Hierarchy report, but i took 2 tables header and item tables, but in my output item table is dispalying but heading is not displaying, is there any setting problem and header table heading is gone right side, not displaying properl

  • Production order changes through sales order

    Mine is a MTO business process. I am using strategy 50. when ever I create a production order from the planned order its getting attached to the sales order which is  expected and obivous. when ever the sales order gets rescheduled its also re schedu