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).
Similar Messages
-
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? -
Spool request error in downloading 4000 pages
Hi all
I have a small doubt regarding the spool request.
In my scenario I am running the transaction FBL3N
in the background and I am getting an output of around 4000 pages.
I need to download it but my Spool request contains only 10 pages
by default.
I changed it to 4000 but it gives the error of memoryoverflow.
I could work by dividing the file into parts say 500 or 1000 but
is there any way out so that I could download all the pages in
one go.
Hope you ppl have got me.
Please respond asap.
Thanks in advance.
Sumithi,
you can divide data into different spools in following way:
call function 'GET_PRINT_PARAMETERS'
exporting
destination = 'LOCL'
copies = count
list_name = 'TEST'
list_text = 'Test for multiple spools'
immediately = ' '
release = 'X'
new_list_id = 'X'
expiration = days
line_size = 79
line_count = 23
layout = 'X_PAPER'
sap_cover_page = 'X'
receiver = 'SAP*'
department = 'System'
no_dialog = 'X'
importing
out_parameters = params
valid = valid.
IF VALID eq SPACE.
new-page print on parameters params no dialog.
endif.
writes data into spool 1.
new-page print off.
new-page print on parameters params no dialog.
write into spool 2.
new-page print off.
thanks,
anupama. -
Retrieving Deleted Spool Request
Hi,
We are running R/3 45B on the iseries and we had the same problem from Note 1422843 - Wrong deletion date in spool request
I ran the report RSPO2010 to change the deletion date in R/3 PRD excluding 9 users to keep their year end reports.
I then ran RSPO0041. I thought I read the note 1422843 correctly but I ended up deleting every spool request up the date 1/7/2010. Ran with the variant delete all request with min age 8 days.
Is there anyway of getting the spool request back that were deleted?
Is there a table with a deleting flag that I can just uncheck?
I do have a backup - Are there just a couple of tables I can restore to my Q&A system - Can't do full DBcopy at this time.
Regards,
BrianHi Brian,
tja, the stuff is unfortunately deleted now ...
There is no mark to unmark or similar.
The most stuff of a spoolfile is in TST1 - but there should be a few more tables - I didn't investigate this by now -.in my mind, it is a solvable issue with the restore of "let's say 5 tables" to QAS ...
Regards
Volker Gueldenpfennig, consolut international ag
http://www.consolut.net - http://www.4soi.de - http://www.easymarketplace.de -
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. -
Error Message - "could not complete your request because the preset contains invalid data"
I am trying to open a file, and every time I do it comes up with the following error message:
"Could not complete your request because the preset contains invalid data"
I am using Photoshop CS4 on a Macbook Pro running Snow Leopard 10.6.2.
I have tried:
- restarting my mac
- opening different files created at different times
- deleting photoshop from my app folder and the app support folder from my /username/library/application support/adobe/ folder and copied them back from a Time Machine backup from a few days ago.
I was using Photoshop all day today with absolutely no problems. I have searched Google and this forum and have come up short. No one has this exact error anywhere.
Any help? Thanks so much in advance!
Pat DryburghThe one thing you didn't do is reset your Photoshop preferences.
Most likely the preferences got corrupted, and reference a corrupt preset. -
The requested page contains stale data Error
Hi All,
I have two table in the back end. VikCountry(country_code PK,country_name).
VikCities(country_code FK,city_name).I have created two EO's and TWo VO's for them and the AssociationObject.
In the UI ,I have two messageTextInput fields, one for the country code and one for the country name,And a Advance table having a "Add Another Row" button at footer level.In UI i want to enter the data i.e Country Code,Name and Cities for that country(Master Detail Relation ship)
Following is the code that i have written in the CO file:-
public void processRequest(OAPageContext pageContext, OAWebBean webBean)
super.processRequest(pageContext, webBean);
RnDAMImpl AM = (RnDAMImpl)pageContext.getApplicationModule(webBean);
if(!AM.getVikCountryVO1().isPreparedForExecution())
AM.getVikCountryVO1().executeQuery();
Row row1 = AM.getVikCountryVO1().createRow();
AM.getVikCountryVO1().insertRow(row1);
row1.setNewRowState(Row.STATUS_INITIALIZED);
if(!AM.getVikCitiesVO1().isPreparedForExecution())
AM.getVikCitiesVO1().executeQuery();
Row row2 = AM.getVikCitiesVO1().createRow();
AM.getVikCitiesVO1().insertRow(row2);
row2.setNewRowState(Row.STATUS_INITIALIZED);
public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
super.processFormRequest(pageContext, webBean);
RnDAMImpl AM = (RnDAMImpl)pageContext.getApplicationModule(webBean);
if(pageContext.getParameter("Submit")!=null)
AM.getOADBTransaction().commit();
else if(pageContext.getParameter("Cancle")!=null)
if(AM.getTransaction().isDirty())
AM.getOADBTransaction().rollback();
else if(pageContext.getParameter(EVENT_PARAM).equals("addRows"))
System.out.println("inside the addrows");
Row row2 = AM.getVikCitiesVO1().createRow();
AM.getVikCitiesVO1().insertRow(row2);
row2.setNewRowState(Row.STATUS_INITIALIZED);
Now when i am entering the data in the UI and press submit button,then It is giving me an error:-
The requested page contains stale data. This error could have been caused through the use of the browser's navigation buttons (the browser Back button, for example). If the browser's navigation buttons were not used, this error could have been caused by coding mistakes in application code. Please check Supporting the Browser Back Button developer guide - View Object Primary Key Comparison section to review the primary causes of this error and correct the coding mistakes.
Cause:
The number of displayed records, 1, exceeds the actual number of records, 0, in view object RnDAM.VikCitiesVO1. Some of the displayed records may have been deleted..
I am unable to solve this Problem.Please Help.
Thanks,
VikramQ:Why are you creating new Rows for Country and City VO in processRequest ?
A:Bcoz to insert the empty rows in the VO cache.
Q:And then again in processFormRequest you are creating another row for the Cities VO.
A:As i set the Insert Row Automatically property to false, when user select the "Add Another Row" button in UI, i am inserting an empty row in the VO cache.
If there is anything wrong plz let me know.
Q:When does error happen when you try to add another row or when you try to commit the transaction ?
A:When i am commiting and if i fill the data in the textboxes and table, and press Add Another Row Button in table. -
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. -
ORA-03297: file contains used data beyond requested RESIZE value
DB 10.2.0.4
AIX 5.2
PROD
I have dropped many big tables after moving on another database, what i thought it will free the space of the disk because right now there is no provision to extend the disk size and disk size have already occupied 90%. I dropped tables which had 150 GB total size but when i am trying to resize the datafiles it is giving below error whereas that datafile has free space ( example: free space 8000mb and total size 20000mb of that file i tried to resize it to 14000mb it is giving below error)
I tired the same for many datafiles for a particular tablespace all datafiles are giving same error except one of them.
ERROR at line 1:
ORA-03297: file contains used data beyond requested RESIZE value
Thanksuser13382934 wrote:
DB 10.2.0.4
AIX 5.2
PROD
I have dropped many big tables after moving on another database, what i thought it will free the space of the disk because right now there is no provision to extend the disk size and disk size have already occupied 90%. I dropped tables which had 150 GB total size but when i am trying to resize the datafiles it is giving below error whereas that datafile has free space ( example: free space 8000mb and total size 20000mb of that file i tried to resize it to 14000mb it is giving below error)
I tired the same for many datafiles for a particular tablespace all datafiles are giving same error except one of them.
ERROR at line 1:
ORA-03297: file contains used data beyond requested RESIZE value
ThanksThis error occurs when some object has blocks "adjacent" to the High Water Mark.
In order to RESIZE, the object needs to be identified & then moved;
preferably to a different tablespace.
After do so you can RESIZE at least a modest amount. -
ORA-3297:file contains used data beyond requested resize value.
Hi All,
I am trying to rezise a datafile and getting the ORA-3297 error.
From the dynamic views i verified that there is more than 10GB of freespace in INDEX_TB tablesapce which contains only one datafile whose present size is > 19 GB
alter database datafile '/data/oracle/oradata/testdb/INDEX_TB.dbf' resize 17G;
ORA-3297:file contains used data beyond requested resize value.Oracle 10.1.0 on AIX 5.3
Details are below,
tablespace_name:INDEX_TB
size_mb:19797.84375
free_mb:11947
free%:60.34495549546904571362727317210996778374
How do i find the high water mark of the datafile?
~ThanksThank you all for the comments.
Here i got an odd situation. According to the dynamic views there are 56 or 60 % are free in DATA_TB & INDEX_TB tablespace.
But sql from Doc 130866.1 gives the output as below. I tried coalesce tablespace but no effect.
Tablespace: DATA_TB Datafile:
/data/oracle/oradata/testdb/DATA_TB.dbf
Can not be resized, no free space at end of file.
Tablespace: DATA_TB Datafile:
/data/oracle/oradata/testdb/DATA_TB02.dbf
Can not be resized, no free space at end of file.
Tablespace: INDEX_TB Datafile:
/data/oracle/oradata/testdb/INDEX_TB.dbf
Can not be resized, no free space at end of file.
~Thanks -
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 -
While converting spool to PDF, no data is coming in the PDF file.
Hi All,
I am submitting a z program ZPR022_INNCOMETAX_REPORT_COPY1 (which has some output display) from Z_ITSLIP_MAIL. I am creating a job, submitting the above program via JOB to SAP-SPOOL.
In program ZPR022_INNCOMETAX_REPORT_COPY1 , I am getting the run time job information and from there I am getting the spool id. Now I am converting the spool id to a PDF. This PDF should contain the output of the program ZPR022_INNCOMETAX_REPORT_COPY1. This output is normal output using Write statement only. But once the program is executed, I could find no data in the PDF file. When I check in SM37 and SP02, both the JOB and the SPOOL are created. What I feel is the program is not picking the spool id at the run time. Could any one help me in this regard how to proceed.
Please find the code below.
Program 1.
LOOP AT pernr.
CLEAR p_job.
p_stim = p_stim + 120.
CONCATENATE'ITSlip' pernr-low p_job sy-datum INTO p_job SEPARATED BY
space.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = p_job
sdlstrtdt = p_sdat
sdlstrttm = p_stim
IMPORTING
jobcount = l_jobcount.
SUBMIT ZPR022_INNCOMETAX_REPORT_COPY1
WITH pnptimr6 = 'X'
WITH pnpbegda = period-low
WITH pnpendda = period-high
WITH pnppernr-low = pernr-low
WITH pnpabkrs-low = 'IN'
VIA JOB p_job
NUMBER l_jobcount
TO SAP-SPOOL WITHOUT SPOOL DYNPRO
SPOOL PARAMETERS ls_params
WITH immediately = 'X'
KEEP IN SPOOL = 'X'
AND RETURN.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = l_jobcount
jobname = p_job
strtimmed = 'X'
PRDMINS = 2.
sdlstrtdt = p_sdat
sdlstrttm = p_stim.
ENDLOOP.
Program 2.
IF sy-batch EQ 'X'.
LOOP AT pnppernr.
SELECT SINGLE * FROM pa0105
WHERE pernr EQ pnppernr-low
AND subty EQ '0010'
AND endda EQ '99991231'.
p_email1 = pa0105-usrid_long..
PERFORM get_job_details.
PERFORM obtain_spool_id.
PERFORM convert_spool_to_pdf.
PERFORM process_email.
IF sy-sysid = c_dev.
WAIT UP TO 5 SECONDS.
SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.
ENDIF.
ENDLOOP.
ELSE.
SKIP.
WRITE:/ 'Program must be executed in background in-order for spool'
'request to be created.'.
EXPORT gd_spool_nr TO MEMORY ID 'SPOOLTOPDF'.
ENDIF.
ENDFORM. " SEND_MAIL
*& Form get_job_details
text
--> p1 text
<-- p2 text
FORM get_job_details .
Get current job details
CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
IMPORTING
eventid = gd_eventid
eventparm = gd_eventparm
external_program_active = gd_external_program_active
jobcount = gd_jobcount
jobname = gd_jobname
stepcount = gd_stepcount
EXCEPTIONS
no_runtime_info = 1
OTHERS = 2.
ENDFORM. " get_job_details
*& Form obtain_spool_id
text
--> p1 text
<-- p2 text
FORM obtain_spool_id .
CHECK NOT ( gd_jobname IS INITIAL ).
CHECK NOT ( gd_jobcount IS INITIAL ).
SELECT * FROM tbtcp
INTO TABLE it_tbtcp
WHERE jobname = gd_jobname
AND jobcount = gd_jobcount
AND stepcount = gd_stepcount
AND listident <> '0000000000'
ORDER BY jobname
jobcount
stepcount.
READ TABLE it_tbtcp INTO wa_tbtcp INDEX 1.
IF sy-subrc = 0.
MESSAGE s004(zdd) WITH gd_spool_nr.
gd_spool_nr = wa_tbtcp-listident.
MESSAGE s004(zdd) WITH gd_spool_nr.
ELSE.
MESSAGE s005(zdd).
ENDIF.
ENDFORM. " obtain_spool_id
*& Form convert_spool_to_pdf
text
--> p1 text
<-- p2 text
FORM convert_spool_to_pdf .
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = gd_spool_nr
no_dialog = c_no
dst_device = c_device
IMPORTING
pdf_bytecount = gd_bytecount
TABLES
pdf = it_pdf_output
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
OTHERS = 12.
CHECK sy-subrc = 0.
Transfer the 132-long strings to 255-long strings
LOOP AT it_pdf_output.
TRANSLATE it_pdf_output USING ' ~'.
CONCATENATE gd_buffer it_pdf_output INTO gd_buffer.
ENDLOOP.
TRANSLATE gd_buffer USING '~ '.
DO.
it_mess_att = gd_buffer.
APPEND it_mess_att.
SHIFT gd_buffer LEFT BY 255 PLACES.
IF gd_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
ENDFORM. " convert_spool_to_pdf
*& Form process_email
text
--> p1 text
<-- p2 text
FORM process_email .
DESCRIBE TABLE it_mess_att LINES gd_recsize.
CHECK gd_recsize > 0.
PERFORM send_email USING p_email1.
ENDFORM. "process_email
FORM send_email USING p_email.
CHECK NOT ( p_email IS INITIAL ).
REFRESH it_mess_bod.
Default subject matter
gd_subject = 'Subject'.
gd_attachment_desc = 'IT Declaration'.
CONCATENATE 'ITSLIP' ' ' INTO gd_attachment_name.
it_mess_bod = 'IT FORM for this month'.
APPEND it_mess_bod.
it_mess_bod = 'Message Body text, line 2...'.
APPEND it_mess_bod.
If no sender specified - default blank
IF p_sender EQ space.
gd_sender_type = space.
ELSE.
gd_sender_type = 'INT'.
ENDIF.
Send file by email as .xls speadsheet
PERFORM send_file_as_email_attachment
TABLES it_mess_bod
it_mess_att
USING p_email1
'MindTree Payroll team'
'PDF'
gd_attachment_name
gd_attachment_desc
p_sender
gd_sender_type
CHANGING gd_error
gd_reciever.
ENDFORM. " process_email
*& Form send_file_as_email_attachment
text
-->P_IT_MESS_BOD text
-->P_IT_MESS_ATT text
-->P_P_EMAIL text
-->P_4422 text
-->P_4423 text
-->P_GD_ATTACHMENT_NAME text
-->P_GD_ATTACHMENT_DESC text
-->P_P_SENDER text
-->P_GD_SENDER_TYPE text
<--P_GD_ERROR text
<--P_GD_RECIEVER text
FORM send_file_as_email_attachment TABLES it_message
it_attach
USING p_email
p_mtitle
p_format
p_filename
p_attdescription
p_sender_address
p_sender_addres_type
CHANGING p_error
p_reciever.
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 ,
ld_attfilename TYPE so_obj_des ,
ld_sender_address LIKE soextreci1-receiver,
ld_sender_address_type LIKE soextreci1-adr_typ,
ld_receiver LIKE sy-subrc.
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,
w_cnt TYPE i,
w_sent_all(1) TYPE c,
w_doc_data LIKE sodocchgi1.
ld_email = p_email.
ld_mtitle = p_mtitle.
ld_format = p_format.
ld_attdescription = p_attdescription.
ld_attfilename = p_filename.
ld_sender_address = p_sender_address.
ld_sender_address_type = p_sender_addres_type.
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
packing_list = t_packing_list
contents_bin = t_attachment
contents_txt = 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.
ENDFORM. "send_file_as_email_attachment
Points will be rewarded.
Regards,
BalajiHi,
I think you are retrieving the spool before the entire spool is generated.
Put the following logic to retrieve spool iD
CHECK WHETHER STATUS OF JOB IS COMPLETED OR CANCELLED
WHILE 1 = 1.
GET THE JOB STEPLIST WHICH HAS THE SPOOL NUMBER
CALL FUNCTION 'BP_JOB_READ'
EXPORTING
job_read_jobcount = w_jobcount
job_read_jobname = w_jobname
job_read_opcode = '35'
JOB_STEP_NUMBER =
IMPORTING
job_read_jobhead = wa_jobhead
TABLES
job_read_steplist = i_jobsteplist
CHANGING
RET =
EXCEPTIONS
invalid_opcode = 1
job_doesnt_exist = 2
job_doesnt_have_steps = 3
OTHERS = 4
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
BEGIN OF INSERTION U179942 E1BK928781
IF STATUS OF JOB IS COMPLETED(F) OR CANCELLED(A)
READ THE JOBSTEPLIST & GET THE SPOOL NUMBER
IF wa_jobhead-status = c_a OR wa_jobhead-status = c_f.
READ TABLE i_jobsteplist INTO wa_jobsteplist INDEX 1.
CHECK wa_jobsteplist-listident <> space.
w_spool_number = wa_jobsteplist-listident.
EXIT.
ENDIF.
ENDWHILE.
Best regards,
Prashant -
Direct Conversion of smartform into PDF system has to take spool request ?
does anybody know:
Direct Conversion of smartform into PDF, system has to take spool request dynamically..
i don't mean to use the SE38 calling PRG RSTXPDFT4 to transfer SAP sript into PDF.
thanks
SRIDHAR--strike Yes this is what I understood.
In the structure job_output_info of your function you'll find your OTF data :
st_ssfcrescl-otfdata --
CALL FUNCTION smartform_fonction_name
EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
control_parameters = st_ssfctrlop
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
output_options = st_ssfcompop
user_settings = ' '
IMPORTING
document_output_info = st_ssfcrespd
job_output_info = st_ssfcrescl " This is the one which contains OTF data
job_output_options = st_ssfcresop
TABLES
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
-- Then you just have to convert, using something like that : --
* Convert OTF to PDF
LOOP AT otf_data INTO w_otf.
CONCATENATE w_otf-tdprintcom w_otf-tdprintpar
INTO w_pdf.
APPEND w_pdf TO i_content_txt.
ENDLOOP.
CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
EXPORTING
format_src = 'OTF'
format_dst = 'PDF'
CHANGING
transfer_bin = w_transfer_bin
content_txt = i_content_txt
content_bin = i_content_bin
objhead = i_objhead
len = v_len_in
EXCEPTIONS
err_conv_failed = 1
OTHERS = 2.
v_size = v_len_in.
pdf_itab_size = v_size.
it_pdfout[] = it_pdf[].
* Create the PDF File
CLEAR it_pdfdata.
REFRESH it_pdfdata.
* it_pdfdata[] = it_pdfout[].
LOOP AT it_pdfout.
MOVE it_pdfout-tline TO it_pdfdata-line.
APPEND it_pdfdata.
CLEAR it_pdfdata.
ENDLOOP.
-- The smartform creation and the PDF creation are done in the same time...--
OK, So what do'nt you want to use the RSTXPDFT4 program ?
Hope this helps,
Erwan
Edited by: Erwan LE BRUN on Aug 28, 2008 12:02 PM
Edited by: Erwan LE BRUN on Aug 28, 2008 12:03 PM
Maybe you are looking for
-
I replaced the original CD-RW with a new Lite-on DVDRW SHW-160P6S drive. Works great. I have read CD, DVD, written DVD and successfully tested burned DVDs on another computer. It works with Finder, iTune & Toast. But I bought OS-X tiger and I can't i
-
Hiding of Select Options in screen based on selection in selection list box
Hi People, I have a screen where i have put a selection list box, it is pre-filled with values, Now based on the value which user selects, I want to show/hide some select-options fields. I have declared the select options in the top include
-
BPS: How to filter Lead Columns at run time
I need to know if there is a way to filter values for lead columns, after planning level and planning package where defined Example: Family | Material | Brand | Format | sales | cost | Margin F1 M1 B1 F1 100 80 20 F1
-
X-Fi Mode Switching and XP File Permissi
I have my file permissions locked down pretty tightly for all accounts except the Administrator. This is great for preventing major file system meltdowns whenever my wife picks up an email virus, but it can also make trouble now and then. The X-Fi ap
-
Garageband is award worthy. The Frustration Awards 2010
Why is it that every time I go to use Garageband that I have to completely start again with all the same audio problems? Guitar is plugged into Fast Track which is plugged into the USB port. I go to audio preferences and see that the computer recogni