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 dont 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 McKeeHi,
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 -
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
TalifhaniSET 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
CarlosSPOOL.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 -
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
-BobHi,
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.
AOracle 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" -
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.
GregHi,
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 AMI 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,
THHi 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
-
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?
-
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