Spool Request Date
Hello experts,
I want to get the spool request date corresponding to the spool request number from a table. Can you please tell me from where i can get the spool request date??? After search i got that table TSP01 contains the spool request number/id. But how and where to use it exactly i dont know.
Thanks!!
Hi,
TSP01-RQCRETIME field is having concatenation of Date and Time.
TSP01-RQCRETIME(8) specifies the spool request creation datae and
TSP01-RQCRETIME+8(8) will give the spool request created time.
Thanks,
Renuka S.
Similar Messages
-
Spool Request contains disrelated data
Dear All
I met a strange issue, the spool reqeust contains disrelated data.
the phenomenon is:
I created a JOB with function fronted. But when the JOB finished, I found other disrelated data in this spool request.
I'm not sure whether one spool request can contain several print requests?
When I create the request at the same time other function create in this spool request?By default, SAP merges forms in existing spool requests with same properties, listed here: [Note 85318 appending documents to existing spool requests|http://service.sap.com/sap/support/notes/85318]. You may force them to go in a new spool request using output parameters when printing the form (see the note).
-
Creating the spool request for the internal table data
Hi..
I am little confused with the function module used for creating the spool request.
well...I am practicing the ALV report and sending the that report to the spool.
I ve used the FM SLVC_TABLE_PS_TO_SPOOL.
this is the way i defined the internal table.
Data:
begin of imat occurs 0,
matnr like marav-matnr,
maktx like marav-maktx,
matkl like marav-matkl,
ntgew like marav-ntgew,
gewei like marav-gewei,
end of imat.
data i_lines type sy-tfill
and i declared..
describe table imat lines i_lines.
then i given the value for i_file_length as i_lines in the export paramet of the FM SLVC_TABLE_PS_TO_SPOOL.
CALL FUNCTION 'SLVC_TABLE_PS_TO_SPOOL'
EXPORTING
i_file_length = i_lines
IMPORTING
E_SPOOLID = spoolid
tables
it_textdata = imat
when i executed it shows the list and wen going back it shows the runtime error as
CALL_FUNCTION_CONFLICT_LENG - Type conflict when calling a function module (field length).
please provide me some solutions.
thanks in advance.
etienne.Hi satyajit,
Thanks for your response....but the fields in my internal table "IMAT" is not compatible with the structure LVC_S_1022 as it has it componenrt - LINE.
so how can i define my internal table IMAT as type lvc_s_1022 as you suggested.
thanks in advance.
etienne. -
Converting OTF data from script to Spool Request
Hello,
Is there any way to convert OTF data into Spool Request.
Actual scenario is for the Order Acknowledgement form they have configured the output type for Print Medium and here the spool is generated through Close_Form . Based on the spool no they are converting the spool to PDF and then placing a copy in the Unix Directory.
They have also configured the form for Fax Medium , but here in the close_form they are getting the Fax number instead of spool number. As this way it just Fax the output to required destination , user require a copy of the output should be converted to PDF and then it has to be placed in Unix directory as it is happening for print medium.
The problem here in the close form for first case , i can see the spool id but in the second case that is not happening . So only OTF data is available with me. So is there any way where i can pass OTF data get spool id . So that if i have spool id rest will be taken care by my existing logic.
I Appreciate your valuable inputs.
Thanks,
SubashCheck this code snippet.
data : it_spool TYPE STANDARD TABLE OF rsporq ,
it_pdf TYPE STANDARD TABLE OF tline ,
v_objtype TYPE rststype-type ,
v_name TYPE rststype-name .
*& Form find_spool_request_id
FORM find_spool_request_id.
CALL FUNCTION 'RSPO_FIND_SPOOL_REQUESTS'
EXPORTING
allclients = '320'
datatype = '*'
has_output_requests = '*'
rq0name = nast-dsnam
rq1name = '*'
rq2name = '*'
rqdest = 'LOCL'
rqowner = sy-uname
TABLES
spoolrequests = it_spool
EXCEPTIONS
no_permission = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE i000 DISPLAY LIKE 'E' WITH text-002.
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM. " find_spool_request_id
*& Form convert_spool_to_pdf
FORM convert_spool_to_pdf .
READ TABLE it_spool INTO wa_spool INDEX 1.
v_spoolno = wa_spool-rqident.
*Get Spool request attributes
SELECT SINGLE *
FROM tsp01
INTO tsp01
WHERE rqident EQ v_spoolno.
IF sy-subrc <> 0.
MESSAGE i000 DISPLAY LIKE 'E'
WITH text-003 v_spoolno text-034.
LEAVE LIST-PROCESSING.
ENDIF.
v_client = tsp01-rqclient.
v_name = tsp01-rqo1name.
CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
EXPORTING
authority = 'SP01'
client = v_client
name = v_name
part = 1
IMPORTING
objtype = v_objtype
EXCEPTIONS
fb_error = 1
fb_rsts_other = 2
no_object = 3
no_permission = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE i000(zz) DISPLAY LIKE 'E'
WITH text-003 v_spoolno text-034.
LEAVE LIST-PROCESSING.
ENDIF.
CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = v_spoolno
no_dialog = ' '
TABLES
pdf = it_pdf
EXCEPTIONS
err_no_otf_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_dstdevice = 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
OTHERS = 12 -
How to receive OTF data out of spool request?
Hi Guys,
I want to write a program which reads out the OTF data of a spool request and then I want to send it either as eMail or as FAX to some receivers.
The function modules I found so far (CONVERT_OTF, CONVERT_OTF_AND_FAX etc.) assume that the OTF table is already filled. But what I have in the beginning is only the spool ID. Even the function RSPO_DISPLAY_SPOOLJOB doesn't pass back the OTF data. What I saw in this function is that the OTF data is read directly via C-CAll => Call 'C_RSTS_OPEN' and Call 'C_RSTS_READ'.
Does anyone of you have an idea how to solve my problem or could give me a hint?
Thanks,
ThomasHi Thomas,
As you said, the OTF is stored as is in the spool file, and you can read it using the C calls, or use RSPO_RETURN_SPOOLJOB function module for example.
Note that using SP01, you can send a spool via a menu entry, which corresponds to function module RSPO_SPOOLJOB_TO_OFFICE.
Best regards
Sandra -
How to get data from OTF spool request number
Hi all,
How to get OTF Data from the spool request number (OTF)?
How to create spool request from the OTF Data?
Regards,
Sunil KumarHi,
Check this links:
http://www.sapdev.co.uk/reporting/rep_spooltopdf.htm
Sending Mail from SAP
https://wiki.sdn.sap.com/wiki/display/sandbox/SendMailwithPDFAttachment?showChildren=false#children -
Creating no. of spool requests based on data
Hi all!
I am preparing a smartform showing the schedule deliveries of purchase orders of all vendors within a specified period. A new spool request is to be generated for each vendor's schedule deliveries. How can I raise a new spool request when the vendor no. is changed? Is it possible? If yes,please suggest.
Edited by: Jayasri P. on Apr 21, 2008 12:31 PMHi Nehal!
I have passed the parameter of type SSFCRESCL in the function module fm_name(i.e. 2nd f.module in my program).But it's throwing a dump when executing saying that parameter of specified type doesn't allow to pass through this function module an it allows only fields of a particular type .What is the type of LS_COMPOSER?
I have declared the variable as : LS_COMPOSER TYPE SSFCRESCL .
LS_COMPOSER-TDNEWID = 'X'.
CALL FUNCTION FM_NAME
Exporting
t_lfa1 = t_lfa1
OUTPUT_OPTIONS = LS_COMPOSER
TABLES
it_ekko =it_ekko
it_ekpo = it_ekpo
it_eket = it_eket.
What's going wrong with this? -
Handle not valid for open spool request
Hello everyone,
i am facing an error while clicking the print preview option in change PO (me22n).
i have given the dispatch time in further data of o/p as 'Send with application own transaction'.
now, when i save and click print preview button i get an error as
"Handle not valid for open spool request"
Kindly give me some idea how to tackle this.
Thanks
gauravGaurav,
I am having a similar issue and would appreciate if you could let us know how your problem was solved?
What control parameters did you change to make this work?
Thanks,
Jay -
Is there any FM to generate spool request for error log of a background job
Hi,
I am going to create a program to create deliveries and do PGI. This program will be assigned to periodic background job.Now whatever errors are generated in program i have to send the error log to spool request.Is there any FM for generating spool request with this error log or how can this be done? Kindly provide sample code if possible.
Thanks.
Nimish Dongare.Hi Nimish,
How are you doing, This is Shreekant working as ABAP developer, I sow your post in sdn forum, I have a similar requirement like I am changing the delivery taking some data from a flat file which is coming from other system and do PGI. If any error occurs during this process I need to capture it and present it as a report or create log file.. whichever is easier.
Please can u help me how did u achieved this functionality for your requirement?.. pls. can u share some details.
If u don mind, can u give me ur email id to communicate.
Thanks,
Shreekant -
Simple Request - How Do I Print a Spool Request in 3.1i?
Here is the scenario:
I have created an FI Misc Credit Memo for a customer who wants a hard copy of the document. Using transaction code FB12, I generate a correspondence. Then using transaction code F.64, I attempt to print the document. This generates a spool request with a number like 86,007.
From there I go to system>services>output control which takes me to the spool request screen. From there, I am missing the next step.
This screen has fields for:
Spool request number (attempted number given when spool request was generated - 86,007, field only fits 5 characters so comma has been excluded)
Spool request name ( I think this is my problem as I have no idea where to find this)
User name (field is populated)
From date (field is populated)
Client (field is populated)
Output device (have entered desired printer name)
Format (usually self-populates once a successful print request is entered)
Title (unnecessary field I believe)
Recipient (unnecessary field)
Department (unnecessary field)
No one on our staff has been able to help me with this issue so I've turned to the community. I am an end user (Tax Analyst) who possesses little technical knowledge. My apologies. Thank you in advance for any help given!Hello,
remove values from all the fields in the selection screen and enter only your spool number. The Execute wiht 'F8' and if the spool request is found, with the "printer" push-button you can print it.
Best regards,
Andrea -
Problem in converting Spool Request into PDF format
Hi,
I am facing problem to convert spool request (which store output of sap script) in to PDF format. Actually I have converted it with function module 'CONVERT_OTFSPOOLJOB_2_PDF' and it is working properly but the problem occurs where the BOLD fonts are used. I am unable to see the Text/Address where i have used Bold Font in script (PDF FORMAT). Even though in (SPO1) spool request shows every thing perfectly (along with Bold Font). It will great if you could suggest me something.
Thanks,
PradeepHi Pradeep,
Use ,
Closing the Sapscript, we save data (OTF) in a table
CALL FUNCTION 'CLOSE_FORM'
TABLES
otfdata = t_otfdata
EXCEPTIONS
unopened = 1
bad_pageformat_for_print = 2
send_error = 3
spool_error = 4
OTHERS = 5.
DATA: BEGIN OF t_otfdata2 OCCURS 0.
INCLUDE STRUCTURE solisti1.
DATA: END OF t_otfdata2.
Move OTF data to another table with lenght 255
LOOP AT t_otfdata.
CONCATENATE t_otfdata-tdprintcom t_otfdata-tdprintpar INTO t_otfdata2.
APPEND t_otfdata2.
ENDLOOP.
Convert OTF format to PDF
CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
EXPORTING
format_src = 'OTF'
format_dst = 'PDF'
devtype = 'PRINTER'
FUNCPARA =
len_in = len_in
IMPORTING
len_out = len_out
TABLES
content_in = t_otfdata2
content_out = t_pdfdata
EXCEPTIONS
err_conv_failed = 1
OTHERS = 2.
Have a look at Progs. RSTXPDF4 and RSTXPDFT2 for converting the Spool to PDF.
Regards,
Raj
Message was edited by: Rajasekhar Dinavahi
Message was edited by: Rajasekhar Dinavahi -
Spool no. data to PDF and then to mail
Hi all ,
My requirement is i have to display all the spool request no.'s for the particular user and from that user will select the particular spool no. . and that particular data has to convert into PDF and that PDF should go to mail id specified in selection screen.
now my prob. is when i am downloading the PDF on desktop it is opening with right data and when i am sending to mail id with the same internal table with PDF format , the file is corrupted and giving some error.
for ur reference here i am sending my code , please check and let me know .
thanks & regards,
Anil kumar .
TABLES: tsp01,
soextreci1.
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-020.
SELECT-OPTIONS : so_date1 FOR sy-datum OBLIGATORY,
so_time1 FOR sy-uzeit,
so_name1 FOR sy-uname,
so_splno FOR tsp01-rqident.
so_email FOR soextreci1-receiver OBLIGATORY.
PARAMETER : so_email TYPE soextreci1-receiver OBLIGATORY.
SELECTION-SCREEN : END OF BLOCK b1.
DATA : l_addrnumber TYPE adr7-addrnumber,
l_persnumber TYPE adr7-persnumber,
l_mail TYPE adr6-smtp_addr.
DATA : BEGIN OF it_tsp01 OCCURS 0,
rqident TYPE tsp01-rqident,
rqowner TYPE tsp01-rqowner,
rqcretime TYPE tsp01-rqcretime,
rqclient TYPE tsp01-rqclient,
rqo1name TYPE tsp01-rqo1name,
END OF it_tsp01.
DATA : l_date_low TYPE char8,
l_date_high TYPE char8,
l_time_low TYPE char8,
l_time_high TYPE char8,
l_final_low TYPE char16,
l_final_high TYPE char16,
markfield VALUE ' '.
DATA : BEGIN OF l_final OCCURS 0,
sig TYPE c,
opt TYPE char2,
low TYPE char16,
high TYPE char16,
END OF l_final.
*PARAMETERS:
spoolno LIKE tsp01-rqident,
download AS CHECKBOX DEFAULT 'X',
DATA : p_file TYPE rlgrap-filename VALUE 'C:\temp\file.pdf'."#EC NOTEXT
DATA otf LIKE itcoo OCCURS 100 WITH HEADER LINE.
DATA cancel.
DATA pdf LIKE tline OCCURS 100 WITH HEADER LINE.
DATA it_pdf LIKE pdf OCCURS 0 WITH HEADER LINE.
DATA doctab LIKE docs OCCURS 1 WITH HEADER LINE.
DATA: numbytes TYPE i,
arc_idx LIKE toa_dara,
pdfspoolid LIKE tsp01-rqident,
jobname LIKE tbtcjob-jobname,
jobcount LIKE tbtcjob-jobcount,
is_otf.
DATA: client LIKE tst01-dclient,
name LIKE tst01-dname,
objtype LIKE rststype-type,
type LIKE rststype-type.
AT SELECTION-SCREEN OUTPUT.
SELECT SINGLE addrnumber
persnumber
FROM adr7
INTO (l_addrnumber,l_persnumber)
WHERE uname = sy-uname.
SELECT SINGLE smtp_addr
FROM adr6
INTO l_mail
WHERE addrnumber = l_addrnumber
AND persnumber = l_persnumber.
so_date1-sign = so_name1-sign = 'I'. "so_email-sign = 'I'.
so_date1-option = so_name1-option = 'BT'. "so_email-option = 'BT'.
so_date1-low = so_date1-high = sy-datum.
so_name1-low = so_name1-high = sy-uname.
so_email-low = so_email-high = l_mail.
APPEND : so_date1,so_name1.",so_email.
START-OF-SELECTION.
IF so_date1-low IS NOT INITIAL.
l_date_low = so_date1-low.
ENDIF.
IF so_date1-high IS NOT INITIAL.
l_date_high = so_date1-high.
ENDIF.
IF so_time1-low IS NOT INITIAL.
l_time_low = so_time1-low.
l_time_low+6(2) = '00'.
ENDIF.
IF so_time1-high IS NOT INITIAL.
l_time_high = so_time1-high.
l_time_high+6(2) = '00'.
ENDIF.
IF l_time_low IS NOT INITIAL.
CONCATENATE l_date_low l_time_low INTO l_final_low.
ELSE.
CONCATENATE l_date_low '00000000' INTO l_final_low.
ENDIF.
IF l_time_high IS NOT INITIAL .
IF so_date1-high IS NOT INITIAL.
CONCATENATE l_date_high l_time_high INTO l_final_high.
ENDIF.
ELSE.
CONCATENATE l_date_low '23595959' INTO l_final_high.
ENDIF.
l_final-sig = so_date1-sign.
l_final-opt = so_date1-option.
l_final-low = l_final_low.
l_final-high = l_final_high.
APPEND l_final.
CLEAR l_final.
SELECT rqident
rqowner
rqcretime
rqclient
rqo1name
FROM tsp01 INTO TABLE it_tsp01
WHERE rqcretime IN l_final
AND rqowner IN so_name1.
IF sy-subrc NE 0.
MESSAGE 'No data for the entered values' TYPE 'E'.
EXIT.
ENDIF.
CLEAR : so_name1,so_name1[],it_tsp01.
SORT it_tsp01 BY rqident.
LOOP AT it_tsp01.
WRITE : /1 sy-vline,
3 markfield AS CHECKBOX,
5(16) it_tsp01-rqident, 22 sy-vline,
23(10) it_tsp01-rqowner, 34 sy-vline,
35(16) it_tsp01-rqcretime, 52 sy-vline.
HIDE it_tsp01-rqident.
AT LAST.
WRITE : /1(52) sy-uline.
ENDAT.
ENDLOOP.
TOP-OF-PAGE.
WRITE: /1(52) sy-uline.
WRITE: /1 sy-vline,
5(16) 'Spool No.' COLOR COL_POSITIVE CENTERED , 22 sy-vline,
23(10) 'User' COLOR COL_POSITIVE CENTERED , 34 sy-vline,
35(16) 'Date' COLOR COL_POSITIVE CENTERED , 52 sy-vline.
WRITE: /1(52) sy-uline.
END-OF-SELECTION.
SET PF-STATUS '/BAY4/PDF'.
DATA : l_rqident TYPE tsp01-rqident,
l_count TYPE i VALUE '0'.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'PDF'.
CLEAR l_count.
DO.
CLEAR : markfield.
READ LINE sy-index FIELD VALUE markfield.
IF sy-subrc NE 0.
EXIT.
ENDIF.
CHECK markfield NE space.
IF l_count GT 0.
MESSAGE 'Please select only one check box' TYPE 'E'.
EXIT.
ENDIF.
l_rqident = it_tsp01-rqident.
l_count = l_count + 1.
ENDDO.
PERFORM get_pdf.
WHEN 'MAIL'.
CLEAR l_count.
DO.
CLEAR : markfield.
READ LINE sy-index FIELD VALUE markfield.
IF sy-subrc NE 0.
EXIT.
ENDIF.
CHECK markfield NE space.
IF l_count GT 0.
MESSAGE 'Please select only one check box' TYPE 'E'.
EXIT.
ENDIF.
l_rqident = it_tsp01-rqident.
l_count = l_count + 1.
ENDDO.
PERFORM get_pdf.
PERFORM send_mail.
ENDCASE.
*& Form get_pdf
text
--> p1 text
<-- p2 text
FORM get_pdf .
READ TABLE it_tsp01 WITH KEY rqident = l_rqident.
LOOP AT it_tsp01.
client = it_tsp01-rqclient.
name = it_tsp01-rqo1name.
CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
EXPORTING
authority = 'SP01'
client = client
name = name
part = 1
IMPORTING
CHARCO =
CREATER =
CREDATE =
DELDATE =
MAX_CREDATE =
MAX_DELDATE =
NON_UNIQ =
NOOF_PARTS =
RECTYP =
SIZE =
STOTYP =
type = type
objtype = objtype
EXCEPTIONS
fb_error = 1
fb_rsts_other = 2
no_object = 3
no_permission = 4.
IF objtype(3) = 'OTF'.
is_otf = 'X'.
ELSE.
is_otf = space.
ENDIF.
IF is_otf = 'X'.
CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = l_rqident
no_dialog = ' '
DST_DEVICE =
PDF_DESTINATION =
IMPORTING
pdf_bytecount = numbytes
pdf_spoolid = pdfspoolid
OTF_PAGECOUNT =
btc_jobname = jobname
btc_jobcount = jobcount
TABLES
pdf = pdf
EXCEPTIONS
err_no_otf_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_dstdevice = 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.
ELSE.
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = l_rqident
no_dialog = ' '
DST_DEVICE =
PDF_DESTINATION =
IMPORTING
pdf_bytecount = numbytes
pdf_spoolid = pdfspoolid
LIST_PAGECOUNT =
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.
ENDIF.
PERFORM download_w_ext(rstxpdft) TABLES pdf
USING p_file
'.pdf'
'BIN'
numbytes
cancel.
ENDFORM. " get_pdf
*& Form send_mail
text
--> p1 text
<-- p2 text
FORM send_mail .
DATA: it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0 WITH HEADER LINE.
DATA: it_attach TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0 WITH HEADER LINE.
*DATA: PIT_ATTACH LIKE table of IT_ATTACH.
DATA: t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE.
DATA : w_cnt TYPE i,
w_sent_all(1) TYPE c,
w_doc_data LIKE sodocchgi1,
gd_error TYPE sy-subrc,
gd_reciever TYPE sy-subrc.
DATA: a TYPE string,
t TYPE string.
a = 'FILE.PDF'.
t_object_header = a .
APPEND t_object_header.
DATA: p_email TYPE string.
CONSTANTS:
con_tab TYPE c VALUE cl_abap_char_utilities=>horizontal_tab,
con_cret TYPE c VALUE cl_abap_char_utilities=>cr_lf.
LOOP AT pdf.
TRANSLATE pdf USING ' ~'.
CONCATENATE pdf-tdformat pdf-tdline INTO it_attach SEPARATED BY space.
APPEND it_attach.
CLEAR : it_attach,pdf.
ENDLOOP.
DATA: ld_error TYPE sy-subrc,
ld_reciever TYPE sy-subrc,
ld_mtitle LIKE sodocchgi1-obj_descr,
ld_email LIKE somlreci1-receiver,
ld_format TYPE so_obj_tp ,
ld_attdescription TYPE so_obj_nam,
p_attdescription LIKE ld_attdescription,
ld_attfilename TYPE so_obj_des ,
ld_sender_address LIKE soextreci1-receiver,
p_sender_address LIKE ld_sender_address,
ld_sender_address_type LIKE soextreci1-adr_typ,
p_sender_addres_type LIKE ld_sender_address_type,
ld_receiver LIKE sy-subrc.
RANGES : ld_email FOR somlreci1-receiver OCCURS 0.
ld_email[] = so_email[].
append ld_email.
ld_email = so_email.
ld_mtitle = 'PDF file for the Spool no'.
ld_format = 'pdf'.
ld_attfilename = 'filename'.
Fill the document data.
w_doc_data-doc_size = 1.
Populate the subject/generic message attributes
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle .
w_doc_data-sensitivty = 'F'.
Fill the document data and get size of attachment
CLEAR w_doc_data.
READ TABLE it_attach INDEX w_cnt.
w_doc_data-doc_size =
( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle.
w_doc_data-sensitivty = 'F'.
CLEAR t_attachment.
REFRESH t_attachment.
t_attachment[] = it_attach[].
Describe the body of the message
CLEAR t_packing_list.
REFRESH t_packing_list.
t_packing_list-transf_bin = space.
t_packing_list-head_start = 1.
t_packing_list-head_num = 0.
t_packing_list-body_start = 1.
DESCRIBE TABLE it_message LINES t_packing_list-body_num.
t_packing_list-doc_type = 'RAW'.
APPEND t_packing_list.
Create attachment notification
t_packing_list-transf_bin = 'X'.
t_packing_list-head_start = 1.
t_packing_list-head_num = 1.
t_packing_list-body_start = 1.
DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
t_packing_list-doc_type = ld_format.
t_packing_list-obj_descr = ld_attdescription.
t_packing_list-obj_name = ld_attfilename.
t_packing_list-doc_size = t_packing_list-body_num * 255.
APPEND t_packing_list.
Add the recipients email address
CLEAR t_receivers.
REFRESH t_receivers.
t_receivers-receiver = ld_email.
t_receivers-rec_type = 'U'.
t_receivers-com_type = 'INT'.
t_receivers-notif_del = 'X'.
t_receivers-notif_ndel = 'X'.
APPEND t_receivers.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = w_doc_data
put_in_outbox = 'X'
sender_address = ld_sender_address
sender_address_type = ld_sender_address_type
commit_work = 'X'
IMPORTING
sent_to_all = w_sent_all
TABLES
object_header = t_object_header
packing_list = t_packing_list
contents_bin = t_attachment
contents_txt = it_message
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.
Populate zerror return code
ld_error = sy-subrc.
Populate zreceiver return code
LOOP AT t_receivers.
ld_receiver = t_receivers-retrn_code.
ENDLOOP.
SUBMIT rsconn01
WITH mode = 'INT'
WITH output = 'X'
AND
RETURN.
IF sy-subrc EQ 0.
MESSAGE 'PDF sent to specified mail id' TYPE 'I'.
LEAVE SCREEN.
ENDIF.Hi,
Try this program, it works for me perfectly:
REPORT Z_SENDFAX line-size 46 no standard page heading message-id so.
data g_list_content type solix_tab.
data g_text_content type soli_tab.
parameters:spool like sy-spono.
parameters:rec_fax type sadrfd-rec_fax.
parameters:title like sadrfd-rec_title.
parameters:name1 like sadrfd-rec_name1.
parameters:cover type c.
PARAMETERS: Zvbeln LIKE likp-vbeln.
start-of-selection.
perform create_text_content changing g_text_content.
perform create_list_content changing g_list_content.
perform send using g_text_content
g_list_content.
*& Form create_list_content
form create_list_content changing list_content type solix_tab.
perform get_list_from_spool changing list_content.
endform."create_list_content''
*& Form create_text_content''
form create_text_content changing text_content type soli_tab.
data:z_lin(200) type c.
append 'To,' to text_content.
concatenate 'To:' name1 into z_lin separated by space.
append z_lin to text_content.
concatenate 'End of delivery Notice for ' Zvbeln
into z_lin separated by space.
append z_lin to text_content.
convert the content from RAW to TXT''
CALL FUNCTION 'SO_RAW_TO_RTF'
TABLES
objcont_old = text_content
objcont_new = text_content
EXCEPTIONS
others = 0.
endform."create_text_content''
*& Form SEND''
Create the list-document and send it via FAX, Mail and RML''
form send using text_content type soli_tab
list_content type solix_tab.
data:z_lin(200) type c.
structures and internal tables for the send data''
data document_data type sodocchgi1.
data packing_list type table of sopcklsti1.
data receivers type table of somlreci1.
data contents_txt type soli_tab.
data contents_hex type solix_tab.
data packlist_wa type sopcklsti1.
data receiver_wa type somlreci1.
data packlist_counter type i.
data sent_to_all type sonv-flag.
data msg_ex(200) type c.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~''
main document''
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~''
document data contains information for the whole message''
document_data-obj_descr = 'Miscellaneous Delivery Notice'.
some text for the main document''
append 'Hi,' name1 to contents_txt.
concatenate 'To:' name1 into z_lin separated by space.
append z_lin to contents_txt.
concatenate 'Attached you will find the Delivery Notice for ' Zvbeln
into msg_ex separated by space.
append msg_ex to contents_txt.
append 'Attached you will find the Delivery Notice for ' Zvbeln to contents_txt.
packlist_counter = 1.
perform create_packlist_entry using contents_txt
'RAW'
changing packlist_wa
packlist_counter.
append packlist_wa to packing_list.
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~''
add a text attachment of type TXT''
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~''
perform create_packlist_entry using text_content
'TXT'
changing packlist_wa
packlist_counter.
append packlist_wa to packing_list.
append lines of text_content to contents_txt.
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~''
add the list attachment of type ALI''
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~''
packlist_counter = 1."because we will fill the hex table now''
perform create_packlist_entry using list_content
'ALI'
changing packlist_wa
packlist_counter.
append packlist_wa to packing_list.
append lines of list_content to contents_hex.
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~''
fill recipients tables''
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~''
perform create_fax_recipient changing receiver_wa.
append receiver_wa to receivers.
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~''
Send the document by calling the API1''
as of 6.10 either the flag 'commit_work' has to be set''
or a commit work statement has to be set somewhere after the call''
Sending won't work without this!''
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~''
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = document_data
put_in_outbox = 'X'
commit_work = 'X'
IMPORTING
sent_to_all = sent_to_all
TABLES
packing_list = packing_list
contents_txt = contents_txt
contents_hex = contents_hex
receivers = 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.
case sy-subrc.
when 0.
if sent_to_all is initial.
read table receivers index 1 into receiver_wa.
message i865 with receiver_wa-retrn_code.
else.
message s022.
endif.
when 1.
message i552.
when 2.
message i023 with document_data-obj_descr.
when 4.
message i471.
when others.
message i619.
endcase.
endform." SEND''
*& Form USE_SUBMIT''
<nowiki>* Use "submit <report> exporting list to memory"
form use_submit changing contents_hex type solix_tab.
data listobject type table of abaplist.
get the list object by calling the list in another report
F1 on submit gives more information
submit balvsd03 exporting list to memory and return.
import the list from memory and store it in table listobject
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = listobject
EXCEPTIONS
not_found = 1
others = 2.
if sy-subrc <> 0.
message e105 with 'LIST_FROM_MEMORY'.
endif.
free memory
CALL FUNCTION 'LIST_FREE_MEMORY'
TABLES
listobject = listobject
EXCEPTIONS
others = 1.
if sy-subrc <> 0.
message e105 with 'LIST_FREE_MEMORY'.
endif.
it's always necessary to compress the table.
SAPconnect will decompress it
CALL FUNCTION 'TABLE_COMPRESS'
TABLES
in = listobject
out = contents_hex
EXCEPTIONS
compress_error = 1
others = 2.
if sy-subrc <> 0.
message e105 with 'TABLE_COMPRESS'.
endif.
endform." USE_SUBMIT
*& Form WRITE_A_LIST
Create a new list within this report.
form write_a_list changing contents_hex type solix_tab.
data listobject type table of abaplist.
perform write_list.
Save the list and store table listobject
CALL FUNCTION 'SAVE_LIST'
EXPORTING
list_index = sy-lsind
TABLES
listobject = listobject
EXCEPTIONS
list_index_invalid = 1.
if sy-subrc = 1.
message e105 with 'SAVE_LIST'.
endif.
It's always necessary to compress the table
SAPconnect will decompress it
CALL FUNCTION 'TABLE_COMPRESS'
TABLES
in = listobject
out = contents_hex
EXCEPTIONS
compress_error = 1
others = 2.
if sy-subrc <> 0.
message e105 with 'TABLE_COMPRESS'.
endif.
endform." WRITE_A_LIST
*& Form GET_LIST_FROM_SPOOL
Get list from spool
form get_list_from_spool changing contents_hex type solix_tab.
data spool_number type rspoid.
data contents_bin type soli_tab.
data print_parameters type pri_params.
data valid type c.
write a list into spool
CALL FUNCTION 'GET_PRINT_PARAMETERS'
IMPORTING
out_parameters = print_parameters
valid = valid
EXCEPTIONS
archive_info_not_found = 1
invalid_print_params = 2
invalid_archive_params = 3
others = 4.
if sy-subrc <> 0.
message e105 with 'GET_PRINT_PARAMETERS'.
elseif valid is initial.
return.
endif.
new-page print on parameters print_parameters no dialog.
perform write_list.
new-page print off.
spool_number = spool.
DATA:REAL_TYPE LIKE SOODK-OBJTP.
DATA:BUFFER_PDF LIKE TLINE OCCURS 0 WITH HEADER LINE.
you can also send OTF documents from spool with this function
module. The importing parameter real_type gives you the doc type
that you have to give to the send interface. The parameter is not
used here
CALL FUNCTION 'RSPO_RETURN_SPOOLJOB'
EXPORTING
rqident = spool_number
desired_type = 'RAW'
IMPORTING
REAL_TYPE = REAL_TYPE
TABLES
buffer = contents_bin
BUFFER_PDF = BUFFER_PDF
EXCEPTIONS
no_such_job = 1
job_contains_no_data = 2
selection_empty = 3
no_permission = 4
can_not_access = 5
read_error = 6
type_no_match = 7
others = 8.
*clear contents_bin[].
if sy-subrc <> 0.
message e105 with 'RSPO_RETURN_SPOOLJOB'.
endif.
CALL FUNCTION 'SO_RAW_TO_RTF'
TABLES
objcont_old = contents_bin
objcont_new = contents_bin
EXCEPTIONS
others = 0.
data:TRANSFER_BIN TYPE SX_BOOLEAN." occurs 0.
data:CONTENT_BIN TYPE SOLIX_TAB." occurs 0.
data:OBJHEAD TYPE SOLI_TAB.
data:LEN TYPE SO_OBJ_LEN.
*len = '255'.
CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PRT'
EXPORTING
FORMAT_SRC = 'OTF'
FORMAT_DST = 'PRT'
devtype = 'POSTSCPT'
CHANGING
TRANSFER_BIN = TRANSFER_BIN
CONTENT_TXT = contents_bin
CONTENT_BIN = contents_hex
OBJHEAD = OBJHEAD
LEN = len.
CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
EXPORTING
FORMAT_SRC = 'OTF'
FORMAT_DST = 'PDF'
devtype = 'PRINTER'
CHANGING
TRANSFER_BIN = TRANSFER_BIN
CONTENT_TXT = contents_bin
CONTENT_BIN = contents_hex
OBJHEAD = OBJHEAD
LEN = len.
convert to hex table
CALL FUNCTION 'SO_SOLITAB_TO_SOLIXTAB'
EXPORTING
ip_solitab = CONTENT_BIN
IMPORTING
ep_solixtab = contents_hex.
endform." GET_LIST_FROM_SPOOL
*& Form WRITE_LIST
Write a list of SAPconnect conversion rules
form write_list.
data lt_scarr type table of scarr.
data carr type scarr.
select * from scarr into table lt_scarr.
format color = 1.
uline at /1(46).
write: / sy-vline,
'CARRID', 10 sy-vline,
'CARRNAME', 35 sy-vline,
'CURRCODE', 46 sy-vline.
format color = 2.
uline at /1(46).
loop at lt_scarr into carr.
write: / sy-vline,
carr-carrid, 10 sy-vline,
carr-carrname, 35 sy-vline,
carr-currcode, 46 sy-vline.
endloop.
uline at /1(46).
new-line.
endform." WRITE_LIST
*& Form create_packlist_entry
text
form create_packlist_entry using contents type standard table
format type so_obj_tp
changing packlist_wa type sopcklsti1
packlist_counter type i.
data tab_lines type i.
clear packlist_wa.
DATA FORM2 TYPE so_obj_tp.
get the table length of the attachment
describe table contents lines tab_lines.
set binary flag for binary content to mark that this packlist entry
is meant for table contents_hex and not for contents_bin
FORM2 = FORMAT.
if format = 'ALI'.
FORM2 = 'PRT'.
FORM2 = 'PDF'.
packlist_wa-transf_bin = 'X'.
endif.
attchment's description and format
concatenate form2 'Document' into
packlist_wa-obj_descr separated by space.
packlist_wa-doc_type = form2.
describe start and length in contents_txt or contents_hex
which table is meant is decided by the transf_bin flag set above
packlist_wa-body_start = packlist_counter.
packlist_wa-body_num = tab_lines.
increase counter to have the starting line for the next attachment
packlist_counter = packlist_counter + tab_lines.
endform." create_packlist_entry
*& Form create_int_recipient
text
*form create_int_recipient changing receiver type somlreci1.
field-symbols <receiver> type c.
data recipient_int type sadrud.
clear receiver.
fill address type specific recipient structure
cast structure to generic receiver field
assign recipient_int to <receiver> casting.
receiver-receiver = <receiver>.
set address type for INT
receiver-rec_type = 'U'.
*endform."create_int_recipient
*& Form create_fax_recipient
text
form create_fax_recipient changing receiver type somlreci1.
field-symbols <receiver> type c.
data recipient_fax type sadrfd.
data name type soud3.
clear receiver.
name-sapnam = sy-uname.
CALL FUNCTION 'SO_NAME_CONVERT'
EXPORTING
name_in = name
IMPORTING
name_out = name
EXCEPTIONS
others = 1.
if sy-subrc <> 0.
name-adrname = sy-uname.
endif.
fill address type specific recipient structure
recipient_fax-rec_fax = rec_fax."'7152414031'.
recipient_fax-rec_state = 'US'.
recipient_fax-rec_title = title."'Mr.'.
recipient_fax-rec_name1 = name1."'Ytamar Fondeur'.
recipient_fax-send_nam = name-adrname.
recipient_fax-send_cover = cover.
recipient_fax-FORM_LANGU = sy-langu.
cast structure to generic receiver field
assign recipient_fax to <receiver> casting.
receiver-receiver = <receiver>.
set address type for FAX
receiver-rec_type = 'F'.
endform."create_fax_recipient
*& Form create_rml_recipient
text
form create_rml_recipient changing receiver type somlreci1.
field-symbols <receiver> type c.
data recipient_rml type sadr7d.
clear receiver.
fill address type specific recipient structure
recipient_rml-sdest = 'C11'.
recipient_rml-umand = '001'.
recipient_rml-uname = 'MYUSER'.
cast structure to generic receiver field
assign recipient_rml to <receiver> casting.
receiver-receiver = <receiver>.
set address type for RML
receiver-rec_type = 'R'.
endform."create_rml_recipient -
Converting spool request into multiple pdf formated documents
Hi Guys,
I am designing a report with several pages of output and running it in background.
Is there a possibility to convert each page into an separate pdf format document ?
If I use ALV report as output, if its more than page, do I face any issue with pdf conversion.
ThanksCheck the Following code, This might be helpful:
form rstxpdft4 using filename.
* Read spool job contents (OTF or ABAP list) and convert
* to PDF, download PDF
data: download value 'X'.
data: lv_filename like rlgrap-filename.
lv_filename = filename.
data otf like itcoo occurs 100 with header line.
data cancel.
data pdf like tline occurs 100 with header line.
data doctab like docs occurs 1 with header line.
data: numbytes type i,
arc_idx like toa_dara,
pdfspoolid like tsp01-rqident,
jobname like tbtcjob-jobname,
jobcount like tbtcjob-jobcount,
is_otf.
data: client like tst01-dclient,
name like tst01-dname,
objtype like rststype-type,
type like rststype-type.
select single * from tsp01 where rqident = gt_rq-rqident.
if sy-subrc <> 0.
write: / 'Spool request does not exist', gt_rq-rqident
color col_negative.
exit.
endif.
client = tsp01-rqclient.
name = tsp01-rqo1name.
call function 'RSTS_GET_ATTRIBUTES'
exporting
authority = 'SP01'
client = client
name = name
part = 1
importing
type = type
objtype = objtype
exceptions
fb_error = 1
fb_rsts_other = 2
no_object = 3
no_permission = 4.
if objtype(3) = 'OTF'.
is_otf = 'X'.
else.
is_otf = space.
endif.
if is_otf = 'X'.
call function 'CONVERT_OTFSPOOLJOB_2_PDF'
exporting
src_spoolid = gt_rq-rqident
no_dialog = ' '
importing
pdf_bytecount = numbytes
pdf_spoolid = pdfspoolid
btc_jobname = jobname
btc_jobcount = jobcount
tables
pdf = pdf .
else.
call function 'CONVERT_ABAPSPOOLJOB_2_PDF'
exporting
src_spoolid = gt_rq-rqident
no_dialog = ' '
importing
pdf_bytecount = numbytes
pdf_spoolid = pdfspoolid
btc_jobname = jobname
btc_jobcount = jobcount
tables
pdf = pdf
*************** download PDF file ***********
v_filename = lv_filename.
* call function 'WS_DOWNLOAD'
* exporting
* bin_filesize = numbytes
* filename = lv_filename
* filetype = 'BIN'
* tables
* data_tab = pdf
* exceptions
* file_open_error = 1
* file_write_error = 2
* invalid_filesize = 3
* invalid_type = 4
* no_batch = 5
* unknown_error = 6
* invalid_table_width = 7
* gui_refuse_filetransfer = 8
* customer_error = 9
* others = 10.
* if sy-subrc <> 0.
** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
** WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
* else.
* gv_count = gv_count + 1.
* endif.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = numbytes
FILENAME = v_filename
FILETYPE = 'BIN'
* APPEND = ' '
* WRITE_FIELD_SEPARATOR = ' '
* HEADER = '00'
* TRUNC_TRAILING_BLANKS = ' '
* WRITE_LF = 'X'
* COL_SELECT = ' '
* COL_SELECT_MASK = ' '
* DAT_MODE = ' '
* CONFIRM_OVERWRITE = ' '
* NO_AUTH_CHECK = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* WRITE_BOM = ' '
* TRUNC_TRAILING_BLANKS_EOL = 'X'
* WK1_N_FORMAT = ' '
* WK1_N_SIZE = ' '
* WK1_T_FORMAT = ' '
* WK1_T_SIZE = ' '
* WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE
* SHOW_TRANSFER_STATUS = ABAP_TRUE
* IMPORTING
* FILELENGTH =
TABLES
DATA_TAB = pdf .
* FIELDNAMES =
Thanks. -
Converting the spool request to PDF format
Dear All ,
I am using RSTXPDF4 to convert a spool request to PDF format , when I execute this program by giving the spool number and dstdevic as Local , its giving the message as " Spool request XXXXX with PDF data created ".
But the problem is when I open this spool request its printing the Junk characters ..!!!
What could be the problem ?
Please give me the solution for this...
Thanks in advance.Hi Prem ,
I have checked the tranx SCOT there I have found the following settings..
Output Dev Type USE
format
PCL HPLJIIID Not Yet Used in Node Maintenance
PDF PDF1 Already Used in Node Maintenance
PS POST2 Not Yet Used in Node Maintenance
TXT ASCIIPRI Already Used in Node Maintenance
Is this OK ...or am I need to do any changes in the settings...??
One more thing when I tries to give this PDF1 Dev type in my RSTXPDF4 input parameters its not taking !!!
Please help... -
Multiple Spool Requests for BACS Payment
Hi,
We are running payment program F110 for BACS payment.
When we run F110 in production system, irrespective of no. of. vendors or payment line items, only one spool request is generated.
But when we run F110 in quality system, multiple spool requests are generated for single payment run.
please give your valuable suggestions, why this is happening like this?
Regards,
PraistyDear,
please check the prnitout/data medium variant which you selected during the payment run.
Regards,
Panneer
Maybe you are looking for
-
How do i get my contacts back on my i phone
hi
-
A script in file EditingUtils.js has been running for a long time CS4
I'm getting this error in dreamweaver: "A script in file C:\ProgramFiles\Adobe\Aobe Dreamweaver CS4\Configuration\Shared\Spry\DesignTime\EditingUtils.js has been running for a long time. Do you want to continue?" I get the error when I open a page th
-
Create and save a multipdf as folder name?
I have created a macro that takes all files in a folder and create a multi page pdf. But I want it to be saved as the folder name automaticly. How do I do?
-
Function Module for Outbound process code
Hi, I have a scenario in which i have to send MBGMCR02 Idoc from SAP to XI. I created a new Outbound process code and now I have to code the function module that populates data into the segments. Does anyone have sample code for this, i.e code to put
-
How to use EXIT_SAPLEBND_002 form class M06E0004
hi my problem is my client want that if user do any changes in a released PO , then release should get revert. currently it is reverting only on when Quantity Increases . i gone through many threads but not able to solve this . but come to know th